From b97c953e9c7604d765d7f950d0ad8584fd10e926 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Mon, 10 Jan 2022 17:48:47 +0200 Subject: [PATCH 01/22] Update to 1.18 --- .gitignore | 7 +- .rustfmt.toml | 3 +- Cargo.lock | 652 +- Cargo.toml | 5 +- constants/PROTOCOL_VERSION | 1 + constants/SERVER_DOWNLOAD_URL | 1 + constants/VERSION | 1 + constants/WORLD_SAVE_VERSION | 1 + data_generators/Cargo.toml | 19 + .../generators => data_generators}/README.md | 11 +- data_generators/src/generators.rs | 15 + .../src/generators/block_states.rs | 488 +- data_generators/src/generators/blocks.rs | 374 + data_generators/src/generators/entities.rs | 205 + data_generators/src/generators/inventory.rs | 226 + data_generators/src/generators/items.rs | 154 + .../src/generators/simplified_block.rs | 57 + data_generators/src/lib.rs | 47 + data_generators/src/main.rs | 13 + data_generators/src/utils.rs | 226 + feather/base/Cargo.toml | 6 +- feather/base/src/anvil/entity.rs | 17 +- feather/base/src/anvil/level.rs | 22 +- feather/base/src/anvil/player.rs | 39 +- feather/base/src/anvil/region.rs | 595 +- .../base/src/anvil/serialization_helper.rs | 206 - feather/base/src/biome.rs | 324 + feather/base/src/block.rs | 5 +- feather/base/src/chunk.rs | 411 +- feather/base/src/chunk/biome_store.rs | 133 - feather/base/src/chunk/blocks.rs | 175 - feather/base/src/chunk/heightmap.rs | 74 +- feather/base/src/chunk/light.rs | 70 +- feather/base/src/chunk/packed_array.rs | 56 +- feather/base/src/chunk/palette.rs | 152 - feather/base/src/chunk/paletted_container.rs | 289 + feather/base/src/chunk_lock.rs | 25 +- feather/base/src/lib.rs | 9 +- feather/base/src/metadata.rs | 39 +- feather/base/src/mod.rs | 6 + feather/base/src/world.rs | 156 + feather/blocks/Cargo.toml | 15 - feather/blocks/generator/Cargo.toml | 26 - feather/blocks/generator/src/load.rs | 360 - feather/blocks/generator/src/main.rs | 49 - feather/blocks/src/directions.rs | 162 - feather/blocks/src/generated/vanilla_ids.dat | Bin 40336 -> 0 bytes feather/blocks/src/lib.rs | 229 - feather/common/Cargo.toml | 5 +- feather/common/src/chunk/loading.rs | 80 +- feather/common/src/chunk/worker.rs | 29 +- feather/common/src/entities.rs | 245 +- .../common/src/entities/area_effect_cloud.rs | 2 +- feather/common/src/entities/armor_stand.rs | 2 +- feather/common/src/entities/arrow.rs | 2 +- feather/common/src/entities/axolotl.rs | 8 + feather/common/src/entities/bat.rs | 2 +- feather/common/src/entities/bee.rs | 2 +- feather/common/src/entities/blaze.rs | 2 +- feather/common/src/entities/boat.rs | 2 +- feather/common/src/entities/cat.rs | 2 +- feather/common/src/entities/cave_spider.rs | 2 +- feather/common/src/entities/chest_minecart.rs | 2 +- feather/common/src/entities/chicken.rs | 2 +- feather/common/src/entities/cod.rs | 2 +- .../src/entities/command_block_minecart.rs | 2 +- feather/common/src/entities/cow.rs | 2 +- feather/common/src/entities/creeper.rs | 2 +- feather/common/src/entities/dolphin.rs | 2 +- feather/common/src/entities/donkey.rs | 2 +- .../common/src/entities/dragon_fireball.rs | 2 +- feather/common/src/entities/drowned.rs | 2 +- feather/common/src/entities/egg.rs | 2 +- feather/common/src/entities/elder_guardian.rs | 2 +- feather/common/src/entities/end_crystal.rs | 2 +- feather/common/src/entities/ender_dragon.rs | 2 +- feather/common/src/entities/ender_pearl.rs | 2 +- feather/common/src/entities/enderman.rs | 2 +- feather/common/src/entities/endermite.rs | 2 +- feather/common/src/entities/evoker.rs | 2 +- feather/common/src/entities/evoker_fangs.rs | 2 +- .../common/src/entities/experience_bottle.rs | 2 +- feather/common/src/entities/experience_orb.rs | 2 +- feather/common/src/entities/eye_of_ender.rs | 2 +- feather/common/src/entities/falling_block.rs | 2 +- feather/common/src/entities/fireball.rs | 2 +- .../common/src/entities/firework_rocket.rs | 2 +- feather/common/src/entities/fishing_bobber.rs | 2 +- feather/common/src/entities/fox.rs | 2 +- .../common/src/entities/furnace_minecart.rs | 2 +- feather/common/src/entities/ghast.rs | 2 +- feather/common/src/entities/giant.rs | 2 +- .../common/src/entities/glow_item_frame.rs | 8 + feather/common/src/entities/glow_squid.rs | 8 + feather/common/src/entities/goat.rs | 8 + feather/common/src/entities/guardian.rs | 2 +- feather/common/src/entities/hoglin.rs | 2 +- .../common/src/entities/hopper_minecart.rs | 2 +- feather/common/src/entities/horse.rs | 2 +- feather/common/src/entities/husk.rs | 2 +- feather/common/src/entities/illusioner.rs | 2 +- feather/common/src/entities/iron_golem.rs | 2 +- feather/common/src/entities/item.rs | 2 +- feather/common/src/entities/item_frame.rs | 2 +- feather/common/src/entities/leash_knot.rs | 2 +- feather/common/src/entities/lightning_bolt.rs | 2 +- feather/common/src/entities/llama.rs | 2 +- feather/common/src/entities/llama_spit.rs | 2 +- feather/common/src/entities/magma_cube.rs | 2 +- feather/common/src/entities/marker.rs | 8 + feather/common/src/entities/minecart.rs | 2 +- feather/common/src/entities/mooshroom.rs | 2 +- feather/common/src/entities/mule.rs | 2 +- feather/common/src/entities/ocelot.rs | 2 +- feather/common/src/entities/painting.rs | 2 +- feather/common/src/entities/panda.rs | 2 +- feather/common/src/entities/parrot.rs | 2 +- feather/common/src/entities/phantom.rs | 2 +- feather/common/src/entities/pig.rs | 2 +- feather/common/src/entities/piglin.rs | 2 +- feather/common/src/entities/piglin_brute.rs | 2 +- feather/common/src/entities/pillager.rs | 2 +- feather/common/src/entities/polar_bear.rs | 2 +- feather/common/src/entities/potion.rs | 2 +- feather/common/src/entities/pufferfish.rs | 2 +- feather/common/src/entities/rabbit.rs | 2 +- feather/common/src/entities/ravager.rs | 2 +- feather/common/src/entities/salmon.rs | 2 +- feather/common/src/entities/sheep.rs | 2 +- feather/common/src/entities/shulker.rs | 2 +- feather/common/src/entities/shulker_bullet.rs | 2 +- feather/common/src/entities/silverfish.rs | 2 +- feather/common/src/entities/skeleton.rs | 2 +- feather/common/src/entities/skeleton_horse.rs | 2 +- feather/common/src/entities/slime.rs | 2 +- feather/common/src/entities/small_fireball.rs | 2 +- feather/common/src/entities/snow_golem.rs | 2 +- feather/common/src/entities/snowball.rs | 2 +- .../common/src/entities/spawner_minecart.rs | 2 +- feather/common/src/entities/spectral_arrow.rs | 2 +- feather/common/src/entities/spider.rs | 2 +- feather/common/src/entities/squid.rs | 2 +- feather/common/src/entities/stray.rs | 2 +- feather/common/src/entities/strider.rs | 2 +- feather/common/src/entities/tnt.rs | 2 +- feather/common/src/entities/tnt_minecart.rs | 2 +- feather/common/src/entities/trader_llama.rs | 2 +- feather/common/src/entities/trident.rs | 2 +- feather/common/src/entities/tropical_fish.rs | 2 +- feather/common/src/entities/turtle.rs | 2 +- feather/common/src/entities/vex.rs | 2 +- feather/common/src/entities/villager.rs | 2 +- feather/common/src/entities/vindicator.rs | 2 +- .../common/src/entities/wandering_trader.rs | 2 +- feather/common/src/entities/witch.rs | 2 +- feather/common/src/entities/wither.rs | 2 +- .../common/src/entities/wither_skeleton.rs | 2 +- feather/common/src/entities/wither_skull.rs | 2 +- feather/common/src/entities/wolf.rs | 2 +- feather/common/src/entities/zoglin.rs | 2 +- feather/common/src/entities/zombie.rs | 2 +- feather/common/src/entities/zombie_horse.rs | 2 +- .../common/src/entities/zombie_villager.rs | 2 +- .../common/src/entities/zombified_piglin.rs | 2 +- feather/common/src/entity/player.rs | 10 - feather/common/src/events.rs | 26 +- feather/common/src/events/block_change.rs | 43 +- feather/common/src/game.rs | 85 +- feather/common/src/interactable.rs | 2 +- feather/common/src/lib.rs | 2 +- feather/common/src/region_worker.rs | 20 +- feather/common/src/view.rs | 90 +- feather/common/src/window.rs | 19 +- feather/common/src/world.rs | 217 +- feather/plugin-host/src/host_calls.rs | 5 - feather/plugin-host/src/host_calls/block.rs | 42 - feather/protocol/Cargo.toml | 5 +- feather/protocol/src/codec.rs | 16 +- feather/protocol/src/io.rs | 208 +- feather/protocol/src/lib.rs | 2 +- feather/protocol/src/mod.rs | 232 + feather/protocol/src/packets.rs | 79 +- feather/protocol/src/packets/client.rs | 51 +- .../protocol/src/packets/client/handshake.rs | 2 +- feather/protocol/src/packets/client/login.rs | 4 +- feather/protocol/src/packets/client/play.rs | 24 +- feather/protocol/src/packets/client/status.rs | 2 +- feather/protocol/src/packets/server.rs | 190 +- feather/protocol/src/packets/server/login.rs | 5 +- feather/protocol/src/packets/server/play.rs | 272 +- .../src/packets/server/play/chunk_data.rs | 290 +- .../src/packets/server/play/update_light.rs | 293 +- feather/server/Cargo.toml | 5 + feather/server/config.toml | 14 +- feather/server/src/chunk_subscriptions.rs | 6 +- feather/server/src/client.rs | 474 +- feather/server/src/config.rs | 21 +- feather/server/src/entities.rs | 20 +- feather/server/src/initial_handler.rs | 8 +- .../src/initial_handler/proxy/velocity.rs | 2 +- feather/server/src/lib.rs | 20 +- feather/server/src/main.rs | 139 +- feather/server/src/packet_handlers.rs | 4 +- .../server/src/packet_handlers/interaction.rs | 43 +- .../server/src/packet_handlers/inventory.rs | 26 +- .../server/src/packet_handlers/movement.rs | 10 +- feather/server/src/systems.rs | 2 +- feather/server/src/systems/block.rs | 34 +- feather/server/src/systems/entity.rs | 31 +- .../server/src/systems/entity/spawn_packet.rs | 10 +- feather/server/src/systems/particle.rs | 2 +- feather/server/src/systems/player_join.rs | 139 +- feather/server/src/systems/player_leave.rs | 17 +- feather/server/src/systems/view.rs | 26 +- feather/worldgen/Cargo.toml | 13 +- .../worldgen/src/biomes/distorted_voronoi.rs | 137 - feather/worldgen/src/biomes/mod.rs | 7 - feather/worldgen/src/biomes/two_level.rs | 77 - feather/worldgen/src/composition.rs | 206 - feather/worldgen/src/density_map/density.rs | 262 - feather/worldgen/src/density_map/height.rs | 57 - feather/worldgen/src/density_map/mod.rs | 5 - feather/worldgen/src/finishers/clumped.rs | 75 - feather/worldgen/src/finishers/mod.rs | 9 - feather/worldgen/src/finishers/single.rs | 58 - feather/worldgen/src/finishers/snow.rs | 39 - feather/worldgen/src/lib.rs | 444 +- feather/worldgen/src/noise.rs | 229 - feather/worldgen/src/superflat.rs | 58 +- feather/worldgen/src/util.rs | 18 - feather/worldgen/src/voronoi.rs | 144 - .../entity_metadata.json | 0 .../inventory.json | 0 .../simplified_block.json | 0 libcraft/blocks/Cargo.toml | 19 +- .../blocks/assets/raw_block_properties.bc.gz | Bin 4911 -> 0 bytes libcraft/blocks/assets/raw_block_states.bc.gz | Bin 97307 -> 0 bytes libcraft/blocks/src/block.rs | 34285 +++++++++------ libcraft/blocks/src/block_data.rs | 577 - .../blocks/src/categories.rs | 3 +- libcraft/blocks/src/data.rs | 415 - libcraft/blocks/src/directions.rs | 162 + .../blocks/src/generated/block_fns.rs | 34362 +++++++++------- .../blocks/src/generated/mod.rs | 0 .../blocks/src/generated/properties.rs | 300 +- .../blocks/src/generated/table.dat | Bin 272340 -> 342000 bytes .../blocks/src/generated/table.rs | 676 +- libcraft/blocks/src/generated/vanilla_ids.dat | Bin 0 -> 47876 bytes libcraft/blocks/src/lib.rs | 237 +- libcraft/blocks/src/registry.rs | 158 - libcraft/blocks/src/simplified_block.rs | 2821 +- .../blocks/src/wall_blocks.rs | 0 libcraft/blocks/tests/blocks.rs | 53 - libcraft/core/src/biome.rs | 782 - libcraft/core/src/dimension.rs | 70 - libcraft/core/src/entity.rs | 2351 +- libcraft/core/src/lib.rs | 3 - libcraft/generators/Cargo.toml | 14 - libcraft/generators/generate.ps1 | 11 - libcraft/generators/generate.sh | 12 - libcraft/generators/python/.pep8 | 2 - libcraft/generators/python/biome.py | 29 - libcraft/generators/python/block.py | 96 - libcraft/generators/python/common.py | 164 - libcraft/generators/python/entity.py | 29 - libcraft/generators/python/inventory.py | 157 - libcraft/generators/python/item.py | 74 - libcraft/generators/python/particle.py | 51 - .../generators/python/simplified_block.py | 35 - libcraft/generators/src/common.rs | 38 - libcraft/generators/src/generators.rs | 30 - libcraft/generators/src/main.rs | 18 - libcraft/inventory/src/inventory.rs | 2241 +- libcraft/inventory/src/lib.rs | 2 + libcraft/items/Cargo.toml | 2 +- libcraft/items/src/item.rs | 20011 ++++++--- libcraft/items/src/item_stack.rs | 2 +- libcraft/particles/src/particle.rs | 12 +- minecraft-data | 2 +- quill/api/src/game.rs | 144 +- quill/api/src/lib.rs | 6 +- quill/common/Cargo.toml | 1 + quill/common/src/block.rs | 49 - quill/common/src/component.rs | 8 +- quill/common/src/components.rs | 34 +- quill/common/src/entities.rs | 783 +- .../common/src/entities/area_effect_cloud.rs | 19 - quill/common/src/entities/armor_stand.rs | 19 - quill/common/src/entities/arrow.rs | 19 - quill/common/src/entities/bat.rs | 19 - quill/common/src/entities/bee.rs | 19 - quill/common/src/entities/blaze.rs | 19 - quill/common/src/entities/boat.rs | 19 - quill/common/src/entities/cat.rs | 19 - quill/common/src/entities/cave_spider.rs | 19 - quill/common/src/entities/chest_minecart.rs | 19 - quill/common/src/entities/chicken.rs | 19 - quill/common/src/entities/cod.rs | 19 - .../src/entities/command_block_minecart.rs | 19 - quill/common/src/entities/cow.rs | 19 - quill/common/src/entities/creeper.rs | 19 - quill/common/src/entities/dolphin.rs | 19 - quill/common/src/entities/donkey.rs | 19 - quill/common/src/entities/dragon_fireball.rs | 19 - quill/common/src/entities/drowned.rs | 19 - quill/common/src/entities/egg.rs | 19 - quill/common/src/entities/elder_guardian.rs | 19 - quill/common/src/entities/end_crystal.rs | 19 - quill/common/src/entities/ender_dragon.rs | 19 - quill/common/src/entities/ender_pearl.rs | 19 - quill/common/src/entities/enderman.rs | 19 - quill/common/src/entities/endermite.rs | 19 - quill/common/src/entities/evoker.rs | 19 - quill/common/src/entities/evoker_fangs.rs | 19 - .../common/src/entities/experience_bottle.rs | 19 - quill/common/src/entities/experience_orb.rs | 19 - quill/common/src/entities/eye_of_ender.rs | 19 - quill/common/src/entities/falling_block.rs | 19 - quill/common/src/entities/fireball.rs | 19 - quill/common/src/entities/firework_rocket.rs | 19 - quill/common/src/entities/fishing_bobber.rs | 19 - quill/common/src/entities/fox.rs | 19 - quill/common/src/entities/furnace_minecart.rs | 19 - quill/common/src/entities/ghast.rs | 19 - quill/common/src/entities/giant.rs | 19 - quill/common/src/entities/guardian.rs | 19 - quill/common/src/entities/hoglin.rs | 19 - quill/common/src/entities/hopper_minecart.rs | 19 - quill/common/src/entities/horse.rs | 19 - quill/common/src/entities/husk.rs | 19 - quill/common/src/entities/illusioner.rs | 19 - quill/common/src/entities/iron_golem.rs | 19 - quill/common/src/entities/item.rs | 19 - quill/common/src/entities/item_frame.rs | 19 - quill/common/src/entities/leash_knot.rs | 19 - quill/common/src/entities/lightning_bolt.rs | 19 - quill/common/src/entities/llama.rs | 19 - quill/common/src/entities/llama_spit.rs | 19 - quill/common/src/entities/magma_cube.rs | 19 - quill/common/src/entities/minecart.rs | 19 - quill/common/src/entities/mooshroom.rs | 19 - quill/common/src/entities/mule.rs | 19 - quill/common/src/entities/ocelot.rs | 19 - quill/common/src/entities/painting.rs | 19 - quill/common/src/entities/panda.rs | 19 - quill/common/src/entities/parrot.rs | 19 - quill/common/src/entities/phantom.rs | 19 - quill/common/src/entities/pig.rs | 19 - quill/common/src/entities/piglin.rs | 19 - quill/common/src/entities/piglin_brute.rs | 19 - quill/common/src/entities/pillager.rs | 19 - quill/common/src/entities/player.rs | 19 - quill/common/src/entities/polar_bear.rs | 19 - quill/common/src/entities/potion.rs | 19 - quill/common/src/entities/pufferfish.rs | 19 - quill/common/src/entities/rabbit.rs | 19 - quill/common/src/entities/ravager.rs | 19 - quill/common/src/entities/salmon.rs | 19 - quill/common/src/entities/sheep.rs | 19 - quill/common/src/entities/shulker.rs | 19 - quill/common/src/entities/shulker_bullet.rs | 19 - quill/common/src/entities/silverfish.rs | 19 - quill/common/src/entities/skeleton.rs | 19 - quill/common/src/entities/skeleton_horse.rs | 19 - quill/common/src/entities/slime.rs | 19 - quill/common/src/entities/small_fireball.rs | 19 - quill/common/src/entities/snow_golem.rs | 19 - quill/common/src/entities/snowball.rs | 19 - quill/common/src/entities/spawner_minecart.rs | 19 - quill/common/src/entities/spectral_arrow.rs | 19 - quill/common/src/entities/spider.rs | 19 - quill/common/src/entities/squid.rs | 19 - quill/common/src/entities/stray.rs | 19 - quill/common/src/entities/strider.rs | 19 - quill/common/src/entities/tnt.rs | 19 - quill/common/src/entities/tnt_minecart.rs | 19 - quill/common/src/entities/trader_llama.rs | 19 - quill/common/src/entities/trident.rs | 19 - quill/common/src/entities/tropical_fish.rs | 19 - quill/common/src/entities/turtle.rs | 19 - quill/common/src/entities/vex.rs | 19 - quill/common/src/entities/villager.rs | 19 - quill/common/src/entities/vindicator.rs | 19 - quill/common/src/entities/wandering_trader.rs | 19 - quill/common/src/entities/witch.rs | 19 - quill/common/src/entities/wither.rs | 19 - quill/common/src/entities/wither_skeleton.rs | 19 - quill/common/src/entities/wither_skull.rs | 19 - quill/common/src/entities/wolf.rs | 19 - quill/common/src/entities/zoglin.rs | 19 - quill/common/src/entities/zombie.rs | 19 - quill/common/src/entities/zombie_horse.rs | 19 - quill/common/src/entities/zombie_villager.rs | 19 - quill/common/src/entities/zombified_piglin.rs | 19 - quill/common/src/entity_init.rs | 330 - quill/common/src/lib.rs | 2 - quill/example-plugins/block-access/src/lib.rs | 12 +- .../example-plugins/query-entities/src/lib.rs | 4 +- quill/example-plugins/simple/src/lib.rs | 16 +- quill/sys/src/lib.rs | 31 +- 400 files changed, 67192 insertions(+), 48482 deletions(-) create mode 100644 constants/PROTOCOL_VERSION create mode 100644 constants/SERVER_DOWNLOAD_URL create mode 100644 constants/VERSION create mode 100644 constants/WORLD_SAVE_VERSION create mode 100644 data_generators/Cargo.toml rename {libcraft/generators => data_generators}/README.md (53%) create mode 100644 data_generators/src/generators.rs rename feather/blocks/generator/src/lib.rs => data_generators/src/generators/block_states.rs (62%) create mode 100644 data_generators/src/generators/blocks.rs create mode 100644 data_generators/src/generators/entities.rs create mode 100644 data_generators/src/generators/inventory.rs create mode 100644 data_generators/src/generators/items.rs create mode 100644 data_generators/src/generators/simplified_block.rs create mode 100644 data_generators/src/lib.rs create mode 100644 data_generators/src/main.rs create mode 100644 data_generators/src/utils.rs delete mode 100644 feather/base/src/anvil/serialization_helper.rs create mode 100644 feather/base/src/biome.rs delete mode 100644 feather/base/src/chunk/biome_store.rs delete mode 100644 feather/base/src/chunk/blocks.rs delete mode 100644 feather/base/src/chunk/palette.rs create mode 100644 feather/base/src/chunk/paletted_container.rs create mode 100644 feather/base/src/mod.rs create mode 100644 feather/base/src/world.rs delete mode 100644 feather/blocks/Cargo.toml delete mode 100644 feather/blocks/generator/Cargo.toml delete mode 100644 feather/blocks/generator/src/load.rs delete mode 100644 feather/blocks/generator/src/main.rs delete mode 100644 feather/blocks/src/directions.rs delete mode 100644 feather/blocks/src/generated/vanilla_ids.dat delete mode 100644 feather/blocks/src/lib.rs create mode 100644 feather/common/src/entities/axolotl.rs create mode 100644 feather/common/src/entities/glow_item_frame.rs create mode 100644 feather/common/src/entities/glow_squid.rs create mode 100644 feather/common/src/entities/goat.rs create mode 100644 feather/common/src/entities/marker.rs delete mode 100644 feather/common/src/entity/player.rs delete mode 100644 feather/plugin-host/src/host_calls/block.rs create mode 100644 feather/protocol/src/mod.rs delete mode 100644 feather/worldgen/src/biomes/distorted_voronoi.rs delete mode 100644 feather/worldgen/src/biomes/mod.rs delete mode 100644 feather/worldgen/src/biomes/two_level.rs delete mode 100644 feather/worldgen/src/composition.rs delete mode 100644 feather/worldgen/src/density_map/density.rs delete mode 100644 feather/worldgen/src/density_map/height.rs delete mode 100644 feather/worldgen/src/density_map/mod.rs delete mode 100644 feather/worldgen/src/finishers/clumped.rs delete mode 100644 feather/worldgen/src/finishers/mod.rs delete mode 100644 feather/worldgen/src/finishers/single.rs delete mode 100644 feather/worldgen/src/finishers/snow.rs delete mode 100644 feather/worldgen/src/noise.rs delete mode 100644 feather/worldgen/src/util.rs delete mode 100644 feather/worldgen/src/voronoi.rs rename {libcraft/generators/libcraft-data => libcraft-data}/entity_metadata.json (100%) rename {libcraft/generators/libcraft-data => libcraft-data}/inventory.json (100%) rename {libcraft/generators/libcraft-data => libcraft-data}/simplified_block.json (100%) delete mode 100644 libcraft/blocks/assets/raw_block_properties.bc.gz delete mode 100644 libcraft/blocks/assets/raw_block_states.bc.gz delete mode 100644 libcraft/blocks/src/block_data.rs rename {feather => libcraft}/blocks/src/categories.rs (98%) delete mode 100644 libcraft/blocks/src/data.rs create mode 100644 libcraft/blocks/src/directions.rs rename {feather => libcraft}/blocks/src/generated/block_fns.rs (78%) rename {feather => libcraft}/blocks/src/generated/mod.rs (100%) rename {feather => libcraft}/blocks/src/generated/properties.rs (83%) rename {feather => libcraft}/blocks/src/generated/table.dat (73%) rename {feather => libcraft}/blocks/src/generated/table.rs (83%) create mode 100644 libcraft/blocks/src/generated/vanilla_ids.dat delete mode 100644 libcraft/blocks/src/registry.rs rename {feather => libcraft}/blocks/src/wall_blocks.rs (100%) delete mode 100644 libcraft/blocks/tests/blocks.rs delete mode 100644 libcraft/core/src/dimension.rs delete mode 100644 libcraft/generators/Cargo.toml delete mode 100644 libcraft/generators/generate.ps1 delete mode 100755 libcraft/generators/generate.sh delete mode 100644 libcraft/generators/python/.pep8 delete mode 100644 libcraft/generators/python/biome.py delete mode 100644 libcraft/generators/python/block.py delete mode 100644 libcraft/generators/python/common.py delete mode 100644 libcraft/generators/python/entity.py delete mode 100644 libcraft/generators/python/inventory.py delete mode 100644 libcraft/generators/python/item.py delete mode 100644 libcraft/generators/python/particle.py delete mode 100644 libcraft/generators/python/simplified_block.py delete mode 100644 libcraft/generators/src/common.rs delete mode 100644 libcraft/generators/src/generators.rs delete mode 100644 libcraft/generators/src/main.rs delete mode 100644 quill/common/src/block.rs delete mode 100644 quill/common/src/entities/area_effect_cloud.rs delete mode 100644 quill/common/src/entities/armor_stand.rs delete mode 100644 quill/common/src/entities/arrow.rs delete mode 100644 quill/common/src/entities/bat.rs delete mode 100644 quill/common/src/entities/bee.rs delete mode 100644 quill/common/src/entities/blaze.rs delete mode 100644 quill/common/src/entities/boat.rs delete mode 100644 quill/common/src/entities/cat.rs delete mode 100644 quill/common/src/entities/cave_spider.rs delete mode 100644 quill/common/src/entities/chest_minecart.rs delete mode 100644 quill/common/src/entities/chicken.rs delete mode 100644 quill/common/src/entities/cod.rs delete mode 100644 quill/common/src/entities/command_block_minecart.rs delete mode 100644 quill/common/src/entities/cow.rs delete mode 100644 quill/common/src/entities/creeper.rs delete mode 100644 quill/common/src/entities/dolphin.rs delete mode 100644 quill/common/src/entities/donkey.rs delete mode 100644 quill/common/src/entities/dragon_fireball.rs delete mode 100644 quill/common/src/entities/drowned.rs delete mode 100644 quill/common/src/entities/egg.rs delete mode 100644 quill/common/src/entities/elder_guardian.rs delete mode 100644 quill/common/src/entities/end_crystal.rs delete mode 100644 quill/common/src/entities/ender_dragon.rs delete mode 100644 quill/common/src/entities/ender_pearl.rs delete mode 100644 quill/common/src/entities/enderman.rs delete mode 100644 quill/common/src/entities/endermite.rs delete mode 100644 quill/common/src/entities/evoker.rs delete mode 100644 quill/common/src/entities/evoker_fangs.rs delete mode 100644 quill/common/src/entities/experience_bottle.rs delete mode 100644 quill/common/src/entities/experience_orb.rs delete mode 100644 quill/common/src/entities/eye_of_ender.rs delete mode 100644 quill/common/src/entities/falling_block.rs delete mode 100644 quill/common/src/entities/fireball.rs delete mode 100644 quill/common/src/entities/firework_rocket.rs delete mode 100644 quill/common/src/entities/fishing_bobber.rs delete mode 100644 quill/common/src/entities/fox.rs delete mode 100644 quill/common/src/entities/furnace_minecart.rs delete mode 100644 quill/common/src/entities/ghast.rs delete mode 100644 quill/common/src/entities/giant.rs delete mode 100644 quill/common/src/entities/guardian.rs delete mode 100644 quill/common/src/entities/hoglin.rs delete mode 100644 quill/common/src/entities/hopper_minecart.rs delete mode 100644 quill/common/src/entities/horse.rs delete mode 100644 quill/common/src/entities/husk.rs delete mode 100644 quill/common/src/entities/illusioner.rs delete mode 100644 quill/common/src/entities/iron_golem.rs delete mode 100644 quill/common/src/entities/item.rs delete mode 100644 quill/common/src/entities/item_frame.rs delete mode 100644 quill/common/src/entities/leash_knot.rs delete mode 100644 quill/common/src/entities/lightning_bolt.rs delete mode 100644 quill/common/src/entities/llama.rs delete mode 100644 quill/common/src/entities/llama_spit.rs delete mode 100644 quill/common/src/entities/magma_cube.rs delete mode 100644 quill/common/src/entities/minecart.rs delete mode 100644 quill/common/src/entities/mooshroom.rs delete mode 100644 quill/common/src/entities/mule.rs delete mode 100644 quill/common/src/entities/ocelot.rs delete mode 100644 quill/common/src/entities/painting.rs delete mode 100644 quill/common/src/entities/panda.rs delete mode 100644 quill/common/src/entities/parrot.rs delete mode 100644 quill/common/src/entities/phantom.rs delete mode 100644 quill/common/src/entities/pig.rs delete mode 100644 quill/common/src/entities/piglin.rs delete mode 100644 quill/common/src/entities/piglin_brute.rs delete mode 100644 quill/common/src/entities/pillager.rs delete mode 100644 quill/common/src/entities/player.rs delete mode 100644 quill/common/src/entities/polar_bear.rs delete mode 100644 quill/common/src/entities/potion.rs delete mode 100644 quill/common/src/entities/pufferfish.rs delete mode 100644 quill/common/src/entities/rabbit.rs delete mode 100644 quill/common/src/entities/ravager.rs delete mode 100644 quill/common/src/entities/salmon.rs delete mode 100644 quill/common/src/entities/sheep.rs delete mode 100644 quill/common/src/entities/shulker.rs delete mode 100644 quill/common/src/entities/shulker_bullet.rs delete mode 100644 quill/common/src/entities/silverfish.rs delete mode 100644 quill/common/src/entities/skeleton.rs delete mode 100644 quill/common/src/entities/skeleton_horse.rs delete mode 100644 quill/common/src/entities/slime.rs delete mode 100644 quill/common/src/entities/small_fireball.rs delete mode 100644 quill/common/src/entities/snow_golem.rs delete mode 100644 quill/common/src/entities/snowball.rs delete mode 100644 quill/common/src/entities/spawner_minecart.rs delete mode 100644 quill/common/src/entities/spectral_arrow.rs delete mode 100644 quill/common/src/entities/spider.rs delete mode 100644 quill/common/src/entities/squid.rs delete mode 100644 quill/common/src/entities/stray.rs delete mode 100644 quill/common/src/entities/strider.rs delete mode 100644 quill/common/src/entities/tnt.rs delete mode 100644 quill/common/src/entities/tnt_minecart.rs delete mode 100644 quill/common/src/entities/trader_llama.rs delete mode 100644 quill/common/src/entities/trident.rs delete mode 100644 quill/common/src/entities/tropical_fish.rs delete mode 100644 quill/common/src/entities/turtle.rs delete mode 100644 quill/common/src/entities/vex.rs delete mode 100644 quill/common/src/entities/villager.rs delete mode 100644 quill/common/src/entities/vindicator.rs delete mode 100644 quill/common/src/entities/wandering_trader.rs delete mode 100644 quill/common/src/entities/witch.rs delete mode 100644 quill/common/src/entities/wither.rs delete mode 100644 quill/common/src/entities/wither_skeleton.rs delete mode 100644 quill/common/src/entities/wither_skull.rs delete mode 100644 quill/common/src/entities/wolf.rs delete mode 100644 quill/common/src/entities/zoglin.rs delete mode 100644 quill/common/src/entities/zombie.rs delete mode 100644 quill/common/src/entities/zombie_horse.rs delete mode 100644 quill/common/src/entities/zombie_villager.rs delete mode 100644 quill/common/src/entities/zombified_piglin.rs delete mode 100644 quill/common/src/entity_init.rs diff --git a/.gitignore b/.gitignore index 79c1a3956..73a64ad51 100644 --- a/.gitignore +++ b/.gitignore @@ -6,11 +6,10 @@ # Cargo build configuration .cargo -world/ +/worlds/ +/generated/ +/worldgen/ /config.toml -# Python cache files (libcraft) -**/__pycache__/ - # macOS desktop files **/.DS_STORE diff --git a/.rustfmt.toml b/.rustfmt.toml index f8129fbf8..2c44a0723 100644 --- a/.rustfmt.toml +++ b/.rustfmt.toml @@ -1,4 +1,5 @@ # We use rustfmt, and formatting is checked in CI. # Please run `cargo fmt` before committing -# Empty config: default settings! +unstable_features = true +format_generated_files = true diff --git a/Cargo.lock b/Cargo.lock index 7f6eaa755..8e298a59b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -60,18 +60,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.44" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1" - -[[package]] -name = "approx" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" -dependencies = [ - "num-traits", -] +checksum = "84450d0b4a8bd1ba4144ce8ce718fbc5d071358b1e5384bace6536b3d1f2d5b3" [[package]] name = "approx" @@ -492,12 +483,48 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "const_format" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22bc6cd49b0ec407b680c3e380182b6ac63b73991cb7602de350352fc309b614" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef196d5d972878a48da7decb7686eded338b4858fbabeed513d63a7c98b2b82d" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "convert_case" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "core-foundation" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + [[package]] name = "cpufeatures" version = "0.2.1" @@ -671,16 +698,35 @@ dependencies = [ "syn", ] +[[package]] +name = "data-generators" +version = "0.1.0" +dependencies = [ + "bincode", + "convert_case", + "fs_extra", + "indexmap", + "log", + "once_cell", + "proc-macro2", + "quote", + "rayon", + "regex", + "reqwest", + "serde", + "serde_json", +] + [[package]] name = "derive_more" -version = "0.99.16" +version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", "proc-macro2", "quote", - "rustc_version 0.3.3", + "rustc_version 0.4.0", "syn", ] @@ -699,6 +745,15 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +[[package]] +name = "encoding_rs" +version = "0.8.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df" +dependencies = [ + "cfg-if 1.0.0", +] + [[package]] name = "enumset" version = "1.0.7" @@ -755,8 +810,11 @@ dependencies = [ "bitvec", "bytemuck", "byteorder", - "feather-blocks", + "derive_more", "hematite-nbt", + "indexmap", + "itertools", + "konst", "libcraft-blocks", "libcraft-core", "libcraft-inventory", @@ -767,6 +825,7 @@ dependencies = [ "nom_locate", "num-derive", "num-traits", + "once_cell", "parking_lot", "quill-common", "rand 0.8.4", @@ -781,50 +840,20 @@ dependencies = [ "vek", ] -[[package]] -name = "feather-blocks" -version = "0.1.0" -dependencies = [ - "anyhow", - "bincode", - "libcraft-blocks", - "num-traits", - "once_cell", - "serde", - "thiserror", - "vek", -] - -[[package]] -name = "feather-blocks-generator" -version = "0.1.0" -dependencies = [ - "anyhow", - "bincode", - "heck", - "indexmap", - "maplit", - "once_cell", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn", -] - [[package]] name = "feather-common" version = "0.1.0" dependencies = [ "ahash 0.7.4", "anyhow", + "derive_more", "feather-base", - "feather-blocks", "feather-ecs", "feather-utils", "feather-worldgen", "flume", "itertools", + "libcraft-blocks", "libcraft-core", "libcraft-inventory", "libcraft-items", @@ -879,7 +908,7 @@ dependencies = [ "feather-plugin-host-macros", "libloading", "log", - "paste 1.0.5", + "paste", "quill-common", "quill-plugin-format", "serde", @@ -909,10 +938,11 @@ dependencies = [ "byteorder", "bytes 0.5.6", "cfb8", + "either", "feather-base", - "feather-blocks", "flate2", "hematite-nbt", + "libcraft-blocks", "libcraft-core", "libcraft-items", "num-traits", @@ -932,7 +962,10 @@ dependencies = [ "base64", "chrono", "colored 2.0.0", + "const_format", "crossbeam-utils", + "data-generators", + "either", "feather-base", "feather-common", "feather-ecs", @@ -945,6 +978,8 @@ dependencies = [ "flume", "futures-lite", "hematite-nbt", + "itertools", + "konst", "libcraft-core", "libcraft-items", "log", @@ -979,17 +1014,8 @@ dependencies = [ name = "feather-worldgen" version = "0.6.0" dependencies = [ - "approx 0.3.2", - "bitvec", "feather-base", "log", - "num-traits", - "once_cell", - "rand 0.7.3", - "rand_xorshift", - "simdnoise", - "smallvec", - "strum", ] [[package]] @@ -1045,6 +1071,21 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "form_urlencoded" version = "1.0.1" @@ -1055,23 +1096,38 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" + [[package]] name = "funty" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1847abb9cb65d566acd5942e94aea9c8f547ad02c98e1649326fc0e8910b8b1e" +[[package]] +name = "futures-channel" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3dda0b6588335f360afc675d0564c17a77a2bda81ca178a4b6081bd86c7f0b" +dependencies = [ + "futures-core", +] + [[package]] name = "futures-core" -version = "0.3.17" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d" +checksum = "d0c8ff0461b82559810cdccfde3215c3f373807f5e5232b71479bff7bb2583d7" [[package]] name = "futures-io" -version = "0.3.17" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377" +checksum = "b1f9d34af5a1aac6fb380f735fe510746c38067c5bf16c7fd250280503c971b2" [[package]] name = "futures-lite" @@ -1094,6 +1150,27 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11" +[[package]] +name = "futures-task" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ee7c6485c30167ce4dfb83ac568a849fe53274c831081476ee13e0dce1aad72" + +[[package]] +name = "futures-util" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5cf40b47a271f77a8b1bec03ca09044d99d2372c0de244e66430761127164" +dependencies = [ + "futures-core", + "futures-io", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + [[package]] name = "generational-arena" version = "0.2.8" @@ -1166,6 +1243,25 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0a01e0497841a3b2db4f8afa483cce65f7e96a3498bd6c541734792aeac8fe7" +[[package]] +name = "h2" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9de88456263e249e241fcd211d3954e2c9b0ef7ccfc235a444eb367cae3689" +dependencies = [ + "bytes 1.1.0", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "hashbrown" version = "0.9.1" @@ -1218,6 +1314,77 @@ dependencies = [ "libc", ] +[[package]] +name = "http" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" +dependencies = [ + "bytes 1.1.0", + "fnv", + "itoa 1.0.1", +] + +[[package]] +name = "http-body" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +dependencies = [ + "bytes 1.1.0", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "hyper" +version = "0.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ec3e62bdc98a2f0393a5048e4c30ef659440ea6e0e572965103e72bd836f55" +dependencies = [ + "bytes 1.1.0", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 0.4.8", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes 1.1.0", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -1237,9 +1404,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" +checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" dependencies = [ "autocfg 1.0.1", "hashbrown 0.11.2", @@ -1288,11 +1455,17 @@ dependencies = [ "syn", ] +[[package]] +name = "ipnet" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9" + [[package]] name = "itertools" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" dependencies = [ "either", ] @@ -1303,6 +1476,12 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" + [[package]] name = "js-sys" version = "0.3.55" @@ -1312,6 +1491,28 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "konst" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf39e1fb26bc66fe74331504ed87b533d48c00da9bd04aafd58bbb12dc063a0" +dependencies = [ + "konst_macro_rules", + "konst_proc_macros", +] + +[[package]] +name = "konst_macro_rules" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66e329ff8b9745c0bc70fdb0a3721d8ac954e8bbc905e8e63a9450ab0acf08f3" + +[[package]] +name = "konst_proc_macros" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "984e109462d46ad18314f10e392c286c3d47bce203088a09012de1015b45b737" + [[package]] name = "lazy_static" version = "1.4.0" @@ -1350,13 +1551,9 @@ checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103" name = "libcraft-blocks" version = "0.1.0" dependencies = [ - "ahash 0.7.4", + "anyhow", "bincode", - "bytemuck", - "flate2", - "libcraft-core", "libcraft-items", - "libcraft-macros", "num-derive", "num-traits", "once_cell", @@ -1377,18 +1574,6 @@ dependencies = [ "vek", ] -[[package]] -name = "libcraft-generators" -version = "0.1.0" -dependencies = [ - "anyhow", - "bincode", - "flate2", - "libcraft-blocks", - "serde", - "serde_json", -] - [[package]] name = "libcraft-inventory" version = "0.1.0" @@ -1530,12 +1715,6 @@ dependencies = [ "libc", ] -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - [[package]] name = "matches" version = "0.1.9" @@ -1577,6 +1756,12 @@ dependencies = [ "autocfg 1.0.1", ] +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + [[package]] name = "minecraft-proxy" version = "0.1.0" @@ -1639,6 +1824,24 @@ dependencies = [ "getrandom 0.2.3", ] +[[package]] +name = "native-tls" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "nom" version = "5.1.2" @@ -1791,9 +1994,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" +checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" [[package]] name = "opaque-debug" @@ -1801,6 +2004,39 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "openssl" +version = "0.10.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-sys", +] + +[[package]] +name = "openssl-probe" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" + +[[package]] +name = "openssl-sys" +version = "0.9.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" +dependencies = [ + "autocfg 1.0.1", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "ordinalizer" version = "0.1.0" @@ -1851,31 +2087,12 @@ dependencies = [ "quill", ] -[[package]] -name = "paste" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" -dependencies = [ - "paste-impl", - "proc-macro-hack", -] - [[package]] name = "paste" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" -[[package]] -name = "paste-impl" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" -dependencies = [ - "proc-macro-hack", -] - [[package]] name = "pem" version = "0.8.3" @@ -1928,6 +2145,12 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + [[package]] name = "pkg-config" version = "0.3.19" @@ -1992,9 +2215,9 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" [[package]] name = "proc-macro2" -version = "1.0.29" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d" +checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" dependencies = [ "unicode-xid", ] @@ -2051,6 +2274,7 @@ dependencies = [ "bincode", "bytemuck", "derive_more", + "feather-ecs", "libcraft-core", "libcraft-particles", "libcraft-text", @@ -2092,9 +2316,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.9" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +checksum = "47aa80447ce4daf1717500037052af176af5d38cc3e571d9ec1c7353fc10c87d" dependencies = [ "proc-macro2", ] @@ -2195,15 +2419,6 @@ dependencies = [ "rand_core 0.6.3", ] -[[package]] -name = "rand_xorshift" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" -dependencies = [ - "rand_core 0.5.1", -] - [[package]] name = "rayon" version = "1.5.1" @@ -2287,6 +2502,41 @@ dependencies = [ "winapi", ] +[[package]] +name = "reqwest" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c4e0a76dc12a116108933f6301b95e83634e0c47b0afbed6abbaa0601e99258" +dependencies = [ + "base64", + "bytes 1.1.0", + "encoding_rs", + "futures-core", + "futures-util", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "lazy_static", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + [[package]] name = "ring" version = "0.16.20" @@ -2379,11 +2629,11 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.3.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 0.11.0", + "semver 1.0.4", ] [[package]] @@ -2411,6 +2661,16 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi", +] + [[package]] name = "scopeguard" version = "1.1.0" @@ -2433,6 +2693,29 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" +[[package]] +name = "security-framework" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" version = "0.9.0" @@ -2475,9 +2758,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.130" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" +checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" dependencies = [ "serde_derive", ] @@ -2493,9 +2776,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.130" +version = "1.0.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" +checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" dependencies = [ "proc-macro2", "quote", @@ -2508,7 +2791,7 @@ version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" dependencies = [ - "itoa", + "itoa 0.4.8", "ryu", "serde", ] @@ -2522,6 +2805,18 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9" +dependencies = [ + "form_urlencoded", + "itoa 0.4.8", + "ryu", + "serde", +] + [[package]] name = "serde_with" version = "1.10.0" @@ -2580,24 +2875,6 @@ dependencies = [ "libc", ] -[[package]] -name = "simdeez" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4032959efda4ba5e9c0108c4c88bfa79b2f6eaf1f1e965290d6e8cd058f50887" -dependencies = [ - "cfg-if 0.1.10", - "paste 0.1.18", -] - -[[package]] -name = "simdnoise" -version = "3.1.7" -source = "git+https://github.com/jackmott/rust-simd-noise?rev=3a4f3e6#3a4f3e6f79608616b6ee186dc665b601d015dc1e" -dependencies = [ - "simdeez", -] - [[package]] name = "simple-plugin" version = "0.1.0" @@ -2787,18 +3064,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.29" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ "proc-macro2", "quote", @@ -2877,6 +3154,30 @@ dependencies = [ "syn", ] +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" +dependencies = [ + "bytes 1.1.0", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + [[package]] name = "toml" version = "0.5.8" @@ -2886,6 +3187,12 @@ dependencies = [ "serde", ] +[[package]] +name = "tower-service" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" + [[package]] name = "tracing" version = "0.1.27" @@ -2918,6 +3225,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + [[package]] name = "typenum" version = "1.14.0" @@ -3045,7 +3358,7 @@ version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04d6626f32b226e2c5b35f23ea87eaf683f3d93eaeb16b4084d0683479616f0f" dependencies = [ - "approx 0.4.0", + "approx", "num-integer", "num-traits", "rustc_version 0.2.3", @@ -3065,6 +3378,16 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" @@ -3102,6 +3425,18 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.78" @@ -3462,6 +3797,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "winreg" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" +dependencies = [ + "winapi", +] + [[package]] name = "wyz" version = "0.2.0" diff --git a/Cargo.toml b/Cargo.toml index c4b46578e..a81a5730c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,6 @@ members = [ # libcraft "libcraft/core", "libcraft/blocks", - "libcraft/generators", "libcraft/items", "libcraft/macros", "libcraft/particles", @@ -30,8 +29,6 @@ members = [ # Feather (common and server) "feather/utils", - "feather/blocks", - "feather/blocks/generator", "feather/base", "feather/ecs", "feather/datapacks", @@ -41,6 +38,8 @@ members = [ "feather/plugin-host/macros", "feather/plugin-host", "feather/server", + + "data_generators", # Other "tools/proxy", diff --git a/constants/PROTOCOL_VERSION b/constants/PROTOCOL_VERSION new file mode 100644 index 000000000..d7a801b1e --- /dev/null +++ b/constants/PROTOCOL_VERSION @@ -0,0 +1 @@ +757 \ No newline at end of file diff --git a/constants/SERVER_DOWNLOAD_URL b/constants/SERVER_DOWNLOAD_URL new file mode 100644 index 000000000..2faa3b6b8 --- /dev/null +++ b/constants/SERVER_DOWNLOAD_URL @@ -0,0 +1 @@ +https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar \ No newline at end of file diff --git a/constants/VERSION b/constants/VERSION new file mode 100644 index 000000000..5ce8b3959 --- /dev/null +++ b/constants/VERSION @@ -0,0 +1 @@ +1.18.1 \ No newline at end of file diff --git a/constants/WORLD_SAVE_VERSION b/constants/WORLD_SAVE_VERSION new file mode 100644 index 000000000..47fd2ab34 --- /dev/null +++ b/constants/WORLD_SAVE_VERSION @@ -0,0 +1 @@ +2865 \ No newline at end of file diff --git a/data_generators/Cargo.toml b/data_generators/Cargo.toml new file mode 100644 index 000000000..2afedb6c4 --- /dev/null +++ b/data_generators/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "data-generators" +version = "0.1.0" +edition = "2021" + +[dependencies] +serde_json = "1.0.68" +serde = { version = "1", features = ["derive"] } +convert_case = "0.4.0" +regex = "1.5.4" +quote = "1.0.10" +proc-macro2 = "1.0.32" +rayon = "1.5.1" +reqwest = { version = "0.11.6", default-features = false, features = ["blocking", "native-tls"] } +once_cell = "1.8.0" +indexmap = { version = "1.7.0", features = [ "serde" ] } +bincode = "1.3.3" +fs_extra = "1.2.0" +log = "0.4.14" diff --git a/libcraft/generators/README.md b/data_generators/README.md similarity index 53% rename from libcraft/generators/README.md rename to data_generators/README.md index 1b8372f52..ece8de874 100644 --- a/libcraft/generators/README.md +++ b/data_generators/README.md @@ -1,19 +1,13 @@ # libcraft-generators This crate contains the generators for all of the autogenerated files in libcraft. -Code generators are written in python and live in `python` directory. The crate also contains rust code that generates the `raw_block_states` lookup table. - -There are both shell and powershell scripts available to invoke the generators and generate all code. - -Running these scripts requires `rustfmt`, `cargo` and `python` 3.6 or greater. Note that code generation is not a mandatory part of the build process, so you only need to regenerate code after modifying a generator script. - `libcraft-generators` currently provides the following generators: * Generator for `Biome` enum in `libcraft-core` * Generator for `BlockKind` enum in `libcraft-blocks` * Generator for `EntityKind` enum in `libcraft-core` * Generator for `Item` enum in `libcraft-items` * Generator for `SimplifiedBlockKind` enum in `libcraft-blocks` -* Generator for `Particle` enum in `libcraft-core` +* Generator for `BlockId` enum in `feather-blocks` * Generator for the block state lookup table Data is sourced from multiple sources. @@ -21,5 +15,4 @@ Data is sourced from multiple sources. of data. These files live in the `minecraft-data` subdirectory, which is a Git submodule. Make sure that Git submodules are up to date before running the scripts. * `libcraft-data` directory contains custom data files, made especially for libcraft. -* `raw_block_states` generator uses block state data generated by the vanilla minecraft `server.jar` - * The block state data can be generated by downloading the `server.jar` and running `java -cp server.jar net.minecraft.data.Main --all` \ No newline at end of file +* `BlockId` generator uses block state data generated by the vanilla minecraft server, which is extracted at runtime \ No newline at end of file diff --git a/data_generators/src/generators.rs b/data_generators/src/generators.rs new file mode 100644 index 000000000..9a9c1d99d --- /dev/null +++ b/data_generators/src/generators.rs @@ -0,0 +1,15 @@ +mod block_states; +mod blocks; +mod entities; +mod inventory; +mod items; +mod simplified_block; + +pub fn generate_all() { + items::generate(); + blocks::generate(); + simplified_block::generate(); + block_states::generate(); + inventory::generate(); + entities::generate(); +} diff --git a/feather/blocks/generator/src/lib.rs b/data_generators/src/generators/block_states.rs similarity index 62% rename from feather/blocks/generator/src/lib.rs rename to data_generators/src/generators/block_states.rs index b5b8fbd84..a5c487ec6 100644 --- a/feather/blocks/generator/src/lib.rs +++ b/data_generators/src/generators/block_states.rs @@ -1,16 +1,54 @@ -use crate::load::ident; -use heck::CamelCase; -use heck::SnakeCase; -use proc_macro2::{Ident, TokenStream}; -use quote::quote; -use quote::ToTokens; -use serde::ser::{SerializeSeq, SerializeStruct}; -use serde::{Serialize, Serializer}; use std::collections::BTreeMap; +use std::collections::{BTreeSet, HashMap}; +use std::iter::FromIterator; use std::ops::RangeInclusive; use std::str::FromStr; -mod load; +use convert_case::{Case, Casing}; +use indexmap::map::IndexMap; +use once_cell::sync::Lazy; +use proc_macro2::{Ident, TokenStream}; +use quote::ToTokens; +use quote::{format_ident, quote}; +use serde::ser::SerializeStruct; +use serde::Deserialize; +use serde::{Serialize, Serializer}; + +use crate::utils::{output, output_bytes}; + +pub fn generate() { + let blocks = load(); + + let table_src = generate_table(&blocks); + let properties_src = generate_properties(&blocks); + let block_fns_src = generate_block_fns(&blocks); + + output_bytes( + "libcraft/blocks/src/generated/table.dat", + bincode::serialize(&BlockTableSerialize::new( + &blocks.blocks, + &blocks.property_types, + )) + .unwrap(), + ); + output_bytes( + "libcraft/blocks/src/generated/vanilla_ids.dat", + bincode::serialize(&VanillaStateIdSerialize::new(&blocks)).unwrap(), + ); + + output( + "libcraft/blocks/src/generated/table.rs", + table_src.to_string().as_str(), + ); + output( + "libcraft/blocks/src/generated/properties.rs", + properties_src.to_string().as_str(), + ); + output( + "libcraft/blocks/src/generated/block_fns.rs", + block_fns_src.to_string().as_str(), + ); +} #[derive(Debug)] struct Blocks { @@ -22,7 +60,7 @@ struct Blocks { pub struct Block { /// Lowercase name of this block, minecraft: prefix removed. name: Ident, - /// `name.to_camel_case()` + /// `name.to_case(Case::UpperCamel)` name_camel_case: Ident, /// This block's properties. properties: Vec, @@ -136,7 +174,7 @@ impl Property { quote! { #value } } PropertyKind::Enum { name, .. } => { - let variant = ident(value.to_camel_case()); + let variant = format_ident!("{}", value.to_case(Case::UpperCamel)); quote! { #name::#variant } } } @@ -176,7 +214,7 @@ impl Property { let as_str: Vec<_> = variants .iter() .map(|ident| ident.to_string()) - .map(|x| x.to_snake_case()) + .map(|x| x.to_case(Case::Snake)) .collect(); let imp = quote! { @@ -243,27 +281,6 @@ pub struct Output { pub vanilla_ids_serialized: Vec, } -/// Generates code for the block report. -pub fn generate() -> anyhow::Result { - let blocks = load::load()?; - - let mut output = Output::default(); - - let table_src = generate_table(&blocks); - output.block_table.push_str(&table_src.to_string()); - let properties_src = generate_properties(&blocks); - output - .block_properties - .push_str(&properties_src.to_string()); - let block_fns_src = generate_block_fns(&blocks); - output.block_fns.push_str(&block_fns_src.to_string()); - - output.block_table_serialized = serialize_block_table(&blocks); - output.vanilla_ids_serialized = serialized_vanilla_ids(&blocks); - - Ok(output) -} - /// Generates the `BlockTable` struct and its implementation. fn generate_table(blocks: &Blocks) -> TokenStream { let mut fields = vec![]; @@ -295,12 +312,12 @@ fn generate_table(blocks: &Blocks) -> TokenStream { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(#from_u16) } }); - let set = ident(format!("set_{}", name)); + let set = format_ident!("set_{}", name); let doc = format!("Updates the state value for the given block kind such that its `{}` value is updated. Returns the new state, or `None` if the block does not have this property.", name); let to_u16 = property.tokens_for_to_u16(quote! { value }); @@ -313,7 +330,7 @@ fn generate_table(blocks: &Blocks) -> TokenStream { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ #to_u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -321,7 +338,7 @@ fn generate_table(blocks: &Blocks) -> TokenStream { } quote! { - use crate::BlockKind; + use crate::*; use std::convert::TryFrom; use std::str::FromStr; use serde::Deserialize; @@ -349,12 +366,12 @@ fn generate_block_fns(blocks: &Blocks) -> TokenStream { let default_state = &block.default_state; - let mut state_intializers = vec![]; + let mut state_initializers = vec![]; for (name, value) in default_state { let value_expr = blocks.property_types[name].expr_for_value(value); - let name_fn = ident(format!("set_{}", name)); - state_intializers.push(quote! { + let name_fn = format_ident!("set_{}", name); + state_initializers.push(quote! { block.#name_fn(#value_expr); }); } @@ -377,9 +394,9 @@ fn generate_block_fns(blocks: &Blocks) -> TokenStream { pub fn #name() -> Self { let mut block = Self { kind: BlockKind::#name_camel_case, - state: 0, + state: BlockKind::#name_camel_case.default_state_id() - BlockKind::#name_camel_case.min_state_id(), }; - #(#state_intializers)* + #(#state_initializers)* block } }) @@ -387,8 +404,8 @@ fn generate_block_fns(blocks: &Blocks) -> TokenStream { for property in blocks.property_types.values() { let property_name = &property.name; - let set = ident(format!("set_{}", property_name)); - let with = ident(format!("with_{}", property_name)); + let set = format_ident!("set_{}", property_name); + let with = format_ident!("with_{}", property_name); let f = quote! { pub fn #property_name(self) -> Option<#property> { @@ -416,9 +433,9 @@ fn generate_block_fns(blocks: &Blocks) -> TokenStream { fns.extend(generate_block_serializing_fns(blocks)); let res = quote! { + use crate::*; use std::collections::BTreeMap; use std::str::FromStr; - use crate::*; impl BlockId { #(#fns)* @@ -455,7 +472,7 @@ fn generate_block_serializing_fns(blocks: &Blocks) -> Vec { let mut to_properties_map_util_fns = vec![]; for block in &blocks.blocks { let name_camel_case = &block.name_camel_case; - let fn_to_call = ident(format!("{}_to_properties_map", block.name)); + let fn_to_call = format_ident!("{}_to_properties_map", block.name); to_properties_map_fn_match_arms.push(quote! { BlockKind::#name_camel_case => self.#fn_to_call() @@ -502,7 +519,7 @@ fn generate_block_serializing_fns(blocks: &Blocks) -> Vec { for block in &blocks.blocks { let name = &block.name; let name_str = format!("minecraft:{}", name); - let fn_to_call = ident(format!("{}_from_identifier_and_properties", block.name)); + let fn_to_call = format_ident!("{}_from_identifier_and_properties", block.name); from_identifier_and_properties_fn_match_arms.push(quote! { #name_str => Self::#fn_to_call(properties) @@ -515,7 +532,7 @@ fn generate_block_serializing_fns(blocks: &Blocks) -> Vec { let name = &property.name; let from_str = property.tokens_for_from_str(quote! { #name }); - let set_fn = ident(format!("set_{}", name)); + let set_fn = format_ident!("set_{}", name); retrievals.push(quote! { let #name = map.get(#property_real_name)?; @@ -567,13 +584,6 @@ fn generate_block_serializing_fns(blocks: &Blocks) -> Vec { fns } -/// Returns the serialized `BlockTable`. -fn serialize_block_table(blocks: &Blocks) -> Vec { - let table = BlockTableSerialize::new(&blocks.blocks, &blocks.property_types); - - bincode::serialize(&table).expect("bincode failed to serialize block table") -} - /// Serializable form of the generated `BlockTable`. #[derive(Debug)] struct BlockTableSerialize { @@ -622,33 +632,9 @@ impl BlockTableSerialize { } } -/// Returns the serialized state ID map. -fn serialized_vanilla_ids(blocks: &Blocks) -> Vec { - let table = VanillaStateIdSerialize::new(blocks); - - bincode::serialize(&table).expect("bincode failed to serialize vanilla ID table") -} - /// Serializable state ID table. -#[derive(Debug)] -struct VanillaStateIdSerialize { - ids: Vec>, // indexed by [kind as u16 as usize][state as usize] -} - -impl Serialize for VanillaStateIdSerialize { - fn serialize(&self, serializer: S) -> Result<::Ok, ::Error> - where - S: Serializer, - { - let mut state = serializer.serialize_seq(Some(self.ids.len()))?; - - for id in &self.ids { - state.serialize_element(id)?; - } - - state.end() - } -} +#[derive(Debug, Serialize)] +struct VanillaStateIdSerialize(Vec>); // indexed by [kind as u16 as usize][state as usize] impl VanillaStateIdSerialize { pub fn new(blocks: &Blocks) -> Self { @@ -690,7 +676,7 @@ impl VanillaStateIdSerialize { } } - Self { ids } + Self(ids) } } @@ -730,7 +716,7 @@ fn generate_properties(blocks: &Blocks) -> TokenStream { quote! { BlockKind::#name_camel_case } }); - let fn_name = ident(format!("has_{}", name)); + let fn_name = format_ident!("has_{}", name); fns.push(quote! { #[doc = #doc] pub fn #fn_name(self) -> bool { @@ -743,10 +729,344 @@ fn generate_properties(blocks: &Blocks) -> TokenStream { } quote! { - use crate::{BlockId, BlockKind}; + use crate::*; impl BlockId { #(#fns)* } } } + +/// Special property name overrides, to avoid names like "shape_neaaaassnn." +static NAME_OVERRIDES: Lazy> = Lazy::new(|| { + HashMap::from_iter([ + ("east_tf", "east_connected"), + ("east_usn", "east_wire"), + ("north_tf", "north_connected"), + ("north_usn", "north_wire"), + ("west_tf", "west_connected"), + ("west_usn", "west_wire"), + ("south_tf", "south_connected"), + ("south_usn", "south_wire"), + ("facing_dnswe", "facing_cardinal_and_down"), + ("facing_neswud", "facing_cubic"), + ("facing_nswe", "facing_cardinal"), + ("half_ul", "half_upper_lower"), + ("half_tb", "half_top_bottom"), + ("kind_slr", "chest_kind"), + ("kind_tbd", "slab_kind"), + ("kind_ns", "piston_kind"), + ("mode_cs", "comparator_mode"), + ("mode_slcd", "structure_block_mode"), + ("shape_neaaaa", "powered_rail_shape"), + ("shape_siioo", "stairs_shape"), + ("shape_neaaaassnn", "rail_shape"), + ("level_0_3", "cauldron_level"), + ("level_0_15", "water_level"), + ("type_slr", "chest_kind"), + ("type_tbd", "slab_kind"), + ("type_ns", "piston_kind"), + ]) +}); + +#[derive(Debug, Deserialize)] +struct BlocksReport { + #[serde(flatten)] + blocks: IndexMap, +} + +#[derive(Debug, Deserialize)] +struct BlockDefinition { + states: Vec, + #[serde(default)] + properties: BTreeMap>, // map from property name => possible values +} + +#[derive(Debug, Deserialize)] +struct StateDefinition { + id: u16, + #[serde(default)] + default: bool, + #[serde(default)] + properties: BTreeMap, +} + +#[derive(Debug, Default, Clone)] +struct PropertyStore { + /// Mapping from property name to the set of different sets + /// of values known for this property. + properties: BTreeMap>>, +} + +impl PropertyStore { + fn register(&mut self, property: String, possible_values: impl IntoIterator) { + self.properties + .entry(property) + .or_default() + .insert(possible_values.into_iter().collect()); + } + + fn finish(self) -> BTreeMap { + let mut map = BTreeMap::new(); + + for (name, possible_value_sets) in self.properties { + let name = Self::update_name(&name); + + if possible_value_sets.len() == 1 { + let possible_values = possible_value_sets.into_iter().next().unwrap(); + map.insert( + name.to_owned(), + Self::prop_from_possible_values_and_name(name, name, possible_values), + ); + } else { + // There are multiple variants of this property, each with their own set of values. + // Create properties suffixed with an index to differentiate between these variants. + for possible_values in possible_value_sets { + // Name is the name of the property followed by the first letter of each possible value. + // If it's an integer, it is the range of possible values. + let new_name = if possible_values[0].parse::().is_ok() { + let as_integer = possible_values + .iter() + .map(String::as_str) + .map(i32::from_str) + .map(Result::unwrap) + .collect::>(); + + let min = *as_integer.iter().min().unwrap(); + let max = *as_integer.iter().max().unwrap(); + + format!("{}_{}_{}", name, min, max) + } else { + let mut name = format!("{}_", name); + for value in &possible_values { + name.push(value.chars().next().unwrap().to_ascii_lowercase()); + } + name + }; + + let new_name = Self::update_name(&new_name); + + map.insert( + new_name.to_owned(), + Self::prop_from_possible_values_and_name(new_name, name, possible_values), + ); + } + } + } + + map + } + + fn update_name(name: &str) -> &str { + match NAME_OVERRIDES.get(&name) { + Some(x) => *x, + None => name, + } + } + + fn prop_from_possible_values_and_name( + name: &str, + real_name: &str, + possible_values: Vec, + ) -> Property { + Property { + name: format_ident!("{}", name), + real_name: real_name.to_owned(), + _name_camel_case: format_ident!("{}", name.to_case(Case::UpperCamel)), + kind: guess_property_kind(&possible_values, &name.to_case(Case::UpperCamel)), + possible_values, + } + } +} + +/// Parses the vanilla blocks report, returning a `Blocks`. +fn load() -> Blocks { + let mut report = + serde_json::from_str(&std::fs::read_to_string("generated/reports/blocks.json").unwrap()) + .unwrap(); + + let mut blocks = vec![]; + let properties = fix_property_names(&mut report); + + for (identifier, block) in &report.blocks { + if let Some(block) = load_block(identifier, block) { + blocks.push(block); + } + } + + Blocks { + blocks, + property_types: properties.finish(), + } +} + +fn fix_property_names(report: &mut BlocksReport) -> PropertyStore { + let mut store = PropertyStore::default(); + + for block in report.blocks.values() { + for (property_name, possible_values) in &block.properties { + store.register(property_name.to_owned(), possible_values.clone()); + } + } + + // Correct block property names + let result = store.clone().finish(); + + for block in report.blocks.values_mut() { + let block: &mut BlockDefinition = block; + let mut overrides = vec![]; + for (property_name, possible_values) in &mut block.properties { + if result.get(property_name).is_none() { + let name = if possible_values[0].parse::().is_ok() { + let as_integer = possible_values + .iter() + .map(String::as_str) + .map(i32::from_str) + .map(Result::unwrap) + .collect::>(); + + let min = *as_integer.iter().min().unwrap(); + let max = *as_integer.iter().max().unwrap(); + + format!("{}_{}_{}", property_name, min, max) + } else { + let mut name = format!("{}_", property_name); + for value in possible_values { + name.push(value.chars().next().unwrap().to_ascii_lowercase()); + } + name + }; + let name = if let Some(name) = NAME_OVERRIDES.get(&name.as_str()) { + (*name).to_owned() + } else { + name + }; + + overrides.push((property_name.to_owned(), name)); + } + } + + for (old_name, new_name) in overrides { + let old_values = block.properties.remove(&old_name).unwrap(); + block.properties.insert(new_name.clone(), old_values); + + for state in &mut block.states { + let old_value = state.properties.remove(&old_name).unwrap(); + state.properties.insert(new_name.clone(), old_value); + } + } + } + + store +} + +fn load_block(identifier: &str, block: &BlockDefinition) -> Option { + let identifier = identifier.strip_prefix("minecraft:").unwrap(); + + let name_camel_case = identifier.to_case(Case::UpperCamel); + + let properties = load_block_properties(block); + + let index_parameters = load_block_index_parameters(block, &properties); + + let ids = load_block_ids(block); + + let default_state = block + .states + .iter() + .find(|state| state.default) + .map(|state| state.properties.clone()) + .unwrap_or_default() + .into_iter() + .collect(); + + let block = Block { + name: format_ident!("{}", identifier), + name_camel_case: format_ident!("{}", name_camel_case), + properties, + ids, + default_state, + index_parameters, + }; + + Some(block) +} + +fn load_block_properties(block: &BlockDefinition) -> Vec { + let mut props = vec![]; + + for identifier in block.properties.keys() { + props.push(identifier.to_owned()); + } + + props +} + +fn load_block_index_parameters( + block: &BlockDefinition, + block_props: &[String], +) -> BTreeMap { + let mut map = BTreeMap::new(); + + let possible_values = block_props + .iter() + .map(|block_prop| block.properties.get(block_prop).map(Vec::len).unwrap_or(0)) + .map(|x| x as u16) + .collect::>(); + + for (i, block_prop) in block_props.iter().enumerate() { + let stride = possible_values.iter().skip(i + 1).product::(); + let offset_coefficient = stride * possible_values[i]; + + map.insert(block_prop.clone(), (offset_coefficient, stride)); + } + + map +} + +fn load_block_ids(block: &BlockDefinition) -> Vec<(Vec<(String, String)>, u16)> { + let mut res: Vec<(Vec<(String, String)>, u16)> = vec![]; + + for state in &block.states { + let properties = state.properties.clone().into_iter().collect(); + + res.push((properties, state.id)); + } + + res +} + +fn guess_property_kind(possible_values: &[String], property_struct_name: &str) -> PropertyKind { + let first = &possible_values[0]; + + if i32::from_str(first).is_ok() { + // integer + let as_integer: Vec<_> = possible_values + .iter() + .map(|x| i32::from_str(x).unwrap()) + .collect(); + + let min = *as_integer.iter().min().unwrap(); + let max = *as_integer.iter().max().unwrap(); + + PropertyKind::Integer { range: min..=max } + } else if bool::from_str(first).is_ok() { + // boolean + PropertyKind::Boolean + } else { + // enum + let name = format_ident!("{}", property_struct_name); + let variants: Vec<_> = possible_values + .iter() + .map(|variant| variant.to_case(Case::UpperCamel)) + .map(|ident| format_ident!("{}", ident)) + .collect(); + PropertyKind::Enum { name, variants } + } +} + +#[derive(Serialize)] +struct BlockStatesData { + block_table: BlockTableSerialize, + state_ids: VanillaStateIdSerialize, +} diff --git a/data_generators/src/generators/blocks.rs b/data_generators/src/generators/blocks.rs new file mode 100644 index 000000000..bb3d02e1a --- /dev/null +++ b/data_generators/src/generators/blocks.rs @@ -0,0 +1,374 @@ +use std::collections::HashMap; + +use convert_case::{Case, Casing}; + +use crate::utils::*; + +pub fn generate() { + let item_names_by_id: HashMap = + load_minecraft_json::>("items.json") + .unwrap() + .into_par_iter() + .map(|IdAndName { id, name }| (id, name)) + .collect(); + let material_dig_multipliers: HashMap> = + load_minecraft_json("materials.json").unwrap(); + let blocks: Vec = load_minecraft_json("blocks.json").unwrap(); + + let mut material_constant_refs = HashMap::new(); + + let mut dig_multiplier_constants = Vec::new(); + for (name, dig_multipliers) in material_dig_multipliers { + let multipliers = dig_multipliers + .into_iter() + .map(|(item, multiplier)| { + let item_name = + format_ident!("{}", item_names_by_id[&item].to_case(Case::UpperCamel)); + quote! { (libcraft_items::Item::#item_name, #multiplier) } + }) + .collect::>(); + + let constant = format_ident!( + "{}", + name.to_ascii_uppercase() + .replace(';', "_AND_") + .replace('/', "_WITH_") + ); + dig_multiplier_constants.push(quote! { + pub const #constant: &[(libcraft_items::Item, f32)] = &[#(#multipliers),*]; + }); + material_constant_refs.insert(name, quote! { #constant }); + } + let mut out = quote! { + #[allow(dead_code)] + pub mod dig_multipliers { + #(#dig_multiplier_constants)* + } + }; + + out.extend(generate_enum!( + BlockKind, + blocks + .par_iter() + .map(|block| block.name.to_case(Case::UpperCamel)) + .collect::>(), + [ + num_derive::FromPrimitive, + num_derive::ToPrimitive, + serde::Serialize, + serde::Deserialize + ], + #[serde(rename_all = "snake_case")] + )); + out.extend(generate_enum_property!( + BlockKind, + "id", + u32, + blocks + .iter() + .map(|block| (block.name.to_case(Case::UpperCamel), { + let id = block.id; + quote! { #id } + })) + .collect(), + true, + )); + out.extend(generate_enum_property!( + BlockKind, + "name", + &str, + blocks + .iter() + .map(|block| (block.name.to_case(Case::UpperCamel), { + let name = &block.name; + quote! { #name } + })) + .collect(), + true, + &'static str + )); + out.extend(generate_enum_property!( + BlockKind, + "namespaced_id", + &str, + blocks + .iter() + .map(|block| (block.name.to_case(Case::UpperCamel), { + let name = format!("minecraft:{}", block.name); + quote! { #name } + })) + .collect(), + true, + &'static str + )); + out.extend(generate_enum_property!( + BlockKind, + "resistance", + f32, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let resistance = block.resistance; + quote! { #resistance } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "hardness", + f32, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let hardness = block.hardness.unwrap_or(-1.0); + quote! { #hardness } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "stack_size", + u32, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let stack_size = block.stack_size; + quote! { #stack_size } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "diggable", + bool, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let diggable = block.diggable; + quote! { #diggable } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "transparent", + bool, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let transparent = block.transparent; + quote! { #transparent } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "default_state_id", + u16, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let default_state = block.default_state; + quote! { #default_state } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "min_state_id", + u16, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let min_state_id = block.min_state_id; + quote! { #min_state_id } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "max_state_id", + u16, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let max_state_id = block.max_state_id; + quote! { #max_state_id } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "light_emission", + u8, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let emit_light = block.emit_light; + quote! { #emit_light } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "light_filter", + u8, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let filter_light = block.filter_light; + quote! { #filter_light } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "solid", + bool, + blocks + .iter() + .map(|block| { + (block.name.to_case(Case::UpperCamel), { + let solid = block.bounding_box == "block"; + quote! { #solid } + }) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "dig_multipliers", + &'static [(libcraft_items::Item, f32)], + blocks + .iter() + .map(|block| { + ( + block.name.to_case(Case::UpperCamel), + material_constant_refs + .get(&block.name) + .cloned() + .unwrap_or_else(|| quote! { &[] }), + ) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "harvest_tools", + Option<&'static [libcraft_items::Item]>, + blocks + .iter() + .map(|block| { + ( + block.name.to_case(Case::UpperCamel), + if let Some(harvest_tools) = block.harvest_tools.as_ref() { + let items = harvest_tools + .keys() + .map(|item| { + format_ident!( + "{}", + item_names_by_id[&item.parse().unwrap()] + .to_case(Case::UpperCamel) + ) + }) + .collect::>(); + quote! { + Some(&[#(libcraft_items::Item::#items),*]) + } + } else { + quote! { None } + }, + ) + }) + .collect(), + )); + out.extend(generate_enum_property!( + BlockKind, + "drops", + &'static [libcraft_items::Item], + blocks + .iter() + .map(|block| { + let items = block + .drops + .iter() + .map(|item| { + format_ident!("{}", item_names_by_id[item].to_case(Case::UpperCamel)) + }) + .collect::>(); + ( + block.name.to_case(Case::UpperCamel), + quote! { + &[#(libcraft_items::Item::#items),*] + }, + ) + }) + .collect() + )); + + output("libcraft/blocks/src/block.rs", out.to_string().as_str()); +} + +#[derive(Deserialize)] +#[serde(rename_all = "camelCase")] +struct Block { + id: u32, + name: String, + #[allow(dead_code)] + display_name: String, + hardness: Option, + resistance: f32, + stack_size: u32, + diggable: bool, + #[allow(dead_code)] + material: String, + transparent: bool, + emit_light: u8, + filter_light: u8, + default_state: u16, + min_state_id: u16, + max_state_id: u16, + #[allow(dead_code)] + states: Vec, + harvest_tools: Option>, + drops: Vec, + bounding_box: String, +} + +#[allow(dead_code)] +#[derive(Deserialize)] +struct State { + name: String, + r#type: StateType, + num_values: usize, + values: Option>, +} + +#[allow(dead_code)] +#[derive(Deserialize)] +#[serde(rename_all = "camelCase")] +enum StateType { + Bool, + Int, + Enum, +} diff --git a/data_generators/src/generators/entities.rs b/data_generators/src/generators/entities.rs new file mode 100644 index 000000000..6edd8e23b --- /dev/null +++ b/data_generators/src/generators/entities.rs @@ -0,0 +1,205 @@ +use convert_case::{Case, Casing}; + +use crate::utils::*; + +pub fn generate() { + let entities: Vec = load_minecraft_json("entities.json").unwrap(); + let mut out = generate_enum!( + EntityKind, + entities.par_iter() + .map(|e| e.name.to_case(Case::UpperCamel)) + .collect::>(), + [serde::Serialize, serde::Deserialize], + #[serde(try_from = "String", into = "&'static str")] + ); + + out.extend(generate_enum_property!( + EntityKind, + "id", + u32, + entities + .iter() + .map(|e| ( + e.name.to_case(Case::UpperCamel), + e.id.to_string().parse().unwrap() + )) + .collect(), + true + )); + + out.extend(generate_enum_property!( + EntityKind, + "width", + f32, + entities + .iter() + .map(|e| (e.name.to_case(Case::UpperCamel), { + let width = e.width; + quote! { #width } + })) + .collect() + )); + + out.extend(generate_enum_property!( + EntityKind, + "height", + f32, + entities + .iter() + .map(|e| (e.name.to_case(Case::UpperCamel), { + let height = e.height; + quote! { #height } + })) + .collect() + )); + + out.extend(generate_enum_property!( + EntityKind, + "name", + &str, + entities + .iter() + .map(|e| ( + e.name.to_case(Case::UpperCamel), + format!("\"{}\"", e.name).parse().unwrap() + )) + .collect(), + true, + &'static str + )); + + out.extend(generate_enum_property!( + EntityKind, + "namespaced_id", + &str, + entities + .iter() + .map(|e| ( + e.name.to_case(Case::UpperCamel), + format!("\"minecraft:{}\"", e.name).parse().unwrap() + )) + .collect(), + true, + &'static str + )); + + out.extend(quote! { + use std::convert::TryFrom; + use std::str::FromStr; + + impl TryFrom for EntityKind { + type Error = &'static str; + + fn try_from(value: String) -> Result { + if let Some(kind) = EntityKind::from_name(value.as_str()) { + Ok(kind) + } else { + Err("Unknown entity kind") + } + } + } + + impl From for &'static str { + fn from(i: EntityKind) -> Self { + i.name() + } + } + + impl FromStr for EntityKind { + type Err = &'static str; + + fn from_str(s: &str) -> Result { + if let Some(kind) = EntityKind::from_name(s) { + Ok(kind) + } else { + Err("Unknown entity kind") + } + } + } + }); + + output("libcraft/core/src/entity.rs", out.to_string().as_str()); + + let mut markers = quote! { + use bytemuck::{Pod, Zeroable}; + }; + for entity in entities.iter() { + let name = format_ident!("{}", entity.name.to_case(Case::UpperCamel)); + let doc = format!("A marker component for {} entities.", entity.name); + markers.extend(quote! { + #[derive(Debug, Copy, Clone, Zeroable, Pod)] + #[repr(C)] + #[doc = #doc] + pub struct #name; + + pod_component_impl!(#name); + }); + } + output("quill/common/src/entities.rs", markers.to_string().as_str()); + + for entity in entities.iter() { + let path = &format!("feather/common/src/entities/{}.rs", entity.name); + let file = std::fs::read_to_string(path); + if file.is_err() || file.unwrap().starts_with(GENERATED_COMMENT) { + let name = format_ident!("{}", entity.name.to_case(Case::UpperCamel)); + output( + path, + quote! { + use base::EntityKind; + use ecs::EntityBuilder; + use quill_common::entities::#name; + + pub fn build_default(builder: &mut EntityBuilder) { + super::build_default(builder); + builder.add(#name).add(EntityKind::#name); + } + } + .to_string() + .as_str(), + ); + } + } + + let name_snake = entities + .iter() + .map(|e| format_ident!("{}", e.name)) + .collect::>(); + let name_upper_camel = entities + .iter() + .map(|e| format_ident!("{}", e.name.to_case(Case::UpperCamel))); + output( + "feather/common/src/entities.rs", + quote! { + use base::EntityKind; + use ecs::EntityBuilder; + use quill_common::components::OnGround; + use uuid::Uuid; + + #[doc = "Adds default components shared between all entities."] + fn build_default(builder: &mut EntityBuilder) { + builder + .add(Uuid::new_v4()) + .add(OnGround(true)); + } + + #(pub mod #name_snake;)* + + pub fn add_entity_components(builder: &mut EntityBuilder, kind: EntityKind) { + match kind { + #(EntityKind::#name_upper_camel => #name_snake::build_default(builder)),*, + } + } + } + .to_string() + .as_str(), + ); +} + +#[derive(Deserialize)] +#[serde(rename_all = "camelCase")] +struct EntityInfo { + id: u32, + name: String, + width: f32, + height: f32, +} diff --git a/data_generators/src/generators/inventory.rs b/data_generators/src/generators/inventory.rs new file mode 100644 index 000000000..ffdb11d79 --- /dev/null +++ b/data_generators/src/generators/inventory.rs @@ -0,0 +1,226 @@ +use convert_case::{Case, Casing}; +use indexmap::IndexMap; +use proc_macro2::TokenStream; +use serde::de::{Error, Unexpected}; +use serde::Deserializer; +use std::collections::HashMap; + +use crate::utils::*; + +pub fn generate() { + let inventories: Inventories = load_libcraft_json("inventory.json").unwrap(); + + let mut out = generate_enum!( + Area, + inventories + .areas + .iter() + .map(|area| area.0.to_case(Case::UpperCamel)) + .collect::>() + ); + + let mut window_offsets = HashMap::new(); + for (name, window) in &inventories.windows { + let mut offset = 0; + let mut offsets = IndexMap::new(); + for (inv_area, slots) in &window.slots { + offsets.insert(inv_area, offset..(offset + slots)); + offset += slots; + } + window_offsets.insert(name, offsets); + } + + let mut window_declaration = Vec::new(); + let mut index_to_slot = TokenStream::new(); + let mut slot_to_index = TokenStream::new(); + for (name, window) in &inventories.windows { + let window_name = format_ident!("{}", name.0.to_case(Case::UpperCamel)); + let window_inventories = window + .inventories + .iter() + .map(|inv| format_ident!("{}", inv.0)) + .collect::>(); + + window_declaration.push(quote! { + #window_name { + #(#window_inventories: crate::Inventory),* + } + }); + + let window_binding = quote! { + Window::#window_name { + #(#window_inventories),* + } + }; + let inv = window_offsets + .get(name) + .unwrap() + .keys() + .map(|inv_area| format_ident!("{}", inv_area.0 .0)) + .collect::>(); + let area = window_offsets + .get(name) + .unwrap() + .keys() + .map(|inv_area| format_ident!("{}", inv_area.1 .0.to_case(Case::UpperCamel))) + .collect::>(); + let offset_start = window_offsets + .get(name) + .unwrap() + .values() + .map(|offset| offset.start) + .collect::>(); + let offset_end = window_offsets + .get(name) + .unwrap() + .values() + .map(|offset| offset.end - 1) + .collect::>(); + index_to_slot.extend(quote! { + #((#window_binding, #offset_start..=#offset_end) => { + Some((#inv, Area::#area, index - #offset_start)) + },)* + }); + slot_to_index.extend(quote! { + #((#window_binding, Area::#area) if #inv.ptr_eq(inventory) => { + Some(slot + #offset_start) + })*, + }); + } + let mut inventory_declaration = Vec::new(); + let mut area_slice = TokenStream::new(); + let mut areas = TokenStream::new(); + let mut new_backing = TokenStream::new(); + let mut new_inventory = TokenStream::new(); + for (name, inventory_areas) in &inventories.inventories { + let inventory_name = format_ident!("{}", name.0); + let inventory_name_camel_case = format_ident!("{}", name.0.to_case(Case::UpperCamel)); + let area_name = inventory_areas + .keys() + .map(|area| format_ident!("{}", area.0)) + .collect::>(); + let area_name_camel_case = inventory_areas + .keys() + .map(|area| format_ident!("{}", area.0.to_case(Case::UpperCamel))) + .collect::>(); + let area_size = inventory_areas.values().collect::>(); + inventory_declaration.push(quote! { + #inventory_name_camel_case { + #(#area_name: [T; #area_size]),* + } + }); + let inventory_binding = quote! { + InventoryBacking::#inventory_name_camel_case { + #(#area_name),* + } + }; + area_slice.extend(quote! { + #((#inventory_binding, Area::#area_name_camel_case) => Some(#area_name),)* + }); + areas.extend(quote! { + InventoryBacking::#inventory_name_camel_case { .. } => &[ #(Area::#area_name_camel_case),* ], + }); + new_backing.extend(quote! { + pub fn #inventory_name() -> Self where T: Default { + InventoryBacking::#inventory_name_camel_case { + #(#area_name: Default::default()),* + } + } + }); + new_inventory.extend(quote! { + pub fn #inventory_name() -> Self { + Self { + backing: std::sync::Arc::new(InventoryBacking::#inventory_name()) + } + } + }); + } + out.extend(quote! { + #[derive(Debug, Clone)] + pub enum Window { + #(#window_declaration),* + } + impl Window { + pub fn index_to_slot(&self, index: usize) -> Option<(&crate::Inventory, Area, usize)> { + match (self, index) { + #index_to_slot + _ => None + } + } + pub fn slot_to_index(&self, inventory: &crate::Inventory, area: Area, slot: usize) -> Option { + match (self, area) { + #slot_to_index + _ => None + } + } + } + #[derive(Debug, Clone)] + pub enum InventoryBacking { + #(#inventory_declaration),* + } + impl InventoryBacking { + #new_backing + pub fn area_slice(&self, area: Area) -> Option<&[T]> { + match (self, area) { + #area_slice + _ => None + } + } + pub fn areas(&self) -> &'static [Area] { + match self { + #areas + } + } + } + impl crate::Inventory { + #new_inventory + } + }); + + output( + "libcraft/inventory/src/inventory.rs", + out.to_string().as_str(), + ); +} + +#[derive(Deserialize)] +struct Inventories { + areas: Vec, + inventories: HashMap>, + windows: HashMap, +} + +#[derive(Deserialize)] +struct WindowInfo { + inventories: Vec, + slots: IndexMap, +} + +#[derive(Deserialize, Eq, PartialEq, Hash)] +struct AreaName(String); +#[derive(Deserialize, Eq, PartialEq, Hash)] +struct InventoryName(String); +#[derive(Deserialize, Eq, PartialEq, Hash)] +struct WindowName(String); + +#[derive(Eq, PartialEq, Hash)] +struct InventoryArea(InventoryName, AreaName); + +impl<'de> Deserialize<'de> for InventoryArea { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let s = String::deserialize(deserializer)?; + let (inventory, area) = s.split_once(':').ok_or_else(|| { + D::Error::invalid_value( + Unexpected::Str(&s), + &"string in format 'inventory_name:area_name'", + ) + })?; + Ok(InventoryArea( + InventoryName(inventory.to_owned()), + AreaName(area.to_owned()), + )) + } +} diff --git a/data_generators/src/generators/items.rs b/data_generators/src/generators/items.rs new file mode 100644 index 000000000..0775fc7e2 --- /dev/null +++ b/data_generators/src/generators/items.rs @@ -0,0 +1,154 @@ +use convert_case::{Case, Casing}; + +use crate::utils::*; + +pub fn generate() { + let data: Vec = load_minecraft_json("items.json").unwrap(); + + let mut out = generate_enum!( + Item, + data.par_iter() + .map(|item| item.name.to_case(Case::UpperCamel)) + .collect::>(), + [serde::Serialize, serde::Deserialize], + #[serde(try_from = "String", into = "&'static str")] + ); + + out.extend(generate_enum_property!( + Item, + "id", + u32, + data.iter() + .map(|item| ( + item.name.to_case(Case::UpperCamel), + item.id.to_string().parse().unwrap() + )) + .collect(), + true + )); + out.extend(generate_enum_property!( + Item, + "name", + &str, + data.iter() + .map(|item| ( + item.name.to_case(Case::UpperCamel), + format!("\"{}\"", item.name).parse().unwrap() + )) + .collect(), + true, + &'static str + )); + out.extend(generate_enum_property!( + Item, + "namespaced_id", + &str, + data.iter() + .map(|item| ( + item.name.to_case(Case::UpperCamel), + format!("\"minecraft:{}\"", item.name).parse().unwrap() + )) + .collect(), + true, + &'static str + )); + out.extend(generate_enum_property!( + Item, + "stack_size", + u32, + data.iter() + .map(|item| { + ( + item.name.to_case(Case::UpperCamel), + item.stack_size.to_string().parse().unwrap(), + ) + }) + .collect(), + )); + out.extend(generate_enum_property!( + Item, + "max_durability", + Option, + data.iter() + .map(|item| { + ( + item.name.to_case(Case::UpperCamel), + item.max_durability + .map_or("None".parse().unwrap(), |durability| { + format!("Some({})", durability).parse().unwrap() + }), + ) + }) + .collect(), + )); + out.extend(generate_enum_property!( + Item, + "fixed_with", + Vec<&str>, + data.iter() + .map(|item| { + ( + item.name.to_case(Case::UpperCamel), + format!( + "vec![{}]", + item.fixed_with + .par_iter() + .flatten() + .map(|c| format!("\"{}\", ", c)) + .collect::() + ) + .parse() + .unwrap(), + ) + }) + .collect(), + )); + out.extend(quote! { + use std::convert::TryFrom; + use std::str::FromStr; + + impl TryFrom for Item { + type Error = &'static str; + + fn try_from(value: String) -> Result { + if let Some(item) = Item::from_name(value.as_str()) { + Ok(item) + } else { + Err("Unknown item name") + } + } + } + + impl From for &'static str { + fn from(i: Item) -> Self { + i.name() + } + } + + impl FromStr for Item { + type Err = &'static str; + + fn from_str(s: &str) -> Result { + if let Some(item) = Item::from_name(s) { + Ok(item) + } else { + Err("Unknown item name") + } + } + } + }); + + output("libcraft/items/src/item.rs", out.to_string().as_str()); +} + +#[derive(Deserialize, Debug)] +#[serde(rename_all = "camelCase")] +struct Item { + id: u32, + name: String, + #[allow(dead_code)] + display_name: String, + stack_size: i32, + max_durability: Option, + fixed_with: Option>, +} diff --git a/data_generators/src/generators/simplified_block.rs b/data_generators/src/generators/simplified_block.rs new file mode 100644 index 000000000..7edd87ead --- /dev/null +++ b/data_generators/src/generators/simplified_block.rs @@ -0,0 +1,57 @@ +use std::collections::HashMap; + +use convert_case::{Case, Casing}; +use regex::Regex; + +use crate::utils::*; +use indexmap::map::IndexMap; + +pub fn generate() { + let simplified_blocks: SimplifiedBlocks = load_libcraft_json("simplified_block.json").unwrap(); + let blocks: Vec = load_minecraft_json("blocks.json").unwrap(); + + let mut out = quote! { use crate::BlockKind; }; + + let mappings = blocks + .into_par_iter() + .map(|block| { + ( + block.name.to_case(Case::UpperCamel), + simplified_blocks + .regexes + .iter() + .filter(|(_, regexp)| Regex::new(regexp).unwrap().is_match(&block.name)) + .map(|(kind, _)| kind.to_case(Case::UpperCamel)) + .next() + .unwrap_or_else(|| block.name.to_case(Case::UpperCamel)), + ) + }) + .collect::>(); + + let mut variants = mappings.values().collect::>(); + variants.sort(); + variants.dedup(); + out.extend(generate_enum!(SimplifiedBlockKind, variants)); + out.extend(generate_enum_property!( + BlockKind, + "simplified_kind", + SimplifiedBlockKind, + mappings + .into_iter() + .map(|(key, value)| ( + key, + format!("SimplifiedBlockKind::{}", value).parse().unwrap() + )) + .collect(), + )); + + output( + "libcraft/blocks/src/simplified_block.rs", + out.to_string().as_str(), + ); +} + +#[derive(Deserialize)] +struct SimplifiedBlocks { + regexes: IndexMap, +} diff --git a/data_generators/src/lib.rs b/data_generators/src/lib.rs new file mode 100644 index 000000000..638fabfde --- /dev/null +++ b/data_generators/src/lib.rs @@ -0,0 +1,47 @@ +use fs_extra::dir::CopyOptions; +use std::path::PathBuf; + +const VERSION: &str = include_str!("../../constants/VERSION"); + +pub fn extract_vanilla_data() { + const SERVER_JAR: &str = "server.jar"; + + if std::fs::read_to_string("generated/.version").ok() != Some(VERSION.to_string()) { + let _ = std::fs::remove_dir_all("generated"); + if !PathBuf::from(SERVER_JAR).is_file() { + log::info!("Downloading Minecraft server jar"); + std::fs::write( + SERVER_JAR, + reqwest::blocking::get(include_str!("../../constants/SERVER_DOWNLOAD_URL")) + .unwrap() + .bytes() + .unwrap(), + ) + .unwrap(); + } + + log::info!("Running vanilla data generators"); + std::process::Command::new("java") + .args( + format!( + "-DbundlerMainClass=net.minecraft.data.Main -jar {} --all", + SERVER_JAR + ) + .split_whitespace(), + ) + .spawn() + .unwrap() + .wait() + .unwrap(); + std::fs::write("generated/.version", VERSION).unwrap(); + std::fs::remove_file(SERVER_JAR).unwrap(); + std::fs::remove_dir_all("libraries").unwrap(); + std::fs::remove_dir_all("logs").unwrap(); + std::fs::remove_dir_all("versions").unwrap(); + + log::info!("Copying ./generated/reports/worldgen/ to ./worldgen/"); + fs_extra::dir::create("worldgen", true).unwrap(); + fs_extra::dir::copy("generated/reports/worldgen/", "", &CopyOptions::default()) + .expect("Cannot copy ./generated/reports/worldgen/ to ./worldgen/"); + } +} diff --git a/data_generators/src/main.rs b/data_generators/src/main.rs new file mode 100644 index 000000000..cdbc52499 --- /dev/null +++ b/data_generators/src/main.rs @@ -0,0 +1,13 @@ +use data_generators::extract_vanilla_data; + +mod generators; +mod utils; + +fn main() { + extract_vanilla_data(); + + println!("Generating code"); + generators::generate_all(); + + println!("Done!"); +} diff --git a/data_generators/src/utils.rs b/data_generators/src/utils.rs new file mode 100644 index 000000000..6efbdbbd1 --- /dev/null +++ b/data_generators/src/utils.rs @@ -0,0 +1,226 @@ +use std::collections::HashMap; +use std::path::PathBuf; + +pub use quote::{format_ident, quote, ToTokens}; +pub use rayon::prelude::*; +use serde::de::DeserializeOwned; +pub use serde::Deserialize; + +pub use crate::{generate_enum, generate_enum_property}; + +const MINECRAFT_FILES_PATH: &str = "minecraft-data/data"; +const MINECRAFT_DATA_VERSION: &str = "1.18"; +const LIBCRAFT_FILES_PATH: &str = "libcraft-data"; +pub const GENERATED_COMMENT: &str = "// This file is @generated. Please do not edit."; + +pub fn load_minecraft_json(name: &str) -> Result +where + T: DeserializeOwned, +{ + let data_paths: HashMap>> = + serde_json::from_str( + &std::fs::read_to_string(format!("{}/dataPaths.json", MINECRAFT_FILES_PATH)).unwrap(), + )?; + let paths = &data_paths["pc"][MINECRAFT_DATA_VERSION]; + serde_json::from_str( + &std::fs::read_to_string(format!( + "{}/{}/{}", + MINECRAFT_FILES_PATH, + paths[name.trim_end_matches(".json")], + name + )) + .unwrap(), + ) +} + +pub fn load_libcraft_json(name: &str) -> Result +where + T: DeserializeOwned, +{ + serde_json::from_slice(&std::fs::read(format!("{}/{}", LIBCRAFT_FILES_PATH, name)).unwrap()) +} + +/// Writes the contents to a file in provided path, then runs rustfmt. +/// +/// Parameters: +/// path: Path to destination file, relative to leather root +/// content: Contents to be written in the file +pub fn output(file: &str, content: &str) { + let path = std::env::current_dir().unwrap().join(file); + if !path.parent().unwrap().exists() { + panic!( + "Couldn't write to file.\nPath {} does not exist", + path.parent().unwrap().to_str().unwrap() + ); + } + std::fs::write(&path, format!("{}\n{}", GENERATED_COMMENT, content)).unwrap(); + println!("Generated {}", path.to_str().unwrap()); + + rustfmt(path) +} + +pub fn output_bytes(file: &str, content: impl AsRef<[u8]>) { + let path = std::env::current_dir().unwrap().join(file); + if !path.parent().unwrap().exists() { + panic!( + "Couldn't write to file.\nPath {} does not exist", + path.parent().unwrap().to_str().unwrap() + ); + } + std::fs::write(&path, content).unwrap(); + println!("Generated {}", path.to_str().unwrap()); +} + +fn rustfmt(path: impl Into + Clone) { + std::process::Command::new("rustfmt") + .arg(path.into().to_str().unwrap()) + .spawn() + .unwrap() + .wait() + .unwrap(); +} + +/// Generates an enum definition with the provided variants and extra derives. +#[macro_export] +macro_rules! generate_enum { + ($name: ident, $variants: expr $(,)?) => { + generate_enum!($name, $variants, []) + }; + ($name: ident, $variants: expr, [$($derive: ty),* $(,)?] $(, $(#[$prelude: meta]),*)?) => { + { + use proc_macro2::TokenStream; + + let prelude: TokenStream = quote! { + $($( + #[$prelude] + )*)? + }; + + let variants = $variants + .into_iter() + .map(|variant| format_ident!("{}", variant)) + .collect::>(); + let derives = quote! { #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, $($derive),*)] }; + + quote! { + #derives + #prelude + pub enum $name { + #(#variants),* + } + + impl $name { + #[inline] + pub fn values() -> &'static [$name] { + use $name::*; + &[ + #(#variants),* + ] + } + } + } + } + }; +} + +/// Generates lookup functions for an enum. +/// +/// Generates two function for an enum, one which maps the enum value to some +/// property value and one which does the reverse (returning an Option) +#[macro_export] +macro_rules! generate_enum_property { + ($enum_name: ident, $property_name: literal, $typ: ty, $mapping: expr $(,)?) => { + generate_enum_property!($enum_name, $property_name, $typ, $mapping, false) + }; + ($enum_name: ident, $property_name: literal, $typ: ty, $mapping: expr, $reverse: expr $(,)?) => { + generate_enum_property!($enum_name, $property_name, $typ, $mapping, $reverse, $typ) + }; + ($enum_name: ident, $property_name: literal, $typ: ty, $mapping: expr, $reverse: expr, $return_type: ty $(,)?) => { + generate_enum_property!( + $enum_name, + $property_name, + $typ, + $mapping, + $reverse, + $return_type, + false + ) + }; + ($enum_name: ident, $property_name: literal, $typ: ty, $mapping: expr, $reverse: expr, $return_type: ty, $needs_bindings: expr $(,)?) => {{ + use proc_macro2::TokenStream; + use std::collections::HashMap; + + let property_name: &str = $property_name; + let mapping: HashMap = $mapping; + let reverse: bool = $reverse; + let needs_bindings: bool = $needs_bindings; + + let mut self_to_prop = Vec::new(); + let mut prop_to_self = Vec::new(); + + for (enum_variant, property_value) in mapping { + let fields = if needs_bindings { + quote! { { .. } } + } else { + quote! {} + }; + let enum_variant = format_ident!("{}", enum_variant); + self_to_prop.push(quote! { + $enum_name::#enum_variant #fields => { #property_value } + }); + prop_to_self.push(quote! { + #property_value => Some($enum_name::#enum_variant) + }); + } + + let mut fns = Vec::new(); + + let property_name_ident = format_ident!("{}", property_name); + let doc = format!( + "Returns the `{}` property of this `{}`.", + property_name, + quote! { $enum_name }.to_string() + ); + fns.push(quote! { + #[doc = #doc] + #[inline] + pub fn #property_name_ident(&self) -> $return_type { + match self { + #(#self_to_prop),* + } + } + }); + + if reverse { + let fn_name = format_ident!("from_{}", property_name); + let doc = format!( + "Gets a `{}` by its `{}`.", + quote! { $enum_name }.to_string(), + property_name + ); + fns.push(quote! { + #[doc = #doc] + #[inline] + pub fn #fn_name(#property_name_ident: $typ) -> Option { + match #property_name_ident { + #(#prop_to_self),*, + _ => None + } + } + }); + } + + quote! { + impl $enum_name { + #(#fns)* + } + } + }}; +} + +#[derive(Deserialize, Debug)] +#[serde(rename_all = "camelCase")] +pub struct IdAndName { + pub id: u32, + pub name: String, +} diff --git a/feather/base/Cargo.toml b/feather/base/Cargo.toml index 2affea12b..887ee5dd7 100644 --- a/feather/base/Cargo.toml +++ b/feather/base/Cargo.toml @@ -10,9 +10,10 @@ anyhow = "1" arrayvec = { version = "0.7", features = [ "serde" ] } bitflags = "1" bitvec = "0.21" -blocks = { path = "../blocks", package = "feather-blocks" } byteorder = "1" +derive_more = "0.99.17" hematite-nbt = { git = "https://github.com/PistonDevelopers/hematite_nbt" } +itertools = "0.10.3" libcraft-blocks = { path = "../../libcraft/blocks" } libcraft-core = { path = "../../libcraft/core" } @@ -35,6 +36,9 @@ thiserror = "1" uuid = { version = "0.8", features = [ "serde" ] } vek = "0.14" bytemuck = { version = "1", features = ["derive"] } +konst = "0.2.13" +once_cell = "1.9.0" +indexmap = "1.8.0" [dev-dependencies] rand = "0.8" diff --git a/feather/base/src/anvil/entity.rs b/feather/base/src/anvil/entity.rs index d5239d6ca..10d462912 100644 --- a/feather/base/src/anvil/entity.rs +++ b/feather/base/src/anvil/entity.rs @@ -1,11 +1,10 @@ use arrayvec::ArrayVec; +use libcraft_core::{vec3, Position, Vec3d}; use libcraft_items::{Item, ItemStack, ItemStackBuilder}; use serde::ser::Error; use serde::{Deserialize, Serialize, Serializer}; use thiserror::Error; -use crate::{vec3, Position, Vec3d}; - #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] pub enum EntityDataKind { Item, @@ -179,16 +178,6 @@ pub struct ItemData { pub nbt: Option, } -impl Default for ItemData { - fn default() -> Self { - Self { - count: 0, - item: Item::Air.name().to_owned(), - nbt: None, - } - } -} - impl From for ItemStack { fn from(item: ItemData) -> Self { ItemStack::from(&item) @@ -200,7 +189,7 @@ impl From<&ItemData> for ItemStack { fn from(item: &ItemData) -> Self { ItemNbt::item_stack( &item.nbt, - Item::from_name(item.item.as_str()).unwrap_or(Item::Air), + Item::from_name(item.item.as_str()).unwrap(), item.count as u8, ) } @@ -268,7 +257,7 @@ where } /// Data for an Item entity (`minecraft:item`). -#[derive(Clone, Default, Serialize, Deserialize, Debug)] +#[derive(Clone, Serialize, Deserialize, Debug)] pub struct ItemEntityData { // Inherit base entity data #[serde(flatten)] diff --git a/feather/base/src/anvil/level.rs b/feather/base/src/anvil/level.rs index 7036e243f..1f5c5ba08 100644 --- a/feather/base/src/anvil/level.rs +++ b/feather/base/src/anvil/level.rs @@ -1,6 +1,5 @@ //! Implements level.dat file loading. -use libcraft_core::Biome; use libcraft_items::Item; use serde::{Deserialize, Serialize}; use std::io::{Cursor, Read, Write}; @@ -82,9 +81,9 @@ impl LevelData { let mut buf = vec![]; file.read_to_end(&mut buf)?; - nbt::from_gzip_reader::<_, Root>(Cursor::new(&buf)) + nbt::from_gzip_reader(Cursor::new(buf)) .map_err(Into::into) - .map(|root| root.data) + .map(|root: Root| root.data) } pub fn save_to_file(&self, file: &mut File) -> anyhow::Result<()> { @@ -137,7 +136,7 @@ impl Default for SuperflatGeneratorOptions { height: 1, }, ], - biome: Biome::Plains.name().to_string(), + biome: "minecraft:plains".to_string(), } } } @@ -145,7 +144,7 @@ impl Default for SuperflatGeneratorOptions { #[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct SuperflatLayer { pub block: String, // TODO: Use "Block" enum and implement (de)serialization - pub height: u8, + pub height: u32, } /// The type of world generator for a level. @@ -164,7 +163,7 @@ impl LevelData { match self.generator_name.to_lowercase().as_str() { "default" => LevelGeneratorType::Default, "flat" => LevelGeneratorType::Flat, - "largeBiomes" => LevelGeneratorType::LargeBiomes, + "largebiomes" => LevelGeneratorType::LargeBiomes, "amplified" => LevelGeneratorType::Amplified, "buffet" => LevelGeneratorType::Buffet, "debug_all_block_states" => LevelGeneratorType::Debug, @@ -176,13 +175,16 @@ impl LevelData { #[cfg(test)] mod tests { use super::*; - use std::io::Cursor; #[test] fn test_deserialize_level_file() { - let cursor = Cursor::new(include_bytes!("level.dat").to_vec()); - - let level = nbt::from_gzip_reader::<_, Root>(cursor).unwrap().data; + let level = quartz_nbt::serde::deserialize::( + include_bytes!("level.dat"), + Flavor::GzCompressed, + ) + .unwrap() + .0 + .data; assert!(!level.allow_commands); assert_eq!(level.clear_weather_time, 0); diff --git a/feather/base/src/anvil/player.rs b/feather/base/src/anvil/player.rs index 2e6100eda..20386f007 100644 --- a/feather/base/src/anvil/player.rs +++ b/feather/base/src/anvil/player.rs @@ -1,15 +1,14 @@ -use libcraft_items::{Item, ItemStack}; +use std::collections::HashMap; use std::{ - collections::HashMap, fs, fs::File, path::{Path, PathBuf}, }; -use nbt::Value; use serde::{Deserialize, Serialize}; use uuid::Uuid; +use libcraft_items::{Item, ItemStack}; use quill_common::components::{ CanBuild, CanCreativeFly, CreativeFlying, CreativeFlyingSpeed, Instabreak, Invulnerable, WalkSpeed, @@ -30,6 +29,8 @@ pub struct PlayerData { pub gamemode: i32, #[serde(rename = "previousPlayerGameType")] pub previous_gamemode: i32, + #[serde(rename = "Dimension")] + pub dimension: String, #[serde(rename = "Inventory")] pub inventory: Vec, #[serde(rename = "SelectedItemSlot")] @@ -127,21 +128,21 @@ impl InventorySlot { } } - pub fn into_nbt_value(self) -> Value { + pub fn into_nbt_value(self) -> nbt::Value { let mut compound = HashMap::new(); - compound.insert(String::from("Count"), Value::Byte(self.count)); - compound.insert(String::from("id"), Value::String(self.item)); - compound.insert(String::from("Slot"), Value::Byte(self.slot)); + compound.insert(String::from("Count"), nbt::Value::Byte(self.count)); + compound.insert(String::from("id"), nbt::Value::String(self.item)); + compound.insert(String::from("Slot"), nbt::Value::Byte(self.slot)); let mut tags_compound = HashMap::new(); if let Some(nbt) = self.nbt { if let Some(damage) = nbt.damage { - tags_compound.insert(String::from("Damage"), Value::Int(damage)); + tags_compound.insert(String::from("Damage"), nbt::Value::Int(damage)); } } - compound.insert(String::from("tag"), Value::Compound(tags_compound)); - Value::Compound(compound) + compound.insert(String::from("tag"), nbt::Value::Compound(tags_compound)); + nbt::Value::Compound(compound) } } @@ -156,16 +157,16 @@ impl From<&InventorySlot> for ItemStack { fn from(slot: &InventorySlot) -> Self { ItemNbt::item_stack( &slot.nbt, - Item::from_name(slot.item.as_str()).unwrap_or(Item::Air), + Item::from_name(slot.item.as_str()).unwrap(), slot.count as u8, ) } } -pub fn load_player_data(world_dir: &Path, uuid: Uuid) -> Result { +pub fn load_player_data(world_dir: &Path, uuid: Uuid) -> Result { let file_path = file_path(world_dir, uuid); - let mut file = File::open(file_path)?; - let data = nbt::from_gzip_reader(&mut file)?; + let file = File::open(file_path)?; + let data = nbt::from_gzip_reader(&file)?; Ok(data) } @@ -191,10 +192,7 @@ mod tests { use num_traits::ToPrimitive; - use crate::{ - inventory::{SLOT_ARMOR_CHEST, SLOT_ARMOR_FEET, SLOT_ARMOR_HEAD, SLOT_ARMOR_LEGS}, - Gamemode, - }; + use crate::prelude::Gamemode; use super::*; @@ -202,7 +200,10 @@ mod tests { fn test_deserialize_player() { let mut cursor = Cursor::new(include_bytes!("player.dat").to_vec()); - let player: PlayerData = nbt::from_gzip_reader(&mut cursor).unwrap(); + let player: PlayerData = + quartz_nbt::serde::deserialize_from(&mut cursor, Flavor::GzCompressed) + .unwrap() + .0; assert_eq!(player.gamemode, Gamemode::Creative.to_i32().unwrap()); assert_eq!( player.previous_gamemode, diff --git a/feather/base/src/anvil/region.rs b/feather/base/src/anvil/region.rs index c1901b53c..7c2e732f4 100644 --- a/feather/base/src/anvil/region.rs +++ b/feather/base/src/anvil/region.rs @@ -1,106 +1,94 @@ //! This module implements the loading and saving //! of Anvil region files. -use crate::{ - chunk::{BlockStore, LightStore, PackedArray, Palette}, - Chunk, ChunkPosition, ChunkSection, -}; - -use super::{block_entity::BlockEntityData, entity::EntityData}; -use bitvec::{bitvec, vec::BitVec}; -use blocks::BlockId; -use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; -use libcraft_core::Biome; -use serde::{Deserialize, Serialize}; use std::borrow::Cow; -use std::collections::BTreeMap; +use std::collections::{BTreeMap, HashMap}; use std::fmt::{self, Display, Formatter}; use std::fs::{File, OpenOptions}; use std::io::prelude::*; -use std::io::{Cursor, SeekFrom}; -use std::ops::Deref; +use std::io::{SeekFrom, Write}; +use std::iter::FromIterator; +use std::mem::ManuallyDrop; use std::path::{Path, PathBuf}; use std::{fs, io, iter}; +use bitvec::{bitvec, vec::BitVec}; +use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; +use konst::{primitive::parse_i32, unwrap_ctx}; +use serde::{Deserialize, Serialize}; + +use crate::biome::{BiomeId, BiomeList}; +use crate::chunk::paletted_container::{Paletteable, PalettedContainer}; +use crate::chunk::{ + Chunk, ChunkSection, Heightmap, HeightmapStore, BIOMES_PER_CHUNK_SECTION, SECTION_VOLUME, +}; +use crate::chunk::{LightStore, PackedArray}; +use crate::world::WorldHeight; +use libcraft_blocks::BlockId; +use libcraft_core::ChunkPosition; + +use super::{block_entity::BlockEntityData, entity::EntityData}; + /// The length and width of a region, in chunks. const REGION_SIZE: usize = 32; -/// The data version supported by this code, currently corresponding -/// to 1.16.5. -const DATA_VERSION: i32 = 2586; +/// The data version supported by this code +const DATA_VERSION: i32 = unwrap_ctx!(parse_i32(include_str!( + "../../../../constants/WORLD_SAVE_VERSION" +))); /// Length, in bytes, of a sector. const SECTOR_BYTES: usize = 4096; -/// Represents the data for a chunk after the "Chunk [x, y]" tag. #[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "PascalCase")] -pub struct ChunkRoot { - level: ChunkLevel, +pub struct DataChunk { + #[serde(rename = "DataVersion")] data_version: i32, -} - -/// Represents the level data for a chunk. -#[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "PascalCase")] -pub struct ChunkLevel { - // TODO heightmaps, etc. #[serde(rename = "xPos")] x_pos: i32, #[serde(rename = "zPos")] z_pos: i32, + #[serde(rename = "yPos")] + min_y_section: i32, + #[serde(rename = "LastUpdate")] last_update: i64, + #[serde(rename = "InhabitedTime")] inhabited_time: i64, - #[serde(default)] sections: Vec, - #[serde(serialize_with = "nbt::i32_array")] - biomes: Vec, #[serde(default)] entities: Vec, - #[serde(rename = "TileEntities")] - #[serde(default)] block_entities: Vec, - #[serde(rename = "ToBeTicked")] - #[serde(default)] - awaiting_block_updates: Vec>, - #[serde(rename = "LiquidsToBeTicked")] - #[serde(default)] - awaiting_liquid_updates: Vec>, - #[serde(default)] + #[serde(rename = "PostProcessing")] post_processing: Vec>, - #[serde(rename = "TileTicks")] - #[serde(default)] - scheduled_block_updates: Vec, - #[serde(rename = "LiquidTicks")] - #[serde(default)] - scheduled_liquid_updates: Vec, #[serde(rename = "Status")] - #[serde(default)] worldgen_status: Cow<'static, str>, + #[serde(rename = "Heightmaps")] + heightmaps: HashMap>, } /// Represents a chunk section in a region file. #[derive(Serialize, Deserialize, Debug)] -#[serde(rename_all = "PascalCase")] pub struct LevelSection { + #[serde(rename = "Y")] y: i8, - #[serde(serialize_with = "nbt::i64_array", rename = "BlockStates")] - #[serde(default)] - states: Vec, - #[serde(default)] - palette: Vec, - #[serde(serialize_with = "nbt::i8_array")] - #[serde(default)] - block_light: Vec, - #[serde(serialize_with = "nbt::i8_array")] - #[serde(default)] - sky_light: Vec, + block_states: PaletteAndData, + biomes: PaletteAndData, + #[serde(rename = "SkyLight")] + sky_light: Option>, + #[serde(rename = "BlockLight")] + block_light: Option>, +} + +#[derive(Serialize, Deserialize, Debug)] +struct PaletteAndData { + palette: Vec, + data: Option>, } /// Represents a palette entry in a region file. #[derive(Serialize, Deserialize, Debug)] #[serde(rename_all = "PascalCase")] -pub struct LevelPaletteEntry { +pub struct BlockState { /// The identifier of the type of this block name: Cow<'static, str>, /// Optional properties for this block @@ -147,6 +135,7 @@ pub struct RegionHandle { header: RegionHeader, /// Sector allocator to allocate sectors where we can store chunks. allocator: SectorAllocator, + world_height: WorldHeight, } impl RegionHandle { @@ -160,6 +149,7 @@ impl RegionHandle { pub fn load_chunk( &mut self, mut pos: ChunkPosition, + biomes: &BiomeList, ) -> Result<(Chunk, Vec, Vec), Error> { // Get a copy of the original position before clipping let original_pos = pos; @@ -207,40 +197,84 @@ impl RegionHandle { let compression_type = buf[0]; // Parse NBT data - let cursor = Cursor::new(&buf[1..]); - let mut root: ChunkRoot = match compression_type { - 1 => nbt::from_gzip_reader(cursor).map_err(Error::Nbt)?, - 2 => nbt::from_zlib_reader(cursor).map_err(Error::Nbt)?, + let bytes = &buf[1..]; + let mut data_chunk: DataChunk = match compression_type { + 1 => nbt::from_gzip_reader(bytes).map_err(Error::Nbt)?, + 2 => nbt::from_zlib_reader(bytes).map_err(Error::Nbt)?, _ => return Err(Error::InvalidCompression(compression_type)), }; // Check data version - if root.data_version != DATA_VERSION { - return Err(Error::UnsupportedDataVersion(root.data_version)); + if data_chunk.data_version != DATA_VERSION { + return Err(Error::UnsupportedDataVersion(data_chunk.data_version)); } - let level = &mut root.level; - - let mut chunk = Chunk::new(original_pos); + let mut chunk = Chunk::new( + original_pos, + self.world_height.into(), + data_chunk.min_y_section, + ); + *chunk.heightmaps_mut() = HeightmapStore { + motion_blocking: data_chunk + .heightmaps + .remove("MOTION_BLOCKING") + .map(|h| { + Heightmap::from_u64_vec( + unsafe { + let mut h = ManuallyDrop::new(h); + Vec::from_raw_parts(h.as_mut_ptr() as *mut u64, h.len(), h.capacity()) + }, + self.world_height, + ) + }) + .ok_or(Error::ChunkNotExist)?, + motion_blocking_no_leaves: data_chunk + .heightmaps + .remove("MOTION_BLOCKING_NO_LEAVES") + .map(|h| { + Heightmap::from_u64_vec( + unsafe { + let mut h = ManuallyDrop::new(h); + Vec::from_raw_parts(h.as_mut_ptr() as *mut u64, h.len(), h.capacity()) + }, + self.world_height, + ) + }) + .ok_or(Error::ChunkNotExist)?, + ocean_floor: data_chunk + .heightmaps + .remove("OCEAN_FLOOR") + .map(|h| { + Heightmap::from_u64_vec( + unsafe { + let mut h = ManuallyDrop::new(h); + Vec::from_raw_parts(h.as_mut_ptr() as *mut u64, h.len(), h.capacity()) + }, + self.world_height, + ) + }) + .ok_or(Error::ChunkNotExist)?, + world_surface: data_chunk + .heightmaps + .remove("WORLD_SURFACE") + .map(|h| { + Heightmap::from_u64_vec( + unsafe { + let mut h = ManuallyDrop::new(h); + Vec::from_raw_parts(h.as_mut_ptr() as *mut u64, h.len(), h.capacity()) + }, + self.world_height, + ) + }) + .ok_or(Error::ChunkNotExist)?, + }; // Read sections - for section in &mut level.sections { - read_section_into_chunk(section, &mut chunk)?; - } - - // Read biomes - if level.biomes.len() != 1024 { - return Err(Error::IndexOutOfBounds); - } - for index in 0..1024 { - let id = level.biomes[index]; - chunk.biomes_mut().as_slice_mut()[index] = - Biome::from_id(id as u32).ok_or(Error::InvalidBiomeId(id))?; + for section in std::mem::take(&mut data_chunk.sections) { + read_section_into_chunk(section, &mut chunk, data_chunk.min_y_section, biomes)?; } - // chunk.recalculate_heightmap(); - - Ok((chunk, level.entities.clone(), level.block_entities.clone())) + Ok((chunk, data_chunk.entities, data_chunk.block_entities)) } /// Checks if the specified chunk position is generated in this region. @@ -261,6 +295,7 @@ impl RegionHandle { chunk: &Chunk, entities: &[EntityData], block_entities: &[BlockEntityData], + biomes: &BiomeList, ) -> Result<(), Error> { let chunk_pos = chunk.position(); @@ -274,14 +309,14 @@ impl RegionHandle { self.allocator.free(location.0); } - // Write chunk to `ChunkRoot` tag. - let root = chunk_to_chunk_root(chunk, entities, block_entities); + // Write chunk to `ChunkData` tag. + let data_chunk = chunk_to_data_chunk(chunk, entities, block_entities, biomes); // Write to intermediate buffer, because we need to know the length. let mut buf = Vec::with_capacity(4096); buf.write_u8(2).map_err(Error::Io)?; // Compression type: zlib - nbt::to_zlib_writer(&mut buf, &root, None).map_err(Error::Nbt)?; + nbt::to_zlib_writer(&mut buf, &data_chunk, None).map_err(Error::Nbt)?; let total_len = buf.len() + 4; // 4 bytes for length header @@ -321,12 +356,15 @@ impl RegionHandle { } } -fn read_section_into_chunk(section: &mut LevelSection, chunk: &mut Chunk) -> Result<(), Error> { - let data = §ion.states; - - // Create palette - let mut palette = Palette::new(); - for entry in §ion.palette { +fn read_section_into_chunk( + mut section: LevelSection, + chunk: &mut Chunk, + min_y_section: i32, + biome_list: &BiomeList, +) -> Result<(), Error> { + // Create palettes + let mut block_palette = Vec::new(); + for entry in §ion.block_states.palette { // Construct properties map let mut props = BTreeMap::new(); if let Some(entry_props) = entry.properties.as_ref() { @@ -334,28 +372,101 @@ fn read_section_into_chunk(section: &mut LevelSection, chunk: &mut Chunk) -> Res entry_props .props .iter() - .map(|(k, v)| (k.clone().into_owned(), v.clone().into_owned())), + .map(|(k, v)| (k.clone().to_owned(), v.clone().to_owned())), ); } // Attempt to get block from the given values - let block = BlockId::from_identifier_and_properties(&entry.name, &props) - .ok_or_else(|| Error::InvalidBlock(entry.name.deref().to_owned()))?; - palette.index_or_insert(block); + let block = BlockId::from_identifier_and_properties( + entry.name.as_ref(), + &props + .into_iter() + .map(|(key, value)| (key.into_owned(), value.into_owned())) + .collect(), + ) + .ok_or_else(|| Error::UnknownBlock(entry.name.to_string()))?; + + block_palette.push(block); } - // Create section - // TODO don't clone data - need way around this - let data = if data.is_empty() { - PackedArray::new(4096, 4) + let mut block_palette_iter = block_palette.iter(); + let mut blocks = if let Some(block) = block_palette_iter.next() { + let mut blocks = PalettedContainer::SingleValue(*block); + for block in block_palette_iter { + blocks.index_or_insert(*block); + } + blocks } else { - PackedArray::from_u64_vec(data.iter().map(|x| *x as u64).collect(), 4096) + PalettedContainer::new() }; + let mut biome_palette = Vec::new(); + for biome in section.biomes.palette { + let biome = biome_list + .get_index_of(&biome) + .unwrap_or_else(|| panic!("Biome not found: {}", biome)) + .into(); + biome_palette.push(biome); + } + + let mut biome_palette_iter = biome_palette.iter(); + let mut biomes = if let Some(biome) = biome_palette_iter.next() { + let mut biomes = PalettedContainer::SingleValue(*biome); + for biome in biome_palette_iter { + biomes.index_or_insert(*biome); + } + biomes + } else { + PalettedContainer::new() + }; + + if let Some(blocks_data) = section + .block_states + .data + .map(|data| PackedArray::from_i64_vec(data, SECTION_VOLUME)) + { + blocks.set_data( + if blocks_data.bits_per_value() > ::MAX_BITS_PER_ENTRY { + // Convert to GlobalPalette + let mut data = blocks_data + .resized(PalettedContainer::::global_palette_bits_per_value()); + PalettedContainer::::map_to_global_palette( + blocks.len(), + &block_palette, + &mut data, + ); + data + } else { + blocks_data + }, + ); + } + if let Some(biomes_data) = section + .biomes + .data + .map(|data| PackedArray::from_i64_vec(data, BIOMES_PER_CHUNK_SECTION)) + { + biomes.set_data( + if biomes_data.bits_per_value() > ::MAX_BITS_PER_ENTRY { + // Convert to GlobalPalette + let mut data = biomes_data + .resized(PalettedContainer::::global_palette_bits_per_value()); + PalettedContainer::::map_to_global_palette( + biomes.len(), + &biome_palette, + &mut data, + ); + data + } else { + biomes_data + }, + ); + } + // Light // convert raw lighting data (4bits / block) into a BitArray - let convert_light_data = |light_data: &Vec| { - let data = light_data + fn convert_light_data(light_data: &[i8]) -> PackedArray { + let data: Vec = light_data .chunks(8) .map(|chunk| { // not sure if there's a better (safe) way of doing this.. @@ -372,112 +483,183 @@ fn read_section_into_chunk(section: &mut LevelSection, chunk: &mut Chunk) -> Res u64::from_le_bytes(chunk) }) .collect(); - PackedArray::from_u64_vec(data, 4096) - }; - if section.sky_light.is_empty() { - section.sky_light = vec![0; 2048]; + PackedArray::from_u64_vec(data, SECTION_VOLUME) + } + + if section.sky_light.is_some() && section.sky_light.as_ref().unwrap().is_empty() { + section.sky_light = Some(vec![0; 2048]); } - if section.block_light.is_empty() { - section.block_light = vec![0; 2048]; + if section.block_light.is_some() && section.block_light.as_ref().unwrap().is_empty() { + section.block_light = Some(vec![0; 2048]); } - if section.block_light.len() != 2048 || section.sky_light.len() != 2048 { + if section.sky_light.is_some() && section.sky_light.as_ref().unwrap().len() != 2048 + || section.block_light.is_some() && section.block_light.as_ref().unwrap().len() != 2048 + { return Err(Error::IndexOutOfBounds); } - let block_light = convert_light_data(§ion.block_light); - let sky_light = convert_light_data(§ion.sky_light); + let sky_light = section + .sky_light + .as_ref() + .map(|light| convert_light_data(light)); + let block_light = section + .block_light + .as_ref() + .map(|light| convert_light_data(light)); let light = - LightStore::from_packed_arrays(block_light, sky_light).ok_or(Error::IndexOutOfBounds)?; - let blocks = BlockStore::from_raw_parts(Some(palette), data); + LightStore::from_packed_arrays(sky_light, block_light).ok_or(Error::IndexOutOfBounds)?; - let chunk_section = ChunkSection::new(blocks, light); + let air_blocks = ChunkSection::count_air_blocks(&blocks); + let chunk_section = ChunkSection::new(blocks, biomes, air_blocks, light); - chunk.set_section_at(section.y as isize, Some(chunk_section)); + chunk.set_section_at(section.y as isize - min_y_section as isize, chunk_section); Ok(()) } -fn chunk_to_chunk_root( +fn chunk_to_data_chunk( chunk: &Chunk, entities: &[EntityData], block_entities: &[BlockEntityData], -) -> ChunkRoot { - ChunkRoot { - level: ChunkLevel { - x_pos: chunk.position().x, - z_pos: chunk.position().z, - last_update: 0, // TODO - inhabited_time: 0, // TODO - block_entities: block_entities.into(), - sections: chunk - .sections() - .iter() - .enumerate() - .filter_map(|(y, sec)| sec.as_ref().map(|sec| (y, sec.clone()))) - .map(|(y, mut section)| { - let palette = convert_palette(&mut section); - LevelSection { - y: (y as i8) - 1, - states: section - .blocks() - .data() - .as_u64_slice() - .iter() - .map(|x| *x as i64) - .collect(), - palette, - block_light: slice_u64_to_i8(section.light().block_light().as_u64_slice()) - .to_vec(), - sky_light: slice_u64_to_i8(section.light().sky_light().as_u64_slice()) - .to_vec(), - } - }) - .collect(), - biomes: chunk - .biomes() - .as_slice() - .iter() - .map(|biome| biome.id() as i32) - .collect(), - entities: entities.into(), - awaiting_block_updates: vec![vec![]; 16], // TODO - awaiting_liquid_updates: vec![vec![]; 16], // TODO - scheduled_block_updates: vec![], // TODO - scheduled_liquid_updates: vec![], - post_processing: vec![vec![]; 16], - worldgen_status: "postprocessed".into(), - }, + biome_list: &BiomeList, +) -> DataChunk { + DataChunk { data_version: DATA_VERSION, + x_pos: chunk.position().x, + z_pos: chunk.position().z, + min_y_section: chunk.min_y_section(), + last_update: 0, // TODO + inhabited_time: 0, // TODO + block_entities: block_entities.into(), + sections: chunk + .sections() + .iter() + .enumerate() + .map(|(y, section)| { + LevelSection { + y: (y as i8) - 1, + block_states: match section.blocks() { + PalettedContainer::SingleValue(block) => PaletteAndData { + palette: vec![block_id_to_block_state(block)], + data: None, + }, + PalettedContainer::MultipleValues { data, palette } => PaletteAndData { + palette: palette.iter().map(block_id_to_block_state).collect(), + data: Some(bytemuck::cast_slice(data.as_u64_slice()).to_vec()), + }, + PalettedContainer::GlobalPalette { data } => { + // Convert to MultipleValues palette + let mut data = data.clone(); + let mut palette = Vec::new(); + data.iter().for_each(|value| { + let block = BlockId::from_default_palette(value as u32).unwrap(); + if !palette.contains(&block) { + palette.push(block); + } + }); + PalettedContainer::::map_from_global_palette( + section.blocks().len(), + &palette, + &mut data, + ); + let data = data.resized( + PalettedContainer::::palette_bits_per_value(palette.len()), + ); + PaletteAndData { + palette: palette.iter().map(block_id_to_block_state).collect(), + data: Some(bytemuck::cast_slice(data.as_u64_slice()).to_vec()), + } + } + }, + biomes: match section.biomes() { + PalettedContainer::SingleValue(biome) => PaletteAndData { + palette: vec![biome_list.get_by_id(biome).unwrap().0.into()], + data: None, + }, + PalettedContainer::MultipleValues { data, palette } => PaletteAndData { + palette: palette + .iter() + .map(|biome| biome_list.get_by_id(biome).unwrap().0.into()) + .collect(), + data: Some(bytemuck::cast_slice(data.as_u64_slice()).to_vec()), + }, + PalettedContainer::GlobalPalette { data } => { + // Convert to MultipleValues palette + let mut data = data.clone(); + let mut palette = Vec::new(); + data.iter().for_each(|value| { + let block = BiomeId::from_default_palette(value as u32).unwrap(); + if !palette.contains(&block) { + palette.push(block); + } + }); + PalettedContainer::::map_from_global_palette( + section.biomes().len(), + &palette, + &mut data, + ); + let data = data.resized( + PalettedContainer::::palette_bits_per_value(palette.len()), + ); + PaletteAndData { + palette: palette + .iter() + .map(|biome| biome_list.get_by_id(biome).unwrap().0.into()) + .collect(), + data: Some(bytemuck::cast_slice(data.as_u64_slice()).to_vec()), + } + } + }, + sky_light: section + .light() + .sky_light() + .map(|light| slice_u64_to_i8(light.as_u64_slice()).to_vec()), + block_light: section + .light() + .block_light() + .map(|light| slice_u64_to_i8(light.as_u64_slice()).to_vec()), + } + }) + .collect(), + entities: entities.into(), + post_processing: vec![vec![]; 16], + worldgen_status: "postprocessed".into(), + heightmaps: HashMap::from_iter([ + ( + String::from("MOTION_BLOCKING"), + bytemuck::cast_slice(chunk.heightmaps().motion_blocking.as_u64_slice()) + .iter() + .copied() + .collect(), + ), + ( + String::from("MOTION_BLOCKING_NO_LEAVES"), + bytemuck::cast_slice(chunk.heightmaps().motion_blocking_no_leaves.as_u64_slice()) + .iter() + .copied() + .collect(), + ), + ( + String::from("WORLD_SURFACE"), + bytemuck::cast_slice(chunk.heightmaps().world_surface.as_u64_slice()) + .iter() + .copied() + .collect(), + ), + ( + String::from("OCEAN_FLOOR"), + bytemuck::cast_slice(chunk.heightmaps().ocean_floor.as_u64_slice()) + .iter() + .copied() + .collect(), + ), + ]), } } -fn convert_palette(section: &mut ChunkSection) -> Vec { - raw_palette_to_palette_entries(section.blocks().palette().unwrap().as_slice()) -} - -fn raw_palette_to_palette_entries(palette: &[BlockId]) -> Vec { - palette - .iter() - .map(|block| { - let props = block.to_properties_map(); - let identifier = block.identifier(); - - LevelPaletteEntry { - name: identifier.into(), - properties: Some(LevelProperties { - props: props - .into_iter() - .map(|(k, v)| (Cow::from(k), Cow::from(v))) - .collect(), - }), - } - }) - .collect() -} - fn slice_u64_to_i8(input: &[u64]) -> &[i8] { // TODO: someone should check this isn't undefined behavior. // Pretty sure the alignment check makes this sound, @@ -598,7 +780,7 @@ pub enum Error { /// An IO error occurred Io(io::Error), /// There was an invalid block in the chunk - InvalidBlock(String), + UnknownBlock(String), /// The chunk does not exist ChunkNotExist, /// The chunk uses an unsupported data version @@ -625,7 +807,7 @@ impl Display for Error { Error::InvalidCompression(id) => { f.write_str(&format!("Chunk uses invalid compression type {}", id))? } - Error::InvalidBlock(name) => f.write_str(&format!("Chunk contains invalid block {}", name))?, + Error::UnknownBlock(name) => f.write_str(&format!("Chunk contains invalid block {}", name))?, Error::ChunkNotExist => f.write_str("The chunk does not exist")?, Error::UnsupportedDataVersion(_) => f.write_str("The chunk uses an unsupported data version. Feather currently only supports 1.16.5 region files.")?, Error::InvalidBlockType => f.write_str("Chunk contains invalid block type")?, @@ -650,7 +832,11 @@ impl std::error::Error for Error {} /// This function does not actually load all the chunks /// in the region into memory; it only reads the file's /// header so that chunks can be retrieved later. -pub fn load_region(dir: &Path, pos: RegionPosition) -> Result { +pub fn load_region( + dir: &Path, + pos: RegionPosition, + world_height: WorldHeight, +) -> Result { let mut file = { let buf = region_file_path(dir, pos); @@ -671,6 +857,7 @@ pub fn load_region(dir: &Path, pos: RegionPosition) -> Result Result Result { +pub fn create_region( + dir: &Path, + pos: RegionPosition, + world_height: WorldHeight, +) -> Result { create_region_dir(dir).map_err(Error::Io)?; let mut file = { let buf = region_file_path(dir, pos); @@ -702,6 +893,7 @@ pub fn create_region(dir: &Path, pos: RegionPosition) -> Result BlockState { + BlockState { + name: block.identifier().into(), + properties: { + let props = block.to_properties_map(); + if props.is_empty() { + None + } else { + Some(LevelProperties { + props: props + .into_iter() + .map(|(key, value)| (key.into(), value.into())) + .collect(), + }) + } + }, + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/feather/base/src/anvil/serialization_helper.rs b/feather/base/src/anvil/serialization_helper.rs deleted file mode 100644 index f6c170f3f..000000000 --- a/feather/base/src/anvil/serialization_helper.rs +++ /dev/null @@ -1,206 +0,0 @@ -pub mod packed_u9 { - use serde::de::Error as DeError; - use serde::de::{SeqAccess, Visitor}; - use serde::export::Formatter; - use serde::ser::Error as SerError; - use serde::{Deserializer, Serializer}; - use std::marker::PhantomData; - - pub fn deserialize<'de, D>(deserializer: D) -> Result, D::Error> - where - D: Deserializer<'de>, - { - struct PackedVisitor(PhantomData u16>); - - impl<'de> Visitor<'de> for PackedVisitor { - type Value = Vec; - - fn expecting(&self, formatter: &mut Formatter) -> std::fmt::Result { - formatter.write_str("a sequence of type long with length a multiple of 9") - } - - fn visit_seq(self, mut seq: A) -> Result - where - A: SeqAccess<'de>, - { - let len = seq.size_hint().unwrap(); // nbt always knows sequence size - if len % 9 != 0 { - // Invalid sequence length - return Err(A::Error::custom("sequence length must be a multiple of 9")); - } - let unpacked_len = len * 64 / 9; - - let mut u9_array: Vec = Vec::with_capacity(unpacked_len); - - let mut container: Option = seq.next_element()?.map(|x: i64| x as u64); // We checked the length - let mut shift = 0; - for _elem in 0..unpacked_len { - // For every element (u9) - - // unwrapping here is safe, as this can only fail if there is an implementation error in this algorithm - // or in the SeqAccess because we checked the sequence length - let mut element: u16 = ((container.unwrap() >> shift) & 0x1FF) as u16; - shift += 9; - - if shift >= 64 { - // Take next container - container = seq.next_element()?.map(|x: i64| x as u64); - - if shift > 64 { - // We have some bits left to get from the next container - - // same here with the unwrapping - element |= ((container.unwrap() << -(shift - 64 - 9)) & 0x1FF) as u16; - } - - shift -= 64; - } - - u9_array.push(element); - } - - debug_assert_eq!(container, None); - debug_assert_eq!(shift, 0); - - Ok(u9_array) - } - } - - deserializer.deserialize_seq(PackedVisitor(PhantomData)) - } - - pub fn serialize(u9_array: &[u16], serializer: S) -> Result - where - S: Serializer, - { - if u9_array.len() % 64 != 0 { - // Invalid array length - return Err(S::Error::custom("array length must be a multiple of 64")); - } - - let packed_iter = (0..u9_array.len() * 9 / 64) // iterate through each resulting u64 - .map(|i| { - ( - i / 9 * 64, // u9_array_offset; every 64 u9 the u64 boundary is aligned with the u9 boundary again -> one section. each section is 9 u64 long - i % 9, // container_index; index of the current container in this specific section - ) - }) - .map(|(u9_array_offset, container_index)| { - (0..8) // every u64 (partially) contains 8 u9 - .map(|i| { - ( - i + container_index * 7 + u9_array_offset, // u9_array index; times 7 because the u9 indices need to overlap - (i as isize) * 9 - container_index as isize, // amount of shift left (negative means shift right) - ) - }) - .map(|(u9_array_index, shift_left)| { - let u9 = u9_array[u9_array_index] as u64; - if shift_left < 0 { - u9 >> -shift_left as u64 - } else { - u9 << shift_left as u64 - } - }) - .fold(0, |container, u9| container | u9) - }) - .map(|container| container as i64); - - nbt::i64_array(packed_iter, serializer) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use core::iter; - use serde::{Deserialize, Serialize}; - use serde_test::Token; - - #[derive(Serialize, Deserialize, Debug, Eq, PartialEq)] - struct TestPackedU9 { - #[serde(with = "packed_u9")] - list: Vec, - } - - #[test] - #[allow(clippy::inconsistent_digit_grouping)] - fn test_packed_u9_pattern() { - let data_u64 = iter::repeat(0xAAAA_AAAA_AAAA_AAAAu64 as i64); // 64-bit 0b1010... - let data_u9 = [0b01_01_01_01_0u16, 0b1_01_01_01_01u16] - .iter() - .cloned() - .cycle(); // corresponding 9-bit pattern - - let unpacked: Vec = data_u9.take(256).collect(); - let packed: Vec = data_u64.take(36).collect(); - - // Test serde serialization - let mut tokenized_vec = packed.iter().map(|&x| Token::I64(x)).collect(); - - let mut tokenized_sequence = Vec::new(); - tokenized_sequence.push(Token::Struct { - name: "TestPackedU9", - len: 1, - }); - tokenized_sequence.push(Token::Str("list")); - // see https://github.com/PistonDevelopers/hematite_nbt/pull/52 - tokenized_sequence.push(Token::TupleStruct { - name: "__hematite_nbt_i64_array__", - len: 36, - }); - tokenized_sequence.append(&mut tokenized_vec); - tokenized_sequence.push(Token::TupleStructEnd); - tokenized_sequence.push(Token::StructEnd); - - let test_object = TestPackedU9 { list: unpacked }; - - serde_test::assert_tokens(&test_object, tokenized_sequence.as_slice()) - } - - #[test] - #[allow(clippy::inconsistent_digit_grouping)] // Sorry clippy but grouping by 9 bits makes sense here - fn test_packed_u9_order() { - let data_u64 = [ - // this repeats every 9 u64... - 0b0_001000000_000100000_000010000_000001000_000000100_000000010_000000001u64, - 0b00_000100000_000010000_000001000_000000100_000000010_000000001_01000000u64, - 0b000_000010000_000001000_000000100_000000010_000000001_010000000_0010000u64, - 0b0000_000001000_000000100_000000010_000000001_010000000_001000000_000100u64, - 0b01000_000000100_000000010_000000001_010000000_001000000_000100000_00001u64, - 0b000100_000000010_000000001_010000000_001000000_000100000_000010000_0000u64, - 0b0000010_000000001_010000000_001000000_000100000_000010000_000001000_000u64, - 0b00000001_010000000_001000000_000100000_000010000_000001000_000000100_00u64, - 0b010000000_001000000_000100000_000010000_000001000_000000100_000000010_0u64, - ] - .iter() - .cloned() - .map(|x| x as i64) - .cycle(); - let data_u9 = (0..8).map(|x| 1 << x).cycle(); // corresponding 9-bit pattern - - let unpacked: Vec = data_u9.take(256).collect(); - let packed: Vec = data_u64.take(36).collect(); - - // Test serde serialization - let mut tokenized_vec = packed.iter().map(|&x| Token::I64(x)).collect(); - - let mut tokenized_sequence = Vec::new(); - tokenized_sequence.push(Token::Struct { - name: "TestPackedU9", - len: 1, - }); - tokenized_sequence.push(Token::Str("list")); - // see https://github.com/PistonDevelopers/hematite_nbt/pull/52 - tokenized_sequence.push(Token::TupleStruct { - name: "__hematite_nbt_i64_array__", - len: 36, - }); - tokenized_sequence.append(&mut tokenized_vec); - tokenized_sequence.push(Token::TupleStructEnd); - tokenized_sequence.push(Token::StructEnd); - - let test_object = TestPackedU9 { list: unpacked }; - - serde_test::assert_tokens(&test_object, tokenized_sequence.as_slice()) - } -} diff --git a/feather/base/src/biome.rs b/feather/base/src/biome.rs new file mode 100644 index 000000000..f3559da38 --- /dev/null +++ b/feather/base/src/biome.rs @@ -0,0 +1,324 @@ +use itertools::Itertools; +use std::collections::HashMap; +use std::sync::atomic::Ordering; + +use indexmap::IndexMap; +use libcraft_blocks::BlockKind; +use serde::{Deserialize, Serialize}; + +use crate::chunk::paletted_container::BIOMES_COUNT; +use libcraft_core::EntityKind; + +#[derive( + Copy, + Clone, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + derive_more::Deref, + Serialize, + Deserialize, +)] +pub struct BiomeId(usize); + +impl From for BiomeId { + fn from(id: usize) -> Self { + BiomeId(id) + } +} + +impl Default for BiomeId { + fn default() -> Self { + 0.into() + } +} + +#[derive(Default, derive_more::Deref)] +pub struct BiomeList(IndexMap); + +impl BiomeList { + pub fn insert(&mut self, biome: String, info: BiomeGeneratorInfo) { + BIOMES_COUNT.fetch_add(1, Ordering::Relaxed); + self.0.insert(biome, info); + } + + pub fn get_by_id(&self, id: &BiomeId) -> Option<(&String, &BiomeGeneratorInfo)> { + self.0.get_index(**id) + } + + pub fn get_id(&self, identifier: &str) -> Option { + self.0.get_index_of(identifier).map(BiomeId) + } +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct BiomeGeneratorInfo { + pub carvers: HashMap>, + pub features: Vec>, + pub spawners: BiomeSpawners, + #[serde(with = "spawn_costs")] + pub spawn_costs: HashMap, + #[serde(flatten)] + pub info: BiomeInfo, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct BiomeInfo { + pub effects: BiomeEffects, + pub precipitation: String, + pub temperature: f32, + pub downfall: f32, + pub temperature_modifier: Option, + pub category: BiomeCategory, + pub particle: Option, +} + +pub mod spawn_costs { + use serde::de::Error; + use serde::ser::SerializeMap; + use serde::{Deserializer, Serializer}; + + use super::*; + + pub fn serialize( + value: &HashMap, + serializer: S, + ) -> Result + where + S: Serializer, + { + let mut map = serializer.serialize_map(Some(value.len()))?; + for (key, value) in value.iter() { + map.serialize_entry(key.namespaced_id(), value)?; + } + map.end() + } + + pub fn deserialize<'de, D>( + deserializer: D, + ) -> Result, D::Error> + where + D: Deserializer<'de>, + { + let mut map = HashMap::new(); + for (key, value) in HashMap::::deserialize(deserializer)? { + map.insert( + EntityKind::from_namespaced_id(&key).ok_or_else(|| { + D::Error::custom(format_args!( + "unknown field `{}`, expected one of {}", + key, + EntityKind::values() + .iter() + .map(|kind| format!("`{}`", kind.namespaced_id())) + .join(", ") + )) + })?, + value, + ); + } + Ok(map) + } +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct BiomeSpawnCost { + energy_budget: f32, + charge: f32, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct BiomeParticle { + pub probability: f32, + pub options: BiomeParticleOptions, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct BiomeParticleOptions { + #[serde(rename = "type")] + pub particle_type: String, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(rename_all = "snake_case")] +pub enum BiomeTemperatureModifier { + Frozen, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(rename_all = "snake_case")] +pub enum BiomeGrassColorModifier { + Swamp, + DarkForest, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(from = "String", into = "String")] // quartz_nbt serialized enum variants by their index, not name +pub enum BiomeCategory { + Ocean, + Plains, + Desert, + Forest, + ExtremeHills, + Taiga, + Swamp, + River, + Nether, + TheEnd, + Icy, + Mushroom, + Beach, + Jungle, + Mesa, + Savanna, + Mountain, + Underground, + None, +} + +impl From for String { + fn from(category: BiomeCategory) -> Self { + match category { + BiomeCategory::Ocean => "ocean", + BiomeCategory::Plains => "plains", + BiomeCategory::Desert => "desert", + BiomeCategory::Forest => "forest", + BiomeCategory::ExtremeHills => "extreme_hills", + BiomeCategory::Taiga => "taiga", + BiomeCategory::Swamp => "swamp", + BiomeCategory::River => "river", + BiomeCategory::Nether => "nether", + BiomeCategory::TheEnd => "the_end", + BiomeCategory::Icy => "icy", + BiomeCategory::Mushroom => "mushroom", + BiomeCategory::Beach => "beach", + BiomeCategory::Jungle => "jungle", + BiomeCategory::Mesa => "mesa", + BiomeCategory::Savanna => "savanna", + BiomeCategory::Mountain => "mountain", + BiomeCategory::Underground => "underground", + BiomeCategory::None => "none", + } + .to_owned() + } +} + +impl From for BiomeCategory { + fn from(s: String) -> Self { + match &s[..] { + "ocean" => BiomeCategory::Ocean, + "plains" => BiomeCategory::Plains, + "desert" => BiomeCategory::Desert, + "forest" => BiomeCategory::Forest, + "extreme_hills" => BiomeCategory::ExtremeHills, + "taiga" => BiomeCategory::Taiga, + "swamp" => BiomeCategory::Swamp, + "river" => BiomeCategory::River, + "nether" => BiomeCategory::Nether, + "the_end" => BiomeCategory::TheEnd, + "icy" => BiomeCategory::Icy, + "mushroom" => BiomeCategory::Mushroom, + "beach" => BiomeCategory::Beach, + "jungle" => BiomeCategory::Jungle, + "mesa" => BiomeCategory::Mesa, + "savanna" => BiomeCategory::Savanna, + "mountain" => BiomeCategory::Mountain, + "underground" => BiomeCategory::Underground, + _ => BiomeCategory::None, + } + } +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct BiomeEffects { + pub mood_sound: Option, + pub music: Option, + pub ambient_sound: Option, + pub additions_sound: Option, + pub grass_color_modifier: Option, + pub sky_color: BiomeColor, + pub foliage_color: Option, + pub grass_color: Option, + pub fog_color: BiomeColor, + pub water_color: BiomeColor, + pub water_fog_color: BiomeColor, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct BiomeAdditionsSound { + pub sound: String, + pub tick_chance: f64, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct BiomeMusic { + pub sound: String, + pub min_delay: i32, + pub max_delay: i32, + #[serde(deserialize_with = "super::world::deserialize_bool")] + pub replace_current_music: bool, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(from = "i32", into = "i32")] +pub struct BiomeColor { + pub r: u8, + pub g: u8, + pub b: u8, +} + +impl From for BiomeColor { + #[allow(clippy::identity_op)] + #[allow(clippy::erasing_op)] + fn from(i: i32) -> Self { + let r = ((i >> (8 * 2)) & 0xFF) as u8; + let g = ((i >> (8 * 1)) & 0xFF) as u8; + let b = ((i >> (8 * 0)) & 0xFF) as u8; + BiomeColor { r, g, b } + } +} + +impl From for i32 { + fn from(color: BiomeColor) -> Self { + let mut i = 0i32; + i += color.r as i32; + i <<= 8; + i += color.g as i32; + i <<= 8; + i += color.b as i32; + i + } +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct BiomeMoodSound { + pub sound: String, + pub tick_delay: i32, + pub block_search_extent: i32, + pub offset: f32, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct BiomeSpawners { + pub monster: Vec, + pub creature: Vec, + pub ambient: Vec, + #[serde(default)] + pub axolotls: Vec, + pub underground_water_creature: Vec, + pub water_creature: Vec, + pub water_ambient: Vec, + pub misc: Vec, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(rename_all = "camelCase")] +pub struct BiomeSpawner { + #[serde(rename = "type")] + pub entity_type: String, + pub weight: usize, + pub min_count: usize, + pub max_count: usize, +} diff --git a/feather/base/src/block.rs b/feather/base/src/block.rs index be84a2049..7018fc548 100644 --- a/feather/base/src/block.rs +++ b/feather/base/src/block.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; use thiserror::Error; -use libcraft_core::{BlockPosition, ChunkPosition, Position}; +use crate::{BlockPosition, ChunkPosition, Position}; use std::convert::TryFrom; /// Validated position of a block. @@ -141,8 +141,7 @@ mod tests { use std::convert::TryInto; - use libcraft_core::BlockPosition; - + use crate::prelude::*; use crate::ValidBlockPosition; #[test] diff --git a/feather/base/src/chunk.rs b/feather/base/src/chunk.rs index 8568ea366..82d2750b7 100644 --- a/feather/base/src/chunk.rs +++ b/feather/base/src/chunk.rs @@ -1,28 +1,17 @@ +use once_cell::sync::Lazy; use std::usize; -use ::blocks::BlockId; -use libcraft_core::Biome; - -use crate::ChunkPosition; - -/// The number of bits used for each block -/// in the global palette. -pub const GLOBAL_BITS_PER_BLOCK: u8 = 15; - -/// The minimum bits per block allowed when -/// using a section palette. -/// Bits per block values lower than this -/// value will be offsetted to this value. -pub const MIN_BITS_PER_BLOCK: u8 = 4; +pub use heightmap::{Heightmap, HeightmapFunction, HeightmapStore}; +pub use light::LightStore; +pub use packed_array::PackedArray; -/// The maximum number of bits per block -/// allowed when using a section palette. -/// Values above this will use the global palette -/// instead. -pub const MAX_BITS_PER_BLOCK: u8 = 8; +use crate::biome::BiomeId; +use crate::chunk::paletted_container::PalettedContainer; +use crate::world::Sections; +use libcraft_blocks::{BlockId, HIGHEST_ID}; +use libcraft_core::ChunkPosition; -/// The height in blocks of a chunk column. -pub const CHUNK_HEIGHT: usize = 256; +pub const BIOME_SAMPLE_RATE: usize = 4; /// The width in blocks of a chunk column. pub const CHUNK_WIDTH: usize = 16; @@ -33,72 +22,36 @@ pub const SECTION_HEIGHT: usize = 16; pub const SECTION_WIDTH: usize = CHUNK_WIDTH; /// The volume in blocks of a chunk section. -pub const SECTION_VOLUME: usize = (SECTION_HEIGHT * SECTION_WIDTH * SECTION_WIDTH) as usize; +pub const SECTION_VOLUME: usize = SECTION_HEIGHT * SECTION_WIDTH * SECTION_WIDTH; -/// The number of chunk sections in a column. -pub const NUM_SECTIONS: usize = 16; +pub const BIOMES_PER_CHUNK_SECTION: usize = (CHUNK_WIDTH / BIOME_SAMPLE_RATE) + * (CHUNK_WIDTH / BIOME_SAMPLE_RATE) + * (SECTION_HEIGHT / BIOME_SAMPLE_RATE); -mod biome_store; -mod blocks; mod heightmap; mod light; mod packed_array; -mod palette; +pub mod paletted_container; -pub use self::blocks::BlockStore; -pub use biome_store::BiomeStore; -pub use heightmap::{Heightmap, HeightmapFunction, HeightmapStore}; -pub use light::LightStore; -pub use packed_array::PackedArray; -pub use palette::Palette; - -/// A 16x256x16 chunk of blocks plus associated +/// A 16 x height x 16 chunk of blocks plus associated /// light, biome, and heightmap data. -/// Consists of 16 `ChunkSection`s. #[derive(Debug, Clone)] pub struct Chunk { - sections: [Option; NUM_SECTIONS + 2], - - biomes: BiomeStore, - + sections: Vec, heightmaps: HeightmapStore, - position: ChunkPosition, -} - -impl Default for Chunk { - fn default() -> Self { - let sections = [ - None, None, None, None, None, None, None, None, None, None, None, None, None, None, - None, None, None, None, - ]; - Self { - sections, - biomes: BiomeStore::default(), - position: ChunkPosition::new(0, 0), - heightmaps: HeightmapStore::new(), - } - } + min_y_section: i32, } impl Chunk { - /// Creates a new empty chunk with the - /// specified position. - /// - /// Biomes are initialized to plains. - pub fn new(position: ChunkPosition) -> Self { - Self::new_with_default_biome(position, Biome::Plains) - } - /// Creates a new empty chunk with the specified /// position. - /// - /// Biomes are initialized to `biome`. - pub fn new_with_default_biome(position: ChunkPosition, default_biome: Biome) -> Self { + pub fn new(position: ChunkPosition, sections: Sections, min_y: i32) -> Self { Self { + sections: vec![ChunkSection::default(); *sections + 2], position, - biomes: BiomeStore::new(default_biome), - ..Default::default() + heightmaps: HeightmapStore::new(sections.into()), + min_y_section: min_y / 16, } } @@ -116,44 +69,32 @@ impl Chunk { /// /// Returns `None` if the coordinates are out of bounds. pub fn block_at(&self, x: usize, y: usize, z: usize) -> Option { - let section = self.section_for_y(y)?; - match section { - Some(section) => section.block_at(x, y % SECTION_HEIGHT, z), - None => Some(BlockId::air()), - } + self.section_for_y(y)?.block_at(x, y % SECTION_HEIGHT, z) } /// Sets the block at the given position within this chunk. /// /// Returns `None` if the coordinates are out of bounds. - /// FIXME: Do not update heightmap when it is not neccessary - pub fn set_block_at(&mut self, x: usize, y: usize, z: usize, block: BlockId) -> Option<()> { - let old_block = self.block_at(x, y, z)?; - let section = self.section_for_y_mut(y)?; - let result = match section { - Some(section) => { - let result = section.set_block_at(x, y % SECTION_HEIGHT, z, block); - // If the block update caused the section to contain only - // air, free it to conserve memory. - if section.is_empty() { - self.clear_section(y); - } - result - } - None => { - if !block.is_air() { - let mut section = ChunkSection::default(); - let result = section.set_block_at(x, y % SECTION_HEIGHT, z, block); - self.set_section_at((y / SECTION_HEIGHT) as isize, Some(section)); - result - } else { - Some(()) - } - } - }; - self.heightmaps - .update(x, y, z, old_block, block, Self::block_at_fn(&self.sections)); - result + pub fn set_block_at( + &mut self, + x: usize, + y: usize, + z: usize, + block: BlockId, + update_heightmaps: bool, + ) -> Option<()> { + if update_heightmaps { + let old_block = self.block_at(x, y, z)?; + let result = self + .section_for_y_mut(y)? + .set_block_at(x, y % SECTION_HEIGHT, z, block); + self.heightmaps + .update(x, y, z, old_block, block, Self::block_at_fn(&self.sections)); + result + } else { + self.section_for_y_mut(y)? + .set_block_at(x, y % SECTION_HEIGHT, z, block) + } } /// Fills the given chunk section with `block`. @@ -163,12 +104,7 @@ impl Chunk { None => return false, }; - if block == BlockId::air() { - *section = None; - } else { - let section = section.get_or_insert_with(Default::default); - section.fill(block); - } + section.fill(block); true } @@ -179,70 +115,41 @@ impl Chunk { .recalculate(Self::block_at_fn(&self.sections)) } - fn block_at_fn( - sections: &[Option], - ) -> impl Fn(usize, usize, usize) -> BlockId + '_ { + fn block_at_fn(sections: &[ChunkSection]) -> impl Fn(usize, usize, usize) -> BlockId + '_ { move |x, y, z| { - let section = §ions[(y / SECTION_HEIGHT) + 1]; - match section { - Some(section) => section.block_at(x, y % SECTION_HEIGHT, z).unwrap(), - None => BlockId::air(), - } + sections[(y / SECTION_HEIGHT) + 1] + .block_at(x, y % SECTION_HEIGHT, z) + .unwrap() } } pub fn block_light_at(&self, x: usize, y: usize, z: usize) -> Option { - match self.section_for_y(y)? { - Some(s) => s.block_light_at(x, y % SECTION_HEIGHT, z), - None => Some(15), - } + self.section_for_y(y)? + .block_light_at(x, y % SECTION_HEIGHT, z) } pub fn sky_light_at(&self, x: usize, y: usize, z: usize) -> Option { - match self.section_for_y(y)? { - Some(s) => s.sky_light_at(x, y % SECTION_HEIGHT, z), - None => Some(15), - } + self.section_for_y(y)? + .sky_light_at(x, y % SECTION_HEIGHT, z) } pub fn set_block_light_at(&mut self, x: usize, y: usize, z: usize, light: u8) -> Option<()> { - if let Some(section) = self.section_for_y_mut(y)? { - section.set_block_light_at(x, y, z, light) - } else { - Some(()) - } + self.section_for_y_mut(y)? + .set_block_light_at(x, y, z, light) } pub fn set_sky_light_at(&mut self, x: usize, y: usize, z: usize, light: u8) -> Option<()> { - if let Some(section) = self.section_for_y_mut(y)? { - section.set_sky_light_at(x, y, z, light) - } else { - Some(()) - } + self.section_for_y_mut(y)?.set_sky_light_at(x, y, z, light) } - fn section_for_y(&self, y: usize) -> Option<&Option> { + fn section_for_y(&self, y: usize) -> Option<&ChunkSection> { self.sections.get((y / SECTION_HEIGHT) + 1) } - fn section_for_y_mut(&mut self, y: usize) -> Option<&mut Option> { + fn section_for_y_mut(&mut self, y: usize) -> Option<&mut ChunkSection> { self.sections.get_mut((y / SECTION_HEIGHT) + 1) } - fn clear_section(&mut self, y: usize) { - self.sections[(y / SECTION_HEIGHT) + 1] = None; - } - - /// Gets the [`BiomeStore`] for this chunk. - pub fn biomes(&self) -> &BiomeStore { - &self.biomes - } - - /// Mutably gets the [`BiomeStore`] for this chunk. - pub fn biomes_mut(&mut self) -> &mut BiomeStore { - &mut self.biomes - } - /// Gets the [`HeightmapStore`] for this chunk. pub fn heightmaps(&self) -> &HeightmapStore { &self.heightmaps @@ -255,44 +162,73 @@ impl Chunk { /// Gets the chunk section at index `y`. pub fn section(&self, y: isize) -> Option<&ChunkSection> { - self.sections.get((y + 1) as usize)?.as_ref() + self.sections.get((y + 1) as usize) } /// Mutably gets the chunk section at index `y`. pub fn section_mut(&mut self, y: isize) -> Option<&mut ChunkSection> { - self.sections.get_mut((y + 1) as usize)?.as_mut() + self.sections.get_mut((y + 1) as usize) } /// Sets the section at index `y`. - pub fn set_section_at(&mut self, y: isize, section: Option) { + pub fn set_section_at(&mut self, y: isize, section: ChunkSection) { self.sections[(y + 1) as usize] = section; } /// Gets the sections of this chunk. - pub fn sections(&self) -> &[Option] { + pub fn sections(&self) -> &[ChunkSection] { &self.sections } + + /// Gets the sections of this chunk. + pub fn sections_mut(&mut self) -> &mut [ChunkSection] { + &mut self.sections + } + + pub fn min_y_section(&self) -> i32 { + self.min_y_section + } + + pub fn min_y(&self) -> i32 { + self.min_y_section * SECTION_HEIGHT as i32 + } } /// A 16x16x16 chunk of blocks. #[derive(Debug, Clone)] pub struct ChunkSection { - blocks: BlockStore, - + blocks: PalettedContainer, + biomes: PalettedContainer, + air_block_count: u32, light: LightStore, } impl Default for ChunkSection { fn default() -> Self { - Self::new(BlockStore::new(), LightStore::new()) + Self::new( + PalettedContainer::new(), + PalettedContainer::new(), + SECTION_VOLUME as u32, + LightStore::new(), + ) } } impl ChunkSection { /// Creates new `ChunkSection` from its /// raw parts. - pub fn new(blocks: BlockStore, light: LightStore) -> Self { - Self { blocks, light } + pub fn new( + blocks: PalettedContainer, + biomes: PalettedContainer, + air_block_count: u32, + light: LightStore, + ) -> Self { + Self { + blocks, + biomes, + air_block_count, + light, + } } /// Determines whether this chunk is empty (contains only air). @@ -302,7 +238,7 @@ impl ChunkSection { /// Returns the number of air blocks in this chunk section. pub fn air_blocks(&self) -> u32 { - self.blocks.air_blocks() + self.air_block_count } /// Returns the number of non-air blocks in this chunk section. @@ -313,7 +249,7 @@ impl ChunkSection { /// Gets the block at the given coordinates within this /// chunk section. pub fn block_at(&self, x: usize, y: usize, z: usize) -> Option { - self.blocks.block_at(x, y, z) + self.blocks.get_block_at(x, y, z) } /// Sets the block at the given coordinates within @@ -321,6 +257,7 @@ impl ChunkSection { /// /// Returns `None` if the coordinates were out of bounds. pub fn set_block_at(&mut self, x: usize, y: usize, z: usize, block: BlockId) -> Option<()> { + self.update_air_block_count(x, y, z, block); self.blocks.set_block_at(x, y, z, block) } @@ -329,6 +266,12 @@ impl ChunkSection { /// Does not currently update heightmaps. pub fn fill(&mut self, block: BlockId) { self.blocks.fill(block); + + if block.is_air() { + self.air_block_count = SECTION_VOLUME as u32; + } else { + self.air_block_count = 0; + } } pub fn block_light_at(&self, x: usize, y: usize, z: usize) -> Option { @@ -355,14 +298,60 @@ impl ChunkSection { &mut self.light } - pub fn blocks(&self) -> &BlockStore { + pub fn blocks(&self) -> &PalettedContainer { &self.blocks } - pub fn blocks_mut(&mut self) -> &mut BlockStore { + pub fn blocks_mut(&mut self) -> &mut PalettedContainer { &mut self.blocks } + pub fn biomes(&self) -> &PalettedContainer { + &self.biomes + } + + pub fn biomes_mut(&mut self) -> &mut PalettedContainer { + &mut self.biomes + } + + pub fn count_air_blocks(blocks: &PalettedContainer) -> u32 { + match blocks { + PalettedContainer::SingleValue(value) if value.is_air() => blocks.len() as u32, + PalettedContainer::SingleValue(_) => 0, + PalettedContainer::MultipleValues { data, palette } => { + let air_blocks_in_palette = palette + .iter() + .enumerate() + .filter_map(|(i, value)| if value.is_air() { Some(i) } else { None }) + .map(|i| i as u32) + .collect::>(); + data.iter() + .filter(|block| air_blocks_in_palette.contains(&(*block as u32))) + .count() as u32 + } + PalettedContainer::GlobalPalette { data } => { + static AIR_BLOCKS: Lazy> = Lazy::new(|| { + (0..HIGHEST_ID) + .filter(|index| BlockId::from_vanilla_id(*index as u16).unwrap().is_air()) + .map(|i| i as u32) + .collect::>() + }); + data.iter() + .filter(|block| AIR_BLOCKS.contains(&(*block as u32))) + .count() as u32 + } + } + } + + fn update_air_block_count(&mut self, x: usize, y: usize, z: usize, new: BlockId) { + let old = self.block_at(x, y, z).unwrap(); + if old.is_air() && !new.is_air() { + self.air_block_count -= 1; + } else if !old.is_air() && new.is_air() { + self.air_block_count += 1; + } + } + fn block_index(x: usize, y: usize, z: usize) -> Option { if x >= SECTION_WIDTH || y >= SECTION_WIDTH || z >= SECTION_WIDTH { None @@ -370,17 +359,30 @@ impl ChunkSection { Some((y << 8) | (z << 4) | x) } } + + fn biome_index(x: usize, y: usize, z: usize) -> Option { + if x >= SECTION_WIDTH / BIOME_SAMPLE_RATE + || y >= SECTION_WIDTH / BIOME_SAMPLE_RATE + || z >= SECTION_WIDTH / BIOME_SAMPLE_RATE + { + None + } else { + Some((y << 4) | (z << 2) | x) + } + } } #[cfg(test)] mod tests { + use crate::blocks::HIGHEST_ID; + use crate::prelude::*; + use super::*; - use crate::HIGHEST_ID; #[test] fn chunk_new() { let pos = ChunkPosition::new(0, 0); - let chunk = Chunk::new(pos); + let chunk = Chunk::new(pos, Sections(16)); // Confirm that chunk is empty for x in 0..16 { @@ -394,7 +396,7 @@ mod tests { #[test] fn chunk_new_with_default_biome() { let pos = ChunkPosition::new(0, 0); - let chunk = Chunk::new_with_default_biome(pos, Biome::Mountains); + let chunk = Chunk::new_with_default_biome(pos, BiomeId::Mountains, Sections(16)); // Confirm that chunk is empty for x in 0..16 { @@ -405,9 +407,9 @@ mod tests { assert_eq!(chunk.position(), pos); // Confirm that biomes are set - for x in 0..4 { - for z in 0..4 { - assert_eq!(chunk.biomes.get(x, 0, z), Biome::Mountains); + for x in 0..BIOME_SAMPLE_RATE { + for z in 0..BIOME_SAMPLE_RATE { + assert_eq!(chunk.biomes.get(x, 0, z), BiomeId::Mountains); } } } @@ -415,7 +417,7 @@ mod tests { #[test] fn set_block_simple() { let pos = ChunkPosition::new(0, 0); - let mut chunk = Chunk::new(pos); + let mut chunk = Chunk::new(pos, Sections(16)); chunk.set_block_at(0, 0, 0, BlockId::andesite()); assert_eq!(chunk.block_at(0, 0, 0).unwrap(), BlockId::andesite()); @@ -425,13 +427,13 @@ mod tests { #[test] fn fill_chunk() { let pos = ChunkPosition::new(0, 0); - let mut chunk = Chunk::new(pos); + let mut chunk = Chunk::new(pos, Sections(16)); let block = BlockId::stone(); - for x in 0..16 { - for y in 0..256 { - for z in 0..16 { + for x in 0..SECTION_WIDTH { + for y in 0..16 * SECTION_HEIGHT { + for z in 0..SECTION_WIDTH { chunk.set_block_at(x, y, z, block).unwrap(); assert_eq!(chunk.block_at(x, y, z), Some(block)); } @@ -439,9 +441,9 @@ mod tests { } // Check again, just to be sure - for x in 0..16 { - for y in 0..256 { - for z in 0..16 { + for x in 0..SECTION_WIDTH { + for y in 0..16 * SECTION_HEIGHT { + for z in 0..SECTION_WIDTH { assert_eq!(chunk.block_at(x, y, z), Some(block)); } } @@ -456,7 +458,7 @@ mod tests { // resizing, etc. works correctly. let pos = ChunkPosition::new(0, 0); - let mut chunk = Chunk::new(pos); + let mut chunk = Chunk::new(pos, Sections(16)); for section in chunk.sections() { assert!(section.is_none()); @@ -464,12 +466,15 @@ mod tests { for section in 0..16 { let mut counter = 0; - for x in 0..16 { - for y in 0..16 { - for z in 0..16 { + for x in 0..SECTION_WIDTH { + for y in 0..SECTION_HEIGHT { + for z in 0..SECTION_WIDTH { let block = BlockId::from_vanilla_id(counter); - chunk.set_block_at(x, (section * 16) + y, z, block); - assert_eq!(chunk.block_at(x, (section * 16) + y, z), Some(block)); + chunk.set_block_at(x, (section * SECTION_HEIGHT) + y, z, block); + assert_eq!( + chunk.block_at(x, (section * SECTION_HEIGHT) + y, z), + Some(block) + ); if counter != 0 { assert!( chunk.section(section as isize).is_some(), @@ -487,12 +492,12 @@ mod tests { for section in 0..16 { assert!(chunk.section(section).is_some()); let mut counter = 0; - for x in 0..16 { - for y in 0..16 { - for z in 0..16 { + for x in 0..SECTION_WIDTH { + for y in 0..SECTION_HEIGHT { + for z in 0..SECTION_WIDTH { let block = BlockId::from_vanilla_id(counter); assert_eq!( - chunk.block_at(x, (section as usize * 16) + y, z), + chunk.block_at(x, (section as usize * SECTION_HEIGHT) + y, z), Some(block) ); assert!(chunk.section(section).is_some()); @@ -504,9 +509,9 @@ mod tests { // Now, empty the chunk and ensure // that the sections become empty. - for x in 0..16 { - for y in 0..256 { - for z in 0..16 { + for x in 0..SECTION_WIDTH { + for y in 0..16 * SECTION_HEIGHT { + for z in 0..SECTION_WIDTH { chunk.set_block_at(x, y, z, BlockId::air()); } } @@ -520,25 +525,25 @@ mod tests { #[test] fn section_from_data_and_palette() { let pos = ChunkPosition::new(0, 0); - let mut chunk = Chunk::new(pos); + let mut chunk = Chunk::new(pos, Sections(16)); let mut palette = Palette::new(); let stone_index = palette.index_or_insert(BlockId::stone()); - let mut data = PackedArray::new(4096, 5); + let mut data = PackedArray::new(16 * SECTION_WIDTH * SECTION_WIDTH, 5); for i in 0..4096 { data.set(i, stone_index as u64); } let section = ChunkSection::new( - BlockStore::from_raw_parts(Some(palette), data), + PackedArrayStore::from_raw_parts(Some(palette), data), LightStore::new(), ); chunk.set_section_at(0, Some(section)); - for x in 0..16 { + for x in 0..SECTION_WIDTH { for y in 0..16 { - for z in 0..16 { + for z in 0..SECTION_WIDTH { assert_eq!(chunk.block_at(x, y, z).unwrap(), BlockId::stone()); } } @@ -558,20 +563,20 @@ mod tests { #[test] fn test_biomes() { - let mut chunk = Chunk::default(); + let mut chunk = Chunk::new(ChunkPosition::default(), Sections(16)); - for x in 0..4 { - for z in 0..4 { - assert_eq!(chunk.biomes().get(x, 0, z), Biome::Plains); - chunk.biomes_mut().set(x, 0, z, Biome::BirchForest); - assert_eq!(chunk.biomes().get(x, 0, z), Biome::BirchForest); + for x in 0..BIOME_SAMPLE_RATE { + for z in 0..BIOME_SAMPLE_RATE { + assert_eq!(chunk.biomes().get(x, 0, z), BiomeId::TheVoid); + chunk.biomes_mut().set(x, 0, z, BiomeId::BirchForest); + assert_eq!(chunk.biomes().get(x, 0, z), BiomeId::BirchForest); } } } #[test] fn test_light() { - let mut chunk = Chunk::default(); + let mut chunk = Chunk::new(ChunkPosition::default(), Sections(16)); chunk.set_block_at(0, 0, 0, BlockId::stone()).unwrap(); @@ -589,7 +594,7 @@ mod tests { #[test] fn heightmaps() { - let mut chunk = Chunk::new(ChunkPosition::new(0, 0)); + let mut chunk = Chunk::new(ChunkPosition::new(0, 0), Sections(16)); chunk.set_block_at(0, 10, 0, BlockId::stone()); assert_eq!(chunk.heightmaps.motion_blocking.height(0, 0), Some(10)); diff --git a/feather/base/src/chunk/biome_store.rs b/feather/base/src/chunk/biome_store.rs deleted file mode 100644 index f1f1536d5..000000000 --- a/feather/base/src/chunk/biome_store.rs +++ /dev/null @@ -1,133 +0,0 @@ -use libcraft_core::Biome; - -use crate::{CHUNK_HEIGHT, CHUNK_WIDTH}; - -pub const BIOME_SAMPLE_RATE: usize = 4; - -pub const BIOMES_PER_CHUNK: usize = (CHUNK_WIDTH / BIOME_SAMPLE_RATE) - * (CHUNK_WIDTH / BIOME_SAMPLE_RATE) - * (CHUNK_HEIGHT / BIOME_SAMPLE_RATE); - -/// Stores the biomes of a chunk. -/// -/// Since Minecraft 1.16, Mojang uses a 3D -/// biome grid sampled in 4x4x4 blocks. We -/// do the same, though right now Feather -/// only uses 2D biomes. -#[derive(Debug, Copy, Clone)] -pub struct BiomeStore { - biomes: [Biome; BIOMES_PER_CHUNK], -} - -impl BiomeStore { - pub fn new(default_biome: Biome) -> Self { - Self { - biomes: [default_biome; BIOMES_PER_CHUNK], - } - } - - /// Creates a `BiomeStore` from a slice of `BIOMES_PER_CHUNK` biomes. - /// - /// Returns `None` if `biomes` is not of the correct length. - pub fn from_slice(biome_slice: &[Biome]) -> Option { - let mut biomes = [Biome::Plains; BIOMES_PER_CHUNK]; - if biomes.len() != biome_slice.len() { - return None; - } - - biomes.copy_from_slice(biome_slice); - Some(Self { biomes }) - } - - /// Sets the biome at the given coordinates, in multiples - /// of 4 blocks. - /// - /// # Panics - /// Panics if `x >= 4`, `z >= 4`, or `y >= 64`. - pub fn set(&mut self, x: usize, y: usize, z: usize, biome: Biome) { - let index = self.index(x, y, z); - self.biomes[index] = biome; - } - - /// Gets the biome at the given coordinates, - /// in multiples of 4 blocks. - /// - /// # Panics - /// Panics if `x >= 4`, `z >= 4`, or `y >= 64`. - pub fn get(&self, x: usize, y: usize, z: usize) -> Biome { - let index = self.index(x, y, z); - self.biomes[index] - } - - pub fn get_at_block(&self, x: usize, y: usize, z: usize) -> Biome { - self.get(x / 4, y / 4, z / 4) - } - - /// Gets biome data as a raw slice. - pub fn as_slice(&self) -> &[Biome] { - &self.biomes - } - - /// Gets biomes as a mutably slice. - pub fn as_slice_mut(&mut self) -> &mut [Biome] { - &mut self.biomes - } - - fn index(&self, x: usize, y: usize, z: usize) -> usize { - assert!(x < 4); - assert!(y < 64); - assert!(z < 4); - x + (z * 4) + (y * 16) - } -} - -impl Default for BiomeStore { - fn default() -> Self { - Self::new(Biome::Plains) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn default_biome() { - let biomes = BiomeStore::new(Biome::Badlands); - for x in 0..4 { - for y in 0..64 { - for z in 0..4 { - assert_eq!(biomes.get(x, y, z), Biome::Badlands); - } - } - } - } - - #[test] - fn set_and_get_biomes() { - let mut biomes = BiomeStore::new(Biome::Beach); - - biomes.set(0, 1, 2, Biome::BambooJungle); - assert_eq!(biomes.get(0, 1, 2), Biome::BambooJungle); - } - - #[test] - #[should_panic] - fn out_of_bounds() { - let biomes = BiomeStore::new(Biome::Plains); - biomes.get(4, 0, 0); - } - - #[test] - fn from_slice_correct_length() { - let biome_slice = [Biome::BasaltDeltas; BIOMES_PER_CHUNK]; - let biomes = BiomeStore::from_slice(&biome_slice).unwrap(); - assert_eq!(biomes.as_slice(), biome_slice); - } - - #[test] - fn from_slice_incorrect_length() { - let biome_slice = [Biome::BasaltDeltas; BIOMES_PER_CHUNK - 1]; - assert!(BiomeStore::from_slice(&biome_slice).is_none()); - } -} diff --git a/feather/base/src/chunk/blocks.rs b/feather/base/src/chunk/blocks.rs deleted file mode 100644 index 3cad2db02..000000000 --- a/feather/base/src/chunk/blocks.rs +++ /dev/null @@ -1,175 +0,0 @@ -use blocks::BlockId; - -use crate::ChunkSection; - -use super::{ - PackedArray, Palette, GLOBAL_BITS_PER_BLOCK, MAX_BITS_PER_BLOCK, MIN_BITS_PER_BLOCK, - SECTION_VOLUME, -}; - -/// Stores the blocks of a chunk section. -#[derive(Debug, Clone)] -pub struct BlockStore { - /// `None` if using the global palette - palette: Option, - - /// Stores indices into `palette`, or just block IDs - /// if using the global palette - blocks: PackedArray, - - air_block_count: u32, -} - -impl Default for BlockStore { - fn default() -> Self { - Self::new() - } -} - -impl BlockStore { - /// Creates a new `BlockStore` containing air. - pub fn new() -> Self { - Self { - palette: Some(Palette::new()), - blocks: PackedArray::new(SECTION_VOLUME, MIN_BITS_PER_BLOCK as usize), - air_block_count: SECTION_VOLUME as u32, - } - } - - /// Creates a new `BlockStore` from the palette - /// and data array. - pub fn from_raw_parts(palette: Option, blocks: PackedArray) -> Self { - let air_block_count = Self::count_air_blocks(&blocks, &palette); - Self { - palette, - blocks, - air_block_count, - } - } - - pub fn data(&self) -> &PackedArray { - &self.blocks - } - - #[cfg(feature = "proxy")] - pub fn data_mut(&mut self) -> &mut PackedArray { - &mut self.blocks - } - - pub fn palette(&self) -> Option<&Palette> { - self.palette.as_ref() - } - - #[cfg(feature = "proxy")] - pub fn palette_mut(&mut self) -> Option<&mut Palette> { - self.palette.as_mut() - } - - fn count_air_blocks(blocks: &PackedArray, palette: &Option) -> u32 { - let mut count = 0; - blocks.iter().for_each(|x| { - let block = match palette { - Some(p) => p.get(x as usize), - None => BlockId::from_vanilla_id(x as u16), - }; - if block.is_air() { - count += 1; - } - }); - count - } - - pub fn air_blocks(&self) -> u32 { - self.air_block_count - } - - #[cfg(feature = "proxy")] - pub fn set_air_blocks(&mut self, new_value: u32) { - self.air_block_count = new_value; - } - - pub fn block_at(&self, x: usize, y: usize, z: usize) -> Option { - let index = ChunkSection::block_index(x, y, z)?; - let block_index = self.blocks.get(index).expect("block_index out of bounds?"); - - Some(match &self.palette { - Some(palette) => palette.get(block_index as usize), - None => BlockId::from_vanilla_id(block_index as u16), - }) - } - - pub fn set_block_at(&mut self, x: usize, y: usize, z: usize, block: BlockId) -> Option<()> { - let index = ChunkSection::block_index(x, y, z)?; - self.update_air_block_count(x, y, z, block); - - let block_index = self.get_block_palette_index(block); - self.blocks.set(index, block_index as u64); - - Some(()) - } - - pub fn fill(&mut self, block: BlockId) { - let index = if let Some(ref mut palette) = self.palette { - palette.clear(); - palette.index_or_insert(block) - } else { - self.palette = Some(Palette::new()); - self.palette.as_mut().unwrap().index_or_insert(block) - }; - - self.blocks.fill(index as u64); - - if block.is_air() { - self.air_block_count = SECTION_VOLUME as u32; - } else { - self.air_block_count = 0; - } - } - - fn get_block_palette_index(&mut self, block: BlockId) -> usize { - match &mut self.palette { - Some(p) => { - let index = p.index_or_insert(block); - self.resize_if_needed(); - index - } - None => block.vanilla_id() as usize, - } - } - - fn resize_if_needed(&mut self) { - let palette = self.palette.as_ref().unwrap(); - - if palette.len() - 1 > self.blocks.max_value() as usize { - // Resize to either the global palette or a new section palette size. - let new_size = self.blocks.bits_per_value() + 1; - if new_size > MAX_BITS_PER_BLOCK as usize { - self.use_global_palette(); - } else { - self.blocks = self.blocks.resized(new_size); - } - } - } - - fn use_global_palette(&mut self) { - self.blocks = self.blocks.resized(GLOBAL_BITS_PER_BLOCK as usize); - let palette = self.palette.as_ref().unwrap(); - - // Update blocks to use vanilla IDs instead of palette indices - for i in 0..SECTION_VOLUME { - let block = palette.get(self.blocks.get(i).unwrap() as usize); - self.blocks.set(i, block.vanilla_id() as u64); - } - - self.palette = None; - } - - fn update_air_block_count(&mut self, x: usize, y: usize, z: usize, new: BlockId) { - let old = self.block_at(x, y, z).unwrap(); - if old.is_air() && !new.is_air() { - self.air_block_count -= 1; - } else if !old.is_air() && new.is_air() { - self.air_block_count += 1; - } - } -} diff --git a/feather/base/src/chunk/heightmap.rs b/feather/base/src/chunk/heightmap.rs index 83c3cedda..88c2b2db1 100644 --- a/feather/base/src/chunk/heightmap.rs +++ b/feather/base/src/chunk/heightmap.rs @@ -1,35 +1,27 @@ use std::marker::PhantomData; -use blocks::{BlockId, SimplifiedBlockKind}; - -use crate::{CHUNK_HEIGHT, CHUNK_WIDTH}; +use libcraft_blocks::{BlockId, SimplifiedBlockKind}; use super::PackedArray; +use crate::chunk::{CHUNK_WIDTH, SECTION_WIDTH}; +use crate::world::WorldHeight; /// Stores heightmaps for a chunk. #[derive(Debug, Clone)] pub struct HeightmapStore { pub motion_blocking: Heightmap, pub motion_blocking_no_leaves: Heightmap, - pub light_blocking: Heightmap, pub ocean_floor: Heightmap, pub world_surface: Heightmap, } -impl Default for HeightmapStore { - fn default() -> Self { - Self::new() - } -} - impl HeightmapStore { - pub fn new() -> Self { + pub fn new(height: WorldHeight) -> Self { Self { - motion_blocking: Heightmap::new(), - motion_blocking_no_leaves: Heightmap::new(), - light_blocking: Heightmap::new(), - ocean_floor: Heightmap::new(), - world_surface: Heightmap::new(), + motion_blocking: Heightmap::new(height), + motion_blocking_no_leaves: Heightmap::new(height), + ocean_floor: Heightmap::new(height), + world_surface: Heightmap::new(height), } } @@ -46,8 +38,6 @@ impl HeightmapStore { .update(x, y, z, old_block, new_block, &get_block); self.motion_blocking_no_leaves .update(x, y, z, old_block, new_block, &get_block); - self.light_blocking - .update(x, y, z, old_block, new_block, &get_block); self.ocean_floor .update(x, y, z, old_block, new_block, &get_block); self.world_surface @@ -57,7 +47,6 @@ impl HeightmapStore { pub fn recalculate(&mut self, get_block: impl Fn(usize, usize, usize) -> BlockId) { self.motion_blocking.recalculate(&get_block); self.motion_blocking_no_leaves.recalculate(&get_block); - self.light_blocking.recalculate(&get_block); self.ocean_floor.recalculate(&get_block); self.world_surface.recalculate(&get_block); } @@ -114,25 +103,21 @@ impl HeightmapFunction for WorldSurface { #[derive(Debug, Clone)] pub struct Heightmap { heights: PackedArray, + height: WorldHeight, _marker: PhantomData, } -impl Default for Heightmap -where - F: HeightmapFunction, -{ - fn default() -> Self { - Self::new() - } -} - impl Heightmap where F: HeightmapFunction, { - pub fn new() -> Self { + pub fn new(height: WorldHeight) -> Self { Self { - heights: PackedArray::new(256, 9), + heights: PackedArray::new( + SECTION_WIDTH * SECTION_WIDTH, + (*height as f64 + 1.0).log2().ceil() as usize, + ), + height, _marker: PhantomData, } } @@ -142,7 +127,6 @@ where self.heights.set(index, height as u64); } - #[cfg(feature = "proxy")] pub fn set_height_index(&mut self, index: usize, height: i64) { self.heights.as_u64_mut_vec()[index] = height as u64; } @@ -191,7 +175,7 @@ where pub fn recalculate(&mut self, get_block: impl Fn(usize, usize, usize) -> BlockId) { for x in 0..CHUNK_WIDTH { for z in 0..CHUNK_WIDTH { - for y in (0..CHUNK_HEIGHT).rev() { + for y in (0..*self.height).rev() { if F::is_solid(get_block(x, y, z)) { self.set_height(x, z, y + 1); break; @@ -200,4 +184,30 @@ where } } } + + pub fn from_u64_vec(vec: Vec, height: WorldHeight) -> Heightmap { + Heightmap { + heights: PackedArray::from_u64_vec(vec, SECTION_WIDTH * SECTION_WIDTH), + height, + _marker: PhantomData, + } + } +} + +#[cfg(test)] +mod tests { + use crate::base::chunk::Chunk; + use crate::common::world::Sections; + use crate::prelude::ChunkPosition; + use std::time::SystemTime; + + #[test] + fn test() { + let mut chunk = Chunk::new(ChunkPosition::default(), Sections(16)); + let time = SystemTime::now(); + for _ in 0..10000 { + chunk.recalculate_heightmaps(); + } + println!("{:?}", time.elapsed()); + } } diff --git a/feather/base/src/chunk/light.rs b/feather/base/src/chunk/light.rs index ded6beb87..f1e5ac195 100644 --- a/feather/base/src/chunk/light.rs +++ b/feather/base/src/chunk/light.rs @@ -1,12 +1,14 @@ -use crate::ChunkSection; +use crate::chunk::ChunkSection; use super::{PackedArray, SECTION_VOLUME}; /// Contains light data for a chunk section. #[derive(Debug, Clone)] pub struct LightStore { - block_light: PackedArray, - sky_light: PackedArray, + /// Could be None in some dimensions (see [has_skylight](crate::common::world::DimensionTypeInfo.has_skylight)) or when you get this packet from deserialization of [LightData](crate::protocol::packets::server::play::update_light::LightData) + sky_light: Option, + /// Could be None when you get this packet from deserialization of [LightData](crate::protocol::packets::server::play::update_light::LightData) + block_light: Option, } impl Default for LightStore { @@ -19,20 +21,32 @@ impl LightStore { /// Creates a `LightStore` with all light set to 15. pub fn new() -> Self { let mut this = LightStore { - block_light: PackedArray::new(SECTION_VOLUME, 4), - sky_light: PackedArray::new(SECTION_VOLUME, 4), + sky_light: Some(PackedArray::new(SECTION_VOLUME, 4)), + block_light: Some(PackedArray::new(SECTION_VOLUME, 4)), }; - fill_with_default_light(&mut this.block_light); - fill_with_default_light(&mut this.sky_light); + fill_with_default_light(this.sky_light.as_mut().unwrap()); + fill_with_default_light(this.block_light.as_mut().unwrap()); this } + /// Creates a `LightStore` with all light set to 0. + pub fn empty() -> Self { + LightStore { + block_light: Some(PackedArray::new(SECTION_VOLUME, 4)), + sky_light: Some(PackedArray::new(SECTION_VOLUME, 4)), + } + } /// Creates a `LightStore` from packed arrays. - pub fn from_packed_arrays(block_light: PackedArray, sky_light: PackedArray) -> Option { - if block_light.len() != SECTION_VOLUME - || sky_light.len() != SECTION_VOLUME - || block_light.bits_per_value() != 4 - || sky_light.bits_per_value() != 4 + pub fn from_packed_arrays( + sky_light: Option, + block_light: Option, + ) -> Option { + if (sky_light.is_some() + && (sky_light.as_ref().unwrap().len() != SECTION_VOLUME + || sky_light.as_ref().unwrap().bits_per_value() != 4)) + || (block_light.is_some() + && (block_light.as_ref().unwrap().len() != SECTION_VOLUME + || block_light.as_ref().unwrap().bits_per_value() != 4)) { None } else { @@ -43,34 +57,42 @@ impl LightStore { } } - pub fn block_light_at(&self, x: usize, y: usize, z: usize) -> Option { + pub fn sky_light_at(&self, x: usize, y: usize, z: usize) -> Option { let index = ChunkSection::block_index(x, y, z)?; - self.block_light.get(index).map(|x| x as u8) + self.sky_light.as_ref()?.get(index).map(|x| x as u8) } - pub fn sky_light_at(&self, x: usize, y: usize, z: usize) -> Option { + pub fn block_light_at(&self, x: usize, y: usize, z: usize) -> Option { let index = ChunkSection::block_index(x, y, z)?; - self.sky_light.get(index).map(|x| x as u8) + self.block_light.as_ref()?.get(index).map(|x| x as u8) } - pub fn set_block_light_at(&mut self, x: usize, y: usize, z: usize, light: u8) -> Option<()> { + pub fn set_sky_light_at(&mut self, x: usize, y: usize, z: usize, light: u8) -> Option<()> { let index = ChunkSection::block_index(x, y, z)?; - self.block_light.set(index, light.min(15) as u64); + self.sky_light.as_mut()?.set(index, light.min(15) as u64); Some(()) } - pub fn set_sky_light_at(&mut self, x: usize, y: usize, z: usize, light: u8) -> Option<()> { + pub fn set_block_light_at(&mut self, x: usize, y: usize, z: usize, light: u8) -> Option<()> { let index = ChunkSection::block_index(x, y, z)?; - self.sky_light.set(index, light.min(15) as u64); + self.block_light.as_mut()?.set(index, light.min(15) as u64); Some(()) } - pub fn block_light(&self) -> &PackedArray { - &self.block_light + pub fn sky_light(&self) -> Option<&PackedArray> { + self.sky_light.as_ref() + } + + pub fn block_light(&self) -> Option<&PackedArray> { + self.block_light.as_ref() + } + + pub fn sky_light_mut(&mut self) -> Option<&mut PackedArray> { + self.sky_light.as_mut() } - pub fn sky_light(&self) -> &PackedArray { - &self.sky_light + pub fn block_light_mut(&mut self) -> Option<&mut PackedArray> { + self.block_light.as_mut() } } diff --git a/feather/base/src/chunk/packed_array.rs b/feather/base/src/chunk/packed_array.rs index 313882821..9db2a05f1 100644 --- a/feather/base/src/chunk/packed_array.rs +++ b/feather/base/src/chunk/packed_array.rs @@ -1,6 +1,8 @@ +use std::mem::ManuallyDrop; + /// A packed array of integers where each integer consumes -/// `n` bits. Used to store block data in chunks. -#[derive(Debug, Clone)] +/// `bits_per_value` bits. Used to store block data in chunks. +#[derive(Debug, Clone, Default)] pub struct PackedArray { length: usize, bits_per_value: usize, @@ -29,7 +31,7 @@ impl PackedArray { /// Creates a `PackedArray` from raw `u64` data /// and a length. pub fn from_u64_vec(bits: Vec, length: usize) -> Self { - let bits_per_value = bits.len() * 64 / length; + let bits_per_value = bits.len() * u64::BITS as usize / length; Self { length, bits_per_value, @@ -37,6 +39,19 @@ impl PackedArray { } } + /// Creates a `PackedArray` from raw `i64` data + /// and a length. + pub fn from_i64_vec(bits: Vec, length: usize) -> Self { + // SAFETY: i64 and u64 have the same memory layout + let mut bits = ManuallyDrop::new(bits); + Self::from_u64_vec( + unsafe { + Vec::from_raw_parts(bits.as_mut_ptr() as *mut u64, bits.len(), bits.capacity()) + }, + length, + ) + } + /// Gets the value at the given index. #[inline] pub fn get(&self, index: usize) -> Option { @@ -44,6 +59,10 @@ impl PackedArray { return None; } + if self.bits_per_value == 0 { + return Some(u64::MAX); + } + let (u64_index, bit_index) = self.indexes(index); let u64 = self.bits[u64_index]; @@ -56,7 +75,7 @@ impl PackedArray { /// Panics if `index >= self.length()` or `value > self.max_value()`. #[inline] pub fn set(&mut self, index: usize, value: u64) { - assert!( + debug_assert!( index < self.len(), "index out of bounds: index is {}; length is {}", index, @@ -64,7 +83,7 @@ impl PackedArray { ); let mask = self.mask(); - assert!(value <= mask); + debug_assert!(value <= mask); let (u64_index, bit_index) = self.indexes(index); @@ -103,7 +122,8 @@ impl PackedArray { } /// Resizes this packed array to a new bits per value. - pub fn resized(&mut self, new_bits_per_value: usize) -> PackedArray { + #[must_use = "method returns a new array and does not mutate the original value"] + pub fn resized(&self, new_bits_per_value: usize) -> PackedArray { Self::from_iter(self.iter(), new_bits_per_value) } @@ -166,7 +186,7 @@ impl PackedArray { self.bits_per_value } - #[cfg(feature = "proxy")] + /// Sets the number of bits used to represent each value. pub fn set_bits_per_value(&mut self, new_value: usize) { self.bits_per_value = new_value; } @@ -176,7 +196,7 @@ impl PackedArray { &self.bits } - #[cfg(feature = "proxy")] + /// Gets the raw mutable `u64` data. pub fn as_u64_mut_vec(&mut self) -> &mut Vec { &mut self.bits } @@ -186,18 +206,26 @@ impl PackedArray { } fn needed_u64s(&self) -> usize { - (self.length + self.values_per_u64() - 1) / self.values_per_u64() + if self.bits_per_value == 0 { + 0 + } else { + (self.length + self.values_per_u64() - 1) / self.values_per_u64() + } } fn values_per_u64(&self) -> usize { - 64 / self.bits_per_value + if self.bits_per_value == 0 { + 0 + } else { + 64 / self.bits_per_value + } } fn indexes(&self, index: usize) -> (usize, usize) { - let u64_index = index / self.values_per_u64(); - let bit_index = (index % self.values_per_u64()) * self.bits_per_value; - - (u64_index, bit_index) + let vales_per_u64 = self.values_per_u64(); + let u64_index = index / vales_per_u64; + let index = index % vales_per_u64; + (u64_index, index * self.bits_per_value) } } diff --git a/feather/base/src/chunk/palette.rs b/feather/base/src/chunk/palette.rs deleted file mode 100644 index 97a05008d..000000000 --- a/feather/base/src/chunk/palette.rs +++ /dev/null @@ -1,152 +0,0 @@ -use blocks::BlockId; - -/// Stores the set of distinct `BlockId`s in a chunk section. -/// -/// Empty entries in the palette default to air. -/// -/// The entry with index 0 is always air. -#[derive(Debug, Clone)] -pub struct Palette { - blocks: Vec, - free_indices: Vec, -} - -impl Default for Palette { - fn default() -> Self { - Self::new() - } -} - -#[allow(clippy::len_without_is_empty)] // palette is never empty -impl Palette { - /// Creates an empty palette. - pub fn new() -> Self { - Self { - blocks: vec![BlockId::air()], - free_indices: Vec::new(), - } - } - - /// Gets the blocks in this palette as a slice. - pub fn as_slice(&self) -> &[BlockId] { - &self.blocks - } - - /// Gets the index in the palette of `block`. - /// Inserts the block into the palette if it - /// does not already exist. - pub fn index_or_insert(&mut self, block: BlockId) -> usize { - match self.index_of(block) { - Some(i) => i, - None => self.insert(block), - } - } - - fn insert(&mut self, block: BlockId) -> usize { - match self.free_indices.pop() { - Some(i) => { - self.blocks[i] = block; - i - } - None => { - let i = self.blocks.len(); - self.blocks.push(block); - i - } - } - } - - /// Gets the block at index `i`, or air if - /// the palette does not contain `i`. - pub fn get(&self, index: usize) -> BlockId { - self.blocks.get(index).copied().unwrap_or_else(BlockId::air) - } - - /// Gets the number of blocks in the palette. - pub fn len(&self) -> usize { - self.blocks.len() - } - - /// Removes the given block from this palette. - pub fn remove(&mut self, block: BlockId) { - if let Some(index) = self.index_of(block) { - self.blocks[index] = BlockId::air(); - self.free_indices.push(index); - } - } - - /// Clears the palette, leaving only the air entry at index 0. - pub fn clear(&mut self) { - self.blocks.clear(); - self.blocks.push(BlockId::air()); - } - - fn index_of(&self, block: BlockId) -> Option { - self.blocks.iter().position(|b| *b == block) - } -} - -#[cfg(test)] -mod tests { - use ahash::AHashMap; - use blocks::BlockId; - - use super::*; - - #[test] - fn add_blocks() { - let mut palette = Palette::new(); - - for i in 0..100 { - let index = palette.index_or_insert(BlockId::from_vanilla_id(i)); - assert_eq!(index, i as usize); - assert_eq!(palette.get(index), BlockId::from_vanilla_id(i)); - } - - assert_eq!(palette.len(), 100); - } - - #[test] - fn empty_entries_are_air() { - let palette = Palette::new(); - assert_eq!(palette.get(0), BlockId::air()); - } - - #[test] - fn remove_blocks() { - let mut palette = Palette::new(); - - let mut mapping: AHashMap = AHashMap::new(); - - for i in 0..100 { - let block = BlockId::from_vanilla_id(i); - let index = palette.index_or_insert(BlockId::from_vanilla_id(i)); - if i % 2 == 0 { - palette.remove(block); - } else { - mapping.insert(block, index); - } - } - - assert_eq!(palette.len(), 50); - - for i in 0..100 { - if i % 2 == 0 { - continue; - } - let block = BlockId::from_vanilla_id(i); - assert_eq!(palette.index_or_insert(block), mapping[&block]); - } - } - - #[test] - fn clear() { - let mut palette = Palette::new(); - for id in 100..200 { - palette.index_or_insert(BlockId::from_vanilla_id(id)); - } - palette.clear(); - assert_eq!(palette.len(), 1); - assert_eq!(palette.index_of(BlockId::air()), Some(0)); - } -} diff --git a/feather/base/src/chunk/paletted_container.rs b/feather/base/src/chunk/paletted_container.rs new file mode 100644 index 000000000..427dab871 --- /dev/null +++ b/feather/base/src/chunk/paletted_container.rs @@ -0,0 +1,289 @@ +use std::fmt::Debug; +use std::sync::atomic::{AtomicUsize, Ordering}; + +use libcraft_blocks::HIGHEST_ID; + +use crate::biome::BiomeId; +use crate::chunk::{PackedArray, BIOMES_PER_CHUNK_SECTION, SECTION_VOLUME}; +use crate::{BlockId, ChunkSection}; + +/// Stores blocks or biomes of a chunk section. +/// N = 4 for blocks, 2 for biomes +#[derive(Debug, Clone)] +pub enum PalettedContainer +where + T: Paletteable, +{ + SingleValue(T), + MultipleValues { data: PackedArray, palette: Vec }, + GlobalPalette { data: PackedArray }, +} + +impl PalettedContainer +where + T: Paletteable, +{ + /// Creates a new empty `BlockStore`. + pub fn new() -> Self { + Self::SingleValue(T::default()) + } + + /// Gets the palette. None if using global or single-value palette + pub fn palette(&self) -> Option<&Vec> { + match self { + PalettedContainer::MultipleValues { palette, .. } => Some(palette), + _ => None, + } + } + + /// Gets a mutable reference to the palette. None if using global or single-value palette + pub fn palette_mut(&mut self) -> Option<&mut Vec> { + match self { + PalettedContainer::MultipleValues { palette, .. } => Some(palette), + _ => None, + } + } + + /// Gets the inner representation of this container's data. + /// None if using single-value palette + pub fn data(&self) -> Option<&PackedArray> { + match self { + PalettedContainer::MultipleValues { data, .. } + | PalettedContainer::GlobalPalette { data } => Some(data), + _ => None, + } + } + + /// Gets a mutable reference to the inner representation of this container's data. + /// None if using single-value palette + pub fn data_mut(&mut self) -> Option<&mut PackedArray> { + match self { + PalettedContainer::MultipleValues { data, .. } + | PalettedContainer::GlobalPalette { data } => Some(data), + _ => None, + } + } + + /// Sets the inner representation of this container's data. + /// Returns false if the container is single-value, true otherwise + pub fn set_data(&mut self, new_data: PackedArray) -> bool { + match self { + PalettedContainer::MultipleValues { data, .. } + | PalettedContainer::GlobalPalette { data } => { + *data = new_data; + true + } + _ => false, + } + } + + /// Gets the entry at this index + pub fn get(&self, index: usize) -> Option { + match self { + PalettedContainer::SingleValue(item) => Some(*item), + PalettedContainer::MultipleValues { data, palette } => { + let palette_index = data.get(index)?; + palette.get(palette_index as usize).copied() + } + PalettedContainer::GlobalPalette { data } => { + let palette_index = data.get(index)? as u32; + T::from_default_palette(palette_index) + } + } + } + + /// Sets the entry at this index + pub fn set(&mut self, index: usize, item: T) { + let palette_index = self.index_or_insert(item); + match self { + PalettedContainer::SingleValue(value) if *value == item => {} + PalettedContainer::SingleValue(_) => unreachable!(), + PalettedContainer::MultipleValues { data, .. } => data.set(index, palette_index as u64), + PalettedContainer::GlobalPalette { data } => { + data.set(index, item.default_palette_index() as u64) + } + } + } + + /// Inserts a value into this container's palette. + pub fn index_or_insert(&mut self, item: T) -> u32 { + if let Some(index) = self.get_palette_index(item) { + index + } else { + self.resize_if_needed(); + match self { + PalettedContainer::SingleValue(_) => unreachable!(), + PalettedContainer::MultipleValues { palette, .. } => { + assert!(!palette.contains(&item)); + palette.push(item); + palette.len() as u32 - 1 + } + PalettedContainer::GlobalPalette { .. } => item.default_palette_index(), + } + } + } + + /// Fills this storage with the item + pub fn fill(&mut self, item: T) { + *self = PalettedContainer::SingleValue(item) + } + + /// How many values does this container store + #[allow(clippy::len_without_is_empty)] + pub fn len(&self) -> usize { + T::ENTRIES_PER_CHUNK_SECTION + } + + pub fn global_palette_bits_per_value() -> usize { + Self::palette_bits_per_value(T::length()) + } + + pub fn palette_bits_per_value(palette_len: usize) -> usize { + (palette_len as f64).log2().ceil() as usize + } + + fn get_palette_index(&mut self, item: T) -> Option { + match self { + PalettedContainer::SingleValue(value) if *value == item => Some(0), + PalettedContainer::SingleValue(_) => None, + PalettedContainer::MultipleValues { palette, .. } => palette + .iter() + .position(|value| *value == item) + .map(|i| i as u32), + PalettedContainer::GlobalPalette { .. } => Some(item.default_palette_index()), + } + } + + fn resize_if_needed(&mut self) { + let len = self.len(); + match self { + PalettedContainer::SingleValue(value) => { + *self = PalettedContainer::MultipleValues { + data: PackedArray::new(len, T::MIN_BITS_PER_ENTRY), + palette: vec![*value], + } + } + PalettedContainer::MultipleValues { data, palette } => { + if palette.len() - 1 > data.max_value() as usize { + // Resize to either the global palette or a new section palette size. + let new_size = data.bits_per_value() + 1; + if new_size <= T::MAX_BITS_PER_ENTRY { + *data = data.resized(new_size); + } else { + *self = Self::GlobalPalette { + data: { + let mut data = data.resized(Self::global_palette_bits_per_value()); + // Update items to use global IDs instead of palette indices + Self::map_to_global_palette(len, &palette, &mut data); + data + }, + } + } + } + } + PalettedContainer::GlobalPalette { .. } => {} + } + } + + pub(crate) fn map_to_global_palette(len: usize, palette: &[T], data: &mut PackedArray) { + for i in 0..len { + let palette_index = data.get(i).unwrap() as usize; + let item = palette.get(palette_index).copied().unwrap(); + data.set(i, item.default_palette_index() as u64); + } + } + + pub(crate) fn map_from_global_palette(len: usize, palette: &[T], data: &mut PackedArray) { + for i in 0..len { + let palette_index = data.get(i).unwrap(); + let item = T::from_default_palette(palette_index as u32).unwrap(); + data.set(i, palette.iter().position(|it| *it == item).unwrap() as u64); + } + } +} + +impl PalettedContainer { + /// Gets the block at this position + pub fn get_block_at(&self, x: usize, y: usize, z: usize) -> Option { + let index = ChunkSection::block_index(x, y, z)?; + + self.get(index) + } + + /// Sets the block at this position + pub fn set_block_at(&mut self, x: usize, y: usize, z: usize, block: BlockId) -> Option<()> { + let index = ChunkSection::block_index(x, y, z)?; + self.set(index, block); + Some(()) + } +} + +impl PalettedContainer { + /// Gets the biome at this position + pub fn biome_at(&self, x: usize, y: usize, z: usize) -> Option { + let index = ChunkSection::biome_index(x, y, z)?; + self.get(index) + } + + /// Sets the biome at this position + pub fn set_biome_at(&mut self, x: usize, y: usize, z: usize, biome: BiomeId) -> Option<()> { + let index = ChunkSection::biome_index(x, y, z)?; + self.set(index, biome); + Some(()) + } +} + +impl Default for PalettedContainer +where + T: Paletteable, +{ + fn default() -> Self { + Self::new() + } +} + +pub trait Paletteable: Default + Copy + PartialEq + Debug { + const MIN_BITS_PER_ENTRY: usize; + const MAX_BITS_PER_ENTRY: usize = Self::MIN_BITS_PER_ENTRY * 2; + const ENTRIES_PER_CHUNK_SECTION: usize; + + fn from_default_palette(index: u32) -> Option; + fn default_palette_index(&self) -> u32; + fn length() -> usize; +} + +impl Paletteable for BlockId { + const MIN_BITS_PER_ENTRY: usize = 4; + const ENTRIES_PER_CHUNK_SECTION: usize = SECTION_VOLUME; + + fn from_default_palette(index: u32) -> Option { + Self::from_vanilla_id(index as u16) + } + + fn default_palette_index(&self) -> u32 { + self.vanilla_id() as u32 + } + + fn length() -> usize { + HIGHEST_ID + } +} + +pub static BIOMES_COUNT: AtomicUsize = AtomicUsize::new(0); + +impl Paletteable for BiomeId { + const MIN_BITS_PER_ENTRY: usize = 2; + const ENTRIES_PER_CHUNK_SECTION: usize = BIOMES_PER_CHUNK_SECTION; + + fn from_default_palette(index: u32) -> Option { + Some(Self::from(index as usize)) + } + + fn default_palette_index(&self) -> u32 { + **self as u32 + } + + fn length() -> usize { + BIOMES_COUNT.load(Ordering::Relaxed) + } +} diff --git a/feather/base/src/chunk_lock.rs b/feather/base/src/chunk_lock.rs index 033281d09..50f1d641f 100644 --- a/feather/base/src/chunk_lock.rs +++ b/feather/base/src/chunk_lock.rs @@ -3,7 +3,7 @@ use std::sync::{ Arc, }; -use crate::Chunk; +use crate::chunk::Chunk; use anyhow::bail; use parking_lot::{RwLock, RwLockReadGuard, RwLockWriteGuard}; @@ -42,18 +42,21 @@ impl ChunkLock { self.loaded.swap(true, Ordering::SeqCst) } - /// Locks this chunk with read acccess. Doesn't block. + /// Locks this chunk with read access. Doesn't block. /// Returns None if the chunk is unloaded or locked for writing, Some otherwise. pub fn try_read(&self) -> Option> { - self.lock.try_read() + if self.is_loaded() { + self.lock.try_read() + } else { + None + } } - /// Locks this chunk with read acccess, blocking the current thread until it can be acquired. - /// Returns None if the chunk is unloaded, Some otherwise. + /// Locks this chunk with read access, blocking the current thread until it can be acquired. pub fn read(&self) -> RwLockReadGuard { self.lock.read() } - /// Locks this chunk with exclusive write acccess. Doesn't block. + /// Locks this chunk with exclusive write access. Doesn't block. /// Returns None if the chunk is unloaded or locked already, Some otherwise. pub fn try_write(&self) -> Option> { if self.is_loaded() { @@ -84,12 +87,15 @@ mod tests { time::Duration, }; - use libcraft_core::ChunkPosition; + use crate::prelude::*; use super::*; + use crate::common::world::Sections; + fn empty_lock(x: i32, z: i32, loaded: bool) -> ChunkLock { - ChunkLock::new(Chunk::new(ChunkPosition::new(x, z)), loaded) + ChunkLock::new(Chunk::new(ChunkPosition::new(x, z), Sections(16)), loaded) } + #[test] fn normal_function() { let lock = empty_lock(0, 0, true); @@ -102,16 +108,19 @@ mod tests { } } } + #[test] fn cannot_write_unloaded() { let lock = empty_lock(0, 0, false); assert!(lock.try_write().is_none()) } + #[test] fn can_read_unloaded() { let lock = empty_lock(0, 0, false); assert!(lock.try_read().is_some()) } + #[test] fn multithreaded() { let lock = Arc::new(empty_lock(0, 0, true)); diff --git a/feather/base/src/lib.rs b/feather/base/src/lib.rs index 730d4c51a..a1889fb08 100644 --- a/feather/base/src/lib.rs +++ b/feather/base/src/lib.rs @@ -10,20 +10,21 @@ use num_derive::{FromPrimitive, ToPrimitive}; use serde::{Deserialize, Serialize}; pub mod anvil; +pub mod biome; mod block; pub mod chunk; pub mod chunk_lock; pub mod inventory; pub mod metadata; +pub mod world; pub use block::{BlockPositionValidationError, ValidBlockPosition}; -pub use blocks::*; -pub use chunk::{Chunk, ChunkSection, CHUNK_HEIGHT, CHUNK_WIDTH}; +pub use chunk::{Chunk, ChunkSection, CHUNK_WIDTH}; pub use chunk_lock::*; -pub use libcraft_blocks::{BlockKind, BlockState}; +pub use libcraft_blocks::{BlockId, BlockKind}; pub use libcraft_core::{ - position, vec3, Biome, BlockPosition, ChunkPosition, EntityKind, Gamemode, Position, Vec3d, + position, vec3, BlockPosition, ChunkPosition, EntityKind, Gamemode, Position, Vec3d, }; pub use libcraft_inventory::{Area, Inventory}; pub use libcraft_items::{Item, ItemStack, ItemStackBuilder, ItemStackError}; diff --git a/feather/base/src/metadata.rs b/feather/base/src/metadata.rs index 92b62b852..081b1faa7 100644 --- a/feather/base/src/metadata.rs +++ b/feather/base/src/metadata.rs @@ -2,7 +2,8 @@ //! metadata format. See //! for the specification. -use crate::{Direction, ValidBlockPosition}; +use crate::block::ValidBlockPosition; +use crate::Direction; use bitflags::bitflags; use libcraft_items::InventorySlot; use std::collections::BTreeMap; @@ -13,16 +14,14 @@ pub type OptChat = Option; pub type OptVarInt = Option; // Meta index constants. -pub const META_INDEX_ENTITY_BITMASK: u8 = 0; -pub const META_INDEX_AIR: u8 = 1; -pub const META_INDEX_CUSTOM_NAME: u8 = 2; -pub const META_INDEX_IS_CUSTOM_NAME_VISIBLE: u8 = 3; -pub const META_INDEX_IS_SILENT: u8 = 4; -pub const META_INDEX_NO_GRAVITY: u8 = 5; - -pub const META_INDEX_POSE: u8 = 6; - -pub const META_INDEX_FALLING_BLOCK_SPAWN_POSITION: u8 = 7; +pub const META_INDEX_ENTITY_BITMASK: i8 = 0; +pub const META_INDEX_AIR: i8 = 1; +pub const META_INDEX_CUSTOM_NAME: i8 = 2; +pub const META_INDEX_IS_CUSTOM_NAME_VISIBLE: i8 = 3; +pub const META_INDEX_IS_SILENT: i8 = 4; +pub const META_INDEX_NO_GRAVITY: i8 = 5; +pub const META_INDEX_POSE: i8 = 6; +pub const META_INDEX_TICK_FROZEN_IN_POWDER_SNOW: i8 = 7; bitflags! { pub struct EntityBitMask: u8 { @@ -52,7 +51,7 @@ pub enum MetaEntry { Direction(Direction), OptUuid(OptUuid), OptBlockId(Option), - Nbt(nbt::Blob), + Nbt(nbt::Value), Particle, VillagerData(i32, i32, i32), OptVarInt(OptVarInt), @@ -175,7 +174,7 @@ impl ToMetaEntry for OptVarInt { #[derive(Clone, Debug)] pub struct EntityMetadata { - pub values: BTreeMap, + pub values: BTreeMap, } impl EntityMetadata { @@ -189,14 +188,16 @@ impl EntityMetadata { pub fn entity_base() -> Self { Self::new() .with(META_INDEX_ENTITY_BITMASK, EntityBitMask::empty().bits()) - .with(META_INDEX_AIR, 0i32) + .with(META_INDEX_AIR, 300i32) .with(META_INDEX_CUSTOM_NAME, OptChat::None) .with(META_INDEX_IS_CUSTOM_NAME_VISIBLE, false) .with(META_INDEX_IS_SILENT, false) .with(META_INDEX_NO_GRAVITY, false) + .with(META_INDEX_POSE, Pose::Standing) + .with(META_INDEX_TICK_FROZEN_IN_POWDER_SNOW, 0i32) } - pub fn with_many(mut self, values: &[(u8, MetaEntry)]) -> Self { + pub fn with_many(mut self, values: &[(i8, MetaEntry)]) -> Self { for val in values { self.values.insert(val.0, val.1.clone()); } @@ -204,20 +205,20 @@ impl EntityMetadata { self } - pub fn set(&mut self, index: u8, entry: impl ToMetaEntry) { + pub fn set(&mut self, index: i8, entry: impl ToMetaEntry) { self.values.insert(index, entry.to_meta_entry()); } - pub fn with(mut self, index: u8, entry: impl ToMetaEntry) -> Self { + pub fn with(mut self, index: i8, entry: impl ToMetaEntry) -> Self { self.set(index, entry); self } - pub fn get(&self, index: u8) -> Option { + pub fn get(&self, index: i8) -> Option { self.values.get(&index).cloned() } - pub fn iter(&self) -> impl Iterator { + pub fn iter(&self) -> impl Iterator { self.values.iter().map(|(key, entry)| (*key, entry)) } } diff --git a/feather/base/src/mod.rs b/feather/base/src/mod.rs new file mode 100644 index 000000000..166bfeb7b --- /dev/null +++ b/feather/base/src/mod.rs @@ -0,0 +1,6 @@ +pub mod anvil; +pub mod block; +pub mod chunk; +pub mod chunk_lock; +pub mod inventory; +pub mod metadata; diff --git a/feather/base/src/world.rs b/feather/base/src/world.rs new file mode 100644 index 000000000..33ee3c8ea --- /dev/null +++ b/feather/base/src/world.rs @@ -0,0 +1,156 @@ +use crate::chunk::SECTION_HEIGHT; +use serde::de::Visitor; +use serde::Deserializer; +use serde::{Deserialize, Serialize}; +use std::error::Error; +use std::fmt::Formatter; + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct DimensionInfo { + pub r#type: String, + #[serde(default)] + pub info: DimensionTypeInfo, + pub generator: DimensionGeneratorInfo, +} + +#[derive(Debug, Clone, Serialize, Deserialize, Default)] +pub struct DimensionTypeInfo { + pub logical_height: i32, + pub infiniburn: String, + pub effects: String, + pub ambient_light: f32, + #[serde(deserialize_with = "deserialize_bool")] + pub respawn_anchor_works: bool, + #[serde(deserialize_with = "deserialize_bool")] + pub has_raids: bool, + pub min_y: i32, + pub height: i32, + #[serde(deserialize_with = "deserialize_bool")] + pub natural: bool, + pub coordinate_scale: f32, + #[serde(deserialize_with = "deserialize_bool")] + pub piglin_safe: bool, + #[serde(deserialize_with = "deserialize_bool")] + pub bed_works: bool, + #[serde(deserialize_with = "deserialize_bool")] + pub has_skylight: bool, + #[serde(deserialize_with = "deserialize_bool")] + pub has_ceiling: bool, + #[serde(deserialize_with = "deserialize_bool")] + pub ultrawarm: bool, + pub fixed_time: Option, +} + +pub(crate) fn deserialize_bool<'de, D>(deserializer: D) -> Result +where + D: Deserializer<'de>, +{ + struct BoolI8Visitor; + + impl Visitor<'_> for BoolI8Visitor { + type Value = bool; + + fn expecting(&self, formatter: &mut Formatter) -> std::fmt::Result { + formatter.write_str("a bool") + } + + fn visit_bool(self, v: bool) -> Result + where + E: Error, + { + Ok(v) + } + + fn visit_i8(self, v: i8) -> Result + where + E: Error, + { + Ok(v != 0) + } + + fn visit_u8(self, v: u8) -> Result + where + E: Error, + { + Ok(v != 0) + } + } + + deserializer.deserialize_any(BoolI8Visitor) +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct DimensionGeneratorInfo { + pub biome_source: BiomeSource, + pub seed: u64, + pub settings: DimensionSettings, + pub r#type: GeneratorRandomSource, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(tag = "type")] +pub enum BiomeSource { + #[serde(rename = "minecraft:multi_noise")] + MultiNoise { biomes: Vec }, + #[serde(rename = "minecraft:the_end")] + TheEnd, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct Biome { + pub parameters: BiomeParams, + pub biome: String, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct BiomeParams { + pub erosion: ValueOrRange, + pub depth: ValueOrRange, + pub weirdness: ValueOrRange, + pub offset: ValueOrRange, + pub temperature: ValueOrRange, + pub humidity: ValueOrRange, + pub continentalness: ValueOrRange, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum ValueOrRange { + Value(f64), + Range([f64; 2]), +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub enum GeneratorRandomSource { + #[serde(rename = "minecraft:noise")] + Noise, + #[serde(rename = "minecraft:multi_noise")] + MultiNoise, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub enum DimensionSettings { + #[serde(rename = "minecraft:overworld")] + Overworld, + #[serde(rename = "minecraft:nether")] + Nether, + #[serde(rename = "minecraft:end")] + End, +} +#[derive(Clone, Copy, PartialEq, Eq, Debug, derive_more::Deref)] +pub struct WorldHeight(pub usize); + +#[derive(Clone, Copy, PartialEq, Eq, Debug, derive_more::Deref)] +pub struct Sections(pub usize); + +impl From for WorldHeight { + fn from(sections: Sections) -> Self { + WorldHeight(sections.0 * SECTION_HEIGHT) + } +} + +impl From for Sections { + fn from(sections: WorldHeight) -> Self { + Sections(sections.0 / SECTION_HEIGHT) + } +} diff --git a/feather/blocks/Cargo.toml b/feather/blocks/Cargo.toml deleted file mode 100644 index 12a8835a9..000000000 --- a/feather/blocks/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "feather-blocks" -version = "0.1.0" -authors = [ "caelunshun " ] -edition = "2018" - -[dependencies] -anyhow = "1" -bincode = "1" -num-traits = "0.2" -once_cell = { version = "1" } -serde = { version = "1", features = [ "derive" ] } -thiserror = "1" -vek = "0.14" -libcraft-blocks = { path = "../../libcraft/blocks" } diff --git a/feather/blocks/generator/Cargo.toml b/feather/blocks/generator/Cargo.toml deleted file mode 100644 index d92d6c62f..000000000 --- a/feather/blocks/generator/Cargo.toml +++ /dev/null @@ -1,26 +0,0 @@ -[package] -name = "feather-blocks-generator" -version = "0.1.0" -authors = ["caelunshun "] -edition = "2018" - -[lib] -name = "feather_blocks_generator" -path = "src/lib.rs" - -[[bin]] -name = "feather-blocks-generator" -path = "src/main.rs" - -[dependencies] -serde = { version = "1", features = ["derive"] } -serde_json = "1" -anyhow = "1" -indexmap = { version = "1", features = ["serde-1"] } -quote = "1" -syn = "1" -proc-macro2 = "1" -heck = "0.3" -once_cell = "1" -maplit = "1" -bincode = "1" diff --git a/feather/blocks/generator/src/load.rs b/feather/blocks/generator/src/load.rs deleted file mode 100644 index 10bd98909..000000000 --- a/feather/blocks/generator/src/load.rs +++ /dev/null @@ -1,360 +0,0 @@ -//! Loads the vanilla blocks.json report into a `BlocksReport`, then -//! converts this report into a `Blocks`. - -use crate::{Block, Blocks, Property, PropertyKind}; -use anyhow::Context; -use heck::CamelCase; -use indexmap::map::IndexMap; -use once_cell::sync::Lazy; -use proc_macro2::{Ident, Span}; -use serde::Deserialize; -use std::collections::{BTreeMap, BTreeSet, HashMap}; -use std::str::FromStr; - -/// Special property name overrides, to avoid names like "shape_neaaaassnn." -static NAME_OVERRIDES: Lazy> = Lazy::new(|| { - maplit::hashmap! { - "east_tf" => "east_connected", - "east_usn" => "east_wire", - "north_tf" => "north_connected", - "north_usn" => "north_wire", - "west_tf" => "west_connected", - "west_usn" => "west_wire", - "south_tf" => "south_connected", - "south_usn" => "south_wire", - "facing_dnswe" => "facing_cardinal_and_down", - "facing_neswud" => "facing_cubic", - "facing_nswe" => "facing_cardinal", - "half_ul" => "half_upper_lower", - "half_tb" => "half_top_bottom", - "kind_slr" => "chest_kind", - "kind_tbd" => "slab_kind", - "kind_ns" => "piston_kind", - "mode_cs" => "comparator_mode", - "mode_slcd" => "structure_block_mode", - "shape_neaaaa" => "powered_rail_shape", - "shape_siioo" => "stairs_shape", - "shape_neaaaassnn" => "rail_shape", - "level_0_3" => "cauldron_level", - "level_0_15" => "water_level", - "type_slr" => "chest_kind", - "type_tbd" => "slab_kind", - "type_ns" => "piston_kind", - } -}); - -#[derive(Debug, Deserialize)] -struct BlocksReport { - #[serde(flatten)] - blocks: IndexMap, -} - -#[derive(Debug, Deserialize)] -struct BlockDefinition { - states: Vec, - #[serde(default)] - properties: BTreeMap>, // map from property name => possible values -} - -#[derive(Debug, Deserialize)] -struct StateDefinition { - id: u16, - #[serde(default)] - default: bool, - #[serde(default)] - properties: BTreeMap, -} - -#[derive(Debug, Default, Clone)] -struct PropertyStore { - /// Mapping from property name to the set of different sets - /// of values known for this property. - properties: BTreeMap>>, -} - -impl PropertyStore { - fn register(&mut self, property: String, possible_values: impl IntoIterator) { - self.properties - .entry(property) - .or_default() - .insert(possible_values.into_iter().collect()); - } - - fn finish(self) -> BTreeMap { - let mut map = BTreeMap::new(); - - for (name, possible_value_sets) in self.properties { - let name = Self::update_name(&name); - - if possible_value_sets.len() == 1 { - let possible_values = possible_value_sets.into_iter().next().unwrap(); - map.insert( - name.to_owned(), - Self::prop_from_possible_values_and_name(name, name, possible_values), - ); - } else { - // There are multiple variants of this property, each with their own set of values. - // Create properties suffixed with an index to differentiate between these variants. - for possible_values in possible_value_sets { - // Name is the name of the property followed by the first letter of each possible value. - // If it's an integer, it is the range of possible values. - let new_name = if possible_values[0].parse::().is_ok() { - let as_integer = possible_values - .iter() - .map(String::as_str) - .map(i32::from_str) - .map(Result::unwrap) - .collect::>(); - - let min = *as_integer.iter().min().unwrap(); - let max = *as_integer.iter().max().unwrap(); - - format!("{}_{}_{}", name, min, max) - } else { - let mut name = format!("{}_", name); - for value in &possible_values { - name.push(value.chars().next().unwrap().to_ascii_lowercase()); - } - name - }; - - let new_name = Self::update_name(&new_name); - - map.insert( - new_name.to_owned(), - Self::prop_from_possible_values_and_name(new_name, name, possible_values), - ); - } - } - } - - map - } - - fn update_name(name: &str) -> &str { - match NAME_OVERRIDES.get(&name) { - Some(x) => *x, - None => name, - } - } - - fn prop_from_possible_values_and_name( - name: &str, - real_name: &str, - possible_values: Vec, - ) -> Property { - Property { - name: ident(name), - real_name: real_name.to_owned(), - _name_camel_case: ident(name.to_camel_case()), - kind: guess_property_kind(&possible_values, &name.to_camel_case()), - possible_values, - } - } -} - -/// Parses the vanilla blocks report, returning a `Blocks`. -pub(super) fn load() -> anyhow::Result { - let mut report = parse_report()?; - - let mut blocks = vec![]; - let properties = fix_property_names(&mut report); - - for (identifier, block) in &report.blocks { - if let Some(block) = load_block(identifier, block)? { - blocks.push(block); - } - } - - Ok(Blocks { - blocks, - property_types: properties.finish(), - }) -} - -fn fix_property_names(report: &mut BlocksReport) -> PropertyStore { - let mut store = PropertyStore::default(); - - for block in report.blocks.values() { - for (property_name, possible_values) in &block.properties { - store.register(property_name.to_owned(), possible_values.clone()); - } - } - - // Correct block property names - let result = store.clone().finish(); - - for block in report.blocks.values_mut() { - let block: &mut BlockDefinition = block; - let mut overrides = vec![]; - for (property_name, possible_values) in &mut block.properties { - if result.get(property_name).is_none() { - let name = if possible_values[0].parse::().is_ok() { - let as_integer = possible_values - .iter() - .map(String::as_str) - .map(i32::from_str) - .map(Result::unwrap) - .collect::>(); - - let min = *as_integer.iter().min().unwrap(); - let max = *as_integer.iter().max().unwrap(); - - format!("{}_{}_{}", property_name, min, max) - } else { - let mut name = format!("{}_", property_name); - for value in possible_values { - name.push(value.chars().next().unwrap().to_ascii_lowercase()); - } - name - }; - let name = if let Some(name) = NAME_OVERRIDES.get(&name.as_str()) { - (*name).to_owned() - } else { - name - }; - - overrides.push((property_name.to_owned(), name)); - } - } - - for (old_name, new_name) in overrides { - let old_values = block.properties.remove(&old_name).unwrap(); - block.properties.insert(new_name.clone(), old_values); - - for state in &mut block.states { - let old_value = state.properties.remove(&old_name).unwrap(); - state.properties.insert(new_name.clone(), old_value); - } - } - } - - store -} - -fn load_block(identifier: &str, block: &BlockDefinition) -> anyhow::Result> { - let identifier = strip_prefix(identifier)?; - - let name_camel_case = identifier.to_camel_case(); - - let properties = load_block_properties(block); - - let index_parameters = load_block_index_parameters(block, &properties); - - let ids = load_block_ids(block); - - let default_state = block - .states - .iter() - .find(|state| state.default) - .map(|state| state.properties.clone()) - .unwrap_or_default() - .into_iter() - .collect(); - - let block = Block { - name: ident(identifier), - name_camel_case: ident(name_camel_case), - properties, - ids, - default_state, - index_parameters, - }; - - Ok(Some(block)) -} - -fn load_block_properties(block: &BlockDefinition) -> Vec { - let mut props = vec![]; - - for identifier in block.properties.keys() { - props.push(identifier.to_owned()); - } - - props -} - -fn load_block_index_parameters( - block: &BlockDefinition, - block_props: &[String], -) -> BTreeMap { - let mut map = BTreeMap::new(); - - let possible_values = block_props - .iter() - .map(|block_prop| block.properties.get(block_prop).map(Vec::len).unwrap_or(0)) - .map(|x| x as u16) - .collect::>(); - - for (i, block_prop) in block_props.iter().enumerate() { - let stride = possible_values.iter().skip(i + 1).product::(); - let offset_coefficient = stride * possible_values[i]; - - map.insert(block_prop.clone(), (offset_coefficient, stride)); - } - - map -} - -fn load_block_ids(block: &BlockDefinition) -> Vec<(Vec<(String, String)>, u16)> { - let mut res: Vec<(Vec<(String, String)>, u16)> = vec![]; - - for state in &block.states { - let properties = state.properties.clone().into_iter().collect(); - - res.push((properties, state.id)); - } - - res -} - -fn guess_property_kind(possible_values: &[String], property_struct_name: &str) -> PropertyKind { - let first = &possible_values[0]; - - if i32::from_str(first).is_ok() { - // integer - let as_integer: Vec<_> = possible_values - .iter() - .map(|x| i32::from_str(x).unwrap()) - .collect(); - - let min = *as_integer.iter().min().unwrap(); - let max = *as_integer.iter().max().unwrap(); - - PropertyKind::Integer { range: min..=max } - } else if bool::from_str(first).is_ok() { - // boolean - PropertyKind::Boolean - } else { - // enum - let name = ident(property_struct_name); - let variants: Vec<_> = possible_values - .iter() - .map(|variant| variant.to_camel_case()) - .map(ident) - .collect(); - PropertyKind::Enum { name, variants } - } -} - -/// Strips the minecraft: prefix from a block identifier. -fn strip_prefix(x: &str) -> anyhow::Result<&str> { - const PREFIX: &str = "minecraft:"; - - if x.len() <= PREFIX.len() { - anyhow::bail!("missing minecraft: prefix for block {}", x); - } - - Ok(&x[PREFIX.len()..]) -} - -pub fn ident(x: impl AsRef) -> Ident { - Ident::new(x.as_ref(), Span::call_site()) // span doesn't matter as this is not a proc macro -} - -fn parse_report() -> anyhow::Result { - let report = std::fs::read_to_string("blocks.json") - .context("failed to load blocks report. Please run the vanilla data generator and copy blocks.json to the current directory")?; - - Ok(serde_json::from_str(&report)?) -} diff --git a/feather/blocks/generator/src/main.rs b/feather/blocks/generator/src/main.rs deleted file mode 100644 index 3f30d7e07..000000000 --- a/feather/blocks/generator/src/main.rs +++ /dev/null @@ -1,49 +0,0 @@ -use std::env; -use std::fs::File; -use std::io::Write; -use std::process::Command; - -fn main() { - match feather_blocks_generator::generate() { - Ok(code) => { - let base = concat!(env!("CARGO_MANIFEST_DIR"), "/../src/generated"); - - let _ = std::fs::create_dir_all(base); - - let block_fns = format!("{}/block_fns.rs", base); - let props = format!("{}/properties.rs", base); - let table = format!("{}/table.rs", base); - - write_to_file(&block_fns, &code.block_fns); - write_to_file(&props, &code.block_properties); - write_to_file(&table, &code.block_table); - - [block_fns, props, table].iter().for_each(|path| { - let _ = Command::new("rustfmt").arg(path).output(); - }); - - let data = format!("{}/table.dat", base); - File::create(&data) - .unwrap() - .write_all(&code.block_table_serialized) - .unwrap(); - - let data = format!("{}/vanilla_ids.dat", base); - File::create(&data) - .unwrap() - .write_all(&code.vanilla_ids_serialized) - .unwrap(); - } - Err(e) => { - eprintln!("An error occurred: {}", e); - std::process::exit(1); - } - } -} - -fn write_to_file(path: impl AsRef, s: impl AsRef) { - File::create(path.as_ref()) - .unwrap() - .write_all(s.as_ref().as_bytes()) - .unwrap(); -} diff --git a/feather/blocks/src/directions.rs b/feather/blocks/src/directions.rs deleted file mode 100644 index a4c9d164e..000000000 --- a/feather/blocks/src/directions.rs +++ /dev/null @@ -1,162 +0,0 @@ -use crate::{AxisXyz, FacingCardinal, FacingCardinalAndDown, FacingCubic}; -use vek::Vec3; - -impl FacingCardinal { - pub fn opposite(self) -> FacingCardinal { - match self { - FacingCardinal::North => FacingCardinal::South, - FacingCardinal::East => FacingCardinal::West, - FacingCardinal::South => FacingCardinal::North, - FacingCardinal::West => FacingCardinal::East, - } - } - - pub fn right(self) -> FacingCardinal { - match self { - FacingCardinal::North => FacingCardinal::East, - FacingCardinal::East => FacingCardinal::South, - FacingCardinal::South => FacingCardinal::West, - FacingCardinal::West => FacingCardinal::North, - } - } - - pub fn left(self) -> FacingCardinal { - match self { - FacingCardinal::North => FacingCardinal::West, - FacingCardinal::East => FacingCardinal::North, - FacingCardinal::South => FacingCardinal::East, - FacingCardinal::West => FacingCardinal::South, - } - } - - pub fn is_horizontal(self) -> bool { - true - } - - pub fn to_facing_cardinal_and_down(self) -> FacingCardinalAndDown { - match self { - FacingCardinal::North => FacingCardinalAndDown::North, - FacingCardinal::East => FacingCardinalAndDown::East, - FacingCardinal::South => FacingCardinalAndDown::South, - FacingCardinal::West => FacingCardinalAndDown::West, - } - } - - pub fn to_facing_cubic(self) -> FacingCubic { - match self { - FacingCardinal::North => FacingCubic::North, - FacingCardinal::East => FacingCubic::East, - FacingCardinal::South => FacingCubic::South, - FacingCardinal::West => FacingCubic::West, - } - } - - pub fn axis(self) -> AxisXyz { - self.to_facing_cubic().axis() - } - - pub fn offset(self) -> Vec3 { - self.to_facing_cubic().offset() - } -} - -impl FacingCardinalAndDown { - pub fn opposite(self) -> Option { - match self { - FacingCardinalAndDown::North => Some(FacingCardinalAndDown::South), - FacingCardinalAndDown::East => Some(FacingCardinalAndDown::West), - FacingCardinalAndDown::South => Some(FacingCardinalAndDown::North), - FacingCardinalAndDown::West => Some(FacingCardinalAndDown::East), - _ => None, - } - } - - pub fn is_horizontal(self) -> bool { - self != FacingCardinalAndDown::Down - } - - pub fn to_facing_cardinal(self) -> Option { - match self { - FacingCardinalAndDown::North => Some(FacingCardinal::North), - FacingCardinalAndDown::East => Some(FacingCardinal::East), - FacingCardinalAndDown::South => Some(FacingCardinal::South), - FacingCardinalAndDown::West => Some(FacingCardinal::West), - _ => None, - } - } - - pub fn to_facing_cubic(self) -> FacingCubic { - match self { - FacingCardinalAndDown::North => FacingCubic::North, - FacingCardinalAndDown::East => FacingCubic::East, - FacingCardinalAndDown::South => FacingCubic::South, - FacingCardinalAndDown::West => FacingCubic::West, - FacingCardinalAndDown::Down => FacingCubic::Down, - } - } - - pub fn axis(self) -> AxisXyz { - self.to_facing_cubic().axis() - } - - pub fn offset(self) -> Vec3 { - self.to_facing_cubic().offset() - } -} - -impl FacingCubic { - pub fn opposite(self) -> FacingCubic { - match self { - FacingCubic::North => FacingCubic::South, - FacingCubic::East => FacingCubic::West, - FacingCubic::South => FacingCubic::North, - FacingCubic::West => FacingCubic::East, - FacingCubic::Up => FacingCubic::Down, - FacingCubic::Down => FacingCubic::Up, - } - } - - pub fn is_horizontal(self) -> bool { - !matches!(self, FacingCubic::Up | FacingCubic::Down) - } - - pub fn to_facing_cardinal(self) -> Option { - match self { - FacingCubic::North => Some(FacingCardinal::North), - FacingCubic::East => Some(FacingCardinal::East), - FacingCubic::South => Some(FacingCardinal::South), - FacingCubic::West => Some(FacingCardinal::West), - _ => None, - } - } - - pub fn to_facing_cardinal_and_down(self) -> Option { - match self { - FacingCubic::North => Some(FacingCardinalAndDown::North), - FacingCubic::East => Some(FacingCardinalAndDown::East), - FacingCubic::South => Some(FacingCardinalAndDown::South), - FacingCubic::West => Some(FacingCardinalAndDown::West), - FacingCubic::Down => Some(FacingCardinalAndDown::Down), - _ => None, - } - } - - pub fn axis(self) -> AxisXyz { - match self { - FacingCubic::East | FacingCubic::West => AxisXyz::X, - FacingCubic::Up | FacingCubic::Down => AxisXyz::Y, - FacingCubic::North | FacingCubic::South => AxisXyz::Z, - } - } - - pub fn offset(self) -> Vec3 { - match self { - FacingCubic::North => Vec3 { x: 0, y: 0, z: -1 }, - FacingCubic::East => Vec3 { x: 1, y: 0, z: 0 }, - FacingCubic::South => Vec3 { x: 0, y: 0, z: 1 }, - FacingCubic::West => Vec3 { x: -1, y: 0, z: 0 }, - FacingCubic::Up => Vec3 { x: 0, y: 1, z: 0 }, - FacingCubic::Down => Vec3 { x: 0, y: -1, z: 0 }, - } - } -} diff --git a/feather/blocks/src/generated/vanilla_ids.dat b/feather/blocks/src/generated/vanilla_ids.dat deleted file mode 100644 index fd1c60abd95bd26d84d1c1d2cbdfced0b37cfd04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40336 zcmX`yW0>Sj*8t$8V%wUvZO_`aZQHhO+qP}nwrzdS^}X9QKX&g^ed!|NZxGOehq9!k};{0*Zv9kbh+n2BBdq3&p|L1%!vKB9sIrLn%-ylm?~4iUwjr zTZj$qATG3r_|O3oLPtm(te60i|Lv26NFpRLk_1VLBtw!TDUg&%DkL?M21$#gL((G| zU|vQf6OtLpf@DRqA=!}}NKPadk{ii`LT@ER3B-8 zG=xzjq%qP2Mop1sNOKsqKw2WLVAL9EgS3TFJET3*0Y)8>PDp1MbwRo!-C)!m>4Efw zQ7@!7(g#L;k$y;j7!5!MB7_he<2ax^9A><%(1UZZxLyp3n z6UcGo6mk+dgPcarA!m^b$a&-vauKI2IWx>6;T0|Q3+L11=UdvHBke#Q44iZ z2lY`84bcFNLnAaHngC6VCPI^}WPLCz=Dzjpjo0qIuAGG#^?3&5ssB3!+8P!e}wHC|Uw7j+R18qGiz1XgRbjS^+JO zRzfSHRnW?4HMA;P1FeqMLTjRR(AsD{v@Y5Jt&cWB8=_6n#%MFNDcS;UjGH?%9-1MQCXLVKcp(B5c2v@bdU?T-#Z2ckpJ!RRn_C^`Zi zj*db{qGQm}=s0vNIsqMzPC_T5Q_#uiG;}ID1D%e}LT93L(AnrbbS}C8osTX;7otnh z#pp70DY^n(j;=yiqHECA=sI*Qx&d8}ZbCPrThPtuHgqex1Kp19LU*Ej(B0@hbT4`U z-H#qZ528oV!{{;eD0%`tj-EnKqG!<4=sEN(dI3F;UP3RTSJ2DoHS{Wa1HF#kLT{pX z(A(%e^e*}Uy^lUZAEHmt$LKTkDf$9^j=n-)qHoaG=sWZ+`T>29enLN@U(nC!H}os| z1O1NvLVu!v(BCKm{-OY&00$T#0Rd=00TwWT2OJQA0AwHm6(~Rl8ZdzYY+wNwIKT%U z2tfeiKm-zk1Rya;1d@UzAUQ||Qi2p9HAn^0f;1pKNCz^43?MVe1hRrGAUntga)KNn zH^>F@f;=D|C1WUkTuna5(E5LHF3akWcz-q7#tOXmu zdawy>1Y5vnunlYlJHU3Z3+x1Yz;3V)>;(tFesBmJ1V_MOa10y;C%|!V3Y-LIz-e#} zoCO!ad2k6_1XsXia1C4qH^6mp3)}>Ez-@33+yxK7eeei81W&+Y@C-Z!FTiu~3cLhw zz-#ahyagY?d+-T-1Yf{s@C|$gKfrhJ3;YCsz;A$He*wTy4975x#0ZSWD2&AzjK?@k z!~{&nBuvE=Ovg0L#0<>FEX>6m%*Q+|!~!f1i?D=P0xU6>2uq43!IERiu#{K|EH#!2 zON*t!(qrkcj93ONGnNUVmJ7>^<-y{yd{_Z2KUN4Uh!w#KW5uwd zSP85+RthVLmBC75<*>3?1*|+)39E=z!75|bu&P)MtU6W;tBKXYYGd`Vx>y6OKGq0p zh&90)W6iLpSPQH<)(UHhwZU3r?Xb332dq8T3G0Y;!8&8zu&!7StUJ~V>xuQjdSm^t zzSsb)KQ;&(hz-F8W5cka*a&PmHVPYwjlo7^#()h25ddH3EPNm!8T*t zu&vk*Y&*6K+llSLc4Panz1RV4KXwQ^h#kQWW5=+g*a_@7b_zR*oxx6H=diQb1?)U_ z3A>10!7gLhu&dY&>^gP}yNTVwZe#bbyVwKlKK2NEh&{m`W6!Xs*bD4A_6mE6y}@2% z@36Pn2kbre3HykB!9HW(u&>w;>^t@g`-%O*eq#v!7Xvto<2Z(sIDykRg|j$=^Eii# zxPZ&JgsZrM>$rxSxPjZag~wK19`54~?&1+1hX;6wC&Cls3Gjq?GCVn+1WyX{QsJrb z6nIKJ9iARfgQvwa;hFIact$)Mo*mDEXN7sW@Z5L~JSUzHkH_=idGUgHAv`}`056Ic z!wcg@U|vbQ6kZ%JftSV0;id61ctyMtULLQ2SH-L0mGLStuO?m#ua4Ki>*DqB+IStj zA>IhDk2k=Z;?3~JcoUe{5^se!$6MfS@pgD?ybazF?}WFG%wMEz6@WCFM)Y0@m2V8d0KJ#joL)@hdRzCVmUQj^DuV;`i{|_#ONq{s_O1Kfs^j&+y0i z6PWiBe}zBCU*K=?clc}k4gL}Tgull>;9v1?_-FhJ%=?M|!oTA`@V_`h{Ko&_7=aTg z0SJnq34$Pr*u3Hho?r-;kO-L&2$9eTolppsun3zl2$P7df+8Z0NI)bc5)p|Bhj0mx z@QHv3;p?f0)I=I0Es>5$Pb49d63K|T=)rguzb)pVYi>OP~CK?d+h=xRcq6yK6Xi7AOzpWWmbEpLt(Szto^dfo_eTcq9KcYV|fEWlf2SE*n z8Ui&GY8cdTs1Z;jp+-TCh8hDk7HS;Sc&G_b6QL$SO@_yHDlrANPJ@~bH3MoUf&V+c zvxwQm9AYjJdvx7P>>+j&yNI2{4q`j8jo3gSsVm+~rSWB!SRuij;mBb2S zIkAjbN-QB36N`w2!~$YIF^{-Q+#zlgw}_j>4dOa+jkro&Aubb_h>OGp;yiJVI7^%% zP7|kylf(()IB|?PN*o~$6NiX{!~tSIv5)vm{2_i5zlfj258^xVjrdA@AwCnIh>yev z;yv+>cuTw?UK6i~m&6O=Iq{5mN<1MR6OV|8!~^0!agT_|kPJwl^hlRi zWF|5rnSo4CrX$mmX~@)MDl#RRf=o^(Ba@Oz$i!qKG9j6Oj3eukb;#OeEwUzAgRD+g zBdd~C$jW3TvLac5EKimr%aUct(qt*JBw2ziP8K7Jl10eEWFfL3S%Az>#*=-?K4fpQ z7ul2SL3Ss*kzL6yWM{Gy*^%r(wkO+>ZOJxdYqAyDl59aXC!3K?$tGlDvJu&kY(Um0 z>ydNGIpl0|7CDogK~5*9kyFVjFW63e(XmS)ek{m$}Cx?+k$sy!m zau7L?96+h37rB$%L2f6vkz2_v_d6B$8o+rt9_3OFWm6VqQU;|{ z8l_SSB~ub5QUb+O9K})$MNDnu2e3Q+l}c&abehw4rB zqIyz2sP0rZsw>rn>P&T_I#L~|_EbBnE!BoPQX{D0)G%r&HG~>W z4Wb581E~H~KPq-tnFlqWD);YNv5;CoEv6PxOQ|K)a%vg1l3GEnrdCmFsWsGkY8|za z+CXilHc?xtE!1{u8?}?#LG7k?QG2O9)P8Cob&xth9i|RZN2w#!aq1X#k~%@1rcP03 zsWa4h>Kt{ExTyhE7W!B8g-MpLEWZqQFp03)P3q6^^kf%J*FN}PpK!=bLtuO zl6pbCre0BRsW;Sn>KzrkXMLnTP~WL<)L-h)e>ZKM{!D$Meo{XultyTZCh4!#7wR|l zi^6C?Gc--h#Q!#sr8%0X1zMyfTBa3Rr8Qco4ceqF+NK@ar9IlG13IK5I*v|2C!`b6 ziRmPCQaTx(oK8Wfq*KwU=`?g&Ivt&!&Om3RGtrspEOb^n8=albLFc4%(Yfh7bY40i z9Z%<{3(y7WLUdue2wjveMi-|`&?V_obZNQ_U6w9Km!~Vx73oTJWx5Jom99otr)$tP z=~{Gcx(;2Ju1D9W8_*5uMs#Dk3Eh-#MmMKh&@Jg!bZfc|-Ii`gx2HSM9qCSVXSxgB zmF`A&r+d&n>0Weix)0r#?nn2h2haoQLG)mH2tAY@Mh~Y)&?D(l^k{kvJ(eCvkEbWl z6X{9xWO@ocm7YdVr)SVJ=~?t_dJa98o=4B87tjmoMf75N3B8nFMlYvV&@1Ux^lEwy zy_Q}_uctTA8|h8-W_k;~mEJ~gr+3gh>0R`0dJnyq-be4J56}ncL-b+#2z``3Mjxk7 z&?o6r^lADGeU?5)pQkU-7wJp%W%>$zmA*z_r*F_V>09(|`VM`UzDM7uAJ7l!NAzR* z3H_9QMn9)t&@bs%^lSPJ{g!@5zo$RYAL&o@XZj2MmHtM5r+?5t>0k73`Vak=Mi`U< z494IL!H^8a&nB~k0W+k(VS|ypY`?ZNhBd$GOQK5SpMAKRZDzz$>wv4hzm>`- zWGAtc*(vN)b{adKox#pzXR)){IqY0^9y_01z%FDLv5VOy>{50ayPRFYu4GrStJyW| zT6P_~p54H1WH+&!*)8l=b{o5$-NEi;cd@(KJ?vg~AG@DDz#e1|v4`0s>{0d@dz?MN zo@7t4r`a>?S@s-zp1r_cWG}Io*(>Z-_8NPgy}{mOZ?U)8JM3Nd9($jCz&>Ojv5(m& z>{Ip``<#8jzGPpquh}>3TlO9Mp8ddnWIwT=*)Qx@_8a@1{lWfZf3d&WKkQ!?;ZP26 z7>9ENM{*QLa}39F9LIA4Cvp-ea|)+&8mDsxXL1&2a}MWn9_Mob7jh97$0gtra*4Ra zToNuRmyAo!rQlL>skqc!8ZIrDj!VyF;4*TVxXfG@E-ROf%g*KCa&o!2+*}?mFPD#t z=kjv}xPn|Et}s`GE6Nq)igP8nl3XdSG*^Zz%a!BGa}~IXTqUkDSB0y}RpY92HMp8w zEv`0KhpWrgq5oJ-D7+FRnM&hwIDrGq{=DEN(V8hnvgId-r-%|<9$BhLq6i;_yl}HJ`tao zPr@hVlkv&<6nsiP6`z_8rb@#*;td`3PKpPA3XXXUf;+4&rNPCgf(o6p1N<@53J ze15(FUyv`v7v_ubMfqZUalQm!k}t)V=F9M9`Eq=Dz5-v7uf$j8tMFC%YJ7FR249n} z#n@O}Aye1CobKad~959WvPL-}F+aDD_ok{`v7=Ev}3`EmSsegZ#{ zpTtk*r|?txY5a7420xRZ#n0yF@N@Zj{Cs`^zmQ+VFXor@KALftnNBLv?asC8< zl0U_t=FjkF`E&ev{sMoIzrDOiFnI6`b~>_T}^zCiz5B?m$%L_(a9 zKu9Pg5)#AqBtlXlnUGvaA*2*i38`UwS|N>)UPvco6fy{zg-k-+zdBikEJAi6n~+n; zA>;B0^!Im{3$GAru!%2_=OxLTRC#P*$iQlou)q6=9t! zLS>`T7CJ7T^ohia(VVW>im?2CTW(hNeIl^pVo-kKfAj}sQ2@8cK!eU{W zuvAzfEEiS@D}^<}YGIwQR@fk{7d8nSVVy0)W?`GKRoEeH7j_9dg+0P{f5+>a@KyLC zd=`EQKZPH{cL5Rq3V(#(0xn`A5K)m9DUlQjkrz3U6&X<$B~cUwQ5Q8)6&2AIEzuMW z(HA|@6&*27jKok3#KdAEF`<}1OfDu9lZr{i)M6?zrIwF}s*e%qiv&bBnn|_TTvOhKzSGI6Q6LR>Dc5?6|A#MQ8Uow!!qAg&iTi5tZ&;%3;sP24K( z5VwoF#GT?EaW`z=C+-ywi2KDu;z99f! zJ{RAKZ^bv_Yw?r#QT!mj7r%*L#V_J#@t62h{2_i95$Uh^NBk|~5+(r&m1v2QNQsbm ziIZ4~kz`4dL`jfzNt0Abk!;D5Ov#XZ$&*~kk>aFC3Z+1bjVYm&06MXh2s){h1Uk8t z3_7Kh0y?#n3OcQn20FczPKwRTj8X@q@skBs1DhunCmnujVrAks|sftupswTy*&efr6 zNU`_oYf81G+EN{0d(t<+9xFLjVQ zN}Z(6QWvSK)J^Ix^^khPE$l7zlH&fIVY8)K(oAWFG+mk|O_iodlch=0L}`LFUK%Hj zmBvV;rBTvIX@oRf8YT^uhDd{@LDE2JfYe{=C-s&3z){SBnhP}#YQ7Zv=FS3Xp|l7_ zi=`#fQkb<&ioL_TTv{Qmlvcr4R>QHck=DYjb<%oigR~LGo21Rs7HO+Q{oA%}(spTw zv{Tw8?UwdPvAKId+Ar;s_DV;j!_pz?pmahyE*+DON@t|g(kbbrbU`{Vos-T=SES3* zCF!DcL%J?qldej4q}$Rh>8A8Rx-Z?6?n+Oj$I>I|q4Yv}E2{C+VZ~L;5a#lfFuSq~Fpn=_lN#zfg!An+N}WDdgYS0Tc#>LlICU6a_^? zF;FZN2gO4PP@){$Po`|hx~$2ntjMw~$)Oy`zU;}a?8vrk$w}oTa$-4=oKQ|6$H|eL zR!$?QmQ%?o)#Yk( zRk?}WSZ*XYlpDzP<$7{mxsBXfZY8&rTgc7jW^z-xi`-f6BzKfM$nE8Ja$C8N+*|G? z_mq3c-Q{j_S9yp$SRNz~ln2QD<$iKsd5k<-9wm>IN65qFVe(Kojw$kFd6GO)o*<8x z$H`;mIr40ImON9QAy1d5$y4Pe@?v?Byii^s&zI-PbLBPiYI&8sQeGi1mzT*)TNBM*NUVbOPmH)`Un{w9BwNrg~w1yg{6 zDv0t|78OC^6;5FlMxhl-f%8K#6kX92RZ$dKk(5vg6kqWaS8)_uv6Q4r5+$*cNJ*$9 zP~wzGNvot$QY)#Hlu8OExspuDs$@|zE18sxN(Lppl1|C1$nBC0@y=lu=46rIeCN38lDFOeqS-QAMe&R8lG`6_oNyIi;*pN2#sUQfewS zlVT8LSLa1}X!T{z^ZkuQEm%t&CDeDkGHP$}nZ95<6qZLXCqO z4>bX5BGe?P$xu_Erb11F+j>p8s$5YnE0>gu$_3@Ta!xs`oKa3Ir<9Y*3FWwQOgX9? zQ4TAIl!M9vWxujd*{kePb}PG-oyrbnyRuE$s%%j z3T3&nOj)WdQ5GwUl!eLyWxg^`nXAlEW-GIlnaT`hIvj_sTB@lUs;+9Psw%3iN~)*| zDz9=Xt1>FBQYxtuDz0KGP*D|8|0;i!-^wrLr}9Jju6$FzDqob($|vQc@d4OS=7vGCN-m)K~1lwQ`4$x)YNJ!HKm$DO|B+Wld4J7#A+fnp_)LAQzJE01JzeO z)m0re?%&nAo7z?FqIOn0sU6i0YJ0Vv+E#6&wpLrIE!7rkbG4b;RBfU*RvW1e)dp&P zwVqm6t)tdfYpFHW8ftZw{8y)k+Fk9X_Eh_*yTGqEI#ZpYPFJU?Q`ITzWOb4{ zQJtWUSI4Pi)iLU5b(A_%9ia|ahp9u=A?jdtkUCHup!Qe$seRSh{G6-C?ymFH`RW37 zA&eKPi`6CSQZ=^fS*9*mSEwu1RqASWjk*@LuT$5n8`O>JCUvvAMcoQVcvZckURE!u z7u5^udG(xnRz0JhR!^xX)f4J*^_Y58J)#~~52**$1L}TtpSoAwqwZFBsXNsj>UMP- ztaDerquy3;sW;Ud>UH&+`c!?QK2{&857h_ief6IDR(+$sR$r+v)feh>^_lur{i1$W zKdB$p59)jMof>;G_^y6af2u#!-|8>*ulh$tHAKTSpb;9bQ5vZ+8m(~}s|gyfNt&oB znyhJ>su`NDS(>Rinyq=7s|A{`MOvsO(Bia2T0$*}mRL)sCDl@B$+c8kN-d3+T1%&; z)iP-5wM<$@EsK^}%cf=3a%kDLTv|>okCt1@r{&f1Yw=n^t$LbvHP@PHEwvU}Yps>mR%@fR*V<_vwGLWmt&`SO>!Nknx@kSN9$Ig$m)2M7qxIMN zX#=$Z+F)&vHdGs;4cCTgBefCQXl;}>RvV*@*T!iRwF%l}ZIU)so1(>5+0(UYT5J~0 zfSRerX8%rYhqhhYrft=>Xq&Z7+D2`Iwq9GOt<~0OtF=|yN^OOs)^=%owLRK?ZJ%~fJD?rb4rxcVBieE8n08V-p`F%FX=k-F z+Ij7qc2T>aUDhsXSG6nJb?usVQ@f$v)^2HcwL98YYR+I#Jt_EGzwebzo{U$rmVckP?@Q~RO))_!S!wLcoFBRZx7ozQWe(n+1s zX`RzqJ$C-^x}b}?q{sG&tjEqATeoymH*{UsbX8Yi4@Y-(PxoPu0QN|zC(;w^N%T;U z^f)~M%t#8AOphIh6nb)<|97QGsi)FY>uL0~dOAJ5o+yO)y?|a=FQgaMi|EDmVtPrvgkD-NrI*#q=;iftdPTj0URkfC zSJkWN)%9w6O}&O*Td$?p)$8c>^?G_ky@B3XZ=^TXo9NB;W_nA#h2C0krMK1F=#=jgNbar#(&f<9iKq)*hR=#%w+|Mo~|1cq;ThHE&6 zZCHkB7=~_WhH5B=Y)FP^2nKI(25T?|ZBPbj5C(2w1~5TmSd`YZjV{z8AQKhvM;PxQz7BmJTNK)nc^xOI^ z{ic3Hzph`?uj*Iy%lak#qJBX?ubSy%R`YHXSenLO4AJdQONA$z`A^o6!K;N(L z)A#Co^xgU{eW$)d->z@dx9VH;&H5&NqrO33udmbB>TC4X`YL^;zCvHFFVmOmOZ3J1 zB7LF0K%cMA)91oH8X2)UkidvD5*Z1NBt~K*nUT~;VI((F87Yl4MrtFSk=Dpyq&G4d z8I3GPW+R)C)yQFFH*y&{jXXwfBcGAi$Zy0O1&snmVWW^y)F@&UH;Nf0jS@y_qm)tB zC}Wg2${7`n3Pxq4l2O&DVpKP(88wX>Ms1^(QP-$r)HmuG4UGmyW22GL)M#QfH<}qO zjTT00qm|LtXamRD-e_lZG&&fajZQ{aql?kq=w|dZdKkTpUPfP|kI~=gXACq37=w*L z#!zF3G29qtj5J0Vqm5CkWX#!_R6vD{c@tTa{_tBqC0T4Rl|-dJaBG&UHUjZMZ@V~erf*ko_G)3{;WHf|YrjXTDD9vM%KC&qK*neoziVZ1h88E=g@#(U$P@zMBT zd^SEAUyU!ucjKG!)A(WhHhvj@jXwrzA|_@6lQ40UGD(v$X_GTqQ!sf`GDS0XZ7@yC zv`xo!P0y4~#Z*nr)J?;TU9Wtz&_5vGAS<$RyRyNC-<;@CaX|s%3)@)!lG#i<9&3a~ivzA%gtYcO;YnV07 zHfCG1o!QcCWwth(na#}>W@EF7+0^V|_B4B$UCnN0ce9h(+3aGrH#?Xe%^~JcbC@~M z9ApkQ` z%^BuobBa0DTw$&>SD8!AW#)2ok-6AhV$L@gm&*@3YIBXb z);wSyG!L13&3)#6bC++%JxcbGfPGv-#ZUlXx@n!n87<~Q@Z`NRBdelfrP_hBz*@fKy#7GvQSVUZSU0SmKC z%d%`svvkX_WJ|GBORz*svJzT}ti)Di#aRg~-wLeIaxB;Kth81-E4`JIjg)?$|`M@v5H$Itddq8tFBegs%h1-YFpK;>Q)V_vQ@>ZYQ^Sb3#+Bo z%4%vgvzl9ttj1OotG?C1YG`$_x?0_=j#ekDv(?UOZ*{O*TWzei)&OguHOT5~^|Sh0 zy{z6=AFI37!|G{`vBp~CtdZ6zYqT}Y8g7lS23td{q1Fs*rZvl&YE84ITa&EG))Z^J zHNl!_EwPqb%dCagB5ScV&zf&7ux49xthv?(YooQvT5GMd)?2Hr)z%toxwXPtY3;H0 zTKlY>)-G$ewawaY?XWgmTdb|t3G1YF$~tNtvyNMbti#q3Yrl2CI%r+7u3Fcui`FIU zvUScnZ(XoXTW74Z)&uLI^~kzw-Lvjnx2)UN9qYPv!@6m`vEEwmte4g+>$UaFdTzb2 z9$QbWr`8Yar}fMFYJIc5Tc51Y))(u&^}+gRkv3)1HfH1Ye_w*NQ5)F5tv}XZOSLsy zw*3 zp`FOiYG<>v+nMalb{0Fmox#p%r?J!8>Ffe_LA#Kh&yKhA+qvyLc3wM&ozu=`m$A#* zsu4-4atJ{_A%61jIyj{VrXg9H&+Rf~Sb|bs7 zUC*v>H?V8lb?mx!2fL%)$!=@6v)kLP?ACT0ySd%MZfWieT~NF2*h+Sfz1QAn@3#-w2kk@lVc34eK58GckJ~5g zllCe5v>kg#{H%S(K5w71FWMLE%l0Mvs(r=2ZeO!++BfXm_AUFaeaF6U-?Jau5A4VG zBiQe${ltE5KeJ!jFYMR$EBmee#(rXxM{%(J>f7(Cn-}W!q@2~yG zMjgb#9N-WR?obZtFb?f-4(kXG??{g5D30uCj_MeW?!?AvIi}+{w&OXj6F9yTIiZul ziE|P;37sTPVkeoC)JfqacTzbioit8r*e{)v*2&C&oaydDj zJWg&WpOe?g@5DO=odQl_rx5H{)G6W=cZxYBof1xIr<7CHDdUuP$~hIC3QlFGl2g^G z;#7C4IW?UcPHm@_6I=Dxaq2qtocc}!r=ioxY3wv{nmWy#=1vQzrPIo3?Zlo%+Bj{U zc20ZPuY=Rk>Ev{Fx;R~(ZccZnhtt#P<@9#?IDMUdPJh^MfHTk;{D9CnU4N1bENap#0{(mCavcFs6wopa84*zbaK(YfSYhVd2Ws&mb` z4&xinP3M+#8^(8>yUso5K0Iy@od?cy=b7`?dEe0RRV@%?aqI=`IX&L8LRe}8n1y1>O;+$CJnrCi!&+}QDDUC!lQ!4+M} zm0iVEUCq^9!!=#YwOt41d9Le5Zs;a*6S~RVq;BB)ZUQ&XP2whYQ@F|9*fV%eHI1(P3@*})4J*0^lk<>qnpXi>}GMZy4l?9 zZVoqg#VY|-(v5uzTi&hUR&*=5mEBTqX}649)-4CKsz6nBW1sO2eYFSn=L$L;O*bNjjj-2Uz$cc44O9qbNshq@!&;qEARq&vnP?T&NDx)a>-?j(1j zJH?&sPIITaGu-L!EO(|m$DQrYbLYAX-1+VzccHt)UFku^!{m9_5i9 z;o%1@9sDEtNX?M?0#}T!a5nf3|@LKotM^2!XL!1&d9j&a!7J~T^U8WFSnP=%jxCtvU}OQtX>u`vzH0h>EN~Z z+IelgHePG5mDkd1;WhV~c}=}0USqG3*U)R=)%WUob-g-XZLgMB)2rcC_o{hSy((U1 zuaZ|0)|udq_r`f+y)oWsZLqbkT=j9;PvYrQqzYHyXd(p%vz_m+7}y(QjaZ;`jqTj0(2=6Q3y zIo@nvy*=J;ZB)=_=Mmwm|>eZl8_ z&S!nbr+vyNeZt3m%m+T|BmQ6SkN4aA<^A-2c;CHm-dFF7_u2d8eS~!~`WgK6emXy` zpT}P^?I{5AVc79vGjo;dD<+t=(_|5%hepA1R-`H>DH}o6$_5FH&UB8ZB+pp!<^lSLl z{c3(yzlvYkujE&Rbtd@Z{c-+Se~drcALWnqNBG12Vg68mh(FjL-}~9T7Qkd+F#|b^jG-H{bl}Ae~G`?U*s?J z7x?r2dH!5~jz8O<<6ss{agM`|Bip#zvtieANcqENB%?qiT~Jt=0Ejc_|N@U{!9Oj|Jr}&zx6-(@BL5y zNB@ie+5hH$^?&%^{a^l1|BwIMM}ogT2+#lzuz(DRfDWjD4VZurxIheqKn|op4U|9+ zw7?9Ezz(dy4V=IaydVsMATEf4gh7HJHqOLBq9AFIBuE}43sMFtg498(AZ?H)NFSsN zG6orf%t59gYmg<#9%Ku0204PxL8+i* zP$noHlncrR6@v0XrJ!O^C8!)!3#tY+g6cu7pk`1fs2$V`>IMyh`az?hVbCOK95f4> z1}%c-L93u;&?aadv9fI~j>`vVgs#6e;{O_k%&@<=}bPu`(U4t$`=U`AUFc=W@ z5BddtgFZp;U{o+N7!eE)h6O`|A;I8aQZO-?5R4DT1!IFT!RTOCFf*7DOb@07Q-dkN zj!P($Ua6UK} zTnsJ*mxD{e)!<5SJ-8O!3~mIsgImGf;7)KqxEDMO9t4krN5RwJN$@;)7Q75z1h0cv z!Q0?X@IH7Kd<;GWpMy`q*WgR=J@^*<41NT^gI~el;7@>tNQi|XBtkr-LNbia1SX_I zE@VR?RtPJHmBOlF6*$i7VYRSkSRzi?nUARHVH3WtV6!r|etaAY_l9374d$A)9V@!_~|VmKk398LCyz8T&M<$ve>?eI=` zH@p|#44vEM61VkAX!q(o|@MS5gJW@JTn z)4qhwL?C`FVqN)@Gsd1<1wQMxF7lp)F(Wr{LK zS)!~_wkUg)Bgz@&igLreJW<{#UlbqZj|xNuqe4;Ps7O>aDi#%wN<<~2QZTP{R3<7L zm5a(p6{3n!rKoaLC8`=#i>gO8qMA`Hm{&Wh6V;9CMfIZwQNyTF)HrGqHI14@&7&4k z%cvF1YaO+T+D7f7_ECqZW7H|?9CeAhM%|+BQIDu+)C=bIj`~D>qkd8UXh1YD8WatV zhD1Z7VbSntL^LuQ1@lHnW1_LqxM+MdA(|LXiY7->qN&leXnHgwniMw_C|(Uxdyv@O~m?TB_p zyI|h#Xiu~^+86DQ4nzl|L($>rNOUwh79EfNkEe5tdY$RQ@Ud+-wlVSKIks)vwr$(C zZQHhOTi;phd!O{zb>D4vc9WfS+BKbhB6c!%Dtg`N*qPYb*tyvG*oD}|*rnLz*p=AT z*tOX8*p1lD*sWOnuMoFmcVc&A_ac2i_8|5!_9)ViV^3mFW6vV}JoX~?GWIIcuVZgw zZ)5Kw{XX^~_A&M;(w}2rVqat5BK6Az+BsG#I(rJ-&NO~kgq%$I!kjzMyNM}W|A=!}}kk@xKt>~@ zB5y1*1{sfxLna~37LvaL8c?qB5x)#1DTD?LgpfKB5yu24_SyTKo%p5B5x_O z1X+$OLslXyB5yUa3R#P+LDnPdB5xzI0ojafLbf7XB5ymg4cUq8Kz1X$B5yCU2icG8 zLk=PbBJVJA2sw%zL5?HGBJU(}0y&MGLe3&*BJVtM4!MY2KrSPfBJV141-Xt~LvA8B zBJVbG3%QHjLGB~>qH1{%(Zh%yMf4a!{;TBI$SdR}@&b8|JVTx$Pms^ZC*&jY0eO$S zL*629kl)BJ z(PC&(v1ka%fq!3|bqlh1NuCpw-c8XjQZd+8AwwHbfhs_0f80U9?UV zr#0FNZHcx(o1@Lprf3tiGujF5h;~5RqwUbPXdARQ+6(Q8_CUL%-O#RR7j!T>2pxzH zK>MTp(7tG&D9&PZ5xNjvfX+wfp>xqW=xlTrIuo6NPDiJqQ_(5tWONcb5uJdJN5`RK z(J|;~bQC%g9f1x@xY#A;ymv3git ztPa)~YlJn#8enn%Pa{EdtQpo6Yl5}LT461*7Fc_%9o80WgLTF_VI8p!Sa+-&))ni5 z^~QQ(J+U5Gf2<$Y7wdx!#s*;nu>sg{Y#25a8-k6-Mqwkd5!iTa95xmkgH6UJVH2?l z*mP_fHWizK&BkV7GqD-id~6;z7n_4E#ui}=*VE`++6I6X1WbKmV2t zN`fcG6X7ZG6nJtx8J-qTgQvz*;TiD^czQe?o)yo6XT~$(Iq@8Lc03!N7te#|#&h8) zj^HsoA5P)~j^h{}e_mLe!D*brMO?snoWoUI!DU>+P29kBT*DpQ#w{G+0q)}-?&A6J zI6TB5UKlTg7sLzT#qnZzQM?FV8ZU*H#7p4i@p5=sybN9$uY^~`E8x}fYIs$=3SJwp zh1bMu;Pvr(cwM{>-WYF$H^dv@@t=)N@TPb(ygA+iZyDvb5?_HY$Cu$t@g?|Td=b77 zUx3fY=izhlIrwaR7CsZ7fltS$;ZyM`_+)$%J`taQkH^R1WAQQgXnYht5+8vN$A{rV z@gewNd=NemAAtAA`{8}@K6r1u7v2-^fp^Ed;a%}AcxSv5-VyJBx5wMzZSgjEYrIvI z+bVoDz6M{5ufx~l2^0MPu>nu~A8o`p;hXXJvB*|@3%(uShVR68;Jfi%_+ESuz8~L* zAH)yfhw(%BQTzyg96yGi#82R-@l*I&{0x2`KZjq$FW{H)OZZj%3Vt2GhTp_*;J5Kx z_+9)CejmSwKg1v4kMT$NQ~U}39Djzt#9!dA@mKg;{0;sde}{j>Kj5G7Pxx2-3;rGd zhX2HW;J@)-_+R`Fo{&gDBqkCONr@yxeE!LZ__14ZA_b9>NEJPkI--AnWc}|wW+t)_ zS&3{!b|MFnmPkjWCo&KjiA>S+F#;h_0wZvOAaWA9h}=XTA}^6I+6PHc1WhneWHur$ zBA$ppq5>fjQsm3gUQ|LMbV4Ic!XPXH5DsAz9^n%4HRKZk0f~@^Bl1UH0iqyLh$u`H zA&N#`F`_t8f+$IpB1%VI8KNvvjwnx5ASy;)C89D>g{VqYBdSMU4WcGdi>OW1A?ik6 zJ)%C*fM`fGA{s|t6QU{6jA%}@AX-LVE21^ghG$&AEGbOkLXVfAO=R>AYw2vgcwQ;BZf!b2x25LiWp6dA;w1DIAT08ftW~4 zA|^-P6k;kdjhIf%AZAA1EMhh>hnP#uBj!hEZUM27SVSz2^b%qzv5Z(A=@rCEVimDE z(rbvd#5!Vqq&E;7iA}`jNN*vw65ELFk={Y%OY9@|NBRJ9kT^sfj`R`Y zC~=H99_bUrN#Yc7I?`u|v&1>#e55ZB7l}*6yf@e+$3%hw{nLCP-C!)M${GBKt86y!AB{32w36dl! zk|r6Fjb6z`#787VBt|4fBuAt~q(-Dgq?7T#Dw(7au|nxGGsC;_76z zh-;EH$oRP`waHp!U9t{YpR7kVBpXD2W3mz1lx#vaC!3Ki$rh2{nrub3CEJkg$#!H% zvP0x|COeT`$u4AfvK!fx>=F6B$zEh%vJcsx>_-kH2Som0au7L`96}B!hmj-65s^Qd z97T>L$B^U6apXjDLgY^-Cy`UhDdco=8ab1k5&5&pS>#-D4mqEkM=m56ME+uO5xJCH zLM|tlkt@j+k-wT;MXn{+kn72H!Om&t47 zRq_UToxDZfB=3;7$$R8o@&S3Dd_+DZpOBBqXXI1z1^JwOMZP58kgv&io%}`qB>#}V|1CZLmrO(@q>@mHsbo}ADg~9CN=2ol(om_XbW~a@ z1C^f2L}jG1P?@Q0R8}enm7R*uGZ&SU%0uO*@=HK^)TEvhC}hpJ80qv}!(sQOeRsv*^cYD_hw znnroHpqf*ysFqY4sx{S)YD;yX+EbmVj#L+_Gu4giO7)<+Q@yC3R3EB0)sN~+4WRl{ zgQ$Vj5Na?rj2cRfpoUYUsFBndYBV*D8cR)}##581iPRKoGBu5wO3k3AQ?sa<)EsIy zHIJH0EuiL8i>QUv5^6EEj9N;qpq5jssFlE6Pjno!uGqsJ{8s)iz z+D`4Fc2aw&-PAs6FLi+0PaUETQb(x6)G_KPb%HuhouW=sXQMC`Ex=!7qZc=xs+tfYkF7<%APd%a@QctMI)HCWS^@4g%y`o-HZ>ZPQJL)a< zfqGAUqCQezsL#|l>MQkw`cD0#eo}v^-~SpC{G}4n3F#zsVmcX}lukh>r{m9iDmo>d zhE7eVqtntE==5|ZIwPHh&P->cv(h=}>~t^XvMY;-InXX1xjqY2>s4dIP2vg1`T~8P zzC>T7uh5t2YxGt627R5rMc<_F(6{M(^j-P^eV=|rKct_~kLhRhQ~Cw{oPI^Wq~Fl5 z>38&7`UCx*{zQMIztErQZ}itF&mZ)6`WO9^{zL!%*RJ9(orp=uBw-RW$(W=}3MM&| zib=_&VNx^cn6yj=COwmh$;f13GBeqjtV|9jJClpa$>d>jGx?aj48p`1j6oTK!5NAn z8HS-5j$s*r;Tee$8HJGASM8Z$M@ za|Sb=nZ?Xx<}kCFdCXj90W+Uj#4Kc%FpHUG%u;3rvz%GQtYp?OtC@AoT4n>Yp4r4~ zWVSGynQhEgW(TvK*~RQ+_AtAdeav3w0JEPt#2jRfFo&6A%u(h9bDTNFoMg^0r^(Bp1H(aWUermnQP2d<_2?}xy9UM?l8BRd(2(t0dt>u#5`o4FprsM%+n~(7tC|! z74wpL!@OqRF>jd<%zNe&^O5<&d}h8eUzs1wcjg!KlljB^{@29hFO!H($R=SEv&q<` zYzj6xn~F`zreRaF>DaVv1~xsLiOtAnVKcMY*sN?0HanY(&B^9rbF=x_yez`TSd2wk zg2h>iC0T~0S&n5{f#q3=6vmkA-Z&#<3w=fX&Yq zVhgfG*urcvwkTVIEzXu=OR{Cy(rh`lEL(vs&sJh9vQ^m1Y&EtjTZ666)?#b2b=cZ$ zJ+>~}fUVCqVjHqe*v4!#wkg|!ZO*o0Te5A~)@(brE!%-@&vs%vvR&BDY&W(m+k@@S z_F{Xoec0Y?KejJBfbGu?Vh6HA*um^Dc4(C62zEF-iXF+0VMnv$*s<&cc04;iT^yNF%LE@2n5%h;vt3U)cWie1UBVOO*3*tP5i zc0Id^-N;ZN^dx$;A9$^o&$JnFn3HCU9iap7m zVNbK?*t6^f_B?xuy~ti+FSFO!t5Kde*z4>q_9lCWz0KZZ@3Ifr`|Kn3A^U`V%sykE zvM<=@>?`&q`-XkZzGL6AAK3ToC-x)zh5gKaW52RL*zfEw_9y#?{r#`C&0jVVmyk=s zCFYWGNx2kUaxN8@l1sy-=F)L#xeQ!-E)$oL%fe;mvT<3t99(uT7nhUE!{z4kad|m} zi*Xo-as-ES6i0FlM|1Jt{5g*01dit+v2v<1rig87`5?pbv6jw6x%5bH*a$H%i0#`orDsdILDqLl*8do*) zYH-!LT3k)84p%$!>Tz|s23&ov5!W#CnsAM|W?WOQ1=l?CT5&D8He7429oIJUI&kf| zPFzQ>3)h(|^xv1Req4WU0N0!A!}aBQa6P$RTvx6e*PR>1jpoL1!?_XMNNxx>lpDqk z+Ha5uSI z+*R%xcb$91z2@F<&$$=eOYRBxlzYZKm*&gx#rYC^NxleQlrP2?W zz8T+~@5T4#`|#cQ9(+%}3*VLR#&_g9@tyf${BV8*KbRlF59J5&1NlLGU%nsTpP$4} z=BM!E`3d|)ehfdBAIFd6NAaWidHj5S0Y96c!_Vbs@H6>Y{8WA#Kb>F2ujbeA%lQ@j zN`48ylwZa#o0#UJI5@yGdF{B8aYf1SU<-{i0GSNUuFMg9_h znSaJV=U?!T`6v8S{sI4xf5hMA@A3EfPyA>83;&+~z<=c5@NfBd{7e27|N3A1tb{@$ z;Wz(>|I7d2fAYWhulzUu`@d!Q(hBK>ltL;YwUA6mE~F3=3rU2eLJlFPkW0uaWD~Lr znS{(j79qWmLC7c&0x3`eDqsRG6c&mIMTG)FL7|Wk3UNYyp^{Kps3MdXDhL&YGD2CQ zoKR9IC6pHG3H5~rLT#arP*?V7$J-lMhQcOVZv}>mM~kGBTN@&2s4E#!c<|JFj1H!Ocs_2%Y_xfVquA}R9GM^ z6c!0{g?Yk!VUw^~*dnYKHV7MqHNsk9ov>0^C9D?q3HyZu!fs)Yuvge2>=bqhTZL`H zcHxw8S~w#d7fuK#g(JdI;h1nxI3yevt_jzL8^UGbif~o9AY2qK31@|K!g=A5@K|^v z+!r1Q4~09zUE!W^Q@ADE7TyW(g%84O;f?TCcp<@F`pO{bBVddJYse+hnQ0oL{XGPR^&upq(oX|L|i09QnW=!bVXAH zq9tmgE*hdNDxxYD5(|q(#Qb6bv7iXWP>d5j(H8@;oLFA0AeI)(h-JkRVo9--SX3+~ z78h%YwZ%GOb+Lw6Q>-FZ6|0FA#Y$pjv6?U>>M~S1wG2(D>gg8kMQow#1yAg&hIh-<|a;!1IqxKvywE*E!+yTv`?c5#QeQ`{nM6}O2S#ZBU7@tAmA zJRu$ykBCRb1L8sPkhoXeC+-(7iI>GI;(76ccu_nfo)yoDC&g3ZY4M(TUwk0m7Vn66 z#T(*H@s@a1ye3{3Ux}~9H{x^gh4@l@B0d$Li4Vm`;$!if_+9)VeipxoU&RmNNAZ*R zR(vPE|JSx9sgz7gC?%2-OMk?_|61$)6n}}o#SBtLDU*~|N++e4Qc0<$G*WUYg_Kgt zBjuIyNjarlQf?`mlwHapWtOr?StUkdB~BtGN}?r9!X-kANr;3>hGa@WQYB5&B}tMc zMdBqv5~VmPzf?d9Bq)WFD|wPHS&}U|QhYs@l1fWuq~cNusiagyDk>F|3QC2f!csM< zx>Q4|ELD-JN)@DvQYERZR8A@{HIf=jO{Dr#1F4}@N2)8;lWIz}q}ozDslC)eYAv;q z+Da{?mQpLJsnkqrF7=XnOMRs7QV*%8)J5tlb(1Mu=_CQDPK@zMloqBKStD~*#zN~5IF(mZLtv_P6I&5`CxGo+c)ENQAVO`0yP zl2%J=q~+2IX{EG8S}HA*7D|hx#nLuuyR<{vENzjtN*kn&(k5xGv`$(t9g+@9N2LAI z0qLN$N7^gxlXgnGq}|dv>AZA7IxU@%&PpewlhP^asB}y^F5QxDOLwH}(hcdRbVa%< zU6U?Km!!+mGwHeXLV7Gck)BEqq=(WY>8^B7x-Wf_K1*Mu_tFRHqx434E4`CmO0T5X z{~9SKloQFnr9aYN>4)@F`XzmpzDeKzEy$WyPA8|7Q^~32WO8yjg`8MUA}5t|$T{U) za#lH;oL$Z&XO^?b>E#S^MwyUFnUYZ%lW{qp9Fq|_x12}LD=V@pYqBUyvMh5lFAFj) zGcqgtav($5kzLu7fo#dPtjmUM%Ejd3atXPxTtqG^7my3eh2&6}!o5n8@ajMLT)KHk(>@({VdJU|{O_mTU`{p6lRHcwoSSh09R|+Tv6{v(toZ>0I5-8=A@=67zv{FVXtCUbm zDy5X7N-?FlQcJ0=)KRJ{HI$l46{V_DO{u6mDE7O$e$_!<)GDVrHOi(5&la#T_IAy%DNLj2bQRXWPl!eM1 zWv(($nW@ZDW-IHI^~wfiwX#N8tE^B~Dyx*G$}(lSvP;>m>`}HWJCvQu7GZYy_`yUGpargBTUs$5g9E3cH-${Xdm@p!LRXLSZDV0_+6;}y0rXnh;8mg%R zRaG@rS0zY8kb-T0$+U7Ez0;#nggo zA+@ktO|7ohP%Eod)T(L)wW3-{EvuGO%d3sl#%dF_zS=--sMb;Is`b>GYAv<4+D>h+ zc2HZZZPd1E3$>-%N^Pn(Q=6;3)ZS_zwY%Cw?WuNAyQHu}1I!NuS_EY<-lhn!T6m`5hL7k|MQOBy|)RF2ab+kH9ov$uXXRCA6x#|pcraDWV zs!mgKb*qxV}N%hZMHB6YF4P2H~UP&cbv)UE0Ub)&jTU8}BB*QMnJ+dQLsBUQkb~XVkOm3H79UNI3zm`bfR2-c#?ZpVZIl7xlgRLH(${QQxZX z)R*cj^|hKnOQV5r}|6%s(w?y|67_nt(Hzpsio3VYss|aS_&<(mPAXc z#n)pFEvJ@C%c^D5vTK>N%vu&Ly_P}Cs1X{eQ5vdY8m{HjVj805*79h1HAPc3O%pXq zlQmA`H9?~_Mq@Q!3pA)XnyYyl&@9c?bj{FAt(aC^E1?zEifBc(0$M?>kQQojT7IpP zR#~f}mDeh06}2*2S*@H_QY)pE*6L~XwFX*kt&Ub#tD)7@YH3xqYFc%zmDXBoqczuB zXf3rST2rl=)=+DtHP*Um-L)QCXRV9YRqLR2)H-QxwRT#2ZICut8>02s251AdK3ZR` zpVm|BrS;avY2&pC+GuTzHdY&+xC+I(%3wprVvt=Bea8?`msT5X-SQd_01*7j-pwFBC2 zZI8BB+oA2$c4=F+ZQ6G2ly+J>qaD{yXeYHJ+EMM8c2GN{9oDXC*R>nkW$lV~RlA^F z)GldfwR75e?UD9ad!pUf9%v7>JKA0Co_15arQO!vY45cU+H38N_EvkLz0_W5Pqk;- zbM2S*Tl=GZ*M4X}wJ+LN?VI*d`=ou=Qs^o5RC-c9nVwuvq$k#s=zsq;T~4TH(X;B= z^o)8YJ+q!pPp@atQ|oE;v^t`rI;Q8<^XV}?m!4bCqi5H1=s9&k7j;Qzbx!AXN~d*3 z$8|y{bz66IS2uN_Te_y}x}nRuqN{o#y|7+HI3+hl0^*G(reLc|2>E-nbdTG6k zURE!mm()w?MfGBOaXr2sYw5N1I(l`zhF(*zqF2?c=@s=#dS$(t-dt~?H`bfzP4xzP zL%oq+SFfkn*E{K*^)7mQy@TFSZ=<)>+vzR!R(fl_pWa^|p!e4M=zaAbdQZKV-c|3W zch^VhqxCWRaD9Y6QXirZ)raW=^+EbzeVRU9pP^6Ir|47l3Hn5Rl0H@+r;pbc>5KIx z`h0zXzEGc|&(-JYGxb^eY<-=+Uf-av*4OB3^%eR`eU-jcU#2hDcj>$JJ^FTihrUza zqHoo==^OP;`eyx@eq2AHAJ&iPNA&~xLH&@vSKp`a*DvXp^(*>${epf`Kck=3&*>-i zQ~GKBo_=3{px@T-=y&xS`c3_oepSDwU)Nvhuk|Qh%a9)t~7P^+)<+{hR(> z|Dk`@zvy4}5Bf*_lm1qJr@#N#+A*n-%t&Y?G7=kq^uPbwZU5AN>A&?1Mn)r(k=96O zq&HF-sf{#7awCP2(#T`vHS!rbja)`Jpi#&uY*aI<8#Ro|Mirx~QNgHaR5HpM<&5%1Bcrj=#HepHFd70D`$>?khGlm-@ zjKRhbW2iB}7-$SK`WpR={>CI@vN6RNZ%i;I8e@#H#yDf7G0GTi#Mk3IW4^J#m~G54 z<{C4MnZ_(*sxi%&Zmcp^8*7Z^#tLJlvBX$vEHf4wi;Ts_He~ps~l;YwR<28oP|$#yR7>altrkoH5QCCybNEDdVVd%s6h` zGHx4pjO)e?U~x$(kyY&8UyS$0 z2jiph#&~PIGhQ06jMx8~t0y!QnZJ!c#$V%y@zeNad^Nrq-~TmhNNc7uQ<|yF)Mhd> zxtYRDY$h?2nmNpzW-c?Una#{@W->FISX9lQtQXHGMNMq3M{e>6yT^Oxx5=!!*reW^uEGS=cOM7Bvf)1}Ga1dzhWgE@oG=gW1vSWVSWineEL%=3sM(+20&s z4mA6iea(JmPqUZV+Z<<(Hz$~*%`xU!bA&n49AyqQhnd68S>|kWjyc_&Va_zCm{ZMZ z=0tOnIoVuhE;m=0i_InGQgea1&|GBBHRqZ0%}wTJbBnp&++c1r*O+U~b>>QQmATs7 zXYMx-n7hqA=3aA$xzpTbZZ)@=+s#wvY4ePE+&p2PG>@1^&12?4^N@Miyk=fEZT`P}?v{x<)Z-_0N9PxFiU)%<3DG(VZ2%@iOdNClFDWFR?61QLTJ;IEkg zBm`MNR*(&31eri)kPf5=89-`~2BZZDKmi8wf_xwba)I0+56BL3fSf=8B9H(JIKTr6 z(0~CrAOHz$-~bnx000YUKnDhpfdW)e2owfIKz>jF6a)~2AP#uI2LUJt%7Y4^G$;eg zf)b!4CVkTp zKIjBGgD#*w=m0u`HlQtN2U>zwpf%_R`hx+WH|PWUf*znJ=molhZlF6D1xAB0U^o~7 zMuH(=C>RC?f)`JaTHCO}If)!vTSOu1XWnekj1$KiyU_00Wc7iQnE7%4$f=ysEI0lY`6W}m7 z0*-4Rf=A#n_y)d%AK)|i0=|L|;3N11-hy}FJxF3DwUSv0 ztwdI0>ks$~5?DXMFYp^=urgYith81-E4`JEX5kiL#Vo`^EyFS`V5yd7>6T>4mSXXiV2M_omES60 z1s1eI%e6eqw=B!H9IKR7+A3oew@O$gts+)YtC&^LDr6P5s#(>o8dhbiidEIBU{$m# zS!JzqR(Y$D)!1rc)wdd04Xrv>U8|l|)2e0Fw%S?ktqxXetBuvxYGJjsT3Jo4W>#~n zm(|tk4U~7mq)EZz7v<6vyt$tR2YmznDnqrN& zCRh`#G1gdXoHf!KWsSDxS@W$0)@*BzHP@P9&9r7&Q>|&%bZeEh+FD~Rw^mpyttHk{ zYnipsT4XJ@wprV)9oA-Ri?!9-U~RNES!=Cz)_UuZb=W#$?Y9nC2dzEUUTdGV)7oY2 zw$54Stqay^>x^~QI$@o(PFY8-W7cu&mUY{@V_mmySU0UJ)>Z48bsV^t$Wse>y!1_`eMDeK3E^EH`ZJ0o%PasWxci%*a_`K_HXNt_1F4g z{j`2rU#)M}_kV4B(%R|lly)jRwVljPZl|yl+ez%Cb`CqIoy*Q@XS1{0ne5DV7CXJ2 z!OmzCHfd8fYGXET=d)urV&}H=*m-TmR&C7|ZON8x&gN~wrftS%ZQl-TXgjuRdp58w z+qQMvuuZ#|UED5V7q*MoMePE1LA#J0+HrP%yOLemu40$BE7%q7GIm+JoL$l`WtX<= z+4b!Pc5Sqm24(IR=<zEF3EJt&6$8cmv zaa5;}Q`jluFjiI+B+Sbj!qk= zt<%nF>9lfMJN=yg&H$&k)5q!S^l*AQy_~L2H>bNZ${Fp9afUl1oRQ8DXQ(sG8R!gh z20PQ7>COyivNOe*>P&DZI+L8S&Nyehv&dQOEOF*L3!H_{9A~aG&zb4Wa%MZoe=~)* zIa{3_&UR;)v(wq*>~{7!dz}N$e&>*L&^h89c9uCyofXbvpB);VjP4bFOJ zle5v;;%s)}|IcvLIp!R9PB`&1hEF*soiom9=bUrax!|04E;$#SE6!ynes=3M=c;qV zx$fL@ZaR0I+mV0Ix$8V|?mLg1ht3n{u@gVH`DsMYqJ2DfUN|qESI%qajq}!d=e&15 zI3Jx)PKN*9+c)Q{^Tqk>{BnLeKb-GQ0{5@;$NBxQWqe{ck(=w@&;yP4dqZWcGYo6XJX=5TYnx!k;N9yjLZb5R#@aTjw* zmvCv9a#@#&;)<@|@-7!?)m2>Cm7@JPuI*Yba81{6bysuqyK!#lLN{=I*K=LBxLeFE z>K1VeyM^3>ZUMKvTh1-(mT^nFrQDKki6~BWx0+kkt>RX8E4dZj3T}P3o?F+g_M5?db&+Q)_*#Qv^jA&3qgCiOeZ9mi<<_?e42zR7ADpI4}G49w% zjdRDl6QT$cBbpS^WH)|3{1kVpJI$T$&TwbCv)tM49Cxle&zgAn-Sk}Z$}mI$Nla8a(}u%-0$u;_pAHG{p@~nKe`{>_wGCQt^3A(?Y?qfx-Z=4 z?lbqP`^0_hK5`$r58V6iJ@;-DC!d$s%j4zta(Owu9A0)Wo0rwg;$`+Sc^SP7UV1N` zm)1+;rS?*JDZLb4axa;e)Jx(e_7Zssy#(H0H}1b{kn%{6@Nf_FP!I89p5%$1;PD>k zu^!{m9`H=h@N`e}R8R3_4|;*;d!FZdj%Rz8SHvsq74iyt1-$%ToELg!ywYANucTMP zEAAEZih5PN%3dX}qF2Ey@0Ih)dUd?oUM;VtSHr9BRr9KP@p&}y8heerhF$}&zE{ty z>$UM(d#${dUJI|e*UW3`b@4iToxF}-2d}-?&TH%S@p^l`yq;bUue;aH>*@{h2780N zf!+YGzt_*}>y7b7d!xLO-Ux5FH_RLAP4Omsle~%E1aG`I&Kv8^@n(CoyqVq%Z@M?l zo9e~iQI>d%y+z(aZ-F=8o9E5-)_AMERo+T(g}2;W<}LNMc$>XV-bQbOx87Ult@ZYJ zyS-iBPH%^|-P`7Ejp7{f4ts~ZgWdsezqilZ>z(mVd#AjU-U;uxcg#ELUGXk^m%NMK z1@F9f&O7Vf@osy!yqn$)@49!*yXwWy-Mi=A^&WWly+__d?}_)=d*(g$UU<*FSKdqS zjrZDn=e_klc<;SW-be3?_u2dAef55L-@RYnPw$WS+e_g8^%D6B{Um;3KbfD@PvIx` zQ~4?VG=6G7ouAgv;HUR9`5FBzer7+LpViOdXZLgYIsH6-Za<%&*GK%AkNK!i__$B` zq|f-Y&-tt`_`EOqq9329;>*6~tG?muKJZQ7_ATG_9pCpoANqkG=ZAg)KfhndFX$KX z3;V_VqJ9a#xL?XI>6h_K`{n$yeg(h0U&*iNSMe+R)%>b{4Zpfy%dhFz@oW3_{JMSv zzrNqdZ|FDi8~e@trhW^*x!=lf>9_G)`|bR;eh0t3-^uUjckw&>-Tbb855K$L%kSy; z@q7F6D{=Po`}za?{{A3;pg+VP><{yY`Xl_|{wRN>KgJ*JkMqa+6a4Z1B!8km#h)B) zH_e~w&+w=Fv;3L<9DlYy&!6ir@aOxB{DuA!f3d&JU+S;$m;0;ymHrxkwI5&C8~pYD zI)AOd#oz32@;CZB{O$fWf2+U8-|g@6clrnX{r*0GuYbfp>>u(E`X~J3{xSckf5t!U zpYl)o7yR@7IsdGG#lP%d@-O-~{OkTT|Ehn-zwO`hZ~71X`~E%uuK&b;>_74!`Y-(F z{xkon|Hgmqzw%#3d3^BS`|td>{ulqV|H=R8|M0*2-~6xsAOE-i%m3*o3K9khg1>&U zAZd^!NF1aJQU)o4Uph!?SC>9hAN(9A&QbEa}Oi((CQ!XeQR0zrkm4b>vm7sD^EvOpQ2&xCQ zf|@~{pmtC%s2em0>IaR2hC!2{anLMi8ng(S2d#pZL7Sj;5I@do7qksJ1nq-PLC2s= z&^hwE1zm$4LHD3n&@<>0^bX=jAbo>=LH}St5I>F@7z_#q2Sb9P!LVR>Fd`Tkj0#2v zV}g_k{{I*oj0?sG6M~7sq+oI|C72q-kA9{F(}Nko%wSe9JD3y94dw;&g9X9DU{SC* zSQ0D^;wyGpusm21tPEBKtAjPc+F)I;(UXXt2Jv^2=fSh!W$+?+9lQ$O z25*A*!MosN@FDmddUxM$!x8P^+BlsQs3jPLvf`l*uObipjq%a9g4wJ!@Fa=Bv zQ^B+_4NMQy!Hh5i%nUQZtS}4A4zt0WFbB*HbHThY4~)Tl5QPZDAqGiEKpIkzg$(2& z2Sq4A8A?!v3e=$nO=v(10vP{IF+VH-3qlA(7zaJ*!vNaQfi5f!%fPa*1S|csDYzy1Lmar9U4V%H{um$W5`@p`i2kZ%Z!LG0y><&A@&aev{4oAR|a0na44e-az=d!QoD1i{nQ#`I4X45Ba0Xlr z*TA)K1zZVN!KH8+Tn-n(#c&DS4tKzva0}cDx515Y6Wk2f!S!$hJPeP(qwoMc2oJ%% za39Dw2tUEM@Ev>)U%}V#4NMp&3KNHa;9r;^ z{0V=--|!p!4u8P3VY)DVm?}&irU{dWDZ-Rtk}zqQEX*0^3Ui0q!t7y=FmsqC%o=70 zGlrQ$GNeK}#6mnI!dQreXqYF=8|DkuPz&`?3gu7<`A`VOkO|q43xg1bVd#cl=!aHl zhfZjOW(dOKVTrJ0SR^bO77Gi8g~GyNT$n#B5LOPWgjK@|Va2dgST-ydmJdsXrNc5| z{jfpUFsu{S4eNz9!&+hOuv%C>tP!>j+k|by7GcYpRj+}FO0vI2ShY5qCpW2jiJ?F-0IhA?w%wj2wQbwB zZQHgzw%zg6wr$*}xo`P_os~G6gE^a%xtfc)o11x>hk2Wq`I?XUo1X<*fCXESg<6P( zTbNz52#c~vi?L{nvsg>8c)MZO?UvoNM2Ao8sXeoY_Q)RFJ-crY?6%#pyY|68+9!K! z@9e$3ve)*;p4$t1X@Bgm{j;C;%YNH8`))t%vwg9zmKN!d9;uKTX^bi zxsV&#kR3UY8Cj4O8ITc~P!z>b9EDIAMUWo_P!M^L7x_>Tl~5VwP#zUf8f8!xB~TKj zP#5)3AGJ^$bx<8OP!m;971hub&Cnb|V>E#QAR3?{8lfXPp)=Z{JvyK@+Mq33pe0(N zFZ!WBdZ9P^pgVe?C%T|3x?vPU^!M`C6-_*mSHD$VK=s6J9c0*wqPqZ zU?Vo+D30Mc4&gA4U_TDvAogG{_TeHf;WEzQJTBlg&fqLg;3Q7L9Ukz63tZs_M>xS5 zS8x>$2u27(5r9Ah!54n;hZnrzgE+(^0nvy-EUqCEQ3yjgBJcnY@d$Tu5BG5kw{Zv8 zaRWE;25<2WFYyYm@eI%L0*~S!p3aIrfk9H zY{iyr!`5uaw(P+6?8J`j!p`i*uI$0??8Tn!!`|%2z8t{*9K?Yf!oeKIp&Y^C9L13w z!_geav7Es1Ol*!xoX9Dh%xRp;#Q!>j)0wzHW^pFxa5m?0E*Ee<7jYq%a50y0DOYeg zS8*lRa5dL)EjMsI6J_q=ZtmfB?%+;t;Z|{f z7k~2`zw-w_^9#T713&T;Qz^C5D7jK7rIIMAlIais@*lG)yK*SAvM8%ED5Ekdt=yQCqc8OSMu{HB)o-Qg8K9clA(Dbx~J!Q%7}D zXARSEjnH5X(NGQ0Kn+q~^;3UM(qv81cumkmjnP<*(@2fdXwB1nEzoSu(Ok{YOwH0% zP1AI((rT^Ia;?xxEzwdf(?TuMVr|oQ?a*dz(N=BHMs3nst = Lazy::new(|| { - let bytes = include_bytes!("generated/table.dat"); - bincode::deserialize(bytes).expect("failed to deserialize generated block table (bincode)") -}); - -static VANILLA_ID_TABLE: Lazy>> = Lazy::new(|| { - let bytes = include_bytes!("generated/vanilla_ids.dat"); - bincode::deserialize(bytes).expect("failed to deserialize generated vanilla ID table (bincode)") -}); - -pub const HIGHEST_ID: u16 = 17111; - -static FROM_VANILLA_ID_TABLE: Lazy> = Lazy::new(|| { - let mut res = vec![BlockId::default(); u16::max_value() as usize]; - - for (kind_id, ids) in VANILLA_ID_TABLE.iter().enumerate() { - let kind = BlockKind::from_u16(kind_id as u16).expect("invalid block kind ID"); - - for (state, id) in ids.iter().enumerate() { - res[*id as usize] = BlockId { - state: state as u16, - kind, - }; - } - } - - debug_assert!((1..=HIGHEST_ID).all(|id| res[id as usize] != BlockId::default())); - // Verify distinction - if cfg!(debug_assertions) { - let mut known_blocks = HashSet::with_capacity(HIGHEST_ID as usize); - assert!((1..=HIGHEST_ID).all(|id| known_blocks.insert(res[id as usize]))); - } - - res -}); - -/// Can be called at startup to pre-initialize the global block table. -pub fn init() { - Lazy::force(&FROM_VANILLA_ID_TABLE); - Lazy::force(&BLOCK_TABLE); -} - -use once_cell::sync::Lazy; - -pub use crate::generated::table::*; - -use std::collections::HashSet; - -#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] -pub struct BlockId { - kind: BlockKind, - state: u16, -} - -impl Default for BlockId { - fn default() -> Self { - BlockId { - kind: BlockKind::Air, - state: 0, - } - } -} - -impl BlockId { - /// Returns the kind of this block. - pub fn kind(self) -> BlockKind { - self.kind - } - - /// Returns the simplified kind of this block. - /// This is an arbitrary manual mapping that aims to condense the different - /// vanilla block kinds which have only minor differences (e.g. different colored beds) - /// and is mainly intended to make `match`ing on the block type easier. - /// This mapping in no way stable right now. - pub fn simplified_kind(self) -> SimplifiedBlockKind { - self.kind.simplified_kind() - } - - /// Returns the vanilla state ID for this block. - pub fn vanilla_id(self) -> u16 { - VANILLA_ID_TABLE[self.kind as u16 as usize][self.state as usize] - } - - /* - /// Returns the vanilla fluid ID for this block in case it is a fluid. - /// The fluid ID is used in the Tags packet. - pub fn vanilla_fluid_id(self) -> Option { - if self.is_fluid() { - match (self.kind(), self.water_level().unwrap()) { - // could be swapped? - (BlockKind::Water, 0) => Some(2), // stationary water - (BlockKind::Water, _) => Some(1), // flowing water - // tested those - (BlockKind::Lava, 0) => Some(4), // stationary lava - (BlockKind::Lava, _) => Some(3), // flowing lava - _ => unreachable!(), - } - } else { - None - } - } - */ - - /// Returns the block corresponding to the given vanilla ID. - /// - /// (Invalid IDs currently return `BlockId::air()`). - pub fn from_vanilla_id(id: u16) -> Self { - FROM_VANILLA_ID_TABLE[id as usize] - } -} - -impl From for u32 { - fn from(id: BlockId) -> Self { - ((id.kind as u32) << 16) | id.state as u32 - } -} - -#[derive(Debug, Error)] -pub enum BlockIdFromU32Error { - #[error("invalid block kind ID {0}")] - InvalidKind(u16), - #[error("invalid block state ID {0} for kind {1:?}")] - InvalidState(u16, BlockKind), -} - -impl TryFrom for BlockId { - type Error = BlockIdFromU32Error; - - fn try_from(value: u32) -> Result { - let kind_id = (value >> 16) as u16; - let kind = BlockKind::from_u16(kind_id).ok_or(BlockIdFromU32Error::InvalidKind(kind_id))?; - - let state = (value | ((1 << 16) - 1)) as u16; - - // TODO: verify state - Ok(BlockId { kind, state }) - } -} - -// This is where the magic happens. -pub(crate) fn n_dimensional_index(state: u16, offset_coefficient: u16, stride: u16) -> u16 { - (state % offset_coefficient) / stride -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn instrument() { - let mut block = BlockId { - kind: BlockKind::NoteBlock, - state: 0, - }; - assert!(block.instrument().is_some()); - - block.set_instrument(Instrument::Basedrum); - assert_eq!(block.instrument(), Some(Instrument::Basedrum)); - } - - #[test] - fn highest_id() { - assert_eq!( - HIGHEST_ID, - *VANILLA_ID_TABLE.last().unwrap().last().unwrap() - ) - } - - #[test] - fn vanilla_ids() { - let block = BlockId::rose_bush().with_half_upper_lower(HalfUpperLower::Lower); - - assert_eq!(block.vanilla_id(), 7894); // will have to be changed whenever we update to a newer MC version - assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), block); - - let block = - BlockId::structure_block().with_structure_block_mode(StructureBlockMode::Corner); - - assert_eq!(block.vanilla_id(), 15745); - assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), block); - - let mut block = BlockId::redstone_wire(); - block.set_power(2); - block.set_south_wire(SouthWire::Side); - block.set_west_wire(WestWire::Side); - block.set_east_wire(EastWire::Side); - block.set_north_wire(NorthWire::Up); - - assert_eq!(block.power(), Some(2)); - assert_eq!(block.south_wire(), Some(SouthWire::Side)); - assert_eq!(block.west_wire(), Some(WestWire::Side)); - assert_eq!(block.east_wire(), Some(EastWire::Side)); - assert_eq!(block.north_wire(), Some(NorthWire::Up)); - - assert_eq!(block.vanilla_id(), 2512); - assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), block); - } - - #[test] - fn vanilla_ids_roundtrip() { - for id in 0..8598 { - assert_eq!(BlockId::from_vanilla_id(id).vanilla_id(), id); - - if id != 0 { - assert_ne!(BlockId::from_vanilla_id(id), BlockId::air()); - } - } - } - - #[test] - fn property_starting_at_1() { - let block = BlockId::snow().with_layers(1); - - assert_eq!(block.layers(), Some(1)); - assert_eq!(block.to_properties_map()["layers"], "1"); - } -} diff --git a/feather/common/Cargo.toml b/feather/common/Cargo.toml index a371549d5..7aca80fc3 100644 --- a/feather/common/Cargo.toml +++ b/feather/common/Cargo.toml @@ -8,7 +8,6 @@ edition = "2018" ahash = "0.7" anyhow = "1" base = { path = "../base", package = "feather-base" } -blocks = { path = "../blocks", package = "feather-blocks" } ecs = { path = "../ecs", package = "feather-ecs" } flume = "0.10" itertools = "0.10" @@ -21,6 +20,8 @@ uuid = { version = "0.8", features = [ "v4" ] } libcraft-core = { path = "../../libcraft/core" } libcraft-inventory = { path = "../../libcraft/inventory" } libcraft-items = { path = "../../libcraft/items" } +libcraft-blocks = { path = "../../libcraft/blocks" } rayon = "1.5" worldgen = { path = "../worldgen", package = "feather-worldgen" } -rand = "0.8" \ No newline at end of file +rand = "0.8" +derive_more = "0.99.17" diff --git a/feather/common/src/chunk/loading.rs b/feather/common/src/chunk/loading.rs index a6bb9971e..eed335e88 100644 --- a/feather/common/src/chunk/loading.rs +++ b/feather/common/src/chunk/loading.rs @@ -7,10 +7,13 @@ use std::{ }; use ahash::AHashMap; + use base::ChunkPosition; use ecs::{Entity, SysResult, SystemExecutor}; +use quill_common::components::{EntityDimension, EntityWorld}; use utils::vec_remove_item; +use crate::world::Dimensions; use crate::{ chunk::worker::LoadRequest, events::{EntityRemoveEvent, ViewUpdateEvent}, @@ -40,7 +43,13 @@ struct ChunkLoadState { } impl ChunkLoadState { - pub fn remove_ticket(&mut self, chunk: ChunkPosition, ticket: Ticket) { + pub fn remove_ticket( + &mut self, + chunk: ChunkPosition, + ticket: Ticket, + world: EntityWorld, + dimension: EntityDimension, + ) { self.chunk_tickets.remove_ticket(chunk, ticket); // If this was the last ticket, then queue the chunk to be @@ -48,23 +57,27 @@ impl ChunkLoadState { if self.chunk_tickets.num_tickets(chunk) == 0 { self.chunk_tickets.remove_chunk(chunk); self.chunk_unload_queue - .push_back(QueuedChunkUnload::new(chunk)); + .push_back(QueuedChunkUnload::new(chunk, world, dimension)); } } } -#[derive(Copy, Clone, Debug)] +#[derive(Clone, Debug)] struct QueuedChunkUnload { pos: ChunkPosition, /// Time after which the chunk should be unloaded. unload_at_time: Instant, + world: EntityWorld, + dimension: EntityDimension, } impl QueuedChunkUnload { - pub fn new(pos: ChunkPosition) -> Self { + pub fn new(pos: ChunkPosition, world: EntityWorld, dimension: EntityDimension) -> Self { Self { pos, unload_at_time: Instant::now() + UNLOAD_DELAY, + world, + dimension, } } } @@ -118,12 +131,16 @@ struct Ticket(Entity); /// System to populate chunk tickets based on players' views. fn update_tickets_for_players(game: &mut Game, state: &mut ChunkLoadState) -> SysResult { - for (player, event) in game.ecs.query::<&ViewUpdateEvent>().iter() { + for (player, (event, world, dimension)) in game + .ecs + .query::<(&ViewUpdateEvent, &EntityWorld, &EntityDimension)>() + .iter() + { let player_ticket = Ticket(player); // Remove old tickets for &old_chunk in &event.old_chunks { - state.remove_ticket(old_chunk, player_ticket); + state.remove_ticket(old_chunk, player_ticket, *world, dimension.clone()); } // Create new tickets @@ -131,8 +148,16 @@ fn update_tickets_for_players(game: &mut Game, state: &mut ChunkLoadState) -> Sy state.chunk_tickets.insert_ticket(new_chunk, player_ticket); // Load if needed - if !game.world.is_chunk_loaded(new_chunk) && !game.world.is_chunk_loading(new_chunk) { - game.world.queue_chunk_load(LoadRequest { pos: new_chunk }); + let mut query = game.ecs.query::<&mut Dimensions>(); + let dimension = query + .iter() + .find(|(world, _dimensions)| *world == *event.new_world) + .unwrap() + .1 + .get_mut(&*event.new_dimension) + .unwrap(); + if !dimension.is_chunk_loaded(new_chunk) && !dimension.is_chunk_loading(new_chunk) { + dimension.queue_chunk_load(LoadRequest { pos: new_chunk }); } } } @@ -141,7 +166,7 @@ fn update_tickets_for_players(game: &mut Game, state: &mut ChunkLoadState) -> Sy /// System to unload chunks from the `ChunkUnloadQueue`. fn unload_chunks(game: &mut Game, state: &mut ChunkLoadState) -> SysResult { - while let Some(&unload) = state.chunk_unload_queue.get(0) { + while let Some(unload) = state.chunk_unload_queue.get(0) { if unload.unload_at_time > Instant::now() { // None of the remaining chunks in the queue are // ready for unloading, because the queue is ordered @@ -149,24 +174,40 @@ fn unload_chunks(game: &mut Game, state: &mut ChunkLoadState) -> SysResult { break; } - state.chunk_unload_queue.pop_front(); + let unload = state.chunk_unload_queue.pop_front().unwrap(); // If the chunk has acquired new tickets, then abort unloading it. if state.chunk_tickets.num_tickets(unload.pos) > 0 { continue; } - game.world.unload_chunk(unload.pos)?; + game.ecs + .query::<&mut Dimensions>() + .iter() + .find(|(world, _dimensions)| *world == *unload.world) + .unwrap() + .1 + .get_mut(&*unload.dimension) + .unwrap() + .unload_chunk(unload.pos)?; + } + for dimensions in game.ecs.query::<&mut Dimensions>().iter() { + for dimension in dimensions.1.iter_mut() { + dimension.cache.purge_unused(); + } } - game.world.cache.purge_unused(); Ok(()) } fn remove_dead_entities(game: &mut Game, state: &mut ChunkLoadState) -> SysResult { - for (entity, _event) in game.ecs.query::<&EntityRemoveEvent>().iter() { + for (entity, (_event, world, dimension)) in game + .ecs + .query::<(&EntityRemoveEvent, &EntityWorld, &EntityDimension)>() + .iter() + { let entity_ticket = Ticket(entity); for chunk in state.chunk_tickets.take_entity_tickets(entity_ticket) { - state.remove_ticket(chunk, entity_ticket); + state.remove_ticket(chunk, entity_ticket, *world, dimension.clone()); } } Ok(()) @@ -174,5 +215,14 @@ fn remove_dead_entities(game: &mut Game, state: &mut ChunkLoadState) -> SysResul /// System to call `World::load_chunks` each tick fn load_chunks(game: &mut Game, _state: &mut ChunkLoadState) -> SysResult { - game.world.load_chunks(&mut game.ecs) + let mut events = Vec::new(); + for dimensions in game.ecs.query::<&mut Dimensions>().iter() { + for dimension in dimensions.1.iter_mut() { + events.extend(dimension.load_chunks()?) + } + } + events + .into_iter() + .for_each(|event| game.ecs.insert_event(event)); + Ok(()) } diff --git a/feather/common/src/chunk/worker.rs b/feather/common/src/chunk/worker.rs index 85f4d7229..0dc3de6ba 100644 --- a/feather/common/src/chunk/worker.rs +++ b/feather/common/src/chunk/worker.rs @@ -1,11 +1,14 @@ use std::{path::PathBuf, sync::Arc}; use anyhow::bail; +use flume::{Receiver, Sender}; + +use base::biome::BiomeList; +use base::world::{Sections, WorldHeight}; use base::{ anvil::{block_entity::BlockEntityData, entity::EntityData}, Chunk, ChunkHandle, ChunkPosition, }; -use flume::{Receiver, Sender}; use worldgen::WorldGenerator; use crate::region_worker::RegionWorker; @@ -51,13 +54,23 @@ pub struct ChunkWorker { send_gen: Sender, recv_gen: Receiver, // Chunk generation should be infallible. recv_load: Receiver, + sections: Sections, + min_y: i32, + biomes: Arc, } impl ChunkWorker { - pub fn new(world_dir: impl Into, generator: Arc) -> Self { + pub fn new( + world_dir: impl Into, + generator: Arc, + height: WorldHeight, + min_y: i32, + biomes: Arc, + ) -> Self { let (send_req, recv_req) = flume::unbounded(); let (send_gen, recv_gen) = flume::unbounded(); - let (region_worker, recv_load) = RegionWorker::new(world_dir.into(), recv_req); + let (region_worker, recv_load) = + RegionWorker::new(world_dir.into(), recv_req, height, Arc::clone(&biomes)); region_worker.start(); Self { generator, @@ -65,13 +78,16 @@ impl ChunkWorker { send_gen, recv_gen, recv_load, + sections: height.into(), + min_y, + biomes, } } pub fn queue_load(&mut self, request: LoadRequest) { self.send_req.send(WorkerRequest::Load(request)).unwrap() } - /// Helper function for poll_loaded_chunk. Attemts to receive a freshly generated chunk. + /// Helper function for poll_loaded_chunk. Attempts to receive a freshly generated chunk. /// Function signature identical to that of poll_loaded_chunk for ease of use. fn try_recv_gen(&mut self) -> Result, anyhow::Error> { match self.recv_gen.try_recv() { @@ -91,9 +107,12 @@ impl ChunkWorker { // chunk does not exist, queue it for generation let send_gen = self.send_gen.clone(); let gen = self.generator.clone(); + let sections = self.sections; + let min_y = self.min_y; + let biomes = Arc::clone(&self.biomes); rayon::spawn(move || { // spawn task to generate chunk - let chunk = gen.generate_chunk(pos); + let chunk = gen.generate_chunk(pos, sections, min_y, &*biomes); send_gen.send(LoadedChunk { pos, chunk }).unwrap() }); self.try_recv_gen() // check for generated chunks diff --git a/feather/common/src/entities.rs b/feather/common/src/entities.rs index 3fa7663fd..144259eb4 100644 --- a/feather/common/src/entities.rs +++ b/feather/common/src/entities.rs @@ -1,21 +1,16 @@ -//! Entity implementations. -//! -//! Each entity should be implemented in a submodule of this module. -//! It should export a `build_default(&mut EntityBuilder)` function to -//! add default components for that entity. - +// This file is @generated. Please do not edit. +use base::EntityKind; use ecs::EntityBuilder; -use quill_common::{components::OnGround, entity_init::EntityInit}; +use quill_common::components::OnGround; use uuid::Uuid; - -/// Adds default components shared between all entities. +#[doc = "Adds default components shared between all entities."] fn build_default(builder: &mut EntityBuilder) { builder.add(Uuid::new_v4()).add(OnGround(true)); } - pub mod area_effect_cloud; pub mod armor_stand; pub mod arrow; +pub mod axolotl; pub mod bat; pub mod bee; pub mod blaze; @@ -52,6 +47,9 @@ pub mod fox; pub mod furnace_minecart; pub mod ghast; pub mod giant; +pub mod glow_item_frame; +pub mod glow_squid; +pub mod goat; pub mod guardian; pub mod hoglin; pub mod hopper_minecart; @@ -66,6 +64,7 @@ pub mod lightning_bolt; pub mod llama; pub mod llama_spit; pub mod magma_cube; +pub mod marker; pub mod minecart; pub mod mooshroom; pub mod mule; @@ -121,116 +120,120 @@ pub mod zombie; pub mod zombie_horse; pub mod zombie_villager; pub mod zombified_piglin; - -pub fn add_entity_components(builder: &mut EntityBuilder, init: &EntityInit) { - match init { - EntityInit::AreaEffectCloud => area_effect_cloud::build_default(builder), - EntityInit::ArmorStand => armor_stand::build_default(builder), - EntityInit::Arrow => arrow::build_default(builder), - EntityInit::Bat => bat::build_default(builder), - EntityInit::Bee => bee::build_default(builder), - EntityInit::Blaze => blaze::build_default(builder), - EntityInit::Boat => boat::build_default(builder), - EntityInit::Cat => cat::build_default(builder), - EntityInit::CaveSpider => cave_spider::build_default(builder), - EntityInit::Chicken => chicken::build_default(builder), - EntityInit::Cod => cod::build_default(builder), - EntityInit::Cow => cow::build_default(builder), - EntityInit::Creeper => creeper::build_default(builder), - EntityInit::Dolphin => dolphin::build_default(builder), - EntityInit::Donkey => donkey::build_default(builder), - EntityInit::DragonFireball => dragon_fireball::build_default(builder), - EntityInit::Drowned => drowned::build_default(builder), - EntityInit::ElderGuardian => elder_guardian::build_default(builder), - EntityInit::EndCrystal => end_crystal::build_default(builder), - EntityInit::EnderDragon => ender_dragon::build_default(builder), - EntityInit::Enderman => enderman::build_default(builder), - EntityInit::Endermite => endermite::build_default(builder), - EntityInit::Evoker => evoker::build_default(builder), - EntityInit::EvokerFangs => evoker_fangs::build_default(builder), - EntityInit::ExperienceOrb => experience_orb::build_default(builder), - EntityInit::EyeOfEnder => eye_of_ender::build_default(builder), - EntityInit::FallingBlock => falling_block::build_default(builder), - EntityInit::FireworkRocket => firework_rocket::build_default(builder), - EntityInit::Fox => fox::build_default(builder), - EntityInit::Ghast => ghast::build_default(builder), - EntityInit::Giant => giant::build_default(builder), - EntityInit::Guardian => guardian::build_default(builder), - EntityInit::Hoglin => hoglin::build_default(builder), - EntityInit::Horse => horse::build_default(builder), - EntityInit::Husk => husk::build_default(builder), - EntityInit::Illusioner => illusioner::build_default(builder), - EntityInit::IronGolem => iron_golem::build_default(builder), - EntityInit::Item => item::build_default(builder), - EntityInit::ItemFrame => item_frame::build_default(builder), - EntityInit::Fireball => fireball::build_default(builder), - EntityInit::LeashKnot => leash_knot::build_default(builder), - EntityInit::LightningBolt => lightning_bolt::build_default(builder), - EntityInit::Llama => llama::build_default(builder), - EntityInit::LlamaSpit => llama_spit::build_default(builder), - EntityInit::MagmaCube => magma_cube::build_default(builder), - EntityInit::Minecart => minecart::build_default(builder), - EntityInit::ChestMinecart => chest_minecart::build_default(builder), - EntityInit::CommandBlockMinecart => command_block_minecart::build_default(builder), - EntityInit::FurnaceMinecart => furnace_minecart::build_default(builder), - EntityInit::HopperMinecart => hopper_minecart::build_default(builder), - EntityInit::SpawnerMinecart => spawner_minecart::build_default(builder), - EntityInit::TntMinecart => tnt_minecart::build_default(builder), - EntityInit::Mule => mule::build_default(builder), - EntityInit::Mooshroom => mooshroom::build_default(builder), - EntityInit::Ocelot => ocelot::build_default(builder), - EntityInit::Painting => painting::build_default(builder), - EntityInit::Panda => panda::build_default(builder), - EntityInit::Parrot => parrot::build_default(builder), - EntityInit::Phantom => phantom::build_default(builder), - EntityInit::Pig => pig::build_default(builder), - EntityInit::Piglin => piglin::build_default(builder), - EntityInit::PiglinBrute => piglin_brute::build_default(builder), - EntityInit::Pillager => pillager::build_default(builder), - EntityInit::PolarBear => polar_bear::build_default(builder), - EntityInit::Tnt => tnt::build_default(builder), - EntityInit::Pufferfish => pufferfish::build_default(builder), - EntityInit::Rabbit => rabbit::build_default(builder), - EntityInit::Ravager => ravager::build_default(builder), - EntityInit::Salmon => salmon::build_default(builder), - EntityInit::Sheep => sheep::build_default(builder), - EntityInit::Shulker => shulker::build_default(builder), - EntityInit::ShulkerBullet => shulker_bullet::build_default(builder), - EntityInit::Silverfish => silverfish::build_default(builder), - EntityInit::Skeleton => skeleton::build_default(builder), - EntityInit::SkeletonHorse => skeleton_horse::build_default(builder), - EntityInit::Slime => slime::build_default(builder), - EntityInit::SmallFireball => small_fireball::build_default(builder), - EntityInit::SnowGolem => snow_golem::build_default(builder), - EntityInit::Snowball => snowball::build_default(builder), - EntityInit::SpectralArrow => spectral_arrow::build_default(builder), - EntityInit::Spider => spider::build_default(builder), - EntityInit::Squid => squid::build_default(builder), - EntityInit::Stray => stray::build_default(builder), - EntityInit::Strider => strider::build_default(builder), - EntityInit::Egg => egg::build_default(builder), - EntityInit::EnderPearl => ender_pearl::build_default(builder), - EntityInit::ExperienceBottle => experience_bottle::build_default(builder), - EntityInit::Potion => potion::build_default(builder), - EntityInit::Trident => trident::build_default(builder), - EntityInit::TraderLlama => trader_llama::build_default(builder), - EntityInit::TropicalFish => tropical_fish::build_default(builder), - EntityInit::Turtle => turtle::build_default(builder), - EntityInit::Vex => vex::build_default(builder), - EntityInit::Villager => villager::build_default(builder), - EntityInit::Vindicator => vindicator::build_default(builder), - EntityInit::WanderingTrader => wandering_trader::build_default(builder), - EntityInit::Witch => witch::build_default(builder), - EntityInit::Wither => wither::build_default(builder), - EntityInit::WitherSkeleton => wither_skeleton::build_default(builder), - EntityInit::WitherSkull => wither_skull::build_default(builder), - EntityInit::Wolf => wolf::build_default(builder), - EntityInit::Zoglin => zoglin::build_default(builder), - EntityInit::Zombie => zombie::build_default(builder), - EntityInit::ZombieHorse => zombie_horse::build_default(builder), - EntityInit::ZombieVillager => zombie_villager::build_default(builder), - EntityInit::ZombifiedPiglin => zombified_piglin::build_default(builder), - EntityInit::Player => player::build_default(builder), - EntityInit::FishingBobber => fishing_bobber::build_default(builder), +pub fn add_entity_components(builder: &mut EntityBuilder, kind: EntityKind) { + match kind { + EntityKind::AreaEffectCloud => area_effect_cloud::build_default(builder), + EntityKind::ArmorStand => armor_stand::build_default(builder), + EntityKind::Arrow => arrow::build_default(builder), + EntityKind::Axolotl => axolotl::build_default(builder), + EntityKind::Bat => bat::build_default(builder), + EntityKind::Bee => bee::build_default(builder), + EntityKind::Blaze => blaze::build_default(builder), + EntityKind::Boat => boat::build_default(builder), + EntityKind::Cat => cat::build_default(builder), + EntityKind::CaveSpider => cave_spider::build_default(builder), + EntityKind::Chicken => chicken::build_default(builder), + EntityKind::Cod => cod::build_default(builder), + EntityKind::Cow => cow::build_default(builder), + EntityKind::Creeper => creeper::build_default(builder), + EntityKind::Dolphin => dolphin::build_default(builder), + EntityKind::Donkey => donkey::build_default(builder), + EntityKind::DragonFireball => dragon_fireball::build_default(builder), + EntityKind::Drowned => drowned::build_default(builder), + EntityKind::ElderGuardian => elder_guardian::build_default(builder), + EntityKind::EndCrystal => end_crystal::build_default(builder), + EntityKind::EnderDragon => ender_dragon::build_default(builder), + EntityKind::Enderman => enderman::build_default(builder), + EntityKind::Endermite => endermite::build_default(builder), + EntityKind::Evoker => evoker::build_default(builder), + EntityKind::EvokerFangs => evoker_fangs::build_default(builder), + EntityKind::ExperienceOrb => experience_orb::build_default(builder), + EntityKind::EyeOfEnder => eye_of_ender::build_default(builder), + EntityKind::FallingBlock => falling_block::build_default(builder), + EntityKind::FireworkRocket => firework_rocket::build_default(builder), + EntityKind::Fox => fox::build_default(builder), + EntityKind::Ghast => ghast::build_default(builder), + EntityKind::Giant => giant::build_default(builder), + EntityKind::GlowItemFrame => glow_item_frame::build_default(builder), + EntityKind::GlowSquid => glow_squid::build_default(builder), + EntityKind::Goat => goat::build_default(builder), + EntityKind::Guardian => guardian::build_default(builder), + EntityKind::Hoglin => hoglin::build_default(builder), + EntityKind::Horse => horse::build_default(builder), + EntityKind::Husk => husk::build_default(builder), + EntityKind::Illusioner => illusioner::build_default(builder), + EntityKind::IronGolem => iron_golem::build_default(builder), + EntityKind::Item => item::build_default(builder), + EntityKind::ItemFrame => item_frame::build_default(builder), + EntityKind::Fireball => fireball::build_default(builder), + EntityKind::LeashKnot => leash_knot::build_default(builder), + EntityKind::LightningBolt => lightning_bolt::build_default(builder), + EntityKind::Llama => llama::build_default(builder), + EntityKind::LlamaSpit => llama_spit::build_default(builder), + EntityKind::MagmaCube => magma_cube::build_default(builder), + EntityKind::Marker => marker::build_default(builder), + EntityKind::Minecart => minecart::build_default(builder), + EntityKind::ChestMinecart => chest_minecart::build_default(builder), + EntityKind::CommandBlockMinecart => command_block_minecart::build_default(builder), + EntityKind::FurnaceMinecart => furnace_minecart::build_default(builder), + EntityKind::HopperMinecart => hopper_minecart::build_default(builder), + EntityKind::SpawnerMinecart => spawner_minecart::build_default(builder), + EntityKind::TntMinecart => tnt_minecart::build_default(builder), + EntityKind::Mule => mule::build_default(builder), + EntityKind::Mooshroom => mooshroom::build_default(builder), + EntityKind::Ocelot => ocelot::build_default(builder), + EntityKind::Painting => painting::build_default(builder), + EntityKind::Panda => panda::build_default(builder), + EntityKind::Parrot => parrot::build_default(builder), + EntityKind::Phantom => phantom::build_default(builder), + EntityKind::Pig => pig::build_default(builder), + EntityKind::Piglin => piglin::build_default(builder), + EntityKind::PiglinBrute => piglin_brute::build_default(builder), + EntityKind::Pillager => pillager::build_default(builder), + EntityKind::PolarBear => polar_bear::build_default(builder), + EntityKind::Tnt => tnt::build_default(builder), + EntityKind::Pufferfish => pufferfish::build_default(builder), + EntityKind::Rabbit => rabbit::build_default(builder), + EntityKind::Ravager => ravager::build_default(builder), + EntityKind::Salmon => salmon::build_default(builder), + EntityKind::Sheep => sheep::build_default(builder), + EntityKind::Shulker => shulker::build_default(builder), + EntityKind::ShulkerBullet => shulker_bullet::build_default(builder), + EntityKind::Silverfish => silverfish::build_default(builder), + EntityKind::Skeleton => skeleton::build_default(builder), + EntityKind::SkeletonHorse => skeleton_horse::build_default(builder), + EntityKind::Slime => slime::build_default(builder), + EntityKind::SmallFireball => small_fireball::build_default(builder), + EntityKind::SnowGolem => snow_golem::build_default(builder), + EntityKind::Snowball => snowball::build_default(builder), + EntityKind::SpectralArrow => spectral_arrow::build_default(builder), + EntityKind::Spider => spider::build_default(builder), + EntityKind::Squid => squid::build_default(builder), + EntityKind::Stray => stray::build_default(builder), + EntityKind::Strider => strider::build_default(builder), + EntityKind::Egg => egg::build_default(builder), + EntityKind::EnderPearl => ender_pearl::build_default(builder), + EntityKind::ExperienceBottle => experience_bottle::build_default(builder), + EntityKind::Potion => potion::build_default(builder), + EntityKind::Trident => trident::build_default(builder), + EntityKind::TraderLlama => trader_llama::build_default(builder), + EntityKind::TropicalFish => tropical_fish::build_default(builder), + EntityKind::Turtle => turtle::build_default(builder), + EntityKind::Vex => vex::build_default(builder), + EntityKind::Villager => villager::build_default(builder), + EntityKind::Vindicator => vindicator::build_default(builder), + EntityKind::WanderingTrader => wandering_trader::build_default(builder), + EntityKind::Witch => witch::build_default(builder), + EntityKind::Wither => wither::build_default(builder), + EntityKind::WitherSkeleton => wither_skeleton::build_default(builder), + EntityKind::WitherSkull => wither_skull::build_default(builder), + EntityKind::Wolf => wolf::build_default(builder), + EntityKind::Zoglin => zoglin::build_default(builder), + EntityKind::Zombie => zombie::build_default(builder), + EntityKind::ZombieHorse => zombie_horse::build_default(builder), + EntityKind::ZombieVillager => zombie_villager::build_default(builder), + EntityKind::ZombifiedPiglin => zombified_piglin::build_default(builder), + EntityKind::Player => player::build_default(builder), + EntityKind::FishingBobber => fishing_bobber::build_default(builder), } } diff --git a/feather/common/src/entities/area_effect_cloud.rs b/feather/common/src/entities/area_effect_cloud.rs index 974b31a69..f27d2aa89 100644 --- a/feather/common/src/entities/area_effect_cloud.rs +++ b/feather/common/src/entities/area_effect_cloud.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::AreaEffectCloud; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder diff --git a/feather/common/src/entities/armor_stand.rs b/feather/common/src/entities/armor_stand.rs index 95cdee704..74d492b12 100644 --- a/feather/common/src/entities/armor_stand.rs +++ b/feather/common/src/entities/armor_stand.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::ArmorStand; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(ArmorStand).add(EntityKind::ArmorStand); diff --git a/feather/common/src/entities/arrow.rs b/feather/common/src/entities/arrow.rs index 9c15209e5..707f3b4a5 100644 --- a/feather/common/src/entities/arrow.rs +++ b/feather/common/src/entities/arrow.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Arrow; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Arrow).add(EntityKind::Arrow); diff --git a/feather/common/src/entities/axolotl.rs b/feather/common/src/entities/axolotl.rs new file mode 100644 index 000000000..ad9543827 --- /dev/null +++ b/feather/common/src/entities/axolotl.rs @@ -0,0 +1,8 @@ +// This file is @generated. Please do not edit. +use base::EntityKind; +use ecs::EntityBuilder; +use quill_common::entities::Axolotl; +pub fn build_default(builder: &mut EntityBuilder) { + super::build_default(builder); + builder.add(Axolotl).add(EntityKind::Axolotl); +} diff --git a/feather/common/src/entities/bat.rs b/feather/common/src/entities/bat.rs index f222c3e21..d60d044ec 100644 --- a/feather/common/src/entities/bat.rs +++ b/feather/common/src/entities/bat.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Bat; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Bat).add(EntityKind::Bat); diff --git a/feather/common/src/entities/bee.rs b/feather/common/src/entities/bee.rs index d72385897..129887aba 100644 --- a/feather/common/src/entities/bee.rs +++ b/feather/common/src/entities/bee.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Bee; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Bee).add(EntityKind::Bee); diff --git a/feather/common/src/entities/blaze.rs b/feather/common/src/entities/blaze.rs index 8345ca50b..12465f425 100644 --- a/feather/common/src/entities/blaze.rs +++ b/feather/common/src/entities/blaze.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Blaze; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Blaze).add(EntityKind::Blaze); diff --git a/feather/common/src/entities/boat.rs b/feather/common/src/entities/boat.rs index 74798544b..73a0c7e50 100644 --- a/feather/common/src/entities/boat.rs +++ b/feather/common/src/entities/boat.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Boat; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Boat).add(EntityKind::Boat); diff --git a/feather/common/src/entities/cat.rs b/feather/common/src/entities/cat.rs index 0d046eb71..52d0557e8 100644 --- a/feather/common/src/entities/cat.rs +++ b/feather/common/src/entities/cat.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Cat; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Cat).add(EntityKind::Cat); diff --git a/feather/common/src/entities/cave_spider.rs b/feather/common/src/entities/cave_spider.rs index ef2f5079e..05ab1a4f7 100644 --- a/feather/common/src/entities/cave_spider.rs +++ b/feather/common/src/entities/cave_spider.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::CaveSpider; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(CaveSpider).add(EntityKind::CaveSpider); diff --git a/feather/common/src/entities/chest_minecart.rs b/feather/common/src/entities/chest_minecart.rs index 814cc3a15..9a62806c2 100644 --- a/feather/common/src/entities/chest_minecart.rs +++ b/feather/common/src/entities/chest_minecart.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::ChestMinecart; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(ChestMinecart).add(EntityKind::ChestMinecart); diff --git a/feather/common/src/entities/chicken.rs b/feather/common/src/entities/chicken.rs index acad9f090..0e86cc812 100644 --- a/feather/common/src/entities/chicken.rs +++ b/feather/common/src/entities/chicken.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Chicken; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Chicken).add(EntityKind::Chicken); diff --git a/feather/common/src/entities/cod.rs b/feather/common/src/entities/cod.rs index f00ab6ced..23e5aa11d 100644 --- a/feather/common/src/entities/cod.rs +++ b/feather/common/src/entities/cod.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Cod; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Cod).add(EntityKind::Cod); diff --git a/feather/common/src/entities/command_block_minecart.rs b/feather/common/src/entities/command_block_minecart.rs index 7ee4cf12d..f06a281ab 100644 --- a/feather/common/src/entities/command_block_minecart.rs +++ b/feather/common/src/entities/command_block_minecart.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::CommandBlockMinecart; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder diff --git a/feather/common/src/entities/cow.rs b/feather/common/src/entities/cow.rs index 0819836c1..c8ac05449 100644 --- a/feather/common/src/entities/cow.rs +++ b/feather/common/src/entities/cow.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Cow; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Cow).add(EntityKind::Cow); diff --git a/feather/common/src/entities/creeper.rs b/feather/common/src/entities/creeper.rs index 31c416ef2..5cfd3d481 100644 --- a/feather/common/src/entities/creeper.rs +++ b/feather/common/src/entities/creeper.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Creeper; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Creeper).add(EntityKind::Creeper); diff --git a/feather/common/src/entities/dolphin.rs b/feather/common/src/entities/dolphin.rs index ace8dc2d0..385d16dcf 100644 --- a/feather/common/src/entities/dolphin.rs +++ b/feather/common/src/entities/dolphin.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Dolphin; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Dolphin).add(EntityKind::Dolphin); diff --git a/feather/common/src/entities/donkey.rs b/feather/common/src/entities/donkey.rs index e58b5cd26..af28a70a7 100644 --- a/feather/common/src/entities/donkey.rs +++ b/feather/common/src/entities/donkey.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Donkey; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Donkey).add(EntityKind::Donkey); diff --git a/feather/common/src/entities/dragon_fireball.rs b/feather/common/src/entities/dragon_fireball.rs index 63c4121c7..8ed36e17d 100644 --- a/feather/common/src/entities/dragon_fireball.rs +++ b/feather/common/src/entities/dragon_fireball.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::DragonFireball; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(DragonFireball).add(EntityKind::DragonFireball); diff --git a/feather/common/src/entities/drowned.rs b/feather/common/src/entities/drowned.rs index c91618ce1..b9206c271 100644 --- a/feather/common/src/entities/drowned.rs +++ b/feather/common/src/entities/drowned.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Drowned; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Drowned).add(EntityKind::Drowned); diff --git a/feather/common/src/entities/egg.rs b/feather/common/src/entities/egg.rs index f5ae44457..bdaf51da4 100644 --- a/feather/common/src/entities/egg.rs +++ b/feather/common/src/entities/egg.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Egg; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Egg).add(EntityKind::Egg); diff --git a/feather/common/src/entities/elder_guardian.rs b/feather/common/src/entities/elder_guardian.rs index b5a642bc9..f6e8aee98 100644 --- a/feather/common/src/entities/elder_guardian.rs +++ b/feather/common/src/entities/elder_guardian.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::ElderGuardian; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(ElderGuardian).add(EntityKind::ElderGuardian); diff --git a/feather/common/src/entities/end_crystal.rs b/feather/common/src/entities/end_crystal.rs index 84849f55b..112433d15 100644 --- a/feather/common/src/entities/end_crystal.rs +++ b/feather/common/src/entities/end_crystal.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::EndCrystal; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(EndCrystal).add(EntityKind::EndCrystal); diff --git a/feather/common/src/entities/ender_dragon.rs b/feather/common/src/entities/ender_dragon.rs index ef6680a7c..3106d7102 100644 --- a/feather/common/src/entities/ender_dragon.rs +++ b/feather/common/src/entities/ender_dragon.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::EnderDragon; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(EnderDragon).add(EntityKind::EnderDragon); diff --git a/feather/common/src/entities/ender_pearl.rs b/feather/common/src/entities/ender_pearl.rs index ab1a2e7d2..061398358 100644 --- a/feather/common/src/entities/ender_pearl.rs +++ b/feather/common/src/entities/ender_pearl.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::EnderPearl; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(EnderPearl).add(EntityKind::EnderPearl); diff --git a/feather/common/src/entities/enderman.rs b/feather/common/src/entities/enderman.rs index 833c752b9..3452b53e6 100644 --- a/feather/common/src/entities/enderman.rs +++ b/feather/common/src/entities/enderman.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Enderman; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Enderman).add(EntityKind::Enderman); diff --git a/feather/common/src/entities/endermite.rs b/feather/common/src/entities/endermite.rs index 1676d2014..1eccd4839 100644 --- a/feather/common/src/entities/endermite.rs +++ b/feather/common/src/entities/endermite.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Endermite; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Endermite).add(EntityKind::Endermite); diff --git a/feather/common/src/entities/evoker.rs b/feather/common/src/entities/evoker.rs index ee2f9d38f..657843d02 100644 --- a/feather/common/src/entities/evoker.rs +++ b/feather/common/src/entities/evoker.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Evoker; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Evoker).add(EntityKind::Evoker); diff --git a/feather/common/src/entities/evoker_fangs.rs b/feather/common/src/entities/evoker_fangs.rs index 52a94c63b..3bbba21fb 100644 --- a/feather/common/src/entities/evoker_fangs.rs +++ b/feather/common/src/entities/evoker_fangs.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::EvokerFangs; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(EvokerFangs).add(EntityKind::EvokerFangs); diff --git a/feather/common/src/entities/experience_bottle.rs b/feather/common/src/entities/experience_bottle.rs index eb984d54f..3648b8f4f 100644 --- a/feather/common/src/entities/experience_bottle.rs +++ b/feather/common/src/entities/experience_bottle.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::ExperienceBottle; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder diff --git a/feather/common/src/entities/experience_orb.rs b/feather/common/src/entities/experience_orb.rs index 0c696cfb6..5bdf5d150 100644 --- a/feather/common/src/entities/experience_orb.rs +++ b/feather/common/src/entities/experience_orb.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::ExperienceOrb; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(ExperienceOrb).add(EntityKind::ExperienceOrb); diff --git a/feather/common/src/entities/eye_of_ender.rs b/feather/common/src/entities/eye_of_ender.rs index 6d6a9eb99..0cdf78ca4 100644 --- a/feather/common/src/entities/eye_of_ender.rs +++ b/feather/common/src/entities/eye_of_ender.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::EyeOfEnder; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(EyeOfEnder).add(EntityKind::EyeOfEnder); diff --git a/feather/common/src/entities/falling_block.rs b/feather/common/src/entities/falling_block.rs index 64eba2aa9..6bec6ac40 100644 --- a/feather/common/src/entities/falling_block.rs +++ b/feather/common/src/entities/falling_block.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::FallingBlock; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(FallingBlock).add(EntityKind::FallingBlock); diff --git a/feather/common/src/entities/fireball.rs b/feather/common/src/entities/fireball.rs index 232684802..b05d56fcc 100644 --- a/feather/common/src/entities/fireball.rs +++ b/feather/common/src/entities/fireball.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Fireball; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Fireball).add(EntityKind::Fireball); diff --git a/feather/common/src/entities/firework_rocket.rs b/feather/common/src/entities/firework_rocket.rs index c3992dce8..371a337aa 100644 --- a/feather/common/src/entities/firework_rocket.rs +++ b/feather/common/src/entities/firework_rocket.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::FireworkRocket; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(FireworkRocket).add(EntityKind::FireworkRocket); diff --git a/feather/common/src/entities/fishing_bobber.rs b/feather/common/src/entities/fishing_bobber.rs index 036d7afcc..5f59f07bb 100644 --- a/feather/common/src/entities/fishing_bobber.rs +++ b/feather/common/src/entities/fishing_bobber.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::FishingBobber; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(FishingBobber).add(EntityKind::FishingBobber); diff --git a/feather/common/src/entities/fox.rs b/feather/common/src/entities/fox.rs index 2267ab1e2..4da43f637 100644 --- a/feather/common/src/entities/fox.rs +++ b/feather/common/src/entities/fox.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Fox; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Fox).add(EntityKind::Fox); diff --git a/feather/common/src/entities/furnace_minecart.rs b/feather/common/src/entities/furnace_minecart.rs index d56fa0efc..77b607804 100644 --- a/feather/common/src/entities/furnace_minecart.rs +++ b/feather/common/src/entities/furnace_minecart.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::FurnaceMinecart; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder diff --git a/feather/common/src/entities/ghast.rs b/feather/common/src/entities/ghast.rs index 687175afa..fb88475b0 100644 --- a/feather/common/src/entities/ghast.rs +++ b/feather/common/src/entities/ghast.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Ghast; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Ghast).add(EntityKind::Ghast); diff --git a/feather/common/src/entities/giant.rs b/feather/common/src/entities/giant.rs index 11290d1d1..f28f39471 100644 --- a/feather/common/src/entities/giant.rs +++ b/feather/common/src/entities/giant.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Giant; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Giant).add(EntityKind::Giant); diff --git a/feather/common/src/entities/glow_item_frame.rs b/feather/common/src/entities/glow_item_frame.rs new file mode 100644 index 000000000..287f156c1 --- /dev/null +++ b/feather/common/src/entities/glow_item_frame.rs @@ -0,0 +1,8 @@ +// This file is @generated. Please do not edit. +use base::EntityKind; +use ecs::EntityBuilder; +use quill_common::entities::GlowItemFrame; +pub fn build_default(builder: &mut EntityBuilder) { + super::build_default(builder); + builder.add(GlowItemFrame).add(EntityKind::GlowItemFrame); +} diff --git a/feather/common/src/entities/glow_squid.rs b/feather/common/src/entities/glow_squid.rs new file mode 100644 index 000000000..0f1e4f37e --- /dev/null +++ b/feather/common/src/entities/glow_squid.rs @@ -0,0 +1,8 @@ +// This file is @generated. Please do not edit. +use base::EntityKind; +use ecs::EntityBuilder; +use quill_common::entities::GlowSquid; +pub fn build_default(builder: &mut EntityBuilder) { + super::build_default(builder); + builder.add(GlowSquid).add(EntityKind::GlowSquid); +} diff --git a/feather/common/src/entities/goat.rs b/feather/common/src/entities/goat.rs new file mode 100644 index 000000000..974f0980d --- /dev/null +++ b/feather/common/src/entities/goat.rs @@ -0,0 +1,8 @@ +// This file is @generated. Please do not edit. +use base::EntityKind; +use ecs::EntityBuilder; +use quill_common::entities::Goat; +pub fn build_default(builder: &mut EntityBuilder) { + super::build_default(builder); + builder.add(Goat).add(EntityKind::Goat); +} diff --git a/feather/common/src/entities/guardian.rs b/feather/common/src/entities/guardian.rs index 04289c4bb..19dfb0f93 100644 --- a/feather/common/src/entities/guardian.rs +++ b/feather/common/src/entities/guardian.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Guardian; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Guardian).add(EntityKind::Guardian); diff --git a/feather/common/src/entities/hoglin.rs b/feather/common/src/entities/hoglin.rs index 1be5d1dad..3832de94c 100644 --- a/feather/common/src/entities/hoglin.rs +++ b/feather/common/src/entities/hoglin.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Hoglin; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Hoglin).add(EntityKind::Hoglin); diff --git a/feather/common/src/entities/hopper_minecart.rs b/feather/common/src/entities/hopper_minecart.rs index 8cf8455fc..367def4da 100644 --- a/feather/common/src/entities/hopper_minecart.rs +++ b/feather/common/src/entities/hopper_minecart.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::HopperMinecart; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(HopperMinecart).add(EntityKind::HopperMinecart); diff --git a/feather/common/src/entities/horse.rs b/feather/common/src/entities/horse.rs index 25dc48d44..269ba3559 100644 --- a/feather/common/src/entities/horse.rs +++ b/feather/common/src/entities/horse.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Horse; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Horse).add(EntityKind::Horse); diff --git a/feather/common/src/entities/husk.rs b/feather/common/src/entities/husk.rs index dc276d868..48772d3b3 100644 --- a/feather/common/src/entities/husk.rs +++ b/feather/common/src/entities/husk.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Husk; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Husk).add(EntityKind::Husk); diff --git a/feather/common/src/entities/illusioner.rs b/feather/common/src/entities/illusioner.rs index f188f09fb..bff81c495 100644 --- a/feather/common/src/entities/illusioner.rs +++ b/feather/common/src/entities/illusioner.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Illusioner; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Illusioner).add(EntityKind::Illusioner); diff --git a/feather/common/src/entities/iron_golem.rs b/feather/common/src/entities/iron_golem.rs index ca0c91c9b..180307e04 100644 --- a/feather/common/src/entities/iron_golem.rs +++ b/feather/common/src/entities/iron_golem.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::IronGolem; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(IronGolem).add(EntityKind::IronGolem); diff --git a/feather/common/src/entities/item.rs b/feather/common/src/entities/item.rs index 7fe8f4b44..c9aa0e732 100644 --- a/feather/common/src/entities/item.rs +++ b/feather/common/src/entities/item.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Item; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Item).add(EntityKind::Item); diff --git a/feather/common/src/entities/item_frame.rs b/feather/common/src/entities/item_frame.rs index cbcac743f..642e30e6c 100644 --- a/feather/common/src/entities/item_frame.rs +++ b/feather/common/src/entities/item_frame.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::ItemFrame; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(ItemFrame).add(EntityKind::ItemFrame); diff --git a/feather/common/src/entities/leash_knot.rs b/feather/common/src/entities/leash_knot.rs index 554df1092..d27eb455d 100644 --- a/feather/common/src/entities/leash_knot.rs +++ b/feather/common/src/entities/leash_knot.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::LeashKnot; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(LeashKnot).add(EntityKind::LeashKnot); diff --git a/feather/common/src/entities/lightning_bolt.rs b/feather/common/src/entities/lightning_bolt.rs index 6127c561d..94de0bade 100644 --- a/feather/common/src/entities/lightning_bolt.rs +++ b/feather/common/src/entities/lightning_bolt.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::LightningBolt; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(LightningBolt).add(EntityKind::LightningBolt); diff --git a/feather/common/src/entities/llama.rs b/feather/common/src/entities/llama.rs index 5929eed9d..0531c5f78 100644 --- a/feather/common/src/entities/llama.rs +++ b/feather/common/src/entities/llama.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Llama; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Llama).add(EntityKind::Llama); diff --git a/feather/common/src/entities/llama_spit.rs b/feather/common/src/entities/llama_spit.rs index 562a3a8be..28f452730 100644 --- a/feather/common/src/entities/llama_spit.rs +++ b/feather/common/src/entities/llama_spit.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::LlamaSpit; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(LlamaSpit).add(EntityKind::LlamaSpit); diff --git a/feather/common/src/entities/magma_cube.rs b/feather/common/src/entities/magma_cube.rs index 61831dab9..5603ae769 100644 --- a/feather/common/src/entities/magma_cube.rs +++ b/feather/common/src/entities/magma_cube.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::MagmaCube; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(MagmaCube).add(EntityKind::MagmaCube); diff --git a/feather/common/src/entities/marker.rs b/feather/common/src/entities/marker.rs new file mode 100644 index 000000000..61349a7c0 --- /dev/null +++ b/feather/common/src/entities/marker.rs @@ -0,0 +1,8 @@ +// This file is @generated. Please do not edit. +use base::EntityKind; +use ecs::EntityBuilder; +use quill_common::entities::Marker; +pub fn build_default(builder: &mut EntityBuilder) { + super::build_default(builder); + builder.add(Marker).add(EntityKind::Marker); +} diff --git a/feather/common/src/entities/minecart.rs b/feather/common/src/entities/minecart.rs index f28ed8687..68ec63ba0 100644 --- a/feather/common/src/entities/minecart.rs +++ b/feather/common/src/entities/minecart.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Minecart; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Minecart).add(EntityKind::Minecart); diff --git a/feather/common/src/entities/mooshroom.rs b/feather/common/src/entities/mooshroom.rs index 984f2c913..a08a80424 100644 --- a/feather/common/src/entities/mooshroom.rs +++ b/feather/common/src/entities/mooshroom.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Mooshroom; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Mooshroom).add(EntityKind::Mooshroom); diff --git a/feather/common/src/entities/mule.rs b/feather/common/src/entities/mule.rs index 342387ebc..48447f699 100644 --- a/feather/common/src/entities/mule.rs +++ b/feather/common/src/entities/mule.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Mule; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Mule).add(EntityKind::Mule); diff --git a/feather/common/src/entities/ocelot.rs b/feather/common/src/entities/ocelot.rs index 0e1d4c528..f5a0f0bd2 100644 --- a/feather/common/src/entities/ocelot.rs +++ b/feather/common/src/entities/ocelot.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Ocelot; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Ocelot).add(EntityKind::Ocelot); diff --git a/feather/common/src/entities/painting.rs b/feather/common/src/entities/painting.rs index 1eaaf6117..4e830f031 100644 --- a/feather/common/src/entities/painting.rs +++ b/feather/common/src/entities/painting.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Painting; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Painting).add(EntityKind::Painting); diff --git a/feather/common/src/entities/panda.rs b/feather/common/src/entities/panda.rs index c63b7e116..e76790072 100644 --- a/feather/common/src/entities/panda.rs +++ b/feather/common/src/entities/panda.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Panda; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Panda).add(EntityKind::Panda); diff --git a/feather/common/src/entities/parrot.rs b/feather/common/src/entities/parrot.rs index 919865d45..de2311e6c 100644 --- a/feather/common/src/entities/parrot.rs +++ b/feather/common/src/entities/parrot.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Parrot; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Parrot).add(EntityKind::Parrot); diff --git a/feather/common/src/entities/phantom.rs b/feather/common/src/entities/phantom.rs index 4339412d7..6ea442d6c 100644 --- a/feather/common/src/entities/phantom.rs +++ b/feather/common/src/entities/phantom.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Phantom; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Phantom).add(EntityKind::Phantom); diff --git a/feather/common/src/entities/pig.rs b/feather/common/src/entities/pig.rs index 210cf2c0a..2aff32e5c 100644 --- a/feather/common/src/entities/pig.rs +++ b/feather/common/src/entities/pig.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Pig; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Pig).add(EntityKind::Pig); diff --git a/feather/common/src/entities/piglin.rs b/feather/common/src/entities/piglin.rs index 3c759c2e5..19d88500e 100644 --- a/feather/common/src/entities/piglin.rs +++ b/feather/common/src/entities/piglin.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Piglin; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Piglin).add(EntityKind::Piglin); diff --git a/feather/common/src/entities/piglin_brute.rs b/feather/common/src/entities/piglin_brute.rs index b9d371464..ae9252e9f 100644 --- a/feather/common/src/entities/piglin_brute.rs +++ b/feather/common/src/entities/piglin_brute.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::PiglinBrute; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(PiglinBrute).add(EntityKind::PiglinBrute); diff --git a/feather/common/src/entities/pillager.rs b/feather/common/src/entities/pillager.rs index 3e76f800b..bbb0e0e99 100644 --- a/feather/common/src/entities/pillager.rs +++ b/feather/common/src/entities/pillager.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Pillager; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Pillager).add(EntityKind::Pillager); diff --git a/feather/common/src/entities/polar_bear.rs b/feather/common/src/entities/polar_bear.rs index 532bf6791..28927234c 100644 --- a/feather/common/src/entities/polar_bear.rs +++ b/feather/common/src/entities/polar_bear.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::PolarBear; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(PolarBear).add(EntityKind::PolarBear); diff --git a/feather/common/src/entities/potion.rs b/feather/common/src/entities/potion.rs index cccf07566..adc6fc3a5 100644 --- a/feather/common/src/entities/potion.rs +++ b/feather/common/src/entities/potion.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Potion; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Potion).add(EntityKind::Potion); diff --git a/feather/common/src/entities/pufferfish.rs b/feather/common/src/entities/pufferfish.rs index 65c67a85a..fa4870325 100644 --- a/feather/common/src/entities/pufferfish.rs +++ b/feather/common/src/entities/pufferfish.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Pufferfish; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Pufferfish).add(EntityKind::Pufferfish); diff --git a/feather/common/src/entities/rabbit.rs b/feather/common/src/entities/rabbit.rs index 4b2582fb0..61e59075e 100644 --- a/feather/common/src/entities/rabbit.rs +++ b/feather/common/src/entities/rabbit.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Rabbit; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Rabbit).add(EntityKind::Rabbit); diff --git a/feather/common/src/entities/ravager.rs b/feather/common/src/entities/ravager.rs index e0d574c73..9b57cb3da 100644 --- a/feather/common/src/entities/ravager.rs +++ b/feather/common/src/entities/ravager.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Ravager; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Ravager).add(EntityKind::Ravager); diff --git a/feather/common/src/entities/salmon.rs b/feather/common/src/entities/salmon.rs index 178ef9d21..433a0611c 100644 --- a/feather/common/src/entities/salmon.rs +++ b/feather/common/src/entities/salmon.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Salmon; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Salmon).add(EntityKind::Salmon); diff --git a/feather/common/src/entities/sheep.rs b/feather/common/src/entities/sheep.rs index d0ca5449d..b2c1ee6aa 100644 --- a/feather/common/src/entities/sheep.rs +++ b/feather/common/src/entities/sheep.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Sheep; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Sheep).add(EntityKind::Sheep); diff --git a/feather/common/src/entities/shulker.rs b/feather/common/src/entities/shulker.rs index 9643d8e29..94e3bc73c 100644 --- a/feather/common/src/entities/shulker.rs +++ b/feather/common/src/entities/shulker.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Shulker; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Shulker).add(EntityKind::Shulker); diff --git a/feather/common/src/entities/shulker_bullet.rs b/feather/common/src/entities/shulker_bullet.rs index 796b272b2..72aa32481 100644 --- a/feather/common/src/entities/shulker_bullet.rs +++ b/feather/common/src/entities/shulker_bullet.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::ShulkerBullet; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(ShulkerBullet).add(EntityKind::ShulkerBullet); diff --git a/feather/common/src/entities/silverfish.rs b/feather/common/src/entities/silverfish.rs index ab6e939ab..ac8da7d09 100644 --- a/feather/common/src/entities/silverfish.rs +++ b/feather/common/src/entities/silverfish.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Silverfish; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Silverfish).add(EntityKind::Silverfish); diff --git a/feather/common/src/entities/skeleton.rs b/feather/common/src/entities/skeleton.rs index 6f72c12b3..21c3543f2 100644 --- a/feather/common/src/entities/skeleton.rs +++ b/feather/common/src/entities/skeleton.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Skeleton; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Skeleton).add(EntityKind::Skeleton); diff --git a/feather/common/src/entities/skeleton_horse.rs b/feather/common/src/entities/skeleton_horse.rs index cf8a2c96e..b3eb8ff90 100644 --- a/feather/common/src/entities/skeleton_horse.rs +++ b/feather/common/src/entities/skeleton_horse.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::SkeletonHorse; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(SkeletonHorse).add(EntityKind::SkeletonHorse); diff --git a/feather/common/src/entities/slime.rs b/feather/common/src/entities/slime.rs index 809221504..cb557b831 100644 --- a/feather/common/src/entities/slime.rs +++ b/feather/common/src/entities/slime.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Slime; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Slime).add(EntityKind::Slime); diff --git a/feather/common/src/entities/small_fireball.rs b/feather/common/src/entities/small_fireball.rs index f3eac8f9a..cfebe277f 100644 --- a/feather/common/src/entities/small_fireball.rs +++ b/feather/common/src/entities/small_fireball.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::SmallFireball; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(SmallFireball).add(EntityKind::SmallFireball); diff --git a/feather/common/src/entities/snow_golem.rs b/feather/common/src/entities/snow_golem.rs index 01193a73e..642b5e1e4 100644 --- a/feather/common/src/entities/snow_golem.rs +++ b/feather/common/src/entities/snow_golem.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::SnowGolem; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(SnowGolem).add(EntityKind::SnowGolem); diff --git a/feather/common/src/entities/snowball.rs b/feather/common/src/entities/snowball.rs index f5bafff66..5dc1c70bc 100644 --- a/feather/common/src/entities/snowball.rs +++ b/feather/common/src/entities/snowball.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Snowball; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Snowball).add(EntityKind::Snowball); diff --git a/feather/common/src/entities/spawner_minecart.rs b/feather/common/src/entities/spawner_minecart.rs index 550ccde67..3cd406523 100644 --- a/feather/common/src/entities/spawner_minecart.rs +++ b/feather/common/src/entities/spawner_minecart.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::SpawnerMinecart; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder diff --git a/feather/common/src/entities/spectral_arrow.rs b/feather/common/src/entities/spectral_arrow.rs index adc604636..3c3658dd0 100644 --- a/feather/common/src/entities/spectral_arrow.rs +++ b/feather/common/src/entities/spectral_arrow.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::SpectralArrow; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(SpectralArrow).add(EntityKind::SpectralArrow); diff --git a/feather/common/src/entities/spider.rs b/feather/common/src/entities/spider.rs index 9f1a6c688..e42f980cc 100644 --- a/feather/common/src/entities/spider.rs +++ b/feather/common/src/entities/spider.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Spider; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Spider).add(EntityKind::Spider); diff --git a/feather/common/src/entities/squid.rs b/feather/common/src/entities/squid.rs index 8743b62a1..12c3e48ef 100644 --- a/feather/common/src/entities/squid.rs +++ b/feather/common/src/entities/squid.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Squid; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Squid).add(EntityKind::Squid); diff --git a/feather/common/src/entities/stray.rs b/feather/common/src/entities/stray.rs index dd38847aa..090f01eb8 100644 --- a/feather/common/src/entities/stray.rs +++ b/feather/common/src/entities/stray.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Stray; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Stray).add(EntityKind::Stray); diff --git a/feather/common/src/entities/strider.rs b/feather/common/src/entities/strider.rs index b94f79706..ec3111123 100644 --- a/feather/common/src/entities/strider.rs +++ b/feather/common/src/entities/strider.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Strider; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Strider).add(EntityKind::Strider); diff --git a/feather/common/src/entities/tnt.rs b/feather/common/src/entities/tnt.rs index 8adefb369..65b50d2e7 100644 --- a/feather/common/src/entities/tnt.rs +++ b/feather/common/src/entities/tnt.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Tnt; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Tnt).add(EntityKind::Tnt); diff --git a/feather/common/src/entities/tnt_minecart.rs b/feather/common/src/entities/tnt_minecart.rs index 77b2bca36..f4586388d 100644 --- a/feather/common/src/entities/tnt_minecart.rs +++ b/feather/common/src/entities/tnt_minecart.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::TntMinecart; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(TntMinecart).add(EntityKind::TntMinecart); diff --git a/feather/common/src/entities/trader_llama.rs b/feather/common/src/entities/trader_llama.rs index 58e0310a4..8f6d5f5d6 100644 --- a/feather/common/src/entities/trader_llama.rs +++ b/feather/common/src/entities/trader_llama.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::TraderLlama; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(TraderLlama).add(EntityKind::TraderLlama); diff --git a/feather/common/src/entities/trident.rs b/feather/common/src/entities/trident.rs index b5a9a2bfa..1d823a453 100644 --- a/feather/common/src/entities/trident.rs +++ b/feather/common/src/entities/trident.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Trident; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Trident).add(EntityKind::Trident); diff --git a/feather/common/src/entities/tropical_fish.rs b/feather/common/src/entities/tropical_fish.rs index 381e50aa0..5d1b05a5a 100644 --- a/feather/common/src/entities/tropical_fish.rs +++ b/feather/common/src/entities/tropical_fish.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::TropicalFish; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(TropicalFish).add(EntityKind::TropicalFish); diff --git a/feather/common/src/entities/turtle.rs b/feather/common/src/entities/turtle.rs index 16c776443..304b52b09 100644 --- a/feather/common/src/entities/turtle.rs +++ b/feather/common/src/entities/turtle.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Turtle; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Turtle).add(EntityKind::Turtle); diff --git a/feather/common/src/entities/vex.rs b/feather/common/src/entities/vex.rs index 3a92f1cdf..1d7834a39 100644 --- a/feather/common/src/entities/vex.rs +++ b/feather/common/src/entities/vex.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Vex; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Vex).add(EntityKind::Vex); diff --git a/feather/common/src/entities/villager.rs b/feather/common/src/entities/villager.rs index 5db272b24..e815d6568 100644 --- a/feather/common/src/entities/villager.rs +++ b/feather/common/src/entities/villager.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Villager; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Villager).add(EntityKind::Villager); diff --git a/feather/common/src/entities/vindicator.rs b/feather/common/src/entities/vindicator.rs index fff0ea097..ff9e36930 100644 --- a/feather/common/src/entities/vindicator.rs +++ b/feather/common/src/entities/vindicator.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Vindicator; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Vindicator).add(EntityKind::Vindicator); diff --git a/feather/common/src/entities/wandering_trader.rs b/feather/common/src/entities/wandering_trader.rs index db57b88c1..b5a8abb51 100644 --- a/feather/common/src/entities/wandering_trader.rs +++ b/feather/common/src/entities/wandering_trader.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::WanderingTrader; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder diff --git a/feather/common/src/entities/witch.rs b/feather/common/src/entities/witch.rs index a3161895a..d7a1d28f8 100644 --- a/feather/common/src/entities/witch.rs +++ b/feather/common/src/entities/witch.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Witch; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Witch).add(EntityKind::Witch); diff --git a/feather/common/src/entities/wither.rs b/feather/common/src/entities/wither.rs index 02fa1fe78..5c65deced 100644 --- a/feather/common/src/entities/wither.rs +++ b/feather/common/src/entities/wither.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Wither; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Wither).add(EntityKind::Wither); diff --git a/feather/common/src/entities/wither_skeleton.rs b/feather/common/src/entities/wither_skeleton.rs index 085b9e280..162df92f6 100644 --- a/feather/common/src/entities/wither_skeleton.rs +++ b/feather/common/src/entities/wither_skeleton.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::WitherSkeleton; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(WitherSkeleton).add(EntityKind::WitherSkeleton); diff --git a/feather/common/src/entities/wither_skull.rs b/feather/common/src/entities/wither_skull.rs index 59b871555..c659f29a2 100644 --- a/feather/common/src/entities/wither_skull.rs +++ b/feather/common/src/entities/wither_skull.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::WitherSkull; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(WitherSkull).add(EntityKind::WitherSkull); diff --git a/feather/common/src/entities/wolf.rs b/feather/common/src/entities/wolf.rs index cc07cb7db..910a9bc72 100644 --- a/feather/common/src/entities/wolf.rs +++ b/feather/common/src/entities/wolf.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Wolf; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Wolf).add(EntityKind::Wolf); diff --git a/feather/common/src/entities/zoglin.rs b/feather/common/src/entities/zoglin.rs index 79d6ab4e5..eee29ae88 100644 --- a/feather/common/src/entities/zoglin.rs +++ b/feather/common/src/entities/zoglin.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Zoglin; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Zoglin).add(EntityKind::Zoglin); diff --git a/feather/common/src/entities/zombie.rs b/feather/common/src/entities/zombie.rs index eeb456878..ea585d10f 100644 --- a/feather/common/src/entities/zombie.rs +++ b/feather/common/src/entities/zombie.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::Zombie; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(Zombie).add(EntityKind::Zombie); diff --git a/feather/common/src/entities/zombie_horse.rs b/feather/common/src/entities/zombie_horse.rs index 44a7e0919..11e2aead8 100644 --- a/feather/common/src/entities/zombie_horse.rs +++ b/feather/common/src/entities/zombie_horse.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::ZombieHorse; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(ZombieHorse).add(EntityKind::ZombieHorse); diff --git a/feather/common/src/entities/zombie_villager.rs b/feather/common/src/entities/zombie_villager.rs index 29ae9d02c..932886f5f 100644 --- a/feather/common/src/entities/zombie_villager.rs +++ b/feather/common/src/entities/zombie_villager.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::ZombieVillager; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder.add(ZombieVillager).add(EntityKind::ZombieVillager); diff --git a/feather/common/src/entities/zombified_piglin.rs b/feather/common/src/entities/zombified_piglin.rs index 83b300f7b..efb5dfed7 100644 --- a/feather/common/src/entities/zombified_piglin.rs +++ b/feather/common/src/entities/zombified_piglin.rs @@ -1,7 +1,7 @@ +// This file is @generated. Please do not edit. use base::EntityKind; use ecs::EntityBuilder; use quill_common::entities::ZombifiedPiglin; - pub fn build_default(builder: &mut EntityBuilder) { super::build_default(builder); builder diff --git a/feather/common/src/entity/player.rs b/feather/common/src/entity/player.rs deleted file mode 100644 index 605fa6769..000000000 --- a/feather/common/src/entity/player.rs +++ /dev/null @@ -1,10 +0,0 @@ -use base::EntityKind; -use ecs::EntityBuilder; - -/// Marker component. Indicates that an entity is a player. -pub struct Player; - -/// Fills an `EntityBuilder` with components for a player. -pub fn build(builder: &mut EntityBuilder) -> &mut EntityBuilder { - builder.add(Player).add(EntityKind::Player) -} diff --git a/feather/common/src/events.rs b/feather/common/src/events.rs index 2426c2896..0937d5682 100644 --- a/feather/common/src/events.rs +++ b/feather/common/src/events.rs @@ -7,6 +7,7 @@ mod plugin_message; pub use block_change::BlockChangeEvent; pub use plugin_message::PluginMessageEvent; +use quill_common::components::{EntityDimension, EntityWorld}; /// Triggered when a player joins the `Game`. #[derive(Debug)] @@ -23,15 +24,25 @@ pub struct ViewUpdateEvent { pub new_chunks: Vec, /// Chunks that are in `old_view` but not in `new_view` pub old_chunks: Vec, + + pub new_world: EntityWorld, + pub old_world: EntityWorld, + + pub new_dimension: EntityDimension, + pub old_dimension: EntityDimension, } impl ViewUpdateEvent { - pub fn new(old_view: View, new_view: View) -> Self { + pub fn new(old_view: &View, new_view: &View) -> Self { let mut this = Self { - old_view, - new_view, - new_chunks: new_view.difference(old_view).collect(), - old_chunks: old_view.difference(new_view).collect(), + old_view: old_view.clone(), + new_view: new_view.clone(), + new_chunks: new_view.difference(old_view), + old_chunks: old_view.difference(new_view), + new_world: new_view.world(), + old_world: old_view.world(), + new_dimension: new_view.dimension().clone(), + old_dimension: old_view.dimension().clone(), }; this.new_chunks .sort_unstable_by_key(|chunk| chunk.distance_squared_to(new_view.center())); @@ -55,6 +66,7 @@ pub struct ChunkCrossEvent { pub struct ChunkLoadEvent { pub position: ChunkPosition, pub chunk: ChunkHandle, + pub dimension: String, } /// Triggered when an error occurs while loading a chunk. @@ -73,3 +85,7 @@ pub struct EntityRemoveEvent; /// Triggered when an entity is added into the world. #[derive(Debug)] pub struct EntityCreateEvent; + +/// Triggered when a player joins, changes dimension and respawns after death +#[derive(Debug)] +pub struct PlayerRespawnEvent; diff --git a/feather/common/src/events/block_change.rs b/feather/common/src/events/block_change.rs index bb92ba52d..7872acf60 100644 --- a/feather/common/src/events/block_change.rs +++ b/feather/common/src/events/block_change.rs @@ -5,30 +5,41 @@ use base::{ BlockPosition, ChunkPosition, ValidBlockPosition, }; use itertools::Either; +use quill_common::components::{EntityDimension, EntityWorld}; /// Event triggered when one or more blocks are changed. /// /// This event can efficiently store bulk block updates -/// using a variety of different representations. Cloning -/// is cheap as it is, at worst, cloning an `Arc`. +/// using a variety of different representations. #[derive(Debug, Clone)] pub struct BlockChangeEvent { changes: BlockChanges, + world: EntityWorld, + dimension: EntityDimension, } impl BlockChangeEvent { /// Creates an event affecting a single block. - pub fn single(pos: ValidBlockPosition) -> Self { + pub fn single(pos: ValidBlockPosition, world: EntityWorld, dimension: EntityDimension) -> Self { Self { changes: BlockChanges::Single { pos }, + world, + dimension: dimension.into(), } } /// Creates an event corresponding to a block update /// that fills an entire chunk section with the same block. - pub fn fill_chunk_section(chunk: ChunkPosition, section: u32) -> Self { + pub fn fill_chunk_section( + chunk: ChunkPosition, + section: u32, + world: EntityWorld, + dimension: EntityDimension, + ) -> Self { Self { changes: BlockChanges::FillChunkSection { chunk, section }, + world, + dimension, } } @@ -67,6 +78,14 @@ impl BlockChangeEvent { } } } + + pub fn dimension(&self) -> &EntityDimension { + &self.dimension + } + + pub fn world(&self) -> EntityWorld { + self.world + } } fn iter_section_blocks( @@ -96,15 +115,20 @@ enum BlockChanges { #[cfg(test)] mod tests { + use crate::base::chunk::SECTION_VOLUME; use ahash::AHashSet; - use base::chunk::SECTION_VOLUME; + use ecs::Entity; use super::*; #[test] fn create_single() { let pos = BlockPosition::new(5, 64, 9).try_into().unwrap(); - let event = BlockChangeEvent::single(pos); + let event = BlockChangeEvent::single( + pos, + Entity::new(0), + EntityDimension("minecraft:overworld".to_string()), + ); assert_eq!(event.count(), 1); assert_eq!(event.iter_changed_blocks().collect::>(), vec![pos]); assert_eq!( @@ -117,7 +141,12 @@ mod tests { fn create_chunk_section_fill() { let chunk = ChunkPosition::new(10, 15); let section_y = 5; - let event = BlockChangeEvent::fill_chunk_section(chunk, section_y); + let event = BlockChangeEvent::fill_chunk_section( + chunk, + section_y, + Entity::new(0), + EntityDimension("minecraft:overworld".to_string()), + ); assert_eq!(event.count(), SECTION_VOLUME); assert_eq!(event.iter_changed_blocks().count(), SECTION_VOLUME); assert_eq!( diff --git a/feather/common/src/game.rs b/feather/common/src/game.rs index aa61f52cc..85f85a7eb 100644 --- a/feather/common/src/game.rs +++ b/feather/common/src/game.rs @@ -1,20 +1,22 @@ use std::{cell::RefCell, mem, rc::Rc, sync::Arc}; -use base::{BlockId, ChunkPosition, Position, Text, Title, ValidBlockPosition}; +use base::{Position, Text, Title}; use ecs::{ Ecs, Entity, EntityBuilder, HasEcs, HasResources, NoSuchEntity, Resources, SysResult, SystemExecutor, }; -use quill_common::{entities::Player, entity_init::EntityInit}; +use libcraft_core::EntityKind; +use quill_common::entities::Player; +use crate::events::PlayerRespawnEvent; use crate::{ chat::{ChatKind, ChatMessage}, chunk::entities::ChunkEntities, - events::{BlockChangeEvent, EntityCreateEvent, EntityRemoveEvent, PlayerJoinEvent}, - ChatBox, World, + events::{EntityCreateEvent, EntityRemoveEvent, PlayerJoinEvent}, + ChatBox, }; -type EntitySpawnCallback = Box; +type EntitySpawnCallback = Box; /// Stores the entire state of a Minecraft game. /// @@ -28,13 +30,6 @@ type EntitySpawnCallback = Box; /// as "drop item" or "kill entity." These high-level methods /// should be preferred over raw interaction with the ECS. pub struct Game { - /// Contains chunks and blocks. - /// - /// NB: use methods on `Game` to update - /// blocks, not direct methods on `World`. - /// The `Game` methods will automatically - /// trigger the necessary `BlockChangeEvent`s. - pub world: World, /// Contains entities, including players. pub ecs: Ecs, /// Contains systems. @@ -66,7 +61,6 @@ impl Game { /// Creates a new, empty `Game`. pub fn new() -> Self { Self { - world: World::new(), ecs: Ecs::new(), system_executor: Rc::new(RefCell::new(SystemExecutor::new())), resources: Arc::new(Resources::new()), @@ -79,7 +73,7 @@ impl Game { /// Inserts a new resource. /// - /// An existing resource with type `T` is overriden. + /// An existing resource with type `T` is overridden. /// /// # Panics /// Panics if any resources are currently borrowed. @@ -99,7 +93,7 @@ impl Game { /// before they are built. pub fn add_entity_spawn_callback( &mut self, - callback: impl FnMut(&mut EntityBuilder, &EntityInit) + 'static, + callback: impl FnMut(&mut EntityBuilder, EntityKind) + 'static, ) { self.entity_spawn_callbacks.push(Box::new(callback)); } @@ -112,10 +106,10 @@ impl Game { /// Creates an entity builder with the default components /// for an entity of type `init`. - pub fn create_entity_builder(&mut self, position: Position, init: EntityInit) -> EntityBuilder { + pub fn create_entity_builder(&mut self, position: Position, kind: EntityKind) -> EntityBuilder { let mut builder = mem::take(&mut self.entity_builder); builder.add(position); - self.invoke_entity_spawn_callbacks(&mut builder, init); + self.invoke_entity_spawn_callbacks(&mut builder, kind); builder } @@ -131,10 +125,10 @@ impl Game { entity } - fn invoke_entity_spawn_callbacks(&mut self, builder: &mut EntityBuilder, init: EntityInit) { + fn invoke_entity_spawn_callbacks(&mut self, builder: &mut EntityBuilder, kind: EntityKind) { let mut callbacks = mem::take(&mut self.entity_spawn_callbacks); for callback in &mut callbacks { - callback(builder, &init); + callback(builder, kind); } self.entity_spawn_callbacks = callbacks; } @@ -147,6 +141,9 @@ impl Game { self.ecs .insert_entity_event(entity, PlayerJoinEvent) .unwrap(); + self.ecs + .insert_entity_event(entity, PlayerRespawnEvent) + .unwrap(); } } @@ -179,56 +176,6 @@ impl Game { mailbox.send_title(title); Ok(()) } - - /// Gets the block at the given position. - pub fn block(&self, pos: ValidBlockPosition) -> Option { - self.world.block_at(pos) - } - - /// Sets the block at the given position. - /// - /// Triggers necessary `BlockChangeEvent`s. - pub fn set_block(&mut self, pos: ValidBlockPosition, block: BlockId) -> bool { - let was_successful = self.world.set_block_at(pos, block); - if was_successful { - self.ecs.insert_event(BlockChangeEvent::single(pos)); - } - was_successful - } - - /// Fills the given chunk section (16x16x16 blocks). - /// - /// All blocks in the chunk section are overwritten with `block`. - pub fn fill_chunk_section( - &mut self, - chunk_pos: ChunkPosition, - section_y: usize, - block: BlockId, - ) -> bool { - let mut chunk = match self.world.chunk_map().chunk_at_mut(chunk_pos) { - Some(chunk) => chunk, - None => return false, - }; - - let was_successful = chunk.fill_section(section_y + 1, block); - - if !was_successful { - return false; - } - - self.ecs.insert_event(BlockChangeEvent::fill_chunk_section( - chunk_pos, - section_y as u32, - )); - - true - } - - /// Breaks the block at the given position, propagating any - /// necessary block updates. - pub fn break_block(&mut self, pos: ValidBlockPosition) -> bool { - self.set_block(pos, BlockId::air()) - } } impl HasResources for Game { diff --git a/feather/common/src/interactable.rs b/feather/common/src/interactable.rs index 59966a2bc..f702343e8 100644 --- a/feather/common/src/interactable.rs +++ b/feather/common/src/interactable.rs @@ -1,6 +1,6 @@ use std::collections::HashMap; -use blocks::BlockKind; +use libcraft_blocks::BlockKind; use crate::Game; diff --git a/feather/common/src/lib.rs b/feather/common/src/lib.rs index 9f9e7348a..2caf83690 100644 --- a/feather/common/src/lib.rs +++ b/feather/common/src/lib.rs @@ -23,7 +23,7 @@ pub mod chunk; mod region_worker; pub mod world; -pub use world::World; +pub use world::Dimension; pub mod chat; pub use chat::ChatBox; diff --git a/feather/common/src/region_worker.rs b/feather/common/src/region_worker.rs index dac33c985..9d6bd7da1 100644 --- a/feather/common/src/region_worker.rs +++ b/feather/common/src/region_worker.rs @@ -1,3 +1,4 @@ +use std::sync::Arc; use std::{ collections::hash_map::Entry, path::PathBuf, @@ -9,6 +10,8 @@ use base::anvil::{ self, region::{RegionHandle, RegionPosition}, }; +use base::biome::BiomeList; +use base::world::WorldHeight; use flume::{Receiver, Sender}; use crate::chunk::worker::{ChunkLoadResult, LoadRequest, LoadedChunk, SaveRequest, WorkerRequest}; @@ -40,12 +43,16 @@ pub struct RegionWorker { world_dir: PathBuf, region_files: AHashMap, last_cache_update: Instant, + world_height: WorldHeight, + biomes: Arc, } impl RegionWorker { pub fn new( world_dir: PathBuf, request_receiver: Receiver, + world_height: WorldHeight, + biomes: Arc, ) -> (Self, Receiver) { let (result_sender, result_receiver) = flume::bounded(256); ( @@ -55,6 +62,8 @@ impl RegionWorker { world_dir, region_files: AHashMap::new(), last_cache_update: Instant::now(), + world_height, + biomes, }, result_receiver, ) @@ -87,10 +96,12 @@ impl RegionWorker { fn save_chunk(&mut self, req: SaveRequest) -> anyhow::Result<()> { let reg_pos = RegionPosition::from_chunk(req.pos); + let biomes = Arc::clone(&self.biomes); let handle = &mut match self.region_file_handle(reg_pos) { Some(h) => h, None => { - let new_handle = anvil::region::create_region(&self.world_dir, reg_pos)?; + let new_handle = + anvil::region::create_region(&self.world_dir, reg_pos, self.world_height)?; self.region_files .insert(reg_pos, OpenRegionFile::new(new_handle)); self.region_file_handle(reg_pos).unwrap() @@ -101,6 +112,7 @@ impl RegionWorker { &req.chunk.read(), &req.entities[..], &req.block_entities[..], + &*biomes, )?; Ok(()) } @@ -112,13 +124,14 @@ impl RegionWorker { fn get_chunk_load_result(&mut self, req: LoadRequest) -> ChunkLoadResult { let pos = req.pos; + let biomes = Arc::clone(&self.biomes); let region = RegionPosition::from_chunk(pos); let file = match self.region_file_handle(region) { Some(file) => file, None => return ChunkLoadResult::Missing(pos), }; - let chunk = match file.handle.load_chunk(pos) { + let chunk = match file.handle.load_chunk(pos, &*biomes) { Ok((chunk, _, _)) => chunk, Err(e) => match e { anvil::region::Error::ChunkNotExist => return ChunkLoadResult::Missing(pos), @@ -135,7 +148,8 @@ impl RegionWorker { match self.region_files.entry(region) { Entry::Occupied(e) => Some(e.into_mut()), Entry::Vacant(e) => { - let handle = base::anvil::region::load_region(&self.world_dir, region); + let handle = + base::anvil::region::load_region(&self.world_dir, region, self.world_height); if let Ok(handle) = handle { Some(e.insert(OpenRegionFile::new(handle))) } else { diff --git a/feather/common/src/view.rs b/feather/common/src/view.rs index 325b27a8f..71ce63e29 100644 --- a/feather/common/src/view.rs +++ b/feather/common/src/view.rs @@ -2,7 +2,7 @@ use ahash::AHashSet; use base::{ChunkPosition, Position}; use ecs::{SysResult, SystemExecutor}; use itertools::Either; -use quill_common::components::Name; +use quill_common::components::{EntityDimension, EntityWorld, Name}; use crate::{ events::{PlayerJoinEvent, ViewUpdateEvent}, @@ -19,14 +19,21 @@ pub fn register(_game: &mut Game, systems: &mut SystemExecutor) { /// Updates players' views when they change chunks. fn update_player_views(game: &mut Game) -> SysResult { let mut events = Vec::new(); - for (player, (view, &position, name)) in - game.ecs.query::<(&mut View, &Position, &Name)>().iter() + for (player, (view, &position, name, &world, dimension)) in game + .ecs + .query::<(&mut View, &Position, &Name, &EntityWorld, &EntityDimension)>() + .iter() { if position.chunk() != view.center() { - let old_view = *view; - let new_view = View::new(position.chunk(), old_view.view_distance); - - let event = ViewUpdateEvent::new(old_view, new_view); + let old_view = view.clone(); + let new_view = View::new( + position.chunk(), + old_view.view_distance, + world, + dimension.clone(), + ); + + let event = ViewUpdateEvent::new(&old_view, &new_view); events.push((player, event)); *view = new_view; @@ -43,8 +50,18 @@ fn update_player_views(game: &mut Game) -> SysResult { /// Triggers a ViewUpdateEvent when a player joins the game. fn update_view_on_join(game: &mut Game) -> SysResult { let mut events = Vec::new(); - for (player, (&view, name, _)) in game.ecs.query::<(&View, &Name, &PlayerJoinEvent)>().iter() { - let event = ViewUpdateEvent::new(View::empty(), view); + for (player, (view, name, &world, dimension, _)) in game + .ecs + .query::<( + &View, + &Name, + &EntityWorld, + &EntityDimension, + &PlayerJoinEvent, + )>() + .iter() + { + let event = ViewUpdateEvent::new(&View::empty(world, dimension.clone()), &view); events.push((player, event)); log::trace!("View of {} has been updated (player joined)", name); } @@ -56,25 +73,34 @@ fn update_view_on_join(game: &mut Game) -> SysResult { /// The view of a player, representing the set of chunks /// within their view distance. -#[derive(Copy, Clone, Debug, PartialEq, Eq)] +#[derive(Clone, Debug)] pub struct View { center: ChunkPosition, view_distance: u32, + world: EntityWorld, + dimension: EntityDimension, } impl View { /// Creates a `View` from a center chunk (the position of the player) /// and the view distance. - pub fn new(center: ChunkPosition, view_distance: u32) -> Self { + pub fn new( + center: ChunkPosition, + view_distance: u32, + world: EntityWorld, + dimension: EntityDimension, + ) -> Self { Self { center, view_distance, + world, + dimension, } } /// Gets the empty view, i.e., the view containing no chunks. - pub fn empty() -> Self { - Self::new(ChunkPosition::new(0, 0), 0) + pub fn empty(world: EntityWorld, dimension: EntityDimension) -> Self { + Self::new(ChunkPosition::new(0, 0), 0, world, dimension) } /// Determines whether this is the empty view. @@ -99,7 +125,7 @@ impl View { } /// Iterates over chunks visible to the player. - pub fn iter(self) -> impl Iterator { + pub fn iter(&self) -> impl Iterator { if self.is_empty() { Either::Left(std::iter::empty()) } else { @@ -113,15 +139,15 @@ impl View { } /// Returns the set of chunks that are in `self` but not in `other`. - pub fn difference(self, other: View) -> impl Iterator { - // PERF: consider analytical approach instead of sets - let self_chunks: AHashSet<_> = self.iter().collect(); - let other_chunks: AHashSet<_> = other.iter().collect(); - self_chunks - .difference(&other_chunks) - .copied() - .collect::>() - .into_iter() + pub fn difference(&self, other: &View) -> Vec { + if self.dimension != other.dimension || self.world != other.world { + self.iter().collect() + } else { + // PERF: consider analytical approach instead of sets + let self_chunks: AHashSet<_> = self.iter().collect(); + let other_chunks: AHashSet<_> = other.iter().collect(); + self_chunks.difference(&other_chunks).copied().collect() + } } /// Determines whether the given chunk is visible. @@ -145,21 +171,31 @@ impl View { /// Returns the minimum X chunk coordinate. pub fn min_x(&self) -> i32 { - self.center.x - self.view_distance as i32 + // I don't know why but it's loading a 3x3 area with view_distance=2, + // there should be a better way to fix this + self.center.x - self.view_distance as i32 - 1 } /// Returns the minimum Z coordinate. pub fn min_z(&self) -> i32 { - self.center.z - self.view_distance as i32 + self.center.z - self.view_distance as i32 - 1 } /// Returns the maximum X coordinate. pub fn max_x(&self) -> i32 { - self.center.x + self.view_distance as i32 + self.center.x + self.view_distance as i32 + 1 } /// Returns the maximum Z coordinate. pub fn max_z(&self) -> i32 { - self.center.z + self.view_distance as i32 + self.center.z + self.view_distance as i32 + 1 + } + + pub fn dimension(&self) -> &EntityDimension { + &self.dimension + } + + pub fn world(&self) -> EntityWorld { + self.world } } diff --git a/feather/common/src/window.rs b/feather/common/src/window.rs index ba41b6381..52f256b01 100644 --- a/feather/common/src/window.rs +++ b/feather/common/src/window.rs @@ -98,31 +98,31 @@ impl Window { match &self.inner { BackingWindow::Player { player: _ } => self.shift_click_in_player_window(slot), - BackingWindow::Generic9x1 { + BackingWindow::Generic9X1 { block: _, player: _, } - | BackingWindow::Generic9x2 { + | BackingWindow::Generic9X2 { block: _, player: _, } - | BackingWindow::Generic9x3 { + | BackingWindow::Generic9X3 { block: _, player: _, } - | BackingWindow::Generic9x4 { + | BackingWindow::Generic9X4 { block: _, player: _, } - | BackingWindow::Generic9x5 { + | BackingWindow::Generic9X5 { block: _, player: _, } - | BackingWindow::Generic3x3 { + | BackingWindow::Generic3X3 { block: _, player: _, } - | BackingWindow::Generic9x6 { + | BackingWindow::Generic9X6 { left_chest: _, right_chest: _, player: _, @@ -349,6 +349,11 @@ impl Window { &self.cursor_item } + /// Sets the item currently held in the cursor. + pub fn set_cursor_item(&mut self, item: InventorySlot) { + self.cursor_item = item; + } + pub fn item(&self, index: usize) -> Result, WindowError> { self.inner.item(index) } diff --git a/feather/common/src/world.rs b/feather/common/src/world.rs index 201eeb13e..bbc6ad8fd 100644 --- a/feather/common/src/world.rs +++ b/feather/common/src/world.rs @@ -5,12 +5,11 @@ use parking_lot::{RwLockReadGuard, RwLockWriteGuard}; use uuid::Uuid; use base::anvil::player::PlayerData; -use base::{ - BlockPosition, Chunk, ChunkHandle, ChunkLock, ChunkPosition, ValidBlockPosition, CHUNK_HEIGHT, -}; -use blocks::BlockId; -use ecs::{Ecs, SysResult}; -use worldgen::{ComposableGenerator, WorldGenerator}; +use base::biome::BiomeList; +use base::world::{DimensionInfo, WorldHeight}; +use base::{BlockPosition, Chunk, ChunkHandle, ChunkLock, ChunkPosition, ValidBlockPosition}; +use libcraft_blocks::BlockId; +use worldgen::WorldGenerator; use crate::{ chunk::cache::ChunkCache, @@ -18,50 +17,91 @@ use crate::{ events::ChunkLoadEvent, }; -/// Stores all blocks and chunks in a world, -/// along with global world data like weather, time, -/// and the [`WorldSource`](crate::world_source::WorldSource). +#[derive(Clone, Debug, derive_more::Deref, derive_more::Constructor)] +pub struct WorldName(String); + +#[derive(Clone, Debug, derive_more::Deref, derive_more::Constructor)] +pub struct WorldPath(PathBuf); + +impl WorldPath { + pub fn load_player_data(&self, uuid: Uuid) -> anyhow::Result { + base::anvil::player::load_player_data(&self.0, uuid) + } + + pub fn save_player_data(&self, uuid: Uuid, data: &PlayerData) -> anyhow::Result<()> { + base::anvil::player::save_player_data(&self.0, uuid, data) + } +} + +#[derive(Default, derive_more::Deref, derive_more::DerefMut)] +pub struct Dimensions(Vec); + +impl Dimensions { + pub fn get(&self, dimension: &str) -> Option<&Dimension> { + self.0.iter().find(|d| d.info().r#type == dimension) + } + + pub fn get_mut(&mut self, dimension: &str) -> Option<&mut Dimension> { + self.0.iter_mut().find(|d| d.info().r#type == dimension) + } + + pub fn add(&mut self, dimension: Dimension) { + self.0.push(dimension) + } + + pub fn iter(&self) -> impl Iterator { + self.0.iter() + } + + pub fn iter_mut(&mut self) -> impl Iterator { + self.0.iter_mut() + } +} + +/// Stores all blocks and chunks in a dimension /// -/// NB: _not_ what most Rust ECSs call "world." /// This does not store entities; it only contains blocks. -pub struct World { +pub struct Dimension { chunk_map: ChunkMap, pub cache: ChunkCache, chunk_worker: ChunkWorker, loading_chunks: AHashSet, canceled_chunk_loads: AHashSet, - world_dir: PathBuf, -} - -impl Default for World { - fn default() -> Self { - Self { - chunk_map: ChunkMap::new(), - chunk_worker: ChunkWorker::new( - "world", - Arc::new(ComposableGenerator::default_with_seed(0)), - ), - cache: ChunkCache::new(), - loading_chunks: AHashSet::new(), - canceled_chunk_loads: AHashSet::new(), - world_dir: "world".into(), - } - } + dimension_info: DimensionInfo, + /// Debug mode dimensions cannot be modified and have predefined blocks + debug: bool, + /// If true, has a different void fog and horizon at y=min + flat: bool, } -impl World { - pub fn new() -> Self { - Self::default() - } - - pub fn with_gen_and_path( +impl Dimension { + pub fn new( + dimension_info: DimensionInfo, generator: Arc, world_dir: impl Into + Clone, + debug: bool, + flat: bool, + biomes: Arc, ) -> Self { + assert_eq!(dimension_info.info.height % 16, 0); Self { - world_dir: world_dir.clone().into(), - chunk_worker: ChunkWorker::new(world_dir, generator), - ..Default::default() + chunk_map: ChunkMap::new( + WorldHeight(dimension_info.info.height as usize), + dimension_info.info.min_y, + ), + cache: Default::default(), + chunk_worker: ChunkWorker::new( + world_dir, + generator, + WorldHeight(dimension_info.info.height as usize), + dimension_info.info.min_y, + biomes, + ), + loading_chunks: Default::default(), + canceled_chunk_loads: Default::default(), + dimension_info, + debug, + flat, } } @@ -71,7 +111,7 @@ impl World { if self.cache.contains(&pos) { // Move the chunk from the cache to the map self.chunk_map - .0 + .inner .insert(pos, self.cache.remove(pos).unwrap()); self.chunk_map.chunk_handle_at(pos).unwrap().set_loaded(); } else { @@ -82,7 +122,8 @@ impl World { /// Loads any chunks that have been loaded asynchronously /// after a call to [`World::queue_chunk_load`]. - pub fn load_chunks(&mut self, ecs: &mut Ecs) -> SysResult { + pub fn load_chunks(&mut self) -> anyhow::Result> { + let mut events = Vec::new(); while let Some(loaded) = self.chunk_worker.poll_loaded_chunk()? { self.loading_chunks.remove(&loaded.pos); if self.canceled_chunk_loads.remove(&loaded.pos) { @@ -91,18 +132,19 @@ impl World { let chunk = loaded.chunk; self.chunk_map.insert_chunk(chunk); - ecs.insert_event(ChunkLoadEvent { - chunk: Arc::clone(&self.chunk_map.0[&loaded.pos]), + events.push(ChunkLoadEvent { + chunk: Arc::clone(&self.chunk_map.inner[&loaded.pos]), position: loaded.pos, + dimension: self.info().r#type.clone(), }); log::trace!("Loaded chunk {:?}", loaded.pos); } - Ok(()) + Ok(events) } /// Unloads the given chunk. pub fn unload_chunk(&mut self, pos: ChunkPosition) -> anyhow::Result<()> { - if let Some((pos, handle)) = self.chunk_map.0.remove_entry(&pos) { + if let Some(handle) = self.chunk_map.inner.remove(&pos) { handle.set_unloaded()?; self.chunk_worker.queue_chunk_save(SaveRequest { pos, @@ -117,13 +159,12 @@ impl World { self.canceled_chunk_loads.insert(pos); } - log::trace!("Unloaded chunk {:?}", pos); Ok(()) } /// Returns whether the given chunk is loaded. pub fn is_chunk_loaded(&self, pos: ChunkPosition) -> bool { - self.chunk_map.0.contains_key(&pos) + self.chunk_map.inner.contains_key(&pos) } /// Returns whether the given chunk is queued to be loaded. @@ -159,15 +200,20 @@ impl World { &mut self.chunk_map } - pub fn load_player_data(&self, uuid: Uuid) -> anyhow::Result { - Ok(base::anvil::player::load_player_data( - &self.world_dir, - uuid, - )?) + pub fn info(&self) -> &DimensionInfo { + &self.dimension_info } - pub fn save_player_data(&self, uuid: Uuid, data: &PlayerData) -> anyhow::Result<()> { - base::anvil::player::save_player_data(&self.world_dir, uuid, data) + pub fn height(&self) -> WorldHeight { + WorldHeight(self.dimension_info.info.height as usize) + } + + pub fn is_debug(&self) -> bool { + self.debug + } + + pub fn is_flat(&self) -> bool { + self.flat } } @@ -181,104 +227,91 @@ pub type ChunkMapInner = AHashMap; /// of the world in parallel. Mutable access to this /// type is only required for inserting and removing /// chunks. -#[derive(Default)] -pub struct ChunkMap(ChunkMapInner); +pub struct ChunkMap { + inner: ChunkMapInner, + height: WorldHeight, + min_y: i32, +} impl ChunkMap { /// Creates a new, empty world. - pub fn new() -> Self { - Self::default() + pub fn new(world_height: WorldHeight, min_y: i32) -> Self { + ChunkMap { + inner: ChunkMapInner::default(), + height: world_height, + min_y, + } } /// Retrieves a handle to the chunk at the given /// position, or `None` if it is not loaded. pub fn chunk_at(&self, pos: ChunkPosition) -> Option> { - self.0.get(&pos).map(|lock| lock.read()) + self.inner.get(&pos).map(|lock| lock.read()) } /// Retrieves a handle to the chunk at the given /// position, or `None` if it is not loaded. pub fn chunk_at_mut(&self, pos: ChunkPosition) -> Option> { - self.0.get(&pos).map(|lock| lock.write()).flatten() + self.inner.get(&pos).map(|lock| lock.write()).flatten() } /// Returns an `Arc>` at the given position. pub fn chunk_handle_at(&self, pos: ChunkPosition) -> Option { - self.0.get(&pos).map(Arc::clone) + self.inner.get(&pos).map(Arc::clone) } pub fn block_at(&self, pos: ValidBlockPosition) -> Option { - check_coords(pos)?; + check_coords(pos, self.height, self.min_y)?; let (x, y, z) = chunk_relative_pos(pos.into()); self.chunk_at(pos.chunk()) - .map(|chunk| chunk.block_at(x, y, z)) + .map(|chunk| chunk.block_at(x, (y - self.min_y as isize) as usize, z)) .flatten() } pub fn set_block_at(&self, pos: ValidBlockPosition, block: BlockId) -> bool { - if check_coords(pos).is_none() { + if check_coords(pos, self.height, self.min_y).is_none() { return false; } let (x, y, z) = chunk_relative_pos(pos.into()); self.chunk_at_mut(pos.chunk()) - .map(|mut chunk| chunk.set_block_at(x, y, z, block)) + .map(|mut chunk| { + chunk.set_block_at(x, (y - self.min_y as isize) as usize, z, block, true) + }) .is_some() } /// Returns an iterator over chunks. pub fn iter_chunks(&self) -> impl IntoIterator { - self.0.values() + self.inner.values() } /// Inserts a new chunk into the chunk map. pub fn insert_chunk(&mut self, chunk: Chunk) { - self.0 + self.inner .insert(chunk.position(), Arc::new(ChunkLock::new(chunk, true))); } /// Removes the chunk at the given position, returning `true` if it existed. pub fn remove_chunk(&mut self, pos: ChunkPosition) -> bool { - self.0.remove(&pos).is_some() + self.inner.remove(&pos).is_some() } } -fn check_coords(pos: ValidBlockPosition) -> Option<()> { - if pos.y() >= 0 && pos.y() < CHUNK_HEIGHT as i32 { +fn check_coords(pos: ValidBlockPosition, world_height: WorldHeight, min_y: i32) -> Option<()> { + if pos.y() >= min_y && pos.y() < *world_height as i32 + min_y { Some(()) } else { None } } -fn chunk_relative_pos(block_pos: BlockPosition) -> (usize, usize, usize) { +fn chunk_relative_pos(block_pos: BlockPosition) -> (usize, isize, usize) { ( block_pos.x as usize & 0xf, - block_pos.y as usize, + block_pos.y as isize, block_pos.z as usize & 0xf, ) } - -#[cfg(test)] -mod tests { - use std::convert::TryInto; - - use super::*; - - #[test] - fn world_out_of_bounds() { - let mut world = World::new(); - world - .chunk_map_mut() - .insert_chunk(Chunk::new(ChunkPosition::new(0, 0))); - - assert!(world - .block_at(BlockPosition::new(0, -1, 0).try_into().unwrap()) - .is_none()); - assert!(world - .block_at(BlockPosition::new(0, 0, 0).try_into().unwrap()) - .is_some()); - } -} diff --git a/feather/plugin-host/src/host_calls.rs b/feather/plugin-host/src/host_calls.rs index bf90ccb81..489764748 100644 --- a/feather/plugin-host/src/host_calls.rs +++ b/feather/plugin-host/src/host_calls.rs @@ -8,7 +8,6 @@ use paste::paste; use crate::env::PluginEnv; use crate::host_function::{NativeHostFunction, WasmHostFunction}; -mod block; mod component; mod entity; mod entity_builder; @@ -45,7 +44,6 @@ macro_rules! host_calls { } } -use block::*; use component::*; use entity::*; use entity_builder::*; @@ -65,8 +63,5 @@ host_calls! { "entity_exists" => entity_exists, "entity_send_message" => entity_send_message, "entity_send_title" => entity_send_title, - "block_get" => block_get, - "block_set" => block_set, - "block_fill_chunk_section" => block_fill_chunk_section, "plugin_message_send" => plugin_message_send, } diff --git a/feather/plugin-host/src/host_calls/block.rs b/feather/plugin-host/src/host_calls/block.rs deleted file mode 100644 index cc1f14b8b..000000000 --- a/feather/plugin-host/src/host_calls/block.rs +++ /dev/null @@ -1,42 +0,0 @@ -use std::convert::TryInto; - -use feather_base::{BlockId, BlockPosition, ChunkPosition}; -use feather_plugin_host_macros::host_function; -use quill_common::block::BlockGetResult; - -use crate::context::PluginContext; - -/// NB: `u32` has the same layout as `BlockGetResult`. -#[host_function] -pub fn block_get(cx: &PluginContext, x: i32, y: i32, z: i32) -> anyhow::Result { - let pos = BlockPosition::new(x, y, z).try_into()?; - - let block = cx.game_mut().block(pos); - let result = BlockGetResult::new(block.map(BlockId::vanilla_id)); - Ok(result.to_u32()) -} - -#[host_function] -pub fn block_set(cx: &PluginContext, x: i32, y: i32, z: i32, block_id: u16) -> anyhow::Result { - let pos = BlockPosition::new(x, y, z).try_into()?; - let block = BlockId::from_vanilla_id(block_id); - - let was_successful = cx.game_mut().set_block(pos, block); - Ok(was_successful as u32) -} - -#[host_function] -pub fn block_fill_chunk_section( - cx: &PluginContext, - chunk_x: i32, - section_y: u32, - chunk_z: i32, - block_id: u16, -) -> anyhow::Result { - let chunk_pos = ChunkPosition::new(chunk_x, chunk_z); - let block = BlockId::from_vanilla_id(block_id); - let was_successful = cx - .game_mut() - .fill_chunk_section(chunk_pos, section_y as usize, block); - Ok(was_successful as u32) -} diff --git a/feather/protocol/Cargo.toml b/feather/protocol/Cargo.toml index 09e1d322a..f87723c45 100644 --- a/feather/protocol/Cargo.toml +++ b/feather/protocol/Cargo.toml @@ -8,7 +8,6 @@ edition = "2018" aes = "0.7" anyhow = "1" base = { path = "../base", package = "feather-base" } -blocks = { path = "../blocks", package = "feather-blocks" } bytemuck = "1" byteorder = "1" bytes = "0.5" @@ -24,8 +23,8 @@ thiserror = "1" uuid = "0.8" libcraft-core = { path = "../../libcraft/core" } libcraft-items = { path = "../../libcraft/items" } - - +libcraft-blocks = { path = "../../libcraft/blocks" } +either = "1.6.1" [features] proxy = ["base/proxy"] \ No newline at end of file diff --git a/feather/protocol/src/codec.rs b/feather/protocol/src/codec.rs index d38217eb3..0cf90a20f 100644 --- a/feather/protocol/src/codec.rs +++ b/feather/protocol/src/codec.rs @@ -1,4 +1,4 @@ -use crate::{io::VarInt, ProtocolVersion, Readable, Writeable}; +use crate::{ProtocolVersion, Readable, VarInt, Writeable}; use aes::Aes128; use bytes::BytesMut; use cfb8::{ @@ -68,7 +68,7 @@ impl MinecraftCodec { /// Writes a packet into the provided writer. pub fn encode(&mut self, packet: &impl Writeable, output: &mut Vec) -> anyhow::Result<()> { - packet.write(&mut self.staging_buf, ProtocolVersion::V1_16_2)?; + packet.write(&mut self.staging_buf, ProtocolVersion::V1_18_1)?; if let Some(threshold) = self.compression { self.encode_compressed(output, threshold)?; @@ -104,8 +104,8 @@ impl MinecraftCodec { .unwrap(); let packet_length = data_length_bytes.position() as usize + data.len(); - VarInt(packet_length as i32).write(output, ProtocolVersion::V1_16_2)?; - VarInt(data_length as i32).write(output, ProtocolVersion::V1_16_2)?; + VarInt(packet_length as i32).write(output, ProtocolVersion::V1_18_1)?; + VarInt(data_length as i32).write(output, ProtocolVersion::V1_18_1)?; output.extend_from_slice(data); self.compression_target.clear(); @@ -129,7 +129,7 @@ impl MinecraftCodec { // TODO: we should probably be able to determine the length without writing the packet, // which could remove an unnecessary copy. let length = self.staging_buf.len() as i32; - VarInt(length).write(output, ProtocolVersion::V1_16_2)?; + VarInt(length).write(output, ProtocolVersion::V1_18_1)?; output.extend_from_slice(&self.staging_buf); Ok(()) @@ -153,7 +153,7 @@ impl MinecraftCodec { T: Readable, { let mut cursor = Cursor::new(&self.received_buf[..]); - let packet = if let Ok(length) = VarInt::read(&mut cursor, ProtocolVersion::V1_16_2) { + let packet = if let Ok(length) = VarInt::read(&mut cursor, ProtocolVersion::V1_18_1) { let length_field_length = cursor.position() as usize; if self.received_buf.len() - length_field_length >= length.0 as usize { @@ -163,7 +163,7 @@ impl MinecraftCodec { ); if self.compression.is_some() { - let data_length = VarInt::read(&mut cursor, ProtocolVersion::V1_16_2)?; + let data_length = VarInt::read(&mut cursor, ProtocolVersion::V1_18_1)?; if data_length.0 != 0 { let mut decoder = ZlibDecoder::new(&cursor.get_ref()[cursor.position() as usize..]); @@ -172,7 +172,7 @@ impl MinecraftCodec { } } - let packet = T::read(&mut cursor, ProtocolVersion::V1_16_2)?; + let packet = T::read(&mut cursor, ProtocolVersion::V1_18_1)?; let bytes_read = length.0 as usize + length_field_length; self.received_buf = self.received_buf.split_off(bytes_read); diff --git a/feather/protocol/src/io.rs b/feather/protocol/src/io.rs index fa30fd4a4..3c66dae46 100644 --- a/feather/protocol/src/io.rs +++ b/feather/protocol/src/io.rs @@ -1,16 +1,5 @@ //! Traits for reading/writing Minecraft-encoded values. - -use crate::{ProtocolVersion, Slot}; -use anyhow::{anyhow, bail, Context}; -use base::{ - anvil::entity::ItemNbt, metadata::MetaEntry, BlockId, BlockPosition, Direction, EntityMetadata, - Gamemode, Item, ItemStackBuilder, ValidBlockPosition, -}; -use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; -use libcraft_items::InventorySlot::*; -use num_traits::{FromPrimitive, ToPrimitive}; -use quill_common::components::PreviousGamemode; -use serde::{de::DeserializeOwned, Serialize}; +use std::io::ErrorKind; use std::{ borrow::Cow, collections::BTreeMap, @@ -20,9 +9,26 @@ use std::{ marker::PhantomData, num::TryFromIntError, }; + +use anyhow::{anyhow, bail, Context}; +use base::anvil::entity::ItemNbt; +use base::chunk::paletted_container::{Paletteable, PalettedContainer}; +use base::chunk::PackedArray; +use base::metadata::MetaEntry; +use base::{Direction, EntityMetadata, ValidBlockPosition}; +use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; +use libcraft_blocks::BlockId; +use num_traits::{FromPrimitive, ToPrimitive}; +use serde::{de::DeserializeOwned, Serialize}; use thiserror::Error; use uuid::Uuid; +use crate::{ProtocolVersion, Slot}; +use libcraft_core::{BlockPosition, Gamemode}; +use libcraft_items::InventorySlot::*; +use libcraft_items::{Item, ItemStackBuilder}; +use quill_common::components::PreviousGamemode; + /// Trait implemented for types which can be read /// from a buffer. pub trait Readable { @@ -160,31 +166,11 @@ where pub struct VarInt(pub i32); impl Readable for VarInt { - fn read(buffer: &mut Cursor<&[u8]>, version: ProtocolVersion) -> anyhow::Result + fn read(buffer: &mut Cursor<&[u8]>, _version: ProtocolVersion) -> anyhow::Result where Self: Sized, { - let mut num_read = 0; - let mut result = 0; - - loop { - let read = u8::read(buffer, version)?; - let value = i32::from(read & 0b0111_1111); - result |= value.overflowing_shl(7 * num_read).0; - - num_read += 1; - - if num_read > 5 { - bail!( - "VarInt too long (max length: 5, value read so far: {})", - result - ); - } - if read & 0b1000_0000 == 0 { - break; - } - } - Ok(VarInt(result)) + Self::read_from(buffer).map_err(Into::into) } } @@ -214,8 +200,9 @@ impl From for VarInt { } impl VarInt { - pub fn write_to(&self, mut writer: impl Write) -> io::Result<()> { + pub fn write_to(&self, mut writer: impl Write) -> io::Result { let mut x = self.0 as u32; + let mut i = 0; loop { let mut temp = (x & 0b0111_1111) as u8; x >>= 7; @@ -225,11 +212,35 @@ impl VarInt { writer.write_all(&[temp])?; + i += 1; if x == 0 { break; } } - Ok(()) + Ok(i) + } + pub fn read_from(mut reader: impl Read) -> io::Result { + let mut num_read = 0; + let mut result = 0; + + loop { + let read = reader.read_u8()?; + let value = i32::from(read & 0b0111_1111); + result |= value.overflowing_shl(7 * num_read).0; + + num_read += 1; + + if num_read > 5 { + return Err(io::Error::new( + ErrorKind::InvalidData, + "VarInt too long (max length: 5)", + )); + } + if read & 0b1000_0000 == 0 { + break; + } + } + Ok(VarInt(result)) } } @@ -596,9 +607,9 @@ impl Readable for EntityMetadata { let mut values = BTreeMap::new(); loop { - let index = u8::read(buffer, version)?; + let index = i8::read(buffer, version)?; - if index == 0xFF { + if index == -1 { break; } @@ -792,9 +803,13 @@ impl Readable for ValidBlockPosition { let val = i64::read(buffer, version)?; let x = (val >> 38) as i32; - let y = (val & 0xFFF) as i32; + let mut y = (val & 0xFFF) as i32; let z = (val << 26 >> 38) as i32; + if y >= 1 << 11 { + y -= 1 << 12 + } + Ok(BlockPosition { x, y, z }.try_into()?) } } @@ -854,7 +869,7 @@ impl Readable for BlockId { let id = VarInt::read(buffer, version)?.0; let block = BlockId::from_vanilla_id(id.try_into()?); - Ok(block) + Ok(block.unwrap_or_default()) } } @@ -909,3 +924,116 @@ impl Writeable for PreviousGamemode { self.id().write(buffer, version) } } + +macro_rules! tuple_impl { + ($($item: ident),*) => { + impl<$($item: Readable),*> Readable for ($($item,)*) { + fn read(#[allow(unused)] buffer: &mut Cursor<&[u8]>, #[allow(unused)] version: ProtocolVersion) -> anyhow::Result + where + Self: Sized, + { + Ok(($($item::read(buffer, version)?,)*)) + } + } + impl<$($item: Writeable),*> Writeable for ($($item,)*) { + fn write(&self, #[allow(unused)] buffer: &mut Vec, #[allow(unused)] version: ProtocolVersion) -> anyhow::Result<()> { + #[allow(non_snake_case)] + let ($($item,)*): &($($item,)*) = self; + $($item.write(buffer, version)?;)* + Ok(()) + } + } + }; +} + +tuple_impl!(); +tuple_impl!(T1); +tuple_impl!(T1, T2); +tuple_impl!(T1, T2, T3); + +// TODO remove and use bitvec instead +#[derive(Default)] +pub struct BitMask(Vec); + +impl BitMask { + // pushes a bit to this bitmask + pub fn set(&mut self, i: usize, bit: bool) { + let n = i / 64; + while n >= self.0.len() { + self.0.push(0); + } + self.0[n] |= (bit as u64) << (i % 64); + } + + pub fn is_set(&self, i: usize) -> bool { + let n = i / 64; + if n >= self.0.len() { + false + } else { + self.0[n] & (1 << (i % 64)) != 0 + } + } + + pub fn max_len(&self) -> usize { + self.0.len() * u64::BITS as usize / 8 + } +} + +impl Writeable for BitMask { + fn write(&self, buffer: &mut Vec, version: ProtocolVersion) -> anyhow::Result<()> { + VarInt(self.0.len() as i32).write(buffer, version)?; + for long in &self.0 { + long.write(buffer, version)? + } + Ok(()) + } +} + +impl Readable for BitMask { + fn read(buffer: &mut Cursor<&[u8]>, version: ProtocolVersion) -> anyhow::Result + where + Self: Sized, + { + let mut bitmask = Vec::new(); + for _ in 0..VarInt::read(buffer, version)?.0 { + bitmask.push(u64::read(buffer, version)?); + } + Ok(BitMask(bitmask)) + } +} + +impl Writeable for PalettedContainer +where + T: Paletteable, +{ + fn write(&self, buffer: &mut Vec, version: ProtocolVersion) -> anyhow::Result<()> { + let data = self.data(); + (data.map(PackedArray::bits_per_value).unwrap_or_default() as u8).write(buffer, version)?; + + match self { + PalettedContainer::SingleValue(value) => { + VarInt(value.default_palette_index() as i32).write(buffer, version)? + } + PalettedContainer::MultipleValues { palette, .. } => { + VarInt(palette.len() as i32).write(buffer, version)?; + for item in palette { + VarInt(item.default_palette_index() as i32).write(buffer, version)?; + } + } + PalettedContainer::GlobalPalette { .. } => {} + } + + VarInt( + data.map(|data| data.as_u64_slice().len()) + .unwrap_or_default() as i32, + ) + .write(buffer, version)?; + if let Some(data) = data { + for u64 in data.as_u64_slice() { + u64.write(buffer, version)?; + } + } + + Ok(()) + } +} diff --git a/feather/protocol/src/lib.rs b/feather/protocol/src/lib.rs index 08cd234bc..50143f0dc 100644 --- a/feather/protocol/src/lib.rs +++ b/feather/protocol/src/lib.rs @@ -21,7 +21,7 @@ pub type Slot = InventorySlot; /// A protocol version. #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub enum ProtocolVersion { - V1_16_2, + V1_18_1, } /// A protocol state. diff --git a/feather/protocol/src/mod.rs b/feather/protocol/src/mod.rs new file mode 100644 index 000000000..14ed541f2 --- /dev/null +++ b/feather/protocol/src/mod.rs @@ -0,0 +1,232 @@ +use anyhow::anyhow; + +pub mod codec; +pub mod io; +pub mod packets; + +#[doc(inline)] +pub use codec::MinecraftCodec; +pub use io::Nbt; +pub use io::{Readable, VarInt, VarLong, Writeable}; +use libcraft_items::InventorySlot; +#[doc(inline)] +pub use packets::{ + client::{ClientHandshakePacket, ClientLoginPacket, ClientPlayPacket, ClientStatusPacket}, + server::{ServerLoginPacket, ServerPlayPacket, ServerStatusPacket}, + VariantOf, +}; + +pub type Slot = InventorySlot; + +/// A protocol version. +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +#[allow(non_camel_case_types)] +pub enum ProtocolVersion { + V1_18_1, +} + +/// A protocol state. +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] +pub enum ProtocolState { + Handshake, + Status, + Login, + Play, +} + +/// Reads an arbitrary packet sent by a client based on a dynamically-updated +/// protocol state. As opposed to `MinecraftCodec`, this struct does not type-encode +/// the current protocol state using generics. +/// +/// This is a wrapper around a `MinecraftCodec` but more useful in certain situations +/// (e.g. when writing a proxy.) +pub struct ClientPacketCodec { + state: ProtocolState, + codec: MinecraftCodec, +} + +impl Default for ClientPacketCodec { + fn default() -> Self { + Self::new() + } +} + +impl ClientPacketCodec { + pub fn new() -> Self { + Self { + state: ProtocolState::Handshake, + codec: MinecraftCodec::new(), + } + } + + pub fn set_state(&mut self, state: ProtocolState) { + self.state = state + } + + /// Decodes a `ClientPacket` using the provided data. + pub fn decode(&mut self, data: &[u8]) -> anyhow::Result> { + self.codec.accept(data); + match self.state { + ProtocolState::Handshake => self + .codec + .next_packet::() + .map(|opt| opt.map(ClientPacket::from)), + ProtocolState::Status => self + .codec + .next_packet::() + .map(|opt| opt.map(ClientPacket::from)), + ProtocolState::Login => self + .codec + .next_packet::() + .map(|opt| opt.map(ClientPacket::from)), + ProtocolState::Play => self + .codec + .next_packet::() + .map(|opt| opt.map(ClientPacket::from)), + } + } + + /// Encodes a `ClientPacket` into a buffer. + pub fn encode(&mut self, packet: &ClientPacket, buffer: &mut Vec) { + match packet { + ClientPacket::Handshake(packet) => self.codec.encode(packet, buffer).unwrap(), + ClientPacket::Status(packet) => self.codec.encode(packet, buffer).unwrap(), + ClientPacket::Login(packet) => self.codec.encode(packet, buffer).unwrap(), + ClientPacket::Play(packet) => self.codec.encode(packet, buffer).unwrap(), + } + } +} + +/// Similar to `ClientPacketCodec` but for server-sent packets. +pub struct ServerPacketCodec { + state: ProtocolState, + codec: MinecraftCodec, +} + +impl Default for ServerPacketCodec { + fn default() -> Self { + Self::new() + } +} + +impl ServerPacketCodec { + pub fn new() -> Self { + Self { + state: ProtocolState::Handshake, + codec: MinecraftCodec::new(), + } + } + + pub fn set_state(&mut self, state: ProtocolState) { + self.state = state + } + + /// Decodes a `ServerPacket` using the provided data. + pub fn decode(&mut self, data: &[u8]) -> anyhow::Result> { + self.codec.accept(data); + match self.state { + ProtocolState::Handshake => Err(anyhow!("server sent data during handshake state")), + ProtocolState::Status => self + .codec + .next_packet::() + .map(|opt| opt.map(ServerPacket::from)), + ProtocolState::Login => self + .codec + .next_packet::() + .map(|opt| opt.map(ServerPacket::from)), + ProtocolState::Play => self + .codec + .next_packet::() + .map(|opt| opt.map(ServerPacket::from)), + } + } + + /// Encodes a `ServerPacket` into a buffer. + pub fn encode(&mut self, packet: &ServerPacket, buffer: &mut Vec) { + match packet { + ServerPacket::Status(packet) => self.codec.encode(packet, buffer).unwrap(), + ServerPacket::Login(packet) => self.codec.encode(packet, buffer).unwrap(), + ServerPacket::Play(packet) => self.codec.encode(packet, buffer).unwrap(), + } + } +} + +/// A packet sent by the client from any one of the packet stages. +#[derive(Debug, Clone)] +pub enum ClientPacket { + Handshake(ClientHandshakePacket), + Status(ClientStatusPacket), + Login(ClientLoginPacket), + Play(ClientPlayPacket), +} + +impl ClientPacket { + pub fn id(&self) -> u32 { + match self { + ClientPacket::Handshake(packet) => packet.id(), + ClientPacket::Status(packet) => packet.id(), + ClientPacket::Login(packet) => packet.id(), + ClientPacket::Play(packet) => packet.id(), + } + } +} + +impl From for ClientPacket { + fn from(packet: ClientHandshakePacket) -> Self { + ClientPacket::Handshake(packet) + } +} + +impl From for ClientPacket { + fn from(packet: ClientStatusPacket) -> Self { + ClientPacket::Status(packet) + } +} + +impl From for ClientPacket { + fn from(packet: ClientLoginPacket) -> Self { + ClientPacket::Login(packet) + } +} + +impl From for ClientPacket { + fn from(packet: ClientPlayPacket) -> Self { + ClientPacket::Play(packet) + } +} + +/// A packet sent by the server from any one of the packet stages. +#[derive(Debug, Clone)] +pub enum ServerPacket { + Status(ServerStatusPacket), + Login(ServerLoginPacket), + Play(ServerPlayPacket), +} + +impl ServerPacket { + pub fn id(&self) -> u32 { + match self { + ServerPacket::Status(packet) => packet.id(), + ServerPacket::Login(packet) => packet.id(), + ServerPacket::Play(packet) => packet.id(), + } + } +} + +impl From for ServerPacket { + fn from(packet: ServerStatusPacket) -> Self { + ServerPacket::Status(packet) + } +} + +impl From for ServerPacket { + fn from(packet: ServerLoginPacket) -> Self { + ServerPacket::Login(packet) + } +} + +impl From for ServerPacket { + fn from(packet: ServerPlayPacket) -> Self { + ServerPacket::Play(packet) + } +} diff --git a/feather/protocol/src/packets.rs b/feather/protocol/src/packets.rs index 445051ef0..3d522927d 100644 --- a/feather/protocol/src/packets.rs +++ b/feather/protocol/src/packets.rs @@ -2,10 +2,10 @@ macro_rules! user_type { (VarInt) => { i32 }; - (VarIntPrefixedVec <$inner:ident>) => { + (VarIntPrefixedVec <$inner:ty>) => { Vec<$inner> }; - (ShortPrefixedVec <$inner:ident>) => { + (ShortPrefixedVec <$inner:ty>) => { Vec<$inner> }; (LengthInferredVecU8) => { @@ -23,10 +23,10 @@ macro_rules! user_type_convert_to_writeable { (VarInt, $e:expr) => { VarInt(*$e as i32) }; - (VarIntPrefixedVec <$inner:ident>, $e:expr) => { + (VarIntPrefixedVec <$inner:ty>, $e:expr) => { VarIntPrefixedVec::from($e.as_slice()) }; - (ShortPrefixedVec <$inner:ident>, $e:expr) => { + (ShortPrefixedVec <$inner:ty>, $e:expr) => { ShortPrefixedVec::from($e.as_slice()) }; (LengthInferredVecU8, $e:expr) => { @@ -43,48 +43,59 @@ macro_rules! user_type_convert_to_writeable { macro_rules! packets { ( $( - $packet:ident { - $( - $field:ident $typ:ident $(<$generics:ident>)? - );* $(;)? - } $(,)? + $packet:ident + $( + { + $( + $field:ident $typ:ident $(<$generics:ty>)? + );* $(;)? + } + )? $(,)? )* ) => { $( #[derive(Debug, Clone)] pub struct $packet { $( - pub $field: user_type!($typ $(<$generics>)?), - )* + $( + pub $field: user_type!($typ $(<$generics>)?), + )* + )? } #[allow(unused_imports, unused_variables)] - impl crate::Readable for $packet { - fn read(buffer: &mut ::std::io::Cursor<&[u8]>, version: crate::ProtocolVersion) -> anyhow::Result + impl $crate::Readable for $packet { + fn read(buffer: &mut ::std::io::Cursor<&[u8]>, version: $crate::ProtocolVersion) -> anyhow::Result where Self: Sized { use anyhow::Context as _; $( - let $field = <$typ $(<$generics>)?>::read(buffer, version) - .context(concat!("failed to read field `", stringify!($field), "` of packet `", stringify!($packet), "`"))? - .into(); - )* + $( + let $field = <$typ $(<$generics>)?>::read(buffer, version) + .context(concat!("failed to read field `", stringify!($field), "` of packet `", stringify!($packet), "`"))? + .into(); + )* + )? Ok(Self { $( - $field, - )* + $( + $field, + )* + )? }) } } #[allow(unused_variables)] - impl crate::Writeable for $packet { - fn write(&self, buffer: &mut Vec, version: crate::ProtocolVersion) -> anyhow::Result<()> { + impl $crate::Writeable for $packet { + fn write(&self, buffer: &mut Vec, version: $crate::ProtocolVersion) -> anyhow::Result<()> { $( - user_type_convert_to_writeable!($typ $(<$generics>)?, &self.$field).write(buffer, version)?; - )* + $( + user_type_convert_to_writeable!($typ $(<$generics>)?, &self.$field).write(buffer, version)?; + )* + )? Ok(()) } } @@ -130,8 +141,8 @@ macro_rules! def_enum { )* } - impl crate::Readable for $ident { - fn read(buffer: &mut ::std::io::Cursor<&[u8]>, version: crate::ProtocolVersion) -> anyhow::Result + impl $crate::Readable for $ident { + fn read(buffer: &mut ::std::io::Cursor<&[u8]>, version: $crate::ProtocolVersion) -> anyhow::Result where Self: Sized { @@ -169,8 +180,8 @@ macro_rules! def_enum { } } - impl crate::Writeable for $ident { - fn write(&self, buffer: &mut Vec, version: crate::ProtocolVersion) -> anyhow::Result<()> { + impl $crate::Writeable for $ident { + fn write(&self, buffer: &mut Vec, version: $crate::ProtocolVersion) -> anyhow::Result<()> { match self { $( $ident::$variant $( @@ -219,8 +230,8 @@ macro_rules! packet_enum { } } - impl crate::Readable for $ident { - fn read(buffer: &mut ::std::io::Cursor<&[u8]>, version: crate::ProtocolVersion) -> anyhow::Result + impl $crate::Readable for $ident { + fn read(buffer: &mut ::std::io::Cursor<&[u8]>, version: $crate::ProtocolVersion) -> anyhow::Result where Self: Sized { @@ -234,8 +245,8 @@ macro_rules! packet_enum { } } - impl crate::Writeable for $ident { - fn write(&self, buffer: &mut Vec, version: crate::ProtocolVersion) -> anyhow::Result<()> { + impl $crate::Writeable for $ident { + fn write(&self, buffer: &mut Vec, version: $crate::ProtocolVersion) -> anyhow::Result<()> { VarInt(self.id() as i32).write(buffer, version)?; match self { $( @@ -284,11 +295,5 @@ pub trait VariantOf { Self: Sized; } -use crate::io::{Angle, LengthInferredVecU8, Nbt, ShortPrefixedVec, VarInt, VarIntPrefixedVec}; -use crate::Slot; -use base::BlockId; -use nbt::Blob; -use uuid::Uuid; - pub mod client; pub mod server; diff --git a/feather/protocol/src/packets/client.rs b/feather/protocol/src/packets/client.rs index 3708c12a4..0fc218ee5 100644 --- a/feather/protocol/src/packets/client.rs +++ b/feather/protocol/src/packets/client.rs @@ -1,7 +1,6 @@ //! Packets sent from client to server. - -use super::*; - +use crate::VarInt; +use crate::VariantOf; mod handshake; mod login; mod play; @@ -35,29 +34,29 @@ packet_enum!(ClientPlayPacket { 0x04 = ClientStatus, 0x05 = ClientSettings, 0x06 = TabComplete, - 0x07 = WindowConfirmation, - 0x08 = ClickWindowButton, - 0x09 = ClickWindow, - 0x0A = CloseWindow, - 0x0B = PluginMessage, - 0x0C = EditBook, - 0x0D = QueryEntityNbt, - 0x0E = InteractEntity, - 0x0F = GenerateStructure, - 0x10 = KeepAlive, - 0x11 = LockDifficulty, - 0x12 = PlayerPosition, - 0x13 = PlayerPositionAndRotation, - 0x14 = PlayerRotation, - 0x15 = PlayerMovement, - 0x16 = VehicleMove, - 0x17 = SteerBoat, - 0x18 = PickItem, - 0x19 = CraftRecipeRequest, - 0x1A = PlayerAbilities, - 0x1B = PlayerDigging, - 0x1C = EntityAction, - 0x1D = SteerVehicle, + 0x07 = ClickWindowButton, + 0x08 = ClickWindow, + 0x09 = CloseWindow, + 0x0A = PluginMessage, + 0x0B = EditBook, + 0x0C = QueryEntityNbt, + 0x0D = InteractEntity, + 0x0E = GenerateStructure, + 0x0F = KeepAlive, + 0x10 = LockDifficulty, + 0x11 = PlayerPosition, + 0x12 = PlayerPositionAndRotation, + 0x13 = PlayerRotation, + 0x14 = PlayerMovement, + 0x15 = VehicleMove, + 0x16 = SteerBoat, + 0x17 = PickItem, + 0x18 = CraftRecipeRequest, + 0x19 = PlayerAbilities, + 0x1A = PlayerDigging, + 0x1B = EntityAction, + 0x1C = SteerVehicle, + 0x1D = Pong, 0x1E = SetDisplayedRecipe, 0x1F = SetRecipeBookState, 0x20 = NameItem, diff --git a/feather/protocol/src/packets/client/handshake.rs b/feather/protocol/src/packets/client/handshake.rs index 70fa2ec51..57ecc5173 100644 --- a/feather/protocol/src/packets/client/handshake.rs +++ b/feather/protocol/src/packets/client/handshake.rs @@ -1,4 +1,4 @@ -use super::*; +use crate::VarInt; def_enum! { HandshakeState (VarInt) { diff --git a/feather/protocol/src/packets/client/login.rs b/feather/protocol/src/packets/client/login.rs index 8e3694eab..ab09b976a 100644 --- a/feather/protocol/src/packets/client/login.rs +++ b/feather/protocol/src/packets/client/login.rs @@ -1,4 +1,6 @@ -use super::*; +use crate::io::LengthInferredVecU8; +use crate::io::VarIntPrefixedVec; +use crate::VarInt; packets! { LoginStart { diff --git a/feather/protocol/src/packets/client/play.rs b/feather/protocol/src/packets/client/play.rs index 5b4b4311d..dd1c61c4a 100644 --- a/feather/protocol/src/packets/client/play.rs +++ b/feather/protocol/src/packets/client/play.rs @@ -1,7 +1,10 @@ -use base::ValidBlockPosition; - -use super::*; +use crate::io::LengthInferredVecU8; +use crate::io::VarIntPrefixedVec; use crate::packets::server::Hand; +use crate::Slot; +use crate::VarInt; +use base::ValidBlockPosition; +use uuid::Uuid; packets! { TeleportConfirm { @@ -42,6 +45,8 @@ packets! { chat_colors bool; displayed_skin_parts u8; main_hand VarInt; + enable_text_filtering bool; + allow_listing bool; } } @@ -59,12 +64,6 @@ packets! { text String; } - WindowConfirmation { - window_id u8; - action_number u16; - accepted bool; - } - ClickWindowButton { window_id u8; button_id u8; @@ -72,10 +71,11 @@ packets! { ClickWindow { window_id u8; + state_id VarInt; slot i16; button i8; - action_number u16; mode VarInt; + slots VarIntPrefixedVec<(u16, Slot)>; clicked_item Slot; } @@ -182,6 +182,10 @@ packets! { flags u8; } + Pong { + id i32; + } + SetDisplayedRecipe { recipe_id String; } diff --git a/feather/protocol/src/packets/client/status.rs b/feather/protocol/src/packets/client/status.rs index ec9dd3b9b..91b15b651 100644 --- a/feather/protocol/src/packets/client/status.rs +++ b/feather/protocol/src/packets/client/status.rs @@ -1,5 +1,5 @@ packets! { - Request {} + Request Ping { payload i64; diff --git a/feather/protocol/src/packets/server.rs b/feather/protocol/src/packets/server.rs index 2c761925e..d79585fd7 100644 --- a/feather/protocol/src/packets/server.rs +++ b/feather/protocol/src/packets/server.rs @@ -1,6 +1,6 @@ //! Packets sent from server to client; - -use super::*; +use crate::VarInt; +use crate::VariantOf; mod login; mod play; @@ -29,91 +29,103 @@ packet_enum!(ServerPlayPacket { 0x02 = SpawnLivingEntity, 0x03 = SpawnPainting, 0x04 = SpawnPlayer, - 0x05 = EntityAnimation, - 0x06 = Statistics, - 0x07 = AcknowledgePlayerDigging, - 0x08 = BlockBreakAnimation, - 0x09 = BlockEntityData, - 0x0A = BlockAction, - 0x0B = BlockChange, - 0x0C = BossBar, - 0x0D = ServerDifficulty, - 0x0E = ChatMessage, - 0x0F = TabComplete, - 0x10 = DeclareCommands, - 0x11 = WindowConfirmation, - 0x12 = CloseWindow, - 0x13 = WindowItems, - 0x14 = WindowProperty, - 0x15 = SetSlot, - 0x16 = SetCooldown, - 0x17 = PluginMessage, - 0x18 = NamedSoundEffect, - 0x19 = Disconnect, - 0x1A = EntityStatus, - 0x1B = Explosion, - 0x1C = UnloadChunk, - 0x1D = ChangeGameState, - 0x1E = OpenHorseWindow, - 0x1F = KeepAlive, - 0x20 = ChunkData, - 0x21 = Effect, - 0x22 = Particle, - 0x23 = UpdateLight, - 0x24 = JoinGame, - 0x25 = MapData, - 0x26 = TradeList, - 0x27 = EntityPosition, - 0x28 = EntityPositionAndRotation, - 0x29 = EntityRotation, - 0x2A = EntityMovement, - 0x2B = VehicleMove, - 0x2C = OpenBook, - 0x2D = OpenWindow, - 0x2E = OpenSignEditor, - 0x2F = CraftRecipeResponse, - 0x30 = PlayerAbilities, - 0x31 = CombatEvent, - 0x32 = PlayerInfo, - 0x33 = FacePlayer, - 0x34 = PlayerPositionAndLook, - 0x35 = UnlockRecipes, - 0x36 = DestroyEntities, - 0x37 = RemoveEntityEffect, - 0x38 = ResourcePack, - 0x39 = Respawn, - 0x3A = EntityHeadLook, - 0x3B = MultiBlockChange, - 0x3C = SelectAdvancementTab, - 0x3D = WorldBorder, - 0x3E = Camera, - 0x3F = HeldItemChange, - 0x40 = UpdateViewPosition, - 0x41 = UpdateViewDistance, - 0x42 = SpawnPosition, - 0x43 = DisplayScoreboard, - 0x44 = SendEntityMetadata, - 0x45 = AttachEntity, - 0x46 = EntityVelocity, - 0x47 = EntityEquipment, - 0x48 = SetExperience, - 0x49 = UpdateHealth, - 0x4A = ScoreboardObjective, - 0x4B = SetPassengers, - 0x4C = Teams, - 0x4D = UpdateScore, - 0x4E = TimeUpdate, - 0x4F = Title, - 0x50 = EntitySoundEffect, - 0x51 = SoundEffect, - 0x52 = StopSound, - 0x53 = PlayerListHeaderAndFooter, - 0x54 = NbtQueryResponse, - 0x55 = CollectItem, - 0x56 = EntityTeleport, - 0x57 = Advancements, - 0x58 = EntityProperties, - 0x59 = EntityEffect, - 0x5A = DeclareRecipes, - 0x5B = AllTags, + 0x05 = SculkVibrationSignal, + 0x06 = EntityAnimation, + 0x07 = Statistics, + 0x08 = AcknowledgePlayerDigging, + 0x09 = BlockBreakAnimation, + 0x0A = BlockEntityData, + 0x0B = BlockAction, + 0x0C = BlockChange, + 0x0D = BossBar, + 0x0E = ServerDifficulty, + 0x0F = ChatMessage, + 0x10 = ClearTitles, + 0x11 = TabComplete, + 0x12 = DeclareCommands, + 0x13 = CloseWindow, + 0x14 = WindowItems, + 0x15 = WindowProperty, + 0x16 = SetSlot, + 0x17 = SetCooldown, + 0x18 = PluginMessage, + 0x19 = NamedSoundEffect, + 0x1A = Disconnect, + 0x1B = EntityStatus, + 0x1C = Explosion, + 0x1D = UnloadChunk, + 0x1E = ChangeGameState, + 0x1F = OpenHorseWindow, + 0x20 = InitializeWorldBorder, + 0x21 = KeepAlive, + 0x22 = ChunkData, + 0x23 = Effect, + 0x24 = Particle, + 0x25 = UpdateLight, + 0x26 = JoinGame, + 0x27 = MapData, + 0x28 = TradeList, + 0x29 = EntityPosition, + 0x2A = EntityPositionAndRotation, + 0x2B = EntityRotation, + 0x2C = VehicleMove, + 0x2D = OpenBook, + 0x2E = OpenWindow, + 0x2F = OpenSignEditor, + 0x30 = Ping, + 0x31 = CraftRecipeResponse, + 0x32 = PlayerAbilities, + 0x33 = EndCombatEvent, + 0x34 = EnterCombatEvent, + 0x35 = DeathCombatEvent, + 0x36 = PlayerInfo, + 0x37 = FacePlayer, + 0x38 = PlayerPositionAndLook, + 0x39 = UnlockRecipes, + 0x3A = DestroyEntities, + 0x3B = RemoveEntityEffect, + 0x3C = ResourcePack, + 0x3D = Respawn, + 0x3E = EntityHeadLook, + 0x3F = MultiBlockChange, + 0x40 = SelectAdvancementTab, + 0x41 = ActionBar, + 0x42 = WorldBorderCenter, + 0x43 = WorldBorderLerpSize, + 0x44 = WorldBorderSize, + 0x45 = WorldBorderWarningDelay, + 0x46 = WorldBorderWarningReach, + 0x47 = Camera, + 0x48 = HeldItemChange, + 0x49 = UpdateViewPosition, + 0x4A = UpdateViewDistance, + 0x4B = SpawnPosition, + 0x4C = DisplayScoreboard, + 0x4D = SendEntityMetadata, + 0x4E = AttachEntity, + 0x4F = EntityVelocity, + 0x50 = EntityEquipment, + 0x51 = SetExperience, + 0x52 = UpdateHealth, + 0x53 = ScoreboardObjective, + 0x54 = SetPassengers, + 0x55 = Teams, + 0x56 = UpdateScore, + 0x57 = UpdateSimulationDistance, + 0x58 = SetTitleSubtitle, + 0x59 = TimeUpdate, + 0x5A = SetTitleText, + 0x5B = SetTitleTimes, + 0x5C = EntitySoundEffect, + 0x5D = SoundEffect, + 0x5E = StopSound, + 0x5F = PlayerListHeaderAndFooter, + 0x60 = NbtQueryResponse, + 0x61 = CollectItem, + 0x62 = EntityTeleport, + 0x63 = Advancements, + 0x64 = EntityProperties, + 0x65 = EntityEffect, + 0x66 = DeclareRecipes, + 0x67 = AllTags, }); diff --git a/feather/protocol/src/packets/server/login.rs b/feather/protocol/src/packets/server/login.rs index 6626d3130..72efb8a2b 100644 --- a/feather/protocol/src/packets/server/login.rs +++ b/feather/protocol/src/packets/server/login.rs @@ -1,4 +1,7 @@ -use super::*; +use crate::io::LengthInferredVecU8; +use crate::io::VarIntPrefixedVec; +use crate::VarInt; +use uuid::Uuid; packets! { DisconnectLogin { diff --git a/feather/protocol/src/packets/server/play.rs b/feather/protocol/src/packets/server/play.rs index 01c83b03f..b43ab7233 100644 --- a/feather/protocol/src/packets/server/play.rs +++ b/feather/protocol/src/packets/server/play.rs @@ -1,15 +1,25 @@ -use anyhow::bail; - -use base::{ - BlockState, EntityMetadata, Gamemode, ParticleKind, ProfileProperty, ValidBlockPosition, -}; -pub use chunk_data::{ChunkData, ChunkDataKind}; +use crate::io::Angle; +use crate::io::LengthInferredVecU8; +use crate::io::VarIntPrefixedVec; +use crate::Nbt; +use crate::VarLong; +use base::EntityMetadata; +use base::ValidBlockPosition; use quill_common::components::PreviousGamemode; -pub use update_light::UpdateLight; +use std::collections::HashMap; +use uuid::Uuid; -use crate::{io::VarLong, Readable, Writeable}; - -use super::*; +use anyhow::bail; +use base::biome::BiomeInfo; +use base::world::DimensionTypeInfo; +use base::{ParticleKind, ProfileProperty}; +use serde::{Deserialize, Serialize}; + +use crate::{ProtocolVersion, Readable, Slot, VarInt, Writeable}; +pub use chunk_data::ChunkData; +use libcraft_blocks::BlockId; +use libcraft_core::Gamemode; +pub use update_light::UpdateLight; mod chunk_data; mod update_light; @@ -81,6 +91,25 @@ packets! { pitch Angle; } + SculkVibrationSignal { + source_position ValidBlockPosition; + destination SculkVibrationDestination; + arrival_ticks VarInt; + } +} + +def_enum! { + SculkVibrationDestination (String) { + "block" = Block { + position ValidBlockPosition; + }, + "entity" = Entity { + entity_id VarInt; + } + } +} + +packets! { EntityAnimation { entity_id VarInt; animation Animation; @@ -134,8 +163,8 @@ packets! { BlockEntityData { position ValidBlockPosition; - action u8; - data Nbt; + block_entity_type VarInt; + data Nbt; } BlockAction { @@ -254,19 +283,15 @@ packets! { __todo__ LengthInferredVecU8; } - WindowConfirmation { - window_id u8; - action_number i16; - is_accepted bool; - } - CloseWindow { window_id u8; } WindowItems { window_id u8; - items ShortPrefixedVec; + state_id VarInt; + items VarIntPrefixedVec; + cursor_item Slot; } WindowProperty { @@ -277,6 +302,7 @@ packets! { SetSlot { window_id u8; + state_id VarInt; slot i16; slot_data Slot; } @@ -377,16 +403,17 @@ packets! { entity_id i32; is_hardcore bool; gamemode Gamemode; - previous_gamemode PreviousGamemode; // can be -1 if "not set", otherwise corresponds to a gamemode ID - world_names VarIntPrefixedVec; + previous_gamemode PreviousGamemode; + dimension_names VarIntPrefixedVec; - dimension_codec Nbt; - dimension Nbt; + dimension_codec Nbt; + dimension Nbt; - world_name String; + dimension_name String; hashed_seed u64; max_players VarInt; view_distance VarInt; + simulation_distance VarInt; reduced_debug_info bool; enable_respawn_screen bool; @@ -395,17 +422,42 @@ packets! { } } +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct DimensionCodec { + #[serde(flatten)] + pub registries: HashMap, +} + +#[derive(Debug, Serialize, Deserialize, Clone)] +#[serde(tag = "type", content = "value")] +pub enum DimensionCodecRegistry { + #[serde(rename = "minecraft:dimension_type")] + DimensionType(Vec>), + #[serde(rename = "minecraft:worldgen/biome")] + WorldgenBiome(Vec>), +} + +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct DimensionCodecEntry { + pub name: String, + pub id: i16, + pub element: T, +} + packets! { MapData { map_id VarInt; scale i8; - show_tracking_position bool; is_locked bool; - icons VarIntPrefixedVec; - // TODO: a bunch of fields only if a Columns is set to 0 + icon Option; + // TODO: and a bunch of fields only if a Columns is set to 0 __todo__ LengthInferredVecU8; } + WrappedIcon { + icon VarIntPrefixedVec; + } + Icon { kind VarInt; x i8; @@ -478,6 +530,10 @@ packets! { position ValidBlockPosition; } + Ping { + id i32; + } + CraftRecipeResponse { window_id i8; recipe String; @@ -489,23 +545,17 @@ packets! { fov_modifier f32; } - CombatEvent { - event CombatEventKind; + EndCombatEvent { + duration VarInt; + entity_id i32; } -} -def_enum! { - CombatEventKind (VarInt) { - 0 = EnterCombat, - 1 = EndCombat { - duration VarInt; - entity_id i32; - }, - 2 = EntityDead { - player_id VarInt; - entity_id i32; - message String; - } + EnterCombatEvent + + DeathCombatEvent { + player_id VarInt; + entity_id i32; + message String; } } @@ -524,10 +574,7 @@ pub struct Particle { } impl Readable for Particle { - fn read( - buffer: &mut std::io::Cursor<&[u8]>, - version: crate::ProtocolVersion, - ) -> anyhow::Result + fn read(buffer: &mut std::io::Cursor<&[u8]>, version: ProtocolVersion) -> anyhow::Result where Self: Sized, { @@ -557,11 +604,11 @@ impl Readable for Particle { } ParticleKind::Block(ref mut block_state) => { let state = VarInt::read(buffer, version)?; - *block_state = BlockState::from_id(state.0 as u16).unwrap(); + *block_state = BlockId::from_vanilla_id(state.0 as u16).unwrap(); } ParticleKind::FallingDust(ref mut block_state) => { let state = VarInt::read(buffer, version)?; - *block_state = BlockState::from_id(state.0 as u16).unwrap(); + *block_state = BlockId::from_vanilla_id(state.0 as u16).unwrap(); } ParticleKind::Item(ref mut item) => { let _slot = Slot::read(buffer, version)?; @@ -586,7 +633,7 @@ impl Readable for Particle { } impl Writeable for Particle { - fn write(&self, buffer: &mut Vec, version: crate::ProtocolVersion) -> anyhow::Result<()> { + fn write(&self, buffer: &mut Vec, version: ProtocolVersion) -> anyhow::Result<()> { self.particle_kind.id().write(buffer, version)?; self.long_distance.write(buffer, version)?; self.x.write(buffer, version)?; @@ -611,10 +658,10 @@ impl Writeable for Particle { scale.write(buffer, version)?; } ParticleKind::Block(block_state) => { - VarInt(block_state.id() as i32).write(buffer, version)?; + VarInt(block_state.vanilla_id() as i32).write(buffer, version)?; } ParticleKind::FallingDust(block_state) => { - VarInt(block_state.id() as i32).write(buffer, version)?; + VarInt(block_state.vanilla_id() as i32).write(buffer, version)?; } ParticleKind::Item(_item) => { todo![]; @@ -645,10 +692,7 @@ pub enum PlayerInfo { } impl Readable for PlayerInfo { - fn read( - buffer: &mut std::io::Cursor<&[u8]>, - version: crate::ProtocolVersion, - ) -> anyhow::Result + fn read(buffer: &mut std::io::Cursor<&[u8]>, version: ProtocolVersion) -> anyhow::Result where Self: Sized, { @@ -742,7 +786,7 @@ impl Readable for PlayerInfo { } impl Writeable for PlayerInfo { - fn write(&self, buffer: &mut Vec, version: crate::ProtocolVersion) -> anyhow::Result<()> { + fn write(&self, buffer: &mut Vec, version: ProtocolVersion) -> anyhow::Result<()> { let (action_id, num_players) = match self { PlayerInfo::AddPlayers(vec) => (0, vec.len()), PlayerInfo::UpdateGamemodes(vec) => (1, vec.len()), @@ -829,6 +873,7 @@ packets! { pitch f32; flags u8; teleport_id VarInt; + dismount_vehicle bool; } UnlockRecipes { @@ -847,14 +892,16 @@ packets! { ResourcePack { url String; hash String; + forced bool; + prompt_message Option; } Respawn { - dimension Nbt; - world_name String; + dimension Nbt; + dimension_name String; hashed_seed u64; gamemode Gamemode; - previous_gamemode Gamemode; + previous_gamemode PreviousGamemode; is_debug bool; is_flat bool; copy_metadata bool; @@ -868,6 +915,44 @@ packets! { SelectAdvancementTab { identifier Option; } + + ActionBar { + action_bar_text String; + } + + WorldBorderSize { + diameter f64; + } + + WorldBorderLerpSize { + old_diameter f64; + new_diameter f64; + speed u64; + } + + WorldBorderCenter { + x f64; + z f64; + } + + InitializeWorldBorder { + x f64; + z f64; + old_diameter f64; + new_diameter f64; + speed VarLong; + portal_teeport_boundary VarInt; + warning_time VarInt; + warning_blocks VarInt; + } + + WorldBorderWarningDelay { + warning_time VarInt; + } + + WorldBorderWarningReach { + warning_blocks VarInt; + } } def_enum! { @@ -951,10 +1036,7 @@ pub struct EntityEquipment { } impl Readable for EntityEquipment { - fn read( - buffer: &mut std::io::Cursor<&[u8]>, - version: crate::ProtocolVersion, - ) -> anyhow::Result + fn read(buffer: &mut std::io::Cursor<&[u8]>, version: ProtocolVersion) -> anyhow::Result where Self: Sized, { @@ -989,7 +1071,7 @@ impl Readable for EntityEquipment { } impl Writeable for EntityEquipment { - fn write(&self, buffer: &mut Vec, version: crate::ProtocolVersion) -> anyhow::Result<()> { + fn write(&self, buffer: &mut Vec, version: ProtocolVersion) -> anyhow::Result<()> { VarInt(self.entity_id).write(buffer, version)?; for (i, entry) in self.entries.iter().enumerate() { @@ -1099,8 +1181,13 @@ packets! { value Option; } + UpdateSimulationDistance { + simulation_distance VarInt; + } + SpawnPosition { position ValidBlockPosition; + angle f32; } TimeUpdate { @@ -1109,24 +1196,23 @@ packets! { } } -def_enum! { - Title (VarInt) { - 0 = SetTitle { - text String; - }, - 1 = SetSubtitle { - text String; - }, - 2 = SetActionBar { - text String; - }, - 3 = SetTimesAndDisplay { - fade_in i32; - stay i32; - fade_out i32; - }, - 4 = Hide, - 5 = Reset, +packets! { + ClearTitles { + reset bool; + } + + SetTitleSubtitle { + subtitle_text String; + } + + SetTitleText { + title_text String; + } + + SetTitleTimes { + fade_in i32; + stay i32; + fade_out i32; } } @@ -1162,7 +1248,7 @@ packets! { NbtQueryResponse { transaction_id VarInt; - nbt Nbt; + nbt Nbt; } CollectItem { @@ -1281,10 +1367,12 @@ packets! { } AllTags { - block_tags VarIntPrefixedVec; - item_tags VarIntPrefixedVec; - fluid_tags VarIntPrefixedVec; - entity_tags VarIntPrefixedVec; + tags VarIntPrefixedVec; + } + + TagRegistry { + tag_type TagType; + tags VarIntPrefixedVec; } Tag { @@ -1292,3 +1380,13 @@ packets! { entries VarIntPrefixedVec; } } + +def_enum! { + TagType (String) { + "minecraft:block" = Block, + "minecraft:item" = Item, + "minecraft:fluid" = Fluid, + "minecraft:entity_type" = EntityType, + "minecraft:game_event" = GameEvent + } +} diff --git a/feather/protocol/src/packets/server/play/chunk_data.rs b/feather/protocol/src/packets/server/play/chunk_data.rs index 56e20acfa..9d170a26f 100644 --- a/feather/protocol/src/packets/server/play/chunk_data.rs +++ b/feather/protocol/src/packets/server/play/chunk_data.rs @@ -1,281 +1,109 @@ -use std::{ - fmt::{self, Debug}, - marker::PhantomData, - sync::Arc, -}; +use std::borrow::Cow; +use std::fmt::{self, Debug}; -use base::{Chunk, ChunkHandle, ChunkLock, ChunkPosition, ChunkSection}; -use blocks::BlockId; -use libcraft_core::Biome; -use serde::{ - de, - de::{SeqAccess, Visitor}, - Deserialize, Deserializer, Serialize, -}; +use either::Either; +use serde::{Deserialize, Serialize}; -use crate::{io::VarInt, Nbt, ProtocolVersion, Readable, Writeable}; +use base::{Chunk, ChunkHandle, ChunkSection}; +use libcraft_core::ChunkPosition; -#[derive(Serialize, Deserialize)] -struct Heightmaps { - #[serde(rename = "MOTION_BLOCKING")] - #[serde(serialize_with = "nbt::i64_array")] - #[serde(deserialize_with = "deserialize_i64_37")] - motion_blocking: [i64; 37], -} +use crate::packets::server::play::update_light::LightData; +use crate::{Nbt, ProtocolVersion, Readable, VarInt, Writeable}; -#[derive(Debug, Clone)] -pub enum ChunkDataKind { - /// Load a chunk on the client. Sends all sections + biomes. - LoadChunk, - /// Overwrite an existing chunk on the client. Sends - /// only the sections in `sections`. - OverwriteChunk { sections: Vec }, +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +struct Heightmaps<'a> { + motion_blocking: Cow<'a, [i64]>, + world_surface: Cow<'a, [i64]>, } /// Packet to load a chunk on the client. #[derive(Clone)] pub struct ChunkData { - /// The chunk to send. - pub chunk: ChunkHandle, - - /// Whether this packet will load a chunk on - /// the client or overwrite an existing one. - pub kind: ChunkDataKind, + /// The chunk to send. Serialization panics if Either::Right. Right is only + /// used for deserialization as we don't know the world height and + /// can't infer section count + pub chunk: Either, } impl Debug for ChunkData { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let mut debug_struct = f.debug_struct("ChunkData"); - debug_struct.field("position", &self.chunk.read().position()); - debug_struct.field("kind", &self.kind); + debug_struct.field( + "position", + &self + .chunk + .clone() + .map_left(|chunk| chunk.read().position()) + .into_inner(), + ); debug_struct.finish() } } -impl ChunkData { - fn should_skip_section(&self, y: usize) -> bool { - match &self.kind { - ChunkDataKind::LoadChunk => false, - ChunkDataKind::OverwriteChunk { sections } => !sections.contains(&y), - } - } -} - impl Writeable for ChunkData { fn write(&self, buffer: &mut Vec, version: ProtocolVersion) -> anyhow::Result<()> { - let chunk = self.chunk.read(); + let chunk = self.chunk.as_ref().unwrap_left().read(); chunk.position().x.write(buffer, version)?; chunk.position().z.write(buffer, version)?; - let full_chunk = matches!(self.kind, ChunkDataKind::LoadChunk); - full_chunk.write(buffer, version)?; - - // Compute primary bit mask - let mut bitmask = 0; - for (y, section) in chunk.sections().iter().enumerate().skip(1).take(16) { - if section.is_some() { - if self.should_skip_section(y) { - continue; - } - - bitmask |= 1 << (y - 1) as i32; - } - } - VarInt(bitmask).write(buffer, version)?; - let heightmaps = build_heightmaps(&chunk); Nbt(heightmaps).write(buffer, version)?; - if full_chunk { - // Write biomes (only if we're sending a new chunk) - VarInt(1024).write(buffer, version)?; // length of biomes - for &biome in chunk.biomes().as_slice() { - VarInt(biome.id() as i32).write(buffer, version)?; - } - } - // Sections let mut data = Vec::new(); - for (y, section) in chunk.sections().iter().enumerate().skip(1).take(16) { - if let Some(section) = section { - if self.should_skip_section(y) { - continue; - } - encode_section(section, &mut data, version)?; - } + for section in chunk + .sections() + .iter() + .skip(1) + .take(chunk.sections().len() - 2) + { + encode_section(section, &mut data, version)?; } VarInt(data.len() as i32).write(buffer, version)?; buffer.extend_from_slice(&data); - VarInt(0).write(buffer, version)?; // number of block entities - always 0 for Feather + VarInt(0).write(buffer, version)?; // block entities are not implemented yet + + LightData::from_full_chunk(&chunk).write(buffer, version)?; Ok(()) } } -fn build_heightmaps(chunk: &Chunk) -> Heightmaps { - let mut motion_blocking = [0; 37]; - let chunk_motion_blocking = chunk.heightmaps().motion_blocking.as_u64_slice(); - motion_blocking.copy_from_slice(bytemuck::cast_slice::<_, i64>(chunk_motion_blocking)); - Heightmaps { motion_blocking } -} - -fn encode_section( - section: &ChunkSection, - buffer: &mut Vec, - version: ProtocolVersion, -) -> anyhow::Result<()> { - (section.non_air_blocks() as u16).write(buffer, version)?; - (section.blocks().data().bits_per_value() as u8).write(buffer, version)?; - - if let Some(palette) = section.blocks().palette() { - VarInt(palette.len() as i32).write(buffer, version)?; - for &block in palette.as_slice() { - VarInt(block.vanilla_id() as i32).write(buffer, version)?; - } - } - - let data = section.blocks().data().as_u64_slice(); - VarInt(data.len() as i32).write(buffer, version)?; - for &x in data { - x.write(buffer, version)?; - } - - Ok(()) -} - -#[cfg(feature = "proxy")] impl Readable for ChunkData { fn read(buffer: &mut std::io::Cursor<&[u8]>, version: ProtocolVersion) -> anyhow::Result where Self: Sized, { - let chunk_x = i32::read(buffer, version)?; - let chunk_z = i32::read(buffer, version)?; - - let mut chunk = Chunk::new(ChunkPosition { - x: chunk_x, - z: chunk_z, - }); - - let full_chunk = bool::read(buffer, version)?; - let chunk_data_kind: ChunkDataKind = match full_chunk { - true => ChunkDataKind::LoadChunk, - false => ChunkDataKind::OverwriteChunk { sections: vec![] }, - }; - - let primary_bit_mask = VarInt::read(buffer, version)?.0; - let heightmaps: Nbt = Nbt::read(buffer, version)?; - let heightmaps = heightmaps.0; - for (heightmaps_index, i) in heightmaps.motion_blocking.iter().enumerate() { - chunk - .heightmaps_mut() - .motion_blocking - .set_height_index(heightmaps_index, *i); - } - - if full_chunk { - let biomes_length = VarInt::read(buffer, version)?.0; - assert_eq!(biomes_length, 1024); - for y in 0..64 { - for z in 0..4 { - for x in 0..4 { - chunk.biomes_mut().set( - x, - y, - z, - Biome::from_id(VarInt::read(buffer, version)?.0 as u32) - .unwrap_or(Biome::Plains), - ); - } - } - } - } - - VarInt::read(buffer, version)?; // Size of following array - - for i in 0..16 { - if (primary_bit_mask & (1 << i)) != 0 { - if chunk.section(i).is_none() { - chunk.set_section_at(i as isize, Some(ChunkSection::default())); - } - if let Some(section) = chunk.section_mut(i + 1) { - let non_air_blocks = u16::read(buffer, version)?; - section - .blocks_mut() - .set_air_blocks(4096 - non_air_blocks as u32); - let bits_per_block = u8::read(buffer, version)?; - section - .blocks_mut() - .data_mut() - .set_bits_per_value(bits_per_block as usize); - if bits_per_block <= 4 || (5..=8).contains(&bits_per_block) { - if let Some(pallete) = section.blocks_mut().palette_mut() { - let pallete_length = VarInt::read(buffer, version)?.0 as usize; - for _ in 0..pallete_length { - let block_id = VarInt::read(buffer, version)?.0; - pallete.index_or_insert(BlockId::from_vanilla_id(block_id as u16)); - } - } - } - let data_length = VarInt::read(buffer, version)?.0 as usize; - for i in 0..data_length { - section.blocks_mut().data_mut().as_u64_mut_vec()[i] = - u64::read(buffer, version)?; - } - } - } - } - - VarInt::read(buffer, version)?; // Block entities length, redundant for feather right now - - Ok(Self { - chunk: Arc::new(ChunkLock::new(chunk, true)), - kind: chunk_data_kind, + Ok(ChunkData { + chunk: Either::Right(ChunkPosition::new( + i32::read(buffer, version)?, + i32::read(buffer, version)?, + )), }) } } -fn deserialize_i64_37<'de, D>(deserializer: D) -> Result<[i64; 37], D::Error> -where - D: Deserializer<'de>, -{ - struct MaxVisitor(PhantomData [i64; 37]>); - - impl<'de> Visitor<'de> for MaxVisitor { - type Value = [i64; 37]; - - fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - formatter.write_str("a sequence of 37 numbers") - } - - fn visit_seq(self, mut seq: S) -> Result<[i64; 37], S::Error> - where - S: SeqAccess<'de>, - { - let mut res = [0; 37]; - let mut index: usize = 0; - - while let Some(value) = seq.next_element()? { - res[index] = value; - index += 1; - } - - if index != 37 { - return Err(de::Error::custom(format!( - "expected 37 numbers, found {}", - index - ))); - } - - Ok(res) - } +fn build_heightmaps(chunk: &Chunk) -> Heightmaps { + let chunk_motion_blocking = chunk.heightmaps().motion_blocking.as_u64_slice(); + let chunk_world_surface = chunk.heightmaps().motion_blocking.as_u64_slice(); + let motion_blocking = Cow::Borrowed(bytemuck::cast_slice(chunk_motion_blocking)); + let world_surface = Cow::Borrowed(bytemuck::cast_slice(chunk_world_surface)); + Heightmaps { + motion_blocking, + world_surface, } +} - // Create the visitor and ask the deserializer to drive it. The - // deserializer will call visitor.visit_seq() if a seq is present in - // the input data. - let visitor = MaxVisitor(PhantomData); - deserializer.deserialize_seq(visitor) +fn encode_section( + section: &ChunkSection, + buffer: &mut Vec, + version: ProtocolVersion, +) -> anyhow::Result<()> { + (section.non_air_blocks() as u16).write(buffer, version)?; + section.blocks().write(buffer, version)?; + section.biomes().write(buffer, version)?; + Ok(()) } diff --git a/feather/protocol/src/packets/server/play/update_light.rs b/feather/protocol/src/packets/server/play/update_light.rs index 27e76c9f5..9de01ea56 100644 --- a/feather/protocol/src/packets/server/play/update_light.rs +++ b/feather/protocol/src/packets/server/play/update_light.rs @@ -1,130 +1,239 @@ -use std::{fmt::Debug, sync::Arc}; - -use base::{chunk::PackedArray, Chunk, ChunkHandle, ChunkLock, ChunkPosition, ChunkSection}; - -use crate::{io::VarInt, ProtocolVersion, Readable, Writeable}; +use crate::io::BitMask; +use crate::{ProtocolVersion, Readable, VarInt, Writeable}; +use base::chunk::{LightStore, PackedArray, SECTION_VOLUME}; +use base::Chunk; +use libcraft_core::ChunkPosition; +use std::collections::VecDeque; +use std::fmt::Debug; +use std::io::{Cursor, Read}; +use std::mem::ManuallyDrop; #[derive(Clone)] pub struct UpdateLight { - pub chunk: ChunkHandle, + pub position: ChunkPosition, + pub light: LightData, } impl Debug for UpdateLight { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let mut debug_struct = f.debug_struct("UpdateLight"); - debug_struct.field("position", &self.chunk.read().position()); - debug_struct.finish() + f.debug_struct("UpdateLight") + .field("position", &self.position) + .finish() } } impl Writeable for UpdateLight { - fn write(&self, buffer: &mut Vec, version: crate::ProtocolVersion) -> anyhow::Result<()> { - let chunk = self.chunk.read(); - VarInt(chunk.position().x).write(buffer, version)?; - VarInt(chunk.position().z).write(buffer, version)?; + fn write(&self, buffer: &mut Vec, version: ProtocolVersion) -> anyhow::Result<()> { + VarInt(self.position.x).write(buffer, version)?; + VarInt(self.position.z).write(buffer, version)?; + + self.light.write(buffer, version) + } +} + +impl Readable for UpdateLight { + fn read(buffer: &mut std::io::Cursor<&[u8]>, version: ProtocolVersion) -> anyhow::Result + where + Self: Sized, + { + let x = VarInt::read(buffer, version)?.0; + let z = VarInt::read(buffer, version)?.0; + + let light = LightData::read(buffer, version)?; + Ok(UpdateLight { + position: ChunkPosition::new(x, z), + light, + }) + } +} + +#[derive(Clone)] +pub struct LightData { + pub trust_edges: bool, + pub light: Vec>, +} + +impl LightData { + pub fn from_full_chunk(chunk: &Chunk) -> LightData { + LightData { + trust_edges: true, + light: chunk + .sections() + .iter() + .map(|s| Some(s.light().clone())) + .collect(), + } + } + pub fn from_chunk(chunk: &Chunk, sections: Vec) -> LightData { + LightData { + trust_edges: true, + light: chunk + .sections() + .iter() + .map(|s| s.light().clone()) + .enumerate() + .map(|(i, l)| if sections.contains(&i) { Some(l) } else { None }) + .collect(), + } + } +} - true.write(buffer, version)?; // trust edges? +impl Writeable for LightData { + fn write(&self, buffer: &mut Vec, version: ProtocolVersion) -> anyhow::Result<()> { + self.trust_edges.write(buffer, version)?; // trust edges? + + let mut sky_mask = BitMask::default(); + let mut empty_sky_mask = BitMask::default(); + let mut block_mask = BitMask::default(); + let mut empty_block_mask = BitMask::default(); + + let mut sky_set = 0; + let mut block_set = 0; + + for (y, light) in self.light.iter().enumerate() { + if let Some(light) = light { + if !light.sky_light().map(|l| l.is_empty()).unwrap_or(true) { + sky_mask.set(y, true); + sky_set += 1; + } else { + empty_sky_mask.set(y, true); + } - let mut mask = 0; - for (y, section) in chunk.sections().iter().enumerate() { - if section.is_some() { - mask |= 1 << y; + if !light.block_light().map(|l| l.is_empty()).unwrap_or(true) { + block_mask.set(y, true); + block_set += 1; + } else { + empty_block_mask.set(y, true); + } } } - VarInt(mask).write(buffer, version)?; // sky light mask - VarInt(mask).write(buffer, version)?; // block light mask + sky_mask.write(buffer, version)?; + block_mask.write(buffer, version)?; - VarInt(!mask).write(buffer, version)?; // empty sky light mask - VarInt(!mask).write(buffer, version)?; // empty block light mask + empty_sky_mask.write(buffer, version)?; + empty_block_mask.write(buffer, version)?; - for section in chunk.sections().iter().flatten() { - encode_light(section.light().sky_light(), buffer, version); + VarInt(sky_set).write(buffer, version)?; + for (i, light) in self.light.iter().enumerate() { + if sky_mask.is_set(i) { + encode_light( + light.as_ref().unwrap().sky_light().unwrap(), + buffer, + version, + )?; + } } - for section in chunk.sections().iter().flatten() { - encode_light(section.light().block_light(), buffer, version); + VarInt(block_set).write(buffer, version)?; + for (i, light) in self.light.iter().enumerate() { + if block_mask.is_set(i) { + encode_light( + light.as_ref().unwrap().block_light().unwrap(), + buffer, + version, + )?; + } } Ok(()) } } -fn encode_light(light: &PackedArray, buffer: &mut Vec, version: ProtocolVersion) { - VarInt(2048).write(buffer, version).unwrap(); - let light_data: &[u8] = bytemuck::cast_slice(light.as_u64_slice()); - assert_eq!(light_data.len(), 2048); - buffer.extend_from_slice(light_data); -} - -#[cfg(feature = "proxy")] -impl Readable for UpdateLight { - fn read( - buffer: &mut std::io::Cursor<&[u8]>, - version: crate::ProtocolVersion, - ) -> anyhow::Result +impl Readable for LightData { + fn read(buffer: &mut Cursor<&[u8]>, version: ProtocolVersion) -> anyhow::Result where Self: Sized, { - let mut chunk = Chunk::new(ChunkPosition { - x: VarInt::read(buffer, version)?.0, - z: VarInt::read(buffer, version)?.0, - }); - - let _trust_edges = bool::read(buffer, version)?; - - let sky_light_mask = VarInt::read(buffer, version)?.0; - let block_light_mask = VarInt::read(buffer, version)?.0; - let _empty_sky_light_mask = VarInt::read(buffer, version)?; - let _empty_block_light_mask = VarInt::read(buffer, version)?; - - for i in 0..18 { - if (sky_light_mask & (1 << i)) != 0 { - let probably_2048 = VarInt::read(buffer, version)?.0 as usize; - assert_eq!(probably_2048, 2048); - let mut bytes: Vec = Vec::new(); - for _ in 0..probably_2048 { - bytes.push(u8::read(buffer, version)?); - } - let mut bytes = bytes.iter(); - if chunk.section(i).is_none() { - chunk.set_section_at(i as isize, Some(ChunkSection::default())); - } - if let Some(section) = chunk.section_mut(i + 1) { - for x in 0..16 { - for y in 0..16 { - for z in 0..16 { - section.set_sky_light_at(x, y, z, *bytes.next().unwrap_or(&15)); - } - } - } - } + let trust_edges = bool::read(buffer, version)?; + + let sky_mask = BitMask::read(buffer, version)?; + let block_mask = BitMask::read(buffer, version)?; + + let empty_sky_mask = BitMask::read(buffer, version)?; + let empty_block_mask = BitMask::read(buffer, version)?; + + let sky_set = VarInt::read(buffer, version)?.0 as usize; + let mut sky_light_sections = VecDeque::new(); + for _ in 0..sky_set { + sky_light_sections.push_back(decode_light(buffer, version)?); + } + let mut sky_light = Vec::new(); + // We don't have the world height, try to infer the max section count + for i in 0..sky_mask.max_len() { + if sky_mask.is_set(i) { + sky_light.push(sky_light_sections.pop_front()) + } else if empty_sky_mask.is_set(i) { + sky_light.push(Some(PackedArray::from_u64_vec( + vec![0; SECTION_VOLUME * 4 / u64::BITS as usize], + 4, + ))) + } else { + sky_light.push(None) } } - for i in 0..18 { - if (block_light_mask & (1 << i)) != 0 { - let probably_2048 = VarInt::read(buffer, version)?.0 as usize; - assert_eq!(probably_2048, 2048); - let mut bytes: Vec = Vec::new(); - for _ in 0..probably_2048 { - bytes.push(u8::read(buffer, version)?); - } - let mut bytes = bytes.iter(); - if let Some(section) = chunk.section_mut(i) { - for x in 0..16 { - for y in 0..16 { - for z in 0..16 { - section.set_block_light_at(x, y, z, *bytes.next().unwrap_or(&15)); - } - } - } - } + let block_set = VarInt::read(buffer, version)?.0 as usize; + let mut block_light_sections = VecDeque::new(); + for _ in 0..block_set { + block_light_sections.push_back(decode_light(buffer, version)?); + } + let mut block_light = Vec::new(); + // We don't have the world height, try to infer the max section count + for i in 0..block_mask.max_len() { + if block_mask.is_set(i) { + block_light.push(sky_light_sections.pop_front()) + } else if empty_block_mask.is_set(i) { + block_light.push(Some(PackedArray::from_u64_vec( + vec![0; SECTION_VOLUME * 4 / u64::BITS as usize], + 4, + ))) + } else { + block_light.push(None) } } - Ok(Self { - chunk: Arc::new(ChunkLock::new(chunk, true)), + Ok(LightData { + trust_edges, + light: sky_light + .into_iter() + .zip(block_light.into_iter()) + .map(|(sky, block)| LightStore::from_packed_arrays(block, sky)) + .collect(), }) } } + +fn encode_light( + light: &PackedArray, + buffer: &mut Vec, + version: ProtocolVersion, +) -> anyhow::Result<()> { + VarInt(light.len() as i32 / 2).write(buffer, version)?; + let light_data: &[u8] = bytemuck::cast_slice(light.as_u64_slice()); + debug_assert_eq!(light_data.len(), 2048); + buffer.extend_from_slice(light_data); + Ok(()) +} + +fn decode_light( + buffer: &mut Cursor<&[u8]>, + version: ProtocolVersion, +) -> anyhow::Result { + let should_be_2048 = VarInt::read(buffer, version)?.0 as usize; + debug_assert_eq!(should_be_2048, 2048); + let mut light_data = vec![0; should_be_2048]; + buffer.read_exact(&mut light_data)?; + let mut light_data = ManuallyDrop::new(light_data); + // SAFETY: light_data is ManuallyDrop so there's no double-free + Ok(PackedArray::from_u64_vec( + unsafe { + Vec::from_raw_parts( + light_data.as_mut_ptr() as *mut u64, + light_data.len() * u8::BITS as usize / u64::BITS as usize, + light_data.capacity() * u8::BITS as usize / u64::BITS as usize, + ) + }, + 4, + )) +} diff --git a/feather/server/Cargo.toml b/feather/server/Cargo.toml index 4e9758fa4..b833ded9c 100644 --- a/feather/server/Cargo.toml +++ b/feather/server/Cargo.toml @@ -52,6 +52,11 @@ slab = "0.4" libcraft-core = { path = "../../libcraft/core" } libcraft-items = { path = "../../libcraft/items" } worldgen = { path = "../worldgen", package = "feather-worldgen" } +either = "1.6.1" +itertools = "0.10.3" +konst = "0.2.13" +const_format = "0.2.22" +data-generators = { path = "../../data_generators" } [features] default = [ "plugin-cranelift" ] diff --git a/feather/server/config.toml b/feather/server/config.toml index b0206bc8a..6ae2ae26f 100644 --- a/feather/server/config.toml +++ b/feather/server/config.toml @@ -27,15 +27,17 @@ url = "" # Optional SHA1 hash of the resource pack file. hash = "" -[world] -# The name of the directory containing the world. -name = "world" +[worlds] +# World names +worlds = [ "world" ] +# The default world where players will spawn on join +default_world = "world" # The generator to use if the world does not exist. -# Implemented values are: default, flat -generator = "default" +# Implemented values are: flat +generator = "flat" # The seed to use if the world does not exist. # Leaving this value empty will generate a random seed. -# If this value is not a valid integer (i64), the string +# If this value is not a valid integer, the string # will be converted using a hash function. seed = "" diff --git a/feather/server/src/chunk_subscriptions.rs b/feather/server/src/chunk_subscriptions.rs index ccec7a780..426f24c8f 100644 --- a/feather/server/src/chunk_subscriptions.rs +++ b/feather/server/src/chunk_subscriptions.rs @@ -35,7 +35,7 @@ pub fn register(systems: &mut SystemExecutor) { fn update_chunk_subscriptions(game: &mut Game, server: &mut Server) -> SysResult { // Update players whose views have changed for (_, (event, &client_id)) in game.ecs.query::<(&ViewUpdateEvent, &ClientId)>().iter() { - for new_chunk in event.new_view.difference(event.old_view) { + for new_chunk in event.new_view.difference(&event.old_view) { server .chunk_subscriptions .chunks @@ -43,13 +43,13 @@ fn update_chunk_subscriptions(game: &mut Game, server: &mut Server) -> SysResult .or_default() .push(client_id); } - for old_chunk in event.old_view.difference(event.new_view) { + for old_chunk in event.old_view.difference(&event.new_view) { remove_subscription(server, old_chunk, client_id); } } // Update players that have left - for (_, (_event, &client_id, &view)) in game + for (_, (_event, &client_id, view)) in game .ecs .query::<(&EntityRemoveEvent, &ClientId, &View)>() .iter() diff --git a/feather/server/src/client.rs b/feather/server/src/client.rs index 20211f39b..d745f5d99 100644 --- a/feather/server/src/client.rs +++ b/feather/server/src/client.rs @@ -1,40 +1,44 @@ -use std::{ - cell::{Cell, RefCell}, - collections::VecDeque, - io::Cursor, - sync::Arc, -}; +use itertools::Itertools; +use std::collections::HashMap; +use std::iter::FromIterator; +use std::{collections::VecDeque, sync::Arc}; use ahash::AHashSet; +use either::Either; use flume::{Receiver, Sender}; +use slab::Slab; use uuid::Uuid; +use base::biome::BiomeList; use base::{ - BlockId, ChunkHandle, ChunkPosition, EntityKind, EntityMetadata, Gamemode, Position, - ProfileProperty, Text, ValidBlockPosition, + BlockId, ChunkHandle, ChunkPosition, EntityKind, EntityMetadata, Gamemode, Particle, Position, + ProfileProperty, Text, Title, ValidBlockPosition, }; +use common::world::Dimensions; use common::{ chat::{ChatKind, ChatMessage}, Window, }; use libcraft_items::InventorySlot; -use packets::server::{Particle, SetSlot, SpawnLivingEntity, UpdateLight, WindowConfirmation}; +use packets::server::{SetSlot, SpawnLivingEntity}; use protocol::packets::server::{ - EntityPosition, EntityPositionAndRotation, EntityTeleport, HeldItemChange, PlayerAbilities, + ClearTitles, DimensionCodec, DimensionCodecEntry, DimensionCodecRegistry, EntityPosition, + EntityPositionAndRotation, EntityTeleport, HeldItemChange, PlayerAbilities, Respawn, + SetTitleSubtitle, SetTitleText, SetTitleTimes, }; use protocol::{ packets::{ self, server::{ - AddPlayer, Animation, BlockChange, ChatPosition, ChunkData, ChunkDataKind, - DestroyEntities, Disconnect, EntityAnimation, EntityHeadLook, JoinGame, KeepAlive, - PlayerInfo, PlayerPositionAndLook, PluginMessage, SendEntityMetadata, SpawnPlayer, - Title, UnloadChunk, UpdateViewPosition, WindowItems, + AddPlayer, Animation, BlockChange, ChatPosition, ChunkData, DestroyEntities, + Disconnect, EntityAnimation, EntityHeadLook, JoinGame, KeepAlive, PlayerInfo, + PlayerPositionAndLook, PluginMessage, SendEntityMetadata, SpawnPlayer, UnloadChunk, + UpdateViewPosition, WindowItems, }, }, - ClientPlayPacket, Nbt, ProtocolVersion, ServerPlayPacket, Writeable, + ClientPlayPacket, Nbt, ProtocolVersion, ServerPlayPacket, VarInt, Writeable, }; -use quill_common::components::{OnGround, PreviousGamemode}; +use quill_common::components::{EntityDimension, EntityWorld, OnGround, PreviousGamemode}; use crate::{ entities::{PreviousOnGround, PreviousPosition}, @@ -42,7 +46,6 @@ use crate::{ network_id_registry::NetworkId, Options, }; -use slab::Slab; /// Max number of chunks to send to a client per tick. const MAX_CHUNKS_PER_TICK: usize = 10; @@ -81,6 +84,10 @@ impl Clients { pub fn iter(&self) -> impl Iterator + '_ { self.slab.iter().map(|(_i, client)| client) } + + pub fn iter_mut(&mut self) -> impl Iterator + '_ { + self.slab.iter_mut().map(|(_i, client)| client) + } } /// A client connected to a server. @@ -95,21 +102,24 @@ pub struct Client { profile: Vec, uuid: Uuid, - teleport_id_counter: Cell, + teleport_id_counter: i32, network_id: Option, - sent_entities: RefCell>, + sent_entities: AHashSet, - knows_position: Cell, - known_chunks: RefCell>, + knows_position: bool, + known_chunks: AHashSet, - chunk_send_queue: RefCell>, + chunk_send_queue: VecDeque, /// The previous own position sent by the client. /// Used to detect when we need to teleport the client. - client_known_position: Cell>, + client_known_position: Option, - disconnected: Cell, + disconnected: bool, + + dimension: Option, + world: Option, } impl Client { @@ -119,25 +129,27 @@ impl Client { received_packets: player.received_packets, options, username: player.username, - teleport_id_counter: Cell::new(0), + teleport_id_counter: 0, network_id: None, profile: player.profile, uuid: player.uuid, - sent_entities: RefCell::new(AHashSet::new()), - knows_position: Cell::new(false), - known_chunks: RefCell::new(AHashSet::new()), - chunk_send_queue: RefCell::new(VecDeque::new()), - client_known_position: Cell::new(None), - disconnected: Cell::new(false), + sent_entities: AHashSet::new(), + knows_position: false, + known_chunks: AHashSet::new(), + chunk_send_queue: VecDeque::new(), + client_known_position: None, + disconnected: false, + dimension: None, + world: None, } } - pub fn set_client_known_position(&self, pos: Position) { - self.client_known_position.set(Some(pos)); + pub fn set_client_known_position(&mut self, pos: Position) { + self.client_known_position = Some(pos); } pub fn client_known_position(&self) -> Option { - self.client_known_position.get() + self.client_known_position } pub fn profile(&self) -> &[ProfileProperty] { @@ -161,27 +173,29 @@ impl Client { } pub fn is_disconnected(&self) -> bool { - self.received_packets.is_disconnected() || self.disconnected.get() + self.received_packets.is_disconnected() || self.disconnected } - pub fn known_chunks(&self) -> usize { - self.known_chunks.borrow().len() + pub fn known_chunks(&self) -> &AHashSet { + &self.known_chunks } pub fn knows_own_position(&self) -> bool { - self.knows_position.get() + self.knows_position } - pub fn tick(&self) { - let num_to_send = MAX_CHUNKS_PER_TICK.min(self.chunk_send_queue.borrow().len()); - for packet in self.chunk_send_queue.borrow_mut().drain(0..num_to_send) { + pub fn tick(&mut self) { + let num_to_send = MAX_CHUNKS_PER_TICK.min(self.chunk_send_queue.len()); + let packets = self + .chunk_send_queue + .drain(..num_to_send) + .collect::>(); + for packet in packets { log::trace!( "Sending chunk at {:?} to {}", - packet.chunk.read().position(), + packet.chunk.as_ref().unwrap_left().read().position(), self.username ); - let chunk = Arc::clone(&packet.chunk); - self.send_packet(UpdateLight { chunk }); self.send_packet(packet); } } @@ -189,41 +203,80 @@ impl Client { /// Returns whether the entity with the given ID /// is currently loaded on the client. pub fn is_entity_loaded(&self, network_id: NetworkId) -> bool { - self.sent_entities.borrow().contains(&network_id) + self.sent_entities.contains(&network_id) } pub fn set_network_id(&mut self, network_id: NetworkId) { self.network_id = Some(network_id); } - pub fn send_join_game(&self, gamemode: Gamemode, previous_gamemode: PreviousGamemode) { + pub fn send_join_game( + &mut self, + gamemode: Gamemode, + previous_gamemode: PreviousGamemode, + dimensions: &Dimensions, + biomes: &BiomeList, + max_players: i32, + dimension: EntityDimension, + world: EntityWorld, + ) { log::trace!("Sending Join Game to {}", self.username); - // Use the dimension codec sent by the default vanilla server. (Data acquired via tools/proxy) - let dimension_codec = nbt::Blob::from_reader(&mut Cursor::new(include_bytes!( - "../../../assets/dimension_codec.nbt" - ))) - .expect("dimension codec asset is malformed"); - let dimension = nbt::Blob::from_reader(&mut Cursor::new(include_bytes!( - "../../../assets/dimension.nbt" - ))) - .expect("dimension asset is malformed"); + + let dimension = dimensions.get(&*dimension).unwrap_or_else(|| panic!("Tried to spawn {} in dimension `{}` but the dimension doesn't exist! Existing dimensions: {}", self.username, *dimension, dimensions.iter().map(|dim| format!("`{}`", dim.info().r#type)).join(", "))); + let dimension_codec = DimensionCodec { + registries: HashMap::from_iter([ + ( + "minecraft:dimension_type".to_string(), + DimensionCodecRegistry::DimensionType( + dimensions + .iter() + .enumerate() + .map(|(i, dim)| DimensionCodecEntry { + name: dim.info().r#type.to_owned(), + id: i as i16, + element: dim.info().info.clone(), + }) + .collect(), + ), + ), + ( + "minecraft:worldgen/biome".to_string(), + DimensionCodecRegistry::WorldgenBiome( + biomes + .iter() + .enumerate() + .map(|(i, (name, biome))| DimensionCodecEntry { + name: name.to_owned(), + id: i as i16, + element: biome.info.clone(), + }) + .collect(), + ), + ), + ]), + }; + + self.dimension = Some(EntityDimension(dimension.info().r#type.clone())); + self.world = Some(world); self.send_packet(JoinGame { entity_id: self.network_id.expect("No network id! Use client.set_network_id(NetworkId) before calling this method.").0, is_hardcore: false, gamemode, previous_gamemode, - world_names: vec!["world".to_owned()], + dimension_names: dimensions + .iter().map(|dim| dim.info().r#type.clone()).collect(), dimension_codec: Nbt(dimension_codec), - dimension: Nbt(dimension), - world_name: "world".to_owned(), + dimension: Nbt(dimension.info().info.clone()), + dimension_name: dimension.info().r#type.clone(), hashed_seed: 0, - max_players: 0, + max_players, view_distance: self.options.view_distance as i32, + simulation_distance: self.options.view_distance as i32, reduced_debug_info: false, enable_respawn_screen: true, - is_debug: false, - is_flat: false, + is_debug: dimension.is_debug(), + is_flat: dimension.is_flat(), }); } @@ -231,7 +284,7 @@ impl Client { let mut data = Vec::new(); "Feather" .to_owned() - .write(&mut data, ProtocolVersion::V1_16_2) + .write(&mut data, ProtocolVersion::V1_18_1) .unwrap(); self.send_plugin_message("minecraft:brand", data) } @@ -245,12 +298,13 @@ impl Client { }) } - pub fn update_own_position(&self, new_position: Position) { + pub fn update_own_position(&mut self, new_position: Position) { log::trace!( "Updating position of {} to {:?}", self.username, new_position ); + self.teleport_id_counter += 1; self.send_packet(PlayerPositionAndLook { x: new_position.x, y: new_position.y, @@ -258,12 +312,41 @@ impl Client { yaw: new_position.yaw, pitch: new_position.pitch, flags: 0, - teleport_id: self.teleport_id_counter.get(), + teleport_id: self.teleport_id_counter, + dismount_vehicle: false, + }); + self.knows_position = true; + self.client_known_position = Some(new_position); + } + + pub fn move_to_dimension( + &mut self, + dimension: EntityDimension, + dimensions: &Dimensions, + gamemode: Gamemode, + previous_gamemode: PreviousGamemode, + world: EntityWorld, + ) { + let dimension = dimensions.get(&*dimension).unwrap_or_else(|| panic!("Tried to move {} to dimension `{}` but the dimension doesn't exist! Existing dimensions: {}", self.username, *dimension, dimensions.iter().map(|dim| format!("`{}`", dim.info().r#type)).join(", "))); + let dimension_info = dimension.info().info.clone(); + + self.dimension = Some(EntityDimension(dimension.info().r#type.clone())); + self.world = Some(world); + + self.send_packet(Respawn { + dimension: Nbt(dimension_info), + dimension_name: dimension.info().r#type.clone(), + hashed_seed: 0, + gamemode, + previous_gamemode, + is_debug: dimension.is_debug(), + is_flat: dimension.is_flat(), + copy_metadata: true, }); - self.teleport_id_counter - .set(self.teleport_id_counter.get() + 1); - self.knows_position.set(true); - self.client_known_position.set(Some(new_position)); + + self.knows_position = false; + self.client_known_position = None; + self.unload_all_entities(); } pub fn update_own_chunk(&self, pos: ChunkPosition) { @@ -274,20 +357,16 @@ impl Client { }); } - pub fn send_chunk(&self, chunk: &ChunkHandle) { - self.chunk_send_queue.borrow_mut().push_back(ChunkData { - chunk: Arc::clone(chunk), - kind: ChunkDataKind::LoadChunk, + pub fn send_chunk(&mut self, chunk: &ChunkHandle) { + self.chunk_send_queue.push_back(ChunkData { + chunk: Either::Left(Arc::clone(chunk)), }); - self.known_chunks - .borrow_mut() - .insert(chunk.read().position()); + self.known_chunks.insert(chunk.read().position()); } - pub fn overwrite_chunk_sections(&self, chunk: &ChunkHandle, sections: Vec) { + pub fn overwrite_chunk(&self, chunk: &ChunkHandle) { self.send_packet(ChunkData { - chunk: Arc::clone(chunk), - kind: ChunkDataKind::OverwriteChunk { sections }, + chunk: Either::Left(Arc::clone(chunk)), }); } @@ -298,13 +377,14 @@ impl Client { }); } - pub fn unload_chunk(&self, pos: ChunkPosition) { - log::trace!("Unloading chunk at {:?} on {}", pos, self.username); - self.send_packet(UnloadChunk { - chunk_x: pos.x, - chunk_z: pos.z, - }); - self.known_chunks.borrow_mut().remove(&pos); + pub fn unload_chunk(&mut self, pos: ChunkPosition) { + if self.known_chunks.remove(&pos) { + log::trace!("Unloading chunk at {:?} on {}", pos, self.username); + self.send_packet(UnloadChunk { + chunk_x: pos.x, + chunk_z: pos.z, + }); + } } pub fn add_tablist_player( @@ -331,17 +411,29 @@ impl Client { self.send_packet(PlayerInfo::RemovePlayers(vec![uuid])); } - pub fn unload_entity(&self, id: NetworkId) { - log::trace!("Unloading {:?} on {}", id, self.username); - self.sent_entities.borrow_mut().remove(&id); - self.send_packet(DestroyEntities { - entity_ids: vec![id.0.into()], - }); + pub fn unload_entity(&mut self, id: NetworkId) { + self.unload_entities(&[id]) + } + + pub fn unload_all_entities(&mut self) { + self.unload_entities(&self.sent_entities.iter().copied().collect_vec()) } - pub fn send_player(&self, network_id: NetworkId, uuid: Uuid, pos: Position) { + pub fn unload_entities(&mut self, ids: &[NetworkId]) { + if !ids.is_empty() { + log::trace!("Unloading {:?} on {}", ids, self.username); + self.sent_entities.retain(|e| !ids.contains(e)); + self.send_packet(DestroyEntities { + entity_ids: ids.iter().map(|id| VarInt(id.0)).collect(), + }); + } else { + log::trace!("Unloading 0 entities on {}", self.username) + } + } + + pub fn send_player(&mut self, network_id: NetworkId, uuid: Uuid, pos: Position) { log::trace!("Sending {:?} to {}", uuid, self.username); - assert!(!self.sent_entities.borrow().contains(&network_id)); + assert!(!self.sent_entities.contains(&network_id)); self.send_packet(SpawnPlayer { entity_id: network_id.0, player_uuid: uuid, @@ -384,65 +476,80 @@ impl Client { } pub fn update_entity_position( - &self, + &mut self, network_id: NetworkId, position: Position, prev_position: PreviousPosition, on_ground: OnGround, prev_on_ground: PreviousOnGround, + dimension: &EntityDimension, + world: EntityWorld, + dimensions: &Dimensions, + gamemode: Option, + previous_gamemode: Option, ) { + let another_dimension = + self.world != Some(world) || self.dimension.as_ref() != Some(dimension); + if self.network_id == Some(network_id) { // This entity is the client. Only update // the position if it has changed from the client's - // known position. - if Some(position) != self.client_known_position.get() { + // known position or dimension/world has changed. + if another_dimension { + self.move_to_dimension( + dimension.clone(), + dimensions, + gamemode.unwrap(), + previous_gamemode.unwrap(), + world, + ); + } else if Some(position) != self.client_known_position { self.update_own_position(position); } - return; - } - - let no_change_yaw = (position.yaw - prev_position.0.yaw).abs() < 0.001; - let no_change_pitch = (position.pitch - prev_position.0.pitch).abs() < 0.001; - - // If the entity jumps or falls we should send a teleport packet instead to keep relative movement in sync. - if on_ground != prev_on_ground.0 { - self.send_packet(EntityTeleport { - entity_id: network_id.0, - x: position.x, - y: position.y, - z: position.z, - yaw: position.yaw, - pitch: position.pitch, - on_ground: *on_ground, - }); - - return; - } - - if no_change_yaw && no_change_pitch { - self.send_packet(EntityPosition { - entity_id: network_id.0, - delta_x: ((position.x * 32.0 - prev_position.0.x * 32.0) * 128.0) as i16, - delta_y: ((position.y * 32.0 - prev_position.0.y * 32.0) * 128.0) as i16, - delta_z: ((position.z * 32.0 - prev_position.0.z * 32.0) * 128.0) as i16, - on_ground: on_ground.0, - }); - } else { - self.send_packet(EntityPositionAndRotation { - entity_id: network_id.0, - delta_x: ((position.x * 32.0 - prev_position.0.x * 32.0) * 128.0) as i16, - delta_y: ((position.y * 32.0 - prev_position.0.y * 32.0) * 128.0) as i16, - delta_z: ((position.z * 32.0 - prev_position.0.z * 32.0) * 128.0) as i16, - yaw: position.yaw, - pitch: position.pitch, - on_ground: on_ground.0, - }); + } else if !another_dimension { + let no_change_yaw = (position.yaw - prev_position.0.yaw).abs() < 0.001; + let no_change_pitch = (position.pitch - prev_position.0.pitch).abs() < 0.001; + + // If the entity jumps or falls we should send a teleport packet instead to keep relative movement in sync. + if on_ground != prev_on_ground.0 { + self.send_packet(EntityTeleport { + entity_id: network_id.0, + x: position.x, + y: position.y, + z: position.z, + yaw: position.yaw, + pitch: position.pitch, + on_ground: *on_ground, + }); + + return; + } - // Needed for head orientation - self.send_packet(EntityHeadLook { - entity_id: network_id.0, - head_yaw: position.yaw, - }); + if no_change_yaw && no_change_pitch { + self.send_packet(EntityPosition { + entity_id: network_id.0, + delta_x: ((position.x * 32.0 - prev_position.0.x * 32.0) * 128.0) as i16, + delta_y: ((position.y * 32.0 - prev_position.0.y * 32.0) * 128.0) as i16, + delta_z: ((position.z * 32.0 - prev_position.0.z * 32.0) * 128.0) as i16, + on_ground: on_ground.0, + }); + } else { + self.send_packet(EntityPositionAndRotation { + entity_id: network_id.0, + delta_x: ((position.x * 32.0 - prev_position.0.x * 32.0) * 128.0) as i16, + delta_y: ((position.y * 32.0 - prev_position.0.y * 32.0) * 128.0) as i16, + delta_z: ((position.z * 32.0 - prev_position.0.z * 32.0) * 128.0) as i16, + yaw: position.yaw, + pitch: position.pitch, + on_ground: on_ground.0, + }); + + // Needed for head orientation + self.send_packet(EntityHeadLook { + entity_id: network_id.0, + head_yaw: position.yaw, + }); + } } } @@ -461,6 +568,11 @@ impl Client { }) } + pub fn send_message(&self, message: ChatMessage) { + let packet = chat_packet(message); + self.send_packet(packet); + } + pub fn send_chat_message(&self, message: ChatMessage) { let packet = chat_packet(message); self.send_packet(packet); @@ -473,21 +585,25 @@ impl Client { /// /// If the sum of `fade_in`, `stay` and `fade_out` is `0` /// This will emit the [`Title::Reset`] packet. - pub fn send_title(&self, title: base::Title) { + pub fn send_title(&self, title: Title) { if title.title.is_none() && title.sub_title.is_none() { - self.send_packet(Title::Hide); + self.send_packet(ClearTitles { reset: false }); } else if title.fade_in + title.stay + title.fade_out == 0 { - self.send_packet(Title::Reset); + self.send_packet(ClearTitles { reset: true }); } else { if let Some(main_title) = title.title { - self.send_packet(Title::SetTitle { text: main_title }); + self.send_packet(SetTitleText { + title_text: main_title, + }); } if let Some(sub_title) = title.sub_title { - self.send_packet(Title::SetSubtitle { text: sub_title }) + self.send_packet(SetTitleSubtitle { + subtitle_text: sub_title, + }) } - self.send_packet(Title::SetTimesAndDisplay { + self.send_packet(SetTitleTimes { fade_in: title.fade_in as i32, stay: title.stay as i32, fade_out: title.fade_out as i32, @@ -500,7 +616,7 @@ impl Client { /// /// Not to be confused with [`Self::hide_title()`] pub fn reset_title(&self) { - self.send_packet(Title::Reset); + self.send_packet(ClearTitles { reset: true }); } /// Hides the title for the player, this removes @@ -509,39 +625,39 @@ impl Client { /// /// Not to be confused with [`Self::reset_title()`] pub fn hide_title(&self) { - self.send_packet(Title::Hide); - } - - pub fn confirm_window_action(&self, window_id: u8, action_number: i16, is_accepted: bool) { - self.send_packet(WindowConfirmation { - window_id, - action_number, - is_accepted, - }); + self.send_packet(ClearTitles { reset: false }); } pub fn send_window_items(&self, window: &Window) { - log::trace!("Updating window for {}", self.username); + log::trace!("Updating inventory for {}", self.username); let packet = WindowItems { window_id: 0, + state_id: 0, items: window.inner().to_vec(), + cursor_item: window.cursor_item().clone(), }; self.send_packet(packet); } - pub fn set_slot(&self, slot: i16, item: &InventorySlot) { - log::trace!("Setting slot {} of {} to {:?}", slot, self.username, item); + pub fn send_inventory_slot(&self, slot: i16, item: &InventorySlot) { + log::trace!( + "Setting inventory slot {} of {} to {:?}", + slot, + self.username, + item + ); self.send_packet(SetSlot { window_id: 0, + state_id: 0, slot, slot_data: item.clone(), }); } - pub fn send_particle(&self, particle: &base::Particle, position: &Position) { - self.send_packet(Particle { + pub fn send_particle(&self, particle: &Particle, long_distance: bool, position: &Position) { + self.send_packet(packets::server::Particle { particle_kind: particle.kind, - long_distance: true, + long_distance, x: position.x, y: position.y, z: position.z, @@ -553,16 +669,16 @@ impl Client { }) } - pub fn set_cursor_slot(&self, item: &InventorySlot) { + pub fn send_cursor_slot(&self, item: &InventorySlot) { log::trace!("Setting cursor slot of {} to {:?}", self.username, item); - self.set_slot(-1, item); + self.send_inventory_slot(-1, item); } - pub fn send_player_model_flags(&self, netowrk_id: NetworkId, model_flags: u8) { + pub fn send_player_model_flags(&self, network_id: NetworkId, model_flags: u8) { let mut entity_metadata = EntityMetadata::new(); - entity_metadata.set(16, model_flags); + entity_metadata.set(17, model_flags); self.send_packet(SendEntityMetadata { - entity_id: netowrk_id.0, + entity_id: network_id.0, entries: entity_metadata, }); } @@ -598,24 +714,34 @@ impl Client { }); } - pub fn set_hotbar_slot(&self, slot: u8) { + pub fn send_hotbar_slot(&self, slot: u8) { self.send_packet(HeldItemChange { slot }); } - fn register_entity(&self, network_id: NetworkId) { - self.sent_entities.borrow_mut().insert(network_id); + fn register_entity(&mut self, network_id: NetworkId) { + self.sent_entities.insert(network_id); } fn send_packet(&self, packet: impl Into) { - let _ = self.packets_to_send.try_send(packet.into()); + let packet = packet.into(); + log::trace!("Sending packet #{:02X} to {}", packet.id(), self.username); + let _ = self.packets_to_send.try_send(packet); } - pub fn disconnect(&self, reason: &str) { - self.disconnected.set(true); + pub fn disconnect(&mut self, reason: impl Into) { + self.disconnected = true; self.send_packet(Disconnect { - reason: Text::from(reason.to_owned()).to_string(), + reason: reason.into().to_string(), }); } + + pub fn dimension(&self) -> &Option { + &self.dimension + } + + pub fn world(&self) -> &Option { + &self.world + } } fn chat_packet(message: ChatMessage) -> packets::server::ChatMessage { diff --git a/feather/server/src/config.rs b/feather/server/src/config.rs index 9111a037f..91ef54fed 100644 --- a/feather/server/src/config.rs +++ b/feather/server/src/config.rs @@ -37,12 +37,12 @@ pub struct ConfigContainer { pub was_config_created: bool, } -#[derive(Debug, Deserialize)] +#[derive(Debug, Deserialize, Clone)] pub struct Config { pub network: Network, pub server: ServerConfig, pub log: Log, - pub world: World, + pub worlds: Worlds, pub proxy: Proxy, } @@ -76,14 +76,14 @@ impl Config { } } -#[derive(Debug, Deserialize)] +#[derive(Debug, Deserialize, Clone)] pub struct Network { pub address: IpAddr, pub port: u16, pub compression_threshold: i32, } -#[derive(Debug, Deserialize)] +#[derive(Debug, Deserialize, Clone)] pub struct ServerConfig { pub online_mode: bool, pub motd: String, @@ -92,26 +92,27 @@ pub struct ServerConfig { pub view_distance: u32, } -#[derive(Debug, Deserialize)] +#[derive(Debug, Deserialize, Clone)] pub struct Log { #[serde(deserialize_with = "deserialize_log_level")] pub level: log::LevelFilter, } -#[derive(Debug, Deserialize)] -pub struct World { - pub name: String, +#[derive(Debug, Deserialize, Clone)] +pub struct Worlds { + pub worlds: Vec, + pub default_world: String, pub generator: String, pub seed: String, } -#[derive(Debug, Deserialize)] +#[derive(Debug, Deserialize, Clone)] pub struct Proxy { pub proxy_mode: ProxyMode, pub velocity_secret: String, } -#[derive(Debug, Deserialize, PartialEq, Eq)] +#[derive(Debug, Deserialize, Clone, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub enum ProxyMode { None, diff --git a/feather/server/src/entities.rs b/feather/server/src/entities.rs index 67015afda..7e59206a3 100644 --- a/feather/server/src/entities.rs +++ b/feather/server/src/entities.rs @@ -1,16 +1,16 @@ use base::{EntityKind, Position}; use ecs::{EntityBuilder, EntityRef, SysResult}; -use quill_common::{components::OnGround, entity_init::EntityInit}; +use quill_common::components::OnGround; use uuid::Uuid; use crate::{Client, NetworkId}; /// Component that sends the spawn packet for an entity /// using its components. -pub struct SpawnPacketSender(fn(&EntityRef, &Client) -> SysResult); +pub struct SpawnPacketSender(fn(&EntityRef, &mut Client) -> SysResult); impl SpawnPacketSender { - pub fn send(&self, entity: &EntityRef, client: &Client) -> SysResult { + pub fn send(&self, entity: &EntityRef, client: &mut Client) -> SysResult { (self.0)(entity, client) } } @@ -26,7 +26,7 @@ pub struct PreviousPosition(pub Position); #[derive(Copy, Clone, Debug)] pub struct PreviousOnGround(pub OnGround); -pub fn add_entity_components(builder: &mut EntityBuilder, init: &EntityInit) { +pub fn add_entity_components(builder: &mut EntityBuilder, kind: EntityKind) { if !builder.has::() { builder.add(NetworkId::new()); } @@ -40,20 +40,20 @@ pub fn add_entity_components(builder: &mut EntityBuilder, init: &EntityInit) { builder .add(PreviousPosition(prev_position)) .add(PreviousOnGround(on_ground)); - add_spawn_packet(builder, init); + add_spawn_packet(builder, &kind); } -fn add_spawn_packet(builder: &mut EntityBuilder, init: &EntityInit) { +fn add_spawn_packet(builder: &mut EntityBuilder, kind: &EntityKind) { // TODO: object entities spawned with Spawn Entity // (minecarts, items, ...) - let spawn_packet = match init { - EntityInit::Player => spawn_player, + let spawn_packet = match kind { + EntityKind::Player => spawn_player, _ => spawn_living_entity, }; builder.add(SpawnPacketSender(spawn_packet)); } -fn spawn_player(entity: &EntityRef, client: &Client) -> SysResult { +fn spawn_player(entity: &EntityRef, client: &mut Client) -> SysResult { let network_id = *entity.get::()?; let uuid = *entity.get::()?; let pos = *entity.get::()?; @@ -62,7 +62,7 @@ fn spawn_player(entity: &EntityRef, client: &Client) -> SysResult { Ok(()) } -fn spawn_living_entity(entity: &EntityRef, client: &Client) -> SysResult { +fn spawn_living_entity(entity: &EntityRef, client: &mut Client) -> SysResult { let network_id = *entity.get::()?; let uuid = *entity.get::()?; let pos = *entity.get::()?; diff --git a/feather/server/src/initial_handler.rs b/feather/server/src/initial_handler.rs index 4266d5884..aa8387393 100644 --- a/feather/server/src/initial_handler.rs +++ b/feather/server/src/initial_handler.rs @@ -3,7 +3,9 @@ use crate::{connection_worker::Worker, favicon::Favicon}; use anyhow::bail; use base::{ProfileProperty, Text}; +use const_format::concatcp; use flume::{Receiver, Sender}; +use konst::{primitive::parse_i32, unwrap_ctx}; use md5::Digest; use num_bigint::BigInt; use once_cell::sync::Lazy; @@ -27,8 +29,10 @@ use uuid::Uuid; use self::proxy::ProxyData; -const SERVER_NAME: &str = "Feather 1.16.5"; -const PROTOCOL_VERSION: i32 = 754; +const SERVER_NAME: &str = concatcp!("Feather ", crate::VERSION); +pub const PROTOCOL_VERSION: i32 = unwrap_ctx!(parse_i32(include_str!( + "../../../constants/PROTOCOL_VERSION" +))); mod proxy; diff --git a/feather/server/src/initial_handler/proxy/velocity.rs b/feather/server/src/initial_handler/proxy/velocity.rs index 134ee556a..4e6e95332 100644 --- a/feather/server/src/initial_handler/proxy/velocity.rs +++ b/feather/server/src/initial_handler/proxy/velocity.rs @@ -62,7 +62,7 @@ fn read_player_info(key: &str, payload: &[u8]) -> anyhow::Result { let payload = verify_hmac(key, payload)?; let mut payload = Cursor::new(payload); - let mcversion = ProtocolVersion::V1_16_2; + let mcversion = ProtocolVersion::V1_18_1; let version = VarInt::read(&mut payload, mcversion)?; if version.0 != FORWARDING_VERSION { diff --git a/feather/server/src/lib.rs b/feather/server/src/lib.rs index c1aec55dc..a294ddf91 100644 --- a/feather/server/src/lib.rs +++ b/feather/server/src/lib.rs @@ -24,6 +24,8 @@ mod packet_handlers; mod player_count; mod systems; +pub const VERSION: &str = include_str!("../../../constants/VERSION"); + pub use client::{Client, ClientId, Clients}; pub use network_id_registry::NetworkId; pub use options::Options; @@ -98,7 +100,7 @@ impl Server { pub fn accept_new_players(&mut self) -> Vec { let mut clients = Vec::new(); for player in self.new_players.clone().try_iter() { - if let Some(old_client) = self.clients.iter().find(|x| x.uuid() == player.uuid) { + if let Some(old_client) = self.clients.iter_mut().find(|x| x.uuid() == player.uuid) { old_client.disconnect("Logged in from another location!"); } let id = self.create_client(player); @@ -140,6 +142,22 @@ impl Server { } } + /// Sends a packet to all clients currently subscribed + /// to the given position. This function should be + /// used for entity updates, block updates, etc— + /// any packets that need to be sent only to nearby players. + pub fn broadcast_nearby_with_mut( + &mut self, + position: Position, + mut callback: impl FnMut(&mut Client), + ) { + for &client_id in self.chunk_subscriptions.subscriptions_for(position.chunk()) { + if let Some(client) = self.clients.get_mut(client_id) { + callback(client); + } + } + } + pub fn broadcast_keepalive(&mut self) { self.broadcast_with(|client| client.send_keepalive()); self.last_keepalive_time = Instant::now(); diff --git a/feather/server/src/main.rs b/feather/server/src/main.rs index 615857028..04378bee3 100644 --- a/feather/server/src/main.rs +++ b/feather/server/src/main.rs @@ -1,12 +1,18 @@ +use std::path::PathBuf; use std::{cell::RefCell, rc::Rc, sync::Arc}; use anyhow::Context; + use base::anvil::level::SuperflatGeneratorOptions; -use common::{Game, TickLoop, World}; +use base::biome::{BiomeGeneratorInfo, BiomeList}; +use base::world::DimensionInfo; +use common::world::{Dimensions, WorldName, WorldPath}; +use common::{Dimension, Game, TickLoop}; +use data_generators::extract_vanilla_data; use ecs::SystemExecutor; use feather_server::{config::Config, Server}; use plugin_host::PluginManager; -use worldgen::{ComposableGenerator, SuperflatWorldGenerator, WorldGenerator}; +use worldgen::{SuperflatWorldGenerator, WorldGenerator}; mod logging; @@ -25,11 +31,14 @@ async fn main() -> anyhow::Result<()> { } log::info!("Loaded config"); + extract_vanilla_data(); + log::info!("Creating server"); let options = config.to_options(); let server = Server::bind(options).await?; - let game = init_game(server, &config)?; + let mut game = init_game(server, &config)?; + game.insert_resource(config); run(game); @@ -39,7 +48,9 @@ async fn main() -> anyhow::Result<()> { fn init_game(server: Server, config: &Config) -> anyhow::Result { let mut game = Game::new(); init_systems(&mut game, server); - init_world_source(&mut game, config); + init_biomes(&mut game); + init_worlds(&mut game, config); + init_dimensions(&mut game, config); init_plugin_manager(&mut game)?; Ok(game) } @@ -58,21 +69,111 @@ fn init_systems(game: &mut Game, server: Server) { game.system_executor = Rc::new(RefCell::new(systems)); } -fn init_world_source(game: &mut Game, config: &Config) { - // Load chunks from the world save first, - // and fall back to generating a superflat - // world otherwise. This is a placeholder: - // we don't have proper world generation yet. - - let seed = 42; // FIXME: load from the level file - - let generator: Arc = match &config.world.generator[..] { - "flat" => Arc::new(SuperflatWorldGenerator::new( - SuperflatGeneratorOptions::default(), - )), - _ => Arc::new(ComposableGenerator::default_with_seed(seed)), - }; - game.world = World::with_gen_and_path(generator, config.world.name.clone()); +fn init_worlds(game: &mut Game, config: &Config) { + for world in &config.worlds.worlds { + //let seed = 42; // FIXME: load from the level file + + game.ecs.spawn(( + WorldName::new(world.to_string()), + WorldPath::new(PathBuf::from(format!("worlds/{}", world))), + Dimensions::default(), + )); + } +} + +fn init_dimensions(game: &mut Game, config: &Config) { + let biomes = game.resources.get::>().unwrap(); + for namespace in std::fs::read_dir("worldgen") + .expect("There's no worldgen/ folder. Try removing generated/ and re-running feather") + { + let namespace_dir = namespace.unwrap().path(); + for file in std::fs::read_dir(namespace_dir.join("dimension")).unwrap() { + let mut dimension_info: DimensionInfo = serde_json::from_str( + &std::fs::read_to_string(file.as_ref().unwrap().path()).unwrap(), + ) + .unwrap(); + + dimension_info.info = serde_json::from_str( + &std::fs::read_to_string(format!( + "worldgen/{}/dimension_type/{}.json", + dimension_info.r#type.split_once(':').unwrap().0, + dimension_info.r#type.split_once(':').unwrap().1 + )) + .unwrap(), + ) + .unwrap(); + + for (_, (world_name, world_path, dimensions)) in game + .ecs + .query::<(&WorldName, &WorldPath, &mut Dimensions)>() + .iter() + { + if !dimensions + .iter() + .any(|dim| dim.info().r#type == dimension_info.r#type) + { + let generator: Arc = match &config.worlds.generator[..] { + "flat" => Arc::new(SuperflatWorldGenerator::new( + SuperflatGeneratorOptions::default(), + )), + other => { + log::error!("Invalid generator specified in config.toml: {}", other); + std::process::exit(1); + } + }; + let is_flat = config.worlds.generator == "flat"; + + log::info!( + "Adding dimension `{}` to world `{}`", + dimension_info.r#type, + **world_name + ); + dimensions.add(Dimension::new( + dimension_info.clone(), + generator, + world_path + .join("dimensions") + .join(dimension_info.r#type.split_once(':').unwrap().0) + .join(dimension_info.r#type.split_once(':').unwrap().1), + false, + is_flat, + Arc::clone(&*biomes), + )); + } + } + } + } +} + +fn init_biomes(game: &mut Game) { + let mut biomes = BiomeList::default(); + + for dir in std::fs::read_dir("worldgen/").unwrap() { + if let Ok(dir) = dir { + for file in std::fs::read_dir(dir.path().join("worldgen/biome")).unwrap() { + let biome: BiomeGeneratorInfo = serde_json::from_str( + &std::fs::read_to_string(file.as_ref().unwrap().path()).unwrap(), + ) + .unwrap(); + let name = format!( + "{}:{}", + dir.file_name().to_str().unwrap(), + file.unwrap() + .file_name() + .to_str() + .unwrap() + .strip_suffix(".json") + .unwrap() + .to_owned() + ); + log::trace!("Loaded biome: {}", name); + biomes.insert(name, biome); + } + } else { + log::warn!("Invalid directory name found in worldgen/") + } + } + game.insert_resource(Arc::new(biomes)) } fn init_plugin_manager(game: &mut Game) -> anyhow::Result<()> { diff --git a/feather/server/src/packet_handlers.rs b/feather/server/src/packet_handlers.rs index b0452c96a..5bf4d85e3 100644 --- a/feather/server/src/packet_handlers.rs +++ b/feather/server/src/packet_handlers.rs @@ -82,7 +82,6 @@ pub fn handle_packet( | ClientPlayPacket::SetDifficulty(_) | ClientPlayPacket::ClientStatus(_) | ClientPlayPacket::TabComplete(_) - | ClientPlayPacket::WindowConfirmation(_) | ClientPlayPacket::ClickWindowButton(_) | ClientPlayPacket::CloseWindow(_) | ClientPlayPacket::PluginMessage(_) @@ -109,7 +108,8 @@ pub fn handle_packet( | ClientPlayPacket::UpdateStructureBlock(_) | ClientPlayPacket::UpdateSign(_) | ClientPlayPacket::Spectate(_) - | ClientPlayPacket::UseItem(_) => Ok(()), + | ClientPlayPacket::UseItem(_) + | ClientPlayPacket::Pong(_) => Ok(()), } } diff --git a/feather/server/src/packet_handlers/interaction.rs b/feather/server/src/packet_handlers/interaction.rs index 1c6f69d9c..539704193 100644 --- a/feather/server/src/packet_handlers/interaction.rs +++ b/feather/server/src/packet_handlers/interaction.rs @@ -1,7 +1,8 @@ -use crate::{ClientId, NetworkId, Server}; use base::inventory::{SLOT_HOTBAR_OFFSET, SLOT_OFFHAND}; +use base::BlockId; use common::entities::player::HotbarSlot; use common::interactable::InteractableRegistry; +use common::world::Dimensions; use common::{Game, Window}; use ecs::{Entity, EntityRef, SysResult}; use libcraft_core::{BlockFace as LibcraftBlockFace, Hand}; @@ -10,14 +11,18 @@ use protocol::packets::client::{ BlockFace, HeldItemChange, InteractEntity, InteractEntityKind, PlayerBlockPlacement, PlayerDigging, PlayerDiggingStatus, }; +use quill_common::components::{EntityDimension, EntityWorld}; use quill_common::{ events::{BlockInteractEvent, BlockPlacementEvent, InteractEntityEvent}, EntityId, }; + +use crate::{ClientId, NetworkId, Server}; + /// Handles the player block placement packet. Currently just removes the block client side for the player. pub fn handle_player_block_placement( game: &mut Game, - _server: &mut Server, + server: &mut Server, packet: PlayerBlockPlacement, player: Entity, ) -> SysResult { @@ -27,7 +32,7 @@ pub fn handle_player_block_placement( _ => { let client_id = game.ecs.get::(player).unwrap(); - let client = _server.clients.get(*client_id).unwrap(); + let client = server.clients.get_mut(*client_id).unwrap(); client.disconnect("Malformed Packet!"); @@ -54,13 +59,24 @@ pub fn handle_player_block_placement( ); let block_kind = { - let result = game.block(packet.position); + let mut query = game.ecs.query::<(&EntityWorld, &EntityDimension)>(); + let (_, (player_world, player_dimension)) = + query.iter().find(|(e, _)| *e == player).unwrap(); + let mut query = game.ecs.query::<&Dimensions>(); + let dimension = query + .iter() + .find(|(world, _)| *world == **player_world) + .unwrap() + .1 + .get(&**player_dimension) + .unwrap(); + let result = dimension.block_at(packet.position); match result { Some(block) => block.kind(), None => { let client_id = game.ecs.get::(player).unwrap(); - let client = _server.clients.get(*client_id).unwrap(); + let client = server.clients.get_mut(*client_id).unwrap(); client.disconnect("Attempted to interact with an unloaded block!"); @@ -120,7 +136,18 @@ pub fn handle_player_digging( log::trace!("Got player digging with status {:?}", packet.status); match packet.status { PlayerDiggingStatus::StartDigging | PlayerDiggingStatus::CancelDigging => { - game.break_block(packet.position); + let mut query = game.ecs.query::<(&EntityWorld, &EntityDimension)>(); + let (_, (player_world, player_dimension)) = + query.iter().find(|(e, _)| *e == player).unwrap(); + let mut query = game.ecs.query::<&Dimensions>(); + let dimension = query + .iter() + .find(|(world, _)| *world == **player_world) + .unwrap() + .1 + .get(&**player_dimension) + .unwrap(); + dimension.set_block_at(packet.position, BlockId::air()); Ok(()) } PlayerDiggingStatus::SwapItemInHand => { @@ -151,7 +178,7 @@ pub fn handle_player_digging( pub fn handle_interact_entity( game: &mut Game, - _server: &mut Server, + server: &mut Server, packet: InteractEntity, player: Entity, ) -> SysResult { @@ -168,7 +195,7 @@ pub fn handle_interact_entity( None => { let client_id = game.ecs.get::(player).unwrap(); - let client = _server.clients.get(*client_id).unwrap(); + let client = server.clients.get_mut(*client_id).unwrap(); client.disconnect("Interacted with an invalid entity!"); diff --git a/feather/server/src/packet_handlers/inventory.rs b/feather/server/src/packet_handlers/inventory.rs index 48a397197..f893a66ba 100644 --- a/feather/server/src/packet_handlers/inventory.rs +++ b/feather/server/src/packet_handlers/inventory.rs @@ -40,29 +40,28 @@ pub fn handle_click_window( player: EntityRef, packet: ClickWindow, ) -> SysResult { - let result = _handle_click_window(&player, &packet); + let mut window = player.get_mut::().unwrap(); + let result = _handle_click_window(&packet, &mut window); - let client = server.clients.get(*player.get::()?).unwrap(); - client.confirm_window_action( - packet.window_id, - packet.action_number as i16, - result.is_ok(), - ); - - let window = player.get::()?; + let client = server + .clients + .get(*player.get::().unwrap()) + .unwrap(); if packet.slot >= 0 { - client.set_slot(packet.slot, &*window.item(packet.slot as usize)?); + let item = window.item(packet.slot as usize)?.clone(); + let old_cursor_item = window.cursor_item(); + client.send_inventory_slot(packet.slot, old_cursor_item); + window.set_cursor_item(item); } - client.set_cursor_slot(window.cursor_item()); + client.send_cursor_slot(window.cursor_item()); client.send_window_items(&*window); result } -fn _handle_click_window(player: &EntityRef, packet: &ClickWindow) -> SysResult { - let mut window = player.get_mut::()?; +fn _handle_click_window(packet: &ClickWindow, window: &mut Window) -> SysResult { match packet.mode { 0 => match packet.button { 0 => window.left_click(packet.slot as usize)?, @@ -79,6 +78,5 @@ fn _handle_click_window(player: &EntityRef, packet: &ClickWindow) -> SysResult { }, _ => bail!("unsupported window click mode"), }; - Ok(()) } diff --git a/feather/server/src/packet_handlers/movement.rs b/feather/server/src/packet_handlers/movement.rs index 27b03ee23..e68d2fbee 100644 --- a/feather/server/src/packet_handlers/movement.rs +++ b/feather/server/src/packet_handlers/movement.rs @@ -36,7 +36,7 @@ pub fn handle_player_movement(player: EntityRef, packet: PlayerMovement) -> SysR } pub fn handle_player_position( - server: &Server, + server: &mut Server, player: EntityRef, packet: PlayerPosition, ) -> SysResult { @@ -53,7 +53,7 @@ pub fn handle_player_position( } pub fn handle_player_position_and_rotation( - server: &Server, + server: &mut Server, player: EntityRef, packet: PlayerPositionAndRotation, ) -> SysResult { @@ -72,7 +72,7 @@ pub fn handle_player_position_and_rotation( } pub fn handle_player_rotation( - server: &Server, + server: &mut Server, player: EntityRef, packet: PlayerRotation, ) -> SysResult { @@ -87,8 +87,8 @@ pub fn handle_player_rotation( Ok(()) } -fn update_client_position(server: &Server, player: EntityRef, pos: Position) -> SysResult { - if let Some(client) = server.clients.get(*player.get::()?) { +fn update_client_position(server: &mut Server, player: EntityRef, pos: Position) -> SysResult { + if let Some(client) = server.clients.get_mut(*player.get::()?) { client.set_client_known_position(pos); } Ok(()) diff --git a/feather/server/src/systems.rs b/feather/server/src/systems.rs index ee7e85b37..9b294bdf1 100644 --- a/feather/server/src/systems.rs +++ b/feather/server/src/systems.rs @@ -77,7 +77,7 @@ fn send_keepalives(_game: &mut Game, server: &mut Server) -> SysResult { /// Ticks `Client`s. fn tick_clients(_game: &mut Game, server: &mut Server) -> SysResult { - for client in server.clients.iter() { + for client in server.clients.iter_mut() { client.tick(); } diff --git a/feather/server/src/systems/block.rs b/feather/server/src/systems/block.rs index 5544da2bd..8f2d41d3b 100644 --- a/feather/server/src/systems/block.rs +++ b/feather/server/src/systems/block.rs @@ -13,8 +13,8 @@ //! like WorldEdit. This module chooses the optimal packet from //! the above three options to achieve ideal performance. -use ahash::AHashMap; -use base::{chunk::SECTION_VOLUME, position, ChunkPosition, CHUNK_WIDTH}; +use base::{chunk::SECTION_VOLUME, position, CHUNK_WIDTH}; +use common::world::Dimensions; use common::{events::BlockChangeEvent, Game}; use ecs::{SysResult, SystemExecutor}; @@ -50,29 +50,39 @@ fn broadcast_block_change_chunk_overwrite( game: &Game, server: &mut Server, ) { - let mut sections: AHashMap> = AHashMap::new(); - for (chunk, section, _) in event.iter_affected_chunk_sections() { - sections.entry(chunk).or_default().push(section + 1); // + 1 to account for the void air chunk - } - - for (chunk_pos, sections) in sections { - let chunk = game.world.chunk_map().chunk_handle_at(chunk_pos); - if let Some(chunk) = chunk { + let mut query = game.ecs.query::<&Dimensions>(); + let dimension = query + .iter() + .find(|(world, _)| *world == *event.world()) + .unwrap() + .1 + .get(&**event.dimension()) + .unwrap(); + for (chunk_pos, _, _) in event.iter_affected_chunk_sections() { + if let Some(chunk) = dimension.chunk_map().chunk_handle_at(chunk_pos) { let position = position!( (chunk_pos.x * CHUNK_WIDTH as i32) as f64, 0.0, (chunk_pos.z * CHUNK_WIDTH as i32) as f64, ); server.broadcast_nearby_with(position, |client| { - client.overwrite_chunk_sections(&chunk, sections.clone()); + client.overwrite_chunk(&chunk); }) } } } fn broadcast_block_change_simple(event: &BlockChangeEvent, game: &Game, server: &mut Server) { + let mut query = game.ecs.query::<&Dimensions>(); + let dimension = query + .iter() + .find(|(world, _)| *world == *event.world()) + .unwrap() + .1 + .get(&**event.dimension()) + .unwrap(); for pos in event.iter_changed_blocks() { - let new_block = game.block(pos); + let new_block = dimension.block_at(pos); if let Some(new_block) = new_block { server.broadcast_nearby_with(pos.position(), |client| { client.send_block_change(pos, new_block) diff --git a/feather/server/src/systems/entity.rs b/feather/server/src/systems/entity.rs index 49aed542f..f4fff317f 100644 --- a/feather/server/src/systems/entity.rs +++ b/feather/server/src/systems/entity.rs @@ -5,8 +5,11 @@ use base::{ metadata::{EntityBitMask, Pose, META_INDEX_ENTITY_BITMASK, META_INDEX_POSE}, EntityMetadata, Position, }; +use common::world::Dimensions; use common::Game; use ecs::{SysResult, SystemExecutor}; +use libcraft_core::Gamemode; +use quill_common::components::{EntityDimension, EntityWorld, PreviousGamemode}; use quill_common::{ components::{OnGround, Sprinting}, events::{SneakEvent, SprintEvent}, @@ -30,7 +33,20 @@ pub fn register(game: &mut Game, systems: &mut SystemExecutor) { /// Sends entity movement packets. fn send_entity_movement(game: &mut Game, server: &mut Server) -> SysResult { - for (_, (&position, prev_position, &on_ground, &network_id, prev_on_ground)) in game + for ( + _, + ( + &position, + prev_position, + &on_ground, + &network_id, + prev_on_ground, + dimension, + world, + gamemode, + prev_gamemode, + ), + ) in game .ecs .query::<( &Position, @@ -38,17 +54,28 @@ fn send_entity_movement(game: &mut Game, server: &mut Server) -> SysResult { &OnGround, &NetworkId, &mut PreviousOnGround, + &EntityDimension, + &EntityWorld, + Option<&Gamemode>, + Option<&PreviousGamemode>, )>() .iter() { if position != prev_position.0 { - server.broadcast_nearby_with(position, |client| { + let mut query = game.ecs.query::<&Dimensions>(); + let dimensions = query.iter().find(|(e, _)| *e == **world).unwrap().1; + server.broadcast_nearby_with_mut(position, |client| { client.update_entity_position( network_id, position, *prev_position, on_ground, *prev_on_ground, + dimension, + *world, + dimensions, + gamemode.copied(), + prev_gamemode.copied(), ); }); prev_position.0 = position; diff --git a/feather/server/src/systems/entity/spawn_packet.rs b/feather/server/src/systems/entity/spawn_packet.rs index fcb4ea03a..1c62408b5 100644 --- a/feather/server/src/systems/entity/spawn_packet.rs +++ b/feather/server/src/systems/entity/spawn_packet.rs @@ -22,7 +22,7 @@ pub fn register(_game: &mut Game, systems: &mut SystemExecutor) { /// and despawn entities when they become invisible, based on the client's view. pub fn update_visible_entities(game: &mut Game, server: &mut Server) -> SysResult { for (player, (event, &client_id)) in game.ecs.query::<(&ViewUpdateEvent, &ClientId)>().iter() { - let client = match server.clients.get(client_id) { + let client = match server.clients.get_mut(client_id) { Some(client) => client, None => continue, }; @@ -64,7 +64,7 @@ fn send_entities_when_created(game: &mut Game, server: &mut Server) -> SysResult .iter() { let entity_ref = game.ecs.entity(entity)?; - server.broadcast_nearby_with(position, |client| { + server.broadcast_nearby_with_mut(position, |client| { spawn_packet .send(&entity_ref, client) .expect("failed to create spawn packet") @@ -81,7 +81,7 @@ fn unload_entities_when_removed(game: &mut Game, server: &mut Server) -> SysResu .query::<(&EntityRemoveEvent, &Position, &NetworkId)>() .iter() { - server.broadcast_nearby_with(position, |client| client.unload_entity(network_id)); + server.broadcast_nearby_with_mut(position, |client| client.unload_entity(network_id)); } Ok(()) @@ -108,14 +108,14 @@ fn update_entities_on_chunk_cross(game: &mut Game, server: &mut Server) -> SysRe .collect(); for left_client in old_clients.difference(&new_clients) { - if let Some(client) = server.clients.get(*left_client) { + if let Some(client) = server.clients.get_mut(*left_client) { client.unload_entity(network_id); } } let entity_ref = game.ecs.entity(entity)?; for send_client in new_clients.difference(&old_clients) { - if let Some(client) = server.clients.get(*send_client) { + if let Some(client) = server.clients.get_mut(*send_client) { spawn_packet.send(&entity_ref, client)?; } } diff --git a/feather/server/src/systems/particle.rs b/feather/server/src/systems/particle.rs index a30cdd0cc..3ec2e54b5 100644 --- a/feather/server/src/systems/particle.rs +++ b/feather/server/src/systems/particle.rs @@ -12,7 +12,7 @@ fn send_particle_packets(game: &mut Game, server: &mut Server) -> SysResult { for (entity, (&particle, &position)) in game.ecs.query::<(&Particle, &Position)>().iter() { server.broadcast_nearby_with(position, |client| { - client.send_particle(&particle, &position); + client.send_particle(&particle, false, &position); }); entities.push(entity); diff --git a/feather/server/src/systems/player_join.rs b/feather/server/src/systems/player_join.rs index 24ddf090d..c98c77f0b 100644 --- a/feather/server/src/systems/player_join.rs +++ b/feather/server/src/systems/player_join.rs @@ -1,8 +1,12 @@ -use libcraft_items::InventorySlot; +use std::sync::Arc; + use log::debug; use base::anvil::player::PlayerAbilities; +use base::biome::BiomeList; use base::{Gamemode, Inventory, ItemStack, Position, Text}; +use common::events::PlayerRespawnEvent; +use common::world::{Dimensions, WorldName, WorldPath}; use common::{ chat::{ChatKind, ChatPreference}, entities::player::HotbarSlot, @@ -11,16 +15,22 @@ use common::{ ChatBox, Game, Window, }; use ecs::{SysResult, SystemExecutor}; +use libcraft_core::EntityKind; +use libcraft_items::InventorySlot; +use quill_common::components; use quill_common::components::{ - CanBuild, CanCreativeFly, CreativeFlying, CreativeFlyingSpeed, Health, Instabreak, - Invulnerable, PreviousGamemode, WalkSpeed, + CanBuild, CanCreativeFly, CreativeFlying, CreativeFlyingSpeed, EntityDimension, EntityWorld, + Health, Instabreak, Invulnerable, PreviousGamemode, WalkSpeed, }; -use quill_common::{components::Name, entity_init::EntityInit}; +use crate::config::Config; use crate::{ClientId, NetworkId, Server}; pub fn register(systems: &mut SystemExecutor) { - systems.group::().add_system(poll_new_players); + systems + .group::() + .add_system(poll_new_players) + .add_system(send_respawn_packets); } /// Polls for new clients and sends them the necessary packets @@ -33,8 +43,38 @@ fn poll_new_players(game: &mut Game, server: &mut Server) -> SysResult { } fn accept_new_player(game: &mut Game, server: &mut Server, client_id: ClientId) -> SysResult { + let config = game.resources.get::().unwrap().clone(); let client = server.clients.get_mut(client_id).unwrap(); - let player_data = game.world.load_player_data(client.uuid()); + let (player_data, world) = { + let mut query = game.ecs.query::<(&WorldName, &WorldPath)>(); + let (world, (_, world_path)) = query + .iter() + .find(|(_, (name, _))| ***name == config.worlds.default_world) + .unwrap(); + ( + world_path.load_player_data(client.uuid()), + EntityWorld(world), + ) + }; + let biomes = Arc::clone(&game.resources.get::>().unwrap()); + + let dimension = EntityDimension( + player_data + .as_ref() + .map(|data| data.dimension.to_owned()) + .unwrap_or_else(|_| String::from("minecraft:overworld")), // TODO make it configurable + ); + let position = player_data + .as_ref() + .map(|data| Position { + x: data.animal.base.position[0], + y: data.animal.base.position[1], + z: data.animal.base.position[2], + yaw: data.animal.base.rotation[0], + pitch: data.animal.base.rotation[1], + }) + .unwrap_or_default(); + let mut builder = game.create_entity_builder( player_data .as_ref() @@ -46,7 +86,7 @@ fn accept_new_player(game: &mut Game, server: &mut Server, client_id: ClientId) pitch: data.animal.base.rotation[1], }) .unwrap_or_default(), - EntityInit::Player, + EntityKind::Player, ); client.set_network_id(*builder.get::().unwrap()); @@ -56,13 +96,28 @@ fn accept_new_player(game: &mut Game, server: &mut Server, client_id: ClientId) let gamemode = player_data .as_ref() .map(|data| Gamemode::from_id(data.gamemode as u8).expect("Unsupported gamemode")) - .unwrap_or(server.options.default_gamemode); + .unwrap_or(config.server.default_gamemode); let previous_gamemode = player_data .as_ref() .map(|data| PreviousGamemode::from_id(data.previous_gamemode as i8)) - .unwrap_or(PreviousGamemode(None)); + .unwrap_or_default(); - client.send_join_game(gamemode, previous_gamemode); + { + let mut query = game.ecs.query::<(&WorldName, &Dimensions)>(); + let (_, (_, dimensions)) = query + .iter() + .find(|(_, (name, _))| ***name == config.worlds.default_world) + .unwrap(); + client.send_join_game( + gamemode, + previous_gamemode, + dimensions, + &*biomes, + config.server.max_players as i32, + dimension.clone(), + world, + ); + } client.send_brand(); // Abilities @@ -70,13 +125,11 @@ fn accept_new_player(game: &mut Game, server: &mut Server, client_id: ClientId) player_data.as_ref().map(|data| data.abilities.clone()).ok(), gamemode, ); - client.send_abilities(&abilities); let hotbar_slot = player_data .as_ref() .map(|data| HotbarSlot::new(data.held_item as usize)) .unwrap_or_else(|_e| HotbarSlot::new(0)); - client.set_hotbar_slot(hotbar_slot.get() as u8); let inventory = Inventory::player(); let window = Window::new(BackingWindow::Player { @@ -100,23 +153,26 @@ fn accept_new_player(game: &mut Game, server: &mut Server, client_id: ClientId) } } - client.send_window_items(&window); - builder .add(client_id) + .add(position) .add(View::new( - Position::default().chunk(), - server.options.view_distance, + position.chunk(), + config.server.view_distance, + world, + dimension.clone(), )) .add(gamemode) .add(previous_gamemode) - .add(Name::new(client.username())) + .add(components::Name::new(client.username())) .add(client.uuid()) .add(client.profile().to_vec()) .add(ChatBox::new(ChatPreference::All)) .add(inventory) .add(window) .add(hotbar_slot) + .add(dimension) + .add(world) .add(Health( player_data .as_ref() @@ -157,3 +213,52 @@ fn player_abilities_or_default( invulnerable: Invulnerable(matches!(gamemode, Gamemode::Creative | Gamemode::Spectator)), }) } + +fn send_respawn_packets(game: &mut Game, server: &mut Server) -> SysResult { + for ( + _, + ( + _, + &client_id, + &walk_speed, + &fly_speed, + &may_fly, + &is_flying, + &may_build, + &instabreak, + &invulnerable, + hotbar_slot, + window, + ), + ) in game + .ecs + .query::<( + &PlayerRespawnEvent, + &ClientId, + &WalkSpeed, + &CreativeFlyingSpeed, + &CanCreativeFly, + &CreativeFlying, + &CanBuild, + &Instabreak, + &Invulnerable, + &HotbarSlot, + &Window, + )>() + .iter() + { + let client = server.clients.get(client_id).unwrap(); + client.send_abilities(&PlayerAbilities { + walk_speed, + fly_speed, + may_fly, + is_flying, + may_build, + instabreak, + invulnerable, + }); + client.send_hotbar_slot(hotbar_slot.get() as u8); + client.send_window_items(window); + } + Ok(()) +} diff --git a/feather/server/src/systems/player_leave.rs b/feather/server/src/systems/player_leave.rs index 8034d0b0a..788ccf7e6 100644 --- a/feather/server/src/systems/player_leave.rs +++ b/feather/server/src/systems/player_leave.rs @@ -4,11 +4,12 @@ use base::anvil::entity::{AnimalData, BaseEntityData}; use base::anvil::player::{InventorySlot, PlayerAbilities, PlayerData}; use base::{Gamemode, Inventory, Position, Text}; use common::entities::player::HotbarSlot; +use common::world::WorldPath; use common::{chat::ChatKind, Game}; use ecs::{SysResult, SystemExecutor}; use quill_common::components::{ - CanBuild, CanCreativeFly, CreativeFlying, CreativeFlyingSpeed, Health, Instabreak, - Invulnerable, Name, PreviousGamemode, WalkSpeed, + CanBuild, CanCreativeFly, CreativeFlying, CreativeFlyingSpeed, EntityDimension, EntityWorld, + Health, Instabreak, Invulnerable, Name, PreviousGamemode, WalkSpeed, }; use crate::{ClientId, Server}; @@ -61,11 +62,18 @@ fn remove_disconnected_clients(game: &mut Game, server: &mut Server) -> SysResul )>() .iter() { + let mut query = game.ecs.query::<(&EntityWorld, &EntityDimension)>(); + let (world, dimension) = query.iter().find(|(e, _)| *e == player).unwrap().1; let client = server.clients.get(client_id).unwrap(); if client.is_disconnected() { entities_to_remove.push(player); broadcast_player_leave(game, name); - game.world + game.ecs + .query::<&WorldPath>() + .iter() + .find(|(e, _)| *e == **world) + .unwrap() + .1 .save_player_data( client.uuid(), &create_player_data( @@ -84,6 +92,7 @@ fn remove_disconnected_clients(game: &mut Game, server: &mut Server) -> SysResul }, *hotbar_slot, inventory, + dimension, ), ) .unwrap_or_else(|e| panic!("Couldn't save data for {}: {}", client.username(), e)); @@ -111,6 +120,7 @@ fn create_player_data( abilities: PlayerAbilities, hotbar_slot: HotbarSlot, inventory: &Inventory, + dimension: &EntityDimension, ) -> PlayerData { PlayerData { animal: AnimalData { @@ -123,6 +133,7 @@ fn create_player_data( }, gamemode: gamemode.to_i32().unwrap(), previous_gamemode: previous_gamemode.id() as i32, + dimension: dimension.0.clone(), inventory: inventory .to_vec() .iter() diff --git a/feather/server/src/systems/view.rs b/feather/server/src/systems/view.rs index 5d43a3eee..60114324e 100644 --- a/feather/server/src/systems/view.rs +++ b/feather/server/src/systems/view.rs @@ -5,11 +5,13 @@ use ahash::AHashMap; use base::{ChunkPosition, Position}; +use common::world::Dimensions; use common::{ events::{ChunkLoadEvent, ViewUpdateEvent}, Game, }; use ecs::{Entity, SysResult, SystemExecutor}; +use quill_common::components::{EntityDimension, EntityWorld}; use crate::{Client, ClientId, Server}; @@ -43,7 +45,7 @@ fn send_new_chunks(game: &mut Game, server: &mut Server) -> SysResult { // As ecs removes the client one tick after it gets removed here, it can // happen that a client is still listed in the ecs but actually removed here so // we need to check if the client is actually still there. - if let Some(client) = server.clients.get(client_id) { + if let Some(client) = server.clients.get_mut(client_id) { client.update_own_chunk(event.new_view.center()); update_chunks( game, @@ -61,14 +63,24 @@ fn send_new_chunks(game: &mut Game, server: &mut Server) -> SysResult { fn update_chunks( game: &Game, player: Entity, - client: &Client, + client: &mut Client, event: &ViewUpdateEvent, position: Position, waiting_chunks: &mut WaitingChunks, ) -> SysResult { // Send chunks that are in the new view but not the old view. for &pos in &event.new_chunks { - if let Some(chunk) = game.world.chunk_map().chunk_handle_at(pos) { + let mut query = game.ecs.query::<(&EntityWorld, &EntityDimension)>(); + let (_, (world, dimension)) = query.iter().find(|(e, _)| *e == player).unwrap(); + let mut query = game.ecs.query::<&Dimensions>(); + let dimension = query + .iter() + .find(|(e, _)| *e == **world) + .unwrap() + .1 + .get(&**dimension) + .unwrap(); + if let Some(chunk) = dimension.chunk_map().chunk_handle_at(pos) { client.send_chunk(&chunk); } else { waiting_chunks.insert(player, pos); @@ -94,7 +106,7 @@ fn send_loaded_chunks(game: &mut Game, server: &mut Server) -> SysResult { .drain_players_waiting_for(event.position) { if let Ok(client_id) = game.ecs.get::(player) { - if let Some(client) = server.clients.get(*client_id) { + if let Some(client) = server.clients.get_mut(*client_id) { client.send_chunk(&event.chunk); spawn_client_if_needed(client, *game.ecs.get::(player)?); } @@ -104,9 +116,9 @@ fn send_loaded_chunks(game: &mut Game, server: &mut Server) -> SysResult { Ok(()) } -fn spawn_client_if_needed(client: &Client, pos: Position) { - if !client.knows_own_position() && client.known_chunks() >= 9 * 9 { - log::debug!("Sent all chunks to {}; now spawning", client.username()); +fn spawn_client_if_needed(client: &mut Client, pos: Position) { + if !client.knows_own_position() && client.known_chunks().contains(&pos.chunk()) { + log::debug!("Spawning {}", client.username()); client.update_own_position(pos); } } diff --git a/feather/worldgen/Cargo.toml b/feather/worldgen/Cargo.toml index ac61648e3..46fcc5a4a 100644 --- a/feather/worldgen/Cargo.toml +++ b/feather/worldgen/Cargo.toml @@ -6,15 +6,4 @@ edition = "2018" [dependencies] base = { path = "../base", package = "feather-base" } -bitvec = "0.21" -log = "0.4" -num-traits = "0.2" -once_cell = "1" -rand = "0.7" -rand_xorshift = "0.2" -simdnoise = { git = "https://github.com/jackmott/rust-simd-noise", rev = "3a4f3e6" } # needed for https://github.com/jackmott/rust-simd-noise/pull/31 and https://github.com/jackmott/rust-simd-noise/pull/36 -smallvec = "1" -strum = "0.21" - -[dev-dependencies] -approx = "0.3" +log = "0.4.14" diff --git a/feather/worldgen/src/biomes/distorted_voronoi.rs b/feather/worldgen/src/biomes/distorted_voronoi.rs deleted file mode 100644 index 20f3d31d1..000000000 --- a/feather/worldgen/src/biomes/distorted_voronoi.rs +++ /dev/null @@ -1,137 +0,0 @@ -use crate::voronoi::VoronoiGrid; -use crate::BiomeGenerator; -use base::chunk::BiomeStore; -use base::{Biome, ChunkPosition}; -use rand::{Rng, SeedableRng}; -use rand_xorshift::XorShiftRng; - -/// Biome grid generator based on a distorted Voronoi -/// noise. -#[derive(Default)] -pub struct DistortedVoronoiBiomeGenerator; - -impl BiomeGenerator for DistortedVoronoiBiomeGenerator { - fn generate_for_chunk(&self, chunk: ChunkPosition, seed: u64) -> BiomeStore { - let mut voronoi = VoronoiGrid::new(384, seed); - - let mut biomes = BiomeStore::default(); // Will be overridden - - // Noise is used to distort each coordinate. - /*let x_noise = - NoiseBuilder::gradient_2d_offset(chunk.x as f32 * 16.0, 16, chunk.z as f32 * 16.0, 16) - .with_seed(seed as i32 + 1) - .generate_scaled(-4.0, 4.0); - let z_noise = - NoiseBuilder::gradient_2d_offset(chunk.x as f32 * 16.0, 16, chunk.z as f32 * 16.0, 16) - .with_seed(seed as i32 + 2) - .generate_scaled(-4.0, 4.0);*/ - - for x in 0..4 { - for z in 0..4 { - // Apply distortion to coordinate before passing to voronoi - // generator. - //let distort_x = x_noise[(z << 4) | x] as i32 * 8; - //let distort_z = z_noise[(z << 4) | x] as i32 * 8; - - let distort_x = 0; - let distort_z = 0; - - let (closest_x, closest_y) = voronoi.get( - (chunk.x * 16) + x as i32 * 4 + distort_x, - (chunk.z * 16) + z as i32 * 4 + distort_z, - ); - - // Shift around the closest_x and closest_y values - // and deterministically select a biome based on the - // computed value. Continue shifting the value until - // a valid biome is computed. - let combined = (i64::from(closest_x) << 32) | i64::from(closest_y); - let mut rng = XorShiftRng::seed_from_u64(combined as u64); - - loop { - let shifted: u32 = rng.gen(); - - let biome = Biome::from_id(shifted % 60).unwrap(); - if is_biome_allowed(biome) { - for y in 0..64 { - biomes.set(x, y, z, biome); - } - break; - } - } - } - } - - biomes - } -} - -/// Returns whether the given biome is allowed in the overworld. -fn is_biome_allowed(biome: Biome) -> bool { - !matches!( - biome, - Biome::TheEnd - | Biome::TheVoid - | Biome::NetherWastes - | Biome::CrimsonForest - | Biome::WarpedForest - | Biome::BasaltDeltas - | Biome::SmallEndIslands - | Biome::EndBarrens - | Biome::EndHighlands - | Biome::EndMidlands - ) -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_not_all_plains() { - // Check that the `ChunkBiomes` was overridden correctly. - let gen = DistortedVoronoiBiomeGenerator::default(); - - let chunk = ChunkPosition::new(5433, 132); - - let biomes = gen.generate_for_chunk(chunk, 8344); - - println!("{:?}", biomes); - - let mut num_plains = 0; - for x in 0..4 { - for z in 0..4 { - for y in 0..64 { - if biomes.get(x, y, z) == Biome::Plains { - num_plains += 1; - } - } - } - } - - assert_ne!(num_plains, 4 * 64 * 4); - } - - #[test] - fn test_deterministic() { - // Check that the result is always deterministic. - let gen = DistortedVoronoiBiomeGenerator::default(); - - let chunk = ChunkPosition::new(0, 0); - - let seed = 52; - let first = gen.generate_for_chunk(chunk, seed); - - for _ in 0..5 { - let next = gen.generate_for_chunk(chunk, seed); - - for x in 0..4 { - for z in 0..4 { - for y in 0..64 { - assert_eq!(first.get(x, y, z), next.get(x, y, z)); - } - } - } - } - } -} diff --git a/feather/worldgen/src/biomes/mod.rs b/feather/worldgen/src/biomes/mod.rs deleted file mode 100644 index 666e9fd5e..000000000 --- a/feather/worldgen/src/biomes/mod.rs +++ /dev/null @@ -1,7 +0,0 @@ -//! Biome grid creation. - -mod distorted_voronoi; -mod two_level; - -pub use distorted_voronoi::DistortedVoronoiBiomeGenerator; -pub use two_level::TwoLevelBiomeGenerator; diff --git a/feather/worldgen/src/biomes/two_level.rs b/feather/worldgen/src/biomes/two_level.rs deleted file mode 100644 index a14ae3fe4..000000000 --- a/feather/worldgen/src/biomes/two_level.rs +++ /dev/null @@ -1,77 +0,0 @@ -use crate::voronoi::VoronoiGrid; -use crate::{voronoi, BiomeGenerator}; -use base::chunk::BiomeStore; -use base::{Biome, ChunkPosition}; -use once_cell::sync::Lazy; - -/// Array of biome groups, each containing biomes -/// which may appear next to each other. This is used in the -/// two-level biome generator. -static BIOME_GROUPS: Lazy>> = Lazy::new(|| { - vec![ - vec![Biome::SnowyTundra, Biome::SnowyTaiga], - vec![ - Biome::Plains, - Biome::BirchForest, - Biome::Forest, - Biome::Taiga, - Biome::Mountains, - Biome::Swamp, - Biome::DarkForest, - ], - vec![Biome::Savanna, Biome::Desert], - ] -}); - -/// Biome grid generator which works using two layers -/// of Voronoi. The first layer defines the biome group, -/// and the second determines which biome inside that group -/// to use. This technique allows similar biomes to be grouped -/// together and prevents unrelated biomes from being neighbors. -#[derive(Default)] -pub struct TwoLevelBiomeGenerator; - -impl BiomeGenerator for TwoLevelBiomeGenerator { - fn generate_for_chunk(&self, chunk: ChunkPosition, seed: u64) -> BiomeStore { - // Voronoi used to determine biome group - let mut group_voronoi = VoronoiGrid::new(1024, seed); - // Voronoi used to determine biome within group - let mut local_voronoi = VoronoiGrid::new(256, seed + 1); - - let mut biomes = BiomeStore::default(); // Will be overridden - - let num_groups = BIOME_GROUPS.len(); - - // TODO: distort voronoi - - for x in 0..4 { - for z in 0..4 { - // Compute biome group - let possible_biomes = { - let (closest_x, closest_z) = - group_voronoi.get(chunk.x * 16 + x * 4, chunk.z * 16 + z * 4); - - let group_index = voronoi::shuffle(closest_x, closest_z, 0, num_groups); - - &BIOME_GROUPS[group_index] - }; - - // Compute biome within group - let biome = { - let (closest_x, closest_z) = - local_voronoi.get(chunk.x * 16 + x * 4, chunk.z * 16 + z * 4); - - let biome_index = - voronoi::shuffle(closest_x, closest_z, 0, possible_biomes.len()); - - possible_biomes[biome_index] - }; - for y in 0..64 { - biomes.set(x as usize, y, z as usize, biome); - } - } - } - - biomes - } -} diff --git a/feather/worldgen/src/composition.rs b/feather/worldgen/src/composition.rs deleted file mode 100644 index 61bc6e14c..000000000 --- a/feather/worldgen/src/composition.rs +++ /dev/null @@ -1,206 +0,0 @@ -//! Composition generator, used to populate chunks with blocks -//! based on the density and biome values. - -use crate::{block_index, util, CompositionGenerator, SEA_LEVEL}; -use base::{chunk::BiomeStore, Biome, BlockId, Chunk, ChunkPosition}; -use bitvec::order::LocalBits; -use bitvec::slice::BitSlice; -use rand::{Rng, SeedableRng}; -use rand_xorshift::XorShiftRng; -use std::cmp::min; - -/// A composition generator which generates basic -/// terrain based on biome values. -#[derive(Debug, Default)] -pub struct BasicCompositionGenerator; - -impl CompositionGenerator for BasicCompositionGenerator { - fn generate_for_chunk( - &self, - chunk: &mut Chunk, - _pos: ChunkPosition, - biomes: &BiomeStore, - density: &BitSlice, - seed: u64, - ) { - // For each column in the chunk, go from top to - // bottom. The first time a block density value is set to `true`, - // set it and the next three blocks to dirt. After that, use - // stone. - for x in 0..16 { - for z in 0..16 { - basic_composition_for_column( - x, - z, - chunk, - density, - seed, - biomes.get_at_block(x, 0, z), - ); - } - } - } -} - -fn basic_composition_for_column( - x: usize, - z: usize, - chunk: &mut Chunk, - density: &BitSlice, - seed: u64, - biome: Biome, -) { - basic_composition_for_solid_biome(x, z, chunk, density, seed, biome); -} - -fn basic_composition_for_solid_biome( - x: usize, - z: usize, - chunk: &mut Chunk, - density: &BitSlice, - seed: u64, - biome: Biome, -) { - let mut rng = - XorShiftRng::seed_from_u64(util::shuffle_seed_for_column(seed, chunk.position(), x, z)); - - let top_soil = top_soil_block(biome); - - let mut topsoil_remaining = -1; - let mut water_level = 0; // `level` block data starts at 0 and skips to min(8+n, 15) for each level of water downward - for y in (0..256).rev() { - let mut block = BlockId::air(); - - let is_solid = density[block_index(x, y, z)]; - - let mut skip = false; - - if biome == Biome::Ocean { - if y <= SEA_LEVEL && !is_solid { - block = BlockId::water().with_water_level(water_level); - if water_level == 0 { - water_level = 8; - } else { - water_level = min(water_level + 1, 15); - } - skip = true; - } else if y >= SEA_LEVEL { - continue; // Leave at air - no blocks above sea level in ocean - } - } - - if !skip { - if y <= rng.gen_range(0, 4) { - block = BlockId::bedrock(); - } else { - block = if is_solid { - if topsoil_remaining == -1 { - topsoil_remaining = 3; - top_soil - } else if topsoil_remaining > 0 { - let block = underneath_top_soil_block(biome); - topsoil_remaining -= 1; - block - } else { - BlockId::stone() - } - } else { - topsoil_remaining = -1; - BlockId::air() - }; - } - } - - if !block.is_air() { - chunk.set_block_at(x, y, z, block); - } - } -} - -/// Returns the top soil block for the given biome. -fn top_soil_block(biome: Biome) -> BlockId { - match biome { - Biome::SnowyTundra - | Biome::IceSpikes - | Biome::SnowyTaiga - | Biome::SnowyTaigaMountains - | Biome::SnowyBeach => BlockId::grass_block().with_snowy(true), - Biome::GravellyMountains | Biome::ModifiedGravellyMountains => BlockId::gravel(), - Biome::StoneShore => BlockId::stone(), - Biome::Beach | Biome::Desert | Biome::DesertHills | Biome::DesertLakes => BlockId::sand(), - Biome::MushroomFields | Biome::MushroomFieldShore => BlockId::mycelium(), - - Biome::Badlands - | Biome::ErodedBadlands - | Biome::WoodedBadlandsPlateau - | Biome::BadlandsPlateau - | Biome::ModifiedBadlandsPlateau - | Biome::ModifiedWoodedBadlandsPlateau => BlockId::red_sand(), - Biome::Ocean => BlockId::sand(), - _ => BlockId::grass_block(), - } -} - -/// Returns the block under the top soil block for the given biome. -fn underneath_top_soil_block(biome: Biome) -> BlockId { - match biome { - Biome::SnowyBeach => BlockId::snow_block(), - Biome::GravellyMountains | Biome::ModifiedGravellyMountains => BlockId::gravel(), - Biome::StoneShore => BlockId::stone(), - Biome::Beach | Biome::Desert | Biome::DesertHills | Biome::DesertLakes => { - BlockId::sandstone() - } - Biome::MushroomFields | Biome::MushroomFieldShore => BlockId::dirt(), - Biome::Badlands - | Biome::ErodedBadlands - | Biome::WoodedBadlandsPlateau - | Biome::BadlandsPlateau - | Biome::ModifiedBadlandsPlateau - | Biome::ModifiedWoodedBadlandsPlateau => BlockId::red_sandstone(), - Biome::Ocean => BlockId::sand(), - _ => BlockId::dirt(), - } -} - -#[cfg(test)] -mod tests { - use super::*; - use bitvec::vec::BitVec; - - #[test] - fn test_basic_composition_for_column() { - let mut density = BitVec::from_vec(vec![0u8; 16 * 256 * 16 / 8]); - - let x = 0; - let z = 0; - - for y in 0..=32 { - density.set(block_index(x, y, z), true); - } - - for y in 40..=64 { - density.set(block_index(x, y, z), true); - } - - let mut chunk = Chunk::new(ChunkPosition::new(0, 0)); - basic_composition_for_column(x, z, &mut chunk, &density[..], 435, Biome::Plains); - - for y in 4..=28 { - assert_eq!(chunk.block_at(x, y, z).unwrap(), BlockId::stone()); - } - - for y in 29..=31 { - assert_eq!(chunk.block_at(x, y, z).unwrap(), BlockId::dirt()); - } - - for y in 33..40 { - assert_eq!(chunk.block_at(x, y, z).unwrap(), BlockId::air()); - } - - for y in 40..=60 { - assert_eq!(chunk.block_at(x, y, z).unwrap(), BlockId::stone()); - } - - assert_eq!(chunk.block_at(x, 64, z).unwrap(), BlockId::grass_block()); - } -} diff --git a/feather/worldgen/src/density_map/density.rs b/feather/worldgen/src/density_map/density.rs deleted file mode 100644 index 3d09f0f4f..000000000 --- a/feather/worldgen/src/density_map/density.rs +++ /dev/null @@ -1,262 +0,0 @@ -//! Implements a density map generator using 3D Perlin noise. -//! -//! Over the 2D height map generator, this has the advantage that terrain -//! is more interesting; overhangs and the like will be able to generate. - -use crate::{block_index, noise, DensityMapGenerator, NearbyBiomes, NoiseLerper}; -use base::{Biome, ChunkPosition}; -use bitvec::order::LocalBits; -use bitvec::vec::BitVec; -use once_cell::sync::Lazy; -use simdnoise::NoiseBuilder; - -/// A density map generator using 3D Perlin noise. -/// -/// This generator should be used over the height map generator -/// when seeking correct-looking worlds; -/// -/// # Implementation -/// Density calculation works as follows: -/// * Generate a base 3D Perlin nosie with settings depending -/// on the biome. Use linear interpolation on noise (this -/// is handled by `Wrapped3DPerlinNoise`)`. -/// * Depending on the density value from the noise, decide -/// whether the position is solid or air. -#[derive(Debug, Default)] -pub struct DensityMapGeneratorImpl; - -impl DensityMapGenerator for DensityMapGeneratorImpl { - fn generate_for_chunk( - &self, - chunk: ChunkPosition, - biomes: &NearbyBiomes, - seed: u64, - ) -> BitVec { - let mut density = BitVec::from_vec(vec![0u8; 16 * 256 * 16 / 8]); - - let uninterpolated_densities = generate_density(chunk, biomes, seed); - let noise = NoiseLerper::new(&uninterpolated_densities) - .with_offset(chunk.x, chunk.z) - .generate(); - - for x in 0..16 { - for y in 0..256 { - for z in 0..16 { - let value = noise[noise::index(x, y, z)]; - - let is_solid = value < 0.0; - let index = block_index(x, y, z); - density.set(index, is_solid); - } - } - } - - density - } -} - -const DENSITY_WIDTH: usize = 5; -const DENSITY_HEIGHT: usize = 33; - -/// Generates a 5x33x5 density array to pass to `NoiseLerper`. -/// -/// This is based on Cuberite's implementation of the same function. -/// It works by having two 3D density noises, with another noise -/// to interpolate between the values of each. It then uses -/// a vertical linear gradient to determine densities of the -/// subchunks at each given Y level for a column. -/// -/// # Notes -/// The density values emitted from this function should -/// be considered solid if less than 0 and air if greater -/// than 0. This is contrary to what might seem logical. -fn generate_density(chunk: ChunkPosition, biomes: &NearbyBiomes, seed: u64) -> Vec { - // TODO: generate based on biome - - let x_offset = (chunk.x * (DENSITY_WIDTH as i32 - 1)) as f32; - let y_offset = 0.0; - let z_offset = (chunk.z * (DENSITY_WIDTH as i32 - 1)) as f32; - let len = DENSITY_WIDTH; - let height = DENSITY_HEIGHT; - - let noise_seed = seed as i32; - - // Generate various noises. - let choice_noise = NoiseBuilder::fbm_3d_offset(x_offset, len, y_offset, height, z_offset, len) - .with_seed(noise_seed) - .with_octaves(2) - .with_freq(0.001) - .generate() - .0; - let density_noise_1 = - NoiseBuilder::fbm_3d_offset(x_offset, len, y_offset, height, z_offset, len) - .with_seed(noise_seed + 1) - .with_octaves(2) - .with_freq(0.2) - .generate() - .0; - let density_noise_2 = - NoiseBuilder::fbm_3d_offset(x_offset, len, y_offset, height, z_offset, len) - .with_seed(noise_seed + 2) - .with_octaves(2) - .with_freq(0.2) - .generate() - .0; - // Additional 2D height noise for extra detail. - let height_noise = NoiseBuilder::fbm_2d_offset(x_offset, len, z_offset, len) - .with_seed(noise_seed + 3) - .with_octaves(2) - .with_freq(0.08) - .generate() - .0; - - let mut result = vec![0.0; DENSITY_WIDTH * DENSITY_HEIGHT * DENSITY_WIDTH]; - - // Loop through subchunks and generate density for each. - for subx in 0..DENSITY_WIDTH { - for subz in 0..DENSITY_WIDTH { - // TODO: average nearby biome parameters - let (amplitude, midpoint) = column_parameters(biomes, subx, subz); - - let height = height_noise[(subz * len) + subx] * 3.0; - - // Loop through Y axis of this subchunk column. - for suby in 0..DENSITY_HEIGHT { - // Linear gradient used to offset based on height. - let mut height_offset = ((suby as f32 * 8.0) - midpoint) * amplitude; - - // If we are below the midpoint, increase the slope of the gradient. - // This creates smoother terrain. - if height_offset < 0.0 { - height_offset *= 4.0; - } - - // When we are near sky limit, decrease - // the slope. This ensures that very tall - // mountains don't artificially cut off - // at Y=256. - if suby > 26 { - height_offset += (suby as f32 - 28.0) / 4.0; - } - - let index = DENSITY_WIDTH * suby + subx + DENSITY_WIDTH * DENSITY_HEIGHT * subz; - - let choice = choice_noise[index] * 100.0; - let density_1 = density_noise_1[index] * 50.0; - let density_2 = density_noise_2[index] * 50.0; - - // Average between two density values based on choice weight. - result[index] = - lerp(density_1, density_2, choice) * 0.2 + height_offset * 2.0 + height; - } - } - } - - result -} - -/// Elevation height field, used to weight -/// the averaging of nearby biome heights. -static ELEVATION_WEIGHT: Lazy<[[f32; 19]; 19]> = Lazy::new(|| { - let mut array = [[0.0; 19]; 19]; - for (x, values) in array.iter_mut().enumerate() { - for (z, value) in values.iter_mut().enumerate() { - let mut x_squared = x as i32 - 9; - x_squared *= x_squared; - let mut z_sqaured = z as i32 - 9; - z_sqaured *= z_sqaured; - *value = 10.0 / (x_squared as f32 + z_sqaured as f32 + 0.2).sqrt(); - } - } - array -}); - -/// Computes the target amplitude and midpoint for the -/// given column, using a 9x9 grid of biomes -/// around the column to determine a weighted average. -/// -/// The X and Z parameters are the coordinates of the subchunk -/// within the chunk, not the block coordinate. -fn column_parameters(biomes: &NearbyBiomes, x: usize, z: usize) -> (f32, f32) { - let x = x as i32 * (DENSITY_WIDTH as i32 - 1); - let z = z as i32 * (DENSITY_WIDTH as i32 - 1); - - let mut sum_amplitudes = 0.0; - let mut sum_midpoints = 0.0; - let mut sum_weights = 0.0; - - // Loop through columns in 9x9 grid and compute weighted average of amplitudes - // and midpoints. - for block_x in -9..=9 { - for block_z in -9..=9 { - let abs_x = x + block_x; - let abs_z = z + block_z; - - let biome = biomes.get_at_block(abs_x, 0, abs_z); - let (amplitude, midpoint) = biome_parameters(biome); - - let weight = ELEVATION_WEIGHT[(block_x + 9) as usize][(block_z + 9) as usize]; - - sum_amplitudes += amplitude * weight; - sum_midpoints += midpoint * weight; - sum_weights += weight; - } - } - - sum_amplitudes /= sum_weights; - sum_midpoints /= sum_weights; - - (sum_amplitudes, sum_midpoints) -} - -/// Returns the amplitude and midpoint for a given biome -/// type as a tuple in that order. -/// -/// All original values were taken from Cuberite's source, -/// so all credit for this function goes to their team -/// for the presumably highly laborious effort -/// involved in finding these values. -fn biome_parameters(biome: Biome) -> (f32, f32) { - match biome { - Biome::Beach => (0.2, 60.0), - Biome::BirchForest => (0.1, 64.0), - Biome::BirchForestHills => (0.075, 64.0), - Biome::TallBirchHills => (0.075, 68.0), - Biome::TallBirchForest => (0.1, 64.0), - Biome::SnowyBeach => (0.3, 62.0), - Biome::Taiga => (0.3, 62.0), - Biome::TaigaHills => (0.075, 68.0), - Biome::DesertHills => (0.075, 68.0), - Biome::DeepOcean => (0.17, 35.0), - Biome::Desert => (0.15, 62.0), - Biome::Mountains => (0.045, 75.0), - Biome::MountainEdge => (0.1, 70.0), - Biome::WoodedMountains => (0.04, 80.0), - Biome::FlowerForest => (0.1, 64.0), - Biome::Forest => (0.1, 64.0), - Biome::Jungle => (0.1, 63.0), - Biome::Ocean => (0.12, 45.0), - Biome::Plains => (0.3, 62.0), - Biome::Savanna => (0.3, 62.0), - Biome::SavannaPlateau => (0.3, 85.0), - Biome::StoneShore => (0.075, 60.0), - Biome::SunflowerPlains => (0.3, 62.0), - Biome::Swamp => (0.25, 59.0), - // TODO: finish this list - _ => (0.3, 62.0), - } -} - -/// Interpolates between two values based on the given -/// weight. -/// -/// The weight is clamped to [0.0, 1.0]. -fn lerp(a: f32, b: f32, weight: f32) -> f32 { - if weight < 0.0 { - return a; - } else if weight > 1.0 { - return b; - } - - a + (b - a) * weight -} diff --git a/feather/worldgen/src/density_map/height.rs b/feather/worldgen/src/density_map/height.rs deleted file mode 100644 index c38bac35e..000000000 --- a/feather/worldgen/src/density_map/height.rs +++ /dev/null @@ -1,57 +0,0 @@ -//! Implements a basic height map generator using 2D Perlin noise. -//! A superior generator would use 3D noise to allow for overhangs. - -use crate::{block_index, DensityMapGenerator, NearbyBiomes, OCEAN_DEPTH, SKY_LIMIT}; -use base::{Biome, ChunkPosition}; -use bitvec::order::LocalBits; -use bitvec::vec::BitVec; -use simdnoise::NoiseBuilder; -use std::cmp::min; - -/// Density map generator which simply uses a height map -/// using two-dimensional Perlin noise. -#[derive(Debug, Default)] -pub struct HeightMapGenerator; - -impl DensityMapGenerator for HeightMapGenerator { - fn generate_for_chunk( - &self, - chunk: ChunkPosition, - biomes: &NearbyBiomes, - seed: u64, - ) -> BitVec { - let x_offset = (chunk.x * 16) as f32; - let y_offset = (chunk.z * 16) as f32; - - let dim = 16; - let (elevation, _, _) = NoiseBuilder::gradient_2d_offset(x_offset, dim, y_offset, dim) - .with_seed(seed as i32) - .with_freq(0.01) - .generate(); - let (detail, _, _) = NoiseBuilder::gradient_2d_offset(x_offset, dim, y_offset, dim) - .with_seed(seed as i32 + 1) - .generate(); - - let mut density_map = BitVec::from_vec(vec![0u8; 16 * 256 * 16 / 8]); - for x in 0..16 { - for z in 0..16 { - let biome = biomes.get_at_block(x, 0, z); - let index = (z << 4) | x; - let mut elevation = elevation[index].abs() * 400.0; - let detail = detail[index] * 50.0; - - if biome == Biome::Ocean { - elevation -= OCEAN_DEPTH as f32; - } - - let height = (elevation + detail + 64.0) as usize; - - for y in 0..min(height, SKY_LIMIT) { - density_map.set(block_index(x, y, z), true); - } - } - } - - density_map - } -} diff --git a/feather/worldgen/src/density_map/mod.rs b/feather/worldgen/src/density_map/mod.rs deleted file mode 100644 index 3a24e4bd8..000000000 --- a/feather/worldgen/src/density_map/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -mod density; -mod height; - -pub use density::DensityMapGeneratorImpl; -pub use height::HeightMapGenerator; diff --git a/feather/worldgen/src/finishers/clumped.rs b/feather/worldgen/src/finishers/clumped.rs deleted file mode 100644 index af8880f05..000000000 --- a/feather/worldgen/src/finishers/clumped.rs +++ /dev/null @@ -1,75 +0,0 @@ -use crate::util::shuffle_seed_for_chunk; -use crate::{BiomeStore, FinishingGenerator, TopBlocks}; -use base::{Biome, BlockId, Chunk}; -use rand::{Rng, SeedableRng}; -use rand_xorshift::XorShiftRng; -use std::{cmp, iter}; - -/// Clumped foliage generator. -#[derive(Default)] -pub struct ClumpedFoliageFinisher; - -impl FinishingGenerator for ClumpedFoliageFinisher { - fn generate_for_chunk( - &self, - chunk: &mut Chunk, - biomes: &BiomeStore, - top_blocks: &TopBlocks, - seed: u64, - ) { - // Generate clumps of foliage for the biome. - // Note that we currently use a hack - // to ensure that clumps are within one - // chunk. - // The algorithm should be changed in the future - // to allow for cross-chunk clumps. - - let mut rng = XorShiftRng::seed_from_u64(shuffle_seed_for_chunk(seed, chunk.position())); - - for x in 0..16 { - for z in 0..16 { - let biome = biomes.get_at_block(x, 0, z); - - if let Some(block) = biome_clump_block(biome) { - if rng.gen_range(0, 48) == 0 { - // Generate clump with center at this position. - iter::repeat(()).take(rng.gen_range(3, 6)).for_each(|_| { - let offset_x = rng.gen_range(-2, 3); - let offset_z = rng.gen_range(-2, 3); - - // Clamp value within chunk border - let pos_x = cmp::max(0, cmp::min(x as i32 + offset_x, 15)) as usize; - let pos_z = cmp::max(0, cmp::min(z as i32 + offset_z, 15)) as usize; - - if chunk.biomes().get_at_block(pos_x, 0, pos_z) != biome { - return; // Don't generate block outside this biome - } - - let top = top_blocks.top_block_at(pos_x, pos_z); - chunk.set_block_at(pos_x, top + 1, pos_z, block); - }); - } - } - } - } - } -} - -fn biome_clump_block(biome: Biome) -> Option { - match biome { - Biome::Plains - | Biome::SunflowerPlains - | Biome::WoodedMountains - | Biome::Mountains - | Biome::Savanna - | Biome::SavannaPlateau - | Biome::Forest - | Biome::DarkForest - | Biome::DarkForestHills - | Biome::BirchForest - | Biome::TallBirchForest - | Biome::BirchForestHills - | Biome::Swamp => Some(BlockId::grass()), - _ => None, - } -} diff --git a/feather/worldgen/src/finishers/mod.rs b/feather/worldgen/src/finishers/mod.rs deleted file mode 100644 index d9bfdb0c5..000000000 --- a/feather/worldgen/src/finishers/mod.rs +++ /dev/null @@ -1,9 +0,0 @@ -//! Various finishers for world generation, such as grass, snow, and trees. - -mod clumped; -mod single; -mod snow; - -pub use clumped::ClumpedFoliageFinisher; -pub use single::SingleFoliageFinisher; -pub use snow::SnowFinisher; diff --git a/feather/worldgen/src/finishers/single.rs b/feather/worldgen/src/finishers/single.rs deleted file mode 100644 index 74bcaf005..000000000 --- a/feather/worldgen/src/finishers/single.rs +++ /dev/null @@ -1,58 +0,0 @@ -use crate::util::shuffle_seed_for_chunk; -use crate::{FinishingGenerator, TopBlocks}; -use base::chunk::BiomeStore; -use base::{Biome, BlockId, Chunk}; -use rand::{Rng, SeedableRng}; -use rand_xorshift::XorShiftRng; - -/// Foliage including shrubs and lilypads. -#[derive(Default)] -pub struct SingleFoliageFinisher; - -impl FinishingGenerator for SingleFoliageFinisher { - fn generate_for_chunk( - &self, - chunk: &mut Chunk, - biomes: &BiomeStore, - top_blocks: &TopBlocks, - seed: u64, - ) { - let mut rng = XorShiftRng::seed_from_u64(shuffle_seed_for_chunk(seed, chunk.position())); - for x in 0..16 { - for z in 0..16 { - let biome = biomes.get_at_block(x, 0, z); - - if let Some(foliage) = biome_foliage(biome) { - if chunk.block_at(x, top_blocks.top_block_at(x, z), z).unwrap() - == foliage.required - && rng.gen_range(0, 192) == 0 - { - chunk.set_block_at(x, top_blocks.top_block_at(x, z) + 1, z, foliage.block); - } - } - } - } - } -} - -struct Foliage { - /// The block required at the top of the column - /// for the foliage to generate. - required: BlockId, - /// The foliage block. - block: BlockId, -} - -impl Foliage { - fn new(required: BlockId, block: BlockId) -> Self { - Self { required, block } - } -} - -fn biome_foliage(biome: Biome) -> Option { - match biome { - Biome::Desert => Some(Foliage::new(BlockId::sand(), BlockId::dead_bush())), - Biome::Swamp => Some(Foliage::new(BlockId::water(), BlockId::lily_pad())), - _ => None, - } -} diff --git a/feather/worldgen/src/finishers/snow.rs b/feather/worldgen/src/finishers/snow.rs deleted file mode 100644 index 164d74970..000000000 --- a/feather/worldgen/src/finishers/snow.rs +++ /dev/null @@ -1,39 +0,0 @@ -use crate::{FinishingGenerator, TopBlocks}; -use base::{chunk::BiomeStore, Biome, BlockId, Chunk}; - -/// Finisher for generating snow on top of snow biomes. -#[derive(Default)] -pub struct SnowFinisher; - -impl FinishingGenerator for SnowFinisher { - fn generate_for_chunk( - &self, - chunk: &mut Chunk, - biomes: &BiomeStore, - top_blocks: &TopBlocks, - _seed: u64, - ) { - for x in 0..16 { - for z in 0..16 { - if !is_snowy_biome(biomes.get_at_block(x, 0, z)) { - continue; - } - - chunk - .set_block_at(x, top_blocks.top_block_at(x, z) + 1, z, BlockId::snow()) - .unwrap(); - } - } - } -} - -fn is_snowy_biome(biome: Biome) -> bool { - matches!( - biome, - Biome::SnowyTundra - | Biome::IceSpikes - | Biome::SnowyTaiga - | Biome::SnowyTaigaMountains - | Biome::SnowyBeach - ) -} diff --git a/feather/worldgen/src/lib.rs b/feather/worldgen/src/lib.rs index 7737747e2..5c3452a43 100644 --- a/feather/worldgen/src/lib.rs +++ b/feather/worldgen/src/lib.rs @@ -5,372 +5,57 @@ //! Generation is primarily based around the `ComposableGenerator`, //! which allows configuration of a world generator pipeline. -mod biomes; -mod composition; -mod density_map; -mod finishers; -pub mod noise; -mod superflat; -mod util; -pub mod voronoi; - -use base::chunk::BiomeStore; -use base::{Biome, BlockId, Chunk, ChunkPosition}; -pub use biomes::{DistortedVoronoiBiomeGenerator, TwoLevelBiomeGenerator}; -use bitvec::vec::BitVec; -use bitvec::{order::LocalBits, slice::BitSlice}; -pub use composition::BasicCompositionGenerator; -pub use density_map::{DensityMapGeneratorImpl, HeightMapGenerator}; -use finishers::{ClumpedFoliageFinisher, SingleFoliageFinisher, SnowFinisher}; -pub use noise::NoiseLerper; -use num_traits::ToPrimitive; -use rand::{Rng, SeedableRng}; -use rand_xorshift::XorShiftRng; -use smallvec::SmallVec; +use base::biome::BiomeList; pub use superflat::SuperflatWorldGenerator; -/// Sea-level height. -pub const SEA_LEVEL: usize = 64; -/// Sky limit. -pub const SKY_LIMIT: usize = 255; -/// Depth of an ocean. -const OCEAN_DEPTH: usize = 30; +use base::chunk::Chunk; +use base::world::{Sections, WorldHeight}; +use base::ChunkPosition; +mod superflat; pub trait WorldGenerator: Send + Sync { /// Generates the chunk at the given position. - fn generate_chunk(&self, position: ChunkPosition) -> Chunk; + fn generate_chunk( + &self, + position: ChunkPosition, + sections: Sections, + min_y: i32, + biomes: &BiomeList, + ) -> Chunk; } pub struct EmptyWorldGenerator {} impl WorldGenerator for EmptyWorldGenerator { - fn generate_chunk(&self, position: ChunkPosition) -> Chunk { - Chunk::new(position) - } -} - -/// A "composable" world generator. -/// -/// This generator will generate the world based -/// on a pipeline, and each step in the pipeline passes -/// data to the next stage. -/// -/// The pipeline stages are as follows: -/// * Biomes - generates a biome grid. -/// * Terrain density - generates the terrain density values using Perlin noise. -/// * Terrain composition - sets the correct block types based on the biome and terrain density. -/// * Finishing generators - generates final elements, such as grass, snow, and trees. -/// -/// This generator is based on [this document](http://cuberite.xoft.cz/docs/Generator.html). -pub struct ComposableGenerator { - /// The biome generator. - biome: Box, - /// The height map generator. - density_map: Box, - /// The composition generator. - composition: Box, - /// A vector of finishing generators used - /// by this composable generator. - finishers: SmallVec<[Box; 8]>, - /// The world seed. - seed: u64, -} - -impl ComposableGenerator { - /// Creates a new `ComposableGenerator` with the given stages. - pub fn new( - biome: B, - density_map: D, - composition: C, - finishers: F, - seed: u64, - ) -> Self - where - B: BiomeGenerator + 'static, - D: DensityMapGenerator + 'static, - C: CompositionGenerator + 'static, - F: IntoIterator>, - { - Self { - biome: Box::new(biome), - density_map: Box::new(density_map), - composition: Box::new(composition), - finishers: finishers.into_iter().collect(), - seed, - } - } - - /// A default composable generator, used - /// for worlds with "default" world type. - pub fn default_with_seed(seed: u64) -> Self { - let finishers: Vec> = vec![ - Box::new(SnowFinisher::default()), - Box::new(SingleFoliageFinisher::default()), - Box::new(ClumpedFoliageFinisher::default()), - ]; - Self::new( - TwoLevelBiomeGenerator::default(), - DensityMapGeneratorImpl::default(), - BasicCompositionGenerator::default(), - finishers, - seed, - ) - } -} - -impl WorldGenerator for ComposableGenerator { - fn generate_chunk(&self, position: ChunkPosition) -> Chunk { - let mut seed_shuffler = XorShiftRng::seed_from_u64(self.seed); - - // Generate biomes for 3x3 grid of chunks around current chunk. - let biome_seed = seed_shuffler.gen(); - - let mut biomes = vec![]; - - for z in -1..=1 { - for x in -1..=1 { - let pos = ChunkPosition::new(position.x + x, position.z + z); - biomes.push(self.biome.generate_for_chunk(pos, biome_seed)); - } - } - let biomes = NearbyBiomes::from_slice(&biomes[..]).unwrap(); - - let density_map = - self.density_map - .generate_for_chunk(position, &biomes, seed_shuffler.gen()); - - let mut chunk = Chunk::new(position); - *chunk.biomes_mut() = *biomes.center(); - - self.composition.generate_for_chunk( - &mut chunk, - position, - &biomes.biome_stores[4], // Center chunk - density_map.as_bitslice(), - seed_shuffler.gen(), - ); - - // Calculate top blocks in chunk. - // TODO: perhaps this should be moved to `Chunk`? - let mut top_blocks = TopBlocks::new(); - for x in 0..16 { - for z in 0..16 { - for y in (0..256).rev() { - if chunk.block_at(x, y, z).unwrap() != BlockId::air() { - top_blocks.set_top_block_at(x, z, y); - break; - } - } - } - } - - chunk.recalculate_heightmaps(); - - // Finishers. - for finisher in &self.finishers { - finisher.generate_for_chunk( - &mut chunk, - &biomes.biome_stores[4], - &top_blocks, - seed_shuffler.gen(), - ); - } - - chunk - } -} - -/// A generator which generates the biome grid for a `ComposableGenerator`. -pub trait BiomeGenerator: Send + Sync { - /// Generates the biomes for a given chunk. - /// This function should be deterministic. - fn generate_for_chunk(&self, chunk: ChunkPosition, seed: u64) -> BiomeStore; -} - -/// A generator which generates the density map for a chunk. -/// Used in the `ComposableGenerator` pipeline. -pub trait DensityMapGenerator: Send + Sync { - /// Generates the density map for a given chunk. - /// A compact array of booleans is returned, indexable - /// by (y << 8) | (x << 4) | z. Those set to `true` will - /// contain solid blacks; those set to `false` will be air. - fn generate_for_chunk( + fn generate_chunk( &self, - chunk: ChunkPosition, - biomes: &NearbyBiomes, - seed: u64, - ) -> BitVec; -} - -/// A generator which populates the given chunk using blocks -/// based on the given density map and biomes. -pub trait CompositionGenerator: Send + Sync { - /// Populates the given chunk with blocks based on the given - /// biomes and density map. - fn generate_for_chunk( - &self, - chunk: &mut Chunk, - pos: ChunkPosition, - biomes: &BiomeStore, - density: &BitSlice, - seed: u64, - ); -} - -/// A generator, run after composition, -/// which can add finishing elements to chunks, -/// such as grass, trees, and snow. -pub trait FinishingGenerator: Send + Sync { - /// Populates the given chunk with any - /// finishing blocks. - fn generate_for_chunk( - &self, - chunk: &mut Chunk, - biomes: &BiomeStore, - top_blocks: &TopBlocks, - seed: u64, - ); + position: ChunkPosition, + sections: Sections, + min_y: i32, + _biomes: &BiomeList, + ) -> Chunk { + Chunk::new(position, sections, min_y / 16) + } } /// Returns an index into a one-dimensional array /// for the given x, y, and z values. -pub fn block_index(x: usize, y: usize, z: usize) -> usize { - assert!(x < 16 && y < 256 && z < 16); - (y << 8) | (x << 4) | z -} - -/// Represents the highest solid blocks in a chunk. -#[derive(Default)] -pub struct TopBlocks { - top_blocks: Vec, -} - -impl TopBlocks { - pub fn new() -> Self { - Self { - top_blocks: vec![0; 16 * 16], - } - } - - /// Fetches the highest solid blocks for the - /// given column coordinates (chunk-local). - pub fn top_block_at(&self, x: usize, z: usize) -> usize { - self.top_blocks[x + (z << 4)] as usize - } - - pub fn set_top_block_at(&mut self, x: usize, z: usize, top: usize) { - self.top_blocks[x + (z << 4)] = top as u8; - } -} -/// Represents the biomes in a 3x3 grid of chunks, -/// centered on the chunk currently being generated. -pub struct NearbyBiomes { - /// 2D array of chunk biomes. The chunk biomes - /// for a given chunk position relative to the center - /// chunk can be obtained using (x + 1) + (z + 1) * 3. - pub biome_stores: [BiomeStore; 3 * 3], -} - -impl NearbyBiomes { - pub fn from_slice(biome_store_slice: &[BiomeStore]) -> Option { - let mut biome_stores = [BiomeStore::new(Biome::Badlands); 9]; - if biome_store_slice.len() != biome_stores.len() { - return None; - } - - biome_stores.clone_from_slice(biome_store_slice); - Some(Self { biome_stores }) - } - - /// Gets the biome at the given coordinates. - /// - /// # Panics - /// Panics if `x >= 16`, `z >= 16`, or `y >= 256`. - pub fn get_at_block(&self, x: N, y: N, z: N) -> Biome { - let (index, local_x, local_y, local_z) = self.index(x, y, z); - - self.biome_stores[index].get_at_block(local_x, local_y, local_z) - } - - /// Gets the biome at the given coordinates, in multiples - /// of 4 blocks. - /// - /// # Panics - /// Panics if `x >= 4`, `z >= 4`, or `y >= 64`. - pub fn get(&self, x: N, y: N, z: N) -> Biome { - let (index, local_x, local_y, local_z) = self.index( - x.to_isize().unwrap() * 4, - y.to_isize().unwrap() * 4, - z.to_isize().unwrap() * 4, - ); - - self.biome_stores[index].get(local_x / 4, local_y / 4, local_z / 4) - } - - /// Sets the biome at the given coordinates, in multiples - /// of 4 blocks. - /// - /// # Panics - /// Panics if `x >= 4`, `z >= 4`, or `y >= 64`. - pub fn set(&mut self, x: N, y: N, z: N, biome: Biome) { - let (index, local_x, local_y, local_z) = self.index( - x.to_isize().unwrap() * 4, - y.to_isize().unwrap() * 4, - z.to_isize().unwrap() * 4, - ); - - self.biome_stores[index].set(local_x / 4, local_y / 4, local_z / 4, biome); - } - pub fn center(&self) -> &BiomeStore { - &self.biome_stores[4] - } - pub fn center_mut(&mut self) -> &mut BiomeStore { - &mut self.biome_stores[4] - } - /// Returns a tuple of (chunk_index, local_x, local_y, local_z) - fn index(&self, ox: N, oy: N, oz: N) -> (usize, usize, usize, usize) { - // FIXME: Does this function need to so complicated? - let ox = ox.to_isize().unwrap(); - let oy = oy.to_isize().unwrap(); - let oz = oz.to_isize().unwrap(); - - let x = ox + 16; - let z = oz + 16; - - let chunk_x = (x / 16) as usize; - let chunk_z = (z / 16) as usize; - - let mut local_x = (ox % 16).abs() as usize; - let local_y = (oy % 16).abs() as usize; - let mut local_z = (oz % 16).abs() as usize; - - if ox < 0 { - local_x = 16 - local_x; - } - if oz < 0 { - local_z = 16 - local_z; - } - - (chunk_x + chunk_z * 3, local_x, local_y, local_z) - } -} -/// A biome generator which always generates plains. -#[derive(Debug, Default)] -pub struct StaticBiomeGenerator; - -impl BiomeGenerator for StaticBiomeGenerator { - fn generate_for_chunk(&self, _chunk: ChunkPosition, _seed: u64) -> BiomeStore { - BiomeStore::new(Biome::Plains) - } +pub fn block_index(x: usize, y: i32, z: usize, world_height: WorldHeight, min_y: i32) -> usize { + assert!(x < 16 && y >= min_y && y < min_y + *world_height as i32 && z < 16); + (((y - min_y) as usize) << 8) | (x << 4) | z } #[cfg(test)] mod tests { + use crate::base::chunk::{BIOME_SAMPLE_RATE, SECTION_HEIGHT, SECTION_WIDTH}; + use base::chunk::{BIOME_SAMPLE_RATE, SECTION_HEIGHT, SECTION_WIDTH}; + use base::CHUNK_WIDTH; + use super::*; #[test] - fn test_reproducability() { - let seeds: [u64; 4] = [std::u64::MAX, 3243, 0, 100]; + fn test_reproducibility() { + let seeds: [u64; 4] = [u64::MAX, 3243, 0, 100]; let chunks = [ ChunkPosition::new(0, 0), @@ -381,9 +66,9 @@ mod tests { for seed in seeds.iter() { let gen = ComposableGenerator::default_with_seed(*seed); for chunk in chunks.iter() { - let first = gen.generate_chunk(*chunk); + let first = gen.generate_chunk(*chunk, Sections(16)); - let second = gen.generate_chunk(*chunk); + let second = gen.generate_chunk(*chunk, Sections(16)); test_chunks_eq(&first, &second); } @@ -391,16 +76,17 @@ mod tests { } fn test_chunks_eq(a: &Chunk, b: &Chunk) { - for x in 0..16 { - for z in 0..16 { - for y in 0..256 { + assert_eq!(a.sections().len(), b.sections().len()); + for x in 0..SECTION_WIDTH { + for z in 0..SECTION_WIDTH { + for y in 0..a.sections().len() * SECTION_HEIGHT { assert_eq!(a.block_at(x, y, z), b.block_at(x, y, z)); } } } - for x in 0..4 { - for z in 0..4 { - for y in 0..64 { + for x in 0..(CHUNK_WIDTH / BIOME_SAMPLE_RATE) { + for z in 0..(CHUNK_WIDTH / BIOME_SAMPLE_RATE) { + for y in 0..(a.sections().len() - 2) * (SECTION_HEIGHT / BIOME_SAMPLE_RATE) { assert_eq!(a.biomes().get(x, y, z), b.biomes().get(x, y, z)); } } @@ -411,7 +97,7 @@ mod tests { pub fn test_worldgen_empty() { let chunk_pos = ChunkPosition { x: 1, z: 2 }; let generator = EmptyWorldGenerator {}; - let chunk = generator.generate_chunk(chunk_pos); + let chunk = generator.generate_chunk(chunk_pos, Sections(16)); // No sections have been generated assert!(chunk.sections().iter().all(|sec| sec.is_none())); @@ -420,14 +106,14 @@ mod tests { #[test] fn test_chunk_biomes() { - let mut biomes = BiomeStore::new(Biome::Plains); - - for x in 0..4 { - for z in 0..4 { - for y in 0..64 { - assert_eq!(biomes.get(x, y, z), Biome::Plains); - biomes.set(x, y, z, Biome::Ocean); - assert_eq!(biomes.get(x, y, z), Biome::Ocean); + let mut biomes = BiomeStore::new(BiomeId::Plains, Sections(16)); + + for x in 0..BIOME_SAMPLE_RATE { + for z in 0..BIOME_SAMPLE_RATE { + for y in 0..16 * BIOME_SAMPLE_RATE { + assert_eq!(biomes.get(x, y, z), BiomeId::Plains); + biomes.set(x, y, z, BiomeId::TheVoid); + assert_eq!(biomes.get(x, y, z), BiomeId::TheVoid); } } } @@ -437,12 +123,12 @@ mod tests { fn test_static_biome_generator() { let gen = StaticBiomeGenerator::default(); - let biomes = gen.generate_for_chunk(ChunkPosition::new(0, 0), 0); + let biomes = gen.generate_for_chunk(ChunkPosition::new(0, 0), 0, Sections(16)); - for x in 0..4 { - for z in 0..4 { - for y in 0..64 { - assert_eq!(biomes.get(x, y, z), Biome::Plains); + for x in 0..BIOME_SAMPLE_RATE { + for z in 0..BIOME_SAMPLE_RATE { + for y in 0..16 * BIOME_SAMPLE_RATE { + assert_eq!(biomes.get(x, y, z), BiomeId::TheVoid); } } } @@ -451,21 +137,21 @@ mod tests { #[test] fn test_nearby_biomes() { let biomes = vec![ - BiomeStore::new(Biome::Plains), - BiomeStore::new(Biome::Swamp), - BiomeStore::new(Biome::Savanna), - BiomeStore::new(Biome::BirchForest), - BiomeStore::new(Biome::DarkForest), - BiomeStore::new(Biome::Mountains), - BiomeStore::new(Biome::Ocean), - BiomeStore::new(Biome::Desert), - BiomeStore::new(Biome::Taiga), + BiomeStore::new(BiomeId::Plains, Sections(16)), + BiomeStore::new(BiomeId::Swamp, Sections(16)), + BiomeStore::new(BiomeId::Savanna, Sections(16)), + BiomeStore::new(BiomeId::BirchForest, Sections(16)), + BiomeStore::new(BiomeId::DarkForest, Sections(16)), + BiomeStore::new(BiomeId::Mountains, Sections(16)), + BiomeStore::new(BiomeId::TheVoid, Sections(16)), + BiomeStore::new(BiomeId::Desert, Sections(16)), + BiomeStore::new(BiomeId::Taiga, Sections(16)), ]; let biomes = NearbyBiomes::from_slice(&biomes[..]).unwrap(); - assert_eq!(biomes.get_at_block(0, 0, 0), Biome::DarkForest); - assert_eq!(biomes.get_at_block(16, 0, 16), Biome::Taiga); - assert_eq!(biomes.get_at_block(-1, 0, -1), Biome::Plains); - assert_eq!(biomes.get_at_block(-1, 0, 0), Biome::BirchForest); + assert_eq!(biomes.get_at_block(0, 0, 0), BiomeId::DarkForest); + assert_eq!(biomes.get_at_block(16, 0, 16), BiomeId::Taiga); + assert_eq!(biomes.get_at_block(-1, 0, -1), BiomeId::Plains); + assert_eq!(biomes.get_at_block(-1, 0, 0), BiomeId::BirchForest); } } diff --git a/feather/worldgen/src/noise.rs b/feather/worldgen/src/noise.rs deleted file mode 100644 index bdc98392a..000000000 --- a/feather/worldgen/src/noise.rs +++ /dev/null @@ -1,229 +0,0 @@ -use num_traits::ToPrimitive; - -/// Struct for applying linear interpolation to a 3D -/// density array. -pub struct NoiseLerper<'a> { - /// The density values. - densities: &'a [f32], - /// The size of the chunk to generate along X and Z axes. - size_horizontal: u32, - /// The size of the chunk to generate along the Y axis. - size_vertical: u32, - /// The offset along the X axis to generate. - offset_x: i32, - /// The offset along the Z axis to generate. - offset_z: i32, - /// The scale along the X and Z axes. Must be a divisor of size_horizontal. - scale_horizontal: u32, - /// The scale along the Y axis. Must be a divisor of size_vertical. - scale_vertical: u32, -} - -impl<'a> NoiseLerper<'a> { - /// Initializes with default settings and the given - /// density values. - /// - /// Default settings are intended to match the size - /// of chunks. Horizontal and vertical size and scale - /// are initialized to sane defaults. - pub fn new(densities: &'a [f32]) -> Self { - Self { - densities, - size_horizontal: 16, - size_vertical: 256, - offset_x: 0, - offset_z: 0, - scale_horizontal: 4, - scale_vertical: 8, - } - } - - /// Sets the size of the chunk to be generated. - pub fn with_size(mut self, xz: u32, y: u32) -> Self { - self.size_horizontal = xz; - self.size_vertical = y; - self - } - - /// Sets the X and Z offsets. - /// - /// # Notes - /// * The X and Z offsets are multiplied by the horizontal and vertical - /// sizes, respectively, to obtain the offset in absolute coordinates. - /// (This means there is no need to multiply the chunk coordinate by 16.) - pub fn with_offset(mut self, x: i32, z: i32) -> Self { - self.offset_x = x; - self.offset_z = z; - self - } - - /// Sets the scale of the noise. Linear interpolation - /// is used between values based on this scale. - pub fn with_scale(mut self, horizontal: u32, vertical: u32) -> Self { - self.scale_horizontal = horizontal; - self.size_vertical = vertical; - self - } - - /// Generates a linear-interpolated block of noise. - /// The returned vector will have length `size_horizontal^2 * size_vertical`, - /// indexable by `((y << 12) | z << 4) | x`. - pub fn generate(&self) -> Vec { - // If AVX2 is available, use it. Otherwise, - // default to a scalar impl. - // TODO: support SSE41, other SIMD instruction sets - - #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] - { - if is_x86_feature_detected!("avx2") { - return self.generate_avx2(); - } - } - - self.generate_fallback() - } - - #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] - fn generate_avx2(&self) -> Vec { - // TODO: implement this. (Premature optimization is bad!) - self.generate_fallback() - } - - fn generate_fallback(&self) -> Vec { - // Loop through values offsetted by the scale. - // Then, loop through all coordinates inside - // that subchunk and apply linear interpolation. - - // This is based on Glowstone's OverworldGenerator.generateRawTerrain - // with a few modifications and superior variable names. - - // Number of subchunks in a chunk along each axis. - let subchunk_horizontal = self.size_horizontal / self.scale_horizontal; - let subchunk_vertical = self.size_vertical / self.scale_vertical; - - // Density noise, with one value every `scale` blocks along each axis. - // Indexing into this vector is done using `self.uninterpolated_index(x, y, z)`. - let densities = self.densities; - - // Buffer to emit final noise into. - // TODO: consider using Vec::set_len to avoid zeroing it out - let mut buf = - vec![0.0; (self.size_horizontal * self.size_horizontal * self.size_vertical) as usize]; - - let scale_vertical = self.scale_vertical as f32; - let scale_horizontal = self.scale_horizontal as f32; - - // Coordinates of the subchunk. The subchunk - // is the chunk within the chunk in which we - // only find the noise value for the corners - // and then apply interpolation in between. - - // Here, we loop through the subchunks and interpolate - // noise for each block within it. - for subx in 0..subchunk_horizontal { - for suby in 0..subchunk_vertical { - for subz in 0..subchunk_horizontal { - // Two grids of noise values: - // one for the four bottom corners - // of the subchunk, and one for the - // offsets along the Y axis to apply - // to those base corners each block increment. - - // These are mutated so that they are at the - // current Y position. - let mut base1 = densities[self.uninterpolated_index(subx, suby, subz)]; - let mut base2 = densities[self.uninterpolated_index(subx + 1, suby, subz)]; - let mut base3 = densities[self.uninterpolated_index(subx, suby, subz + 1)]; - let mut base4 = densities[self.uninterpolated_index(subx + 1, suby, subz + 1)]; - - // Offsets for each block along the Y axis from each corner above. - let offset1 = (densities[self.uninterpolated_index(subx, suby + 1, subz)] - - base1) - / scale_vertical; - let offset2 = (densities[self.uninterpolated_index(subx + 1, suby + 1, subz)] - - base2) - / scale_vertical; - let offset3 = (densities[self.uninterpolated_index(subx, suby + 1, subz + 1)] - - base3) - / scale_vertical; - let offset4 = (densities - [self.uninterpolated_index(subx + 1, suby + 1, subz + 1)] - - base4) - / scale_vertical; - - // Iterate through the blocks in this subchunk - // and apply interpolation before setting the - // noise value in the final buffer. - for blocky in 0..self.scale_vertical { - let mut z_base = base1; - let mut z_corner = base3; - for blockx in 0..self.scale_horizontal { - let mut density = z_base; - for blockz in 0..self.scale_horizontal { - // Set interpolated value in buffer. - buf[index( - blockx + (self.scale_horizontal * subx), - blocky + (self.scale_vertical * suby), - blockz + (self.scale_horizontal * subz), - )] = density; - - // Apply Z interpolation. - density += (z_corner - z_base) / scale_horizontal; - } - // Interpolation along X. - z_base += (base2 - base1) / scale_horizontal; - // Along Z again. - z_corner += (base4 - base3) / scale_horizontal; - } - - // Interpolation along Y. - base1 += offset1; - base2 += offset2; - base3 += offset3; - base4 += offset4; - } - } - } - } - - buf - } - - fn uninterpolated_index(&self, x: N, y: N, z: N) -> usize { - let length = (self.size_horizontal / self.scale_horizontal + 1) as usize; - let height = (self.size_vertical / self.scale_vertical + 1) as usize; - - let x = x.to_usize().unwrap(); - let y = y.to_usize().unwrap(); - let z = z.to_usize().unwrap(); - - y * length + x + height * length * z - } -} - -pub fn index(x: N, y: N, z: N) -> usize { - let x = x.to_usize().unwrap(); - let y = y.to_usize().unwrap(); - let z = z.to_usize().unwrap(); - - ((y << 8) | z << 4) | x -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn basic_test() { - let densities = [0.0; 5 * 33 * 5]; - let noise = NoiseLerper::new(&densities).with_offset(10, 16); - - let chunk = noise.generate(); - - assert_eq!(chunk.len(), 16 * 256 * 16); - - for x in chunk { - approx::assert_relative_eq!(x, 0.0); - } - } -} diff --git a/feather/worldgen/src/superflat.rs b/feather/worldgen/src/superflat.rs index 69aaf2c0a..6ee71ec43 100644 --- a/feather/worldgen/src/superflat.rs +++ b/feather/worldgen/src/superflat.rs @@ -1,5 +1,9 @@ -use base::{anvil::level::SuperflatGeneratorOptions, Biome, BlockId, Chunk, ChunkPosition}; +use base::anvil::level::SuperflatGeneratorOptions; +use base::chunk::Chunk; +use base::world::Sections; +use base::{BlockId, ChunkPosition, CHUNK_WIDTH}; +use crate::BiomeList; use crate::WorldGenerator; pub struct SuperflatWorldGenerator { @@ -13,11 +17,23 @@ impl SuperflatWorldGenerator { } impl WorldGenerator for SuperflatWorldGenerator { - fn generate_chunk(&self, position: ChunkPosition) -> Chunk { - let biome = Biome::from_name(self.options.biome.as_str()).unwrap_or(Biome::Plains); - let mut chunk = Chunk::new_with_default_biome(position, biome); + fn generate_chunk( + &self, + position: ChunkPosition, + sections: Sections, + min_y: i32, + biomes: &BiomeList, + ) -> Chunk { + let biome = biomes + .get_id(&self.options.biome) + .unwrap_or_else(|| panic!("Biome does not exist: {}", self.options.biome)); + let mut chunk = Chunk::new(position, sections, min_y / 16); + chunk + .sections_mut() + .iter_mut() + .for_each(|s| s.biomes_mut().fill(biome)); - let mut y_counter = 0; + let mut y_counter = min_y; for layer in self.options.clone().layers { if layer.height == 0 { continue; @@ -25,10 +41,18 @@ impl WorldGenerator for SuperflatWorldGenerator { // FIXME: get rid of this hack by having a consistent naming convention - Item::name() returns `stone` but BlockId::from_identifier requires `minecraft:stone` let layer_block = BlockId::from_identifier(&format!("minecraft:{}", layer.block)); if let Some(layer_block) = layer_block { - for y in y_counter..(y_counter + layer.height) { - for x in 0..16 { - for z in 0..16 { - chunk.set_block_at(x as usize, y as usize, z as usize, layer_block); + for y in y_counter..(y_counter + layer.height as i32) { + for x in 0..CHUNK_WIDTH { + for z in 0..CHUNK_WIDTH { + chunk + .set_block_at( + x as usize, + (y - min_y) as usize, + z as usize, + layer_block, + false, + ) + .unwrap(); } } } @@ -37,7 +61,7 @@ impl WorldGenerator for SuperflatWorldGenerator { log::warn!("Failed to generate layer: unknown block {}", layer.block); } - y_counter += layer.height; + y_counter += layer.height as i32; } chunk.recalculate_heightmaps(); @@ -48,18 +72,24 @@ impl WorldGenerator for SuperflatWorldGenerator { #[cfg(test)] mod tests { + use base::biome::BiomeId; + use base::chunk::SECTION_HEIGHT; + use libcraft_blocks::BlockId; + + use crate::base::chunk::SECTION_HEIGHT; + use super::*; #[test] pub fn test_worldgen_flat() { let options = SuperflatGeneratorOptions { - biome: Biome::Mountains.name().to_owned(), + biome: BiomeId::Mountains.name().to_owned(), ..Default::default() }; let chunk_pos = ChunkPosition { x: 1, z: 2 }; let generator = SuperflatWorldGenerator { options }; - let chunk = generator.generate_chunk(chunk_pos); + let chunk = generator.generate_chunk(chunk_pos, Sections(16)); assert_eq!(chunk.position(), chunk_pos); for x in 0usize..16 { @@ -72,13 +102,13 @@ mod tests { ] { assert_eq!(chunk.block_at(x, *y, z).unwrap(), *block); } - for y in 4..256 { + for y in 4..16 * SECTION_HEIGHT { assert_eq!( chunk.block_at(x as usize, y as usize, z as usize).unwrap(), BlockId::air() ); } - assert_eq!(chunk.biomes().get_at_block(x, 0, z), Biome::Mountains); + assert_eq!(chunk.biomes().get_at_block(x, 0, z), BiomeId::Mountains); } } } diff --git a/feather/worldgen/src/util.rs b/feather/worldgen/src/util.rs deleted file mode 100644 index 5ba8edccd..000000000 --- a/feather/worldgen/src/util.rs +++ /dev/null @@ -1,18 +0,0 @@ -//! Utilities for world generation. - -use base::ChunkPosition; - -/// Deterministically a seed for the given chunk. This allows -/// different seeds to be used for different chunk. -pub fn shuffle_seed_for_chunk(seed: u64, chunk: ChunkPosition) -> u64 { - seed.wrapping_mul((chunk.x as u64).wrapping_add(1)) - .wrapping_add((chunk.z as u64).wrapping_add(1)) -} - -/// Deterministically shuffles a seed for the given chunk and chunk column. -pub fn shuffle_seed_for_column(seed: u64, chunk: ChunkPosition, col_x: usize, col_z: usize) -> u64 { - shuffle_seed_for_chunk(seed, chunk) - .wrapping_add(2) - .wrapping_mul(((col_x as u64) << 4) + 4) - .wrapping_mul(col_z as u64 + 4) -} diff --git a/feather/worldgen/src/voronoi.rs b/feather/worldgen/src/voronoi.rs deleted file mode 100644 index 839dcb909..000000000 --- a/feather/worldgen/src/voronoi.rs +++ /dev/null @@ -1,144 +0,0 @@ -//! Basic Voronoi implementation. - -use rand::{Rng, SeedableRng}; -use rand_xorshift::XorShiftRng; - -/// Position of a cell. -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -struct CellPos { - x: i32, - y: i32, -} - -/// Position of a seed. -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -struct SeedPos { - x: i32, - y: i32, -} - -/// Representation of a Voronoi grid. -/// -/// Seeds around the most recently requested cell are cached. -/// -/// # Implementation -/// This Voronoi implementation works using a grid with jitter -/// offsets. A seed is allocated for each cell in the grid with -/// a random offset from the center of the cell based on a hash -/// function of the cell position. -/// -/// This allows the grid to be deterministic and efficient compared -/// to when using random cell positions. -pub struct VoronoiGrid { - /// Length and width of each grid square. - length: u32, - /// The seed used for generation. - seed: u64, - /// The currently cached cell position. - cached: CellPos, - /// The positions of the seeds around the cached cell position. - cached_seeds: [[SeedPos; 5]; 5], -} - -impl VoronoiGrid { - /// Creates a new voronoi grid with the given - /// length and seed. - /// - /// This function does not - /// actually compute any values. - pub fn new(length: u32, seed: u64) -> Self { - Self { - length, - seed, - cached: CellPos { - x: 999_999_999, - y: 999_999_999, - }, // Use values so that this will be replaced - cached_seeds: [[SeedPos { x: 0, y: 0 }; 5]; 5], - } - } - - /// Returns the position of the seed closest to the given - /// position. - pub fn get(&mut self, x: i32, y: i32) -> (i32, i32) { - let cell_pos = CellPos { - x: x / self.length as i32, - y: y / self.length as i32, - }; - - self.update_cache(cell_pos); - - // TODO: this is fairly inefficient. There is - // probably a way to optimize this. - let closest_seed = self - .cached_seeds - .iter() - .flatten() - .min_by_key(|seed| { - // Distance squared to cell position - square(seed.x - x) + square(seed.y - y) - }) - .unwrap(); // Safe - iterator is never empty - - (closest_seed.x, closest_seed.y) - } - - /// Updates the currently cached seed positions. - /// - /// If the given cell position is equal to the cached - /// cell position, this is a no-op. - fn update_cache(&mut self, cell: CellPos) { - if cell == self.cached { - return; - } - - self.cached = cell; - - let half_length = (self.length / 2) as i32; - - for x in -2..=2 { - for y in -2..=2 { - // Calculate center of grid position and then - // apply an offset based on a hash of the cell position. - - let cell_x = cell.x + x; - let cell_y = cell.y + y; - - let pos_x = cell_x * self.length as i32; - let pos_y = cell_y * self.length as i32; - - let mut rng = XorShiftRng::seed_from_u64( - self.seed ^ (((i64::from(cell_x)) << 32) | (i64::from(cell_y))) as u64, - ); - let offset = rng.gen_range(-half_length, half_length); - - let center_x = pos_x + half_length as i32; - let center_y = pos_y + half_length as i32; - - let offsetted_pos = SeedPos { - x: center_x + offset, - y: center_y + offset, - }; - self.cached_seeds[(x + 2) as usize][(y + 2) as usize] = offsetted_pos; - } - } - } -} - -/// Shuffles the given closest_x and closest_y values -/// and returns a deterministic random value in the given range based -/// on those values. -/// -/// This can be used to determine a value corresponding to a voronoi seed, -/// for example. -pub fn shuffle(closest_x: i32, closest_y: i32, min: usize, max: usize) -> usize { - let combined = ((closest_x as u64) << 32) | closest_y as u64; - - let mut rng = XorShiftRng::seed_from_u64(combined); - - rng.gen_range(min, max) -} - -fn square(x: i32) -> i32 { - x * x -} diff --git a/libcraft/generators/libcraft-data/entity_metadata.json b/libcraft-data/entity_metadata.json similarity index 100% rename from libcraft/generators/libcraft-data/entity_metadata.json rename to libcraft-data/entity_metadata.json diff --git a/libcraft/generators/libcraft-data/inventory.json b/libcraft-data/inventory.json similarity index 100% rename from libcraft/generators/libcraft-data/inventory.json rename to libcraft-data/inventory.json diff --git a/libcraft/generators/libcraft-data/simplified_block.json b/libcraft-data/simplified_block.json similarity index 100% rename from libcraft/generators/libcraft-data/simplified_block.json rename to libcraft-data/simplified_block.json diff --git a/libcraft/blocks/Cargo.toml b/libcraft/blocks/Cargo.toml index 67a068115..3e8ce28ee 100644 --- a/libcraft/blocks/Cargo.toml +++ b/libcraft/blocks/Cargo.toml @@ -5,16 +5,11 @@ authors = ["Caelum van Ispelen "] edition = "2018" [dependencies] -libcraft-core = { path = "../core" } +once_cell = "1.9.0" +num-traits = "0.2.14" +num-derive = "0.3.3" +thiserror = "1.0.30" +bincode = "1.3.3" +anyhow = "1.0.52" +serde = { version = "1.0.133", features = [ "derive" ] } libcraft-items = { path = "../items" } -libcraft-macros = { path = "../macros" } - -ahash = "0.7" -bincode = "1" -bytemuck = { version = "1", features = ["derive"] } -flate2 = "1" -once_cell = "1" -serde = { version = "1", features = ["derive"] } -thiserror = "1" -num-traits = "0.2" -num-derive = "0.3" diff --git a/libcraft/blocks/assets/raw_block_properties.bc.gz b/libcraft/blocks/assets/raw_block_properties.bc.gz deleted file mode 100644 index f2b9fa5ad1c2db584848d2a233cbd047e31e9317..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4911 zcmZXXc{r49`^VFxNTu`;*-GBBMOlU-qefAQNtTJx$Tq_arfg#v)RVMG^c1ouJXssX z*w>}7c6tjETnZX@k*6-JU3^jOo4?Ie*5J&8 zMhOK6gEMt%vWFb|`1xZ_Y(+&$@W?zf$aPK#pwLB?na_pxzI)HlZ{@-pI%?|WU<{*K zk8ekGKu8=yIWQap6a%%}*9ZFu3gyph{_eW!R^ytcXFGjf(2+0Bi(3v(mixsf<-q+f#@!E+;8o00R}i1KD+^RKYD zk>1USCO6_^aNSLQbaK)b1q$5Q6rMM@uODvrzR+He<`}wD-XOY(X51WD>H2_R->f=6=J&cQHB znwI)JeOeiDZWXmrShw=Vf)8pfs|@C#kW1q_)i33p$O(z>>x!vGeCZM2q|;H4{38Su zrmDfX&oMH=cmc)`7=|1p1B~Zjw1V-8V`PERx8;plsFBkv!mCNWLOo>fdeMaA-N2?# zd%kL0q`$AFqUw(aST_FZ3r*@;N{Yzz{aa}7>@a5n(5hQeiA3Ju(~bNpwJe>x?D;5+ zzJ~1=^>)m%fX)%k!Y>5PDY;jfiB3?{%g;}J0!bU$L&H>RzX@oAF$&06nfJcGO4&r^P@tMk|%M6G^f3e9d){r}sLq47&R@TMtX0 zxMu6NoG+b5YvflX)lLNIES5Zsp=ZR<7vc_2DxddPYF!s5tg0Iumly_?JB8NKo~g_% zkC5e`*;iyBA1z0%$dC4pr@WX>54W$#0t5H5B8-mDX4$Uj_Tg98x4davc(fkaGK-u+ zG0XB6rY_!Pf8ZGiaaU(9rtsLj?)fqO>5n24M(ZGY`^^MmN@bGZSM3giAU%mH@653E zKx7rmQi`=&yM>N*%bt!_HZ)0oZp$cRT@qRA;SaGS)VH0w;zca3%viELYwB7p)MUXNYrz~( z-*Gyrq*}f%#92SsXmD(ERwSkF%dQ*`(mAt9ci!L$JHQ2ihM#Z)8~_qP0LZ+- zk~aWoQc37{NmsxgfEP%Tnc1n}A0VxMMEB>1$O}h~1_bZRs7VbsKOFgD-tikP zXb=;PesjXMsJFs$5oVX$;;#>R=arK(J>gyQ#G2gHKQQJJj%u3rw0d3L{p^79!S`=Z zoDp??lDkvlm%494k-G}9gQX>qg*`1X_RTV2LAkFd?Wpd6g~8bD!r%dkui9(a81r`x z8|HzRIx73GrEkFV+ECwmRdMagSM@)_!rW_c+vbc*YH+pANpaL}n}U?PHX8cQ4fuNz zPSwn^@3jrGzG3df@L9H&T^p)yR($e9)acWo3}f*lGG^AYj>cf|WB;)#!Fo+zi0pKqF`DNon~&FG;@!8S zG#4eqsdCrt(UhG|S3j#2njeik=9!hK_S&Cm_hJ;?!!$tGX@)Ja>#DEocRW5eyLxp+ zswyBk+U!Ctz$u7G)+fA5lb+J4@h>KgeJdX>JR|qoGCLl} z@N4{K@*h@UPa95Vkv>1x-~H=coLUFpE<177lt{rHC*78ihY@@(VG(@(PUO$Nf~D8? zs4AkQGZ851{mzX#0`q>pvI9yExzD7h6;nK^tJ9Bn-;|P8Ra;654MVi5w=N{T##i+4 z`6sxxG%wdBPJZ`l*0mEW7EL?-<-rbWK9isN7{~_VfimDP;1%#U@D6wcWCF232@nGO z16ba}VwYZvb^dM)98_Lk5z8iIJt-PX2Qq;S0JJD*QP85GML|b{js_hKIvO+vGzK*0 zl%LX^Nl8sB);8y|qSYv=uOYb1k`!F#{-^XUE&LukGitl>Mf3{W{VHnUB?2{&4h*yZ z98K_g*ohv<=47zXFCM9GUoRB zHl_Qc(5!oo(5y6o1CT%HxA@=d?b}DgWx1D&?sFr$n~^kbgv^bsZbmTNNFX<|K*`(Zahu713T|C86@d~Q2p-J3zNEf9iX1D{ z%F7TmeYrJM+x(8evGEhz6m!!*h@@A&dg5H;zn`^^ubkc=6tIi=G*fm;zC(zTKmI_+ zz`I6@6y$T3G+^aFBFMbuXVVhPQvL3$tK!_qesSwBY0>;qzlM{h;XAE8b@B1-ZQs2x z&rV#B>s&G^AL?}5zmO^D6#wto(HB2x>T22rt~9aN@4v>6o1p7l?l4Q5{o8*ZOBnJl zQO{7FPBn_ZIJrwpU52pW;x@&29up917sq$kJIYN$hCm97@C;cB*x@gimXL*Hi+Cmm z@c-3B!N?77%@OiQX7U%;mA(3i8N0IWZk;o)1t9%LEL9P4t_s27KF zYXA@NMz|!_IUH30b*^c!KU>2!!r)q1DDZ)TNhpYJlfGwzgGFo`m?Bc+FCvs+5mJKt z$Z`gV0O%~xB+w+#B+w+#EYK{_EYK{_5}+kOOMsRD9S1rNbR6h7&{)t|&{)t|(7m90 zLHC001+4>G2c~rO{~sg&&#}IDckgqtY@P0JLLLN|QPG^Y7ZPMu3zKMJjM4SnmY_h) zXCV(Q7@+`r05otMAOi;hTR;!k5GZ6?F`kaUIUG8>g&{O|1~>%V0QLe`fD^z?fFHO3 z$OF!R7;p_Z3HSoMz&YSQz;LVg{d2MLzsal3Z6Y=pHloq2-B1;6aj^EZae(lg7u&Q! z9gJpkFpR)(1;dkLu$y}J{zSGKW_bH1$~Fki(y&_gxEu8bbvsL~C0He8<%k1rIlU!b z2_Nf2LXONFhHVI!jX>dE0kBQrMy0loCd~U{4kXm~1`%9uvwnGSwrtyE&YGzd$yqZa z)iNAo=$5dD&mq2~{_Rv@$vJ*>Dm=Rswd}_!9(>6umf#jY;}ny*#ma%-iTq*g%LV6n z$rjwTLX-PqlesVcq99jHn{!80HiacuNNina*q*)?95Ja_KND}kPUYzsf9Zvw>hM+Ib^*#w3#9V zcsSiYI`&bQ^Ge$nKlGu!G5B;N*$O$>HsFN`nwxRa)@&603yWmDt2mwsC-&j8gkTz+ zN@!{C{qy=O)4r*+y4vpc`eBvu*(QqKUA1@Cn|{cwPHTG?ZgJ*gulDpf)hoG@?6;>g zmM_4F%sl<0m*LxN-(Trvq}fOjzF;~yIrl(xI|)KOE;_U9W_7y^__| zvyec>hc9TIV%U$&XLgX7?gh*HvF;4EX0N-JtC@XnAUV{q?x5?8{8V^>Z}1u%xYpp- z)?kNP>v(%OnL5hbAIw_iaNT8VPx!Ami4%4q@3VvODt7{ zzADD1HD4Z;q<(Oq9J#u~zw4P*OYGvn!P5?6k9FBaFA<#%A92X)^9=(;S^PnI`;~?Y z_~+?&S?<~JCZ=->p=7|;KQ4RK^wnzl-H{w4Y2$zJ6_yROocQwVz0+Ekcd>H!58W1L zoI;3JO+3{b&l~sBx%oir0m)xBQJ2O&a=ql42)Ue1iPN;Zw5zFFAT?coB4V#cI&3{K z$C7Uls3$GrGKR#Qx1%^Q=gLc0A|tgg-3*q@fdQE6Pq09J&o`)>v6da?O+pg}E=Hex zQu{D$UHR=O zvgk59`5`NyLFeZ_`a;6bjtc7o3z*fWS=!TxJYAwXY%8aUNe*Z{zl9xo)Mo74kSeE&l~B!?rE} diff --git a/libcraft/blocks/assets/raw_block_states.bc.gz b/libcraft/blocks/assets/raw_block_states.bc.gz deleted file mode 100644 index f5c1f6b9058c8f302b9bf2bf8292d7de2f636fd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 97307 zcmdqJX*gDG^gbMsp&~^xlMsq#^IT|<5~+~Vpb=4q$ekpmOi3l8L61_XREW?>B{WDy zh7$FdDoW=6IxkOtAKq{8@qdrwJ$`+-+t$9$HJoc*>$>*d_r2wg@{hnj?!mmXyr)Gi zCLHRm6Ee_Fcqnu@H#FP0I#}<%!P3K{ciEdd%D0*G{}|_^bTB(Nw`uVG`Zn*&t!e3P zJ$tpvGFP98>*`ItlbV&~xu2PigRc+^6_w(6(c znfL3Sa<*)Kh%@0Q`&2ab&wGF7QPW=~X&s}qYImpAsbw!qo+;V-n#U_G^DvLs{1FzB zzwLaAHkg5DqY zExdH0Ddx*b(QPv~Uw`#e;7#D@(jr0WTWjTaFA!Q|H16(rzUjgT(@RX$xzAtqC?6G6 zZl|;5q4C#k(zl`oa??spr1(rL>&{tmpWp6T{*Q9Yor!#DV-BXjFp1|it*k%yV&wT| z&+=5`uX`7-y;$Gztw-S2;n&Ol9VI*+ceEQY~Z7`)XQ=YFsG`J3ln&SZ*FV*x6GckxOUg^mp3Iwhe$SD*wgit;CMGq%T3voPlzny2 z)$r34Qxwisatx65&ib>UVSS{M`=Cq1`m%#Z%go%5I?tEwndVm{sVKZ}f`*}R|Fl36 zzpn)iR^G?-$5>|n(I0aQnDXQMf+qP*O7QsMH_7G4(c*{YN)8e;f6kaz|EXg}^(XP@ zP?5#n&ZISiv_7;H8=JRwibNc#52Mu#s zWo2?rd3E39pELZPE_FGkzhoiVU2+?C+m+&zX8ycx{orxadS__;?QqjsN>R91g)l1M)HF@&-e1waa%H2?*XnVp9j80` zuKcQg7pGv`G_$F9MRV@GQo-}OkvWA)YubMAUC&?PSF&K>jbK*gQM1dX8#I2T%=7TS zH|OBL`i-+V+sv{mpHJ8pCr5+CHhVc|9QgL-8FaoMu)Uu!R|TWgIH~JO@9N@Ek{!;& zp)NZ##NjA*I1`7;>`>?Yg{Er`B@^@4^1gna2EVepSMYkhZN;I_9~_=#hfK<1$nC#! zKxg|}IBUR68$sP#rcM*;dS9Gm>P7-6+yfnE?64PyiZ~qIM>?8c!u=w4_ydP3?C>cL zQ`q6RgJFr8i8CF#_lhmiEIYL9Y>|GGwOGmOvQRqAtHYrtq0IzTBn*&&LkLMm^V05*6rn4{;qR<_H##nm=G) zA2;asnj=`I-%TG8+oMl}_%}Y?w5dL^`{~`p2eYlyGrpHNFTCVfAE#nJRlh@g+tzd6 zOJbzd^gAkpwkG3HUB6@TD`nD%LfMboc99ONNSFB3Z7Db;X{Ax>O5et(GNOqN*Nb-B(&1S;yjipxQYSjR zQS^o!X-F3=OMAcJt|}e236|}Ax8dXp8t`0QKWkIuY7=rd*H#5-rJI4_kX^Zv?uIHr+~7SLDwBb z;XqpSR1kMVB2%CV1>sCV8Wb#L3f7W>cA~gFq2)3u@UejcZ^WKUQR}JXl1mLA$?%qunQcqiU6&7I( zyb@(vQxTQ}3kzPgUu9t-(OvdXB}D8ze>u%B-a2-}X50e5zqO?{=hYCtX zjwo$UkUmceB8gI;r4hu=QwtVM5o$t$DY$`Z)`kZS@G#&2({%y57BXF{NmtSZ=t@W> zUDi}MK1-L9OHW-H$F2x5^MStB9)E4UlFa=95meX>Ii&o26N_;+V(ezdroloGvv8g) zMf706Ir zgz7s7)Xyk#CXnK&)$ya!R?+0|a4c)Be>tO!`{xFNMMshcp@x);_5^*J*D*<~QWH_B zWz0euVr*hAHo@3vX6z`8(VV2@Y=W^cW(<`QXa!@dQAy6MJSL)kwU~m(K+zN>)O4Wk zFchW5I*_6x7p=*~0%EE?Aprf!h?R#S%0rHoM-sV2O&`;y45ik@oDqlG#Z0X_)KUT{ za+;IY1C)SToo=TvmRc3%i?!NGjXC*M4;QUZ`uXbQwX|Z`V z5A(`_)tm!DNMj|F241Y00-6TaHEdqJ$Gmc9^J)j?)llHxm{)piUg=?8(JDiALP7ie zq?oC_(gLIJM-87kC235oW$5f%ca7|)u&`Ia)f#r* z5O`;Kr&N6tAMp3 zt0EmDQl*R)Oav9+(;~)O5p+#p5lnzH3z@E`&~;))nV6e!$|1jrQRuXh`cAa0bdF&b zmcYVEW`U-(wIMAN)a%i(l30>TKuiFwuZSXR+Ay7M+DR6;;BTND9KCJU;nV|NI z-HJ1tJ&tHiu1tX!6xcBZ6;L3_6s&=QvrNG~C}7K3&T>*vODko2LN!=+XDgo@!p&mg zW+7ZX7Ooz`bz*8Ap^L4;v(S%fsX(abqB^@+nRKBU^gh(L&oR&+*SOj^kTPQQQ-La^ zJd~xu0xohhzm}7(K3bNkA5pbf2U4+6o1+z3#fX)RJ~i~1B<5El{3>I9mBBA@=9f79 zTFm@Tjv~sM`3jhDR(LU7I^6>vUk&2^@QX`i` zjh6HECnHXfi1S+j;x_)br$rWN{j^^DzqZlpm3WzDg&JaA$tMz`snK?u^|I+a5+!BK z=)hJ*mgZ@D!WdNF|JFtu;-}%`uWg78DQ#&v4M&KP^Fy0%70mk;Y~HiAU@NPbZ6Mfo3#E7$o z7l|E15o4|hy>9|zE(Xl0GF@BIq}YP|^BQ!q%QQb+rWLTuv^=(9Wee(BY<@GC+6<_z zWNO)JwTBfdT`pP&n!%aXSXOG;R;Y$`UsluYgl+I)9kUDN-OHTegEMR^)Sw7w*beX~ zEqc}i?AoXs*G3%K#+c&OgAXD21wS#QQKK;{!wu#sDtEoHL zU>U4r)}9f$o^%s{_O4hrv{>kpu=@nY7ET}w)hwJVSo2>n>Ke&|oJHVkE4Gf<-RY^& z_Ri0fEg;F*sk<=;Zei=($|BeXP3HqnHI$qCl})a^;9xOY`tiK8f_0-T+7k+&pA34K z;Ir^-{3M->8-?pjb0-!C>9lW#(7OK1OwarTULmji050j%9b(fw=wpTNreg^i8)-m> z;|RXS0I|{1jR6%uohEEN(H$@sfBfRsp3$^@%6H3-?lV`sCMY&-UtLE6aZ>DD#2u>R ztQBGrS5}!x)+#mkkMzn9f{FElk+YJzu9Hwp4Z<4`F6?#_nDs0m{|f$C4JTeq@J;Rx zIQk~%NOZ^a>EuwFU|nH?`%dzwYf1g`#*VcUwM)9^@p`N)&ALs>vKB+wijguH*}jEF zw%g|WA2>EEseK3jut6A=JhEF2Yp3sVb7=_hK@^dQ!ha2Ues6{EiSE2ea-k+`giwi} z5uMKCz+GXu%Lm5fK!~tLt)hu}Tv_NULYa*wYr>1`q8mHv84HS_?;d=JyhSjJOW&t< zbZ>#FB?#;W{LU7Y-DD`|PP(k85($PciLNBud{;PYeTPsfqGT-TOrhe7CjXRDt78f6 z8xVp6LV#ZZgV119NI0YGgFv*QZ${}Zc;~*^mSp#kZPg7ulzHmWtJaOAs z%(%S>Z!aPSIanyO1dSU&<7b4xd`yaZaIvIG1sth}kzYpdVfIpp`U?_hKm@n0yM;<#QIJ$ z8XRD)3f5|2p*9*3`@kO`M4SX=wPzvh0Ac=g0?HoGFuA zf~m$SCZ;&qNRT38KY#>r-avQ_!p{&+P}P4HFpx}s4cNl36!_x$jBiRYv6G1rUZ5<= z8Z{Ws>AM#KX*fm?)#3y_HdWFp`^gnJ>>yh$T#QDph=U^X*g9kN!i31gkW z&RJxQqs6jj0H*qp3pv!b+&@T=1zaeC3q~N?$OG(x5Zx^;)rJ77Fe{ffN+%1h-jeZB=k819Mi- zc8rs^aa;VL_zPXN!j@WZoBi)OnW>rFB?G}0PNM66J6}s(PNJ2m+qpGj43&PSeqC9& zN@(-oom}pcm5)6IXE=yGS1;UQckSGWOuHK{kFVExZn)~A#Cy8GDpqXW9krE&PF-ck zwfU;cT;9`ZVHFcR4(7Ooa~FBe=*`-$2IM6m??9a{)HSah<0EIwQ?hrJCa?X4`^_oq zf=9VW9eDn-ZtST8H_Byao|954zj|yvMQci~)dR7F&l06~ z#5Tla)@5i_U0V02`NeO#d4FFo8HW*z@2~p0bmlodm2&e<rrb&m%; z8gGS-tSbpt6FN9M#ePZfY~gfm{!;y9m%GdF>AARtD(`q4uh{6l>X}er=>2M;%Ih-U z6>aVusq3{ITea)$a#cOwOV6t#-jaC3$(!|wt_MA3>NY5L8)zJ_{j4rD@2d_y@iD6_ znV>EdGTS;;drYZ*&LVH@g7W~*;5jB~Y< z9_^awv`ad{Z|UP79*sF-Dur=Pb_x8hrPs6tO7#mqZPfN!`B+unrcvz60iLiKXVyEe z+NGx7b5w0<@NCU=ZJE-%laJ`==}nrwMGS#acBqpcAO7^(gF<hOnj80;suVD0S zj84Mn0*{!HO--6O?+kJV)&LX^#%dSgd<@apcMl*waUI|OzKb|i0p19BPBa*^hl}nA zmUD`N9jsU8D=p&yKX@GYEP&($bS@_j#^SsR;^I)SuCLFXbgW$}w6^i&!lyMSo8dyb zCWWqXiuC4~F8ZxG7PiL1!SHG#Hs=QE$~l6l{sCKypf#SriSf??K2G|xJfedu%ccX9 zwvourItd{>%}E3LEYQD!-UeFRBBWfzky{bnTKi7O*~kY0 zY9atXKSV8vY-LPEwiY6V&!E;0p8DD0{5Ght2Pi`UC2$7kZ^Nq$l>gcylt6|$4y}Rj z!TGUM8qV#lLH?@EAT)2yvM(h~$x$>a0 z>>>!ih!`T#03u^atzQDv=0U9h)E;4K;i~>>s1=1;Td3_qircA|H266~7^va-y~mG( zLoSdde1gtf!_{ti2zMhWKKLTM3p2nBL4|@TLq}2{a1cycfWAmnaKJ5cr2Dk)&3@;F z)CbDY2jp0b(uTGlD1s!Ek>PUqwGht6us*l-k#rQ z`2@ka<--b!lp3xNIhS-I+AN(p7x=+S=-yBitA__R4G(nwpMlg_3x)>T4G*No`fkXj zqZ|JQE}r}J{E%}6N{XS5L(WAE$KyZCvv>$1_a-|2-P8NetA!Dh+;B{s$-^T zpVNGL{%bhU=ff;X75{Zf%kyv6-6sDH-cj|ho7Ikg6Py!rR63Al%S(Nj&3VIYwhkM) z`mv#WC}(=l{u=Q)8TD`|d+E`C^Vqi1BK=lO@Tr`SAoKZfL>a>cl6U-XL>+3wpAf0Sr$G&5>Y1Uz zUK^HE^ZajGstgxRQp;aA15$?vej6U>`ac6(Cx<$-cmmRg2QC?Aef4lW;&=Z}bmwV* z;|aJj960sO|0cTqJbgVKIluUi-=(#^mOk`~F+S?#ToD>8Z8fOWdDWNe;>2u8SuTmZ zQTUiB%cb*0*O#Xup}Ah&$(5ew~uZ6OiQ+$(E1^x-sX&^drU+%G~jV zY2W#a>vk456?#8wr9)MpLPhzeYJtf8b3QnI=RaKN=*yG*vh9$CF;C+q?olE^tx6rT zYYQ*)Ha=985AJ$^kNb-9Db>P}`x81w=ySi?B1}SVVG@S_o}te@`8)qC?hRXS@fP#% z;Eu%jNIDf9N$?bXE`X*0WKBYDYZ8Y49s|%0wPg{93x6N)meySNhPw>LG|97IP12B( z#{=9f;4(T^gn$)O+2OhxG(J= z{NydWbTBqlN~}*St7Gr|@3kLGAJ%h{JtkaSGtf|P&O7+LRX<@MtIAKiPcEzDyGo~X zR)@zQj%uF1`R%?)!d1`l)D=!SHJ3g^E4}oDIi}6IXG0%8$1TxqSL#TGdmY(u|LQF( zijSdSFMo(H_9Bnk}Yp|q()7y zem~vV^q(!yUU@l84taLk%RwRJv{y{;+gUee*~Q#32@}0~=#Hg`#Ikt_B}GwrkEeNlS(Fg_ZLKB`jjnl_sbY<^#hB0kg*hm{4GPfRWnIFo%HgXLhuX zAF;c9X7>gPdD}Z4a;^Fwd4)R*wah3QSFdFLQ#Xl&C)#IrFNSZ#0Qr`6^2pp}bGKRp z^EE`YUd>Gk;Z#jt5EhatV{>rv``_{k8>Fr7j64eqdQTrork>gD%IxsM zPCD%PFgrf5V=!dL8g}k6%)X5-;kH&E#8qvsN%kl#$PQ~39`6#rdxTB$D(#WclO3Op z3S!}`1H>!}X3RFZgxgu^jsfJ5B0;3M0MSH7%_lF&J`v6>An|$2tCwJ)h%r#~?9mxw zK$^79J!TQ+A*RJO<wvw-rj9(%RpPG0@3EB4cbH)ZF{GHwu@1wk0)ex z4s3~AHGBD1@vGSzP(ABM!P*9-RhFgo2dt?KrS%9rv^GU4Bu<;KJ$>7&6~NTnCiC0x zN(nmnPT4?4)n;14>?q={l!rx?8D;7ilNc^KD?-`8LV4w-ZLhqdfzbzMHtZy_sHP!B zqgjeNO%atii%RqDphkL0_LVvcUBrFf_eD$2PJjmh3-%4ycl$z6Y(B;E) z*c&_Gv#U+{o+PrAZW89PuwWu6-$Q)XJ4Vuc@E)2%HHSq%o#|9gj-on$(Np_4C%$tc zvm=HA+KB>k$Fyq_f_Hi*rcWx8eH22nmCqhUK=&L5bG3b9N~y-K9`dK4AHU!exM8(d z69v?T)P58mKZ~kHSe`KZ#=*CqDCXO~N$^dUd=twW0pBjdH~mB8+iz_ak6{peTgZG{ zG347;_~wiGU7ZQvl2F`De(+6vh`9w|PLna`Ow5&jOwN#B5N7xAs-;N!r?u34tnQ9O zhAL6r6Njo>3Rx9bMBUZCVHkI+7`um6z|?RNrbhz-wIiT=LjlPlp#GtNqFF%wEFeP! z)TN39m7)1`OH;pU866chGeWt4yy~O5-|Q_FXnJJ)Dmdz;^-T)}{(U-1t{nv)$Vx#N zC1*5L;MQ=CV~&y=xG?CHkh_qx0BqNS?S3Jed!53VNCVVeReMKI*+@|gq7r(9ZHl$e zbUOF9f2y|Xk;AO$6DH;owjL94iN8e?cv`|<82Uw7)jo4enw;Cp3(PH(4Zi^TKulee zltf?HK86h45&#QUU`}laBY}C;$O1}z@-NEg7B39lB4@-Z1u3mtx5K#)^2FS2UN#@R z5l|Il`>NDcj(C&XDum7n?WA58;}Q}U`fvmFM>r|Tad@BKx7>ZxpR7)w)G$?dSH zr=5#%)alGen+^t=LX8Ms1fhP%iE;)k{^{`D=k- z&Z|n{DVxcuUd6|b;rb&~H}iz+U%%0l6>!sBmNcvFn!)_zw=8*IY(`}F98w5z{3azd zeztjev0{`^XZwe3KwmE$D(F9r=mmg6HdXx|z zFw5rf;#yjl?0c5-GSq8?Whlc?hX%C5ZkiiTP<>?gX*ErP%a1ZmTuRLi`BWcWYIjVI zQs37U^yrw#oS#dOsxk|ts_fNZ#PYYr;*^+0d1xQ8z9Qg{+D~?;(*Y`qcAKcvGY^>O zk5O&h*6=*qg%V)@mD5a2sDlaW^29_b7h+OFOjp5#(@4fdC1XN{F|oJ5U4cTP9m3T| zQY<7b7Se2lG#w$i4TV&Nkn)E@3LVgjxoMuyLULju<)Hd%!>RhTgi+`QtkCu4;GIA7 zuIoymR!++=?yv#wfxu+T=!YdEEk)W|_)JVUIX;s$MTcIW%vvA238tpiw1ENVgjxc`#tRK&@e&nHP{8qCpexICyWy8bIG8C305B_VF{Rk z1$XOfH}wP&4pvPtR}o@?>=btVIm+O z7zDe?TeJz8mLLR(3?Qx4Z_eDJPDYT$6JEIgI%u^f7?e4om+!$6{ef+wz7XrrPVx!p z#P8C_gvQhDL7S!k;u$kWF|cXnQ_WJ(x~PA zK-q~8uDxAA1Z2sA=U-T8-j5)jcbI`^+OcOVf8K7u~tT`Jt5Xua&}P4)!ZC_slpC4(*PJDVA`mS$#??cv+9_;X1X^XmYY(Fvgif=z{ zKV=SMgDj5?(S1OKumlA?Fca<+x)rFyh`7>F&@Z?-377ZrTC zLa-W1m`-`*^fkK-;nNzzgtD#Ld0>Q42Ya>QnguowG6I;O%P~PC*=9)g_56Oe_cTTw zY(VYE@KHFOzVK}+`KqcXf;xy{`|o3@1A_%@yP8Oscq_-IphERz5RL?9Xu=Viq23cQ zLtUvED;o^$q|@2v&OjKIvl)|GPY#f2u%ZDgx#M8vD6FhyR_@JbR@O2rr(h*l8W1s9 zafFq5Qh?|nm<)C?u{MqE>@wID?{>uE#A4YCD{jmRizOabYKE)~#ZtqpWHBo&78zKn zX0eDP7B5VL8g}_{HicPfXI8qwavLvL#@hG=@EU{2F$gapvVinV z0wj__xB!U(BxwjT6iX6=xFQw<7KZd$j4MW92?PzE=6q3l8jw0m=8!`ZFG*p%3bg; zCzwFB6syue1l8c8zLD7Z7*SSw225$^)1}3BK7+y7`4q67&tPZ4>zKJe2LU?sk1;kD zv#^_MriG)k!h%5dLmM+O%bE6yTE^H{XzfTHn4WYkT8hRj+5uJS)6je(K^N(QLr0}Qp7 zp(25*Id`R}EA*y$%{VwH39H5avvM6R5Xt3cFWPcRE>1RUg>jLQkWxpsrHHgAh* z3jY(g67aG+_ud8C4O( zf{KaXMjN^v!c{h_eHulRmq~av+9r?l+Wd3y9;^3OR7aL3c|93XvwX0rn64uC0Fb~&fHtRF#XQaR9;9Tz@7 zTu}C!)I`4JiehWLiEWJo*aWkeN76EE83^miqJ&^1I!_Qx(4O6~C!H}doiX9eE_{A5 zCZuc&;ybrA(4O5oN_x42WG7#G3mEGz>Fj*BptG41P2}yqX7={$U02Y|*cFWopx7 z&;`9%n-+t6(_v`MWNOpfdB;zf>$x3-SFviXTA9kxQr+HwJ2d0j9h&i1k)<{)aFrrh z4pgE}UyjzpO@wM*l#t_!D+3>suSMswR)))~}6t_+d=f~{}y!L-ol@uI*_g10-|M~+DP zF%tY)%k;M!B4HPhy6S4e=H*4IF%CycK~r+=y9ROLyDpz6%U>Z$y<^n_#Dt zlsfn^dDlG8)^8~a*wdvbVo%rCJ|=2i+>}^Xx&v}Wf3&Ld!Y}XTO+GK#^h}#ib(Qis zeJzn`5Bcv3uinc^9LS0_uWp%5yb2n~QALXBj-E1g+wak|U$I?#STrX2=j5n!Gaqa& zn4~&&>+i);2inX|);OmQ_Fodw>fJQYzbSI)()k6r{$w<)nZUx}5(G=ond>`ectg36nT|i7z(R?HQe~E-=L>2Eg) z&wej1|JYHiXDU^+TIbBDbC=)Cksh0F9-Ae{pQ)G}c)}mwubO-=`F)bPAc!11HlTHp zh%6(@#d@R}%nvYUW56Z@cFLH+HUZ{rG6YK<@VP{=44OY;bTgj#@6okf_NL`1_|Fd_ z{yk?}mQPxrS#U)3#GGCSOOq~z#qG6k2Y2BF4eam0wmNcJJy3m@SU=3%!o%@5+m+|d99Gw2HWwPQl8^0H6CyW

z0Z4Ac<6livDf>0&5s_{?D4I>BlT9b`##)!YQ~(94q1WhcidL>0T+*bo|XJL z+|MKXv(>D+y_QAsKkGb-;x`rkijL4~x?dlWRlNUsbVODI4xjB;kBZ1@q(lGBg=3>4 z{D08cs*QzXX}}i@c)njsLB_o-_@PXD6qlB{ZcQ{_s9ufgNVfyK^JWVR`Q$AgRW16> z*Irh-%{OaI_V{nUKC(LwxchG`3`v@*D&78+kX@zw;}vDP>PcVk=0ZEmqJCd;Zs3K+ zrm2EOBgcCj{Pm;o*oLn?zT-%tzV^sN>5-w|$q%#H>qs~WLVXA=AoSl|M}+6 zBjMmkW?qua2Q15cJ}KTKjiC~TT4Sg+8~PeUXS1P8 zF!UN58jqnW7+Qv*Wo&31taiW9a3y9l8MC|+MdVEgjKJVAs6P6HuwNPki>XjXxV6vo|Fa2Lmhp2ScM3{ApNXEszELr<}xn=mw%4UNUn z=@=@Gc|^ZnIDUSrwC18hk+((e8>PvcqrhpQSpG~0u9e|XSAndqYEf6UtgeJnSHf(l zB8Gm((1C+AbYKol7-6Up8>)$+nrx^#hBmXIhcI*=h8AFG0UIiZp>k}f3WheZp&=N0 z`+dv7@+}gPj}uPv9{fQ}*NFzE2#%6@DCf<)ZVac#KzP%DAg9|vm`jk;i_gJ7>~mCS z@TvXXn&;&DLE01@ulRVfTp!P~Gre8GNv8K22m0$$mKEf1jQ*&e(CTXE zGYSc_z3BL?KM-p#5%RPC$j5aRWoqwUh{;kKd8 z-Tx5%5p%&_J4>W1tLh;AVY;!(L!&q2@DB0PO@lJAtq*f{aJ85BZEIZkJzn8tzFYLI z_Ttf#ZWk`am(@z~p@HwJ<~r07pU&v>w-i^dF@(4|=Vwwx@e{WZC8tUH%>ggORCI3SA?Op%=dB!7sKEgF6qJED)nozzP@5AOl z+t3)!h>pqlydCYT`HZu8N<@Zrp~$~~4!xO~7vYZWfcv8R-*xk`2IVUOv=X2@jg>`L zK3CE2&2;k>_mBcTD9E*$kr&Z~j_8xJ&R3=k-Kc$Qpjm=$V$y!aH$U!O+2AWvTZC4h zbfA7u-v}z|zIB3!Du0-vV?TW1er!ciS&@Ld5vi*bEubZ(oFvTY!dxC@_|XIvrBVc zqR@aRx2C#H)1p7>JI<=tXWZPAez4%l+nn+FQE6UEeS7Yd#(rObGw#>-q;H6S+!8?N zpVIk(i4Fv+!l`yTb+F($gt8F!zHp!ScG1gfL(6lULfqzN3CGvoT=Kdu!|`V{TC3qd zXss$}tx4!_l?{JN(DMFNv(E?Ya~4`si9Pzz_dRG#0Wnh_<;`l#ViG4NkwX_W;-Oah zAo9wAAJnIgB((^RO8Gw9ZpPP1fj87gZ1___+D>-|c2MUN4eY|_0J@;)z?iRmnp_?B zP}C;_MT1OH0n_iy#H_I|iKWghaN?5SkMv^>W$EiY1b?C5EpxLU@nl&&HR+Oov3-f5 zBSH?bwyMb5>Mqvqlvx*@gN~-gdi83k{eSlH6(PR%Pj+rXFMVr!|J;Tx8%THgTju!( zw(7L@!@@SE+l=XsV7gVITbGX*Fg=C#d07C>I-Q-Hj&pbIKW+<}>i%45*>@GC=k^~D z`P?<7m!CS__}4q{b?o@5@4h{=^Qk+Ve%$!}Qv0;K6WVv*rq`g}-CN=0o3ee%vg@zs zUTu`juDCsZ%gK?~?|N5!6irP@k1-zm_S;>%jwSWtbGY0p7Z-M_Um8(FKb`bd+OdwW zS;qY|{eCjS|K0t)MN*gQ7Tx+B-b&kYtJF5tXiq7UOJYKv`F4VlKVOukp=cASv!&ZWkwvHXV3J~Mu&&&z z^Gzz>*no%{y&%aJ>3h~PqS_Yi4t%_&FMBIYg1kBh_AIND-e(N4+$xA)|9h@br{|pR zRF8yA$!Z!RWZ7A5;ex}T zpO5#5n?UM*rdo{IoAo6umDi&&)-LivT;^5T;Mq;K25y`~C$g@NcU!$aP0iijp>MKx zV)~W6lNZURThYr{9bNG<)?aqklDoq{F8g&twQtm=0q+e%zt>d#!rdhhQ}sesJUb(% z+U?3-$;3krR})n)JMeVfIe0Xqs_JTDxXlKiDUJc*ALBe<&h@r`wxIG|b!yXvhORbx zk86A0iKC_M2CCv`YrE~r#21_Sy0uxId+YG$X!*V|bFyRFUC-T5;xZ^S4sQNrGD@;f zqTFoEoIkVAgNdJj-tU{s&~gHH8-Vgu}pU!k#px* zKELNqiG2dIIw~^H{+P8f|IP(xE{Fvo9y_aJ^@N+_=<{VpFsT#|qL14BB>`^_PCHZ* zu(C5=zVhVDESPjR+ibYqv?d7BTu8ehZ8zJT-*acSAwgDlhC&<(u^bz0$OflCS_Wwn zljgIrry$LM)OkqC#%4j<4rwhZ_NSM!RzbP`Kt)3MZtAD64UJnHwfX+0qH zyGcM#0NM&F=RJf_8p6>KPKWT$q93uR@1|I|w?2>(%TJMUH*WKX-l}CxZ`EBKzbC!! z?Zi&|{xpBx>x#rg;Zl&Ghxl6#K&TF(8-%$``0`W#M*UX<{fQvLA4KFwj?VC^J@skN z9_z@qCeqfG^?7-YTpb+=KO)yA9V9(7nA7}FwhT_LhsKBS)O^aHExld-m)gdH2Sq2} ziw`1iejZ!gzXhC*dEESOqO8H&kjfl6*P@G_Mm2Pl1b1hMAmZ`RxDgsvp>YK?{(b^N z_;9*bRBr2FppkgZ5PzGv~P|(icz(WDR1<)oA zZH~-@DukOLJf#9|?URSNwZBU>mb9}-DymlpuGxuZT=n1ES%KrZ-uh}?m8go!^-vTE z?IWQm9E!9ctUdO~60m9G~0m=Qn7LHU0n%7YW7vbNAAzwe^cmjO2hAnHj zr5{dieIEn2GT~Mk6C!}`+z=jxQ1kYm84{7VID!BooBpd`!My>com&c_Ig zFM-jJjsnmH?r6cs8q7OiDflP@p$`)-{{HfJd#&|HsU;s@Uo`Tl4;LIfkBMgFNtrVG z$JYtsT{yl?SsN@N6N8whb!?hyLPtIn|B-}H3X0vC5EJ^3;bV&r1%vlPwAA_{(Z&X! z0w2ew*}!8QSCG2{S}0u~V2x0v1E|tJqoL3pLJkw6p8p6#$Wb+XHE?h1w?gU)CCJ$? z^s64m?(Q54-FZFDvf4t@@BVK5ny%gFM2HIG4bY_wB3a8(gPUi-^Bkn~^0w~fvt*ll zy3i9GKA%vrb3RIXW|z#ZKoiy<&YzoLZ8F^$hnfDu<1(SVV;0){oe+W)_6 zx!0O&QMLbf`|XW%PW%7uX8ZH=M*X+H+R+rd?$Bh|Cr9bd*JL&Ov5b<`?vAF2bjcki zHfQh?o9kwvddGpy^I-EKYTyw1!!gV6Khil#cePGaLy6o?6>IbiMQ{<5b>`3%TSXQE z6VShWam1$3eCT4GEC!kX2a|aTis~Ka#5y^g-nSy)KU!;Rp_30w7oQDl2Cq?M!7bDb zQgR`MFVd`6O@*s$F$iTs)()pYxE!uqr2JV`S>OXlS%)dYtS=hsFhx+M@{ZQ9q_1d` zSY|wC0m_zw6c;j*a0o(O2qmD;l?f|;PH;cm?Ct&By1v9~P2eck#HycO+8uc(oeSe; zI|K^2Cf5E`rx%Vq&!{gMy(Vy^>)Lle>7DQwPS(yWxmoh!RKPCNd3ZO+;*A?WN9Nn& zH>Gh0cbLA~m4n}r3*yJ|_W1q2YwlC!Yb}lVoqPuSDgSMpm&8j0GVuNaXZA9Rz4-O| zSdE(kXU*O5s(@Pd>W$5iPRH-?Yt``Ecq{xkzZE~7*TWkgx|ia-6Mk~v1XJxN@y>!o z=$D244)*i+pBpFSm)x_4g9Uh#0Uus;AdL4b^hIIldJK((f8yCsgE~4cLVpq7uV93i zfCQSF3Z*uwK$SJ#PY}r7&~fajbY5WKN>bXF0HsYhugTueh>tJ`XIRNoBmjTo@R`5SP-8gV7DxZ>b~7hG^gTm|gC5zfFDoCH1`=jlh(m+Ac?WSFCg z_Z#qm%t*Z7pbxL%=ynCZ0C*02zkwFcw}b3Kyx(B(X^dEJ83#%SnbJsroS}3ON(b>e zjm)h|Q~ZOUvloXTFFE<})RQ!Mg&?M}@Odm=#Gr*2hiG}@1s7Hj(l5jJ>$3uiUr4E{ z##J3tV!_BMUTxL!Gx=$@eK1+(9SkVx? zBg6}@O7Iegr`uu538sADvyTtnMezl~=U{)W38~Gy08iBss6A}ug^>e(c6b|0-WeS3 z0a4pQROJa2;B*l60UlK1O&S@^cpFPI@RjVXAIP4c8O*b{dT3!*r(gfempP!S{O?k!dTGMaJXp%YRB~6r%ShOZRb)_A?I^XH zr+B$VJKil(vjFoa9Rz)3Z#Z#+rBGNhfTeqQV@3}0n3DlvAVv;g`UxZB!g!^RJ_=4h zyCU-Od2}?swjN4KED&@UM#A z%$SICRqOS&Pj45>+HaPTnp4txn8$JD7`l&YdGzyM{vr!Jy0XaXiF1!C?~*TqMOSt^ zVgvjrT1bA#7U5RGkk3b8CZ_rdzyAw8_#6JqT8!)^DI>lF4cu%n!yN`!L4uWe zUYgu#Q2ZV^FUKqVdjisNV?uwSnrW)bKR67aL+P^dq`|pv>4JAH-sd5m?4$NT+Ibpo zOw7lfi)>q1i^DAuO}a~5GuP?mzv36ytaEU)ztdB(aWKgI%}#H2Mvd})Oy?sN}{KCcGPdt~D7{);bvX}jgQI^BDjLW0*`=h7V@-LrI$=O#9 z9wrUqVNxGoVC8py%Zs=1euWQsVDpyV-ypIj^jP64$uxsm-0{YEslYofdY;t6PtR#y(Hk6e zQfA|Mk`tZ=Ny6q`Jc0RW6XeO>V$hbifBEQX6vr41dMCq}^brKRIT??x7Qs{+J?`PZ z#*Ozoq~eL!HhM2Zas?hLZO3z=?W8MsJDv+&8%w}UA((20fo41xx?@Psg|3^ZEjxmj zGvp{BDg%o4emMKU!?k(ze5mw2y(?kstru_+L7P|6Q#6rx3)jGq0y+CmT6#swL&g!L$Mix^qAfsNl5hJ1I}qrVh9`YV;7=W}yDtfRMMtm6mD z45;;2_M6OK=l@i?6cxfxsq)ao2Oj-Bqep)Y2`}MUI3BP)Ay&fY2~l8^B9X71+?21v z`4~PP4*~J$ZxcON^DMPRmVP70zX>S0(-}q!Y~?Ac-v7hdo5%IEeeuH-B~qp&N|dBh zQKUIjGM1^5CN2qSmP(U^OqC%eO$c35xoFlTgeGwn%}IqcYo4C<-ub$}=k@yi@w}dY zPN(%*drf=owf8xDt$jL4D?2(jL&0Sp8cn7~_4B~!I~a+ew}e@5-GW{AqPKF;TRP}1 z9rTtCdP^9+5*A5=IMHu-IZv-jM8-ZOv2PWNpFbb!g z#0g=1Fo_Ttg)s9Ku3ooix-y-YA*4=wmO|>-^{b~{zpr5-tPwfbgnZf=oZZZUQ%0Vb zj2xeG>ZG8=I|Y8@ljSdCM>_dFJEh&}8mYX zg>j)Ft5VNmR6OF@0G%;2wU^GAIrP*PL#36DKbiF1ZT~nWZ&3_>Q4Hoty4&GNo?h5D z9+>99tY*!zkKHRyzBsu=i*cgeVxd9!)*$(oN<9sVuVEuKQ{Tn(<%r)j?6mdqKVepo zIa!tC_;N31%PuJP7HlRWhK?mWY+Qp@>)IxK`#4zprzvfW$2U~pt9oB_Ye?(7oTpXL z%5=r7>Kmo2nrd(AV+ucbL8&X7XZbyg(2mE?`zQ8CA9<2w@bZyrQf%`sYmKK;XFjG_ zTjk7lnpq~0^P?g$XzQayp_A`TtHshpErIwfFeVsMI%rZonGrLLd>b`j{=@t&W?)?7@E2watT(N6m z?#i|^KxrwyM;o?RSA0Qg19km=yXm;>APWXkq`u^+M0VTgJ_*4I-JbrO=BBe*B`gvg zr$Cw+jywpV3a&okPr9FR(2#{1%-@VyQ%-Z#)K8T7aOi0`0#Nvlu|8~$n1peIObwqj z3?2mQ=$|cS;BiANX_i;uijR|pYHaU2-1P`Cun ze1@oTh;R2kSgl)iL2$`o@5?kH)KH+_Z?_B~dluyT2h{y&7>s*`v7!V?ub-umz5ePY z@~DLb^w|Lyrbzf&%8mYQ{K<((m;wDg(YhItPWaNqwFAdGyb(z^6FDw^l8Y;v@S}wx zoFkh@d`VRfUrd(AC>n^_jbnpS9KP!h`~W0T1kmu*4S^LLDMRD^!Cb=U$c1#rD1k)G z?yt}TZMIcm|K3wMqT>}({)T5(=eZJvq#a1R=|v)7@6#CRsQ z%2^_vk@bU#O}q9k^ZN1G;PKc?MH}95we*?D2-WsI3pC;DQU9=Uor|WHgyD0IqQ_UJ zM#!%$b*zk8ZHJR2{*nrj(XqiEqc_+>T160(=JGUeGB^-n1MZDKCFmOD9P-ATT@u7uS`Pc$`E=tc45cXi=@ z&Vp}`OsW?F;my#pGY$O*=Bs9P$xb`EE6!GcC{#BbpS`6`*dc9-NKHQZ2y?qDcM5hontwpPR>-*;eH>bDD zsX0fdt*NQZcM`h>d?_tW;1|t_kGB%l^fxyz)pX~`%!u>oUEt|qI?yIH*q_>6`++sH zWDSZ~gUHba0j$AT)9oDxi&t&)7SG9LB@(km6rCc(ON~2Z+gW|O@p^0 zZl`4x=3C?hY($cuvf2tO(6RxvY!uAgxA z*cC79PL_V;Y1~Vu-s?L0M|<>-PhuN7?2L6Sdd#ovIXY`j(rH*x>Chw?@JQJxna}Lc zr-!4|ev{E3C39hvOwcHq*ikaZqhu0)lPMo0UbN{{nAB*wR{|Zum+)Yuk z#3x#f2nplCM1c-kQ?aBZy!QuvuvDNVy!BC&F%g`(%TXL>s~U!&J{3V7&j~f_VTo-p zVH75vIV9(Vi-bPgn#?S=gfj5xXuEM(lbi$k0@#qwiF0^60}}yT={A$96aLTmZf%@9 zr0(j4L+$urJARk}S#Z(9Na0hYh0CF*Ogc)yqeV52fm7yXoNCXld{K0DGzV`j9xo8# zbyaAkq|!)J4<*N8X_t$o-7yGg=Ptcx%G6J03VJm(3D@9Rp$#&&?T22NgB*3CP4hCW z%#MOWA=Y?>Yms1hjMjIdS)ZYp3N9&hk!mDC8}muz+0E{7i%3!jVfiXj2nEX}5=}rvh#W+k<@mNR3lT5lP^e~~) zcpNg>Kqec;b0Gw6V2?6MZFrQS$1(+%Ik>37?jj_kiZe5SAbNV+s#Wy#$6JL}v4a-1EaZeMXwdXOL7hFRThI~g>CJq*%{dw&}n zluMylC=|0L&M^rh!~WBV&+8E$DD?oPcoV#a*MZR zx5%0PCFhtOiwFI!cpltM?<&OJjbZt;YcR5Cwf&l{A0P1$r;S)YhHZo*H%M;wj$>U6 z4TEvJpIYS|@%Mf8_-l#6csk5Kb~`PIjia$3F4(?gW|q0*{^nAbb4L+bst_J8-7y#3?->jUPc zSEL)vf>I^UYwwsQ^`!Db?)P}u^z$u_xn?^astGY2d!HcZ8AKx6@m$f*x9jz{ z9Wa!-|Cij8n3D~nh6bJdhHIo$KRWcp1aFoNE?Bh=un&n7YZ52qZ7n|#Ca z>t_@0yNlj7q)P0_vvAaSS0Pr^(7#A~o6?F!A-m;5=L8+BdT7}5NQdXZ#{2;d8V7XZRzt}A{O59a9rmeO`ja` zBHcb-|3&Avw|K@+%lD!Ci|T6iipmd&)j+Ytb?#0f;px=O((VXR>Z$vZ84#EB)4Q%N z<4M8av`>ADtl&GnE;C@^=dc+);j(WUzLKft>Yf|Xys_W$aD{W?f>1Z=m>#>x-qxrM zNO8coXz>#ct$9@sp*x-w$8nL^p8ppHF%qE)-@q?QTVm zPaT7t14R8PaC~2yYF*)-JJ(iUN5N$+NyZD#molEaLLvnzU(SJ8gDoxs$x4Cx37+r1n)`(gx zTqz>%hT7`Ku3Q_p1r{i7x)+q!VD!Ls!GciBDDpP-XoeDVV+Wzk1xg5dwbMQ8*_XHb z%^YX4KFqv{J~W$vK72Oe*21?nFD16UwP>4`H8{Vh=I(^$+qmRq&TW_T3Fd6zb>)g* z`S&>m7YlS^m?=7uBNDw4pA|0+1%EIF%~%Jum0ej>-x4oFW+Bb+v1E3o5?o^(#i3(My7VTtb#M8L{>V~zDjLxqs(LINI&y)*whU~)FX3e)+B9(7HR0I-jZ-&vNI9El zl8@osUC`MTP zvrwIg@Q#?)2XHszKn%J^7GFP0MP?gNe^e&P!AtjqvSDbw>2_e6ts!}LWOg_6+ZaGv z-)WXKW;)He9J1K?h-lpoqX&Tl=FvoNxFW^lVUd@$(9idpuc99(@|Msz?rDr`-sdrF zmA5CUd#UEN1dB&*igJ!oce39dlVFf4FSo z20-qOLM||fD$NikQZ^C&98+@a^(DvP*GAKmZZ<-d6wqkrz~PtbTMwkvQH8VC?E61<<`3C!-XP!@A`-eN=$|4{ z%_nu|N0$P7}cJ2wh zy(rW-5UYnZn9mJ+e6P{0AK$?*Pa|gd?6iW=z9VyuPKGRwEQrF|Kr5B44RS}<2J47+ zPcAJX@+~`)r{(V_T$N_xAs5;>ra{1PVdrN}L4@ndNW*D&O}H#M8m75& z73t8>Q;wmI<~19Gg}}2Zm{qjN87$iV$_k@dMS{&LvTRmiqw|G)0L^xWwT5g0v|tmU zB?hce7{cC=KAZQSsdoGfEUHA_ zc&0KuaPUfj@t2Gz5}%(XU~Q1}(o1y9V^=q}5^yFX_p}wVl|buxwi2)*>+!exr+F@@ zUKTD$^Ld8#aV%^28*?$mSIuElyg4AP0fZ&wPKyQq{cYI@*_tz)ht@0f+C9@3c~c_} z|2NsnW=XGQB)hq{mH{NKW9qnzF?Fs&9W8yPPBdHnXfmCjj3UV~q)s4Z-n=1iQY|g3 zc)EIw%kM6{i~i|*e7I%8n+6&5k2&kY`1=i)FCCFvORm;;9Ij?^2g`sywo-V>mH}Hv zmjRu!EX0l+!))r#y(IXxVy_%#)1HmD1M_MIPV}vb$mXAN_%^TSE_AXMN4`)8ujfTt z%e7r4l@)pqQFjea9DG8t({uc=E79pOX92b?kA+k7YqY8vablgCc@C?ZUTYv#k1l-% z7?Kuxek95!!!Gt=UQj`Y-h}1R+grS}g4ap~XPY1GJZ;J4g_z!J3^@l)SD3pTXyZS1 zW08*+tsaB3Ga1UrI-syc=%AsBdGh1nqBgJH644u5hP{gQuasUoTq!)iXm^OghQNg5 z#rh6LG3K$Mf?thfN~O;|HkfKE5uCvFF*RjnM8X-?Dr4KxYbGVL4RgawJ7Ve7HAHzKyyQf0*#?|L}`bS)l?Q&Er1g9x^uUtRjhcSa^J%Q%$2srB3&Lb zeFrSkejIFF_$EoZoYd=il&bmzag^_4F;)Y|Xra@xH~Polt;QR;)C_gpR%}rCbQf`R z`NwToA{>kL@1`}vBUpkzEf=wLhnyf{>4p?{#8QDTh@}P>5lfAw5KG^(SQ_&JON7|j zG%?sEuqDFBIxG=N&Qf$uK0pd(N}I`0pfneV7crG^&eUZ(Ixz)e1p)D7kjY|D$$Az+ zs>RuYU>&oA5|$CwcT^kxw<5T=NIQCWi&yA18fA?IG5b7iKL-`avPTXhtOt@F`1fH! zkhG2*_45-f8+!f+T1B7~Yw}&MsyNk>p019=t_96g59`wS;iJ(oBEhj~#@w&_&z*A|SmNauL}E)NZ3t{yC0lP$?+UM+0l+R?%mt{DS(`lya) zPaia)P&naZPak`j!*XjQ3JIHF*j{4mRz5$tu<}Fdk%8J`&5?o;tNcDrowa>CgQV++ zlMKOOu26HQxiOcHcHhpDpzLBM?&hahA_&i^-(h6Tl}lryr?H)yCs^364#Y|zjD}Z5 zq@;FV*n;@LqPG3LlCyS7IBQ8z{}t_sVyl3vHoYZBjLIbe8d%pC_97@@sD`Zzyr|zJ z`OkK!oRhWUey)}M$ikW}75LB7>}Qz!0bO{lJ)2y<$9FCKRBaiX5ce{O4ugm>$Ynru zm@liTGRRUu6u)HHN>sb3D^;a!=uI}9Bg|9Z-TsA;WTte+0i`LbUu#J+pVenR8wa1wyqCHrME&^jRQKj9=dlIVbMO0<gM)R2k*=*)mrke92}`lOR8MaQCo&leSZqW@3@pI1K0M|l8@1~5|Jc9v~r zM~Z;Wk~aD6$>(YZH^~Tp9gLyRgI0DV5a(g~hUsIQz7i5`#Giz?@Un+T{e5aZH@Jy{ zn-@eF34sW#CeWM#nFyIo1a5GP1UD~;Fj4>!_yNoWa74f7Y?4i1B#B`6;g-%br%fTm z*G&Gjj#1LTC|sn^T?9I9I!(Z;n`;7Gnu5+ig1b|Rg3CULu@GdofUOKJq2RK@5;o8m zIsU>p>FFMl&=%FSRp&{}XUoxY4q7InWwYv$8Mc-0t0u0P<>EAP#nLe6N5oZ)z5?15 zq-&u3+O-kZc#qzR-`ix;_gC?9Z=KyqM^X0JT8J`9VJOo9S~957jeiZ`G~-6qM5B=K zqHAsXpGYi23&J<|LzyHi_gxNP>3#rXa$dEU$XXfKa&ekVqF}R>YBvi@=}W>TvP~!_ zo!bB78m%5n^E(HxzO9 zpueimKn`Qrpc!%`wLaSL%qfr0AUQkBc{3`S!ygi}aF{+%j*QS3M<0hxwOB#k;qFY$ z8DAS zukce&NV|}Y_&n#;XUb>24!>TjG}b}VB6*8<#Ty|TiA!n{Io4cXbqnl5IaAy$=_4a8 znj%UvCLJ6$0}D;s0{Vh0x;Le~PFd_+u2nB)wb)thW=_L4vueK0$(x$S@Z~H;fWd9c7Fa~%7fbW6i*QH503MOBL?Oo1XaQ9FX%hArr5D5W_KecfzBB49F zny>Q;_Vp`?vmeX%URV@wn=4^5*i_ywB{%_Q7#zmKL zi6$;Llx5L4JOY#pUxT?NfmOad1m$DL7;{O65?U+P7|}^GHI?VHA3gD7=*PV=L|$+K z*q&x=w}Gu`#oi`@2QOf3&2NCdTps8LTN2x3rjRL9=l}sqlT?J{9Q>1|!OAoo*l|qA zQj#X6F_kg&0K>HTK&kw6%QCPuDRi3La949f-~~^QG>Q7#=G8XM?_}OKm0R;TAJUkY zox~`sF`2`KRR`xqJVa3lGmlGYLL0 za0mk*0ow>>k0K_dAVax8Mrd)Bf`;j=r_7jS@y9;Nkychbf+PKjOTgAlFXdZllD0@< zz?JG1)8sTWFYKTMRNH$dM?I^5JX#Ytm=SK*-sd4%f4g(Q=B;*PPdcC4x;L!@Jc5zc z{K!=m1*+DMM>}c_hnj3GEFR482+O*l;re#ai+x%s5T6!Oq%Q~E9cr{`tYrawo2+?< zUDQdhdVG7RtXW-n*st8RcY1#;zA}_H!)$KU?u22_-Y>wSv^i%iv@i~pWbls_20(sV_U`-r$t|J^U`QxJ|{7CXPTMhd1_kUSQ)N6^!GJ|zpLHLHgk1_>V@Xr^z1xzjrYfj$iz#l zh8jKuvEMf0H)HnO93rb}E#uQ)5Z%0gYi8fmbRZkB-?;Hx^C$b#FQtuBDn5y;NwkTT z-YR~sW)<$}d+eX*lex^UKCicQxpOy0fbXsAide^%cP+acEB?v5+tx8l#k^`FcfI>~ zKm`&CQ}!8dti48Gs((zlebR(>E9P*xV{TlDeUif1Y)9{Bsh58Enyy*jWh@pib*De} za_O|~Lo?r4O}g(H^VR9p&PND5usmmn{eOr zLcJd$e(ZQfhz_pP2{HZIq18?&^4wR}r*~%dImr-~ zXXS2y-6r1m?6i_+fOQN{0C>$rv(L$mfmZ?SJOkix25$6EYtmemP;u;gGIv;tRj!7{ z_2=i@lE(e`aB+283%;N1c84~3T#9Cxoa5>-n;5j(!ndp4>&t%Mt}b@%WY->CCx81i zr|KoATDP|%x6@DKnKS2m%?Y#1Kxn4X-9a9_fp!NQj4LCpR-xYYqeZU?q@{wj+vm;XI3uo^S z`eM7)R}7g;YP2!DrN$0Be#jneV;j~{XygwL&9p1Lb`O1(j8cBESD1U3qy8-A-qj%^ zP8n&w>Nq<_9cjMxOhjx7uT!HGz^TX$J@oVgv{Yodcbl;r_XJybPq4k~NOwC5Ntr?w zeqd6H=Gm-1Xjp*lIJx!XrKe8)^w5l*q@xXuUg9DFwSq~QMia^bT~`(j}*yXvSdT`w0ewCBefzGx+=peaXP5wv0bpw=Ur{K-y_to<`v*9JkC9_kM+0+yz44IN>XO0qv-j&GPzl9P8Es*f~x$!hlSfwV; zS@8O?QTy+@BIL71vf2-GB)n!a!iFFm&uTw17;Y14KU#rX&2Y7V>&0;Oc#`vZh>K(H zIs1~_O!k8;pOSQLCX#8rf^o3JFbYUUq;Rl9CWv^^i4sa_LpUX3xDEYFRByn9%Pg63Fs>3K5bZv3(5Au&YS@a7VeRP6?VOqPiwI9Awi$cAG2-)-n&``r~(9 zs;DWj2?tqIkTrqeEp$%Bdi|rwBX%YwU$i>_wchmp1XJrcq!gPKqqs%}Dj2fkEev4F zcy_$SM@SpPtPndNxF28zE8vzg+!BT>0};B|A$I-Y3v-P`Z9%x|5qzQt3fV4z5Jyn7 zQbk28Q*uL50kgs}TI|TNawz}oG_swOW&oGj;Rw@>b%hxOwx$XhQ)?U4jZ_sv;Bxqv zGnEV7kv@iIt;FJN9aBCn8Qs<_4cr0p=1VhU*X9B35km41?JU-l#yZ(f|X!Jv!hYMSvgY<=#G{%G2B9iD-K*oI)|#O-8H=1|A}S!(g6$l)|1U7@0WW0jF zr4Ts&Dg=&0vuZXj=3p?aU;V*|KE-Wn1EF1-abD6-Ju$t#{2&@MoBAL}9 zU^OjfHA@Iw#01trZ+K=yV0qx0Gh8#^X0qNeWCB}-cl$lj{J%xvcU=LXW=mxNM~C*I z44}Ma=Qy*GUF6n-acTnIrCN*_`PXk$(f?3$<93cSA4R<{Bal6c>LvFF)%-uy(*LMZ z(ZX-4UjI?mVyJZ(Zi9}|Lth>Sc)>U$yWzlIFz?8JbiMwgTm2v1_&;<<^e|&A3Afl| zYhz@&O8R7+7dkesb)$CMsJ;S!B(K%=iy#=_o3X z^7DR|p+fE#|M$@QyLUsW(B!ux9Qb2eMBd+BhRFLHRfDQXQb$Fc^G8Gk-kMQ!BJlne zF`TL_f1?Wi5fO1WYZMi6_cv-4GqUnnon4|m&F*``y6m;cEA2@^X_m3yq{@2Z+fBe69=AW+1 z*zyOpbrcm&+Z$K-q3&ToBjQ`D9F}99EU^CPsp3F)JJVVNrL<+N}-tT;8LF7BT(^Cqs zCp`=DdZGrd10P^6qz^E!kMf{o(h2UA@42ju9}hJFEaTL3HD#RkQtGwPAf;Xl4br2P zO8p8v4OSxyc7Wub+B+Q&P?<=L&D?>yN~QN&;5CRG)nQZ<4$~u+#@$J(RQG8lc$6gj zf#k<7P>?}Br!=0>?vF(UC(=J3;cL{N@FD8ENSf4T%1Gl;?f@iRjwTP-cc_(OWKr~W z5LzYDa~qd2C2dAOrJT{iL#U73O(i#LZ_-z#-yi%)O0DE(Pq`u}FHuF_XgD4P+3Bdu z>A_CL6cRO|xbG-S{8qv9XP=xevS`O6<=KFq*SHM9$dGKUYeY6tvDAmH4Pa{n){4?z z*Y4TEI9W-cqS6d?TPEBn1TsQVpao^4e+^^mms8o!)K8Sxedy_2Sbg2^lFEwf$T&r5 zZ1xt&h?1in$VM;xOqFJbp31@+u>@RKj!Ls{^j&SLffYo`vl5wH~ysb z@nvQH;Ghc=HltGV=M}2ZQFk?jV#i2)E@z_8)kEpZx}T{_RianGZXW2@3^eM3iv8l^ zOJ=?wgNJE6;@431<$gPQu6KAl1xnol;$$GA*vL!_psyld{rE_(>7QLKvu!Y}|P8QG&6|X*k|z5l&)>!Wk|8IDPCoJ5FUWjz6)-@h7>Gy$U-CWBT^d)6AyhV42AM zI1%b9j)2**$jp!qIopBz4>+zx&zYDM;e;k-oLN@081$cjej(^9v$LGk0Sp2C#^_#$ z&2;LKWeU!O%EB=)f;h27aP-6$L7dnUj1ybTf6$37=In456-Xz5)`mEoB_AgPUH8GU zEdu!EBYr8p)4LIL~vJ?-=Y;UqdmTYk}mhEFQMdoKRMdo;jY5=LqarBK1 zJ9df_KwSXS0BiuWipu&4y_OuEslq&#RUhgXDLZ-wM+JXACw~9ES8J^qdc6hS)e7$t zg?G84j-hcr`Abf|FC1BidYE64<>3dg7ej7~r=IN%P0xj+NM0)PZVr^B+Z_=!@(Nwa z;SW8vgj-q?aGe|Kc3m_Dme8vq`4D;J)wfXvw?Z$yxl-t5^$arPH!AV;*5-fTy$6L- zaMor~u4*Mkxm`3Scry@5GVrdfgA&yp3f16T>Evt^o>3rMRyF{S zA%lOAW$+iFxjf@E^cL^dY{8@z7g2EX0;fTebXggd<)6)>vV3X}Ne6w|RN;lObB{}8 ztjNPvWO-DiNB@fmB1MLG2V7l$X$DLTftI$Ej^oj;@wWj8;-L%$?%h#GNCS!uF=91l@6Bo)HyP>ne2Q0xAWbQg7=XqM0OY2hB0d zc5{P1W#GR*$Z8!6e}}lA&%ui(Acaq;*~Q7!VehGYM8%TA?w#Twl5(5@xyx*8Z3F}f z7EoniKNRHi#!=}3ZyXvuW;MREp?@qa{g4@@3`S8U`xRX+tw#|j1>OC2m^bY>$@2my zBlH|c&VM3JH)4-y@_m0W6z?WO$pvS=KLGQEQV{boCZLZoDI9$Sj`4&J8F+t?s`00I zn}Me_rspG}ES9Rl+Y{mF&LlaPGffw|pYeLq(h@oyqlszUG1RPB(;T{Xk2BNBZ64|L z6OM=Xs$7U~(Kv*=@H<>?w-+#}=KcLaPVii{T=9!%ggToa=EEDdLM5uFc6duKQon{x zg-p#P=!A=?IkBd)2Zt7y|ElRi#WO-buD#_t3gU!wfJI7*!xx=jLPq9O!2KlH9XZ* z38_;JkdQjOsGdnEj%iDcUPVt;rc<~NJ*DY@O7N*HHBz#ORr>5AjoOrPVFFGkd`Dd< z)4YIeQA2Nf?-c98l)Boezxjar8(kQ^2u3f0(N(DSR;BR>Fbjc+H@&l)sThClo&!{q z)%mp(?~t#PnJAAB7gV=6kRv!0(tBQdn~Ule6IR_~0Y|E5I>jMQB$MPqVdUAopsbt1 zP72abj4?&4!)Ioy9jk)a2(L*7a2sjaT6;biduOS-JDgjVCqv z(T5AqC`QJqa2LAYYcNsn{CuOcCcp9Uf#)GbrD6P*8Cw-66}tb^z@glE_r@f8*J~wr zQqlZ=$}X;7?&IB;*G?>K=WR^5vFUcN>2Byv&impXDdJLJ`N8p&CxE*)Urr^-PhAd zyPzY(S7_t6+MG5=2M3I4+tSO6A&W9(MId`I7uTo}IF0`*)g7zAWHZ#SFLeO5w zep`m$LSb;{P7tyw?kXeNL8G)|7>H>Z0rci;P|cc=vId(ZbVh48BSjnOg_&xwt#dTm zwJ} zX|uhvwT9g?>%3#POoFz!Qk@Vlol$G2gQXhl-zavg3d#1dTP57qv0F{tPG`5wN3XJ5 z6+m~e+vT`*b55WCb}&uvx#34jh~r$K5V1G z%h>3C>oHrr zVYDTHjO2^Ho~J;LpyZ3jYQ@y58AMx=(T-&O_5@7sp60c`1t_TiK?(O8XSg+VnL zkP^iB>3I%PW`X$a0&B;Hjy!8;VQNdhZ8kb;;#m(}W2Bf0$h;U%XJf|@PTO;XkwU&l zbrTHhMu`_;Ubd{AA48@Lg~H4g3^^z+iN?C^7B<$Cn8mu$zKU5)jfrB2_Ki&A7W`Jo zd_aSVz%1p)(9D6>$_4@_e)D+L6uYgV+IL#Z_RRHdISjM_oF_r5frCI7Wuz$Mg3wtc z&|_@wgN-Ir&ypb{;leADA$Kz5TTRwPTW~s~y@`RCE5$Qwenk5W764AO-!#DY0wc8! zqy(Ar1q_XKRuWVgV4YRneB8}u_;iU)OSjqc@#gvNZ<>b!FNEbeBvIR;1|X9 ztbNmJj%<)jB#w;SA^eeMRjrMl6t#N?hvf;?Dz$*JOCHNrF-n9^i4ZigxqB-C!99_ZTLulFg4$6x<&BZ?My;&$)&Yyc4qPVEMM?(G2@h#y=N|Wr9)`po(bBGi zr~Ch1LjQINEul)VdMag=*(LO#rE5g5EmSN;u(BzkMa{SpTG!9ErWN$sJwCs8{cZ3J zw2~hyP;p%LVL^$v7LH0-23act*%1^HiTJq0wb&j{6u@hW5)y8Y9yNMI)wT|A@zz46 zoMiP&q~cw%N9>)A8kXZ~_eOX9!||r)6JAAC;8j!wUPW23S5cK%yq4ot)F<{TstS)O zqO`VN{e#|`Eqq6BpM-v*k{K22x;L)an` zB4uf^r8yqaewH@dXQjF4{WBoQJx8E-%*DFrw>YQUg_O|hZyEg)*)sPO7JkQ*B){x@ znf)?5^?~xZx@5a=@94`f(tNZAbnoEH{hB<*eQlCt-OiVn8OB6ld;^AmHZTtCaWI*n znOMGq7LUnTJPHTcn)U(UKZ=t+uvb`+&-Bs>@trSEvn8rFmZ!0>Fs>+3gv+@`+*f|(Xofh)SzjgvckD0UxCiP4#w<3%bhJkMR#kxhF(U4~} zQp%qz>$h)&NzGo;s{gnwR{f(UZGyoBo!m5Z^`C8n!CpdHTl$KSe)~))+oJ?!ol|Ac z?+|F6$=&qeiw2bKfwH}0>XO^u3{1hphfZbHqRycQkxkw9NiXdhBrB^oMQt7nNn1cpbtqgZ1o~!DbvYIENiGNS}C!#Bqan<0fas zWhO;U73kp9uKUriqc*#?Uvk7`(whcLAZF6hhv$bs;w(d3sZ?R}(#-PWvlIJ#ZreKz zMT_{^4F!9}o!;M>go6mZ1|4O!N7z}0nKMk!#W#(7Cfuc!JhKf;E$IA0r}UPpl%R$v zPv=&mT#sW6Wzb~Bw_)9fT~2G%W^bGCw}_Danh&08T8P6Ax9orr*MJ%-@oiC4Qv*A3 zQ5vYSK$Qim0YkL{sx=5Eb-tf(~1Bawa1jSAh`@xPqt*j9^v_BW$d!_Djex`%Jj6rDyoX zH0eWtkHmFB=*J=A9bZdij~9#+vG7PY_)%8Vble)kHf>!N7gw4PH8rl3PHwz(qy%R| zrh9|?WHjqpUp%#>bPf#m`8pXl{TvxL{XUHQBm`Imz_Mk;^B`{eH4(qRFU3lc4KyHv z89N(N36^5&r-!3eb6TdLl}EY{a7BQt_Lr3aG{XHHgD!we@Ng2p>oVIGdB+yjf9g|v$7+{+~}TMilp zFvZ-Un9v65hPf8h4FTP-!7B(b7yfcQ48pcoRtF?xL{L9T?-wIyJbs02pz#@}X@-0O z)&sA&k)m=V?oZp?%-xSQ@pXN%c5eE&(zv3svhvo-TU+tBvNHUO&C5zt&&+}TjL>eI z?k!hT8e2qNLmoM5r8G)JJ6~V9W=-qPiCgZ+JIfWR=EOId4&It7v)@o;c2b;kr|-J_ z<2^31oZ^;lFRVmnA1`u=C3Jy!r-R=P)xSH{f85sV;ERc$b$nmNHhB!)n))PSZoJc; zuSYT&o+$8y+IRb&(Yz^qW2?F7H-5ie^A(*AR-|ga7M;Dc$)_%X?_!w9G~lhF`^g@= zo|W9X#os!->gCAuga^N-_XY2GT{P9(dtcoF9VKC9nPqiR9Gp5uz2BxtJw7EQI(?S% z@mINL)?Zert7Gt9cd5sB^zB#gsre=pd0k$+?4sU8USW;8t84D8Hxh^*$K@ZKcYSF4Lq=W-!nZqseC9Nm$9yt` zFYSQv=KQ!{LHFV9p^Tyd6TX=>m4s_7!mL#=Vc<=xiDm|SrXJ=qxI%1?o& zyOyA(;6xa560@}!**c~CHi$pl1>!Ap(H$DAF{Cs&A>u;xQfUy(Zln16wOIJ?br^%?Pt zC8v19b7pCcy`J+axpjVa-z#FnbE=(jSq(1NuRjvKJ?8VBQ$tg9u7^Dm{W4+4wC**+ zdk=%*;>!SRS_rz^!RXP^kSX0G6E@msSPY)x)!Ah*UEwHSULVOH6fiJ%TA1x=;^O`2 zFDAbf0?`;r5S`7y2f*v$HGr*xdG?OP$IfUp&eeNucgkt`{56e_ zA|l7+?;T?DE1e}a6Xv{v7Jgqce8)Y1MIPjHoM!9$^X?Gq3>zI|b;y zX%$UuC+qJu-tzjL%8^FNF^-=!NmjcI5k}FUStpul;z(3D_NOt+#xVlM=d#>K9=U<~ zPe$F1Q8&YnOJX;_79;EZWvewmXKHsbjGy7jvBdW~kv!SiEZC#5U`jVEHGxVKN%*nU zYT_jk>Vq#66sJ?m+MDPIWo7gy-v)H>8U}vEz|S_NX z{QTODOSc@8-|CHNuyZ0usc|oTf$p@bgGHQR{Mvq^GXAyAdeEK23~+Cnci(Vr1EVeh z>NbpeIiueF+vnBbl*v2bl+JL<7Jm{rtTh5%X=e+kOqPdJRzxzVXBdteUrKv;>N zIi)xQA7o(Ws{z40&wBXvdU=HW+wNe*Ms!R+p`tEAHc_rtWCDK%i#8LmaM9eWwRY@d zK_=Nt2z;Hnw!8#9K93RK2;$FffM@(Q5RV@K@iQP^^^1r<6JW&48S!vN+=daCXT*D$ zO?*JScL}Vaxe=!N%!u2AxI63L$nM^-!Qom(xT9t%+))tjC=XLN4oJfm?oeY&2J@b3 za)(7LyG7!l%wjCy7ekI@Uyvug$$(5*J=PSH(=t+T7)u*^%k1ee3e&! zQ1I>FUDU0=F2Etcudeoc#H##QqMfbcs`8sa25nNI1i)9 z5Ir&q^XG?*U<`BfAB^BS5PTQ{N3vqzG7FCORxdiSO?a;%iq-N~E-<=5(z zxN<8qW(cZPiZtX4^gr2G6fgba;f*Fqr4HR&m!le=Iqv$pSo4=0ySG~Zb+NX8~YPigDE>&trgy4W#7Xqw6)4bd5($n6X8C4e=TX*t~15}gUKF9V-tV1)$^ z?~iLrFLU@67QlBQ>}Kau@Nqv<|Jvwyh?~j5uisQeMQ5t4YMc&n`(9jny`ib^4r{6c zS)xxtmiv8|rw{c#Wnd=ctMEox+1^zFSo{bI}G#7wEhD@Ow+rK^-BvmsK z8%rI<#77Fco$lT=3c7SCN2|1SeC(_7>9^z#ikrNf({z%f`f$Zg!KXZO-wHG`y)z|J z?lvarcg(^#^-!gckkpi=9IJ~4w&%^I08ZD-_de&}a7?|0tGwg2>3=jV!BeVns# z$x+;zRKZ!aveHproiib^)yMMYm>vQe42@Ce9PctEWL3lGgZ$UV=wIh`KjB*|^mn$- zrE2fiARW3jo=ey*uEG)CWe4@L6t|v`B%ojS3^YvTeLY2}clfpYJ%xEPye=~%yl1=f z;W9VEJGFki3)hbbL0~IQity%mHm+!;_0!;5p+#9TuXz=U*0~9Uc=NZ-R_9#atBMPk zI;T@!XdCap8nz_$9QtZ2*F-u)ku#yV>NE-5dTp%VRH0t6baSCg0$lE6idIhcoPZ0_ ztyGvp92@t!a2<~F;3!%-R+CyNm07m&&Zu$R&lMv1Uhp-kCJ)u(YjA;P8Q!E>A4y$y zu$nlYXl0sll4iaC@E-Jgowed)q%`N_=O-f3&K&K`(asYV=@UUaFIYs2wG%|UIn0zJ z^Ay|04wDF6BZR7B^^O`nI80Z!2S6>EK;~F>h9ulQopgNnw85=6t^dGstr|VAW%A?w z3=%r@E~MVf`XDMx9-!y-^g-X$VU2{iKAyQxwiFbt8X52KE9q0BaPo3hyEKOyUJ;iJ zhniR4vO0@+E>13snEG^$)It5>!)GssI`NuL{>NMGbljOwS>bC8*Bq&ln{RG%Yh7|U>a*-@cRdoGm9ccDH1`>|oac@l`+Ve{Pe?r|wJ3Ye%t>gU=8N_ktI<@8o9zGj5UyYu_b&4O@{#Q&+0*Kizd1eHuOheG_wHN! z;-)>{x10Pt8XTf%_^s&i@{w&N*$xcD9T)-(<0UW*Zvf-%a--$@L>_MUzhK546I6HG zX;-YUU^<@xDW>b}r{Z{e_@U7bZ6j_g;$E6vR-b%Oq(mxLJKo0$a+t>7o0!2@5`X{R zL!ZfvbdH0`Q$EU;CgfLllRtg8VUljKnoV*XU~;%Z4q1kr2RV|M93{*Bq?-1GI+*m1 zq@)T9#^xNWPi`A=bdr+m9Wl{>wjx$Hww7e;G8&GcVajNff`)S_bZJ?>g=hpgnEX=x z^aM1_fV?CY^Fn$f<^{biif>gvB|*b`!KCb`c-(d~WnYD*toGvj`;e{?H#ZrgG&>)v za5Gi1p~_sQ${MTPB*tD)wsV0P;t-?eHN*&DsuVAmm1?TF4l$GyA%;Cec9)VnmMWPa zBJ->9#SMc%C%f$`a>qr&O#CmD)CMx-1PJ;86PV-iEmm(;m7^eC;o@BFCOZR$YGYB7DXH}6&2MfxAfN^URr>g;<%a(Zk5;Ld zFPq$K!DfK$)n8@);oR+3PDmgM2?n;}CtoYo9lt#8%n*!kjUrF;5S77CE?Wf8XXpif z`O@X_n9SL_13yK^ecxEz6SCdpSw<1{R+mQ{e(GFaxu`#b3HuTfJpr$bolnMSR|jt* zVKd0jOL{)yr}&SH*BAG6fq-ow2*6`njh9c__RAv;5~zVqwJansD|kM`qnf;=Xg znsi{XdV|;Ux|*d=%G%qm>nBXFSsG&{X^=DGW#G4QmEzBlq6hY-TWjWDTayw_|$^Xt{#j@y(w$A%D8mA^|?u9_v8-Bn7m6w zlZ56UClj;BhsVnuG&XtH*K{&5XS}t!;89JJcYIE(8gs`t?-G2fA$Kr3^`?m3Dz(z_ z&1WZ--IY5iY4R@4X_Z>t$zw5-%Ek*G^-jHMYQIYG;iR(3f=6$aZD@O7SzGp|?fQj( zb+cbS>^HA}dQj>x*9BF{pMTZ-?Re73cU`QU%sWnDC*4mG0DN2-r6eu0b&|iTp6!FPvi=lrTxXZbkd;l>8W>bW<+va6*Wqm=6Nq_4He-mD3cGf(65yeGqu|7uR{4T;+c3vkInFF?tmi!|hJ2v;3?VbhWeIZ#Sr^DnB{ml$zaMAF=4m{h_vSF< zz0LOobnRwdZ(esdYjXM}nI(08dESb@F0QyQtnBeBG>B7txUkdJQz?f18%+PM`{e4G z_&5GFF0pxKlxuvAV|qz@NqttE)3Yu0S>F|_5^3u7Phu^~gE@0b+xf0>Mi;r{mKCTp zxkPW@^IWy+{~_(o<9bfN_i-c<$r2&So)~4Tq;0H;QA5(8#a^O?RMJKnj4gXaWr#+p ztQDo~JK3_77F*3o3r35!?{%GK-kA6;4aclYwyX^PI8<+jQ{{c`K+-F0tDR+ryh_tZJv+GtpSX8Bwr z&+l7f<;R2M&c>Xf`0+_P!{%#h{oKBt(=DZ0?GKr~JHTND{LEpQrSh4o^309T-EYjk zwNXY6WJZ?>(&Y@hgvC)f3;FTk{PF6SISEE3)u|l0Sq8gUi~QO$a!cv*o+CFq#*s(Q zNmFswjGo1jHx047bh$5G;-!lNhgdw5L-bmf^5NvWuT$2wDXFewmyE;g;`9r0<9g-9 z^DS!vuTAe)6gU2Lvjg$%SM*zy_}#qUr8Xn%G`}smZU1e_MMeJkJV&$8In*OQuVZ6n zedUZtA%B%b8@u|3I0rkIK0LPH)~l#hyC6HAm9x~ltA8(RoR~N+tEN{M{GE@#CuP-` z@$Uw|jIr;7gB#aw-rBal(4?R@Dy2`{PJN`B^;M;Baor|M4|U z)=z}fISej&-0w~yaIE$Ejl6B5QM$L&VddR$$OrS59$$a3^BCu<)qrqaJ1`wz2E!mgzp**HdHAaVj%r$Efa;n zsd}prp~N}Jw)XuT z%-1P(F4+^tLB}Abx3v=|@f+r^Sv~JJXa=!gtX32&lw$RvSmP~MNJ;k7Y~{ReZT=EUZ8C5v%BC< zXMGBlfLUn%9ExL*6Tv4Xj96P~=2v=m?a5*DG||D+ffrLeWZyRq&p^6vVAp=U->n_) zHyFEQho3>tamIxYFqA8@yhHKV++;4*D~vS9WiAKhCL$u#+;>m!ms9?m1Xr|yqYEx>5DCMN=c@#@`vV|%6C^$tk^!83I#*`@#86<7?+=A zT>khtA6739Gv{1R|7Wp!{mh8BCxhLG+$pNuDMr+f;trHYQyKEKm!0wkLKe10#Or)i z^SAq#l}1B~9wyjSJxp4m|A${V^Y8cw9}_%cbaM)+O)cDgw^>f@``tqr@7kcl6&tSc zQ~Wj83QAmNq`JCwGDc`M^L=8;j_D`ZvNfhdWZ2un8mD@j2g!;z&TZvG4n;=wb8_1L1ofkz4 zHH$*!%Akxfs8ks#>5sK(Yo@)+u+B)M5~eEg26bLkc~=ncQsP~ey>ZuSY`Pp5RW5-A zm2g|7OPe19qU*5j^s7gUIc!ODxEoq;YR$DRg&Hf<%$|Q7#RbpW`;R%y67`_14b`K1 zaK7d`LcTIT3_8ap2`y{wFh4w~gC}c>IrJcDkk6?oK-X3U(0q44jQL_Q)%oZpCCo=Y zR>B}hiSu!dN?&tSlpaf=Up<_cHXLFshZrqG^x_Z|Im8V7axq9G3c`1;%23RUy{V?dY}W2=iovEJ2V*LRn;ld zPGqvHx!jLAZc(=pR(JWilU1Y2YTw7@KTR#)9Z!Xt#M`z}HzH^>5{L&bVz!GQ)!~Wd zmoAj=o;!>CD*@AX*0OPH=UyD;&il^edBlX=|wimZzXyi_^ zSGs(Z10Qu!wqkQ`MJ)CC$6YbO&Dw_lvs_z*F5AMD+QPf@aLe2^7+uxhm@|VpDtOu- zq*~q(ng+VK7J7oFm)<4bpIS~vhFg2kJ(ey=_Yk|1xPaMn9sCNZSceR&oD4*ow&Y>sJS}$Zqh;Sr+s4H zcJb~LVhR5erRdK7vw1P%;6897W=Yr0>^gu-l|V~4tH~0^@k!a7^K6QxPo;g%(anad zkmIt9JHwmPpR5bveo3k_gC#5xRo8$dp&Fb(4NPFlaJGJ#kiGgCvEibGMxjR7U{dGA}8_MtuHGNxQ*B3B;A)r*78<6z5%D2$lUD#Lt4 zxro+_qG?eyEsEwR$OX^F^{6RlfdsQb&O81@8xhTv$hDft6+q+)5afa;e~c=oXq7~+ z)q-3!uWM(EeVQuv=^ht(2ru!t3{8UORi%s5WLOCMM0R|}6WML>*vZxt)_-iiBYgvu>3{KoB9x_t;4At$$ zycf`U3gS!zb0&g06E%Q?i^bIDqxGB#63YfTFt2KbVfjyC2ph#sYe3&tjr4>Xxld|f zUoRFziCvE_4m|Evpl$cA9i1gdB}Sz zDgg&}(2qm-3+K7aZgA7D^S^hk1Qw zI#moAVgHoa>3y_r_rARft2Ohh5zB;}hpQ*zD_2k0*N^-5a*NEuq8Z>nE5kDV$9?@# z9u+a5+2_D7bMWJZIk(F%``#OaKZlk;@~V@7WwUmKnF?zRivTpNb55JMs>WB`72s@q?PRC`a z1-4UFPYJOWQj!&NKQc@$4y_d*qcinS8-ohfM%U0-3@7Cf<|NMx-qrcX^j@1e<4cXw zpCF#+tmt~|tgJ*T;6p4;t1PTyt1RviBlr{-i{ZY)Q-!zP{J-vNlhK{iqCwORA6>h6^wPaW1@8Gs_^JmeT!{>OW@5S>?|qoGR68Af~YiZelm zpejIS!kROI%pDw2?DZA_kDXgp1%3&a`Ln~dn`9JRKdYQlI zsSJ;sGI!z=7T}3z2> zk#(hoq6<4|89k@}xUd`Kc|{bB`w#yu7a@5U%-_^yyvIQ9AvWg7MuT-#9u~~ydY!>1 z{mFEu4}pOjF=Z8|uk0_GjzrAiVGXWUSAa*ewtcx;UB_Xye!vh^bkRvgm)d@Y>ul}I z)%wPsrreRUXh>b}F|>2!4F2fBaghdjNfbE-HS)HG^9rNMd;a6RHcj9a3e*RK#{p~@ zHBlu`3dBu1Nuv#ZeUb=7AE?{Ys%Ds^)3Q{wubx0^ea4s<7mF(O=YytE>1;UV1_Y znPg&k3YUrwtotj5tj@w%xp94y1;c@vYV#PEXg}G`DU76Gk<@ty%0+^p>=j0u+6fKFOB~i2sj2DW>aFHB1AMPR=tgBk# zaWPLtVxGF9Lj@=T*9thWANS>Qk;|lOB)jVJ{yh3lWsHOR=52wOk&2DqBOPeaBLL`i z@dK>u$Eb~5q{?Afq}4LgFpl(=xEZ%ZC~XSG@`x+36pGfh%nu$%j!PE1{?~aGq4X%! z5^SGPJ-I*=Qqr-X^S;9GIRDrYn$#=_Uuu-Xx++&JDL8-Z8ANOLU++~Or4`=ndexn1-VoiF+!N`6lmL2!U;jf7a4VO>U@2Ej>%ODU zh>H51HEx0?bQ!AYGE|Gp5C+XKHJ9FW8StMb@#G+SLz&`$mip3#B1KRb&5IK*LxVBq zsye~OU}{n@zMORL`vZ`liGxWA#mg+xyyAaJ!c39Om}_SMHk_9 zUAJMmNWiKj6UK8X)_u;#NOO)U2hUvFo_CiJ(8q{F6DiNp<#X)#99UQHdoA$Mv@Ir6 z!>tcQI)!zH$%URZ+d`A8;Wiv1{YdkAN{QwZ)bhn+bSGn_faDUw3o))ozww^HTFse} zU7{`(`_}5?G=f^H`I4L8Hn!T+!mdl?iu&Jg3?G@OwXpZ3ci)G%`ewZU?BG_0JyT!C zbqhIw#@~-!UT-_R-AFWUSU3v(CS;Bu9lv1FwRKw(Hc#K*{e@N!2jok-EF8uk`GG%j z^PBOWvx9HSkL+K|ANfswqz!*$p!~>`%xm}&SNV|vxYPXHBIHGEfA|%>yG@lY2ZAGDIHqiz0q~d_0P|XWekc zu)D%Ag_T($i!UgdQhTh*=qM9JXEt$8(-u&jpZre(3{gPBL{gCbHAQ_B` z3}!wDvwS@VqalOY9b|#Q9GAfu$Y6?OFp3<^^4~a^gzuWyW_Ot@gL&DCgUOY__{d;P zIT)WmeSdJa{q#}>qs_sT+H>yGWH5;w%*%v=6&Q@a48~LjD23+w`@K9DM+QbyS2&;pJ1CKhnKVr2=8wH zN@2&d-iuX74N!Jna@qGcyUO1E^(Vgyo%UPEn3nI&{o*c`{XS@c?zEh1_gzAadcHS$ z|2W3<>21Tv z2NNJ~HB5v0ByM^uZaf`A#P46Yn3pbIXsv>h#*KZ+3dKiS1^59XB#!p6=kX zAv;|iw{lRwVNl^+tM*RT*Bjq4^jZ4rtpoQDX_m1oHpZrQO3R_){Yz~J_8)7nQnAZZ zF=_0h5ViE@>-%piY1Ys&vG7~#IXglO_wQ)AqTl6_SG%OQ8QXS7#gfjudbEMPABVT_%J?3C+i{O2B*$*b}sx<1nYgKgd^ROvb)K}X^&ZwA(&(14KERGdU zO^>tEsXo)j@?w%FKgY}G2!7V6J{*6!pm*ACTu1e>tlhUxb&O)cz_i^q6`GxQoh$EA zeb}bL^o+5QVu2x=*Rk2WKb!lZ`E1*oiTNj<#GPztvo>t{b^C~bfCZB}-;ez@z2C$K zSwBMw%nhLgTgI8~I#LuqXu*yMrvr~$e)aBSZ8`m`hT8DS4?G^Ygw(Vz9O5?x|G263 z99_#Ct)C``RCg>K@J6{|{b5C&>a%SuJ7hMi>t}z(spGlcioqlMw0Y~h)_MJqYNe2_ zF@@1sy}HGPp@}UT4}P-3_160SrJ1eF{#2_A`($Nx6s(FD@WXQDdUU_$PUOrpj-|cL}uXTNs&Ll?IeJJ8M%;sR-AD`LpG-2>dWvu(D z^B9NQ=9-ByA#NN;?tvXGhdT|=+%(fOsO8YfS1K`%RfGOi_xot{t8v!>A7;dqPKcdc z{ZP@gul;%5iI!vIypP%R4@e2g=#ZGxf}e*@M*FYIYsRL!wpAaXcp|xVWZyUH18O7U zx2yLXvps%m+Ebk;mAz{tY!b8|uQ=qYziRWj^NXCk;=c7Av)v}aFtV?k)|n)u?C+g4 zZ=HA^X0Hfi(1)X|zeSFjW)xxLcVhRRg@3C3wf#f3@09Z^4&9x4 z!XV0OXIV?fz}T4wZ=Xot|V)(YFtGcew%y8|DbNN&gB z-+Q9-MAxEHKQ`wJn&T3FjGdg;_tlF-u0uLv{K+FC`<4!_KTy0czPLX2n2)X6@bH0J z@dqBiU-PZuzSli7{TDxC``SOOWYh)66!WjI&sabBMvZ%6 zc=XP|z`CEM)vtkR2 z_Smd4Q%o7w=gzl%=f1ANpGOWI`KptO1y4-jM)&iWij5xV;XH1ak3V;E*^k`G+p&{< zWurgjMlV}{W;czWEOJ3Bh0 zcK?p|Yn*awouWgY>Ub;;R4&6~O6r%E2L~!YJeH_2y7r3xu@yg6YqXoT zv$FS?iHWMm)3raJ@M&GAvcdZN_`lRHm~H(Mbv-ucO@(1Mv+V7MZQg&MeAmBIw5!FH zf_c?5jU%jfmMpxTQ55%X;cwgD4Sx6TPqn3C+EB03mPg)=&bErNi81}{(=w~`yU{$; z_*bi)l{2YdR!~Np(p6(7=8R0uO89vF-GTI2OYgUze}H|-Dl$tMteEx2bQ-SueJra? zs9+TVRH%v;=%DwW9rWI^gPs98bbhDB zT-rtvaw$SuC`7QL2xZ(crS1^H|9f<^8vh#_i2>Q>L(fd_RQ+39idV?!4OZ7fFyJ2H(Bt6an7~_v!}1=4LsP(E zxjNy{G4g6%GeN_RK*NBUM8iYd_{h_EWHcaivcCC5Y@fROK)l(Ba zBerYibjRk&iF*BzeN%T;Y5?9c6jxiOh7|O18LJ%RF|N~f)n<*Y?J6v2=AvnxyBBtc zbq=9*j;D3*4iLE>tPK#k+Bgg-5lfV4>`RpJ07^7=BZxQ=L>fo-*_+cm0DEYbO5w%b zHm7o6dXF~$yV%8h@VU>;KJHE!(>>?<)`5A)75>b6JmtX>g+Hv5r#vVE{v~(&kpP(7 z^G70J@`$6BDc_oX_c}M@>;v96<7`6rX%|ad{aj+<{bW@}^K)@lkp__kuyK_Ne|$SS zFa4S&#MvnO4DVx^G9)Evrn1jFTkk1X6n~oh#Np9p zB?rZf4zD8Z6*Eq?vCNs+F5r<)>Y!JVheEa-*b!6eUI;kp#cf{+)SSDJALmd&f3`Z@ z*85_$ch=%>*3JGN3(ffQ_yy)YNKmnXORoUWX?FUKu$VuLI>2f1+JR*XZRbHsR> zu#FLqTaIkk1d5*GqqN4VOlpzd-~P&U`XooEO%Ca%P!Z;-c&jfKX*)1+feBrdLu;`p zqaVYAu>=GTuDF9CcBxjwBG{-z{S$slg;-IqWSmz zPVa4>+kTBp?@P4^+lzJo;q>%Ly!F7}#0M^6N}Maf5i|| zlc5(SYJYDr`F7}PiNK))5UQd?{qIel*#?8AD9>;kKW5@pkC~6uuiECO4$_%?e%haE zZ8DdR)oX3%cJ@e2?`(ruoBnlO0Vvs@_W?2Xex3zDnJa*zLO{s{ptuX5R1#212`K#t zD8>RPBLOJ7fH&_mEA3#8#@Jps2!KoTik`bS#J?hHAg-8)G<8A9ZA8e|xzLtC*tjWI z0{yIaPr35f!2W-g-HI=Nw)Ad2?9muYBUqHO=IP(9PWbeW{W2r&0c@s!holUfIL-Tn z#Ep-1o|x{jE6~Yq|8Az^l=IjAQv0jd*h+o7E?SnWdg3}UcC!B{j`3CpfS%6}7~={; zx~BE2p0PP?AfWaxAf`_z3aAbIj~Zv1VsBawTNV4ns?)NFfI~|r?JjwGqIh4RYt&d{ z%TG36e;OHKA3f1D1%EEjv0M-xQM~{0`|tK2FD%BNkF7e@J~Jr*YN|haSYi~h&~dWS z#8}HGj)cT5ON+k+C_9cbnpkX8F{AS?d#6dpN%(W+U7az}A$CBf?^AO8O!4P*tH(8J z>Da6w~>2N&P4Rr@;!j3xC{PO{hWXIyIT4SJf-S!ek1;j{xa)%Y@q@$GiXO; z!;9F$@wmxMQOf{W-EU7-|LyP9g47yXjkk#j+zNENrBiMh5NFyvIP{H8sU;vX`UoMi za+E-%^Pg%Lg7yhSdI>~E#R4J~&m>*=SUvH`yVSd@yJ9(}ayc&j#N`-*7ET4L>_P<#oEAH|N`pRE?LHeno$QRG zHZirPRJi)fR5)|&fqH;;;^2k@e~!kLsBK5c3lh}!1>~6nFlW~8{&Td|`Apztqu`|$ z@v;GUS?_WAw;h>w>2L1Z)ju^Vefy)U?&-h(0JhEa{_Pjr&$ZWvvkLItLq=NOxwTHV~l>92H^1QMl?s=2po{K*)De2 zvY#1@JcAv58lRdpA?}q1pAd#81Pc1q)6CW$gqc0e<_n|gO8$t@u~qYc0oInWmGi{x zc7RpeAZB+y&F(dt-R3mA7Gics!0e8q+3guhv&+D71+#2#f1W|m=RIPT(a4BZ;l<__L-g$m&0Y=G zw;OfT(sw`uAkS-Y84%B_3p&_+kPh#pgCRPoxYz$-6_I!+{^PTyPtOy~4$d_ntoY&$ z!OeRbK8MNYVt!UZd)^LyHhjy^+t8kOUBFLA!0!M?^+2#ek%OKKlbI*bF;}2t8=Bpu zS(DAVfR4Q1cR0O|9Gr0XV|25Z9mOlLf>-j%{A03{hnI2z zOE=8F>z6%h`c>ng7%*|2@8^qGGQ4Um9r&_k@IqFt4PQSbRg37;0Q9-vtlA9_Cm~Pb>--tviE8xH_?1r znzyt09h#$lzOVOXa7mn>ty#yh_Xga#Wr^QBWKX~|Q6vp86RKe~gn$>d9gDwu0|3vt z>(?!l6|=^HMKA%DZ1Ph6J~3*I)f=xZyH>)KTOi*1+IG!^R9AI1#Ctw{5bx;?{cQB}@prJB(>8E7FZ)Yv zX;MFWziY(%Jq+)6C%xZ;o9O)>fGOw-V>4#9-w*_Rk#Xq{fN!}Mh;PQLiEqXb^wO5v z*Kum;2MK`bh@JENr9-WBs6~gswRQz3p6*dyIatqo*Oxx<$W_16BkxC#ymAmc@>>WR zXOyn6`fzNfKke6Uv0rMmU#7HQ-629;^=ya`S8W6liYbEsI*OnU5uA6@#0ui+(Zr6U ziH#Q%I|(Ls%(vGozoj>xdzJyXJGu1B=i}X{B^DfE1XyEG+W)lm1K;~DE9-T?F#@b| z(f%#aHNyiKsrm;oGH9}3WIteJ*73*}UZZZ+?O(asYIjWib-+yY6NZF!TO}kc2Fx^s zNJtniAz|hSz|0E?2{V6ZNLZbKNGx+CL&9KdhJ=mtK<-#D=4+V1m@f-kJQyKkY+(|8 z!v<1AzS1nz5V(q^jYlpudIxKqt-Xxeoe-@tyTTavWv7f1pzJ- z5L&&^l<06fovjtxSg41@Lhn9g8-{>wFeI*Y?TwFaW6}C6ab@m)F5^Vtin``xAf0wE zb&biuI_+L*um!mbdw&A~@p3n{>m(iRebly3H;9InK*JPOx?eBD+5QQEuY0hBhwTez zIsy~lA{)&%aBfsb{bSP=@{lnL%OP{i$I(HUpRDu4YW*)fQ^d}HPNckt6g4e(COEL4Xjk88GcGitcqbsFwO921)9iaXl_4>OlcMv z!}zPJAm02>(H~UpLx1pR;NwPd7d`1Nh9PwHk709|gpMv~zEu%@H2cJ(g%_-oKQ8)n z1;W5yS&RasE;9&>asdr$DLm;N;YoGSA?mJlxG5dn(V_e6@6#hkneMjBKJoOpGvYIU z14esM*Wy3!2`L7k`S+5~S^TUHRQB(~&yLsSGql+Mw{@x)mFs4lF}|Q&Hv*#y2Wx6m zq0B)iA^h{-%RwgzY1#wLFN8E5Bh4V;{KxmnylredXK%K7bI*QsjKU6LsxMsF;T!XZ zUt3Of0;c-)tlJhdo~3I7AiuT;K$iXRUPs3@|5uXODNvrOX7o&MrKa|9J745S&7_8_pB49tDm5Fl2R!>E(@j#=1*FYm}#IUx7*1PiV;EHJo%%Ss< zwFAya^-17(F=O0n6XLiYW+Ct~o6p_`KnC0aK;FCYFF$J6;hg=hfOJ=Y?lOEih2@EZR( zY_UGxAdL}V*k5XG8ZE~R$~WFNbJ@sEGvLYRz;ky)^lH~7 z%Yva{7RH_%MQhcbqIe^+ES&(!<~Y+@U4)=MpoVP{G-$2b;-l{9O@8hd*5n7zaaA8j zlHv3z0Hb>M>n4ZwOQ4kK~jtJoz&p?FL5fQwbVu8&D7 zcG><)iJFzm@TO^1(7el>WuEdZNCFxr1Z}hE&0VC_<|cbK7Av+ zLfe9V@G7@s9B-!I&ZAB}ClfRLAZz4uLWr64ZeuQ@UHB(XBQ*L5PJXLp3HdQ*i^H4;J<^u_x% ziXc8MRw^g84i5cY=Skv(*xTRkB3?Ahp0zIXO2vuf!9ctC>G`{>XU^4ZXmu?%r^l+z z_DPn0)^BaxhJs>^c3lS8ywo0O;+?Mhc!mAq^j=V=?^GtYAE`_mpiCO{T#|=#MGj&` z+^0|zmvH&qtUyL6N^tmkmjs9Ii=kT2MYRk>wUVKG?zgCW?pcJxGWZf@+ogk*ba+Vi z;VRgN6Sp16K6JUD0kz8WgI2kz67X_&!`X7Avt_W2!C~cbo0v3J;$!JO28U0ORsrFw7h8`5 zdusX$!J^HN4ZCCGN}@LREqW4T`T!93l+j^Pcj~4y;K-}%ZRe}mCJffT_Jj?5sOUE} zHKO=;P?b?02nrN|aB;P5B|KC=@HpnuOVXj?-AISd0390Mz2>;h*Og#XT^;97+Fd!N zU%@I@$Hj$Q z*Vr?`>er0hz&Gvj&X|PSPK`!$PSlL3x-;uU&1R6GNnfIm?u|%V5xpE&I0Ch;q{Bez zun!$PyhxJ%t?6hRYjyA+)&hiRwOJDQ&>-sJMqs8+bw_?~A}tV9s@1Kx%hpjeC(S<+ zPHmU!Vqq86;nil!Znxw14uTD>)S%NFgtSR)p)Z>aX$(|DQ?cLcz)qH0hiyG5m^0lpH5Gy4%hp(rQ>Ouw(^{!lA!I+uklg?-%8{DFw^1Dv=e6aE>;q7q z>v6wotlhd40C@c6TtJ`OGRB5Jl;$CmK0%Zw8T_`*sZgxQc7}?d=gcAI6QWA@#PET#b7){$YMT!weV(gLS z11^@^KI(VXw!{H};T$b6rBy>2D1I9P<}|?^fuoYz-yxpaUG>PM_U31S#ZYYQ!SDKD z>yBrTr6D`n6V7@^ZtQLS>AS08pS#eNzex_#V4u}apPsZ-CwtNk#SYfS3>fdEpMFSK zD=R>ruQL7g(R=Bq+h0YLI6$JrV-h7ELzL*SL88Qa5+$xgly~u-c;?EC5|jJFaP4K3 z=(d=KYc5!-vN#&9Q0mobwk9bln08h6b=> zc{^ywwlUDn-46+NUqO;E`)k9~8EHD=Vm$!%U86=|a~3R@ouDO8g(cCVcU6mR966sV zra%BRd4vt|6IHC21d(7bma6{#ZetCi4wyOOI8r++QcvflSmMbLT=Ie z%0fIg@Q2d+B<9HKCJ*n^oY1EZPsWk1O3n>J zpTju7iVk5VoIJb_e4)}VfHhPOBGt;ZF$u1hM zBvEhpnMA!Io$$5*w%EQNi2M*4y20i0D5l3{Jer9@D=3`rXVMaRk|dykWAwfp=bg{&j|7-FBL(<%zyjMF<*G@a+BOx^R8C|ejiMCNgtL&w3B2jYy=%)m zC4Gt~PnvX~lj65Aw}ZdT^v*LRPkGJ*(D$|LZLh1@0RnxRz?po-nx9f5%4rBeXLP== z)Y}7j#qorxFhmar+}6>VK8Hj!j(2MB01ZqYs{0(D6JW<&98PjISE0?@!yOKY2$UrzXm!#-RrUwN}l96z*ITZ=(Tf;DA zv^h6YDGZNKw{eK~V#gV`|K03W-0t5a@4GxHHCf-#GvV2%5$nG%ihuSA)imxYeUM{3 zR@7p=Uw zy}28K7fuAgN-z0wwYbw})#GVGO&*sD>r zSH_XBSKY;49T0mp8}`asOm2JHt76!zC`oDhWmvg(Xo9QQwLZOT;y5Y~`k^L)A_#t1Dm~@QHs-LDXt0jmR0~LUN zM~#ZMffJ4BUpfu6W5xktNrwtc>Y)#0aub%+BbF@bYB)5BU#?Q6-y;e20Ymk^`=UiBgD+=UAV^yWiza#8G;;OMBmbQ z;9q7F{&@@jc>w?FoA571@b41w&sd_z{9hS8Rw5L9QI6HHy`=>g%J!xfmLo_Ia5?=G zGsI!_>*=3ZQ{QTlnymDqzGaAlO@)FbHC58QK%fU)M9syj%nvM-$$ZB`nM?>=r6hSm z3&|5|qeHNi+5}6fO)!0ML!n9=9!e#RIVx!y?y!<3cm*qI3ZQU}ZwQdVQb}Vz=9pU0 zpajH*wkpR+p1MK9>%NJt`dD?k(Lw%5*IP#N0?OwTuVPW)c*YP)zFZn&F}Xvx!Ex0fO@w9<~=g^=Cwn z*MN79U6QQkw--zt4o-FdPQkqC^bU_AI_!=JvTt@zKG5hPnmkhe!VY?Tfukj)#K`fZ`N zfwf}BfTXyCTl$yIB3JPsL2GYFZbjUfV}(uJg?#?X&+SQ7+~#NF&-^UZg(Tn#_A&ui zfXq{A8N;U6q0F$EVx(n~fLlsY%7CRlT9mX*LdI3t|FvDdY)Q8{W;?sSbFGj|Bufea zUr~xER{GjYvsC)lpjmHFk-Fbr@9gx!PMZ#Y*!BKhU;L)7F4KmNte;wa0tg-6g=s@Q z3k)e8vDKy_0+)6yzjAZ~T5{7{LW z)X@Y@lpNtQgoDB3rH*E<)X@~6`t-ZM)X|tfVjWH0W7N@@KbAV0hM%O4rU6x-B~DUD z(=dtQV1+Nj!N##tM`JDFU@$9OJfx1M@n_c2)RAIs6u$KAd{iW7`ywLB`8c0taRxnZ zdV^P3h#fF(!{@+9IxkmsdjVhT0o+Rit(#S2W9Mz*J<7?z%v{%QCG{S8nVSwx{qX!+ zH%TYvplau0=`hf#(IKT9hO?sPP!^u|Rdu0c4}-c%_7FSvLfPo8-%wODFLwS`R@E4T zIK6mp*iB(heKj`(kvjEZs&L(WNfmbOiSORnxFH9esNU=5YLcZp=Sz~Y>oIgY-PG-( z>Ug5$bJR+eL_y86SD;+WezE;j5Zqgciuu&5Z@+`!CUrl@oLKT5Sks=h&TcFCu@#oA z{adq?xXxjrr0TD~Ln+3pjpAcn6Vl-gbZUDcG1KA;W5lDFAk7Cr$+0ba}%gz2d`77c7q+Y5`;V<97RjGU;~6))e(*Y<+5cX#05JeF4#&a)jcXz zatkWe5R5QUF#j&aNq`2Y4Wp z_$QrM!gQizQ#w(L=|lzeGLUqlyQC9O0~-%Er4#ei1RDBKTgC$jW3O45l^dioR~ zQReUudFrJl2l3!VueHos9mWVpO0kU+gV!wSosS9~B@EIYayRy`@*G8JkbeKwQR-awBmUN;u(}`#3 zHCjtL5fvHdVkMopie6(D(}~B~oF(bRnL`O*{Ix?NuMbe3vc1b$Xj_E{wNf$~wv5Cr%&yr5W;gJ~se*By-=|o{N zwn#d0mZTF6Fsc;sgxhn_l0Z?Nfua-Ai3_@3 zM&uqKNVpg)<=A}nq|}fkvZxtLuu>&}^T8E{V6bono@WT2r?8+VfM+n$2=@VU2BQki zLGws>sj|5aF=6Sa1wlLQX4^f8|8h%?TbK<;`tYd)g3bivXr>P*O8RgrwIK=GP<@fC zX|)Pt*A!rRfZZd#FVDP`gPr#5nYy!53BcF*3u)8Z69m3!rW2=1I`IVq#~>nSxug@# zC7p=;Nky>mrooa|_$u;D3Z!*ZK5$YAC@ytb5y#I^)VoFR$H-Npjbt|*b1a$XTe zO!qq7{q0Wdm-OR?!1DK>p! zi1@ZuQ?Y4&2Prnq+XQIaCdH<1Em&;o1~o`DJj!CzWFsjyWg$-fE-5yhCB>%6$AOR< zEaqB0SBg!Ip*f}WS#qTkN)sHnZ(jnSBz%1Uk9m8EmU+T)gAnjhWii+1RBaY>t$uwE zEc{Y&vhu~rGNTWEj{s;@%pelg7?!@l3?e;S2}^-vBo|pt<2`ugKPA;Q38qYegN1#{1+0l{(;0|K%#dOB$^Tu zD_fwKu0WzAA<>_Z7~TYlmjn|135nqXi9-m9pf}nS4JIV|2_)*nDB24oCdolSLZXI1 zqM<;d2O!a3Akjl05j7c0Jp>X<35n^1#7IJ7xNBGjS=sjyLC zNT^C)_h-p3&S!*TK|6hpkXa)U$~)TWe=2OOrNSl}6*g~|ve2=*9j)A1SUD3VR-8sN zJP5dg@IbvevR8#a&?tt(D6W1b`9x*OC&s~%d?9rlW602X0Dc0WlA-e;LsyNe{2X6t z)@5@!t3VhWTKyVC1k@gHjuO+Veo|s;An8IJAh{R~)Z7~pjl+t#GT~?>`9wwOa10%s zaLN$*#AT9C45Ig+BKbp2$tNNUQKl-N`|)!F!rHPd`P^1MBcW2}Az)GfbQoM=4o|LO zDbXU6>5)2AQkI$%OzOfJJ2w6_`It{jp5C+V$9y6yGICuebo^h9&7*ECI<@Ew(2LkU z=&h!Xs{t2$Ins$gZRt2Mp#Q`N`?xv@SdFC)w{2!TTOLXR0krsjpQftQ;_<9HeTcI! z6a2XtFPk$_cN8EQ$#8L=GbdjcYqLs`pqNL@R40=;7U5r)>Tw7MyHsCA{HHF(fJYb} z>LP4PPNRYHCz<*Zmd9-yKQ1FCenNRbvhVQB+wmvki)=5b%At!4JmGJtF|Fk4_hdHt zt#GI72$7*!{cci{+EXkhjxlbU|4*z~A&Ern;5O!Gq`)SQh=?7$Udx6@E;Qz{;&e0+ zGfeMK#W!)&H%&l}w?nIPJE8IEQUaE!sy)D)AaR=u3z5(t#9)!$wIZmNcaj zO~F%@NGh?FxalaG&D$oa#D#RzbJxR7KQ5`n?gU5{Uih|^RN_=gB@TfVN)R(EHM4FI zAw^P&{uIH7sYI!njTAGBnpq$9kN+TG-d>+wzdU`v&=7c5ZpFaROH~3x{|Mv>^&~KS zDg~!yIFDNrCv8zjlbYm#j2g(N~rKQi+97G&fLEU;rurEcpMm1s5Vw%&0=ua>$krfyB8ZcCf{ zeKn5!=GeHD2j>;s{1o(gChB9R?FwUhGH{IWq$4Fy7_}5nIg4(A%2Ct&P*hXV6ESSG z6xCFiNKs8OV#Dt(nu=Ts*@Delnxed z)ec29fhs~p3>7Lu6JgRfp(3QHW*hX)P^gHJjImPSkL62IjT`;3Jglw15~+yQ>8vQV zGRbFAO`d?Dses@mfMC89)#OW24GJ)Jm4!-&@zUWMI+!&T)mTVaSkny(bxWxCHdH8o z)R>jo2sJT^3T28a(yG})O>Ae84GxXO)V5%iXz__*)neEZp`GDL&|LfiVcj973ZTnpjQ}=}VqJCyg(u9+7)%9=o24*&$xCoku z{Nl#u1&dqRRrcc<{8u=W7}%4XX?;tAq76XNOrgd)DlW0sh@n7bTUfn}mVQ>L5l)P{ zg4_^w8TO7w>ToU*s2n!0rq}zSZ(JJ~q}3b+W}1T}jV}u}@El?Hp>YAKX6#6dHY{P) zOu++}Ck^v?2E&}JX-zmXjhT{Z3?r$E3Jl9yrxi|j;@@WL++W^*)BdSLydSuPoai1>uFbC!mbYN*Os}&Y2@t=B5n0FV9|V(-JDf~zqn*7#yqF#+=b6F5_N7ogqS0_ zL?0TuuRLpQ&TwQoE7D#P1-G-R=2T~ZB#SV5UzETwjhp069sopF!VN{5R(pmUR|z2Y z>j@yJzj&g%g!ocMyIcv!G1sdQ$a@gB=cE9IO8 z4vxeauO(+{e~6rEPX>;?<=jR4B3ti|=l*J9D|ps^7?XuPv5(7IGg;VEa*0i31^Lp2 zJgV=BZG4g2*tYPUKwuj{hc?4L&rZbY-54>6$k@V}balh&>Pn$(xVXAY=?Sa-A6xXihA*_E$bb%^N`IYdum&;%`9F#%!xG0>=cO@Lg<220KR+sI*>{)eR zU-;`~EL<^Qag#lZn>-yb&(Ec}sf5K%?u4TaTn5j6#KUdVCWpNI|9f`if5#5{2?C=0 zBIIS$vBS3XhZ2E^pXAu#YdLm^+Kb+ma_q2-#|}q>XWn$_pIVy0%{+Bc2HL6mFQH58 z8T93%6rf_H^7nD6u1azWgT*t>l09rcnDps9V4@bzAlPYYO=0#>3x^Q=N0ZsHkTZMz zVX~&vWNA(#dpaB@>z16^>q(P!3p^HzlTipi#QMGIv^bl++N20ZNVZT}{BZba7h_R| zx;G^DD}zI4as&gVLs#hlFYRJ+1swH=FZM7=Rx@~Vq$+?mC~YlmkS>oMcBJF(Ajb~F zVJ9!iu|r)sc6bj_p`#o-bdqC-PCRy~PZ3^-2ty%)H$`xeV}~lVx*|enieLy4^8a`2 zFs13(;cFf{%oVyczvDZyWpkft|9XbjsR>`r$bRIiYZ8~;n)^zO9jK>Z) z3SDZ}bnI|CpvJuE*x?GHORahA&{F79YdLlpz+;D55(!4jvBPLYHnr(=ot)&@AzpNG z?yPvVvRm|6C3k~PZxYObPBq?hk@Essz$Oq>X#zno7Axz!3J9h&B@5xUmiS7tFvCJX zFc2dP{*jfX72^d2wHQ4bpfaYP(XZwkGOs*RTWbD0ju6_&Df?(SWnX&;p`jjXZUW*0 z+sHXYI3S6c$T{L1qKbru9yqGsupMOfn1(2j*&`Z2OjcSDL4xF%x-$^ONzUx;rPEb_ zv|O+p(^n;eG+^!Pd1lATq=9U^cCSX9tEh64Y@s=`g~K!!j~(o7F`XKgebj{qeI^0* z40=suaA?qdA~|{kWDrwc4PqVhL<6mfl0)o@_-^iYsbijXRO*=ZfsF=7rH;9Dkkm0l z6MZwLpF`=EL1WW5s9R1!&9%Ml>z$QtfU?D0&?s_M!SBCUQBUQC?ni2vsINzrD@a zWp^XqX8+VC6MPrXKPDXLJw8Eq8BFj>Nf~|+6Fdx0ydm-86b@(zO|Y_#8ECME3h&g*Xfq{3l^nNZeND0$Li9D^}im}vZ6#z+G#Wp~p`*LF4 zG{#b|5h9c>Ar!toL?|4}W(l8ge-}nF{=2XR9nz%WG))Rl(}0a>N?<&-r&YZdEOdnOS-s~LyiRTV02 zaK4)Fp-IJ2hKseRNIh2Aj#z1edhsvl^sqL)BmX}XUXuh4HdG)ybokxl!TdU1#;~A1XTtvsn2D)H$UXq7B z$YK43(EQLp$-|!{c{m%;b4ZehS&}?N5@*v_Ngmd4WpHq$<%&K`9;UPMv|<5PMpu%D zPLe!yV)Ae$vxAP3JlqS2Pm<(eHoXu>CJ*OGvm_6{q1oeq$-{!C9N=Kr^jB$>d~jf4pT`Uo&|Pf(POVPA$I5ii83U4_ydiVBi-Et zG*+`Ru1ayK6Dt?=#aMYuX#-vyu&O{_5>g;92`NB0U!^G>9HfIOJD_ytM-Uq3wr1V2Z@F(x2SDHGz`RBMfSKxBUxB~h%{D)aHM)b!=Q;gX%P&>#uXlY?NFj& z0aG=VIQdqpN{Q+x6VR<8k+~!f+ft%TkYWx0OCDx6B@gSEJTwAV;^Nvf6S zl4noG0YvYT$0zwxnp~zxl2L2pZ452hTNMDU$*!t{n&dKla7uxWq9zFq#f3OCCc*>{gD{SoxWu_5LXAlD?9hEbPfxx#iLw*@Mr}43*2V0@0 z=2Eo_Qj5{93Kr;AJyV0>W8q^-EN<93i5WwKJ;2WSSc&Y|+}u%QWC(+;Y}T+>?R!96<}$dO&k!?4(Ii!oX=)ejhhO{ ziDhy?agLA^2Ea>i9-@5fjUmRp{RZrQLF{%@;C3*;81ps}8@Evcau+@}l+S>N_1(Mx z{6i;2EB@d6Y39oNX;Nb?~p#m6F4+5sgr8+-5o#xNeh=!Ili<)(iD(Lw-m zGy(Cb0OBnIVlM*X3IW7-1Vn29V$pR0L`x1q8-VEb4NT%8Px)Koc*jc z%W?K%G-v$$f3KuT-z14090VDr*X7H0HGQW^php94U}@~yvbZ!!ijH~uLPHK)7;ht+uH zrGsLF5nnCPfHYZ-o*ZuJLfhp8x4r%*-Sz@;+ga;dF3n=v%#qKpKk;vPST|C_LnnlX z)#oKCsKFtWV+eKAc}TymGqphv+Rz|?*}yk6R3`y28@uqWG(|I3|1@@n?y+ZlDciUG z3wm`-oO6^(!X7wupK)jZ0=%YejvPXac#JP<_AhY67hBk4&J%o*-7OKRoK$^c;_D4~ z_nH7oDM`eGc+rhd5Vv&>ecb18?~~=dG(s_!pq?goaXTC-j6C^i%m(BFt!#ams#!Pu z8Q;YgvQRwsU!jN&tJzH_^>()$nkz&~tJF2d(~0-d8c!#l)J2LmkS|te8Oln>Sk6YU zo1#uA{8q#ajv4G#E$!1Bb8=fH@YQ{rv3V$}2KTrs02$kZ&yC;A6JWMC#=~4~WFTm; zm5~Qefc0Y_qJbzfHfIpb(_`Y~Hl7G~7bY`Gd?EQluove_BwrXvY&0Z^ z@;jRig+yV+&B6cW3y(MD3lB2l^OAhwT*(){Mh)MKxsoq@9U=Kb13+N@KFJsQNWL(I z`NH=93W#&Rn)3V0gGU)1}lW)G=(``hqW3h$u_Bg3I*+``bO$!HljQRXm||@WqOFzyGaPC zcN0jGcT`?>bW~n;w2&R-c)rPY>3|e%US}}vW4ieDm3*N!^Mxa*K9Q0yjAg!1lF?R@ zFB}Q9jFNnzv*Zg=hP5h7@`YKFFU(@TFq-h!mir_Peq3c=N~9~yX(vcDl_I2x_JPD$ zn$*q9C*OB>l1;tSr893%&0crPZovKI!NKo8u7A~P{iT8Ple23w*SK9>u5i^cd|2)z zd6{+pesL*1hGXvc2~Hey^!34i+b@dl~IK zbzPpilFj!EU$)}^3)iK$-x~3`?T5=3YJaFKo~YSP|K02lm$yA08Dyz6=|S}eqjjgx z1}-i;{KtWeyZirIw)H@USy8%QdUJzf!zt^|pHL{OU*dNY|C`vOMnOILb8geEx3p5L zw-yXla^Dv9*}viP4d=Rs{a^7v5JUMt5F1XJEUX^WaGQOc<=-UUk}j6~zk|UaRqX?A zMsK@txQD};AhV)ztMBXGw15A~qg!C+54Rq+KAk!Emitee>b;G8mW})5G39i9)@0l4 z8w-NxT9${L&Ww-oz4Efa?n&CbPg;W$$`|~8R%^#O&~_x`Qht+sf|8uhL9_x5io zDbYN$bY*a{oyYrj9cohE8x_}IEkAbKwv8A5LA&`~ukH6nz4vYSd(xyo>+HT9`Wp16 zT)LQlxV`Pon8uQATOZYA;+uw>FQ4H$&S>Sb)Q8#mw_8VQ49GGnSMQ>OsJjR-p<@GIn_A99fd# z$^K5)Q`Dx9bUJsXaP0xTBDvRt_nHPwJ>Aiz$W(*Bzm5GJbLV+pzVBbNudi#-CHY!Q z9_t~GHLUz{+h$B3oo^naUHA3!{;|$pLG71xHT|L=r%!&iZeddIKgay><`2bHnmx^5 zG*jHL=g1Ln%`ugCmCJvLk5gWrI^Xa2-Tj=e4cVx>pmV<|zsL7z|Nk2M@_?SQ@NY_) z7KKXMWH*Y6RF;+@#8@Jeqz$1=S}ZNJDUm^%#+1+^TSiid(!Pu`io&S07b??^iq_xr zd762D?|<+6&+UHiIrp6BoO}D;=X>sFiPUci88WvU6>s$6#K!3E=4UZy?Db}=AMU$T z5N2ri)m2Z8_st}%R2(Z}f}A0Jp}DyC}rSS9=_yVSc>bt_sAUw2O@yLg=P z!k*P0MTP}6V}g&AmtU@5AgSyrrrS8d*7?SrH#5jy*`fRUVy_7f-OcxsHy>Vn6CK<` z2aBCr+oYAw!9Ur>-!AhzrHzW7V^;;9C;RB75v>>1R|Ia!uMz2u*iuj<6nvzjJgt6# zv9hP+(8c<*CMDwiMJ{{EhFCMtoIHn%#qG+3goZ9GYWiEq(O>MSlU2#hlq*edgd9(b z9rdAVz8hSZTa`>oxguK%yW*pptxC4i2R_OC0-bbR?C3tLl1C|5F3?GVVn>fym3(tq zo^VTSsexK^sO$2|cmCFPEdxVO?Q>0=%t-;Q5IySOk1+KkBh40{Yu_n#{0{7KaKa(c;A!v zJ$b*M_xpK&Ebouy{XpIie`TV_m~7ZcWV`)bA4G6frIUZP#o_Ph2priQvY{$ zrs<_n9B*)i;&{epQBoXt-Uaz{3n-3zc(z`9^Ouxkb5o>A$?c@I+Fw4mmlt$udM8Lr z>%Q(S(6>Gy^HZqL#Kz&}JL;O{d`Z3hPRUsVQE^4RcWD*BSBqyFi}n#)}m{QT&FXL?F{Zd^l4cJ@onq1h`>|1RgNFnRIO{Mrv| zLuRE`_HrG=DCs{mhZbnKd^zhY8Zv#4>3|~YWCg4VS@_O|yGr(&`>Lv~mz$Ykb2>?G zSPoTuPpk>KuQDWoUVT?wUvsf5>qfTeV{}|wK4)?F0qu5?joy}TcmQ!|DP=PPx_SUX z>xfWi`5XAKd8YKf_EKHMVDWxki1xcMgjS_OA)CHjio=y0&LcjoW_OJH(NpW`ZXF<5twOzoS=^~V-vsNGKURB=}JI|M9bczunzjF^z{xu~vOIKTJ;{iVt|9Aad1+>T~9rYMCnY?hwa_j zS3b3B7NwSD=`B|G+WP&#c;Bz$i~3{Gj!(FR&Hn0^+9^@8ndPlUU-PadDPQE>oz&{& zAZm4oI9k1jR`dB_Fb)df;4e5hJ2X!x|BmNi<@wLKb|-R;y8?@Uco2OFja(?HKNC+S z>l#m}Yxmz6sNYzvlz(v1I7!62M2E+seiDdUgtA{uhmuey7$&OCQsIa`b{npv)SKc@r|aYb}1Je z$9Wd$q7oBQJ_TJ!pbNJ@(S;Pch+J2{Z+OV(!oO3W;b8ss&Ze)`1NE9Et?tEW(zChq zNomGVo8D)-wu9C~o!_^`e!xU!+@t7PxfdJs@|r*63h(g6XH7(}c#J;RWgql-m6a8J zQC447dT1(N*W=vWw54A6ToZizOVT@^?DY-Djg!X(6Agc)Tnh1m!)H2=cy0&*~FZ*A3s5c0Z?c&1)wnxbAr0TIvyRXjnTb!PUOGlFv0- za=67M-q5!8Bc(CZ+&`A2xOykkxuv~-Iw(zElBQ!#LG(UxP?GN(!np<-?Q&ba2d|)c zU2Z-P%^Qp~|B|b4^9Ac-=5}{WeK4mSYw$W(zkz68b9E_><}Fv3MKn!_W^l!lMKPH^ zNWfO?MJR*6Ar$ojgyK01p(NxZl!rJm%Nl7)Z71b0zv{T!SEc$CD$6fuNv4+0Mr2SA z_Ra3xsx{`PR=KxT_sy0Dvqm3_;rV9D>`MwOm*dK0YjXSnIm=k+!&K%Q`Ooy#YIwt% zNS|C{hD0A1!%;<+y?OfYkGYk*n;c%r{cW625Nyi4$RMTq6HNAs-C>5(5BszM@|W-95G->>47L5pcW67AxrmnB5w|}JPqe+{33Nx}3fa$SmBSkvZgthK zV5by2j=fuGIMMG4Y|HJ`Zrup$|i)v*sC+}9RUAM%RuWOIh4-^ zn~wY8*QiTASMrL%xL%~fdBy1>Io4EblGkyCJv%S4Z|DY??5z8ptZR>}6tA|p&%=UM zrX{R0En!HrhpjR{VCo;iDsvlKWvZg%&=K>ig)qO8AuAgfQ*5;0iv-hG&ru zpkVS`&h~BaBRrPDgVG)cYeQVD6iIBnHi;c7UQV-S+c?(q`0>3yYxw7=WVi6x=L3lcJ4?@ARBj(9ap~IxnX)6U z_v(zo{LQoyUx*1C+-_K^K6#+|bW8eJ7GA8Wlbik3oCCAtz&0*f ze8Xu;nS$b?&!3;=%yljNR#SK7qRl2cX&|p5*Tlu7`ru}6^a(e5;V1NFvz;3?=YkJh zU`7Q`cG;P2{X#J(+(yhaEz~GqbP@b@l(-*0QiuJQM zJS|yL)jDU?p_Ezep0`fVsgm#2n>pU;O#hUL-z67#ONs<6o7iJ0JvB{pr@@~S+J7vU zJP?q!F5vd9!SO~ZbNJW>9P6iAiuFSQblBs{`lr+BQ^RtDX?YW-yb2JH%**o;&+z>6qr%xxK3Q z*B?Ceb{ec4eP4$|e9j@NBJ!Gzh}@kISMy0|GuH?f`1M@!h2X+hw zh#P%fF17Hmgh8K3wxZ8znu~~zCXRa@;{K|InHmU7RK7auZ3j<=5hi26e7Z)h!2r*c zFHea97dmsH+3ejD`ln4?uyfM4LBmi?&h5c5J0yZ;7fsLdwZ{~Vzw{?A>`lZT^ESZz zeXrzmDY{@WtI$BwdJJPLS}a+L0aVcCS-gTnw>O*JSz}PtG-vnX+<{BK#vHQmpj)ST zJm%e|0Fjr>Ma+lK;ksJUn5Cz-T*9TR#`t&oVf@=P(CQ?jiOcJOWyqwDi~Yr z@ygQg@(erO#|P`a$QfT$brE}iHg>B-g#No(RBPgrceA)HlS4vICnCCD@hKM{3nZ_8 z;qeyTr&n3}RZg`__d+k$JMU&YhG<&fLt_bx%<9~p$|YDLFtdxD3uE=IA4-RBQcln= zI~&v8^$)id^jN^K<((FHvi*?I$ zNkk9Mi_CV|d#4{j*EPHEW|#DNyylqRTKZ83joiT*?qEK5u$4Qo;0_$QgJkZYk~?tb z4%|mN;30I3ba03}*psW8m^I%eD%xtD-vVEYMqPunP`ij2yL3-3zNR?2OJ_sT=LdHD zF^)bC*GDzkZRd}kxp5J$>BeOBrPN^&wZKcsn6E^Cs9;`M*ANG~8jG~bn=nYph|cY< zF{4}$h4*$H+B;XR&PeZ+@|ZKrIzHqirhFFG-<{j?=Hr8(zc!UTO`-Q8XU;106$TpR zJ4$~&W3)2gaT5Jmo$ok>{;bM(oIro5Oz!KM0xFZCKUAhje?l9Coo5thm2?d&Dle(M z>6hh^8=xZ};e1~;dYfoPc9F@osGsKA-*%6(oNIq=UR%@eKQ33W+h-8FRkUK}y8b2c zCM7q`D~dmc`fC@y@_BJfI_XGQ&!NTu9YJk}_x^fu(u+Fg98`!;iQnGlFXO;iB}x2`dd$# zl;rqRiE6I@qcfsMKLjLy$yzo__wC?tvFVNM&v!ai*1V6?^P5(@v&=(4=h-NOvZDez zFX+z^0iD0-&jrEajJx9xJW$Z}n-=2yWz5Mtr!UiPT*F@D9ZzqkJdv7wU&V=**UwtZ zBp(qloL<{5B5p3@?jc~f^+{w@_OGS~F3i!`ZCYg|Q6-Po~(x(#S6_$b=4MO$4SOI%J`%NSGZ(+xhN(3tw%`s6hi zp5=2aB*YU`qp0zfJ~imax)c4#qMu!1sFD5?YFPK628VCmjT&V?( zLx~b~61I?W81ZPn7}kTICSA-BCe3TSSg6vG_-5 z09La@{zy#+;5GXRmWjn3NMrjc5fd07BUr~I^3nZ1yY|1I5(fNJB8%$O`F4tbX-3F1Etl&!2WSlGnYtZ;igu0&(XIY+hUM`CnKxd$?+6l$i(9h01p zoQ~$?)E|AFK=l(yPFK;M#Uz@Hc5`tgr`7aZ=LbpTw%z3RI!bHLsD`Wy-9sVf7H~}c z0y9!ibm)!qU{>Dy1>UdQ$xc^PgKR^|`kac7`SFi3g#h~9G8xk-K{>K;AXQHmr|Ru; zQ>e3n?LMR8GaVwCe8$hdjwYrQY9U2Z^tov z3Uo$PLq+J|1|s!orrbXdskAwlCkkoJs!RJ*b(su!@FIlh3>(AzhBRsL8{GC0S0HRO z_zi?|Cq$(kp%gxW-*89>kQN!jteA^{-*6Z1e~(EHQzK6P+g?{IcP+s=ad*$$Ct^;8 z7CtgE|KCiF0-qW z4qTP0;HvbTQ7!)|4N4VlWmHQ%pcBbJ+FOi>rPWBVFjocv5tfaDe6tc%u-qZ6ZO6h~ z{|j>$hA@{qfPGZ}_UQo<+2BdM9@BcF@Vshw1hC5+FqJC8BDS$GNjrlFhX@sBN3X)S zbdJKSZba5 zbA?4*fzYt21qWLS{@EWTIj|bM3(7IF;skpix&VQa)Iz{8A<`fU?bi z@R`LZplss-E=VTg!+~Yso20Xl`9^|~vX5M{Y+!} zdoN=@!Guu$m1V3*E}LYm2srtI-C=BjR?{bX-{9|fU0;mX^+2}w5VMYCtRN%W24Y>p zh)$XgQL9{Uf3hHeO4d7;v0?_YFF`DNjTp)~hoPKA)H&=+s00-u-w#0K`4aA>*ByYn zEkijhrENfnl%XdqW5s-S1A-6?vjyQWbkpWv{`2PVsplDxestmuqGxFlCZW<}Vj1w~ zyC)VCA*+f|gpc0Nyi0*zGHw8AUx-Nig=@j$e+YnmJfYehiHS}49Cl7TM{u3Ywf_gm zV!)CLJp@x}*Z75%vW@V~LLMfM+jU0{$l?G=W;|}!<^zoa0IP|C6&SOYASve>!^LI* zA|(rNhpXoa+u|jv#t=`SRP<(#sB8a1kfd#(9aP{XeIZXE*2op%FIQ+Gg}Ret+T(xH z2p(NAgqul`T?ZTJe|s!bgUFpM!v8qkTM|qS+Jt}gK>7z#(*LDKxeU7m5XWxVKM8x7>x?sLElaM#Y z|4ODw6Nzs_h#SPS*KK0)?1{|tBd148^$jeZEk{+N;q`bhLyCF#!L-YXVl?e)ry+Rq5ZIp6 zlZLR7nWfJ7@96=7{{sGdK4L^|gjP)(zOMc`^YX7H-M;Rt^ZXvH@RQ7jSFs z>1#h54#A26a0os=$J^#KkXKx{WdCGyMv5_rFT+3=cH!JNKaQoc&^#t>1Ts zz*KqZZRzmD!gKjWbe=6-e-E@??^x$lmEL)0xVK}5Lh&*WOL$?kslA5)tucAP)V^>n zr5bv3=t-~IO)GSwE-JdmSAUj>qIJK~8;!_OT)RSU)(+u~0}1!0datd6`vooYKhrt~DW z=^)p}y5(I;PqZsc(ZtV`*w|gOI!?((3i(pYr(;bqomP8OKL{g>QowShn-pb3DYUd! zVV{g#&!X^H{wZ-U-`zEAJ6}Z^$+#M7cw7yob=3!Dk?U0>{Ys-{P=P9126as8N3J(W zsg3dVvA@#luOuZj$0e~$ElE?6tjjj$-y@-!LRrqJU^=MKCW0Juw_J&Qh+ju=QLKvK z{oG@*NWJWkgxS%aMHF(PBNT9jy*gr(MZnr()NgtKCx{oY)|@~^#}m+H0(F_3&OYYC z=&c5+nll|#XmdnwFRm+#MtqF>v?$bf&&GZ=PNI5AGw*2D$~zwRepgz@{;M}@2ok6$ zCs7YVD2XzF-t2kSn~jCgUNrP(myGDms_{rAdRx#Y%P;Up*JhZ zdb9l17fsxVZ*QOKRIeSh5sxT}EFXqZvon}618mgnOWJyaY}D+_M$H66E(L;JB2hEo4A!ka3Ym~@oQ;u}=TZllyi%v|&VF#SdVQ+r9^PnQ8J??xInSEWG6Xgv#X z{S&Hvm%c|;x&VeZ{VG6Tq_Qkq4!XXm8rkEzO#lHyjrba|b-SoIjgj?Z@ja_Y-?ODq z4;rqI4I+0d7&>LA`32y(qBLVUt?YKxZwN$7c=G{Gh@PZC_6pD z%$UFhxoo4`$5cr2ufs(}lSs0-ZypL-Uy#Q$e}N9YN?EmaPI3 zljO!ub&n>UggRlQE(+i*O~8eynhY!_(H^F1Ye81enT&F23#D8!jKXOxW}d_b_a$qC z?W&Cn<3z4{Zs0tKI+5p6EVKsqxfA7cL{_f@3EX>IP=MX$LRPQ+G+pczvU(h!CJR}; zUPv!ik=Vki43eh3?*AHE4ZYfwZ%6z4gv3T|@u+2~1d=Ba$+B4vmDyorOM6SmeCrsy zHT%J>nXDdX4lL*F={Qtpml1fs6JS}>fqCKO?3Zf za#}8n`#*xj0(xfQM#@}|8%dRJBpbR9W9uAnpJmc**fXx8zc$r(!jcQmoK0$;{Y)-5 zbW%(52rbl*X`zH8w#+hOTB!F3Efj=RLk0;eZ)UwclCx|HCb%!@t`CS1y!YmserO{^ zvo=Eih&F;On_n*0do$t6d zm$a*HKzH!)<@GU0(Jya|L5@xk=f@V=Ykem>LiN1{5goCLnB9g_=qb>ZB&xf1}LJSVYw4+s|{Xn+s%+KrBeE&#`awP z7|nd5k)~;2G-q({JtCjEwq09%?wlL`Lrwa(pP+xMHyIc+rEG!oQC)4X1?^ya~S3U#4u z;%65n49t~I_r!}(?TS7u+Xx~NbEKEGqqS88x6fGEIT-Tz05ZiyTG!G_nTw4aGDR$F z=~-}W>kyj^0><0WQI#XFfh~3m>u2MQcU=!Q6117W4D-=SYh{i}k(dQFI=H%0hGw)? z`$JRuXTfPPEyL~YuClE>P-#6;pVqm4TB*?Y zHdZ=G#qqasgRRRxl=Z2*59w51eGo-2HhbGvQ$o=`oEhwxLqb@jXcb14?8d?|r+7IWbIOR%_4!}NoM1TSWYA(%xEMR; ztiqF87VIby2qLFTBaK@~X`I?vIOdpvTxAV&Z&S+Bh6)qnNWEiFc1IZ{Y8j=VY?X1M zc9aq|9Zu9%BT=i_O_Z&@Q2(ge1;(?*bNg2{TOs@S_4X0pE;rVFbSF{zLv}1`rH1?< zjq-!XB!oq#IqJv{yeU7ZvVlyp*C<4_oT8c{Fk+e$$hs22M3wFO9=Z}<;$Z0NpcGL$PLT)J)*U&4pz15U{$LQs9Nc>s?}(uYTsh0 zf^rvV&ktB7IhbZ*Fu=m#_ORH;SYj;?Mz1lz;>984ZUg@C#mS;owq8~Ke2G7UmT$qI z&+%ts7xs>&$B)d{V0zxjd^M)$k1yvr>UjPPQ7+h{gU8d*Mm(O#n{3}O=chJY3|pP( z6+R*Ex06)jdC*S-a0^GDVV;q&==#IL8snVHT1kxWIdDq;02LK69!4_%%LL0xifkU%;|98>@1 z-7q@npvS10pF54S@(tGPsxkeRMBi@n=OpwLrk}{Auhe#7sd5!3q4XSg?EO#s@t`CU zNM%Z{{cmyhR*D;-hgL(ck`~sfpAsc$t!oF_r%df*nsYyv-y|Tk)%9=kwu3DKmP6Od z5=&nSCeXFoL`z|ksxZtM#|Ak>B&|1MjgQqbpu{hZ@r53U_Z6WLb!$CbwfEObm zgf%yXbmvo5*+C$V9R%Wt%$6pP#fZ6PM4cgn0P-I@T=pK!(uY{+a&)9eYzt|C+^9(9 z#R!s|ukL1bT0vfn00(+CFGl3k2u!=kgD&YZs9TTZkQ-d4OwNguQCO$ncBEu9jRim| zc?b{yaocjSDJ-sOF!qLqxQTQracO(W#V1j0i(*R2 zEPBcpK>`_UjIrXJxDT-TLqn~_3WWDk#o5VwEpES2lAHJ z5|FpNXbG|{6gQaFDp2X((A6r#(vcgUx)_i)1b^s^O{&0a38{}j3T^1{CgZ#}1?LnsnL(L}SCss7&cO}gX{N340G zV7cm$SpW7-m44@>{_aUR-8j1E;T5+rN^@>Sy2uc_$zge$z|xJI(i&7QCAVJe@4n{T Z5tT7C)HK6$c(7Qq=~MAui%7Xq{{yNk>goUh diff --git a/libcraft/blocks/src/block.rs b/libcraft/blocks/src/block.rs index d80cc8ce1..355ddfede 100644 --- a/libcraft/blocks/src/block.rs +++ b/libcraft/blocks/src/block.rs @@ -1,9 +1,161 @@ // This file is @generated. Please do not edit. +#[allow(dead_code)] +pub mod dig_multipliers { + pub const COWEB: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::GoldenSword, 15f32), + (libcraft_items::Item::StoneSword, 15f32), + (libcraft_items::Item::IronSword, 15f32), + (libcraft_items::Item::DiamondSword, 15f32), + (libcraft_items::Item::NetheriteSword, 15f32), + (libcraft_items::Item::Shears, 15f32), + (libcraft_items::Item::WoodenSword, 15f32), + ]; + pub const GOURD_AND_MINEABLE_WITH_AXE: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::IronAxe, 6f32), + (libcraft_items::Item::GoldenAxe, 12f32), + (libcraft_items::Item::StoneSword, 1.5f32), + (libcraft_items::Item::WoodenAxe, 2f32), + (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::WoodenSword, 1.5f32), + (libcraft_items::Item::StoneAxe, 4f32), + (libcraft_items::Item::DiamondAxe, 8f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), + (libcraft_items::Item::NetheriteAxe, 9f32), + ]; + pub const LEAVES_AND_MINEABLE_WITH_HOE: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::GoldenHoe, 12f32), + (libcraft_items::Item::WoodenHoe, 2f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), + (libcraft_items::Item::Shears, 15f32), + (libcraft_items::Item::IronHoe, 6f32), + (libcraft_items::Item::StoneSword, 1.5f32), + (libcraft_items::Item::StoneHoe, 4f32), + (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::DiamondHoe, 8f32), + (libcraft_items::Item::NetheriteHoe, 9f32), + (libcraft_items::Item::WoodenSword, 1.5f32), + ]; + pub const MINEABLE_WITH_AXE: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::GoldenAxe, 12f32), + (libcraft_items::Item::NetheriteAxe, 9f32), + (libcraft_items::Item::WoodenAxe, 2f32), + (libcraft_items::Item::StoneAxe, 4f32), + (libcraft_items::Item::IronAxe, 6f32), + (libcraft_items::Item::DiamondAxe, 8f32), + ]; + pub const PLANT: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenSword, 1.5f32), + (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), + (libcraft_items::Item::StoneSword, 1.5f32), + ]; + pub const VINE_OR_GLOW_LICHEN_AND_PLANT_AND_MINEABLE_WITH_AXE: &[( + libcraft_items::Item, + f32, + )] = &[ + (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::DiamondAxe, 8f32), + (libcraft_items::Item::WoodenSword, 1.5f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), + (libcraft_items::Item::NetheriteAxe, 9f32), + (libcraft_items::Item::GoldenAxe, 12f32), + (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::IronAxe, 6f32), + (libcraft_items::Item::Shears, 2f32), + (libcraft_items::Item::StoneSword, 1.5f32), + (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::WoodenAxe, 2f32), + (libcraft_items::Item::StoneAxe, 4f32), + ]; + pub const MINEABLE_WITH_HOE: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenHoe, 2f32), + (libcraft_items::Item::DiamondHoe, 8f32), + (libcraft_items::Item::NetheriteHoe, 9f32), + (libcraft_items::Item::StoneHoe, 4f32), + (libcraft_items::Item::GoldenHoe, 12f32), + (libcraft_items::Item::IronHoe, 6f32), + ]; + pub const MINEABLE_WITH_PICKAXE: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::StonePickaxe, 4f32), + (libcraft_items::Item::DiamondPickaxe, 8f32), + (libcraft_items::Item::GoldenPickaxe, 12f32), + (libcraft_items::Item::WoodenPickaxe, 2f32), + (libcraft_items::Item::IronPickaxe, 6f32), + (libcraft_items::Item::NetheritePickaxe, 9f32), + ]; + pub const PLANT_AND_MINEABLE_WITH_AXE: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenSword, 1.5f32), + (libcraft_items::Item::StoneSword, 1.5f32), + (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::IronAxe, 6f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), + (libcraft_items::Item::GoldenAxe, 12f32), + (libcraft_items::Item::WoodenAxe, 2f32), + (libcraft_items::Item::StoneAxe, 4f32), + (libcraft_items::Item::DiamondAxe, 8f32), + (libcraft_items::Item::NetheriteAxe, 9f32), + ]; + pub const DEFAULT: &[(libcraft_items::Item, f32)] = &[]; + pub const GOURD: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenSword, 1.5f32), + (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::StoneSword, 1.5f32), + (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), + ]; + pub const VINE_OR_GLOW_LICHEN: &[(libcraft_items::Item, f32)] = + &[(libcraft_items::Item::Shears, 2f32)]; + pub const WOOL: &[(libcraft_items::Item, f32)] = &[(libcraft_items::Item::Shears, 5f32)]; + pub const LEAVES_AND_MINEABLE_WITH_AXE_AND_MINEABLE_WITH_HOE: &[(libcraft_items::Item, f32)] = + &[ + (libcraft_items::Item::WoodenAxe, 2f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), + (libcraft_items::Item::DiamondHoe, 8f32), + (libcraft_items::Item::StoneSword, 1.5f32), + (libcraft_items::Item::Shears, 15f32), + (libcraft_items::Item::IronAxe, 6f32), + (libcraft_items::Item::WoodenHoe, 2f32), + (libcraft_items::Item::NetheriteHoe, 9f32), + (libcraft_items::Item::GoldenAxe, 12f32), + (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::WoodenSword, 1.5f32), + (libcraft_items::Item::DiamondAxe, 8f32), + (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::StoneAxe, 4f32), + (libcraft_items::Item::NetheriteAxe, 9f32), + (libcraft_items::Item::StoneHoe, 4f32), + (libcraft_items::Item::IronHoe, 6f32), + (libcraft_items::Item::GoldenHoe, 12f32), + (libcraft_items::Item::GoldenSword, 1.5f32), + ]; + pub const LEAVES: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenSword, 1.5f32), + (libcraft_items::Item::StoneSword, 1.5f32), + (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), + (libcraft_items::Item::Shears, 15f32), + (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::GoldenSword, 1.5f32), + ]; + pub const MINEABLE_WITH_SHOVEL: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::StoneShovel, 4f32), + (libcraft_items::Item::IronShovel, 6f32), + (libcraft_items::Item::WoodenShovel, 2f32), + (libcraft_items::Item::GoldenShovel, 12f32), + (libcraft_items::Item::DiamondShovel, 8f32), + (libcraft_items::Item::NetheriteShovel, 9f32), + ]; +} #[derive( - num_derive::FromPrimitive, - num_derive::ToPrimitive, - serde::Serialize, - serde::Deserialize, Copy, Clone, Debug, @@ -12,7 +164,12 @@ Hash, PartialOrd, Ord, + num_derive :: FromPrimitive, + num_derive :: ToPrimitive, + serde :: Serialize, + serde :: Deserialize, )] +#[serde(rename_all = "snake_case")] pub enum BlockKind { Air, Stone, @@ -46,8 +203,11 @@ pub enum BlockKind { RedSand, Gravel, GoldOre, + DeepslateGoldOre, IronOre, + DeepslateIronOre, CoalOre, + DeepslateCoalOre, NetherGoldOre, OakLog, SpruceLog, @@ -79,10 +239,13 @@ pub enum BlockKind { JungleLeaves, AcaciaLeaves, DarkOakLeaves, + AzaleaLeaves, + FloweringAzaleaLeaves, Sponge, WetSponge, Glass, LapisOre, + DeepslateLapisOre, LapisBlock, Dispenser, Sandstone, @@ -164,6 +327,7 @@ pub enum BlockKind { Chest, RedstoneWire, DiamondOre, + DeepslateDiamondOre, DiamondBlock, CraftingTable, Wheat, @@ -195,6 +359,7 @@ pub enum BlockKind { AcaciaPressurePlate, DarkOakPressurePlate, RedstoneOre, + DeepslateRedstoneOre, RedstoneTorch, RedstoneWallTorch, StoneButton, @@ -264,6 +429,7 @@ pub enum BlockKind { PumpkinStem, MelonStem, Vine, + GlowLichen, OakFenceGate, BrickStairs, StoneBrickStairs, @@ -276,6 +442,9 @@ pub enum BlockKind { EnchantingTable, BrewingStand, Cauldron, + WaterCauldron, + LavaCauldron, + PowderSnowCauldron, EndPortal, EndPortalFrame, EndStone, @@ -284,6 +453,7 @@ pub enum BlockKind { Cocoa, SandstoneStairs, EmeraldOre, + DeepslateEmeraldOre, EnderChest, TripwireHook, Tripwire, @@ -393,6 +563,7 @@ pub enum BlockKind { DarkOakStairs, SlimeBlock, Barrier, + Light, IronTrapdoor, Prismarine, PrismarineBricks, @@ -512,7 +683,7 @@ pub enum BlockKind { PurpurStairs, EndStoneBricks, Beetroots, - GrassPath, + DirtPath, EndGateway, RepeatingCommandBlock, ChainCommandBlock, @@ -777,12946 +948,21364 @@ pub enum BlockKind { ChiseledNetherBricks, CrackedNetherBricks, QuartzBricks, + Candle, + WhiteCandle, + OrangeCandle, + MagentaCandle, + LightBlueCandle, + YellowCandle, + LimeCandle, + PinkCandle, + GrayCandle, + LightGrayCandle, + CyanCandle, + PurpleCandle, + BlueCandle, + BrownCandle, + GreenCandle, + RedCandle, + BlackCandle, + CandleCake, + WhiteCandleCake, + OrangeCandleCake, + MagentaCandleCake, + LightBlueCandleCake, + YellowCandleCake, + LimeCandleCake, + PinkCandleCake, + GrayCandleCake, + LightGrayCandleCake, + CyanCandleCake, + PurpleCandleCake, + BlueCandleCake, + BrownCandleCake, + GreenCandleCake, + RedCandleCake, + BlackCandleCake, + AmethystBlock, + BuddingAmethyst, + AmethystCluster, + LargeAmethystBud, + MediumAmethystBud, + SmallAmethystBud, + Tuff, + Calcite, + TintedGlass, + PowderSnow, + SculkSensor, + OxidizedCopper, + WeatheredCopper, + ExposedCopper, + CopperBlock, + CopperOre, + DeepslateCopperOre, + OxidizedCutCopper, + WeatheredCutCopper, + ExposedCutCopper, + CutCopper, + OxidizedCutCopperStairs, + WeatheredCutCopperStairs, + ExposedCutCopperStairs, + CutCopperStairs, + OxidizedCutCopperSlab, + WeatheredCutCopperSlab, + ExposedCutCopperSlab, + CutCopperSlab, + WaxedCopperBlock, + WaxedWeatheredCopper, + WaxedExposedCopper, + WaxedOxidizedCopper, + WaxedOxidizedCutCopper, + WaxedWeatheredCutCopper, + WaxedExposedCutCopper, + WaxedCutCopper, + WaxedOxidizedCutCopperStairs, + WaxedWeatheredCutCopperStairs, + WaxedExposedCutCopperStairs, + WaxedCutCopperStairs, + WaxedOxidizedCutCopperSlab, + WaxedWeatheredCutCopperSlab, + WaxedExposedCutCopperSlab, + WaxedCutCopperSlab, + LightningRod, + PointedDripstone, + DripstoneBlock, + CaveVines, + CaveVinesPlant, + SporeBlossom, + Azalea, + FloweringAzalea, + MossCarpet, + MossBlock, + BigDripleaf, + BigDripleafStem, + SmallDripleaf, + HangingRoots, + RootedDirt, + Deepslate, + CobbledDeepslate, + CobbledDeepslateStairs, + CobbledDeepslateSlab, + CobbledDeepslateWall, + PolishedDeepslate, + PolishedDeepslateStairs, + PolishedDeepslateSlab, + PolishedDeepslateWall, + DeepslateTiles, + DeepslateTileStairs, + DeepslateTileSlab, + DeepslateTileWall, + DeepslateBricks, + DeepslateBrickStairs, + DeepslateBrickSlab, + DeepslateBrickWall, + ChiseledDeepslate, + CrackedDeepslateBricks, + CrackedDeepslateTiles, + InfestedDeepslate, + SmoothBasalt, + RawIronBlock, + RawCopperBlock, + RawGoldBlock, + PottedAzaleaBush, + PottedFloweringAzaleaBush, +} +impl BlockKind { + #[inline] + pub fn values() -> &'static [BlockKind] { + use BlockKind::*; + &[ + Air, + Stone, + Granite, + PolishedGranite, + Diorite, + PolishedDiorite, + Andesite, + PolishedAndesite, + GrassBlock, + Dirt, + CoarseDirt, + Podzol, + Cobblestone, + OakPlanks, + SprucePlanks, + BirchPlanks, + JunglePlanks, + AcaciaPlanks, + DarkOakPlanks, + OakSapling, + SpruceSapling, + BirchSapling, + JungleSapling, + AcaciaSapling, + DarkOakSapling, + Bedrock, + Water, + Lava, + Sand, + RedSand, + Gravel, + GoldOre, + DeepslateGoldOre, + IronOre, + DeepslateIronOre, + CoalOre, + DeepslateCoalOre, + NetherGoldOre, + OakLog, + SpruceLog, + BirchLog, + JungleLog, + AcaciaLog, + DarkOakLog, + StrippedSpruceLog, + StrippedBirchLog, + StrippedJungleLog, + StrippedAcaciaLog, + StrippedDarkOakLog, + StrippedOakLog, + OakWood, + SpruceWood, + BirchWood, + JungleWood, + AcaciaWood, + DarkOakWood, + StrippedOakWood, + StrippedSpruceWood, + StrippedBirchWood, + StrippedJungleWood, + StrippedAcaciaWood, + StrippedDarkOakWood, + OakLeaves, + SpruceLeaves, + BirchLeaves, + JungleLeaves, + AcaciaLeaves, + DarkOakLeaves, + AzaleaLeaves, + FloweringAzaleaLeaves, + Sponge, + WetSponge, + Glass, + LapisOre, + DeepslateLapisOre, + LapisBlock, + Dispenser, + Sandstone, + ChiseledSandstone, + CutSandstone, + NoteBlock, + WhiteBed, + OrangeBed, + MagentaBed, + LightBlueBed, + YellowBed, + LimeBed, + PinkBed, + GrayBed, + LightGrayBed, + CyanBed, + PurpleBed, + BlueBed, + BrownBed, + GreenBed, + RedBed, + BlackBed, + PoweredRail, + DetectorRail, + StickyPiston, + Cobweb, + Grass, + Fern, + DeadBush, + Seagrass, + TallSeagrass, + Piston, + PistonHead, + WhiteWool, + OrangeWool, + MagentaWool, + LightBlueWool, + YellowWool, + LimeWool, + PinkWool, + GrayWool, + LightGrayWool, + CyanWool, + PurpleWool, + BlueWool, + BrownWool, + GreenWool, + RedWool, + BlackWool, + MovingPiston, + Dandelion, + Poppy, + BlueOrchid, + Allium, + AzureBluet, + RedTulip, + OrangeTulip, + WhiteTulip, + PinkTulip, + OxeyeDaisy, + Cornflower, + WitherRose, + LilyOfTheValley, + BrownMushroom, + RedMushroom, + GoldBlock, + IronBlock, + Bricks, + Tnt, + Bookshelf, + MossyCobblestone, + Obsidian, + Torch, + WallTorch, + Fire, + SoulFire, + Spawner, + OakStairs, + Chest, + RedstoneWire, + DiamondOre, + DeepslateDiamondOre, + DiamondBlock, + CraftingTable, + Wheat, + Farmland, + Furnace, + OakSign, + SpruceSign, + BirchSign, + AcaciaSign, + JungleSign, + DarkOakSign, + OakDoor, + Ladder, + Rail, + CobblestoneStairs, + OakWallSign, + SpruceWallSign, + BirchWallSign, + AcaciaWallSign, + JungleWallSign, + DarkOakWallSign, + Lever, + StonePressurePlate, + IronDoor, + OakPressurePlate, + SprucePressurePlate, + BirchPressurePlate, + JunglePressurePlate, + AcaciaPressurePlate, + DarkOakPressurePlate, + RedstoneOre, + DeepslateRedstoneOre, + RedstoneTorch, + RedstoneWallTorch, + StoneButton, + Snow, + Ice, + SnowBlock, + Cactus, + Clay, + SugarCane, + Jukebox, + OakFence, + Pumpkin, + Netherrack, + SoulSand, + SoulSoil, + Basalt, + PolishedBasalt, + SoulTorch, + SoulWallTorch, + Glowstone, + NetherPortal, + CarvedPumpkin, + JackOLantern, + Cake, + Repeater, + WhiteStainedGlass, + OrangeStainedGlass, + MagentaStainedGlass, + LightBlueStainedGlass, + YellowStainedGlass, + LimeStainedGlass, + PinkStainedGlass, + GrayStainedGlass, + LightGrayStainedGlass, + CyanStainedGlass, + PurpleStainedGlass, + BlueStainedGlass, + BrownStainedGlass, + GreenStainedGlass, + RedStainedGlass, + BlackStainedGlass, + OakTrapdoor, + SpruceTrapdoor, + BirchTrapdoor, + JungleTrapdoor, + AcaciaTrapdoor, + DarkOakTrapdoor, + StoneBricks, + MossyStoneBricks, + CrackedStoneBricks, + ChiseledStoneBricks, + InfestedStone, + InfestedCobblestone, + InfestedStoneBricks, + InfestedMossyStoneBricks, + InfestedCrackedStoneBricks, + InfestedChiseledStoneBricks, + BrownMushroomBlock, + RedMushroomBlock, + MushroomStem, + IronBars, + Chain, + GlassPane, + Melon, + AttachedPumpkinStem, + AttachedMelonStem, + PumpkinStem, + MelonStem, + Vine, + GlowLichen, + OakFenceGate, + BrickStairs, + StoneBrickStairs, + Mycelium, + LilyPad, + NetherBricks, + NetherBrickFence, + NetherBrickStairs, + NetherWart, + EnchantingTable, + BrewingStand, + Cauldron, + WaterCauldron, + LavaCauldron, + PowderSnowCauldron, + EndPortal, + EndPortalFrame, + EndStone, + DragonEgg, + RedstoneLamp, + Cocoa, + SandstoneStairs, + EmeraldOre, + DeepslateEmeraldOre, + EnderChest, + TripwireHook, + Tripwire, + EmeraldBlock, + SpruceStairs, + BirchStairs, + JungleStairs, + CommandBlock, + Beacon, + CobblestoneWall, + MossyCobblestoneWall, + FlowerPot, + PottedOakSapling, + PottedSpruceSapling, + PottedBirchSapling, + PottedJungleSapling, + PottedAcaciaSapling, + PottedDarkOakSapling, + PottedFern, + PottedDandelion, + PottedPoppy, + PottedBlueOrchid, + PottedAllium, + PottedAzureBluet, + PottedRedTulip, + PottedOrangeTulip, + PottedWhiteTulip, + PottedPinkTulip, + PottedOxeyeDaisy, + PottedCornflower, + PottedLilyOfTheValley, + PottedWitherRose, + PottedRedMushroom, + PottedBrownMushroom, + PottedDeadBush, + PottedCactus, + Carrots, + Potatoes, + OakButton, + SpruceButton, + BirchButton, + JungleButton, + AcaciaButton, + DarkOakButton, + SkeletonSkull, + SkeletonWallSkull, + WitherSkeletonSkull, + WitherSkeletonWallSkull, + ZombieHead, + ZombieWallHead, + PlayerHead, + PlayerWallHead, + CreeperHead, + CreeperWallHead, + DragonHead, + DragonWallHead, + Anvil, + ChippedAnvil, + DamagedAnvil, + TrappedChest, + LightWeightedPressurePlate, + HeavyWeightedPressurePlate, + Comparator, + DaylightDetector, + RedstoneBlock, + NetherQuartzOre, + Hopper, + QuartzBlock, + ChiseledQuartzBlock, + QuartzPillar, + QuartzStairs, + ActivatorRail, + Dropper, + WhiteTerracotta, + OrangeTerracotta, + MagentaTerracotta, + LightBlueTerracotta, + YellowTerracotta, + LimeTerracotta, + PinkTerracotta, + GrayTerracotta, + LightGrayTerracotta, + CyanTerracotta, + PurpleTerracotta, + BlueTerracotta, + BrownTerracotta, + GreenTerracotta, + RedTerracotta, + BlackTerracotta, + WhiteStainedGlassPane, + OrangeStainedGlassPane, + MagentaStainedGlassPane, + LightBlueStainedGlassPane, + YellowStainedGlassPane, + LimeStainedGlassPane, + PinkStainedGlassPane, + GrayStainedGlassPane, + LightGrayStainedGlassPane, + CyanStainedGlassPane, + PurpleStainedGlassPane, + BlueStainedGlassPane, + BrownStainedGlassPane, + GreenStainedGlassPane, + RedStainedGlassPane, + BlackStainedGlassPane, + AcaciaStairs, + DarkOakStairs, + SlimeBlock, + Barrier, + Light, + IronTrapdoor, + Prismarine, + PrismarineBricks, + DarkPrismarine, + PrismarineStairs, + PrismarineBrickStairs, + DarkPrismarineStairs, + PrismarineSlab, + PrismarineBrickSlab, + DarkPrismarineSlab, + SeaLantern, + HayBlock, + WhiteCarpet, + OrangeCarpet, + MagentaCarpet, + LightBlueCarpet, + YellowCarpet, + LimeCarpet, + PinkCarpet, + GrayCarpet, + LightGrayCarpet, + CyanCarpet, + PurpleCarpet, + BlueCarpet, + BrownCarpet, + GreenCarpet, + RedCarpet, + BlackCarpet, + Terracotta, + CoalBlock, + PackedIce, + Sunflower, + Lilac, + RoseBush, + Peony, + TallGrass, + LargeFern, + WhiteBanner, + OrangeBanner, + MagentaBanner, + LightBlueBanner, + YellowBanner, + LimeBanner, + PinkBanner, + GrayBanner, + LightGrayBanner, + CyanBanner, + PurpleBanner, + BlueBanner, + BrownBanner, + GreenBanner, + RedBanner, + BlackBanner, + WhiteWallBanner, + OrangeWallBanner, + MagentaWallBanner, + LightBlueWallBanner, + YellowWallBanner, + LimeWallBanner, + PinkWallBanner, + GrayWallBanner, + LightGrayWallBanner, + CyanWallBanner, + PurpleWallBanner, + BlueWallBanner, + BrownWallBanner, + GreenWallBanner, + RedWallBanner, + BlackWallBanner, + RedSandstone, + ChiseledRedSandstone, + CutRedSandstone, + RedSandstoneStairs, + OakSlab, + SpruceSlab, + BirchSlab, + JungleSlab, + AcaciaSlab, + DarkOakSlab, + StoneSlab, + SmoothStoneSlab, + SandstoneSlab, + CutSandstoneSlab, + PetrifiedOakSlab, + CobblestoneSlab, + BrickSlab, + StoneBrickSlab, + NetherBrickSlab, + QuartzSlab, + RedSandstoneSlab, + CutRedSandstoneSlab, + PurpurSlab, + SmoothStone, + SmoothSandstone, + SmoothQuartz, + SmoothRedSandstone, + SpruceFenceGate, + BirchFenceGate, + JungleFenceGate, + AcaciaFenceGate, + DarkOakFenceGate, + SpruceFence, + BirchFence, + JungleFence, + AcaciaFence, + DarkOakFence, + SpruceDoor, + BirchDoor, + JungleDoor, + AcaciaDoor, + DarkOakDoor, + EndRod, + ChorusPlant, + ChorusFlower, + PurpurBlock, + PurpurPillar, + PurpurStairs, + EndStoneBricks, + Beetroots, + DirtPath, + EndGateway, + RepeatingCommandBlock, + ChainCommandBlock, + FrostedIce, + MagmaBlock, + NetherWartBlock, + RedNetherBricks, + BoneBlock, + StructureVoid, + Observer, + ShulkerBox, + WhiteShulkerBox, + OrangeShulkerBox, + MagentaShulkerBox, + LightBlueShulkerBox, + YellowShulkerBox, + LimeShulkerBox, + PinkShulkerBox, + GrayShulkerBox, + LightGrayShulkerBox, + CyanShulkerBox, + PurpleShulkerBox, + BlueShulkerBox, + BrownShulkerBox, + GreenShulkerBox, + RedShulkerBox, + BlackShulkerBox, + WhiteGlazedTerracotta, + OrangeGlazedTerracotta, + MagentaGlazedTerracotta, + LightBlueGlazedTerracotta, + YellowGlazedTerracotta, + LimeGlazedTerracotta, + PinkGlazedTerracotta, + GrayGlazedTerracotta, + LightGrayGlazedTerracotta, + CyanGlazedTerracotta, + PurpleGlazedTerracotta, + BlueGlazedTerracotta, + BrownGlazedTerracotta, + GreenGlazedTerracotta, + RedGlazedTerracotta, + BlackGlazedTerracotta, + WhiteConcrete, + OrangeConcrete, + MagentaConcrete, + LightBlueConcrete, + YellowConcrete, + LimeConcrete, + PinkConcrete, + GrayConcrete, + LightGrayConcrete, + CyanConcrete, + PurpleConcrete, + BlueConcrete, + BrownConcrete, + GreenConcrete, + RedConcrete, + BlackConcrete, + WhiteConcretePowder, + OrangeConcretePowder, + MagentaConcretePowder, + LightBlueConcretePowder, + YellowConcretePowder, + LimeConcretePowder, + PinkConcretePowder, + GrayConcretePowder, + LightGrayConcretePowder, + CyanConcretePowder, + PurpleConcretePowder, + BlueConcretePowder, + BrownConcretePowder, + GreenConcretePowder, + RedConcretePowder, + BlackConcretePowder, + Kelp, + KelpPlant, + DriedKelpBlock, + TurtleEgg, + DeadTubeCoralBlock, + DeadBrainCoralBlock, + DeadBubbleCoralBlock, + DeadFireCoralBlock, + DeadHornCoralBlock, + TubeCoralBlock, + BrainCoralBlock, + BubbleCoralBlock, + FireCoralBlock, + HornCoralBlock, + DeadTubeCoral, + DeadBrainCoral, + DeadBubbleCoral, + DeadFireCoral, + DeadHornCoral, + TubeCoral, + BrainCoral, + BubbleCoral, + FireCoral, + HornCoral, + DeadTubeCoralFan, + DeadBrainCoralFan, + DeadBubbleCoralFan, + DeadFireCoralFan, + DeadHornCoralFan, + TubeCoralFan, + BrainCoralFan, + BubbleCoralFan, + FireCoralFan, + HornCoralFan, + DeadTubeCoralWallFan, + DeadBrainCoralWallFan, + DeadBubbleCoralWallFan, + DeadFireCoralWallFan, + DeadHornCoralWallFan, + TubeCoralWallFan, + BrainCoralWallFan, + BubbleCoralWallFan, + FireCoralWallFan, + HornCoralWallFan, + SeaPickle, + BlueIce, + Conduit, + BambooSapling, + Bamboo, + PottedBamboo, + VoidAir, + CaveAir, + BubbleColumn, + PolishedGraniteStairs, + SmoothRedSandstoneStairs, + MossyStoneBrickStairs, + PolishedDioriteStairs, + MossyCobblestoneStairs, + EndStoneBrickStairs, + StoneStairs, + SmoothSandstoneStairs, + SmoothQuartzStairs, + GraniteStairs, + AndesiteStairs, + RedNetherBrickStairs, + PolishedAndesiteStairs, + DioriteStairs, + PolishedGraniteSlab, + SmoothRedSandstoneSlab, + MossyStoneBrickSlab, + PolishedDioriteSlab, + MossyCobblestoneSlab, + EndStoneBrickSlab, + SmoothSandstoneSlab, + SmoothQuartzSlab, + GraniteSlab, + AndesiteSlab, + RedNetherBrickSlab, + PolishedAndesiteSlab, + DioriteSlab, + BrickWall, + PrismarineWall, + RedSandstoneWall, + MossyStoneBrickWall, + GraniteWall, + StoneBrickWall, + NetherBrickWall, + AndesiteWall, + RedNetherBrickWall, + SandstoneWall, + EndStoneBrickWall, + DioriteWall, + Scaffolding, + Loom, + Barrel, + Smoker, + BlastFurnace, + CartographyTable, + FletchingTable, + Grindstone, + Lectern, + SmithingTable, + Stonecutter, + Bell, + Lantern, + SoulLantern, + Campfire, + SoulCampfire, + SweetBerryBush, + WarpedStem, + StrippedWarpedStem, + WarpedHyphae, + StrippedWarpedHyphae, + WarpedNylium, + WarpedFungus, + WarpedWartBlock, + WarpedRoots, + NetherSprouts, + CrimsonStem, + StrippedCrimsonStem, + CrimsonHyphae, + StrippedCrimsonHyphae, + CrimsonNylium, + CrimsonFungus, + Shroomlight, + WeepingVines, + WeepingVinesPlant, + TwistingVines, + TwistingVinesPlant, + CrimsonRoots, + CrimsonPlanks, + WarpedPlanks, + CrimsonSlab, + WarpedSlab, + CrimsonPressurePlate, + WarpedPressurePlate, + CrimsonFence, + WarpedFence, + CrimsonTrapdoor, + WarpedTrapdoor, + CrimsonFenceGate, + WarpedFenceGate, + CrimsonStairs, + WarpedStairs, + CrimsonButton, + WarpedButton, + CrimsonDoor, + WarpedDoor, + CrimsonSign, + WarpedSign, + CrimsonWallSign, + WarpedWallSign, + StructureBlock, + Jigsaw, + Composter, + Target, + BeeNest, + Beehive, + HoneyBlock, + HoneycombBlock, + NetheriteBlock, + AncientDebris, + CryingObsidian, + RespawnAnchor, + PottedCrimsonFungus, + PottedWarpedFungus, + PottedCrimsonRoots, + PottedWarpedRoots, + Lodestone, + Blackstone, + BlackstoneStairs, + BlackstoneWall, + BlackstoneSlab, + PolishedBlackstone, + PolishedBlackstoneBricks, + CrackedPolishedBlackstoneBricks, + ChiseledPolishedBlackstone, + PolishedBlackstoneBrickSlab, + PolishedBlackstoneBrickStairs, + PolishedBlackstoneBrickWall, + GildedBlackstone, + PolishedBlackstoneStairs, + PolishedBlackstoneSlab, + PolishedBlackstonePressurePlate, + PolishedBlackstoneButton, + PolishedBlackstoneWall, + ChiseledNetherBricks, + CrackedNetherBricks, + QuartzBricks, + Candle, + WhiteCandle, + OrangeCandle, + MagentaCandle, + LightBlueCandle, + YellowCandle, + LimeCandle, + PinkCandle, + GrayCandle, + LightGrayCandle, + CyanCandle, + PurpleCandle, + BlueCandle, + BrownCandle, + GreenCandle, + RedCandle, + BlackCandle, + CandleCake, + WhiteCandleCake, + OrangeCandleCake, + MagentaCandleCake, + LightBlueCandleCake, + YellowCandleCake, + LimeCandleCake, + PinkCandleCake, + GrayCandleCake, + LightGrayCandleCake, + CyanCandleCake, + PurpleCandleCake, + BlueCandleCake, + BrownCandleCake, + GreenCandleCake, + RedCandleCake, + BlackCandleCake, + AmethystBlock, + BuddingAmethyst, + AmethystCluster, + LargeAmethystBud, + MediumAmethystBud, + SmallAmethystBud, + Tuff, + Calcite, + TintedGlass, + PowderSnow, + SculkSensor, + OxidizedCopper, + WeatheredCopper, + ExposedCopper, + CopperBlock, + CopperOre, + DeepslateCopperOre, + OxidizedCutCopper, + WeatheredCutCopper, + ExposedCutCopper, + CutCopper, + OxidizedCutCopperStairs, + WeatheredCutCopperStairs, + ExposedCutCopperStairs, + CutCopperStairs, + OxidizedCutCopperSlab, + WeatheredCutCopperSlab, + ExposedCutCopperSlab, + CutCopperSlab, + WaxedCopperBlock, + WaxedWeatheredCopper, + WaxedExposedCopper, + WaxedOxidizedCopper, + WaxedOxidizedCutCopper, + WaxedWeatheredCutCopper, + WaxedExposedCutCopper, + WaxedCutCopper, + WaxedOxidizedCutCopperStairs, + WaxedWeatheredCutCopperStairs, + WaxedExposedCutCopperStairs, + WaxedCutCopperStairs, + WaxedOxidizedCutCopperSlab, + WaxedWeatheredCutCopperSlab, + WaxedExposedCutCopperSlab, + WaxedCutCopperSlab, + LightningRod, + PointedDripstone, + DripstoneBlock, + CaveVines, + CaveVinesPlant, + SporeBlossom, + Azalea, + FloweringAzalea, + MossCarpet, + MossBlock, + BigDripleaf, + BigDripleafStem, + SmallDripleaf, + HangingRoots, + RootedDirt, + Deepslate, + CobbledDeepslate, + CobbledDeepslateStairs, + CobbledDeepslateSlab, + CobbledDeepslateWall, + PolishedDeepslate, + PolishedDeepslateStairs, + PolishedDeepslateSlab, + PolishedDeepslateWall, + DeepslateTiles, + DeepslateTileStairs, + DeepslateTileSlab, + DeepslateTileWall, + DeepslateBricks, + DeepslateBrickStairs, + DeepslateBrickSlab, + DeepslateBrickWall, + ChiseledDeepslate, + CrackedDeepslateBricks, + CrackedDeepslateTiles, + InfestedDeepslate, + SmoothBasalt, + RawIronBlock, + RawCopperBlock, + RawGoldBlock, + PottedAzaleaBush, + PottedFloweringAzaleaBush, + ] + } } - -#[allow(warnings)] -#[allow(clippy::all)] impl BlockKind { - /// Returns the `id` property of this `BlockKind`. + #[doc = "Returns the `id` property of this `BlockKind`."] + #[inline] pub fn id(&self) -> u32 { match self { - BlockKind::Air => 0, - BlockKind::Stone => 1, - BlockKind::Granite => 2, - BlockKind::PolishedGranite => 3, - BlockKind::Diorite => 4, - BlockKind::PolishedDiorite => 5, - BlockKind::Andesite => 6, - BlockKind::PolishedAndesite => 7, - BlockKind::GrassBlock => 8, - BlockKind::Dirt => 9, - BlockKind::CoarseDirt => 10, - BlockKind::Podzol => 11, - BlockKind::Cobblestone => 12, - BlockKind::OakPlanks => 13, - BlockKind::SprucePlanks => 14, - BlockKind::BirchPlanks => 15, - BlockKind::JunglePlanks => 16, - BlockKind::AcaciaPlanks => 17, - BlockKind::DarkOakPlanks => 18, - BlockKind::OakSapling => 19, - BlockKind::SpruceSapling => 20, - BlockKind::BirchSapling => 21, - BlockKind::JungleSapling => 22, - BlockKind::AcaciaSapling => 23, - BlockKind::DarkOakSapling => 24, - BlockKind::Bedrock => 25, - BlockKind::Water => 26, - BlockKind::Lava => 27, - BlockKind::Sand => 28, - BlockKind::RedSand => 29, - BlockKind::Gravel => 30, - BlockKind::GoldOre => 31, - BlockKind::IronOre => 32, - BlockKind::CoalOre => 33, - BlockKind::NetherGoldOre => 34, - BlockKind::OakLog => 35, - BlockKind::SpruceLog => 36, - BlockKind::BirchLog => 37, - BlockKind::JungleLog => 38, - BlockKind::AcaciaLog => 39, - BlockKind::DarkOakLog => 40, - BlockKind::StrippedSpruceLog => 41, - BlockKind::StrippedBirchLog => 42, - BlockKind::StrippedJungleLog => 43, - BlockKind::StrippedAcaciaLog => 44, - BlockKind::StrippedDarkOakLog => 45, - BlockKind::StrippedOakLog => 46, - BlockKind::OakWood => 47, - BlockKind::SpruceWood => 48, - BlockKind::BirchWood => 49, - BlockKind::JungleWood => 50, - BlockKind::AcaciaWood => 51, - BlockKind::DarkOakWood => 52, - BlockKind::StrippedOakWood => 53, - BlockKind::StrippedSpruceWood => 54, - BlockKind::StrippedBirchWood => 55, - BlockKind::StrippedJungleWood => 56, - BlockKind::StrippedAcaciaWood => 57, - BlockKind::StrippedDarkOakWood => 58, - BlockKind::OakLeaves => 59, - BlockKind::SpruceLeaves => 60, - BlockKind::BirchLeaves => 61, - BlockKind::JungleLeaves => 62, - BlockKind::AcaciaLeaves => 63, - BlockKind::DarkOakLeaves => 64, - BlockKind::Sponge => 65, - BlockKind::WetSponge => 66, - BlockKind::Glass => 67, - BlockKind::LapisOre => 68, - BlockKind::LapisBlock => 69, - BlockKind::Dispenser => 70, - BlockKind::Sandstone => 71, - BlockKind::ChiseledSandstone => 72, - BlockKind::CutSandstone => 73, - BlockKind::NoteBlock => 74, - BlockKind::WhiteBed => 75, - BlockKind::OrangeBed => 76, - BlockKind::MagentaBed => 77, - BlockKind::LightBlueBed => 78, - BlockKind::YellowBed => 79, - BlockKind::LimeBed => 80, - BlockKind::PinkBed => 81, - BlockKind::GrayBed => 82, - BlockKind::LightGrayBed => 83, - BlockKind::CyanBed => 84, - BlockKind::PurpleBed => 85, - BlockKind::BlueBed => 86, - BlockKind::BrownBed => 87, - BlockKind::GreenBed => 88, - BlockKind::RedBed => 89, - BlockKind::BlackBed => 90, - BlockKind::PoweredRail => 91, - BlockKind::DetectorRail => 92, - BlockKind::StickyPiston => 93, - BlockKind::Cobweb => 94, - BlockKind::Grass => 95, - BlockKind::Fern => 96, - BlockKind::DeadBush => 97, - BlockKind::Seagrass => 98, - BlockKind::TallSeagrass => 99, - BlockKind::Piston => 100, - BlockKind::PistonHead => 101, - BlockKind::WhiteWool => 102, - BlockKind::OrangeWool => 103, - BlockKind::MagentaWool => 104, - BlockKind::LightBlueWool => 105, - BlockKind::YellowWool => 106, - BlockKind::LimeWool => 107, - BlockKind::PinkWool => 108, - BlockKind::GrayWool => 109, - BlockKind::LightGrayWool => 110, - BlockKind::CyanWool => 111, - BlockKind::PurpleWool => 112, - BlockKind::BlueWool => 113, - BlockKind::BrownWool => 114, - BlockKind::GreenWool => 115, - BlockKind::RedWool => 116, - BlockKind::BlackWool => 117, - BlockKind::MovingPiston => 118, - BlockKind::Dandelion => 119, - BlockKind::Poppy => 120, - BlockKind::BlueOrchid => 121, - BlockKind::Allium => 122, - BlockKind::AzureBluet => 123, - BlockKind::RedTulip => 124, - BlockKind::OrangeTulip => 125, - BlockKind::WhiteTulip => 126, - BlockKind::PinkTulip => 127, - BlockKind::OxeyeDaisy => 128, - BlockKind::Cornflower => 129, - BlockKind::WitherRose => 130, - BlockKind::LilyOfTheValley => 131, - BlockKind::BrownMushroom => 132, - BlockKind::RedMushroom => 133, - BlockKind::GoldBlock => 134, - BlockKind::IronBlock => 135, - BlockKind::Bricks => 136, - BlockKind::Tnt => 137, - BlockKind::Bookshelf => 138, - BlockKind::MossyCobblestone => 139, - BlockKind::Obsidian => 140, - BlockKind::Torch => 141, - BlockKind::WallTorch => 142, - BlockKind::Fire => 143, - BlockKind::SoulFire => 144, - BlockKind::Spawner => 145, - BlockKind::OakStairs => 146, - BlockKind::Chest => 147, - BlockKind::RedstoneWire => 148, - BlockKind::DiamondOre => 149, - BlockKind::DiamondBlock => 150, - BlockKind::CraftingTable => 151, - BlockKind::Wheat => 152, - BlockKind::Farmland => 153, - BlockKind::Furnace => 154, - BlockKind::OakSign => 155, - BlockKind::SpruceSign => 156, - BlockKind::BirchSign => 157, - BlockKind::AcaciaSign => 158, - BlockKind::JungleSign => 159, - BlockKind::DarkOakSign => 160, - BlockKind::OakDoor => 161, - BlockKind::Ladder => 162, - BlockKind::Rail => 163, - BlockKind::CobblestoneStairs => 164, - BlockKind::OakWallSign => 165, - BlockKind::SpruceWallSign => 166, - BlockKind::BirchWallSign => 167, - BlockKind::AcaciaWallSign => 168, - BlockKind::JungleWallSign => 169, - BlockKind::DarkOakWallSign => 170, - BlockKind::Lever => 171, - BlockKind::StonePressurePlate => 172, - BlockKind::IronDoor => 173, - BlockKind::OakPressurePlate => 174, - BlockKind::SprucePressurePlate => 175, - BlockKind::BirchPressurePlate => 176, - BlockKind::JunglePressurePlate => 177, - BlockKind::AcaciaPressurePlate => 178, - BlockKind::DarkOakPressurePlate => 179, - BlockKind::RedstoneOre => 180, - BlockKind::RedstoneTorch => 181, - BlockKind::RedstoneWallTorch => 182, - BlockKind::StoneButton => 183, - BlockKind::Snow => 184, - BlockKind::Ice => 185, - BlockKind::SnowBlock => 186, - BlockKind::Cactus => 187, - BlockKind::Clay => 188, - BlockKind::SugarCane => 189, - BlockKind::Jukebox => 190, - BlockKind::OakFence => 191, - BlockKind::Pumpkin => 192, - BlockKind::Netherrack => 193, - BlockKind::SoulSand => 194, - BlockKind::SoulSoil => 195, - BlockKind::Basalt => 196, - BlockKind::PolishedBasalt => 197, - BlockKind::SoulTorch => 198, - BlockKind::SoulWallTorch => 199, - BlockKind::Glowstone => 200, - BlockKind::NetherPortal => 201, - BlockKind::CarvedPumpkin => 202, - BlockKind::JackOLantern => 203, - BlockKind::Cake => 204, - BlockKind::Repeater => 205, - BlockKind::WhiteStainedGlass => 206, - BlockKind::OrangeStainedGlass => 207, - BlockKind::MagentaStainedGlass => 208, - BlockKind::LightBlueStainedGlass => 209, - BlockKind::YellowStainedGlass => 210, - BlockKind::LimeStainedGlass => 211, - BlockKind::PinkStainedGlass => 212, - BlockKind::GrayStainedGlass => 213, - BlockKind::LightGrayStainedGlass => 214, - BlockKind::CyanStainedGlass => 215, - BlockKind::PurpleStainedGlass => 216, - BlockKind::BlueStainedGlass => 217, - BlockKind::BrownStainedGlass => 218, - BlockKind::GreenStainedGlass => 219, - BlockKind::RedStainedGlass => 220, - BlockKind::BlackStainedGlass => 221, - BlockKind::OakTrapdoor => 222, - BlockKind::SpruceTrapdoor => 223, - BlockKind::BirchTrapdoor => 224, - BlockKind::JungleTrapdoor => 225, - BlockKind::AcaciaTrapdoor => 226, - BlockKind::DarkOakTrapdoor => 227, - BlockKind::StoneBricks => 228, - BlockKind::MossyStoneBricks => 229, - BlockKind::CrackedStoneBricks => 230, - BlockKind::ChiseledStoneBricks => 231, - BlockKind::InfestedStone => 232, - BlockKind::InfestedCobblestone => 233, - BlockKind::InfestedStoneBricks => 234, - BlockKind::InfestedMossyStoneBricks => 235, - BlockKind::InfestedCrackedStoneBricks => 236, - BlockKind::InfestedChiseledStoneBricks => 237, - BlockKind::BrownMushroomBlock => 238, - BlockKind::RedMushroomBlock => 239, - BlockKind::MushroomStem => 240, - BlockKind::IronBars => 241, - BlockKind::Chain => 242, - BlockKind::GlassPane => 243, - BlockKind::Melon => 244, - BlockKind::AttachedPumpkinStem => 245, - BlockKind::AttachedMelonStem => 246, - BlockKind::PumpkinStem => 247, - BlockKind::MelonStem => 248, - BlockKind::Vine => 249, - BlockKind::OakFenceGate => 250, - BlockKind::BrickStairs => 251, - BlockKind::StoneBrickStairs => 252, - BlockKind::Mycelium => 253, - BlockKind::LilyPad => 254, - BlockKind::NetherBricks => 255, - BlockKind::NetherBrickFence => 256, - BlockKind::NetherBrickStairs => 257, - BlockKind::NetherWart => 258, - BlockKind::EnchantingTable => 259, - BlockKind::BrewingStand => 260, - BlockKind::Cauldron => 261, - BlockKind::EndPortal => 262, - BlockKind::EndPortalFrame => 263, - BlockKind::EndStone => 264, - BlockKind::DragonEgg => 265, - BlockKind::RedstoneLamp => 266, - BlockKind::Cocoa => 267, - BlockKind::SandstoneStairs => 268, - BlockKind::EmeraldOre => 269, - BlockKind::EnderChest => 270, - BlockKind::TripwireHook => 271, - BlockKind::Tripwire => 272, - BlockKind::EmeraldBlock => 273, - BlockKind::SpruceStairs => 274, - BlockKind::BirchStairs => 275, - BlockKind::JungleStairs => 276, - BlockKind::CommandBlock => 277, - BlockKind::Beacon => 278, - BlockKind::CobblestoneWall => 279, - BlockKind::MossyCobblestoneWall => 280, - BlockKind::FlowerPot => 281, - BlockKind::PottedOakSapling => 282, - BlockKind::PottedSpruceSapling => 283, - BlockKind::PottedBirchSapling => 284, - BlockKind::PottedJungleSapling => 285, - BlockKind::PottedAcaciaSapling => 286, - BlockKind::PottedDarkOakSapling => 287, - BlockKind::PottedFern => 288, - BlockKind::PottedDandelion => 289, - BlockKind::PottedPoppy => 290, - BlockKind::PottedBlueOrchid => 291, - BlockKind::PottedAllium => 292, - BlockKind::PottedAzureBluet => 293, - BlockKind::PottedRedTulip => 294, - BlockKind::PottedOrangeTulip => 295, - BlockKind::PottedWhiteTulip => 296, - BlockKind::PottedPinkTulip => 297, - BlockKind::PottedOxeyeDaisy => 298, - BlockKind::PottedCornflower => 299, - BlockKind::PottedLilyOfTheValley => 300, - BlockKind::PottedWitherRose => 301, - BlockKind::PottedRedMushroom => 302, - BlockKind::PottedBrownMushroom => 303, - BlockKind::PottedDeadBush => 304, - BlockKind::PottedCactus => 305, - BlockKind::Carrots => 306, - BlockKind::Potatoes => 307, - BlockKind::OakButton => 308, - BlockKind::SpruceButton => 309, - BlockKind::BirchButton => 310, - BlockKind::JungleButton => 311, - BlockKind::AcaciaButton => 312, - BlockKind::DarkOakButton => 313, - BlockKind::SkeletonSkull => 314, - BlockKind::SkeletonWallSkull => 315, - BlockKind::WitherSkeletonSkull => 316, - BlockKind::WitherSkeletonWallSkull => 317, - BlockKind::ZombieHead => 318, - BlockKind::ZombieWallHead => 319, - BlockKind::PlayerHead => 320, - BlockKind::PlayerWallHead => 321, - BlockKind::CreeperHead => 322, - BlockKind::CreeperWallHead => 323, - BlockKind::DragonHead => 324, - BlockKind::DragonWallHead => 325, - BlockKind::Anvil => 326, - BlockKind::ChippedAnvil => 327, - BlockKind::DamagedAnvil => 328, - BlockKind::TrappedChest => 329, - BlockKind::LightWeightedPressurePlate => 330, - BlockKind::HeavyWeightedPressurePlate => 331, - BlockKind::Comparator => 332, - BlockKind::DaylightDetector => 333, - BlockKind::RedstoneBlock => 334, - BlockKind::NetherQuartzOre => 335, - BlockKind::Hopper => 336, - BlockKind::QuartzBlock => 337, - BlockKind::ChiseledQuartzBlock => 338, - BlockKind::QuartzPillar => 339, - BlockKind::QuartzStairs => 340, - BlockKind::ActivatorRail => 341, - BlockKind::Dropper => 342, - BlockKind::WhiteTerracotta => 343, - BlockKind::OrangeTerracotta => 344, - BlockKind::MagentaTerracotta => 345, - BlockKind::LightBlueTerracotta => 346, - BlockKind::YellowTerracotta => 347, - BlockKind::LimeTerracotta => 348, - BlockKind::PinkTerracotta => 349, - BlockKind::GrayTerracotta => 350, - BlockKind::LightGrayTerracotta => 351, - BlockKind::CyanTerracotta => 352, - BlockKind::PurpleTerracotta => 353, - BlockKind::BlueTerracotta => 354, - BlockKind::BrownTerracotta => 355, - BlockKind::GreenTerracotta => 356, - BlockKind::RedTerracotta => 357, - BlockKind::BlackTerracotta => 358, - BlockKind::WhiteStainedGlassPane => 359, - BlockKind::OrangeStainedGlassPane => 360, - BlockKind::MagentaStainedGlassPane => 361, - BlockKind::LightBlueStainedGlassPane => 362, - BlockKind::YellowStainedGlassPane => 363, - BlockKind::LimeStainedGlassPane => 364, - BlockKind::PinkStainedGlassPane => 365, - BlockKind::GrayStainedGlassPane => 366, - BlockKind::LightGrayStainedGlassPane => 367, - BlockKind::CyanStainedGlassPane => 368, - BlockKind::PurpleStainedGlassPane => 369, - BlockKind::BlueStainedGlassPane => 370, - BlockKind::BrownStainedGlassPane => 371, - BlockKind::GreenStainedGlassPane => 372, - BlockKind::RedStainedGlassPane => 373, - BlockKind::BlackStainedGlassPane => 374, - BlockKind::AcaciaStairs => 375, - BlockKind::DarkOakStairs => 376, - BlockKind::SlimeBlock => 377, - BlockKind::Barrier => 378, - BlockKind::IronTrapdoor => 379, - BlockKind::Prismarine => 380, - BlockKind::PrismarineBricks => 381, - BlockKind::DarkPrismarine => 382, - BlockKind::PrismarineStairs => 383, - BlockKind::PrismarineBrickStairs => 384, - BlockKind::DarkPrismarineStairs => 385, - BlockKind::PrismarineSlab => 386, - BlockKind::PrismarineBrickSlab => 387, - BlockKind::DarkPrismarineSlab => 388, - BlockKind::SeaLantern => 389, - BlockKind::HayBlock => 390, - BlockKind::WhiteCarpet => 391, - BlockKind::OrangeCarpet => 392, - BlockKind::MagentaCarpet => 393, - BlockKind::LightBlueCarpet => 394, - BlockKind::YellowCarpet => 395, - BlockKind::LimeCarpet => 396, - BlockKind::PinkCarpet => 397, - BlockKind::GrayCarpet => 398, - BlockKind::LightGrayCarpet => 399, - BlockKind::CyanCarpet => 400, - BlockKind::PurpleCarpet => 401, - BlockKind::BlueCarpet => 402, - BlockKind::BrownCarpet => 403, - BlockKind::GreenCarpet => 404, - BlockKind::RedCarpet => 405, - BlockKind::BlackCarpet => 406, - BlockKind::Terracotta => 407, - BlockKind::CoalBlock => 408, - BlockKind::PackedIce => 409, - BlockKind::Sunflower => 410, - BlockKind::Lilac => 411, - BlockKind::RoseBush => 412, - BlockKind::Peony => 413, - BlockKind::TallGrass => 414, - BlockKind::LargeFern => 415, - BlockKind::WhiteBanner => 416, - BlockKind::OrangeBanner => 417, - BlockKind::MagentaBanner => 418, - BlockKind::LightBlueBanner => 419, - BlockKind::YellowBanner => 420, - BlockKind::LimeBanner => 421, - BlockKind::PinkBanner => 422, - BlockKind::GrayBanner => 423, - BlockKind::LightGrayBanner => 424, - BlockKind::CyanBanner => 425, - BlockKind::PurpleBanner => 426, - BlockKind::BlueBanner => 427, - BlockKind::BrownBanner => 428, - BlockKind::GreenBanner => 429, - BlockKind::RedBanner => 430, - BlockKind::BlackBanner => 431, - BlockKind::WhiteWallBanner => 432, - BlockKind::OrangeWallBanner => 433, - BlockKind::MagentaWallBanner => 434, - BlockKind::LightBlueWallBanner => 435, - BlockKind::YellowWallBanner => 436, - BlockKind::LimeWallBanner => 437, - BlockKind::PinkWallBanner => 438, - BlockKind::GrayWallBanner => 439, - BlockKind::LightGrayWallBanner => 440, - BlockKind::CyanWallBanner => 441, - BlockKind::PurpleWallBanner => 442, - BlockKind::BlueWallBanner => 443, - BlockKind::BrownWallBanner => 444, - BlockKind::GreenWallBanner => 445, - BlockKind::RedWallBanner => 446, - BlockKind::BlackWallBanner => 447, - BlockKind::RedSandstone => 448, - BlockKind::ChiseledRedSandstone => 449, - BlockKind::CutRedSandstone => 450, - BlockKind::RedSandstoneStairs => 451, - BlockKind::OakSlab => 452, - BlockKind::SpruceSlab => 453, - BlockKind::BirchSlab => 454, - BlockKind::JungleSlab => 455, - BlockKind::AcaciaSlab => 456, - BlockKind::DarkOakSlab => 457, - BlockKind::StoneSlab => 458, - BlockKind::SmoothStoneSlab => 459, - BlockKind::SandstoneSlab => 460, - BlockKind::CutSandstoneSlab => 461, - BlockKind::PetrifiedOakSlab => 462, - BlockKind::CobblestoneSlab => 463, - BlockKind::BrickSlab => 464, - BlockKind::StoneBrickSlab => 465, - BlockKind::NetherBrickSlab => 466, - BlockKind::QuartzSlab => 467, - BlockKind::RedSandstoneSlab => 468, - BlockKind::CutRedSandstoneSlab => 469, - BlockKind::PurpurSlab => 470, - BlockKind::SmoothStone => 471, - BlockKind::SmoothSandstone => 472, - BlockKind::SmoothQuartz => 473, - BlockKind::SmoothRedSandstone => 474, - BlockKind::SpruceFenceGate => 475, - BlockKind::BirchFenceGate => 476, - BlockKind::JungleFenceGate => 477, - BlockKind::AcaciaFenceGate => 478, - BlockKind::DarkOakFenceGate => 479, - BlockKind::SpruceFence => 480, - BlockKind::BirchFence => 481, - BlockKind::JungleFence => 482, - BlockKind::AcaciaFence => 483, - BlockKind::DarkOakFence => 484, - BlockKind::SpruceDoor => 485, - BlockKind::BirchDoor => 486, - BlockKind::JungleDoor => 487, - BlockKind::AcaciaDoor => 488, - BlockKind::DarkOakDoor => 489, - BlockKind::EndRod => 490, - BlockKind::ChorusPlant => 491, - BlockKind::ChorusFlower => 492, - BlockKind::PurpurBlock => 493, - BlockKind::PurpurPillar => 494, - BlockKind::PurpurStairs => 495, - BlockKind::EndStoneBricks => 496, - BlockKind::Beetroots => 497, - BlockKind::GrassPath => 498, - BlockKind::EndGateway => 499, - BlockKind::RepeatingCommandBlock => 500, - BlockKind::ChainCommandBlock => 501, - BlockKind::FrostedIce => 502, - BlockKind::MagmaBlock => 503, - BlockKind::NetherWartBlock => 504, - BlockKind::RedNetherBricks => 505, - BlockKind::BoneBlock => 506, - BlockKind::StructureVoid => 507, - BlockKind::Observer => 508, - BlockKind::ShulkerBox => 509, - BlockKind::WhiteShulkerBox => 510, - BlockKind::OrangeShulkerBox => 511, - BlockKind::MagentaShulkerBox => 512, - BlockKind::LightBlueShulkerBox => 513, - BlockKind::YellowShulkerBox => 514, - BlockKind::LimeShulkerBox => 515, - BlockKind::PinkShulkerBox => 516, - BlockKind::GrayShulkerBox => 517, - BlockKind::LightGrayShulkerBox => 518, - BlockKind::CyanShulkerBox => 519, - BlockKind::PurpleShulkerBox => 520, - BlockKind::BlueShulkerBox => 521, - BlockKind::BrownShulkerBox => 522, - BlockKind::GreenShulkerBox => 523, - BlockKind::RedShulkerBox => 524, - BlockKind::BlackShulkerBox => 525, - BlockKind::WhiteGlazedTerracotta => 526, - BlockKind::OrangeGlazedTerracotta => 527, - BlockKind::MagentaGlazedTerracotta => 528, - BlockKind::LightBlueGlazedTerracotta => 529, - BlockKind::YellowGlazedTerracotta => 530, - BlockKind::LimeGlazedTerracotta => 531, - BlockKind::PinkGlazedTerracotta => 532, - BlockKind::GrayGlazedTerracotta => 533, - BlockKind::LightGrayGlazedTerracotta => 534, - BlockKind::CyanGlazedTerracotta => 535, - BlockKind::PurpleGlazedTerracotta => 536, - BlockKind::BlueGlazedTerracotta => 537, - BlockKind::BrownGlazedTerracotta => 538, - BlockKind::GreenGlazedTerracotta => 539, - BlockKind::RedGlazedTerracotta => 540, - BlockKind::BlackGlazedTerracotta => 541, - BlockKind::WhiteConcrete => 542, - BlockKind::OrangeConcrete => 543, - BlockKind::MagentaConcrete => 544, - BlockKind::LightBlueConcrete => 545, - BlockKind::YellowConcrete => 546, - BlockKind::LimeConcrete => 547, - BlockKind::PinkConcrete => 548, - BlockKind::GrayConcrete => 549, - BlockKind::LightGrayConcrete => 550, - BlockKind::CyanConcrete => 551, - BlockKind::PurpleConcrete => 552, - BlockKind::BlueConcrete => 553, - BlockKind::BrownConcrete => 554, - BlockKind::GreenConcrete => 555, - BlockKind::RedConcrete => 556, - BlockKind::BlackConcrete => 557, - BlockKind::WhiteConcretePowder => 558, - BlockKind::OrangeConcretePowder => 559, - BlockKind::MagentaConcretePowder => 560, - BlockKind::LightBlueConcretePowder => 561, - BlockKind::YellowConcretePowder => 562, - BlockKind::LimeConcretePowder => 563, - BlockKind::PinkConcretePowder => 564, - BlockKind::GrayConcretePowder => 565, - BlockKind::LightGrayConcretePowder => 566, - BlockKind::CyanConcretePowder => 567, - BlockKind::PurpleConcretePowder => 568, - BlockKind::BlueConcretePowder => 569, - BlockKind::BrownConcretePowder => 570, - BlockKind::GreenConcretePowder => 571, - BlockKind::RedConcretePowder => 572, - BlockKind::BlackConcretePowder => 573, - BlockKind::Kelp => 574, - BlockKind::KelpPlant => 575, - BlockKind::DriedKelpBlock => 576, - BlockKind::TurtleEgg => 577, - BlockKind::DeadTubeCoralBlock => 578, - BlockKind::DeadBrainCoralBlock => 579, - BlockKind::DeadBubbleCoralBlock => 580, - BlockKind::DeadFireCoralBlock => 581, - BlockKind::DeadHornCoralBlock => 582, - BlockKind::TubeCoralBlock => 583, - BlockKind::BrainCoralBlock => 584, - BlockKind::BubbleCoralBlock => 585, - BlockKind::FireCoralBlock => 586, - BlockKind::HornCoralBlock => 587, - BlockKind::DeadTubeCoral => 588, - BlockKind::DeadBrainCoral => 589, - BlockKind::DeadBubbleCoral => 590, - BlockKind::DeadFireCoral => 591, - BlockKind::DeadHornCoral => 592, - BlockKind::TubeCoral => 593, - BlockKind::BrainCoral => 594, - BlockKind::BubbleCoral => 595, - BlockKind::FireCoral => 596, - BlockKind::HornCoral => 597, - BlockKind::DeadTubeCoralFan => 598, - BlockKind::DeadBrainCoralFan => 599, - BlockKind::DeadBubbleCoralFan => 600, - BlockKind::DeadFireCoralFan => 601, - BlockKind::DeadHornCoralFan => 602, - BlockKind::TubeCoralFan => 603, - BlockKind::BrainCoralFan => 604, - BlockKind::BubbleCoralFan => 605, - BlockKind::FireCoralFan => 606, - BlockKind::HornCoralFan => 607, - BlockKind::DeadTubeCoralWallFan => 608, - BlockKind::DeadBrainCoralWallFan => 609, - BlockKind::DeadBubbleCoralWallFan => 610, - BlockKind::DeadFireCoralWallFan => 611, - BlockKind::DeadHornCoralWallFan => 612, - BlockKind::TubeCoralWallFan => 613, - BlockKind::BrainCoralWallFan => 614, - BlockKind::BubbleCoralWallFan => 615, - BlockKind::FireCoralWallFan => 616, - BlockKind::HornCoralWallFan => 617, - BlockKind::SeaPickle => 618, - BlockKind::BlueIce => 619, - BlockKind::Conduit => 620, - BlockKind::BambooSapling => 621, - BlockKind::Bamboo => 622, - BlockKind::PottedBamboo => 623, - BlockKind::VoidAir => 624, - BlockKind::CaveAir => 625, - BlockKind::BubbleColumn => 626, - BlockKind::PolishedGraniteStairs => 627, - BlockKind::SmoothRedSandstoneStairs => 628, - BlockKind::MossyStoneBrickStairs => 629, - BlockKind::PolishedDioriteStairs => 630, - BlockKind::MossyCobblestoneStairs => 631, - BlockKind::EndStoneBrickStairs => 632, - BlockKind::StoneStairs => 633, - BlockKind::SmoothSandstoneStairs => 634, - BlockKind::SmoothQuartzStairs => 635, - BlockKind::GraniteStairs => 636, - BlockKind::AndesiteStairs => 637, - BlockKind::RedNetherBrickStairs => 638, - BlockKind::PolishedAndesiteStairs => 639, - BlockKind::DioriteStairs => 640, - BlockKind::PolishedGraniteSlab => 641, - BlockKind::SmoothRedSandstoneSlab => 642, - BlockKind::MossyStoneBrickSlab => 643, - BlockKind::PolishedDioriteSlab => 644, - BlockKind::MossyCobblestoneSlab => 645, - BlockKind::EndStoneBrickSlab => 646, - BlockKind::SmoothSandstoneSlab => 647, - BlockKind::SmoothQuartzSlab => 648, - BlockKind::GraniteSlab => 649, - BlockKind::AndesiteSlab => 650, - BlockKind::RedNetherBrickSlab => 651, - BlockKind::PolishedAndesiteSlab => 652, - BlockKind::DioriteSlab => 653, - BlockKind::BrickWall => 654, - BlockKind::PrismarineWall => 655, - BlockKind::RedSandstoneWall => 656, - BlockKind::MossyStoneBrickWall => 657, - BlockKind::GraniteWall => 658, - BlockKind::StoneBrickWall => 659, - BlockKind::NetherBrickWall => 660, - BlockKind::AndesiteWall => 661, - BlockKind::RedNetherBrickWall => 662, - BlockKind::SandstoneWall => 663, - BlockKind::EndStoneBrickWall => 664, - BlockKind::DioriteWall => 665, - BlockKind::Scaffolding => 666, - BlockKind::Loom => 667, - BlockKind::Barrel => 668, - BlockKind::Smoker => 669, - BlockKind::BlastFurnace => 670, - BlockKind::CartographyTable => 671, - BlockKind::FletchingTable => 672, - BlockKind::Grindstone => 673, - BlockKind::Lectern => 674, - BlockKind::SmithingTable => 675, - BlockKind::Stonecutter => 676, - BlockKind::Bell => 677, - BlockKind::Lantern => 678, - BlockKind::SoulLantern => 679, - BlockKind::Campfire => 680, - BlockKind::SoulCampfire => 681, - BlockKind::SweetBerryBush => 682, - BlockKind::WarpedStem => 683, - BlockKind::StrippedWarpedStem => 684, - BlockKind::WarpedHyphae => 685, - BlockKind::StrippedWarpedHyphae => 686, - BlockKind::WarpedNylium => 687, - BlockKind::WarpedFungus => 688, - BlockKind::WarpedWartBlock => 689, - BlockKind::WarpedRoots => 690, - BlockKind::NetherSprouts => 691, - BlockKind::CrimsonStem => 692, - BlockKind::StrippedCrimsonStem => 693, - BlockKind::CrimsonHyphae => 694, - BlockKind::StrippedCrimsonHyphae => 695, - BlockKind::CrimsonNylium => 696, - BlockKind::CrimsonFungus => 697, - BlockKind::Shroomlight => 698, - BlockKind::WeepingVines => 699, - BlockKind::WeepingVinesPlant => 700, - BlockKind::TwistingVines => 701, - BlockKind::TwistingVinesPlant => 702, - BlockKind::CrimsonRoots => 703, - BlockKind::CrimsonPlanks => 704, - BlockKind::WarpedPlanks => 705, - BlockKind::CrimsonSlab => 706, - BlockKind::WarpedSlab => 707, - BlockKind::CrimsonPressurePlate => 708, - BlockKind::WarpedPressurePlate => 709, - BlockKind::CrimsonFence => 710, - BlockKind::WarpedFence => 711, - BlockKind::CrimsonTrapdoor => 712, - BlockKind::WarpedTrapdoor => 713, - BlockKind::CrimsonFenceGate => 714, - BlockKind::WarpedFenceGate => 715, - BlockKind::CrimsonStairs => 716, - BlockKind::WarpedStairs => 717, - BlockKind::CrimsonButton => 718, - BlockKind::WarpedButton => 719, - BlockKind::CrimsonDoor => 720, - BlockKind::WarpedDoor => 721, - BlockKind::CrimsonSign => 722, - BlockKind::WarpedSign => 723, - BlockKind::CrimsonWallSign => 724, - BlockKind::WarpedWallSign => 725, - BlockKind::StructureBlock => 726, - BlockKind::Jigsaw => 727, - BlockKind::Composter => 728, - BlockKind::Target => 729, - BlockKind::BeeNest => 730, - BlockKind::Beehive => 731, - BlockKind::HoneyBlock => 732, - BlockKind::HoneycombBlock => 733, - BlockKind::NetheriteBlock => 734, - BlockKind::AncientDebris => 735, - BlockKind::CryingObsidian => 736, - BlockKind::RespawnAnchor => 737, - BlockKind::PottedCrimsonFungus => 738, - BlockKind::PottedWarpedFungus => 739, - BlockKind::PottedCrimsonRoots => 740, - BlockKind::PottedWarpedRoots => 741, - BlockKind::Lodestone => 742, - BlockKind::Blackstone => 743, - BlockKind::BlackstoneStairs => 744, - BlockKind::BlackstoneWall => 745, - BlockKind::BlackstoneSlab => 746, - BlockKind::PolishedBlackstone => 747, - BlockKind::PolishedBlackstoneBricks => 748, - BlockKind::CrackedPolishedBlackstoneBricks => 749, - BlockKind::ChiseledPolishedBlackstone => 750, - BlockKind::PolishedBlackstoneBrickSlab => 751, - BlockKind::PolishedBlackstoneBrickStairs => 752, - BlockKind::PolishedBlackstoneBrickWall => 753, - BlockKind::GildedBlackstone => 754, - BlockKind::PolishedBlackstoneStairs => 755, - BlockKind::PolishedBlackstoneSlab => 756, - BlockKind::PolishedBlackstonePressurePlate => 757, - BlockKind::PolishedBlackstoneButton => 758, - BlockKind::PolishedBlackstoneWall => 759, - BlockKind::ChiseledNetherBricks => 760, - BlockKind::CrackedNetherBricks => 761, - BlockKind::QuartzBricks => 762, + BlockKind::SpruceSlab => 467u32, + BlockKind::CyanWool => 117u32, + BlockKind::KelpPlant => 589u32, + BlockKind::Bamboo => 636u32, + BlockKind::LightGrayBanner => 438u32, + BlockKind::GrayStainedGlass => 221u32, + BlockKind::TwistingVinesPlant => 716u32, + BlockKind::AmethystBlock => 811u32, + BlockKind::Lilac => 425u32, + BlockKind::PottedLilyOfTheValley => 313u32, + BlockKind::BrainCoralFan => 618u32, + BlockKind::CrimsonWallSign => 738u32, + BlockKind::CyanStainedGlass => 223u32, + BlockKind::PinkTerracotta => 362u32, + BlockKind::MossyCobblestoneStairs => 645u32, + BlockKind::DeadHornCoralFan => 616u32, + BlockKind::StrippedSpruceWood => 57u32, + BlockKind::RedstoneWire => 154u32, + BlockKind::AttachedPumpkinStem => 253u32, + BlockKind::PottedJungleSapling => 298u32, + BlockKind::CyanConcretePowder => 581u32, + BlockKind::PurpleConcrete => 566u32, + BlockKind::RedGlazedTerracotta => 554u32, + BlockKind::StrippedBirchWood => 58u32, + BlockKind::JungleTrapdoor => 233u32, + BlockKind::Carrots => 319u32, + BlockKind::FireCoral => 610u32, + BlockKind::Calcite => 818u32, + BlockKind::WaxedOxidizedCutCopperStairs => 848u32, + BlockKind::InfestedCobblestone => 241u32, + BlockKind::RedStainedGlassPane => 386u32, + BlockKind::CommandBlock => 290u32, + BlockKind::DaylightDetector => 346u32, + BlockKind::SkeletonSkull => 327u32, + BlockKind::GraniteWall => 672u32, + BlockKind::LimeBed => 86u32, + BlockKind::BlueWallBanner => 457u32, + BlockKind::LightWeightedPressurePlate => 343u32, + BlockKind::BrownTerracotta => 368u32, + BlockKind::BrownWallBanner => 458u32, + BlockKind::SpruceFenceGate => 489u32, + BlockKind::DarkOakFenceGate => 493u32, + BlockKind::SmoothQuartzSlab => 662u32, + BlockKind::RedSandstone => 462u32, + BlockKind::DarkOakLeaves => 67u32, + BlockKind::Gravel => 30u32, + BlockKind::LightGrayCandleCake => 803u32, + BlockKind::RawGoldBlock => 895u32, + BlockKind::Cake => 212u32, + BlockKind::WitherRose => 136u32, + BlockKind::RedTerracotta => 370u32, + BlockKind::StoneSlab => 472u32, + BlockKind::CyanGlazedTerracotta => 549u32, + BlockKind::PolishedBlackstone => 761u32, + BlockKind::DeadBubbleCoral => 604u32, + BlockKind::AcaciaFenceGate => 492u32, + BlockKind::RedConcretePowder => 586u32, + BlockKind::PolishedGraniteStairs => 641u32, + BlockKind::PurpleStainedGlass => 224u32, + BlockKind::SmoothStone => 485u32, + BlockKind::EndStoneBricks => 510u32, + BlockKind::SpruceLeaves => 63u32, + BlockKind::GraniteSlab => 663u32, + BlockKind::PottedFloweringAzaleaBush => 897u32, + BlockKind::AcaciaSlab => 470u32, + BlockKind::GreenWallBanner => 459u32, + BlockKind::PinkConcretePowder => 578u32, + BlockKind::CutSandstone => 79u32, + BlockKind::BirchSign => 164u32, + BlockKind::AncientDebris => 749u32, + BlockKind::AndesiteSlab => 664u32, + BlockKind::RawIronBlock => 893u32, + BlockKind::InfestedMossyStoneBricks => 243u32, + BlockKind::CutRedSandstoneSlab => 483u32, + BlockKind::PolishedGranite => 3u32, + BlockKind::BlueBanner => 441u32, + BlockKind::SmoothSandstone => 486u32, + BlockKind::ChiseledSandstone => 78u32, + BlockKind::Repeater => 213u32, + BlockKind::StrippedDarkOakWood => 61u32, + BlockKind::MagentaTerracotta => 358u32, + BlockKind::GreenShulkerBox => 537u32, + BlockKind::WarpedStairs => 731u32, + BlockKind::StoneStairs => 647u32, + BlockKind::BrownCarpet => 417u32, + BlockKind::WarpedFenceGate => 729u32, + BlockKind::SpruceTrapdoor => 231u32, + BlockKind::ExposedCutCopperSlab => 838u32, + BlockKind::LightGrayTerracotta => 364u32, + BlockKind::BlackTerracotta => 371u32, + BlockKind::WaxedWeatheredCutCopperSlab => 853u32, + BlockKind::FireCoralBlock => 600u32, + BlockKind::BlastFurnace => 684u32, + BlockKind::BlueWool => 119u32, + BlockKind::WaxedExposedCutCopper => 846u32, + BlockKind::WaxedWeatheredCutCopperStairs => 849u32, + BlockKind::BrainCoralBlock => 598u32, + BlockKind::PolishedBlackstoneButton => 772u32, + BlockKind::BlueOrchid => 127u32, + BlockKind::PolishedBlackstoneWall => 773u32, + BlockKind::WhiteGlazedTerracotta => 540u32, + BlockKind::ChippedAnvil => 340u32, + BlockKind::Poppy => 126u32, + BlockKind::IronTrapdoor => 393u32, + BlockKind::GreenWool => 121u32, + BlockKind::PolishedDioriteStairs => 644u32, + BlockKind::BirchWallSign => 174u32, + BlockKind::LightBlueTerracotta => 359u32, + BlockKind::SoulLantern => 693u32, + BlockKind::DeepslateEmeraldOre => 282u32, + BlockKind::PurpleCandle => 788u32, + BlockKind::Tripwire => 285u32, + BlockKind::Blackstone => 757u32, + BlockKind::ExposedCutCopperStairs => 834u32, + BlockKind::BlackWool => 123u32, + BlockKind::BlackBanner => 445u32, + BlockKind::Candle => 777u32, + BlockKind::BlackstoneWall => 759u32, + BlockKind::Bricks => 142u32, + BlockKind::OakWallSign => 172u32, + BlockKind::GrayBed => 88u32, + BlockKind::MagmaBlock => 517u32, + BlockKind::DarkOakSlab => 471u32, + BlockKind::SmoothRedSandstoneSlab => 656u32, + BlockKind::Obsidian => 146u32, + BlockKind::Glowstone => 208u32, + BlockKind::MagentaBed => 83u32, + BlockKind::DarkPrismarineSlab => 402u32, + BlockKind::Fern => 102u32, + BlockKind::DeadBubbleCoralBlock => 594u32, + BlockKind::GraniteStairs => 650u32, + BlockKind::PoweredRail => 97u32, + BlockKind::BubbleColumn => 640u32, + BlockKind::WhiteWool => 108u32, + BlockKind::BirchFenceGate => 490u32, + BlockKind::Dispenser => 76u32, + BlockKind::LightGrayStainedGlass => 222u32, + BlockKind::StructureBlock => 740u32, + BlockKind::PottedAzaleaBush => 896u32, + BlockKind::PurpleShulkerBox => 534u32, + BlockKind::MossyCobblestone => 145u32, + BlockKind::OakButton => 321u32, + BlockKind::PlayerWallHead => 334u32, + BlockKind::PinkCandleCake => 801u32, + BlockKind::StoneBrickStairs => 261u32, + BlockKind::Campfire => 694u32, + BlockKind::RedstoneWallTorch => 190u32, + BlockKind::LightBlueWallBanner => 449u32, + BlockKind::AndesiteStairs => 651u32, + BlockKind::Prismarine => 394u32, + BlockKind::CrimsonSlab => 720u32, + BlockKind::Sunflower => 424u32, + BlockKind::DeadTubeCoralFan => 612u32, + BlockKind::OakLog => 38u32, + BlockKind::ExposedCopper => 824u32, + BlockKind::YellowGlazedTerracotta => 544u32, + BlockKind::AndesiteWall => 675u32, + BlockKind::BlackCandle => 793u32, + BlockKind::Dandelion => 125u32, + BlockKind::WhiteCandleCake => 795u32, + BlockKind::EmeraldOre => 281u32, + BlockKind::PurpleTerracotta => 366u32, + BlockKind::WeepingVines => 713u32, + BlockKind::CyanShulkerBox => 533u32, + BlockKind::NetherPortal => 209u32, + BlockKind::PolishedAndesiteSlab => 666u32, + BlockKind::PolishedBlackstoneBrickWall => 767u32, + BlockKind::JungleLeaves => 65u32, + BlockKind::CrackedNetherBricks => 775u32, + BlockKind::YellowCandleCake => 799u32, + BlockKind::BrownGlazedTerracotta => 552u32, + BlockKind::Torch => 147u32, + BlockKind::PottedRedMushroom => 315u32, + BlockKind::PottedBlueOrchid => 304u32, + BlockKind::WaxedOxidizedCutCopper => 844u32, + BlockKind::PurpleBed => 91u32, + BlockKind::LimeConcretePowder => 577u32, + BlockKind::SmoothQuartz => 487u32, + BlockKind::WarpedWartBlock => 703u32, + BlockKind::WaxedExposedCutCopperStairs => 850u32, + BlockKind::PottedPinkTulip => 310u32, + BlockKind::Cobweb => 100u32, + BlockKind::MossyStoneBricks => 237u32, + BlockKind::LightBlueCarpet => 408u32, + BlockKind::PinkBanner => 436u32, + BlockKind::Target => 743u32, + BlockKind::DarkOakSign => 167u32, + BlockKind::StoneBricks => 236u32, + BlockKind::GildedBlackstone => 768u32, + BlockKind::StrippedDarkOakLog => 48u32, + BlockKind::ChiseledRedSandstone => 463u32, + BlockKind::LightBlueConcrete => 559u32, + BlockKind::DioriteStairs => 654u32, + BlockKind::RedCarpet => 419u32, + BlockKind::RoseBush => 426u32, + BlockKind::RedShulkerBox => 538u32, + BlockKind::SpruceWallSign => 173u32, + BlockKind::PolishedBasalt => 205u32, + BlockKind::LightGrayConcrete => 564u32, + BlockKind::StoneButton => 191u32, + BlockKind::SmoothBasalt => 892u32, + BlockKind::GreenCandleCake => 808u32, + BlockKind::PottedAcaciaSapling => 299u32, + BlockKind::QuartzPillar => 352u32, + BlockKind::BrownBed => 93u32, + BlockKind::CutCopperStairs => 835u32, + BlockKind::TubeCoralWallFan => 627u32, + BlockKind::BlackBed => 96u32, + BlockKind::DeadFireCoral => 605u32, + BlockKind::AcaciaSapling => 23u32, + BlockKind::JungleSlab => 469u32, + BlockKind::JungleButton => 324u32, + BlockKind::WaxedCutCopper => 847u32, + BlockKind::MagentaCandle => 780u32, + BlockKind::LightGrayBed => 89u32, + BlockKind::TrappedChest => 342u32, + BlockKind::LightBlueStainedGlassPane => 375u32, + BlockKind::Spawner => 151u32, + BlockKind::Bedrock => 25u32, + BlockKind::PumpkinStem => 255u32, + BlockKind::NetherBrickWall => 674u32, + BlockKind::CutSandstoneSlab => 475u32, + BlockKind::CrimsonFenceGate => 728u32, + BlockKind::Deepslate => 871u32, + BlockKind::InfestedCrackedStoneBricks => 244u32, + BlockKind::BlackWallBanner => 461u32, + BlockKind::DeepslateTileWall => 883u32, + BlockKind::DetectorRail => 98u32, + BlockKind::OxeyeDaisy => 134u32, + BlockKind::GreenConcrete => 569u32, + BlockKind::OakPlanks => 13u32, + BlockKind::GrayCarpet => 412u32, + BlockKind::Ice => 193u32, + BlockKind::AcaciaStairs => 388u32, + BlockKind::Terracotta => 421u32, + BlockKind::PolishedAndesiteStairs => 653u32, + BlockKind::MagentaWallBanner => 448u32, + BlockKind::PottedCactus => 318u32, + BlockKind::YellowConcrete => 560u32, + BlockKind::AmethystCluster => 813u32, + BlockKind::StrippedBirchLog => 45u32, + BlockKind::DeepslateBrickStairs => 885u32, + BlockKind::Cauldron => 270u32, + BlockKind::Grindstone => 687u32, + BlockKind::BlackCandleCake => 810u32, + BlockKind::PurpleWallBanner => 456u32, + BlockKind::DarkOakWallSign => 177u32, + BlockKind::DeadFireCoralWallFan => 625u32, + BlockKind::BuddingAmethyst => 812u32, + BlockKind::JungleWallSign => 176u32, + BlockKind::GreenTerracotta => 369u32, + BlockKind::BlueTerracotta => 367u32, + BlockKind::SmallAmethystBud => 816u32, + BlockKind::PottedWarpedRoots => 755u32, + BlockKind::SoulSand => 202u32, + BlockKind::GreenConcretePowder => 585u32, + BlockKind::PolishedBlackstonePressurePlate => 771u32, + BlockKind::NetherBrickFence => 265u32, + BlockKind::MossyCobblestoneSlab => 659u32, + BlockKind::SporeBlossom => 861u32, + BlockKind::MossyStoneBrickSlab => 657u32, + BlockKind::YellowCarpet => 409u32, + BlockKind::PolishedBlackstoneBricks => 762u32, + BlockKind::LightBlueShulkerBox => 527u32, + BlockKind::SoulTorch => 206u32, + BlockKind::YellowWallBanner => 450u32, + BlockKind::WarpedSign => 737u32, + BlockKind::DeadBrainCoral => 603u32, + BlockKind::DeadBush => 103u32, + BlockKind::OakLeaves => 62u32, + BlockKind::MagentaStainedGlassPane => 374u32, + BlockKind::GrayStainedGlassPane => 379u32, + BlockKind::GrayShulkerBox => 531u32, + BlockKind::Fire => 149u32, + BlockKind::FireCoralWallFan => 630u32, + BlockKind::SeaPickle => 632u32, + BlockKind::StructureVoid => 521u32, + BlockKind::CobblestoneWall => 292u32, + BlockKind::GrayBanner => 437u32, + BlockKind::YellowBanner => 434u32, + BlockKind::OakDoor => 168u32, + BlockKind::PurpleGlazedTerracotta => 550u32, + BlockKind::RedConcrete => 570u32, + BlockKind::PottedBamboo => 637u32, + BlockKind::SkeletonWallSkull => 328u32, + BlockKind::WitherSkeletonWallSkull => 330u32, + BlockKind::WaxedCutCopperStairs => 851u32, + BlockKind::ChorusFlower => 506u32, + BlockKind::StonePressurePlate => 179u32, + BlockKind::StrippedAcaciaLog => 47u32, + BlockKind::YellowConcretePowder => 576u32, + BlockKind::IronBars => 249u32, + BlockKind::DragonEgg => 277u32, + BlockKind::Farmland => 160u32, + BlockKind::OrangeGlazedTerracotta => 541u32, + BlockKind::DeepslateCoalOre => 36u32, + BlockKind::RedNetherBrickSlab => 665u32, + BlockKind::NoteBlock => 80u32, + BlockKind::EndStoneBrickWall => 678u32, + BlockKind::MagentaConcrete => 558u32, + BlockKind::StrippedWarpedStem => 698u32, + BlockKind::DioriteWall => 679u32, + BlockKind::ShulkerBox => 523u32, + BlockKind::Cactus => 195u32, + BlockKind::StrippedSpruceLog => 44u32, + BlockKind::WhiteShulkerBox => 524u32, + BlockKind::Potatoes => 320u32, + BlockKind::Mycelium => 262u32, + BlockKind::BrownConcretePowder => 584u32, + BlockKind::ExposedCutCopper => 830u32, + BlockKind::PinkWallBanner => 452u32, + BlockKind::DarkOakFence => 498u32, + BlockKind::PottedDarkOakSapling => 300u32, + BlockKind::DeadFireCoralBlock => 595u32, + BlockKind::DeadBubbleCoralFan => 614u32, + BlockKind::NetherWartBlock => 518u32, + BlockKind::BubbleCoralWallFan => 629u32, + BlockKind::ChorusPlant => 505u32, + BlockKind::CrimsonHyphae => 708u32, + BlockKind::DeepslateCopperOre => 827u32, + BlockKind::MelonStem => 256u32, + BlockKind::WhiteTerracotta => 356u32, + BlockKind::LilyOfTheValley => 137u32, + BlockKind::EndGateway => 513u32, + BlockKind::Dirt => 9u32, + BlockKind::VoidAir => 638u32, + BlockKind::PinkStainedGlassPane => 378u32, + BlockKind::PurpleWool => 118u32, + BlockKind::CrimsonNylium => 710u32, + BlockKind::GrayCandleCake => 802u32, + BlockKind::StickyPiston => 99u32, + BlockKind::SculkSensor => 821u32, + BlockKind::BirchStairs => 288u32, + BlockKind::DarkOakStairs => 389u32, + BlockKind::DriedKelpBlock => 590u32, + BlockKind::RedSandstoneStairs => 465u32, + BlockKind::CrimsonRoots => 717u32, + BlockKind::MagentaStainedGlass => 216u32, + BlockKind::DamagedAnvil => 341u32, + BlockKind::IronOre => 33u32, + BlockKind::BlueConcretePowder => 583u32, + BlockKind::PackedIce => 423u32, + BlockKind::RedSandstoneSlab => 482u32, + BlockKind::YellowStainedGlassPane => 376u32, + BlockKind::PrismarineStairs => 397u32, + BlockKind::Vine => 257u32, + BlockKind::BirchPressurePlate => 183u32, + BlockKind::SmoothSandstoneSlab => 661u32, + BlockKind::SoulFire => 150u32, + BlockKind::GreenStainedGlass => 227u32, + BlockKind::GrayWool => 115u32, + BlockKind::BirchSlab => 468u32, + BlockKind::Snow => 192u32, + BlockKind::TubeCoral => 607u32, + BlockKind::PolishedGraniteSlab => 655u32, + BlockKind::BlackConcretePowder => 587u32, + BlockKind::Stonecutter => 690u32, + BlockKind::Jigsaw => 741u32, + BlockKind::Clay => 196u32, + BlockKind::Sandstone => 77u32, + BlockKind::LapisOre => 73u32, + BlockKind::WhiteStainedGlass => 214u32, + BlockKind::CyanCarpet => 414u32, + BlockKind::BubbleCoral => 609u32, + BlockKind::AcaciaFence => 497u32, + BlockKind::Loom => 681u32, + BlockKind::SpruceSign => 163u32, + BlockKind::OxidizedCutCopperSlab => 836u32, + BlockKind::CobbledDeepslate => 872u32, + BlockKind::PolishedDeepslateStairs => 877u32, + BlockKind::TurtleEgg => 591u32, + BlockKind::IronDoor => 180u32, + BlockKind::WaxedWeatheredCopper => 841u32, + BlockKind::JunglePressurePlate => 184u32, + BlockKind::RespawnAnchor => 751u32, + BlockKind::LightGrayWool => 116u32, + BlockKind::RedstoneBlock => 347u32, + BlockKind::SpruceFence => 494u32, + BlockKind::YellowWool => 112u32, + BlockKind::Tnt => 143u32, + BlockKind::JungleFence => 496u32, + BlockKind::CrimsonDoor => 734u32, + BlockKind::BirchFence => 495u32, + BlockKind::JungleLog => 41u32, + BlockKind::LimeBanner => 435u32, + BlockKind::QuartzSlab => 481u32, + BlockKind::AcaciaTrapdoor => 234u32, + BlockKind::CryingObsidian => 750u32, + BlockKind::DeadFireCoralFan => 615u32, + BlockKind::PurpurStairs => 509u32, + BlockKind::LargeFern => 429u32, + BlockKind::HangingRoots => 869u32, + BlockKind::DirtPath => 512u32, + BlockKind::DarkOakPlanks => 18u32, + BlockKind::GoldBlock => 140u32, + BlockKind::Beehive => 745u32, + BlockKind::AcaciaLeaves => 66u32, + BlockKind::PinkTulip => 133u32, + BlockKind::DeepslateBrickSlab => 886u32, + BlockKind::Beetroots => 511u32, + BlockKind::BlackShulkerBox => 539u32, + BlockKind::IronBlock => 141u32, + BlockKind::BeeNest => 744u32, + BlockKind::ChiseledPolishedBlackstone => 764u32, + BlockKind::MagentaConcretePowder => 574u32, + BlockKind::DeepslateLapisOre => 74u32, + BlockKind::OrangeTulip => 131u32, + BlockKind::BlueCandleCake => 806u32, + BlockKind::PinkWool => 114u32, + BlockKind::JungleSign => 166u32, + BlockKind::BlackConcrete => 571u32, + BlockKind::DeadHornCoral => 606u32, + BlockKind::WarpedRoots => 704u32, + BlockKind::JungleSapling => 22u32, + BlockKind::Beacon => 291u32, + BlockKind::SpruceStairs => 287u32, + BlockKind::PottedSpruceSapling => 296u32, + BlockKind::BirchWood => 52u32, + BlockKind::RedstoneTorch => 189u32, + BlockKind::WitherSkeletonSkull => 329u32, + BlockKind::AcaciaWood => 54u32, + BlockKind::LightGrayCarpet => 413u32, + BlockKind::MediumAmethystBud => 815u32, + BlockKind::BirchSapling => 21u32, + BlockKind::RawCopperBlock => 894u32, + BlockKind::MossyStoneBrickWall => 671u32, + BlockKind::InfestedStone => 240u32, + BlockKind::SnowBlock => 194u32, + BlockKind::JungleStairs => 289u32, + BlockKind::BrickSlab => 478u32, + BlockKind::ChiseledQuartzBlock => 351u32, + BlockKind::NetherGoldOre => 37u32, + BlockKind::StrippedCrimsonHyphae => 709u32, + BlockKind::DeadHornCoralBlock => 596u32, + BlockKind::CrimsonPressurePlate => 722u32, + BlockKind::DeepslateGoldOre => 32u32, + BlockKind::GrayCandle => 785u32, + BlockKind::WaterCauldron => 271u32, + BlockKind::Scaffolding => 680u32, + BlockKind::DioriteSlab => 667u32, + BlockKind::LightGrayGlazedTerracotta => 548u32, + BlockKind::YellowShulkerBox => 528u32, + BlockKind::WaxedOxidizedCopper => 843u32, + BlockKind::BlackStainedGlass => 229u32, + BlockKind::CrimsonFence => 724u32, + BlockKind::OrangeCandle => 779u32, + BlockKind::EndStoneBrickSlab => 660u32, + BlockKind::PolishedDioriteSlab => 658u32, + BlockKind::OrangeShulkerBox => 525u32, + BlockKind::PurpurSlab => 484u32, + BlockKind::StrippedWarpedHyphae => 700u32, + BlockKind::BrownMushroomBlock => 246u32, + BlockKind::HornCoralBlock => 601u32, + BlockKind::PottedWhiteTulip => 309u32, + BlockKind::CrackedPolishedBlackstoneBricks => 763u32, + BlockKind::PottedCrimsonFungus => 752u32, + BlockKind::Stone => 1u32, + BlockKind::LightBlueCandle => 781u32, + BlockKind::BigDripleaf => 866u32, + BlockKind::ChiseledNetherBricks => 774u32, + BlockKind::BrewingStand => 269u32, + BlockKind::WeatheredCutCopper => 829u32, + BlockKind::TallSeagrass => 105u32, + BlockKind::HayBlock => 404u32, + BlockKind::SoulCampfire => 695u32, + BlockKind::LightBlueStainedGlass => 217u32, + BlockKind::CrackedDeepslateTiles => 890u32, + BlockKind::NetherBrickSlab => 480u32, + BlockKind::BlueGlazedTerracotta => 551u32, + BlockKind::BrownCandleCake => 807u32, + BlockKind::RedSand => 29u32, + BlockKind::OrangeWool => 109u32, + BlockKind::EndStoneBrickStairs => 646u32, + BlockKind::Azalea => 862u32, + BlockKind::PottedDandelion => 302u32, + BlockKind::OakPressurePlate => 181u32, + BlockKind::DripstoneBlock => 858u32, + BlockKind::CoalOre => 35u32, + BlockKind::SoulSoil => 203u32, + BlockKind::LightningRod => 856u32, + BlockKind::MushroomStem => 248u32, + BlockKind::FletchingTable => 686u32, + BlockKind::AcaciaPressurePlate => 185u32, + BlockKind::JungleWood => 53u32, + BlockKind::SmithingTable => 689u32, + BlockKind::GrayWallBanner => 453u32, + BlockKind::DeadBubbleCoralWallFan => 624u32, + BlockKind::WarpedStem => 697u32, + BlockKind::CyanConcrete => 565u32, + BlockKind::DarkOakWood => 55u32, + BlockKind::SweetBerryBush => 696u32, + BlockKind::LimeWool => 113u32, + BlockKind::BirchLeaves => 64u32, + BlockKind::OakFenceGate => 259u32, + BlockKind::LapisBlock => 75u32, + BlockKind::FireCoralFan => 620u32, + BlockKind::DarkOakButton => 326u32, + BlockKind::PolishedAndesite => 7u32, + BlockKind::NetherQuartzOre => 348u32, + BlockKind::Light => 392u32, + BlockKind::PetrifiedOakSlab => 476u32, + BlockKind::PolishedDeepslate => 876u32, + BlockKind::HornCoralFan => 621u32, + BlockKind::BrainCoral => 608u32, + BlockKind::OakSapling => 19u32, + BlockKind::CrimsonSign => 736u32, + BlockKind::DeepslateIronOre => 34u32, + BlockKind::WeatheredCutCopperStairs => 833u32, + BlockKind::RedMushroom => 139u32, + BlockKind::StrippedJungleLog => 46u32, + BlockKind::PurpurBlock => 507u32, + BlockKind::CyanWallBanner => 455u32, + BlockKind::JungleFenceGate => 491u32, + BlockKind::CobblestoneStairs => 171u32, + BlockKind::Sponge => 70u32, + BlockKind::MagentaWool => 110u32, + BlockKind::PlayerHead => 333u32, + BlockKind::PolishedDeepslateWall => 879u32, + BlockKind::Netherrack => 201u32, + BlockKind::OrangeTerracotta => 357u32, + BlockKind::PottedCrimsonRoots => 754u32, + BlockKind::Chest => 153u32, + BlockKind::OxidizedCutCopperStairs => 832u32, + BlockKind::Jukebox => 198u32, + BlockKind::BrownStainedGlassPane => 384u32, + BlockKind::AttachedMelonStem => 254u32, + BlockKind::RepeatingCommandBlock => 514u32, + BlockKind::BrownStainedGlass => 226u32, + BlockKind::DeadTubeCoral => 602u32, + BlockKind::Seagrass => 104u32, + BlockKind::CobbledDeepslateSlab => 874u32, + BlockKind::SandstoneWall => 677u32, + BlockKind::FrostedIce => 516u32, + BlockKind::BirchLog => 40u32, + BlockKind::BrownMushroom => 138u32, + BlockKind::NetherBricks => 264u32, + BlockKind::OrangeCarpet => 406u32, + BlockKind::BubbleCoralFan => 619u32, + BlockKind::PottedWitherRose => 314u32, + BlockKind::OakStairs => 152u32, + BlockKind::Hopper => 349u32, + BlockKind::RedCandle => 792u32, + BlockKind::SpruceWood => 51u32, + BlockKind::PinkCandle => 784u32, + BlockKind::WhiteTulip => 132u32, + BlockKind::Ladder => 169u32, + BlockKind::BirchTrapdoor => 232u32, + BlockKind::BlackstoneStairs => 758u32, + BlockKind::DeepslateBrickWall => 887u32, + BlockKind::EmeraldBlock => 286u32, + BlockKind::Conduit => 634u32, + BlockKind::GrayTerracotta => 363u32, + BlockKind::CutRedSandstone => 464u32, + BlockKind::CyanTerracotta => 365u32, + BlockKind::CoarseDirt => 10u32, + BlockKind::DarkPrismarine => 396u32, + BlockKind::SeaLantern => 403u32, + BlockKind::EndRod => 504u32, + BlockKind::PointedDripstone => 857u32, + BlockKind::BlueStainedGlassPane => 383u32, + BlockKind::CrimsonPlanks => 718u32, + BlockKind::CobbledDeepslateWall => 875u32, + BlockKind::Piston => 106u32, + BlockKind::PolishedDeepslateSlab => 878u32, + BlockKind::Dropper => 355u32, + BlockKind::CrimsonButton => 732u32, + BlockKind::WarpedTrapdoor => 727u32, + BlockKind::DarkPrismarineStairs => 399u32, + BlockKind::WarpedFungus => 702u32, + BlockKind::BigDripleafStem => 867u32, + BlockKind::BrownCandle => 790u32, + BlockKind::OakTrapdoor => 230u32, + BlockKind::InfestedDeepslate => 891u32, + BlockKind::WhiteConcrete => 556u32, + BlockKind::CutCopper => 831u32, + BlockKind::Cocoa => 279u32, + BlockKind::DeepslateRedstoneOre => 188u32, + BlockKind::LightBlueBanner => 433u32, + BlockKind::DeepslateTileSlab => 882u32, + BlockKind::PinkConcrete => 562u32, + BlockKind::PottedOxeyeDaisy => 311u32, + BlockKind::WarpedFence => 725u32, + BlockKind::YellowTerracotta => 360u32, + BlockKind::LavaCauldron => 272u32, + BlockKind::RedNetherBricks => 519u32, + BlockKind::LimeStainedGlass => 219u32, + BlockKind::WhiteCandle => 778u32, + BlockKind::Granite => 2u32, + BlockKind::LimeWallBanner => 451u32, + BlockKind::InfestedChiseledStoneBricks => 245u32, + BlockKind::AcaciaDoor => 502u32, + BlockKind::CartographyTable => 685u32, + BlockKind::Lava => 27u32, + BlockKind::LimeGlazedTerracotta => 545u32, + BlockKind::PottedBirchSapling => 297u32, + BlockKind::TubeCoralFan => 617u32, + BlockKind::CaveVines => 859u32, + BlockKind::LightBlueGlazedTerracotta => 543u32, + BlockKind::RedstoneOre => 187u32, + BlockKind::RedNetherBrickWall => 676u32, + BlockKind::OrangeCandleCake => 796u32, + BlockKind::EnchantingTable => 268u32, + BlockKind::HoneycombBlock => 747u32, + BlockKind::ChiseledDeepslate => 888u32, + BlockKind::EndPortal => 274u32, + BlockKind::ChainCommandBlock => 515u32, + BlockKind::EnderChest => 283u32, + BlockKind::PottedAllium => 305u32, + BlockKind::BirchButton => 323u32, + BlockKind::NetheriteBlock => 748u32, + BlockKind::BlackstoneSlab => 760u32, + BlockKind::Composter => 742u32, + BlockKind::CopperBlock => 825u32, + BlockKind::ZombieWallHead => 332u32, + BlockKind::Glass => 72u32, + BlockKind::LimeShulkerBox => 529u32, + BlockKind::PolishedDiorite => 5u32, + BlockKind::SlimeBlock => 390u32, + BlockKind::MagentaBanner => 432u32, + BlockKind::GreenBanner => 443u32, + BlockKind::HornCoral => 611u32, + BlockKind::NetherSprouts => 705u32, + BlockKind::SmoothStoneSlab => 473u32, + BlockKind::WeatheredCopper => 823u32, + BlockKind::WhiteCarpet => 405u32, + BlockKind::Allium => 128u32, + BlockKind::RedStainedGlass => 228u32, + BlockKind::BambooSapling => 635u32, + BlockKind::Lever => 178u32, + BlockKind::DarkOakTrapdoor => 235u32, + BlockKind::LightGrayCandle => 786u32, + BlockKind::GreenBed => 94u32, + BlockKind::TwistingVines => 715u32, + BlockKind::CutCopperSlab => 839u32, + BlockKind::MossyCobblestoneWall => 293u32, + BlockKind::RedBanner => 444u32, + BlockKind::RootedDirt => 870u32, + BlockKind::CandleCake => 794u32, + BlockKind::CobblestoneSlab => 477u32, + BlockKind::YellowStainedGlass => 218u32, + BlockKind::MossyStoneBrickStairs => 643u32, + BlockKind::Basalt => 204u32, + BlockKind::ChiseledStoneBricks => 239u32, + BlockKind::LightGrayStainedGlassPane => 380u32, + BlockKind::LightGrayConcretePowder => 580u32, + BlockKind::Tuff => 817u32, + BlockKind::CreeperWallHead => 336u32, + BlockKind::Podzol => 11u32, + BlockKind::SprucePlanks => 14u32, + BlockKind::PrismarineBrickStairs => 398u32, + BlockKind::WhiteBed => 81u32, + BlockKind::BrownShulkerBox => 536u32, + BlockKind::DarkOakDoor => 503u32, + BlockKind::PowderSnow => 820u32, + BlockKind::HeavyWeightedPressurePlate => 344u32, + BlockKind::Air => 0u32, + BlockKind::StoneBrickWall => 673u32, + BlockKind::YellowBed => 85u32, + BlockKind::PistonHead => 107u32, + BlockKind::Barrier => 391u32, + BlockKind::OxidizedCutCopper => 828u32, + BlockKind::AzaleaLeaves => 68u32, + BlockKind::GreenStainedGlassPane => 385u32, + BlockKind::DragonHead => 337u32, + BlockKind::Lectern => 688u32, + BlockKind::DarkOakLog => 43u32, + BlockKind::CarvedPumpkin => 210u32, + BlockKind::PottedBrownMushroom => 316u32, + BlockKind::RedMushroomBlock => 247u32, + BlockKind::PottedOakSapling => 295u32, + BlockKind::LightBlueBed => 84u32, + BlockKind::ZombieHead => 331u32, + BlockKind::BlackGlazedTerracotta => 555u32, + BlockKind::QuartzStairs => 353u32, + BlockKind::CrimsonTrapdoor => 726u32, + BlockKind::GreenCandle => 791u32, + BlockKind::GoldOre => 31u32, + BlockKind::PurpleConcretePowder => 582u32, + BlockKind::Water => 26u32, + BlockKind::CreeperHead => 335u32, + BlockKind::Lantern => 692u32, + BlockKind::WeepingVinesPlant => 714u32, + BlockKind::WarpedHyphae => 699u32, + BlockKind::StoneBrickSlab => 479u32, + BlockKind::Lodestone => 756u32, + BlockKind::CrackedStoneBricks => 238u32, + BlockKind::GlassPane => 251u32, + BlockKind::JunglePlanks => 16u32, + BlockKind::PolishedBlackstoneBrickSlab => 765u32, + BlockKind::BrownBanner => 442u32, + BlockKind::Melon => 252u32, + BlockKind::SmoothQuartzStairs => 649u32, + BlockKind::DeadTubeCoralBlock => 592u32, + BlockKind::MagentaCarpet => 407u32, + BlockKind::AcaciaButton => 325u32, + BlockKind::FlowerPot => 294u32, + BlockKind::CraftingTable => 158u32, + BlockKind::SoulWallTorch => 207u32, + BlockKind::WeatheredCutCopperSlab => 837u32, + BlockKind::RedWool => 122u32, + BlockKind::PottedFern => 301u32, + BlockKind::DragonWallHead => 338u32, + BlockKind::LimeTerracotta => 361u32, + BlockKind::MossBlock => 865u32, + BlockKind::LilyPad => 263u32, + BlockKind::Anvil => 339u32, + BlockKind::BirchPlanks => 15u32, + BlockKind::PrismarineSlab => 400u32, + BlockKind::OrangeConcrete => 557u32, + BlockKind::Grass => 101u32, + BlockKind::GrayConcretePowder => 579u32, + BlockKind::PrismarineBricks => 395u32, + BlockKind::WarpedNylium => 701u32, + BlockKind::CyanCandle => 787u32, + BlockKind::WhiteConcretePowder => 572u32, + BlockKind::AzureBluet => 129u32, + BlockKind::BrownWool => 120u32, + BlockKind::PottedOrangeTulip => 308u32, + BlockKind::Andesite => 6u32, + BlockKind::DeepslateTiles => 880u32, + BlockKind::WetSponge => 71u32, + BlockKind::WarpedPlanks => 719u32, + BlockKind::InfestedStoneBricks => 242u32, + BlockKind::TallGrass => 428u32, + BlockKind::StrippedOakLog => 49u32, + BlockKind::CyanBanner => 439u32, + BlockKind::BrownConcrete => 568u32, + BlockKind::BlueBed => 92u32, + BlockKind::WhiteBanner => 430u32, + BlockKind::WaxedExposedCutCopperSlab => 854u32, + BlockKind::PottedRedTulip => 307u32, + BlockKind::WarpedPressurePlate => 723u32, + BlockKind::MovingPiston => 124u32, + BlockKind::OrangeConcretePowder => 573u32, + BlockKind::CrimsonStairs => 730u32, + BlockKind::PurpleCandleCake => 805u32, + BlockKind::AcaciaLog => 42u32, + BlockKind::CopperOre => 826u32, + BlockKind::PottedCornflower => 312u32, + BlockKind::QuartzBlock => 350u32, + BlockKind::WaxedCutCopperSlab => 855u32, + BlockKind::PurpleBanner => 440u32, + BlockKind::MagentaShulkerBox => 526u32, + BlockKind::Bell => 691u32, + BlockKind::LimeConcrete => 561u32, + BlockKind::BlackCarpet => 420u32, + BlockKind::CyanStainedGlassPane => 381u32, + BlockKind::BlueStainedGlass => 225u32, + BlockKind::LimeCarpet => 410u32, + BlockKind::SpruceSapling => 20u32, + BlockKind::CobbledDeepslateStairs => 873u32, + BlockKind::PinkCarpet => 411u32, + BlockKind::LightGrayWallBanner => 454u32, + BlockKind::QuartzBricks => 776u32, + BlockKind::PolishedBlackstoneStairs => 769u32, + BlockKind::JungleDoor => 501u32, + BlockKind::WaxedCopperBlock => 840u32, + BlockKind::WallTorch => 148u32, + BlockKind::Rail => 170u32, + BlockKind::PowderSnowCauldron => 273u32, + BlockKind::DeadBrainCoralWallFan => 623u32, + BlockKind::Smoker => 683u32, + BlockKind::DarkOakSapling => 24u32, + BlockKind::StrippedJungleWood => 59u32, + BlockKind::PolishedBlackstoneSlab => 770u32, + BlockKind::PinkStainedGlass => 220u32, + BlockKind::CaveVinesPlant => 860u32, + BlockKind::TintedGlass => 819u32, + BlockKind::FloweringAzalea => 863u32, + BlockKind::LargeAmethystBud => 814u32, + BlockKind::TripwireHook => 284u32, + BlockKind::GrassBlock => 8u32, + BlockKind::DeepslateTileStairs => 881u32, + BlockKind::PottedDeadBush => 317u32, + BlockKind::AcaciaSign => 165u32, + BlockKind::Pumpkin => 200u32, + BlockKind::CrackedDeepslateBricks => 889u32, + BlockKind::Cobblestone => 12u32, + BlockKind::Cornflower => 135u32, + BlockKind::CrimsonFungus => 711u32, + BlockKind::GrayConcrete => 563u32, + BlockKind::SmallDripleaf => 868u32, + BlockKind::EndPortalFrame => 275u32, + BlockKind::Diorite => 4u32, + BlockKind::GreenCarpet => 418u32, + BlockKind::BlueShulkerBox => 535u32, + BlockKind::RedCandleCake => 809u32, + BlockKind::WhiteWallBanner => 446u32, + BlockKind::RedSandstoneWall => 670u32, + BlockKind::PinkGlazedTerracotta => 546u32, + BlockKind::OrangeBed => 82u32, + BlockKind::YellowCandle => 782u32, + BlockKind::OakSlab => 466u32, + BlockKind::WaxedOxidizedCutCopperSlab => 852u32, + BlockKind::CaveAir => 639u32, + BlockKind::AcaciaPlanks => 17u32, + BlockKind::RedNetherBrickStairs => 652u32, + BlockKind::WaxedWeatheredCutCopper => 845u32, + BlockKind::Sand => 28u32, + BlockKind::CoalBlock => 422u32, + BlockKind::BrickStairs => 260u32, + BlockKind::BlueCandle => 789u32, + BlockKind::MossCarpet => 864u32, + BlockKind::DiamondBlock => 157u32, + BlockKind::SmoothSandstoneStairs => 648u32, + BlockKind::OrangeStainedGlassPane => 373u32, + BlockKind::DeadTubeCoralWallFan => 622u32, + BlockKind::HornCoralWallFan => 631u32, + BlockKind::StrippedOakWood => 56u32, + BlockKind::WhiteStainedGlassPane => 372u32, + BlockKind::Observer => 522u32, + BlockKind::BlueConcrete => 567u32, + BlockKind::FloweringAzaleaLeaves => 69u32, + BlockKind::BubbleCoralBlock => 599u32, + BlockKind::BrickWall => 668u32, + BlockKind::PurpleStainedGlassPane => 382u32, + BlockKind::CyanBed => 90u32, + BlockKind::DiamondOre => 155u32, + BlockKind::WarpedSlab => 721u32, + BlockKind::LimeStainedGlassPane => 377u32, + BlockKind::DarkOakPressurePlate => 186u32, + BlockKind::WarpedWallSign => 739u32, + BlockKind::EndStone => 276u32, + BlockKind::LightBlueConcretePowder => 575u32, + BlockKind::Bookshelf => 144u32, + BlockKind::SpruceButton => 322u32, + BlockKind::PottedAzureBluet => 306u32, + BlockKind::CrimsonStem => 706u32, + BlockKind::LimeCandle => 783u32, + BlockKind::PurpleCarpet => 415u32, + BlockKind::BrainCoralWallFan => 628u32, + BlockKind::SprucePressurePlate => 182u32, + BlockKind::Wheat => 159u32, + BlockKind::GlowLichen => 258u32, + BlockKind::SmoothRedSandstone => 488u32, + BlockKind::WaxedExposedCopper => 842u32, + BlockKind::OakSign => 162u32, + BlockKind::ActivatorRail => 354u32, + BlockKind::PrismarineBrickSlab => 401u32, + BlockKind::OxidizedCopper => 822u32, + BlockKind::StrippedAcaciaWood => 60u32, + BlockKind::SugarCane => 197u32, + BlockKind::Furnace => 161u32, + BlockKind::JackOLantern => 211u32, + BlockKind::Kelp => 588u32, + BlockKind::DeadBrainCoralBlock => 593u32, + BlockKind::StrippedCrimsonStem => 707u32, + BlockKind::PinkBed => 87u32, + BlockKind::SpruceDoor => 499u32, + BlockKind::Comparator => 345u32, + BlockKind::BirchDoor => 500u32, + BlockKind::RedTulip => 130u32, + BlockKind::PottedPoppy => 303u32, + BlockKind::NetherBrickStairs => 266u32, + BlockKind::NetherWart => 267u32, + BlockKind::GreenGlazedTerracotta => 553u32, + BlockKind::LimeCandleCake => 800u32, + BlockKind::DeepslateDiamondOre => 156u32, + BlockKind::DeadBrainCoralFan => 613u32, + BlockKind::HoneyBlock => 746u32, + BlockKind::Barrel => 682u32, + BlockKind::BlueCarpet => 416u32, + BlockKind::LightGrayShulkerBox => 532u32, + BlockKind::OrangeStainedGlass => 215u32, + BlockKind::BoneBlock => 520u32, + BlockKind::Chain => 250u32, + BlockKind::PrismarineWall => 669u32, + BlockKind::Shroomlight => 712u32, + BlockKind::SandstoneStairs => 280u32, + BlockKind::PinkShulkerBox => 530u32, + BlockKind::LightBlueCandleCake => 798u32, + BlockKind::TubeCoralBlock => 597u32, + BlockKind::MagentaCandleCake => 797u32, + BlockKind::MagentaGlazedTerracotta => 542u32, + BlockKind::Peony => 427u32, + BlockKind::DeadHornCoralWallFan => 626u32, + BlockKind::SmoothRedSandstoneStairs => 642u32, + BlockKind::PolishedBlackstoneBrickStairs => 766u32, + BlockKind::WarpedDoor => 735u32, + BlockKind::OakFence => 199u32, + BlockKind::AcaciaWallSign => 175u32, + BlockKind::BlueIce => 633u32, + BlockKind::WarpedButton => 733u32, + BlockKind::SpruceLog => 39u32, + BlockKind::DeepslateBricks => 884u32, + BlockKind::BlackStainedGlassPane => 387u32, + BlockKind::OrangeBanner => 431u32, + BlockKind::PottedWarpedFungus => 753u32, + BlockKind::RedWallBanner => 460u32, + BlockKind::RedBed => 95u32, + BlockKind::CyanCandleCake => 804u32, + BlockKind::SandstoneSlab => 474u32, + BlockKind::GrayGlazedTerracotta => 547u32, + BlockKind::LightBlueWool => 111u32, + BlockKind::PurpurPillar => 508u32, + BlockKind::OakWood => 50u32, + BlockKind::RedstoneLamp => 278u32, + BlockKind::OrangeWallBanner => 447u32, } } - - /// Gets a `BlockKind` by its `id`. + #[doc = "Gets a `BlockKind` by its `id`."] + #[inline] pub fn from_id(id: u32) -> Option { match id { - 0 => Some(BlockKind::Air), - 1 => Some(BlockKind::Stone), - 2 => Some(BlockKind::Granite), - 3 => Some(BlockKind::PolishedGranite), - 4 => Some(BlockKind::Diorite), - 5 => Some(BlockKind::PolishedDiorite), - 6 => Some(BlockKind::Andesite), - 7 => Some(BlockKind::PolishedAndesite), - 8 => Some(BlockKind::GrassBlock), - 9 => Some(BlockKind::Dirt), - 10 => Some(BlockKind::CoarseDirt), - 11 => Some(BlockKind::Podzol), - 12 => Some(BlockKind::Cobblestone), - 13 => Some(BlockKind::OakPlanks), - 14 => Some(BlockKind::SprucePlanks), - 15 => Some(BlockKind::BirchPlanks), - 16 => Some(BlockKind::JunglePlanks), - 17 => Some(BlockKind::AcaciaPlanks), - 18 => Some(BlockKind::DarkOakPlanks), - 19 => Some(BlockKind::OakSapling), - 20 => Some(BlockKind::SpruceSapling), - 21 => Some(BlockKind::BirchSapling), - 22 => Some(BlockKind::JungleSapling), - 23 => Some(BlockKind::AcaciaSapling), - 24 => Some(BlockKind::DarkOakSapling), - 25 => Some(BlockKind::Bedrock), - 26 => Some(BlockKind::Water), - 27 => Some(BlockKind::Lava), - 28 => Some(BlockKind::Sand), - 29 => Some(BlockKind::RedSand), - 30 => Some(BlockKind::Gravel), - 31 => Some(BlockKind::GoldOre), - 32 => Some(BlockKind::IronOre), - 33 => Some(BlockKind::CoalOre), - 34 => Some(BlockKind::NetherGoldOre), - 35 => Some(BlockKind::OakLog), - 36 => Some(BlockKind::SpruceLog), - 37 => Some(BlockKind::BirchLog), - 38 => Some(BlockKind::JungleLog), - 39 => Some(BlockKind::AcaciaLog), - 40 => Some(BlockKind::DarkOakLog), - 41 => Some(BlockKind::StrippedSpruceLog), - 42 => Some(BlockKind::StrippedBirchLog), - 43 => Some(BlockKind::StrippedJungleLog), - 44 => Some(BlockKind::StrippedAcaciaLog), - 45 => Some(BlockKind::StrippedDarkOakLog), - 46 => Some(BlockKind::StrippedOakLog), - 47 => Some(BlockKind::OakWood), - 48 => Some(BlockKind::SpruceWood), - 49 => Some(BlockKind::BirchWood), - 50 => Some(BlockKind::JungleWood), - 51 => Some(BlockKind::AcaciaWood), - 52 => Some(BlockKind::DarkOakWood), - 53 => Some(BlockKind::StrippedOakWood), - 54 => Some(BlockKind::StrippedSpruceWood), - 55 => Some(BlockKind::StrippedBirchWood), - 56 => Some(BlockKind::StrippedJungleWood), - 57 => Some(BlockKind::StrippedAcaciaWood), - 58 => Some(BlockKind::StrippedDarkOakWood), - 59 => Some(BlockKind::OakLeaves), - 60 => Some(BlockKind::SpruceLeaves), - 61 => Some(BlockKind::BirchLeaves), - 62 => Some(BlockKind::JungleLeaves), - 63 => Some(BlockKind::AcaciaLeaves), - 64 => Some(BlockKind::DarkOakLeaves), - 65 => Some(BlockKind::Sponge), - 66 => Some(BlockKind::WetSponge), - 67 => Some(BlockKind::Glass), - 68 => Some(BlockKind::LapisOre), - 69 => Some(BlockKind::LapisBlock), - 70 => Some(BlockKind::Dispenser), - 71 => Some(BlockKind::Sandstone), - 72 => Some(BlockKind::ChiseledSandstone), - 73 => Some(BlockKind::CutSandstone), - 74 => Some(BlockKind::NoteBlock), - 75 => Some(BlockKind::WhiteBed), - 76 => Some(BlockKind::OrangeBed), - 77 => Some(BlockKind::MagentaBed), - 78 => Some(BlockKind::LightBlueBed), - 79 => Some(BlockKind::YellowBed), - 80 => Some(BlockKind::LimeBed), - 81 => Some(BlockKind::PinkBed), - 82 => Some(BlockKind::GrayBed), - 83 => Some(BlockKind::LightGrayBed), - 84 => Some(BlockKind::CyanBed), - 85 => Some(BlockKind::PurpleBed), - 86 => Some(BlockKind::BlueBed), - 87 => Some(BlockKind::BrownBed), - 88 => Some(BlockKind::GreenBed), - 89 => Some(BlockKind::RedBed), - 90 => Some(BlockKind::BlackBed), - 91 => Some(BlockKind::PoweredRail), - 92 => Some(BlockKind::DetectorRail), - 93 => Some(BlockKind::StickyPiston), - 94 => Some(BlockKind::Cobweb), - 95 => Some(BlockKind::Grass), - 96 => Some(BlockKind::Fern), - 97 => Some(BlockKind::DeadBush), - 98 => Some(BlockKind::Seagrass), - 99 => Some(BlockKind::TallSeagrass), - 100 => Some(BlockKind::Piston), - 101 => Some(BlockKind::PistonHead), - 102 => Some(BlockKind::WhiteWool), - 103 => Some(BlockKind::OrangeWool), - 104 => Some(BlockKind::MagentaWool), - 105 => Some(BlockKind::LightBlueWool), - 106 => Some(BlockKind::YellowWool), - 107 => Some(BlockKind::LimeWool), - 108 => Some(BlockKind::PinkWool), - 109 => Some(BlockKind::GrayWool), - 110 => Some(BlockKind::LightGrayWool), - 111 => Some(BlockKind::CyanWool), - 112 => Some(BlockKind::PurpleWool), - 113 => Some(BlockKind::BlueWool), - 114 => Some(BlockKind::BrownWool), - 115 => Some(BlockKind::GreenWool), - 116 => Some(BlockKind::RedWool), - 117 => Some(BlockKind::BlackWool), - 118 => Some(BlockKind::MovingPiston), - 119 => Some(BlockKind::Dandelion), - 120 => Some(BlockKind::Poppy), - 121 => Some(BlockKind::BlueOrchid), - 122 => Some(BlockKind::Allium), - 123 => Some(BlockKind::AzureBluet), - 124 => Some(BlockKind::RedTulip), - 125 => Some(BlockKind::OrangeTulip), - 126 => Some(BlockKind::WhiteTulip), - 127 => Some(BlockKind::PinkTulip), - 128 => Some(BlockKind::OxeyeDaisy), - 129 => Some(BlockKind::Cornflower), - 130 => Some(BlockKind::WitherRose), - 131 => Some(BlockKind::LilyOfTheValley), - 132 => Some(BlockKind::BrownMushroom), - 133 => Some(BlockKind::RedMushroom), - 134 => Some(BlockKind::GoldBlock), - 135 => Some(BlockKind::IronBlock), - 136 => Some(BlockKind::Bricks), - 137 => Some(BlockKind::Tnt), - 138 => Some(BlockKind::Bookshelf), - 139 => Some(BlockKind::MossyCobblestone), - 140 => Some(BlockKind::Obsidian), - 141 => Some(BlockKind::Torch), - 142 => Some(BlockKind::WallTorch), - 143 => Some(BlockKind::Fire), - 144 => Some(BlockKind::SoulFire), - 145 => Some(BlockKind::Spawner), - 146 => Some(BlockKind::OakStairs), - 147 => Some(BlockKind::Chest), - 148 => Some(BlockKind::RedstoneWire), - 149 => Some(BlockKind::DiamondOre), - 150 => Some(BlockKind::DiamondBlock), - 151 => Some(BlockKind::CraftingTable), - 152 => Some(BlockKind::Wheat), - 153 => Some(BlockKind::Farmland), - 154 => Some(BlockKind::Furnace), - 155 => Some(BlockKind::OakSign), - 156 => Some(BlockKind::SpruceSign), - 157 => Some(BlockKind::BirchSign), - 158 => Some(BlockKind::AcaciaSign), - 159 => Some(BlockKind::JungleSign), - 160 => Some(BlockKind::DarkOakSign), - 161 => Some(BlockKind::OakDoor), - 162 => Some(BlockKind::Ladder), - 163 => Some(BlockKind::Rail), - 164 => Some(BlockKind::CobblestoneStairs), - 165 => Some(BlockKind::OakWallSign), - 166 => Some(BlockKind::SpruceWallSign), - 167 => Some(BlockKind::BirchWallSign), - 168 => Some(BlockKind::AcaciaWallSign), - 169 => Some(BlockKind::JungleWallSign), - 170 => Some(BlockKind::DarkOakWallSign), - 171 => Some(BlockKind::Lever), - 172 => Some(BlockKind::StonePressurePlate), - 173 => Some(BlockKind::IronDoor), - 174 => Some(BlockKind::OakPressurePlate), - 175 => Some(BlockKind::SprucePressurePlate), - 176 => Some(BlockKind::BirchPressurePlate), - 177 => Some(BlockKind::JunglePressurePlate), - 178 => Some(BlockKind::AcaciaPressurePlate), - 179 => Some(BlockKind::DarkOakPressurePlate), - 180 => Some(BlockKind::RedstoneOre), - 181 => Some(BlockKind::RedstoneTorch), - 182 => Some(BlockKind::RedstoneWallTorch), - 183 => Some(BlockKind::StoneButton), - 184 => Some(BlockKind::Snow), - 185 => Some(BlockKind::Ice), - 186 => Some(BlockKind::SnowBlock), - 187 => Some(BlockKind::Cactus), - 188 => Some(BlockKind::Clay), - 189 => Some(BlockKind::SugarCane), - 190 => Some(BlockKind::Jukebox), - 191 => Some(BlockKind::OakFence), - 192 => Some(BlockKind::Pumpkin), - 193 => Some(BlockKind::Netherrack), - 194 => Some(BlockKind::SoulSand), - 195 => Some(BlockKind::SoulSoil), - 196 => Some(BlockKind::Basalt), - 197 => Some(BlockKind::PolishedBasalt), - 198 => Some(BlockKind::SoulTorch), - 199 => Some(BlockKind::SoulWallTorch), - 200 => Some(BlockKind::Glowstone), - 201 => Some(BlockKind::NetherPortal), - 202 => Some(BlockKind::CarvedPumpkin), - 203 => Some(BlockKind::JackOLantern), - 204 => Some(BlockKind::Cake), - 205 => Some(BlockKind::Repeater), - 206 => Some(BlockKind::WhiteStainedGlass), - 207 => Some(BlockKind::OrangeStainedGlass), - 208 => Some(BlockKind::MagentaStainedGlass), - 209 => Some(BlockKind::LightBlueStainedGlass), - 210 => Some(BlockKind::YellowStainedGlass), - 211 => Some(BlockKind::LimeStainedGlass), - 212 => Some(BlockKind::PinkStainedGlass), - 213 => Some(BlockKind::GrayStainedGlass), - 214 => Some(BlockKind::LightGrayStainedGlass), - 215 => Some(BlockKind::CyanStainedGlass), - 216 => Some(BlockKind::PurpleStainedGlass), - 217 => Some(BlockKind::BlueStainedGlass), - 218 => Some(BlockKind::BrownStainedGlass), - 219 => Some(BlockKind::GreenStainedGlass), - 220 => Some(BlockKind::RedStainedGlass), - 221 => Some(BlockKind::BlackStainedGlass), - 222 => Some(BlockKind::OakTrapdoor), - 223 => Some(BlockKind::SpruceTrapdoor), - 224 => Some(BlockKind::BirchTrapdoor), - 225 => Some(BlockKind::JungleTrapdoor), - 226 => Some(BlockKind::AcaciaTrapdoor), - 227 => Some(BlockKind::DarkOakTrapdoor), - 228 => Some(BlockKind::StoneBricks), - 229 => Some(BlockKind::MossyStoneBricks), - 230 => Some(BlockKind::CrackedStoneBricks), - 231 => Some(BlockKind::ChiseledStoneBricks), - 232 => Some(BlockKind::InfestedStone), - 233 => Some(BlockKind::InfestedCobblestone), - 234 => Some(BlockKind::InfestedStoneBricks), - 235 => Some(BlockKind::InfestedMossyStoneBricks), - 236 => Some(BlockKind::InfestedCrackedStoneBricks), - 237 => Some(BlockKind::InfestedChiseledStoneBricks), - 238 => Some(BlockKind::BrownMushroomBlock), - 239 => Some(BlockKind::RedMushroomBlock), - 240 => Some(BlockKind::MushroomStem), - 241 => Some(BlockKind::IronBars), - 242 => Some(BlockKind::Chain), - 243 => Some(BlockKind::GlassPane), - 244 => Some(BlockKind::Melon), - 245 => Some(BlockKind::AttachedPumpkinStem), - 246 => Some(BlockKind::AttachedMelonStem), - 247 => Some(BlockKind::PumpkinStem), - 248 => Some(BlockKind::MelonStem), - 249 => Some(BlockKind::Vine), - 250 => Some(BlockKind::OakFenceGate), - 251 => Some(BlockKind::BrickStairs), - 252 => Some(BlockKind::StoneBrickStairs), - 253 => Some(BlockKind::Mycelium), - 254 => Some(BlockKind::LilyPad), - 255 => Some(BlockKind::NetherBricks), - 256 => Some(BlockKind::NetherBrickFence), - 257 => Some(BlockKind::NetherBrickStairs), - 258 => Some(BlockKind::NetherWart), - 259 => Some(BlockKind::EnchantingTable), - 260 => Some(BlockKind::BrewingStand), - 261 => Some(BlockKind::Cauldron), - 262 => Some(BlockKind::EndPortal), - 263 => Some(BlockKind::EndPortalFrame), - 264 => Some(BlockKind::EndStone), - 265 => Some(BlockKind::DragonEgg), - 266 => Some(BlockKind::RedstoneLamp), - 267 => Some(BlockKind::Cocoa), - 268 => Some(BlockKind::SandstoneStairs), - 269 => Some(BlockKind::EmeraldOre), - 270 => Some(BlockKind::EnderChest), - 271 => Some(BlockKind::TripwireHook), - 272 => Some(BlockKind::Tripwire), - 273 => Some(BlockKind::EmeraldBlock), - 274 => Some(BlockKind::SpruceStairs), - 275 => Some(BlockKind::BirchStairs), - 276 => Some(BlockKind::JungleStairs), - 277 => Some(BlockKind::CommandBlock), - 278 => Some(BlockKind::Beacon), - 279 => Some(BlockKind::CobblestoneWall), - 280 => Some(BlockKind::MossyCobblestoneWall), - 281 => Some(BlockKind::FlowerPot), - 282 => Some(BlockKind::PottedOakSapling), - 283 => Some(BlockKind::PottedSpruceSapling), - 284 => Some(BlockKind::PottedBirchSapling), - 285 => Some(BlockKind::PottedJungleSapling), - 286 => Some(BlockKind::PottedAcaciaSapling), - 287 => Some(BlockKind::PottedDarkOakSapling), - 288 => Some(BlockKind::PottedFern), - 289 => Some(BlockKind::PottedDandelion), - 290 => Some(BlockKind::PottedPoppy), - 291 => Some(BlockKind::PottedBlueOrchid), - 292 => Some(BlockKind::PottedAllium), - 293 => Some(BlockKind::PottedAzureBluet), - 294 => Some(BlockKind::PottedRedTulip), - 295 => Some(BlockKind::PottedOrangeTulip), - 296 => Some(BlockKind::PottedWhiteTulip), - 297 => Some(BlockKind::PottedPinkTulip), - 298 => Some(BlockKind::PottedOxeyeDaisy), - 299 => Some(BlockKind::PottedCornflower), - 300 => Some(BlockKind::PottedLilyOfTheValley), - 301 => Some(BlockKind::PottedWitherRose), - 302 => Some(BlockKind::PottedRedMushroom), - 303 => Some(BlockKind::PottedBrownMushroom), - 304 => Some(BlockKind::PottedDeadBush), - 305 => Some(BlockKind::PottedCactus), - 306 => Some(BlockKind::Carrots), - 307 => Some(BlockKind::Potatoes), - 308 => Some(BlockKind::OakButton), - 309 => Some(BlockKind::SpruceButton), - 310 => Some(BlockKind::BirchButton), - 311 => Some(BlockKind::JungleButton), - 312 => Some(BlockKind::AcaciaButton), - 313 => Some(BlockKind::DarkOakButton), - 314 => Some(BlockKind::SkeletonSkull), - 315 => Some(BlockKind::SkeletonWallSkull), - 316 => Some(BlockKind::WitherSkeletonSkull), - 317 => Some(BlockKind::WitherSkeletonWallSkull), - 318 => Some(BlockKind::ZombieHead), - 319 => Some(BlockKind::ZombieWallHead), - 320 => Some(BlockKind::PlayerHead), - 321 => Some(BlockKind::PlayerWallHead), - 322 => Some(BlockKind::CreeperHead), - 323 => Some(BlockKind::CreeperWallHead), - 324 => Some(BlockKind::DragonHead), - 325 => Some(BlockKind::DragonWallHead), - 326 => Some(BlockKind::Anvil), - 327 => Some(BlockKind::ChippedAnvil), - 328 => Some(BlockKind::DamagedAnvil), - 329 => Some(BlockKind::TrappedChest), - 330 => Some(BlockKind::LightWeightedPressurePlate), - 331 => Some(BlockKind::HeavyWeightedPressurePlate), - 332 => Some(BlockKind::Comparator), - 333 => Some(BlockKind::DaylightDetector), - 334 => Some(BlockKind::RedstoneBlock), - 335 => Some(BlockKind::NetherQuartzOre), - 336 => Some(BlockKind::Hopper), - 337 => Some(BlockKind::QuartzBlock), - 338 => Some(BlockKind::ChiseledQuartzBlock), - 339 => Some(BlockKind::QuartzPillar), - 340 => Some(BlockKind::QuartzStairs), - 341 => Some(BlockKind::ActivatorRail), - 342 => Some(BlockKind::Dropper), - 343 => Some(BlockKind::WhiteTerracotta), - 344 => Some(BlockKind::OrangeTerracotta), - 345 => Some(BlockKind::MagentaTerracotta), - 346 => Some(BlockKind::LightBlueTerracotta), - 347 => Some(BlockKind::YellowTerracotta), - 348 => Some(BlockKind::LimeTerracotta), - 349 => Some(BlockKind::PinkTerracotta), - 350 => Some(BlockKind::GrayTerracotta), - 351 => Some(BlockKind::LightGrayTerracotta), - 352 => Some(BlockKind::CyanTerracotta), - 353 => Some(BlockKind::PurpleTerracotta), - 354 => Some(BlockKind::BlueTerracotta), - 355 => Some(BlockKind::BrownTerracotta), - 356 => Some(BlockKind::GreenTerracotta), - 357 => Some(BlockKind::RedTerracotta), - 358 => Some(BlockKind::BlackTerracotta), - 359 => Some(BlockKind::WhiteStainedGlassPane), - 360 => Some(BlockKind::OrangeStainedGlassPane), - 361 => Some(BlockKind::MagentaStainedGlassPane), - 362 => Some(BlockKind::LightBlueStainedGlassPane), - 363 => Some(BlockKind::YellowStainedGlassPane), - 364 => Some(BlockKind::LimeStainedGlassPane), - 365 => Some(BlockKind::PinkStainedGlassPane), - 366 => Some(BlockKind::GrayStainedGlassPane), - 367 => Some(BlockKind::LightGrayStainedGlassPane), - 368 => Some(BlockKind::CyanStainedGlassPane), - 369 => Some(BlockKind::PurpleStainedGlassPane), - 370 => Some(BlockKind::BlueStainedGlassPane), - 371 => Some(BlockKind::BrownStainedGlassPane), - 372 => Some(BlockKind::GreenStainedGlassPane), - 373 => Some(BlockKind::RedStainedGlassPane), - 374 => Some(BlockKind::BlackStainedGlassPane), - 375 => Some(BlockKind::AcaciaStairs), - 376 => Some(BlockKind::DarkOakStairs), - 377 => Some(BlockKind::SlimeBlock), - 378 => Some(BlockKind::Barrier), - 379 => Some(BlockKind::IronTrapdoor), - 380 => Some(BlockKind::Prismarine), - 381 => Some(BlockKind::PrismarineBricks), - 382 => Some(BlockKind::DarkPrismarine), - 383 => Some(BlockKind::PrismarineStairs), - 384 => Some(BlockKind::PrismarineBrickStairs), - 385 => Some(BlockKind::DarkPrismarineStairs), - 386 => Some(BlockKind::PrismarineSlab), - 387 => Some(BlockKind::PrismarineBrickSlab), - 388 => Some(BlockKind::DarkPrismarineSlab), - 389 => Some(BlockKind::SeaLantern), - 390 => Some(BlockKind::HayBlock), - 391 => Some(BlockKind::WhiteCarpet), - 392 => Some(BlockKind::OrangeCarpet), - 393 => Some(BlockKind::MagentaCarpet), - 394 => Some(BlockKind::LightBlueCarpet), - 395 => Some(BlockKind::YellowCarpet), - 396 => Some(BlockKind::LimeCarpet), - 397 => Some(BlockKind::PinkCarpet), - 398 => Some(BlockKind::GrayCarpet), - 399 => Some(BlockKind::LightGrayCarpet), - 400 => Some(BlockKind::CyanCarpet), - 401 => Some(BlockKind::PurpleCarpet), - 402 => Some(BlockKind::BlueCarpet), - 403 => Some(BlockKind::BrownCarpet), - 404 => Some(BlockKind::GreenCarpet), - 405 => Some(BlockKind::RedCarpet), - 406 => Some(BlockKind::BlackCarpet), - 407 => Some(BlockKind::Terracotta), - 408 => Some(BlockKind::CoalBlock), - 409 => Some(BlockKind::PackedIce), - 410 => Some(BlockKind::Sunflower), - 411 => Some(BlockKind::Lilac), - 412 => Some(BlockKind::RoseBush), - 413 => Some(BlockKind::Peony), - 414 => Some(BlockKind::TallGrass), - 415 => Some(BlockKind::LargeFern), - 416 => Some(BlockKind::WhiteBanner), - 417 => Some(BlockKind::OrangeBanner), - 418 => Some(BlockKind::MagentaBanner), - 419 => Some(BlockKind::LightBlueBanner), - 420 => Some(BlockKind::YellowBanner), - 421 => Some(BlockKind::LimeBanner), - 422 => Some(BlockKind::PinkBanner), - 423 => Some(BlockKind::GrayBanner), - 424 => Some(BlockKind::LightGrayBanner), - 425 => Some(BlockKind::CyanBanner), - 426 => Some(BlockKind::PurpleBanner), - 427 => Some(BlockKind::BlueBanner), - 428 => Some(BlockKind::BrownBanner), - 429 => Some(BlockKind::GreenBanner), - 430 => Some(BlockKind::RedBanner), - 431 => Some(BlockKind::BlackBanner), - 432 => Some(BlockKind::WhiteWallBanner), - 433 => Some(BlockKind::OrangeWallBanner), - 434 => Some(BlockKind::MagentaWallBanner), - 435 => Some(BlockKind::LightBlueWallBanner), - 436 => Some(BlockKind::YellowWallBanner), - 437 => Some(BlockKind::LimeWallBanner), - 438 => Some(BlockKind::PinkWallBanner), - 439 => Some(BlockKind::GrayWallBanner), - 440 => Some(BlockKind::LightGrayWallBanner), - 441 => Some(BlockKind::CyanWallBanner), - 442 => Some(BlockKind::PurpleWallBanner), - 443 => Some(BlockKind::BlueWallBanner), - 444 => Some(BlockKind::BrownWallBanner), - 445 => Some(BlockKind::GreenWallBanner), - 446 => Some(BlockKind::RedWallBanner), - 447 => Some(BlockKind::BlackWallBanner), - 448 => Some(BlockKind::RedSandstone), - 449 => Some(BlockKind::ChiseledRedSandstone), - 450 => Some(BlockKind::CutRedSandstone), - 451 => Some(BlockKind::RedSandstoneStairs), - 452 => Some(BlockKind::OakSlab), - 453 => Some(BlockKind::SpruceSlab), - 454 => Some(BlockKind::BirchSlab), - 455 => Some(BlockKind::JungleSlab), - 456 => Some(BlockKind::AcaciaSlab), - 457 => Some(BlockKind::DarkOakSlab), - 458 => Some(BlockKind::StoneSlab), - 459 => Some(BlockKind::SmoothStoneSlab), - 460 => Some(BlockKind::SandstoneSlab), - 461 => Some(BlockKind::CutSandstoneSlab), - 462 => Some(BlockKind::PetrifiedOakSlab), - 463 => Some(BlockKind::CobblestoneSlab), - 464 => Some(BlockKind::BrickSlab), - 465 => Some(BlockKind::StoneBrickSlab), - 466 => Some(BlockKind::NetherBrickSlab), - 467 => Some(BlockKind::QuartzSlab), - 468 => Some(BlockKind::RedSandstoneSlab), - 469 => Some(BlockKind::CutRedSandstoneSlab), - 470 => Some(BlockKind::PurpurSlab), - 471 => Some(BlockKind::SmoothStone), - 472 => Some(BlockKind::SmoothSandstone), - 473 => Some(BlockKind::SmoothQuartz), - 474 => Some(BlockKind::SmoothRedSandstone), - 475 => Some(BlockKind::SpruceFenceGate), - 476 => Some(BlockKind::BirchFenceGate), - 477 => Some(BlockKind::JungleFenceGate), - 478 => Some(BlockKind::AcaciaFenceGate), - 479 => Some(BlockKind::DarkOakFenceGate), - 480 => Some(BlockKind::SpruceFence), - 481 => Some(BlockKind::BirchFence), - 482 => Some(BlockKind::JungleFence), - 483 => Some(BlockKind::AcaciaFence), - 484 => Some(BlockKind::DarkOakFence), - 485 => Some(BlockKind::SpruceDoor), - 486 => Some(BlockKind::BirchDoor), - 487 => Some(BlockKind::JungleDoor), - 488 => Some(BlockKind::AcaciaDoor), - 489 => Some(BlockKind::DarkOakDoor), - 490 => Some(BlockKind::EndRod), - 491 => Some(BlockKind::ChorusPlant), - 492 => Some(BlockKind::ChorusFlower), - 493 => Some(BlockKind::PurpurBlock), - 494 => Some(BlockKind::PurpurPillar), - 495 => Some(BlockKind::PurpurStairs), - 496 => Some(BlockKind::EndStoneBricks), - 497 => Some(BlockKind::Beetroots), - 498 => Some(BlockKind::GrassPath), - 499 => Some(BlockKind::EndGateway), - 500 => Some(BlockKind::RepeatingCommandBlock), - 501 => Some(BlockKind::ChainCommandBlock), - 502 => Some(BlockKind::FrostedIce), - 503 => Some(BlockKind::MagmaBlock), - 504 => Some(BlockKind::NetherWartBlock), - 505 => Some(BlockKind::RedNetherBricks), - 506 => Some(BlockKind::BoneBlock), - 507 => Some(BlockKind::StructureVoid), - 508 => Some(BlockKind::Observer), - 509 => Some(BlockKind::ShulkerBox), - 510 => Some(BlockKind::WhiteShulkerBox), - 511 => Some(BlockKind::OrangeShulkerBox), - 512 => Some(BlockKind::MagentaShulkerBox), - 513 => Some(BlockKind::LightBlueShulkerBox), - 514 => Some(BlockKind::YellowShulkerBox), - 515 => Some(BlockKind::LimeShulkerBox), - 516 => Some(BlockKind::PinkShulkerBox), - 517 => Some(BlockKind::GrayShulkerBox), - 518 => Some(BlockKind::LightGrayShulkerBox), - 519 => Some(BlockKind::CyanShulkerBox), - 520 => Some(BlockKind::PurpleShulkerBox), - 521 => Some(BlockKind::BlueShulkerBox), - 522 => Some(BlockKind::BrownShulkerBox), - 523 => Some(BlockKind::GreenShulkerBox), - 524 => Some(BlockKind::RedShulkerBox), - 525 => Some(BlockKind::BlackShulkerBox), - 526 => Some(BlockKind::WhiteGlazedTerracotta), - 527 => Some(BlockKind::OrangeGlazedTerracotta), - 528 => Some(BlockKind::MagentaGlazedTerracotta), - 529 => Some(BlockKind::LightBlueGlazedTerracotta), - 530 => Some(BlockKind::YellowGlazedTerracotta), - 531 => Some(BlockKind::LimeGlazedTerracotta), - 532 => Some(BlockKind::PinkGlazedTerracotta), - 533 => Some(BlockKind::GrayGlazedTerracotta), - 534 => Some(BlockKind::LightGrayGlazedTerracotta), - 535 => Some(BlockKind::CyanGlazedTerracotta), - 536 => Some(BlockKind::PurpleGlazedTerracotta), - 537 => Some(BlockKind::BlueGlazedTerracotta), - 538 => Some(BlockKind::BrownGlazedTerracotta), - 539 => Some(BlockKind::GreenGlazedTerracotta), - 540 => Some(BlockKind::RedGlazedTerracotta), - 541 => Some(BlockKind::BlackGlazedTerracotta), - 542 => Some(BlockKind::WhiteConcrete), - 543 => Some(BlockKind::OrangeConcrete), - 544 => Some(BlockKind::MagentaConcrete), - 545 => Some(BlockKind::LightBlueConcrete), - 546 => Some(BlockKind::YellowConcrete), - 547 => Some(BlockKind::LimeConcrete), - 548 => Some(BlockKind::PinkConcrete), - 549 => Some(BlockKind::GrayConcrete), - 550 => Some(BlockKind::LightGrayConcrete), - 551 => Some(BlockKind::CyanConcrete), - 552 => Some(BlockKind::PurpleConcrete), - 553 => Some(BlockKind::BlueConcrete), - 554 => Some(BlockKind::BrownConcrete), - 555 => Some(BlockKind::GreenConcrete), - 556 => Some(BlockKind::RedConcrete), - 557 => Some(BlockKind::BlackConcrete), - 558 => Some(BlockKind::WhiteConcretePowder), - 559 => Some(BlockKind::OrangeConcretePowder), - 560 => Some(BlockKind::MagentaConcretePowder), - 561 => Some(BlockKind::LightBlueConcretePowder), - 562 => Some(BlockKind::YellowConcretePowder), - 563 => Some(BlockKind::LimeConcretePowder), - 564 => Some(BlockKind::PinkConcretePowder), - 565 => Some(BlockKind::GrayConcretePowder), - 566 => Some(BlockKind::LightGrayConcretePowder), - 567 => Some(BlockKind::CyanConcretePowder), - 568 => Some(BlockKind::PurpleConcretePowder), - 569 => Some(BlockKind::BlueConcretePowder), - 570 => Some(BlockKind::BrownConcretePowder), - 571 => Some(BlockKind::GreenConcretePowder), - 572 => Some(BlockKind::RedConcretePowder), - 573 => Some(BlockKind::BlackConcretePowder), - 574 => Some(BlockKind::Kelp), - 575 => Some(BlockKind::KelpPlant), - 576 => Some(BlockKind::DriedKelpBlock), - 577 => Some(BlockKind::TurtleEgg), - 578 => Some(BlockKind::DeadTubeCoralBlock), - 579 => Some(BlockKind::DeadBrainCoralBlock), - 580 => Some(BlockKind::DeadBubbleCoralBlock), - 581 => Some(BlockKind::DeadFireCoralBlock), - 582 => Some(BlockKind::DeadHornCoralBlock), - 583 => Some(BlockKind::TubeCoralBlock), - 584 => Some(BlockKind::BrainCoralBlock), - 585 => Some(BlockKind::BubbleCoralBlock), - 586 => Some(BlockKind::FireCoralBlock), - 587 => Some(BlockKind::HornCoralBlock), - 588 => Some(BlockKind::DeadTubeCoral), - 589 => Some(BlockKind::DeadBrainCoral), - 590 => Some(BlockKind::DeadBubbleCoral), - 591 => Some(BlockKind::DeadFireCoral), - 592 => Some(BlockKind::DeadHornCoral), - 593 => Some(BlockKind::TubeCoral), - 594 => Some(BlockKind::BrainCoral), - 595 => Some(BlockKind::BubbleCoral), - 596 => Some(BlockKind::FireCoral), - 597 => Some(BlockKind::HornCoral), - 598 => Some(BlockKind::DeadTubeCoralFan), - 599 => Some(BlockKind::DeadBrainCoralFan), - 600 => Some(BlockKind::DeadBubbleCoralFan), - 601 => Some(BlockKind::DeadFireCoralFan), - 602 => Some(BlockKind::DeadHornCoralFan), - 603 => Some(BlockKind::TubeCoralFan), - 604 => Some(BlockKind::BrainCoralFan), - 605 => Some(BlockKind::BubbleCoralFan), - 606 => Some(BlockKind::FireCoralFan), - 607 => Some(BlockKind::HornCoralFan), - 608 => Some(BlockKind::DeadTubeCoralWallFan), - 609 => Some(BlockKind::DeadBrainCoralWallFan), - 610 => Some(BlockKind::DeadBubbleCoralWallFan), - 611 => Some(BlockKind::DeadFireCoralWallFan), - 612 => Some(BlockKind::DeadHornCoralWallFan), - 613 => Some(BlockKind::TubeCoralWallFan), - 614 => Some(BlockKind::BrainCoralWallFan), - 615 => Some(BlockKind::BubbleCoralWallFan), - 616 => Some(BlockKind::FireCoralWallFan), - 617 => Some(BlockKind::HornCoralWallFan), - 618 => Some(BlockKind::SeaPickle), - 619 => Some(BlockKind::BlueIce), - 620 => Some(BlockKind::Conduit), - 621 => Some(BlockKind::BambooSapling), - 622 => Some(BlockKind::Bamboo), - 623 => Some(BlockKind::PottedBamboo), - 624 => Some(BlockKind::VoidAir), - 625 => Some(BlockKind::CaveAir), - 626 => Some(BlockKind::BubbleColumn), - 627 => Some(BlockKind::PolishedGraniteStairs), - 628 => Some(BlockKind::SmoothRedSandstoneStairs), - 629 => Some(BlockKind::MossyStoneBrickStairs), - 630 => Some(BlockKind::PolishedDioriteStairs), - 631 => Some(BlockKind::MossyCobblestoneStairs), - 632 => Some(BlockKind::EndStoneBrickStairs), - 633 => Some(BlockKind::StoneStairs), - 634 => Some(BlockKind::SmoothSandstoneStairs), - 635 => Some(BlockKind::SmoothQuartzStairs), - 636 => Some(BlockKind::GraniteStairs), - 637 => Some(BlockKind::AndesiteStairs), - 638 => Some(BlockKind::RedNetherBrickStairs), - 639 => Some(BlockKind::PolishedAndesiteStairs), - 640 => Some(BlockKind::DioriteStairs), - 641 => Some(BlockKind::PolishedGraniteSlab), - 642 => Some(BlockKind::SmoothRedSandstoneSlab), - 643 => Some(BlockKind::MossyStoneBrickSlab), - 644 => Some(BlockKind::PolishedDioriteSlab), - 645 => Some(BlockKind::MossyCobblestoneSlab), - 646 => Some(BlockKind::EndStoneBrickSlab), - 647 => Some(BlockKind::SmoothSandstoneSlab), - 648 => Some(BlockKind::SmoothQuartzSlab), - 649 => Some(BlockKind::GraniteSlab), - 650 => Some(BlockKind::AndesiteSlab), - 651 => Some(BlockKind::RedNetherBrickSlab), - 652 => Some(BlockKind::PolishedAndesiteSlab), - 653 => Some(BlockKind::DioriteSlab), - 654 => Some(BlockKind::BrickWall), - 655 => Some(BlockKind::PrismarineWall), - 656 => Some(BlockKind::RedSandstoneWall), - 657 => Some(BlockKind::MossyStoneBrickWall), - 658 => Some(BlockKind::GraniteWall), - 659 => Some(BlockKind::StoneBrickWall), - 660 => Some(BlockKind::NetherBrickWall), - 661 => Some(BlockKind::AndesiteWall), - 662 => Some(BlockKind::RedNetherBrickWall), - 663 => Some(BlockKind::SandstoneWall), - 664 => Some(BlockKind::EndStoneBrickWall), - 665 => Some(BlockKind::DioriteWall), - 666 => Some(BlockKind::Scaffolding), - 667 => Some(BlockKind::Loom), - 668 => Some(BlockKind::Barrel), - 669 => Some(BlockKind::Smoker), - 670 => Some(BlockKind::BlastFurnace), - 671 => Some(BlockKind::CartographyTable), - 672 => Some(BlockKind::FletchingTable), - 673 => Some(BlockKind::Grindstone), - 674 => Some(BlockKind::Lectern), - 675 => Some(BlockKind::SmithingTable), - 676 => Some(BlockKind::Stonecutter), - 677 => Some(BlockKind::Bell), - 678 => Some(BlockKind::Lantern), - 679 => Some(BlockKind::SoulLantern), - 680 => Some(BlockKind::Campfire), - 681 => Some(BlockKind::SoulCampfire), - 682 => Some(BlockKind::SweetBerryBush), - 683 => Some(BlockKind::WarpedStem), - 684 => Some(BlockKind::StrippedWarpedStem), - 685 => Some(BlockKind::WarpedHyphae), - 686 => Some(BlockKind::StrippedWarpedHyphae), - 687 => Some(BlockKind::WarpedNylium), - 688 => Some(BlockKind::WarpedFungus), - 689 => Some(BlockKind::WarpedWartBlock), - 690 => Some(BlockKind::WarpedRoots), - 691 => Some(BlockKind::NetherSprouts), - 692 => Some(BlockKind::CrimsonStem), - 693 => Some(BlockKind::StrippedCrimsonStem), - 694 => Some(BlockKind::CrimsonHyphae), - 695 => Some(BlockKind::StrippedCrimsonHyphae), - 696 => Some(BlockKind::CrimsonNylium), - 697 => Some(BlockKind::CrimsonFungus), - 698 => Some(BlockKind::Shroomlight), - 699 => Some(BlockKind::WeepingVines), - 700 => Some(BlockKind::WeepingVinesPlant), - 701 => Some(BlockKind::TwistingVines), - 702 => Some(BlockKind::TwistingVinesPlant), - 703 => Some(BlockKind::CrimsonRoots), - 704 => Some(BlockKind::CrimsonPlanks), - 705 => Some(BlockKind::WarpedPlanks), - 706 => Some(BlockKind::CrimsonSlab), - 707 => Some(BlockKind::WarpedSlab), - 708 => Some(BlockKind::CrimsonPressurePlate), - 709 => Some(BlockKind::WarpedPressurePlate), - 710 => Some(BlockKind::CrimsonFence), - 711 => Some(BlockKind::WarpedFence), - 712 => Some(BlockKind::CrimsonTrapdoor), - 713 => Some(BlockKind::WarpedTrapdoor), - 714 => Some(BlockKind::CrimsonFenceGate), - 715 => Some(BlockKind::WarpedFenceGate), - 716 => Some(BlockKind::CrimsonStairs), - 717 => Some(BlockKind::WarpedStairs), - 718 => Some(BlockKind::CrimsonButton), - 719 => Some(BlockKind::WarpedButton), - 720 => Some(BlockKind::CrimsonDoor), - 721 => Some(BlockKind::WarpedDoor), - 722 => Some(BlockKind::CrimsonSign), - 723 => Some(BlockKind::WarpedSign), - 724 => Some(BlockKind::CrimsonWallSign), - 725 => Some(BlockKind::WarpedWallSign), - 726 => Some(BlockKind::StructureBlock), - 727 => Some(BlockKind::Jigsaw), - 728 => Some(BlockKind::Composter), - 729 => Some(BlockKind::Target), - 730 => Some(BlockKind::BeeNest), - 731 => Some(BlockKind::Beehive), - 732 => Some(BlockKind::HoneyBlock), - 733 => Some(BlockKind::HoneycombBlock), - 734 => Some(BlockKind::NetheriteBlock), - 735 => Some(BlockKind::AncientDebris), - 736 => Some(BlockKind::CryingObsidian), - 737 => Some(BlockKind::RespawnAnchor), - 738 => Some(BlockKind::PottedCrimsonFungus), - 739 => Some(BlockKind::PottedWarpedFungus), - 740 => Some(BlockKind::PottedCrimsonRoots), - 741 => Some(BlockKind::PottedWarpedRoots), - 742 => Some(BlockKind::Lodestone), - 743 => Some(BlockKind::Blackstone), - 744 => Some(BlockKind::BlackstoneStairs), - 745 => Some(BlockKind::BlackstoneWall), - 746 => Some(BlockKind::BlackstoneSlab), - 747 => Some(BlockKind::PolishedBlackstone), - 748 => Some(BlockKind::PolishedBlackstoneBricks), - 749 => Some(BlockKind::CrackedPolishedBlackstoneBricks), - 750 => Some(BlockKind::ChiseledPolishedBlackstone), - 751 => Some(BlockKind::PolishedBlackstoneBrickSlab), - 752 => Some(BlockKind::PolishedBlackstoneBrickStairs), - 753 => Some(BlockKind::PolishedBlackstoneBrickWall), - 754 => Some(BlockKind::GildedBlackstone), - 755 => Some(BlockKind::PolishedBlackstoneStairs), - 756 => Some(BlockKind::PolishedBlackstoneSlab), - 757 => Some(BlockKind::PolishedBlackstonePressurePlate), - 758 => Some(BlockKind::PolishedBlackstoneButton), - 759 => Some(BlockKind::PolishedBlackstoneWall), - 760 => Some(BlockKind::ChiseledNetherBricks), - 761 => Some(BlockKind::CrackedNetherBricks), - 762 => Some(BlockKind::QuartzBricks), + 467u32 => Some(BlockKind::SpruceSlab), + 117u32 => Some(BlockKind::CyanWool), + 589u32 => Some(BlockKind::KelpPlant), + 636u32 => Some(BlockKind::Bamboo), + 438u32 => Some(BlockKind::LightGrayBanner), + 221u32 => Some(BlockKind::GrayStainedGlass), + 716u32 => Some(BlockKind::TwistingVinesPlant), + 811u32 => Some(BlockKind::AmethystBlock), + 425u32 => Some(BlockKind::Lilac), + 313u32 => Some(BlockKind::PottedLilyOfTheValley), + 618u32 => Some(BlockKind::BrainCoralFan), + 738u32 => Some(BlockKind::CrimsonWallSign), + 223u32 => Some(BlockKind::CyanStainedGlass), + 362u32 => Some(BlockKind::PinkTerracotta), + 645u32 => Some(BlockKind::MossyCobblestoneStairs), + 616u32 => Some(BlockKind::DeadHornCoralFan), + 57u32 => Some(BlockKind::StrippedSpruceWood), + 154u32 => Some(BlockKind::RedstoneWire), + 253u32 => Some(BlockKind::AttachedPumpkinStem), + 298u32 => Some(BlockKind::PottedJungleSapling), + 581u32 => Some(BlockKind::CyanConcretePowder), + 566u32 => Some(BlockKind::PurpleConcrete), + 554u32 => Some(BlockKind::RedGlazedTerracotta), + 58u32 => Some(BlockKind::StrippedBirchWood), + 233u32 => Some(BlockKind::JungleTrapdoor), + 319u32 => Some(BlockKind::Carrots), + 610u32 => Some(BlockKind::FireCoral), + 818u32 => Some(BlockKind::Calcite), + 848u32 => Some(BlockKind::WaxedOxidizedCutCopperStairs), + 241u32 => Some(BlockKind::InfestedCobblestone), + 386u32 => Some(BlockKind::RedStainedGlassPane), + 290u32 => Some(BlockKind::CommandBlock), + 346u32 => Some(BlockKind::DaylightDetector), + 327u32 => Some(BlockKind::SkeletonSkull), + 672u32 => Some(BlockKind::GraniteWall), + 86u32 => Some(BlockKind::LimeBed), + 457u32 => Some(BlockKind::BlueWallBanner), + 343u32 => Some(BlockKind::LightWeightedPressurePlate), + 368u32 => Some(BlockKind::BrownTerracotta), + 458u32 => Some(BlockKind::BrownWallBanner), + 489u32 => Some(BlockKind::SpruceFenceGate), + 493u32 => Some(BlockKind::DarkOakFenceGate), + 662u32 => Some(BlockKind::SmoothQuartzSlab), + 462u32 => Some(BlockKind::RedSandstone), + 67u32 => Some(BlockKind::DarkOakLeaves), + 30u32 => Some(BlockKind::Gravel), + 803u32 => Some(BlockKind::LightGrayCandleCake), + 895u32 => Some(BlockKind::RawGoldBlock), + 212u32 => Some(BlockKind::Cake), + 136u32 => Some(BlockKind::WitherRose), + 370u32 => Some(BlockKind::RedTerracotta), + 472u32 => Some(BlockKind::StoneSlab), + 549u32 => Some(BlockKind::CyanGlazedTerracotta), + 761u32 => Some(BlockKind::PolishedBlackstone), + 604u32 => Some(BlockKind::DeadBubbleCoral), + 492u32 => Some(BlockKind::AcaciaFenceGate), + 586u32 => Some(BlockKind::RedConcretePowder), + 641u32 => Some(BlockKind::PolishedGraniteStairs), + 224u32 => Some(BlockKind::PurpleStainedGlass), + 485u32 => Some(BlockKind::SmoothStone), + 510u32 => Some(BlockKind::EndStoneBricks), + 63u32 => Some(BlockKind::SpruceLeaves), + 663u32 => Some(BlockKind::GraniteSlab), + 897u32 => Some(BlockKind::PottedFloweringAzaleaBush), + 470u32 => Some(BlockKind::AcaciaSlab), + 459u32 => Some(BlockKind::GreenWallBanner), + 578u32 => Some(BlockKind::PinkConcretePowder), + 79u32 => Some(BlockKind::CutSandstone), + 164u32 => Some(BlockKind::BirchSign), + 749u32 => Some(BlockKind::AncientDebris), + 664u32 => Some(BlockKind::AndesiteSlab), + 893u32 => Some(BlockKind::RawIronBlock), + 243u32 => Some(BlockKind::InfestedMossyStoneBricks), + 483u32 => Some(BlockKind::CutRedSandstoneSlab), + 3u32 => Some(BlockKind::PolishedGranite), + 441u32 => Some(BlockKind::BlueBanner), + 486u32 => Some(BlockKind::SmoothSandstone), + 78u32 => Some(BlockKind::ChiseledSandstone), + 213u32 => Some(BlockKind::Repeater), + 61u32 => Some(BlockKind::StrippedDarkOakWood), + 358u32 => Some(BlockKind::MagentaTerracotta), + 537u32 => Some(BlockKind::GreenShulkerBox), + 731u32 => Some(BlockKind::WarpedStairs), + 647u32 => Some(BlockKind::StoneStairs), + 417u32 => Some(BlockKind::BrownCarpet), + 729u32 => Some(BlockKind::WarpedFenceGate), + 231u32 => Some(BlockKind::SpruceTrapdoor), + 838u32 => Some(BlockKind::ExposedCutCopperSlab), + 364u32 => Some(BlockKind::LightGrayTerracotta), + 371u32 => Some(BlockKind::BlackTerracotta), + 853u32 => Some(BlockKind::WaxedWeatheredCutCopperSlab), + 600u32 => Some(BlockKind::FireCoralBlock), + 684u32 => Some(BlockKind::BlastFurnace), + 119u32 => Some(BlockKind::BlueWool), + 846u32 => Some(BlockKind::WaxedExposedCutCopper), + 849u32 => Some(BlockKind::WaxedWeatheredCutCopperStairs), + 598u32 => Some(BlockKind::BrainCoralBlock), + 772u32 => Some(BlockKind::PolishedBlackstoneButton), + 127u32 => Some(BlockKind::BlueOrchid), + 773u32 => Some(BlockKind::PolishedBlackstoneWall), + 540u32 => Some(BlockKind::WhiteGlazedTerracotta), + 340u32 => Some(BlockKind::ChippedAnvil), + 126u32 => Some(BlockKind::Poppy), + 393u32 => Some(BlockKind::IronTrapdoor), + 121u32 => Some(BlockKind::GreenWool), + 644u32 => Some(BlockKind::PolishedDioriteStairs), + 174u32 => Some(BlockKind::BirchWallSign), + 359u32 => Some(BlockKind::LightBlueTerracotta), + 693u32 => Some(BlockKind::SoulLantern), + 282u32 => Some(BlockKind::DeepslateEmeraldOre), + 788u32 => Some(BlockKind::PurpleCandle), + 285u32 => Some(BlockKind::Tripwire), + 757u32 => Some(BlockKind::Blackstone), + 834u32 => Some(BlockKind::ExposedCutCopperStairs), + 123u32 => Some(BlockKind::BlackWool), + 445u32 => Some(BlockKind::BlackBanner), + 777u32 => Some(BlockKind::Candle), + 759u32 => Some(BlockKind::BlackstoneWall), + 142u32 => Some(BlockKind::Bricks), + 172u32 => Some(BlockKind::OakWallSign), + 88u32 => Some(BlockKind::GrayBed), + 517u32 => Some(BlockKind::MagmaBlock), + 471u32 => Some(BlockKind::DarkOakSlab), + 656u32 => Some(BlockKind::SmoothRedSandstoneSlab), + 146u32 => Some(BlockKind::Obsidian), + 208u32 => Some(BlockKind::Glowstone), + 83u32 => Some(BlockKind::MagentaBed), + 402u32 => Some(BlockKind::DarkPrismarineSlab), + 102u32 => Some(BlockKind::Fern), + 594u32 => Some(BlockKind::DeadBubbleCoralBlock), + 650u32 => Some(BlockKind::GraniteStairs), + 97u32 => Some(BlockKind::PoweredRail), + 640u32 => Some(BlockKind::BubbleColumn), + 108u32 => Some(BlockKind::WhiteWool), + 490u32 => Some(BlockKind::BirchFenceGate), + 76u32 => Some(BlockKind::Dispenser), + 222u32 => Some(BlockKind::LightGrayStainedGlass), + 740u32 => Some(BlockKind::StructureBlock), + 896u32 => Some(BlockKind::PottedAzaleaBush), + 534u32 => Some(BlockKind::PurpleShulkerBox), + 145u32 => Some(BlockKind::MossyCobblestone), + 321u32 => Some(BlockKind::OakButton), + 334u32 => Some(BlockKind::PlayerWallHead), + 801u32 => Some(BlockKind::PinkCandleCake), + 261u32 => Some(BlockKind::StoneBrickStairs), + 694u32 => Some(BlockKind::Campfire), + 190u32 => Some(BlockKind::RedstoneWallTorch), + 449u32 => Some(BlockKind::LightBlueWallBanner), + 651u32 => Some(BlockKind::AndesiteStairs), + 394u32 => Some(BlockKind::Prismarine), + 720u32 => Some(BlockKind::CrimsonSlab), + 424u32 => Some(BlockKind::Sunflower), + 612u32 => Some(BlockKind::DeadTubeCoralFan), + 38u32 => Some(BlockKind::OakLog), + 824u32 => Some(BlockKind::ExposedCopper), + 544u32 => Some(BlockKind::YellowGlazedTerracotta), + 675u32 => Some(BlockKind::AndesiteWall), + 793u32 => Some(BlockKind::BlackCandle), + 125u32 => Some(BlockKind::Dandelion), + 795u32 => Some(BlockKind::WhiteCandleCake), + 281u32 => Some(BlockKind::EmeraldOre), + 366u32 => Some(BlockKind::PurpleTerracotta), + 713u32 => Some(BlockKind::WeepingVines), + 533u32 => Some(BlockKind::CyanShulkerBox), + 209u32 => Some(BlockKind::NetherPortal), + 666u32 => Some(BlockKind::PolishedAndesiteSlab), + 767u32 => Some(BlockKind::PolishedBlackstoneBrickWall), + 65u32 => Some(BlockKind::JungleLeaves), + 775u32 => Some(BlockKind::CrackedNetherBricks), + 799u32 => Some(BlockKind::YellowCandleCake), + 552u32 => Some(BlockKind::BrownGlazedTerracotta), + 147u32 => Some(BlockKind::Torch), + 315u32 => Some(BlockKind::PottedRedMushroom), + 304u32 => Some(BlockKind::PottedBlueOrchid), + 844u32 => Some(BlockKind::WaxedOxidizedCutCopper), + 91u32 => Some(BlockKind::PurpleBed), + 577u32 => Some(BlockKind::LimeConcretePowder), + 487u32 => Some(BlockKind::SmoothQuartz), + 703u32 => Some(BlockKind::WarpedWartBlock), + 850u32 => Some(BlockKind::WaxedExposedCutCopperStairs), + 310u32 => Some(BlockKind::PottedPinkTulip), + 100u32 => Some(BlockKind::Cobweb), + 237u32 => Some(BlockKind::MossyStoneBricks), + 408u32 => Some(BlockKind::LightBlueCarpet), + 436u32 => Some(BlockKind::PinkBanner), + 743u32 => Some(BlockKind::Target), + 167u32 => Some(BlockKind::DarkOakSign), + 236u32 => Some(BlockKind::StoneBricks), + 768u32 => Some(BlockKind::GildedBlackstone), + 48u32 => Some(BlockKind::StrippedDarkOakLog), + 463u32 => Some(BlockKind::ChiseledRedSandstone), + 559u32 => Some(BlockKind::LightBlueConcrete), + 654u32 => Some(BlockKind::DioriteStairs), + 419u32 => Some(BlockKind::RedCarpet), + 426u32 => Some(BlockKind::RoseBush), + 538u32 => Some(BlockKind::RedShulkerBox), + 173u32 => Some(BlockKind::SpruceWallSign), + 205u32 => Some(BlockKind::PolishedBasalt), + 564u32 => Some(BlockKind::LightGrayConcrete), + 191u32 => Some(BlockKind::StoneButton), + 892u32 => Some(BlockKind::SmoothBasalt), + 808u32 => Some(BlockKind::GreenCandleCake), + 299u32 => Some(BlockKind::PottedAcaciaSapling), + 352u32 => Some(BlockKind::QuartzPillar), + 93u32 => Some(BlockKind::BrownBed), + 835u32 => Some(BlockKind::CutCopperStairs), + 627u32 => Some(BlockKind::TubeCoralWallFan), + 96u32 => Some(BlockKind::BlackBed), + 605u32 => Some(BlockKind::DeadFireCoral), + 23u32 => Some(BlockKind::AcaciaSapling), + 469u32 => Some(BlockKind::JungleSlab), + 324u32 => Some(BlockKind::JungleButton), + 847u32 => Some(BlockKind::WaxedCutCopper), + 780u32 => Some(BlockKind::MagentaCandle), + 89u32 => Some(BlockKind::LightGrayBed), + 342u32 => Some(BlockKind::TrappedChest), + 375u32 => Some(BlockKind::LightBlueStainedGlassPane), + 151u32 => Some(BlockKind::Spawner), + 25u32 => Some(BlockKind::Bedrock), + 255u32 => Some(BlockKind::PumpkinStem), + 674u32 => Some(BlockKind::NetherBrickWall), + 475u32 => Some(BlockKind::CutSandstoneSlab), + 728u32 => Some(BlockKind::CrimsonFenceGate), + 871u32 => Some(BlockKind::Deepslate), + 244u32 => Some(BlockKind::InfestedCrackedStoneBricks), + 461u32 => Some(BlockKind::BlackWallBanner), + 883u32 => Some(BlockKind::DeepslateTileWall), + 98u32 => Some(BlockKind::DetectorRail), + 134u32 => Some(BlockKind::OxeyeDaisy), + 569u32 => Some(BlockKind::GreenConcrete), + 13u32 => Some(BlockKind::OakPlanks), + 412u32 => Some(BlockKind::GrayCarpet), + 193u32 => Some(BlockKind::Ice), + 388u32 => Some(BlockKind::AcaciaStairs), + 421u32 => Some(BlockKind::Terracotta), + 653u32 => Some(BlockKind::PolishedAndesiteStairs), + 448u32 => Some(BlockKind::MagentaWallBanner), + 318u32 => Some(BlockKind::PottedCactus), + 560u32 => Some(BlockKind::YellowConcrete), + 813u32 => Some(BlockKind::AmethystCluster), + 45u32 => Some(BlockKind::StrippedBirchLog), + 885u32 => Some(BlockKind::DeepslateBrickStairs), + 270u32 => Some(BlockKind::Cauldron), + 687u32 => Some(BlockKind::Grindstone), + 810u32 => Some(BlockKind::BlackCandleCake), + 456u32 => Some(BlockKind::PurpleWallBanner), + 177u32 => Some(BlockKind::DarkOakWallSign), + 625u32 => Some(BlockKind::DeadFireCoralWallFan), + 812u32 => Some(BlockKind::BuddingAmethyst), + 176u32 => Some(BlockKind::JungleWallSign), + 369u32 => Some(BlockKind::GreenTerracotta), + 367u32 => Some(BlockKind::BlueTerracotta), + 816u32 => Some(BlockKind::SmallAmethystBud), + 755u32 => Some(BlockKind::PottedWarpedRoots), + 202u32 => Some(BlockKind::SoulSand), + 585u32 => Some(BlockKind::GreenConcretePowder), + 771u32 => Some(BlockKind::PolishedBlackstonePressurePlate), + 265u32 => Some(BlockKind::NetherBrickFence), + 659u32 => Some(BlockKind::MossyCobblestoneSlab), + 861u32 => Some(BlockKind::SporeBlossom), + 657u32 => Some(BlockKind::MossyStoneBrickSlab), + 409u32 => Some(BlockKind::YellowCarpet), + 762u32 => Some(BlockKind::PolishedBlackstoneBricks), + 527u32 => Some(BlockKind::LightBlueShulkerBox), + 206u32 => Some(BlockKind::SoulTorch), + 450u32 => Some(BlockKind::YellowWallBanner), + 737u32 => Some(BlockKind::WarpedSign), + 603u32 => Some(BlockKind::DeadBrainCoral), + 103u32 => Some(BlockKind::DeadBush), + 62u32 => Some(BlockKind::OakLeaves), + 374u32 => Some(BlockKind::MagentaStainedGlassPane), + 379u32 => Some(BlockKind::GrayStainedGlassPane), + 531u32 => Some(BlockKind::GrayShulkerBox), + 149u32 => Some(BlockKind::Fire), + 630u32 => Some(BlockKind::FireCoralWallFan), + 632u32 => Some(BlockKind::SeaPickle), + 521u32 => Some(BlockKind::StructureVoid), + 292u32 => Some(BlockKind::CobblestoneWall), + 437u32 => Some(BlockKind::GrayBanner), + 434u32 => Some(BlockKind::YellowBanner), + 168u32 => Some(BlockKind::OakDoor), + 550u32 => Some(BlockKind::PurpleGlazedTerracotta), + 570u32 => Some(BlockKind::RedConcrete), + 637u32 => Some(BlockKind::PottedBamboo), + 328u32 => Some(BlockKind::SkeletonWallSkull), + 330u32 => Some(BlockKind::WitherSkeletonWallSkull), + 851u32 => Some(BlockKind::WaxedCutCopperStairs), + 506u32 => Some(BlockKind::ChorusFlower), + 179u32 => Some(BlockKind::StonePressurePlate), + 47u32 => Some(BlockKind::StrippedAcaciaLog), + 576u32 => Some(BlockKind::YellowConcretePowder), + 249u32 => Some(BlockKind::IronBars), + 277u32 => Some(BlockKind::DragonEgg), + 160u32 => Some(BlockKind::Farmland), + 541u32 => Some(BlockKind::OrangeGlazedTerracotta), + 36u32 => Some(BlockKind::DeepslateCoalOre), + 665u32 => Some(BlockKind::RedNetherBrickSlab), + 80u32 => Some(BlockKind::NoteBlock), + 678u32 => Some(BlockKind::EndStoneBrickWall), + 558u32 => Some(BlockKind::MagentaConcrete), + 698u32 => Some(BlockKind::StrippedWarpedStem), + 679u32 => Some(BlockKind::DioriteWall), + 523u32 => Some(BlockKind::ShulkerBox), + 195u32 => Some(BlockKind::Cactus), + 44u32 => Some(BlockKind::StrippedSpruceLog), + 524u32 => Some(BlockKind::WhiteShulkerBox), + 320u32 => Some(BlockKind::Potatoes), + 262u32 => Some(BlockKind::Mycelium), + 584u32 => Some(BlockKind::BrownConcretePowder), + 830u32 => Some(BlockKind::ExposedCutCopper), + 452u32 => Some(BlockKind::PinkWallBanner), + 498u32 => Some(BlockKind::DarkOakFence), + 300u32 => Some(BlockKind::PottedDarkOakSapling), + 595u32 => Some(BlockKind::DeadFireCoralBlock), + 614u32 => Some(BlockKind::DeadBubbleCoralFan), + 518u32 => Some(BlockKind::NetherWartBlock), + 629u32 => Some(BlockKind::BubbleCoralWallFan), + 505u32 => Some(BlockKind::ChorusPlant), + 708u32 => Some(BlockKind::CrimsonHyphae), + 827u32 => Some(BlockKind::DeepslateCopperOre), + 256u32 => Some(BlockKind::MelonStem), + 356u32 => Some(BlockKind::WhiteTerracotta), + 137u32 => Some(BlockKind::LilyOfTheValley), + 513u32 => Some(BlockKind::EndGateway), + 9u32 => Some(BlockKind::Dirt), + 638u32 => Some(BlockKind::VoidAir), + 378u32 => Some(BlockKind::PinkStainedGlassPane), + 118u32 => Some(BlockKind::PurpleWool), + 710u32 => Some(BlockKind::CrimsonNylium), + 802u32 => Some(BlockKind::GrayCandleCake), + 99u32 => Some(BlockKind::StickyPiston), + 821u32 => Some(BlockKind::SculkSensor), + 288u32 => Some(BlockKind::BirchStairs), + 389u32 => Some(BlockKind::DarkOakStairs), + 590u32 => Some(BlockKind::DriedKelpBlock), + 465u32 => Some(BlockKind::RedSandstoneStairs), + 717u32 => Some(BlockKind::CrimsonRoots), + 216u32 => Some(BlockKind::MagentaStainedGlass), + 341u32 => Some(BlockKind::DamagedAnvil), + 33u32 => Some(BlockKind::IronOre), + 583u32 => Some(BlockKind::BlueConcretePowder), + 423u32 => Some(BlockKind::PackedIce), + 482u32 => Some(BlockKind::RedSandstoneSlab), + 376u32 => Some(BlockKind::YellowStainedGlassPane), + 397u32 => Some(BlockKind::PrismarineStairs), + 257u32 => Some(BlockKind::Vine), + 183u32 => Some(BlockKind::BirchPressurePlate), + 661u32 => Some(BlockKind::SmoothSandstoneSlab), + 150u32 => Some(BlockKind::SoulFire), + 227u32 => Some(BlockKind::GreenStainedGlass), + 115u32 => Some(BlockKind::GrayWool), + 468u32 => Some(BlockKind::BirchSlab), + 192u32 => Some(BlockKind::Snow), + 607u32 => Some(BlockKind::TubeCoral), + 655u32 => Some(BlockKind::PolishedGraniteSlab), + 587u32 => Some(BlockKind::BlackConcretePowder), + 690u32 => Some(BlockKind::Stonecutter), + 741u32 => Some(BlockKind::Jigsaw), + 196u32 => Some(BlockKind::Clay), + 77u32 => Some(BlockKind::Sandstone), + 73u32 => Some(BlockKind::LapisOre), + 214u32 => Some(BlockKind::WhiteStainedGlass), + 414u32 => Some(BlockKind::CyanCarpet), + 609u32 => Some(BlockKind::BubbleCoral), + 497u32 => Some(BlockKind::AcaciaFence), + 681u32 => Some(BlockKind::Loom), + 163u32 => Some(BlockKind::SpruceSign), + 836u32 => Some(BlockKind::OxidizedCutCopperSlab), + 872u32 => Some(BlockKind::CobbledDeepslate), + 877u32 => Some(BlockKind::PolishedDeepslateStairs), + 591u32 => Some(BlockKind::TurtleEgg), + 180u32 => Some(BlockKind::IronDoor), + 841u32 => Some(BlockKind::WaxedWeatheredCopper), + 184u32 => Some(BlockKind::JunglePressurePlate), + 751u32 => Some(BlockKind::RespawnAnchor), + 116u32 => Some(BlockKind::LightGrayWool), + 347u32 => Some(BlockKind::RedstoneBlock), + 494u32 => Some(BlockKind::SpruceFence), + 112u32 => Some(BlockKind::YellowWool), + 143u32 => Some(BlockKind::Tnt), + 496u32 => Some(BlockKind::JungleFence), + 734u32 => Some(BlockKind::CrimsonDoor), + 495u32 => Some(BlockKind::BirchFence), + 41u32 => Some(BlockKind::JungleLog), + 435u32 => Some(BlockKind::LimeBanner), + 481u32 => Some(BlockKind::QuartzSlab), + 234u32 => Some(BlockKind::AcaciaTrapdoor), + 750u32 => Some(BlockKind::CryingObsidian), + 615u32 => Some(BlockKind::DeadFireCoralFan), + 509u32 => Some(BlockKind::PurpurStairs), + 429u32 => Some(BlockKind::LargeFern), + 869u32 => Some(BlockKind::HangingRoots), + 512u32 => Some(BlockKind::DirtPath), + 18u32 => Some(BlockKind::DarkOakPlanks), + 140u32 => Some(BlockKind::GoldBlock), + 745u32 => Some(BlockKind::Beehive), + 66u32 => Some(BlockKind::AcaciaLeaves), + 133u32 => Some(BlockKind::PinkTulip), + 886u32 => Some(BlockKind::DeepslateBrickSlab), + 511u32 => Some(BlockKind::Beetroots), + 539u32 => Some(BlockKind::BlackShulkerBox), + 141u32 => Some(BlockKind::IronBlock), + 744u32 => Some(BlockKind::BeeNest), + 764u32 => Some(BlockKind::ChiseledPolishedBlackstone), + 574u32 => Some(BlockKind::MagentaConcretePowder), + 74u32 => Some(BlockKind::DeepslateLapisOre), + 131u32 => Some(BlockKind::OrangeTulip), + 806u32 => Some(BlockKind::BlueCandleCake), + 114u32 => Some(BlockKind::PinkWool), + 166u32 => Some(BlockKind::JungleSign), + 571u32 => Some(BlockKind::BlackConcrete), + 606u32 => Some(BlockKind::DeadHornCoral), + 704u32 => Some(BlockKind::WarpedRoots), + 22u32 => Some(BlockKind::JungleSapling), + 291u32 => Some(BlockKind::Beacon), + 287u32 => Some(BlockKind::SpruceStairs), + 296u32 => Some(BlockKind::PottedSpruceSapling), + 52u32 => Some(BlockKind::BirchWood), + 189u32 => Some(BlockKind::RedstoneTorch), + 329u32 => Some(BlockKind::WitherSkeletonSkull), + 54u32 => Some(BlockKind::AcaciaWood), + 413u32 => Some(BlockKind::LightGrayCarpet), + 815u32 => Some(BlockKind::MediumAmethystBud), + 21u32 => Some(BlockKind::BirchSapling), + 894u32 => Some(BlockKind::RawCopperBlock), + 671u32 => Some(BlockKind::MossyStoneBrickWall), + 240u32 => Some(BlockKind::InfestedStone), + 194u32 => Some(BlockKind::SnowBlock), + 289u32 => Some(BlockKind::JungleStairs), + 478u32 => Some(BlockKind::BrickSlab), + 351u32 => Some(BlockKind::ChiseledQuartzBlock), + 37u32 => Some(BlockKind::NetherGoldOre), + 709u32 => Some(BlockKind::StrippedCrimsonHyphae), + 596u32 => Some(BlockKind::DeadHornCoralBlock), + 722u32 => Some(BlockKind::CrimsonPressurePlate), + 32u32 => Some(BlockKind::DeepslateGoldOre), + 785u32 => Some(BlockKind::GrayCandle), + 271u32 => Some(BlockKind::WaterCauldron), + 680u32 => Some(BlockKind::Scaffolding), + 667u32 => Some(BlockKind::DioriteSlab), + 548u32 => Some(BlockKind::LightGrayGlazedTerracotta), + 528u32 => Some(BlockKind::YellowShulkerBox), + 843u32 => Some(BlockKind::WaxedOxidizedCopper), + 229u32 => Some(BlockKind::BlackStainedGlass), + 724u32 => Some(BlockKind::CrimsonFence), + 779u32 => Some(BlockKind::OrangeCandle), + 660u32 => Some(BlockKind::EndStoneBrickSlab), + 658u32 => Some(BlockKind::PolishedDioriteSlab), + 525u32 => Some(BlockKind::OrangeShulkerBox), + 484u32 => Some(BlockKind::PurpurSlab), + 700u32 => Some(BlockKind::StrippedWarpedHyphae), + 246u32 => Some(BlockKind::BrownMushroomBlock), + 601u32 => Some(BlockKind::HornCoralBlock), + 309u32 => Some(BlockKind::PottedWhiteTulip), + 763u32 => Some(BlockKind::CrackedPolishedBlackstoneBricks), + 752u32 => Some(BlockKind::PottedCrimsonFungus), + 1u32 => Some(BlockKind::Stone), + 781u32 => Some(BlockKind::LightBlueCandle), + 866u32 => Some(BlockKind::BigDripleaf), + 774u32 => Some(BlockKind::ChiseledNetherBricks), + 269u32 => Some(BlockKind::BrewingStand), + 829u32 => Some(BlockKind::WeatheredCutCopper), + 105u32 => Some(BlockKind::TallSeagrass), + 404u32 => Some(BlockKind::HayBlock), + 695u32 => Some(BlockKind::SoulCampfire), + 217u32 => Some(BlockKind::LightBlueStainedGlass), + 890u32 => Some(BlockKind::CrackedDeepslateTiles), + 480u32 => Some(BlockKind::NetherBrickSlab), + 551u32 => Some(BlockKind::BlueGlazedTerracotta), + 807u32 => Some(BlockKind::BrownCandleCake), + 29u32 => Some(BlockKind::RedSand), + 109u32 => Some(BlockKind::OrangeWool), + 646u32 => Some(BlockKind::EndStoneBrickStairs), + 862u32 => Some(BlockKind::Azalea), + 302u32 => Some(BlockKind::PottedDandelion), + 181u32 => Some(BlockKind::OakPressurePlate), + 858u32 => Some(BlockKind::DripstoneBlock), + 35u32 => Some(BlockKind::CoalOre), + 203u32 => Some(BlockKind::SoulSoil), + 856u32 => Some(BlockKind::LightningRod), + 248u32 => Some(BlockKind::MushroomStem), + 686u32 => Some(BlockKind::FletchingTable), + 185u32 => Some(BlockKind::AcaciaPressurePlate), + 53u32 => Some(BlockKind::JungleWood), + 689u32 => Some(BlockKind::SmithingTable), + 453u32 => Some(BlockKind::GrayWallBanner), + 624u32 => Some(BlockKind::DeadBubbleCoralWallFan), + 697u32 => Some(BlockKind::WarpedStem), + 565u32 => Some(BlockKind::CyanConcrete), + 55u32 => Some(BlockKind::DarkOakWood), + 696u32 => Some(BlockKind::SweetBerryBush), + 113u32 => Some(BlockKind::LimeWool), + 64u32 => Some(BlockKind::BirchLeaves), + 259u32 => Some(BlockKind::OakFenceGate), + 75u32 => Some(BlockKind::LapisBlock), + 620u32 => Some(BlockKind::FireCoralFan), + 326u32 => Some(BlockKind::DarkOakButton), + 7u32 => Some(BlockKind::PolishedAndesite), + 348u32 => Some(BlockKind::NetherQuartzOre), + 392u32 => Some(BlockKind::Light), + 476u32 => Some(BlockKind::PetrifiedOakSlab), + 876u32 => Some(BlockKind::PolishedDeepslate), + 621u32 => Some(BlockKind::HornCoralFan), + 608u32 => Some(BlockKind::BrainCoral), + 19u32 => Some(BlockKind::OakSapling), + 736u32 => Some(BlockKind::CrimsonSign), + 34u32 => Some(BlockKind::DeepslateIronOre), + 833u32 => Some(BlockKind::WeatheredCutCopperStairs), + 139u32 => Some(BlockKind::RedMushroom), + 46u32 => Some(BlockKind::StrippedJungleLog), + 507u32 => Some(BlockKind::PurpurBlock), + 455u32 => Some(BlockKind::CyanWallBanner), + 491u32 => Some(BlockKind::JungleFenceGate), + 171u32 => Some(BlockKind::CobblestoneStairs), + 70u32 => Some(BlockKind::Sponge), + 110u32 => Some(BlockKind::MagentaWool), + 333u32 => Some(BlockKind::PlayerHead), + 879u32 => Some(BlockKind::PolishedDeepslateWall), + 201u32 => Some(BlockKind::Netherrack), + 357u32 => Some(BlockKind::OrangeTerracotta), + 754u32 => Some(BlockKind::PottedCrimsonRoots), + 153u32 => Some(BlockKind::Chest), + 832u32 => Some(BlockKind::OxidizedCutCopperStairs), + 198u32 => Some(BlockKind::Jukebox), + 384u32 => Some(BlockKind::BrownStainedGlassPane), + 254u32 => Some(BlockKind::AttachedMelonStem), + 514u32 => Some(BlockKind::RepeatingCommandBlock), + 226u32 => Some(BlockKind::BrownStainedGlass), + 602u32 => Some(BlockKind::DeadTubeCoral), + 104u32 => Some(BlockKind::Seagrass), + 874u32 => Some(BlockKind::CobbledDeepslateSlab), + 677u32 => Some(BlockKind::SandstoneWall), + 516u32 => Some(BlockKind::FrostedIce), + 40u32 => Some(BlockKind::BirchLog), + 138u32 => Some(BlockKind::BrownMushroom), + 264u32 => Some(BlockKind::NetherBricks), + 406u32 => Some(BlockKind::OrangeCarpet), + 619u32 => Some(BlockKind::BubbleCoralFan), + 314u32 => Some(BlockKind::PottedWitherRose), + 152u32 => Some(BlockKind::OakStairs), + 349u32 => Some(BlockKind::Hopper), + 792u32 => Some(BlockKind::RedCandle), + 51u32 => Some(BlockKind::SpruceWood), + 784u32 => Some(BlockKind::PinkCandle), + 132u32 => Some(BlockKind::WhiteTulip), + 169u32 => Some(BlockKind::Ladder), + 232u32 => Some(BlockKind::BirchTrapdoor), + 758u32 => Some(BlockKind::BlackstoneStairs), + 887u32 => Some(BlockKind::DeepslateBrickWall), + 286u32 => Some(BlockKind::EmeraldBlock), + 634u32 => Some(BlockKind::Conduit), + 363u32 => Some(BlockKind::GrayTerracotta), + 464u32 => Some(BlockKind::CutRedSandstone), + 365u32 => Some(BlockKind::CyanTerracotta), + 10u32 => Some(BlockKind::CoarseDirt), + 396u32 => Some(BlockKind::DarkPrismarine), + 403u32 => Some(BlockKind::SeaLantern), + 504u32 => Some(BlockKind::EndRod), + 857u32 => Some(BlockKind::PointedDripstone), + 383u32 => Some(BlockKind::BlueStainedGlassPane), + 718u32 => Some(BlockKind::CrimsonPlanks), + 875u32 => Some(BlockKind::CobbledDeepslateWall), + 106u32 => Some(BlockKind::Piston), + 878u32 => Some(BlockKind::PolishedDeepslateSlab), + 355u32 => Some(BlockKind::Dropper), + 732u32 => Some(BlockKind::CrimsonButton), + 727u32 => Some(BlockKind::WarpedTrapdoor), + 399u32 => Some(BlockKind::DarkPrismarineStairs), + 702u32 => Some(BlockKind::WarpedFungus), + 867u32 => Some(BlockKind::BigDripleafStem), + 790u32 => Some(BlockKind::BrownCandle), + 230u32 => Some(BlockKind::OakTrapdoor), + 891u32 => Some(BlockKind::InfestedDeepslate), + 556u32 => Some(BlockKind::WhiteConcrete), + 831u32 => Some(BlockKind::CutCopper), + 279u32 => Some(BlockKind::Cocoa), + 188u32 => Some(BlockKind::DeepslateRedstoneOre), + 433u32 => Some(BlockKind::LightBlueBanner), + 882u32 => Some(BlockKind::DeepslateTileSlab), + 562u32 => Some(BlockKind::PinkConcrete), + 311u32 => Some(BlockKind::PottedOxeyeDaisy), + 725u32 => Some(BlockKind::WarpedFence), + 360u32 => Some(BlockKind::YellowTerracotta), + 272u32 => Some(BlockKind::LavaCauldron), + 519u32 => Some(BlockKind::RedNetherBricks), + 219u32 => Some(BlockKind::LimeStainedGlass), + 778u32 => Some(BlockKind::WhiteCandle), + 2u32 => Some(BlockKind::Granite), + 451u32 => Some(BlockKind::LimeWallBanner), + 245u32 => Some(BlockKind::InfestedChiseledStoneBricks), + 502u32 => Some(BlockKind::AcaciaDoor), + 685u32 => Some(BlockKind::CartographyTable), + 27u32 => Some(BlockKind::Lava), + 545u32 => Some(BlockKind::LimeGlazedTerracotta), + 297u32 => Some(BlockKind::PottedBirchSapling), + 617u32 => Some(BlockKind::TubeCoralFan), + 859u32 => Some(BlockKind::CaveVines), + 543u32 => Some(BlockKind::LightBlueGlazedTerracotta), + 187u32 => Some(BlockKind::RedstoneOre), + 676u32 => Some(BlockKind::RedNetherBrickWall), + 796u32 => Some(BlockKind::OrangeCandleCake), + 268u32 => Some(BlockKind::EnchantingTable), + 747u32 => Some(BlockKind::HoneycombBlock), + 888u32 => Some(BlockKind::ChiseledDeepslate), + 274u32 => Some(BlockKind::EndPortal), + 515u32 => Some(BlockKind::ChainCommandBlock), + 283u32 => Some(BlockKind::EnderChest), + 305u32 => Some(BlockKind::PottedAllium), + 323u32 => Some(BlockKind::BirchButton), + 748u32 => Some(BlockKind::NetheriteBlock), + 760u32 => Some(BlockKind::BlackstoneSlab), + 742u32 => Some(BlockKind::Composter), + 825u32 => Some(BlockKind::CopperBlock), + 332u32 => Some(BlockKind::ZombieWallHead), + 72u32 => Some(BlockKind::Glass), + 529u32 => Some(BlockKind::LimeShulkerBox), + 5u32 => Some(BlockKind::PolishedDiorite), + 390u32 => Some(BlockKind::SlimeBlock), + 432u32 => Some(BlockKind::MagentaBanner), + 443u32 => Some(BlockKind::GreenBanner), + 611u32 => Some(BlockKind::HornCoral), + 705u32 => Some(BlockKind::NetherSprouts), + 473u32 => Some(BlockKind::SmoothStoneSlab), + 823u32 => Some(BlockKind::WeatheredCopper), + 405u32 => Some(BlockKind::WhiteCarpet), + 128u32 => Some(BlockKind::Allium), + 228u32 => Some(BlockKind::RedStainedGlass), + 635u32 => Some(BlockKind::BambooSapling), + 178u32 => Some(BlockKind::Lever), + 235u32 => Some(BlockKind::DarkOakTrapdoor), + 786u32 => Some(BlockKind::LightGrayCandle), + 94u32 => Some(BlockKind::GreenBed), + 715u32 => Some(BlockKind::TwistingVines), + 839u32 => Some(BlockKind::CutCopperSlab), + 293u32 => Some(BlockKind::MossyCobblestoneWall), + 444u32 => Some(BlockKind::RedBanner), + 870u32 => Some(BlockKind::RootedDirt), + 794u32 => Some(BlockKind::CandleCake), + 477u32 => Some(BlockKind::CobblestoneSlab), + 218u32 => Some(BlockKind::YellowStainedGlass), + 643u32 => Some(BlockKind::MossyStoneBrickStairs), + 204u32 => Some(BlockKind::Basalt), + 239u32 => Some(BlockKind::ChiseledStoneBricks), + 380u32 => Some(BlockKind::LightGrayStainedGlassPane), + 580u32 => Some(BlockKind::LightGrayConcretePowder), + 817u32 => Some(BlockKind::Tuff), + 336u32 => Some(BlockKind::CreeperWallHead), + 11u32 => Some(BlockKind::Podzol), + 14u32 => Some(BlockKind::SprucePlanks), + 398u32 => Some(BlockKind::PrismarineBrickStairs), + 81u32 => Some(BlockKind::WhiteBed), + 536u32 => Some(BlockKind::BrownShulkerBox), + 503u32 => Some(BlockKind::DarkOakDoor), + 820u32 => Some(BlockKind::PowderSnow), + 344u32 => Some(BlockKind::HeavyWeightedPressurePlate), + 0u32 => Some(BlockKind::Air), + 673u32 => Some(BlockKind::StoneBrickWall), + 85u32 => Some(BlockKind::YellowBed), + 107u32 => Some(BlockKind::PistonHead), + 391u32 => Some(BlockKind::Barrier), + 828u32 => Some(BlockKind::OxidizedCutCopper), + 68u32 => Some(BlockKind::AzaleaLeaves), + 385u32 => Some(BlockKind::GreenStainedGlassPane), + 337u32 => Some(BlockKind::DragonHead), + 688u32 => Some(BlockKind::Lectern), + 43u32 => Some(BlockKind::DarkOakLog), + 210u32 => Some(BlockKind::CarvedPumpkin), + 316u32 => Some(BlockKind::PottedBrownMushroom), + 247u32 => Some(BlockKind::RedMushroomBlock), + 295u32 => Some(BlockKind::PottedOakSapling), + 84u32 => Some(BlockKind::LightBlueBed), + 331u32 => Some(BlockKind::ZombieHead), + 555u32 => Some(BlockKind::BlackGlazedTerracotta), + 353u32 => Some(BlockKind::QuartzStairs), + 726u32 => Some(BlockKind::CrimsonTrapdoor), + 791u32 => Some(BlockKind::GreenCandle), + 31u32 => Some(BlockKind::GoldOre), + 582u32 => Some(BlockKind::PurpleConcretePowder), + 26u32 => Some(BlockKind::Water), + 335u32 => Some(BlockKind::CreeperHead), + 692u32 => Some(BlockKind::Lantern), + 714u32 => Some(BlockKind::WeepingVinesPlant), + 699u32 => Some(BlockKind::WarpedHyphae), + 479u32 => Some(BlockKind::StoneBrickSlab), + 756u32 => Some(BlockKind::Lodestone), + 238u32 => Some(BlockKind::CrackedStoneBricks), + 251u32 => Some(BlockKind::GlassPane), + 16u32 => Some(BlockKind::JunglePlanks), + 765u32 => Some(BlockKind::PolishedBlackstoneBrickSlab), + 442u32 => Some(BlockKind::BrownBanner), + 252u32 => Some(BlockKind::Melon), + 649u32 => Some(BlockKind::SmoothQuartzStairs), + 592u32 => Some(BlockKind::DeadTubeCoralBlock), + 407u32 => Some(BlockKind::MagentaCarpet), + 325u32 => Some(BlockKind::AcaciaButton), + 294u32 => Some(BlockKind::FlowerPot), + 158u32 => Some(BlockKind::CraftingTable), + 207u32 => Some(BlockKind::SoulWallTorch), + 837u32 => Some(BlockKind::WeatheredCutCopperSlab), + 122u32 => Some(BlockKind::RedWool), + 301u32 => Some(BlockKind::PottedFern), + 338u32 => Some(BlockKind::DragonWallHead), + 361u32 => Some(BlockKind::LimeTerracotta), + 865u32 => Some(BlockKind::MossBlock), + 263u32 => Some(BlockKind::LilyPad), + 339u32 => Some(BlockKind::Anvil), + 15u32 => Some(BlockKind::BirchPlanks), + 400u32 => Some(BlockKind::PrismarineSlab), + 557u32 => Some(BlockKind::OrangeConcrete), + 101u32 => Some(BlockKind::Grass), + 579u32 => Some(BlockKind::GrayConcretePowder), + 395u32 => Some(BlockKind::PrismarineBricks), + 701u32 => Some(BlockKind::WarpedNylium), + 787u32 => Some(BlockKind::CyanCandle), + 572u32 => Some(BlockKind::WhiteConcretePowder), + 129u32 => Some(BlockKind::AzureBluet), + 120u32 => Some(BlockKind::BrownWool), + 308u32 => Some(BlockKind::PottedOrangeTulip), + 6u32 => Some(BlockKind::Andesite), + 880u32 => Some(BlockKind::DeepslateTiles), + 71u32 => Some(BlockKind::WetSponge), + 719u32 => Some(BlockKind::WarpedPlanks), + 242u32 => Some(BlockKind::InfestedStoneBricks), + 428u32 => Some(BlockKind::TallGrass), + 49u32 => Some(BlockKind::StrippedOakLog), + 439u32 => Some(BlockKind::CyanBanner), + 568u32 => Some(BlockKind::BrownConcrete), + 92u32 => Some(BlockKind::BlueBed), + 430u32 => Some(BlockKind::WhiteBanner), + 854u32 => Some(BlockKind::WaxedExposedCutCopperSlab), + 307u32 => Some(BlockKind::PottedRedTulip), + 723u32 => Some(BlockKind::WarpedPressurePlate), + 124u32 => Some(BlockKind::MovingPiston), + 573u32 => Some(BlockKind::OrangeConcretePowder), + 730u32 => Some(BlockKind::CrimsonStairs), + 805u32 => Some(BlockKind::PurpleCandleCake), + 42u32 => Some(BlockKind::AcaciaLog), + 826u32 => Some(BlockKind::CopperOre), + 312u32 => Some(BlockKind::PottedCornflower), + 350u32 => Some(BlockKind::QuartzBlock), + 855u32 => Some(BlockKind::WaxedCutCopperSlab), + 440u32 => Some(BlockKind::PurpleBanner), + 526u32 => Some(BlockKind::MagentaShulkerBox), + 691u32 => Some(BlockKind::Bell), + 561u32 => Some(BlockKind::LimeConcrete), + 420u32 => Some(BlockKind::BlackCarpet), + 381u32 => Some(BlockKind::CyanStainedGlassPane), + 225u32 => Some(BlockKind::BlueStainedGlass), + 410u32 => Some(BlockKind::LimeCarpet), + 20u32 => Some(BlockKind::SpruceSapling), + 873u32 => Some(BlockKind::CobbledDeepslateStairs), + 411u32 => Some(BlockKind::PinkCarpet), + 454u32 => Some(BlockKind::LightGrayWallBanner), + 776u32 => Some(BlockKind::QuartzBricks), + 769u32 => Some(BlockKind::PolishedBlackstoneStairs), + 501u32 => Some(BlockKind::JungleDoor), + 840u32 => Some(BlockKind::WaxedCopperBlock), + 148u32 => Some(BlockKind::WallTorch), + 170u32 => Some(BlockKind::Rail), + 273u32 => Some(BlockKind::PowderSnowCauldron), + 623u32 => Some(BlockKind::DeadBrainCoralWallFan), + 683u32 => Some(BlockKind::Smoker), + 24u32 => Some(BlockKind::DarkOakSapling), + 59u32 => Some(BlockKind::StrippedJungleWood), + 770u32 => Some(BlockKind::PolishedBlackstoneSlab), + 220u32 => Some(BlockKind::PinkStainedGlass), + 860u32 => Some(BlockKind::CaveVinesPlant), + 819u32 => Some(BlockKind::TintedGlass), + 863u32 => Some(BlockKind::FloweringAzalea), + 814u32 => Some(BlockKind::LargeAmethystBud), + 284u32 => Some(BlockKind::TripwireHook), + 8u32 => Some(BlockKind::GrassBlock), + 881u32 => Some(BlockKind::DeepslateTileStairs), + 317u32 => Some(BlockKind::PottedDeadBush), + 165u32 => Some(BlockKind::AcaciaSign), + 200u32 => Some(BlockKind::Pumpkin), + 889u32 => Some(BlockKind::CrackedDeepslateBricks), + 12u32 => Some(BlockKind::Cobblestone), + 135u32 => Some(BlockKind::Cornflower), + 711u32 => Some(BlockKind::CrimsonFungus), + 563u32 => Some(BlockKind::GrayConcrete), + 868u32 => Some(BlockKind::SmallDripleaf), + 275u32 => Some(BlockKind::EndPortalFrame), + 4u32 => Some(BlockKind::Diorite), + 418u32 => Some(BlockKind::GreenCarpet), + 535u32 => Some(BlockKind::BlueShulkerBox), + 809u32 => Some(BlockKind::RedCandleCake), + 446u32 => Some(BlockKind::WhiteWallBanner), + 670u32 => Some(BlockKind::RedSandstoneWall), + 546u32 => Some(BlockKind::PinkGlazedTerracotta), + 82u32 => Some(BlockKind::OrangeBed), + 782u32 => Some(BlockKind::YellowCandle), + 466u32 => Some(BlockKind::OakSlab), + 852u32 => Some(BlockKind::WaxedOxidizedCutCopperSlab), + 639u32 => Some(BlockKind::CaveAir), + 17u32 => Some(BlockKind::AcaciaPlanks), + 652u32 => Some(BlockKind::RedNetherBrickStairs), + 845u32 => Some(BlockKind::WaxedWeatheredCutCopper), + 28u32 => Some(BlockKind::Sand), + 422u32 => Some(BlockKind::CoalBlock), + 260u32 => Some(BlockKind::BrickStairs), + 789u32 => Some(BlockKind::BlueCandle), + 864u32 => Some(BlockKind::MossCarpet), + 157u32 => Some(BlockKind::DiamondBlock), + 648u32 => Some(BlockKind::SmoothSandstoneStairs), + 373u32 => Some(BlockKind::OrangeStainedGlassPane), + 622u32 => Some(BlockKind::DeadTubeCoralWallFan), + 631u32 => Some(BlockKind::HornCoralWallFan), + 56u32 => Some(BlockKind::StrippedOakWood), + 372u32 => Some(BlockKind::WhiteStainedGlassPane), + 522u32 => Some(BlockKind::Observer), + 567u32 => Some(BlockKind::BlueConcrete), + 69u32 => Some(BlockKind::FloweringAzaleaLeaves), + 599u32 => Some(BlockKind::BubbleCoralBlock), + 668u32 => Some(BlockKind::BrickWall), + 382u32 => Some(BlockKind::PurpleStainedGlassPane), + 90u32 => Some(BlockKind::CyanBed), + 155u32 => Some(BlockKind::DiamondOre), + 721u32 => Some(BlockKind::WarpedSlab), + 377u32 => Some(BlockKind::LimeStainedGlassPane), + 186u32 => Some(BlockKind::DarkOakPressurePlate), + 739u32 => Some(BlockKind::WarpedWallSign), + 276u32 => Some(BlockKind::EndStone), + 575u32 => Some(BlockKind::LightBlueConcretePowder), + 144u32 => Some(BlockKind::Bookshelf), + 322u32 => Some(BlockKind::SpruceButton), + 306u32 => Some(BlockKind::PottedAzureBluet), + 706u32 => Some(BlockKind::CrimsonStem), + 783u32 => Some(BlockKind::LimeCandle), + 415u32 => Some(BlockKind::PurpleCarpet), + 628u32 => Some(BlockKind::BrainCoralWallFan), + 182u32 => Some(BlockKind::SprucePressurePlate), + 159u32 => Some(BlockKind::Wheat), + 258u32 => Some(BlockKind::GlowLichen), + 488u32 => Some(BlockKind::SmoothRedSandstone), + 842u32 => Some(BlockKind::WaxedExposedCopper), + 162u32 => Some(BlockKind::OakSign), + 354u32 => Some(BlockKind::ActivatorRail), + 401u32 => Some(BlockKind::PrismarineBrickSlab), + 822u32 => Some(BlockKind::OxidizedCopper), + 60u32 => Some(BlockKind::StrippedAcaciaWood), + 197u32 => Some(BlockKind::SugarCane), + 161u32 => Some(BlockKind::Furnace), + 211u32 => Some(BlockKind::JackOLantern), + 588u32 => Some(BlockKind::Kelp), + 593u32 => Some(BlockKind::DeadBrainCoralBlock), + 707u32 => Some(BlockKind::StrippedCrimsonStem), + 87u32 => Some(BlockKind::PinkBed), + 499u32 => Some(BlockKind::SpruceDoor), + 345u32 => Some(BlockKind::Comparator), + 500u32 => Some(BlockKind::BirchDoor), + 130u32 => Some(BlockKind::RedTulip), + 303u32 => Some(BlockKind::PottedPoppy), + 266u32 => Some(BlockKind::NetherBrickStairs), + 267u32 => Some(BlockKind::NetherWart), + 553u32 => Some(BlockKind::GreenGlazedTerracotta), + 800u32 => Some(BlockKind::LimeCandleCake), + 156u32 => Some(BlockKind::DeepslateDiamondOre), + 613u32 => Some(BlockKind::DeadBrainCoralFan), + 746u32 => Some(BlockKind::HoneyBlock), + 682u32 => Some(BlockKind::Barrel), + 416u32 => Some(BlockKind::BlueCarpet), + 532u32 => Some(BlockKind::LightGrayShulkerBox), + 215u32 => Some(BlockKind::OrangeStainedGlass), + 520u32 => Some(BlockKind::BoneBlock), + 250u32 => Some(BlockKind::Chain), + 669u32 => Some(BlockKind::PrismarineWall), + 712u32 => Some(BlockKind::Shroomlight), + 280u32 => Some(BlockKind::SandstoneStairs), + 530u32 => Some(BlockKind::PinkShulkerBox), + 798u32 => Some(BlockKind::LightBlueCandleCake), + 597u32 => Some(BlockKind::TubeCoralBlock), + 797u32 => Some(BlockKind::MagentaCandleCake), + 542u32 => Some(BlockKind::MagentaGlazedTerracotta), + 427u32 => Some(BlockKind::Peony), + 626u32 => Some(BlockKind::DeadHornCoralWallFan), + 642u32 => Some(BlockKind::SmoothRedSandstoneStairs), + 766u32 => Some(BlockKind::PolishedBlackstoneBrickStairs), + 735u32 => Some(BlockKind::WarpedDoor), + 199u32 => Some(BlockKind::OakFence), + 175u32 => Some(BlockKind::AcaciaWallSign), + 633u32 => Some(BlockKind::BlueIce), + 733u32 => Some(BlockKind::WarpedButton), + 39u32 => Some(BlockKind::SpruceLog), + 884u32 => Some(BlockKind::DeepslateBricks), + 387u32 => Some(BlockKind::BlackStainedGlassPane), + 431u32 => Some(BlockKind::OrangeBanner), + 753u32 => Some(BlockKind::PottedWarpedFungus), + 460u32 => Some(BlockKind::RedWallBanner), + 95u32 => Some(BlockKind::RedBed), + 804u32 => Some(BlockKind::CyanCandleCake), + 474u32 => Some(BlockKind::SandstoneSlab), + 547u32 => Some(BlockKind::GrayGlazedTerracotta), + 111u32 => Some(BlockKind::LightBlueWool), + 508u32 => Some(BlockKind::PurpurPillar), + 50u32 => Some(BlockKind::OakWood), + 278u32 => Some(BlockKind::RedstoneLamp), + 447u32 => Some(BlockKind::OrangeWallBanner), _ => None, } } } -#[allow(warnings)] -#[allow(clippy::all)] impl BlockKind { - /// Returns the `name` property of this `BlockKind`. + #[doc = "Returns the `name` property of this `BlockKind`."] + #[inline] pub fn name(&self) -> &'static str { match self { - BlockKind::Air => "air", - BlockKind::Stone => "stone", - BlockKind::Granite => "granite", - BlockKind::PolishedGranite => "polished_granite", - BlockKind::Diorite => "diorite", - BlockKind::PolishedDiorite => "polished_diorite", - BlockKind::Andesite => "andesite", - BlockKind::PolishedAndesite => "polished_andesite", - BlockKind::GrassBlock => "grass_block", - BlockKind::Dirt => "dirt", - BlockKind::CoarseDirt => "coarse_dirt", - BlockKind::Podzol => "podzol", - BlockKind::Cobblestone => "cobblestone", - BlockKind::OakPlanks => "oak_planks", - BlockKind::SprucePlanks => "spruce_planks", - BlockKind::BirchPlanks => "birch_planks", - BlockKind::JunglePlanks => "jungle_planks", - BlockKind::AcaciaPlanks => "acacia_planks", - BlockKind::DarkOakPlanks => "dark_oak_planks", - BlockKind::OakSapling => "oak_sapling", - BlockKind::SpruceSapling => "spruce_sapling", - BlockKind::BirchSapling => "birch_sapling", - BlockKind::JungleSapling => "jungle_sapling", - BlockKind::AcaciaSapling => "acacia_sapling", - BlockKind::DarkOakSapling => "dark_oak_sapling", + BlockKind::MossBlock => "moss_block", + BlockKind::SpruceStairs => "spruce_stairs", + BlockKind::PolishedDioriteStairs => "polished_diorite_stairs", + BlockKind::BigDripleafStem => "big_dripleaf_stem", + BlockKind::JungleDoor => "jungle_door", + BlockKind::BlackstoneStairs => "blackstone_stairs", BlockKind::Bedrock => "bedrock", - BlockKind::Water => "water", - BlockKind::Lava => "lava", - BlockKind::Sand => "sand", - BlockKind::RedSand => "red_sand", - BlockKind::Gravel => "gravel", - BlockKind::GoldOre => "gold_ore", - BlockKind::IronOre => "iron_ore", - BlockKind::CoalOre => "coal_ore", - BlockKind::NetherGoldOre => "nether_gold_ore", - BlockKind::OakLog => "oak_log", - BlockKind::SpruceLog => "spruce_log", - BlockKind::BirchLog => "birch_log", - BlockKind::JungleLog => "jungle_log", - BlockKind::AcaciaLog => "acacia_log", - BlockKind::DarkOakLog => "dark_oak_log", - BlockKind::StrippedSpruceLog => "stripped_spruce_log", - BlockKind::StrippedBirchLog => "stripped_birch_log", - BlockKind::StrippedJungleLog => "stripped_jungle_log", - BlockKind::StrippedAcaciaLog => "stripped_acacia_log", - BlockKind::StrippedDarkOakLog => "stripped_dark_oak_log", + BlockKind::NetherBrickStairs => "nether_brick_stairs", + BlockKind::SkeletonWallSkull => "skeleton_wall_skull", + BlockKind::WaxedOxidizedCutCopperStairs => "waxed_oxidized_cut_copper_stairs", BlockKind::StrippedOakLog => "stripped_oak_log", - BlockKind::OakWood => "oak_wood", - BlockKind::SpruceWood => "spruce_wood", - BlockKind::BirchWood => "birch_wood", - BlockKind::JungleWood => "jungle_wood", - BlockKind::AcaciaWood => "acacia_wood", - BlockKind::DarkOakWood => "dark_oak_wood", - BlockKind::StrippedOakWood => "stripped_oak_wood", - BlockKind::StrippedSpruceWood => "stripped_spruce_wood", - BlockKind::StrippedBirchWood => "stripped_birch_wood", - BlockKind::StrippedJungleWood => "stripped_jungle_wood", + BlockKind::BirchFence => "birch_fence", + BlockKind::BrickSlab => "brick_slab", + BlockKind::GreenShulkerBox => "green_shulker_box", + BlockKind::PottedJungleSapling => "potted_jungle_sapling", BlockKind::StrippedAcaciaWood => "stripped_acacia_wood", - BlockKind::StrippedDarkOakWood => "stripped_dark_oak_wood", - BlockKind::OakLeaves => "oak_leaves", - BlockKind::SpruceLeaves => "spruce_leaves", - BlockKind::BirchLeaves => "birch_leaves", - BlockKind::JungleLeaves => "jungle_leaves", - BlockKind::AcaciaLeaves => "acacia_leaves", - BlockKind::DarkOakLeaves => "dark_oak_leaves", - BlockKind::Sponge => "sponge", - BlockKind::WetSponge => "wet_sponge", - BlockKind::Glass => "glass", - BlockKind::LapisOre => "lapis_ore", - BlockKind::LapisBlock => "lapis_block", - BlockKind::Dispenser => "dispenser", - BlockKind::Sandstone => "sandstone", + BlockKind::SmoothRedSandstoneSlab => "smooth_red_sandstone_slab", + BlockKind::RepeatingCommandBlock => "repeating_command_block", + BlockKind::CrimsonRoots => "crimson_roots", + BlockKind::WarpedStairs => "warped_stairs", + BlockKind::CyanTerracotta => "cyan_terracotta", + BlockKind::StructureVoid => "structure_void", + BlockKind::SmoothSandstoneSlab => "smooth_sandstone_slab", + BlockKind::MagentaCandleCake => "magenta_candle_cake", + BlockKind::MossyCobblestone => "mossy_cobblestone", + BlockKind::FireCoralBlock => "fire_coral_block", + BlockKind::RawIronBlock => "raw_iron_block", + BlockKind::LightGrayCandleCake => "light_gray_candle_cake", + BlockKind::SmoothQuartzStairs => "smooth_quartz_stairs", + BlockKind::SpruceFence => "spruce_fence", + BlockKind::BrownStainedGlassPane => "brown_stained_glass_pane", + BlockKind::DeadHornCoralBlock => "dead_horn_coral_block", + BlockKind::ExposedCutCopper => "exposed_cut_copper", + BlockKind::EndStoneBrickWall => "end_stone_brick_wall", + BlockKind::WaxedCutCopperStairs => "waxed_cut_copper_stairs", + BlockKind::DeadBubbleCoralFan => "dead_bubble_coral_fan", + BlockKind::Tuff => "tuff", + BlockKind::WaxedWeatheredCutCopperStairs => "waxed_weathered_cut_copper_stairs", + BlockKind::PurpurStairs => "purpur_stairs", + BlockKind::SweetBerryBush => "sweet_berry_bush", + BlockKind::TintedGlass => "tinted_glass", + BlockKind::WhiteTerracotta => "white_terracotta", + BlockKind::JungleWallSign => "jungle_wall_sign", + BlockKind::PottedCornflower => "potted_cornflower", + BlockKind::Azalea => "azalea", + BlockKind::GoldBlock => "gold_block", + BlockKind::BrownCarpet => "brown_carpet", + BlockKind::PrismarineStairs => "prismarine_stairs", + BlockKind::InfestedStone => "infested_stone", + BlockKind::Poppy => "poppy", + BlockKind::RedstoneBlock => "redstone_block", + BlockKind::PurpleCandleCake => "purple_candle_cake", + BlockKind::ChainCommandBlock => "chain_command_block", + BlockKind::Cauldron => "cauldron", + BlockKind::BlackstoneSlab => "blackstone_slab", + BlockKind::ShulkerBox => "shulker_box", + BlockKind::PurpleShulkerBox => "purple_shulker_box", + BlockKind::DripstoneBlock => "dripstone_block", BlockKind::ChiseledSandstone => "chiseled_sandstone", - BlockKind::CutSandstone => "cut_sandstone", - BlockKind::NoteBlock => "note_block", - BlockKind::WhiteBed => "white_bed", - BlockKind::OrangeBed => "orange_bed", - BlockKind::MagentaBed => "magenta_bed", - BlockKind::LightBlueBed => "light_blue_bed", - BlockKind::YellowBed => "yellow_bed", - BlockKind::LimeBed => "lime_bed", - BlockKind::PinkBed => "pink_bed", - BlockKind::GrayBed => "gray_bed", - BlockKind::LightGrayBed => "light_gray_bed", - BlockKind::CyanBed => "cyan_bed", - BlockKind::PurpleBed => "purple_bed", - BlockKind::BlueBed => "blue_bed", - BlockKind::BrownBed => "brown_bed", - BlockKind::GreenBed => "green_bed", - BlockKind::RedBed => "red_bed", - BlockKind::BlackBed => "black_bed", - BlockKind::PoweredRail => "powered_rail", - BlockKind::DetectorRail => "detector_rail", - BlockKind::StickyPiston => "sticky_piston", + BlockKind::RedConcrete => "red_concrete", + BlockKind::CyanBanner => "cyan_banner", + BlockKind::OrangeWallBanner => "orange_wall_banner", + BlockKind::ChiseledPolishedBlackstone => "chiseled_polished_blackstone", + BlockKind::MossyCobblestoneStairs => "mossy_cobblestone_stairs", + BlockKind::BlackWool => "black_wool", + BlockKind::CarvedPumpkin => "carved_pumpkin", + BlockKind::LightBlueTerracotta => "light_blue_terracotta", + BlockKind::OrangeShulkerBox => "orange_shulker_box", + BlockKind::RedTerracotta => "red_terracotta", + BlockKind::BlueWool => "blue_wool", BlockKind::Cobweb => "cobweb", - BlockKind::Grass => "grass", - BlockKind::Fern => "fern", - BlockKind::DeadBush => "dead_bush", + BlockKind::PurpleWallBanner => "purple_wall_banner", + BlockKind::WeatheredCutCopperSlab => "weathered_cut_copper_slab", + BlockKind::IronTrapdoor => "iron_trapdoor", + BlockKind::WhiteBed => "white_bed", + BlockKind::BrownShulkerBox => "brown_shulker_box", + BlockKind::BlueWallBanner => "blue_wall_banner", + BlockKind::PolishedBlackstoneBrickWall => "polished_blackstone_brick_wall", + BlockKind::WaxedCutCopperSlab => "waxed_cut_copper_slab", + BlockKind::PinkBanner => "pink_banner", + BlockKind::MossyStoneBrickSlab => "mossy_stone_brick_slab", + BlockKind::CreeperWallHead => "creeper_wall_head", + BlockKind::Stone => "stone", + BlockKind::OakButton => "oak_button", + BlockKind::Repeater => "repeater", + BlockKind::MossyStoneBrickWall => "mossy_stone_brick_wall", BlockKind::Seagrass => "seagrass", - BlockKind::TallSeagrass => "tall_seagrass", - BlockKind::Piston => "piston", - BlockKind::PistonHead => "piston_head", - BlockKind::WhiteWool => "white_wool", - BlockKind::OrangeWool => "orange_wool", - BlockKind::MagentaWool => "magenta_wool", - BlockKind::LightBlueWool => "light_blue_wool", - BlockKind::YellowWool => "yellow_wool", + BlockKind::DriedKelpBlock => "dried_kelp_block", + BlockKind::BirchWallSign => "birch_wall_sign", + BlockKind::AcaciaFence => "acacia_fence", + BlockKind::CutCopper => "cut_copper", + BlockKind::PolishedBlackstoneBrickSlab => "polished_blackstone_brick_slab", + BlockKind::FloweringAzalea => "flowering_azalea", + BlockKind::CrimsonHyphae => "crimson_hyphae", + BlockKind::DeepslateCopperOre => "deepslate_copper_ore", + BlockKind::TwistingVines => "twisting_vines", + BlockKind::Dispenser => "dispenser", + BlockKind::RedstoneWallTorch => "redstone_wall_torch", + BlockKind::OxidizedCutCopper => "oxidized_cut_copper", + BlockKind::Podzol => "podzol", + BlockKind::SkeletonSkull => "skeleton_skull", + BlockKind::DragonEgg => "dragon_egg", + BlockKind::OrangeConcrete => "orange_concrete", + BlockKind::JungleTrapdoor => "jungle_trapdoor", + BlockKind::GrayWallBanner => "gray_wall_banner", + BlockKind::SpruceLeaves => "spruce_leaves", + BlockKind::DarkPrismarine => "dark_prismarine", + BlockKind::StoneBrickStairs => "stone_brick_stairs", + BlockKind::CrimsonSlab => "crimson_slab", BlockKind::LimeWool => "lime_wool", - BlockKind::PinkWool => "pink_wool", - BlockKind::GrayWool => "gray_wool", - BlockKind::LightGrayWool => "light_gray_wool", - BlockKind::CyanWool => "cyan_wool", - BlockKind::PurpleWool => "purple_wool", - BlockKind::BlueWool => "blue_wool", - BlockKind::BrownWool => "brown_wool", - BlockKind::GreenWool => "green_wool", - BlockKind::RedWool => "red_wool", - BlockKind::BlackWool => "black_wool", - BlockKind::MovingPiston => "moving_piston", - BlockKind::Dandelion => "dandelion", - BlockKind::Poppy => "poppy", - BlockKind::BlueOrchid => "blue_orchid", - BlockKind::Allium => "allium", - BlockKind::AzureBluet => "azure_bluet", + BlockKind::WarpedFungus => "warped_fungus", + BlockKind::PottedWarpedFungus => "potted_warped_fungus", + BlockKind::AndesiteSlab => "andesite_slab", + BlockKind::DarkOakStairs => "dark_oak_stairs", + BlockKind::PinkCandleCake => "pink_candle_cake", + BlockKind::WaxedWeatheredCopper => "waxed_weathered_copper", + BlockKind::GrayBed => "gray_bed", + BlockKind::CreeperHead => "creeper_head", + BlockKind::CutCopperStairs => "cut_copper_stairs", + BlockKind::DeepslateTileStairs => "deepslate_tile_stairs", + BlockKind::BlackWallBanner => "black_wall_banner", + BlockKind::RawGoldBlock => "raw_gold_block", + BlockKind::GrayCarpet => "gray_carpet", + BlockKind::DarkOakWood => "dark_oak_wood", + BlockKind::BirchLeaves => "birch_leaves", BlockKind::RedTulip => "red_tulip", - BlockKind::OrangeTulip => "orange_tulip", - BlockKind::WhiteTulip => "white_tulip", + BlockKind::JungleStairs => "jungle_stairs", + BlockKind::BubbleCoralFan => "bubble_coral_fan", + BlockKind::GraniteWall => "granite_wall", + BlockKind::PrismarineSlab => "prismarine_slab", + BlockKind::SpruceFenceGate => "spruce_fence_gate", + BlockKind::PottedLilyOfTheValley => "potted_lily_of_the_valley", + BlockKind::EmeraldBlock => "emerald_block", + BlockKind::PolishedBlackstoneBrickStairs => "polished_blackstone_brick_stairs", BlockKind::PinkTulip => "pink_tulip", - BlockKind::OxeyeDaisy => "oxeye_daisy", - BlockKind::Cornflower => "cornflower", - BlockKind::WitherRose => "wither_rose", - BlockKind::LilyOfTheValley => "lily_of_the_valley", - BlockKind::BrownMushroom => "brown_mushroom", - BlockKind::RedMushroom => "red_mushroom", - BlockKind::GoldBlock => "gold_block", - BlockKind::IronBlock => "iron_block", - BlockKind::Bricks => "bricks", - BlockKind::Tnt => "tnt", - BlockKind::Bookshelf => "bookshelf", - BlockKind::MossyCobblestone => "mossy_cobblestone", - BlockKind::Obsidian => "obsidian", - BlockKind::Torch => "torch", - BlockKind::WallTorch => "wall_torch", - BlockKind::Fire => "fire", - BlockKind::SoulFire => "soul_fire", - BlockKind::Spawner => "spawner", - BlockKind::OakStairs => "oak_stairs", - BlockKind::Chest => "chest", - BlockKind::RedstoneWire => "redstone_wire", - BlockKind::DiamondOre => "diamond_ore", - BlockKind::DiamondBlock => "diamond_block", - BlockKind::CraftingTable => "crafting_table", - BlockKind::Wheat => "wheat", - BlockKind::Farmland => "farmland", - BlockKind::Furnace => "furnace", - BlockKind::OakSign => "oak_sign", + BlockKind::FireCoralFan => "fire_coral_fan", + BlockKind::GrayStainedGlass => "gray_stained_glass", + BlockKind::SmoothSandstoneStairs => "smooth_sandstone_stairs", BlockKind::SpruceSign => "spruce_sign", - BlockKind::BirchSign => "birch_sign", - BlockKind::AcaciaSign => "acacia_sign", - BlockKind::JungleSign => "jungle_sign", - BlockKind::DarkOakSign => "dark_oak_sign", - BlockKind::OakDoor => "oak_door", - BlockKind::Ladder => "ladder", - BlockKind::Rail => "rail", - BlockKind::CobblestoneStairs => "cobblestone_stairs", + BlockKind::ExposedCutCopperSlab => "exposed_cut_copper_slab", + BlockKind::BrownTerracotta => "brown_terracotta", + BlockKind::DeadTubeCoral => "dead_tube_coral", + BlockKind::WitherSkeletonSkull => "wither_skeleton_skull", + BlockKind::BirchSign => "birch_sign", + BlockKind::LilyPad => "lily_pad", + BlockKind::PolishedBlackstonePressurePlate => "polished_blackstone_pressure_plate", BlockKind::OakWallSign => "oak_wall_sign", - BlockKind::SpruceWallSign => "spruce_wall_sign", - BlockKind::BirchWallSign => "birch_wall_sign", - BlockKind::AcaciaWallSign => "acacia_wall_sign", - BlockKind::JungleWallSign => "jungle_wall_sign", - BlockKind::DarkOakWallSign => "dark_oak_wall_sign", - BlockKind::Lever => "lever", - BlockKind::StonePressurePlate => "stone_pressure_plate", - BlockKind::IronDoor => "iron_door", - BlockKind::OakPressurePlate => "oak_pressure_plate", - BlockKind::SprucePressurePlate => "spruce_pressure_plate", - BlockKind::BirchPressurePlate => "birch_pressure_plate", - BlockKind::JunglePressurePlate => "jungle_pressure_plate", - BlockKind::AcaciaPressurePlate => "acacia_pressure_plate", - BlockKind::DarkOakPressurePlate => "dark_oak_pressure_plate", - BlockKind::RedstoneOre => "redstone_ore", - BlockKind::RedstoneTorch => "redstone_torch", - BlockKind::RedstoneWallTorch => "redstone_wall_torch", - BlockKind::StoneButton => "stone_button", - BlockKind::Snow => "snow", - BlockKind::Ice => "ice", - BlockKind::SnowBlock => "snow_block", - BlockKind::Cactus => "cactus", - BlockKind::Clay => "clay", - BlockKind::SugarCane => "sugar_cane", - BlockKind::Jukebox => "jukebox", - BlockKind::OakFence => "oak_fence", - BlockKind::Pumpkin => "pumpkin", - BlockKind::Netherrack => "netherrack", - BlockKind::SoulSand => "soul_sand", - BlockKind::SoulSoil => "soul_soil", - BlockKind::Basalt => "basalt", - BlockKind::PolishedBasalt => "polished_basalt", - BlockKind::SoulTorch => "soul_torch", - BlockKind::SoulWallTorch => "soul_wall_torch", - BlockKind::Glowstone => "glowstone", - BlockKind::NetherPortal => "nether_portal", - BlockKind::CarvedPumpkin => "carved_pumpkin", - BlockKind::JackOLantern => "jack_o_lantern", + BlockKind::StoneStairs => "stone_stairs", + BlockKind::WaxedCopperBlock => "waxed_copper_block", BlockKind::Cake => "cake", - BlockKind::Repeater => "repeater", + BlockKind::StrippedWarpedHyphae => "stripped_warped_hyphae", + BlockKind::BlueStainedGlassPane => "blue_stained_glass_pane", + BlockKind::WeatheredCopper => "weathered_copper", BlockKind::WhiteStainedGlass => "white_stained_glass", - BlockKind::OrangeStainedGlass => "orange_stained_glass", - BlockKind::MagentaStainedGlass => "magenta_stained_glass", - BlockKind::LightBlueStainedGlass => "light_blue_stained_glass", - BlockKind::YellowStainedGlass => "yellow_stained_glass", - BlockKind::LimeStainedGlass => "lime_stained_glass", - BlockKind::PinkStainedGlass => "pink_stained_glass", - BlockKind::GrayStainedGlass => "gray_stained_glass", - BlockKind::LightGrayStainedGlass => "light_gray_stained_glass", - BlockKind::CyanStainedGlass => "cyan_stained_glass", + BlockKind::Andesite => "andesite", + BlockKind::BlackCarpet => "black_carpet", + BlockKind::PrismarineWall => "prismarine_wall", + BlockKind::WarpedWallSign => "warped_wall_sign", + BlockKind::CoalOre => "coal_ore", + BlockKind::Chest => "chest", + BlockKind::BlueTerracotta => "blue_terracotta", + BlockKind::EmeraldOre => "emerald_ore", + BlockKind::WarpedButton => "warped_button", + BlockKind::OakFenceGate => "oak_fence_gate", + BlockKind::LightGrayShulkerBox => "light_gray_shulker_box", + BlockKind::WhiteShulkerBox => "white_shulker_box", + BlockKind::NetherWart => "nether_wart", + BlockKind::BlackConcrete => "black_concrete", + BlockKind::StoneButton => "stone_button", + BlockKind::MagentaWool => "magenta_wool", + BlockKind::OakStairs => "oak_stairs", BlockKind::PurpleStainedGlass => "purple_stained_glass", - BlockKind::BlueStainedGlass => "blue_stained_glass", - BlockKind::BrownStainedGlass => "brown_stained_glass", - BlockKind::GreenStainedGlass => "green_stained_glass", - BlockKind::RedStainedGlass => "red_stained_glass", - BlockKind::BlackStainedGlass => "black_stained_glass", - BlockKind::OakTrapdoor => "oak_trapdoor", - BlockKind::SpruceTrapdoor => "spruce_trapdoor", - BlockKind::BirchTrapdoor => "birch_trapdoor", - BlockKind::JungleTrapdoor => "jungle_trapdoor", - BlockKind::AcaciaTrapdoor => "acacia_trapdoor", - BlockKind::DarkOakTrapdoor => "dark_oak_trapdoor", - BlockKind::StoneBricks => "stone_bricks", - BlockKind::MossyStoneBricks => "mossy_stone_bricks", - BlockKind::CrackedStoneBricks => "cracked_stone_bricks", - BlockKind::ChiseledStoneBricks => "chiseled_stone_bricks", - BlockKind::InfestedStone => "infested_stone", - BlockKind::InfestedCobblestone => "infested_cobblestone", - BlockKind::InfestedStoneBricks => "infested_stone_bricks", - BlockKind::InfestedMossyStoneBricks => "infested_mossy_stone_bricks", - BlockKind::InfestedCrackedStoneBricks => "infested_cracked_stone_bricks", - BlockKind::InfestedChiseledStoneBricks => "infested_chiseled_stone_bricks", - BlockKind::BrownMushroomBlock => "brown_mushroom_block", - BlockKind::RedMushroomBlock => "red_mushroom_block", - BlockKind::MushroomStem => "mushroom_stem", - BlockKind::IronBars => "iron_bars", - BlockKind::Chain => "chain", + BlockKind::DarkOakPlanks => "dark_oak_planks", BlockKind::GlassPane => "glass_pane", - BlockKind::Melon => "melon", - BlockKind::AttachedPumpkinStem => "attached_pumpkin_stem", - BlockKind::AttachedMelonStem => "attached_melon_stem", - BlockKind::PumpkinStem => "pumpkin_stem", - BlockKind::MelonStem => "melon_stem", - BlockKind::Vine => "vine", - BlockKind::OakFenceGate => "oak_fence_gate", - BlockKind::BrickStairs => "brick_stairs", - BlockKind::StoneBrickStairs => "stone_brick_stairs", - BlockKind::Mycelium => "mycelium", - BlockKind::LilyPad => "lily_pad", + BlockKind::PrismarineBricks => "prismarine_bricks", + BlockKind::PinkWallBanner => "pink_wall_banner", + BlockKind::CobblestoneSlab => "cobblestone_slab", + BlockKind::Stonecutter => "stonecutter", + BlockKind::GreenConcrete => "green_concrete", + BlockKind::BlueGlazedTerracotta => "blue_glazed_terracotta", + BlockKind::Jigsaw => "jigsaw", + BlockKind::AmethystCluster => "amethyst_cluster", + BlockKind::Barrel => "barrel", + BlockKind::Calcite => "calcite", + BlockKind::CraftingTable => "crafting_table", + BlockKind::BlackBanner => "black_banner", + BlockKind::CutRedSandstone => "cut_red_sandstone", + BlockKind::RedSandstoneStairs => "red_sandstone_stairs", + BlockKind::OakSapling => "oak_sapling", BlockKind::NetherBricks => "nether_bricks", - BlockKind::NetherBrickFence => "nether_brick_fence", - BlockKind::NetherBrickStairs => "nether_brick_stairs", - BlockKind::NetherWart => "nether_wart", - BlockKind::EnchantingTable => "enchanting_table", - BlockKind::BrewingStand => "brewing_stand", - BlockKind::Cauldron => "cauldron", - BlockKind::EndPortal => "end_portal", - BlockKind::EndPortalFrame => "end_portal_frame", - BlockKind::EndStone => "end_stone", - BlockKind::DragonEgg => "dragon_egg", - BlockKind::RedstoneLamp => "redstone_lamp", - BlockKind::Cocoa => "cocoa", - BlockKind::SandstoneStairs => "sandstone_stairs", - BlockKind::EmeraldOre => "emerald_ore", - BlockKind::EnderChest => "ender_chest", - BlockKind::TripwireHook => "tripwire_hook", - BlockKind::Tripwire => "tripwire", - BlockKind::EmeraldBlock => "emerald_block", - BlockKind::SpruceStairs => "spruce_stairs", - BlockKind::BirchStairs => "birch_stairs", - BlockKind::JungleStairs => "jungle_stairs", - BlockKind::CommandBlock => "command_block", - BlockKind::Beacon => "beacon", - BlockKind::CobblestoneWall => "cobblestone_wall", - BlockKind::MossyCobblestoneWall => "mossy_cobblestone_wall", - BlockKind::FlowerPot => "flower_pot", - BlockKind::PottedOakSapling => "potted_oak_sapling", - BlockKind::PottedSpruceSapling => "potted_spruce_sapling", - BlockKind::PottedBirchSapling => "potted_birch_sapling", - BlockKind::PottedJungleSapling => "potted_jungle_sapling", - BlockKind::PottedAcaciaSapling => "potted_acacia_sapling", + BlockKind::LightBlueConcrete => "light_blue_concrete", + BlockKind::AcaciaSapling => "acacia_sapling", + BlockKind::TubeCoralFan => "tube_coral_fan", BlockKind::PottedDarkOakSapling => "potted_dark_oak_sapling", - BlockKind::PottedFern => "potted_fern", - BlockKind::PottedDandelion => "potted_dandelion", - BlockKind::PottedPoppy => "potted_poppy", - BlockKind::PottedBlueOrchid => "potted_blue_orchid", - BlockKind::PottedAllium => "potted_allium", - BlockKind::PottedAzureBluet => "potted_azure_bluet", - BlockKind::PottedRedTulip => "potted_red_tulip", - BlockKind::PottedOrangeTulip => "potted_orange_tulip", - BlockKind::PottedWhiteTulip => "potted_white_tulip", - BlockKind::PottedPinkTulip => "potted_pink_tulip", + BlockKind::SoulWallTorch => "soul_wall_torch", + BlockKind::SmallAmethystBud => "small_amethyst_bud", + BlockKind::PinkShulkerBox => "pink_shulker_box", + BlockKind::RedWool => "red_wool", + BlockKind::Beehive => "beehive", + BlockKind::BigDripleaf => "big_dripleaf", + BlockKind::OrangeCarpet => "orange_carpet", + BlockKind::StrippedWarpedStem => "stripped_warped_stem", + BlockKind::RedBanner => "red_banner", + BlockKind::MagmaBlock => "magma_block", + BlockKind::JackOLantern => "jack_o_lantern", + BlockKind::Fire => "fire", + BlockKind::SmithingTable => "smithing_table", + BlockKind::Target => "target", + BlockKind::SeaPickle => "sea_pickle", + BlockKind::SpruceWood => "spruce_wood", + BlockKind::PinkBed => "pink_bed", + BlockKind::BlackCandle => "black_candle", + BlockKind::WaxedCutCopper => "waxed_cut_copper", + BlockKind::LightBlueWallBanner => "light_blue_wall_banner", + BlockKind::BirchFenceGate => "birch_fence_gate", + BlockKind::PetrifiedOakSlab => "petrified_oak_slab", + BlockKind::RespawnAnchor => "respawn_anchor", + BlockKind::WhiteCandleCake => "white_candle_cake", + BlockKind::DeadBubbleCoralWallFan => "dead_bubble_coral_wall_fan", + BlockKind::JungleLog => "jungle_log", + BlockKind::Lever => "lever", + BlockKind::EndStoneBricks => "end_stone_bricks", + BlockKind::OxidizedCopper => "oxidized_copper", + BlockKind::GraniteSlab => "granite_slab", + BlockKind::DeadTubeCoralWallFan => "dead_tube_coral_wall_fan", + BlockKind::Allium => "allium", + BlockKind::IronBlock => "iron_block", + BlockKind::OrangeStainedGlassPane => "orange_stained_glass_pane", + BlockKind::BlackstoneWall => "blackstone_wall", + BlockKind::YellowTerracotta => "yellow_terracotta", + BlockKind::HeavyWeightedPressurePlate => "heavy_weighted_pressure_plate", + BlockKind::YellowConcrete => "yellow_concrete", + BlockKind::BrownConcretePowder => "brown_concrete_powder", + BlockKind::Blackstone => "blackstone", + BlockKind::GlowLichen => "glow_lichen", + BlockKind::Netherrack => "netherrack", + BlockKind::SprucePlanks => "spruce_planks", + BlockKind::SandstoneStairs => "sandstone_stairs", + BlockKind::LimeStainedGlass => "lime_stained_glass", + BlockKind::PumpkinStem => "pumpkin_stem", + BlockKind::MelonStem => "melon_stem", + BlockKind::SpruceSapling => "spruce_sapling", + BlockKind::YellowGlazedTerracotta => "yellow_glazed_terracotta", + BlockKind::CyanGlazedTerracotta => "cyan_glazed_terracotta", + BlockKind::CrimsonButton => "crimson_button", + BlockKind::BeeNest => "bee_nest", + BlockKind::DeepslateBrickStairs => "deepslate_brick_stairs", + BlockKind::ChiseledRedSandstone => "chiseled_red_sandstone", + BlockKind::LightGrayConcretePowder => "light_gray_concrete_powder", + BlockKind::BoneBlock => "bone_block", + BlockKind::Terracotta => "terracotta", + BlockKind::PackedIce => "packed_ice", BlockKind::PottedOxeyeDaisy => "potted_oxeye_daisy", - BlockKind::PottedCornflower => "potted_cornflower", - BlockKind::PottedLilyOfTheValley => "potted_lily_of_the_valley", - BlockKind::PottedWitherRose => "potted_wither_rose", + BlockKind::YellowShulkerBox => "yellow_shulker_box", + BlockKind::MushroomStem => "mushroom_stem", + BlockKind::PottedWhiteTulip => "potted_white_tulip", + BlockKind::Sunflower => "sunflower", + BlockKind::LightBlueCandle => "light_blue_candle", + BlockKind::NetherQuartzOre => "nether_quartz_ore", + BlockKind::ChorusPlant => "chorus_plant", + BlockKind::DeadBubbleCoral => "dead_bubble_coral", + BlockKind::SoulFire => "soul_fire", + BlockKind::BubbleCoral => "bubble_coral", + BlockKind::PolishedAndesiteStairs => "polished_andesite_stairs", + BlockKind::WarpedPressurePlate => "warped_pressure_plate", + BlockKind::DarkOakLeaves => "dark_oak_leaves", + BlockKind::OrangeWool => "orange_wool", + BlockKind::DeadBrainCoralWallFan => "dead_brain_coral_wall_fan", BlockKind::PottedRedMushroom => "potted_red_mushroom", - BlockKind::PottedBrownMushroom => "potted_brown_mushroom", - BlockKind::PottedDeadBush => "potted_dead_bush", - BlockKind::PottedCactus => "potted_cactus", - BlockKind::Carrots => "carrots", - BlockKind::Potatoes => "potatoes", - BlockKind::OakButton => "oak_button", - BlockKind::SpruceButton => "spruce_button", - BlockKind::BirchButton => "birch_button", - BlockKind::JungleButton => "jungle_button", - BlockKind::AcaciaButton => "acacia_button", - BlockKind::DarkOakButton => "dark_oak_button", - BlockKind::SkeletonSkull => "skeleton_skull", - BlockKind::SkeletonWallSkull => "skeleton_wall_skull", - BlockKind::WitherSkeletonSkull => "wither_skeleton_skull", - BlockKind::WitherSkeletonWallSkull => "wither_skeleton_wall_skull", - BlockKind::ZombieHead => "zombie_head", - BlockKind::ZombieWallHead => "zombie_wall_head", - BlockKind::PlayerHead => "player_head", - BlockKind::PlayerWallHead => "player_wall_head", - BlockKind::CreeperHead => "creeper_head", - BlockKind::CreeperWallHead => "creeper_wall_head", - BlockKind::DragonHead => "dragon_head", - BlockKind::DragonWallHead => "dragon_wall_head", - BlockKind::Anvil => "anvil", - BlockKind::ChippedAnvil => "chipped_anvil", - BlockKind::DamagedAnvil => "damaged_anvil", - BlockKind::TrappedChest => "trapped_chest", - BlockKind::LightWeightedPressurePlate => "light_weighted_pressure_plate", - BlockKind::HeavyWeightedPressurePlate => "heavy_weighted_pressure_plate", - BlockKind::Comparator => "comparator", - BlockKind::DaylightDetector => "daylight_detector", - BlockKind::RedstoneBlock => "redstone_block", - BlockKind::NetherQuartzOre => "nether_quartz_ore", - BlockKind::Hopper => "hopper", - BlockKind::QuartzBlock => "quartz_block", - BlockKind::ChiseledQuartzBlock => "chiseled_quartz_block", - BlockKind::QuartzPillar => "quartz_pillar", - BlockKind::QuartzStairs => "quartz_stairs", - BlockKind::ActivatorRail => "activator_rail", - BlockKind::Dropper => "dropper", - BlockKind::WhiteTerracotta => "white_terracotta", - BlockKind::OrangeTerracotta => "orange_terracotta", - BlockKind::MagentaTerracotta => "magenta_terracotta", - BlockKind::LightBlueTerracotta => "light_blue_terracotta", - BlockKind::YellowTerracotta => "yellow_terracotta", - BlockKind::LimeTerracotta => "lime_terracotta", - BlockKind::PinkTerracotta => "pink_terracotta", - BlockKind::GrayTerracotta => "gray_terracotta", - BlockKind::LightGrayTerracotta => "light_gray_terracotta", - BlockKind::CyanTerracotta => "cyan_terracotta", - BlockKind::PurpleTerracotta => "purple_terracotta", - BlockKind::BlueTerracotta => "blue_terracotta", - BlockKind::BrownTerracotta => "brown_terracotta", - BlockKind::GreenTerracotta => "green_terracotta", - BlockKind::RedTerracotta => "red_terracotta", - BlockKind::BlackTerracotta => "black_terracotta", - BlockKind::WhiteStainedGlassPane => "white_stained_glass_pane", - BlockKind::OrangeStainedGlassPane => "orange_stained_glass_pane", - BlockKind::MagentaStainedGlassPane => "magenta_stained_glass_pane", - BlockKind::LightBlueStainedGlassPane => "light_blue_stained_glass_pane", - BlockKind::YellowStainedGlassPane => "yellow_stained_glass_pane", - BlockKind::LimeStainedGlassPane => "lime_stained_glass_pane", - BlockKind::PinkStainedGlassPane => "pink_stained_glass_pane", - BlockKind::GrayStainedGlassPane => "gray_stained_glass_pane", + BlockKind::CrimsonStem => "crimson_stem", + BlockKind::ChiseledNetherBricks => "chiseled_nether_bricks", + BlockKind::WarpedSlab => "warped_slab", + BlockKind::PolishedDeepslateSlab => "polished_deepslate_slab", + BlockKind::BlueCandleCake => "blue_candle_cake", + BlockKind::MossyCobblestoneSlab => "mossy_cobblestone_slab", BlockKind::LightGrayStainedGlassPane => "light_gray_stained_glass_pane", - BlockKind::CyanStainedGlassPane => "cyan_stained_glass_pane", - BlockKind::PurpleStainedGlassPane => "purple_stained_glass_pane", - BlockKind::BlueStainedGlassPane => "blue_stained_glass_pane", - BlockKind::BrownStainedGlassPane => "brown_stained_glass_pane", - BlockKind::GreenStainedGlassPane => "green_stained_glass_pane", - BlockKind::RedStainedGlassPane => "red_stained_glass_pane", - BlockKind::BlackStainedGlassPane => "black_stained_glass_pane", - BlockKind::AcaciaStairs => "acacia_stairs", - BlockKind::DarkOakStairs => "dark_oak_stairs", - BlockKind::SlimeBlock => "slime_block", - BlockKind::Barrier => "barrier", - BlockKind::IronTrapdoor => "iron_trapdoor", + BlockKind::QuartzSlab => "quartz_slab", BlockKind::Prismarine => "prismarine", - BlockKind::PrismarineBricks => "prismarine_bricks", - BlockKind::DarkPrismarine => "dark_prismarine", - BlockKind::PrismarineStairs => "prismarine_stairs", - BlockKind::PrismarineBrickStairs => "prismarine_brick_stairs", - BlockKind::DarkPrismarineStairs => "dark_prismarine_stairs", - BlockKind::PrismarineSlab => "prismarine_slab", - BlockKind::PrismarineBrickSlab => "prismarine_brick_slab", - BlockKind::DarkPrismarineSlab => "dark_prismarine_slab", - BlockKind::SeaLantern => "sea_lantern", - BlockKind::HayBlock => "hay_block", - BlockKind::WhiteCarpet => "white_carpet", - BlockKind::OrangeCarpet => "orange_carpet", - BlockKind::MagentaCarpet => "magenta_carpet", - BlockKind::LightBlueCarpet => "light_blue_carpet", - BlockKind::YellowCarpet => "yellow_carpet", - BlockKind::LimeCarpet => "lime_carpet", + BlockKind::TrappedChest => "trapped_chest", BlockKind::PinkCarpet => "pink_carpet", - BlockKind::GrayCarpet => "gray_carpet", - BlockKind::LightGrayCarpet => "light_gray_carpet", - BlockKind::CyanCarpet => "cyan_carpet", - BlockKind::PurpleCarpet => "purple_carpet", - BlockKind::BlueCarpet => "blue_carpet", - BlockKind::BrownCarpet => "brown_carpet", - BlockKind::GreenCarpet => "green_carpet", - BlockKind::RedCarpet => "red_carpet", - BlockKind::BlackCarpet => "black_carpet", - BlockKind::Terracotta => "terracotta", - BlockKind::CoalBlock => "coal_block", - BlockKind::PackedIce => "packed_ice", - BlockKind::Sunflower => "sunflower", - BlockKind::Lilac => "lilac", - BlockKind::RoseBush => "rose_bush", - BlockKind::Peony => "peony", - BlockKind::TallGrass => "tall_grass", - BlockKind::LargeFern => "large_fern", - BlockKind::WhiteBanner => "white_banner", + BlockKind::StrippedDarkOakWood => "stripped_dark_oak_wood", + BlockKind::BrownConcrete => "brown_concrete", + BlockKind::YellowConcretePowder => "yellow_concrete_powder", + BlockKind::FireCoralWallFan => "fire_coral_wall_fan", BlockKind::OrangeBanner => "orange_banner", - BlockKind::MagentaBanner => "magenta_banner", - BlockKind::LightBlueBanner => "light_blue_banner", - BlockKind::YellowBanner => "yellow_banner", - BlockKind::LimeBanner => "lime_banner", - BlockKind::PinkBanner => "pink_banner", - BlockKind::GrayBanner => "gray_banner", - BlockKind::LightGrayBanner => "light_gray_banner", - BlockKind::CyanBanner => "cyan_banner", - BlockKind::PurpleBanner => "purple_banner", - BlockKind::BlueBanner => "blue_banner", - BlockKind::BrownBanner => "brown_banner", - BlockKind::GreenBanner => "green_banner", - BlockKind::RedBanner => "red_banner", - BlockKind::BlackBanner => "black_banner", - BlockKind::WhiteWallBanner => "white_wall_banner", - BlockKind::OrangeWallBanner => "orange_wall_banner", - BlockKind::MagentaWallBanner => "magenta_wall_banner", - BlockKind::LightBlueWallBanner => "light_blue_wall_banner", - BlockKind::YellowWallBanner => "yellow_wall_banner", - BlockKind::LimeWallBanner => "lime_wall_banner", - BlockKind::PinkWallBanner => "pink_wall_banner", - BlockKind::GrayWallBanner => "gray_wall_banner", - BlockKind::LightGrayWallBanner => "light_gray_wall_banner", - BlockKind::CyanWallBanner => "cyan_wall_banner", - BlockKind::PurpleWallBanner => "purple_wall_banner", - BlockKind::BlueWallBanner => "blue_wall_banner", - BlockKind::BrownWallBanner => "brown_wall_banner", - BlockKind::GreenWallBanner => "green_wall_banner", - BlockKind::RedWallBanner => "red_wall_banner", - BlockKind::BlackWallBanner => "black_wall_banner", - BlockKind::RedSandstone => "red_sandstone", - BlockKind::ChiseledRedSandstone => "chiseled_red_sandstone", - BlockKind::CutRedSandstone => "cut_red_sandstone", - BlockKind::RedSandstoneStairs => "red_sandstone_stairs", - BlockKind::OakSlab => "oak_slab", - BlockKind::SpruceSlab => "spruce_slab", - BlockKind::BirchSlab => "birch_slab", - BlockKind::JungleSlab => "jungle_slab", - BlockKind::AcaciaSlab => "acacia_slab", - BlockKind::DarkOakSlab => "dark_oak_slab", - BlockKind::StoneSlab => "stone_slab", - BlockKind::SmoothStoneSlab => "smooth_stone_slab", - BlockKind::SandstoneSlab => "sandstone_slab", - BlockKind::CutSandstoneSlab => "cut_sandstone_slab", - BlockKind::PetrifiedOakSlab => "petrified_oak_slab", - BlockKind::CobblestoneSlab => "cobblestone_slab", - BlockKind::BrickSlab => "brick_slab", - BlockKind::StoneBrickSlab => "stone_brick_slab", - BlockKind::NetherBrickSlab => "nether_brick_slab", - BlockKind::QuartzSlab => "quartz_slab", - BlockKind::RedSandstoneSlab => "red_sandstone_slab", + BlockKind::BrownMushroom => "brown_mushroom", + BlockKind::FloweringAzaleaLeaves => "flowering_azalea_leaves", + BlockKind::BlackTerracotta => "black_terracotta", + BlockKind::BlueOrchid => "blue_orchid", + BlockKind::RedNetherBrickWall => "red_nether_brick_wall", + BlockKind::MagentaConcretePowder => "magenta_concrete_powder", + BlockKind::PottedDandelion => "potted_dandelion", + BlockKind::HornCoralBlock => "horn_coral_block", + BlockKind::BrownCandle => "brown_candle", + BlockKind::RawCopperBlock => "raw_copper_block", + BlockKind::AmethystBlock => "amethyst_block", BlockKind::CutRedSandstoneSlab => "cut_red_sandstone_slab", - BlockKind::PurpurSlab => "purpur_slab", - BlockKind::SmoothStone => "smooth_stone", - BlockKind::SmoothSandstone => "smooth_sandstone", - BlockKind::SmoothQuartz => "smooth_quartz", - BlockKind::SmoothRedSandstone => "smooth_red_sandstone", - BlockKind::SpruceFenceGate => "spruce_fence_gate", - BlockKind::BirchFenceGate => "birch_fence_gate", - BlockKind::JungleFenceGate => "jungle_fence_gate", - BlockKind::AcaciaFenceGate => "acacia_fence_gate", - BlockKind::DarkOakFenceGate => "dark_oak_fence_gate", - BlockKind::SpruceFence => "spruce_fence", - BlockKind::BirchFence => "birch_fence", - BlockKind::JungleFence => "jungle_fence", - BlockKind::AcaciaFence => "acacia_fence", - BlockKind::DarkOakFence => "dark_oak_fence", - BlockKind::SpruceDoor => "spruce_door", - BlockKind::BirchDoor => "birch_door", - BlockKind::JungleDoor => "jungle_door", - BlockKind::AcaciaDoor => "acacia_door", - BlockKind::DarkOakDoor => "dark_oak_door", - BlockKind::EndRod => "end_rod", - BlockKind::ChorusPlant => "chorus_plant", - BlockKind::ChorusFlower => "chorus_flower", + BlockKind::BlackCandleCake => "black_candle_cake", + BlockKind::RedMushroomBlock => "red_mushroom_block", + BlockKind::PinkConcrete => "pink_concrete", + BlockKind::DarkOakSign => "dark_oak_sign", + BlockKind::Grass => "grass", + BlockKind::DeepslateDiamondOre => "deepslate_diamond_ore", + BlockKind::PolishedDioriteSlab => "polished_diorite_slab", + BlockKind::StrippedCrimsonHyphae => "stripped_crimson_hyphae", + BlockKind::DeepslateBricks => "deepslate_bricks", BlockKind::PurpurBlock => "purpur_block", + BlockKind::YellowCandleCake => "yellow_candle_cake", + BlockKind::LapisOre => "lapis_ore", + BlockKind::OakSign => "oak_sign", + BlockKind::Peony => "peony", + BlockKind::LightBlueBed => "light_blue_bed", + BlockKind::RedSandstoneWall => "red_sandstone_wall", + BlockKind::PolishedBlackstoneBricks => "polished_blackstone_bricks", + BlockKind::OrangeBed => "orange_bed", + BlockKind::TurtleEgg => "turtle_egg", + BlockKind::CobbledDeepslate => "cobbled_deepslate", + BlockKind::WarpedNylium => "warped_nylium", + BlockKind::CyanWool => "cyan_wool", + BlockKind::Glass => "glass", + BlockKind::LightGrayCandle => "light_gray_candle", + BlockKind::ChiseledQuartzBlock => "chiseled_quartz_block", + BlockKind::PurpleCarpet => "purple_carpet", + BlockKind::Sponge => "sponge", + BlockKind::Ladder => "ladder", + BlockKind::SoulSand => "soul_sand", BlockKind::PurpurPillar => "purpur_pillar", - BlockKind::PurpurStairs => "purpur_stairs", - BlockKind::EndStoneBricks => "end_stone_bricks", - BlockKind::Beetroots => "beetroots", - BlockKind::GrassPath => "grass_path", - BlockKind::EndGateway => "end_gateway", - BlockKind::RepeatingCommandBlock => "repeating_command_block", - BlockKind::ChainCommandBlock => "chain_command_block", - BlockKind::FrostedIce => "frosted_ice", - BlockKind::MagmaBlock => "magma_block", BlockKind::NetherWartBlock => "nether_wart_block", - BlockKind::RedNetherBricks => "red_nether_bricks", - BlockKind::BoneBlock => "bone_block", - BlockKind::StructureVoid => "structure_void", - BlockKind::Observer => "observer", - BlockKind::ShulkerBox => "shulker_box", - BlockKind::WhiteShulkerBox => "white_shulker_box", - BlockKind::OrangeShulkerBox => "orange_shulker_box", - BlockKind::MagentaShulkerBox => "magenta_shulker_box", - BlockKind::LightBlueShulkerBox => "light_blue_shulker_box", - BlockKind::YellowShulkerBox => "yellow_shulker_box", - BlockKind::LimeShulkerBox => "lime_shulker_box", - BlockKind::PinkShulkerBox => "pink_shulker_box", - BlockKind::GrayShulkerBox => "gray_shulker_box", - BlockKind::LightGrayShulkerBox => "light_gray_shulker_box", - BlockKind::CyanShulkerBox => "cyan_shulker_box", - BlockKind::PurpleShulkerBox => "purple_shulker_box", - BlockKind::BlueShulkerBox => "blue_shulker_box", - BlockKind::BrownShulkerBox => "brown_shulker_box", - BlockKind::GreenShulkerBox => "green_shulker_box", - BlockKind::RedShulkerBox => "red_shulker_box", + BlockKind::WarpedPlanks => "warped_planks", + BlockKind::PottedWarpedRoots => "potted_warped_roots", BlockKind::BlackShulkerBox => "black_shulker_box", - BlockKind::WhiteGlazedTerracotta => "white_glazed_terracotta", - BlockKind::OrangeGlazedTerracotta => "orange_glazed_terracotta", - BlockKind::MagentaGlazedTerracotta => "magenta_glazed_terracotta", - BlockKind::LightBlueGlazedTerracotta => "light_blue_glazed_terracotta", - BlockKind::YellowGlazedTerracotta => "yellow_glazed_terracotta", - BlockKind::LimeGlazedTerracotta => "lime_glazed_terracotta", - BlockKind::PinkGlazedTerracotta => "pink_glazed_terracotta", - BlockKind::GrayGlazedTerracotta => "gray_glazed_terracotta", - BlockKind::LightGrayGlazedTerracotta => "light_gray_glazed_terracotta", - BlockKind::CyanGlazedTerracotta => "cyan_glazed_terracotta", - BlockKind::PurpleGlazedTerracotta => "purple_glazed_terracotta", - BlockKind::BlueGlazedTerracotta => "blue_glazed_terracotta", - BlockKind::BrownGlazedTerracotta => "brown_glazed_terracotta", - BlockKind::GreenGlazedTerracotta => "green_glazed_terracotta", - BlockKind::RedGlazedTerracotta => "red_glazed_terracotta", - BlockKind::BlackGlazedTerracotta => "black_glazed_terracotta", - BlockKind::WhiteConcrete => "white_concrete", - BlockKind::OrangeConcrete => "orange_concrete", - BlockKind::MagentaConcrete => "magenta_concrete", - BlockKind::LightBlueConcrete => "light_blue_concrete", - BlockKind::YellowConcrete => "yellow_concrete", - BlockKind::LimeConcrete => "lime_concrete", - BlockKind::PinkConcrete => "pink_concrete", + BlockKind::RedCandle => "red_candle", + BlockKind::WhiteCarpet => "white_carpet", + BlockKind::EndPortalFrame => "end_portal_frame", + BlockKind::PolishedAndesite => "polished_andesite", + BlockKind::InfestedStoneBricks => "infested_stone_bricks", + BlockKind::LightBlueCandleCake => "light_blue_candle_cake", + BlockKind::StrippedOakWood => "stripped_oak_wood", + BlockKind::GraniteStairs => "granite_stairs", + BlockKind::RedSandstone => "red_sandstone", + BlockKind::DarkPrismarineSlab => "dark_prismarine_slab", + BlockKind::Diorite => "diorite", + BlockKind::RootedDirt => "rooted_dirt", + BlockKind::PottedPinkTulip => "potted_pink_tulip", + BlockKind::MagentaCandle => "magenta_candle", + BlockKind::WeatheredCutCopperStairs => "weathered_cut_copper_stairs", + BlockKind::JungleWood => "jungle_wood", + BlockKind::BirchWood => "birch_wood", + BlockKind::LightBlueWool => "light_blue_wool", + BlockKind::AttachedPumpkinStem => "attached_pumpkin_stem", + BlockKind::WarpedFence => "warped_fence", + BlockKind::PointedDripstone => "pointed_dripstone", + BlockKind::StrippedAcaciaLog => "stripped_acacia_log", + BlockKind::Carrots => "carrots", + BlockKind::AcaciaButton => "acacia_button", BlockKind::GrayConcrete => "gray_concrete", - BlockKind::LightGrayConcrete => "light_gray_concrete", - BlockKind::CyanConcrete => "cyan_concrete", - BlockKind::PurpleConcrete => "purple_concrete", - BlockKind::BlueConcrete => "blue_concrete", - BlockKind::BrownConcrete => "brown_concrete", - BlockKind::GreenConcrete => "green_concrete", - BlockKind::RedConcrete => "red_concrete", - BlockKind::BlackConcrete => "black_concrete", - BlockKind::WhiteConcretePowder => "white_concrete_powder", - BlockKind::OrangeConcretePowder => "orange_concrete_powder", - BlockKind::MagentaConcretePowder => "magenta_concrete_powder", - BlockKind::LightBlueConcretePowder => "light_blue_concrete_powder", - BlockKind::YellowConcretePowder => "yellow_concrete_powder", - BlockKind::LimeConcretePowder => "lime_concrete_powder", - BlockKind::PinkConcretePowder => "pink_concrete_powder", - BlockKind::GrayConcretePowder => "gray_concrete_powder", - BlockKind::LightGrayConcretePowder => "light_gray_concrete_powder", - BlockKind::CyanConcretePowder => "cyan_concrete_powder", - BlockKind::PurpleConcretePowder => "purple_concrete_powder", - BlockKind::BlueConcretePowder => "blue_concrete_powder", - BlockKind::BrownConcretePowder => "brown_concrete_powder", - BlockKind::GreenConcretePowder => "green_concrete_powder", - BlockKind::RedConcretePowder => "red_concrete_powder", - BlockKind::BlackConcretePowder => "black_concrete_powder", - BlockKind::Kelp => "kelp", - BlockKind::KelpPlant => "kelp_plant", - BlockKind::DriedKelpBlock => "dried_kelp_block", - BlockKind::TurtleEgg => "turtle_egg", - BlockKind::DeadTubeCoralBlock => "dead_tube_coral_block", - BlockKind::DeadBrainCoralBlock => "dead_brain_coral_block", - BlockKind::DeadBubbleCoralBlock => "dead_bubble_coral_block", - BlockKind::DeadFireCoralBlock => "dead_fire_coral_block", - BlockKind::DeadHornCoralBlock => "dead_horn_coral_block", - BlockKind::TubeCoralBlock => "tube_coral_block", - BlockKind::BrainCoralBlock => "brain_coral_block", - BlockKind::BubbleCoralBlock => "bubble_coral_block", - BlockKind::FireCoralBlock => "fire_coral_block", - BlockKind::HornCoralBlock => "horn_coral_block", - BlockKind::DeadTubeCoral => "dead_tube_coral", - BlockKind::DeadBrainCoral => "dead_brain_coral", - BlockKind::DeadBubbleCoral => "dead_bubble_coral", - BlockKind::DeadFireCoral => "dead_fire_coral", - BlockKind::DeadHornCoral => "dead_horn_coral", - BlockKind::TubeCoral => "tube_coral", - BlockKind::BrainCoral => "brain_coral", - BlockKind::BubbleCoral => "bubble_coral", - BlockKind::FireCoral => "fire_coral", - BlockKind::HornCoral => "horn_coral", - BlockKind::DeadTubeCoralFan => "dead_tube_coral_fan", - BlockKind::DeadBrainCoralFan => "dead_brain_coral_fan", - BlockKind::DeadBubbleCoralFan => "dead_bubble_coral_fan", - BlockKind::DeadFireCoralFan => "dead_fire_coral_fan", - BlockKind::DeadHornCoralFan => "dead_horn_coral_fan", - BlockKind::TubeCoralFan => "tube_coral_fan", - BlockKind::BrainCoralFan => "brain_coral_fan", - BlockKind::BubbleCoralFan => "bubble_coral_fan", - BlockKind::FireCoralFan => "fire_coral_fan", - BlockKind::HornCoralFan => "horn_coral_fan", - BlockKind::DeadTubeCoralWallFan => "dead_tube_coral_wall_fan", - BlockKind::DeadBrainCoralWallFan => "dead_brain_coral_wall_fan", - BlockKind::DeadBubbleCoralWallFan => "dead_bubble_coral_wall_fan", - BlockKind::DeadFireCoralWallFan => "dead_fire_coral_wall_fan", - BlockKind::DeadHornCoralWallFan => "dead_horn_coral_wall_fan", - BlockKind::TubeCoralWallFan => "tube_coral_wall_fan", - BlockKind::BrainCoralWallFan => "brain_coral_wall_fan", - BlockKind::BubbleCoralWallFan => "bubble_coral_wall_fan", - BlockKind::FireCoralWallFan => "fire_coral_wall_fan", - BlockKind::HornCoralWallFan => "horn_coral_wall_fan", - BlockKind::SeaPickle => "sea_pickle", - BlockKind::BlueIce => "blue_ice", - BlockKind::Conduit => "conduit", - BlockKind::BambooSapling => "bamboo_sapling", - BlockKind::Bamboo => "bamboo", - BlockKind::PottedBamboo => "potted_bamboo", - BlockKind::VoidAir => "void_air", + BlockKind::PottedAzaleaBush => "potted_azalea_bush", + BlockKind::DarkOakFence => "dark_oak_fence", + BlockKind::RedMushroom => "red_mushroom", + BlockKind::CoarseDirt => "coarse_dirt", + BlockKind::Ice => "ice", + BlockKind::MagentaStainedGlass => "magenta_stained_glass", + BlockKind::BirchLog => "birch_log", BlockKind::CaveAir => "cave_air", + BlockKind::InfestedCrackedStoneBricks => "infested_cracked_stone_bricks", + BlockKind::OrangeTulip => "orange_tulip", BlockKind::BubbleColumn => "bubble_column", - BlockKind::PolishedGraniteStairs => "polished_granite_stairs", - BlockKind::SmoothRedSandstoneStairs => "smooth_red_sandstone_stairs", - BlockKind::MossyStoneBrickStairs => "mossy_stone_brick_stairs", - BlockKind::PolishedDioriteStairs => "polished_diorite_stairs", - BlockKind::MossyCobblestoneStairs => "mossy_cobblestone_stairs", - BlockKind::EndStoneBrickStairs => "end_stone_brick_stairs", - BlockKind::StoneStairs => "stone_stairs", - BlockKind::SmoothSandstoneStairs => "smooth_sandstone_stairs", - BlockKind::SmoothQuartzStairs => "smooth_quartz_stairs", - BlockKind::GraniteStairs => "granite_stairs", - BlockKind::AndesiteStairs => "andesite_stairs", - BlockKind::RedNetherBrickStairs => "red_nether_brick_stairs", - BlockKind::PolishedAndesiteStairs => "polished_andesite_stairs", - BlockKind::DioriteStairs => "diorite_stairs", - BlockKind::PolishedGraniteSlab => "polished_granite_slab", - BlockKind::SmoothRedSandstoneSlab => "smooth_red_sandstone_slab", - BlockKind::MossyStoneBrickSlab => "mossy_stone_brick_slab", - BlockKind::PolishedDioriteSlab => "polished_diorite_slab", - BlockKind::MossyCobblestoneSlab => "mossy_cobblestone_slab", - BlockKind::EndStoneBrickSlab => "end_stone_brick_slab", - BlockKind::SmoothSandstoneSlab => "smooth_sandstone_slab", + BlockKind::SculkSensor => "sculk_sensor", + BlockKind::OxidizedCutCopperStairs => "oxidized_cut_copper_stairs", + BlockKind::CrackedNetherBricks => "cracked_nether_bricks", + BlockKind::DiamondOre => "diamond_ore", + BlockKind::PottedAzureBluet => "potted_azure_bluet", + BlockKind::SmoothStoneSlab => "smooth_stone_slab", + BlockKind::RedstoneTorch => "redstone_torch", + BlockKind::OakDoor => "oak_door", + BlockKind::CoalBlock => "coal_block", + BlockKind::SpruceWallSign => "spruce_wall_sign", + BlockKind::Snow => "snow", + BlockKind::TwistingVinesPlant => "twisting_vines_plant", + BlockKind::PottedBlueOrchid => "potted_blue_orchid", + BlockKind::YellowBed => "yellow_bed", BlockKind::SmoothQuartzSlab => "smooth_quartz_slab", - BlockKind::GraniteSlab => "granite_slab", - BlockKind::AndesiteSlab => "andesite_slab", - BlockKind::RedNetherBrickSlab => "red_nether_brick_slab", - BlockKind::PolishedAndesiteSlab => "polished_andesite_slab", - BlockKind::DioriteSlab => "diorite_slab", - BlockKind::BrickWall => "brick_wall", - BlockKind::PrismarineWall => "prismarine_wall", - BlockKind::RedSandstoneWall => "red_sandstone_wall", - BlockKind::MossyStoneBrickWall => "mossy_stone_brick_wall", - BlockKind::GraniteWall => "granite_wall", - BlockKind::StoneBrickWall => "stone_brick_wall", - BlockKind::NetherBrickWall => "nether_brick_wall", - BlockKind::AndesiteWall => "andesite_wall", - BlockKind::RedNetherBrickWall => "red_nether_brick_wall", - BlockKind::SandstoneWall => "sandstone_wall", - BlockKind::EndStoneBrickWall => "end_stone_brick_wall", - BlockKind::DioriteWall => "diorite_wall", - BlockKind::Scaffolding => "scaffolding", - BlockKind::Loom => "loom", - BlockKind::Barrel => "barrel", - BlockKind::Smoker => "smoker", - BlockKind::BlastFurnace => "blast_furnace", + BlockKind::JungleLeaves => "jungle_leaves", + BlockKind::AcaciaPressurePlate => "acacia_pressure_plate", + BlockKind::MagentaConcrete => "magenta_concrete", + BlockKind::PottedFloweringAzaleaBush => "potted_flowering_azalea_bush", + BlockKind::GreenStainedGlassPane => "green_stained_glass_pane", + BlockKind::SporeBlossom => "spore_blossom", + BlockKind::WaxedExposedCopper => "waxed_exposed_copper", + BlockKind::BlackBed => "black_bed", + BlockKind::PolishedBasalt => "polished_basalt", + BlockKind::Beetroots => "beetroots", + BlockKind::TallSeagrass => "tall_seagrass", + BlockKind::ChorusFlower => "chorus_flower", + BlockKind::PottedDeadBush => "potted_dead_bush", + BlockKind::DeadHornCoralFan => "dead_horn_coral_fan", + BlockKind::RedNetherBrickStairs => "red_nether_brick_stairs", BlockKind::CartographyTable => "cartography_table", - BlockKind::FletchingTable => "fletching_table", - BlockKind::Grindstone => "grindstone", - BlockKind::Lectern => "lectern", - BlockKind::SmithingTable => "smithing_table", - BlockKind::Stonecutter => "stonecutter", - BlockKind::Bell => "bell", - BlockKind::Lantern => "lantern", - BlockKind::SoulLantern => "soul_lantern", - BlockKind::Campfire => "campfire", - BlockKind::SoulCampfire => "soul_campfire", - BlockKind::SweetBerryBush => "sweet_berry_bush", + BlockKind::MossyStoneBricks => "mossy_stone_bricks", + BlockKind::AcaciaPlanks => "acacia_planks", + BlockKind::PottedPoppy => "potted_poppy", + BlockKind::GrayTerracotta => "gray_terracotta", BlockKind::WarpedStem => "warped_stem", - BlockKind::StrippedWarpedStem => "stripped_warped_stem", - BlockKind::WarpedHyphae => "warped_hyphae", - BlockKind::StrippedWarpedHyphae => "stripped_warped_hyphae", - BlockKind::WarpedNylium => "warped_nylium", - BlockKind::WarpedFungus => "warped_fungus", - BlockKind::WarpedWartBlock => "warped_wart_block", - BlockKind::WarpedRoots => "warped_roots", - BlockKind::NetherSprouts => "nether_sprouts", - BlockKind::CrimsonStem => "crimson_stem", - BlockKind::StrippedCrimsonStem => "stripped_crimson_stem", - BlockKind::CrimsonHyphae => "crimson_hyphae", - BlockKind::StrippedCrimsonHyphae => "stripped_crimson_hyphae", + BlockKind::PolishedBlackstoneSlab => "polished_blackstone_slab", + BlockKind::PurpurSlab => "purpur_slab", + BlockKind::BlueConcrete => "blue_concrete", + BlockKind::Conduit => "conduit", + BlockKind::RedNetherBricks => "red_nether_bricks", + BlockKind::YellowBanner => "yellow_banner", + BlockKind::CyanStainedGlassPane => "cyan_stained_glass_pane", + BlockKind::RedBed => "red_bed", + BlockKind::OakLeaves => "oak_leaves", + BlockKind::OakPressurePlate => "oak_pressure_plate", + BlockKind::InfestedDeepslate => "infested_deepslate", + BlockKind::JunglePressurePlate => "jungle_pressure_plate", + BlockKind::CyanWallBanner => "cyan_wall_banner", + BlockKind::RedWallBanner => "red_wall_banner", + BlockKind::EndStoneBrickSlab => "end_stone_brick_slab", + BlockKind::WaxedOxidizedCopper => "waxed_oxidized_copper", + BlockKind::BrownWool => "brown_wool", + BlockKind::CobbledDeepslateWall => "cobbled_deepslate_wall", + BlockKind::FlowerPot => "flower_pot", + BlockKind::MagentaShulkerBox => "magenta_shulker_box", + BlockKind::GreenGlazedTerracotta => "green_glazed_terracotta", + BlockKind::CyanConcretePowder => "cyan_concrete_powder", + BlockKind::MagentaBed => "magenta_bed", + BlockKind::MossyStoneBrickStairs => "mossy_stone_brick_stairs", + BlockKind::BrownCandleCake => "brown_candle_cake", BlockKind::CrimsonNylium => "crimson_nylium", - BlockKind::CrimsonFungus => "crimson_fungus", - BlockKind::Shroomlight => "shroomlight", + BlockKind::PottedCrimsonFungus => "potted_crimson_fungus", + BlockKind::ExposedCopper => "exposed_copper", + BlockKind::AzureBluet => "azure_bluet", + BlockKind::Observer => "observer", + BlockKind::PottedWitherRose => "potted_wither_rose", + BlockKind::DarkOakButton => "dark_oak_button", + BlockKind::MossCarpet => "moss_carpet", + BlockKind::DioriteSlab => "diorite_slab", + BlockKind::WaterCauldron => "water_cauldron", + BlockKind::PrismarineBrickSlab => "prismarine_brick_slab", + BlockKind::RedCarpet => "red_carpet", + BlockKind::PottedOrangeTulip => "potted_orange_tulip", + BlockKind::Pumpkin => "pumpkin", + BlockKind::LimeWallBanner => "lime_wall_banner", + BlockKind::GoldOre => "gold_ore", + BlockKind::HornCoralFan => "horn_coral_fan", + BlockKind::PolishedBlackstone => "polished_blackstone", + BlockKind::Farmland => "farmland", + BlockKind::LimeStainedGlassPane => "lime_stained_glass_pane", BlockKind::WeepingVines => "weeping_vines", - BlockKind::WeepingVinesPlant => "weeping_vines_plant", - BlockKind::TwistingVines => "twisting_vines", - BlockKind::TwistingVinesPlant => "twisting_vines_plant", - BlockKind::CrimsonRoots => "crimson_roots", - BlockKind::CrimsonPlanks => "crimson_planks", - BlockKind::WarpedPlanks => "warped_planks", - BlockKind::CrimsonSlab => "crimson_slab", - BlockKind::WarpedSlab => "warped_slab", - BlockKind::CrimsonPressurePlate => "crimson_pressure_plate", - BlockKind::WarpedPressurePlate => "warped_pressure_plate", - BlockKind::CrimsonFence => "crimson_fence", - BlockKind::WarpedFence => "warped_fence", - BlockKind::CrimsonTrapdoor => "crimson_trapdoor", - BlockKind::WarpedTrapdoor => "warped_trapdoor", - BlockKind::CrimsonFenceGate => "crimson_fence_gate", - BlockKind::WarpedFenceGate => "warped_fence_gate", - BlockKind::CrimsonStairs => "crimson_stairs", - BlockKind::WarpedStairs => "warped_stairs", - BlockKind::CrimsonButton => "crimson_button", - BlockKind::WarpedButton => "warped_button", - BlockKind::CrimsonDoor => "crimson_door", - BlockKind::WarpedDoor => "warped_door", - BlockKind::CrimsonSign => "crimson_sign", - BlockKind::WarpedSign => "warped_sign", - BlockKind::CrimsonWallSign => "crimson_wall_sign", - BlockKind::WarpedWallSign => "warped_wall_sign", - BlockKind::StructureBlock => "structure_block", - BlockKind::Jigsaw => "jigsaw", - BlockKind::Composter => "composter", - BlockKind::Target => "target", - BlockKind::BeeNest => "bee_nest", - BlockKind::Beehive => "beehive", + BlockKind::CutSandstoneSlab => "cut_sandstone_slab", + BlockKind::TallGrass => "tall_grass", + BlockKind::LightBlueCarpet => "light_blue_carpet", + BlockKind::TubeCoral => "tube_coral", + BlockKind::Grindstone => "grindstone", BlockKind::HoneyBlock => "honey_block", - BlockKind::HoneycombBlock => "honeycomb_block", - BlockKind::NetheriteBlock => "netherite_block", + BlockKind::PinkWool => "pink_wool", + BlockKind::GrayWool => "gray_wool", + BlockKind::PolishedDeepslateStairs => "polished_deepslate_stairs", + BlockKind::WarpedDoor => "warped_door", + BlockKind::CyanConcrete => "cyan_concrete", + BlockKind::CrimsonDoor => "crimson_door", + BlockKind::CrackedDeepslateBricks => "cracked_deepslate_bricks", + BlockKind::Cactus => "cactus", + BlockKind::StonePressurePlate => "stone_pressure_plate", + BlockKind::PolishedDeepslateWall => "polished_deepslate_wall", + BlockKind::TubeCoralBlock => "tube_coral_block", + BlockKind::PottedAllium => "potted_allium", + BlockKind::YellowStainedGlassPane => "yellow_stained_glass_pane", + BlockKind::DarkOakWallSign => "dark_oak_wall_sign", + BlockKind::LimeConcrete => "lime_concrete", + BlockKind::JungleButton => "jungle_button", + BlockKind::DeepslateTileSlab => "deepslate_tile_slab", + BlockKind::WitherRose => "wither_rose", + BlockKind::CrackedStoneBricks => "cracked_stone_bricks", + BlockKind::LightGrayWallBanner => "light_gray_wall_banner", + BlockKind::OrangeGlazedTerracotta => "orange_glazed_terracotta", + BlockKind::DeadBrainCoral => "dead_brain_coral", + BlockKind::PolishedBlackstoneButton => "polished_blackstone_button", + BlockKind::RedGlazedTerracotta => "red_glazed_terracotta", + BlockKind::OxidizedCutCopperSlab => "oxidized_cut_copper_slab", + BlockKind::AzaleaLeaves => "azalea_leaves", + BlockKind::Potatoes => "potatoes", + BlockKind::GreenStainedGlass => "green_stained_glass", + BlockKind::EndGateway => "end_gateway", + BlockKind::CrimsonPressurePlate => "crimson_pressure_plate", + BlockKind::GreenCandle => "green_candle", + BlockKind::Cornflower => "cornflower", + BlockKind::PottedBrownMushroom => "potted_brown_mushroom", + BlockKind::PurpleStainedGlassPane => "purple_stained_glass_pane", + BlockKind::LightBlueConcretePowder => "light_blue_concrete_powder", + BlockKind::SpruceSlab => "spruce_slab", BlockKind::AncientDebris => "ancient_debris", - BlockKind::CryingObsidian => "crying_obsidian", - BlockKind::RespawnAnchor => "respawn_anchor", - BlockKind::PottedCrimsonFungus => "potted_crimson_fungus", - BlockKind::PottedWarpedFungus => "potted_warped_fungus", - BlockKind::PottedCrimsonRoots => "potted_crimson_roots", - BlockKind::PottedWarpedRoots => "potted_warped_roots", - BlockKind::Lodestone => "lodestone", - BlockKind::Blackstone => "blackstone", - BlockKind::BlackstoneStairs => "blackstone_stairs", - BlockKind::BlackstoneWall => "blackstone_wall", - BlockKind::BlackstoneSlab => "blackstone_slab", - BlockKind::PolishedBlackstone => "polished_blackstone", - BlockKind::PolishedBlackstoneBricks => "polished_blackstone_bricks", + BlockKind::PurpleGlazedTerracotta => "purple_glazed_terracotta", + BlockKind::Anvil => "anvil", + BlockKind::DarkOakDoor => "dark_oak_door", + BlockKind::PolishedGranite => "polished_granite", + BlockKind::JungleSapling => "jungle_sapling", + BlockKind::DarkPrismarineStairs => "dark_prismarine_stairs", + BlockKind::MagentaCarpet => "magenta_carpet", + BlockKind::Smoker => "smoker", + BlockKind::LightBlueStainedGlass => "light_blue_stained_glass", + BlockKind::JunglePlanks => "jungle_planks", + BlockKind::Fern => "fern", + BlockKind::QuartzStairs => "quartz_stairs", + BlockKind::DiamondBlock => "diamond_block", + BlockKind::RedstoneLamp => "redstone_lamp", + BlockKind::SoulCampfire => "soul_campfire", + BlockKind::DarkOakLog => "dark_oak_log", + BlockKind::Cobblestone => "cobblestone", + BlockKind::BubbleCoralBlock => "bubble_coral_block", + BlockKind::WaxedOxidizedCutCopperSlab => "waxed_oxidized_cut_copper_slab", + BlockKind::WarpedHyphae => "warped_hyphae", + BlockKind::QuartzBricks => "quartz_bricks", + BlockKind::Shroomlight => "shroomlight", + BlockKind::PurpleConcretePowder => "purple_concrete_powder", + BlockKind::CrimsonFence => "crimson_fence", + BlockKind::LightGrayTerracotta => "light_gray_terracotta", + BlockKind::BirchPressurePlate => "birch_pressure_plate", + BlockKind::RedSand => "red_sand", + BlockKind::HayBlock => "hay_block", + BlockKind::OrangeConcretePowder => "orange_concrete_powder", + BlockKind::Granite => "granite", + BlockKind::CyanCandle => "cyan_candle", + BlockKind::Bamboo => "bamboo", + BlockKind::Bricks => "bricks", + BlockKind::WhiteWool => "white_wool", + BlockKind::BambooSapling => "bamboo_sapling", + BlockKind::LimeConcretePowder => "lime_concrete_powder", + BlockKind::BubbleCoralWallFan => "bubble_coral_wall_fan", + BlockKind::RedstoneWire => "redstone_wire", + BlockKind::PistonHead => "piston_head", + BlockKind::DeadFireCoralFan => "dead_fire_coral_fan", + BlockKind::NetherBrickFence => "nether_brick_fence", + BlockKind::RedShulkerBox => "red_shulker_box", + BlockKind::CyanShulkerBox => "cyan_shulker_box", + BlockKind::Beacon => "beacon", + BlockKind::CaveVines => "cave_vines", + BlockKind::EnderChest => "ender_chest", + BlockKind::GrayBanner => "gray_banner", + BlockKind::RedSandstoneSlab => "red_sandstone_slab", + BlockKind::PottedSpruceSapling => "potted_spruce_sapling", + BlockKind::WhiteCandle => "white_candle", + BlockKind::GreenWool => "green_wool", + BlockKind::YellowCarpet => "yellow_carpet", + BlockKind::WhiteTulip => "white_tulip", + BlockKind::Cocoa => "cocoa", + BlockKind::WarpedWartBlock => "warped_wart_block", BlockKind::CrackedPolishedBlackstoneBricks => "cracked_polished_blackstone_bricks", - BlockKind::ChiseledPolishedBlackstone => "chiseled_polished_blackstone", - BlockKind::PolishedBlackstoneBrickSlab => "polished_blackstone_brick_slab", - BlockKind::PolishedBlackstoneBrickStairs => "polished_blackstone_brick_stairs", - BlockKind::PolishedBlackstoneBrickWall => "polished_blackstone_brick_wall", + BlockKind::GreenCandleCake => "green_candle_cake", + BlockKind::KelpPlant => "kelp_plant", + BlockKind::SmallDripleaf => "small_dripleaf", + BlockKind::PolishedDeepslate => "polished_deepslate", + BlockKind::InfestedChiseledStoneBricks => "infested_chiseled_stone_bricks", + BlockKind::PottedBirchSapling => "potted_birch_sapling", BlockKind::GildedBlackstone => "gilded_blackstone", - BlockKind::PolishedBlackstoneStairs => "polished_blackstone_stairs", - BlockKind::PolishedBlackstoneSlab => "polished_blackstone_slab", - BlockKind::PolishedBlackstonePressurePlate => "polished_blackstone_pressure_plate", - BlockKind::PolishedBlackstoneButton => "polished_blackstone_button", - BlockKind::PolishedBlackstoneWall => "polished_blackstone_wall", - BlockKind::ChiseledNetherBricks => "chiseled_nether_bricks", - BlockKind::CrackedNetherBricks => "cracked_nether_bricks", - BlockKind::QuartzBricks => "quartz_bricks", - } - } - - /// Gets a `BlockKind` by its `name`. - pub fn from_name(name: &str) -> Option { - match name { - "air" => Some(BlockKind::Air), - "stone" => Some(BlockKind::Stone), - "granite" => Some(BlockKind::Granite), - "polished_granite" => Some(BlockKind::PolishedGranite), - "diorite" => Some(BlockKind::Diorite), - "polished_diorite" => Some(BlockKind::PolishedDiorite), - "andesite" => Some(BlockKind::Andesite), - "polished_andesite" => Some(BlockKind::PolishedAndesite), - "grass_block" => Some(BlockKind::GrassBlock), - "dirt" => Some(BlockKind::Dirt), - "coarse_dirt" => Some(BlockKind::CoarseDirt), - "podzol" => Some(BlockKind::Podzol), - "cobblestone" => Some(BlockKind::Cobblestone), - "oak_planks" => Some(BlockKind::OakPlanks), - "spruce_planks" => Some(BlockKind::SprucePlanks), - "birch_planks" => Some(BlockKind::BirchPlanks), - "jungle_planks" => Some(BlockKind::JunglePlanks), - "acacia_planks" => Some(BlockKind::AcaciaPlanks), - "dark_oak_planks" => Some(BlockKind::DarkOakPlanks), - "oak_sapling" => Some(BlockKind::OakSapling), - "spruce_sapling" => Some(BlockKind::SpruceSapling), - "birch_sapling" => Some(BlockKind::BirchSapling), - "jungle_sapling" => Some(BlockKind::JungleSapling), - "acacia_sapling" => Some(BlockKind::AcaciaSapling), - "dark_oak_sapling" => Some(BlockKind::DarkOakSapling), - "bedrock" => Some(BlockKind::Bedrock), - "water" => Some(BlockKind::Water), - "lava" => Some(BlockKind::Lava), - "sand" => Some(BlockKind::Sand), - "red_sand" => Some(BlockKind::RedSand), - "gravel" => Some(BlockKind::Gravel), - "gold_ore" => Some(BlockKind::GoldOre), - "iron_ore" => Some(BlockKind::IronOre), - "coal_ore" => Some(BlockKind::CoalOre), - "nether_gold_ore" => Some(BlockKind::NetherGoldOre), - "oak_log" => Some(BlockKind::OakLog), - "spruce_log" => Some(BlockKind::SpruceLog), - "birch_log" => Some(BlockKind::BirchLog), - "jungle_log" => Some(BlockKind::JungleLog), - "acacia_log" => Some(BlockKind::AcaciaLog), - "dark_oak_log" => Some(BlockKind::DarkOakLog), - "stripped_spruce_log" => Some(BlockKind::StrippedSpruceLog), - "stripped_birch_log" => Some(BlockKind::StrippedBirchLog), - "stripped_jungle_log" => Some(BlockKind::StrippedJungleLog), - "stripped_acacia_log" => Some(BlockKind::StrippedAcaciaLog), - "stripped_dark_oak_log" => Some(BlockKind::StrippedDarkOakLog), - "stripped_oak_log" => Some(BlockKind::StrippedOakLog), - "oak_wood" => Some(BlockKind::OakWood), - "spruce_wood" => Some(BlockKind::SpruceWood), - "birch_wood" => Some(BlockKind::BirchWood), - "jungle_wood" => Some(BlockKind::JungleWood), - "acacia_wood" => Some(BlockKind::AcaciaWood), - "dark_oak_wood" => Some(BlockKind::DarkOakWood), - "stripped_oak_wood" => Some(BlockKind::StrippedOakWood), - "stripped_spruce_wood" => Some(BlockKind::StrippedSpruceWood), - "stripped_birch_wood" => Some(BlockKind::StrippedBirchWood), - "stripped_jungle_wood" => Some(BlockKind::StrippedJungleWood), - "stripped_acacia_wood" => Some(BlockKind::StrippedAcaciaWood), - "stripped_dark_oak_wood" => Some(BlockKind::StrippedDarkOakWood), - "oak_leaves" => Some(BlockKind::OakLeaves), - "spruce_leaves" => Some(BlockKind::SpruceLeaves), - "birch_leaves" => Some(BlockKind::BirchLeaves), - "jungle_leaves" => Some(BlockKind::JungleLeaves), - "acacia_leaves" => Some(BlockKind::AcaciaLeaves), - "dark_oak_leaves" => Some(BlockKind::DarkOakLeaves), - "sponge" => Some(BlockKind::Sponge), - "wet_sponge" => Some(BlockKind::WetSponge), - "glass" => Some(BlockKind::Glass), - "lapis_ore" => Some(BlockKind::LapisOre), - "lapis_block" => Some(BlockKind::LapisBlock), - "dispenser" => Some(BlockKind::Dispenser), - "sandstone" => Some(BlockKind::Sandstone), - "chiseled_sandstone" => Some(BlockKind::ChiseledSandstone), - "cut_sandstone" => Some(BlockKind::CutSandstone), - "note_block" => Some(BlockKind::NoteBlock), - "white_bed" => Some(BlockKind::WhiteBed), - "orange_bed" => Some(BlockKind::OrangeBed), - "magenta_bed" => Some(BlockKind::MagentaBed), - "light_blue_bed" => Some(BlockKind::LightBlueBed), - "yellow_bed" => Some(BlockKind::YellowBed), - "lime_bed" => Some(BlockKind::LimeBed), - "pink_bed" => Some(BlockKind::PinkBed), - "gray_bed" => Some(BlockKind::GrayBed), - "light_gray_bed" => Some(BlockKind::LightGrayBed), - "cyan_bed" => Some(BlockKind::CyanBed), - "purple_bed" => Some(BlockKind::PurpleBed), - "blue_bed" => Some(BlockKind::BlueBed), - "brown_bed" => Some(BlockKind::BrownBed), - "green_bed" => Some(BlockKind::GreenBed), - "red_bed" => Some(BlockKind::RedBed), - "black_bed" => Some(BlockKind::BlackBed), - "powered_rail" => Some(BlockKind::PoweredRail), - "detector_rail" => Some(BlockKind::DetectorRail), - "sticky_piston" => Some(BlockKind::StickyPiston), - "cobweb" => Some(BlockKind::Cobweb), - "grass" => Some(BlockKind::Grass), - "fern" => Some(BlockKind::Fern), - "dead_bush" => Some(BlockKind::DeadBush), - "seagrass" => Some(BlockKind::Seagrass), - "tall_seagrass" => Some(BlockKind::TallSeagrass), - "piston" => Some(BlockKind::Piston), - "piston_head" => Some(BlockKind::PistonHead), - "white_wool" => Some(BlockKind::WhiteWool), - "orange_wool" => Some(BlockKind::OrangeWool), - "magenta_wool" => Some(BlockKind::MagentaWool), - "light_blue_wool" => Some(BlockKind::LightBlueWool), - "yellow_wool" => Some(BlockKind::YellowWool), - "lime_wool" => Some(BlockKind::LimeWool), - "pink_wool" => Some(BlockKind::PinkWool), - "gray_wool" => Some(BlockKind::GrayWool), - "light_gray_wool" => Some(BlockKind::LightGrayWool), - "cyan_wool" => Some(BlockKind::CyanWool), - "purple_wool" => Some(BlockKind::PurpleWool), - "blue_wool" => Some(BlockKind::BlueWool), - "brown_wool" => Some(BlockKind::BrownWool), - "green_wool" => Some(BlockKind::GreenWool), - "red_wool" => Some(BlockKind::RedWool), - "black_wool" => Some(BlockKind::BlackWool), - "moving_piston" => Some(BlockKind::MovingPiston), - "dandelion" => Some(BlockKind::Dandelion), - "poppy" => Some(BlockKind::Poppy), - "blue_orchid" => Some(BlockKind::BlueOrchid), - "allium" => Some(BlockKind::Allium), - "azure_bluet" => Some(BlockKind::AzureBluet), - "red_tulip" => Some(BlockKind::RedTulip), - "orange_tulip" => Some(BlockKind::OrangeTulip), - "white_tulip" => Some(BlockKind::WhiteTulip), - "pink_tulip" => Some(BlockKind::PinkTulip), - "oxeye_daisy" => Some(BlockKind::OxeyeDaisy), - "cornflower" => Some(BlockKind::Cornflower), - "wither_rose" => Some(BlockKind::WitherRose), - "lily_of_the_valley" => Some(BlockKind::LilyOfTheValley), - "brown_mushroom" => Some(BlockKind::BrownMushroom), - "red_mushroom" => Some(BlockKind::RedMushroom), - "gold_block" => Some(BlockKind::GoldBlock), - "iron_block" => Some(BlockKind::IronBlock), - "bricks" => Some(BlockKind::Bricks), - "tnt" => Some(BlockKind::Tnt), - "bookshelf" => Some(BlockKind::Bookshelf), - "mossy_cobblestone" => Some(BlockKind::MossyCobblestone), - "obsidian" => Some(BlockKind::Obsidian), - "torch" => Some(BlockKind::Torch), - "wall_torch" => Some(BlockKind::WallTorch), - "fire" => Some(BlockKind::Fire), - "soul_fire" => Some(BlockKind::SoulFire), - "spawner" => Some(BlockKind::Spawner), - "oak_stairs" => Some(BlockKind::OakStairs), - "chest" => Some(BlockKind::Chest), - "redstone_wire" => Some(BlockKind::RedstoneWire), - "diamond_ore" => Some(BlockKind::DiamondOre), - "diamond_block" => Some(BlockKind::DiamondBlock), - "crafting_table" => Some(BlockKind::CraftingTable), - "wheat" => Some(BlockKind::Wheat), - "farmland" => Some(BlockKind::Farmland), - "furnace" => Some(BlockKind::Furnace), - "oak_sign" => Some(BlockKind::OakSign), - "spruce_sign" => Some(BlockKind::SpruceSign), - "birch_sign" => Some(BlockKind::BirchSign), - "acacia_sign" => Some(BlockKind::AcaciaSign), - "jungle_sign" => Some(BlockKind::JungleSign), - "dark_oak_sign" => Some(BlockKind::DarkOakSign), - "oak_door" => Some(BlockKind::OakDoor), - "ladder" => Some(BlockKind::Ladder), - "rail" => Some(BlockKind::Rail), - "cobblestone_stairs" => Some(BlockKind::CobblestoneStairs), - "oak_wall_sign" => Some(BlockKind::OakWallSign), - "spruce_wall_sign" => Some(BlockKind::SpruceWallSign), - "birch_wall_sign" => Some(BlockKind::BirchWallSign), - "acacia_wall_sign" => Some(BlockKind::AcaciaWallSign), - "jungle_wall_sign" => Some(BlockKind::JungleWallSign), - "dark_oak_wall_sign" => Some(BlockKind::DarkOakWallSign), - "lever" => Some(BlockKind::Lever), - "stone_pressure_plate" => Some(BlockKind::StonePressurePlate), - "iron_door" => Some(BlockKind::IronDoor), - "oak_pressure_plate" => Some(BlockKind::OakPressurePlate), - "spruce_pressure_plate" => Some(BlockKind::SprucePressurePlate), - "birch_pressure_plate" => Some(BlockKind::BirchPressurePlate), - "jungle_pressure_plate" => Some(BlockKind::JunglePressurePlate), - "acacia_pressure_plate" => Some(BlockKind::AcaciaPressurePlate), - "dark_oak_pressure_plate" => Some(BlockKind::DarkOakPressurePlate), - "redstone_ore" => Some(BlockKind::RedstoneOre), - "redstone_torch" => Some(BlockKind::RedstoneTorch), - "redstone_wall_torch" => Some(BlockKind::RedstoneWallTorch), - "stone_button" => Some(BlockKind::StoneButton), - "snow" => Some(BlockKind::Snow), - "ice" => Some(BlockKind::Ice), - "snow_block" => Some(BlockKind::SnowBlock), - "cactus" => Some(BlockKind::Cactus), - "clay" => Some(BlockKind::Clay), - "sugar_cane" => Some(BlockKind::SugarCane), - "jukebox" => Some(BlockKind::Jukebox), - "oak_fence" => Some(BlockKind::OakFence), - "pumpkin" => Some(BlockKind::Pumpkin), - "netherrack" => Some(BlockKind::Netherrack), - "soul_sand" => Some(BlockKind::SoulSand), - "soul_soil" => Some(BlockKind::SoulSoil), - "basalt" => Some(BlockKind::Basalt), - "polished_basalt" => Some(BlockKind::PolishedBasalt), - "soul_torch" => Some(BlockKind::SoulTorch), - "soul_wall_torch" => Some(BlockKind::SoulWallTorch), - "glowstone" => Some(BlockKind::Glowstone), - "nether_portal" => Some(BlockKind::NetherPortal), - "carved_pumpkin" => Some(BlockKind::CarvedPumpkin), - "jack_o_lantern" => Some(BlockKind::JackOLantern), - "cake" => Some(BlockKind::Cake), - "repeater" => Some(BlockKind::Repeater), - "white_stained_glass" => Some(BlockKind::WhiteStainedGlass), - "orange_stained_glass" => Some(BlockKind::OrangeStainedGlass), - "magenta_stained_glass" => Some(BlockKind::MagentaStainedGlass), - "light_blue_stained_glass" => Some(BlockKind::LightBlueStainedGlass), - "yellow_stained_glass" => Some(BlockKind::YellowStainedGlass), - "lime_stained_glass" => Some(BlockKind::LimeStainedGlass), - "pink_stained_glass" => Some(BlockKind::PinkStainedGlass), - "gray_stained_glass" => Some(BlockKind::GrayStainedGlass), - "light_gray_stained_glass" => Some(BlockKind::LightGrayStainedGlass), - "cyan_stained_glass" => Some(BlockKind::CyanStainedGlass), - "purple_stained_glass" => Some(BlockKind::PurpleStainedGlass), - "blue_stained_glass" => Some(BlockKind::BlueStainedGlass), - "brown_stained_glass" => Some(BlockKind::BrownStainedGlass), - "green_stained_glass" => Some(BlockKind::GreenStainedGlass), - "red_stained_glass" => Some(BlockKind::RedStainedGlass), - "black_stained_glass" => Some(BlockKind::BlackStainedGlass), - "oak_trapdoor" => Some(BlockKind::OakTrapdoor), - "spruce_trapdoor" => Some(BlockKind::SpruceTrapdoor), - "birch_trapdoor" => Some(BlockKind::BirchTrapdoor), - "jungle_trapdoor" => Some(BlockKind::JungleTrapdoor), - "acacia_trapdoor" => Some(BlockKind::AcaciaTrapdoor), - "dark_oak_trapdoor" => Some(BlockKind::DarkOakTrapdoor), - "stone_bricks" => Some(BlockKind::StoneBricks), - "mossy_stone_bricks" => Some(BlockKind::MossyStoneBricks), - "cracked_stone_bricks" => Some(BlockKind::CrackedStoneBricks), - "chiseled_stone_bricks" => Some(BlockKind::ChiseledStoneBricks), - "infested_stone" => Some(BlockKind::InfestedStone), - "infested_cobblestone" => Some(BlockKind::InfestedCobblestone), - "infested_stone_bricks" => Some(BlockKind::InfestedStoneBricks), - "infested_mossy_stone_bricks" => Some(BlockKind::InfestedMossyStoneBricks), - "infested_cracked_stone_bricks" => Some(BlockKind::InfestedCrackedStoneBricks), - "infested_chiseled_stone_bricks" => Some(BlockKind::InfestedChiseledStoneBricks), - "brown_mushroom_block" => Some(BlockKind::BrownMushroomBlock), - "red_mushroom_block" => Some(BlockKind::RedMushroomBlock), - "mushroom_stem" => Some(BlockKind::MushroomStem), - "iron_bars" => Some(BlockKind::IronBars), - "chain" => Some(BlockKind::Chain), - "glass_pane" => Some(BlockKind::GlassPane), - "melon" => Some(BlockKind::Melon), - "attached_pumpkin_stem" => Some(BlockKind::AttachedPumpkinStem), - "attached_melon_stem" => Some(BlockKind::AttachedMelonStem), - "pumpkin_stem" => Some(BlockKind::PumpkinStem), - "melon_stem" => Some(BlockKind::MelonStem), - "vine" => Some(BlockKind::Vine), - "oak_fence_gate" => Some(BlockKind::OakFenceGate), - "brick_stairs" => Some(BlockKind::BrickStairs), - "stone_brick_stairs" => Some(BlockKind::StoneBrickStairs), - "mycelium" => Some(BlockKind::Mycelium), - "lily_pad" => Some(BlockKind::LilyPad), - "nether_bricks" => Some(BlockKind::NetherBricks), - "nether_brick_fence" => Some(BlockKind::NetherBrickFence), - "nether_brick_stairs" => Some(BlockKind::NetherBrickStairs), - "nether_wart" => Some(BlockKind::NetherWart), - "enchanting_table" => Some(BlockKind::EnchantingTable), - "brewing_stand" => Some(BlockKind::BrewingStand), - "cauldron" => Some(BlockKind::Cauldron), - "end_portal" => Some(BlockKind::EndPortal), - "end_portal_frame" => Some(BlockKind::EndPortalFrame), - "end_stone" => Some(BlockKind::EndStone), - "dragon_egg" => Some(BlockKind::DragonEgg), - "redstone_lamp" => Some(BlockKind::RedstoneLamp), - "cocoa" => Some(BlockKind::Cocoa), - "sandstone_stairs" => Some(BlockKind::SandstoneStairs), - "emerald_ore" => Some(BlockKind::EmeraldOre), - "ender_chest" => Some(BlockKind::EnderChest), - "tripwire_hook" => Some(BlockKind::TripwireHook), - "tripwire" => Some(BlockKind::Tripwire), - "emerald_block" => Some(BlockKind::EmeraldBlock), - "spruce_stairs" => Some(BlockKind::SpruceStairs), - "birch_stairs" => Some(BlockKind::BirchStairs), - "jungle_stairs" => Some(BlockKind::JungleStairs), - "command_block" => Some(BlockKind::CommandBlock), - "beacon" => Some(BlockKind::Beacon), - "cobblestone_wall" => Some(BlockKind::CobblestoneWall), - "mossy_cobblestone_wall" => Some(BlockKind::MossyCobblestoneWall), - "flower_pot" => Some(BlockKind::FlowerPot), - "potted_oak_sapling" => Some(BlockKind::PottedOakSapling), - "potted_spruce_sapling" => Some(BlockKind::PottedSpruceSapling), - "potted_birch_sapling" => Some(BlockKind::PottedBirchSapling), - "potted_jungle_sapling" => Some(BlockKind::PottedJungleSapling), - "potted_acacia_sapling" => Some(BlockKind::PottedAcaciaSapling), - "potted_dark_oak_sapling" => Some(BlockKind::PottedDarkOakSapling), - "potted_fern" => Some(BlockKind::PottedFern), - "potted_dandelion" => Some(BlockKind::PottedDandelion), - "potted_poppy" => Some(BlockKind::PottedPoppy), - "potted_blue_orchid" => Some(BlockKind::PottedBlueOrchid), - "potted_allium" => Some(BlockKind::PottedAllium), - "potted_azure_bluet" => Some(BlockKind::PottedAzureBluet), - "potted_red_tulip" => Some(BlockKind::PottedRedTulip), - "potted_orange_tulip" => Some(BlockKind::PottedOrangeTulip), - "potted_white_tulip" => Some(BlockKind::PottedWhiteTulip), - "potted_pink_tulip" => Some(BlockKind::PottedPinkTulip), - "potted_oxeye_daisy" => Some(BlockKind::PottedOxeyeDaisy), - "potted_cornflower" => Some(BlockKind::PottedCornflower), - "potted_lily_of_the_valley" => Some(BlockKind::PottedLilyOfTheValley), - "potted_wither_rose" => Some(BlockKind::PottedWitherRose), - "potted_red_mushroom" => Some(BlockKind::PottedRedMushroom), - "potted_brown_mushroom" => Some(BlockKind::PottedBrownMushroom), - "potted_dead_bush" => Some(BlockKind::PottedDeadBush), - "potted_cactus" => Some(BlockKind::PottedCactus), - "carrots" => Some(BlockKind::Carrots), - "potatoes" => Some(BlockKind::Potatoes), - "oak_button" => Some(BlockKind::OakButton), - "spruce_button" => Some(BlockKind::SpruceButton), - "birch_button" => Some(BlockKind::BirchButton), - "jungle_button" => Some(BlockKind::JungleButton), - "acacia_button" => Some(BlockKind::AcaciaButton), - "dark_oak_button" => Some(BlockKind::DarkOakButton), - "skeleton_skull" => Some(BlockKind::SkeletonSkull), - "skeleton_wall_skull" => Some(BlockKind::SkeletonWallSkull), - "wither_skeleton_skull" => Some(BlockKind::WitherSkeletonSkull), - "wither_skeleton_wall_skull" => Some(BlockKind::WitherSkeletonWallSkull), - "zombie_head" => Some(BlockKind::ZombieHead), - "zombie_wall_head" => Some(BlockKind::ZombieWallHead), - "player_head" => Some(BlockKind::PlayerHead), - "player_wall_head" => Some(BlockKind::PlayerWallHead), - "creeper_head" => Some(BlockKind::CreeperHead), - "creeper_wall_head" => Some(BlockKind::CreeperWallHead), - "dragon_head" => Some(BlockKind::DragonHead), - "dragon_wall_head" => Some(BlockKind::DragonWallHead), - "anvil" => Some(BlockKind::Anvil), - "chipped_anvil" => Some(BlockKind::ChippedAnvil), - "damaged_anvil" => Some(BlockKind::DamagedAnvil), - "trapped_chest" => Some(BlockKind::TrappedChest), - "light_weighted_pressure_plate" => Some(BlockKind::LightWeightedPressurePlate), - "heavy_weighted_pressure_plate" => Some(BlockKind::HeavyWeightedPressurePlate), - "comparator" => Some(BlockKind::Comparator), - "daylight_detector" => Some(BlockKind::DaylightDetector), - "redstone_block" => Some(BlockKind::RedstoneBlock), - "nether_quartz_ore" => Some(BlockKind::NetherQuartzOre), - "hopper" => Some(BlockKind::Hopper), - "quartz_block" => Some(BlockKind::QuartzBlock), - "chiseled_quartz_block" => Some(BlockKind::ChiseledQuartzBlock), - "quartz_pillar" => Some(BlockKind::QuartzPillar), - "quartz_stairs" => Some(BlockKind::QuartzStairs), - "activator_rail" => Some(BlockKind::ActivatorRail), - "dropper" => Some(BlockKind::Dropper), - "white_terracotta" => Some(BlockKind::WhiteTerracotta), - "orange_terracotta" => Some(BlockKind::OrangeTerracotta), - "magenta_terracotta" => Some(BlockKind::MagentaTerracotta), - "light_blue_terracotta" => Some(BlockKind::LightBlueTerracotta), - "yellow_terracotta" => Some(BlockKind::YellowTerracotta), - "lime_terracotta" => Some(BlockKind::LimeTerracotta), - "pink_terracotta" => Some(BlockKind::PinkTerracotta), - "gray_terracotta" => Some(BlockKind::GrayTerracotta), - "light_gray_terracotta" => Some(BlockKind::LightGrayTerracotta), - "cyan_terracotta" => Some(BlockKind::CyanTerracotta), - "purple_terracotta" => Some(BlockKind::PurpleTerracotta), - "blue_terracotta" => Some(BlockKind::BlueTerracotta), - "brown_terracotta" => Some(BlockKind::BrownTerracotta), - "green_terracotta" => Some(BlockKind::GreenTerracotta), - "red_terracotta" => Some(BlockKind::RedTerracotta), - "black_terracotta" => Some(BlockKind::BlackTerracotta), - "white_stained_glass_pane" => Some(BlockKind::WhiteStainedGlassPane), - "orange_stained_glass_pane" => Some(BlockKind::OrangeStainedGlassPane), - "magenta_stained_glass_pane" => Some(BlockKind::MagentaStainedGlassPane), - "light_blue_stained_glass_pane" => Some(BlockKind::LightBlueStainedGlassPane), - "yellow_stained_glass_pane" => Some(BlockKind::YellowStainedGlassPane), - "lime_stained_glass_pane" => Some(BlockKind::LimeStainedGlassPane), - "pink_stained_glass_pane" => Some(BlockKind::PinkStainedGlassPane), - "gray_stained_glass_pane" => Some(BlockKind::GrayStainedGlassPane), - "light_gray_stained_glass_pane" => Some(BlockKind::LightGrayStainedGlassPane), - "cyan_stained_glass_pane" => Some(BlockKind::CyanStainedGlassPane), - "purple_stained_glass_pane" => Some(BlockKind::PurpleStainedGlassPane), - "blue_stained_glass_pane" => Some(BlockKind::BlueStainedGlassPane), - "brown_stained_glass_pane" => Some(BlockKind::BrownStainedGlassPane), - "green_stained_glass_pane" => Some(BlockKind::GreenStainedGlassPane), - "red_stained_glass_pane" => Some(BlockKind::RedStainedGlassPane), - "black_stained_glass_pane" => Some(BlockKind::BlackStainedGlassPane), - "acacia_stairs" => Some(BlockKind::AcaciaStairs), - "dark_oak_stairs" => Some(BlockKind::DarkOakStairs), - "slime_block" => Some(BlockKind::SlimeBlock), - "barrier" => Some(BlockKind::Barrier), - "iron_trapdoor" => Some(BlockKind::IronTrapdoor), - "prismarine" => Some(BlockKind::Prismarine), - "prismarine_bricks" => Some(BlockKind::PrismarineBricks), - "dark_prismarine" => Some(BlockKind::DarkPrismarine), - "prismarine_stairs" => Some(BlockKind::PrismarineStairs), - "prismarine_brick_stairs" => Some(BlockKind::PrismarineBrickStairs), - "dark_prismarine_stairs" => Some(BlockKind::DarkPrismarineStairs), - "prismarine_slab" => Some(BlockKind::PrismarineSlab), - "prismarine_brick_slab" => Some(BlockKind::PrismarineBrickSlab), - "dark_prismarine_slab" => Some(BlockKind::DarkPrismarineSlab), - "sea_lantern" => Some(BlockKind::SeaLantern), - "hay_block" => Some(BlockKind::HayBlock), - "white_carpet" => Some(BlockKind::WhiteCarpet), - "orange_carpet" => Some(BlockKind::OrangeCarpet), - "magenta_carpet" => Some(BlockKind::MagentaCarpet), - "light_blue_carpet" => Some(BlockKind::LightBlueCarpet), - "yellow_carpet" => Some(BlockKind::YellowCarpet), - "lime_carpet" => Some(BlockKind::LimeCarpet), - "pink_carpet" => Some(BlockKind::PinkCarpet), - "gray_carpet" => Some(BlockKind::GrayCarpet), - "light_gray_carpet" => Some(BlockKind::LightGrayCarpet), - "cyan_carpet" => Some(BlockKind::CyanCarpet), - "purple_carpet" => Some(BlockKind::PurpleCarpet), - "blue_carpet" => Some(BlockKind::BlueCarpet), - "brown_carpet" => Some(BlockKind::BrownCarpet), - "green_carpet" => Some(BlockKind::GreenCarpet), - "red_carpet" => Some(BlockKind::RedCarpet), - "black_carpet" => Some(BlockKind::BlackCarpet), - "terracotta" => Some(BlockKind::Terracotta), - "coal_block" => Some(BlockKind::CoalBlock), - "packed_ice" => Some(BlockKind::PackedIce), - "sunflower" => Some(BlockKind::Sunflower), - "lilac" => Some(BlockKind::Lilac), - "rose_bush" => Some(BlockKind::RoseBush), - "peony" => Some(BlockKind::Peony), - "tall_grass" => Some(BlockKind::TallGrass), - "large_fern" => Some(BlockKind::LargeFern), - "white_banner" => Some(BlockKind::WhiteBanner), - "orange_banner" => Some(BlockKind::OrangeBanner), - "magenta_banner" => Some(BlockKind::MagentaBanner), - "light_blue_banner" => Some(BlockKind::LightBlueBanner), - "yellow_banner" => Some(BlockKind::YellowBanner), - "lime_banner" => Some(BlockKind::LimeBanner), - "pink_banner" => Some(BlockKind::PinkBanner), - "gray_banner" => Some(BlockKind::GrayBanner), - "light_gray_banner" => Some(BlockKind::LightGrayBanner), - "cyan_banner" => Some(BlockKind::CyanBanner), - "purple_banner" => Some(BlockKind::PurpleBanner), - "blue_banner" => Some(BlockKind::BlueBanner), - "brown_banner" => Some(BlockKind::BrownBanner), - "green_banner" => Some(BlockKind::GreenBanner), - "red_banner" => Some(BlockKind::RedBanner), - "black_banner" => Some(BlockKind::BlackBanner), - "white_wall_banner" => Some(BlockKind::WhiteWallBanner), - "orange_wall_banner" => Some(BlockKind::OrangeWallBanner), - "magenta_wall_banner" => Some(BlockKind::MagentaWallBanner), - "light_blue_wall_banner" => Some(BlockKind::LightBlueWallBanner), - "yellow_wall_banner" => Some(BlockKind::YellowWallBanner), - "lime_wall_banner" => Some(BlockKind::LimeWallBanner), - "pink_wall_banner" => Some(BlockKind::PinkWallBanner), - "gray_wall_banner" => Some(BlockKind::GrayWallBanner), - "light_gray_wall_banner" => Some(BlockKind::LightGrayWallBanner), - "cyan_wall_banner" => Some(BlockKind::CyanWallBanner), - "purple_wall_banner" => Some(BlockKind::PurpleWallBanner), - "blue_wall_banner" => Some(BlockKind::BlueWallBanner), - "brown_wall_banner" => Some(BlockKind::BrownWallBanner), - "green_wall_banner" => Some(BlockKind::GreenWallBanner), - "red_wall_banner" => Some(BlockKind::RedWallBanner), - "black_wall_banner" => Some(BlockKind::BlackWallBanner), - "red_sandstone" => Some(BlockKind::RedSandstone), - "chiseled_red_sandstone" => Some(BlockKind::ChiseledRedSandstone), - "cut_red_sandstone" => Some(BlockKind::CutRedSandstone), - "red_sandstone_stairs" => Some(BlockKind::RedSandstoneStairs), - "oak_slab" => Some(BlockKind::OakSlab), - "spruce_slab" => Some(BlockKind::SpruceSlab), - "birch_slab" => Some(BlockKind::BirchSlab), - "jungle_slab" => Some(BlockKind::JungleSlab), - "acacia_slab" => Some(BlockKind::AcaciaSlab), - "dark_oak_slab" => Some(BlockKind::DarkOakSlab), - "stone_slab" => Some(BlockKind::StoneSlab), - "smooth_stone_slab" => Some(BlockKind::SmoothStoneSlab), - "sandstone_slab" => Some(BlockKind::SandstoneSlab), - "cut_sandstone_slab" => Some(BlockKind::CutSandstoneSlab), - "petrified_oak_slab" => Some(BlockKind::PetrifiedOakSlab), - "cobblestone_slab" => Some(BlockKind::CobblestoneSlab), - "brick_slab" => Some(BlockKind::BrickSlab), - "stone_brick_slab" => Some(BlockKind::StoneBrickSlab), - "nether_brick_slab" => Some(BlockKind::NetherBrickSlab), - "quartz_slab" => Some(BlockKind::QuartzSlab), - "red_sandstone_slab" => Some(BlockKind::RedSandstoneSlab), - "cut_red_sandstone_slab" => Some(BlockKind::CutRedSandstoneSlab), - "purpur_slab" => Some(BlockKind::PurpurSlab), - "smooth_stone" => Some(BlockKind::SmoothStone), - "smooth_sandstone" => Some(BlockKind::SmoothSandstone), - "smooth_quartz" => Some(BlockKind::SmoothQuartz), - "smooth_red_sandstone" => Some(BlockKind::SmoothRedSandstone), - "spruce_fence_gate" => Some(BlockKind::SpruceFenceGate), - "birch_fence_gate" => Some(BlockKind::BirchFenceGate), - "jungle_fence_gate" => Some(BlockKind::JungleFenceGate), - "acacia_fence_gate" => Some(BlockKind::AcaciaFenceGate), - "dark_oak_fence_gate" => Some(BlockKind::DarkOakFenceGate), - "spruce_fence" => Some(BlockKind::SpruceFence), - "birch_fence" => Some(BlockKind::BirchFence), - "jungle_fence" => Some(BlockKind::JungleFence), - "acacia_fence" => Some(BlockKind::AcaciaFence), - "dark_oak_fence" => Some(BlockKind::DarkOakFence), - "spruce_door" => Some(BlockKind::SpruceDoor), - "birch_door" => Some(BlockKind::BirchDoor), - "jungle_door" => Some(BlockKind::JungleDoor), - "acacia_door" => Some(BlockKind::AcaciaDoor), - "dark_oak_door" => Some(BlockKind::DarkOakDoor), - "end_rod" => Some(BlockKind::EndRod), - "chorus_plant" => Some(BlockKind::ChorusPlant), - "chorus_flower" => Some(BlockKind::ChorusFlower), - "purpur_block" => Some(BlockKind::PurpurBlock), - "purpur_pillar" => Some(BlockKind::PurpurPillar), - "purpur_stairs" => Some(BlockKind::PurpurStairs), - "end_stone_bricks" => Some(BlockKind::EndStoneBricks), - "beetroots" => Some(BlockKind::Beetroots), - "grass_path" => Some(BlockKind::GrassPath), - "end_gateway" => Some(BlockKind::EndGateway), - "repeating_command_block" => Some(BlockKind::RepeatingCommandBlock), - "chain_command_block" => Some(BlockKind::ChainCommandBlock), - "frosted_ice" => Some(BlockKind::FrostedIce), - "magma_block" => Some(BlockKind::MagmaBlock), - "nether_wart_block" => Some(BlockKind::NetherWartBlock), - "red_nether_bricks" => Some(BlockKind::RedNetherBricks), - "bone_block" => Some(BlockKind::BoneBlock), - "structure_void" => Some(BlockKind::StructureVoid), - "observer" => Some(BlockKind::Observer), - "shulker_box" => Some(BlockKind::ShulkerBox), - "white_shulker_box" => Some(BlockKind::WhiteShulkerBox), - "orange_shulker_box" => Some(BlockKind::OrangeShulkerBox), - "magenta_shulker_box" => Some(BlockKind::MagentaShulkerBox), - "light_blue_shulker_box" => Some(BlockKind::LightBlueShulkerBox), - "yellow_shulker_box" => Some(BlockKind::YellowShulkerBox), - "lime_shulker_box" => Some(BlockKind::LimeShulkerBox), - "pink_shulker_box" => Some(BlockKind::PinkShulkerBox), - "gray_shulker_box" => Some(BlockKind::GrayShulkerBox), - "light_gray_shulker_box" => Some(BlockKind::LightGrayShulkerBox), - "cyan_shulker_box" => Some(BlockKind::CyanShulkerBox), - "purple_shulker_box" => Some(BlockKind::PurpleShulkerBox), - "blue_shulker_box" => Some(BlockKind::BlueShulkerBox), - "brown_shulker_box" => Some(BlockKind::BrownShulkerBox), - "green_shulker_box" => Some(BlockKind::GreenShulkerBox), - "red_shulker_box" => Some(BlockKind::RedShulkerBox), - "black_shulker_box" => Some(BlockKind::BlackShulkerBox), - "white_glazed_terracotta" => Some(BlockKind::WhiteGlazedTerracotta), - "orange_glazed_terracotta" => Some(BlockKind::OrangeGlazedTerracotta), - "magenta_glazed_terracotta" => Some(BlockKind::MagentaGlazedTerracotta), - "light_blue_glazed_terracotta" => Some(BlockKind::LightBlueGlazedTerracotta), - "yellow_glazed_terracotta" => Some(BlockKind::YellowGlazedTerracotta), - "lime_glazed_terracotta" => Some(BlockKind::LimeGlazedTerracotta), - "pink_glazed_terracotta" => Some(BlockKind::PinkGlazedTerracotta), - "gray_glazed_terracotta" => Some(BlockKind::GrayGlazedTerracotta), - "light_gray_glazed_terracotta" => Some(BlockKind::LightGrayGlazedTerracotta), - "cyan_glazed_terracotta" => Some(BlockKind::CyanGlazedTerracotta), - "purple_glazed_terracotta" => Some(BlockKind::PurpleGlazedTerracotta), - "blue_glazed_terracotta" => Some(BlockKind::BlueGlazedTerracotta), - "brown_glazed_terracotta" => Some(BlockKind::BrownGlazedTerracotta), - "green_glazed_terracotta" => Some(BlockKind::GreenGlazedTerracotta), - "red_glazed_terracotta" => Some(BlockKind::RedGlazedTerracotta), - "black_glazed_terracotta" => Some(BlockKind::BlackGlazedTerracotta), - "white_concrete" => Some(BlockKind::WhiteConcrete), - "orange_concrete" => Some(BlockKind::OrangeConcrete), - "magenta_concrete" => Some(BlockKind::MagentaConcrete), - "light_blue_concrete" => Some(BlockKind::LightBlueConcrete), - "yellow_concrete" => Some(BlockKind::YellowConcrete), - "lime_concrete" => Some(BlockKind::LimeConcrete), - "pink_concrete" => Some(BlockKind::PinkConcrete), - "gray_concrete" => Some(BlockKind::GrayConcrete), - "light_gray_concrete" => Some(BlockKind::LightGrayConcrete), - "cyan_concrete" => Some(BlockKind::CyanConcrete), - "purple_concrete" => Some(BlockKind::PurpleConcrete), - "blue_concrete" => Some(BlockKind::BlueConcrete), - "brown_concrete" => Some(BlockKind::BrownConcrete), - "green_concrete" => Some(BlockKind::GreenConcrete), - "red_concrete" => Some(BlockKind::RedConcrete), - "black_concrete" => Some(BlockKind::BlackConcrete), - "white_concrete_powder" => Some(BlockKind::WhiteConcretePowder), - "orange_concrete_powder" => Some(BlockKind::OrangeConcretePowder), - "magenta_concrete_powder" => Some(BlockKind::MagentaConcretePowder), - "light_blue_concrete_powder" => Some(BlockKind::LightBlueConcretePowder), - "yellow_concrete_powder" => Some(BlockKind::YellowConcretePowder), - "lime_concrete_powder" => Some(BlockKind::LimeConcretePowder), - "pink_concrete_powder" => Some(BlockKind::PinkConcretePowder), - "gray_concrete_powder" => Some(BlockKind::GrayConcretePowder), - "light_gray_concrete_powder" => Some(BlockKind::LightGrayConcretePowder), - "cyan_concrete_powder" => Some(BlockKind::CyanConcretePowder), - "purple_concrete_powder" => Some(BlockKind::PurpleConcretePowder), - "blue_concrete_powder" => Some(BlockKind::BlueConcretePowder), - "brown_concrete_powder" => Some(BlockKind::BrownConcretePowder), - "green_concrete_powder" => Some(BlockKind::GreenConcretePowder), - "red_concrete_powder" => Some(BlockKind::RedConcretePowder), - "black_concrete_powder" => Some(BlockKind::BlackConcretePowder), - "kelp" => Some(BlockKind::Kelp), - "kelp_plant" => Some(BlockKind::KelpPlant), - "dried_kelp_block" => Some(BlockKind::DriedKelpBlock), - "turtle_egg" => Some(BlockKind::TurtleEgg), - "dead_tube_coral_block" => Some(BlockKind::DeadTubeCoralBlock), - "dead_brain_coral_block" => Some(BlockKind::DeadBrainCoralBlock), - "dead_bubble_coral_block" => Some(BlockKind::DeadBubbleCoralBlock), - "dead_fire_coral_block" => Some(BlockKind::DeadFireCoralBlock), - "dead_horn_coral_block" => Some(BlockKind::DeadHornCoralBlock), - "tube_coral_block" => Some(BlockKind::TubeCoralBlock), - "brain_coral_block" => Some(BlockKind::BrainCoralBlock), - "bubble_coral_block" => Some(BlockKind::BubbleCoralBlock), - "fire_coral_block" => Some(BlockKind::FireCoralBlock), - "horn_coral_block" => Some(BlockKind::HornCoralBlock), - "dead_tube_coral" => Some(BlockKind::DeadTubeCoral), - "dead_brain_coral" => Some(BlockKind::DeadBrainCoral), - "dead_bubble_coral" => Some(BlockKind::DeadBubbleCoral), - "dead_fire_coral" => Some(BlockKind::DeadFireCoral), - "dead_horn_coral" => Some(BlockKind::DeadHornCoral), - "tube_coral" => Some(BlockKind::TubeCoral), - "brain_coral" => Some(BlockKind::BrainCoral), - "bubble_coral" => Some(BlockKind::BubbleCoral), - "fire_coral" => Some(BlockKind::FireCoral), - "horn_coral" => Some(BlockKind::HornCoral), - "dead_tube_coral_fan" => Some(BlockKind::DeadTubeCoralFan), - "dead_brain_coral_fan" => Some(BlockKind::DeadBrainCoralFan), - "dead_bubble_coral_fan" => Some(BlockKind::DeadBubbleCoralFan), - "dead_fire_coral_fan" => Some(BlockKind::DeadFireCoralFan), - "dead_horn_coral_fan" => Some(BlockKind::DeadHornCoralFan), - "tube_coral_fan" => Some(BlockKind::TubeCoralFan), - "brain_coral_fan" => Some(BlockKind::BrainCoralFan), - "bubble_coral_fan" => Some(BlockKind::BubbleCoralFan), - "fire_coral_fan" => Some(BlockKind::FireCoralFan), - "horn_coral_fan" => Some(BlockKind::HornCoralFan), - "dead_tube_coral_wall_fan" => Some(BlockKind::DeadTubeCoralWallFan), - "dead_brain_coral_wall_fan" => Some(BlockKind::DeadBrainCoralWallFan), - "dead_bubble_coral_wall_fan" => Some(BlockKind::DeadBubbleCoralWallFan), - "dead_fire_coral_wall_fan" => Some(BlockKind::DeadFireCoralWallFan), - "dead_horn_coral_wall_fan" => Some(BlockKind::DeadHornCoralWallFan), - "tube_coral_wall_fan" => Some(BlockKind::TubeCoralWallFan), - "brain_coral_wall_fan" => Some(BlockKind::BrainCoralWallFan), - "bubble_coral_wall_fan" => Some(BlockKind::BubbleCoralWallFan), - "fire_coral_wall_fan" => Some(BlockKind::FireCoralWallFan), - "horn_coral_wall_fan" => Some(BlockKind::HornCoralWallFan), - "sea_pickle" => Some(BlockKind::SeaPickle), - "blue_ice" => Some(BlockKind::BlueIce), - "conduit" => Some(BlockKind::Conduit), - "bamboo_sapling" => Some(BlockKind::BambooSapling), - "bamboo" => Some(BlockKind::Bamboo), - "potted_bamboo" => Some(BlockKind::PottedBamboo), - "void_air" => Some(BlockKind::VoidAir), - "cave_air" => Some(BlockKind::CaveAir), - "bubble_column" => Some(BlockKind::BubbleColumn), - "polished_granite_stairs" => Some(BlockKind::PolishedGraniteStairs), - "smooth_red_sandstone_stairs" => Some(BlockKind::SmoothRedSandstoneStairs), - "mossy_stone_brick_stairs" => Some(BlockKind::MossyStoneBrickStairs), - "polished_diorite_stairs" => Some(BlockKind::PolishedDioriteStairs), - "mossy_cobblestone_stairs" => Some(BlockKind::MossyCobblestoneStairs), - "end_stone_brick_stairs" => Some(BlockKind::EndStoneBrickStairs), - "stone_stairs" => Some(BlockKind::StoneStairs), - "smooth_sandstone_stairs" => Some(BlockKind::SmoothSandstoneStairs), - "smooth_quartz_stairs" => Some(BlockKind::SmoothQuartzStairs), - "granite_stairs" => Some(BlockKind::GraniteStairs), - "andesite_stairs" => Some(BlockKind::AndesiteStairs), - "red_nether_brick_stairs" => Some(BlockKind::RedNetherBrickStairs), - "polished_andesite_stairs" => Some(BlockKind::PolishedAndesiteStairs), - "diorite_stairs" => Some(BlockKind::DioriteStairs), - "polished_granite_slab" => Some(BlockKind::PolishedGraniteSlab), - "smooth_red_sandstone_slab" => Some(BlockKind::SmoothRedSandstoneSlab), - "mossy_stone_brick_slab" => Some(BlockKind::MossyStoneBrickSlab), - "polished_diorite_slab" => Some(BlockKind::PolishedDioriteSlab), - "mossy_cobblestone_slab" => Some(BlockKind::MossyCobblestoneSlab), - "end_stone_brick_slab" => Some(BlockKind::EndStoneBrickSlab), - "smooth_sandstone_slab" => Some(BlockKind::SmoothSandstoneSlab), - "smooth_quartz_slab" => Some(BlockKind::SmoothQuartzSlab), - "granite_slab" => Some(BlockKind::GraniteSlab), - "andesite_slab" => Some(BlockKind::AndesiteSlab), - "red_nether_brick_slab" => Some(BlockKind::RedNetherBrickSlab), - "polished_andesite_slab" => Some(BlockKind::PolishedAndesiteSlab), - "diorite_slab" => Some(BlockKind::DioriteSlab), - "brick_wall" => Some(BlockKind::BrickWall), - "prismarine_wall" => Some(BlockKind::PrismarineWall), - "red_sandstone_wall" => Some(BlockKind::RedSandstoneWall), - "mossy_stone_brick_wall" => Some(BlockKind::MossyStoneBrickWall), - "granite_wall" => Some(BlockKind::GraniteWall), - "stone_brick_wall" => Some(BlockKind::StoneBrickWall), - "nether_brick_wall" => Some(BlockKind::NetherBrickWall), - "andesite_wall" => Some(BlockKind::AndesiteWall), - "red_nether_brick_wall" => Some(BlockKind::RedNetherBrickWall), - "sandstone_wall" => Some(BlockKind::SandstoneWall), - "end_stone_brick_wall" => Some(BlockKind::EndStoneBrickWall), - "diorite_wall" => Some(BlockKind::DioriteWall), - "scaffolding" => Some(BlockKind::Scaffolding), - "loom" => Some(BlockKind::Loom), - "barrel" => Some(BlockKind::Barrel), - "smoker" => Some(BlockKind::Smoker), - "blast_furnace" => Some(BlockKind::BlastFurnace), - "cartography_table" => Some(BlockKind::CartographyTable), - "fletching_table" => Some(BlockKind::FletchingTable), - "grindstone" => Some(BlockKind::Grindstone), - "lectern" => Some(BlockKind::Lectern), - "smithing_table" => Some(BlockKind::SmithingTable), - "stonecutter" => Some(BlockKind::Stonecutter), - "bell" => Some(BlockKind::Bell), - "lantern" => Some(BlockKind::Lantern), - "soul_lantern" => Some(BlockKind::SoulLantern), - "campfire" => Some(BlockKind::Campfire), - "soul_campfire" => Some(BlockKind::SoulCampfire), - "sweet_berry_bush" => Some(BlockKind::SweetBerryBush), - "warped_stem" => Some(BlockKind::WarpedStem), - "stripped_warped_stem" => Some(BlockKind::StrippedWarpedStem), - "warped_hyphae" => Some(BlockKind::WarpedHyphae), - "stripped_warped_hyphae" => Some(BlockKind::StrippedWarpedHyphae), - "warped_nylium" => Some(BlockKind::WarpedNylium), - "warped_fungus" => Some(BlockKind::WarpedFungus), - "warped_wart_block" => Some(BlockKind::WarpedWartBlock), - "warped_roots" => Some(BlockKind::WarpedRoots), - "nether_sprouts" => Some(BlockKind::NetherSprouts), - "crimson_stem" => Some(BlockKind::CrimsonStem), - "stripped_crimson_stem" => Some(BlockKind::StrippedCrimsonStem), - "crimson_hyphae" => Some(BlockKind::CrimsonHyphae), - "stripped_crimson_hyphae" => Some(BlockKind::StrippedCrimsonHyphae), - "crimson_nylium" => Some(BlockKind::CrimsonNylium), - "crimson_fungus" => Some(BlockKind::CrimsonFungus), - "shroomlight" => Some(BlockKind::Shroomlight), - "weeping_vines" => Some(BlockKind::WeepingVines), - "weeping_vines_plant" => Some(BlockKind::WeepingVinesPlant), - "twisting_vines" => Some(BlockKind::TwistingVines), - "twisting_vines_plant" => Some(BlockKind::TwistingVinesPlant), - "crimson_roots" => Some(BlockKind::CrimsonRoots), - "crimson_planks" => Some(BlockKind::CrimsonPlanks), - "warped_planks" => Some(BlockKind::WarpedPlanks), - "crimson_slab" => Some(BlockKind::CrimsonSlab), - "warped_slab" => Some(BlockKind::WarpedSlab), - "crimson_pressure_plate" => Some(BlockKind::CrimsonPressurePlate), - "warped_pressure_plate" => Some(BlockKind::WarpedPressurePlate), - "crimson_fence" => Some(BlockKind::CrimsonFence), - "warped_fence" => Some(BlockKind::WarpedFence), - "crimson_trapdoor" => Some(BlockKind::CrimsonTrapdoor), - "warped_trapdoor" => Some(BlockKind::WarpedTrapdoor), - "crimson_fence_gate" => Some(BlockKind::CrimsonFenceGate), - "warped_fence_gate" => Some(BlockKind::WarpedFenceGate), - "crimson_stairs" => Some(BlockKind::CrimsonStairs), - "warped_stairs" => Some(BlockKind::WarpedStairs), - "crimson_button" => Some(BlockKind::CrimsonButton), - "warped_button" => Some(BlockKind::WarpedButton), - "crimson_door" => Some(BlockKind::CrimsonDoor), - "warped_door" => Some(BlockKind::WarpedDoor), - "crimson_sign" => Some(BlockKind::CrimsonSign), - "warped_sign" => Some(BlockKind::WarpedSign), - "crimson_wall_sign" => Some(BlockKind::CrimsonWallSign), - "warped_wall_sign" => Some(BlockKind::WarpedWallSign), - "structure_block" => Some(BlockKind::StructureBlock), - "jigsaw" => Some(BlockKind::Jigsaw), - "composter" => Some(BlockKind::Composter), - "target" => Some(BlockKind::Target), - "bee_nest" => Some(BlockKind::BeeNest), - "beehive" => Some(BlockKind::Beehive), - "honey_block" => Some(BlockKind::HoneyBlock), - "honeycomb_block" => Some(BlockKind::HoneycombBlock), - "netherite_block" => Some(BlockKind::NetheriteBlock), - "ancient_debris" => Some(BlockKind::AncientDebris), - "crying_obsidian" => Some(BlockKind::CryingObsidian), - "respawn_anchor" => Some(BlockKind::RespawnAnchor), - "potted_crimson_fungus" => Some(BlockKind::PottedCrimsonFungus), - "potted_warped_fungus" => Some(BlockKind::PottedWarpedFungus), - "potted_crimson_roots" => Some(BlockKind::PottedCrimsonRoots), - "potted_warped_roots" => Some(BlockKind::PottedWarpedRoots), - "lodestone" => Some(BlockKind::Lodestone), - "blackstone" => Some(BlockKind::Blackstone), - "blackstone_stairs" => Some(BlockKind::BlackstoneStairs), - "blackstone_wall" => Some(BlockKind::BlackstoneWall), - "blackstone_slab" => Some(BlockKind::BlackstoneSlab), - "polished_blackstone" => Some(BlockKind::PolishedBlackstone), - "polished_blackstone_bricks" => Some(BlockKind::PolishedBlackstoneBricks), - "cracked_polished_blackstone_bricks" => { - Some(BlockKind::CrackedPolishedBlackstoneBricks) - } - "chiseled_polished_blackstone" => Some(BlockKind::ChiseledPolishedBlackstone), - "polished_blackstone_brick_slab" => Some(BlockKind::PolishedBlackstoneBrickSlab), - "polished_blackstone_brick_stairs" => Some(BlockKind::PolishedBlackstoneBrickStairs), - "polished_blackstone_brick_wall" => Some(BlockKind::PolishedBlackstoneBrickWall), - "gilded_blackstone" => Some(BlockKind::GildedBlackstone), - "polished_blackstone_stairs" => Some(BlockKind::PolishedBlackstoneStairs), - "polished_blackstone_slab" => Some(BlockKind::PolishedBlackstoneSlab), - "polished_blackstone_pressure_plate" => { - Some(BlockKind::PolishedBlackstonePressurePlate) - } - "polished_blackstone_button" => Some(BlockKind::PolishedBlackstoneButton), - "polished_blackstone_wall" => Some(BlockKind::PolishedBlackstoneWall), - "chiseled_nether_bricks" => Some(BlockKind::ChiseledNetherBricks), - "cracked_nether_bricks" => Some(BlockKind::CrackedNetherBricks), - "quartz_bricks" => Some(BlockKind::QuartzBricks), - _ => None, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl BlockKind { - /// Returns the `display_name` property of this `BlockKind`. - pub fn display_name(&self) -> &'static str { - match self { - BlockKind::Air => "Air", - BlockKind::Stone => "Stone", - BlockKind::Granite => "Granite", - BlockKind::PolishedGranite => "Polished Granite", - BlockKind::Diorite => "Diorite", - BlockKind::PolishedDiorite => "Polished Diorite", - BlockKind::Andesite => "Andesite", - BlockKind::PolishedAndesite => "Polished Andesite", - BlockKind::GrassBlock => "Grass Block", - BlockKind::Dirt => "Dirt", - BlockKind::CoarseDirt => "Coarse Dirt", - BlockKind::Podzol => "Podzol", - BlockKind::Cobblestone => "Cobblestone", - BlockKind::OakPlanks => "Oak Planks", - BlockKind::SprucePlanks => "Spruce Planks", - BlockKind::BirchPlanks => "Birch Planks", - BlockKind::JunglePlanks => "Jungle Planks", - BlockKind::AcaciaPlanks => "Acacia Planks", - BlockKind::DarkOakPlanks => "Dark Oak Planks", - BlockKind::OakSapling => "Oak Sapling", - BlockKind::SpruceSapling => "Spruce Sapling", - BlockKind::BirchSapling => "Birch Sapling", - BlockKind::JungleSapling => "Jungle Sapling", - BlockKind::AcaciaSapling => "Acacia Sapling", - BlockKind::DarkOakSapling => "Dark Oak Sapling", - BlockKind::Bedrock => "Bedrock", - BlockKind::Water => "Water", - BlockKind::Lava => "Lava", - BlockKind::Sand => "Sand", - BlockKind::RedSand => "Red Sand", - BlockKind::Gravel => "Gravel", - BlockKind::GoldOre => "Gold Ore", - BlockKind::IronOre => "Iron Ore", - BlockKind::CoalOre => "Coal Ore", - BlockKind::NetherGoldOre => "Nether Gold Ore", - BlockKind::OakLog => "Oak Log", - BlockKind::SpruceLog => "Spruce Log", - BlockKind::BirchLog => "Birch Log", - BlockKind::JungleLog => "Jungle Log", - BlockKind::AcaciaLog => "Acacia Log", - BlockKind::DarkOakLog => "Dark Oak Log", - BlockKind::StrippedSpruceLog => "Stripped Spruce Log", - BlockKind::StrippedBirchLog => "Stripped Birch Log", - BlockKind::StrippedJungleLog => "Stripped Jungle Log", - BlockKind::StrippedAcaciaLog => "Stripped Acacia Log", - BlockKind::StrippedDarkOakLog => "Stripped Dark Oak Log", - BlockKind::StrippedOakLog => "Stripped Oak Log", - BlockKind::OakWood => "Oak Wood", - BlockKind::SpruceWood => "Spruce Wood", - BlockKind::BirchWood => "Birch Wood", - BlockKind::JungleWood => "Jungle Wood", - BlockKind::AcaciaWood => "Acacia Wood", - BlockKind::DarkOakWood => "Dark Oak Wood", - BlockKind::StrippedOakWood => "Stripped Oak Wood", - BlockKind::StrippedSpruceWood => "Stripped Spruce Wood", - BlockKind::StrippedBirchWood => "Stripped Birch Wood", - BlockKind::StrippedJungleWood => "Stripped Jungle Wood", - BlockKind::StrippedAcaciaWood => "Stripped Acacia Wood", - BlockKind::StrippedDarkOakWood => "Stripped Dark Oak Wood", - BlockKind::OakLeaves => "Oak Leaves", - BlockKind::SpruceLeaves => "Spruce Leaves", - BlockKind::BirchLeaves => "Birch Leaves", - BlockKind::JungleLeaves => "Jungle Leaves", - BlockKind::AcaciaLeaves => "Acacia Leaves", - BlockKind::DarkOakLeaves => "Dark Oak Leaves", - BlockKind::Sponge => "Sponge", - BlockKind::WetSponge => "Wet Sponge", - BlockKind::Glass => "Glass", - BlockKind::LapisOre => "Lapis Lazuli Ore", - BlockKind::LapisBlock => "Lapis Lazuli Block", - BlockKind::Dispenser => "Dispenser", - BlockKind::Sandstone => "Sandstone", - BlockKind::ChiseledSandstone => "Chiseled Sandstone", - BlockKind::CutSandstone => "Cut Sandstone", - BlockKind::NoteBlock => "Note Block", - BlockKind::WhiteBed => "White Bed", - BlockKind::OrangeBed => "Orange Bed", - BlockKind::MagentaBed => "Magenta Bed", - BlockKind::LightBlueBed => "Light Blue Bed", - BlockKind::YellowBed => "Yellow Bed", - BlockKind::LimeBed => "Lime Bed", - BlockKind::PinkBed => "Pink Bed", - BlockKind::GrayBed => "Gray Bed", - BlockKind::LightGrayBed => "Light Gray Bed", - BlockKind::CyanBed => "Cyan Bed", - BlockKind::PurpleBed => "Purple Bed", - BlockKind::BlueBed => "Blue Bed", - BlockKind::BrownBed => "Brown Bed", - BlockKind::GreenBed => "Green Bed", - BlockKind::RedBed => "Red Bed", - BlockKind::BlackBed => "Black Bed", - BlockKind::PoweredRail => "Powered Rail", - BlockKind::DetectorRail => "Detector Rail", - BlockKind::StickyPiston => "Sticky Piston", - BlockKind::Cobweb => "Cobweb", - BlockKind::Grass => "Grass", - BlockKind::Fern => "Fern", - BlockKind::DeadBush => "Dead Bush", - BlockKind::Seagrass => "Seagrass", - BlockKind::TallSeagrass => "Tall Seagrass", - BlockKind::Piston => "Piston", - BlockKind::PistonHead => "Piston Head", - BlockKind::WhiteWool => "White Wool", - BlockKind::OrangeWool => "Orange Wool", - BlockKind::MagentaWool => "Magenta Wool", - BlockKind::LightBlueWool => "Light Blue Wool", - BlockKind::YellowWool => "Yellow Wool", - BlockKind::LimeWool => "Lime Wool", - BlockKind::PinkWool => "Pink Wool", - BlockKind::GrayWool => "Gray Wool", - BlockKind::LightGrayWool => "Light Gray Wool", - BlockKind::CyanWool => "Cyan Wool", - BlockKind::PurpleWool => "Purple Wool", - BlockKind::BlueWool => "Blue Wool", - BlockKind::BrownWool => "Brown Wool", - BlockKind::GreenWool => "Green Wool", - BlockKind::RedWool => "Red Wool", - BlockKind::BlackWool => "Black Wool", - BlockKind::MovingPiston => "Moving Piston", - BlockKind::Dandelion => "Dandelion", - BlockKind::Poppy => "Poppy", - BlockKind::BlueOrchid => "Blue Orchid", - BlockKind::Allium => "Allium", - BlockKind::AzureBluet => "Azure Bluet", - BlockKind::RedTulip => "Red Tulip", - BlockKind::OrangeTulip => "Orange Tulip", - BlockKind::WhiteTulip => "White Tulip", - BlockKind::PinkTulip => "Pink Tulip", - BlockKind::OxeyeDaisy => "Oxeye Daisy", - BlockKind::Cornflower => "Cornflower", - BlockKind::WitherRose => "Wither Rose", - BlockKind::LilyOfTheValley => "Lily of the Valley", - BlockKind::BrownMushroom => "Brown Mushroom", - BlockKind::RedMushroom => "Red Mushroom", - BlockKind::GoldBlock => "Block of Gold", - BlockKind::IronBlock => "Block of Iron", - BlockKind::Bricks => "Bricks", - BlockKind::Tnt => "TNT", - BlockKind::Bookshelf => "Bookshelf", - BlockKind::MossyCobblestone => "Mossy Cobblestone", - BlockKind::Obsidian => "Obsidian", - BlockKind::Torch => "Torch", - BlockKind::WallTorch => "Wall Torch", - BlockKind::Fire => "Fire", - BlockKind::SoulFire => "Soul Fire", - BlockKind::Spawner => "Spawner", - BlockKind::OakStairs => "Oak Stairs", - BlockKind::Chest => "Chest", - BlockKind::RedstoneWire => "Redstone Wire", - BlockKind::DiamondOre => "Diamond Ore", - BlockKind::DiamondBlock => "Block of Diamond", - BlockKind::CraftingTable => "Crafting Table", - BlockKind::Wheat => "Wheat Crops", - BlockKind::Farmland => "Farmland", - BlockKind::Furnace => "Furnace", - BlockKind::OakSign => "Oak Sign", - BlockKind::SpruceSign => "Spruce Sign", - BlockKind::BirchSign => "Birch Sign", - BlockKind::AcaciaSign => "Acacia Sign", - BlockKind::JungleSign => "Jungle Sign", - BlockKind::DarkOakSign => "Dark Oak Sign", - BlockKind::OakDoor => "Oak Door", - BlockKind::Ladder => "Ladder", - BlockKind::Rail => "Rail", - BlockKind::CobblestoneStairs => "Cobblestone Stairs", - BlockKind::OakWallSign => "Oak Wall Sign", - BlockKind::SpruceWallSign => "Spruce Wall Sign", - BlockKind::BirchWallSign => "Birch Wall Sign", - BlockKind::AcaciaWallSign => "Acacia Wall Sign", - BlockKind::JungleWallSign => "Jungle Wall Sign", - BlockKind::DarkOakWallSign => "Dark Oak Wall Sign", - BlockKind::Lever => "Lever", - BlockKind::StonePressurePlate => "Stone Pressure Plate", - BlockKind::IronDoor => "Iron Door", - BlockKind::OakPressurePlate => "Oak Pressure Plate", - BlockKind::SprucePressurePlate => "Spruce Pressure Plate", - BlockKind::BirchPressurePlate => "Birch Pressure Plate", - BlockKind::JunglePressurePlate => "Jungle Pressure Plate", - BlockKind::AcaciaPressurePlate => "Acacia Pressure Plate", - BlockKind::DarkOakPressurePlate => "Dark Oak Pressure Plate", - BlockKind::RedstoneOre => "Redstone Ore", - BlockKind::RedstoneTorch => "Redstone Torch", - BlockKind::RedstoneWallTorch => "Redstone Wall Torch", - BlockKind::StoneButton => "Stone Button", - BlockKind::Snow => "Snow", - BlockKind::Ice => "Ice", - BlockKind::SnowBlock => "Snow Block", - BlockKind::Cactus => "Cactus", - BlockKind::Clay => "Clay", - BlockKind::SugarCane => "Sugar Cane", - BlockKind::Jukebox => "Jukebox", - BlockKind::OakFence => "Oak Fence", - BlockKind::Pumpkin => "Pumpkin", - BlockKind::Netherrack => "Netherrack", - BlockKind::SoulSand => "Soul Sand", - BlockKind::SoulSoil => "Soul Soil", - BlockKind::Basalt => "Basalt", - BlockKind::PolishedBasalt => "Polished Basalt", - BlockKind::SoulTorch => "Soul Torch", - BlockKind::SoulWallTorch => "Soul Wall Torch", - BlockKind::Glowstone => "Glowstone", - BlockKind::NetherPortal => "Nether Portal", - BlockKind::CarvedPumpkin => "Carved Pumpkin", - BlockKind::JackOLantern => "Jack o'Lantern", - BlockKind::Cake => "Cake", - BlockKind::Repeater => "Redstone Repeater", - BlockKind::WhiteStainedGlass => "White Stained Glass", - BlockKind::OrangeStainedGlass => "Orange Stained Glass", - BlockKind::MagentaStainedGlass => "Magenta Stained Glass", - BlockKind::LightBlueStainedGlass => "Light Blue Stained Glass", - BlockKind::YellowStainedGlass => "Yellow Stained Glass", - BlockKind::LimeStainedGlass => "Lime Stained Glass", - BlockKind::PinkStainedGlass => "Pink Stained Glass", - BlockKind::GrayStainedGlass => "Gray Stained Glass", - BlockKind::LightGrayStainedGlass => "Light Gray Stained Glass", - BlockKind::CyanStainedGlass => "Cyan Stained Glass", - BlockKind::PurpleStainedGlass => "Purple Stained Glass", - BlockKind::BlueStainedGlass => "Blue Stained Glass", - BlockKind::BrownStainedGlass => "Brown Stained Glass", - BlockKind::GreenStainedGlass => "Green Stained Glass", - BlockKind::RedStainedGlass => "Red Stained Glass", - BlockKind::BlackStainedGlass => "Black Stained Glass", - BlockKind::OakTrapdoor => "Oak Trapdoor", - BlockKind::SpruceTrapdoor => "Spruce Trapdoor", - BlockKind::BirchTrapdoor => "Birch Trapdoor", - BlockKind::JungleTrapdoor => "Jungle Trapdoor", - BlockKind::AcaciaTrapdoor => "Acacia Trapdoor", - BlockKind::DarkOakTrapdoor => "Dark Oak Trapdoor", - BlockKind::StoneBricks => "Stone Bricks", - BlockKind::MossyStoneBricks => "Mossy Stone Bricks", - BlockKind::CrackedStoneBricks => "Cracked Stone Bricks", - BlockKind::ChiseledStoneBricks => "Chiseled Stone Bricks", - BlockKind::InfestedStone => "Infested Stone", - BlockKind::InfestedCobblestone => "Infested Cobblestone", - BlockKind::InfestedStoneBricks => "Infested Stone Bricks", - BlockKind::InfestedMossyStoneBricks => "Infested Mossy Stone Bricks", - BlockKind::InfestedCrackedStoneBricks => "Infested Cracked Stone Bricks", - BlockKind::InfestedChiseledStoneBricks => "Infested Chiseled Stone Bricks", - BlockKind::BrownMushroomBlock => "Brown Mushroom Block", - BlockKind::RedMushroomBlock => "Red Mushroom Block", - BlockKind::MushroomStem => "Mushroom Stem", - BlockKind::IronBars => "Iron Bars", - BlockKind::Chain => "Chain", - BlockKind::GlassPane => "Glass Pane", - BlockKind::Melon => "Melon", - BlockKind::AttachedPumpkinStem => "Attached Pumpkin Stem", - BlockKind::AttachedMelonStem => "Attached Melon Stem", - BlockKind::PumpkinStem => "Pumpkin Stem", - BlockKind::MelonStem => "Melon Stem", - BlockKind::Vine => "Vines", - BlockKind::OakFenceGate => "Oak Fence Gate", - BlockKind::BrickStairs => "Brick Stairs", - BlockKind::StoneBrickStairs => "Stone Brick Stairs", - BlockKind::Mycelium => "Mycelium", - BlockKind::LilyPad => "Lily Pad", - BlockKind::NetherBricks => "Nether Bricks", - BlockKind::NetherBrickFence => "Nether Brick Fence", - BlockKind::NetherBrickStairs => "Nether Brick Stairs", - BlockKind::NetherWart => "Nether Wart", - BlockKind::EnchantingTable => "Enchanting Table", - BlockKind::BrewingStand => "Brewing Stand", - BlockKind::Cauldron => "Cauldron", - BlockKind::EndPortal => "End Portal", - BlockKind::EndPortalFrame => "End Portal Frame", - BlockKind::EndStone => "End Stone", - BlockKind::DragonEgg => "Dragon Egg", - BlockKind::RedstoneLamp => "Redstone Lamp", - BlockKind::Cocoa => "Cocoa", - BlockKind::SandstoneStairs => "Sandstone Stairs", - BlockKind::EmeraldOre => "Emerald Ore", - BlockKind::EnderChest => "Ender Chest", - BlockKind::TripwireHook => "Tripwire Hook", - BlockKind::Tripwire => "Tripwire", - BlockKind::EmeraldBlock => "Block of Emerald", - BlockKind::SpruceStairs => "Spruce Stairs", - BlockKind::BirchStairs => "Birch Stairs", - BlockKind::JungleStairs => "Jungle Stairs", - BlockKind::CommandBlock => "Command Block", - BlockKind::Beacon => "Beacon", - BlockKind::CobblestoneWall => "Cobblestone Wall", - BlockKind::MossyCobblestoneWall => "Mossy Cobblestone Wall", - BlockKind::FlowerPot => "Flower Pot", - BlockKind::PottedOakSapling => "Potted Oak Sapling", - BlockKind::PottedSpruceSapling => "Potted Spruce Sapling", - BlockKind::PottedBirchSapling => "Potted Birch Sapling", - BlockKind::PottedJungleSapling => "Potted Jungle Sapling", - BlockKind::PottedAcaciaSapling => "Potted Acacia Sapling", - BlockKind::PottedDarkOakSapling => "Potted Dark Oak Sapling", - BlockKind::PottedFern => "Potted Fern", - BlockKind::PottedDandelion => "Potted Dandelion", - BlockKind::PottedPoppy => "Potted Poppy", - BlockKind::PottedBlueOrchid => "Potted Blue Orchid", - BlockKind::PottedAllium => "Potted Allium", - BlockKind::PottedAzureBluet => "Potted Azure Bluet", - BlockKind::PottedRedTulip => "Potted Red Tulip", - BlockKind::PottedOrangeTulip => "Potted Orange Tulip", - BlockKind::PottedWhiteTulip => "Potted White Tulip", - BlockKind::PottedPinkTulip => "Potted Pink Tulip", - BlockKind::PottedOxeyeDaisy => "Potted Oxeye Daisy", - BlockKind::PottedCornflower => "Potted Cornflower", - BlockKind::PottedLilyOfTheValley => "Potted Lily of the Valley", - BlockKind::PottedWitherRose => "Potted Wither Rose", - BlockKind::PottedRedMushroom => "Potted Red Mushroom", - BlockKind::PottedBrownMushroom => "Potted Brown Mushroom", - BlockKind::PottedDeadBush => "Potted Dead Bush", - BlockKind::PottedCactus => "Potted Cactus", - BlockKind::Carrots => "Carrots", - BlockKind::Potatoes => "Potatoes", - BlockKind::OakButton => "Oak Button", - BlockKind::SpruceButton => "Spruce Button", - BlockKind::BirchButton => "Birch Button", - BlockKind::JungleButton => "Jungle Button", - BlockKind::AcaciaButton => "Acacia Button", - BlockKind::DarkOakButton => "Dark Oak Button", - BlockKind::SkeletonSkull => "Skeleton Skull", - BlockKind::SkeletonWallSkull => "Skeleton Wall Skull", - BlockKind::WitherSkeletonSkull => "Wither Skeleton Skull", - BlockKind::WitherSkeletonWallSkull => "Wither Skeleton Wall Skull", - BlockKind::ZombieHead => "Zombie Head", - BlockKind::ZombieWallHead => "Zombie Wall Head", - BlockKind::PlayerHead => "Player Head", - BlockKind::PlayerWallHead => "Player Wall Head", - BlockKind::CreeperHead => "Creeper Head", - BlockKind::CreeperWallHead => "Creeper Wall Head", - BlockKind::DragonHead => "Dragon Head", - BlockKind::DragonWallHead => "Dragon Wall Head", - BlockKind::Anvil => "Anvil", - BlockKind::ChippedAnvil => "Chipped Anvil", - BlockKind::DamagedAnvil => "Damaged Anvil", - BlockKind::TrappedChest => "Trapped Chest", - BlockKind::LightWeightedPressurePlate => "Light Weighted Pressure Plate", - BlockKind::HeavyWeightedPressurePlate => "Heavy Weighted Pressure Plate", - BlockKind::Comparator => "Redstone Comparator", - BlockKind::DaylightDetector => "Daylight Detector", - BlockKind::RedstoneBlock => "Block of Redstone", - BlockKind::NetherQuartzOre => "Nether Quartz Ore", - BlockKind::Hopper => "Hopper", - BlockKind::QuartzBlock => "Block of Quartz", - BlockKind::ChiseledQuartzBlock => "Chiseled Quartz Block", - BlockKind::QuartzPillar => "Quartz Pillar", - BlockKind::QuartzStairs => "Quartz Stairs", - BlockKind::ActivatorRail => "Activator Rail", - BlockKind::Dropper => "Dropper", - BlockKind::WhiteTerracotta => "White Terracotta", - BlockKind::OrangeTerracotta => "Orange Terracotta", - BlockKind::MagentaTerracotta => "Magenta Terracotta", - BlockKind::LightBlueTerracotta => "Light Blue Terracotta", - BlockKind::YellowTerracotta => "Yellow Terracotta", - BlockKind::LimeTerracotta => "Lime Terracotta", - BlockKind::PinkTerracotta => "Pink Terracotta", - BlockKind::GrayTerracotta => "Gray Terracotta", - BlockKind::LightGrayTerracotta => "Light Gray Terracotta", - BlockKind::CyanTerracotta => "Cyan Terracotta", - BlockKind::PurpleTerracotta => "Purple Terracotta", - BlockKind::BlueTerracotta => "Blue Terracotta", - BlockKind::BrownTerracotta => "Brown Terracotta", - BlockKind::GreenTerracotta => "Green Terracotta", - BlockKind::RedTerracotta => "Red Terracotta", - BlockKind::BlackTerracotta => "Black Terracotta", - BlockKind::WhiteStainedGlassPane => "White Stained Glass Pane", - BlockKind::OrangeStainedGlassPane => "Orange Stained Glass Pane", - BlockKind::MagentaStainedGlassPane => "Magenta Stained Glass Pane", - BlockKind::LightBlueStainedGlassPane => "Light Blue Stained Glass Pane", - BlockKind::YellowStainedGlassPane => "Yellow Stained Glass Pane", - BlockKind::LimeStainedGlassPane => "Lime Stained Glass Pane", - BlockKind::PinkStainedGlassPane => "Pink Stained Glass Pane", - BlockKind::GrayStainedGlassPane => "Gray Stained Glass Pane", - BlockKind::LightGrayStainedGlassPane => "Light Gray Stained Glass Pane", - BlockKind::CyanStainedGlassPane => "Cyan Stained Glass Pane", - BlockKind::PurpleStainedGlassPane => "Purple Stained Glass Pane", - BlockKind::BlueStainedGlassPane => "Blue Stained Glass Pane", - BlockKind::BrownStainedGlassPane => "Brown Stained Glass Pane", - BlockKind::GreenStainedGlassPane => "Green Stained Glass Pane", - BlockKind::RedStainedGlassPane => "Red Stained Glass Pane", - BlockKind::BlackStainedGlassPane => "Black Stained Glass Pane", - BlockKind::AcaciaStairs => "Acacia Stairs", - BlockKind::DarkOakStairs => "Dark Oak Stairs", - BlockKind::SlimeBlock => "Slime Block", - BlockKind::Barrier => "Barrier", - BlockKind::IronTrapdoor => "Iron Trapdoor", - BlockKind::Prismarine => "Prismarine", - BlockKind::PrismarineBricks => "Prismarine Bricks", - BlockKind::DarkPrismarine => "Dark Prismarine", - BlockKind::PrismarineStairs => "Prismarine Stairs", - BlockKind::PrismarineBrickStairs => "Prismarine Brick Stairs", - BlockKind::DarkPrismarineStairs => "Dark Prismarine Stairs", - BlockKind::PrismarineSlab => "Prismarine Slab", - BlockKind::PrismarineBrickSlab => "Prismarine Brick Slab", - BlockKind::DarkPrismarineSlab => "Dark Prismarine Slab", - BlockKind::SeaLantern => "Sea Lantern", - BlockKind::HayBlock => "Hay Bale", - BlockKind::WhiteCarpet => "White Carpet", - BlockKind::OrangeCarpet => "Orange Carpet", - BlockKind::MagentaCarpet => "Magenta Carpet", - BlockKind::LightBlueCarpet => "Light Blue Carpet", - BlockKind::YellowCarpet => "Yellow Carpet", - BlockKind::LimeCarpet => "Lime Carpet", - BlockKind::PinkCarpet => "Pink Carpet", - BlockKind::GrayCarpet => "Gray Carpet", - BlockKind::LightGrayCarpet => "Light Gray Carpet", - BlockKind::CyanCarpet => "Cyan Carpet", - BlockKind::PurpleCarpet => "Purple Carpet", - BlockKind::BlueCarpet => "Blue Carpet", - BlockKind::BrownCarpet => "Brown Carpet", - BlockKind::GreenCarpet => "Green Carpet", - BlockKind::RedCarpet => "Red Carpet", - BlockKind::BlackCarpet => "Black Carpet", - BlockKind::Terracotta => "Terracotta", - BlockKind::CoalBlock => "Block of Coal", - BlockKind::PackedIce => "Packed Ice", - BlockKind::Sunflower => "Sunflower", - BlockKind::Lilac => "Lilac", - BlockKind::RoseBush => "Rose Bush", - BlockKind::Peony => "Peony", - BlockKind::TallGrass => "Tall Grass", - BlockKind::LargeFern => "Large Fern", - BlockKind::WhiteBanner => "White Banner", - BlockKind::OrangeBanner => "Orange Banner", - BlockKind::MagentaBanner => "Magenta Banner", - BlockKind::LightBlueBanner => "Light Blue Banner", - BlockKind::YellowBanner => "Yellow Banner", - BlockKind::LimeBanner => "Lime Banner", - BlockKind::PinkBanner => "Pink Banner", - BlockKind::GrayBanner => "Gray Banner", - BlockKind::LightGrayBanner => "Light Gray Banner", - BlockKind::CyanBanner => "Cyan Banner", - BlockKind::PurpleBanner => "Purple Banner", - BlockKind::BlueBanner => "Blue Banner", - BlockKind::BrownBanner => "Brown Banner", - BlockKind::GreenBanner => "Green Banner", - BlockKind::RedBanner => "Red Banner", - BlockKind::BlackBanner => "Black Banner", - BlockKind::WhiteWallBanner => "White wall banner", - BlockKind::OrangeWallBanner => "Orange wall banner", - BlockKind::MagentaWallBanner => "Magenta wall banner", - BlockKind::LightBlueWallBanner => "Light blue wall banner", - BlockKind::YellowWallBanner => "Yellow wall banner", - BlockKind::LimeWallBanner => "Lime wall banner", - BlockKind::PinkWallBanner => "Pink wall banner", - BlockKind::GrayWallBanner => "Gray wall banner", - BlockKind::LightGrayWallBanner => "Light gray wall banner", - BlockKind::CyanWallBanner => "Cyan wall banner", - BlockKind::PurpleWallBanner => "Purple wall banner", - BlockKind::BlueWallBanner => "Blue wall banner", - BlockKind::BrownWallBanner => "Brown wall banner", - BlockKind::GreenWallBanner => "Green wall banner", - BlockKind::RedWallBanner => "Red wall banner", - BlockKind::BlackWallBanner => "Black wall banner", - BlockKind::RedSandstone => "Red Sandstone", - BlockKind::ChiseledRedSandstone => "Chiseled Red Sandstone", - BlockKind::CutRedSandstone => "Cut Red Sandstone", - BlockKind::RedSandstoneStairs => "Red Sandstone Stairs", - BlockKind::OakSlab => "Oak Slab", - BlockKind::SpruceSlab => "Spruce Slab", - BlockKind::BirchSlab => "Birch Slab", - BlockKind::JungleSlab => "Jungle Slab", - BlockKind::AcaciaSlab => "Acacia Slab", - BlockKind::DarkOakSlab => "Dark Oak Slab", - BlockKind::StoneSlab => "Stone Slab", - BlockKind::SmoothStoneSlab => "Smooth Stone Slab", - BlockKind::SandstoneSlab => "Sandstone Slab", - BlockKind::CutSandstoneSlab => "Cut Sandstone Slab", - BlockKind::PetrifiedOakSlab => "Petrified Oak Slab", - BlockKind::CobblestoneSlab => "Cobblestone Slab", - BlockKind::BrickSlab => "Brick Slab", - BlockKind::StoneBrickSlab => "Stone Brick Slab", - BlockKind::NetherBrickSlab => "Nether Brick Slab", - BlockKind::QuartzSlab => "Quartz Slab", - BlockKind::RedSandstoneSlab => "Red Sandstone Slab", - BlockKind::CutRedSandstoneSlab => "Cut Red Sandstone Slab", - BlockKind::PurpurSlab => "Purpur Slab", - BlockKind::SmoothStone => "Smooth Stone", - BlockKind::SmoothSandstone => "Smooth Sandstone", - BlockKind::SmoothQuartz => "Smooth Quartz Block", - BlockKind::SmoothRedSandstone => "Smooth Red Sandstone", - BlockKind::SpruceFenceGate => "Spruce Fence Gate", - BlockKind::BirchFenceGate => "Birch Fence Gate", - BlockKind::JungleFenceGate => "Jungle Fence Gate", - BlockKind::AcaciaFenceGate => "Acacia Fence Gate", - BlockKind::DarkOakFenceGate => "Dark Oak Fence Gate", - BlockKind::SpruceFence => "Spruce Fence", - BlockKind::BirchFence => "Birch Fence", - BlockKind::JungleFence => "Jungle Fence", - BlockKind::AcaciaFence => "Acacia Fence", - BlockKind::DarkOakFence => "Dark Oak Fence", - BlockKind::SpruceDoor => "Spruce Door", - BlockKind::BirchDoor => "Birch Door", - BlockKind::JungleDoor => "Jungle Door", - BlockKind::AcaciaDoor => "Acacia Door", - BlockKind::DarkOakDoor => "Dark Oak Door", - BlockKind::EndRod => "End Rod", - BlockKind::ChorusPlant => "Chorus Plant", - BlockKind::ChorusFlower => "Chorus Flower", - BlockKind::PurpurBlock => "Purpur Block", - BlockKind::PurpurPillar => "Purpur Pillar", - BlockKind::PurpurStairs => "Purpur Stairs", - BlockKind::EndStoneBricks => "End Stone Bricks", - BlockKind::Beetroots => "Beetroots", - BlockKind::GrassPath => "Grass Path", - BlockKind::EndGateway => "End Gateway", - BlockKind::RepeatingCommandBlock => "Repeating Command Block", - BlockKind::ChainCommandBlock => "Chain Command Block", - BlockKind::FrostedIce => "Frosted Ice", - BlockKind::MagmaBlock => "Magma Block", - BlockKind::NetherWartBlock => "Nether Wart Block", - BlockKind::RedNetherBricks => "Red Nether Bricks", - BlockKind::BoneBlock => "Bone Block", - BlockKind::StructureVoid => "Structure Void", - BlockKind::Observer => "Observer", - BlockKind::ShulkerBox => "Shulker Box", - BlockKind::WhiteShulkerBox => "White Shulker Box", - BlockKind::OrangeShulkerBox => "Orange Shulker Box", - BlockKind::MagentaShulkerBox => "Magenta Shulker Box", - BlockKind::LightBlueShulkerBox => "Light Blue Shulker Box", - BlockKind::YellowShulkerBox => "Yellow Shulker Box", - BlockKind::LimeShulkerBox => "Lime Shulker Box", - BlockKind::PinkShulkerBox => "Pink Shulker Box", - BlockKind::GrayShulkerBox => "Gray Shulker Box", - BlockKind::LightGrayShulkerBox => "Light Gray Shulker Box", - BlockKind::CyanShulkerBox => "Cyan Shulker Box", - BlockKind::PurpleShulkerBox => "Purple Shulker Box", - BlockKind::BlueShulkerBox => "Blue Shulker Box", - BlockKind::BrownShulkerBox => "Brown Shulker Box", - BlockKind::GreenShulkerBox => "Green Shulker Box", - BlockKind::RedShulkerBox => "Red Shulker Box", - BlockKind::BlackShulkerBox => "Black Shulker Box", - BlockKind::WhiteGlazedTerracotta => "White Glazed Terracotta", - BlockKind::OrangeGlazedTerracotta => "Orange Glazed Terracotta", - BlockKind::MagentaGlazedTerracotta => "Magenta Glazed Terracotta", - BlockKind::LightBlueGlazedTerracotta => "Light Blue Glazed Terracotta", - BlockKind::YellowGlazedTerracotta => "Yellow Glazed Terracotta", - BlockKind::LimeGlazedTerracotta => "Lime Glazed Terracotta", - BlockKind::PinkGlazedTerracotta => "Pink Glazed Terracotta", - BlockKind::GrayGlazedTerracotta => "Gray Glazed Terracotta", - BlockKind::LightGrayGlazedTerracotta => "Light Gray Glazed Terracotta", - BlockKind::CyanGlazedTerracotta => "Cyan Glazed Terracotta", - BlockKind::PurpleGlazedTerracotta => "Purple Glazed Terracotta", - BlockKind::BlueGlazedTerracotta => "Blue Glazed Terracotta", - BlockKind::BrownGlazedTerracotta => "Brown Glazed Terracotta", - BlockKind::GreenGlazedTerracotta => "Green Glazed Terracotta", - BlockKind::RedGlazedTerracotta => "Red Glazed Terracotta", - BlockKind::BlackGlazedTerracotta => "Black Glazed Terracotta", - BlockKind::WhiteConcrete => "White Concrete", - BlockKind::OrangeConcrete => "Orange Concrete", - BlockKind::MagentaConcrete => "Magenta Concrete", - BlockKind::LightBlueConcrete => "Light Blue Concrete", - BlockKind::YellowConcrete => "Yellow Concrete", - BlockKind::LimeConcrete => "Lime Concrete", - BlockKind::PinkConcrete => "Pink Concrete", - BlockKind::GrayConcrete => "Gray Concrete", - BlockKind::LightGrayConcrete => "Light Gray Concrete", - BlockKind::CyanConcrete => "Cyan Concrete", - BlockKind::PurpleConcrete => "Purple Concrete", - BlockKind::BlueConcrete => "Blue Concrete", - BlockKind::BrownConcrete => "Brown Concrete", - BlockKind::GreenConcrete => "Green Concrete", - BlockKind::RedConcrete => "Red Concrete", - BlockKind::BlackConcrete => "Black Concrete", - BlockKind::WhiteConcretePowder => "White Concrete Powder", - BlockKind::OrangeConcretePowder => "Orange Concrete Powder", - BlockKind::MagentaConcretePowder => "Magenta Concrete Powder", - BlockKind::LightBlueConcretePowder => "Light Blue Concrete Powder", - BlockKind::YellowConcretePowder => "Yellow Concrete Powder", - BlockKind::LimeConcretePowder => "Lime Concrete Powder", - BlockKind::PinkConcretePowder => "Pink Concrete Powder", - BlockKind::GrayConcretePowder => "Gray Concrete Powder", - BlockKind::LightGrayConcretePowder => "Light Gray Concrete Powder", - BlockKind::CyanConcretePowder => "Cyan Concrete Powder", - BlockKind::PurpleConcretePowder => "Purple Concrete Powder", - BlockKind::BlueConcretePowder => "Blue Concrete Powder", - BlockKind::BrownConcretePowder => "Brown Concrete Powder", - BlockKind::GreenConcretePowder => "Green Concrete Powder", - BlockKind::RedConcretePowder => "Red Concrete Powder", - BlockKind::BlackConcretePowder => "Black Concrete Powder", - BlockKind::Kelp => "Kelp", - BlockKind::KelpPlant => "Kelp Plant", - BlockKind::DriedKelpBlock => "Dried Kelp Block", - BlockKind::TurtleEgg => "Turtle Egg", - BlockKind::DeadTubeCoralBlock => "Dead Tube Coral Block", - BlockKind::DeadBrainCoralBlock => "Dead Brain Coral Block", - BlockKind::DeadBubbleCoralBlock => "Dead Bubble Coral Block", - BlockKind::DeadFireCoralBlock => "Dead Fire Coral Block", - BlockKind::DeadHornCoralBlock => "Dead Horn Coral Block", - BlockKind::TubeCoralBlock => "Tube Coral Block", - BlockKind::BrainCoralBlock => "Brain Coral Block", - BlockKind::BubbleCoralBlock => "Bubble Coral Block", - BlockKind::FireCoralBlock => "Fire Coral Block", - BlockKind::HornCoralBlock => "Horn Coral Block", - BlockKind::DeadTubeCoral => "Dead Tube Coral", - BlockKind::DeadBrainCoral => "Dead Brain Coral", - BlockKind::DeadBubbleCoral => "Dead Bubble Coral", - BlockKind::DeadFireCoral => "Dead Fire Coral", - BlockKind::DeadHornCoral => "Dead Horn Coral", - BlockKind::TubeCoral => "Tube Coral", - BlockKind::BrainCoral => "Brain Coral", - BlockKind::BubbleCoral => "Bubble Coral", - BlockKind::FireCoral => "Fire Coral", - BlockKind::HornCoral => "Horn Coral", - BlockKind::DeadTubeCoralFan => "Dead Tube Coral Fan", - BlockKind::DeadBrainCoralFan => "Dead Brain Coral Fan", - BlockKind::DeadBubbleCoralFan => "Dead Bubble Coral Fan", - BlockKind::DeadFireCoralFan => "Dead Fire Coral Fan", - BlockKind::DeadHornCoralFan => "Dead Horn Coral Fan", - BlockKind::TubeCoralFan => "Tube Coral Fan", - BlockKind::BrainCoralFan => "Brain Coral Fan", - BlockKind::BubbleCoralFan => "Bubble Coral Fan", - BlockKind::FireCoralFan => "Fire Coral Fan", - BlockKind::HornCoralFan => "Horn Coral Fan", - BlockKind::DeadTubeCoralWallFan => "Dead Tube Coral Wall Fan", - BlockKind::DeadBrainCoralWallFan => "Dead Brain Coral Wall Fan", - BlockKind::DeadBubbleCoralWallFan => "Dead Bubble Coral Wall Fan", - BlockKind::DeadFireCoralWallFan => "Dead Fire Coral Wall Fan", - BlockKind::DeadHornCoralWallFan => "Dead Horn Coral Wall Fan", - BlockKind::TubeCoralWallFan => "Tube Coral Wall Fan", - BlockKind::BrainCoralWallFan => "Brain Coral Wall Fan", - BlockKind::BubbleCoralWallFan => "Bubble Coral Wall Fan", - BlockKind::FireCoralWallFan => "Fire Coral Wall Fan", - BlockKind::HornCoralWallFan => "Horn Coral Wall Fan", - BlockKind::SeaPickle => "Sea Pickle", - BlockKind::BlueIce => "Blue Ice", - BlockKind::Conduit => "Conduit", - BlockKind::BambooSapling => "Bamboo Shoot", - BlockKind::Bamboo => "Bamboo", - BlockKind::PottedBamboo => "Potted Bamboo", - BlockKind::VoidAir => "Void Air", - BlockKind::CaveAir => "Cave Air", - BlockKind::BubbleColumn => "Bubble Column", - BlockKind::PolishedGraniteStairs => "Polished Granite Stairs", - BlockKind::SmoothRedSandstoneStairs => "Smooth Red Sandstone Stairs", - BlockKind::MossyStoneBrickStairs => "Mossy Stone Brick Stairs", - BlockKind::PolishedDioriteStairs => "Polished Diorite Stairs", - BlockKind::MossyCobblestoneStairs => "Mossy Cobblestone Stairs", - BlockKind::EndStoneBrickStairs => "End Stone Brick Stairs", - BlockKind::StoneStairs => "Stone Stairs", - BlockKind::SmoothSandstoneStairs => "Smooth Sandstone Stairs", - BlockKind::SmoothQuartzStairs => "Smooth Quartz Stairs", - BlockKind::GraniteStairs => "Granite Stairs", - BlockKind::AndesiteStairs => "Andesite Stairs", - BlockKind::RedNetherBrickStairs => "Red Nether Brick Stairs", - BlockKind::PolishedAndesiteStairs => "Polished Andesite Stairs", - BlockKind::DioriteStairs => "Diorite Stairs", - BlockKind::PolishedGraniteSlab => "Polished Granite Slab", - BlockKind::SmoothRedSandstoneSlab => "Smooth Red Sandstone Slab", - BlockKind::MossyStoneBrickSlab => "Mossy Stone Brick Slab", - BlockKind::PolishedDioriteSlab => "Polished Diorite Slab", - BlockKind::MossyCobblestoneSlab => "Mossy Cobblestone Slab", - BlockKind::EndStoneBrickSlab => "End Stone Brick Slab", - BlockKind::SmoothSandstoneSlab => "Smooth Sandstone Slab", - BlockKind::SmoothQuartzSlab => "Smooth Quartz Slab", - BlockKind::GraniteSlab => "Granite Slab", - BlockKind::AndesiteSlab => "Andesite Slab", - BlockKind::RedNetherBrickSlab => "Red Nether Brick Slab", - BlockKind::PolishedAndesiteSlab => "Polished Andesite Slab", - BlockKind::DioriteSlab => "Diorite Slab", - BlockKind::BrickWall => "Brick Wall", - BlockKind::PrismarineWall => "Prismarine Wall", - BlockKind::RedSandstoneWall => "Red Sandstone Wall", - BlockKind::MossyStoneBrickWall => "Mossy Stone Brick Wall", - BlockKind::GraniteWall => "Granite Wall", - BlockKind::StoneBrickWall => "Stone Brick Wall", - BlockKind::NetherBrickWall => "Nether Brick Wall", - BlockKind::AndesiteWall => "Andesite Wall", - BlockKind::RedNetherBrickWall => "Red Nether Brick Wall", - BlockKind::SandstoneWall => "Sandstone Wall", - BlockKind::EndStoneBrickWall => "End Stone Brick Wall", - BlockKind::DioriteWall => "Diorite Wall", - BlockKind::Scaffolding => "Scaffolding", - BlockKind::Loom => "Loom", - BlockKind::Barrel => "Barrel", - BlockKind::Smoker => "Smoker", - BlockKind::BlastFurnace => "Blast Furnace", - BlockKind::CartographyTable => "Cartography Table", - BlockKind::FletchingTable => "Fletching Table", - BlockKind::Grindstone => "Grindstone", - BlockKind::Lectern => "Lectern", - BlockKind::SmithingTable => "Smithing Table", - BlockKind::Stonecutter => "Stonecutter", - BlockKind::Bell => "Bell", - BlockKind::Lantern => "Lantern", - BlockKind::SoulLantern => "Soul Lantern", - BlockKind::Campfire => "Campfire", - BlockKind::SoulCampfire => "Soul Campfire", - BlockKind::SweetBerryBush => "Sweet Berry Bush", - BlockKind::WarpedStem => "Warped Stem", - BlockKind::StrippedWarpedStem => "Stripped Warped Stem", - BlockKind::WarpedHyphae => "Warped Hyphae", - BlockKind::StrippedWarpedHyphae => "Stripped Warped Hyphae", - BlockKind::WarpedNylium => "Warped Nylium", - BlockKind::WarpedFungus => "Warped Fungus", - BlockKind::WarpedWartBlock => "Warped Wart Block", - BlockKind::WarpedRoots => "Warped Roots", - BlockKind::NetherSprouts => "Nether Sprouts", - BlockKind::CrimsonStem => "Crimson Stem", - BlockKind::StrippedCrimsonStem => "Stripped Crimson Stem", - BlockKind::CrimsonHyphae => "Crimson Hyphae", - BlockKind::StrippedCrimsonHyphae => "Stripped Crimson Hyphae", - BlockKind::CrimsonNylium => "Crimson Nylium", - BlockKind::CrimsonFungus => "Crimson Fungus", - BlockKind::Shroomlight => "Shroomlight", - BlockKind::WeepingVines => "Weeping Vines", - BlockKind::WeepingVinesPlant => "Weeping Vines Plant", - BlockKind::TwistingVines => "Twisting Vines", - BlockKind::TwistingVinesPlant => "Twisting Vines Plant", - BlockKind::CrimsonRoots => "Crimson Roots", - BlockKind::CrimsonPlanks => "Crimson Planks", - BlockKind::WarpedPlanks => "Warped Planks", - BlockKind::CrimsonSlab => "Crimson Slab", - BlockKind::WarpedSlab => "Warped Slab", - BlockKind::CrimsonPressurePlate => "Crimson Pressure Plate", - BlockKind::WarpedPressurePlate => "Warped Pressure Plate", - BlockKind::CrimsonFence => "Crimson Fence", - BlockKind::WarpedFence => "Warped Fence", - BlockKind::CrimsonTrapdoor => "Crimson Trapdoor", - BlockKind::WarpedTrapdoor => "Warped Trapdoor", - BlockKind::CrimsonFenceGate => "Crimson Fence Gate", - BlockKind::WarpedFenceGate => "Warped Fence Gate", - BlockKind::CrimsonStairs => "Crimson Stairs", - BlockKind::WarpedStairs => "Warped Stairs", - BlockKind::CrimsonButton => "Crimson Button", - BlockKind::WarpedButton => "Warped Button", - BlockKind::CrimsonDoor => "Crimson Door", - BlockKind::WarpedDoor => "Warped Door", - BlockKind::CrimsonSign => "Crimson Sign", - BlockKind::WarpedSign => "Warped Sign", - BlockKind::CrimsonWallSign => "Crimson Wall Sign", - BlockKind::WarpedWallSign => "Warped Wall Sign", - BlockKind::StructureBlock => "Structure Block", - BlockKind::Jigsaw => "Jigsaw Block", - BlockKind::Composter => "Composter", - BlockKind::Target => "Target", - BlockKind::BeeNest => "Bee Nest", - BlockKind::Beehive => "Beehive", - BlockKind::HoneyBlock => "Honey Block", - BlockKind::HoneycombBlock => "Honeycomb Block", - BlockKind::NetheriteBlock => "Block of Netherite", - BlockKind::AncientDebris => "Ancient Debris", - BlockKind::CryingObsidian => "Crying Obsidian", - BlockKind::RespawnAnchor => "Respawn Anchor", - BlockKind::PottedCrimsonFungus => "Potted Crimson Fungus", - BlockKind::PottedWarpedFungus => "Potted Warped Fungus", - BlockKind::PottedCrimsonRoots => "Potted Crimson Roots", - BlockKind::PottedWarpedRoots => "Potted Warped Roots", - BlockKind::Lodestone => "Lodestone", - BlockKind::Blackstone => "Blackstone", - BlockKind::BlackstoneStairs => "Blackstone Stairs", - BlockKind::BlackstoneWall => "Blackstone Wall", - BlockKind::BlackstoneSlab => "Blackstone Slab", - BlockKind::PolishedBlackstone => "Polished Blackstone", - BlockKind::PolishedBlackstoneBricks => "Polished Blackstone Bricks", - BlockKind::CrackedPolishedBlackstoneBricks => "Cracked Polished Blackstone Bricks", - BlockKind::ChiseledPolishedBlackstone => "Chiseled Polished Blackstone", - BlockKind::PolishedBlackstoneBrickSlab => "Polished Blackstone Brick Slab", - BlockKind::PolishedBlackstoneBrickStairs => "Polished Blackstone Brick Stairs", - BlockKind::PolishedBlackstoneBrickWall => "Polished Blackstone Brick Wall", - BlockKind::GildedBlackstone => "Gilded Blackstone", - BlockKind::PolishedBlackstoneStairs => "Polished Blackstone Stairs", - BlockKind::PolishedBlackstoneSlab => "Polished Blackstone Slab", - BlockKind::PolishedBlackstonePressurePlate => "Polished Blackstone Pressure Plate", - BlockKind::PolishedBlackstoneButton => "Polished Blackstone Button", - BlockKind::PolishedBlackstoneWall => "Polished Blackstone Wall", - BlockKind::ChiseledNetherBricks => "Chiseled Nether Bricks", - BlockKind::CrackedNetherBricks => "Cracked Nether Bricks", - BlockKind::QuartzBricks => "Quartz Bricks", - } - } - - /// Gets a `BlockKind` by its `display_name`. - pub fn from_display_name(display_name: &str) -> Option { - match display_name { - "Air" => Some(BlockKind::Air), - "Stone" => Some(BlockKind::Stone), - "Granite" => Some(BlockKind::Granite), - "Polished Granite" => Some(BlockKind::PolishedGranite), - "Diorite" => Some(BlockKind::Diorite), - "Polished Diorite" => Some(BlockKind::PolishedDiorite), - "Andesite" => Some(BlockKind::Andesite), - "Polished Andesite" => Some(BlockKind::PolishedAndesite), - "Grass Block" => Some(BlockKind::GrassBlock), - "Dirt" => Some(BlockKind::Dirt), - "Coarse Dirt" => Some(BlockKind::CoarseDirt), - "Podzol" => Some(BlockKind::Podzol), - "Cobblestone" => Some(BlockKind::Cobblestone), - "Oak Planks" => Some(BlockKind::OakPlanks), - "Spruce Planks" => Some(BlockKind::SprucePlanks), - "Birch Planks" => Some(BlockKind::BirchPlanks), - "Jungle Planks" => Some(BlockKind::JunglePlanks), - "Acacia Planks" => Some(BlockKind::AcaciaPlanks), - "Dark Oak Planks" => Some(BlockKind::DarkOakPlanks), - "Oak Sapling" => Some(BlockKind::OakSapling), - "Spruce Sapling" => Some(BlockKind::SpruceSapling), - "Birch Sapling" => Some(BlockKind::BirchSapling), - "Jungle Sapling" => Some(BlockKind::JungleSapling), - "Acacia Sapling" => Some(BlockKind::AcaciaSapling), - "Dark Oak Sapling" => Some(BlockKind::DarkOakSapling), - "Bedrock" => Some(BlockKind::Bedrock), - "Water" => Some(BlockKind::Water), - "Lava" => Some(BlockKind::Lava), - "Sand" => Some(BlockKind::Sand), - "Red Sand" => Some(BlockKind::RedSand), - "Gravel" => Some(BlockKind::Gravel), - "Gold Ore" => Some(BlockKind::GoldOre), - "Iron Ore" => Some(BlockKind::IronOre), - "Coal Ore" => Some(BlockKind::CoalOre), - "Nether Gold Ore" => Some(BlockKind::NetherGoldOre), - "Oak Log" => Some(BlockKind::OakLog), - "Spruce Log" => Some(BlockKind::SpruceLog), - "Birch Log" => Some(BlockKind::BirchLog), - "Jungle Log" => Some(BlockKind::JungleLog), - "Acacia Log" => Some(BlockKind::AcaciaLog), - "Dark Oak Log" => Some(BlockKind::DarkOakLog), - "Stripped Spruce Log" => Some(BlockKind::StrippedSpruceLog), - "Stripped Birch Log" => Some(BlockKind::StrippedBirchLog), - "Stripped Jungle Log" => Some(BlockKind::StrippedJungleLog), - "Stripped Acacia Log" => Some(BlockKind::StrippedAcaciaLog), - "Stripped Dark Oak Log" => Some(BlockKind::StrippedDarkOakLog), - "Stripped Oak Log" => Some(BlockKind::StrippedOakLog), - "Oak Wood" => Some(BlockKind::OakWood), - "Spruce Wood" => Some(BlockKind::SpruceWood), - "Birch Wood" => Some(BlockKind::BirchWood), - "Jungle Wood" => Some(BlockKind::JungleWood), - "Acacia Wood" => Some(BlockKind::AcaciaWood), - "Dark Oak Wood" => Some(BlockKind::DarkOakWood), - "Stripped Oak Wood" => Some(BlockKind::StrippedOakWood), - "Stripped Spruce Wood" => Some(BlockKind::StrippedSpruceWood), - "Stripped Birch Wood" => Some(BlockKind::StrippedBirchWood), - "Stripped Jungle Wood" => Some(BlockKind::StrippedJungleWood), - "Stripped Acacia Wood" => Some(BlockKind::StrippedAcaciaWood), - "Stripped Dark Oak Wood" => Some(BlockKind::StrippedDarkOakWood), - "Oak Leaves" => Some(BlockKind::OakLeaves), - "Spruce Leaves" => Some(BlockKind::SpruceLeaves), - "Birch Leaves" => Some(BlockKind::BirchLeaves), - "Jungle Leaves" => Some(BlockKind::JungleLeaves), - "Acacia Leaves" => Some(BlockKind::AcaciaLeaves), - "Dark Oak Leaves" => Some(BlockKind::DarkOakLeaves), - "Sponge" => Some(BlockKind::Sponge), - "Wet Sponge" => Some(BlockKind::WetSponge), - "Glass" => Some(BlockKind::Glass), - "Lapis Lazuli Ore" => Some(BlockKind::LapisOre), - "Lapis Lazuli Block" => Some(BlockKind::LapisBlock), - "Dispenser" => Some(BlockKind::Dispenser), - "Sandstone" => Some(BlockKind::Sandstone), - "Chiseled Sandstone" => Some(BlockKind::ChiseledSandstone), - "Cut Sandstone" => Some(BlockKind::CutSandstone), - "Note Block" => Some(BlockKind::NoteBlock), - "White Bed" => Some(BlockKind::WhiteBed), - "Orange Bed" => Some(BlockKind::OrangeBed), - "Magenta Bed" => Some(BlockKind::MagentaBed), - "Light Blue Bed" => Some(BlockKind::LightBlueBed), - "Yellow Bed" => Some(BlockKind::YellowBed), - "Lime Bed" => Some(BlockKind::LimeBed), - "Pink Bed" => Some(BlockKind::PinkBed), - "Gray Bed" => Some(BlockKind::GrayBed), - "Light Gray Bed" => Some(BlockKind::LightGrayBed), - "Cyan Bed" => Some(BlockKind::CyanBed), - "Purple Bed" => Some(BlockKind::PurpleBed), - "Blue Bed" => Some(BlockKind::BlueBed), - "Brown Bed" => Some(BlockKind::BrownBed), - "Green Bed" => Some(BlockKind::GreenBed), - "Red Bed" => Some(BlockKind::RedBed), - "Black Bed" => Some(BlockKind::BlackBed), - "Powered Rail" => Some(BlockKind::PoweredRail), - "Detector Rail" => Some(BlockKind::DetectorRail), - "Sticky Piston" => Some(BlockKind::StickyPiston), - "Cobweb" => Some(BlockKind::Cobweb), - "Grass" => Some(BlockKind::Grass), - "Fern" => Some(BlockKind::Fern), - "Dead Bush" => Some(BlockKind::DeadBush), - "Seagrass" => Some(BlockKind::Seagrass), - "Tall Seagrass" => Some(BlockKind::TallSeagrass), - "Piston" => Some(BlockKind::Piston), - "Piston Head" => Some(BlockKind::PistonHead), - "White Wool" => Some(BlockKind::WhiteWool), - "Orange Wool" => Some(BlockKind::OrangeWool), - "Magenta Wool" => Some(BlockKind::MagentaWool), - "Light Blue Wool" => Some(BlockKind::LightBlueWool), - "Yellow Wool" => Some(BlockKind::YellowWool), - "Lime Wool" => Some(BlockKind::LimeWool), - "Pink Wool" => Some(BlockKind::PinkWool), - "Gray Wool" => Some(BlockKind::GrayWool), - "Light Gray Wool" => Some(BlockKind::LightGrayWool), - "Cyan Wool" => Some(BlockKind::CyanWool), - "Purple Wool" => Some(BlockKind::PurpleWool), - "Blue Wool" => Some(BlockKind::BlueWool), - "Brown Wool" => Some(BlockKind::BrownWool), - "Green Wool" => Some(BlockKind::GreenWool), - "Red Wool" => Some(BlockKind::RedWool), - "Black Wool" => Some(BlockKind::BlackWool), - "Moving Piston" => Some(BlockKind::MovingPiston), - "Dandelion" => Some(BlockKind::Dandelion), - "Poppy" => Some(BlockKind::Poppy), - "Blue Orchid" => Some(BlockKind::BlueOrchid), - "Allium" => Some(BlockKind::Allium), - "Azure Bluet" => Some(BlockKind::AzureBluet), - "Red Tulip" => Some(BlockKind::RedTulip), - "Orange Tulip" => Some(BlockKind::OrangeTulip), - "White Tulip" => Some(BlockKind::WhiteTulip), - "Pink Tulip" => Some(BlockKind::PinkTulip), - "Oxeye Daisy" => Some(BlockKind::OxeyeDaisy), - "Cornflower" => Some(BlockKind::Cornflower), - "Wither Rose" => Some(BlockKind::WitherRose), - "Lily of the Valley" => Some(BlockKind::LilyOfTheValley), - "Brown Mushroom" => Some(BlockKind::BrownMushroom), - "Red Mushroom" => Some(BlockKind::RedMushroom), - "Block of Gold" => Some(BlockKind::GoldBlock), - "Block of Iron" => Some(BlockKind::IronBlock), - "Bricks" => Some(BlockKind::Bricks), - "TNT" => Some(BlockKind::Tnt), - "Bookshelf" => Some(BlockKind::Bookshelf), - "Mossy Cobblestone" => Some(BlockKind::MossyCobblestone), - "Obsidian" => Some(BlockKind::Obsidian), - "Torch" => Some(BlockKind::Torch), - "Wall Torch" => Some(BlockKind::WallTorch), - "Fire" => Some(BlockKind::Fire), - "Soul Fire" => Some(BlockKind::SoulFire), - "Spawner" => Some(BlockKind::Spawner), - "Oak Stairs" => Some(BlockKind::OakStairs), - "Chest" => Some(BlockKind::Chest), - "Redstone Wire" => Some(BlockKind::RedstoneWire), - "Diamond Ore" => Some(BlockKind::DiamondOre), - "Block of Diamond" => Some(BlockKind::DiamondBlock), - "Crafting Table" => Some(BlockKind::CraftingTable), - "Wheat Crops" => Some(BlockKind::Wheat), - "Farmland" => Some(BlockKind::Farmland), - "Furnace" => Some(BlockKind::Furnace), - "Oak Sign" => Some(BlockKind::OakSign), - "Spruce Sign" => Some(BlockKind::SpruceSign), - "Birch Sign" => Some(BlockKind::BirchSign), - "Acacia Sign" => Some(BlockKind::AcaciaSign), - "Jungle Sign" => Some(BlockKind::JungleSign), - "Dark Oak Sign" => Some(BlockKind::DarkOakSign), - "Oak Door" => Some(BlockKind::OakDoor), - "Ladder" => Some(BlockKind::Ladder), - "Rail" => Some(BlockKind::Rail), - "Cobblestone Stairs" => Some(BlockKind::CobblestoneStairs), - "Oak Wall Sign" => Some(BlockKind::OakWallSign), - "Spruce Wall Sign" => Some(BlockKind::SpruceWallSign), - "Birch Wall Sign" => Some(BlockKind::BirchWallSign), - "Acacia Wall Sign" => Some(BlockKind::AcaciaWallSign), - "Jungle Wall Sign" => Some(BlockKind::JungleWallSign), - "Dark Oak Wall Sign" => Some(BlockKind::DarkOakWallSign), - "Lever" => Some(BlockKind::Lever), - "Stone Pressure Plate" => Some(BlockKind::StonePressurePlate), - "Iron Door" => Some(BlockKind::IronDoor), - "Oak Pressure Plate" => Some(BlockKind::OakPressurePlate), - "Spruce Pressure Plate" => Some(BlockKind::SprucePressurePlate), - "Birch Pressure Plate" => Some(BlockKind::BirchPressurePlate), - "Jungle Pressure Plate" => Some(BlockKind::JunglePressurePlate), - "Acacia Pressure Plate" => Some(BlockKind::AcaciaPressurePlate), - "Dark Oak Pressure Plate" => Some(BlockKind::DarkOakPressurePlate), - "Redstone Ore" => Some(BlockKind::RedstoneOre), - "Redstone Torch" => Some(BlockKind::RedstoneTorch), - "Redstone Wall Torch" => Some(BlockKind::RedstoneWallTorch), - "Stone Button" => Some(BlockKind::StoneButton), - "Snow" => Some(BlockKind::Snow), - "Ice" => Some(BlockKind::Ice), - "Snow Block" => Some(BlockKind::SnowBlock), - "Cactus" => Some(BlockKind::Cactus), - "Clay" => Some(BlockKind::Clay), - "Sugar Cane" => Some(BlockKind::SugarCane), - "Jukebox" => Some(BlockKind::Jukebox), - "Oak Fence" => Some(BlockKind::OakFence), - "Pumpkin" => Some(BlockKind::Pumpkin), - "Netherrack" => Some(BlockKind::Netherrack), - "Soul Sand" => Some(BlockKind::SoulSand), - "Soul Soil" => Some(BlockKind::SoulSoil), - "Basalt" => Some(BlockKind::Basalt), - "Polished Basalt" => Some(BlockKind::PolishedBasalt), - "Soul Torch" => Some(BlockKind::SoulTorch), - "Soul Wall Torch" => Some(BlockKind::SoulWallTorch), - "Glowstone" => Some(BlockKind::Glowstone), - "Nether Portal" => Some(BlockKind::NetherPortal), - "Carved Pumpkin" => Some(BlockKind::CarvedPumpkin), - "Jack o'Lantern" => Some(BlockKind::JackOLantern), - "Cake" => Some(BlockKind::Cake), - "Redstone Repeater" => Some(BlockKind::Repeater), - "White Stained Glass" => Some(BlockKind::WhiteStainedGlass), - "Orange Stained Glass" => Some(BlockKind::OrangeStainedGlass), - "Magenta Stained Glass" => Some(BlockKind::MagentaStainedGlass), - "Light Blue Stained Glass" => Some(BlockKind::LightBlueStainedGlass), - "Yellow Stained Glass" => Some(BlockKind::YellowStainedGlass), - "Lime Stained Glass" => Some(BlockKind::LimeStainedGlass), - "Pink Stained Glass" => Some(BlockKind::PinkStainedGlass), - "Gray Stained Glass" => Some(BlockKind::GrayStainedGlass), - "Light Gray Stained Glass" => Some(BlockKind::LightGrayStainedGlass), - "Cyan Stained Glass" => Some(BlockKind::CyanStainedGlass), - "Purple Stained Glass" => Some(BlockKind::PurpleStainedGlass), - "Blue Stained Glass" => Some(BlockKind::BlueStainedGlass), - "Brown Stained Glass" => Some(BlockKind::BrownStainedGlass), - "Green Stained Glass" => Some(BlockKind::GreenStainedGlass), - "Red Stained Glass" => Some(BlockKind::RedStainedGlass), - "Black Stained Glass" => Some(BlockKind::BlackStainedGlass), - "Oak Trapdoor" => Some(BlockKind::OakTrapdoor), - "Spruce Trapdoor" => Some(BlockKind::SpruceTrapdoor), - "Birch Trapdoor" => Some(BlockKind::BirchTrapdoor), - "Jungle Trapdoor" => Some(BlockKind::JungleTrapdoor), - "Acacia Trapdoor" => Some(BlockKind::AcaciaTrapdoor), - "Dark Oak Trapdoor" => Some(BlockKind::DarkOakTrapdoor), - "Stone Bricks" => Some(BlockKind::StoneBricks), - "Mossy Stone Bricks" => Some(BlockKind::MossyStoneBricks), - "Cracked Stone Bricks" => Some(BlockKind::CrackedStoneBricks), - "Chiseled Stone Bricks" => Some(BlockKind::ChiseledStoneBricks), - "Infested Stone" => Some(BlockKind::InfestedStone), - "Infested Cobblestone" => Some(BlockKind::InfestedCobblestone), - "Infested Stone Bricks" => Some(BlockKind::InfestedStoneBricks), - "Infested Mossy Stone Bricks" => Some(BlockKind::InfestedMossyStoneBricks), - "Infested Cracked Stone Bricks" => Some(BlockKind::InfestedCrackedStoneBricks), - "Infested Chiseled Stone Bricks" => Some(BlockKind::InfestedChiseledStoneBricks), - "Brown Mushroom Block" => Some(BlockKind::BrownMushroomBlock), - "Red Mushroom Block" => Some(BlockKind::RedMushroomBlock), - "Mushroom Stem" => Some(BlockKind::MushroomStem), - "Iron Bars" => Some(BlockKind::IronBars), - "Chain" => Some(BlockKind::Chain), - "Glass Pane" => Some(BlockKind::GlassPane), - "Melon" => Some(BlockKind::Melon), - "Attached Pumpkin Stem" => Some(BlockKind::AttachedPumpkinStem), - "Attached Melon Stem" => Some(BlockKind::AttachedMelonStem), - "Pumpkin Stem" => Some(BlockKind::PumpkinStem), - "Melon Stem" => Some(BlockKind::MelonStem), - "Vines" => Some(BlockKind::Vine), - "Oak Fence Gate" => Some(BlockKind::OakFenceGate), - "Brick Stairs" => Some(BlockKind::BrickStairs), - "Stone Brick Stairs" => Some(BlockKind::StoneBrickStairs), - "Mycelium" => Some(BlockKind::Mycelium), - "Lily Pad" => Some(BlockKind::LilyPad), - "Nether Bricks" => Some(BlockKind::NetherBricks), - "Nether Brick Fence" => Some(BlockKind::NetherBrickFence), - "Nether Brick Stairs" => Some(BlockKind::NetherBrickStairs), - "Nether Wart" => Some(BlockKind::NetherWart), - "Enchanting Table" => Some(BlockKind::EnchantingTable), - "Brewing Stand" => Some(BlockKind::BrewingStand), - "Cauldron" => Some(BlockKind::Cauldron), - "End Portal" => Some(BlockKind::EndPortal), - "End Portal Frame" => Some(BlockKind::EndPortalFrame), - "End Stone" => Some(BlockKind::EndStone), - "Dragon Egg" => Some(BlockKind::DragonEgg), - "Redstone Lamp" => Some(BlockKind::RedstoneLamp), - "Cocoa" => Some(BlockKind::Cocoa), - "Sandstone Stairs" => Some(BlockKind::SandstoneStairs), - "Emerald Ore" => Some(BlockKind::EmeraldOre), - "Ender Chest" => Some(BlockKind::EnderChest), - "Tripwire Hook" => Some(BlockKind::TripwireHook), - "Tripwire" => Some(BlockKind::Tripwire), - "Block of Emerald" => Some(BlockKind::EmeraldBlock), - "Spruce Stairs" => Some(BlockKind::SpruceStairs), - "Birch Stairs" => Some(BlockKind::BirchStairs), - "Jungle Stairs" => Some(BlockKind::JungleStairs), - "Command Block" => Some(BlockKind::CommandBlock), - "Beacon" => Some(BlockKind::Beacon), - "Cobblestone Wall" => Some(BlockKind::CobblestoneWall), - "Mossy Cobblestone Wall" => Some(BlockKind::MossyCobblestoneWall), - "Flower Pot" => Some(BlockKind::FlowerPot), - "Potted Oak Sapling" => Some(BlockKind::PottedOakSapling), - "Potted Spruce Sapling" => Some(BlockKind::PottedSpruceSapling), - "Potted Birch Sapling" => Some(BlockKind::PottedBirchSapling), - "Potted Jungle Sapling" => Some(BlockKind::PottedJungleSapling), - "Potted Acacia Sapling" => Some(BlockKind::PottedAcaciaSapling), - "Potted Dark Oak Sapling" => Some(BlockKind::PottedDarkOakSapling), - "Potted Fern" => Some(BlockKind::PottedFern), - "Potted Dandelion" => Some(BlockKind::PottedDandelion), - "Potted Poppy" => Some(BlockKind::PottedPoppy), - "Potted Blue Orchid" => Some(BlockKind::PottedBlueOrchid), - "Potted Allium" => Some(BlockKind::PottedAllium), - "Potted Azure Bluet" => Some(BlockKind::PottedAzureBluet), - "Potted Red Tulip" => Some(BlockKind::PottedRedTulip), - "Potted Orange Tulip" => Some(BlockKind::PottedOrangeTulip), - "Potted White Tulip" => Some(BlockKind::PottedWhiteTulip), - "Potted Pink Tulip" => Some(BlockKind::PottedPinkTulip), - "Potted Oxeye Daisy" => Some(BlockKind::PottedOxeyeDaisy), - "Potted Cornflower" => Some(BlockKind::PottedCornflower), - "Potted Lily of the Valley" => Some(BlockKind::PottedLilyOfTheValley), - "Potted Wither Rose" => Some(BlockKind::PottedWitherRose), - "Potted Red Mushroom" => Some(BlockKind::PottedRedMushroom), - "Potted Brown Mushroom" => Some(BlockKind::PottedBrownMushroom), - "Potted Dead Bush" => Some(BlockKind::PottedDeadBush), - "Potted Cactus" => Some(BlockKind::PottedCactus), - "Carrots" => Some(BlockKind::Carrots), - "Potatoes" => Some(BlockKind::Potatoes), - "Oak Button" => Some(BlockKind::OakButton), - "Spruce Button" => Some(BlockKind::SpruceButton), - "Birch Button" => Some(BlockKind::BirchButton), - "Jungle Button" => Some(BlockKind::JungleButton), - "Acacia Button" => Some(BlockKind::AcaciaButton), - "Dark Oak Button" => Some(BlockKind::DarkOakButton), - "Skeleton Skull" => Some(BlockKind::SkeletonSkull), - "Skeleton Wall Skull" => Some(BlockKind::SkeletonWallSkull), - "Wither Skeleton Skull" => Some(BlockKind::WitherSkeletonSkull), - "Wither Skeleton Wall Skull" => Some(BlockKind::WitherSkeletonWallSkull), - "Zombie Head" => Some(BlockKind::ZombieHead), - "Zombie Wall Head" => Some(BlockKind::ZombieWallHead), - "Player Head" => Some(BlockKind::PlayerHead), - "Player Wall Head" => Some(BlockKind::PlayerWallHead), - "Creeper Head" => Some(BlockKind::CreeperHead), - "Creeper Wall Head" => Some(BlockKind::CreeperWallHead), - "Dragon Head" => Some(BlockKind::DragonHead), - "Dragon Wall Head" => Some(BlockKind::DragonWallHead), - "Anvil" => Some(BlockKind::Anvil), - "Chipped Anvil" => Some(BlockKind::ChippedAnvil), - "Damaged Anvil" => Some(BlockKind::DamagedAnvil), - "Trapped Chest" => Some(BlockKind::TrappedChest), - "Light Weighted Pressure Plate" => Some(BlockKind::LightWeightedPressurePlate), - "Heavy Weighted Pressure Plate" => Some(BlockKind::HeavyWeightedPressurePlate), - "Redstone Comparator" => Some(BlockKind::Comparator), - "Daylight Detector" => Some(BlockKind::DaylightDetector), - "Block of Redstone" => Some(BlockKind::RedstoneBlock), - "Nether Quartz Ore" => Some(BlockKind::NetherQuartzOre), - "Hopper" => Some(BlockKind::Hopper), - "Block of Quartz" => Some(BlockKind::QuartzBlock), - "Chiseled Quartz Block" => Some(BlockKind::ChiseledQuartzBlock), - "Quartz Pillar" => Some(BlockKind::QuartzPillar), - "Quartz Stairs" => Some(BlockKind::QuartzStairs), - "Activator Rail" => Some(BlockKind::ActivatorRail), - "Dropper" => Some(BlockKind::Dropper), - "White Terracotta" => Some(BlockKind::WhiteTerracotta), - "Orange Terracotta" => Some(BlockKind::OrangeTerracotta), - "Magenta Terracotta" => Some(BlockKind::MagentaTerracotta), - "Light Blue Terracotta" => Some(BlockKind::LightBlueTerracotta), - "Yellow Terracotta" => Some(BlockKind::YellowTerracotta), - "Lime Terracotta" => Some(BlockKind::LimeTerracotta), - "Pink Terracotta" => Some(BlockKind::PinkTerracotta), - "Gray Terracotta" => Some(BlockKind::GrayTerracotta), - "Light Gray Terracotta" => Some(BlockKind::LightGrayTerracotta), - "Cyan Terracotta" => Some(BlockKind::CyanTerracotta), - "Purple Terracotta" => Some(BlockKind::PurpleTerracotta), - "Blue Terracotta" => Some(BlockKind::BlueTerracotta), - "Brown Terracotta" => Some(BlockKind::BrownTerracotta), - "Green Terracotta" => Some(BlockKind::GreenTerracotta), - "Red Terracotta" => Some(BlockKind::RedTerracotta), - "Black Terracotta" => Some(BlockKind::BlackTerracotta), - "White Stained Glass Pane" => Some(BlockKind::WhiteStainedGlassPane), - "Orange Stained Glass Pane" => Some(BlockKind::OrangeStainedGlassPane), - "Magenta Stained Glass Pane" => Some(BlockKind::MagentaStainedGlassPane), - "Light Blue Stained Glass Pane" => Some(BlockKind::LightBlueStainedGlassPane), - "Yellow Stained Glass Pane" => Some(BlockKind::YellowStainedGlassPane), - "Lime Stained Glass Pane" => Some(BlockKind::LimeStainedGlassPane), - "Pink Stained Glass Pane" => Some(BlockKind::PinkStainedGlassPane), - "Gray Stained Glass Pane" => Some(BlockKind::GrayStainedGlassPane), - "Light Gray Stained Glass Pane" => Some(BlockKind::LightGrayStainedGlassPane), - "Cyan Stained Glass Pane" => Some(BlockKind::CyanStainedGlassPane), - "Purple Stained Glass Pane" => Some(BlockKind::PurpleStainedGlassPane), - "Blue Stained Glass Pane" => Some(BlockKind::BlueStainedGlassPane), - "Brown Stained Glass Pane" => Some(BlockKind::BrownStainedGlassPane), - "Green Stained Glass Pane" => Some(BlockKind::GreenStainedGlassPane), - "Red Stained Glass Pane" => Some(BlockKind::RedStainedGlassPane), - "Black Stained Glass Pane" => Some(BlockKind::BlackStainedGlassPane), - "Acacia Stairs" => Some(BlockKind::AcaciaStairs), - "Dark Oak Stairs" => Some(BlockKind::DarkOakStairs), - "Slime Block" => Some(BlockKind::SlimeBlock), - "Barrier" => Some(BlockKind::Barrier), - "Iron Trapdoor" => Some(BlockKind::IronTrapdoor), - "Prismarine" => Some(BlockKind::Prismarine), - "Prismarine Bricks" => Some(BlockKind::PrismarineBricks), - "Dark Prismarine" => Some(BlockKind::DarkPrismarine), - "Prismarine Stairs" => Some(BlockKind::PrismarineStairs), - "Prismarine Brick Stairs" => Some(BlockKind::PrismarineBrickStairs), - "Dark Prismarine Stairs" => Some(BlockKind::DarkPrismarineStairs), - "Prismarine Slab" => Some(BlockKind::PrismarineSlab), - "Prismarine Brick Slab" => Some(BlockKind::PrismarineBrickSlab), - "Dark Prismarine Slab" => Some(BlockKind::DarkPrismarineSlab), - "Sea Lantern" => Some(BlockKind::SeaLantern), - "Hay Bale" => Some(BlockKind::HayBlock), - "White Carpet" => Some(BlockKind::WhiteCarpet), - "Orange Carpet" => Some(BlockKind::OrangeCarpet), - "Magenta Carpet" => Some(BlockKind::MagentaCarpet), - "Light Blue Carpet" => Some(BlockKind::LightBlueCarpet), - "Yellow Carpet" => Some(BlockKind::YellowCarpet), - "Lime Carpet" => Some(BlockKind::LimeCarpet), - "Pink Carpet" => Some(BlockKind::PinkCarpet), - "Gray Carpet" => Some(BlockKind::GrayCarpet), - "Light Gray Carpet" => Some(BlockKind::LightGrayCarpet), - "Cyan Carpet" => Some(BlockKind::CyanCarpet), - "Purple Carpet" => Some(BlockKind::PurpleCarpet), - "Blue Carpet" => Some(BlockKind::BlueCarpet), - "Brown Carpet" => Some(BlockKind::BrownCarpet), - "Green Carpet" => Some(BlockKind::GreenCarpet), - "Red Carpet" => Some(BlockKind::RedCarpet), - "Black Carpet" => Some(BlockKind::BlackCarpet), - "Terracotta" => Some(BlockKind::Terracotta), - "Block of Coal" => Some(BlockKind::CoalBlock), - "Packed Ice" => Some(BlockKind::PackedIce), - "Sunflower" => Some(BlockKind::Sunflower), - "Lilac" => Some(BlockKind::Lilac), - "Rose Bush" => Some(BlockKind::RoseBush), - "Peony" => Some(BlockKind::Peony), - "Tall Grass" => Some(BlockKind::TallGrass), - "Large Fern" => Some(BlockKind::LargeFern), - "White Banner" => Some(BlockKind::WhiteBanner), - "Orange Banner" => Some(BlockKind::OrangeBanner), - "Magenta Banner" => Some(BlockKind::MagentaBanner), - "Light Blue Banner" => Some(BlockKind::LightBlueBanner), - "Yellow Banner" => Some(BlockKind::YellowBanner), - "Lime Banner" => Some(BlockKind::LimeBanner), - "Pink Banner" => Some(BlockKind::PinkBanner), - "Gray Banner" => Some(BlockKind::GrayBanner), - "Light Gray Banner" => Some(BlockKind::LightGrayBanner), - "Cyan Banner" => Some(BlockKind::CyanBanner), - "Purple Banner" => Some(BlockKind::PurpleBanner), - "Blue Banner" => Some(BlockKind::BlueBanner), - "Brown Banner" => Some(BlockKind::BrownBanner), - "Green Banner" => Some(BlockKind::GreenBanner), - "Red Banner" => Some(BlockKind::RedBanner), - "Black Banner" => Some(BlockKind::BlackBanner), - "White wall banner" => Some(BlockKind::WhiteWallBanner), - "Orange wall banner" => Some(BlockKind::OrangeWallBanner), - "Magenta wall banner" => Some(BlockKind::MagentaWallBanner), - "Light blue wall banner" => Some(BlockKind::LightBlueWallBanner), - "Yellow wall banner" => Some(BlockKind::YellowWallBanner), - "Lime wall banner" => Some(BlockKind::LimeWallBanner), - "Pink wall banner" => Some(BlockKind::PinkWallBanner), - "Gray wall banner" => Some(BlockKind::GrayWallBanner), - "Light gray wall banner" => Some(BlockKind::LightGrayWallBanner), - "Cyan wall banner" => Some(BlockKind::CyanWallBanner), - "Purple wall banner" => Some(BlockKind::PurpleWallBanner), - "Blue wall banner" => Some(BlockKind::BlueWallBanner), - "Brown wall banner" => Some(BlockKind::BrownWallBanner), - "Green wall banner" => Some(BlockKind::GreenWallBanner), - "Red wall banner" => Some(BlockKind::RedWallBanner), - "Black wall banner" => Some(BlockKind::BlackWallBanner), - "Red Sandstone" => Some(BlockKind::RedSandstone), - "Chiseled Red Sandstone" => Some(BlockKind::ChiseledRedSandstone), - "Cut Red Sandstone" => Some(BlockKind::CutRedSandstone), - "Red Sandstone Stairs" => Some(BlockKind::RedSandstoneStairs), - "Oak Slab" => Some(BlockKind::OakSlab), - "Spruce Slab" => Some(BlockKind::SpruceSlab), - "Birch Slab" => Some(BlockKind::BirchSlab), - "Jungle Slab" => Some(BlockKind::JungleSlab), - "Acacia Slab" => Some(BlockKind::AcaciaSlab), - "Dark Oak Slab" => Some(BlockKind::DarkOakSlab), - "Stone Slab" => Some(BlockKind::StoneSlab), - "Smooth Stone Slab" => Some(BlockKind::SmoothStoneSlab), - "Sandstone Slab" => Some(BlockKind::SandstoneSlab), - "Cut Sandstone Slab" => Some(BlockKind::CutSandstoneSlab), - "Petrified Oak Slab" => Some(BlockKind::PetrifiedOakSlab), - "Cobblestone Slab" => Some(BlockKind::CobblestoneSlab), - "Brick Slab" => Some(BlockKind::BrickSlab), - "Stone Brick Slab" => Some(BlockKind::StoneBrickSlab), - "Nether Brick Slab" => Some(BlockKind::NetherBrickSlab), - "Quartz Slab" => Some(BlockKind::QuartzSlab), - "Red Sandstone Slab" => Some(BlockKind::RedSandstoneSlab), - "Cut Red Sandstone Slab" => Some(BlockKind::CutRedSandstoneSlab), - "Purpur Slab" => Some(BlockKind::PurpurSlab), - "Smooth Stone" => Some(BlockKind::SmoothStone), - "Smooth Sandstone" => Some(BlockKind::SmoothSandstone), - "Smooth Quartz Block" => Some(BlockKind::SmoothQuartz), - "Smooth Red Sandstone" => Some(BlockKind::SmoothRedSandstone), - "Spruce Fence Gate" => Some(BlockKind::SpruceFenceGate), - "Birch Fence Gate" => Some(BlockKind::BirchFenceGate), - "Jungle Fence Gate" => Some(BlockKind::JungleFenceGate), - "Acacia Fence Gate" => Some(BlockKind::AcaciaFenceGate), - "Dark Oak Fence Gate" => Some(BlockKind::DarkOakFenceGate), - "Spruce Fence" => Some(BlockKind::SpruceFence), - "Birch Fence" => Some(BlockKind::BirchFence), - "Jungle Fence" => Some(BlockKind::JungleFence), - "Acacia Fence" => Some(BlockKind::AcaciaFence), - "Dark Oak Fence" => Some(BlockKind::DarkOakFence), - "Spruce Door" => Some(BlockKind::SpruceDoor), - "Birch Door" => Some(BlockKind::BirchDoor), - "Jungle Door" => Some(BlockKind::JungleDoor), - "Acacia Door" => Some(BlockKind::AcaciaDoor), - "Dark Oak Door" => Some(BlockKind::DarkOakDoor), - "End Rod" => Some(BlockKind::EndRod), - "Chorus Plant" => Some(BlockKind::ChorusPlant), - "Chorus Flower" => Some(BlockKind::ChorusFlower), - "Purpur Block" => Some(BlockKind::PurpurBlock), - "Purpur Pillar" => Some(BlockKind::PurpurPillar), - "Purpur Stairs" => Some(BlockKind::PurpurStairs), - "End Stone Bricks" => Some(BlockKind::EndStoneBricks), - "Beetroots" => Some(BlockKind::Beetroots), - "Grass Path" => Some(BlockKind::GrassPath), - "End Gateway" => Some(BlockKind::EndGateway), - "Repeating Command Block" => Some(BlockKind::RepeatingCommandBlock), - "Chain Command Block" => Some(BlockKind::ChainCommandBlock), - "Frosted Ice" => Some(BlockKind::FrostedIce), - "Magma Block" => Some(BlockKind::MagmaBlock), - "Nether Wart Block" => Some(BlockKind::NetherWartBlock), - "Red Nether Bricks" => Some(BlockKind::RedNetherBricks), - "Bone Block" => Some(BlockKind::BoneBlock), - "Structure Void" => Some(BlockKind::StructureVoid), - "Observer" => Some(BlockKind::Observer), - "Shulker Box" => Some(BlockKind::ShulkerBox), - "White Shulker Box" => Some(BlockKind::WhiteShulkerBox), - "Orange Shulker Box" => Some(BlockKind::OrangeShulkerBox), - "Magenta Shulker Box" => Some(BlockKind::MagentaShulkerBox), - "Light Blue Shulker Box" => Some(BlockKind::LightBlueShulkerBox), - "Yellow Shulker Box" => Some(BlockKind::YellowShulkerBox), - "Lime Shulker Box" => Some(BlockKind::LimeShulkerBox), - "Pink Shulker Box" => Some(BlockKind::PinkShulkerBox), - "Gray Shulker Box" => Some(BlockKind::GrayShulkerBox), - "Light Gray Shulker Box" => Some(BlockKind::LightGrayShulkerBox), - "Cyan Shulker Box" => Some(BlockKind::CyanShulkerBox), - "Purple Shulker Box" => Some(BlockKind::PurpleShulkerBox), - "Blue Shulker Box" => Some(BlockKind::BlueShulkerBox), - "Brown Shulker Box" => Some(BlockKind::BrownShulkerBox), - "Green Shulker Box" => Some(BlockKind::GreenShulkerBox), - "Red Shulker Box" => Some(BlockKind::RedShulkerBox), - "Black Shulker Box" => Some(BlockKind::BlackShulkerBox), - "White Glazed Terracotta" => Some(BlockKind::WhiteGlazedTerracotta), - "Orange Glazed Terracotta" => Some(BlockKind::OrangeGlazedTerracotta), - "Magenta Glazed Terracotta" => Some(BlockKind::MagentaGlazedTerracotta), - "Light Blue Glazed Terracotta" => Some(BlockKind::LightBlueGlazedTerracotta), - "Yellow Glazed Terracotta" => Some(BlockKind::YellowGlazedTerracotta), - "Lime Glazed Terracotta" => Some(BlockKind::LimeGlazedTerracotta), - "Pink Glazed Terracotta" => Some(BlockKind::PinkGlazedTerracotta), - "Gray Glazed Terracotta" => Some(BlockKind::GrayGlazedTerracotta), - "Light Gray Glazed Terracotta" => Some(BlockKind::LightGrayGlazedTerracotta), - "Cyan Glazed Terracotta" => Some(BlockKind::CyanGlazedTerracotta), - "Purple Glazed Terracotta" => Some(BlockKind::PurpleGlazedTerracotta), - "Blue Glazed Terracotta" => Some(BlockKind::BlueGlazedTerracotta), - "Brown Glazed Terracotta" => Some(BlockKind::BrownGlazedTerracotta), - "Green Glazed Terracotta" => Some(BlockKind::GreenGlazedTerracotta), - "Red Glazed Terracotta" => Some(BlockKind::RedGlazedTerracotta), - "Black Glazed Terracotta" => Some(BlockKind::BlackGlazedTerracotta), - "White Concrete" => Some(BlockKind::WhiteConcrete), - "Orange Concrete" => Some(BlockKind::OrangeConcrete), - "Magenta Concrete" => Some(BlockKind::MagentaConcrete), - "Light Blue Concrete" => Some(BlockKind::LightBlueConcrete), - "Yellow Concrete" => Some(BlockKind::YellowConcrete), - "Lime Concrete" => Some(BlockKind::LimeConcrete), - "Pink Concrete" => Some(BlockKind::PinkConcrete), - "Gray Concrete" => Some(BlockKind::GrayConcrete), - "Light Gray Concrete" => Some(BlockKind::LightGrayConcrete), - "Cyan Concrete" => Some(BlockKind::CyanConcrete), - "Purple Concrete" => Some(BlockKind::PurpleConcrete), - "Blue Concrete" => Some(BlockKind::BlueConcrete), - "Brown Concrete" => Some(BlockKind::BrownConcrete), - "Green Concrete" => Some(BlockKind::GreenConcrete), - "Red Concrete" => Some(BlockKind::RedConcrete), - "Black Concrete" => Some(BlockKind::BlackConcrete), - "White Concrete Powder" => Some(BlockKind::WhiteConcretePowder), - "Orange Concrete Powder" => Some(BlockKind::OrangeConcretePowder), - "Magenta Concrete Powder" => Some(BlockKind::MagentaConcretePowder), - "Light Blue Concrete Powder" => Some(BlockKind::LightBlueConcretePowder), - "Yellow Concrete Powder" => Some(BlockKind::YellowConcretePowder), - "Lime Concrete Powder" => Some(BlockKind::LimeConcretePowder), - "Pink Concrete Powder" => Some(BlockKind::PinkConcretePowder), - "Gray Concrete Powder" => Some(BlockKind::GrayConcretePowder), - "Light Gray Concrete Powder" => Some(BlockKind::LightGrayConcretePowder), - "Cyan Concrete Powder" => Some(BlockKind::CyanConcretePowder), - "Purple Concrete Powder" => Some(BlockKind::PurpleConcretePowder), - "Blue Concrete Powder" => Some(BlockKind::BlueConcretePowder), - "Brown Concrete Powder" => Some(BlockKind::BrownConcretePowder), - "Green Concrete Powder" => Some(BlockKind::GreenConcretePowder), - "Red Concrete Powder" => Some(BlockKind::RedConcretePowder), - "Black Concrete Powder" => Some(BlockKind::BlackConcretePowder), - "Kelp" => Some(BlockKind::Kelp), - "Kelp Plant" => Some(BlockKind::KelpPlant), - "Dried Kelp Block" => Some(BlockKind::DriedKelpBlock), - "Turtle Egg" => Some(BlockKind::TurtleEgg), - "Dead Tube Coral Block" => Some(BlockKind::DeadTubeCoralBlock), - "Dead Brain Coral Block" => Some(BlockKind::DeadBrainCoralBlock), - "Dead Bubble Coral Block" => Some(BlockKind::DeadBubbleCoralBlock), - "Dead Fire Coral Block" => Some(BlockKind::DeadFireCoralBlock), - "Dead Horn Coral Block" => Some(BlockKind::DeadHornCoralBlock), - "Tube Coral Block" => Some(BlockKind::TubeCoralBlock), - "Brain Coral Block" => Some(BlockKind::BrainCoralBlock), - "Bubble Coral Block" => Some(BlockKind::BubbleCoralBlock), - "Fire Coral Block" => Some(BlockKind::FireCoralBlock), - "Horn Coral Block" => Some(BlockKind::HornCoralBlock), - "Dead Tube Coral" => Some(BlockKind::DeadTubeCoral), - "Dead Brain Coral" => Some(BlockKind::DeadBrainCoral), - "Dead Bubble Coral" => Some(BlockKind::DeadBubbleCoral), - "Dead Fire Coral" => Some(BlockKind::DeadFireCoral), - "Dead Horn Coral" => Some(BlockKind::DeadHornCoral), - "Tube Coral" => Some(BlockKind::TubeCoral), - "Brain Coral" => Some(BlockKind::BrainCoral), - "Bubble Coral" => Some(BlockKind::BubbleCoral), - "Fire Coral" => Some(BlockKind::FireCoral), - "Horn Coral" => Some(BlockKind::HornCoral), - "Dead Tube Coral Fan" => Some(BlockKind::DeadTubeCoralFan), - "Dead Brain Coral Fan" => Some(BlockKind::DeadBrainCoralFan), - "Dead Bubble Coral Fan" => Some(BlockKind::DeadBubbleCoralFan), - "Dead Fire Coral Fan" => Some(BlockKind::DeadFireCoralFan), - "Dead Horn Coral Fan" => Some(BlockKind::DeadHornCoralFan), - "Tube Coral Fan" => Some(BlockKind::TubeCoralFan), - "Brain Coral Fan" => Some(BlockKind::BrainCoralFan), - "Bubble Coral Fan" => Some(BlockKind::BubbleCoralFan), - "Fire Coral Fan" => Some(BlockKind::FireCoralFan), - "Horn Coral Fan" => Some(BlockKind::HornCoralFan), - "Dead Tube Coral Wall Fan" => Some(BlockKind::DeadTubeCoralWallFan), - "Dead Brain Coral Wall Fan" => Some(BlockKind::DeadBrainCoralWallFan), - "Dead Bubble Coral Wall Fan" => Some(BlockKind::DeadBubbleCoralWallFan), - "Dead Fire Coral Wall Fan" => Some(BlockKind::DeadFireCoralWallFan), - "Dead Horn Coral Wall Fan" => Some(BlockKind::DeadHornCoralWallFan), - "Tube Coral Wall Fan" => Some(BlockKind::TubeCoralWallFan), - "Brain Coral Wall Fan" => Some(BlockKind::BrainCoralWallFan), - "Bubble Coral Wall Fan" => Some(BlockKind::BubbleCoralWallFan), - "Fire Coral Wall Fan" => Some(BlockKind::FireCoralWallFan), - "Horn Coral Wall Fan" => Some(BlockKind::HornCoralWallFan), - "Sea Pickle" => Some(BlockKind::SeaPickle), - "Blue Ice" => Some(BlockKind::BlueIce), - "Conduit" => Some(BlockKind::Conduit), - "Bamboo Shoot" => Some(BlockKind::BambooSapling), - "Bamboo" => Some(BlockKind::Bamboo), - "Potted Bamboo" => Some(BlockKind::PottedBamboo), - "Void Air" => Some(BlockKind::VoidAir), - "Cave Air" => Some(BlockKind::CaveAir), - "Bubble Column" => Some(BlockKind::BubbleColumn), - "Polished Granite Stairs" => Some(BlockKind::PolishedGraniteStairs), - "Smooth Red Sandstone Stairs" => Some(BlockKind::SmoothRedSandstoneStairs), - "Mossy Stone Brick Stairs" => Some(BlockKind::MossyStoneBrickStairs), - "Polished Diorite Stairs" => Some(BlockKind::PolishedDioriteStairs), - "Mossy Cobblestone Stairs" => Some(BlockKind::MossyCobblestoneStairs), - "End Stone Brick Stairs" => Some(BlockKind::EndStoneBrickStairs), - "Stone Stairs" => Some(BlockKind::StoneStairs), - "Smooth Sandstone Stairs" => Some(BlockKind::SmoothSandstoneStairs), - "Smooth Quartz Stairs" => Some(BlockKind::SmoothQuartzStairs), - "Granite Stairs" => Some(BlockKind::GraniteStairs), - "Andesite Stairs" => Some(BlockKind::AndesiteStairs), - "Red Nether Brick Stairs" => Some(BlockKind::RedNetherBrickStairs), - "Polished Andesite Stairs" => Some(BlockKind::PolishedAndesiteStairs), - "Diorite Stairs" => Some(BlockKind::DioriteStairs), - "Polished Granite Slab" => Some(BlockKind::PolishedGraniteSlab), - "Smooth Red Sandstone Slab" => Some(BlockKind::SmoothRedSandstoneSlab), - "Mossy Stone Brick Slab" => Some(BlockKind::MossyStoneBrickSlab), - "Polished Diorite Slab" => Some(BlockKind::PolishedDioriteSlab), - "Mossy Cobblestone Slab" => Some(BlockKind::MossyCobblestoneSlab), - "End Stone Brick Slab" => Some(BlockKind::EndStoneBrickSlab), - "Smooth Sandstone Slab" => Some(BlockKind::SmoothSandstoneSlab), - "Smooth Quartz Slab" => Some(BlockKind::SmoothQuartzSlab), - "Granite Slab" => Some(BlockKind::GraniteSlab), - "Andesite Slab" => Some(BlockKind::AndesiteSlab), - "Red Nether Brick Slab" => Some(BlockKind::RedNetherBrickSlab), - "Polished Andesite Slab" => Some(BlockKind::PolishedAndesiteSlab), - "Diorite Slab" => Some(BlockKind::DioriteSlab), - "Brick Wall" => Some(BlockKind::BrickWall), - "Prismarine Wall" => Some(BlockKind::PrismarineWall), - "Red Sandstone Wall" => Some(BlockKind::RedSandstoneWall), - "Mossy Stone Brick Wall" => Some(BlockKind::MossyStoneBrickWall), - "Granite Wall" => Some(BlockKind::GraniteWall), - "Stone Brick Wall" => Some(BlockKind::StoneBrickWall), - "Nether Brick Wall" => Some(BlockKind::NetherBrickWall), - "Andesite Wall" => Some(BlockKind::AndesiteWall), - "Red Nether Brick Wall" => Some(BlockKind::RedNetherBrickWall), - "Sandstone Wall" => Some(BlockKind::SandstoneWall), - "End Stone Brick Wall" => Some(BlockKind::EndStoneBrickWall), - "Diorite Wall" => Some(BlockKind::DioriteWall), - "Scaffolding" => Some(BlockKind::Scaffolding), - "Loom" => Some(BlockKind::Loom), - "Barrel" => Some(BlockKind::Barrel), - "Smoker" => Some(BlockKind::Smoker), - "Blast Furnace" => Some(BlockKind::BlastFurnace), - "Cartography Table" => Some(BlockKind::CartographyTable), - "Fletching Table" => Some(BlockKind::FletchingTable), - "Grindstone" => Some(BlockKind::Grindstone), - "Lectern" => Some(BlockKind::Lectern), - "Smithing Table" => Some(BlockKind::SmithingTable), - "Stonecutter" => Some(BlockKind::Stonecutter), - "Bell" => Some(BlockKind::Bell), - "Lantern" => Some(BlockKind::Lantern), - "Soul Lantern" => Some(BlockKind::SoulLantern), - "Campfire" => Some(BlockKind::Campfire), - "Soul Campfire" => Some(BlockKind::SoulCampfire), - "Sweet Berry Bush" => Some(BlockKind::SweetBerryBush), - "Warped Stem" => Some(BlockKind::WarpedStem), - "Stripped Warped Stem" => Some(BlockKind::StrippedWarpedStem), - "Warped Hyphae" => Some(BlockKind::WarpedHyphae), - "Stripped Warped Hyphae" => Some(BlockKind::StrippedWarpedHyphae), - "Warped Nylium" => Some(BlockKind::WarpedNylium), - "Warped Fungus" => Some(BlockKind::WarpedFungus), - "Warped Wart Block" => Some(BlockKind::WarpedWartBlock), - "Warped Roots" => Some(BlockKind::WarpedRoots), - "Nether Sprouts" => Some(BlockKind::NetherSprouts), - "Crimson Stem" => Some(BlockKind::CrimsonStem), - "Stripped Crimson Stem" => Some(BlockKind::StrippedCrimsonStem), - "Crimson Hyphae" => Some(BlockKind::CrimsonHyphae), - "Stripped Crimson Hyphae" => Some(BlockKind::StrippedCrimsonHyphae), - "Crimson Nylium" => Some(BlockKind::CrimsonNylium), - "Crimson Fungus" => Some(BlockKind::CrimsonFungus), - "Shroomlight" => Some(BlockKind::Shroomlight), - "Weeping Vines" => Some(BlockKind::WeepingVines), - "Weeping Vines Plant" => Some(BlockKind::WeepingVinesPlant), - "Twisting Vines" => Some(BlockKind::TwistingVines), - "Twisting Vines Plant" => Some(BlockKind::TwistingVinesPlant), - "Crimson Roots" => Some(BlockKind::CrimsonRoots), - "Crimson Planks" => Some(BlockKind::CrimsonPlanks), - "Warped Planks" => Some(BlockKind::WarpedPlanks), - "Crimson Slab" => Some(BlockKind::CrimsonSlab), - "Warped Slab" => Some(BlockKind::WarpedSlab), - "Crimson Pressure Plate" => Some(BlockKind::CrimsonPressurePlate), - "Warped Pressure Plate" => Some(BlockKind::WarpedPressurePlate), - "Crimson Fence" => Some(BlockKind::CrimsonFence), - "Warped Fence" => Some(BlockKind::WarpedFence), - "Crimson Trapdoor" => Some(BlockKind::CrimsonTrapdoor), - "Warped Trapdoor" => Some(BlockKind::WarpedTrapdoor), - "Crimson Fence Gate" => Some(BlockKind::CrimsonFenceGate), - "Warped Fence Gate" => Some(BlockKind::WarpedFenceGate), - "Crimson Stairs" => Some(BlockKind::CrimsonStairs), - "Warped Stairs" => Some(BlockKind::WarpedStairs), - "Crimson Button" => Some(BlockKind::CrimsonButton), - "Warped Button" => Some(BlockKind::WarpedButton), - "Crimson Door" => Some(BlockKind::CrimsonDoor), - "Warped Door" => Some(BlockKind::WarpedDoor), - "Crimson Sign" => Some(BlockKind::CrimsonSign), - "Warped Sign" => Some(BlockKind::WarpedSign), - "Crimson Wall Sign" => Some(BlockKind::CrimsonWallSign), - "Warped Wall Sign" => Some(BlockKind::WarpedWallSign), - "Structure Block" => Some(BlockKind::StructureBlock), - "Jigsaw Block" => Some(BlockKind::Jigsaw), - "Composter" => Some(BlockKind::Composter), - "Target" => Some(BlockKind::Target), - "Bee Nest" => Some(BlockKind::BeeNest), - "Beehive" => Some(BlockKind::Beehive), - "Honey Block" => Some(BlockKind::HoneyBlock), - "Honeycomb Block" => Some(BlockKind::HoneycombBlock), - "Block of Netherite" => Some(BlockKind::NetheriteBlock), - "Ancient Debris" => Some(BlockKind::AncientDebris), - "Crying Obsidian" => Some(BlockKind::CryingObsidian), - "Respawn Anchor" => Some(BlockKind::RespawnAnchor), - "Potted Crimson Fungus" => Some(BlockKind::PottedCrimsonFungus), - "Potted Warped Fungus" => Some(BlockKind::PottedWarpedFungus), - "Potted Crimson Roots" => Some(BlockKind::PottedCrimsonRoots), - "Potted Warped Roots" => Some(BlockKind::PottedWarpedRoots), - "Lodestone" => Some(BlockKind::Lodestone), - "Blackstone" => Some(BlockKind::Blackstone), - "Blackstone Stairs" => Some(BlockKind::BlackstoneStairs), - "Blackstone Wall" => Some(BlockKind::BlackstoneWall), - "Blackstone Slab" => Some(BlockKind::BlackstoneSlab), - "Polished Blackstone" => Some(BlockKind::PolishedBlackstone), - "Polished Blackstone Bricks" => Some(BlockKind::PolishedBlackstoneBricks), - "Cracked Polished Blackstone Bricks" => { - Some(BlockKind::CrackedPolishedBlackstoneBricks) - } - "Chiseled Polished Blackstone" => Some(BlockKind::ChiseledPolishedBlackstone), - "Polished Blackstone Brick Slab" => Some(BlockKind::PolishedBlackstoneBrickSlab), - "Polished Blackstone Brick Stairs" => Some(BlockKind::PolishedBlackstoneBrickStairs), - "Polished Blackstone Brick Wall" => Some(BlockKind::PolishedBlackstoneBrickWall), - "Gilded Blackstone" => Some(BlockKind::GildedBlackstone), - "Polished Blackstone Stairs" => Some(BlockKind::PolishedBlackstoneStairs), - "Polished Blackstone Slab" => Some(BlockKind::PolishedBlackstoneSlab), - "Polished Blackstone Pressure Plate" => { - Some(BlockKind::PolishedBlackstonePressurePlate) - } - "Polished Blackstone Button" => Some(BlockKind::PolishedBlackstoneButton), - "Polished Blackstone Wall" => Some(BlockKind::PolishedBlackstoneWall), - "Chiseled Nether Bricks" => Some(BlockKind::ChiseledNetherBricks), - "Cracked Nether Bricks" => Some(BlockKind::CrackedNetherBricks), - "Quartz Bricks" => Some(BlockKind::QuartzBricks), - _ => None, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl BlockKind { - /// Returns the `hardness` property of this `BlockKind`. - pub fn hardness(&self) -> f32 { - match self { - BlockKind::Air => 0 as f32, - BlockKind::Stone => 1.5 as f32, - BlockKind::Granite => 1.5 as f32, - BlockKind::PolishedGranite => 1.5 as f32, - BlockKind::Diorite => 1.5 as f32, - BlockKind::PolishedDiorite => 1.5 as f32, - BlockKind::Andesite => 1.5 as f32, - BlockKind::PolishedAndesite => 1.5 as f32, - BlockKind::GrassBlock => 0.6 as f32, - BlockKind::Dirt => 0.5 as f32, - BlockKind::CoarseDirt => 0.5 as f32, - BlockKind::Podzol => 0.5 as f32, - BlockKind::Cobblestone => 2 as f32, - BlockKind::OakPlanks => 2 as f32, - BlockKind::SprucePlanks => 2 as f32, - BlockKind::BirchPlanks => 2 as f32, - BlockKind::JunglePlanks => 2 as f32, - BlockKind::AcaciaPlanks => 2 as f32, - BlockKind::DarkOakPlanks => 2 as f32, - BlockKind::OakSapling => 0 as f32, - BlockKind::SpruceSapling => 0 as f32, - BlockKind::BirchSapling => 0 as f32, - BlockKind::JungleSapling => 0 as f32, - BlockKind::AcaciaSapling => 0 as f32, - BlockKind::DarkOakSapling => 0 as f32, - BlockKind::Bedrock => 0 as f32, - BlockKind::Water => 100 as f32, - BlockKind::Lava => 100 as f32, - BlockKind::Sand => 0.5 as f32, - BlockKind::RedSand => 0.5 as f32, - BlockKind::Gravel => 0.6 as f32, - BlockKind::GoldOre => 3 as f32, - BlockKind::IronOre => 3 as f32, - BlockKind::CoalOre => 3 as f32, - BlockKind::NetherGoldOre => 3 as f32, - BlockKind::OakLog => 2 as f32, - BlockKind::SpruceLog => 2 as f32, - BlockKind::BirchLog => 2 as f32, - BlockKind::JungleLog => 2 as f32, - BlockKind::AcaciaLog => 2 as f32, - BlockKind::DarkOakLog => 2 as f32, - BlockKind::StrippedSpruceLog => 2 as f32, - BlockKind::StrippedBirchLog => 2 as f32, - BlockKind::StrippedJungleLog => 2 as f32, - BlockKind::StrippedAcaciaLog => 2 as f32, - BlockKind::StrippedDarkOakLog => 2 as f32, - BlockKind::StrippedOakLog => 2 as f32, - BlockKind::OakWood => 2 as f32, - BlockKind::SpruceWood => 2 as f32, - BlockKind::BirchWood => 2 as f32, - BlockKind::JungleWood => 2 as f32, - BlockKind::AcaciaWood => 2 as f32, - BlockKind::DarkOakWood => 2 as f32, - BlockKind::StrippedOakWood => 2 as f32, - BlockKind::StrippedSpruceWood => 2 as f32, - BlockKind::StrippedBirchWood => 2 as f32, - BlockKind::StrippedJungleWood => 2 as f32, - BlockKind::StrippedAcaciaWood => 2 as f32, - BlockKind::StrippedDarkOakWood => 2 as f32, - BlockKind::OakLeaves => 0.2 as f32, - BlockKind::SpruceLeaves => 0.2 as f32, - BlockKind::BirchLeaves => 0.2 as f32, - BlockKind::JungleLeaves => 0.2 as f32, - BlockKind::AcaciaLeaves => 0.2 as f32, - BlockKind::DarkOakLeaves => 0.2 as f32, - BlockKind::Sponge => 0.6 as f32, - BlockKind::WetSponge => 0.6 as f32, - BlockKind::Glass => 0.3 as f32, - BlockKind::LapisOre => 3 as f32, - BlockKind::LapisBlock => 3 as f32, - BlockKind::Dispenser => 3.5 as f32, - BlockKind::Sandstone => 0.8 as f32, - BlockKind::ChiseledSandstone => 0.8 as f32, - BlockKind::CutSandstone => 0.8 as f32, - BlockKind::NoteBlock => 0.8 as f32, - BlockKind::WhiteBed => 0.2 as f32, - BlockKind::OrangeBed => 0.2 as f32, - BlockKind::MagentaBed => 0.2 as f32, - BlockKind::LightBlueBed => 0.2 as f32, - BlockKind::YellowBed => 0.2 as f32, - BlockKind::LimeBed => 0.2 as f32, - BlockKind::PinkBed => 0.2 as f32, - BlockKind::GrayBed => 0.2 as f32, - BlockKind::LightGrayBed => 0.2 as f32, - BlockKind::CyanBed => 0.2 as f32, - BlockKind::PurpleBed => 0.2 as f32, - BlockKind::BlueBed => 0.2 as f32, - BlockKind::BrownBed => 0.2 as f32, - BlockKind::GreenBed => 0.2 as f32, - BlockKind::RedBed => 0.2 as f32, - BlockKind::BlackBed => 0.2 as f32, - BlockKind::PoweredRail => 0.7 as f32, - BlockKind::DetectorRail => 0.7 as f32, - BlockKind::StickyPiston => 1.5 as f32, - BlockKind::Cobweb => 4 as f32, - BlockKind::Grass => 0 as f32, - BlockKind::Fern => 0 as f32, - BlockKind::DeadBush => 0 as f32, - BlockKind::Seagrass => 0 as f32, - BlockKind::TallSeagrass => 0 as f32, - BlockKind::Piston => 1.5 as f32, - BlockKind::PistonHead => 1.5 as f32, - BlockKind::WhiteWool => 0.8 as f32, - BlockKind::OrangeWool => 0.8 as f32, - BlockKind::MagentaWool => 0.8 as f32, - BlockKind::LightBlueWool => 0.8 as f32, - BlockKind::YellowWool => 0.8 as f32, - BlockKind::LimeWool => 0.8 as f32, - BlockKind::PinkWool => 0.8 as f32, - BlockKind::GrayWool => 0.8 as f32, - BlockKind::LightGrayWool => 0.8 as f32, - BlockKind::CyanWool => 0.8 as f32, - BlockKind::PurpleWool => 0.8 as f32, - BlockKind::BlueWool => 0.8 as f32, - BlockKind::BrownWool => 0.8 as f32, - BlockKind::GreenWool => 0.8 as f32, - BlockKind::RedWool => 0.8 as f32, - BlockKind::BlackWool => 0.8 as f32, - BlockKind::MovingPiston => 0 as f32, - BlockKind::Dandelion => 0 as f32, - BlockKind::Poppy => 0 as f32, - BlockKind::BlueOrchid => 0 as f32, - BlockKind::Allium => 0 as f32, - BlockKind::AzureBluet => 0 as f32, - BlockKind::RedTulip => 0 as f32, - BlockKind::OrangeTulip => 0 as f32, - BlockKind::WhiteTulip => 0 as f32, - BlockKind::PinkTulip => 0 as f32, - BlockKind::OxeyeDaisy => 0 as f32, - BlockKind::Cornflower => 0 as f32, - BlockKind::WitherRose => 0 as f32, - BlockKind::LilyOfTheValley => 0 as f32, - BlockKind::BrownMushroom => 0 as f32, - BlockKind::RedMushroom => 0 as f32, - BlockKind::GoldBlock => 3 as f32, - BlockKind::IronBlock => 5 as f32, - BlockKind::Bricks => 2 as f32, - BlockKind::Tnt => 0 as f32, - BlockKind::Bookshelf => 1.5 as f32, - BlockKind::MossyCobblestone => 2 as f32, - BlockKind::Obsidian => 50 as f32, - BlockKind::Torch => 0 as f32, - BlockKind::WallTorch => 0 as f32, - BlockKind::Fire => 0 as f32, - BlockKind::SoulFire => 0 as f32, - BlockKind::Spawner => 5 as f32, - BlockKind::OakStairs => 0 as f32, - BlockKind::Chest => 2.5 as f32, - BlockKind::RedstoneWire => 0 as f32, - BlockKind::DiamondOre => 3 as f32, - BlockKind::DiamondBlock => 5 as f32, - BlockKind::CraftingTable => 2.5 as f32, - BlockKind::Wheat => 0 as f32, - BlockKind::Farmland => 0.6 as f32, - BlockKind::Furnace => 3.5 as f32, - BlockKind::OakSign => 1 as f32, - BlockKind::SpruceSign => 1 as f32, - BlockKind::BirchSign => 1 as f32, - BlockKind::AcaciaSign => 1 as f32, - BlockKind::JungleSign => 1 as f32, - BlockKind::DarkOakSign => 1 as f32, - BlockKind::OakDoor => 3 as f32, - BlockKind::Ladder => 0.4 as f32, - BlockKind::Rail => 0.7 as f32, - BlockKind::CobblestoneStairs => 0 as f32, - BlockKind::OakWallSign => 1 as f32, - BlockKind::SpruceWallSign => 1 as f32, - BlockKind::BirchWallSign => 1 as f32, - BlockKind::AcaciaWallSign => 1 as f32, - BlockKind::JungleWallSign => 1 as f32, - BlockKind::DarkOakWallSign => 1 as f32, - BlockKind::Lever => 0.5 as f32, - BlockKind::StonePressurePlate => 0.5 as f32, - BlockKind::IronDoor => 5 as f32, - BlockKind::OakPressurePlate => 0.5 as f32, - BlockKind::SprucePressurePlate => 0.5 as f32, - BlockKind::BirchPressurePlate => 0.5 as f32, - BlockKind::JunglePressurePlate => 0.5 as f32, - BlockKind::AcaciaPressurePlate => 0.5 as f32, - BlockKind::DarkOakPressurePlate => 0.5 as f32, - BlockKind::RedstoneOre => 3 as f32, - BlockKind::RedstoneTorch => 0 as f32, - BlockKind::RedstoneWallTorch => 0 as f32, - BlockKind::StoneButton => 0.5 as f32, - BlockKind::Snow => 0.1 as f32, - BlockKind::Ice => 0.5 as f32, - BlockKind::SnowBlock => 0.2 as f32, - BlockKind::Cactus => 0.4 as f32, - BlockKind::Clay => 0.6 as f32, - BlockKind::SugarCane => 0 as f32, - BlockKind::Jukebox => 2 as f32, - BlockKind::OakFence => 2 as f32, - BlockKind::Pumpkin => 1 as f32, - BlockKind::Netherrack => 0.4 as f32, - BlockKind::SoulSand => 0.5 as f32, - BlockKind::SoulSoil => 0.5 as f32, - BlockKind::Basalt => 1.25 as f32, - BlockKind::PolishedBasalt => 1.25 as f32, - BlockKind::SoulTorch => 0 as f32, - BlockKind::SoulWallTorch => 0 as f32, - BlockKind::Glowstone => 0.3 as f32, - BlockKind::NetherPortal => 0 as f32, - BlockKind::CarvedPumpkin => 1 as f32, - BlockKind::JackOLantern => 1 as f32, - BlockKind::Cake => 0.5 as f32, - BlockKind::Repeater => 0 as f32, - BlockKind::WhiteStainedGlass => 0.3 as f32, - BlockKind::OrangeStainedGlass => 0.3 as f32, - BlockKind::MagentaStainedGlass => 0.3 as f32, - BlockKind::LightBlueStainedGlass => 0.3 as f32, - BlockKind::YellowStainedGlass => 0.3 as f32, - BlockKind::LimeStainedGlass => 0.3 as f32, - BlockKind::PinkStainedGlass => 0.3 as f32, - BlockKind::GrayStainedGlass => 0.3 as f32, - BlockKind::LightGrayStainedGlass => 0.3 as f32, - BlockKind::CyanStainedGlass => 0.3 as f32, - BlockKind::PurpleStainedGlass => 0.3 as f32, - BlockKind::BlueStainedGlass => 0.3 as f32, - BlockKind::BrownStainedGlass => 0.3 as f32, - BlockKind::GreenStainedGlass => 0.3 as f32, - BlockKind::RedStainedGlass => 0.3 as f32, - BlockKind::BlackStainedGlass => 0.3 as f32, - BlockKind::OakTrapdoor => 3 as f32, - BlockKind::SpruceTrapdoor => 3 as f32, - BlockKind::BirchTrapdoor => 3 as f32, - BlockKind::JungleTrapdoor => 3 as f32, - BlockKind::AcaciaTrapdoor => 3 as f32, - BlockKind::DarkOakTrapdoor => 3 as f32, - BlockKind::StoneBricks => 1.5 as f32, - BlockKind::MossyStoneBricks => 1.5 as f32, - BlockKind::CrackedStoneBricks => 1.5 as f32, - BlockKind::ChiseledStoneBricks => 1.5 as f32, - BlockKind::InfestedStone => 0 as f32, - BlockKind::InfestedCobblestone => 0 as f32, - BlockKind::InfestedStoneBricks => 0 as f32, - BlockKind::InfestedMossyStoneBricks => 0 as f32, - BlockKind::InfestedCrackedStoneBricks => 0 as f32, - BlockKind::InfestedChiseledStoneBricks => 0 as f32, - BlockKind::BrownMushroomBlock => 0.2 as f32, - BlockKind::RedMushroomBlock => 0.2 as f32, - BlockKind::MushroomStem => 0.2 as f32, - BlockKind::IronBars => 5 as f32, - BlockKind::Chain => 5 as f32, - BlockKind::GlassPane => 0.3 as f32, - BlockKind::Melon => 1 as f32, - BlockKind::AttachedPumpkinStem => 0 as f32, - BlockKind::AttachedMelonStem => 0 as f32, - BlockKind::PumpkinStem => 0 as f32, - BlockKind::MelonStem => 0 as f32, - BlockKind::Vine => 0.2 as f32, - BlockKind::OakFenceGate => 2 as f32, - BlockKind::BrickStairs => 0 as f32, - BlockKind::StoneBrickStairs => 0 as f32, - BlockKind::Mycelium => 0.6 as f32, - BlockKind::LilyPad => 0 as f32, - BlockKind::NetherBricks => 2 as f32, - BlockKind::NetherBrickFence => 2 as f32, - BlockKind::NetherBrickStairs => 0 as f32, - BlockKind::NetherWart => 0 as f32, - BlockKind::EnchantingTable => 5 as f32, - BlockKind::BrewingStand => 0.5 as f32, - BlockKind::Cauldron => 2 as f32, - BlockKind::EndPortal => 0 as f32, - BlockKind::EndPortalFrame => 0 as f32, - BlockKind::EndStone => 3 as f32, - BlockKind::DragonEgg => 3 as f32, - BlockKind::RedstoneLamp => 0.3 as f32, - BlockKind::Cocoa => 0.2 as f32, - BlockKind::SandstoneStairs => 0 as f32, - BlockKind::EmeraldOre => 3 as f32, - BlockKind::EnderChest => 22.5 as f32, - BlockKind::TripwireHook => 0 as f32, - BlockKind::Tripwire => 0 as f32, - BlockKind::EmeraldBlock => 5 as f32, - BlockKind::SpruceStairs => 0 as f32, - BlockKind::BirchStairs => 0 as f32, - BlockKind::JungleStairs => 0 as f32, - BlockKind::CommandBlock => 0 as f32, - BlockKind::Beacon => 3 as f32, - BlockKind::CobblestoneWall => 0 as f32, - BlockKind::MossyCobblestoneWall => 0 as f32, - BlockKind::FlowerPot => 0 as f32, - BlockKind::PottedOakSapling => 0 as f32, - BlockKind::PottedSpruceSapling => 0 as f32, - BlockKind::PottedBirchSapling => 0 as f32, - BlockKind::PottedJungleSapling => 0 as f32, - BlockKind::PottedAcaciaSapling => 0 as f32, - BlockKind::PottedDarkOakSapling => 0 as f32, - BlockKind::PottedFern => 0 as f32, - BlockKind::PottedDandelion => 0 as f32, - BlockKind::PottedPoppy => 0 as f32, - BlockKind::PottedBlueOrchid => 0 as f32, - BlockKind::PottedAllium => 0 as f32, - BlockKind::PottedAzureBluet => 0 as f32, - BlockKind::PottedRedTulip => 0 as f32, - BlockKind::PottedOrangeTulip => 0 as f32, - BlockKind::PottedWhiteTulip => 0 as f32, - BlockKind::PottedPinkTulip => 0 as f32, - BlockKind::PottedOxeyeDaisy => 0 as f32, - BlockKind::PottedCornflower => 0 as f32, - BlockKind::PottedLilyOfTheValley => 0 as f32, - BlockKind::PottedWitherRose => 0 as f32, - BlockKind::PottedRedMushroom => 0 as f32, - BlockKind::PottedBrownMushroom => 0 as f32, - BlockKind::PottedDeadBush => 0 as f32, - BlockKind::PottedCactus => 0 as f32, - BlockKind::Carrots => 0 as f32, - BlockKind::Potatoes => 0 as f32, - BlockKind::OakButton => 0.5 as f32, - BlockKind::SpruceButton => 0.5 as f32, - BlockKind::BirchButton => 0.5 as f32, - BlockKind::JungleButton => 0.5 as f32, - BlockKind::AcaciaButton => 0.5 as f32, - BlockKind::DarkOakButton => 0.5 as f32, - BlockKind::SkeletonSkull => 1 as f32, - BlockKind::SkeletonWallSkull => 1 as f32, - BlockKind::WitherSkeletonSkull => 1 as f32, - BlockKind::WitherSkeletonWallSkull => 1 as f32, - BlockKind::ZombieHead => 1 as f32, - BlockKind::ZombieWallHead => 1 as f32, - BlockKind::PlayerHead => 1 as f32, - BlockKind::PlayerWallHead => 1 as f32, - BlockKind::CreeperHead => 1 as f32, - BlockKind::CreeperWallHead => 1 as f32, - BlockKind::DragonHead => 1 as f32, - BlockKind::DragonWallHead => 1 as f32, - BlockKind::Anvil => 5 as f32, - BlockKind::ChippedAnvil => 5 as f32, - BlockKind::DamagedAnvil => 5 as f32, - BlockKind::TrappedChest => 2.5 as f32, - BlockKind::LightWeightedPressurePlate => 0.5 as f32, - BlockKind::HeavyWeightedPressurePlate => 0.5 as f32, - BlockKind::Comparator => 0 as f32, - BlockKind::DaylightDetector => 0.2 as f32, - BlockKind::RedstoneBlock => 5 as f32, - BlockKind::NetherQuartzOre => 3 as f32, - BlockKind::Hopper => 3 as f32, - BlockKind::QuartzBlock => 0.8 as f32, - BlockKind::ChiseledQuartzBlock => 0.8 as f32, - BlockKind::QuartzPillar => 0.8 as f32, - BlockKind::QuartzStairs => 0 as f32, - BlockKind::ActivatorRail => 0.7 as f32, - BlockKind::Dropper => 3.5 as f32, - BlockKind::WhiteTerracotta => 1.25 as f32, - BlockKind::OrangeTerracotta => 1.25 as f32, - BlockKind::MagentaTerracotta => 1.25 as f32, - BlockKind::LightBlueTerracotta => 1.25 as f32, - BlockKind::YellowTerracotta => 1.25 as f32, - BlockKind::LimeTerracotta => 1.25 as f32, - BlockKind::PinkTerracotta => 1.25 as f32, - BlockKind::GrayTerracotta => 1.25 as f32, - BlockKind::LightGrayTerracotta => 1.25 as f32, - BlockKind::CyanTerracotta => 1.25 as f32, - BlockKind::PurpleTerracotta => 1.25 as f32, - BlockKind::BlueTerracotta => 1.25 as f32, - BlockKind::BrownTerracotta => 1.25 as f32, - BlockKind::GreenTerracotta => 1.25 as f32, - BlockKind::RedTerracotta => 1.25 as f32, - BlockKind::BlackTerracotta => 1.25 as f32, - BlockKind::WhiteStainedGlassPane => 0.3 as f32, - BlockKind::OrangeStainedGlassPane => 0.3 as f32, - BlockKind::MagentaStainedGlassPane => 0.3 as f32, - BlockKind::LightBlueStainedGlassPane => 0.3 as f32, - BlockKind::YellowStainedGlassPane => 0.3 as f32, - BlockKind::LimeStainedGlassPane => 0.3 as f32, - BlockKind::PinkStainedGlassPane => 0.3 as f32, - BlockKind::GrayStainedGlassPane => 0.3 as f32, - BlockKind::LightGrayStainedGlassPane => 0.3 as f32, - BlockKind::CyanStainedGlassPane => 0.3 as f32, - BlockKind::PurpleStainedGlassPane => 0.3 as f32, - BlockKind::BlueStainedGlassPane => 0.3 as f32, - BlockKind::BrownStainedGlassPane => 0.3 as f32, - BlockKind::GreenStainedGlassPane => 0.3 as f32, - BlockKind::RedStainedGlassPane => 0.3 as f32, - BlockKind::BlackStainedGlassPane => 0.3 as f32, - BlockKind::AcaciaStairs => 0 as f32, - BlockKind::DarkOakStairs => 0 as f32, - BlockKind::SlimeBlock => 0 as f32, - BlockKind::Barrier => 0 as f32, - BlockKind::IronTrapdoor => 5 as f32, - BlockKind::Prismarine => 1.5 as f32, - BlockKind::PrismarineBricks => 1.5 as f32, - BlockKind::DarkPrismarine => 1.5 as f32, - BlockKind::PrismarineStairs => 0 as f32, - BlockKind::PrismarineBrickStairs => 0 as f32, - BlockKind::DarkPrismarineStairs => 0 as f32, - BlockKind::PrismarineSlab => 1.5 as f32, - BlockKind::PrismarineBrickSlab => 1.5 as f32, - BlockKind::DarkPrismarineSlab => 1.5 as f32, - BlockKind::SeaLantern => 0.3 as f32, - BlockKind::HayBlock => 0.5 as f32, - BlockKind::WhiteCarpet => 0.1 as f32, - BlockKind::OrangeCarpet => 0.1 as f32, - BlockKind::MagentaCarpet => 0.1 as f32, - BlockKind::LightBlueCarpet => 0.1 as f32, - BlockKind::YellowCarpet => 0.1 as f32, - BlockKind::LimeCarpet => 0.1 as f32, - BlockKind::PinkCarpet => 0.1 as f32, - BlockKind::GrayCarpet => 0.1 as f32, - BlockKind::LightGrayCarpet => 0.1 as f32, - BlockKind::CyanCarpet => 0.1 as f32, - BlockKind::PurpleCarpet => 0.1 as f32, - BlockKind::BlueCarpet => 0.1 as f32, - BlockKind::BrownCarpet => 0.1 as f32, - BlockKind::GreenCarpet => 0.1 as f32, - BlockKind::RedCarpet => 0.1 as f32, - BlockKind::BlackCarpet => 0.1 as f32, - BlockKind::Terracotta => 1.25 as f32, - BlockKind::CoalBlock => 5 as f32, - BlockKind::PackedIce => 0.5 as f32, - BlockKind::Sunflower => 0 as f32, - BlockKind::Lilac => 0 as f32, - BlockKind::RoseBush => 0 as f32, - BlockKind::Peony => 0 as f32, - BlockKind::TallGrass => 0 as f32, - BlockKind::LargeFern => 0 as f32, - BlockKind::WhiteBanner => 1 as f32, - BlockKind::OrangeBanner => 1 as f32, - BlockKind::MagentaBanner => 1 as f32, - BlockKind::LightBlueBanner => 1 as f32, - BlockKind::YellowBanner => 1 as f32, - BlockKind::LimeBanner => 1 as f32, - BlockKind::PinkBanner => 1 as f32, - BlockKind::GrayBanner => 1 as f32, - BlockKind::LightGrayBanner => 1 as f32, - BlockKind::CyanBanner => 1 as f32, - BlockKind::PurpleBanner => 1 as f32, - BlockKind::BlueBanner => 1 as f32, - BlockKind::BrownBanner => 1 as f32, - BlockKind::GreenBanner => 1 as f32, - BlockKind::RedBanner => 1 as f32, - BlockKind::BlackBanner => 1 as f32, - BlockKind::WhiteWallBanner => 1 as f32, - BlockKind::OrangeWallBanner => 1 as f32, - BlockKind::MagentaWallBanner => 1 as f32, - BlockKind::LightBlueWallBanner => 1 as f32, - BlockKind::YellowWallBanner => 1 as f32, - BlockKind::LimeWallBanner => 1 as f32, - BlockKind::PinkWallBanner => 1 as f32, - BlockKind::GrayWallBanner => 1 as f32, - BlockKind::LightGrayWallBanner => 1 as f32, - BlockKind::CyanWallBanner => 1 as f32, - BlockKind::PurpleWallBanner => 1 as f32, - BlockKind::BlueWallBanner => 1 as f32, - BlockKind::BrownWallBanner => 1 as f32, - BlockKind::GreenWallBanner => 1 as f32, - BlockKind::RedWallBanner => 1 as f32, - BlockKind::BlackWallBanner => 1 as f32, - BlockKind::RedSandstone => 0.8 as f32, - BlockKind::ChiseledRedSandstone => 0.8 as f32, - BlockKind::CutRedSandstone => 0.8 as f32, - BlockKind::RedSandstoneStairs => 0 as f32, - BlockKind::OakSlab => 2 as f32, - BlockKind::SpruceSlab => 2 as f32, - BlockKind::BirchSlab => 2 as f32, - BlockKind::JungleSlab => 2 as f32, - BlockKind::AcaciaSlab => 2 as f32, - BlockKind::DarkOakSlab => 2 as f32, - BlockKind::StoneSlab => 2 as f32, - BlockKind::SmoothStoneSlab => 2 as f32, - BlockKind::SandstoneSlab => 2 as f32, - BlockKind::CutSandstoneSlab => 2 as f32, - BlockKind::PetrifiedOakSlab => 2 as f32, - BlockKind::CobblestoneSlab => 2 as f32, - BlockKind::BrickSlab => 2 as f32, - BlockKind::StoneBrickSlab => 2 as f32, - BlockKind::NetherBrickSlab => 2 as f32, - BlockKind::QuartzSlab => 2 as f32, - BlockKind::RedSandstoneSlab => 2 as f32, - BlockKind::CutRedSandstoneSlab => 2 as f32, - BlockKind::PurpurSlab => 2 as f32, - BlockKind::SmoothStone => 2 as f32, - BlockKind::SmoothSandstone => 2 as f32, - BlockKind::SmoothQuartz => 2 as f32, - BlockKind::SmoothRedSandstone => 2 as f32, - BlockKind::SpruceFenceGate => 2 as f32, - BlockKind::BirchFenceGate => 2 as f32, - BlockKind::JungleFenceGate => 2 as f32, - BlockKind::AcaciaFenceGate => 2 as f32, - BlockKind::DarkOakFenceGate => 2 as f32, - BlockKind::SpruceFence => 2 as f32, - BlockKind::BirchFence => 2 as f32, - BlockKind::JungleFence => 2 as f32, - BlockKind::AcaciaFence => 2 as f32, - BlockKind::DarkOakFence => 2 as f32, - BlockKind::SpruceDoor => 3 as f32, - BlockKind::BirchDoor => 3 as f32, - BlockKind::JungleDoor => 3 as f32, - BlockKind::AcaciaDoor => 3 as f32, - BlockKind::DarkOakDoor => 3 as f32, - BlockKind::EndRod => 0 as f32, - BlockKind::ChorusPlant => 0.4 as f32, - BlockKind::ChorusFlower => 0.4 as f32, - BlockKind::PurpurBlock => 1.5 as f32, - BlockKind::PurpurPillar => 1.5 as f32, - BlockKind::PurpurStairs => 0 as f32, - BlockKind::EndStoneBricks => 3 as f32, - BlockKind::Beetroots => 0 as f32, - BlockKind::GrassPath => 0.65 as f32, - BlockKind::EndGateway => 0 as f32, - BlockKind::RepeatingCommandBlock => 0 as f32, - BlockKind::ChainCommandBlock => 0 as f32, - BlockKind::FrostedIce => 0.5 as f32, - BlockKind::MagmaBlock => 0.5 as f32, - BlockKind::NetherWartBlock => 1 as f32, - BlockKind::RedNetherBricks => 2 as f32, - BlockKind::BoneBlock => 2 as f32, - BlockKind::StructureVoid => 0 as f32, - BlockKind::Observer => 3 as f32, - BlockKind::ShulkerBox => 2 as f32, - BlockKind::WhiteShulkerBox => 2 as f32, - BlockKind::OrangeShulkerBox => 2 as f32, - BlockKind::MagentaShulkerBox => 2 as f32, - BlockKind::LightBlueShulkerBox => 2 as f32, - BlockKind::YellowShulkerBox => 2 as f32, - BlockKind::LimeShulkerBox => 2 as f32, - BlockKind::PinkShulkerBox => 2 as f32, - BlockKind::GrayShulkerBox => 2 as f32, - BlockKind::LightGrayShulkerBox => 2 as f32, - BlockKind::CyanShulkerBox => 2 as f32, - BlockKind::PurpleShulkerBox => 2 as f32, - BlockKind::BlueShulkerBox => 2 as f32, - BlockKind::BrownShulkerBox => 2 as f32, - BlockKind::GreenShulkerBox => 2 as f32, - BlockKind::RedShulkerBox => 2 as f32, - BlockKind::BlackShulkerBox => 2 as f32, - BlockKind::WhiteGlazedTerracotta => 1.4 as f32, - BlockKind::OrangeGlazedTerracotta => 1.4 as f32, - BlockKind::MagentaGlazedTerracotta => 1.4 as f32, - BlockKind::LightBlueGlazedTerracotta => 1.4 as f32, - BlockKind::YellowGlazedTerracotta => 1.4 as f32, - BlockKind::LimeGlazedTerracotta => 1.4 as f32, - BlockKind::PinkGlazedTerracotta => 1.4 as f32, - BlockKind::GrayGlazedTerracotta => 1.4 as f32, - BlockKind::LightGrayGlazedTerracotta => 1.4 as f32, - BlockKind::CyanGlazedTerracotta => 1.4 as f32, - BlockKind::PurpleGlazedTerracotta => 1.4 as f32, - BlockKind::BlueGlazedTerracotta => 1.4 as f32, - BlockKind::BrownGlazedTerracotta => 1.4 as f32, - BlockKind::GreenGlazedTerracotta => 1.4 as f32, - BlockKind::RedGlazedTerracotta => 1.4 as f32, - BlockKind::BlackGlazedTerracotta => 1.4 as f32, - BlockKind::WhiteConcrete => 1.8 as f32, - BlockKind::OrangeConcrete => 1.8 as f32, - BlockKind::MagentaConcrete => 1.8 as f32, - BlockKind::LightBlueConcrete => 1.8 as f32, - BlockKind::YellowConcrete => 1.8 as f32, - BlockKind::LimeConcrete => 1.8 as f32, - BlockKind::PinkConcrete => 1.8 as f32, - BlockKind::GrayConcrete => 1.8 as f32, - BlockKind::LightGrayConcrete => 1.8 as f32, - BlockKind::CyanConcrete => 1.8 as f32, - BlockKind::PurpleConcrete => 1.8 as f32, - BlockKind::BlueConcrete => 1.8 as f32, - BlockKind::BrownConcrete => 1.8 as f32, - BlockKind::GreenConcrete => 1.8 as f32, - BlockKind::RedConcrete => 1.8 as f32, - BlockKind::BlackConcrete => 1.8 as f32, - BlockKind::WhiteConcretePowder => 0.5 as f32, - BlockKind::OrangeConcretePowder => 0.5 as f32, - BlockKind::MagentaConcretePowder => 0.5 as f32, - BlockKind::LightBlueConcretePowder => 0.5 as f32, - BlockKind::YellowConcretePowder => 0.5 as f32, - BlockKind::LimeConcretePowder => 0.5 as f32, - BlockKind::PinkConcretePowder => 0.5 as f32, - BlockKind::GrayConcretePowder => 0.5 as f32, - BlockKind::LightGrayConcretePowder => 0.5 as f32, - BlockKind::CyanConcretePowder => 0.5 as f32, - BlockKind::PurpleConcretePowder => 0.5 as f32, - BlockKind::BlueConcretePowder => 0.5 as f32, - BlockKind::BrownConcretePowder => 0.5 as f32, - BlockKind::GreenConcretePowder => 0.5 as f32, - BlockKind::RedConcretePowder => 0.5 as f32, - BlockKind::BlackConcretePowder => 0.5 as f32, - BlockKind::Kelp => 0 as f32, - BlockKind::KelpPlant => 0 as f32, - BlockKind::DriedKelpBlock => 0.5 as f32, - BlockKind::TurtleEgg => 0.5 as f32, - BlockKind::DeadTubeCoralBlock => 1.5 as f32, - BlockKind::DeadBrainCoralBlock => 1.5 as f32, - BlockKind::DeadBubbleCoralBlock => 1.5 as f32, - BlockKind::DeadFireCoralBlock => 1.5 as f32, - BlockKind::DeadHornCoralBlock => 1.5 as f32, - BlockKind::TubeCoralBlock => 1.5 as f32, - BlockKind::BrainCoralBlock => 1.5 as f32, - BlockKind::BubbleCoralBlock => 1.5 as f32, - BlockKind::FireCoralBlock => 1.5 as f32, - BlockKind::HornCoralBlock => 1.5 as f32, - BlockKind::DeadTubeCoral => 0 as f32, - BlockKind::DeadBrainCoral => 0 as f32, - BlockKind::DeadBubbleCoral => 0 as f32, - BlockKind::DeadFireCoral => 0 as f32, - BlockKind::DeadHornCoral => 0 as f32, - BlockKind::TubeCoral => 0 as f32, - BlockKind::BrainCoral => 0 as f32, - BlockKind::BubbleCoral => 0 as f32, - BlockKind::FireCoral => 0 as f32, - BlockKind::HornCoral => 0 as f32, - BlockKind::DeadTubeCoralFan => 0 as f32, - BlockKind::DeadBrainCoralFan => 0 as f32, - BlockKind::DeadBubbleCoralFan => 0 as f32, - BlockKind::DeadFireCoralFan => 0 as f32, - BlockKind::DeadHornCoralFan => 0 as f32, - BlockKind::TubeCoralFan => 0 as f32, - BlockKind::BrainCoralFan => 0 as f32, - BlockKind::BubbleCoralFan => 0 as f32, - BlockKind::FireCoralFan => 0 as f32, - BlockKind::HornCoralFan => 0 as f32, - BlockKind::DeadTubeCoralWallFan => 0 as f32, - BlockKind::DeadBrainCoralWallFan => 0 as f32, - BlockKind::DeadBubbleCoralWallFan => 0 as f32, - BlockKind::DeadFireCoralWallFan => 0 as f32, - BlockKind::DeadHornCoralWallFan => 0 as f32, - BlockKind::TubeCoralWallFan => 0 as f32, - BlockKind::BrainCoralWallFan => 0 as f32, - BlockKind::BubbleCoralWallFan => 0 as f32, - BlockKind::FireCoralWallFan => 0 as f32, - BlockKind::HornCoralWallFan => 0 as f32, - BlockKind::SeaPickle => 0 as f32, - BlockKind::BlueIce => 2.8 as f32, - BlockKind::Conduit => 3 as f32, - BlockKind::BambooSapling => 1 as f32, - BlockKind::Bamboo => 1 as f32, - BlockKind::PottedBamboo => 0 as f32, - BlockKind::VoidAir => 0 as f32, - BlockKind::CaveAir => 0 as f32, - BlockKind::BubbleColumn => 0 as f32, - BlockKind::PolishedGraniteStairs => 0 as f32, - BlockKind::SmoothRedSandstoneStairs => 0 as f32, - BlockKind::MossyStoneBrickStairs => 0 as f32, - BlockKind::PolishedDioriteStairs => 0 as f32, - BlockKind::MossyCobblestoneStairs => 0 as f32, - BlockKind::EndStoneBrickStairs => 0 as f32, - BlockKind::StoneStairs => 0 as f32, - BlockKind::SmoothSandstoneStairs => 0 as f32, - BlockKind::SmoothQuartzStairs => 0 as f32, - BlockKind::GraniteStairs => 0 as f32, - BlockKind::AndesiteStairs => 0 as f32, - BlockKind::RedNetherBrickStairs => 0 as f32, - BlockKind::PolishedAndesiteStairs => 0 as f32, - BlockKind::DioriteStairs => 0 as f32, - BlockKind::PolishedGraniteSlab => 0 as f32, - BlockKind::SmoothRedSandstoneSlab => 0 as f32, - BlockKind::MossyStoneBrickSlab => 0 as f32, - BlockKind::PolishedDioriteSlab => 0 as f32, - BlockKind::MossyCobblestoneSlab => 0 as f32, - BlockKind::EndStoneBrickSlab => 0 as f32, - BlockKind::SmoothSandstoneSlab => 0 as f32, - BlockKind::SmoothQuartzSlab => 0 as f32, - BlockKind::GraniteSlab => 0 as f32, - BlockKind::AndesiteSlab => 0 as f32, - BlockKind::RedNetherBrickSlab => 0 as f32, - BlockKind::PolishedAndesiteSlab => 0 as f32, - BlockKind::DioriteSlab => 0 as f32, - BlockKind::BrickWall => 0 as f32, - BlockKind::PrismarineWall => 0 as f32, - BlockKind::RedSandstoneWall => 0 as f32, - BlockKind::MossyStoneBrickWall => 0 as f32, - BlockKind::GraniteWall => 0 as f32, - BlockKind::StoneBrickWall => 0 as f32, - BlockKind::NetherBrickWall => 0 as f32, - BlockKind::AndesiteWall => 0 as f32, - BlockKind::RedNetherBrickWall => 0 as f32, - BlockKind::SandstoneWall => 0 as f32, - BlockKind::EndStoneBrickWall => 0 as f32, - BlockKind::DioriteWall => 0 as f32, - BlockKind::Scaffolding => 0 as f32, - BlockKind::Loom => 2.5 as f32, - BlockKind::Barrel => 2.5 as f32, - BlockKind::Smoker => 3.5 as f32, - BlockKind::BlastFurnace => 3.5 as f32, - BlockKind::CartographyTable => 2.5 as f32, - BlockKind::FletchingTable => 2.5 as f32, - BlockKind::Grindstone => 2 as f32, - BlockKind::Lectern => 2.5 as f32, - BlockKind::SmithingTable => 2.5 as f32, - BlockKind::Stonecutter => 3.5 as f32, - BlockKind::Bell => 5 as f32, - BlockKind::Lantern => 3.5 as f32, - BlockKind::SoulLantern => 3.5 as f32, - BlockKind::Campfire => 2 as f32, - BlockKind::SoulCampfire => 2 as f32, - BlockKind::SweetBerryBush => 0 as f32, - BlockKind::WarpedStem => 2 as f32, - BlockKind::StrippedWarpedStem => 2 as f32, - BlockKind::WarpedHyphae => 2 as f32, - BlockKind::StrippedWarpedHyphae => 2 as f32, - BlockKind::WarpedNylium => 0.4 as f32, - BlockKind::WarpedFungus => 0 as f32, - BlockKind::WarpedWartBlock => 1 as f32, - BlockKind::WarpedRoots => 0 as f32, - BlockKind::NetherSprouts => 0 as f32, - BlockKind::CrimsonStem => 2 as f32, - BlockKind::StrippedCrimsonStem => 2 as f32, - BlockKind::CrimsonHyphae => 2 as f32, - BlockKind::StrippedCrimsonHyphae => 2 as f32, - BlockKind::CrimsonNylium => 0.4 as f32, - BlockKind::CrimsonFungus => 0 as f32, - BlockKind::Shroomlight => 1 as f32, - BlockKind::WeepingVines => 0 as f32, - BlockKind::WeepingVinesPlant => 0 as f32, - BlockKind::TwistingVines => 0 as f32, - BlockKind::TwistingVinesPlant => 0 as f32, - BlockKind::CrimsonRoots => 0 as f32, - BlockKind::CrimsonPlanks => 2 as f32, - BlockKind::WarpedPlanks => 2 as f32, - BlockKind::CrimsonSlab => 2 as f32, - BlockKind::WarpedSlab => 2 as f32, - BlockKind::CrimsonPressurePlate => 0.5 as f32, - BlockKind::WarpedPressurePlate => 0.5 as f32, - BlockKind::CrimsonFence => 2 as f32, - BlockKind::WarpedFence => 2 as f32, - BlockKind::CrimsonTrapdoor => 3 as f32, - BlockKind::WarpedTrapdoor => 3 as f32, - BlockKind::CrimsonFenceGate => 2 as f32, - BlockKind::WarpedFenceGate => 2 as f32, - BlockKind::CrimsonStairs => 0 as f32, - BlockKind::WarpedStairs => 0 as f32, - BlockKind::CrimsonButton => 0.5 as f32, - BlockKind::WarpedButton => 0.5 as f32, - BlockKind::CrimsonDoor => 3 as f32, - BlockKind::WarpedDoor => 3 as f32, - BlockKind::CrimsonSign => 1 as f32, - BlockKind::WarpedSign => 1 as f32, - BlockKind::CrimsonWallSign => 1 as f32, - BlockKind::WarpedWallSign => 1 as f32, - BlockKind::StructureBlock => 0 as f32, - BlockKind::Jigsaw => 0 as f32, - BlockKind::Composter => 0.6 as f32, - BlockKind::Target => 0.5 as f32, - BlockKind::BeeNest => 0.3 as f32, - BlockKind::Beehive => 0.6 as f32, - BlockKind::HoneyBlock => 0 as f32, - BlockKind::HoneycombBlock => 0.6 as f32, - BlockKind::NetheriteBlock => 50 as f32, - BlockKind::AncientDebris => 30 as f32, - BlockKind::CryingObsidian => 50 as f32, - BlockKind::RespawnAnchor => 50 as f32, - BlockKind::PottedCrimsonFungus => 0 as f32, - BlockKind::PottedWarpedFungus => 0 as f32, - BlockKind::PottedCrimsonRoots => 0 as f32, - BlockKind::PottedWarpedRoots => 0 as f32, - BlockKind::Lodestone => 3.5 as f32, - BlockKind::Blackstone => 1.5 as f32, - BlockKind::BlackstoneStairs => 0 as f32, - BlockKind::BlackstoneWall => 0 as f32, - BlockKind::BlackstoneSlab => 2 as f32, - BlockKind::PolishedBlackstone => 2 as f32, - BlockKind::PolishedBlackstoneBricks => 1.5 as f32, - BlockKind::CrackedPolishedBlackstoneBricks => 0 as f32, - BlockKind::ChiseledPolishedBlackstone => 1.5 as f32, - BlockKind::PolishedBlackstoneBrickSlab => 2 as f32, - BlockKind::PolishedBlackstoneBrickStairs => 0 as f32, - BlockKind::PolishedBlackstoneBrickWall => 0 as f32, - BlockKind::GildedBlackstone => 0 as f32, - BlockKind::PolishedBlackstoneStairs => 0 as f32, - BlockKind::PolishedBlackstoneSlab => 0 as f32, - BlockKind::PolishedBlackstonePressurePlate => 0.5 as f32, - BlockKind::PolishedBlackstoneButton => 0.5 as f32, - BlockKind::PolishedBlackstoneWall => 0 as f32, - BlockKind::ChiseledNetherBricks => 2 as f32, - BlockKind::CrackedNetherBricks => 2 as f32, - BlockKind::QuartzBricks => 0 as f32, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl BlockKind { - /// Returns the `diggable` property of this `BlockKind`. - pub fn diggable(&self) -> bool { - match self { - BlockKind::Air => true, - BlockKind::Stone => true, - BlockKind::Granite => true, - BlockKind::PolishedGranite => true, - BlockKind::Diorite => true, - BlockKind::PolishedDiorite => true, - BlockKind::Andesite => true, - BlockKind::PolishedAndesite => true, - BlockKind::GrassBlock => true, - BlockKind::Dirt => true, - BlockKind::CoarseDirt => true, - BlockKind::Podzol => true, - BlockKind::Cobblestone => true, - BlockKind::OakPlanks => true, - BlockKind::SprucePlanks => true, - BlockKind::BirchPlanks => true, - BlockKind::JunglePlanks => true, - BlockKind::AcaciaPlanks => true, - BlockKind::DarkOakPlanks => true, - BlockKind::OakSapling => true, - BlockKind::SpruceSapling => true, - BlockKind::BirchSapling => true, - BlockKind::JungleSapling => true, - BlockKind::AcaciaSapling => true, - BlockKind::DarkOakSapling => true, - BlockKind::Bedrock => false, - BlockKind::Water => false, - BlockKind::Lava => false, - BlockKind::Sand => true, - BlockKind::RedSand => true, - BlockKind::Gravel => true, - BlockKind::GoldOre => true, - BlockKind::IronOre => true, - BlockKind::CoalOre => true, - BlockKind::NetherGoldOre => true, - BlockKind::OakLog => true, - BlockKind::SpruceLog => true, - BlockKind::BirchLog => true, - BlockKind::JungleLog => true, - BlockKind::AcaciaLog => true, - BlockKind::DarkOakLog => true, - BlockKind::StrippedSpruceLog => true, - BlockKind::StrippedBirchLog => true, - BlockKind::StrippedJungleLog => true, - BlockKind::StrippedAcaciaLog => true, - BlockKind::StrippedDarkOakLog => true, - BlockKind::StrippedOakLog => true, - BlockKind::OakWood => true, - BlockKind::SpruceWood => true, - BlockKind::BirchWood => true, - BlockKind::JungleWood => true, - BlockKind::AcaciaWood => true, - BlockKind::DarkOakWood => true, - BlockKind::StrippedOakWood => true, - BlockKind::StrippedSpruceWood => true, - BlockKind::StrippedBirchWood => true, - BlockKind::StrippedJungleWood => true, - BlockKind::StrippedAcaciaWood => true, - BlockKind::StrippedDarkOakWood => true, - BlockKind::OakLeaves => true, - BlockKind::SpruceLeaves => true, - BlockKind::BirchLeaves => true, - BlockKind::JungleLeaves => true, - BlockKind::AcaciaLeaves => true, - BlockKind::DarkOakLeaves => true, - BlockKind::Sponge => true, - BlockKind::WetSponge => true, - BlockKind::Glass => true, - BlockKind::LapisOre => true, - BlockKind::LapisBlock => true, - BlockKind::Dispenser => true, - BlockKind::Sandstone => true, - BlockKind::ChiseledSandstone => true, - BlockKind::CutSandstone => true, - BlockKind::NoteBlock => true, - BlockKind::WhiteBed => true, - BlockKind::OrangeBed => true, - BlockKind::MagentaBed => true, - BlockKind::LightBlueBed => true, - BlockKind::YellowBed => true, - BlockKind::LimeBed => true, - BlockKind::PinkBed => true, - BlockKind::GrayBed => true, - BlockKind::LightGrayBed => true, - BlockKind::CyanBed => true, - BlockKind::PurpleBed => true, - BlockKind::BlueBed => true, - BlockKind::BrownBed => true, - BlockKind::GreenBed => true, - BlockKind::RedBed => true, - BlockKind::BlackBed => true, - BlockKind::PoweredRail => true, - BlockKind::DetectorRail => true, - BlockKind::StickyPiston => true, - BlockKind::Cobweb => true, - BlockKind::Grass => true, - BlockKind::Fern => true, - BlockKind::DeadBush => true, - BlockKind::Seagrass => true, - BlockKind::TallSeagrass => true, - BlockKind::Piston => true, - BlockKind::PistonHead => true, - BlockKind::WhiteWool => true, - BlockKind::OrangeWool => true, - BlockKind::MagentaWool => true, - BlockKind::LightBlueWool => true, - BlockKind::YellowWool => true, - BlockKind::LimeWool => true, - BlockKind::PinkWool => true, - BlockKind::GrayWool => true, - BlockKind::LightGrayWool => true, - BlockKind::CyanWool => true, - BlockKind::PurpleWool => true, - BlockKind::BlueWool => true, - BlockKind::BrownWool => true, - BlockKind::GreenWool => true, - BlockKind::RedWool => true, - BlockKind::BlackWool => true, - BlockKind::MovingPiston => false, - BlockKind::Dandelion => true, - BlockKind::Poppy => true, - BlockKind::BlueOrchid => true, - BlockKind::Allium => true, - BlockKind::AzureBluet => true, - BlockKind::RedTulip => true, - BlockKind::OrangeTulip => true, - BlockKind::WhiteTulip => true, - BlockKind::PinkTulip => true, - BlockKind::OxeyeDaisy => true, - BlockKind::Cornflower => true, - BlockKind::WitherRose => true, - BlockKind::LilyOfTheValley => true, - BlockKind::BrownMushroom => true, - BlockKind::RedMushroom => true, - BlockKind::GoldBlock => true, - BlockKind::IronBlock => true, - BlockKind::Bricks => true, - BlockKind::Tnt => true, - BlockKind::Bookshelf => true, - BlockKind::MossyCobblestone => true, - BlockKind::Obsidian => true, - BlockKind::Torch => true, - BlockKind::WallTorch => true, - BlockKind::Fire => true, - BlockKind::SoulFire => true, - BlockKind::Spawner => true, - BlockKind::OakStairs => true, - BlockKind::Chest => true, - BlockKind::RedstoneWire => true, - BlockKind::DiamondOre => true, - BlockKind::DiamondBlock => true, - BlockKind::CraftingTable => true, - BlockKind::Wheat => true, - BlockKind::Farmland => true, - BlockKind::Furnace => true, - BlockKind::OakSign => true, - BlockKind::SpruceSign => true, - BlockKind::BirchSign => true, - BlockKind::AcaciaSign => true, - BlockKind::JungleSign => true, - BlockKind::DarkOakSign => true, - BlockKind::OakDoor => true, - BlockKind::Ladder => true, - BlockKind::Rail => true, - BlockKind::CobblestoneStairs => true, - BlockKind::OakWallSign => true, - BlockKind::SpruceWallSign => true, - BlockKind::BirchWallSign => true, - BlockKind::AcaciaWallSign => true, - BlockKind::JungleWallSign => true, - BlockKind::DarkOakWallSign => true, - BlockKind::Lever => true, - BlockKind::StonePressurePlate => true, - BlockKind::IronDoor => true, - BlockKind::OakPressurePlate => true, - BlockKind::SprucePressurePlate => true, - BlockKind::BirchPressurePlate => true, - BlockKind::JunglePressurePlate => true, - BlockKind::AcaciaPressurePlate => true, - BlockKind::DarkOakPressurePlate => true, - BlockKind::RedstoneOre => true, - BlockKind::RedstoneTorch => true, - BlockKind::RedstoneWallTorch => true, - BlockKind::StoneButton => true, - BlockKind::Snow => true, - BlockKind::Ice => true, - BlockKind::SnowBlock => true, - BlockKind::Cactus => true, - BlockKind::Clay => true, - BlockKind::SugarCane => true, - BlockKind::Jukebox => true, - BlockKind::OakFence => true, - BlockKind::Pumpkin => true, - BlockKind::Netherrack => true, - BlockKind::SoulSand => true, - BlockKind::SoulSoil => true, - BlockKind::Basalt => true, - BlockKind::PolishedBasalt => true, - BlockKind::SoulTorch => true, - BlockKind::SoulWallTorch => true, - BlockKind::Glowstone => true, - BlockKind::NetherPortal => false, - BlockKind::CarvedPumpkin => true, - BlockKind::JackOLantern => true, - BlockKind::Cake => true, - BlockKind::Repeater => true, - BlockKind::WhiteStainedGlass => true, - BlockKind::OrangeStainedGlass => true, - BlockKind::MagentaStainedGlass => true, - BlockKind::LightBlueStainedGlass => true, - BlockKind::YellowStainedGlass => true, - BlockKind::LimeStainedGlass => true, - BlockKind::PinkStainedGlass => true, - BlockKind::GrayStainedGlass => true, - BlockKind::LightGrayStainedGlass => true, - BlockKind::CyanStainedGlass => true, - BlockKind::PurpleStainedGlass => true, - BlockKind::BlueStainedGlass => true, - BlockKind::BrownStainedGlass => true, - BlockKind::GreenStainedGlass => true, - BlockKind::RedStainedGlass => true, - BlockKind::BlackStainedGlass => true, - BlockKind::OakTrapdoor => true, - BlockKind::SpruceTrapdoor => true, - BlockKind::BirchTrapdoor => true, - BlockKind::JungleTrapdoor => true, - BlockKind::AcaciaTrapdoor => true, - BlockKind::DarkOakTrapdoor => true, - BlockKind::StoneBricks => true, - BlockKind::MossyStoneBricks => true, - BlockKind::CrackedStoneBricks => true, - BlockKind::ChiseledStoneBricks => true, - BlockKind::InfestedStone => true, - BlockKind::InfestedCobblestone => true, - BlockKind::InfestedStoneBricks => true, - BlockKind::InfestedMossyStoneBricks => true, - BlockKind::InfestedCrackedStoneBricks => true, - BlockKind::InfestedChiseledStoneBricks => true, - BlockKind::BrownMushroomBlock => true, - BlockKind::RedMushroomBlock => true, - BlockKind::MushroomStem => true, - BlockKind::IronBars => true, - BlockKind::Chain => true, - BlockKind::GlassPane => true, - BlockKind::Melon => true, - BlockKind::AttachedPumpkinStem => true, - BlockKind::AttachedMelonStem => true, - BlockKind::PumpkinStem => true, - BlockKind::MelonStem => true, - BlockKind::Vine => true, - BlockKind::OakFenceGate => true, - BlockKind::BrickStairs => true, - BlockKind::StoneBrickStairs => true, - BlockKind::Mycelium => true, - BlockKind::LilyPad => true, - BlockKind::NetherBricks => true, - BlockKind::NetherBrickFence => true, - BlockKind::NetherBrickStairs => true, - BlockKind::NetherWart => true, - BlockKind::EnchantingTable => true, - BlockKind::BrewingStand => true, - BlockKind::Cauldron => true, - BlockKind::EndPortal => false, - BlockKind::EndPortalFrame => false, - BlockKind::EndStone => true, - BlockKind::DragonEgg => true, - BlockKind::RedstoneLamp => true, - BlockKind::Cocoa => true, - BlockKind::SandstoneStairs => true, - BlockKind::EmeraldOre => true, - BlockKind::EnderChest => true, - BlockKind::TripwireHook => true, - BlockKind::Tripwire => true, - BlockKind::EmeraldBlock => true, - BlockKind::SpruceStairs => true, - BlockKind::BirchStairs => true, - BlockKind::JungleStairs => true, - BlockKind::CommandBlock => false, - BlockKind::Beacon => true, - BlockKind::CobblestoneWall => true, - BlockKind::MossyCobblestoneWall => true, - BlockKind::FlowerPot => true, - BlockKind::PottedOakSapling => true, - BlockKind::PottedSpruceSapling => true, - BlockKind::PottedBirchSapling => true, - BlockKind::PottedJungleSapling => true, - BlockKind::PottedAcaciaSapling => true, - BlockKind::PottedDarkOakSapling => true, - BlockKind::PottedFern => true, - BlockKind::PottedDandelion => true, - BlockKind::PottedPoppy => true, - BlockKind::PottedBlueOrchid => true, - BlockKind::PottedAllium => true, - BlockKind::PottedAzureBluet => true, - BlockKind::PottedRedTulip => true, - BlockKind::PottedOrangeTulip => true, - BlockKind::PottedWhiteTulip => true, - BlockKind::PottedPinkTulip => true, - BlockKind::PottedOxeyeDaisy => true, - BlockKind::PottedCornflower => true, - BlockKind::PottedLilyOfTheValley => true, - BlockKind::PottedWitherRose => true, - BlockKind::PottedRedMushroom => true, - BlockKind::PottedBrownMushroom => true, - BlockKind::PottedDeadBush => true, - BlockKind::PottedCactus => true, - BlockKind::Carrots => true, - BlockKind::Potatoes => true, - BlockKind::OakButton => true, - BlockKind::SpruceButton => true, - BlockKind::BirchButton => true, - BlockKind::JungleButton => true, - BlockKind::AcaciaButton => true, - BlockKind::DarkOakButton => true, - BlockKind::SkeletonSkull => true, - BlockKind::SkeletonWallSkull => true, - BlockKind::WitherSkeletonSkull => true, - BlockKind::WitherSkeletonWallSkull => true, - BlockKind::ZombieHead => true, - BlockKind::ZombieWallHead => true, - BlockKind::PlayerHead => true, - BlockKind::PlayerWallHead => true, - BlockKind::CreeperHead => true, - BlockKind::CreeperWallHead => true, - BlockKind::DragonHead => true, - BlockKind::DragonWallHead => true, - BlockKind::Anvil => true, - BlockKind::ChippedAnvil => true, - BlockKind::DamagedAnvil => true, - BlockKind::TrappedChest => true, - BlockKind::LightWeightedPressurePlate => true, - BlockKind::HeavyWeightedPressurePlate => true, - BlockKind::Comparator => true, - BlockKind::DaylightDetector => true, - BlockKind::RedstoneBlock => true, - BlockKind::NetherQuartzOre => true, - BlockKind::Hopper => true, - BlockKind::QuartzBlock => true, - BlockKind::ChiseledQuartzBlock => true, - BlockKind::QuartzPillar => true, - BlockKind::QuartzStairs => true, - BlockKind::ActivatorRail => true, - BlockKind::Dropper => true, - BlockKind::WhiteTerracotta => true, - BlockKind::OrangeTerracotta => true, - BlockKind::MagentaTerracotta => true, - BlockKind::LightBlueTerracotta => true, - BlockKind::YellowTerracotta => true, - BlockKind::LimeTerracotta => true, - BlockKind::PinkTerracotta => true, - BlockKind::GrayTerracotta => true, - BlockKind::LightGrayTerracotta => true, - BlockKind::CyanTerracotta => true, - BlockKind::PurpleTerracotta => true, - BlockKind::BlueTerracotta => true, - BlockKind::BrownTerracotta => true, - BlockKind::GreenTerracotta => true, - BlockKind::RedTerracotta => true, - BlockKind::BlackTerracotta => true, - BlockKind::WhiteStainedGlassPane => true, - BlockKind::OrangeStainedGlassPane => true, - BlockKind::MagentaStainedGlassPane => true, - BlockKind::LightBlueStainedGlassPane => true, - BlockKind::YellowStainedGlassPane => true, - BlockKind::LimeStainedGlassPane => true, - BlockKind::PinkStainedGlassPane => true, - BlockKind::GrayStainedGlassPane => true, - BlockKind::LightGrayStainedGlassPane => true, - BlockKind::CyanStainedGlassPane => true, - BlockKind::PurpleStainedGlassPane => true, - BlockKind::BlueStainedGlassPane => true, - BlockKind::BrownStainedGlassPane => true, - BlockKind::GreenStainedGlassPane => true, - BlockKind::RedStainedGlassPane => true, - BlockKind::BlackStainedGlassPane => true, - BlockKind::AcaciaStairs => true, - BlockKind::DarkOakStairs => true, - BlockKind::SlimeBlock => true, - BlockKind::Barrier => false, - BlockKind::IronTrapdoor => true, - BlockKind::Prismarine => true, - BlockKind::PrismarineBricks => true, - BlockKind::DarkPrismarine => true, - BlockKind::PrismarineStairs => true, - BlockKind::PrismarineBrickStairs => true, - BlockKind::DarkPrismarineStairs => true, - BlockKind::PrismarineSlab => true, - BlockKind::PrismarineBrickSlab => true, - BlockKind::DarkPrismarineSlab => true, - BlockKind::SeaLantern => true, - BlockKind::HayBlock => true, - BlockKind::WhiteCarpet => true, - BlockKind::OrangeCarpet => true, - BlockKind::MagentaCarpet => true, - BlockKind::LightBlueCarpet => true, - BlockKind::YellowCarpet => true, - BlockKind::LimeCarpet => true, - BlockKind::PinkCarpet => true, - BlockKind::GrayCarpet => true, - BlockKind::LightGrayCarpet => true, - BlockKind::CyanCarpet => true, - BlockKind::PurpleCarpet => true, - BlockKind::BlueCarpet => true, - BlockKind::BrownCarpet => true, - BlockKind::GreenCarpet => true, - BlockKind::RedCarpet => true, - BlockKind::BlackCarpet => true, - BlockKind::Terracotta => true, - BlockKind::CoalBlock => true, - BlockKind::PackedIce => true, - BlockKind::Sunflower => true, - BlockKind::Lilac => true, - BlockKind::RoseBush => true, - BlockKind::Peony => true, - BlockKind::TallGrass => true, - BlockKind::LargeFern => true, - BlockKind::WhiteBanner => true, - BlockKind::OrangeBanner => true, - BlockKind::MagentaBanner => true, - BlockKind::LightBlueBanner => true, - BlockKind::YellowBanner => true, - BlockKind::LimeBanner => true, - BlockKind::PinkBanner => true, - BlockKind::GrayBanner => true, - BlockKind::LightGrayBanner => true, - BlockKind::CyanBanner => true, - BlockKind::PurpleBanner => true, - BlockKind::BlueBanner => true, - BlockKind::BrownBanner => true, - BlockKind::GreenBanner => true, - BlockKind::RedBanner => true, - BlockKind::BlackBanner => true, - BlockKind::WhiteWallBanner => true, - BlockKind::OrangeWallBanner => true, - BlockKind::MagentaWallBanner => true, - BlockKind::LightBlueWallBanner => true, - BlockKind::YellowWallBanner => true, - BlockKind::LimeWallBanner => true, - BlockKind::PinkWallBanner => true, - BlockKind::GrayWallBanner => true, - BlockKind::LightGrayWallBanner => true, - BlockKind::CyanWallBanner => true, - BlockKind::PurpleWallBanner => true, - BlockKind::BlueWallBanner => true, - BlockKind::BrownWallBanner => true, - BlockKind::GreenWallBanner => true, - BlockKind::RedWallBanner => true, - BlockKind::BlackWallBanner => true, - BlockKind::RedSandstone => true, - BlockKind::ChiseledRedSandstone => true, - BlockKind::CutRedSandstone => true, - BlockKind::RedSandstoneStairs => true, - BlockKind::OakSlab => true, - BlockKind::SpruceSlab => true, - BlockKind::BirchSlab => true, - BlockKind::JungleSlab => true, - BlockKind::AcaciaSlab => true, - BlockKind::DarkOakSlab => true, - BlockKind::StoneSlab => true, - BlockKind::SmoothStoneSlab => true, - BlockKind::SandstoneSlab => true, - BlockKind::CutSandstoneSlab => true, - BlockKind::PetrifiedOakSlab => true, - BlockKind::CobblestoneSlab => true, - BlockKind::BrickSlab => true, - BlockKind::StoneBrickSlab => true, - BlockKind::NetherBrickSlab => true, - BlockKind::QuartzSlab => true, - BlockKind::RedSandstoneSlab => true, - BlockKind::CutRedSandstoneSlab => true, - BlockKind::PurpurSlab => true, - BlockKind::SmoothStone => true, - BlockKind::SmoothSandstone => true, - BlockKind::SmoothQuartz => true, - BlockKind::SmoothRedSandstone => true, - BlockKind::SpruceFenceGate => true, - BlockKind::BirchFenceGate => true, - BlockKind::JungleFenceGate => true, - BlockKind::AcaciaFenceGate => true, - BlockKind::DarkOakFenceGate => true, - BlockKind::SpruceFence => true, - BlockKind::BirchFence => true, - BlockKind::JungleFence => true, - BlockKind::AcaciaFence => true, - BlockKind::DarkOakFence => true, - BlockKind::SpruceDoor => true, - BlockKind::BirchDoor => true, - BlockKind::JungleDoor => true, - BlockKind::AcaciaDoor => true, - BlockKind::DarkOakDoor => true, - BlockKind::EndRod => true, - BlockKind::ChorusPlant => true, - BlockKind::ChorusFlower => true, - BlockKind::PurpurBlock => true, - BlockKind::PurpurPillar => true, - BlockKind::PurpurStairs => true, - BlockKind::EndStoneBricks => true, - BlockKind::Beetroots => true, - BlockKind::GrassPath => true, - BlockKind::EndGateway => false, - BlockKind::RepeatingCommandBlock => false, - BlockKind::ChainCommandBlock => false, - BlockKind::FrostedIce => true, - BlockKind::MagmaBlock => true, - BlockKind::NetherWartBlock => true, - BlockKind::RedNetherBricks => true, - BlockKind::BoneBlock => true, - BlockKind::StructureVoid => true, - BlockKind::Observer => true, - BlockKind::ShulkerBox => true, - BlockKind::WhiteShulkerBox => true, - BlockKind::OrangeShulkerBox => true, - BlockKind::MagentaShulkerBox => true, - BlockKind::LightBlueShulkerBox => true, - BlockKind::YellowShulkerBox => true, - BlockKind::LimeShulkerBox => true, - BlockKind::PinkShulkerBox => true, - BlockKind::GrayShulkerBox => true, - BlockKind::LightGrayShulkerBox => true, - BlockKind::CyanShulkerBox => true, - BlockKind::PurpleShulkerBox => true, - BlockKind::BlueShulkerBox => true, - BlockKind::BrownShulkerBox => true, - BlockKind::GreenShulkerBox => true, - BlockKind::RedShulkerBox => true, - BlockKind::BlackShulkerBox => true, - BlockKind::WhiteGlazedTerracotta => true, - BlockKind::OrangeGlazedTerracotta => true, - BlockKind::MagentaGlazedTerracotta => true, - BlockKind::LightBlueGlazedTerracotta => true, - BlockKind::YellowGlazedTerracotta => true, - BlockKind::LimeGlazedTerracotta => true, - BlockKind::PinkGlazedTerracotta => true, - BlockKind::GrayGlazedTerracotta => true, - BlockKind::LightGrayGlazedTerracotta => true, - BlockKind::CyanGlazedTerracotta => true, - BlockKind::PurpleGlazedTerracotta => true, - BlockKind::BlueGlazedTerracotta => true, - BlockKind::BrownGlazedTerracotta => true, - BlockKind::GreenGlazedTerracotta => true, - BlockKind::RedGlazedTerracotta => true, - BlockKind::BlackGlazedTerracotta => true, - BlockKind::WhiteConcrete => true, - BlockKind::OrangeConcrete => true, - BlockKind::MagentaConcrete => true, - BlockKind::LightBlueConcrete => true, - BlockKind::YellowConcrete => true, - BlockKind::LimeConcrete => true, - BlockKind::PinkConcrete => true, - BlockKind::GrayConcrete => true, - BlockKind::LightGrayConcrete => true, - BlockKind::CyanConcrete => true, - BlockKind::PurpleConcrete => true, - BlockKind::BlueConcrete => true, - BlockKind::BrownConcrete => true, - BlockKind::GreenConcrete => true, - BlockKind::RedConcrete => true, - BlockKind::BlackConcrete => true, - BlockKind::WhiteConcretePowder => true, - BlockKind::OrangeConcretePowder => true, - BlockKind::MagentaConcretePowder => true, - BlockKind::LightBlueConcretePowder => true, - BlockKind::YellowConcretePowder => true, - BlockKind::LimeConcretePowder => true, - BlockKind::PinkConcretePowder => true, - BlockKind::GrayConcretePowder => true, - BlockKind::LightGrayConcretePowder => true, - BlockKind::CyanConcretePowder => true, - BlockKind::PurpleConcretePowder => true, - BlockKind::BlueConcretePowder => true, - BlockKind::BrownConcretePowder => true, - BlockKind::GreenConcretePowder => true, - BlockKind::RedConcretePowder => true, - BlockKind::BlackConcretePowder => true, - BlockKind::Kelp => true, - BlockKind::KelpPlant => true, - BlockKind::DriedKelpBlock => true, - BlockKind::TurtleEgg => true, - BlockKind::DeadTubeCoralBlock => true, - BlockKind::DeadBrainCoralBlock => true, - BlockKind::DeadBubbleCoralBlock => true, - BlockKind::DeadFireCoralBlock => true, - BlockKind::DeadHornCoralBlock => true, - BlockKind::TubeCoralBlock => true, - BlockKind::BrainCoralBlock => true, - BlockKind::BubbleCoralBlock => true, - BlockKind::FireCoralBlock => true, - BlockKind::HornCoralBlock => true, - BlockKind::DeadTubeCoral => true, - BlockKind::DeadBrainCoral => true, - BlockKind::DeadBubbleCoral => true, - BlockKind::DeadFireCoral => true, - BlockKind::DeadHornCoral => true, - BlockKind::TubeCoral => true, - BlockKind::BrainCoral => true, - BlockKind::BubbleCoral => true, - BlockKind::FireCoral => true, - BlockKind::HornCoral => true, - BlockKind::DeadTubeCoralFan => true, - BlockKind::DeadBrainCoralFan => true, - BlockKind::DeadBubbleCoralFan => true, - BlockKind::DeadFireCoralFan => true, - BlockKind::DeadHornCoralFan => true, - BlockKind::TubeCoralFan => true, - BlockKind::BrainCoralFan => true, - BlockKind::BubbleCoralFan => true, - BlockKind::FireCoralFan => true, - BlockKind::HornCoralFan => true, - BlockKind::DeadTubeCoralWallFan => true, - BlockKind::DeadBrainCoralWallFan => true, - BlockKind::DeadBubbleCoralWallFan => true, - BlockKind::DeadFireCoralWallFan => true, - BlockKind::DeadHornCoralWallFan => true, - BlockKind::TubeCoralWallFan => true, - BlockKind::BrainCoralWallFan => true, - BlockKind::BubbleCoralWallFan => true, - BlockKind::FireCoralWallFan => true, - BlockKind::HornCoralWallFan => true, - BlockKind::SeaPickle => true, - BlockKind::BlueIce => true, - BlockKind::Conduit => true, - BlockKind::BambooSapling => true, - BlockKind::Bamboo => true, - BlockKind::PottedBamboo => true, - BlockKind::VoidAir => true, - BlockKind::CaveAir => true, - BlockKind::BubbleColumn => true, - BlockKind::PolishedGraniteStairs => true, - BlockKind::SmoothRedSandstoneStairs => true, - BlockKind::MossyStoneBrickStairs => true, - BlockKind::PolishedDioriteStairs => true, - BlockKind::MossyCobblestoneStairs => true, - BlockKind::EndStoneBrickStairs => true, - BlockKind::StoneStairs => true, - BlockKind::SmoothSandstoneStairs => true, - BlockKind::SmoothQuartzStairs => true, - BlockKind::GraniteStairs => true, - BlockKind::AndesiteStairs => true, - BlockKind::RedNetherBrickStairs => true, - BlockKind::PolishedAndesiteStairs => true, - BlockKind::DioriteStairs => true, - BlockKind::PolishedGraniteSlab => true, - BlockKind::SmoothRedSandstoneSlab => true, - BlockKind::MossyStoneBrickSlab => true, - BlockKind::PolishedDioriteSlab => true, - BlockKind::MossyCobblestoneSlab => true, - BlockKind::EndStoneBrickSlab => true, - BlockKind::SmoothSandstoneSlab => true, - BlockKind::SmoothQuartzSlab => true, - BlockKind::GraniteSlab => true, - BlockKind::AndesiteSlab => true, - BlockKind::RedNetherBrickSlab => true, - BlockKind::PolishedAndesiteSlab => true, - BlockKind::DioriteSlab => true, - BlockKind::BrickWall => true, - BlockKind::PrismarineWall => true, - BlockKind::RedSandstoneWall => true, - BlockKind::MossyStoneBrickWall => true, - BlockKind::GraniteWall => true, - BlockKind::StoneBrickWall => true, - BlockKind::NetherBrickWall => true, - BlockKind::AndesiteWall => true, - BlockKind::RedNetherBrickWall => true, - BlockKind::SandstoneWall => true, - BlockKind::EndStoneBrickWall => true, - BlockKind::DioriteWall => true, - BlockKind::Scaffolding => true, - BlockKind::Loom => true, - BlockKind::Barrel => true, - BlockKind::Smoker => true, - BlockKind::BlastFurnace => true, - BlockKind::CartographyTable => true, - BlockKind::FletchingTable => true, - BlockKind::Grindstone => true, - BlockKind::Lectern => true, - BlockKind::SmithingTable => true, - BlockKind::Stonecutter => true, - BlockKind::Bell => true, - BlockKind::Lantern => true, - BlockKind::SoulLantern => true, - BlockKind::Campfire => true, - BlockKind::SoulCampfire => true, - BlockKind::SweetBerryBush => true, - BlockKind::WarpedStem => true, - BlockKind::StrippedWarpedStem => true, - BlockKind::WarpedHyphae => true, - BlockKind::StrippedWarpedHyphae => true, - BlockKind::WarpedNylium => true, - BlockKind::WarpedFungus => true, - BlockKind::WarpedWartBlock => true, - BlockKind::WarpedRoots => true, - BlockKind::NetherSprouts => true, - BlockKind::CrimsonStem => true, - BlockKind::StrippedCrimsonStem => true, - BlockKind::CrimsonHyphae => true, - BlockKind::StrippedCrimsonHyphae => true, - BlockKind::CrimsonNylium => true, - BlockKind::CrimsonFungus => true, - BlockKind::Shroomlight => true, - BlockKind::WeepingVines => true, - BlockKind::WeepingVinesPlant => true, - BlockKind::TwistingVines => true, - BlockKind::TwistingVinesPlant => true, - BlockKind::CrimsonRoots => true, - BlockKind::CrimsonPlanks => true, - BlockKind::WarpedPlanks => true, - BlockKind::CrimsonSlab => true, - BlockKind::WarpedSlab => true, - BlockKind::CrimsonPressurePlate => true, - BlockKind::WarpedPressurePlate => true, - BlockKind::CrimsonFence => true, - BlockKind::WarpedFence => true, - BlockKind::CrimsonTrapdoor => true, - BlockKind::WarpedTrapdoor => true, - BlockKind::CrimsonFenceGate => true, - BlockKind::WarpedFenceGate => true, - BlockKind::CrimsonStairs => true, - BlockKind::WarpedStairs => true, - BlockKind::CrimsonButton => true, - BlockKind::WarpedButton => true, - BlockKind::CrimsonDoor => true, - BlockKind::WarpedDoor => true, - BlockKind::CrimsonSign => true, - BlockKind::WarpedSign => true, - BlockKind::CrimsonWallSign => true, - BlockKind::WarpedWallSign => true, - BlockKind::StructureBlock => false, - BlockKind::Jigsaw => false, - BlockKind::Composter => true, - BlockKind::Target => true, - BlockKind::BeeNest => true, - BlockKind::Beehive => true, - BlockKind::HoneyBlock => true, - BlockKind::HoneycombBlock => true, - BlockKind::NetheriteBlock => true, - BlockKind::AncientDebris => true, - BlockKind::CryingObsidian => true, - BlockKind::RespawnAnchor => true, - BlockKind::PottedCrimsonFungus => true, - BlockKind::PottedWarpedFungus => true, - BlockKind::PottedCrimsonRoots => true, - BlockKind::PottedWarpedRoots => true, - BlockKind::Lodestone => true, - BlockKind::Blackstone => true, - BlockKind::BlackstoneStairs => true, - BlockKind::BlackstoneWall => true, - BlockKind::BlackstoneSlab => true, - BlockKind::PolishedBlackstone => true, - BlockKind::PolishedBlackstoneBricks => true, - BlockKind::CrackedPolishedBlackstoneBricks => true, - BlockKind::ChiseledPolishedBlackstone => true, - BlockKind::PolishedBlackstoneBrickSlab => true, - BlockKind::PolishedBlackstoneBrickStairs => true, - BlockKind::PolishedBlackstoneBrickWall => true, - BlockKind::GildedBlackstone => true, - BlockKind::PolishedBlackstoneStairs => true, - BlockKind::PolishedBlackstoneSlab => true, - BlockKind::PolishedBlackstonePressurePlate => true, - BlockKind::PolishedBlackstoneButton => true, - BlockKind::PolishedBlackstoneWall => true, - BlockKind::ChiseledNetherBricks => true, - BlockKind::CrackedNetherBricks => true, - BlockKind::QuartzBricks => true, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl BlockKind { - /// Returns the `transparent` property of this `BlockKind`. - pub fn transparent(&self) -> bool { - match self { - BlockKind::Air => true, - BlockKind::Stone => false, - BlockKind::Granite => false, - BlockKind::PolishedGranite => false, - BlockKind::Diorite => false, - BlockKind::PolishedDiorite => false, - BlockKind::Andesite => false, - BlockKind::PolishedAndesite => false, - BlockKind::GrassBlock => false, - BlockKind::Dirt => false, - BlockKind::CoarseDirt => false, - BlockKind::Podzol => false, - BlockKind::Cobblestone => false, - BlockKind::OakPlanks => false, - BlockKind::SprucePlanks => false, - BlockKind::BirchPlanks => false, - BlockKind::JunglePlanks => false, - BlockKind::AcaciaPlanks => false, - BlockKind::DarkOakPlanks => false, - BlockKind::OakSapling => true, - BlockKind::SpruceSapling => true, - BlockKind::BirchSapling => true, - BlockKind::JungleSapling => true, - BlockKind::AcaciaSapling => true, - BlockKind::DarkOakSapling => true, - BlockKind::Bedrock => false, - BlockKind::Water => true, - BlockKind::Lava => true, - BlockKind::Sand => false, - BlockKind::RedSand => false, - BlockKind::Gravel => false, - BlockKind::GoldOre => false, - BlockKind::IronOre => false, - BlockKind::CoalOre => false, - BlockKind::NetherGoldOre => false, - BlockKind::OakLog => false, - BlockKind::SpruceLog => false, - BlockKind::BirchLog => false, - BlockKind::JungleLog => false, - BlockKind::AcaciaLog => false, - BlockKind::DarkOakLog => false, - BlockKind::StrippedSpruceLog => false, - BlockKind::StrippedBirchLog => false, - BlockKind::StrippedJungleLog => false, - BlockKind::StrippedAcaciaLog => false, - BlockKind::StrippedDarkOakLog => false, - BlockKind::StrippedOakLog => false, - BlockKind::OakWood => false, - BlockKind::SpruceWood => false, - BlockKind::BirchWood => false, - BlockKind::JungleWood => false, - BlockKind::AcaciaWood => false, - BlockKind::DarkOakWood => false, - BlockKind::StrippedOakWood => false, - BlockKind::StrippedSpruceWood => false, - BlockKind::StrippedBirchWood => false, - BlockKind::StrippedJungleWood => false, - BlockKind::StrippedAcaciaWood => false, - BlockKind::StrippedDarkOakWood => false, - BlockKind::OakLeaves => true, - BlockKind::SpruceLeaves => true, - BlockKind::BirchLeaves => true, - BlockKind::JungleLeaves => true, - BlockKind::AcaciaLeaves => true, - BlockKind::DarkOakLeaves => true, - BlockKind::Sponge => false, - BlockKind::WetSponge => false, - BlockKind::Glass => true, - BlockKind::LapisOre => false, - BlockKind::LapisBlock => false, - BlockKind::Dispenser => false, - BlockKind::Sandstone => false, - BlockKind::ChiseledSandstone => false, - BlockKind::CutSandstone => false, - BlockKind::NoteBlock => false, - BlockKind::WhiteBed => true, - BlockKind::OrangeBed => true, - BlockKind::MagentaBed => true, - BlockKind::LightBlueBed => true, - BlockKind::YellowBed => true, - BlockKind::LimeBed => true, - BlockKind::PinkBed => true, - BlockKind::GrayBed => true, - BlockKind::LightGrayBed => true, - BlockKind::CyanBed => true, - BlockKind::PurpleBed => true, - BlockKind::BlueBed => true, - BlockKind::BrownBed => true, - BlockKind::GreenBed => true, - BlockKind::RedBed => true, - BlockKind::BlackBed => true, - BlockKind::PoweredRail => true, - BlockKind::DetectorRail => true, - BlockKind::StickyPiston => true, - BlockKind::Cobweb => true, - BlockKind::Grass => false, - BlockKind::Fern => true, - BlockKind::DeadBush => true, - BlockKind::Seagrass => true, - BlockKind::TallSeagrass => true, - BlockKind::Piston => true, - BlockKind::PistonHead => true, - BlockKind::WhiteWool => false, - BlockKind::OrangeWool => false, - BlockKind::MagentaWool => false, - BlockKind::LightBlueWool => false, - BlockKind::YellowWool => false, - BlockKind::LimeWool => false, - BlockKind::PinkWool => false, - BlockKind::GrayWool => false, - BlockKind::LightGrayWool => false, - BlockKind::CyanWool => false, - BlockKind::PurpleWool => false, - BlockKind::BlueWool => false, - BlockKind::BrownWool => false, - BlockKind::GreenWool => false, - BlockKind::RedWool => false, - BlockKind::BlackWool => false, - BlockKind::MovingPiston => true, - BlockKind::Dandelion => false, - BlockKind::Poppy => false, - BlockKind::BlueOrchid => true, - BlockKind::Allium => false, - BlockKind::AzureBluet => false, - BlockKind::RedTulip => true, - BlockKind::OrangeTulip => true, - BlockKind::WhiteTulip => true, - BlockKind::PinkTulip => true, - BlockKind::OxeyeDaisy => false, - BlockKind::Cornflower => true, - BlockKind::WitherRose => true, - BlockKind::LilyOfTheValley => true, - BlockKind::BrownMushroom => false, - BlockKind::RedMushroom => false, - BlockKind::GoldBlock => false, - BlockKind::IronBlock => false, - BlockKind::Bricks => false, - BlockKind::Tnt => true, - BlockKind::Bookshelf => false, - BlockKind::MossyCobblestone => false, - BlockKind::Obsidian => false, - BlockKind::Torch => true, - BlockKind::WallTorch => true, - BlockKind::Fire => true, - BlockKind::SoulFire => true, - BlockKind::Spawner => true, - BlockKind::OakStairs => true, - BlockKind::Chest => true, - BlockKind::RedstoneWire => true, - BlockKind::DiamondOre => false, - BlockKind::DiamondBlock => false, - BlockKind::CraftingTable => false, - BlockKind::Wheat => true, - BlockKind::Farmland => true, - BlockKind::Furnace => true, - BlockKind::OakSign => true, - BlockKind::SpruceSign => true, - BlockKind::BirchSign => true, - BlockKind::AcaciaSign => true, - BlockKind::JungleSign => true, - BlockKind::DarkOakSign => true, - BlockKind::OakDoor => true, - BlockKind::Ladder => true, - BlockKind::Rail => true, - BlockKind::CobblestoneStairs => true, - BlockKind::OakWallSign => true, - BlockKind::SpruceWallSign => true, - BlockKind::BirchWallSign => true, - BlockKind::AcaciaWallSign => true, - BlockKind::JungleWallSign => true, - BlockKind::DarkOakWallSign => true, - BlockKind::Lever => true, - BlockKind::StonePressurePlate => true, - BlockKind::IronDoor => true, - BlockKind::OakPressurePlate => true, - BlockKind::SprucePressurePlate => true, - BlockKind::BirchPressurePlate => true, - BlockKind::JunglePressurePlate => true, - BlockKind::AcaciaPressurePlate => true, - BlockKind::DarkOakPressurePlate => true, - BlockKind::RedstoneOre => true, - BlockKind::RedstoneTorch => true, - BlockKind::RedstoneWallTorch => true, - BlockKind::StoneButton => true, - BlockKind::Snow => false, - BlockKind::Ice => true, - BlockKind::SnowBlock => false, - BlockKind::Cactus => true, - BlockKind::Clay => false, - BlockKind::SugarCane => true, - BlockKind::Jukebox => false, - BlockKind::OakFence => true, - BlockKind::Pumpkin => true, - BlockKind::Netherrack => false, - BlockKind::SoulSand => false, - BlockKind::SoulSoil => false, - BlockKind::Basalt => false, - BlockKind::PolishedBasalt => false, - BlockKind::SoulTorch => true, - BlockKind::SoulWallTorch => true, - BlockKind::Glowstone => true, - BlockKind::NetherPortal => true, - BlockKind::CarvedPumpkin => true, - BlockKind::JackOLantern => true, - BlockKind::Cake => true, - BlockKind::Repeater => true, - BlockKind::WhiteStainedGlass => true, - BlockKind::OrangeStainedGlass => true, - BlockKind::MagentaStainedGlass => true, - BlockKind::LightBlueStainedGlass => true, - BlockKind::YellowStainedGlass => true, - BlockKind::LimeStainedGlass => true, - BlockKind::PinkStainedGlass => true, - BlockKind::GrayStainedGlass => true, - BlockKind::LightGrayStainedGlass => true, - BlockKind::CyanStainedGlass => true, - BlockKind::PurpleStainedGlass => true, - BlockKind::BlueStainedGlass => true, - BlockKind::BrownStainedGlass => true, - BlockKind::GreenStainedGlass => true, - BlockKind::RedStainedGlass => true, - BlockKind::BlackStainedGlass => true, - BlockKind::OakTrapdoor => true, - BlockKind::SpruceTrapdoor => true, - BlockKind::BirchTrapdoor => true, - BlockKind::JungleTrapdoor => true, - BlockKind::AcaciaTrapdoor => true, - BlockKind::DarkOakTrapdoor => true, - BlockKind::StoneBricks => false, - BlockKind::MossyStoneBricks => false, - BlockKind::CrackedStoneBricks => false, - BlockKind::ChiseledStoneBricks => false, - BlockKind::InfestedStone => false, - BlockKind::InfestedCobblestone => false, - BlockKind::InfestedStoneBricks => false, - BlockKind::InfestedMossyStoneBricks => false, - BlockKind::InfestedCrackedStoneBricks => false, - BlockKind::InfestedChiseledStoneBricks => false, - BlockKind::BrownMushroomBlock => false, - BlockKind::RedMushroomBlock => false, - BlockKind::MushroomStem => false, - BlockKind::IronBars => true, - BlockKind::Chain => true, - BlockKind::GlassPane => true, - BlockKind::Melon => true, - BlockKind::AttachedPumpkinStem => true, - BlockKind::AttachedMelonStem => true, - BlockKind::PumpkinStem => true, - BlockKind::MelonStem => true, - BlockKind::Vine => true, - BlockKind::OakFenceGate => true, - BlockKind::BrickStairs => true, - BlockKind::StoneBrickStairs => true, - BlockKind::Mycelium => false, - BlockKind::LilyPad => true, - BlockKind::NetherBricks => false, - BlockKind::NetherBrickFence => true, - BlockKind::NetherBrickStairs => true, - BlockKind::NetherWart => true, - BlockKind::EnchantingTable => true, - BlockKind::BrewingStand => true, - BlockKind::Cauldron => true, - BlockKind::EndPortal => true, - BlockKind::EndPortalFrame => true, - BlockKind::EndStone => false, - BlockKind::DragonEgg => true, - BlockKind::RedstoneLamp => true, - BlockKind::Cocoa => true, - BlockKind::SandstoneStairs => true, - BlockKind::EmeraldOre => false, - BlockKind::EnderChest => true, - BlockKind::TripwireHook => true, - BlockKind::Tripwire => true, - BlockKind::EmeraldBlock => false, - BlockKind::SpruceStairs => true, - BlockKind::BirchStairs => true, - BlockKind::JungleStairs => true, - BlockKind::CommandBlock => false, - BlockKind::Beacon => true, - BlockKind::CobblestoneWall => true, - BlockKind::MossyCobblestoneWall => true, - BlockKind::FlowerPot => true, - BlockKind::PottedOakSapling => true, - BlockKind::PottedSpruceSapling => true, - BlockKind::PottedBirchSapling => true, - BlockKind::PottedJungleSapling => true, - BlockKind::PottedAcaciaSapling => true, - BlockKind::PottedDarkOakSapling => true, - BlockKind::PottedFern => true, - BlockKind::PottedDandelion => true, - BlockKind::PottedPoppy => true, - BlockKind::PottedBlueOrchid => true, - BlockKind::PottedAllium => true, - BlockKind::PottedAzureBluet => true, - BlockKind::PottedRedTulip => true, - BlockKind::PottedOrangeTulip => true, - BlockKind::PottedWhiteTulip => true, - BlockKind::PottedPinkTulip => true, - BlockKind::PottedOxeyeDaisy => true, - BlockKind::PottedCornflower => true, - BlockKind::PottedLilyOfTheValley => true, - BlockKind::PottedWitherRose => true, - BlockKind::PottedRedMushroom => true, - BlockKind::PottedBrownMushroom => true, - BlockKind::PottedDeadBush => true, - BlockKind::PottedCactus => true, - BlockKind::Carrots => false, - BlockKind::Potatoes => false, - BlockKind::OakButton => true, - BlockKind::SpruceButton => true, - BlockKind::BirchButton => true, - BlockKind::JungleButton => true, - BlockKind::AcaciaButton => true, - BlockKind::DarkOakButton => true, - BlockKind::SkeletonSkull => true, - BlockKind::SkeletonWallSkull => true, - BlockKind::WitherSkeletonSkull => true, - BlockKind::WitherSkeletonWallSkull => true, - BlockKind::ZombieHead => true, - BlockKind::ZombieWallHead => true, - BlockKind::PlayerHead => true, - BlockKind::PlayerWallHead => true, - BlockKind::CreeperHead => true, - BlockKind::CreeperWallHead => true, - BlockKind::DragonHead => true, - BlockKind::DragonWallHead => true, - BlockKind::Anvil => true, - BlockKind::ChippedAnvil => true, - BlockKind::DamagedAnvil => true, - BlockKind::TrappedChest => true, - BlockKind::LightWeightedPressurePlate => true, - BlockKind::HeavyWeightedPressurePlate => true, - BlockKind::Comparator => true, - BlockKind::DaylightDetector => true, - BlockKind::RedstoneBlock => true, - BlockKind::NetherQuartzOre => false, - BlockKind::Hopper => true, - BlockKind::QuartzBlock => false, - BlockKind::ChiseledQuartzBlock => false, - BlockKind::QuartzPillar => false, - BlockKind::QuartzStairs => true, - BlockKind::ActivatorRail => true, - BlockKind::Dropper => false, - BlockKind::WhiteTerracotta => false, - BlockKind::OrangeTerracotta => false, - BlockKind::MagentaTerracotta => false, - BlockKind::LightBlueTerracotta => false, - BlockKind::YellowTerracotta => false, - BlockKind::LimeTerracotta => false, - BlockKind::PinkTerracotta => false, - BlockKind::GrayTerracotta => false, - BlockKind::LightGrayTerracotta => false, - BlockKind::CyanTerracotta => false, - BlockKind::PurpleTerracotta => false, - BlockKind::BlueTerracotta => false, - BlockKind::BrownTerracotta => false, - BlockKind::GreenTerracotta => false, - BlockKind::RedTerracotta => false, - BlockKind::BlackTerracotta => false, - BlockKind::WhiteStainedGlassPane => true, - BlockKind::OrangeStainedGlassPane => true, - BlockKind::MagentaStainedGlassPane => true, - BlockKind::LightBlueStainedGlassPane => true, - BlockKind::YellowStainedGlassPane => true, - BlockKind::LimeStainedGlassPane => true, - BlockKind::PinkStainedGlassPane => true, - BlockKind::GrayStainedGlassPane => true, - BlockKind::LightGrayStainedGlassPane => true, - BlockKind::CyanStainedGlassPane => true, - BlockKind::PurpleStainedGlassPane => true, - BlockKind::BlueStainedGlassPane => true, - BlockKind::BrownStainedGlassPane => true, - BlockKind::GreenStainedGlassPane => true, - BlockKind::RedStainedGlassPane => true, - BlockKind::BlackStainedGlassPane => true, - BlockKind::AcaciaStairs => true, - BlockKind::DarkOakStairs => true, - BlockKind::SlimeBlock => true, - BlockKind::Barrier => true, - BlockKind::IronTrapdoor => true, - BlockKind::Prismarine => false, - BlockKind::PrismarineBricks => false, - BlockKind::DarkPrismarine => false, - BlockKind::PrismarineStairs => true, - BlockKind::PrismarineBrickStairs => true, - BlockKind::DarkPrismarineStairs => true, - BlockKind::PrismarineSlab => true, - BlockKind::PrismarineBrickSlab => true, - BlockKind::DarkPrismarineSlab => true, - BlockKind::SeaLantern => true, - BlockKind::HayBlock => false, - BlockKind::WhiteCarpet => true, - BlockKind::OrangeCarpet => true, - BlockKind::MagentaCarpet => true, - BlockKind::LightBlueCarpet => true, - BlockKind::YellowCarpet => true, - BlockKind::LimeCarpet => true, - BlockKind::PinkCarpet => true, - BlockKind::GrayCarpet => true, - BlockKind::LightGrayCarpet => true, - BlockKind::CyanCarpet => true, - BlockKind::PurpleCarpet => true, - BlockKind::BlueCarpet => true, - BlockKind::BrownCarpet => true, - BlockKind::GreenCarpet => true, - BlockKind::RedCarpet => true, - BlockKind::BlackCarpet => true, - BlockKind::Terracotta => false, - BlockKind::CoalBlock => false, - BlockKind::PackedIce => false, - BlockKind::Sunflower => true, - BlockKind::Lilac => true, - BlockKind::RoseBush => true, - BlockKind::Peony => false, - BlockKind::TallGrass => true, - BlockKind::LargeFern => true, - BlockKind::WhiteBanner => true, - BlockKind::OrangeBanner => true, - BlockKind::MagentaBanner => true, - BlockKind::LightBlueBanner => true, - BlockKind::YellowBanner => true, - BlockKind::LimeBanner => true, - BlockKind::PinkBanner => true, - BlockKind::GrayBanner => true, - BlockKind::LightGrayBanner => true, - BlockKind::CyanBanner => true, - BlockKind::PurpleBanner => true, - BlockKind::BlueBanner => true, - BlockKind::BrownBanner => true, - BlockKind::GreenBanner => true, - BlockKind::RedBanner => true, - BlockKind::BlackBanner => true, - BlockKind::WhiteWallBanner => true, - BlockKind::OrangeWallBanner => true, - BlockKind::MagentaWallBanner => true, - BlockKind::LightBlueWallBanner => true, - BlockKind::YellowWallBanner => true, - BlockKind::LimeWallBanner => true, - BlockKind::PinkWallBanner => true, - BlockKind::GrayWallBanner => true, - BlockKind::LightGrayWallBanner => true, - BlockKind::CyanWallBanner => true, - BlockKind::PurpleWallBanner => true, - BlockKind::BlueWallBanner => true, - BlockKind::BrownWallBanner => true, - BlockKind::GreenWallBanner => true, - BlockKind::RedWallBanner => true, - BlockKind::BlackWallBanner => true, - BlockKind::RedSandstone => false, - BlockKind::ChiseledRedSandstone => false, - BlockKind::CutRedSandstone => false, - BlockKind::RedSandstoneStairs => true, - BlockKind::OakSlab => true, - BlockKind::SpruceSlab => true, - BlockKind::BirchSlab => true, - BlockKind::JungleSlab => true, - BlockKind::AcaciaSlab => true, - BlockKind::DarkOakSlab => true, - BlockKind::StoneSlab => true, - BlockKind::SmoothStoneSlab => true, - BlockKind::SandstoneSlab => true, - BlockKind::CutSandstoneSlab => true, - BlockKind::PetrifiedOakSlab => true, - BlockKind::CobblestoneSlab => true, - BlockKind::BrickSlab => true, - BlockKind::StoneBrickSlab => true, - BlockKind::NetherBrickSlab => true, - BlockKind::QuartzSlab => true, - BlockKind::RedSandstoneSlab => true, - BlockKind::CutRedSandstoneSlab => true, - BlockKind::PurpurSlab => true, - BlockKind::SmoothStone => false, - BlockKind::SmoothSandstone => false, - BlockKind::SmoothQuartz => false, - BlockKind::SmoothRedSandstone => false, - BlockKind::SpruceFenceGate => true, - BlockKind::BirchFenceGate => true, - BlockKind::JungleFenceGate => true, - BlockKind::AcaciaFenceGate => true, - BlockKind::DarkOakFenceGate => true, - BlockKind::SpruceFence => true, - BlockKind::BirchFence => true, - BlockKind::JungleFence => true, - BlockKind::AcaciaFence => true, - BlockKind::DarkOakFence => true, - BlockKind::SpruceDoor => true, - BlockKind::BirchDoor => true, - BlockKind::JungleDoor => true, - BlockKind::AcaciaDoor => true, - BlockKind::DarkOakDoor => true, - BlockKind::EndRod => false, - BlockKind::ChorusPlant => true, - BlockKind::ChorusFlower => true, - BlockKind::PurpurBlock => false, - BlockKind::PurpurPillar => false, - BlockKind::PurpurStairs => true, - BlockKind::EndStoneBricks => false, - BlockKind::Beetroots => true, - BlockKind::GrassPath => true, - BlockKind::EndGateway => false, - BlockKind::RepeatingCommandBlock => false, - BlockKind::ChainCommandBlock => false, - BlockKind::FrostedIce => true, - BlockKind::MagmaBlock => false, - BlockKind::NetherWartBlock => false, - BlockKind::RedNetherBricks => false, - BlockKind::BoneBlock => false, - BlockKind::StructureVoid => false, - BlockKind::Observer => true, - BlockKind::ShulkerBox => true, - BlockKind::WhiteShulkerBox => true, - BlockKind::OrangeShulkerBox => true, - BlockKind::MagentaShulkerBox => true, - BlockKind::LightBlueShulkerBox => true, - BlockKind::YellowShulkerBox => true, - BlockKind::LimeShulkerBox => true, - BlockKind::PinkShulkerBox => true, - BlockKind::GrayShulkerBox => true, - BlockKind::LightGrayShulkerBox => true, - BlockKind::CyanShulkerBox => true, - BlockKind::PurpleShulkerBox => true, - BlockKind::BlueShulkerBox => true, - BlockKind::BrownShulkerBox => true, - BlockKind::GreenShulkerBox => true, - BlockKind::RedShulkerBox => true, - BlockKind::BlackShulkerBox => true, - BlockKind::WhiteGlazedTerracotta => false, - BlockKind::OrangeGlazedTerracotta => false, - BlockKind::MagentaGlazedTerracotta => false, - BlockKind::LightBlueGlazedTerracotta => false, - BlockKind::YellowGlazedTerracotta => false, - BlockKind::LimeGlazedTerracotta => false, - BlockKind::PinkGlazedTerracotta => false, - BlockKind::GrayGlazedTerracotta => false, - BlockKind::LightGrayGlazedTerracotta => false, - BlockKind::CyanGlazedTerracotta => false, - BlockKind::PurpleGlazedTerracotta => false, - BlockKind::BlueGlazedTerracotta => false, - BlockKind::BrownGlazedTerracotta => false, - BlockKind::GreenGlazedTerracotta => false, - BlockKind::RedGlazedTerracotta => false, - BlockKind::BlackGlazedTerracotta => false, - BlockKind::WhiteConcrete => false, - BlockKind::OrangeConcrete => false, - BlockKind::MagentaConcrete => false, - BlockKind::LightBlueConcrete => false, - BlockKind::YellowConcrete => false, - BlockKind::LimeConcrete => false, - BlockKind::PinkConcrete => false, - BlockKind::GrayConcrete => false, - BlockKind::LightGrayConcrete => false, - BlockKind::CyanConcrete => false, - BlockKind::PurpleConcrete => false, - BlockKind::BlueConcrete => false, - BlockKind::BrownConcrete => false, - BlockKind::GreenConcrete => false, - BlockKind::RedConcrete => false, - BlockKind::BlackConcrete => false, - BlockKind::WhiteConcretePowder => false, - BlockKind::OrangeConcretePowder => false, - BlockKind::MagentaConcretePowder => false, - BlockKind::LightBlueConcretePowder => false, - BlockKind::YellowConcretePowder => false, - BlockKind::LimeConcretePowder => false, - BlockKind::PinkConcretePowder => false, - BlockKind::GrayConcretePowder => false, - BlockKind::LightGrayConcretePowder => false, - BlockKind::CyanConcretePowder => false, - BlockKind::PurpleConcretePowder => false, - BlockKind::BlueConcretePowder => false, - BlockKind::BrownConcretePowder => false, - BlockKind::GreenConcretePowder => false, - BlockKind::RedConcretePowder => false, - BlockKind::BlackConcretePowder => false, - BlockKind::Kelp => true, - BlockKind::KelpPlant => true, - BlockKind::DriedKelpBlock => false, - BlockKind::TurtleEgg => false, - BlockKind::DeadTubeCoralBlock => false, - BlockKind::DeadBrainCoralBlock => false, - BlockKind::DeadBubbleCoralBlock => false, - BlockKind::DeadFireCoralBlock => false, - BlockKind::DeadHornCoralBlock => false, - BlockKind::TubeCoralBlock => false, - BlockKind::BrainCoralBlock => false, - BlockKind::BubbleCoralBlock => false, - BlockKind::FireCoralBlock => false, - BlockKind::HornCoralBlock => false, - BlockKind::DeadTubeCoral => true, - BlockKind::DeadBrainCoral => true, - BlockKind::DeadBubbleCoral => true, - BlockKind::DeadFireCoral => true, - BlockKind::DeadHornCoral => true, - BlockKind::TubeCoral => true, - BlockKind::BrainCoral => true, - BlockKind::BubbleCoral => true, - BlockKind::FireCoral => true, - BlockKind::HornCoral => true, - BlockKind::DeadTubeCoralFan => true, - BlockKind::DeadBrainCoralFan => true, - BlockKind::DeadBubbleCoralFan => true, - BlockKind::DeadFireCoralFan => true, - BlockKind::DeadHornCoralFan => true, - BlockKind::TubeCoralFan => true, - BlockKind::BrainCoralFan => true, - BlockKind::BubbleCoralFan => true, - BlockKind::FireCoralFan => true, - BlockKind::HornCoralFan => true, - BlockKind::DeadTubeCoralWallFan => true, - BlockKind::DeadBrainCoralWallFan => true, - BlockKind::DeadBubbleCoralWallFan => true, - BlockKind::DeadFireCoralWallFan => true, - BlockKind::DeadHornCoralWallFan => true, - BlockKind::TubeCoralWallFan => true, - BlockKind::BrainCoralWallFan => true, - BlockKind::BubbleCoralWallFan => true, - BlockKind::FireCoralWallFan => true, - BlockKind::HornCoralWallFan => true, - BlockKind::SeaPickle => false, - BlockKind::BlueIce => false, - BlockKind::Conduit => false, - BlockKind::BambooSapling => false, - BlockKind::Bamboo => false, - BlockKind::PottedBamboo => true, - BlockKind::VoidAir => true, - BlockKind::CaveAir => true, - BlockKind::BubbleColumn => true, - BlockKind::PolishedGraniteStairs => true, - BlockKind::SmoothRedSandstoneStairs => true, - BlockKind::MossyStoneBrickStairs => true, - BlockKind::PolishedDioriteStairs => true, - BlockKind::MossyCobblestoneStairs => true, - BlockKind::EndStoneBrickStairs => true, - BlockKind::StoneStairs => true, - BlockKind::SmoothSandstoneStairs => true, - BlockKind::SmoothQuartzStairs => true, - BlockKind::GraniteStairs => true, - BlockKind::AndesiteStairs => true, - BlockKind::RedNetherBrickStairs => true, - BlockKind::PolishedAndesiteStairs => true, - BlockKind::DioriteStairs => true, - BlockKind::PolishedGraniteSlab => true, - BlockKind::SmoothRedSandstoneSlab => true, - BlockKind::MossyStoneBrickSlab => true, - BlockKind::PolishedDioriteSlab => true, - BlockKind::MossyCobblestoneSlab => true, - BlockKind::EndStoneBrickSlab => true, - BlockKind::SmoothSandstoneSlab => true, - BlockKind::SmoothQuartzSlab => true, - BlockKind::GraniteSlab => true, - BlockKind::AndesiteSlab => true, - BlockKind::RedNetherBrickSlab => true, - BlockKind::PolishedAndesiteSlab => true, - BlockKind::DioriteSlab => true, - BlockKind::BrickWall => true, - BlockKind::PrismarineWall => true, - BlockKind::RedSandstoneWall => true, - BlockKind::MossyStoneBrickWall => true, - BlockKind::GraniteWall => true, - BlockKind::StoneBrickWall => true, - BlockKind::NetherBrickWall => true, - BlockKind::AndesiteWall => true, - BlockKind::RedNetherBrickWall => true, - BlockKind::SandstoneWall => true, - BlockKind::EndStoneBrickWall => true, - BlockKind::DioriteWall => true, - BlockKind::Scaffolding => true, - BlockKind::Loom => false, - BlockKind::Barrel => true, - BlockKind::Smoker => true, - BlockKind::BlastFurnace => true, - BlockKind::CartographyTable => false, - BlockKind::FletchingTable => false, - BlockKind::Grindstone => true, - BlockKind::Lectern => false, - BlockKind::SmithingTable => false, - BlockKind::Stonecutter => false, - BlockKind::Bell => true, - BlockKind::Lantern => true, - BlockKind::SoulLantern => true, - BlockKind::Campfire => false, - BlockKind::SoulCampfire => false, - BlockKind::SweetBerryBush => true, - BlockKind::WarpedStem => false, - BlockKind::StrippedWarpedStem => false, - BlockKind::WarpedHyphae => false, - BlockKind::StrippedWarpedHyphae => false, - BlockKind::WarpedNylium => false, - BlockKind::WarpedFungus => true, - BlockKind::WarpedWartBlock => false, - BlockKind::WarpedRoots => true, - BlockKind::NetherSprouts => true, - BlockKind::CrimsonStem => false, - BlockKind::StrippedCrimsonStem => false, - BlockKind::CrimsonHyphae => false, - BlockKind::StrippedCrimsonHyphae => false, - BlockKind::CrimsonNylium => false, - BlockKind::CrimsonFungus => true, - BlockKind::Shroomlight => false, - BlockKind::WeepingVines => true, - BlockKind::WeepingVinesPlant => true, - BlockKind::TwistingVines => true, - BlockKind::TwistingVinesPlant => true, - BlockKind::CrimsonRoots => true, - BlockKind::CrimsonPlanks => false, - BlockKind::WarpedPlanks => false, - BlockKind::CrimsonSlab => true, - BlockKind::WarpedSlab => true, - BlockKind::CrimsonPressurePlate => true, - BlockKind::WarpedPressurePlate => true, - BlockKind::CrimsonFence => true, - BlockKind::WarpedFence => true, - BlockKind::CrimsonTrapdoor => true, - BlockKind::WarpedTrapdoor => true, - BlockKind::CrimsonFenceGate => true, - BlockKind::WarpedFenceGate => true, - BlockKind::CrimsonStairs => true, - BlockKind::WarpedStairs => true, - BlockKind::CrimsonButton => true, - BlockKind::WarpedButton => true, - BlockKind::CrimsonDoor => true, - BlockKind::WarpedDoor => true, - BlockKind::CrimsonSign => true, - BlockKind::WarpedSign => true, - BlockKind::CrimsonWallSign => true, - BlockKind::WarpedWallSign => true, - BlockKind::StructureBlock => false, - BlockKind::Jigsaw => false, - BlockKind::Composter => true, - BlockKind::Target => true, - BlockKind::BeeNest => false, - BlockKind::Beehive => false, - BlockKind::HoneyBlock => true, - BlockKind::HoneycombBlock => false, - BlockKind::NetheriteBlock => false, - BlockKind::AncientDebris => false, - BlockKind::CryingObsidian => false, - BlockKind::RespawnAnchor => false, - BlockKind::PottedCrimsonFungus => true, - BlockKind::PottedWarpedFungus => true, - BlockKind::PottedCrimsonRoots => true, - BlockKind::PottedWarpedRoots => true, - BlockKind::Lodestone => false, - BlockKind::Blackstone => false, - BlockKind::BlackstoneStairs => true, - BlockKind::BlackstoneWall => true, - BlockKind::BlackstoneSlab => true, - BlockKind::PolishedBlackstone => false, - BlockKind::PolishedBlackstoneBricks => false, - BlockKind::CrackedPolishedBlackstoneBricks => false, - BlockKind::ChiseledPolishedBlackstone => true, - BlockKind::PolishedBlackstoneBrickSlab => true, - BlockKind::PolishedBlackstoneBrickStairs => true, - BlockKind::PolishedBlackstoneBrickWall => true, - BlockKind::GildedBlackstone => false, - BlockKind::PolishedBlackstoneStairs => true, - BlockKind::PolishedBlackstoneSlab => true, - BlockKind::PolishedBlackstonePressurePlate => true, - BlockKind::PolishedBlackstoneButton => true, - BlockKind::PolishedBlackstoneWall => true, - BlockKind::ChiseledNetherBricks => false, - BlockKind::CrackedNetherBricks => false, - BlockKind::QuartzBricks => false, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl BlockKind { - /// Returns the `light_emission` property of this `BlockKind`. - pub fn light_emission(&self) -> u8 { - match self { - BlockKind::Air => 0, - BlockKind::Stone => 0, - BlockKind::Granite => 0, - BlockKind::PolishedGranite => 0, - BlockKind::Diorite => 0, - BlockKind::PolishedDiorite => 0, - BlockKind::Andesite => 0, - BlockKind::PolishedAndesite => 0, - BlockKind::GrassBlock => 0, - BlockKind::Dirt => 0, - BlockKind::CoarseDirt => 0, - BlockKind::Podzol => 0, - BlockKind::Cobblestone => 0, - BlockKind::OakPlanks => 0, - BlockKind::SprucePlanks => 0, - BlockKind::BirchPlanks => 0, - BlockKind::JunglePlanks => 0, - BlockKind::AcaciaPlanks => 0, - BlockKind::DarkOakPlanks => 0, - BlockKind::OakSapling => 0, - BlockKind::SpruceSapling => 0, - BlockKind::BirchSapling => 0, - BlockKind::JungleSapling => 0, - BlockKind::AcaciaSapling => 0, - BlockKind::DarkOakSapling => 0, - BlockKind::Bedrock => 0, - BlockKind::Water => 0, - BlockKind::Lava => 15, - BlockKind::Sand => 0, - BlockKind::RedSand => 0, - BlockKind::Gravel => 0, - BlockKind::GoldOre => 0, - BlockKind::IronOre => 0, - BlockKind::CoalOre => 0, - BlockKind::NetherGoldOre => 0, - BlockKind::OakLog => 0, - BlockKind::SpruceLog => 0, - BlockKind::BirchLog => 0, - BlockKind::JungleLog => 0, - BlockKind::AcaciaLog => 0, - BlockKind::DarkOakLog => 0, - BlockKind::StrippedSpruceLog => 0, - BlockKind::StrippedBirchLog => 0, - BlockKind::StrippedJungleLog => 0, - BlockKind::StrippedAcaciaLog => 0, - BlockKind::StrippedDarkOakLog => 0, - BlockKind::StrippedOakLog => 0, - BlockKind::OakWood => 0, - BlockKind::SpruceWood => 0, - BlockKind::BirchWood => 0, - BlockKind::JungleWood => 0, - BlockKind::AcaciaWood => 0, - BlockKind::DarkOakWood => 0, - BlockKind::StrippedOakWood => 0, - BlockKind::StrippedSpruceWood => 0, - BlockKind::StrippedBirchWood => 0, - BlockKind::StrippedJungleWood => 0, - BlockKind::StrippedAcaciaWood => 0, - BlockKind::StrippedDarkOakWood => 0, - BlockKind::OakLeaves => 0, - BlockKind::SpruceLeaves => 0, - BlockKind::BirchLeaves => 0, - BlockKind::JungleLeaves => 0, - BlockKind::AcaciaLeaves => 0, - BlockKind::DarkOakLeaves => 0, - BlockKind::Sponge => 0, - BlockKind::WetSponge => 0, - BlockKind::Glass => 0, - BlockKind::LapisOre => 0, - BlockKind::LapisBlock => 0, - BlockKind::Dispenser => 0, - BlockKind::Sandstone => 0, - BlockKind::ChiseledSandstone => 0, - BlockKind::CutSandstone => 0, - BlockKind::NoteBlock => 0, - BlockKind::WhiteBed => 0, - BlockKind::OrangeBed => 0, - BlockKind::MagentaBed => 0, - BlockKind::LightBlueBed => 0, - BlockKind::YellowBed => 0, - BlockKind::LimeBed => 0, - BlockKind::PinkBed => 0, - BlockKind::GrayBed => 0, - BlockKind::LightGrayBed => 0, - BlockKind::CyanBed => 0, - BlockKind::PurpleBed => 0, - BlockKind::BlueBed => 0, - BlockKind::BrownBed => 0, - BlockKind::GreenBed => 0, - BlockKind::RedBed => 0, - BlockKind::BlackBed => 0, - BlockKind::PoweredRail => 0, - BlockKind::DetectorRail => 0, - BlockKind::StickyPiston => 0, - BlockKind::Cobweb => 0, - BlockKind::Grass => 0, - BlockKind::Fern => 0, - BlockKind::DeadBush => 0, - BlockKind::Seagrass => 0, - BlockKind::TallSeagrass => 0, - BlockKind::Piston => 0, - BlockKind::PistonHead => 0, - BlockKind::WhiteWool => 0, - BlockKind::OrangeWool => 0, - BlockKind::MagentaWool => 0, - BlockKind::LightBlueWool => 0, - BlockKind::YellowWool => 0, - BlockKind::LimeWool => 0, - BlockKind::PinkWool => 0, - BlockKind::GrayWool => 0, - BlockKind::LightGrayWool => 0, - BlockKind::CyanWool => 0, - BlockKind::PurpleWool => 0, - BlockKind::BlueWool => 0, - BlockKind::BrownWool => 0, - BlockKind::GreenWool => 0, - BlockKind::RedWool => 0, - BlockKind::BlackWool => 0, - BlockKind::MovingPiston => 0, - BlockKind::Dandelion => 0, - BlockKind::Poppy => 0, - BlockKind::BlueOrchid => 0, - BlockKind::Allium => 0, - BlockKind::AzureBluet => 0, - BlockKind::RedTulip => 0, - BlockKind::OrangeTulip => 0, - BlockKind::WhiteTulip => 0, - BlockKind::PinkTulip => 0, - BlockKind::OxeyeDaisy => 0, - BlockKind::Cornflower => 0, - BlockKind::WitherRose => 0, - BlockKind::LilyOfTheValley => 0, - BlockKind::BrownMushroom => 1, - BlockKind::RedMushroom => 1, - BlockKind::GoldBlock => 0, - BlockKind::IronBlock => 0, - BlockKind::Bricks => 0, - BlockKind::Tnt => 0, - BlockKind::Bookshelf => 0, - BlockKind::MossyCobblestone => 0, - BlockKind::Obsidian => 0, - BlockKind::Torch => 14, - BlockKind::WallTorch => 14, - BlockKind::Fire => 15, - BlockKind::SoulFire => 0, - BlockKind::Spawner => 0, - BlockKind::OakStairs => 0, - BlockKind::Chest => 0, - BlockKind::RedstoneWire => 0, - BlockKind::DiamondOre => 0, - BlockKind::DiamondBlock => 0, - BlockKind::CraftingTable => 0, - BlockKind::Wheat => 0, - BlockKind::Farmland => 0, - BlockKind::Furnace => 13, - BlockKind::OakSign => 0, - BlockKind::SpruceSign => 0, - BlockKind::BirchSign => 0, - BlockKind::AcaciaSign => 0, - BlockKind::JungleSign => 0, - BlockKind::DarkOakSign => 0, - BlockKind::OakDoor => 0, - BlockKind::Ladder => 0, - BlockKind::Rail => 0, - BlockKind::CobblestoneStairs => 0, - BlockKind::OakWallSign => 0, - BlockKind::SpruceWallSign => 0, - BlockKind::BirchWallSign => 0, - BlockKind::AcaciaWallSign => 0, - BlockKind::JungleWallSign => 0, - BlockKind::DarkOakWallSign => 0, - BlockKind::Lever => 0, - BlockKind::StonePressurePlate => 0, - BlockKind::IronDoor => 0, - BlockKind::OakPressurePlate => 0, - BlockKind::SprucePressurePlate => 0, - BlockKind::BirchPressurePlate => 0, - BlockKind::JunglePressurePlate => 0, - BlockKind::AcaciaPressurePlate => 0, - BlockKind::DarkOakPressurePlate => 0, - BlockKind::RedstoneOre => 9, - BlockKind::RedstoneTorch => 7, - BlockKind::RedstoneWallTorch => 7, - BlockKind::StoneButton => 0, - BlockKind::Snow => 0, - BlockKind::Ice => 0, - BlockKind::SnowBlock => 0, - BlockKind::Cactus => 0, - BlockKind::Clay => 0, - BlockKind::SugarCane => 0, - BlockKind::Jukebox => 0, - BlockKind::OakFence => 0, - BlockKind::Pumpkin => 0, - BlockKind::Netherrack => 0, - BlockKind::SoulSand => 0, - BlockKind::SoulSoil => 0, - BlockKind::Basalt => 0, - BlockKind::PolishedBasalt => 0, - BlockKind::SoulTorch => 0, - BlockKind::SoulWallTorch => 0, - BlockKind::Glowstone => 15, - BlockKind::NetherPortal => 11, - BlockKind::CarvedPumpkin => 0, - BlockKind::JackOLantern => 15, - BlockKind::Cake => 0, - BlockKind::Repeater => 0, - BlockKind::WhiteStainedGlass => 0, - BlockKind::OrangeStainedGlass => 0, - BlockKind::MagentaStainedGlass => 0, - BlockKind::LightBlueStainedGlass => 0, - BlockKind::YellowStainedGlass => 0, - BlockKind::LimeStainedGlass => 0, - BlockKind::PinkStainedGlass => 0, - BlockKind::GrayStainedGlass => 0, - BlockKind::LightGrayStainedGlass => 0, - BlockKind::CyanStainedGlass => 0, - BlockKind::PurpleStainedGlass => 0, - BlockKind::BlueStainedGlass => 0, - BlockKind::BrownStainedGlass => 0, - BlockKind::GreenStainedGlass => 0, - BlockKind::RedStainedGlass => 0, - BlockKind::BlackStainedGlass => 0, - BlockKind::OakTrapdoor => 0, - BlockKind::SpruceTrapdoor => 0, - BlockKind::BirchTrapdoor => 0, - BlockKind::JungleTrapdoor => 0, - BlockKind::AcaciaTrapdoor => 0, - BlockKind::DarkOakTrapdoor => 0, - BlockKind::StoneBricks => 0, - BlockKind::MossyStoneBricks => 0, - BlockKind::CrackedStoneBricks => 0, - BlockKind::ChiseledStoneBricks => 0, - BlockKind::InfestedStone => 0, - BlockKind::InfestedCobblestone => 0, - BlockKind::InfestedStoneBricks => 0, - BlockKind::InfestedMossyStoneBricks => 0, - BlockKind::InfestedCrackedStoneBricks => 0, - BlockKind::InfestedChiseledStoneBricks => 0, - BlockKind::BrownMushroomBlock => 0, - BlockKind::RedMushroomBlock => 0, - BlockKind::MushroomStem => 0, - BlockKind::IronBars => 0, - BlockKind::Chain => 0, - BlockKind::GlassPane => 0, - BlockKind::Melon => 0, - BlockKind::AttachedPumpkinStem => 0, - BlockKind::AttachedMelonStem => 0, - BlockKind::PumpkinStem => 0, - BlockKind::MelonStem => 0, - BlockKind::Vine => 0, - BlockKind::OakFenceGate => 0, - BlockKind::BrickStairs => 0, - BlockKind::StoneBrickStairs => 0, - BlockKind::Mycelium => 0, - BlockKind::LilyPad => 0, - BlockKind::NetherBricks => 0, - BlockKind::NetherBrickFence => 0, - BlockKind::NetherBrickStairs => 0, - BlockKind::NetherWart => 0, - BlockKind::EnchantingTable => 0, - BlockKind::BrewingStand => 1, - BlockKind::Cauldron => 0, - BlockKind::EndPortal => 15, - BlockKind::EndPortalFrame => 1, - BlockKind::EndStone => 0, - BlockKind::DragonEgg => 0, - BlockKind::RedstoneLamp => 15, - BlockKind::Cocoa => 0, - BlockKind::SandstoneStairs => 0, - BlockKind::EmeraldOre => 0, - BlockKind::EnderChest => 0, - BlockKind::TripwireHook => 0, - BlockKind::Tripwire => 0, - BlockKind::EmeraldBlock => 0, - BlockKind::SpruceStairs => 0, - BlockKind::BirchStairs => 0, - BlockKind::JungleStairs => 0, - BlockKind::CommandBlock => 0, - BlockKind::Beacon => 15, - BlockKind::CobblestoneWall => 0, - BlockKind::MossyCobblestoneWall => 0, - BlockKind::FlowerPot => 0, - BlockKind::PottedOakSapling => 0, - BlockKind::PottedSpruceSapling => 0, - BlockKind::PottedBirchSapling => 0, - BlockKind::PottedJungleSapling => 0, - BlockKind::PottedAcaciaSapling => 0, - BlockKind::PottedDarkOakSapling => 0, - BlockKind::PottedFern => 0, - BlockKind::PottedDandelion => 0, - BlockKind::PottedPoppy => 0, - BlockKind::PottedBlueOrchid => 0, - BlockKind::PottedAllium => 0, - BlockKind::PottedAzureBluet => 0, - BlockKind::PottedRedTulip => 0, - BlockKind::PottedOrangeTulip => 0, - BlockKind::PottedWhiteTulip => 0, - BlockKind::PottedPinkTulip => 0, - BlockKind::PottedOxeyeDaisy => 0, - BlockKind::PottedCornflower => 0, - BlockKind::PottedLilyOfTheValley => 0, - BlockKind::PottedWitherRose => 0, - BlockKind::PottedRedMushroom => 0, - BlockKind::PottedBrownMushroom => 0, - BlockKind::PottedDeadBush => 0, - BlockKind::PottedCactus => 0, - BlockKind::Carrots => 0, - BlockKind::Potatoes => 0, - BlockKind::OakButton => 0, - BlockKind::SpruceButton => 0, - BlockKind::BirchButton => 0, - BlockKind::JungleButton => 0, - BlockKind::AcaciaButton => 0, - BlockKind::DarkOakButton => 0, - BlockKind::SkeletonSkull => 0, - BlockKind::SkeletonWallSkull => 0, - BlockKind::WitherSkeletonSkull => 0, - BlockKind::WitherSkeletonWallSkull => 0, - BlockKind::ZombieHead => 0, - BlockKind::ZombieWallHead => 0, - BlockKind::PlayerHead => 0, - BlockKind::PlayerWallHead => 0, - BlockKind::CreeperHead => 0, - BlockKind::CreeperWallHead => 0, - BlockKind::DragonHead => 0, - BlockKind::DragonWallHead => 0, - BlockKind::Anvil => 0, - BlockKind::ChippedAnvil => 0, - BlockKind::DamagedAnvil => 0, - BlockKind::TrappedChest => 0, - BlockKind::LightWeightedPressurePlate => 0, - BlockKind::HeavyWeightedPressurePlate => 0, - BlockKind::Comparator => 0, - BlockKind::DaylightDetector => 0, - BlockKind::RedstoneBlock => 0, - BlockKind::NetherQuartzOre => 0, - BlockKind::Hopper => 0, - BlockKind::QuartzBlock => 0, - BlockKind::ChiseledQuartzBlock => 0, - BlockKind::QuartzPillar => 0, - BlockKind::QuartzStairs => 0, - BlockKind::ActivatorRail => 0, - BlockKind::Dropper => 0, - BlockKind::WhiteTerracotta => 0, - BlockKind::OrangeTerracotta => 0, - BlockKind::MagentaTerracotta => 0, - BlockKind::LightBlueTerracotta => 0, - BlockKind::YellowTerracotta => 0, - BlockKind::LimeTerracotta => 0, - BlockKind::PinkTerracotta => 0, - BlockKind::GrayTerracotta => 0, - BlockKind::LightGrayTerracotta => 0, - BlockKind::CyanTerracotta => 0, - BlockKind::PurpleTerracotta => 0, - BlockKind::BlueTerracotta => 0, - BlockKind::BrownTerracotta => 0, - BlockKind::GreenTerracotta => 0, - BlockKind::RedTerracotta => 0, - BlockKind::BlackTerracotta => 0, - BlockKind::WhiteStainedGlassPane => 0, - BlockKind::OrangeStainedGlassPane => 0, - BlockKind::MagentaStainedGlassPane => 0, - BlockKind::LightBlueStainedGlassPane => 0, - BlockKind::YellowStainedGlassPane => 0, - BlockKind::LimeStainedGlassPane => 0, - BlockKind::PinkStainedGlassPane => 0, - BlockKind::GrayStainedGlassPane => 0, - BlockKind::LightGrayStainedGlassPane => 0, - BlockKind::CyanStainedGlassPane => 0, - BlockKind::PurpleStainedGlassPane => 0, - BlockKind::BlueStainedGlassPane => 0, - BlockKind::BrownStainedGlassPane => 0, - BlockKind::GreenStainedGlassPane => 0, - BlockKind::RedStainedGlassPane => 0, - BlockKind::BlackStainedGlassPane => 0, - BlockKind::AcaciaStairs => 0, - BlockKind::DarkOakStairs => 0, - BlockKind::SlimeBlock => 0, - BlockKind::Barrier => 0, - BlockKind::IronTrapdoor => 0, - BlockKind::Prismarine => 0, - BlockKind::PrismarineBricks => 0, - BlockKind::DarkPrismarine => 0, - BlockKind::PrismarineStairs => 0, - BlockKind::PrismarineBrickStairs => 0, - BlockKind::DarkPrismarineStairs => 0, - BlockKind::PrismarineSlab => 0, - BlockKind::PrismarineBrickSlab => 0, - BlockKind::DarkPrismarineSlab => 0, - BlockKind::SeaLantern => 15, - BlockKind::HayBlock => 0, - BlockKind::WhiteCarpet => 0, - BlockKind::OrangeCarpet => 0, - BlockKind::MagentaCarpet => 0, - BlockKind::LightBlueCarpet => 0, - BlockKind::YellowCarpet => 0, - BlockKind::LimeCarpet => 0, - BlockKind::PinkCarpet => 0, - BlockKind::GrayCarpet => 0, - BlockKind::LightGrayCarpet => 0, - BlockKind::CyanCarpet => 0, - BlockKind::PurpleCarpet => 0, - BlockKind::BlueCarpet => 0, - BlockKind::BrownCarpet => 0, - BlockKind::GreenCarpet => 0, - BlockKind::RedCarpet => 0, - BlockKind::BlackCarpet => 0, - BlockKind::Terracotta => 0, - BlockKind::CoalBlock => 0, - BlockKind::PackedIce => 0, - BlockKind::Sunflower => 0, - BlockKind::Lilac => 0, - BlockKind::RoseBush => 0, - BlockKind::Peony => 0, - BlockKind::TallGrass => 0, - BlockKind::LargeFern => 0, - BlockKind::WhiteBanner => 0, - BlockKind::OrangeBanner => 0, - BlockKind::MagentaBanner => 0, - BlockKind::LightBlueBanner => 0, - BlockKind::YellowBanner => 0, - BlockKind::LimeBanner => 0, - BlockKind::PinkBanner => 0, - BlockKind::GrayBanner => 0, - BlockKind::LightGrayBanner => 0, - BlockKind::CyanBanner => 0, - BlockKind::PurpleBanner => 0, - BlockKind::BlueBanner => 0, - BlockKind::BrownBanner => 0, - BlockKind::GreenBanner => 0, - BlockKind::RedBanner => 0, - BlockKind::BlackBanner => 0, - BlockKind::WhiteWallBanner => 0, - BlockKind::OrangeWallBanner => 0, - BlockKind::MagentaWallBanner => 0, - BlockKind::LightBlueWallBanner => 0, - BlockKind::YellowWallBanner => 0, - BlockKind::LimeWallBanner => 0, - BlockKind::PinkWallBanner => 0, - BlockKind::GrayWallBanner => 0, - BlockKind::LightGrayWallBanner => 0, - BlockKind::CyanWallBanner => 0, - BlockKind::PurpleWallBanner => 0, - BlockKind::BlueWallBanner => 0, - BlockKind::BrownWallBanner => 0, - BlockKind::GreenWallBanner => 0, - BlockKind::RedWallBanner => 0, - BlockKind::BlackWallBanner => 0, - BlockKind::RedSandstone => 0, - BlockKind::ChiseledRedSandstone => 0, - BlockKind::CutRedSandstone => 0, - BlockKind::RedSandstoneStairs => 0, - BlockKind::OakSlab => 0, - BlockKind::SpruceSlab => 0, - BlockKind::BirchSlab => 0, - BlockKind::JungleSlab => 0, - BlockKind::AcaciaSlab => 0, - BlockKind::DarkOakSlab => 0, - BlockKind::StoneSlab => 0, - BlockKind::SmoothStoneSlab => 0, - BlockKind::SandstoneSlab => 0, - BlockKind::CutSandstoneSlab => 0, - BlockKind::PetrifiedOakSlab => 0, - BlockKind::CobblestoneSlab => 0, - BlockKind::BrickSlab => 0, - BlockKind::StoneBrickSlab => 0, - BlockKind::NetherBrickSlab => 0, - BlockKind::QuartzSlab => 0, - BlockKind::RedSandstoneSlab => 0, - BlockKind::CutRedSandstoneSlab => 0, - BlockKind::PurpurSlab => 0, - BlockKind::SmoothStone => 0, - BlockKind::SmoothSandstone => 0, - BlockKind::SmoothQuartz => 0, - BlockKind::SmoothRedSandstone => 0, - BlockKind::SpruceFenceGate => 0, - BlockKind::BirchFenceGate => 0, - BlockKind::JungleFenceGate => 0, - BlockKind::AcaciaFenceGate => 0, - BlockKind::DarkOakFenceGate => 0, - BlockKind::SpruceFence => 0, - BlockKind::BirchFence => 0, - BlockKind::JungleFence => 0, - BlockKind::AcaciaFence => 0, - BlockKind::DarkOakFence => 0, - BlockKind::SpruceDoor => 0, - BlockKind::BirchDoor => 0, - BlockKind::JungleDoor => 0, - BlockKind::AcaciaDoor => 0, - BlockKind::DarkOakDoor => 0, - BlockKind::EndRod => 14, - BlockKind::ChorusPlant => 0, - BlockKind::ChorusFlower => 0, - BlockKind::PurpurBlock => 0, - BlockKind::PurpurPillar => 0, - BlockKind::PurpurStairs => 0, - BlockKind::EndStoneBricks => 0, - BlockKind::Beetroots => 0, - BlockKind::GrassPath => 0, - BlockKind::EndGateway => 15, - BlockKind::RepeatingCommandBlock => 0, - BlockKind::ChainCommandBlock => 0, - BlockKind::FrostedIce => 0, - BlockKind::MagmaBlock => 0, - BlockKind::NetherWartBlock => 0, - BlockKind::RedNetherBricks => 0, - BlockKind::BoneBlock => 0, - BlockKind::StructureVoid => 0, - BlockKind::Observer => 0, - BlockKind::ShulkerBox => 0, - BlockKind::WhiteShulkerBox => 0, - BlockKind::OrangeShulkerBox => 0, - BlockKind::MagentaShulkerBox => 0, - BlockKind::LightBlueShulkerBox => 0, - BlockKind::YellowShulkerBox => 0, - BlockKind::LimeShulkerBox => 0, - BlockKind::PinkShulkerBox => 0, - BlockKind::GrayShulkerBox => 0, - BlockKind::LightGrayShulkerBox => 0, - BlockKind::CyanShulkerBox => 0, - BlockKind::PurpleShulkerBox => 0, - BlockKind::BlueShulkerBox => 0, - BlockKind::BrownShulkerBox => 0, - BlockKind::GreenShulkerBox => 0, - BlockKind::RedShulkerBox => 0, - BlockKind::BlackShulkerBox => 0, - BlockKind::WhiteGlazedTerracotta => 0, - BlockKind::OrangeGlazedTerracotta => 0, - BlockKind::MagentaGlazedTerracotta => 0, - BlockKind::LightBlueGlazedTerracotta => 0, - BlockKind::YellowGlazedTerracotta => 0, - BlockKind::LimeGlazedTerracotta => 0, - BlockKind::PinkGlazedTerracotta => 0, - BlockKind::GrayGlazedTerracotta => 0, - BlockKind::LightGrayGlazedTerracotta => 0, - BlockKind::CyanGlazedTerracotta => 0, - BlockKind::PurpleGlazedTerracotta => 0, - BlockKind::BlueGlazedTerracotta => 0, - BlockKind::BrownGlazedTerracotta => 0, - BlockKind::GreenGlazedTerracotta => 0, - BlockKind::RedGlazedTerracotta => 0, - BlockKind::BlackGlazedTerracotta => 0, - BlockKind::WhiteConcrete => 0, - BlockKind::OrangeConcrete => 0, - BlockKind::MagentaConcrete => 0, - BlockKind::LightBlueConcrete => 0, - BlockKind::YellowConcrete => 0, - BlockKind::LimeConcrete => 0, - BlockKind::PinkConcrete => 0, - BlockKind::GrayConcrete => 0, - BlockKind::LightGrayConcrete => 0, - BlockKind::CyanConcrete => 0, - BlockKind::PurpleConcrete => 0, - BlockKind::BlueConcrete => 0, - BlockKind::BrownConcrete => 0, - BlockKind::GreenConcrete => 0, - BlockKind::RedConcrete => 0, - BlockKind::BlackConcrete => 0, - BlockKind::WhiteConcretePowder => 0, - BlockKind::OrangeConcretePowder => 0, - BlockKind::MagentaConcretePowder => 0, - BlockKind::LightBlueConcretePowder => 0, - BlockKind::YellowConcretePowder => 0, - BlockKind::LimeConcretePowder => 0, - BlockKind::PinkConcretePowder => 0, - BlockKind::GrayConcretePowder => 0, - BlockKind::LightGrayConcretePowder => 0, - BlockKind::CyanConcretePowder => 0, - BlockKind::PurpleConcretePowder => 0, - BlockKind::BlueConcretePowder => 0, - BlockKind::BrownConcretePowder => 0, - BlockKind::GreenConcretePowder => 0, - BlockKind::RedConcretePowder => 0, - BlockKind::BlackConcretePowder => 0, - BlockKind::Kelp => 0, - BlockKind::KelpPlant => 0, - BlockKind::DriedKelpBlock => 0, - BlockKind::TurtleEgg => 0, - BlockKind::DeadTubeCoralBlock => 0, - BlockKind::DeadBrainCoralBlock => 0, - BlockKind::DeadBubbleCoralBlock => 0, - BlockKind::DeadFireCoralBlock => 0, - BlockKind::DeadHornCoralBlock => 0, - BlockKind::TubeCoralBlock => 0, - BlockKind::BrainCoralBlock => 0, - BlockKind::BubbleCoralBlock => 0, - BlockKind::FireCoralBlock => 0, - BlockKind::HornCoralBlock => 0, - BlockKind::DeadTubeCoral => 0, - BlockKind::DeadBrainCoral => 0, - BlockKind::DeadBubbleCoral => 0, - BlockKind::DeadFireCoral => 0, - BlockKind::DeadHornCoral => 0, - BlockKind::TubeCoral => 0, - BlockKind::BrainCoral => 0, - BlockKind::BubbleCoral => 0, - BlockKind::FireCoral => 0, - BlockKind::HornCoral => 0, - BlockKind::DeadTubeCoralFan => 0, - BlockKind::DeadBrainCoralFan => 0, - BlockKind::DeadBubbleCoralFan => 0, - BlockKind::DeadFireCoralFan => 0, - BlockKind::DeadHornCoralFan => 0, - BlockKind::TubeCoralFan => 0, - BlockKind::BrainCoralFan => 0, - BlockKind::BubbleCoralFan => 0, - BlockKind::FireCoralFan => 0, - BlockKind::HornCoralFan => 0, - BlockKind::DeadTubeCoralWallFan => 0, - BlockKind::DeadBrainCoralWallFan => 0, - BlockKind::DeadBubbleCoralWallFan => 0, - BlockKind::DeadFireCoralWallFan => 0, - BlockKind::DeadHornCoralWallFan => 0, - BlockKind::TubeCoralWallFan => 0, - BlockKind::BrainCoralWallFan => 0, - BlockKind::BubbleCoralWallFan => 0, - BlockKind::FireCoralWallFan => 0, - BlockKind::HornCoralWallFan => 0, - BlockKind::SeaPickle => 0, - BlockKind::BlueIce => 0, - BlockKind::Conduit => 0, - BlockKind::BambooSapling => 0, - BlockKind::Bamboo => 0, - BlockKind::PottedBamboo => 0, - BlockKind::VoidAir => 0, - BlockKind::CaveAir => 0, - BlockKind::BubbleColumn => 0, - BlockKind::PolishedGraniteStairs => 0, - BlockKind::SmoothRedSandstoneStairs => 0, - BlockKind::MossyStoneBrickStairs => 0, - BlockKind::PolishedDioriteStairs => 0, - BlockKind::MossyCobblestoneStairs => 0, - BlockKind::EndStoneBrickStairs => 0, - BlockKind::StoneStairs => 0, - BlockKind::SmoothSandstoneStairs => 0, - BlockKind::SmoothQuartzStairs => 0, - BlockKind::GraniteStairs => 0, - BlockKind::AndesiteStairs => 0, - BlockKind::RedNetherBrickStairs => 0, - BlockKind::PolishedAndesiteStairs => 0, - BlockKind::DioriteStairs => 0, - BlockKind::PolishedGraniteSlab => 0, - BlockKind::SmoothRedSandstoneSlab => 0, - BlockKind::MossyStoneBrickSlab => 0, - BlockKind::PolishedDioriteSlab => 0, - BlockKind::MossyCobblestoneSlab => 0, - BlockKind::EndStoneBrickSlab => 0, - BlockKind::SmoothSandstoneSlab => 0, - BlockKind::SmoothQuartzSlab => 0, - BlockKind::GraniteSlab => 0, - BlockKind::AndesiteSlab => 0, - BlockKind::RedNetherBrickSlab => 0, - BlockKind::PolishedAndesiteSlab => 0, - BlockKind::DioriteSlab => 0, - BlockKind::BrickWall => 0, - BlockKind::PrismarineWall => 0, - BlockKind::RedSandstoneWall => 0, - BlockKind::MossyStoneBrickWall => 0, - BlockKind::GraniteWall => 0, - BlockKind::StoneBrickWall => 0, - BlockKind::NetherBrickWall => 0, - BlockKind::AndesiteWall => 0, - BlockKind::RedNetherBrickWall => 0, - BlockKind::SandstoneWall => 0, - BlockKind::EndStoneBrickWall => 0, - BlockKind::DioriteWall => 0, - BlockKind::Scaffolding => 0, - BlockKind::Loom => 0, - BlockKind::Barrel => 0, - BlockKind::Smoker => 0, - BlockKind::BlastFurnace => 0, - BlockKind::CartographyTable => 0, - BlockKind::FletchingTable => 0, - BlockKind::Grindstone => 0, - BlockKind::Lectern => 0, - BlockKind::SmithingTable => 0, - BlockKind::Stonecutter => 0, - BlockKind::Bell => 0, - BlockKind::Lantern => 0, - BlockKind::SoulLantern => 0, - BlockKind::Campfire => 0, - BlockKind::SoulCampfire => 0, - BlockKind::SweetBerryBush => 0, - BlockKind::WarpedStem => 0, - BlockKind::StrippedWarpedStem => 0, - BlockKind::WarpedHyphae => 0, - BlockKind::StrippedWarpedHyphae => 0, - BlockKind::WarpedNylium => 0, - BlockKind::WarpedFungus => 0, - BlockKind::WarpedWartBlock => 0, - BlockKind::WarpedRoots => 0, - BlockKind::NetherSprouts => 0, - BlockKind::CrimsonStem => 0, - BlockKind::StrippedCrimsonStem => 0, - BlockKind::CrimsonHyphae => 0, - BlockKind::StrippedCrimsonHyphae => 0, - BlockKind::CrimsonNylium => 0, - BlockKind::CrimsonFungus => 0, - BlockKind::Shroomlight => 0, - BlockKind::WeepingVines => 0, - BlockKind::WeepingVinesPlant => 0, - BlockKind::TwistingVines => 0, - BlockKind::TwistingVinesPlant => 0, - BlockKind::CrimsonRoots => 0, - BlockKind::CrimsonPlanks => 0, - BlockKind::WarpedPlanks => 0, - BlockKind::CrimsonSlab => 0, - BlockKind::WarpedSlab => 0, - BlockKind::CrimsonPressurePlate => 0, - BlockKind::WarpedPressurePlate => 0, - BlockKind::CrimsonFence => 0, - BlockKind::WarpedFence => 0, - BlockKind::CrimsonTrapdoor => 0, - BlockKind::WarpedTrapdoor => 0, - BlockKind::CrimsonFenceGate => 0, - BlockKind::WarpedFenceGate => 0, - BlockKind::CrimsonStairs => 0, - BlockKind::WarpedStairs => 0, - BlockKind::CrimsonButton => 0, - BlockKind::WarpedButton => 0, - BlockKind::CrimsonDoor => 0, - BlockKind::WarpedDoor => 0, - BlockKind::CrimsonSign => 0, - BlockKind::WarpedSign => 0, - BlockKind::CrimsonWallSign => 0, - BlockKind::WarpedWallSign => 0, - BlockKind::StructureBlock => 0, - BlockKind::Jigsaw => 0, - BlockKind::Composter => 0, - BlockKind::Target => 0, - BlockKind::BeeNest => 0, - BlockKind::Beehive => 0, - BlockKind::HoneyBlock => 0, - BlockKind::HoneycombBlock => 0, - BlockKind::NetheriteBlock => 0, - BlockKind::AncientDebris => 0, - BlockKind::CryingObsidian => 0, - BlockKind::RespawnAnchor => 2, - BlockKind::PottedCrimsonFungus => 0, - BlockKind::PottedWarpedFungus => 0, - BlockKind::PottedCrimsonRoots => 0, - BlockKind::PottedWarpedRoots => 0, - BlockKind::Lodestone => 0, - BlockKind::Blackstone => 0, - BlockKind::BlackstoneStairs => 0, - BlockKind::BlackstoneWall => 0, - BlockKind::BlackstoneSlab => 0, - BlockKind::PolishedBlackstone => 0, - BlockKind::PolishedBlackstoneBricks => 0, - BlockKind::CrackedPolishedBlackstoneBricks => 0, - BlockKind::ChiseledPolishedBlackstone => 0, - BlockKind::PolishedBlackstoneBrickSlab => 0, - BlockKind::PolishedBlackstoneBrickStairs => 0, - BlockKind::PolishedBlackstoneBrickWall => 0, - BlockKind::GildedBlackstone => 0, - BlockKind::PolishedBlackstoneStairs => 0, - BlockKind::PolishedBlackstoneSlab => 0, - BlockKind::PolishedBlackstonePressurePlate => 0, - BlockKind::PolishedBlackstoneButton => 0, - BlockKind::PolishedBlackstoneWall => 0, - BlockKind::ChiseledNetherBricks => 0, - BlockKind::CrackedNetherBricks => 0, - BlockKind::QuartzBricks => 0, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl BlockKind { - /// Returns the `light_filter` property of this `BlockKind`. - pub fn light_filter(&self) -> u8 { - match self { - BlockKind::Air => 0, - BlockKind::Stone => 15, - BlockKind::Granite => 15, - BlockKind::PolishedGranite => 15, - BlockKind::Diorite => 15, - BlockKind::PolishedDiorite => 15, - BlockKind::Andesite => 15, - BlockKind::PolishedAndesite => 15, - BlockKind::GrassBlock => 15, - BlockKind::Dirt => 15, - BlockKind::CoarseDirt => 15, - BlockKind::Podzol => 15, - BlockKind::Cobblestone => 15, - BlockKind::OakPlanks => 15, - BlockKind::SprucePlanks => 15, - BlockKind::BirchPlanks => 15, - BlockKind::JunglePlanks => 15, - BlockKind::AcaciaPlanks => 15, - BlockKind::DarkOakPlanks => 15, - BlockKind::OakSapling => 0, - BlockKind::SpruceSapling => 0, - BlockKind::BirchSapling => 0, - BlockKind::JungleSapling => 0, - BlockKind::AcaciaSapling => 0, - BlockKind::DarkOakSapling => 0, - BlockKind::Bedrock => 15, - BlockKind::Water => 2, - BlockKind::Lava => 0, - BlockKind::Sand => 15, - BlockKind::RedSand => 15, - BlockKind::Gravel => 15, - BlockKind::GoldOre => 15, - BlockKind::IronOre => 15, - BlockKind::CoalOre => 15, - BlockKind::NetherGoldOre => 15, - BlockKind::OakLog => 15, - BlockKind::SpruceLog => 15, - BlockKind::BirchLog => 15, - BlockKind::JungleLog => 15, - BlockKind::AcaciaLog => 15, - BlockKind::DarkOakLog => 15, - BlockKind::StrippedSpruceLog => 15, - BlockKind::StrippedBirchLog => 15, - BlockKind::StrippedJungleLog => 15, - BlockKind::StrippedAcaciaLog => 15, - BlockKind::StrippedDarkOakLog => 15, - BlockKind::StrippedOakLog => 15, - BlockKind::OakWood => 15, - BlockKind::SpruceWood => 15, - BlockKind::BirchWood => 15, - BlockKind::JungleWood => 15, - BlockKind::AcaciaWood => 15, - BlockKind::DarkOakWood => 15, - BlockKind::StrippedOakWood => 15, - BlockKind::StrippedSpruceWood => 15, - BlockKind::StrippedBirchWood => 15, - BlockKind::StrippedJungleWood => 15, - BlockKind::StrippedAcaciaWood => 15, - BlockKind::StrippedDarkOakWood => 15, - BlockKind::OakLeaves => 0, - BlockKind::SpruceLeaves => 0, - BlockKind::BirchLeaves => 0, - BlockKind::JungleLeaves => 0, - BlockKind::AcaciaLeaves => 0, - BlockKind::DarkOakLeaves => 0, - BlockKind::Sponge => 15, - BlockKind::WetSponge => 15, - BlockKind::Glass => 0, - BlockKind::LapisOre => 15, - BlockKind::LapisBlock => 15, - BlockKind::Dispenser => 15, - BlockKind::Sandstone => 15, - BlockKind::ChiseledSandstone => 15, - BlockKind::CutSandstone => 15, - BlockKind::NoteBlock => 15, - BlockKind::WhiteBed => 0, - BlockKind::OrangeBed => 0, - BlockKind::MagentaBed => 0, - BlockKind::LightBlueBed => 0, - BlockKind::YellowBed => 0, - BlockKind::LimeBed => 0, - BlockKind::PinkBed => 0, - BlockKind::GrayBed => 0, - BlockKind::LightGrayBed => 0, - BlockKind::CyanBed => 0, - BlockKind::PurpleBed => 0, - BlockKind::BlueBed => 0, - BlockKind::BrownBed => 0, - BlockKind::GreenBed => 0, - BlockKind::RedBed => 0, - BlockKind::BlackBed => 0, - BlockKind::PoweredRail => 0, - BlockKind::DetectorRail => 0, - BlockKind::StickyPiston => 0, - BlockKind::Cobweb => 0, - BlockKind::Grass => 15, - BlockKind::Fern => 0, - BlockKind::DeadBush => 0, - BlockKind::Seagrass => 0, - BlockKind::TallSeagrass => 0, - BlockKind::Piston => 0, - BlockKind::PistonHead => 0, - BlockKind::WhiteWool => 15, - BlockKind::OrangeWool => 15, - BlockKind::MagentaWool => 15, - BlockKind::LightBlueWool => 15, - BlockKind::YellowWool => 15, - BlockKind::LimeWool => 15, - BlockKind::PinkWool => 15, - BlockKind::GrayWool => 15, - BlockKind::LightGrayWool => 15, - BlockKind::CyanWool => 15, - BlockKind::PurpleWool => 15, - BlockKind::BlueWool => 15, - BlockKind::BrownWool => 15, - BlockKind::GreenWool => 15, - BlockKind::RedWool => 15, - BlockKind::BlackWool => 15, - BlockKind::MovingPiston => 0, - BlockKind::Dandelion => 15, - BlockKind::Poppy => 15, - BlockKind::BlueOrchid => 0, - BlockKind::Allium => 15, - BlockKind::AzureBluet => 15, - BlockKind::RedTulip => 0, - BlockKind::OrangeTulip => 0, - BlockKind::WhiteTulip => 0, - BlockKind::PinkTulip => 0, - BlockKind::OxeyeDaisy => 15, - BlockKind::Cornflower => 0, - BlockKind::WitherRose => 0, - BlockKind::LilyOfTheValley => 0, - BlockKind::BrownMushroom => 15, - BlockKind::RedMushroom => 15, - BlockKind::GoldBlock => 15, - BlockKind::IronBlock => 15, - BlockKind::Bricks => 15, - BlockKind::Tnt => 0, - BlockKind::Bookshelf => 15, - BlockKind::MossyCobblestone => 15, - BlockKind::Obsidian => 15, - BlockKind::Torch => 0, - BlockKind::WallTorch => 0, - BlockKind::Fire => 0, - BlockKind::SoulFire => 15, - BlockKind::Spawner => 0, - BlockKind::OakStairs => 15, - BlockKind::Chest => 0, - BlockKind::RedstoneWire => 0, - BlockKind::DiamondOre => 15, - BlockKind::DiamondBlock => 15, - BlockKind::CraftingTable => 15, - BlockKind::Wheat => 0, - BlockKind::Farmland => 0, - BlockKind::Furnace => 0, - BlockKind::OakSign => 0, - BlockKind::SpruceSign => 0, - BlockKind::BirchSign => 0, - BlockKind::AcaciaSign => 0, - BlockKind::JungleSign => 0, - BlockKind::DarkOakSign => 0, - BlockKind::OakDoor => 0, - BlockKind::Ladder => 0, - BlockKind::Rail => 0, - BlockKind::CobblestoneStairs => 15, - BlockKind::OakWallSign => 0, - BlockKind::SpruceWallSign => 0, - BlockKind::BirchWallSign => 0, - BlockKind::AcaciaWallSign => 0, - BlockKind::JungleWallSign => 0, - BlockKind::DarkOakWallSign => 0, - BlockKind::Lever => 0, - BlockKind::StonePressurePlate => 0, - BlockKind::IronDoor => 0, - BlockKind::OakPressurePlate => 0, - BlockKind::SprucePressurePlate => 0, - BlockKind::BirchPressurePlate => 0, - BlockKind::JunglePressurePlate => 0, - BlockKind::AcaciaPressurePlate => 0, - BlockKind::DarkOakPressurePlate => 0, - BlockKind::RedstoneOre => 0, - BlockKind::RedstoneTorch => 0, - BlockKind::RedstoneWallTorch => 0, - BlockKind::StoneButton => 0, - BlockKind::Snow => 15, - BlockKind::Ice => 0, - BlockKind::SnowBlock => 15, - BlockKind::Cactus => 0, - BlockKind::Clay => 15, - BlockKind::SugarCane => 0, - BlockKind::Jukebox => 15, - BlockKind::OakFence => 0, - BlockKind::Pumpkin => 15, - BlockKind::Netherrack => 15, - BlockKind::SoulSand => 15, - BlockKind::SoulSoil => 15, - BlockKind::Basalt => 15, - BlockKind::PolishedBasalt => 15, - BlockKind::SoulTorch => 0, - BlockKind::SoulWallTorch => 0, - BlockKind::Glowstone => 0, - BlockKind::NetherPortal => 0, - BlockKind::CarvedPumpkin => 15, - BlockKind::JackOLantern => 15, - BlockKind::Cake => 0, - BlockKind::Repeater => 0, - BlockKind::WhiteStainedGlass => 0, - BlockKind::OrangeStainedGlass => 0, - BlockKind::MagentaStainedGlass => 0, - BlockKind::LightBlueStainedGlass => 0, - BlockKind::YellowStainedGlass => 0, - BlockKind::LimeStainedGlass => 0, - BlockKind::PinkStainedGlass => 0, - BlockKind::GrayStainedGlass => 0, - BlockKind::LightGrayStainedGlass => 0, - BlockKind::CyanStainedGlass => 0, - BlockKind::PurpleStainedGlass => 0, - BlockKind::BlueStainedGlass => 0, - BlockKind::BrownStainedGlass => 0, - BlockKind::GreenStainedGlass => 0, - BlockKind::RedStainedGlass => 0, - BlockKind::BlackStainedGlass => 0, - BlockKind::OakTrapdoor => 0, - BlockKind::SpruceTrapdoor => 0, - BlockKind::BirchTrapdoor => 0, - BlockKind::JungleTrapdoor => 0, - BlockKind::AcaciaTrapdoor => 0, - BlockKind::DarkOakTrapdoor => 0, - BlockKind::StoneBricks => 15, - BlockKind::MossyStoneBricks => 15, - BlockKind::CrackedStoneBricks => 15, - BlockKind::ChiseledStoneBricks => 15, - BlockKind::InfestedStone => 15, - BlockKind::InfestedCobblestone => 15, - BlockKind::InfestedStoneBricks => 15, - BlockKind::InfestedMossyStoneBricks => 15, - BlockKind::InfestedCrackedStoneBricks => 15, - BlockKind::InfestedChiseledStoneBricks => 15, - BlockKind::BrownMushroomBlock => 15, - BlockKind::RedMushroomBlock => 15, - BlockKind::MushroomStem => 15, - BlockKind::IronBars => 0, - BlockKind::Chain => 0, - BlockKind::GlassPane => 0, - BlockKind::Melon => 15, - BlockKind::AttachedPumpkinStem => 0, - BlockKind::AttachedMelonStem => 0, - BlockKind::PumpkinStem => 0, - BlockKind::MelonStem => 0, - BlockKind::Vine => 0, - BlockKind::OakFenceGate => 0, - BlockKind::BrickStairs => 15, - BlockKind::StoneBrickStairs => 15, - BlockKind::Mycelium => 15, - BlockKind::LilyPad => 0, - BlockKind::NetherBricks => 15, - BlockKind::NetherBrickFence => 0, - BlockKind::NetherBrickStairs => 15, - BlockKind::NetherWart => 0, - BlockKind::EnchantingTable => 0, - BlockKind::BrewingStand => 0, - BlockKind::Cauldron => 0, - BlockKind::EndPortal => 0, - BlockKind::EndPortalFrame => 0, - BlockKind::EndStone => 15, - BlockKind::DragonEgg => 0, - BlockKind::RedstoneLamp => 0, - BlockKind::Cocoa => 0, - BlockKind::SandstoneStairs => 15, - BlockKind::EmeraldOre => 15, - BlockKind::EnderChest => 0, - BlockKind::TripwireHook => 0, - BlockKind::Tripwire => 0, - BlockKind::EmeraldBlock => 15, - BlockKind::SpruceStairs => 15, - BlockKind::BirchStairs => 15, - BlockKind::JungleStairs => 15, - BlockKind::CommandBlock => 15, - BlockKind::Beacon => 0, - BlockKind::CobblestoneWall => 0, - BlockKind::MossyCobblestoneWall => 0, - BlockKind::FlowerPot => 0, - BlockKind::PottedOakSapling => 0, - BlockKind::PottedSpruceSapling => 0, - BlockKind::PottedBirchSapling => 0, - BlockKind::PottedJungleSapling => 0, - BlockKind::PottedAcaciaSapling => 0, - BlockKind::PottedDarkOakSapling => 0, - BlockKind::PottedFern => 0, - BlockKind::PottedDandelion => 0, - BlockKind::PottedPoppy => 0, - BlockKind::PottedBlueOrchid => 0, - BlockKind::PottedAllium => 0, - BlockKind::PottedAzureBluet => 0, - BlockKind::PottedRedTulip => 0, - BlockKind::PottedOrangeTulip => 0, - BlockKind::PottedWhiteTulip => 0, - BlockKind::PottedPinkTulip => 0, - BlockKind::PottedOxeyeDaisy => 0, - BlockKind::PottedCornflower => 0, - BlockKind::PottedLilyOfTheValley => 0, - BlockKind::PottedWitherRose => 0, - BlockKind::PottedRedMushroom => 0, - BlockKind::PottedBrownMushroom => 0, - BlockKind::PottedDeadBush => 0, - BlockKind::PottedCactus => 0, - BlockKind::Carrots => 15, - BlockKind::Potatoes => 15, - BlockKind::OakButton => 0, - BlockKind::SpruceButton => 0, - BlockKind::BirchButton => 0, - BlockKind::JungleButton => 0, - BlockKind::AcaciaButton => 0, - BlockKind::DarkOakButton => 0, - BlockKind::SkeletonSkull => 0, - BlockKind::SkeletonWallSkull => 0, - BlockKind::WitherSkeletonSkull => 0, - BlockKind::WitherSkeletonWallSkull => 0, - BlockKind::ZombieHead => 0, - BlockKind::ZombieWallHead => 0, - BlockKind::PlayerHead => 0, - BlockKind::PlayerWallHead => 0, - BlockKind::CreeperHead => 0, - BlockKind::CreeperWallHead => 0, - BlockKind::DragonHead => 0, - BlockKind::DragonWallHead => 0, - BlockKind::Anvil => 0, - BlockKind::ChippedAnvil => 0, - BlockKind::DamagedAnvil => 0, - BlockKind::TrappedChest => 0, - BlockKind::LightWeightedPressurePlate => 0, - BlockKind::HeavyWeightedPressurePlate => 0, - BlockKind::Comparator => 0, - BlockKind::DaylightDetector => 0, - BlockKind::RedstoneBlock => 0, - BlockKind::NetherQuartzOre => 15, - BlockKind::Hopper => 0, - BlockKind::QuartzBlock => 15, - BlockKind::ChiseledQuartzBlock => 15, - BlockKind::QuartzPillar => 15, - BlockKind::QuartzStairs => 15, - BlockKind::ActivatorRail => 0, - BlockKind::Dropper => 15, - BlockKind::WhiteTerracotta => 15, - BlockKind::OrangeTerracotta => 15, - BlockKind::MagentaTerracotta => 15, - BlockKind::LightBlueTerracotta => 15, - BlockKind::YellowTerracotta => 15, - BlockKind::LimeTerracotta => 15, - BlockKind::PinkTerracotta => 15, - BlockKind::GrayTerracotta => 15, - BlockKind::LightGrayTerracotta => 15, - BlockKind::CyanTerracotta => 15, - BlockKind::PurpleTerracotta => 15, - BlockKind::BlueTerracotta => 15, - BlockKind::BrownTerracotta => 15, - BlockKind::GreenTerracotta => 15, - BlockKind::RedTerracotta => 15, - BlockKind::BlackTerracotta => 15, - BlockKind::WhiteStainedGlassPane => 0, - BlockKind::OrangeStainedGlassPane => 0, - BlockKind::MagentaStainedGlassPane => 0, - BlockKind::LightBlueStainedGlassPane => 0, - BlockKind::YellowStainedGlassPane => 0, - BlockKind::LimeStainedGlassPane => 0, - BlockKind::PinkStainedGlassPane => 0, - BlockKind::GrayStainedGlassPane => 0, - BlockKind::LightGrayStainedGlassPane => 0, - BlockKind::CyanStainedGlassPane => 0, - BlockKind::PurpleStainedGlassPane => 0, - BlockKind::BlueStainedGlassPane => 0, - BlockKind::BrownStainedGlassPane => 0, - BlockKind::GreenStainedGlassPane => 0, - BlockKind::RedStainedGlassPane => 0, - BlockKind::BlackStainedGlassPane => 0, - BlockKind::AcaciaStairs => 15, - BlockKind::DarkOakStairs => 15, - BlockKind::SlimeBlock => 0, - BlockKind::Barrier => 0, - BlockKind::IronTrapdoor => 0, - BlockKind::Prismarine => 15, - BlockKind::PrismarineBricks => 15, - BlockKind::DarkPrismarine => 15, - BlockKind::PrismarineStairs => 15, - BlockKind::PrismarineBrickStairs => 15, - BlockKind::DarkPrismarineStairs => 15, - BlockKind::PrismarineSlab => 0, - BlockKind::PrismarineBrickSlab => 0, - BlockKind::DarkPrismarineSlab => 0, - BlockKind::SeaLantern => 0, - BlockKind::HayBlock => 15, - BlockKind::WhiteCarpet => 0, - BlockKind::OrangeCarpet => 0, - BlockKind::MagentaCarpet => 0, - BlockKind::LightBlueCarpet => 0, - BlockKind::YellowCarpet => 0, - BlockKind::LimeCarpet => 0, - BlockKind::PinkCarpet => 0, - BlockKind::GrayCarpet => 0, - BlockKind::LightGrayCarpet => 0, - BlockKind::CyanCarpet => 0, - BlockKind::PurpleCarpet => 0, - BlockKind::BlueCarpet => 0, - BlockKind::BrownCarpet => 0, - BlockKind::GreenCarpet => 0, - BlockKind::RedCarpet => 0, - BlockKind::BlackCarpet => 0, - BlockKind::Terracotta => 15, - BlockKind::CoalBlock => 15, - BlockKind::PackedIce => 15, - BlockKind::Sunflower => 0, - BlockKind::Lilac => 0, - BlockKind::RoseBush => 0, - BlockKind::Peony => 15, - BlockKind::TallGrass => 0, - BlockKind::LargeFern => 0, - BlockKind::WhiteBanner => 0, - BlockKind::OrangeBanner => 0, - BlockKind::MagentaBanner => 0, - BlockKind::LightBlueBanner => 0, - BlockKind::YellowBanner => 0, - BlockKind::LimeBanner => 0, - BlockKind::PinkBanner => 0, - BlockKind::GrayBanner => 0, - BlockKind::LightGrayBanner => 0, - BlockKind::CyanBanner => 0, - BlockKind::PurpleBanner => 0, - BlockKind::BlueBanner => 0, - BlockKind::BrownBanner => 0, - BlockKind::GreenBanner => 0, - BlockKind::RedBanner => 0, - BlockKind::BlackBanner => 0, - BlockKind::WhiteWallBanner => 0, - BlockKind::OrangeWallBanner => 0, - BlockKind::MagentaWallBanner => 0, - BlockKind::LightBlueWallBanner => 0, - BlockKind::YellowWallBanner => 0, - BlockKind::LimeWallBanner => 0, - BlockKind::PinkWallBanner => 0, - BlockKind::GrayWallBanner => 0, - BlockKind::LightGrayWallBanner => 0, - BlockKind::CyanWallBanner => 0, - BlockKind::PurpleWallBanner => 0, - BlockKind::BlueWallBanner => 0, - BlockKind::BrownWallBanner => 0, - BlockKind::GreenWallBanner => 0, - BlockKind::RedWallBanner => 0, - BlockKind::BlackWallBanner => 0, - BlockKind::RedSandstone => 15, - BlockKind::ChiseledRedSandstone => 15, - BlockKind::CutRedSandstone => 15, - BlockKind::RedSandstoneStairs => 15, - BlockKind::OakSlab => 0, - BlockKind::SpruceSlab => 0, - BlockKind::BirchSlab => 0, - BlockKind::JungleSlab => 0, - BlockKind::AcaciaSlab => 0, - BlockKind::DarkOakSlab => 0, - BlockKind::StoneSlab => 0, - BlockKind::SmoothStoneSlab => 0, - BlockKind::SandstoneSlab => 0, - BlockKind::CutSandstoneSlab => 0, - BlockKind::PetrifiedOakSlab => 0, - BlockKind::CobblestoneSlab => 0, - BlockKind::BrickSlab => 0, - BlockKind::StoneBrickSlab => 0, - BlockKind::NetherBrickSlab => 0, - BlockKind::QuartzSlab => 0, - BlockKind::RedSandstoneSlab => 0, - BlockKind::CutRedSandstoneSlab => 0, - BlockKind::PurpurSlab => 0, - BlockKind::SmoothStone => 15, - BlockKind::SmoothSandstone => 15, - BlockKind::SmoothQuartz => 15, - BlockKind::SmoothRedSandstone => 15, - BlockKind::SpruceFenceGate => 0, - BlockKind::BirchFenceGate => 0, - BlockKind::JungleFenceGate => 0, - BlockKind::AcaciaFenceGate => 0, - BlockKind::DarkOakFenceGate => 0, - BlockKind::SpruceFence => 0, - BlockKind::BirchFence => 0, - BlockKind::JungleFence => 0, - BlockKind::AcaciaFence => 0, - BlockKind::DarkOakFence => 0, - BlockKind::SpruceDoor => 0, - BlockKind::BirchDoor => 0, - BlockKind::JungleDoor => 0, - BlockKind::AcaciaDoor => 0, - BlockKind::DarkOakDoor => 0, - BlockKind::EndRod => 15, - BlockKind::ChorusPlant => 0, - BlockKind::ChorusFlower => 0, - BlockKind::PurpurBlock => 15, - BlockKind::PurpurPillar => 15, - BlockKind::PurpurStairs => 15, - BlockKind::EndStoneBricks => 15, - BlockKind::Beetroots => 0, - BlockKind::GrassPath => 0, - BlockKind::EndGateway => 15, - BlockKind::RepeatingCommandBlock => 15, - BlockKind::ChainCommandBlock => 15, - BlockKind::FrostedIce => 2, - BlockKind::MagmaBlock => 15, - BlockKind::NetherWartBlock => 15, - BlockKind::RedNetherBricks => 15, - BlockKind::BoneBlock => 15, - BlockKind::StructureVoid => 15, - BlockKind::Observer => 0, - BlockKind::ShulkerBox => 0, - BlockKind::WhiteShulkerBox => 0, - BlockKind::OrangeShulkerBox => 0, - BlockKind::MagentaShulkerBox => 0, - BlockKind::LightBlueShulkerBox => 0, - BlockKind::YellowShulkerBox => 0, - BlockKind::LimeShulkerBox => 0, - BlockKind::PinkShulkerBox => 0, - BlockKind::GrayShulkerBox => 0, - BlockKind::LightGrayShulkerBox => 0, - BlockKind::CyanShulkerBox => 0, - BlockKind::PurpleShulkerBox => 0, - BlockKind::BlueShulkerBox => 0, - BlockKind::BrownShulkerBox => 0, - BlockKind::GreenShulkerBox => 0, - BlockKind::RedShulkerBox => 0, - BlockKind::BlackShulkerBox => 0, - BlockKind::WhiteGlazedTerracotta => 15, - BlockKind::OrangeGlazedTerracotta => 15, - BlockKind::MagentaGlazedTerracotta => 15, - BlockKind::LightBlueGlazedTerracotta => 15, - BlockKind::YellowGlazedTerracotta => 15, - BlockKind::LimeGlazedTerracotta => 15, - BlockKind::PinkGlazedTerracotta => 15, - BlockKind::GrayGlazedTerracotta => 15, - BlockKind::LightGrayGlazedTerracotta => 15, - BlockKind::CyanGlazedTerracotta => 15, - BlockKind::PurpleGlazedTerracotta => 15, - BlockKind::BlueGlazedTerracotta => 15, - BlockKind::BrownGlazedTerracotta => 15, - BlockKind::GreenGlazedTerracotta => 15, - BlockKind::RedGlazedTerracotta => 15, - BlockKind::BlackGlazedTerracotta => 15, - BlockKind::WhiteConcrete => 15, - BlockKind::OrangeConcrete => 15, - BlockKind::MagentaConcrete => 15, - BlockKind::LightBlueConcrete => 15, - BlockKind::YellowConcrete => 15, - BlockKind::LimeConcrete => 15, - BlockKind::PinkConcrete => 15, - BlockKind::GrayConcrete => 15, - BlockKind::LightGrayConcrete => 15, - BlockKind::CyanConcrete => 15, - BlockKind::PurpleConcrete => 15, - BlockKind::BlueConcrete => 15, - BlockKind::BrownConcrete => 15, - BlockKind::GreenConcrete => 15, - BlockKind::RedConcrete => 15, - BlockKind::BlackConcrete => 15, - BlockKind::WhiteConcretePowder => 15, - BlockKind::OrangeConcretePowder => 15, - BlockKind::MagentaConcretePowder => 15, - BlockKind::LightBlueConcretePowder => 15, - BlockKind::YellowConcretePowder => 15, - BlockKind::LimeConcretePowder => 15, - BlockKind::PinkConcretePowder => 15, - BlockKind::GrayConcretePowder => 15, - BlockKind::LightGrayConcretePowder => 15, - BlockKind::CyanConcretePowder => 15, - BlockKind::PurpleConcretePowder => 15, - BlockKind::BlueConcretePowder => 15, - BlockKind::BrownConcretePowder => 15, - BlockKind::GreenConcretePowder => 15, - BlockKind::RedConcretePowder => 15, - BlockKind::BlackConcretePowder => 15, - BlockKind::Kelp => 0, - BlockKind::KelpPlant => 0, - BlockKind::DriedKelpBlock => 15, - BlockKind::TurtleEgg => 15, - BlockKind::DeadTubeCoralBlock => 15, - BlockKind::DeadBrainCoralBlock => 15, - BlockKind::DeadBubbleCoralBlock => 15, - BlockKind::DeadFireCoralBlock => 15, - BlockKind::DeadHornCoralBlock => 15, - BlockKind::TubeCoralBlock => 15, - BlockKind::BrainCoralBlock => 15, - BlockKind::BubbleCoralBlock => 15, - BlockKind::FireCoralBlock => 15, - BlockKind::HornCoralBlock => 15, - BlockKind::DeadTubeCoral => 0, - BlockKind::DeadBrainCoral => 0, - BlockKind::DeadBubbleCoral => 0, - BlockKind::DeadFireCoral => 0, - BlockKind::DeadHornCoral => 0, - BlockKind::TubeCoral => 0, - BlockKind::BrainCoral => 0, - BlockKind::BubbleCoral => 0, - BlockKind::FireCoral => 0, - BlockKind::HornCoral => 0, - BlockKind::DeadTubeCoralFan => 0, - BlockKind::DeadBrainCoralFan => 0, - BlockKind::DeadBubbleCoralFan => 0, - BlockKind::DeadFireCoralFan => 0, - BlockKind::DeadHornCoralFan => 0, - BlockKind::TubeCoralFan => 0, - BlockKind::BrainCoralFan => 0, - BlockKind::BubbleCoralFan => 0, - BlockKind::FireCoralFan => 0, - BlockKind::HornCoralFan => 0, - BlockKind::DeadTubeCoralWallFan => 0, - BlockKind::DeadBrainCoralWallFan => 0, - BlockKind::DeadBubbleCoralWallFan => 0, - BlockKind::DeadFireCoralWallFan => 0, - BlockKind::DeadHornCoralWallFan => 0, - BlockKind::TubeCoralWallFan => 0, - BlockKind::BrainCoralWallFan => 0, - BlockKind::BubbleCoralWallFan => 0, - BlockKind::FireCoralWallFan => 0, - BlockKind::HornCoralWallFan => 0, - BlockKind::SeaPickle => 15, - BlockKind::BlueIce => 15, - BlockKind::Conduit => 15, - BlockKind::BambooSapling => 15, - BlockKind::Bamboo => 15, - BlockKind::PottedBamboo => 0, - BlockKind::VoidAir => 0, - BlockKind::CaveAir => 0, - BlockKind::BubbleColumn => 0, - BlockKind::PolishedGraniteStairs => 15, - BlockKind::SmoothRedSandstoneStairs => 15, - BlockKind::MossyStoneBrickStairs => 15, - BlockKind::PolishedDioriteStairs => 15, - BlockKind::MossyCobblestoneStairs => 15, - BlockKind::EndStoneBrickStairs => 15, - BlockKind::StoneStairs => 15, - BlockKind::SmoothSandstoneStairs => 15, - BlockKind::SmoothQuartzStairs => 15, - BlockKind::GraniteStairs => 15, - BlockKind::AndesiteStairs => 15, - BlockKind::RedNetherBrickStairs => 15, - BlockKind::PolishedAndesiteStairs => 15, - BlockKind::DioriteStairs => 15, - BlockKind::PolishedGraniteSlab => 0, - BlockKind::SmoothRedSandstoneSlab => 0, - BlockKind::MossyStoneBrickSlab => 0, - BlockKind::PolishedDioriteSlab => 0, - BlockKind::MossyCobblestoneSlab => 0, - BlockKind::EndStoneBrickSlab => 0, - BlockKind::SmoothSandstoneSlab => 0, - BlockKind::SmoothQuartzSlab => 0, - BlockKind::GraniteSlab => 0, - BlockKind::AndesiteSlab => 0, - BlockKind::RedNetherBrickSlab => 0, - BlockKind::PolishedAndesiteSlab => 0, - BlockKind::DioriteSlab => 0, - BlockKind::BrickWall => 0, - BlockKind::PrismarineWall => 0, - BlockKind::RedSandstoneWall => 0, - BlockKind::MossyStoneBrickWall => 0, - BlockKind::GraniteWall => 0, - BlockKind::StoneBrickWall => 0, - BlockKind::NetherBrickWall => 0, - BlockKind::AndesiteWall => 0, - BlockKind::RedNetherBrickWall => 0, - BlockKind::SandstoneWall => 0, - BlockKind::EndStoneBrickWall => 0, - BlockKind::DioriteWall => 0, - BlockKind::Scaffolding => 15, - BlockKind::Loom => 15, - BlockKind::Barrel => 0, - BlockKind::Smoker => 15, - BlockKind::BlastFurnace => 15, - BlockKind::CartographyTable => 15, - BlockKind::FletchingTable => 15, - BlockKind::Grindstone => 0, - BlockKind::Lectern => 15, - BlockKind::SmithingTable => 15, - BlockKind::Stonecutter => 15, - BlockKind::Bell => 0, - BlockKind::Lantern => 0, - BlockKind::SoulLantern => 0, - BlockKind::Campfire => 15, - BlockKind::SoulCampfire => 15, - BlockKind::SweetBerryBush => 0, - BlockKind::WarpedStem => 15, - BlockKind::StrippedWarpedStem => 15, - BlockKind::WarpedHyphae => 15, - BlockKind::StrippedWarpedHyphae => 15, - BlockKind::WarpedNylium => 15, - BlockKind::WarpedFungus => 0, - BlockKind::WarpedWartBlock => 15, - BlockKind::WarpedRoots => 0, - BlockKind::NetherSprouts => 0, - BlockKind::CrimsonStem => 15, - BlockKind::StrippedCrimsonStem => 15, - BlockKind::CrimsonHyphae => 15, - BlockKind::StrippedCrimsonHyphae => 15, - BlockKind::CrimsonNylium => 15, - BlockKind::CrimsonFungus => 0, - BlockKind::Shroomlight => 15, - BlockKind::WeepingVines => 0, - BlockKind::WeepingVinesPlant => 0, - BlockKind::TwistingVines => 0, - BlockKind::TwistingVinesPlant => 0, - BlockKind::CrimsonRoots => 0, - BlockKind::CrimsonPlanks => 15, - BlockKind::WarpedPlanks => 15, - BlockKind::CrimsonSlab => 15, - BlockKind::WarpedSlab => 15, - BlockKind::CrimsonPressurePlate => 0, - BlockKind::WarpedPressurePlate => 0, - BlockKind::CrimsonFence => 0, - BlockKind::WarpedFence => 0, - BlockKind::CrimsonTrapdoor => 0, - BlockKind::WarpedTrapdoor => 0, - BlockKind::CrimsonFenceGate => 0, - BlockKind::WarpedFenceGate => 0, - BlockKind::CrimsonStairs => 15, - BlockKind::WarpedStairs => 15, - BlockKind::CrimsonButton => 0, - BlockKind::WarpedButton => 0, - BlockKind::CrimsonDoor => 0, - BlockKind::WarpedDoor => 0, - BlockKind::CrimsonSign => 0, - BlockKind::WarpedSign => 0, - BlockKind::CrimsonWallSign => 0, - BlockKind::WarpedWallSign => 0, - BlockKind::StructureBlock => 15, - BlockKind::Jigsaw => 15, - BlockKind::Composter => 0, - BlockKind::Target => 15, - BlockKind::BeeNest => 15, - BlockKind::Beehive => 15, - BlockKind::HoneyBlock => 15, - BlockKind::HoneycombBlock => 15, - BlockKind::NetheriteBlock => 15, - BlockKind::AncientDebris => 15, - BlockKind::CryingObsidian => 15, - BlockKind::RespawnAnchor => 15, - BlockKind::PottedCrimsonFungus => 0, - BlockKind::PottedWarpedFungus => 0, - BlockKind::PottedCrimsonRoots => 0, - BlockKind::PottedWarpedRoots => 0, - BlockKind::Lodestone => 15, - BlockKind::Blackstone => 15, - BlockKind::BlackstoneStairs => 15, - BlockKind::BlackstoneWall => 0, - BlockKind::BlackstoneSlab => 15, - BlockKind::PolishedBlackstone => 15, - BlockKind::PolishedBlackstoneBricks => 15, - BlockKind::CrackedPolishedBlackstoneBricks => 15, - BlockKind::ChiseledPolishedBlackstone => 15, - BlockKind::PolishedBlackstoneBrickSlab => 15, - BlockKind::PolishedBlackstoneBrickStairs => 15, - BlockKind::PolishedBlackstoneBrickWall => 0, - BlockKind::GildedBlackstone => 15, - BlockKind::PolishedBlackstoneStairs => 15, - BlockKind::PolishedBlackstoneSlab => 15, - BlockKind::PolishedBlackstonePressurePlate => 0, - BlockKind::PolishedBlackstoneButton => 0, - BlockKind::PolishedBlackstoneWall => 0, - BlockKind::ChiseledNetherBricks => 15, - BlockKind::CrackedNetherBricks => 15, - BlockKind::QuartzBricks => 15, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl BlockKind { - /// Returns the `solid` property of this `BlockKind`. - pub fn solid(&self) -> bool { - match self { - BlockKind::Air => false, - BlockKind::Stone => true, - BlockKind::Granite => true, - BlockKind::PolishedGranite => true, - BlockKind::Diorite => true, - BlockKind::PolishedDiorite => true, - BlockKind::Andesite => true, - BlockKind::PolishedAndesite => true, - BlockKind::GrassBlock => true, - BlockKind::Dirt => true, - BlockKind::CoarseDirt => true, - BlockKind::Podzol => true, - BlockKind::Cobblestone => true, - BlockKind::OakPlanks => true, - BlockKind::SprucePlanks => true, - BlockKind::BirchPlanks => true, - BlockKind::JunglePlanks => true, - BlockKind::AcaciaPlanks => true, - BlockKind::DarkOakPlanks => true, - BlockKind::OakSapling => false, - BlockKind::SpruceSapling => false, - BlockKind::BirchSapling => false, - BlockKind::JungleSapling => false, - BlockKind::AcaciaSapling => false, - BlockKind::DarkOakSapling => false, - BlockKind::Bedrock => true, - BlockKind::Water => false, - BlockKind::Lava => false, - BlockKind::Sand => true, - BlockKind::RedSand => true, - BlockKind::Gravel => true, - BlockKind::GoldOre => true, - BlockKind::IronOre => true, - BlockKind::CoalOre => true, - BlockKind::NetherGoldOre => true, - BlockKind::OakLog => true, - BlockKind::SpruceLog => true, - BlockKind::BirchLog => true, - BlockKind::JungleLog => true, - BlockKind::AcaciaLog => true, - BlockKind::DarkOakLog => true, - BlockKind::StrippedSpruceLog => true, - BlockKind::StrippedBirchLog => true, - BlockKind::StrippedJungleLog => true, - BlockKind::StrippedAcaciaLog => true, - BlockKind::StrippedDarkOakLog => true, - BlockKind::StrippedOakLog => true, - BlockKind::OakWood => true, - BlockKind::SpruceWood => true, - BlockKind::BirchWood => true, - BlockKind::JungleWood => true, - BlockKind::AcaciaWood => true, - BlockKind::DarkOakWood => true, - BlockKind::StrippedOakWood => true, - BlockKind::StrippedSpruceWood => true, - BlockKind::StrippedBirchWood => true, - BlockKind::StrippedJungleWood => true, - BlockKind::StrippedAcaciaWood => true, - BlockKind::StrippedDarkOakWood => true, - BlockKind::OakLeaves => true, - BlockKind::SpruceLeaves => true, - BlockKind::BirchLeaves => true, - BlockKind::JungleLeaves => true, - BlockKind::AcaciaLeaves => true, - BlockKind::DarkOakLeaves => true, - BlockKind::Sponge => true, - BlockKind::WetSponge => true, - BlockKind::Glass => true, - BlockKind::LapisOre => true, - BlockKind::LapisBlock => true, - BlockKind::Dispenser => true, - BlockKind::Sandstone => true, - BlockKind::ChiseledSandstone => true, - BlockKind::CutSandstone => true, - BlockKind::NoteBlock => true, - BlockKind::WhiteBed => true, - BlockKind::OrangeBed => true, - BlockKind::MagentaBed => true, - BlockKind::LightBlueBed => true, - BlockKind::YellowBed => true, - BlockKind::LimeBed => true, - BlockKind::PinkBed => true, - BlockKind::GrayBed => true, - BlockKind::LightGrayBed => true, - BlockKind::CyanBed => true, - BlockKind::PurpleBed => true, - BlockKind::BlueBed => true, - BlockKind::BrownBed => true, - BlockKind::GreenBed => true, - BlockKind::RedBed => true, - BlockKind::BlackBed => true, - BlockKind::PoweredRail => false, - BlockKind::DetectorRail => false, - BlockKind::StickyPiston => true, - BlockKind::Cobweb => false, - BlockKind::Grass => false, - BlockKind::Fern => false, - BlockKind::DeadBush => false, - BlockKind::Seagrass => false, - BlockKind::TallSeagrass => false, - BlockKind::Piston => true, - BlockKind::PistonHead => true, - BlockKind::WhiteWool => true, - BlockKind::OrangeWool => true, - BlockKind::MagentaWool => true, - BlockKind::LightBlueWool => true, - BlockKind::YellowWool => true, - BlockKind::LimeWool => true, - BlockKind::PinkWool => true, - BlockKind::GrayWool => true, - BlockKind::LightGrayWool => true, - BlockKind::CyanWool => true, - BlockKind::PurpleWool => true, - BlockKind::BlueWool => true, - BlockKind::BrownWool => true, - BlockKind::GreenWool => true, - BlockKind::RedWool => true, - BlockKind::BlackWool => true, - BlockKind::MovingPiston => false, - BlockKind::Dandelion => false, - BlockKind::Poppy => false, - BlockKind::BlueOrchid => false, - BlockKind::Allium => false, - BlockKind::AzureBluet => false, - BlockKind::RedTulip => false, - BlockKind::OrangeTulip => false, - BlockKind::WhiteTulip => false, - BlockKind::PinkTulip => false, - BlockKind::OxeyeDaisy => false, - BlockKind::Cornflower => false, - BlockKind::WitherRose => false, - BlockKind::LilyOfTheValley => false, - BlockKind::BrownMushroom => false, - BlockKind::RedMushroom => false, - BlockKind::GoldBlock => true, - BlockKind::IronBlock => true, - BlockKind::Bricks => true, - BlockKind::Tnt => true, - BlockKind::Bookshelf => true, - BlockKind::MossyCobblestone => true, - BlockKind::Obsidian => true, - BlockKind::Torch => false, - BlockKind::WallTorch => false, - BlockKind::Fire => false, - BlockKind::SoulFire => false, - BlockKind::Spawner => true, - BlockKind::OakStairs => true, - BlockKind::Chest => true, - BlockKind::RedstoneWire => false, - BlockKind::DiamondOre => true, - BlockKind::DiamondBlock => true, - BlockKind::CraftingTable => true, - BlockKind::Wheat => false, - BlockKind::Farmland => true, - BlockKind::Furnace => true, - BlockKind::OakSign => false, - BlockKind::SpruceSign => false, - BlockKind::BirchSign => false, - BlockKind::AcaciaSign => false, - BlockKind::JungleSign => false, - BlockKind::DarkOakSign => false, - BlockKind::OakDoor => true, - BlockKind::Ladder => true, - BlockKind::Rail => false, - BlockKind::CobblestoneStairs => true, - BlockKind::OakWallSign => false, - BlockKind::SpruceWallSign => false, - BlockKind::BirchWallSign => false, - BlockKind::AcaciaWallSign => false, - BlockKind::JungleWallSign => false, - BlockKind::DarkOakWallSign => false, - BlockKind::Lever => false, - BlockKind::StonePressurePlate => false, - BlockKind::IronDoor => true, - BlockKind::OakPressurePlate => false, - BlockKind::SprucePressurePlate => false, - BlockKind::BirchPressurePlate => false, - BlockKind::JunglePressurePlate => false, - BlockKind::AcaciaPressurePlate => false, - BlockKind::DarkOakPressurePlate => false, - BlockKind::RedstoneOre => true, - BlockKind::RedstoneTorch => false, - BlockKind::RedstoneWallTorch => false, - BlockKind::StoneButton => false, - BlockKind::Snow => true, - BlockKind::Ice => true, - BlockKind::SnowBlock => true, - BlockKind::Cactus => true, - BlockKind::Clay => true, - BlockKind::SugarCane => false, - BlockKind::Jukebox => true, - BlockKind::OakFence => true, - BlockKind::Pumpkin => true, - BlockKind::Netherrack => true, - BlockKind::SoulSand => true, - BlockKind::SoulSoil => true, - BlockKind::Basalt => true, - BlockKind::PolishedBasalt => true, - BlockKind::SoulTorch => false, - BlockKind::SoulWallTorch => false, - BlockKind::Glowstone => true, - BlockKind::NetherPortal => false, - BlockKind::CarvedPumpkin => true, - BlockKind::JackOLantern => true, - BlockKind::Cake => true, - BlockKind::Repeater => true, - BlockKind::WhiteStainedGlass => true, - BlockKind::OrangeStainedGlass => true, - BlockKind::MagentaStainedGlass => true, - BlockKind::LightBlueStainedGlass => true, - BlockKind::YellowStainedGlass => true, - BlockKind::LimeStainedGlass => true, - BlockKind::PinkStainedGlass => true, - BlockKind::GrayStainedGlass => true, - BlockKind::LightGrayStainedGlass => true, - BlockKind::CyanStainedGlass => true, - BlockKind::PurpleStainedGlass => true, - BlockKind::BlueStainedGlass => true, - BlockKind::BrownStainedGlass => true, - BlockKind::GreenStainedGlass => true, - BlockKind::RedStainedGlass => true, - BlockKind::BlackStainedGlass => true, - BlockKind::OakTrapdoor => true, - BlockKind::SpruceTrapdoor => true, - BlockKind::BirchTrapdoor => true, - BlockKind::JungleTrapdoor => true, - BlockKind::AcaciaTrapdoor => true, - BlockKind::DarkOakTrapdoor => true, - BlockKind::StoneBricks => true, - BlockKind::MossyStoneBricks => true, - BlockKind::CrackedStoneBricks => true, - BlockKind::ChiseledStoneBricks => true, - BlockKind::InfestedStone => true, - BlockKind::InfestedCobblestone => true, - BlockKind::InfestedStoneBricks => true, - BlockKind::InfestedMossyStoneBricks => true, - BlockKind::InfestedCrackedStoneBricks => true, - BlockKind::InfestedChiseledStoneBricks => true, - BlockKind::BrownMushroomBlock => true, - BlockKind::RedMushroomBlock => true, - BlockKind::MushroomStem => true, - BlockKind::IronBars => true, - BlockKind::Chain => true, - BlockKind::GlassPane => true, - BlockKind::Melon => true, - BlockKind::AttachedPumpkinStem => false, - BlockKind::AttachedMelonStem => false, - BlockKind::PumpkinStem => false, - BlockKind::MelonStem => false, - BlockKind::Vine => false, - BlockKind::OakFenceGate => true, - BlockKind::BrickStairs => true, - BlockKind::StoneBrickStairs => true, - BlockKind::Mycelium => true, - BlockKind::LilyPad => true, - BlockKind::NetherBricks => true, - BlockKind::NetherBrickFence => true, - BlockKind::NetherBrickStairs => true, - BlockKind::NetherWart => false, - BlockKind::EnchantingTable => true, - BlockKind::BrewingStand => true, - BlockKind::Cauldron => true, - BlockKind::EndPortal => false, - BlockKind::EndPortalFrame => true, - BlockKind::EndStone => true, - BlockKind::DragonEgg => true, - BlockKind::RedstoneLamp => true, - BlockKind::Cocoa => true, - BlockKind::SandstoneStairs => true, - BlockKind::EmeraldOre => true, - BlockKind::EnderChest => true, - BlockKind::TripwireHook => false, - BlockKind::Tripwire => false, - BlockKind::EmeraldBlock => true, - BlockKind::SpruceStairs => true, - BlockKind::BirchStairs => true, - BlockKind::JungleStairs => true, - BlockKind::CommandBlock => true, - BlockKind::Beacon => true, - BlockKind::CobblestoneWall => true, - BlockKind::MossyCobblestoneWall => true, - BlockKind::FlowerPot => true, - BlockKind::PottedOakSapling => true, - BlockKind::PottedSpruceSapling => true, - BlockKind::PottedBirchSapling => true, - BlockKind::PottedJungleSapling => true, - BlockKind::PottedAcaciaSapling => true, - BlockKind::PottedDarkOakSapling => true, - BlockKind::PottedFern => true, - BlockKind::PottedDandelion => true, - BlockKind::PottedPoppy => true, - BlockKind::PottedBlueOrchid => true, - BlockKind::PottedAllium => true, - BlockKind::PottedAzureBluet => true, - BlockKind::PottedRedTulip => true, - BlockKind::PottedOrangeTulip => true, - BlockKind::PottedWhiteTulip => true, - BlockKind::PottedPinkTulip => true, - BlockKind::PottedOxeyeDaisy => true, - BlockKind::PottedCornflower => true, - BlockKind::PottedLilyOfTheValley => true, - BlockKind::PottedWitherRose => true, - BlockKind::PottedRedMushroom => true, - BlockKind::PottedBrownMushroom => true, - BlockKind::PottedDeadBush => true, - BlockKind::PottedCactus => true, - BlockKind::Carrots => false, - BlockKind::Potatoes => false, - BlockKind::OakButton => false, - BlockKind::SpruceButton => false, - BlockKind::BirchButton => false, - BlockKind::JungleButton => false, - BlockKind::AcaciaButton => false, - BlockKind::DarkOakButton => false, - BlockKind::SkeletonSkull => true, - BlockKind::SkeletonWallSkull => true, - BlockKind::WitherSkeletonSkull => true, - BlockKind::WitherSkeletonWallSkull => true, - BlockKind::ZombieHead => true, - BlockKind::ZombieWallHead => true, - BlockKind::PlayerHead => true, - BlockKind::PlayerWallHead => true, - BlockKind::CreeperHead => true, - BlockKind::CreeperWallHead => true, - BlockKind::DragonHead => true, - BlockKind::DragonWallHead => true, - BlockKind::Anvil => true, - BlockKind::ChippedAnvil => true, - BlockKind::DamagedAnvil => true, - BlockKind::TrappedChest => true, - BlockKind::LightWeightedPressurePlate => false, - BlockKind::HeavyWeightedPressurePlate => false, - BlockKind::Comparator => true, - BlockKind::DaylightDetector => true, - BlockKind::RedstoneBlock => true, - BlockKind::NetherQuartzOre => true, - BlockKind::Hopper => true, - BlockKind::QuartzBlock => true, - BlockKind::ChiseledQuartzBlock => true, - BlockKind::QuartzPillar => true, - BlockKind::QuartzStairs => true, - BlockKind::ActivatorRail => false, - BlockKind::Dropper => true, - BlockKind::WhiteTerracotta => true, - BlockKind::OrangeTerracotta => true, - BlockKind::MagentaTerracotta => true, - BlockKind::LightBlueTerracotta => true, - BlockKind::YellowTerracotta => true, - BlockKind::LimeTerracotta => true, - BlockKind::PinkTerracotta => true, - BlockKind::GrayTerracotta => true, - BlockKind::LightGrayTerracotta => true, - BlockKind::CyanTerracotta => true, - BlockKind::PurpleTerracotta => true, - BlockKind::BlueTerracotta => true, - BlockKind::BrownTerracotta => true, - BlockKind::GreenTerracotta => true, - BlockKind::RedTerracotta => true, - BlockKind::BlackTerracotta => true, - BlockKind::WhiteStainedGlassPane => true, - BlockKind::OrangeStainedGlassPane => true, - BlockKind::MagentaStainedGlassPane => true, - BlockKind::LightBlueStainedGlassPane => true, - BlockKind::YellowStainedGlassPane => true, - BlockKind::LimeStainedGlassPane => true, - BlockKind::PinkStainedGlassPane => true, - BlockKind::GrayStainedGlassPane => true, - BlockKind::LightGrayStainedGlassPane => true, - BlockKind::CyanStainedGlassPane => true, - BlockKind::PurpleStainedGlassPane => true, - BlockKind::BlueStainedGlassPane => true, - BlockKind::BrownStainedGlassPane => true, - BlockKind::GreenStainedGlassPane => true, - BlockKind::RedStainedGlassPane => true, - BlockKind::BlackStainedGlassPane => true, - BlockKind::AcaciaStairs => true, - BlockKind::DarkOakStairs => true, - BlockKind::SlimeBlock => true, - BlockKind::Barrier => true, - BlockKind::IronTrapdoor => true, - BlockKind::Prismarine => true, - BlockKind::PrismarineBricks => true, - BlockKind::DarkPrismarine => true, - BlockKind::PrismarineStairs => true, - BlockKind::PrismarineBrickStairs => true, - BlockKind::DarkPrismarineStairs => true, - BlockKind::PrismarineSlab => true, - BlockKind::PrismarineBrickSlab => true, - BlockKind::DarkPrismarineSlab => true, - BlockKind::SeaLantern => true, - BlockKind::HayBlock => true, - BlockKind::WhiteCarpet => true, - BlockKind::OrangeCarpet => true, - BlockKind::MagentaCarpet => true, - BlockKind::LightBlueCarpet => true, - BlockKind::YellowCarpet => true, - BlockKind::LimeCarpet => true, - BlockKind::PinkCarpet => true, - BlockKind::GrayCarpet => true, - BlockKind::LightGrayCarpet => true, - BlockKind::CyanCarpet => true, - BlockKind::PurpleCarpet => true, - BlockKind::BlueCarpet => true, - BlockKind::BrownCarpet => true, - BlockKind::GreenCarpet => true, - BlockKind::RedCarpet => true, - BlockKind::BlackCarpet => true, - BlockKind::Terracotta => true, - BlockKind::CoalBlock => true, - BlockKind::PackedIce => true, - BlockKind::Sunflower => false, - BlockKind::Lilac => false, - BlockKind::RoseBush => false, - BlockKind::Peony => false, - BlockKind::TallGrass => false, - BlockKind::LargeFern => false, - BlockKind::WhiteBanner => false, - BlockKind::OrangeBanner => false, - BlockKind::MagentaBanner => false, - BlockKind::LightBlueBanner => false, - BlockKind::YellowBanner => false, - BlockKind::LimeBanner => false, - BlockKind::PinkBanner => false, - BlockKind::GrayBanner => false, - BlockKind::LightGrayBanner => false, - BlockKind::CyanBanner => false, - BlockKind::PurpleBanner => false, - BlockKind::BlueBanner => false, - BlockKind::BrownBanner => false, - BlockKind::GreenBanner => false, - BlockKind::RedBanner => false, - BlockKind::BlackBanner => false, - BlockKind::WhiteWallBanner => false, - BlockKind::OrangeWallBanner => false, - BlockKind::MagentaWallBanner => false, - BlockKind::LightBlueWallBanner => false, - BlockKind::YellowWallBanner => false, - BlockKind::LimeWallBanner => false, - BlockKind::PinkWallBanner => false, - BlockKind::GrayWallBanner => false, - BlockKind::LightGrayWallBanner => false, - BlockKind::CyanWallBanner => false, - BlockKind::PurpleWallBanner => false, - BlockKind::BlueWallBanner => false, - BlockKind::BrownWallBanner => false, - BlockKind::GreenWallBanner => false, - BlockKind::RedWallBanner => false, - BlockKind::BlackWallBanner => false, - BlockKind::RedSandstone => true, - BlockKind::ChiseledRedSandstone => true, - BlockKind::CutRedSandstone => true, - BlockKind::RedSandstoneStairs => true, - BlockKind::OakSlab => true, - BlockKind::SpruceSlab => true, - BlockKind::BirchSlab => true, - BlockKind::JungleSlab => true, - BlockKind::AcaciaSlab => true, - BlockKind::DarkOakSlab => true, - BlockKind::StoneSlab => true, - BlockKind::SmoothStoneSlab => true, - BlockKind::SandstoneSlab => true, - BlockKind::CutSandstoneSlab => true, - BlockKind::PetrifiedOakSlab => true, - BlockKind::CobblestoneSlab => true, - BlockKind::BrickSlab => true, - BlockKind::StoneBrickSlab => true, - BlockKind::NetherBrickSlab => true, - BlockKind::QuartzSlab => true, - BlockKind::RedSandstoneSlab => true, - BlockKind::CutRedSandstoneSlab => true, - BlockKind::PurpurSlab => true, - BlockKind::SmoothStone => true, - BlockKind::SmoothSandstone => true, - BlockKind::SmoothQuartz => true, - BlockKind::SmoothRedSandstone => true, - BlockKind::SpruceFenceGate => true, - BlockKind::BirchFenceGate => true, - BlockKind::JungleFenceGate => true, - BlockKind::AcaciaFenceGate => true, - BlockKind::DarkOakFenceGate => true, - BlockKind::SpruceFence => true, - BlockKind::BirchFence => true, - BlockKind::JungleFence => true, - BlockKind::AcaciaFence => true, - BlockKind::DarkOakFence => true, - BlockKind::SpruceDoor => true, - BlockKind::BirchDoor => true, - BlockKind::JungleDoor => true, - BlockKind::AcaciaDoor => true, - BlockKind::DarkOakDoor => true, - BlockKind::EndRod => true, - BlockKind::ChorusPlant => true, - BlockKind::ChorusFlower => true, - BlockKind::PurpurBlock => true, - BlockKind::PurpurPillar => true, - BlockKind::PurpurStairs => true, - BlockKind::EndStoneBricks => true, - BlockKind::Beetroots => false, - BlockKind::GrassPath => true, - BlockKind::EndGateway => false, - BlockKind::RepeatingCommandBlock => true, - BlockKind::ChainCommandBlock => true, - BlockKind::FrostedIce => true, - BlockKind::MagmaBlock => true, - BlockKind::NetherWartBlock => true, - BlockKind::RedNetherBricks => true, - BlockKind::BoneBlock => true, - BlockKind::StructureVoid => false, - BlockKind::Observer => true, - BlockKind::ShulkerBox => true, - BlockKind::WhiteShulkerBox => true, - BlockKind::OrangeShulkerBox => true, - BlockKind::MagentaShulkerBox => true, - BlockKind::LightBlueShulkerBox => true, - BlockKind::YellowShulkerBox => true, - BlockKind::LimeShulkerBox => true, - BlockKind::PinkShulkerBox => true, - BlockKind::GrayShulkerBox => true, - BlockKind::LightGrayShulkerBox => true, - BlockKind::CyanShulkerBox => true, - BlockKind::PurpleShulkerBox => true, - BlockKind::BlueShulkerBox => true, - BlockKind::BrownShulkerBox => true, - BlockKind::GreenShulkerBox => true, - BlockKind::RedShulkerBox => true, - BlockKind::BlackShulkerBox => true, - BlockKind::WhiteGlazedTerracotta => true, - BlockKind::OrangeGlazedTerracotta => true, - BlockKind::MagentaGlazedTerracotta => true, - BlockKind::LightBlueGlazedTerracotta => true, - BlockKind::YellowGlazedTerracotta => true, - BlockKind::LimeGlazedTerracotta => true, - BlockKind::PinkGlazedTerracotta => true, - BlockKind::GrayGlazedTerracotta => true, - BlockKind::LightGrayGlazedTerracotta => true, - BlockKind::CyanGlazedTerracotta => true, - BlockKind::PurpleGlazedTerracotta => true, - BlockKind::BlueGlazedTerracotta => true, - BlockKind::BrownGlazedTerracotta => true, - BlockKind::GreenGlazedTerracotta => true, - BlockKind::RedGlazedTerracotta => true, - BlockKind::BlackGlazedTerracotta => true, - BlockKind::WhiteConcrete => true, - BlockKind::OrangeConcrete => true, - BlockKind::MagentaConcrete => true, - BlockKind::LightBlueConcrete => true, - BlockKind::YellowConcrete => true, - BlockKind::LimeConcrete => true, - BlockKind::PinkConcrete => true, - BlockKind::GrayConcrete => true, - BlockKind::LightGrayConcrete => true, - BlockKind::CyanConcrete => true, - BlockKind::PurpleConcrete => true, - BlockKind::BlueConcrete => true, - BlockKind::BrownConcrete => true, - BlockKind::GreenConcrete => true, - BlockKind::RedConcrete => true, - BlockKind::BlackConcrete => true, - BlockKind::WhiteConcretePowder => true, - BlockKind::OrangeConcretePowder => true, - BlockKind::MagentaConcretePowder => true, - BlockKind::LightBlueConcretePowder => true, - BlockKind::YellowConcretePowder => true, - BlockKind::LimeConcretePowder => true, - BlockKind::PinkConcretePowder => true, - BlockKind::GrayConcretePowder => true, - BlockKind::LightGrayConcretePowder => true, - BlockKind::CyanConcretePowder => true, - BlockKind::PurpleConcretePowder => true, - BlockKind::BlueConcretePowder => true, - BlockKind::BrownConcretePowder => true, - BlockKind::GreenConcretePowder => true, - BlockKind::RedConcretePowder => true, - BlockKind::BlackConcretePowder => true, - BlockKind::Kelp => false, - BlockKind::KelpPlant => false, - BlockKind::DriedKelpBlock => true, - BlockKind::TurtleEgg => true, - BlockKind::DeadTubeCoralBlock => true, - BlockKind::DeadBrainCoralBlock => true, - BlockKind::DeadBubbleCoralBlock => true, - BlockKind::DeadFireCoralBlock => true, - BlockKind::DeadHornCoralBlock => true, - BlockKind::TubeCoralBlock => true, - BlockKind::BrainCoralBlock => true, - BlockKind::BubbleCoralBlock => true, - BlockKind::FireCoralBlock => true, - BlockKind::HornCoralBlock => true, - BlockKind::DeadTubeCoral => false, - BlockKind::DeadBrainCoral => false, - BlockKind::DeadBubbleCoral => false, - BlockKind::DeadFireCoral => false, - BlockKind::DeadHornCoral => false, - BlockKind::TubeCoral => false, - BlockKind::BrainCoral => false, - BlockKind::BubbleCoral => false, - BlockKind::FireCoral => false, - BlockKind::HornCoral => false, - BlockKind::DeadTubeCoralFan => false, - BlockKind::DeadBrainCoralFan => false, - BlockKind::DeadBubbleCoralFan => false, - BlockKind::DeadFireCoralFan => false, - BlockKind::DeadHornCoralFan => false, - BlockKind::TubeCoralFan => false, - BlockKind::BrainCoralFan => false, - BlockKind::BubbleCoralFan => false, - BlockKind::FireCoralFan => false, - BlockKind::HornCoralFan => false, - BlockKind::DeadTubeCoralWallFan => false, - BlockKind::DeadBrainCoralWallFan => false, - BlockKind::DeadBubbleCoralWallFan => false, - BlockKind::DeadFireCoralWallFan => false, - BlockKind::DeadHornCoralWallFan => false, - BlockKind::TubeCoralWallFan => false, - BlockKind::BrainCoralWallFan => false, - BlockKind::BubbleCoralWallFan => false, - BlockKind::FireCoralWallFan => false, - BlockKind::HornCoralWallFan => false, - BlockKind::SeaPickle => true, - BlockKind::BlueIce => true, - BlockKind::Conduit => true, - BlockKind::BambooSapling => false, - BlockKind::Bamboo => true, - BlockKind::PottedBamboo => true, - BlockKind::VoidAir => false, - BlockKind::CaveAir => false, - BlockKind::BubbleColumn => false, - BlockKind::PolishedGraniteStairs => true, - BlockKind::SmoothRedSandstoneStairs => true, - BlockKind::MossyStoneBrickStairs => true, - BlockKind::PolishedDioriteStairs => true, - BlockKind::MossyCobblestoneStairs => true, - BlockKind::EndStoneBrickStairs => true, - BlockKind::StoneStairs => true, - BlockKind::SmoothSandstoneStairs => true, - BlockKind::SmoothQuartzStairs => true, - BlockKind::GraniteStairs => true, - BlockKind::AndesiteStairs => true, - BlockKind::RedNetherBrickStairs => true, - BlockKind::PolishedAndesiteStairs => true, - BlockKind::DioriteStairs => true, - BlockKind::PolishedGraniteSlab => true, - BlockKind::SmoothRedSandstoneSlab => true, - BlockKind::MossyStoneBrickSlab => true, - BlockKind::PolishedDioriteSlab => true, - BlockKind::MossyCobblestoneSlab => true, - BlockKind::EndStoneBrickSlab => true, - BlockKind::SmoothSandstoneSlab => true, - BlockKind::SmoothQuartzSlab => true, - BlockKind::GraniteSlab => true, - BlockKind::AndesiteSlab => true, - BlockKind::RedNetherBrickSlab => true, - BlockKind::PolishedAndesiteSlab => true, - BlockKind::DioriteSlab => true, - BlockKind::BrickWall => true, - BlockKind::PrismarineWall => true, - BlockKind::RedSandstoneWall => true, - BlockKind::MossyStoneBrickWall => true, - BlockKind::GraniteWall => true, - BlockKind::StoneBrickWall => true, - BlockKind::NetherBrickWall => true, - BlockKind::AndesiteWall => true, - BlockKind::RedNetherBrickWall => true, - BlockKind::SandstoneWall => true, - BlockKind::EndStoneBrickWall => true, - BlockKind::DioriteWall => true, - BlockKind::Scaffolding => true, - BlockKind::Loom => true, - BlockKind::Barrel => true, - BlockKind::Smoker => true, - BlockKind::BlastFurnace => true, - BlockKind::CartographyTable => true, - BlockKind::FletchingTable => true, - BlockKind::Grindstone => true, - BlockKind::Lectern => true, - BlockKind::SmithingTable => true, - BlockKind::Stonecutter => true, - BlockKind::Bell => true, - BlockKind::Lantern => true, - BlockKind::SoulLantern => true, - BlockKind::Campfire => true, - BlockKind::SoulCampfire => true, - BlockKind::SweetBerryBush => false, - BlockKind::WarpedStem => true, - BlockKind::StrippedWarpedStem => true, - BlockKind::WarpedHyphae => true, - BlockKind::StrippedWarpedHyphae => true, - BlockKind::WarpedNylium => true, - BlockKind::WarpedFungus => false, - BlockKind::WarpedWartBlock => true, - BlockKind::WarpedRoots => false, - BlockKind::NetherSprouts => false, - BlockKind::CrimsonStem => true, - BlockKind::StrippedCrimsonStem => true, - BlockKind::CrimsonHyphae => true, - BlockKind::StrippedCrimsonHyphae => true, - BlockKind::CrimsonNylium => true, - BlockKind::CrimsonFungus => false, - BlockKind::Shroomlight => true, - BlockKind::WeepingVines => false, - BlockKind::WeepingVinesPlant => false, - BlockKind::TwistingVines => false, - BlockKind::TwistingVinesPlant => false, - BlockKind::CrimsonRoots => false, - BlockKind::CrimsonPlanks => true, - BlockKind::WarpedPlanks => true, - BlockKind::CrimsonSlab => true, - BlockKind::WarpedSlab => true, - BlockKind::CrimsonPressurePlate => false, - BlockKind::WarpedPressurePlate => false, - BlockKind::CrimsonFence => true, - BlockKind::WarpedFence => true, - BlockKind::CrimsonTrapdoor => true, - BlockKind::WarpedTrapdoor => true, - BlockKind::CrimsonFenceGate => true, - BlockKind::WarpedFenceGate => true, - BlockKind::CrimsonStairs => true, - BlockKind::WarpedStairs => true, - BlockKind::CrimsonButton => false, - BlockKind::WarpedButton => false, - BlockKind::CrimsonDoor => true, - BlockKind::WarpedDoor => true, - BlockKind::CrimsonSign => false, - BlockKind::WarpedSign => false, - BlockKind::CrimsonWallSign => false, - BlockKind::WarpedWallSign => false, - BlockKind::StructureBlock => true, - BlockKind::Jigsaw => true, - BlockKind::Composter => true, - BlockKind::Target => true, - BlockKind::BeeNest => true, - BlockKind::Beehive => true, - BlockKind::HoneyBlock => true, - BlockKind::HoneycombBlock => true, - BlockKind::NetheriteBlock => true, - BlockKind::AncientDebris => true, - BlockKind::CryingObsidian => true, - BlockKind::RespawnAnchor => true, - BlockKind::PottedCrimsonFungus => true, - BlockKind::PottedWarpedFungus => true, - BlockKind::PottedCrimsonRoots => true, - BlockKind::PottedWarpedRoots => true, - BlockKind::Lodestone => true, - BlockKind::Blackstone => true, - BlockKind::BlackstoneStairs => true, - BlockKind::BlackstoneWall => true, - BlockKind::BlackstoneSlab => true, - BlockKind::PolishedBlackstone => true, - BlockKind::PolishedBlackstoneBricks => true, - BlockKind::CrackedPolishedBlackstoneBricks => true, - BlockKind::ChiseledPolishedBlackstone => true, - BlockKind::PolishedBlackstoneBrickSlab => true, - BlockKind::PolishedBlackstoneBrickStairs => true, - BlockKind::PolishedBlackstoneBrickWall => true, - BlockKind::GildedBlackstone => true, - BlockKind::PolishedBlackstoneStairs => true, - BlockKind::PolishedBlackstoneSlab => true, - BlockKind::PolishedBlackstonePressurePlate => false, - BlockKind::PolishedBlackstoneButton => false, - BlockKind::PolishedBlackstoneWall => true, - BlockKind::ChiseledNetherBricks => true, - BlockKind::CrackedNetherBricks => true, - BlockKind::QuartzBricks => true, - } - } -} -#[allow(dead_code, non_upper_case_globals)] -const DIG_MULTIPLIERS_rock: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::IronPickaxe, 6.0_f32), - (libcraft_items::Item::WoodenPickaxe, 2.0_f32), - (libcraft_items::Item::StonePickaxe, 4.0_f32), - (libcraft_items::Item::DiamondPickaxe, 8.0_f32), - (libcraft_items::Item::NetheritePickaxe, 9.0_f32), - (libcraft_items::Item::GoldenPickaxe, 12.0_f32), -]; -#[allow(dead_code, non_upper_case_globals)] -const DIG_MULTIPLIERS_wood: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::IronAxe, 6.0_f32), - (libcraft_items::Item::WoodenAxe, 2.0_f32), - (libcraft_items::Item::StoneAxe, 4.0_f32), - (libcraft_items::Item::DiamondAxe, 8.0_f32), - (libcraft_items::Item::NetheriteAxe, 9.0_f32), - (libcraft_items::Item::GoldenAxe, 12.0_f32), -]; -#[allow(dead_code, non_upper_case_globals)] -const DIG_MULTIPLIERS_plant: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::IronAxe, 6.0_f32), - (libcraft_items::Item::IronSword, 1.5_f32), - (libcraft_items::Item::WoodenSword, 1.5_f32), - (libcraft_items::Item::WoodenAxe, 2.0_f32), - (libcraft_items::Item::StoneSword, 1.5_f32), - (libcraft_items::Item::StoneAxe, 4.0_f32), - (libcraft_items::Item::DiamondSword, 1.5_f32), - (libcraft_items::Item::DiamondAxe, 8.0_f32), - (libcraft_items::Item::NetheriteAxe, 9.0_f32), - (libcraft_items::Item::NetheriteSword, 1.5_f32), - (libcraft_items::Item::GoldenSword, 1.5_f32), - (libcraft_items::Item::GoldenAxe, 12.0_f32), -]; -#[allow(dead_code, non_upper_case_globals)] -const DIG_MULTIPLIERS_melon: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::IronSword, 1.5_f32), - (libcraft_items::Item::WoodenSword, 1.5_f32), - (libcraft_items::Item::StoneSword, 1.5_f32), - (libcraft_items::Item::DiamondSword, 1.5_f32), - (libcraft_items::Item::NetheriteSword, 1.5_f32), - (libcraft_items::Item::GoldenSword, 1.5_f32), -]; -#[allow(dead_code, non_upper_case_globals)] -const DIG_MULTIPLIERS_leaves: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::IronSword, 1.5_f32), - (libcraft_items::Item::WoodenSword, 1.5_f32), - (libcraft_items::Item::StoneSword, 1.5_f32), - (libcraft_items::Item::DiamondSword, 1.5_f32), - (libcraft_items::Item::GoldenSword, 1.5_f32), - (libcraft_items::Item::NetheriteSword, 1.5_f32), - (libcraft_items::Item::Shears, 6.0_f32), -]; -#[allow(dead_code, non_upper_case_globals)] -const DIG_MULTIPLIERS_dirt: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::IronShovel, 6.0_f32), - (libcraft_items::Item::WoodenShovel, 2.0_f32), - (libcraft_items::Item::StoneShovel, 4.0_f32), - (libcraft_items::Item::DiamondShovel, 8.0_f32), - (libcraft_items::Item::NetheriteShovel, 9.0_f32), - (libcraft_items::Item::GoldenShovel, 12.0_f32), -]; -#[allow(dead_code, non_upper_case_globals)] -const DIG_MULTIPLIERS_web: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::IronSword, 15.0_f32), - (libcraft_items::Item::WoodenSword, 15.0_f32), - (libcraft_items::Item::StoneSword, 15.0_f32), - (libcraft_items::Item::DiamondSword, 15.0_f32), - (libcraft_items::Item::GoldenSword, 15.0_f32), - (libcraft_items::Item::NetheriteSword, 15.0_f32), - (libcraft_items::Item::Shears, 15.0_f32), -]; -#[allow(dead_code, non_upper_case_globals)] -const DIG_MULTIPLIERS_wool: &[(libcraft_items::Item, f32)] = - &[(libcraft_items::Item::Shears, 4.8_f32)]; -#[allow(warnings)] -#[allow(clippy::all)] -impl BlockKind { - /// Returns the `dig_multipliers` property of this `BlockKind`. - pub fn dig_multipliers(&self) -> &'static [(libcraft_items::Item, f32)] { - match self { - BlockKind::Air => &[], - BlockKind::Stone => DIG_MULTIPLIERS_rock, - BlockKind::Granite => DIG_MULTIPLIERS_rock, - BlockKind::PolishedGranite => DIG_MULTIPLIERS_rock, - BlockKind::Diorite => DIG_MULTIPLIERS_rock, - BlockKind::PolishedDiorite => DIG_MULTIPLIERS_rock, - BlockKind::Andesite => DIG_MULTIPLIERS_rock, - BlockKind::PolishedAndesite => DIG_MULTIPLIERS_rock, - BlockKind::GrassBlock => DIG_MULTIPLIERS_dirt, - BlockKind::Dirt => DIG_MULTIPLIERS_dirt, - BlockKind::CoarseDirt => DIG_MULTIPLIERS_plant, - BlockKind::Podzol => DIG_MULTIPLIERS_plant, - BlockKind::Cobblestone => DIG_MULTIPLIERS_rock, - BlockKind::OakPlanks => DIG_MULTIPLIERS_wood, - BlockKind::SprucePlanks => DIG_MULTIPLIERS_wood, - BlockKind::BirchPlanks => DIG_MULTIPLIERS_wood, - BlockKind::JunglePlanks => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaPlanks => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakPlanks => DIG_MULTIPLIERS_wood, - BlockKind::OakSapling => DIG_MULTIPLIERS_plant, - BlockKind::SpruceSapling => DIG_MULTIPLIERS_plant, - BlockKind::BirchSapling => DIG_MULTIPLIERS_plant, - BlockKind::JungleSapling => DIG_MULTIPLIERS_plant, - BlockKind::AcaciaSapling => DIG_MULTIPLIERS_plant, - BlockKind::DarkOakSapling => DIG_MULTIPLIERS_plant, - BlockKind::Bedrock => &[], - BlockKind::Water => &[], - BlockKind::Lava => &[], - BlockKind::Sand => DIG_MULTIPLIERS_dirt, - BlockKind::RedSand => DIG_MULTIPLIERS_dirt, - BlockKind::Gravel => DIG_MULTIPLIERS_dirt, - BlockKind::GoldOre => DIG_MULTIPLIERS_rock, - BlockKind::IronOre => DIG_MULTIPLIERS_rock, - BlockKind::CoalOre => DIG_MULTIPLIERS_rock, - BlockKind::NetherGoldOre => DIG_MULTIPLIERS_rock, - BlockKind::OakLog => DIG_MULTIPLIERS_wood, - BlockKind::SpruceLog => DIG_MULTIPLIERS_wood, - BlockKind::BirchLog => DIG_MULTIPLIERS_wood, - BlockKind::JungleLog => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaLog => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakLog => DIG_MULTIPLIERS_wood, - BlockKind::StrippedSpruceLog => DIG_MULTIPLIERS_wood, - BlockKind::StrippedBirchLog => DIG_MULTIPLIERS_wood, - BlockKind::StrippedJungleLog => DIG_MULTIPLIERS_wood, - BlockKind::StrippedAcaciaLog => DIG_MULTIPLIERS_wood, - BlockKind::StrippedDarkOakLog => DIG_MULTIPLIERS_wood, - BlockKind::StrippedOakLog => DIG_MULTIPLIERS_wood, - BlockKind::OakWood => DIG_MULTIPLIERS_wood, - BlockKind::SpruceWood => DIG_MULTIPLIERS_wood, - BlockKind::BirchWood => DIG_MULTIPLIERS_wood, - BlockKind::JungleWood => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaWood => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakWood => DIG_MULTIPLIERS_wood, - BlockKind::StrippedOakWood => DIG_MULTIPLIERS_wood, - BlockKind::StrippedSpruceWood => DIG_MULTIPLIERS_wood, - BlockKind::StrippedBirchWood => DIG_MULTIPLIERS_wood, - BlockKind::StrippedJungleWood => DIG_MULTIPLIERS_wood, - BlockKind::StrippedAcaciaWood => DIG_MULTIPLIERS_wood, - BlockKind::StrippedDarkOakWood => DIG_MULTIPLIERS_wood, - BlockKind::OakLeaves => DIG_MULTIPLIERS_plant, - BlockKind::SpruceLeaves => DIG_MULTIPLIERS_plant, - BlockKind::BirchLeaves => DIG_MULTIPLIERS_plant, - BlockKind::JungleLeaves => DIG_MULTIPLIERS_plant, - BlockKind::AcaciaLeaves => DIG_MULTIPLIERS_plant, - BlockKind::DarkOakLeaves => DIG_MULTIPLIERS_plant, - BlockKind::Sponge => &[], - BlockKind::WetSponge => &[], - BlockKind::Glass => &[], - BlockKind::LapisOre => DIG_MULTIPLIERS_rock, - BlockKind::LapisBlock => DIG_MULTIPLIERS_rock, - BlockKind::Dispenser => DIG_MULTIPLIERS_rock, - BlockKind::Sandstone => DIG_MULTIPLIERS_rock, - BlockKind::ChiseledSandstone => DIG_MULTIPLIERS_rock, - BlockKind::CutSandstone => DIG_MULTIPLIERS_rock, - BlockKind::NoteBlock => DIG_MULTIPLIERS_wood, - BlockKind::WhiteBed => &[], - BlockKind::OrangeBed => &[], - BlockKind::MagentaBed => &[], - BlockKind::LightBlueBed => &[], - BlockKind::YellowBed => &[], - BlockKind::LimeBed => &[], - BlockKind::PinkBed => &[], - BlockKind::GrayBed => &[], - BlockKind::LightGrayBed => &[], - BlockKind::CyanBed => &[], - BlockKind::PurpleBed => &[], - BlockKind::BlueBed => &[], - BlockKind::BrownBed => &[], - BlockKind::GreenBed => &[], - BlockKind::RedBed => &[], - BlockKind::BlackBed => &[], - BlockKind::PoweredRail => DIG_MULTIPLIERS_rock, - BlockKind::DetectorRail => DIG_MULTIPLIERS_rock, - BlockKind::StickyPiston => &[], - BlockKind::Cobweb => DIG_MULTIPLIERS_web, - BlockKind::Grass => DIG_MULTIPLIERS_plant, - BlockKind::Fern => DIG_MULTIPLIERS_plant, - BlockKind::DeadBush => DIG_MULTIPLIERS_plant, - BlockKind::Seagrass => DIG_MULTIPLIERS_plant, - BlockKind::TallSeagrass => DIG_MULTIPLIERS_plant, - BlockKind::Piston => &[], - BlockKind::PistonHead => &[], - BlockKind::WhiteWool => DIG_MULTIPLIERS_wool, - BlockKind::OrangeWool => DIG_MULTIPLIERS_wool, - BlockKind::MagentaWool => DIG_MULTIPLIERS_wool, - BlockKind::LightBlueWool => DIG_MULTIPLIERS_wool, - BlockKind::YellowWool => DIG_MULTIPLIERS_wool, - BlockKind::LimeWool => DIG_MULTIPLIERS_wool, - BlockKind::PinkWool => DIG_MULTIPLIERS_wool, - BlockKind::GrayWool => DIG_MULTIPLIERS_wool, - BlockKind::LightGrayWool => DIG_MULTIPLIERS_wool, - BlockKind::CyanWool => DIG_MULTIPLIERS_wool, - BlockKind::PurpleWool => DIG_MULTIPLIERS_wool, - BlockKind::BlueWool => DIG_MULTIPLIERS_wool, - BlockKind::BrownWool => DIG_MULTIPLIERS_wool, - BlockKind::GreenWool => DIG_MULTIPLIERS_wool, - BlockKind::RedWool => DIG_MULTIPLIERS_wool, - BlockKind::BlackWool => DIG_MULTIPLIERS_wool, - BlockKind::MovingPiston => &[], - BlockKind::Dandelion => DIG_MULTIPLIERS_plant, - BlockKind::Poppy => DIG_MULTIPLIERS_plant, - BlockKind::BlueOrchid => DIG_MULTIPLIERS_plant, - BlockKind::Allium => DIG_MULTIPLIERS_plant, - BlockKind::AzureBluet => DIG_MULTIPLIERS_plant, - BlockKind::RedTulip => DIG_MULTIPLIERS_plant, - BlockKind::OrangeTulip => DIG_MULTIPLIERS_plant, - BlockKind::WhiteTulip => DIG_MULTIPLIERS_plant, - BlockKind::PinkTulip => DIG_MULTIPLIERS_plant, - BlockKind::OxeyeDaisy => DIG_MULTIPLIERS_plant, - BlockKind::Cornflower => DIG_MULTIPLIERS_plant, - BlockKind::WitherRose => DIG_MULTIPLIERS_plant, - BlockKind::LilyOfTheValley => DIG_MULTIPLIERS_plant, - BlockKind::BrownMushroom => DIG_MULTIPLIERS_plant, - BlockKind::RedMushroom => DIG_MULTIPLIERS_plant, - BlockKind::GoldBlock => DIG_MULTIPLIERS_rock, - BlockKind::IronBlock => DIG_MULTIPLIERS_rock, - BlockKind::Bricks => DIG_MULTIPLIERS_rock, - BlockKind::Tnt => &[], - BlockKind::Bookshelf => DIG_MULTIPLIERS_wood, - BlockKind::MossyCobblestone => DIG_MULTIPLIERS_rock, - BlockKind::Obsidian => DIG_MULTIPLIERS_rock, - BlockKind::Torch => &[], - BlockKind::WallTorch => &[], - BlockKind::Fire => &[], - BlockKind::SoulFire => &[], - BlockKind::Spawner => DIG_MULTIPLIERS_rock, - BlockKind::OakStairs => DIG_MULTIPLIERS_wood, - BlockKind::Chest => DIG_MULTIPLIERS_wood, - BlockKind::RedstoneWire => &[], - BlockKind::DiamondOre => DIG_MULTIPLIERS_rock, - BlockKind::DiamondBlock => DIG_MULTIPLIERS_rock, - BlockKind::CraftingTable => DIG_MULTIPLIERS_wood, - BlockKind::Wheat => DIG_MULTIPLIERS_plant, - BlockKind::Farmland => DIG_MULTIPLIERS_dirt, - BlockKind::Furnace => DIG_MULTIPLIERS_rock, - BlockKind::OakSign => DIG_MULTIPLIERS_wood, - BlockKind::SpruceSign => DIG_MULTIPLIERS_wood, - BlockKind::BirchSign => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaSign => DIG_MULTIPLIERS_wood, - BlockKind::JungleSign => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakSign => DIG_MULTIPLIERS_wood, - BlockKind::OakDoor => DIG_MULTIPLIERS_wood, - BlockKind::Ladder => &[], - BlockKind::Rail => DIG_MULTIPLIERS_rock, - BlockKind::CobblestoneStairs => DIG_MULTIPLIERS_rock, - BlockKind::OakWallSign => DIG_MULTIPLIERS_wood, - BlockKind::SpruceWallSign => DIG_MULTIPLIERS_wood, - BlockKind::BirchWallSign => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaWallSign => DIG_MULTIPLIERS_wood, - BlockKind::JungleWallSign => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakWallSign => DIG_MULTIPLIERS_wood, - BlockKind::Lever => &[], - BlockKind::StonePressurePlate => DIG_MULTIPLIERS_rock, - BlockKind::IronDoor => DIG_MULTIPLIERS_rock, - BlockKind::OakPressurePlate => DIG_MULTIPLIERS_wood, - BlockKind::SprucePressurePlate => DIG_MULTIPLIERS_wood, - BlockKind::BirchPressurePlate => DIG_MULTIPLIERS_wood, - BlockKind::JunglePressurePlate => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaPressurePlate => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakPressurePlate => DIG_MULTIPLIERS_wood, - BlockKind::RedstoneOre => DIG_MULTIPLIERS_rock, - BlockKind::RedstoneTorch => &[], - BlockKind::RedstoneWallTorch => &[], - BlockKind::StoneButton => DIG_MULTIPLIERS_rock, - BlockKind::Snow => DIG_MULTIPLIERS_dirt, - BlockKind::Ice => DIG_MULTIPLIERS_rock, - BlockKind::SnowBlock => DIG_MULTIPLIERS_dirt, - BlockKind::Cactus => DIG_MULTIPLIERS_plant, - BlockKind::Clay => DIG_MULTIPLIERS_dirt, - BlockKind::SugarCane => DIG_MULTIPLIERS_plant, - BlockKind::Jukebox => DIG_MULTIPLIERS_wood, - BlockKind::OakFence => DIG_MULTIPLIERS_wood, - BlockKind::Pumpkin => DIG_MULTIPLIERS_plant, - BlockKind::Netherrack => DIG_MULTIPLIERS_rock, - BlockKind::SoulSand => DIG_MULTIPLIERS_dirt, - BlockKind::SoulSoil => DIG_MULTIPLIERS_dirt, - BlockKind::Basalt => DIG_MULTIPLIERS_rock, - BlockKind::PolishedBasalt => DIG_MULTIPLIERS_rock, - BlockKind::SoulTorch => &[], - BlockKind::SoulWallTorch => &[], - BlockKind::Glowstone => &[], - BlockKind::NetherPortal => &[], - BlockKind::CarvedPumpkin => DIG_MULTIPLIERS_plant, - BlockKind::JackOLantern => DIG_MULTIPLIERS_plant, - BlockKind::Cake => &[], - BlockKind::Repeater => &[], - BlockKind::WhiteStainedGlass => &[], - BlockKind::OrangeStainedGlass => &[], - BlockKind::MagentaStainedGlass => &[], - BlockKind::LightBlueStainedGlass => &[], - BlockKind::YellowStainedGlass => &[], - BlockKind::LimeStainedGlass => &[], - BlockKind::PinkStainedGlass => &[], - BlockKind::GrayStainedGlass => &[], - BlockKind::LightGrayStainedGlass => &[], - BlockKind::CyanStainedGlass => &[], - BlockKind::PurpleStainedGlass => &[], - BlockKind::BlueStainedGlass => &[], - BlockKind::BrownStainedGlass => &[], - BlockKind::GreenStainedGlass => &[], - BlockKind::RedStainedGlass => &[], - BlockKind::BlackStainedGlass => &[], - BlockKind::OakTrapdoor => DIG_MULTIPLIERS_wood, - BlockKind::SpruceTrapdoor => DIG_MULTIPLIERS_wood, - BlockKind::BirchTrapdoor => DIG_MULTIPLIERS_wood, - BlockKind::JungleTrapdoor => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaTrapdoor => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakTrapdoor => DIG_MULTIPLIERS_wood, - BlockKind::StoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::MossyStoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::CrackedStoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::ChiseledStoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::InfestedStone => DIG_MULTIPLIERS_rock, - BlockKind::InfestedCobblestone => DIG_MULTIPLIERS_rock, - BlockKind::InfestedStoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::InfestedMossyStoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::InfestedCrackedStoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::InfestedChiseledStoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::BrownMushroomBlock => DIG_MULTIPLIERS_wood, - BlockKind::RedMushroomBlock => DIG_MULTIPLIERS_wood, - BlockKind::MushroomStem => DIG_MULTIPLIERS_wood, - BlockKind::IronBars => DIG_MULTIPLIERS_rock, - BlockKind::Chain => DIG_MULTIPLIERS_rock, - BlockKind::GlassPane => &[], - BlockKind::Melon => DIG_MULTIPLIERS_plant, - BlockKind::AttachedPumpkinStem => DIG_MULTIPLIERS_plant, - BlockKind::AttachedMelonStem => DIG_MULTIPLIERS_plant, - BlockKind::PumpkinStem => DIG_MULTIPLIERS_plant, - BlockKind::MelonStem => DIG_MULTIPLIERS_plant, - BlockKind::Vine => DIG_MULTIPLIERS_plant, - BlockKind::OakFenceGate => DIG_MULTIPLIERS_wood, - BlockKind::BrickStairs => DIG_MULTIPLIERS_rock, - BlockKind::StoneBrickStairs => DIG_MULTIPLIERS_rock, - BlockKind::Mycelium => DIG_MULTIPLIERS_dirt, - BlockKind::LilyPad => DIG_MULTIPLIERS_plant, - BlockKind::NetherBricks => DIG_MULTIPLIERS_rock, - BlockKind::NetherBrickFence => DIG_MULTIPLIERS_rock, - BlockKind::NetherBrickStairs => DIG_MULTIPLIERS_rock, - BlockKind::NetherWart => DIG_MULTIPLIERS_plant, - BlockKind::EnchantingTable => DIG_MULTIPLIERS_rock, - BlockKind::BrewingStand => DIG_MULTIPLIERS_rock, - BlockKind::Cauldron => DIG_MULTIPLIERS_rock, - BlockKind::EndPortal => &[], - BlockKind::EndPortalFrame => &[], - BlockKind::EndStone => DIG_MULTIPLIERS_rock, - BlockKind::DragonEgg => &[], - BlockKind::RedstoneLamp => &[], - BlockKind::Cocoa => DIG_MULTIPLIERS_plant, - BlockKind::SandstoneStairs => DIG_MULTIPLIERS_rock, - BlockKind::EmeraldOre => DIG_MULTIPLIERS_rock, - BlockKind::EnderChest => DIG_MULTIPLIERS_rock, - BlockKind::TripwireHook => &[], - BlockKind::Tripwire => &[], - BlockKind::EmeraldBlock => DIG_MULTIPLIERS_rock, - BlockKind::SpruceStairs => DIG_MULTIPLIERS_wood, - BlockKind::BirchStairs => DIG_MULTIPLIERS_wood, - BlockKind::JungleStairs => DIG_MULTIPLIERS_wood, - BlockKind::CommandBlock => &[], - BlockKind::Beacon => &[], - BlockKind::CobblestoneWall => DIG_MULTIPLIERS_rock, - BlockKind::MossyCobblestoneWall => DIG_MULTIPLIERS_rock, - BlockKind::FlowerPot => &[], - BlockKind::PottedOakSapling => &[], - BlockKind::PottedSpruceSapling => &[], - BlockKind::PottedBirchSapling => &[], - BlockKind::PottedJungleSapling => &[], - BlockKind::PottedAcaciaSapling => &[], - BlockKind::PottedDarkOakSapling => &[], - BlockKind::PottedFern => &[], - BlockKind::PottedDandelion => DIG_MULTIPLIERS_plant, - BlockKind::PottedPoppy => &[], - BlockKind::PottedBlueOrchid => &[], - BlockKind::PottedAllium => &[], - BlockKind::PottedAzureBluet => &[], - BlockKind::PottedRedTulip => &[], - BlockKind::PottedOrangeTulip => &[], - BlockKind::PottedWhiteTulip => &[], - BlockKind::PottedPinkTulip => &[], - BlockKind::PottedOxeyeDaisy => &[], - BlockKind::PottedCornflower => &[], - BlockKind::PottedLilyOfTheValley => &[], - BlockKind::PottedWitherRose => &[], - BlockKind::PottedRedMushroom => &[], - BlockKind::PottedBrownMushroom => &[], - BlockKind::PottedDeadBush => &[], - BlockKind::PottedCactus => &[], - BlockKind::Carrots => DIG_MULTIPLIERS_plant, - BlockKind::Potatoes => DIG_MULTIPLIERS_plant, - BlockKind::OakButton => DIG_MULTIPLIERS_wood, - BlockKind::SpruceButton => DIG_MULTIPLIERS_wood, - BlockKind::BirchButton => DIG_MULTIPLIERS_wood, - BlockKind::JungleButton => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaButton => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakButton => DIG_MULTIPLIERS_wood, - BlockKind::SkeletonSkull => &[], - BlockKind::SkeletonWallSkull => &[], - BlockKind::WitherSkeletonSkull => &[], - BlockKind::WitherSkeletonWallSkull => &[], - BlockKind::ZombieHead => &[], - BlockKind::ZombieWallHead => &[], - BlockKind::PlayerHead => &[], - BlockKind::PlayerWallHead => &[], - BlockKind::CreeperHead => &[], - BlockKind::CreeperWallHead => &[], - BlockKind::DragonHead => &[], - BlockKind::DragonWallHead => &[], - BlockKind::Anvil => DIG_MULTIPLIERS_rock, - BlockKind::ChippedAnvil => DIG_MULTIPLIERS_rock, - BlockKind::DamagedAnvil => DIG_MULTIPLIERS_rock, - BlockKind::TrappedChest => DIG_MULTIPLIERS_wood, - BlockKind::LightWeightedPressurePlate => DIG_MULTIPLIERS_rock, - BlockKind::HeavyWeightedPressurePlate => DIG_MULTIPLIERS_rock, - BlockKind::Comparator => &[], - BlockKind::DaylightDetector => DIG_MULTIPLIERS_wood, - BlockKind::RedstoneBlock => DIG_MULTIPLIERS_rock, - BlockKind::NetherQuartzOre => DIG_MULTIPLIERS_rock, - BlockKind::Hopper => DIG_MULTIPLIERS_rock, - BlockKind::QuartzBlock => DIG_MULTIPLIERS_rock, - BlockKind::ChiseledQuartzBlock => DIG_MULTIPLIERS_rock, - BlockKind::QuartzPillar => DIG_MULTIPLIERS_rock, - BlockKind::QuartzStairs => DIG_MULTIPLIERS_rock, - BlockKind::ActivatorRail => DIG_MULTIPLIERS_rock, - BlockKind::Dropper => DIG_MULTIPLIERS_rock, - BlockKind::WhiteTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::OrangeTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::MagentaTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::LightBlueTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::YellowTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::LimeTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::PinkTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::GrayTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::LightGrayTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::CyanTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::PurpleTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::BlueTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::BrownTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::GreenTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::RedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::BlackTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::WhiteStainedGlassPane => &[], - BlockKind::OrangeStainedGlassPane => &[], - BlockKind::MagentaStainedGlassPane => &[], - BlockKind::LightBlueStainedGlassPane => &[], - BlockKind::YellowStainedGlassPane => &[], - BlockKind::LimeStainedGlassPane => &[], - BlockKind::PinkStainedGlassPane => &[], - BlockKind::GrayStainedGlassPane => &[], - BlockKind::LightGrayStainedGlassPane => &[], - BlockKind::CyanStainedGlassPane => &[], - BlockKind::PurpleStainedGlassPane => &[], - BlockKind::BlueStainedGlassPane => &[], - BlockKind::BrownStainedGlassPane => &[], - BlockKind::GreenStainedGlassPane => &[], - BlockKind::RedStainedGlassPane => &[], - BlockKind::BlackStainedGlassPane => &[], - BlockKind::AcaciaStairs => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakStairs => DIG_MULTIPLIERS_wood, - BlockKind::SlimeBlock => &[], - BlockKind::Barrier => &[], - BlockKind::IronTrapdoor => DIG_MULTIPLIERS_rock, - BlockKind::Prismarine => DIG_MULTIPLIERS_rock, - BlockKind::PrismarineBricks => DIG_MULTIPLIERS_rock, - BlockKind::DarkPrismarine => DIG_MULTIPLIERS_rock, - BlockKind::PrismarineStairs => DIG_MULTIPLIERS_rock, - BlockKind::PrismarineBrickStairs => DIG_MULTIPLIERS_rock, - BlockKind::DarkPrismarineStairs => DIG_MULTIPLIERS_rock, - BlockKind::PrismarineSlab => DIG_MULTIPLIERS_rock, - BlockKind::PrismarineBrickSlab => DIG_MULTIPLIERS_rock, - BlockKind::DarkPrismarineSlab => DIG_MULTIPLIERS_rock, - BlockKind::SeaLantern => &[], - BlockKind::HayBlock => &[], - BlockKind::WhiteCarpet => &[], - BlockKind::OrangeCarpet => &[], - BlockKind::MagentaCarpet => &[], - BlockKind::LightBlueCarpet => &[], - BlockKind::YellowCarpet => &[], - BlockKind::LimeCarpet => &[], - BlockKind::PinkCarpet => &[], - BlockKind::GrayCarpet => &[], - BlockKind::LightGrayCarpet => &[], - BlockKind::CyanCarpet => &[], - BlockKind::PurpleCarpet => &[], - BlockKind::BlueCarpet => &[], - BlockKind::BrownCarpet => &[], - BlockKind::GreenCarpet => &[], - BlockKind::RedCarpet => &[], - BlockKind::BlackCarpet => &[], - BlockKind::Terracotta => DIG_MULTIPLIERS_rock, - BlockKind::CoalBlock => DIG_MULTIPLIERS_rock, - BlockKind::PackedIce => DIG_MULTIPLIERS_rock, - BlockKind::Sunflower => DIG_MULTIPLIERS_plant, - BlockKind::Lilac => DIG_MULTIPLIERS_plant, - BlockKind::RoseBush => DIG_MULTIPLIERS_plant, - BlockKind::Peony => DIG_MULTIPLIERS_rock, - BlockKind::TallGrass => DIG_MULTIPLIERS_plant, - BlockKind::LargeFern => DIG_MULTIPLIERS_plant, - BlockKind::WhiteBanner => DIG_MULTIPLIERS_wood, - BlockKind::OrangeBanner => DIG_MULTIPLIERS_wood, - BlockKind::MagentaBanner => DIG_MULTIPLIERS_wood, - BlockKind::LightBlueBanner => DIG_MULTIPLIERS_wood, - BlockKind::YellowBanner => DIG_MULTIPLIERS_wood, - BlockKind::LimeBanner => DIG_MULTIPLIERS_wood, - BlockKind::PinkBanner => DIG_MULTIPLIERS_wood, - BlockKind::GrayBanner => DIG_MULTIPLIERS_wood, - BlockKind::LightGrayBanner => DIG_MULTIPLIERS_wood, - BlockKind::CyanBanner => DIG_MULTIPLIERS_wood, - BlockKind::PurpleBanner => DIG_MULTIPLIERS_wood, - BlockKind::BlueBanner => DIG_MULTIPLIERS_wood, - BlockKind::BrownBanner => DIG_MULTIPLIERS_wood, - BlockKind::GreenBanner => DIG_MULTIPLIERS_wood, - BlockKind::RedBanner => DIG_MULTIPLIERS_wood, - BlockKind::BlackBanner => DIG_MULTIPLIERS_wood, - BlockKind::WhiteWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::OrangeWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::MagentaWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::LightBlueWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::YellowWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::LimeWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::PinkWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::GrayWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::LightGrayWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::CyanWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::PurpleWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::BlueWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::BrownWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::GreenWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::RedWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::BlackWallBanner => DIG_MULTIPLIERS_wood, - BlockKind::RedSandstone => DIG_MULTIPLIERS_rock, - BlockKind::ChiseledRedSandstone => DIG_MULTIPLIERS_rock, - BlockKind::CutRedSandstone => DIG_MULTIPLIERS_rock, - BlockKind::RedSandstoneStairs => DIG_MULTIPLIERS_rock, - BlockKind::OakSlab => DIG_MULTIPLIERS_rock, - BlockKind::SpruceSlab => DIG_MULTIPLIERS_rock, - BlockKind::BirchSlab => DIG_MULTIPLIERS_rock, - BlockKind::JungleSlab => DIG_MULTIPLIERS_rock, - BlockKind::AcaciaSlab => DIG_MULTIPLIERS_rock, - BlockKind::DarkOakSlab => DIG_MULTIPLIERS_rock, - BlockKind::StoneSlab => DIG_MULTIPLIERS_rock, - BlockKind::SmoothStoneSlab => DIG_MULTIPLIERS_rock, - BlockKind::SandstoneSlab => DIG_MULTIPLIERS_rock, - BlockKind::CutSandstoneSlab => DIG_MULTIPLIERS_rock, - BlockKind::PetrifiedOakSlab => DIG_MULTIPLIERS_rock, - BlockKind::CobblestoneSlab => DIG_MULTIPLIERS_rock, - BlockKind::BrickSlab => DIG_MULTIPLIERS_rock, - BlockKind::StoneBrickSlab => DIG_MULTIPLIERS_rock, - BlockKind::NetherBrickSlab => DIG_MULTIPLIERS_rock, - BlockKind::QuartzSlab => DIG_MULTIPLIERS_rock, - BlockKind::RedSandstoneSlab => DIG_MULTIPLIERS_rock, - BlockKind::CutRedSandstoneSlab => DIG_MULTIPLIERS_rock, - BlockKind::PurpurSlab => DIG_MULTIPLIERS_rock, - BlockKind::SmoothStone => DIG_MULTIPLIERS_rock, - BlockKind::SmoothSandstone => DIG_MULTIPLIERS_rock, - BlockKind::SmoothQuartz => DIG_MULTIPLIERS_rock, - BlockKind::SmoothRedSandstone => DIG_MULTIPLIERS_rock, - BlockKind::SpruceFenceGate => DIG_MULTIPLIERS_wood, - BlockKind::BirchFenceGate => DIG_MULTIPLIERS_wood, - BlockKind::JungleFenceGate => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaFenceGate => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakFenceGate => DIG_MULTIPLIERS_wood, - BlockKind::SpruceFence => DIG_MULTIPLIERS_wood, - BlockKind::BirchFence => DIG_MULTIPLIERS_wood, - BlockKind::JungleFence => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaFence => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakFence => DIG_MULTIPLIERS_wood, - BlockKind::SpruceDoor => DIG_MULTIPLIERS_wood, - BlockKind::BirchDoor => DIG_MULTIPLIERS_wood, - BlockKind::JungleDoor => DIG_MULTIPLIERS_wood, - BlockKind::AcaciaDoor => DIG_MULTIPLIERS_wood, - BlockKind::DarkOakDoor => DIG_MULTIPLIERS_wood, - BlockKind::EndRod => &[], - BlockKind::ChorusPlant => &[], - BlockKind::ChorusFlower => &[], - BlockKind::PurpurBlock => &[], - BlockKind::PurpurPillar => &[], - BlockKind::PurpurStairs => DIG_MULTIPLIERS_rock, - BlockKind::EndStoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::Beetroots => &[], - BlockKind::GrassPath => DIG_MULTIPLIERS_dirt, - BlockKind::EndGateway => &[], - BlockKind::RepeatingCommandBlock => &[], - BlockKind::ChainCommandBlock => &[], - BlockKind::FrostedIce => &[], - BlockKind::MagmaBlock => &[], - BlockKind::NetherWartBlock => &[], - BlockKind::RedNetherBricks => &[], - BlockKind::BoneBlock => &[], - BlockKind::StructureVoid => &[], - BlockKind::Observer => &[], - BlockKind::ShulkerBox => &[], - BlockKind::WhiteShulkerBox => &[], - BlockKind::OrangeShulkerBox => &[], - BlockKind::MagentaShulkerBox => &[], - BlockKind::LightBlueShulkerBox => &[], - BlockKind::YellowShulkerBox => &[], - BlockKind::LimeShulkerBox => &[], - BlockKind::PinkShulkerBox => &[], - BlockKind::GrayShulkerBox => &[], - BlockKind::LightGrayShulkerBox => &[], - BlockKind::CyanShulkerBox => &[], - BlockKind::PurpleShulkerBox => &[], - BlockKind::BlueShulkerBox => &[], - BlockKind::BrownShulkerBox => &[], - BlockKind::GreenShulkerBox => &[], - BlockKind::RedShulkerBox => &[], - BlockKind::BlackShulkerBox => &[], - BlockKind::WhiteGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::OrangeGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::MagentaGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::LightBlueGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::YellowGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::LimeGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::PinkGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::GrayGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::LightGrayGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::CyanGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::PurpleGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::BlueGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::BrownGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::GreenGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::RedGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::BlackGlazedTerracotta => DIG_MULTIPLIERS_rock, - BlockKind::WhiteConcrete => DIG_MULTIPLIERS_rock, - BlockKind::OrangeConcrete => DIG_MULTIPLIERS_rock, - BlockKind::MagentaConcrete => DIG_MULTIPLIERS_rock, - BlockKind::LightBlueConcrete => DIG_MULTIPLIERS_rock, - BlockKind::YellowConcrete => DIG_MULTIPLIERS_rock, - BlockKind::LimeConcrete => DIG_MULTIPLIERS_rock, - BlockKind::PinkConcrete => DIG_MULTIPLIERS_rock, - BlockKind::GrayConcrete => DIG_MULTIPLIERS_rock, - BlockKind::LightGrayConcrete => DIG_MULTIPLIERS_rock, - BlockKind::CyanConcrete => DIG_MULTIPLIERS_rock, - BlockKind::PurpleConcrete => DIG_MULTIPLIERS_rock, - BlockKind::BlueConcrete => DIG_MULTIPLIERS_rock, - BlockKind::BrownConcrete => DIG_MULTIPLIERS_rock, - BlockKind::GreenConcrete => DIG_MULTIPLIERS_rock, - BlockKind::RedConcrete => DIG_MULTIPLIERS_rock, - BlockKind::BlackConcrete => DIG_MULTIPLIERS_rock, - BlockKind::WhiteConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::OrangeConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::MagentaConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::LightBlueConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::YellowConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::LimeConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::PinkConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::GrayConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::LightGrayConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::CyanConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::PurpleConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::BlueConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::BrownConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::GreenConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::RedConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::BlackConcretePowder => DIG_MULTIPLIERS_dirt, - BlockKind::Kelp => &[], - BlockKind::KelpPlant => &[], - BlockKind::DriedKelpBlock => &[], - BlockKind::TurtleEgg => &[], - BlockKind::DeadTubeCoralBlock => DIG_MULTIPLIERS_rock, - BlockKind::DeadBrainCoralBlock => DIG_MULTIPLIERS_rock, - BlockKind::DeadBubbleCoralBlock => DIG_MULTIPLIERS_rock, - BlockKind::DeadFireCoralBlock => DIG_MULTIPLIERS_rock, - BlockKind::DeadHornCoralBlock => DIG_MULTIPLIERS_rock, - BlockKind::TubeCoralBlock => DIG_MULTIPLIERS_rock, - BlockKind::BrainCoralBlock => DIG_MULTIPLIERS_rock, - BlockKind::BubbleCoralBlock => DIG_MULTIPLIERS_rock, - BlockKind::FireCoralBlock => DIG_MULTIPLIERS_rock, - BlockKind::HornCoralBlock => DIG_MULTIPLIERS_rock, - BlockKind::DeadTubeCoral => &[], - BlockKind::DeadBrainCoral => &[], - BlockKind::DeadBubbleCoral => &[], - BlockKind::DeadFireCoral => &[], - BlockKind::DeadHornCoral => &[], - BlockKind::TubeCoral => &[], - BlockKind::BrainCoral => &[], - BlockKind::BubbleCoral => &[], - BlockKind::FireCoral => &[], - BlockKind::HornCoral => &[], - BlockKind::DeadTubeCoralFan => &[], - BlockKind::DeadBrainCoralFan => &[], - BlockKind::DeadBubbleCoralFan => &[], - BlockKind::DeadFireCoralFan => &[], - BlockKind::DeadHornCoralFan => &[], - BlockKind::TubeCoralFan => &[], - BlockKind::BrainCoralFan => &[], - BlockKind::BubbleCoralFan => &[], - BlockKind::FireCoralFan => &[], - BlockKind::HornCoralFan => &[], - BlockKind::DeadTubeCoralWallFan => &[], - BlockKind::DeadBrainCoralWallFan => &[], - BlockKind::DeadBubbleCoralWallFan => &[], - BlockKind::DeadFireCoralWallFan => &[], - BlockKind::DeadHornCoralWallFan => &[], - BlockKind::TubeCoralWallFan => &[], - BlockKind::BrainCoralWallFan => &[], - BlockKind::BubbleCoralWallFan => &[], - BlockKind::FireCoralWallFan => &[], - BlockKind::HornCoralWallFan => &[], - BlockKind::SeaPickle => &[], - BlockKind::BlueIce => &[], - BlockKind::Conduit => DIG_MULTIPLIERS_rock, - BlockKind::BambooSapling => &[], - BlockKind::Bamboo => &[], - BlockKind::PottedBamboo => &[], - BlockKind::VoidAir => &[], - BlockKind::CaveAir => &[], - BlockKind::BubbleColumn => &[], - BlockKind::PolishedGraniteStairs => DIG_MULTIPLIERS_rock, - BlockKind::SmoothRedSandstoneStairs => DIG_MULTIPLIERS_rock, - BlockKind::MossyStoneBrickStairs => DIG_MULTIPLIERS_rock, - BlockKind::PolishedDioriteStairs => DIG_MULTIPLIERS_rock, - BlockKind::MossyCobblestoneStairs => DIG_MULTIPLIERS_rock, - BlockKind::EndStoneBrickStairs => DIG_MULTIPLIERS_rock, - BlockKind::StoneStairs => DIG_MULTIPLIERS_rock, - BlockKind::SmoothSandstoneStairs => DIG_MULTIPLIERS_rock, - BlockKind::SmoothQuartzStairs => DIG_MULTIPLIERS_rock, - BlockKind::GraniteStairs => DIG_MULTIPLIERS_rock, - BlockKind::AndesiteStairs => DIG_MULTIPLIERS_rock, - BlockKind::RedNetherBrickStairs => DIG_MULTIPLIERS_rock, - BlockKind::PolishedAndesiteStairs => DIG_MULTIPLIERS_rock, - BlockKind::DioriteStairs => DIG_MULTIPLIERS_rock, - BlockKind::PolishedGraniteSlab => DIG_MULTIPLIERS_rock, - BlockKind::SmoothRedSandstoneSlab => DIG_MULTIPLIERS_rock, - BlockKind::MossyStoneBrickSlab => DIG_MULTIPLIERS_rock, - BlockKind::PolishedDioriteSlab => DIG_MULTIPLIERS_rock, - BlockKind::MossyCobblestoneSlab => DIG_MULTIPLIERS_rock, - BlockKind::EndStoneBrickSlab => DIG_MULTIPLIERS_rock, - BlockKind::SmoothSandstoneSlab => DIG_MULTIPLIERS_rock, - BlockKind::SmoothQuartzSlab => DIG_MULTIPLIERS_rock, - BlockKind::GraniteSlab => DIG_MULTIPLIERS_rock, - BlockKind::AndesiteSlab => DIG_MULTIPLIERS_rock, - BlockKind::RedNetherBrickSlab => DIG_MULTIPLIERS_rock, - BlockKind::PolishedAndesiteSlab => DIG_MULTIPLIERS_rock, - BlockKind::DioriteSlab => DIG_MULTIPLIERS_rock, - BlockKind::BrickWall => DIG_MULTIPLIERS_rock, - BlockKind::PrismarineWall => DIG_MULTIPLIERS_rock, - BlockKind::RedSandstoneWall => DIG_MULTIPLIERS_rock, - BlockKind::MossyStoneBrickWall => DIG_MULTIPLIERS_rock, - BlockKind::GraniteWall => DIG_MULTIPLIERS_rock, - BlockKind::StoneBrickWall => DIG_MULTIPLIERS_rock, - BlockKind::NetherBrickWall => DIG_MULTIPLIERS_rock, - BlockKind::AndesiteWall => DIG_MULTIPLIERS_rock, - BlockKind::RedNetherBrickWall => DIG_MULTIPLIERS_rock, - BlockKind::SandstoneWall => DIG_MULTIPLIERS_rock, - BlockKind::EndStoneBrickWall => DIG_MULTIPLIERS_rock, - BlockKind::DioriteWall => DIG_MULTIPLIERS_rock, - BlockKind::Scaffolding => &[], - BlockKind::Loom => DIG_MULTIPLIERS_wood, - BlockKind::Barrel => DIG_MULTIPLIERS_wood, - BlockKind::Smoker => DIG_MULTIPLIERS_rock, - BlockKind::BlastFurnace => DIG_MULTIPLIERS_rock, - BlockKind::CartographyTable => DIG_MULTIPLIERS_wood, - BlockKind::FletchingTable => DIG_MULTIPLIERS_wood, - BlockKind::Grindstone => DIG_MULTIPLIERS_rock, - BlockKind::Lectern => DIG_MULTIPLIERS_wood, - BlockKind::SmithingTable => DIG_MULTIPLIERS_wood, - BlockKind::Stonecutter => DIG_MULTIPLIERS_rock, - BlockKind::Bell => DIG_MULTIPLIERS_rock, - BlockKind::Lantern => DIG_MULTIPLIERS_rock, - BlockKind::SoulLantern => DIG_MULTIPLIERS_rock, - BlockKind::Campfire => DIG_MULTIPLIERS_wood, - BlockKind::SoulCampfire => DIG_MULTIPLIERS_wood, - BlockKind::SweetBerryBush => &[], - BlockKind::WarpedStem => DIG_MULTIPLIERS_wood, - BlockKind::StrippedWarpedStem => DIG_MULTIPLIERS_wood, - BlockKind::WarpedHyphae => DIG_MULTIPLIERS_wood, - BlockKind::StrippedWarpedHyphae => DIG_MULTIPLIERS_wood, - BlockKind::WarpedNylium => DIG_MULTIPLIERS_rock, - BlockKind::WarpedFungus => &[], - BlockKind::WarpedWartBlock => &[], - BlockKind::WarpedRoots => &[], - BlockKind::NetherSprouts => DIG_MULTIPLIERS_plant, - BlockKind::CrimsonStem => DIG_MULTIPLIERS_wood, - BlockKind::StrippedCrimsonStem => DIG_MULTIPLIERS_wood, - BlockKind::CrimsonHyphae => DIG_MULTIPLIERS_wood, - BlockKind::StrippedCrimsonHyphae => DIG_MULTIPLIERS_wood, - BlockKind::CrimsonNylium => DIG_MULTIPLIERS_rock, - BlockKind::CrimsonFungus => &[], - BlockKind::Shroomlight => &[], - BlockKind::WeepingVines => &[], - BlockKind::WeepingVinesPlant => &[], - BlockKind::TwistingVines => &[], - BlockKind::TwistingVinesPlant => &[], - BlockKind::CrimsonRoots => &[], - BlockKind::CrimsonPlanks => DIG_MULTIPLIERS_wood, - BlockKind::WarpedPlanks => DIG_MULTIPLIERS_wood, - BlockKind::CrimsonSlab => DIG_MULTIPLIERS_wood, - BlockKind::WarpedSlab => DIG_MULTIPLIERS_wood, - BlockKind::CrimsonPressurePlate => DIG_MULTIPLIERS_rock, - BlockKind::WarpedPressurePlate => DIG_MULTIPLIERS_rock, - BlockKind::CrimsonFence => DIG_MULTIPLIERS_wood, - BlockKind::WarpedFence => DIG_MULTIPLIERS_wood, - BlockKind::CrimsonTrapdoor => DIG_MULTIPLIERS_wood, - BlockKind::WarpedTrapdoor => DIG_MULTIPLIERS_wood, - BlockKind::CrimsonFenceGate => DIG_MULTIPLIERS_wood, - BlockKind::WarpedFenceGate => DIG_MULTIPLIERS_wood, - BlockKind::CrimsonStairs => DIG_MULTIPLIERS_wood, - BlockKind::WarpedStairs => DIG_MULTIPLIERS_wood, - BlockKind::CrimsonButton => &[], - BlockKind::WarpedButton => &[], - BlockKind::CrimsonDoor => DIG_MULTIPLIERS_wood, - BlockKind::WarpedDoor => DIG_MULTIPLIERS_wood, - BlockKind::CrimsonSign => DIG_MULTIPLIERS_wood, - BlockKind::WarpedSign => DIG_MULTIPLIERS_wood, - BlockKind::CrimsonWallSign => DIG_MULTIPLIERS_wood, - BlockKind::WarpedWallSign => DIG_MULTIPLIERS_wood, - BlockKind::StructureBlock => &[], - BlockKind::Jigsaw => &[], - BlockKind::Composter => DIG_MULTIPLIERS_wood, - BlockKind::Target => &[], - BlockKind::BeeNest => DIG_MULTIPLIERS_wood, - BlockKind::Beehive => DIG_MULTIPLIERS_wood, - BlockKind::HoneyBlock => &[], - BlockKind::HoneycombBlock => &[], - BlockKind::NetheriteBlock => DIG_MULTIPLIERS_rock, - BlockKind::AncientDebris => DIG_MULTIPLIERS_rock, - BlockKind::CryingObsidian => DIG_MULTIPLIERS_rock, - BlockKind::RespawnAnchor => DIG_MULTIPLIERS_rock, - BlockKind::PottedCrimsonFungus => &[], - BlockKind::PottedWarpedFungus => &[], - BlockKind::PottedCrimsonRoots => &[], - BlockKind::PottedWarpedRoots => &[], - BlockKind::Lodestone => DIG_MULTIPLIERS_rock, - BlockKind::Blackstone => DIG_MULTIPLIERS_rock, - BlockKind::BlackstoneStairs => DIG_MULTIPLIERS_wood, - BlockKind::BlackstoneWall => DIG_MULTIPLIERS_rock, - BlockKind::BlackstoneSlab => DIG_MULTIPLIERS_wood, - BlockKind::PolishedBlackstone => DIG_MULTIPLIERS_rock, - BlockKind::PolishedBlackstoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::CrackedPolishedBlackstoneBricks => DIG_MULTIPLIERS_rock, - BlockKind::ChiseledPolishedBlackstone => &[], - BlockKind::PolishedBlackstoneBrickSlab => DIG_MULTIPLIERS_wood, - BlockKind::PolishedBlackstoneBrickStairs => DIG_MULTIPLIERS_wood, - BlockKind::PolishedBlackstoneBrickWall => DIG_MULTIPLIERS_rock, - BlockKind::GildedBlackstone => DIG_MULTIPLIERS_rock, - BlockKind::PolishedBlackstoneStairs => DIG_MULTIPLIERS_wood, - BlockKind::PolishedBlackstoneSlab => DIG_MULTIPLIERS_wood, - BlockKind::PolishedBlackstonePressurePlate => DIG_MULTIPLIERS_rock, - BlockKind::PolishedBlackstoneButton => &[], - BlockKind::PolishedBlackstoneWall => DIG_MULTIPLIERS_rock, - BlockKind::ChiseledNetherBricks => DIG_MULTIPLIERS_rock, - BlockKind::CrackedNetherBricks => DIG_MULTIPLIERS_rock, - BlockKind::QuartzBricks => DIG_MULTIPLIERS_rock, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl BlockKind { - /// Returns the `harvest_tools` property of this `BlockKind`. - pub fn harvest_tools(&self) -> Option<&'static [libcraft_items::Item]> { - match self { - BlockKind::Air => None, - BlockKind::Stone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Granite => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PolishedGranite => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Diorite => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PolishedDiorite => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Andesite => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PolishedAndesite => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::GrassBlock => None, - BlockKind::Dirt => None, - BlockKind::CoarseDirt => None, - BlockKind::Podzol => None, - BlockKind::Cobblestone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::OakPlanks => None, - BlockKind::SprucePlanks => None, - BlockKind::BirchPlanks => None, - BlockKind::JunglePlanks => None, - BlockKind::AcaciaPlanks => None, - BlockKind::DarkOakPlanks => None, - BlockKind::OakSapling => None, - BlockKind::SpruceSapling => None, - BlockKind::BirchSapling => None, - BlockKind::JungleSapling => None, - BlockKind::AcaciaSapling => None, - BlockKind::DarkOakSapling => None, - BlockKind::Bedrock => None, - BlockKind::Water => None, - BlockKind::Lava => None, - BlockKind::Sand => None, - BlockKind::RedSand => None, - BlockKind::Gravel => None, - BlockKind::GoldOre => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::IronOre => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CoalOre => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::NetherGoldOre => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::OakLog => None, - BlockKind::SpruceLog => None, - BlockKind::BirchLog => None, - BlockKind::JungleLog => None, - BlockKind::AcaciaLog => None, - BlockKind::DarkOakLog => None, - BlockKind::StrippedSpruceLog => None, - BlockKind::StrippedBirchLog => None, - BlockKind::StrippedJungleLog => None, - BlockKind::StrippedAcaciaLog => None, - BlockKind::StrippedDarkOakLog => None, - BlockKind::StrippedOakLog => None, - BlockKind::OakWood => None, - BlockKind::SpruceWood => None, - BlockKind::BirchWood => None, - BlockKind::JungleWood => None, - BlockKind::AcaciaWood => None, - BlockKind::DarkOakWood => None, - BlockKind::StrippedOakWood => None, - BlockKind::StrippedSpruceWood => None, - BlockKind::StrippedBirchWood => None, - BlockKind::StrippedJungleWood => None, - BlockKind::StrippedAcaciaWood => None, - BlockKind::StrippedDarkOakWood => None, - BlockKind::OakLeaves => None, - BlockKind::SpruceLeaves => None, - BlockKind::BirchLeaves => None, - BlockKind::JungleLeaves => None, - BlockKind::AcaciaLeaves => None, - BlockKind::DarkOakLeaves => None, - BlockKind::Sponge => None, - BlockKind::WetSponge => None, - BlockKind::Glass => None, - BlockKind::LapisOre => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::LapisBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Dispenser => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Sandstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::ChiseledSandstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CutSandstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::NoteBlock => None, - BlockKind::WhiteBed => None, - BlockKind::OrangeBed => None, - BlockKind::MagentaBed => None, - BlockKind::LightBlueBed => None, - BlockKind::YellowBed => None, - BlockKind::LimeBed => None, - BlockKind::PinkBed => None, - BlockKind::GrayBed => None, - BlockKind::LightGrayBed => None, - BlockKind::CyanBed => None, - BlockKind::PurpleBed => None, - BlockKind::BlueBed => None, - BlockKind::BrownBed => None, - BlockKind::GreenBed => None, - BlockKind::RedBed => None, - BlockKind::BlackBed => None, - BlockKind::PoweredRail => None, - BlockKind::DetectorRail => None, - BlockKind::StickyPiston => None, - BlockKind::Cobweb => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronSword, - libcraft_items::Item::WoodenSword, - libcraft_items::Item::StoneSword, - libcraft_items::Item::DiamondSword, - libcraft_items::Item::GoldenSword, - libcraft_items::Item::Shears, - ]; - Some(TOOLS) - } - BlockKind::Grass => None, - BlockKind::Fern => None, - BlockKind::DeadBush => None, - BlockKind::Seagrass => None, - BlockKind::TallSeagrass => None, - BlockKind::Piston => None, - BlockKind::PistonHead => None, - BlockKind::WhiteWool => None, - BlockKind::OrangeWool => None, - BlockKind::MagentaWool => None, - BlockKind::LightBlueWool => None, - BlockKind::YellowWool => None, - BlockKind::LimeWool => None, - BlockKind::PinkWool => None, - BlockKind::GrayWool => None, - BlockKind::LightGrayWool => None, - BlockKind::CyanWool => None, - BlockKind::PurpleWool => None, - BlockKind::BlueWool => None, - BlockKind::BrownWool => None, - BlockKind::GreenWool => None, - BlockKind::RedWool => None, - BlockKind::BlackWool => None, - BlockKind::MovingPiston => None, - BlockKind::Dandelion => None, - BlockKind::Poppy => None, - BlockKind::BlueOrchid => None, - BlockKind::Allium => None, - BlockKind::AzureBluet => None, - BlockKind::RedTulip => None, - BlockKind::OrangeTulip => None, - BlockKind::WhiteTulip => None, - BlockKind::PinkTulip => None, - BlockKind::OxeyeDaisy => None, - BlockKind::Cornflower => None, - BlockKind::WitherRose => None, - BlockKind::LilyOfTheValley => None, - BlockKind::BrownMushroom => None, - BlockKind::RedMushroom => None, - BlockKind::GoldBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::IronBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Bricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Tnt => None, - BlockKind::Bookshelf => None, - BlockKind::MossyCobblestone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Obsidian => { - const TOOLS: &[libcraft_items::Item] = &[libcraft_items::Item::DiamondPickaxe]; - Some(TOOLS) - } - BlockKind::Torch => None, - BlockKind::WallTorch => None, - BlockKind::Fire => None, - BlockKind::SoulFire => None, - BlockKind::Spawner => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::OakStairs => None, - BlockKind::Chest => None, - BlockKind::RedstoneWire => None, - BlockKind::DiamondOre => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DiamondBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CraftingTable => None, - BlockKind::Wheat => None, - BlockKind::Farmland => None, - BlockKind::Furnace => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::OakSign => None, - BlockKind::SpruceSign => None, - BlockKind::BirchSign => None, - BlockKind::AcaciaSign => None, - BlockKind::JungleSign => None, - BlockKind::DarkOakSign => None, - BlockKind::OakDoor => None, - BlockKind::Ladder => None, - BlockKind::Rail => None, - BlockKind::CobblestoneStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::OakWallSign => None, - BlockKind::SpruceWallSign => None, - BlockKind::BirchWallSign => None, - BlockKind::AcaciaWallSign => None, - BlockKind::JungleWallSign => None, - BlockKind::DarkOakWallSign => None, - BlockKind::Lever => None, - BlockKind::StonePressurePlate => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::IronDoor => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::OakPressurePlate => None, - BlockKind::SprucePressurePlate => None, - BlockKind::BirchPressurePlate => None, - BlockKind::JunglePressurePlate => None, - BlockKind::AcaciaPressurePlate => None, - BlockKind::DarkOakPressurePlate => None, - BlockKind::RedstoneOre => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::RedstoneTorch => None, - BlockKind::RedstoneWallTorch => None, - BlockKind::StoneButton => None, - BlockKind::Snow => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronShovel, - libcraft_items::Item::WoodenShovel, - libcraft_items::Item::StoneShovel, - libcraft_items::Item::DiamondShovel, - libcraft_items::Item::GoldenShovel, - ]; - Some(TOOLS) - } - BlockKind::Ice => None, - BlockKind::SnowBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronShovel, - libcraft_items::Item::WoodenShovel, - libcraft_items::Item::StoneShovel, - libcraft_items::Item::DiamondShovel, - libcraft_items::Item::GoldenShovel, - ]; - Some(TOOLS) - } - BlockKind::Cactus => None, - BlockKind::Clay => None, - BlockKind::SugarCane => None, - BlockKind::Jukebox => None, - BlockKind::OakFence => None, - BlockKind::Pumpkin => None, - BlockKind::Netherrack => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SoulSand => None, - BlockKind::SoulSoil => None, - BlockKind::Basalt => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PolishedBasalt => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SoulTorch => None, - BlockKind::SoulWallTorch => None, - BlockKind::Glowstone => None, - BlockKind::NetherPortal => None, - BlockKind::CarvedPumpkin => None, - BlockKind::JackOLantern => None, - BlockKind::Cake => None, - BlockKind::Repeater => None, - BlockKind::WhiteStainedGlass => None, - BlockKind::OrangeStainedGlass => None, - BlockKind::MagentaStainedGlass => None, - BlockKind::LightBlueStainedGlass => None, - BlockKind::YellowStainedGlass => None, - BlockKind::LimeStainedGlass => None, - BlockKind::PinkStainedGlass => None, - BlockKind::GrayStainedGlass => None, - BlockKind::LightGrayStainedGlass => None, - BlockKind::CyanStainedGlass => None, - BlockKind::PurpleStainedGlass => None, - BlockKind::BlueStainedGlass => None, - BlockKind::BrownStainedGlass => None, - BlockKind::GreenStainedGlass => None, - BlockKind::RedStainedGlass => None, - BlockKind::BlackStainedGlass => None, - BlockKind::OakTrapdoor => None, - BlockKind::SpruceTrapdoor => None, - BlockKind::BirchTrapdoor => None, - BlockKind::JungleTrapdoor => None, - BlockKind::AcaciaTrapdoor => None, - BlockKind::DarkOakTrapdoor => None, - BlockKind::StoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::MossyStoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CrackedStoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::ChiseledStoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::InfestedStone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::InfestedCobblestone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::InfestedStoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::InfestedMossyStoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::InfestedCrackedStoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::InfestedChiseledStoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BrownMushroomBlock => None, - BlockKind::RedMushroomBlock => None, - BlockKind::MushroomStem => None, - BlockKind::IronBars => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Chain => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::GlassPane => None, - BlockKind::Melon => None, - BlockKind::AttachedPumpkinStem => None, - BlockKind::AttachedMelonStem => None, - BlockKind::PumpkinStem => None, - BlockKind::MelonStem => None, - BlockKind::Vine => None, - BlockKind::OakFenceGate => None, - BlockKind::BrickStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::StoneBrickStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Mycelium => None, - BlockKind::LilyPad => None, - BlockKind::NetherBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::NetherBrickFence => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::NetherBrickStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::NetherWart => None, - BlockKind::EnchantingTable => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BrewingStand => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Cauldron => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::EndPortal => None, - BlockKind::EndPortalFrame => None, - BlockKind::EndStone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DragonEgg => None, - BlockKind::RedstoneLamp => None, - BlockKind::Cocoa => None, - BlockKind::SandstoneStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::EmeraldOre => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::EnderChest => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::TripwireHook => None, - BlockKind::Tripwire => None, - BlockKind::EmeraldBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SpruceStairs => None, - BlockKind::BirchStairs => None, - BlockKind::JungleStairs => None, - BlockKind::CommandBlock => None, - BlockKind::Beacon => None, - BlockKind::CobblestoneWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::MossyCobblestoneWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::FlowerPot => None, - BlockKind::PottedOakSapling => None, - BlockKind::PottedSpruceSapling => None, - BlockKind::PottedBirchSapling => None, - BlockKind::PottedJungleSapling => None, - BlockKind::PottedAcaciaSapling => None, - BlockKind::PottedDarkOakSapling => None, - BlockKind::PottedFern => None, - BlockKind::PottedDandelion => None, - BlockKind::PottedPoppy => None, - BlockKind::PottedBlueOrchid => None, - BlockKind::PottedAllium => None, - BlockKind::PottedAzureBluet => None, - BlockKind::PottedRedTulip => None, - BlockKind::PottedOrangeTulip => None, - BlockKind::PottedWhiteTulip => None, - BlockKind::PottedPinkTulip => None, - BlockKind::PottedOxeyeDaisy => None, - BlockKind::PottedCornflower => None, - BlockKind::PottedLilyOfTheValley => None, - BlockKind::PottedWitherRose => None, - BlockKind::PottedRedMushroom => None, - BlockKind::PottedBrownMushroom => None, - BlockKind::PottedDeadBush => None, - BlockKind::PottedCactus => None, - BlockKind::Carrots => None, - BlockKind::Potatoes => None, - BlockKind::OakButton => None, - BlockKind::SpruceButton => None, - BlockKind::BirchButton => None, - BlockKind::JungleButton => None, - BlockKind::AcaciaButton => None, - BlockKind::DarkOakButton => None, - BlockKind::SkeletonSkull => None, - BlockKind::SkeletonWallSkull => None, - BlockKind::WitherSkeletonSkull => None, - BlockKind::WitherSkeletonWallSkull => None, - BlockKind::ZombieHead => None, - BlockKind::ZombieWallHead => None, - BlockKind::PlayerHead => None, - BlockKind::PlayerWallHead => None, - BlockKind::CreeperHead => None, - BlockKind::CreeperWallHead => None, - BlockKind::DragonHead => None, - BlockKind::DragonWallHead => None, - BlockKind::Anvil => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::ChippedAnvil => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DamagedAnvil => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::TrappedChest => None, - BlockKind::LightWeightedPressurePlate => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::HeavyWeightedPressurePlate => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Comparator => None, - BlockKind::DaylightDetector => None, - BlockKind::RedstoneBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::NetherQuartzOre => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Hopper => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::QuartzBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::ChiseledQuartzBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::QuartzPillar => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::QuartzStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::ActivatorRail => None, - BlockKind::Dropper => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::WhiteTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::OrangeTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::MagentaTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::LightBlueTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::YellowTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::LimeTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PinkTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + BlockKind::RedCandleCake => "red_candle_cake", + BlockKind::PurpleTerracotta => "purple_terracotta", + BlockKind::PinkStainedGlass => "pink_stained_glass", + BlockKind::PottedBamboo => "potted_bamboo", + BlockKind::Tnt => "tnt", + BlockKind::WarpedRoots => "warped_roots", + BlockKind::LightningRod => "lightning_rod", + BlockKind::AndesiteWall => "andesite_wall", + BlockKind::NetherGoldOre => "nether_gold_ore", + BlockKind::CrimsonSign => "crimson_sign", + BlockKind::SmoothStone => "smooth_stone", + BlockKind::BlueBed => "blue_bed", + BlockKind::WhiteConcrete => "white_concrete", + BlockKind::DarkOakSapling => "dark_oak_sapling", + BlockKind::Clay => "clay", + BlockKind::Sandstone => "sandstone", + BlockKind::DeadBubbleCoralBlock => "dead_bubble_coral_block", + BlockKind::BrewingStand => "brewing_stand", + BlockKind::WaxedWeatheredCutCopperSlab => "waxed_weathered_cut_copper_slab", + BlockKind::LimeCandle => "lime_candle", + BlockKind::LightGrayStainedGlass => "light_gray_stained_glass", + BlockKind::CrackedDeepslateTiles => "cracked_deepslate_tiles", + BlockKind::LimeGlazedTerracotta => "lime_glazed_terracotta", + BlockKind::GreenWallBanner => "green_wall_banner", + BlockKind::SlimeBlock => "slime_block", + BlockKind::GreenBed => "green_bed", + BlockKind::BrownGlazedTerracotta => "brown_glazed_terracotta", + BlockKind::BrickWall => "brick_wall", + BlockKind::CyanCandleCake => "cyan_candle_cake", + BlockKind::StoneBricks => "stone_bricks", + BlockKind::BirchPlanks => "birch_planks", + BlockKind::AcaciaTrapdoor => "acacia_trapdoor", + BlockKind::BlueCandle => "blue_candle", + BlockKind::SpruceButton => "spruce_button", + BlockKind::JungleSlab => "jungle_slab", + BlockKind::BrainCoral => "brain_coral", + BlockKind::DioriteStairs => "diorite_stairs", + BlockKind::LimeBanner => "lime_banner", + BlockKind::BrownBed => "brown_bed", + BlockKind::Hopper => "hopper", + BlockKind::GrayStainedGlassPane => "gray_stained_glass_pane", + BlockKind::SugarCane => "sugar_cane", + BlockKind::ZombieWallHead => "zombie_wall_head", + BlockKind::CryingObsidian => "crying_obsidian", + BlockKind::Air => "air", + BlockKind::AcaciaWallSign => "acacia_wall_sign", + BlockKind::RedstoneOre => "redstone_ore", + BlockKind::PinkStainedGlassPane => "pink_stained_glass_pane", + BlockKind::BlueStainedGlass => "blue_stained_glass", + BlockKind::LimeCandleCake => "lime_candle_cake", + BlockKind::Loom => "loom", + BlockKind::RedStainedGlass => "red_stained_glass", + BlockKind::Bookshelf => "bookshelf", + BlockKind::IronDoor => "iron_door", + BlockKind::CommandBlock => "command_block", + BlockKind::Comparator => "comparator", + BlockKind::LimeTerracotta => "lime_terracotta", + BlockKind::PinkTerracotta => "pink_terracotta", + BlockKind::MagentaGlazedTerracotta => "magenta_glazed_terracotta", + BlockKind::SpruceDoor => "spruce_door", + BlockKind::PinkConcretePowder => "pink_concrete_powder", + BlockKind::WaxedExposedCutCopperStairs => "waxed_exposed_cut_copper_stairs", + BlockKind::CutSandstone => "cut_sandstone", + BlockKind::StickyPiston => "sticky_piston", + BlockKind::LilyOfTheValley => "lily_of_the_valley", + BlockKind::AcaciaFenceGate => "acacia_fence_gate", + BlockKind::LightGrayConcrete => "light_gray_concrete", + BlockKind::NetherBrickWall => "nether_brick_wall", + BlockKind::GreenBanner => "green_banner", + BlockKind::WhiteStainedGlassPane => "white_stained_glass_pane", + BlockKind::SmoothRedSandstone => "smooth_red_sandstone", + BlockKind::FireCoral => "fire_coral", + BlockKind::CyanCarpet => "cyan_carpet", + BlockKind::AcaciaStairs => "acacia_stairs", + BlockKind::YellowWool => "yellow_wool", + BlockKind::BlackStainedGlassPane => "black_stained_glass_pane", + BlockKind::DeadFireCoral => "dead_fire_coral", + BlockKind::LightGrayGlazedTerracotta => "light_gray_glazed_terracotta", + BlockKind::BirchStairs => "birch_stairs", + BlockKind::WhiteConcretePowder => "white_concrete_powder", + BlockKind::OakPlanks => "oak_planks", + BlockKind::QuartzPillar => "quartz_pillar", + BlockKind::Bell => "bell", + BlockKind::PurpleCandle => "purple_candle", + BlockKind::AcaciaLog => "acacia_log", + BlockKind::PurpleWool => "purple_wool", + BlockKind::Melon => "melon", + BlockKind::SoulSoil => "soul_soil", + BlockKind::CrimsonFenceGate => "crimson_fence_gate", + BlockKind::Lava => "lava", + BlockKind::WhiteBanner => "white_banner", + BlockKind::SpruceLog => "spruce_log", + BlockKind::Chain => "chain", + BlockKind::PottedCactus => "potted_cactus", + BlockKind::BlueIce => "blue_ice", + BlockKind::LightGrayWool => "light_gray_wool", + BlockKind::AcaciaSign => "acacia_sign", + BlockKind::LightBlueShulkerBox => "light_blue_shulker_box", + BlockKind::BrownMushroomBlock => "brown_mushroom_block", + BlockKind::OakLog => "oak_log", + BlockKind::StoneSlab => "stone_slab", + BlockKind::AcaciaWood => "acacia_wood", + BlockKind::MovingPiston => "moving_piston", + BlockKind::EndPortal => "end_portal", + BlockKind::OakTrapdoor => "oak_trapdoor", + BlockKind::PolishedAndesiteSlab => "polished_andesite_slab", + BlockKind::GrayCandle => "gray_candle", + BlockKind::LightBlueBanner => "light_blue_banner", + BlockKind::LimeShulkerBox => "lime_shulker_box", + BlockKind::WeepingVinesPlant => "weeping_vines_plant", + BlockKind::Spawner => "spawner", + BlockKind::ZombieHead => "zombie_head", + BlockKind::GrayCandleCake => "gray_candle_cake", + BlockKind::LightGrayBed => "light_gray_bed", + BlockKind::GreenTerracotta => "green_terracotta", + BlockKind::PoweredRail => "powered_rail", + BlockKind::MagentaTerracotta => "magenta_terracotta", + BlockKind::RedConcretePowder => "red_concrete_powder", + BlockKind::OakWood => "oak_wood", + BlockKind::StrippedJungleLog => "stripped_jungle_log", + BlockKind::OrangeStainedGlass => "orange_stained_glass", + BlockKind::SpruceTrapdoor => "spruce_trapdoor", + BlockKind::MagentaWallBanner => "magenta_wall_banner", + BlockKind::JungleSign => "jungle_sign", + BlockKind::PurpleBanner => "purple_banner", + BlockKind::DeadFireCoralWallFan => "dead_fire_coral_wall_fan", + BlockKind::Water => "water", + BlockKind::StrippedJungleWood => "stripped_jungle_wood", + BlockKind::OxeyeDaisy => "oxeye_daisy", + BlockKind::PinkCandle => "pink_candle", + BlockKind::GrayConcretePowder => "gray_concrete_powder", + BlockKind::DeepslateEmeraldOre => "deepslate_emerald_ore", + BlockKind::MediumAmethystBud => "medium_amethyst_bud", + BlockKind::LimeBed => "lime_bed", + BlockKind::GreenCarpet => "green_carpet", + BlockKind::BlueConcretePowder => "blue_concrete_powder", + BlockKind::BirchDoor => "birch_door", + BlockKind::DeepslateLapisOre => "deepslate_lapis_ore", + BlockKind::WaxedOxidizedCutCopper => "waxed_oxidized_cut_copper", + BlockKind::DeepslateTiles => "deepslate_tiles", + BlockKind::SandstoneSlab => "sandstone_slab", + BlockKind::PlayerWallHead => "player_wall_head", + BlockKind::IronOre => "iron_ore", + BlockKind::PinkGlazedTerracotta => "pink_glazed_terracotta", + BlockKind::MossyCobblestoneWall => "mossy_cobblestone_wall", + BlockKind::Lectern => "lectern", + BlockKind::Obsidian => "obsidian", + BlockKind::BlueShulkerBox => "blue_shulker_box", + BlockKind::FletchingTable => "fletching_table", + BlockKind::StrippedDarkOakLog => "stripped_dark_oak_log", + BlockKind::Piston => "piston", + BlockKind::PrismarineBrickStairs => "prismarine_brick_stairs", + BlockKind::StrippedSpruceLog => "stripped_spruce_log", + BlockKind::WeatheredCutCopper => "weathered_cut_copper", + BlockKind::TripwireHook => "tripwire_hook", + BlockKind::AcaciaSlab => "acacia_slab", + BlockKind::Dropper => "dropper", + BlockKind::PowderSnow => "powder_snow", + BlockKind::GreenConcretePowder => "green_concrete_powder", + BlockKind::CopperOre => "copper_ore", + BlockKind::HangingRoots => "hanging_roots", + BlockKind::BrownWallBanner => "brown_wall_banner", + BlockKind::YellowCandle => "yellow_candle", + BlockKind::PottedRedTulip => "potted_red_tulip", + BlockKind::IronBars => "iron_bars", + BlockKind::WarpedSign => "warped_sign", + BlockKind::DeepslateCoalOre => "deepslate_coal_ore", + BlockKind::BrainCoralBlock => "brain_coral_block", + BlockKind::CobblestoneWall => "cobblestone_wall", + BlockKind::QuartzBlock => "quartz_block", + BlockKind::DeadBrainCoralFan => "dead_brain_coral_fan", + BlockKind::PolishedGraniteStairs => "polished_granite_stairs", + BlockKind::PottedFern => "potted_fern", + BlockKind::CutCopperSlab => "cut_copper_slab", + BlockKind::SandstoneWall => "sandstone_wall", + BlockKind::DeadTubeCoralFan => "dead_tube_coral_fan", + BlockKind::CandleCake => "candle_cake", + BlockKind::AttachedMelonStem => "attached_melon_stem", + BlockKind::SmoothRedSandstoneStairs => "smooth_red_sandstone_stairs", + BlockKind::AcaciaLeaves => "acacia_leaves", + BlockKind::DamagedAnvil => "damaged_anvil", + BlockKind::EndStone => "end_stone", + BlockKind::CrimsonTrapdoor => "crimson_trapdoor", + BlockKind::WaxedExposedCutCopperSlab => "waxed_exposed_cut_copper_slab", + BlockKind::Gravel => "gravel", + BlockKind::OrangeTerracotta => "orange_terracotta", + BlockKind::CopperBlock => "copper_block", + BlockKind::BlastFurnace => "blast_furnace", + BlockKind::YellowStainedGlass => "yellow_stained_glass", + BlockKind::GrayShulkerBox => "gray_shulker_box", + BlockKind::PottedOakSapling => "potted_oak_sapling", + BlockKind::BirchButton => "birch_button", + BlockKind::Scaffolding => "scaffolding", + BlockKind::Torch => "torch", + BlockKind::MagentaStainedGlassPane => "magenta_stained_glass_pane", + BlockKind::LightGrayCarpet => "light_gray_carpet", + BlockKind::DeadHornCoralWallFan => "dead_horn_coral_wall_fan", + BlockKind::LargeAmethystBud => "large_amethyst_bud", + BlockKind::AcaciaDoor => "acacia_door", + BlockKind::Jukebox => "jukebox", + BlockKind::OakFence => "oak_fence", + BlockKind::MagentaBanner => "magenta_banner", + BlockKind::Rail => "rail", + BlockKind::FrostedIce => "frosted_ice", + BlockKind::ExposedCutCopperStairs => "exposed_cut_copper_stairs", + BlockKind::PlayerHead => "player_head", + BlockKind::PurpleBed => "purple_bed", + BlockKind::CrimsonStairs => "crimson_stairs", + BlockKind::DarkOakTrapdoor => "dark_oak_trapdoor", + BlockKind::BrainCoralWallFan => "brain_coral_wall_fan", + BlockKind::DarkOakSlab => "dark_oak_slab", + BlockKind::DragonHead => "dragon_head", + BlockKind::WarpedFenceGate => "warped_fence_gate", + BlockKind::WaxedWeatheredCutCopper => "waxed_weathered_cut_copper", + BlockKind::SmoothBasalt => "smooth_basalt", + BlockKind::DirtPath => "dirt_path", + BlockKind::Barrier => "barrier", + BlockKind::EndStoneBrickStairs => "end_stone_brick_stairs", + BlockKind::StoneBrickWall => "stone_brick_wall", + BlockKind::EndRod => "end_rod", + BlockKind::PowderSnowCauldron => "powder_snow_cauldron", + BlockKind::OakSlab => "oak_slab", + BlockKind::GrayGlazedTerracotta => "gray_glazed_terracotta", + BlockKind::WallTorch => "wall_torch", + BlockKind::HoneycombBlock => "honeycomb_block", + BlockKind::WhiteWallBanner => "white_wall_banner", + BlockKind::DeadTubeCoralBlock => "dead_tube_coral_block", + BlockKind::StructureBlock => "structure_block", + BlockKind::DeepslateIronOre => "deepslate_iron_ore", + BlockKind::CrimsonWallSign => "crimson_wall_sign", + BlockKind::Dandelion => "dandelion", + BlockKind::Dirt => "dirt", + BlockKind::BrownBanner => "brown_banner", + BlockKind::CobbledDeepslateSlab => "cobbled_deepslate_slab", + BlockKind::OrangeCandle => "orange_candle", + BlockKind::BlueCarpet => "blue_carpet", + BlockKind::PurpleConcrete => "purple_concrete", + BlockKind::DeadBush => "dead_bush", + BlockKind::SprucePressurePlate => "spruce_pressure_plate", + BlockKind::LimeCarpet => "lime_carpet", + BlockKind::DetectorRail => "detector_rail", + BlockKind::VoidAir => "void_air", + BlockKind::NetheriteBlock => "netherite_block", + BlockKind::BirchTrapdoor => "birch_trapdoor", + BlockKind::EnchantingTable => "enchanting_table", + BlockKind::HornCoral => "horn_coral", + BlockKind::YellowWallBanner => "yellow_wall_banner", + BlockKind::GrassBlock => "grass_block", + BlockKind::StrippedCrimsonStem => "stripped_crimson_stem", + BlockKind::BlackConcretePowder => "black_concrete_powder", + BlockKind::DeepslateRedstoneOre => "deepslate_redstone_ore", + BlockKind::BlackStainedGlass => "black_stained_glass", + BlockKind::BuddingAmethyst => "budding_amethyst", + BlockKind::Basalt => "basalt", + BlockKind::RedNetherBrickSlab => "red_nether_brick_slab", + BlockKind::PolishedDiorite => "polished_diorite", + BlockKind::BlueBanner => "blue_banner", + BlockKind::Tripwire => "tripwire", + BlockKind::SeaLantern => "sea_lantern", + BlockKind::NetherBrickSlab => "nether_brick_slab", + BlockKind::BrickStairs => "brick_stairs", + BlockKind::ActivatorRail => "activator_rail", + BlockKind::DarkOakFenceGate => "dark_oak_fence_gate", + BlockKind::WaxedExposedCutCopper => "waxed_exposed_cut_copper", + BlockKind::Furnace => "furnace", + BlockKind::TubeCoralWallFan => "tube_coral_wall_fan", + BlockKind::Glowstone => "glowstone", + BlockKind::BirchSlab => "birch_slab", + BlockKind::RedStainedGlassPane => "red_stained_glass_pane", + BlockKind::Deepslate => "deepslate", + BlockKind::DeepslateTileWall => "deepslate_tile_wall", + BlockKind::CrimsonPlanks => "crimson_planks", + BlockKind::HornCoralWallFan => "horn_coral_wall_fan", + BlockKind::BrainCoralFan => "brain_coral_fan", + BlockKind::DioriteWall => "diorite_wall", + BlockKind::NetherSprouts => "nether_sprouts", + BlockKind::OrangeCandleCake => "orange_candle_cake", + BlockKind::CaveVinesPlant => "cave_vines_plant", + BlockKind::InfestedMossyStoneBricks => "infested_mossy_stone_bricks", + BlockKind::SmoothQuartz => "smooth_quartz", + BlockKind::Candle => "candle", + BlockKind::WhiteGlazedTerracotta => "white_glazed_terracotta", + BlockKind::SmoothSandstone => "smooth_sandstone", + BlockKind::Composter => "composter", + BlockKind::ChippedAnvil => "chipped_anvil", + BlockKind::LightWeightedPressurePlate => "light_weighted_pressure_plate", + BlockKind::LavaCauldron => "lava_cauldron", + BlockKind::Sand => "sand", + BlockKind::StrippedBirchWood => "stripped_birch_wood", + BlockKind::LightBlueStainedGlassPane => "light_blue_stained_glass_pane", + BlockKind::NoteBlock => "note_block", + BlockKind::LightGrayBanner => "light_gray_banner", + BlockKind::LapisBlock => "lapis_block", + BlockKind::CyanStainedGlass => "cyan_stained_glass", + BlockKind::DragonWallHead => "dragon_wall_head", + BlockKind::WetSponge => "wet_sponge", + BlockKind::StoneBrickSlab => "stone_brick_slab", + BlockKind::PolishedGraniteSlab => "polished_granite_slab", + BlockKind::Lodestone => "lodestone", + BlockKind::CobbledDeepslateStairs => "cobbled_deepslate_stairs", + BlockKind::BirchSapling => "birch_sapling", + BlockKind::Wheat => "wheat", + BlockKind::LargeFern => "large_fern", + BlockKind::ChiseledDeepslate => "chiseled_deepslate", + BlockKind::StrippedSpruceWood => "stripped_spruce_wood", + BlockKind::BrownStainedGlass => "brown_stained_glass", + BlockKind::DeepslateBrickSlab => "deepslate_brick_slab", + BlockKind::CobblestoneStairs => "cobblestone_stairs", + BlockKind::SnowBlock => "snow_block", + BlockKind::Campfire => "campfire", + BlockKind::PolishedBlackstoneStairs => "polished_blackstone_stairs", + BlockKind::RoseBush => "rose_bush", + BlockKind::Light => "light", + BlockKind::Lantern => "lantern", + BlockKind::CyanBed => "cyan_bed", + BlockKind::DarkOakPressurePlate => "dark_oak_pressure_plate", + BlockKind::CrimsonFungus => "crimson_fungus", + BlockKind::InfestedCobblestone => "infested_cobblestone", + BlockKind::DeadFireCoralBlock => "dead_fire_coral_block", + BlockKind::PottedAcaciaSapling => "potted_acacia_sapling", + BlockKind::LightBlueGlazedTerracotta => "light_blue_glazed_terracotta", + BlockKind::DeadBrainCoralBlock => "dead_brain_coral_block", + BlockKind::NetherPortal => "nether_portal", + BlockKind::AndesiteStairs => "andesite_stairs", + BlockKind::Vine => "vine", + BlockKind::Kelp => "kelp", + BlockKind::DeepslateGoldOre => "deepslate_gold_ore", + BlockKind::WarpedTrapdoor => "warped_trapdoor", + BlockKind::JungleFence => "jungle_fence", + BlockKind::DeadHornCoral => "dead_horn_coral", + BlockKind::Mycelium => "mycelium", + BlockKind::BlackGlazedTerracotta => "black_glazed_terracotta", + BlockKind::DeepslateBrickWall => "deepslate_brick_wall", + BlockKind::SoulTorch => "soul_torch", + BlockKind::JungleFenceGate => "jungle_fence_gate", + BlockKind::WitherSkeletonWallSkull => "wither_skeleton_wall_skull", + BlockKind::PolishedBlackstoneWall => "polished_blackstone_wall", + BlockKind::DaylightDetector => "daylight_detector", + BlockKind::Lilac => "lilac", + BlockKind::ChiseledStoneBricks => "chiseled_stone_bricks", + BlockKind::SoulLantern => "soul_lantern", + BlockKind::PottedCrimsonRoots => "potted_crimson_roots", + BlockKind::StrippedBirchLog => "stripped_birch_log", + } + } + #[doc = "Gets a `BlockKind` by its `name`."] + #[inline] + pub fn from_name(name: &str) -> Option { + match name { + "moss_block" => Some(BlockKind::MossBlock), + "spruce_stairs" => Some(BlockKind::SpruceStairs), + "polished_diorite_stairs" => Some(BlockKind::PolishedDioriteStairs), + "big_dripleaf_stem" => Some(BlockKind::BigDripleafStem), + "jungle_door" => Some(BlockKind::JungleDoor), + "blackstone_stairs" => Some(BlockKind::BlackstoneStairs), + "bedrock" => Some(BlockKind::Bedrock), + "nether_brick_stairs" => Some(BlockKind::NetherBrickStairs), + "skeleton_wall_skull" => Some(BlockKind::SkeletonWallSkull), + "waxed_oxidized_cut_copper_stairs" => Some(BlockKind::WaxedOxidizedCutCopperStairs), + "stripped_oak_log" => Some(BlockKind::StrippedOakLog), + "birch_fence" => Some(BlockKind::BirchFence), + "brick_slab" => Some(BlockKind::BrickSlab), + "green_shulker_box" => Some(BlockKind::GreenShulkerBox), + "potted_jungle_sapling" => Some(BlockKind::PottedJungleSapling), + "stripped_acacia_wood" => Some(BlockKind::StrippedAcaciaWood), + "smooth_red_sandstone_slab" => Some(BlockKind::SmoothRedSandstoneSlab), + "repeating_command_block" => Some(BlockKind::RepeatingCommandBlock), + "crimson_roots" => Some(BlockKind::CrimsonRoots), + "warped_stairs" => Some(BlockKind::WarpedStairs), + "cyan_terracotta" => Some(BlockKind::CyanTerracotta), + "structure_void" => Some(BlockKind::StructureVoid), + "smooth_sandstone_slab" => Some(BlockKind::SmoothSandstoneSlab), + "magenta_candle_cake" => Some(BlockKind::MagentaCandleCake), + "mossy_cobblestone" => Some(BlockKind::MossyCobblestone), + "fire_coral_block" => Some(BlockKind::FireCoralBlock), + "raw_iron_block" => Some(BlockKind::RawIronBlock), + "light_gray_candle_cake" => Some(BlockKind::LightGrayCandleCake), + "smooth_quartz_stairs" => Some(BlockKind::SmoothQuartzStairs), + "spruce_fence" => Some(BlockKind::SpruceFence), + "brown_stained_glass_pane" => Some(BlockKind::BrownStainedGlassPane), + "dead_horn_coral_block" => Some(BlockKind::DeadHornCoralBlock), + "exposed_cut_copper" => Some(BlockKind::ExposedCutCopper), + "end_stone_brick_wall" => Some(BlockKind::EndStoneBrickWall), + "waxed_cut_copper_stairs" => Some(BlockKind::WaxedCutCopperStairs), + "dead_bubble_coral_fan" => Some(BlockKind::DeadBubbleCoralFan), + "tuff" => Some(BlockKind::Tuff), + "waxed_weathered_cut_copper_stairs" => Some(BlockKind::WaxedWeatheredCutCopperStairs), + "purpur_stairs" => Some(BlockKind::PurpurStairs), + "sweet_berry_bush" => Some(BlockKind::SweetBerryBush), + "tinted_glass" => Some(BlockKind::TintedGlass), + "white_terracotta" => Some(BlockKind::WhiteTerracotta), + "jungle_wall_sign" => Some(BlockKind::JungleWallSign), + "potted_cornflower" => Some(BlockKind::PottedCornflower), + "azalea" => Some(BlockKind::Azalea), + "gold_block" => Some(BlockKind::GoldBlock), + "brown_carpet" => Some(BlockKind::BrownCarpet), + "prismarine_stairs" => Some(BlockKind::PrismarineStairs), + "infested_stone" => Some(BlockKind::InfestedStone), + "poppy" => Some(BlockKind::Poppy), + "redstone_block" => Some(BlockKind::RedstoneBlock), + "purple_candle_cake" => Some(BlockKind::PurpleCandleCake), + "chain_command_block" => Some(BlockKind::ChainCommandBlock), + "cauldron" => Some(BlockKind::Cauldron), + "blackstone_slab" => Some(BlockKind::BlackstoneSlab), + "shulker_box" => Some(BlockKind::ShulkerBox), + "purple_shulker_box" => Some(BlockKind::PurpleShulkerBox), + "dripstone_block" => Some(BlockKind::DripstoneBlock), + "chiseled_sandstone" => Some(BlockKind::ChiseledSandstone), + "red_concrete" => Some(BlockKind::RedConcrete), + "cyan_banner" => Some(BlockKind::CyanBanner), + "orange_wall_banner" => Some(BlockKind::OrangeWallBanner), + "chiseled_polished_blackstone" => Some(BlockKind::ChiseledPolishedBlackstone), + "mossy_cobblestone_stairs" => Some(BlockKind::MossyCobblestoneStairs), + "black_wool" => Some(BlockKind::BlackWool), + "carved_pumpkin" => Some(BlockKind::CarvedPumpkin), + "light_blue_terracotta" => Some(BlockKind::LightBlueTerracotta), + "orange_shulker_box" => Some(BlockKind::OrangeShulkerBox), + "red_terracotta" => Some(BlockKind::RedTerracotta), + "blue_wool" => Some(BlockKind::BlueWool), + "cobweb" => Some(BlockKind::Cobweb), + "purple_wall_banner" => Some(BlockKind::PurpleWallBanner), + "weathered_cut_copper_slab" => Some(BlockKind::WeatheredCutCopperSlab), + "iron_trapdoor" => Some(BlockKind::IronTrapdoor), + "white_bed" => Some(BlockKind::WhiteBed), + "brown_shulker_box" => Some(BlockKind::BrownShulkerBox), + "blue_wall_banner" => Some(BlockKind::BlueWallBanner), + "polished_blackstone_brick_wall" => Some(BlockKind::PolishedBlackstoneBrickWall), + "waxed_cut_copper_slab" => Some(BlockKind::WaxedCutCopperSlab), + "pink_banner" => Some(BlockKind::PinkBanner), + "mossy_stone_brick_slab" => Some(BlockKind::MossyStoneBrickSlab), + "creeper_wall_head" => Some(BlockKind::CreeperWallHead), + "stone" => Some(BlockKind::Stone), + "oak_button" => Some(BlockKind::OakButton), + "repeater" => Some(BlockKind::Repeater), + "mossy_stone_brick_wall" => Some(BlockKind::MossyStoneBrickWall), + "seagrass" => Some(BlockKind::Seagrass), + "dried_kelp_block" => Some(BlockKind::DriedKelpBlock), + "birch_wall_sign" => Some(BlockKind::BirchWallSign), + "acacia_fence" => Some(BlockKind::AcaciaFence), + "cut_copper" => Some(BlockKind::CutCopper), + "polished_blackstone_brick_slab" => Some(BlockKind::PolishedBlackstoneBrickSlab), + "flowering_azalea" => Some(BlockKind::FloweringAzalea), + "crimson_hyphae" => Some(BlockKind::CrimsonHyphae), + "deepslate_copper_ore" => Some(BlockKind::DeepslateCopperOre), + "twisting_vines" => Some(BlockKind::TwistingVines), + "dispenser" => Some(BlockKind::Dispenser), + "redstone_wall_torch" => Some(BlockKind::RedstoneWallTorch), + "oxidized_cut_copper" => Some(BlockKind::OxidizedCutCopper), + "podzol" => Some(BlockKind::Podzol), + "skeleton_skull" => Some(BlockKind::SkeletonSkull), + "dragon_egg" => Some(BlockKind::DragonEgg), + "orange_concrete" => Some(BlockKind::OrangeConcrete), + "jungle_trapdoor" => Some(BlockKind::JungleTrapdoor), + "gray_wall_banner" => Some(BlockKind::GrayWallBanner), + "spruce_leaves" => Some(BlockKind::SpruceLeaves), + "dark_prismarine" => Some(BlockKind::DarkPrismarine), + "stone_brick_stairs" => Some(BlockKind::StoneBrickStairs), + "crimson_slab" => Some(BlockKind::CrimsonSlab), + "lime_wool" => Some(BlockKind::LimeWool), + "warped_fungus" => Some(BlockKind::WarpedFungus), + "potted_warped_fungus" => Some(BlockKind::PottedWarpedFungus), + "andesite_slab" => Some(BlockKind::AndesiteSlab), + "dark_oak_stairs" => Some(BlockKind::DarkOakStairs), + "pink_candle_cake" => Some(BlockKind::PinkCandleCake), + "waxed_weathered_copper" => Some(BlockKind::WaxedWeatheredCopper), + "gray_bed" => Some(BlockKind::GrayBed), + "creeper_head" => Some(BlockKind::CreeperHead), + "cut_copper_stairs" => Some(BlockKind::CutCopperStairs), + "deepslate_tile_stairs" => Some(BlockKind::DeepslateTileStairs), + "black_wall_banner" => Some(BlockKind::BlackWallBanner), + "raw_gold_block" => Some(BlockKind::RawGoldBlock), + "gray_carpet" => Some(BlockKind::GrayCarpet), + "dark_oak_wood" => Some(BlockKind::DarkOakWood), + "birch_leaves" => Some(BlockKind::BirchLeaves), + "red_tulip" => Some(BlockKind::RedTulip), + "jungle_stairs" => Some(BlockKind::JungleStairs), + "bubble_coral_fan" => Some(BlockKind::BubbleCoralFan), + "granite_wall" => Some(BlockKind::GraniteWall), + "prismarine_slab" => Some(BlockKind::PrismarineSlab), + "spruce_fence_gate" => Some(BlockKind::SpruceFenceGate), + "potted_lily_of_the_valley" => Some(BlockKind::PottedLilyOfTheValley), + "emerald_block" => Some(BlockKind::EmeraldBlock), + "polished_blackstone_brick_stairs" => Some(BlockKind::PolishedBlackstoneBrickStairs), + "pink_tulip" => Some(BlockKind::PinkTulip), + "fire_coral_fan" => Some(BlockKind::FireCoralFan), + "gray_stained_glass" => Some(BlockKind::GrayStainedGlass), + "smooth_sandstone_stairs" => Some(BlockKind::SmoothSandstoneStairs), + "spruce_sign" => Some(BlockKind::SpruceSign), + "exposed_cut_copper_slab" => Some(BlockKind::ExposedCutCopperSlab), + "brown_terracotta" => Some(BlockKind::BrownTerracotta), + "dead_tube_coral" => Some(BlockKind::DeadTubeCoral), + "wither_skeleton_skull" => Some(BlockKind::WitherSkeletonSkull), + "birch_sign" => Some(BlockKind::BirchSign), + "lily_pad" => Some(BlockKind::LilyPad), + "polished_blackstone_pressure_plate" => { + Some(BlockKind::PolishedBlackstonePressurePlate) } - BlockKind::GrayTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "oak_wall_sign" => Some(BlockKind::OakWallSign), + "stone_stairs" => Some(BlockKind::StoneStairs), + "waxed_copper_block" => Some(BlockKind::WaxedCopperBlock), + "cake" => Some(BlockKind::Cake), + "stripped_warped_hyphae" => Some(BlockKind::StrippedWarpedHyphae), + "blue_stained_glass_pane" => Some(BlockKind::BlueStainedGlassPane), + "weathered_copper" => Some(BlockKind::WeatheredCopper), + "white_stained_glass" => Some(BlockKind::WhiteStainedGlass), + "andesite" => Some(BlockKind::Andesite), + "black_carpet" => Some(BlockKind::BlackCarpet), + "prismarine_wall" => Some(BlockKind::PrismarineWall), + "warped_wall_sign" => Some(BlockKind::WarpedWallSign), + "coal_ore" => Some(BlockKind::CoalOre), + "chest" => Some(BlockKind::Chest), + "blue_terracotta" => Some(BlockKind::BlueTerracotta), + "emerald_ore" => Some(BlockKind::EmeraldOre), + "warped_button" => Some(BlockKind::WarpedButton), + "oak_fence_gate" => Some(BlockKind::OakFenceGate), + "light_gray_shulker_box" => Some(BlockKind::LightGrayShulkerBox), + "white_shulker_box" => Some(BlockKind::WhiteShulkerBox), + "nether_wart" => Some(BlockKind::NetherWart), + "black_concrete" => Some(BlockKind::BlackConcrete), + "stone_button" => Some(BlockKind::StoneButton), + "magenta_wool" => Some(BlockKind::MagentaWool), + "oak_stairs" => Some(BlockKind::OakStairs), + "purple_stained_glass" => Some(BlockKind::PurpleStainedGlass), + "dark_oak_planks" => Some(BlockKind::DarkOakPlanks), + "glass_pane" => Some(BlockKind::GlassPane), + "prismarine_bricks" => Some(BlockKind::PrismarineBricks), + "pink_wall_banner" => Some(BlockKind::PinkWallBanner), + "cobblestone_slab" => Some(BlockKind::CobblestoneSlab), + "stonecutter" => Some(BlockKind::Stonecutter), + "green_concrete" => Some(BlockKind::GreenConcrete), + "blue_glazed_terracotta" => Some(BlockKind::BlueGlazedTerracotta), + "jigsaw" => Some(BlockKind::Jigsaw), + "amethyst_cluster" => Some(BlockKind::AmethystCluster), + "barrel" => Some(BlockKind::Barrel), + "calcite" => Some(BlockKind::Calcite), + "crafting_table" => Some(BlockKind::CraftingTable), + "black_banner" => Some(BlockKind::BlackBanner), + "cut_red_sandstone" => Some(BlockKind::CutRedSandstone), + "red_sandstone_stairs" => Some(BlockKind::RedSandstoneStairs), + "oak_sapling" => Some(BlockKind::OakSapling), + "nether_bricks" => Some(BlockKind::NetherBricks), + "light_blue_concrete" => Some(BlockKind::LightBlueConcrete), + "acacia_sapling" => Some(BlockKind::AcaciaSapling), + "tube_coral_fan" => Some(BlockKind::TubeCoralFan), + "potted_dark_oak_sapling" => Some(BlockKind::PottedDarkOakSapling), + "soul_wall_torch" => Some(BlockKind::SoulWallTorch), + "small_amethyst_bud" => Some(BlockKind::SmallAmethystBud), + "pink_shulker_box" => Some(BlockKind::PinkShulkerBox), + "red_wool" => Some(BlockKind::RedWool), + "beehive" => Some(BlockKind::Beehive), + "big_dripleaf" => Some(BlockKind::BigDripleaf), + "orange_carpet" => Some(BlockKind::OrangeCarpet), + "stripped_warped_stem" => Some(BlockKind::StrippedWarpedStem), + "red_banner" => Some(BlockKind::RedBanner), + "magma_block" => Some(BlockKind::MagmaBlock), + "jack_o_lantern" => Some(BlockKind::JackOLantern), + "fire" => Some(BlockKind::Fire), + "smithing_table" => Some(BlockKind::SmithingTable), + "target" => Some(BlockKind::Target), + "sea_pickle" => Some(BlockKind::SeaPickle), + "spruce_wood" => Some(BlockKind::SpruceWood), + "pink_bed" => Some(BlockKind::PinkBed), + "black_candle" => Some(BlockKind::BlackCandle), + "waxed_cut_copper" => Some(BlockKind::WaxedCutCopper), + "light_blue_wall_banner" => Some(BlockKind::LightBlueWallBanner), + "birch_fence_gate" => Some(BlockKind::BirchFenceGate), + "petrified_oak_slab" => Some(BlockKind::PetrifiedOakSlab), + "respawn_anchor" => Some(BlockKind::RespawnAnchor), + "white_candle_cake" => Some(BlockKind::WhiteCandleCake), + "dead_bubble_coral_wall_fan" => Some(BlockKind::DeadBubbleCoralWallFan), + "jungle_log" => Some(BlockKind::JungleLog), + "lever" => Some(BlockKind::Lever), + "end_stone_bricks" => Some(BlockKind::EndStoneBricks), + "oxidized_copper" => Some(BlockKind::OxidizedCopper), + "granite_slab" => Some(BlockKind::GraniteSlab), + "dead_tube_coral_wall_fan" => Some(BlockKind::DeadTubeCoralWallFan), + "allium" => Some(BlockKind::Allium), + "iron_block" => Some(BlockKind::IronBlock), + "orange_stained_glass_pane" => Some(BlockKind::OrangeStainedGlassPane), + "blackstone_wall" => Some(BlockKind::BlackstoneWall), + "yellow_terracotta" => Some(BlockKind::YellowTerracotta), + "heavy_weighted_pressure_plate" => Some(BlockKind::HeavyWeightedPressurePlate), + "yellow_concrete" => Some(BlockKind::YellowConcrete), + "brown_concrete_powder" => Some(BlockKind::BrownConcretePowder), + "blackstone" => Some(BlockKind::Blackstone), + "glow_lichen" => Some(BlockKind::GlowLichen), + "netherrack" => Some(BlockKind::Netherrack), + "spruce_planks" => Some(BlockKind::SprucePlanks), + "sandstone_stairs" => Some(BlockKind::SandstoneStairs), + "lime_stained_glass" => Some(BlockKind::LimeStainedGlass), + "pumpkin_stem" => Some(BlockKind::PumpkinStem), + "melon_stem" => Some(BlockKind::MelonStem), + "spruce_sapling" => Some(BlockKind::SpruceSapling), + "yellow_glazed_terracotta" => Some(BlockKind::YellowGlazedTerracotta), + "cyan_glazed_terracotta" => Some(BlockKind::CyanGlazedTerracotta), + "crimson_button" => Some(BlockKind::CrimsonButton), + "bee_nest" => Some(BlockKind::BeeNest), + "deepslate_brick_stairs" => Some(BlockKind::DeepslateBrickStairs), + "chiseled_red_sandstone" => Some(BlockKind::ChiseledRedSandstone), + "light_gray_concrete_powder" => Some(BlockKind::LightGrayConcretePowder), + "bone_block" => Some(BlockKind::BoneBlock), + "terracotta" => Some(BlockKind::Terracotta), + "packed_ice" => Some(BlockKind::PackedIce), + "potted_oxeye_daisy" => Some(BlockKind::PottedOxeyeDaisy), + "yellow_shulker_box" => Some(BlockKind::YellowShulkerBox), + "mushroom_stem" => Some(BlockKind::MushroomStem), + "potted_white_tulip" => Some(BlockKind::PottedWhiteTulip), + "sunflower" => Some(BlockKind::Sunflower), + "light_blue_candle" => Some(BlockKind::LightBlueCandle), + "nether_quartz_ore" => Some(BlockKind::NetherQuartzOre), + "chorus_plant" => Some(BlockKind::ChorusPlant), + "dead_bubble_coral" => Some(BlockKind::DeadBubbleCoral), + "soul_fire" => Some(BlockKind::SoulFire), + "bubble_coral" => Some(BlockKind::BubbleCoral), + "polished_andesite_stairs" => Some(BlockKind::PolishedAndesiteStairs), + "warped_pressure_plate" => Some(BlockKind::WarpedPressurePlate), + "dark_oak_leaves" => Some(BlockKind::DarkOakLeaves), + "orange_wool" => Some(BlockKind::OrangeWool), + "dead_brain_coral_wall_fan" => Some(BlockKind::DeadBrainCoralWallFan), + "potted_red_mushroom" => Some(BlockKind::PottedRedMushroom), + "crimson_stem" => Some(BlockKind::CrimsonStem), + "chiseled_nether_bricks" => Some(BlockKind::ChiseledNetherBricks), + "warped_slab" => Some(BlockKind::WarpedSlab), + "polished_deepslate_slab" => Some(BlockKind::PolishedDeepslateSlab), + "blue_candle_cake" => Some(BlockKind::BlueCandleCake), + "mossy_cobblestone_slab" => Some(BlockKind::MossyCobblestoneSlab), + "light_gray_stained_glass_pane" => Some(BlockKind::LightGrayStainedGlassPane), + "quartz_slab" => Some(BlockKind::QuartzSlab), + "prismarine" => Some(BlockKind::Prismarine), + "trapped_chest" => Some(BlockKind::TrappedChest), + "pink_carpet" => Some(BlockKind::PinkCarpet), + "stripped_dark_oak_wood" => Some(BlockKind::StrippedDarkOakWood), + "brown_concrete" => Some(BlockKind::BrownConcrete), + "yellow_concrete_powder" => Some(BlockKind::YellowConcretePowder), + "fire_coral_wall_fan" => Some(BlockKind::FireCoralWallFan), + "orange_banner" => Some(BlockKind::OrangeBanner), + "brown_mushroom" => Some(BlockKind::BrownMushroom), + "flowering_azalea_leaves" => Some(BlockKind::FloweringAzaleaLeaves), + "black_terracotta" => Some(BlockKind::BlackTerracotta), + "blue_orchid" => Some(BlockKind::BlueOrchid), + "red_nether_brick_wall" => Some(BlockKind::RedNetherBrickWall), + "magenta_concrete_powder" => Some(BlockKind::MagentaConcretePowder), + "potted_dandelion" => Some(BlockKind::PottedDandelion), + "horn_coral_block" => Some(BlockKind::HornCoralBlock), + "brown_candle" => Some(BlockKind::BrownCandle), + "raw_copper_block" => Some(BlockKind::RawCopperBlock), + "amethyst_block" => Some(BlockKind::AmethystBlock), + "cut_red_sandstone_slab" => Some(BlockKind::CutRedSandstoneSlab), + "black_candle_cake" => Some(BlockKind::BlackCandleCake), + "red_mushroom_block" => Some(BlockKind::RedMushroomBlock), + "pink_concrete" => Some(BlockKind::PinkConcrete), + "dark_oak_sign" => Some(BlockKind::DarkOakSign), + "grass" => Some(BlockKind::Grass), + "deepslate_diamond_ore" => Some(BlockKind::DeepslateDiamondOre), + "polished_diorite_slab" => Some(BlockKind::PolishedDioriteSlab), + "stripped_crimson_hyphae" => Some(BlockKind::StrippedCrimsonHyphae), + "deepslate_bricks" => Some(BlockKind::DeepslateBricks), + "purpur_block" => Some(BlockKind::PurpurBlock), + "yellow_candle_cake" => Some(BlockKind::YellowCandleCake), + "lapis_ore" => Some(BlockKind::LapisOre), + "oak_sign" => Some(BlockKind::OakSign), + "peony" => Some(BlockKind::Peony), + "light_blue_bed" => Some(BlockKind::LightBlueBed), + "red_sandstone_wall" => Some(BlockKind::RedSandstoneWall), + "polished_blackstone_bricks" => Some(BlockKind::PolishedBlackstoneBricks), + "orange_bed" => Some(BlockKind::OrangeBed), + "turtle_egg" => Some(BlockKind::TurtleEgg), + "cobbled_deepslate" => Some(BlockKind::CobbledDeepslate), + "warped_nylium" => Some(BlockKind::WarpedNylium), + "cyan_wool" => Some(BlockKind::CyanWool), + "glass" => Some(BlockKind::Glass), + "light_gray_candle" => Some(BlockKind::LightGrayCandle), + "chiseled_quartz_block" => Some(BlockKind::ChiseledQuartzBlock), + "purple_carpet" => Some(BlockKind::PurpleCarpet), + "sponge" => Some(BlockKind::Sponge), + "ladder" => Some(BlockKind::Ladder), + "soul_sand" => Some(BlockKind::SoulSand), + "purpur_pillar" => Some(BlockKind::PurpurPillar), + "nether_wart_block" => Some(BlockKind::NetherWartBlock), + "warped_planks" => Some(BlockKind::WarpedPlanks), + "potted_warped_roots" => Some(BlockKind::PottedWarpedRoots), + "black_shulker_box" => Some(BlockKind::BlackShulkerBox), + "red_candle" => Some(BlockKind::RedCandle), + "white_carpet" => Some(BlockKind::WhiteCarpet), + "end_portal_frame" => Some(BlockKind::EndPortalFrame), + "polished_andesite" => Some(BlockKind::PolishedAndesite), + "infested_stone_bricks" => Some(BlockKind::InfestedStoneBricks), + "light_blue_candle_cake" => Some(BlockKind::LightBlueCandleCake), + "stripped_oak_wood" => Some(BlockKind::StrippedOakWood), + "granite_stairs" => Some(BlockKind::GraniteStairs), + "red_sandstone" => Some(BlockKind::RedSandstone), + "dark_prismarine_slab" => Some(BlockKind::DarkPrismarineSlab), + "diorite" => Some(BlockKind::Diorite), + "rooted_dirt" => Some(BlockKind::RootedDirt), + "potted_pink_tulip" => Some(BlockKind::PottedPinkTulip), + "magenta_candle" => Some(BlockKind::MagentaCandle), + "weathered_cut_copper_stairs" => Some(BlockKind::WeatheredCutCopperStairs), + "jungle_wood" => Some(BlockKind::JungleWood), + "birch_wood" => Some(BlockKind::BirchWood), + "light_blue_wool" => Some(BlockKind::LightBlueWool), + "attached_pumpkin_stem" => Some(BlockKind::AttachedPumpkinStem), + "warped_fence" => Some(BlockKind::WarpedFence), + "pointed_dripstone" => Some(BlockKind::PointedDripstone), + "stripped_acacia_log" => Some(BlockKind::StrippedAcaciaLog), + "carrots" => Some(BlockKind::Carrots), + "acacia_button" => Some(BlockKind::AcaciaButton), + "gray_concrete" => Some(BlockKind::GrayConcrete), + "potted_azalea_bush" => Some(BlockKind::PottedAzaleaBush), + "dark_oak_fence" => Some(BlockKind::DarkOakFence), + "red_mushroom" => Some(BlockKind::RedMushroom), + "coarse_dirt" => Some(BlockKind::CoarseDirt), + "ice" => Some(BlockKind::Ice), + "magenta_stained_glass" => Some(BlockKind::MagentaStainedGlass), + "birch_log" => Some(BlockKind::BirchLog), + "cave_air" => Some(BlockKind::CaveAir), + "infested_cracked_stone_bricks" => Some(BlockKind::InfestedCrackedStoneBricks), + "orange_tulip" => Some(BlockKind::OrangeTulip), + "bubble_column" => Some(BlockKind::BubbleColumn), + "sculk_sensor" => Some(BlockKind::SculkSensor), + "oxidized_cut_copper_stairs" => Some(BlockKind::OxidizedCutCopperStairs), + "cracked_nether_bricks" => Some(BlockKind::CrackedNetherBricks), + "diamond_ore" => Some(BlockKind::DiamondOre), + "potted_azure_bluet" => Some(BlockKind::PottedAzureBluet), + "smooth_stone_slab" => Some(BlockKind::SmoothStoneSlab), + "redstone_torch" => Some(BlockKind::RedstoneTorch), + "oak_door" => Some(BlockKind::OakDoor), + "coal_block" => Some(BlockKind::CoalBlock), + "spruce_wall_sign" => Some(BlockKind::SpruceWallSign), + "snow" => Some(BlockKind::Snow), + "twisting_vines_plant" => Some(BlockKind::TwistingVinesPlant), + "potted_blue_orchid" => Some(BlockKind::PottedBlueOrchid), + "yellow_bed" => Some(BlockKind::YellowBed), + "smooth_quartz_slab" => Some(BlockKind::SmoothQuartzSlab), + "jungle_leaves" => Some(BlockKind::JungleLeaves), + "acacia_pressure_plate" => Some(BlockKind::AcaciaPressurePlate), + "magenta_concrete" => Some(BlockKind::MagentaConcrete), + "potted_flowering_azalea_bush" => Some(BlockKind::PottedFloweringAzaleaBush), + "green_stained_glass_pane" => Some(BlockKind::GreenStainedGlassPane), + "spore_blossom" => Some(BlockKind::SporeBlossom), + "waxed_exposed_copper" => Some(BlockKind::WaxedExposedCopper), + "black_bed" => Some(BlockKind::BlackBed), + "polished_basalt" => Some(BlockKind::PolishedBasalt), + "beetroots" => Some(BlockKind::Beetroots), + "tall_seagrass" => Some(BlockKind::TallSeagrass), + "chorus_flower" => Some(BlockKind::ChorusFlower), + "potted_dead_bush" => Some(BlockKind::PottedDeadBush), + "dead_horn_coral_fan" => Some(BlockKind::DeadHornCoralFan), + "red_nether_brick_stairs" => Some(BlockKind::RedNetherBrickStairs), + "cartography_table" => Some(BlockKind::CartographyTable), + "mossy_stone_bricks" => Some(BlockKind::MossyStoneBricks), + "acacia_planks" => Some(BlockKind::AcaciaPlanks), + "potted_poppy" => Some(BlockKind::PottedPoppy), + "gray_terracotta" => Some(BlockKind::GrayTerracotta), + "warped_stem" => Some(BlockKind::WarpedStem), + "polished_blackstone_slab" => Some(BlockKind::PolishedBlackstoneSlab), + "purpur_slab" => Some(BlockKind::PurpurSlab), + "blue_concrete" => Some(BlockKind::BlueConcrete), + "conduit" => Some(BlockKind::Conduit), + "red_nether_bricks" => Some(BlockKind::RedNetherBricks), + "yellow_banner" => Some(BlockKind::YellowBanner), + "cyan_stained_glass_pane" => Some(BlockKind::CyanStainedGlassPane), + "red_bed" => Some(BlockKind::RedBed), + "oak_leaves" => Some(BlockKind::OakLeaves), + "oak_pressure_plate" => Some(BlockKind::OakPressurePlate), + "infested_deepslate" => Some(BlockKind::InfestedDeepslate), + "jungle_pressure_plate" => Some(BlockKind::JunglePressurePlate), + "cyan_wall_banner" => Some(BlockKind::CyanWallBanner), + "red_wall_banner" => Some(BlockKind::RedWallBanner), + "end_stone_brick_slab" => Some(BlockKind::EndStoneBrickSlab), + "waxed_oxidized_copper" => Some(BlockKind::WaxedOxidizedCopper), + "brown_wool" => Some(BlockKind::BrownWool), + "cobbled_deepslate_wall" => Some(BlockKind::CobbledDeepslateWall), + "flower_pot" => Some(BlockKind::FlowerPot), + "magenta_shulker_box" => Some(BlockKind::MagentaShulkerBox), + "green_glazed_terracotta" => Some(BlockKind::GreenGlazedTerracotta), + "cyan_concrete_powder" => Some(BlockKind::CyanConcretePowder), + "magenta_bed" => Some(BlockKind::MagentaBed), + "mossy_stone_brick_stairs" => Some(BlockKind::MossyStoneBrickStairs), + "brown_candle_cake" => Some(BlockKind::BrownCandleCake), + "crimson_nylium" => Some(BlockKind::CrimsonNylium), + "potted_crimson_fungus" => Some(BlockKind::PottedCrimsonFungus), + "exposed_copper" => Some(BlockKind::ExposedCopper), + "azure_bluet" => Some(BlockKind::AzureBluet), + "observer" => Some(BlockKind::Observer), + "potted_wither_rose" => Some(BlockKind::PottedWitherRose), + "dark_oak_button" => Some(BlockKind::DarkOakButton), + "moss_carpet" => Some(BlockKind::MossCarpet), + "diorite_slab" => Some(BlockKind::DioriteSlab), + "water_cauldron" => Some(BlockKind::WaterCauldron), + "prismarine_brick_slab" => Some(BlockKind::PrismarineBrickSlab), + "red_carpet" => Some(BlockKind::RedCarpet), + "potted_orange_tulip" => Some(BlockKind::PottedOrangeTulip), + "pumpkin" => Some(BlockKind::Pumpkin), + "lime_wall_banner" => Some(BlockKind::LimeWallBanner), + "gold_ore" => Some(BlockKind::GoldOre), + "horn_coral_fan" => Some(BlockKind::HornCoralFan), + "polished_blackstone" => Some(BlockKind::PolishedBlackstone), + "farmland" => Some(BlockKind::Farmland), + "lime_stained_glass_pane" => Some(BlockKind::LimeStainedGlassPane), + "weeping_vines" => Some(BlockKind::WeepingVines), + "cut_sandstone_slab" => Some(BlockKind::CutSandstoneSlab), + "tall_grass" => Some(BlockKind::TallGrass), + "light_blue_carpet" => Some(BlockKind::LightBlueCarpet), + "tube_coral" => Some(BlockKind::TubeCoral), + "grindstone" => Some(BlockKind::Grindstone), + "honey_block" => Some(BlockKind::HoneyBlock), + "pink_wool" => Some(BlockKind::PinkWool), + "gray_wool" => Some(BlockKind::GrayWool), + "polished_deepslate_stairs" => Some(BlockKind::PolishedDeepslateStairs), + "warped_door" => Some(BlockKind::WarpedDoor), + "cyan_concrete" => Some(BlockKind::CyanConcrete), + "crimson_door" => Some(BlockKind::CrimsonDoor), + "cracked_deepslate_bricks" => Some(BlockKind::CrackedDeepslateBricks), + "cactus" => Some(BlockKind::Cactus), + "stone_pressure_plate" => Some(BlockKind::StonePressurePlate), + "polished_deepslate_wall" => Some(BlockKind::PolishedDeepslateWall), + "tube_coral_block" => Some(BlockKind::TubeCoralBlock), + "potted_allium" => Some(BlockKind::PottedAllium), + "yellow_stained_glass_pane" => Some(BlockKind::YellowStainedGlassPane), + "dark_oak_wall_sign" => Some(BlockKind::DarkOakWallSign), + "lime_concrete" => Some(BlockKind::LimeConcrete), + "jungle_button" => Some(BlockKind::JungleButton), + "deepslate_tile_slab" => Some(BlockKind::DeepslateTileSlab), + "wither_rose" => Some(BlockKind::WitherRose), + "cracked_stone_bricks" => Some(BlockKind::CrackedStoneBricks), + "light_gray_wall_banner" => Some(BlockKind::LightGrayWallBanner), + "orange_glazed_terracotta" => Some(BlockKind::OrangeGlazedTerracotta), + "dead_brain_coral" => Some(BlockKind::DeadBrainCoral), + "polished_blackstone_button" => Some(BlockKind::PolishedBlackstoneButton), + "red_glazed_terracotta" => Some(BlockKind::RedGlazedTerracotta), + "oxidized_cut_copper_slab" => Some(BlockKind::OxidizedCutCopperSlab), + "azalea_leaves" => Some(BlockKind::AzaleaLeaves), + "potatoes" => Some(BlockKind::Potatoes), + "green_stained_glass" => Some(BlockKind::GreenStainedGlass), + "end_gateway" => Some(BlockKind::EndGateway), + "crimson_pressure_plate" => Some(BlockKind::CrimsonPressurePlate), + "green_candle" => Some(BlockKind::GreenCandle), + "cornflower" => Some(BlockKind::Cornflower), + "potted_brown_mushroom" => Some(BlockKind::PottedBrownMushroom), + "purple_stained_glass_pane" => Some(BlockKind::PurpleStainedGlassPane), + "light_blue_concrete_powder" => Some(BlockKind::LightBlueConcretePowder), + "spruce_slab" => Some(BlockKind::SpruceSlab), + "ancient_debris" => Some(BlockKind::AncientDebris), + "purple_glazed_terracotta" => Some(BlockKind::PurpleGlazedTerracotta), + "anvil" => Some(BlockKind::Anvil), + "dark_oak_door" => Some(BlockKind::DarkOakDoor), + "polished_granite" => Some(BlockKind::PolishedGranite), + "jungle_sapling" => Some(BlockKind::JungleSapling), + "dark_prismarine_stairs" => Some(BlockKind::DarkPrismarineStairs), + "magenta_carpet" => Some(BlockKind::MagentaCarpet), + "smoker" => Some(BlockKind::Smoker), + "light_blue_stained_glass" => Some(BlockKind::LightBlueStainedGlass), + "jungle_planks" => Some(BlockKind::JunglePlanks), + "fern" => Some(BlockKind::Fern), + "quartz_stairs" => Some(BlockKind::QuartzStairs), + "diamond_block" => Some(BlockKind::DiamondBlock), + "redstone_lamp" => Some(BlockKind::RedstoneLamp), + "soul_campfire" => Some(BlockKind::SoulCampfire), + "dark_oak_log" => Some(BlockKind::DarkOakLog), + "cobblestone" => Some(BlockKind::Cobblestone), + "bubble_coral_block" => Some(BlockKind::BubbleCoralBlock), + "waxed_oxidized_cut_copper_slab" => Some(BlockKind::WaxedOxidizedCutCopperSlab), + "warped_hyphae" => Some(BlockKind::WarpedHyphae), + "quartz_bricks" => Some(BlockKind::QuartzBricks), + "shroomlight" => Some(BlockKind::Shroomlight), + "purple_concrete_powder" => Some(BlockKind::PurpleConcretePowder), + "crimson_fence" => Some(BlockKind::CrimsonFence), + "light_gray_terracotta" => Some(BlockKind::LightGrayTerracotta), + "birch_pressure_plate" => Some(BlockKind::BirchPressurePlate), + "red_sand" => Some(BlockKind::RedSand), + "hay_block" => Some(BlockKind::HayBlock), + "orange_concrete_powder" => Some(BlockKind::OrangeConcretePowder), + "granite" => Some(BlockKind::Granite), + "cyan_candle" => Some(BlockKind::CyanCandle), + "bamboo" => Some(BlockKind::Bamboo), + "bricks" => Some(BlockKind::Bricks), + "white_wool" => Some(BlockKind::WhiteWool), + "bamboo_sapling" => Some(BlockKind::BambooSapling), + "lime_concrete_powder" => Some(BlockKind::LimeConcretePowder), + "bubble_coral_wall_fan" => Some(BlockKind::BubbleCoralWallFan), + "redstone_wire" => Some(BlockKind::RedstoneWire), + "piston_head" => Some(BlockKind::PistonHead), + "dead_fire_coral_fan" => Some(BlockKind::DeadFireCoralFan), + "nether_brick_fence" => Some(BlockKind::NetherBrickFence), + "red_shulker_box" => Some(BlockKind::RedShulkerBox), + "cyan_shulker_box" => Some(BlockKind::CyanShulkerBox), + "beacon" => Some(BlockKind::Beacon), + "cave_vines" => Some(BlockKind::CaveVines), + "ender_chest" => Some(BlockKind::EnderChest), + "gray_banner" => Some(BlockKind::GrayBanner), + "red_sandstone_slab" => Some(BlockKind::RedSandstoneSlab), + "potted_spruce_sapling" => Some(BlockKind::PottedSpruceSapling), + "white_candle" => Some(BlockKind::WhiteCandle), + "green_wool" => Some(BlockKind::GreenWool), + "yellow_carpet" => Some(BlockKind::YellowCarpet), + "white_tulip" => Some(BlockKind::WhiteTulip), + "cocoa" => Some(BlockKind::Cocoa), + "warped_wart_block" => Some(BlockKind::WarpedWartBlock), + "cracked_polished_blackstone_bricks" => { + Some(BlockKind::CrackedPolishedBlackstoneBricks) } - BlockKind::LightGrayTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "green_candle_cake" => Some(BlockKind::GreenCandleCake), + "kelp_plant" => Some(BlockKind::KelpPlant), + "small_dripleaf" => Some(BlockKind::SmallDripleaf), + "polished_deepslate" => Some(BlockKind::PolishedDeepslate), + "infested_chiseled_stone_bricks" => Some(BlockKind::InfestedChiseledStoneBricks), + "potted_birch_sapling" => Some(BlockKind::PottedBirchSapling), + "gilded_blackstone" => Some(BlockKind::GildedBlackstone), + "red_candle_cake" => Some(BlockKind::RedCandleCake), + "purple_terracotta" => Some(BlockKind::PurpleTerracotta), + "pink_stained_glass" => Some(BlockKind::PinkStainedGlass), + "potted_bamboo" => Some(BlockKind::PottedBamboo), + "tnt" => Some(BlockKind::Tnt), + "warped_roots" => Some(BlockKind::WarpedRoots), + "lightning_rod" => Some(BlockKind::LightningRod), + "andesite_wall" => Some(BlockKind::AndesiteWall), + "nether_gold_ore" => Some(BlockKind::NetherGoldOre), + "crimson_sign" => Some(BlockKind::CrimsonSign), + "smooth_stone" => Some(BlockKind::SmoothStone), + "blue_bed" => Some(BlockKind::BlueBed), + "white_concrete" => Some(BlockKind::WhiteConcrete), + "dark_oak_sapling" => Some(BlockKind::DarkOakSapling), + "clay" => Some(BlockKind::Clay), + "sandstone" => Some(BlockKind::Sandstone), + "dead_bubble_coral_block" => Some(BlockKind::DeadBubbleCoralBlock), + "brewing_stand" => Some(BlockKind::BrewingStand), + "waxed_weathered_cut_copper_slab" => Some(BlockKind::WaxedWeatheredCutCopperSlab), + "lime_candle" => Some(BlockKind::LimeCandle), + "light_gray_stained_glass" => Some(BlockKind::LightGrayStainedGlass), + "cracked_deepslate_tiles" => Some(BlockKind::CrackedDeepslateTiles), + "lime_glazed_terracotta" => Some(BlockKind::LimeGlazedTerracotta), + "green_wall_banner" => Some(BlockKind::GreenWallBanner), + "slime_block" => Some(BlockKind::SlimeBlock), + "green_bed" => Some(BlockKind::GreenBed), + "brown_glazed_terracotta" => Some(BlockKind::BrownGlazedTerracotta), + "brick_wall" => Some(BlockKind::BrickWall), + "cyan_candle_cake" => Some(BlockKind::CyanCandleCake), + "stone_bricks" => Some(BlockKind::StoneBricks), + "birch_planks" => Some(BlockKind::BirchPlanks), + "acacia_trapdoor" => Some(BlockKind::AcaciaTrapdoor), + "blue_candle" => Some(BlockKind::BlueCandle), + "spruce_button" => Some(BlockKind::SpruceButton), + "jungle_slab" => Some(BlockKind::JungleSlab), + "brain_coral" => Some(BlockKind::BrainCoral), + "diorite_stairs" => Some(BlockKind::DioriteStairs), + "lime_banner" => Some(BlockKind::LimeBanner), + "brown_bed" => Some(BlockKind::BrownBed), + "hopper" => Some(BlockKind::Hopper), + "gray_stained_glass_pane" => Some(BlockKind::GrayStainedGlassPane), + "sugar_cane" => Some(BlockKind::SugarCane), + "zombie_wall_head" => Some(BlockKind::ZombieWallHead), + "crying_obsidian" => Some(BlockKind::CryingObsidian), + "air" => Some(BlockKind::Air), + "acacia_wall_sign" => Some(BlockKind::AcaciaWallSign), + "redstone_ore" => Some(BlockKind::RedstoneOre), + "pink_stained_glass_pane" => Some(BlockKind::PinkStainedGlassPane), + "blue_stained_glass" => Some(BlockKind::BlueStainedGlass), + "lime_candle_cake" => Some(BlockKind::LimeCandleCake), + "loom" => Some(BlockKind::Loom), + "red_stained_glass" => Some(BlockKind::RedStainedGlass), + "bookshelf" => Some(BlockKind::Bookshelf), + "iron_door" => Some(BlockKind::IronDoor), + "command_block" => Some(BlockKind::CommandBlock), + "comparator" => Some(BlockKind::Comparator), + "lime_terracotta" => Some(BlockKind::LimeTerracotta), + "pink_terracotta" => Some(BlockKind::PinkTerracotta), + "magenta_glazed_terracotta" => Some(BlockKind::MagentaGlazedTerracotta), + "spruce_door" => Some(BlockKind::SpruceDoor), + "pink_concrete_powder" => Some(BlockKind::PinkConcretePowder), + "waxed_exposed_cut_copper_stairs" => Some(BlockKind::WaxedExposedCutCopperStairs), + "cut_sandstone" => Some(BlockKind::CutSandstone), + "sticky_piston" => Some(BlockKind::StickyPiston), + "lily_of_the_valley" => Some(BlockKind::LilyOfTheValley), + "acacia_fence_gate" => Some(BlockKind::AcaciaFenceGate), + "light_gray_concrete" => Some(BlockKind::LightGrayConcrete), + "nether_brick_wall" => Some(BlockKind::NetherBrickWall), + "green_banner" => Some(BlockKind::GreenBanner), + "white_stained_glass_pane" => Some(BlockKind::WhiteStainedGlassPane), + "smooth_red_sandstone" => Some(BlockKind::SmoothRedSandstone), + "fire_coral" => Some(BlockKind::FireCoral), + "cyan_carpet" => Some(BlockKind::CyanCarpet), + "acacia_stairs" => Some(BlockKind::AcaciaStairs), + "yellow_wool" => Some(BlockKind::YellowWool), + "black_stained_glass_pane" => Some(BlockKind::BlackStainedGlassPane), + "dead_fire_coral" => Some(BlockKind::DeadFireCoral), + "light_gray_glazed_terracotta" => Some(BlockKind::LightGrayGlazedTerracotta), + "birch_stairs" => Some(BlockKind::BirchStairs), + "white_concrete_powder" => Some(BlockKind::WhiteConcretePowder), + "oak_planks" => Some(BlockKind::OakPlanks), + "quartz_pillar" => Some(BlockKind::QuartzPillar), + "bell" => Some(BlockKind::Bell), + "purple_candle" => Some(BlockKind::PurpleCandle), + "acacia_log" => Some(BlockKind::AcaciaLog), + "purple_wool" => Some(BlockKind::PurpleWool), + "melon" => Some(BlockKind::Melon), + "soul_soil" => Some(BlockKind::SoulSoil), + "crimson_fence_gate" => Some(BlockKind::CrimsonFenceGate), + "lava" => Some(BlockKind::Lava), + "white_banner" => Some(BlockKind::WhiteBanner), + "spruce_log" => Some(BlockKind::SpruceLog), + "chain" => Some(BlockKind::Chain), + "potted_cactus" => Some(BlockKind::PottedCactus), + "blue_ice" => Some(BlockKind::BlueIce), + "light_gray_wool" => Some(BlockKind::LightGrayWool), + "acacia_sign" => Some(BlockKind::AcaciaSign), + "light_blue_shulker_box" => Some(BlockKind::LightBlueShulkerBox), + "brown_mushroom_block" => Some(BlockKind::BrownMushroomBlock), + "oak_log" => Some(BlockKind::OakLog), + "stone_slab" => Some(BlockKind::StoneSlab), + "acacia_wood" => Some(BlockKind::AcaciaWood), + "moving_piston" => Some(BlockKind::MovingPiston), + "end_portal" => Some(BlockKind::EndPortal), + "oak_trapdoor" => Some(BlockKind::OakTrapdoor), + "polished_andesite_slab" => Some(BlockKind::PolishedAndesiteSlab), + "gray_candle" => Some(BlockKind::GrayCandle), + "light_blue_banner" => Some(BlockKind::LightBlueBanner), + "lime_shulker_box" => Some(BlockKind::LimeShulkerBox), + "weeping_vines_plant" => Some(BlockKind::WeepingVinesPlant), + "spawner" => Some(BlockKind::Spawner), + "zombie_head" => Some(BlockKind::ZombieHead), + "gray_candle_cake" => Some(BlockKind::GrayCandleCake), + "light_gray_bed" => Some(BlockKind::LightGrayBed), + "green_terracotta" => Some(BlockKind::GreenTerracotta), + "powered_rail" => Some(BlockKind::PoweredRail), + "magenta_terracotta" => Some(BlockKind::MagentaTerracotta), + "red_concrete_powder" => Some(BlockKind::RedConcretePowder), + "oak_wood" => Some(BlockKind::OakWood), + "stripped_jungle_log" => Some(BlockKind::StrippedJungleLog), + "orange_stained_glass" => Some(BlockKind::OrangeStainedGlass), + "spruce_trapdoor" => Some(BlockKind::SpruceTrapdoor), + "magenta_wall_banner" => Some(BlockKind::MagentaWallBanner), + "jungle_sign" => Some(BlockKind::JungleSign), + "purple_banner" => Some(BlockKind::PurpleBanner), + "dead_fire_coral_wall_fan" => Some(BlockKind::DeadFireCoralWallFan), + "water" => Some(BlockKind::Water), + "stripped_jungle_wood" => Some(BlockKind::StrippedJungleWood), + "oxeye_daisy" => Some(BlockKind::OxeyeDaisy), + "pink_candle" => Some(BlockKind::PinkCandle), + "gray_concrete_powder" => Some(BlockKind::GrayConcretePowder), + "deepslate_emerald_ore" => Some(BlockKind::DeepslateEmeraldOre), + "medium_amethyst_bud" => Some(BlockKind::MediumAmethystBud), + "lime_bed" => Some(BlockKind::LimeBed), + "green_carpet" => Some(BlockKind::GreenCarpet), + "blue_concrete_powder" => Some(BlockKind::BlueConcretePowder), + "birch_door" => Some(BlockKind::BirchDoor), + "deepslate_lapis_ore" => Some(BlockKind::DeepslateLapisOre), + "waxed_oxidized_cut_copper" => Some(BlockKind::WaxedOxidizedCutCopper), + "deepslate_tiles" => Some(BlockKind::DeepslateTiles), + "sandstone_slab" => Some(BlockKind::SandstoneSlab), + "player_wall_head" => Some(BlockKind::PlayerWallHead), + "iron_ore" => Some(BlockKind::IronOre), + "pink_glazed_terracotta" => Some(BlockKind::PinkGlazedTerracotta), + "mossy_cobblestone_wall" => Some(BlockKind::MossyCobblestoneWall), + "lectern" => Some(BlockKind::Lectern), + "obsidian" => Some(BlockKind::Obsidian), + "blue_shulker_box" => Some(BlockKind::BlueShulkerBox), + "fletching_table" => Some(BlockKind::FletchingTable), + "stripped_dark_oak_log" => Some(BlockKind::StrippedDarkOakLog), + "piston" => Some(BlockKind::Piston), + "prismarine_brick_stairs" => Some(BlockKind::PrismarineBrickStairs), + "stripped_spruce_log" => Some(BlockKind::StrippedSpruceLog), + "weathered_cut_copper" => Some(BlockKind::WeatheredCutCopper), + "tripwire_hook" => Some(BlockKind::TripwireHook), + "acacia_slab" => Some(BlockKind::AcaciaSlab), + "dropper" => Some(BlockKind::Dropper), + "powder_snow" => Some(BlockKind::PowderSnow), + "green_concrete_powder" => Some(BlockKind::GreenConcretePowder), + "copper_ore" => Some(BlockKind::CopperOre), + "hanging_roots" => Some(BlockKind::HangingRoots), + "brown_wall_banner" => Some(BlockKind::BrownWallBanner), + "yellow_candle" => Some(BlockKind::YellowCandle), + "potted_red_tulip" => Some(BlockKind::PottedRedTulip), + "iron_bars" => Some(BlockKind::IronBars), + "warped_sign" => Some(BlockKind::WarpedSign), + "deepslate_coal_ore" => Some(BlockKind::DeepslateCoalOre), + "brain_coral_block" => Some(BlockKind::BrainCoralBlock), + "cobblestone_wall" => Some(BlockKind::CobblestoneWall), + "quartz_block" => Some(BlockKind::QuartzBlock), + "dead_brain_coral_fan" => Some(BlockKind::DeadBrainCoralFan), + "polished_granite_stairs" => Some(BlockKind::PolishedGraniteStairs), + "potted_fern" => Some(BlockKind::PottedFern), + "cut_copper_slab" => Some(BlockKind::CutCopperSlab), + "sandstone_wall" => Some(BlockKind::SandstoneWall), + "dead_tube_coral_fan" => Some(BlockKind::DeadTubeCoralFan), + "candle_cake" => Some(BlockKind::CandleCake), + "attached_melon_stem" => Some(BlockKind::AttachedMelonStem), + "smooth_red_sandstone_stairs" => Some(BlockKind::SmoothRedSandstoneStairs), + "acacia_leaves" => Some(BlockKind::AcaciaLeaves), + "damaged_anvil" => Some(BlockKind::DamagedAnvil), + "end_stone" => Some(BlockKind::EndStone), + "crimson_trapdoor" => Some(BlockKind::CrimsonTrapdoor), + "waxed_exposed_cut_copper_slab" => Some(BlockKind::WaxedExposedCutCopperSlab), + "gravel" => Some(BlockKind::Gravel), + "orange_terracotta" => Some(BlockKind::OrangeTerracotta), + "copper_block" => Some(BlockKind::CopperBlock), + "blast_furnace" => Some(BlockKind::BlastFurnace), + "yellow_stained_glass" => Some(BlockKind::YellowStainedGlass), + "gray_shulker_box" => Some(BlockKind::GrayShulkerBox), + "potted_oak_sapling" => Some(BlockKind::PottedOakSapling), + "birch_button" => Some(BlockKind::BirchButton), + "scaffolding" => Some(BlockKind::Scaffolding), + "torch" => Some(BlockKind::Torch), + "magenta_stained_glass_pane" => Some(BlockKind::MagentaStainedGlassPane), + "light_gray_carpet" => Some(BlockKind::LightGrayCarpet), + "dead_horn_coral_wall_fan" => Some(BlockKind::DeadHornCoralWallFan), + "large_amethyst_bud" => Some(BlockKind::LargeAmethystBud), + "acacia_door" => Some(BlockKind::AcaciaDoor), + "jukebox" => Some(BlockKind::Jukebox), + "oak_fence" => Some(BlockKind::OakFence), + "magenta_banner" => Some(BlockKind::MagentaBanner), + "rail" => Some(BlockKind::Rail), + "frosted_ice" => Some(BlockKind::FrostedIce), + "exposed_cut_copper_stairs" => Some(BlockKind::ExposedCutCopperStairs), + "player_head" => Some(BlockKind::PlayerHead), + "purple_bed" => Some(BlockKind::PurpleBed), + "crimson_stairs" => Some(BlockKind::CrimsonStairs), + "dark_oak_trapdoor" => Some(BlockKind::DarkOakTrapdoor), + "brain_coral_wall_fan" => Some(BlockKind::BrainCoralWallFan), + "dark_oak_slab" => Some(BlockKind::DarkOakSlab), + "dragon_head" => Some(BlockKind::DragonHead), + "warped_fence_gate" => Some(BlockKind::WarpedFenceGate), + "waxed_weathered_cut_copper" => Some(BlockKind::WaxedWeatheredCutCopper), + "smooth_basalt" => Some(BlockKind::SmoothBasalt), + "dirt_path" => Some(BlockKind::DirtPath), + "barrier" => Some(BlockKind::Barrier), + "end_stone_brick_stairs" => Some(BlockKind::EndStoneBrickStairs), + "stone_brick_wall" => Some(BlockKind::StoneBrickWall), + "end_rod" => Some(BlockKind::EndRod), + "powder_snow_cauldron" => Some(BlockKind::PowderSnowCauldron), + "oak_slab" => Some(BlockKind::OakSlab), + "gray_glazed_terracotta" => Some(BlockKind::GrayGlazedTerracotta), + "wall_torch" => Some(BlockKind::WallTorch), + "honeycomb_block" => Some(BlockKind::HoneycombBlock), + "white_wall_banner" => Some(BlockKind::WhiteWallBanner), + "dead_tube_coral_block" => Some(BlockKind::DeadTubeCoralBlock), + "structure_block" => Some(BlockKind::StructureBlock), + "deepslate_iron_ore" => Some(BlockKind::DeepslateIronOre), + "crimson_wall_sign" => Some(BlockKind::CrimsonWallSign), + "dandelion" => Some(BlockKind::Dandelion), + "dirt" => Some(BlockKind::Dirt), + "brown_banner" => Some(BlockKind::BrownBanner), + "cobbled_deepslate_slab" => Some(BlockKind::CobbledDeepslateSlab), + "orange_candle" => Some(BlockKind::OrangeCandle), + "blue_carpet" => Some(BlockKind::BlueCarpet), + "purple_concrete" => Some(BlockKind::PurpleConcrete), + "dead_bush" => Some(BlockKind::DeadBush), + "spruce_pressure_plate" => Some(BlockKind::SprucePressurePlate), + "lime_carpet" => Some(BlockKind::LimeCarpet), + "detector_rail" => Some(BlockKind::DetectorRail), + "void_air" => Some(BlockKind::VoidAir), + "netherite_block" => Some(BlockKind::NetheriteBlock), + "birch_trapdoor" => Some(BlockKind::BirchTrapdoor), + "enchanting_table" => Some(BlockKind::EnchantingTable), + "horn_coral" => Some(BlockKind::HornCoral), + "yellow_wall_banner" => Some(BlockKind::YellowWallBanner), + "grass_block" => Some(BlockKind::GrassBlock), + "stripped_crimson_stem" => Some(BlockKind::StrippedCrimsonStem), + "black_concrete_powder" => Some(BlockKind::BlackConcretePowder), + "deepslate_redstone_ore" => Some(BlockKind::DeepslateRedstoneOre), + "black_stained_glass" => Some(BlockKind::BlackStainedGlass), + "budding_amethyst" => Some(BlockKind::BuddingAmethyst), + "basalt" => Some(BlockKind::Basalt), + "red_nether_brick_slab" => Some(BlockKind::RedNetherBrickSlab), + "polished_diorite" => Some(BlockKind::PolishedDiorite), + "blue_banner" => Some(BlockKind::BlueBanner), + "tripwire" => Some(BlockKind::Tripwire), + "sea_lantern" => Some(BlockKind::SeaLantern), + "nether_brick_slab" => Some(BlockKind::NetherBrickSlab), + "brick_stairs" => Some(BlockKind::BrickStairs), + "activator_rail" => Some(BlockKind::ActivatorRail), + "dark_oak_fence_gate" => Some(BlockKind::DarkOakFenceGate), + "waxed_exposed_cut_copper" => Some(BlockKind::WaxedExposedCutCopper), + "furnace" => Some(BlockKind::Furnace), + "tube_coral_wall_fan" => Some(BlockKind::TubeCoralWallFan), + "glowstone" => Some(BlockKind::Glowstone), + "birch_slab" => Some(BlockKind::BirchSlab), + "red_stained_glass_pane" => Some(BlockKind::RedStainedGlassPane), + "deepslate" => Some(BlockKind::Deepslate), + "deepslate_tile_wall" => Some(BlockKind::DeepslateTileWall), + "crimson_planks" => Some(BlockKind::CrimsonPlanks), + "horn_coral_wall_fan" => Some(BlockKind::HornCoralWallFan), + "brain_coral_fan" => Some(BlockKind::BrainCoralFan), + "diorite_wall" => Some(BlockKind::DioriteWall), + "nether_sprouts" => Some(BlockKind::NetherSprouts), + "orange_candle_cake" => Some(BlockKind::OrangeCandleCake), + "cave_vines_plant" => Some(BlockKind::CaveVinesPlant), + "infested_mossy_stone_bricks" => Some(BlockKind::InfestedMossyStoneBricks), + "smooth_quartz" => Some(BlockKind::SmoothQuartz), + "candle" => Some(BlockKind::Candle), + "white_glazed_terracotta" => Some(BlockKind::WhiteGlazedTerracotta), + "smooth_sandstone" => Some(BlockKind::SmoothSandstone), + "composter" => Some(BlockKind::Composter), + "chipped_anvil" => Some(BlockKind::ChippedAnvil), + "light_weighted_pressure_plate" => Some(BlockKind::LightWeightedPressurePlate), + "lava_cauldron" => Some(BlockKind::LavaCauldron), + "sand" => Some(BlockKind::Sand), + "stripped_birch_wood" => Some(BlockKind::StrippedBirchWood), + "light_blue_stained_glass_pane" => Some(BlockKind::LightBlueStainedGlassPane), + "note_block" => Some(BlockKind::NoteBlock), + "light_gray_banner" => Some(BlockKind::LightGrayBanner), + "lapis_block" => Some(BlockKind::LapisBlock), + "cyan_stained_glass" => Some(BlockKind::CyanStainedGlass), + "dragon_wall_head" => Some(BlockKind::DragonWallHead), + "wet_sponge" => Some(BlockKind::WetSponge), + "stone_brick_slab" => Some(BlockKind::StoneBrickSlab), + "polished_granite_slab" => Some(BlockKind::PolishedGraniteSlab), + "lodestone" => Some(BlockKind::Lodestone), + "cobbled_deepslate_stairs" => Some(BlockKind::CobbledDeepslateStairs), + "birch_sapling" => Some(BlockKind::BirchSapling), + "wheat" => Some(BlockKind::Wheat), + "large_fern" => Some(BlockKind::LargeFern), + "chiseled_deepslate" => Some(BlockKind::ChiseledDeepslate), + "stripped_spruce_wood" => Some(BlockKind::StrippedSpruceWood), + "brown_stained_glass" => Some(BlockKind::BrownStainedGlass), + "deepslate_brick_slab" => Some(BlockKind::DeepslateBrickSlab), + "cobblestone_stairs" => Some(BlockKind::CobblestoneStairs), + "snow_block" => Some(BlockKind::SnowBlock), + "campfire" => Some(BlockKind::Campfire), + "polished_blackstone_stairs" => Some(BlockKind::PolishedBlackstoneStairs), + "rose_bush" => Some(BlockKind::RoseBush), + "light" => Some(BlockKind::Light), + "lantern" => Some(BlockKind::Lantern), + "cyan_bed" => Some(BlockKind::CyanBed), + "dark_oak_pressure_plate" => Some(BlockKind::DarkOakPressurePlate), + "crimson_fungus" => Some(BlockKind::CrimsonFungus), + "infested_cobblestone" => Some(BlockKind::InfestedCobblestone), + "dead_fire_coral_block" => Some(BlockKind::DeadFireCoralBlock), + "potted_acacia_sapling" => Some(BlockKind::PottedAcaciaSapling), + "light_blue_glazed_terracotta" => Some(BlockKind::LightBlueGlazedTerracotta), + "dead_brain_coral_block" => Some(BlockKind::DeadBrainCoralBlock), + "nether_portal" => Some(BlockKind::NetherPortal), + "andesite_stairs" => Some(BlockKind::AndesiteStairs), + "vine" => Some(BlockKind::Vine), + "kelp" => Some(BlockKind::Kelp), + "deepslate_gold_ore" => Some(BlockKind::DeepslateGoldOre), + "warped_trapdoor" => Some(BlockKind::WarpedTrapdoor), + "jungle_fence" => Some(BlockKind::JungleFence), + "dead_horn_coral" => Some(BlockKind::DeadHornCoral), + "mycelium" => Some(BlockKind::Mycelium), + "black_glazed_terracotta" => Some(BlockKind::BlackGlazedTerracotta), + "deepslate_brick_wall" => Some(BlockKind::DeepslateBrickWall), + "soul_torch" => Some(BlockKind::SoulTorch), + "jungle_fence_gate" => Some(BlockKind::JungleFenceGate), + "wither_skeleton_wall_skull" => Some(BlockKind::WitherSkeletonWallSkull), + "polished_blackstone_wall" => Some(BlockKind::PolishedBlackstoneWall), + "daylight_detector" => Some(BlockKind::DaylightDetector), + "lilac" => Some(BlockKind::Lilac), + "chiseled_stone_bricks" => Some(BlockKind::ChiseledStoneBricks), + "soul_lantern" => Some(BlockKind::SoulLantern), + "potted_crimson_roots" => Some(BlockKind::PottedCrimsonRoots), + "stripped_birch_log" => Some(BlockKind::StrippedBirchLog), + _ => None, + } + } +} +impl BlockKind { + #[doc = "Returns the `namespaced_id` property of this `BlockKind`."] + #[inline] + pub fn namespaced_id(&self) -> &'static str { + match self { + BlockKind::Cobweb => "minecraft:cobweb", + BlockKind::GoldBlock => "minecraft:gold_block", + BlockKind::LightGrayConcrete => "minecraft:light_gray_concrete", + BlockKind::BirchLeaves => "minecraft:birch_leaves", + BlockKind::PurpleBed => "minecraft:purple_bed", + BlockKind::AcaciaButton => "minecraft:acacia_button", + BlockKind::RedGlazedTerracotta => "minecraft:red_glazed_terracotta", + BlockKind::DeadBubbleCoralWallFan => "minecraft:dead_bubble_coral_wall_fan", + BlockKind::LimeShulkerBox => "minecraft:lime_shulker_box", + BlockKind::FrostedIce => "minecraft:frosted_ice", + BlockKind::LavaCauldron => "minecraft:lava_cauldron", + BlockKind::StrippedSpruceLog => "minecraft:stripped_spruce_log", + BlockKind::LightBlueConcrete => "minecraft:light_blue_concrete", + BlockKind::SoulSand => "minecraft:soul_sand", + BlockKind::NetherPortal => "minecraft:nether_portal", + BlockKind::PottedCrimsonRoots => "minecraft:potted_crimson_roots", + BlockKind::DeadTubeCoralWallFan => "minecraft:dead_tube_coral_wall_fan", + BlockKind::OakStairs => "minecraft:oak_stairs", + BlockKind::DeadBrainCoralWallFan => "minecraft:dead_brain_coral_wall_fan", + BlockKind::CrackedNetherBricks => "minecraft:cracked_nether_bricks", + BlockKind::Cobblestone => "minecraft:cobblestone", + BlockKind::StrippedBirchLog => "minecraft:stripped_birch_log", + BlockKind::PowderSnowCauldron => "minecraft:powder_snow_cauldron", + BlockKind::PottedAcaciaSapling => "minecraft:potted_acacia_sapling", + BlockKind::GreenCandle => "minecraft:green_candle", + BlockKind::WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", + BlockKind::DarkOakLog => "minecraft:dark_oak_log", + BlockKind::OakLeaves => "minecraft:oak_leaves", + BlockKind::SmoothQuartzStairs => "minecraft:smooth_quartz_stairs", + BlockKind::BeeNest => "minecraft:bee_nest", + BlockKind::DeadFireCoral => "minecraft:dead_fire_coral", + BlockKind::WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", + BlockKind::RepeatingCommandBlock => "minecraft:repeating_command_block", + BlockKind::LightBlueGlazedTerracotta => "minecraft:light_blue_glazed_terracotta", + BlockKind::AncientDebris => "minecraft:ancient_debris", + BlockKind::GreenStainedGlass => "minecraft:green_stained_glass", + BlockKind::PurpurSlab => "minecraft:purpur_slab", + BlockKind::OrangeConcretePowder => "minecraft:orange_concrete_powder", + BlockKind::Andesite => "minecraft:andesite", + BlockKind::RedTerracotta => "minecraft:red_terracotta", + BlockKind::CaveAir => "minecraft:cave_air", + BlockKind::EndStoneBrickWall => "minecraft:end_stone_brick_wall", + BlockKind::RedConcrete => "minecraft:red_concrete", + BlockKind::HoneycombBlock => "minecraft:honeycomb_block", + BlockKind::BirchPressurePlate => "minecraft:birch_pressure_plate", + BlockKind::TallGrass => "minecraft:tall_grass", + BlockKind::GreenWool => "minecraft:green_wool", + BlockKind::PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", + BlockKind::WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", + BlockKind::Grindstone => "minecraft:grindstone", + BlockKind::BlackStainedGlassPane => "minecraft:black_stained_glass_pane", + BlockKind::GrayShulkerBox => "minecraft:gray_shulker_box", + BlockKind::PottedFern => "minecraft:potted_fern", + BlockKind::CrimsonButton => "minecraft:crimson_button", + BlockKind::StrippedSpruceWood => "minecraft:stripped_spruce_wood", + BlockKind::GlassPane => "minecraft:glass_pane", + BlockKind::Target => "minecraft:target", + BlockKind::JungleButton => "minecraft:jungle_button", + BlockKind::SpruceFenceGate => "minecraft:spruce_fence_gate", + BlockKind::LightBlueWool => "minecraft:light_blue_wool", + BlockKind::CyanBed => "minecraft:cyan_bed", + BlockKind::WarpedWartBlock => "minecraft:warped_wart_block", + BlockKind::PottedFloweringAzaleaBush => "minecraft:potted_flowering_azalea_bush", + BlockKind::MossyCobblestone => "minecraft:mossy_cobblestone", + BlockKind::PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", + BlockKind::TubeCoral => "minecraft:tube_coral", + BlockKind::ChorusPlant => "minecraft:chorus_plant", + BlockKind::CyanWallBanner => "minecraft:cyan_wall_banner", + BlockKind::Composter => "minecraft:composter", + BlockKind::GraniteWall => "minecraft:granite_wall", + BlockKind::Light => "minecraft:light", + BlockKind::Bamboo => "minecraft:bamboo", + BlockKind::NetherBricks => "minecraft:nether_bricks", + BlockKind::Terracotta => "minecraft:terracotta", + BlockKind::GraniteSlab => "minecraft:granite_slab", + BlockKind::WhiteStainedGlassPane => "minecraft:white_stained_glass_pane", + BlockKind::RedMushroom => "minecraft:red_mushroom", + BlockKind::CrackedStoneBricks => "minecraft:cracked_stone_bricks", + BlockKind::LightBlueConcretePowder => "minecraft:light_blue_concrete_powder", + BlockKind::Cake => "minecraft:cake", + BlockKind::PottedOrangeTulip => "minecraft:potted_orange_tulip", + BlockKind::PinkTulip => "minecraft:pink_tulip", + BlockKind::StonePressurePlate => "minecraft:stone_pressure_plate", + BlockKind::StrippedWarpedHyphae => "minecraft:stripped_warped_hyphae", + BlockKind::MagentaShulkerBox => "minecraft:magenta_shulker_box", + BlockKind::BlackstoneStairs => "minecraft:blackstone_stairs", + BlockKind::BrainCoralWallFan => "minecraft:brain_coral_wall_fan", + BlockKind::DeepslateBricks => "minecraft:deepslate_bricks", + BlockKind::FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", + BlockKind::CyanBanner => "minecraft:cyan_banner", + BlockKind::SoulTorch => "minecraft:soul_torch", + BlockKind::PrismarineWall => "minecraft:prismarine_wall", + BlockKind::NetherBrickWall => "minecraft:nether_brick_wall", + BlockKind::Lilac => "minecraft:lilac", + BlockKind::Rail => "minecraft:rail", + BlockKind::Shroomlight => "minecraft:shroomlight", + BlockKind::PinkCarpet => "minecraft:pink_carpet", + BlockKind::StrippedCrimsonStem => "minecraft:stripped_crimson_stem", + BlockKind::AndesiteSlab => "minecraft:andesite_slab", + BlockKind::BrownCandle => "minecraft:brown_candle", + BlockKind::RedSandstone => "minecraft:red_sandstone", + BlockKind::RawGoldBlock => "minecraft:raw_gold_block", + BlockKind::PolishedDeepslateWall => "minecraft:polished_deepslate_wall", + BlockKind::BlackCarpet => "minecraft:black_carpet", + BlockKind::InfestedStoneBricks => "minecraft:infested_stone_bricks", + BlockKind::BirchButton => "minecraft:birch_button", + BlockKind::LightGrayTerracotta => "minecraft:light_gray_terracotta", + BlockKind::AcaciaLeaves => "minecraft:acacia_leaves", + BlockKind::EndStone => "minecraft:end_stone", + BlockKind::BrownCarpet => "minecraft:brown_carpet", + BlockKind::CrimsonPlanks => "minecraft:crimson_planks", + BlockKind::AcaciaFenceGate => "minecraft:acacia_fence_gate", + BlockKind::DetectorRail => "minecraft:detector_rail", + BlockKind::WarpedPressurePlate => "minecraft:warped_pressure_plate", + BlockKind::CutCopperStairs => "minecraft:cut_copper_stairs", + BlockKind::OxidizedCopper => "minecraft:oxidized_copper", + BlockKind::LightBlueWallBanner => "minecraft:light_blue_wall_banner", + BlockKind::OakLog => "minecraft:oak_log", + BlockKind::LimeCandle => "minecraft:lime_candle", + BlockKind::CrimsonNylium => "minecraft:crimson_nylium", + BlockKind::BlackStainedGlass => "minecraft:black_stained_glass", + BlockKind::ExposedCutCopper => "minecraft:exposed_cut_copper", + BlockKind::CrimsonSlab => "minecraft:crimson_slab", + BlockKind::SoulSoil => "minecraft:soul_soil", + BlockKind::WaxedExposedCopper => "minecraft:waxed_exposed_copper", + BlockKind::YellowStainedGlass => "minecraft:yellow_stained_glass", + BlockKind::BlackCandle => "minecraft:black_candle", + BlockKind::LimeBed => "minecraft:lime_bed", + BlockKind::DriedKelpBlock => "minecraft:dried_kelp_block", + BlockKind::OakPlanks => "minecraft:oak_planks", + BlockKind::GrayBanner => "minecraft:gray_banner", + BlockKind::PinkShulkerBox => "minecraft:pink_shulker_box", + BlockKind::ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", + BlockKind::RedBed => "minecraft:red_bed", + BlockKind::AcaciaPressurePlate => "minecraft:acacia_pressure_plate", + BlockKind::BrownWool => "minecraft:brown_wool", + BlockKind::LightBlueStainedGlass => "minecraft:light_blue_stained_glass", + BlockKind::MagentaTerracotta => "minecraft:magenta_terracotta", + BlockKind::BlueWallBanner => "minecraft:blue_wall_banner", + BlockKind::OrangeCandle => "minecraft:orange_candle", + BlockKind::PackedIce => "minecraft:packed_ice", + BlockKind::OakPressurePlate => "minecraft:oak_pressure_plate", + BlockKind::Ice => "minecraft:ice", + BlockKind::RedCandle => "minecraft:red_candle", + BlockKind::StrippedOakWood => "minecraft:stripped_oak_wood", + BlockKind::GrayWool => "minecraft:gray_wool", + BlockKind::PolishedDioriteStairs => "minecraft:polished_diorite_stairs", + BlockKind::BlueIce => "minecraft:blue_ice", + BlockKind::YellowConcretePowder => "minecraft:yellow_concrete_powder", + BlockKind::FireCoralBlock => "minecraft:fire_coral_block", + BlockKind::StrippedWarpedStem => "minecraft:stripped_warped_stem", + BlockKind::PinkWallBanner => "minecraft:pink_wall_banner", + BlockKind::BrownGlazedTerracotta => "minecraft:brown_glazed_terracotta", + BlockKind::Azalea => "minecraft:azalea", + BlockKind::PolishedBasalt => "minecraft:polished_basalt", + BlockKind::WhiteCarpet => "minecraft:white_carpet", + BlockKind::WhiteShulkerBox => "minecraft:white_shulker_box", + BlockKind::MagentaGlazedTerracotta => "minecraft:magenta_glazed_terracotta", + BlockKind::PottedAllium => "minecraft:potted_allium", + BlockKind::SoulFire => "minecraft:soul_fire", + BlockKind::MagentaBanner => "minecraft:magenta_banner", + BlockKind::RoseBush => "minecraft:rose_bush", + BlockKind::PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", + BlockKind::ActivatorRail => "minecraft:activator_rail", + BlockKind::SoulLantern => "minecraft:soul_lantern", + BlockKind::PottedAzureBluet => "minecraft:potted_azure_bluet", + BlockKind::LightGrayWool => "minecraft:light_gray_wool", + BlockKind::PolishedBlackstoneBrickStairs => { + "minecraft:polished_blackstone_brick_stairs" } - BlockKind::CyanTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + BlockKind::Loom => "minecraft:loom", + BlockKind::RedSand => "minecraft:red_sand", + BlockKind::Blackstone => "minecraft:blackstone", + BlockKind::MagentaConcretePowder => "minecraft:magenta_concrete_powder", + BlockKind::YellowCandle => "minecraft:yellow_candle", + BlockKind::OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", + BlockKind::DarkOakLeaves => "minecraft:dark_oak_leaves", + BlockKind::Tnt => "minecraft:tnt", + BlockKind::AmethystCluster => "minecraft:amethyst_cluster", + BlockKind::FireCoral => "minecraft:fire_coral", + BlockKind::Beehive => "minecraft:beehive", + BlockKind::PrismarineBrickStairs => "minecraft:prismarine_brick_stairs", + BlockKind::BlueWool => "minecraft:blue_wool", + BlockKind::Glass => "minecraft:glass", + BlockKind::LightGrayStainedGlass => "minecraft:light_gray_stained_glass", + BlockKind::RedTulip => "minecraft:red_tulip", + BlockKind::BlackWallBanner => "minecraft:black_wall_banner", + BlockKind::LightningRod => "minecraft:lightning_rod", + BlockKind::PinkCandle => "minecraft:pink_candle", + BlockKind::CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", + BlockKind::GrayGlazedTerracotta => "minecraft:gray_glazed_terracotta", + BlockKind::MossyCobblestoneStairs => "minecraft:mossy_cobblestone_stairs", + BlockKind::LapisBlock => "minecraft:lapis_block", + BlockKind::GreenCandleCake => "minecraft:green_candle_cake", + BlockKind::SprucePlanks => "minecraft:spruce_planks", + BlockKind::OrangeShulkerBox => "minecraft:orange_shulker_box", + BlockKind::NetherSprouts => "minecraft:nether_sprouts", + BlockKind::InfestedCrackedStoneBricks => "minecraft:infested_cracked_stone_bricks", + BlockKind::LightGrayCarpet => "minecraft:light_gray_carpet", + BlockKind::ChiseledSandstone => "minecraft:chiseled_sandstone", + BlockKind::SkeletonSkull => "minecraft:skeleton_skull", + BlockKind::PowderSnow => "minecraft:powder_snow", + BlockKind::Vine => "minecraft:vine", + BlockKind::FireCoralFan => "minecraft:fire_coral_fan", + BlockKind::SculkSensor => "minecraft:sculk_sensor", + BlockKind::PottedCrimsonFungus => "minecraft:potted_crimson_fungus", + BlockKind::Repeater => "minecraft:repeater", + BlockKind::PottedBamboo => "minecraft:potted_bamboo", + BlockKind::RedMushroomBlock => "minecraft:red_mushroom_block", + BlockKind::BirchLog => "minecraft:birch_log", + BlockKind::SmallDripleaf => "minecraft:small_dripleaf", + BlockKind::MossyStoneBrickWall => "minecraft:mossy_stone_brick_wall", + BlockKind::CaveVinesPlant => "minecraft:cave_vines_plant", + BlockKind::Grass => "minecraft:grass", + BlockKind::LimeWallBanner => "minecraft:lime_wall_banner", + BlockKind::AcaciaTrapdoor => "minecraft:acacia_trapdoor", + BlockKind::TwistingVines => "minecraft:twisting_vines", + BlockKind::DragonHead => "minecraft:dragon_head", + BlockKind::PistonHead => "minecraft:piston_head", + BlockKind::Sandstone => "minecraft:sandstone", + BlockKind::PurpleBanner => "minecraft:purple_banner", + BlockKind::RawCopperBlock => "minecraft:raw_copper_block", + BlockKind::OakDoor => "minecraft:oak_door", + BlockKind::OrangeCarpet => "minecraft:orange_carpet", + BlockKind::OakSlab => "minecraft:oak_slab", + BlockKind::RedCarpet => "minecraft:red_carpet", + BlockKind::WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", + BlockKind::DeadBush => "minecraft:dead_bush", + BlockKind::OrangeBanner => "minecraft:orange_banner", + BlockKind::Chest => "minecraft:chest", + BlockKind::ChorusFlower => "minecraft:chorus_flower", + BlockKind::PolishedAndesite => "minecraft:polished_andesite", + BlockKind::StrippedOakLog => "minecraft:stripped_oak_log", + BlockKind::RedstoneOre => "minecraft:redstone_ore", + BlockKind::SpruceStairs => "minecraft:spruce_stairs", + BlockKind::Fire => "minecraft:fire", + BlockKind::CyanCarpet => "minecraft:cyan_carpet", + BlockKind::BrownTerracotta => "minecraft:brown_terracotta", + BlockKind::BrownStainedGlass => "minecraft:brown_stained_glass", + BlockKind::DeepslateLapisOre => "minecraft:deepslate_lapis_ore", + BlockKind::QuartzBricks => "minecraft:quartz_bricks", + BlockKind::BlackstoneSlab => "minecraft:blackstone_slab", + BlockKind::WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", + BlockKind::SeaPickle => "minecraft:sea_pickle", + BlockKind::SpruceSapling => "minecraft:spruce_sapling", + BlockKind::DioriteStairs => "minecraft:diorite_stairs", + BlockKind::CopperBlock => "minecraft:copper_block", + BlockKind::DeadHornCoralFan => "minecraft:dead_horn_coral_fan", + BlockKind::WhiteBanner => "minecraft:white_banner", + BlockKind::PottedBrownMushroom => "minecraft:potted_brown_mushroom", + BlockKind::CoalBlock => "minecraft:coal_block", + BlockKind::BlackShulkerBox => "minecraft:black_shulker_box", + BlockKind::CyanCandleCake => "minecraft:cyan_candle_cake", + BlockKind::RedstoneLamp => "minecraft:redstone_lamp", + BlockKind::Tripwire => "minecraft:tripwire", + BlockKind::PottedDeadBush => "minecraft:potted_dead_bush", + BlockKind::NetherQuartzOre => "minecraft:nether_quartz_ore", + BlockKind::PoweredRail => "minecraft:powered_rail", + BlockKind::ZombieHead => "minecraft:zombie_head", + BlockKind::DeepslateBrickWall => "minecraft:deepslate_brick_wall", + BlockKind::DeepslateIronOre => "minecraft:deepslate_iron_ore", + BlockKind::HornCoralWallFan => "minecraft:horn_coral_wall_fan", + BlockKind::Bookshelf => "minecraft:bookshelf", + BlockKind::WarpedStem => "minecraft:warped_stem", + BlockKind::Sponge => "minecraft:sponge", + BlockKind::MelonStem => "minecraft:melon_stem", + BlockKind::JungleSign => "minecraft:jungle_sign", + BlockKind::LargeAmethystBud => "minecraft:large_amethyst_bud", + BlockKind::CyanShulkerBox => "minecraft:cyan_shulker_box", + BlockKind::PurpleTerracotta => "minecraft:purple_terracotta", + BlockKind::CutCopperSlab => "minecraft:cut_copper_slab", + BlockKind::IronDoor => "minecraft:iron_door", + BlockKind::StrippedJungleWood => "minecraft:stripped_jungle_wood", + BlockKind::GrayConcrete => "minecraft:gray_concrete", + BlockKind::PolishedDeepslate => "minecraft:polished_deepslate", + BlockKind::LimeCandleCake => "minecraft:lime_candle_cake", + BlockKind::CreeperHead => "minecraft:creeper_head", + BlockKind::DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", + BlockKind::QuartzStairs => "minecraft:quartz_stairs", + BlockKind::LimeCarpet => "minecraft:lime_carpet", + BlockKind::SmoothSandstoneSlab => "minecraft:smooth_sandstone_slab", + BlockKind::DeadBrainCoralFan => "minecraft:dead_brain_coral_fan", + BlockKind::ChippedAnvil => "minecraft:chipped_anvil", + BlockKind::PottedOxeyeDaisy => "minecraft:potted_oxeye_daisy", + BlockKind::NetherGoldOre => "minecraft:nether_gold_ore", + BlockKind::BrickSlab => "minecraft:brick_slab", + BlockKind::PolishedBlackstoneButton => "minecraft:polished_blackstone_button", + BlockKind::AttachedMelonStem => "minecraft:attached_melon_stem", + BlockKind::BigDripleaf => "minecraft:big_dripleaf", + BlockKind::PottedCactus => "minecraft:potted_cactus", + BlockKind::IronTrapdoor => "minecraft:iron_trapdoor", + BlockKind::JackOLantern => "minecraft:jack_o_lantern", + BlockKind::BrownStainedGlassPane => "minecraft:brown_stained_glass_pane", + BlockKind::CutSandstoneSlab => "minecraft:cut_sandstone_slab", + BlockKind::PottedRedMushroom => "minecraft:potted_red_mushroom", + BlockKind::WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", + BlockKind::GrassBlock => "minecraft:grass_block", + BlockKind::Deepslate => "minecraft:deepslate", + BlockKind::BirchSign => "minecraft:birch_sign", + BlockKind::DarkPrismarineStairs => "minecraft:dark_prismarine_stairs", + BlockKind::LimeConcrete => "minecraft:lime_concrete", + BlockKind::OakWallSign => "minecraft:oak_wall_sign", + BlockKind::VoidAir => "minecraft:void_air", + BlockKind::WitherSkeletonSkull => "minecraft:wither_skeleton_skull", + BlockKind::DioriteWall => "minecraft:diorite_wall", + BlockKind::WarpedFungus => "minecraft:warped_fungus", + BlockKind::WeepingVines => "minecraft:weeping_vines", + BlockKind::AndesiteStairs => "minecraft:andesite_stairs", + BlockKind::InfestedDeepslate => "minecraft:infested_deepslate", + BlockKind::ChiseledStoneBricks => "minecraft:chiseled_stone_bricks", + BlockKind::YellowTerracotta => "minecraft:yellow_terracotta", + BlockKind::LightBlueStainedGlassPane => "minecraft:light_blue_stained_glass_pane", + BlockKind::CobblestoneWall => "minecraft:cobblestone_wall", + BlockKind::AttachedPumpkinStem => "minecraft:attached_pumpkin_stem", + BlockKind::LilyPad => "minecraft:lily_pad", + BlockKind::Fern => "minecraft:fern", + BlockKind::RawIronBlock => "minecraft:raw_iron_block", + BlockKind::StoneBrickSlab => "minecraft:stone_brick_slab", + BlockKind::WarpedNylium => "minecraft:warped_nylium", + BlockKind::JungleStairs => "minecraft:jungle_stairs", + BlockKind::YellowGlazedTerracotta => "minecraft:yellow_glazed_terracotta", + BlockKind::RedConcretePowder => "minecraft:red_concrete_powder", + BlockKind::LimeBanner => "minecraft:lime_banner", + BlockKind::Diorite => "minecraft:diorite", + BlockKind::LightBlueTerracotta => "minecraft:light_blue_terracotta", + BlockKind::BlueShulkerBox => "minecraft:blue_shulker_box", + BlockKind::PottedBirchSapling => "minecraft:potted_birch_sapling", + BlockKind::PrismarineBrickSlab => "minecraft:prismarine_brick_slab", + BlockKind::BlackBed => "minecraft:black_bed", + BlockKind::WarpedHyphae => "minecraft:warped_hyphae", + BlockKind::EndStoneBrickStairs => "minecraft:end_stone_brick_stairs", + BlockKind::Dandelion => "minecraft:dandelion", + BlockKind::Campfire => "minecraft:campfire", + BlockKind::Barrier => "minecraft:barrier", + BlockKind::GildedBlackstone => "minecraft:gilded_blackstone", + BlockKind::LimeGlazedTerracotta => "minecraft:lime_glazed_terracotta", + BlockKind::AcaciaWallSign => "minecraft:acacia_wall_sign", + BlockKind::ChainCommandBlock => "minecraft:chain_command_block", + BlockKind::CrackedPolishedBlackstoneBricks => { + "minecraft:cracked_polished_blackstone_bricks" } - BlockKind::PurpleTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + BlockKind::TubeCoralFan => "minecraft:tube_coral_fan", + BlockKind::OakFenceGate => "minecraft:oak_fence_gate", + BlockKind::DarkOakStairs => "minecraft:dark_oak_stairs", + BlockKind::DarkPrismarineSlab => "minecraft:dark_prismarine_slab", + BlockKind::PottedWarpedFungus => "minecraft:potted_warped_fungus", + BlockKind::MagentaWallBanner => "minecraft:magenta_wall_banner", + BlockKind::OrangeWool => "minecraft:orange_wool", + BlockKind::JunglePressurePlate => "minecraft:jungle_pressure_plate", + BlockKind::Beacon => "minecraft:beacon", + BlockKind::Allium => "minecraft:allium", + BlockKind::Basalt => "minecraft:basalt", + BlockKind::BlackWool => "minecraft:black_wool", + BlockKind::DamagedAnvil => "minecraft:damaged_anvil", + BlockKind::AcaciaSlab => "minecraft:acacia_slab", + BlockKind::WitherSkeletonWallSkull => "minecraft:wither_skeleton_wall_skull", + BlockKind::GreenTerracotta => "minecraft:green_terracotta", + BlockKind::BirchSapling => "minecraft:birch_sapling", + BlockKind::DirtPath => "minecraft:dirt_path", + BlockKind::Conduit => "minecraft:conduit", + BlockKind::BlueCandleCake => "minecraft:blue_candle_cake", + BlockKind::RootedDirt => "minecraft:rooted_dirt", + BlockKind::CyanTerracotta => "minecraft:cyan_terracotta", + BlockKind::RedSandstoneStairs => "minecraft:red_sandstone_stairs", + BlockKind::LightBlueCandleCake => "minecraft:light_blue_candle_cake", + BlockKind::WeatheredCopper => "minecraft:weathered_copper", + BlockKind::CobblestoneStairs => "minecraft:cobblestone_stairs", + BlockKind::SpruceWallSign => "minecraft:spruce_wall_sign", + BlockKind::PottedSpruceSapling => "minecraft:potted_spruce_sapling", + BlockKind::PottedDandelion => "minecraft:potted_dandelion", + BlockKind::SprucePressurePlate => "minecraft:spruce_pressure_plate", + BlockKind::Jigsaw => "minecraft:jigsaw", + BlockKind::Kelp => "minecraft:kelp", + BlockKind::DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block", + BlockKind::DeadBrainCoral => "minecraft:dead_brain_coral", + BlockKind::GrayWallBanner => "minecraft:gray_wall_banner", + BlockKind::PrismarineStairs => "minecraft:prismarine_stairs", + BlockKind::GreenConcretePowder => "minecraft:green_concrete_powder", + BlockKind::WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", + BlockKind::Piston => "minecraft:piston", + BlockKind::ChiseledQuartzBlock => "minecraft:chiseled_quartz_block", + BlockKind::Peony => "minecraft:peony", + BlockKind::CrimsonRoots => "minecraft:crimson_roots", + BlockKind::SpruceSign => "minecraft:spruce_sign", + BlockKind::DeadFireCoralWallFan => "minecraft:dead_fire_coral_wall_fan", + BlockKind::MagentaStainedGlass => "minecraft:magenta_stained_glass", + BlockKind::OxeyeDaisy => "minecraft:oxeye_daisy", + BlockKind::MagentaConcrete => "minecraft:magenta_concrete", + BlockKind::MushroomStem => "minecraft:mushroom_stem", + BlockKind::WaterCauldron => "minecraft:water_cauldron", + BlockKind::BlackConcrete => "minecraft:black_concrete", + BlockKind::MagmaBlock => "minecraft:magma_block", + BlockKind::HornCoralFan => "minecraft:horn_coral_fan", + BlockKind::BlueStainedGlassPane => "minecraft:blue_stained_glass_pane", + BlockKind::CrimsonStairs => "minecraft:crimson_stairs", + BlockKind::DragonEgg => "minecraft:dragon_egg", + BlockKind::PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", + BlockKind::PurpurPillar => "minecraft:purpur_pillar", + BlockKind::DeepslateGoldOre => "minecraft:deepslate_gold_ore", + BlockKind::StrippedAcaciaLog => "minecraft:stripped_acacia_log", + BlockKind::LimeStainedGlassPane => "minecraft:lime_stained_glass_pane", + BlockKind::BirchWood => "minecraft:birch_wood", + BlockKind::BlueCandle => "minecraft:blue_candle", + BlockKind::IronBars => "minecraft:iron_bars", + BlockKind::OrangeCandleCake => "minecraft:orange_candle_cake", + BlockKind::Stone => "minecraft:stone", + BlockKind::DarkOakButton => "minecraft:dark_oak_button", + BlockKind::NetherBrickStairs => "minecraft:nether_brick_stairs", + BlockKind::JungleWood => "minecraft:jungle_wood", + BlockKind::CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", + BlockKind::BoneBlock => "minecraft:bone_block", + BlockKind::MossBlock => "minecraft:moss_block", + BlockKind::BrownConcretePowder => "minecraft:brown_concrete_powder", + BlockKind::CreeperWallHead => "minecraft:creeper_wall_head", + BlockKind::Lantern => "minecraft:lantern", + BlockKind::BlueStainedGlass => "minecraft:blue_stained_glass", + BlockKind::WarpedStairs => "minecraft:warped_stairs", + BlockKind::BrewingStand => "minecraft:brewing_stand", + BlockKind::WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", + BlockKind::Obsidian => "minecraft:obsidian", + BlockKind::Chain => "minecraft:chain", + BlockKind::PinkWool => "minecraft:pink_wool", + BlockKind::MossyCobblestoneSlab => "minecraft:mossy_cobblestone_slab", + BlockKind::EndPortal => "minecraft:end_portal", + BlockKind::PrismarineBricks => "minecraft:prismarine_bricks", + BlockKind::BrownMushroomBlock => "minecraft:brown_mushroom_block", + BlockKind::DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", + BlockKind::BlackGlazedTerracotta => "minecraft:black_glazed_terracotta", + BlockKind::LightBlueBanner => "minecraft:light_blue_banner", + BlockKind::OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", + BlockKind::SmoothSandstone => "minecraft:smooth_sandstone", + BlockKind::PurpleShulkerBox => "minecraft:purple_shulker_box", + BlockKind::SoulCampfire => "minecraft:soul_campfire", + BlockKind::SkeletonWallSkull => "minecraft:skeleton_wall_skull", + BlockKind::DeepslateCopperOre => "minecraft:deepslate_copper_ore", + BlockKind::RedBanner => "minecraft:red_banner", + BlockKind::Smoker => "minecraft:smoker", + BlockKind::StoneButton => "minecraft:stone_button", + BlockKind::Podzol => "minecraft:podzol", + BlockKind::PurpleStainedGlassPane => "minecraft:purple_stained_glass_pane", + BlockKind::GrayCarpet => "minecraft:gray_carpet", + BlockKind::WarpedSign => "minecraft:warped_sign", + BlockKind::MagentaCandle => "minecraft:magenta_candle", + BlockKind::OrangeBed => "minecraft:orange_bed", + BlockKind::WarpedDoor => "minecraft:warped_door", + BlockKind::YellowBed => "minecraft:yellow_bed", + BlockKind::BlackstoneWall => "minecraft:blackstone_wall", + BlockKind::Carrots => "minecraft:carrots", + BlockKind::CommandBlock => "minecraft:command_block", + BlockKind::Clay => "minecraft:clay", + BlockKind::PurpleCandle => "minecraft:purple_candle", + BlockKind::WarpedFenceGate => "minecraft:warped_fence_gate", + BlockKind::SnowBlock => "minecraft:snow_block", + BlockKind::Seagrass => "minecraft:seagrass", + BlockKind::Tuff => "minecraft:tuff", + BlockKind::RedstoneTorch => "minecraft:redstone_torch", + BlockKind::PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", + BlockKind::WarpedButton => "minecraft:warped_button", + BlockKind::PurpleConcrete => "minecraft:purple_concrete", + BlockKind::LimeWool => "minecraft:lime_wool", + BlockKind::PetrifiedOakSlab => "minecraft:petrified_oak_slab", + BlockKind::IronBlock => "minecraft:iron_block", + BlockKind::YellowConcrete => "minecraft:yellow_concrete", + BlockKind::PolishedBlackstonePressurePlate => { + "minecraft:polished_blackstone_pressure_plate" } - BlockKind::BlueTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + BlockKind::BlackConcretePowder => "minecraft:black_concrete_powder", + BlockKind::SmoothRedSandstone => "minecraft:smooth_red_sandstone", + BlockKind::EndRod => "minecraft:end_rod", + BlockKind::BlackBanner => "minecraft:black_banner", + BlockKind::Dropper => "minecraft:dropper", + BlockKind::JungleSapling => "minecraft:jungle_sapling", + BlockKind::MovingPiston => "minecraft:moving_piston", + BlockKind::PolishedDiorite => "minecraft:polished_diorite", + BlockKind::NetherWartBlock => "minecraft:nether_wart_block", + BlockKind::Potatoes => "minecraft:potatoes", + BlockKind::DarkOakFence => "minecraft:dark_oak_fence", + BlockKind::StoneBricks => "minecraft:stone_bricks", + BlockKind::LightGrayBed => "minecraft:light_gray_bed", + BlockKind::DarkOakFenceGate => "minecraft:dark_oak_fence_gate", + BlockKind::SlimeBlock => "minecraft:slime_block", + BlockKind::Beetroots => "minecraft:beetroots", + BlockKind::CyanWool => "minecraft:cyan_wool", + BlockKind::PottedRedTulip => "minecraft:potted_red_tulip", + BlockKind::Candle => "minecraft:candle", + BlockKind::Netherrack => "minecraft:netherrack", + BlockKind::Prismarine => "minecraft:prismarine", + BlockKind::BlueOrchid => "minecraft:blue_orchid", + BlockKind::SpruceTrapdoor => "minecraft:spruce_trapdoor", + BlockKind::PottedBlueOrchid => "minecraft:potted_blue_orchid", + BlockKind::PolishedAndesiteSlab => "minecraft:polished_andesite_slab", + BlockKind::DeadHornCoralWallFan => "minecraft:dead_horn_coral_wall_fan", + BlockKind::PurpleWallBanner => "minecraft:purple_wall_banner", + BlockKind::OakButton => "minecraft:oak_button", + BlockKind::KelpPlant => "minecraft:kelp_plant", + BlockKind::BrainCoral => "minecraft:brain_coral", + BlockKind::PolishedDioriteSlab => "minecraft:polished_diorite_slab", + BlockKind::CobbledDeepslate => "minecraft:cobbled_deepslate", + BlockKind::GreenCarpet => "minecraft:green_carpet", + BlockKind::RedWallBanner => "minecraft:red_wall_banner", + BlockKind::AcaciaStairs => "minecraft:acacia_stairs", + BlockKind::EmeraldOre => "minecraft:emerald_ore", + BlockKind::DiamondOre => "minecraft:diamond_ore", + BlockKind::StrippedJungleLog => "minecraft:stripped_jungle_log", + BlockKind::PottedJungleSapling => "minecraft:potted_jungle_sapling", + BlockKind::BirchDoor => "minecraft:birch_door", + BlockKind::SmoothRedSandstoneStairs => "minecraft:smooth_red_sandstone_stairs", + BlockKind::MagentaCarpet => "minecraft:magenta_carpet", + BlockKind::SpruceDoor => "minecraft:spruce_door", + BlockKind::QuartzBlock => "minecraft:quartz_block", + BlockKind::DarkOakWood => "minecraft:dark_oak_wood", + BlockKind::DeadBubbleCoral => "minecraft:dead_bubble_coral", + BlockKind::CrimsonPressurePlate => "minecraft:crimson_pressure_plate", + BlockKind::MossyStoneBrickSlab => "minecraft:mossy_stone_brick_slab", + BlockKind::Air => "minecraft:air", + BlockKind::EndStoneBricks => "minecraft:end_stone_bricks", + BlockKind::JungleLog => "minecraft:jungle_log", + BlockKind::PottedWhiteTulip => "minecraft:potted_white_tulip", + BlockKind::DioriteSlab => "minecraft:diorite_slab", + BlockKind::InfestedMossyStoneBricks => "minecraft:infested_mossy_stone_bricks", + BlockKind::GrayStainedGlass => "minecraft:gray_stained_glass", + BlockKind::PottedOakSapling => "minecraft:potted_oak_sapling", + BlockKind::SmoothQuartzSlab => "minecraft:smooth_quartz_slab", + BlockKind::WhiteCandleCake => "minecraft:white_candle_cake", + BlockKind::CaveVines => "minecraft:cave_vines", + BlockKind::YellowCarpet => "minecraft:yellow_carpet", + BlockKind::BrickStairs => "minecraft:brick_stairs", + BlockKind::PrismarineSlab => "minecraft:prismarine_slab", + BlockKind::WarpedRoots => "minecraft:warped_roots", + BlockKind::FlowerPot => "minecraft:flower_pot", + BlockKind::BirchFenceGate => "minecraft:birch_fence_gate", + BlockKind::DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", + BlockKind::ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", + BlockKind::WallTorch => "minecraft:wall_torch", + BlockKind::BubbleColumn => "minecraft:bubble_column", + BlockKind::CyanCandle => "minecraft:cyan_candle", + BlockKind::CutCopper => "minecraft:cut_copper", + BlockKind::DeadFireCoralBlock => "minecraft:dead_fire_coral_block", + BlockKind::BlueTerracotta => "minecraft:blue_terracotta", + BlockKind::EnderChest => "minecraft:ender_chest", + BlockKind::YellowShulkerBox => "minecraft:yellow_shulker_box", + BlockKind::CoarseDirt => "minecraft:coarse_dirt", + BlockKind::BlackCandleCake => "minecraft:black_candle_cake", + BlockKind::HangingRoots => "minecraft:hanging_roots", + BlockKind::GreenWallBanner => "minecraft:green_wall_banner", + BlockKind::SmoothStone => "minecraft:smooth_stone", + BlockKind::JungleFence => "minecraft:jungle_fence", + BlockKind::DeepslateTileWall => "minecraft:deepslate_tile_wall", + BlockKind::PinkStainedGlass => "minecraft:pink_stained_glass", + BlockKind::BubbleCoralWallFan => "minecraft:bubble_coral_wall_fan", + BlockKind::WhiteStainedGlass => "minecraft:white_stained_glass", + BlockKind::GrayConcretePowder => "minecraft:gray_concrete_powder", + BlockKind::DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", + BlockKind::BrownMushroom => "minecraft:brown_mushroom", + BlockKind::Spawner => "minecraft:spawner", + BlockKind::GreenGlazedTerracotta => "minecraft:green_glazed_terracotta", + BlockKind::BrainCoralBlock => "minecraft:brain_coral_block", + BlockKind::DeadTubeCoral => "minecraft:dead_tube_coral", + BlockKind::BrownConcrete => "minecraft:brown_concrete", + BlockKind::Gravel => "minecraft:gravel", + BlockKind::TwistingVinesPlant => "minecraft:twisting_vines_plant", + BlockKind::MediumAmethystBud => "minecraft:medium_amethyst_bud", + BlockKind::CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", + BlockKind::LargeFern => "minecraft:large_fern", + BlockKind::GreenBanner => "minecraft:green_banner", + BlockKind::LightWeightedPressurePlate => "minecraft:light_weighted_pressure_plate", + BlockKind::YellowWool => "minecraft:yellow_wool", + BlockKind::CryingObsidian => "minecraft:crying_obsidian", + BlockKind::WaxedCutCopper => "minecraft:waxed_cut_copper", + BlockKind::Barrel => "minecraft:barrel", + BlockKind::PottedCornflower => "minecraft:potted_cornflower", + BlockKind::PinkCandleCake => "minecraft:pink_candle_cake", + BlockKind::BlueBanner => "minecraft:blue_banner", + BlockKind::DarkOakSign => "minecraft:dark_oak_sign", + BlockKind::Granite => "minecraft:granite", + BlockKind::SandstoneStairs => "minecraft:sandstone_stairs", + BlockKind::ChiseledRedSandstone => "minecraft:chiseled_red_sandstone", + BlockKind::WarpedWallSign => "minecraft:warped_wall_sign", + BlockKind::TintedGlass => "minecraft:tinted_glass", + BlockKind::SmoothBasalt => "minecraft:smooth_basalt", + BlockKind::MagentaCandleCake => "minecraft:magenta_candle_cake", + BlockKind::WhiteTulip => "minecraft:white_tulip", + BlockKind::WhiteConcretePowder => "minecraft:white_concrete_powder", + BlockKind::BuddingAmethyst => "minecraft:budding_amethyst", + BlockKind::WhiteGlazedTerracotta => "minecraft:white_glazed_terracotta", + BlockKind::PottedWitherRose => "minecraft:potted_wither_rose", + BlockKind::GrayCandleCake => "minecraft:gray_candle_cake", + BlockKind::MagentaWool => "minecraft:magenta_wool", + BlockKind::PinkTerracotta => "minecraft:pink_terracotta", + BlockKind::WarpedSlab => "minecraft:warped_slab", + BlockKind::CrimsonFence => "minecraft:crimson_fence", + BlockKind::TallSeagrass => "minecraft:tall_seagrass", + BlockKind::DeepslateCoalOre => "minecraft:deepslate_coal_ore", + BlockKind::WarpedTrapdoor => "minecraft:warped_trapdoor", + BlockKind::LightBlueShulkerBox => "minecraft:light_blue_shulker_box", + BlockKind::BrownBed => "minecraft:brown_bed", + BlockKind::CyanStainedGlass => "minecraft:cyan_stained_glass", + BlockKind::RedStainedGlass => "minecraft:red_stained_glass", + BlockKind::BlastFurnace => "minecraft:blast_furnace", + BlockKind::LightBlueBed => "minecraft:light_blue_bed", + BlockKind::DeadTubeCoralBlock => "minecraft:dead_tube_coral_block", + BlockKind::GreenBed => "minecraft:green_bed", + BlockKind::MossyStoneBricks => "minecraft:mossy_stone_bricks", + BlockKind::WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", + BlockKind::SmoothRedSandstoneSlab => "minecraft:smooth_red_sandstone_slab", + BlockKind::CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", + BlockKind::Melon => "minecraft:melon", + BlockKind::TurtleEgg => "minecraft:turtle_egg", + BlockKind::AcaciaPlanks => "minecraft:acacia_planks", + BlockKind::StoneBrickWall => "minecraft:stone_brick_wall", + BlockKind::NetherWart => "minecraft:nether_wart", + BlockKind::WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", + BlockKind::JungleSlab => "minecraft:jungle_slab", + BlockKind::YellowStainedGlassPane => "minecraft:yellow_stained_glass_pane", + BlockKind::QuartzPillar => "minecraft:quartz_pillar", + BlockKind::EndPortalFrame => "minecraft:end_portal_frame", + BlockKind::EndGateway => "minecraft:end_gateway", + BlockKind::CrimsonTrapdoor => "minecraft:crimson_trapdoor", + BlockKind::PointedDripstone => "minecraft:pointed_dripstone", + BlockKind::WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", + BlockKind::SandstoneSlab => "minecraft:sandstone_slab", + BlockKind::CutSandstone => "minecraft:cut_sandstone", + BlockKind::GraniteStairs => "minecraft:granite_stairs", + BlockKind::WhiteCandle => "minecraft:white_candle", + BlockKind::CoalOre => "minecraft:coal_ore", + BlockKind::CarvedPumpkin => "minecraft:carved_pumpkin", + BlockKind::BlackTerracotta => "minecraft:black_terracotta", + BlockKind::CrimsonFenceGate => "minecraft:crimson_fence_gate", + BlockKind::DripstoneBlock => "minecraft:dripstone_block", + BlockKind::InfestedChiseledStoneBricks => "minecraft:infested_chiseled_stone_bricks", + BlockKind::Poppy => "minecraft:poppy", + BlockKind::BrainCoralFan => "minecraft:brain_coral_fan", + BlockKind::SoulWallTorch => "minecraft:soul_wall_torch", + BlockKind::RedstoneBlock => "minecraft:redstone_block", + BlockKind::OrangeStainedGlass => "minecraft:orange_stained_glass", + BlockKind::CartographyTable => "minecraft:cartography_table", + BlockKind::RespawnAnchor => "minecraft:respawn_anchor", + BlockKind::RedNetherBrickSlab => "minecraft:red_nether_brick_slab", + BlockKind::AcaciaFence => "minecraft:acacia_fence", + BlockKind::Snow => "minecraft:snow", + BlockKind::LightGrayConcretePowder => "minecraft:light_gray_concrete_powder", + BlockKind::InfestedCobblestone => "minecraft:infested_cobblestone", + BlockKind::TubeCoralWallFan => "minecraft:tube_coral_wall_fan", + BlockKind::MossyStoneBrickStairs => "minecraft:mossy_stone_brick_stairs", + BlockKind::BlueConcretePowder => "minecraft:blue_concrete_powder", + BlockKind::DeepslateTileStairs => "minecraft:deepslate_tile_stairs", + BlockKind::HeavyWeightedPressurePlate => "minecraft:heavy_weighted_pressure_plate", + BlockKind::DarkPrismarine => "minecraft:dark_prismarine", + BlockKind::DeadFireCoralFan => "minecraft:dead_fire_coral_fan", + BlockKind::PinkBanner => "minecraft:pink_banner", + BlockKind::RedstoneWallTorch => "minecraft:redstone_wall_torch", + BlockKind::WeatheredCutCopper => "minecraft:weathered_cut_copper", + BlockKind::LightGrayBanner => "minecraft:light_gray_banner", + BlockKind::ZombieWallHead => "minecraft:zombie_wall_head", + BlockKind::Stonecutter => "minecraft:stonecutter", + BlockKind::CyanConcretePowder => "minecraft:cyan_concrete_powder", + BlockKind::ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", + BlockKind::AmethystBlock => "minecraft:amethyst_block", + BlockKind::BubbleCoralFan => "minecraft:bubble_coral_fan", + BlockKind::DarkOakTrapdoor => "minecraft:dark_oak_trapdoor", + BlockKind::CutRedSandstoneSlab => "minecraft:cut_red_sandstone_slab", + BlockKind::LightGrayGlazedTerracotta => "minecraft:light_gray_glazed_terracotta", + BlockKind::Cornflower => "minecraft:cornflower", + BlockKind::FireCoralWallFan => "minecraft:fire_coral_wall_fan", + BlockKind::LapisOre => "minecraft:lapis_ore", + BlockKind::BlueBed => "minecraft:blue_bed", + BlockKind::RedStainedGlassPane => "minecraft:red_stained_glass_pane", + BlockKind::LimeStainedGlass => "minecraft:lime_stained_glass", + BlockKind::NetherBrickSlab => "minecraft:nether_brick_slab", + BlockKind::WhiteWool => "minecraft:white_wool", + BlockKind::SpruceSlab => "minecraft:spruce_slab", + BlockKind::PurpleCandleCake => "minecraft:purple_candle_cake", + BlockKind::OakFence => "minecraft:oak_fence", + BlockKind::Scaffolding => "minecraft:scaffolding", + BlockKind::JungleTrapdoor => "minecraft:jungle_trapdoor", + BlockKind::RedSandstoneWall => "minecraft:red_sandstone_wall", + BlockKind::RedNetherBrickWall => "minecraft:red_nether_brick_wall", + BlockKind::CopperOre => "minecraft:copper_ore", + BlockKind::DarkOakWallSign => "minecraft:dark_oak_wall_sign", + BlockKind::CraftingTable => "minecraft:crafting_table", + BlockKind::StoneStairs => "minecraft:stone_stairs", + BlockKind::PinkBed => "minecraft:pink_bed", + BlockKind::StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", + BlockKind::OakWood => "minecraft:oak_wood", + BlockKind::Sunflower => "minecraft:sunflower", + BlockKind::RedShulkerBox => "minecraft:red_shulker_box", + BlockKind::Bricks => "minecraft:bricks", + BlockKind::BambooSapling => "minecraft:bamboo_sapling", + BlockKind::Pumpkin => "minecraft:pumpkin", + BlockKind::PinkGlazedTerracotta => "minecraft:pink_glazed_terracotta", + BlockKind::GrayTerracotta => "minecraft:gray_terracotta", + BlockKind::GreenConcrete => "minecraft:green_concrete", + BlockKind::WaxedCopperBlock => "minecraft:waxed_copper_block", + BlockKind::PottedDarkOakSapling => "minecraft:potted_dark_oak_sapling", + BlockKind::WaxedWeatheredCutCopperStairs => { + "minecraft:waxed_weathered_cut_copper_stairs" } - BlockKind::BrownTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + BlockKind::Farmland => "minecraft:farmland", + BlockKind::OrangeConcrete => "minecraft:orange_concrete", + BlockKind::GrayBed => "minecraft:gray_bed", + BlockKind::WhiteBed => "minecraft:white_bed", + BlockKind::PottedLilyOfTheValley => "minecraft:potted_lily_of_the_valley", + BlockKind::OrangeWallBanner => "minecraft:orange_wall_banner", + BlockKind::EndStoneBrickSlab => "minecraft:end_stone_brick_slab", + BlockKind::Observer => "minecraft:observer", + BlockKind::Lodestone => "minecraft:lodestone", + BlockKind::BubbleCoralBlock => "minecraft:bubble_coral_block", + BlockKind::HornCoralBlock => "minecraft:horn_coral_block", + BlockKind::AcaciaSign => "minecraft:acacia_sign", + BlockKind::TrappedChest => "minecraft:trapped_chest", + BlockKind::RedWool => "minecraft:red_wool", + BlockKind::CandleCake => "minecraft:candle_cake", + BlockKind::SugarCane => "minecraft:sugar_cane", + BlockKind::BirchSlab => "minecraft:birch_slab", + BlockKind::PinkStainedGlassPane => "minecraft:pink_stained_glass_pane", + BlockKind::CrimsonFungus => "minecraft:crimson_fungus", + BlockKind::PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", + BlockKind::CyanStainedGlassPane => "minecraft:cyan_stained_glass_pane", + BlockKind::SmoothSandstoneStairs => "minecraft:smooth_sandstone_stairs", + BlockKind::CrimsonDoor => "minecraft:crimson_door", + BlockKind::BrownWallBanner => "minecraft:brown_wall_banner", + BlockKind::CyanGlazedTerracotta => "minecraft:cyan_glazed_terracotta", + BlockKind::WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", + BlockKind::GreenStainedGlassPane => "minecraft:green_stained_glass_pane", + BlockKind::HoneyBlock => "minecraft:honey_block", + BlockKind::PolishedBlackstone => "minecraft:polished_blackstone", + BlockKind::WhiteWallBanner => "minecraft:white_wall_banner", + BlockKind::SeaLantern => "minecraft:sea_lantern", + BlockKind::DeepslateBrickSlab => "minecraft:deepslate_brick_slab", + BlockKind::StoneBrickStairs => "minecraft:stone_brick_stairs", + BlockKind::Mycelium => "minecraft:mycelium", + BlockKind::SpruceFence => "minecraft:spruce_fence", + BlockKind::Ladder => "minecraft:ladder", + BlockKind::GreenShulkerBox => "minecraft:green_shulker_box", + BlockKind::Dirt => "minecraft:dirt", + BlockKind::Cactus => "minecraft:cactus", + BlockKind::Lava => "minecraft:lava", + BlockKind::OakSign => "minecraft:oak_sign", + BlockKind::JungleDoor => "minecraft:jungle_door", + BlockKind::WhiteTerracotta => "minecraft:white_terracotta", + BlockKind::AcaciaDoor => "minecraft:acacia_door", + BlockKind::CobblestoneSlab => "minecraft:cobblestone_slab", + BlockKind::DarkOakDoor => "minecraft:dark_oak_door", + BlockKind::GrayCandle => "minecraft:gray_candle", + BlockKind::PurpurStairs => "minecraft:purpur_stairs", + BlockKind::BlueConcrete => "minecraft:blue_concrete", + BlockKind::LightGrayStainedGlassPane => "minecraft:light_gray_stained_glass_pane", + BlockKind::DarkOakPlanks => "minecraft:dark_oak_planks", + BlockKind::PottedWarpedRoots => "minecraft:potted_warped_roots", + BlockKind::JungleLeaves => "minecraft:jungle_leaves", + BlockKind::DaylightDetector => "minecraft:daylight_detector", + BlockKind::AcaciaSapling => "minecraft:acacia_sapling", + BlockKind::SandstoneWall => "minecraft:sandstone_wall", + BlockKind::BlueCarpet => "minecraft:blue_carpet", + BlockKind::PolishedGraniteStairs => "minecraft:polished_granite_stairs", + BlockKind::DarkOakSapling => "minecraft:dark_oak_sapling", + BlockKind::BrickWall => "minecraft:brick_wall", + BlockKind::AcaciaWood => "minecraft:acacia_wood", + BlockKind::MossCarpet => "minecraft:moss_carpet", + BlockKind::MagentaBed => "minecraft:magenta_bed", + BlockKind::BirchStairs => "minecraft:birch_stairs", + BlockKind::TubeCoralBlock => "minecraft:tube_coral_block", + BlockKind::NetheriteBlock => "minecraft:netherite_block", + BlockKind::WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", + BlockKind::Sand => "minecraft:sand", + BlockKind::Calcite => "minecraft:calcite", + BlockKind::Hopper => "minecraft:hopper", + BlockKind::HornCoral => "minecraft:horn_coral", + BlockKind::DeepslateTiles => "minecraft:deepslate_tiles", + BlockKind::CutRedSandstone => "minecraft:cut_red_sandstone", + BlockKind::MossyCobblestoneWall => "minecraft:mossy_cobblestone_wall", + BlockKind::Lectern => "minecraft:lectern", + BlockKind::PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", + BlockKind::YellowWallBanner => "minecraft:yellow_wall_banner", + BlockKind::CrimsonWallSign => "minecraft:crimson_wall_sign", + BlockKind::PinkConcrete => "minecraft:pink_concrete", + BlockKind::StrippedAcaciaWood => "minecraft:stripped_acacia_wood", + BlockKind::JungleWallSign => "minecraft:jungle_wall_sign", + BlockKind::BrownBanner => "minecraft:brown_banner", + BlockKind::OrangeGlazedTerracotta => "minecraft:orange_glazed_terracotta", + BlockKind::EmeraldBlock => "minecraft:emerald_block", + BlockKind::OxidizedCutCopper => "minecraft:oxidized_cut_copper", + BlockKind::CrimsonHyphae => "minecraft:crimson_hyphae", + BlockKind::YellowCandleCake => "minecraft:yellow_candle_cake", + BlockKind::StructureVoid => "minecraft:structure_void", + BlockKind::WarpedPlanks => "minecraft:warped_planks", + BlockKind::Glowstone => "minecraft:glowstone", + BlockKind::SpruceWood => "minecraft:spruce_wood", + BlockKind::PinkConcretePowder => "minecraft:pink_concrete_powder", + BlockKind::ShulkerBox => "minecraft:shulker_box", + BlockKind::RedSandstoneSlab => "minecraft:red_sandstone_slab", + BlockKind::OrangeStainedGlassPane => "minecraft:orange_stained_glass_pane", + BlockKind::WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", + BlockKind::PottedAzaleaBush => "minecraft:potted_azalea_bush", + BlockKind::AzaleaLeaves => "minecraft:azalea_leaves", + BlockKind::CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", + BlockKind::LightBlueCandle => "minecraft:light_blue_candle", + BlockKind::BrownShulkerBox => "minecraft:brown_shulker_box", + BlockKind::RedNetherBrickStairs => "minecraft:red_nether_brick_stairs", + BlockKind::SmallAmethystBud => "minecraft:small_amethyst_bud", + BlockKind::CrimsonStem => "minecraft:crimson_stem", + BlockKind::BirchFence => "minecraft:birch_fence", + BlockKind::InfestedStone => "minecraft:infested_stone", + BlockKind::DeadTubeCoralFan => "minecraft:dead_tube_coral_fan", + BlockKind::Bell => "minecraft:bell", + BlockKind::PolishedGraniteSlab => "minecraft:polished_granite_slab", + BlockKind::CrimsonSign => "minecraft:crimson_sign", + BlockKind::BirchPlanks => "minecraft:birch_planks", + BlockKind::LightGrayCandle => "minecraft:light_gray_candle", + BlockKind::SporeBlossom => "minecraft:spore_blossom", + BlockKind::PurpleConcretePowder => "minecraft:purple_concrete_powder", + BlockKind::Furnace => "minecraft:furnace", + BlockKind::PolishedAndesiteStairs => "minecraft:polished_andesite_stairs", + BlockKind::RedCandleCake => "minecraft:red_candle_cake", + BlockKind::ChiseledDeepslate => "minecraft:chiseled_deepslate", + BlockKind::QuartzSlab => "minecraft:quartz_slab", + BlockKind::SpruceLeaves => "minecraft:spruce_leaves", + BlockKind::BubbleCoral => "minecraft:bubble_coral", + BlockKind::LightGrayWallBanner => "minecraft:light_gray_wall_banner", + BlockKind::PurpurBlock => "minecraft:purpur_block", + BlockKind::YellowBanner => "minecraft:yellow_banner", + BlockKind::OakSapling => "minecraft:oak_sapling", + BlockKind::AzureBluet => "minecraft:azure_bluet", + BlockKind::MagentaStainedGlassPane => "minecraft:magenta_stained_glass_pane", + BlockKind::Dispenser => "minecraft:dispenser", + BlockKind::GrayStainedGlassPane => "minecraft:gray_stained_glass_pane", + BlockKind::AndesiteWall => "minecraft:andesite_wall", + BlockKind::JungleFenceGate => "minecraft:jungle_fence_gate", + BlockKind::RedNetherBricks => "minecraft:red_nether_bricks", + BlockKind::LightGrayCandleCake => "minecraft:light_gray_candle_cake", + BlockKind::Jukebox => "minecraft:jukebox", + BlockKind::NoteBlock => "minecraft:note_block", + BlockKind::LimeTerracotta => "minecraft:lime_terracotta", + BlockKind::WarpedFence => "minecraft:warped_fence", + BlockKind::GoldOre => "minecraft:gold_ore", + BlockKind::PottedPinkTulip => "minecraft:potted_pink_tulip", + BlockKind::SpruceButton => "minecraft:spruce_button", + BlockKind::BrownCandleCake => "minecraft:brown_candle_cake", + BlockKind::WitherRose => "minecraft:wither_rose", + BlockKind::DiamondBlock => "minecraft:diamond_block", + BlockKind::Wheat => "minecraft:wheat", + BlockKind::GlowLichen => "minecraft:glow_lichen", + BlockKind::Cocoa => "minecraft:cocoa", + BlockKind::OakTrapdoor => "minecraft:oak_trapdoor", + BlockKind::StrippedBirchWood => "minecraft:stripped_birch_wood", + BlockKind::BirchWallSign => "minecraft:birch_wall_sign", + BlockKind::SmoothStoneSlab => "minecraft:smooth_stone_slab", + BlockKind::ExposedCopper => "minecraft:exposed_copper", + BlockKind::Water => "minecraft:water", + BlockKind::Bedrock => "minecraft:bedrock", + BlockKind::PumpkinStem => "minecraft:pumpkin_stem", + BlockKind::Cauldron => "minecraft:cauldron", + BlockKind::PurpleCarpet => "minecraft:purple_carpet", + BlockKind::FletchingTable => "minecraft:fletching_table", + BlockKind::Anvil => "minecraft:anvil", + BlockKind::LilyOfTheValley => "minecraft:lily_of_the_valley", + BlockKind::FloweringAzalea => "minecraft:flowering_azalea", + BlockKind::LimeConcretePowder => "minecraft:lime_concrete_powder", + BlockKind::BlueGlazedTerracotta => "minecraft:blue_glazed_terracotta", + BlockKind::TripwireHook => "minecraft:tripwire_hook", + BlockKind::CyanConcrete => "minecraft:cyan_concrete", + BlockKind::BigDripleafStem => "minecraft:big_dripleaf_stem", + BlockKind::StickyPiston => "minecraft:sticky_piston", + BlockKind::Lever => "minecraft:lever", + BlockKind::WhiteConcrete => "minecraft:white_concrete", + BlockKind::DeadBrainCoralBlock => "minecraft:dead_brain_coral_block", + BlockKind::SmoothQuartz => "minecraft:smooth_quartz", + BlockKind::Torch => "minecraft:torch", + BlockKind::RedstoneWire => "minecraft:redstone_wire", + BlockKind::BirchTrapdoor => "minecraft:birch_trapdoor", + BlockKind::WeepingVinesPlant => "minecraft:weeping_vines_plant", + BlockKind::AcaciaLog => "minecraft:acacia_log", + BlockKind::PlayerHead => "minecraft:player_head", + BlockKind::NetherBrickFence => "minecraft:nether_brick_fence", + BlockKind::DeadHornCoral => "minecraft:dead_horn_coral", + BlockKind::StrippedDarkOakWood => "minecraft:stripped_dark_oak_wood", + BlockKind::PolishedGranite => "minecraft:polished_granite", + BlockKind::StructureBlock => "minecraft:structure_block", + BlockKind::DragonWallHead => "minecraft:dragon_wall_head", + BlockKind::DeadHornCoralBlock => "minecraft:dead_horn_coral_block", + BlockKind::DarkOakSlab => "minecraft:dark_oak_slab", + BlockKind::StrippedCrimsonHyphae => "minecraft:stripped_crimson_hyphae", + BlockKind::LightGrayShulkerBox => "minecraft:light_gray_shulker_box", + BlockKind::EnchantingTable => "minecraft:enchanting_table", + BlockKind::PlayerWallHead => "minecraft:player_wall_head", + BlockKind::PurpleStainedGlass => "minecraft:purple_stained_glass", + BlockKind::HayBlock => "minecraft:hay_block", + BlockKind::Comparator => "minecraft:comparator", + BlockKind::PurpleGlazedTerracotta => "minecraft:purple_glazed_terracotta", + BlockKind::DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", + BlockKind::IronOre => "minecraft:iron_ore", + BlockKind::PurpleWool => "minecraft:purple_wool", + BlockKind::DeepslateTileSlab => "minecraft:deepslate_tile_slab", + BlockKind::ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", + BlockKind::SpruceLog => "minecraft:spruce_log", + BlockKind::JunglePlanks => "minecraft:jungle_planks", + BlockKind::SweetBerryBush => "minecraft:sweet_berry_bush", + BlockKind::PottedPoppy => "minecraft:potted_poppy", + BlockKind::SmithingTable => "minecraft:smithing_table", + BlockKind::StoneSlab => "minecraft:stone_slab", + BlockKind::WetSponge => "minecraft:wet_sponge", + BlockKind::DeadBubbleCoralFan => "minecraft:dead_bubble_coral_fan", + BlockKind::OrangeTerracotta => "minecraft:orange_terracotta", + BlockKind::LightBlueCarpet => "minecraft:light_blue_carpet", + BlockKind::PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", + BlockKind::OrangeTulip => "minecraft:orange_tulip", + } + } + #[doc = "Gets a `BlockKind` by its `namespaced_id`."] + #[inline] + pub fn from_namespaced_id(namespaced_id: &str) -> Option { + match namespaced_id { + "minecraft:cobweb" => Some(BlockKind::Cobweb), + "minecraft:gold_block" => Some(BlockKind::GoldBlock), + "minecraft:light_gray_concrete" => Some(BlockKind::LightGrayConcrete), + "minecraft:birch_leaves" => Some(BlockKind::BirchLeaves), + "minecraft:purple_bed" => Some(BlockKind::PurpleBed), + "minecraft:acacia_button" => Some(BlockKind::AcaciaButton), + "minecraft:red_glazed_terracotta" => Some(BlockKind::RedGlazedTerracotta), + "minecraft:dead_bubble_coral_wall_fan" => Some(BlockKind::DeadBubbleCoralWallFan), + "minecraft:lime_shulker_box" => Some(BlockKind::LimeShulkerBox), + "minecraft:frosted_ice" => Some(BlockKind::FrostedIce), + "minecraft:lava_cauldron" => Some(BlockKind::LavaCauldron), + "minecraft:stripped_spruce_log" => Some(BlockKind::StrippedSpruceLog), + "minecraft:light_blue_concrete" => Some(BlockKind::LightBlueConcrete), + "minecraft:soul_sand" => Some(BlockKind::SoulSand), + "minecraft:nether_portal" => Some(BlockKind::NetherPortal), + "minecraft:potted_crimson_roots" => Some(BlockKind::PottedCrimsonRoots), + "minecraft:dead_tube_coral_wall_fan" => Some(BlockKind::DeadTubeCoralWallFan), + "minecraft:oak_stairs" => Some(BlockKind::OakStairs), + "minecraft:dead_brain_coral_wall_fan" => Some(BlockKind::DeadBrainCoralWallFan), + "minecraft:cracked_nether_bricks" => Some(BlockKind::CrackedNetherBricks), + "minecraft:cobblestone" => Some(BlockKind::Cobblestone), + "minecraft:stripped_birch_log" => Some(BlockKind::StrippedBirchLog), + "minecraft:powder_snow_cauldron" => Some(BlockKind::PowderSnowCauldron), + "minecraft:potted_acacia_sapling" => Some(BlockKind::PottedAcaciaSapling), + "minecraft:green_candle" => Some(BlockKind::GreenCandle), + "minecraft:waxed_oxidized_cut_copper_slab" => { + Some(BlockKind::WaxedOxidizedCutCopperSlab) } - BlockKind::GreenTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:dark_oak_log" => Some(BlockKind::DarkOakLog), + "minecraft:oak_leaves" => Some(BlockKind::OakLeaves), + "minecraft:smooth_quartz_stairs" => Some(BlockKind::SmoothQuartzStairs), + "minecraft:bee_nest" => Some(BlockKind::BeeNest), + "minecraft:dead_fire_coral" => Some(BlockKind::DeadFireCoral), + "minecraft:waxed_exposed_cut_copper_stairs" => { + Some(BlockKind::WaxedExposedCutCopperStairs) } - BlockKind::RedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:repeating_command_block" => Some(BlockKind::RepeatingCommandBlock), + "minecraft:light_blue_glazed_terracotta" => Some(BlockKind::LightBlueGlazedTerracotta), + "minecraft:ancient_debris" => Some(BlockKind::AncientDebris), + "minecraft:green_stained_glass" => Some(BlockKind::GreenStainedGlass), + "minecraft:purpur_slab" => Some(BlockKind::PurpurSlab), + "minecraft:orange_concrete_powder" => Some(BlockKind::OrangeConcretePowder), + "minecraft:andesite" => Some(BlockKind::Andesite), + "minecraft:red_terracotta" => Some(BlockKind::RedTerracotta), + "minecraft:cave_air" => Some(BlockKind::CaveAir), + "minecraft:end_stone_brick_wall" => Some(BlockKind::EndStoneBrickWall), + "minecraft:red_concrete" => Some(BlockKind::RedConcrete), + "minecraft:honeycomb_block" => Some(BlockKind::HoneycombBlock), + "minecraft:birch_pressure_plate" => Some(BlockKind::BirchPressurePlate), + "minecraft:tall_grass" => Some(BlockKind::TallGrass), + "minecraft:green_wool" => Some(BlockKind::GreenWool), + "minecraft:polished_blackstone_bricks" => Some(BlockKind::PolishedBlackstoneBricks), + "minecraft:waxed_oxidized_cut_copper_stairs" => { + Some(BlockKind::WaxedOxidizedCutCopperStairs) } - BlockKind::BlackTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:grindstone" => Some(BlockKind::Grindstone), + "minecraft:black_stained_glass_pane" => Some(BlockKind::BlackStainedGlassPane), + "minecraft:gray_shulker_box" => Some(BlockKind::GrayShulkerBox), + "minecraft:potted_fern" => Some(BlockKind::PottedFern), + "minecraft:crimson_button" => Some(BlockKind::CrimsonButton), + "minecraft:stripped_spruce_wood" => Some(BlockKind::StrippedSpruceWood), + "minecraft:glass_pane" => Some(BlockKind::GlassPane), + "minecraft:target" => Some(BlockKind::Target), + "minecraft:jungle_button" => Some(BlockKind::JungleButton), + "minecraft:spruce_fence_gate" => Some(BlockKind::SpruceFenceGate), + "minecraft:light_blue_wool" => Some(BlockKind::LightBlueWool), + "minecraft:cyan_bed" => Some(BlockKind::CyanBed), + "minecraft:warped_wart_block" => Some(BlockKind::WarpedWartBlock), + "minecraft:potted_flowering_azalea_bush" => Some(BlockKind::PottedFloweringAzaleaBush), + "minecraft:mossy_cobblestone" => Some(BlockKind::MossyCobblestone), + "minecraft:polished_blackstone_slab" => Some(BlockKind::PolishedBlackstoneSlab), + "minecraft:tube_coral" => Some(BlockKind::TubeCoral), + "minecraft:chorus_plant" => Some(BlockKind::ChorusPlant), + "minecraft:cyan_wall_banner" => Some(BlockKind::CyanWallBanner), + "minecraft:composter" => Some(BlockKind::Composter), + "minecraft:granite_wall" => Some(BlockKind::GraniteWall), + "minecraft:light" => Some(BlockKind::Light), + "minecraft:bamboo" => Some(BlockKind::Bamboo), + "minecraft:nether_bricks" => Some(BlockKind::NetherBricks), + "minecraft:terracotta" => Some(BlockKind::Terracotta), + "minecraft:granite_slab" => Some(BlockKind::GraniteSlab), + "minecraft:white_stained_glass_pane" => Some(BlockKind::WhiteStainedGlassPane), + "minecraft:red_mushroom" => Some(BlockKind::RedMushroom), + "minecraft:cracked_stone_bricks" => Some(BlockKind::CrackedStoneBricks), + "minecraft:light_blue_concrete_powder" => Some(BlockKind::LightBlueConcretePowder), + "minecraft:cake" => Some(BlockKind::Cake), + "minecraft:potted_orange_tulip" => Some(BlockKind::PottedOrangeTulip), + "minecraft:pink_tulip" => Some(BlockKind::PinkTulip), + "minecraft:stone_pressure_plate" => Some(BlockKind::StonePressurePlate), + "minecraft:stripped_warped_hyphae" => Some(BlockKind::StrippedWarpedHyphae), + "minecraft:magenta_shulker_box" => Some(BlockKind::MagentaShulkerBox), + "minecraft:blackstone_stairs" => Some(BlockKind::BlackstoneStairs), + "minecraft:brain_coral_wall_fan" => Some(BlockKind::BrainCoralWallFan), + "minecraft:deepslate_bricks" => Some(BlockKind::DeepslateBricks), + "minecraft:flowering_azalea_leaves" => Some(BlockKind::FloweringAzaleaLeaves), + "minecraft:cyan_banner" => Some(BlockKind::CyanBanner), + "minecraft:soul_torch" => Some(BlockKind::SoulTorch), + "minecraft:prismarine_wall" => Some(BlockKind::PrismarineWall), + "minecraft:nether_brick_wall" => Some(BlockKind::NetherBrickWall), + "minecraft:lilac" => Some(BlockKind::Lilac), + "minecraft:rail" => Some(BlockKind::Rail), + "minecraft:shroomlight" => Some(BlockKind::Shroomlight), + "minecraft:pink_carpet" => Some(BlockKind::PinkCarpet), + "minecraft:stripped_crimson_stem" => Some(BlockKind::StrippedCrimsonStem), + "minecraft:andesite_slab" => Some(BlockKind::AndesiteSlab), + "minecraft:brown_candle" => Some(BlockKind::BrownCandle), + "minecraft:red_sandstone" => Some(BlockKind::RedSandstone), + "minecraft:raw_gold_block" => Some(BlockKind::RawGoldBlock), + "minecraft:polished_deepslate_wall" => Some(BlockKind::PolishedDeepslateWall), + "minecraft:black_carpet" => Some(BlockKind::BlackCarpet), + "minecraft:infested_stone_bricks" => Some(BlockKind::InfestedStoneBricks), + "minecraft:birch_button" => Some(BlockKind::BirchButton), + "minecraft:light_gray_terracotta" => Some(BlockKind::LightGrayTerracotta), + "minecraft:acacia_leaves" => Some(BlockKind::AcaciaLeaves), + "minecraft:end_stone" => Some(BlockKind::EndStone), + "minecraft:brown_carpet" => Some(BlockKind::BrownCarpet), + "minecraft:crimson_planks" => Some(BlockKind::CrimsonPlanks), + "minecraft:acacia_fence_gate" => Some(BlockKind::AcaciaFenceGate), + "minecraft:detector_rail" => Some(BlockKind::DetectorRail), + "minecraft:warped_pressure_plate" => Some(BlockKind::WarpedPressurePlate), + "minecraft:cut_copper_stairs" => Some(BlockKind::CutCopperStairs), + "minecraft:oxidized_copper" => Some(BlockKind::OxidizedCopper), + "minecraft:light_blue_wall_banner" => Some(BlockKind::LightBlueWallBanner), + "minecraft:oak_log" => Some(BlockKind::OakLog), + "minecraft:lime_candle" => Some(BlockKind::LimeCandle), + "minecraft:crimson_nylium" => Some(BlockKind::CrimsonNylium), + "minecraft:black_stained_glass" => Some(BlockKind::BlackStainedGlass), + "minecraft:exposed_cut_copper" => Some(BlockKind::ExposedCutCopper), + "minecraft:crimson_slab" => Some(BlockKind::CrimsonSlab), + "minecraft:soul_soil" => Some(BlockKind::SoulSoil), + "minecraft:waxed_exposed_copper" => Some(BlockKind::WaxedExposedCopper), + "minecraft:yellow_stained_glass" => Some(BlockKind::YellowStainedGlass), + "minecraft:black_candle" => Some(BlockKind::BlackCandle), + "minecraft:lime_bed" => Some(BlockKind::LimeBed), + "minecraft:dried_kelp_block" => Some(BlockKind::DriedKelpBlock), + "minecraft:oak_planks" => Some(BlockKind::OakPlanks), + "minecraft:gray_banner" => Some(BlockKind::GrayBanner), + "minecraft:pink_shulker_box" => Some(BlockKind::PinkShulkerBox), + "minecraft:chiseled_polished_blackstone" => Some(BlockKind::ChiseledPolishedBlackstone), + "minecraft:red_bed" => Some(BlockKind::RedBed), + "minecraft:acacia_pressure_plate" => Some(BlockKind::AcaciaPressurePlate), + "minecraft:brown_wool" => Some(BlockKind::BrownWool), + "minecraft:light_blue_stained_glass" => Some(BlockKind::LightBlueStainedGlass), + "minecraft:magenta_terracotta" => Some(BlockKind::MagentaTerracotta), + "minecraft:blue_wall_banner" => Some(BlockKind::BlueWallBanner), + "minecraft:orange_candle" => Some(BlockKind::OrangeCandle), + "minecraft:packed_ice" => Some(BlockKind::PackedIce), + "minecraft:oak_pressure_plate" => Some(BlockKind::OakPressurePlate), + "minecraft:ice" => Some(BlockKind::Ice), + "minecraft:red_candle" => Some(BlockKind::RedCandle), + "minecraft:stripped_oak_wood" => Some(BlockKind::StrippedOakWood), + "minecraft:gray_wool" => Some(BlockKind::GrayWool), + "minecraft:polished_diorite_stairs" => Some(BlockKind::PolishedDioriteStairs), + "minecraft:blue_ice" => Some(BlockKind::BlueIce), + "minecraft:yellow_concrete_powder" => Some(BlockKind::YellowConcretePowder), + "minecraft:fire_coral_block" => Some(BlockKind::FireCoralBlock), + "minecraft:stripped_warped_stem" => Some(BlockKind::StrippedWarpedStem), + "minecraft:pink_wall_banner" => Some(BlockKind::PinkWallBanner), + "minecraft:brown_glazed_terracotta" => Some(BlockKind::BrownGlazedTerracotta), + "minecraft:azalea" => Some(BlockKind::Azalea), + "minecraft:polished_basalt" => Some(BlockKind::PolishedBasalt), + "minecraft:white_carpet" => Some(BlockKind::WhiteCarpet), + "minecraft:white_shulker_box" => Some(BlockKind::WhiteShulkerBox), + "minecraft:magenta_glazed_terracotta" => Some(BlockKind::MagentaGlazedTerracotta), + "minecraft:potted_allium" => Some(BlockKind::PottedAllium), + "minecraft:soul_fire" => Some(BlockKind::SoulFire), + "minecraft:magenta_banner" => Some(BlockKind::MagentaBanner), + "minecraft:rose_bush" => Some(BlockKind::RoseBush), + "minecraft:polished_blackstone_stairs" => Some(BlockKind::PolishedBlackstoneStairs), + "minecraft:activator_rail" => Some(BlockKind::ActivatorRail), + "minecraft:soul_lantern" => Some(BlockKind::SoulLantern), + "minecraft:potted_azure_bluet" => Some(BlockKind::PottedAzureBluet), + "minecraft:light_gray_wool" => Some(BlockKind::LightGrayWool), + "minecraft:polished_blackstone_brick_stairs" => { + Some(BlockKind::PolishedBlackstoneBrickStairs) } - BlockKind::WhiteStainedGlassPane => None, - BlockKind::OrangeStainedGlassPane => None, - BlockKind::MagentaStainedGlassPane => None, - BlockKind::LightBlueStainedGlassPane => None, - BlockKind::YellowStainedGlassPane => None, - BlockKind::LimeStainedGlassPane => None, - BlockKind::PinkStainedGlassPane => None, - BlockKind::GrayStainedGlassPane => None, - BlockKind::LightGrayStainedGlassPane => None, - BlockKind::CyanStainedGlassPane => None, - BlockKind::PurpleStainedGlassPane => None, - BlockKind::BlueStainedGlassPane => None, - BlockKind::BrownStainedGlassPane => None, - BlockKind::GreenStainedGlassPane => None, - BlockKind::RedStainedGlassPane => None, - BlockKind::BlackStainedGlassPane => None, - BlockKind::AcaciaStairs => None, - BlockKind::DarkOakStairs => None, - BlockKind::SlimeBlock => None, - BlockKind::Barrier => None, - BlockKind::IronTrapdoor => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:loom" => Some(BlockKind::Loom), + "minecraft:red_sand" => Some(BlockKind::RedSand), + "minecraft:blackstone" => Some(BlockKind::Blackstone), + "minecraft:magenta_concrete_powder" => Some(BlockKind::MagentaConcretePowder), + "minecraft:yellow_candle" => Some(BlockKind::YellowCandle), + "minecraft:oxidized_cut_copper_slab" => Some(BlockKind::OxidizedCutCopperSlab), + "minecraft:dark_oak_leaves" => Some(BlockKind::DarkOakLeaves), + "minecraft:tnt" => Some(BlockKind::Tnt), + "minecraft:amethyst_cluster" => Some(BlockKind::AmethystCluster), + "minecraft:fire_coral" => Some(BlockKind::FireCoral), + "minecraft:beehive" => Some(BlockKind::Beehive), + "minecraft:prismarine_brick_stairs" => Some(BlockKind::PrismarineBrickStairs), + "minecraft:blue_wool" => Some(BlockKind::BlueWool), + "minecraft:glass" => Some(BlockKind::Glass), + "minecraft:light_gray_stained_glass" => Some(BlockKind::LightGrayStainedGlass), + "minecraft:red_tulip" => Some(BlockKind::RedTulip), + "minecraft:black_wall_banner" => Some(BlockKind::BlackWallBanner), + "minecraft:lightning_rod" => Some(BlockKind::LightningRod), + "minecraft:pink_candle" => Some(BlockKind::PinkCandle), + "minecraft:cracked_deepslate_bricks" => Some(BlockKind::CrackedDeepslateBricks), + "minecraft:gray_glazed_terracotta" => Some(BlockKind::GrayGlazedTerracotta), + "minecraft:mossy_cobblestone_stairs" => Some(BlockKind::MossyCobblestoneStairs), + "minecraft:lapis_block" => Some(BlockKind::LapisBlock), + "minecraft:green_candle_cake" => Some(BlockKind::GreenCandleCake), + "minecraft:spruce_planks" => Some(BlockKind::SprucePlanks), + "minecraft:orange_shulker_box" => Some(BlockKind::OrangeShulkerBox), + "minecraft:nether_sprouts" => Some(BlockKind::NetherSprouts), + "minecraft:infested_cracked_stone_bricks" => { + Some(BlockKind::InfestedCrackedStoneBricks) } - BlockKind::Prismarine => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:light_gray_carpet" => Some(BlockKind::LightGrayCarpet), + "minecraft:chiseled_sandstone" => Some(BlockKind::ChiseledSandstone), + "minecraft:skeleton_skull" => Some(BlockKind::SkeletonSkull), + "minecraft:powder_snow" => Some(BlockKind::PowderSnow), + "minecraft:vine" => Some(BlockKind::Vine), + "minecraft:fire_coral_fan" => Some(BlockKind::FireCoralFan), + "minecraft:sculk_sensor" => Some(BlockKind::SculkSensor), + "minecraft:potted_crimson_fungus" => Some(BlockKind::PottedCrimsonFungus), + "minecraft:repeater" => Some(BlockKind::Repeater), + "minecraft:potted_bamboo" => Some(BlockKind::PottedBamboo), + "minecraft:red_mushroom_block" => Some(BlockKind::RedMushroomBlock), + "minecraft:birch_log" => Some(BlockKind::BirchLog), + "minecraft:small_dripleaf" => Some(BlockKind::SmallDripleaf), + "minecraft:mossy_stone_brick_wall" => Some(BlockKind::MossyStoneBrickWall), + "minecraft:cave_vines_plant" => Some(BlockKind::CaveVinesPlant), + "minecraft:grass" => Some(BlockKind::Grass), + "minecraft:lime_wall_banner" => Some(BlockKind::LimeWallBanner), + "minecraft:acacia_trapdoor" => Some(BlockKind::AcaciaTrapdoor), + "minecraft:twisting_vines" => Some(BlockKind::TwistingVines), + "minecraft:dragon_head" => Some(BlockKind::DragonHead), + "minecraft:piston_head" => Some(BlockKind::PistonHead), + "minecraft:sandstone" => Some(BlockKind::Sandstone), + "minecraft:purple_banner" => Some(BlockKind::PurpleBanner), + "minecraft:raw_copper_block" => Some(BlockKind::RawCopperBlock), + "minecraft:oak_door" => Some(BlockKind::OakDoor), + "minecraft:orange_carpet" => Some(BlockKind::OrangeCarpet), + "minecraft:oak_slab" => Some(BlockKind::OakSlab), + "minecraft:red_carpet" => Some(BlockKind::RedCarpet), + "minecraft:waxed_exposed_cut_copper_slab" => Some(BlockKind::WaxedExposedCutCopperSlab), + "minecraft:dead_bush" => Some(BlockKind::DeadBush), + "minecraft:orange_banner" => Some(BlockKind::OrangeBanner), + "minecraft:chest" => Some(BlockKind::Chest), + "minecraft:chorus_flower" => Some(BlockKind::ChorusFlower), + "minecraft:polished_andesite" => Some(BlockKind::PolishedAndesite), + "minecraft:stripped_oak_log" => Some(BlockKind::StrippedOakLog), + "minecraft:redstone_ore" => Some(BlockKind::RedstoneOre), + "minecraft:spruce_stairs" => Some(BlockKind::SpruceStairs), + "minecraft:fire" => Some(BlockKind::Fire), + "minecraft:cyan_carpet" => Some(BlockKind::CyanCarpet), + "minecraft:brown_terracotta" => Some(BlockKind::BrownTerracotta), + "minecraft:brown_stained_glass" => Some(BlockKind::BrownStainedGlass), + "minecraft:deepslate_lapis_ore" => Some(BlockKind::DeepslateLapisOre), + "minecraft:quartz_bricks" => Some(BlockKind::QuartzBricks), + "minecraft:blackstone_slab" => Some(BlockKind::BlackstoneSlab), + "minecraft:waxed_oxidized_cut_copper" => Some(BlockKind::WaxedOxidizedCutCopper), + "minecraft:sea_pickle" => Some(BlockKind::SeaPickle), + "minecraft:spruce_sapling" => Some(BlockKind::SpruceSapling), + "minecraft:diorite_stairs" => Some(BlockKind::DioriteStairs), + "minecraft:copper_block" => Some(BlockKind::CopperBlock), + "minecraft:dead_horn_coral_fan" => Some(BlockKind::DeadHornCoralFan), + "minecraft:white_banner" => Some(BlockKind::WhiteBanner), + "minecraft:potted_brown_mushroom" => Some(BlockKind::PottedBrownMushroom), + "minecraft:coal_block" => Some(BlockKind::CoalBlock), + "minecraft:black_shulker_box" => Some(BlockKind::BlackShulkerBox), + "minecraft:cyan_candle_cake" => Some(BlockKind::CyanCandleCake), + "minecraft:redstone_lamp" => Some(BlockKind::RedstoneLamp), + "minecraft:tripwire" => Some(BlockKind::Tripwire), + "minecraft:potted_dead_bush" => Some(BlockKind::PottedDeadBush), + "minecraft:nether_quartz_ore" => Some(BlockKind::NetherQuartzOre), + "minecraft:powered_rail" => Some(BlockKind::PoweredRail), + "minecraft:zombie_head" => Some(BlockKind::ZombieHead), + "minecraft:deepslate_brick_wall" => Some(BlockKind::DeepslateBrickWall), + "minecraft:deepslate_iron_ore" => Some(BlockKind::DeepslateIronOre), + "minecraft:horn_coral_wall_fan" => Some(BlockKind::HornCoralWallFan), + "minecraft:bookshelf" => Some(BlockKind::Bookshelf), + "minecraft:warped_stem" => Some(BlockKind::WarpedStem), + "minecraft:sponge" => Some(BlockKind::Sponge), + "minecraft:melon_stem" => Some(BlockKind::MelonStem), + "minecraft:jungle_sign" => Some(BlockKind::JungleSign), + "minecraft:large_amethyst_bud" => Some(BlockKind::LargeAmethystBud), + "minecraft:cyan_shulker_box" => Some(BlockKind::CyanShulkerBox), + "minecraft:purple_terracotta" => Some(BlockKind::PurpleTerracotta), + "minecraft:cut_copper_slab" => Some(BlockKind::CutCopperSlab), + "minecraft:iron_door" => Some(BlockKind::IronDoor), + "minecraft:stripped_jungle_wood" => Some(BlockKind::StrippedJungleWood), + "minecraft:gray_concrete" => Some(BlockKind::GrayConcrete), + "minecraft:polished_deepslate" => Some(BlockKind::PolishedDeepslate), + "minecraft:lime_candle_cake" => Some(BlockKind::LimeCandleCake), + "minecraft:creeper_head" => Some(BlockKind::CreeperHead), + "minecraft:deepslate_diamond_ore" => Some(BlockKind::DeepslateDiamondOre), + "minecraft:quartz_stairs" => Some(BlockKind::QuartzStairs), + "minecraft:lime_carpet" => Some(BlockKind::LimeCarpet), + "minecraft:smooth_sandstone_slab" => Some(BlockKind::SmoothSandstoneSlab), + "minecraft:dead_brain_coral_fan" => Some(BlockKind::DeadBrainCoralFan), + "minecraft:chipped_anvil" => Some(BlockKind::ChippedAnvil), + "minecraft:potted_oxeye_daisy" => Some(BlockKind::PottedOxeyeDaisy), + "minecraft:nether_gold_ore" => Some(BlockKind::NetherGoldOre), + "minecraft:brick_slab" => Some(BlockKind::BrickSlab), + "minecraft:polished_blackstone_button" => Some(BlockKind::PolishedBlackstoneButton), + "minecraft:attached_melon_stem" => Some(BlockKind::AttachedMelonStem), + "minecraft:big_dripleaf" => Some(BlockKind::BigDripleaf), + "minecraft:potted_cactus" => Some(BlockKind::PottedCactus), + "minecraft:iron_trapdoor" => Some(BlockKind::IronTrapdoor), + "minecraft:jack_o_lantern" => Some(BlockKind::JackOLantern), + "minecraft:brown_stained_glass_pane" => Some(BlockKind::BrownStainedGlassPane), + "minecraft:cut_sandstone_slab" => Some(BlockKind::CutSandstoneSlab), + "minecraft:potted_red_mushroom" => Some(BlockKind::PottedRedMushroom), + "minecraft:waxed_cut_copper_slab" => Some(BlockKind::WaxedCutCopperSlab), + "minecraft:grass_block" => Some(BlockKind::GrassBlock), + "minecraft:deepslate" => Some(BlockKind::Deepslate), + "minecraft:birch_sign" => Some(BlockKind::BirchSign), + "minecraft:dark_prismarine_stairs" => Some(BlockKind::DarkPrismarineStairs), + "minecraft:lime_concrete" => Some(BlockKind::LimeConcrete), + "minecraft:oak_wall_sign" => Some(BlockKind::OakWallSign), + "minecraft:void_air" => Some(BlockKind::VoidAir), + "minecraft:wither_skeleton_skull" => Some(BlockKind::WitherSkeletonSkull), + "minecraft:diorite_wall" => Some(BlockKind::DioriteWall), + "minecraft:warped_fungus" => Some(BlockKind::WarpedFungus), + "minecraft:weeping_vines" => Some(BlockKind::WeepingVines), + "minecraft:andesite_stairs" => Some(BlockKind::AndesiteStairs), + "minecraft:infested_deepslate" => Some(BlockKind::InfestedDeepslate), + "minecraft:chiseled_stone_bricks" => Some(BlockKind::ChiseledStoneBricks), + "minecraft:yellow_terracotta" => Some(BlockKind::YellowTerracotta), + "minecraft:light_blue_stained_glass_pane" => Some(BlockKind::LightBlueStainedGlassPane), + "minecraft:cobblestone_wall" => Some(BlockKind::CobblestoneWall), + "minecraft:attached_pumpkin_stem" => Some(BlockKind::AttachedPumpkinStem), + "minecraft:lily_pad" => Some(BlockKind::LilyPad), + "minecraft:fern" => Some(BlockKind::Fern), + "minecraft:raw_iron_block" => Some(BlockKind::RawIronBlock), + "minecraft:stone_brick_slab" => Some(BlockKind::StoneBrickSlab), + "minecraft:warped_nylium" => Some(BlockKind::WarpedNylium), + "minecraft:jungle_stairs" => Some(BlockKind::JungleStairs), + "minecraft:yellow_glazed_terracotta" => Some(BlockKind::YellowGlazedTerracotta), + "minecraft:red_concrete_powder" => Some(BlockKind::RedConcretePowder), + "minecraft:lime_banner" => Some(BlockKind::LimeBanner), + "minecraft:diorite" => Some(BlockKind::Diorite), + "minecraft:light_blue_terracotta" => Some(BlockKind::LightBlueTerracotta), + "minecraft:blue_shulker_box" => Some(BlockKind::BlueShulkerBox), + "minecraft:potted_birch_sapling" => Some(BlockKind::PottedBirchSapling), + "minecraft:prismarine_brick_slab" => Some(BlockKind::PrismarineBrickSlab), + "minecraft:black_bed" => Some(BlockKind::BlackBed), + "minecraft:warped_hyphae" => Some(BlockKind::WarpedHyphae), + "minecraft:end_stone_brick_stairs" => Some(BlockKind::EndStoneBrickStairs), + "minecraft:dandelion" => Some(BlockKind::Dandelion), + "minecraft:campfire" => Some(BlockKind::Campfire), + "minecraft:barrier" => Some(BlockKind::Barrier), + "minecraft:gilded_blackstone" => Some(BlockKind::GildedBlackstone), + "minecraft:lime_glazed_terracotta" => Some(BlockKind::LimeGlazedTerracotta), + "minecraft:acacia_wall_sign" => Some(BlockKind::AcaciaWallSign), + "minecraft:chain_command_block" => Some(BlockKind::ChainCommandBlock), + "minecraft:cracked_polished_blackstone_bricks" => { + Some(BlockKind::CrackedPolishedBlackstoneBricks) } - BlockKind::PrismarineBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:tube_coral_fan" => Some(BlockKind::TubeCoralFan), + "minecraft:oak_fence_gate" => Some(BlockKind::OakFenceGate), + "minecraft:dark_oak_stairs" => Some(BlockKind::DarkOakStairs), + "minecraft:dark_prismarine_slab" => Some(BlockKind::DarkPrismarineSlab), + "minecraft:potted_warped_fungus" => Some(BlockKind::PottedWarpedFungus), + "minecraft:magenta_wall_banner" => Some(BlockKind::MagentaWallBanner), + "minecraft:orange_wool" => Some(BlockKind::OrangeWool), + "minecraft:jungle_pressure_plate" => Some(BlockKind::JunglePressurePlate), + "minecraft:beacon" => Some(BlockKind::Beacon), + "minecraft:allium" => Some(BlockKind::Allium), + "minecraft:basalt" => Some(BlockKind::Basalt), + "minecraft:black_wool" => Some(BlockKind::BlackWool), + "minecraft:damaged_anvil" => Some(BlockKind::DamagedAnvil), + "minecraft:acacia_slab" => Some(BlockKind::AcaciaSlab), + "minecraft:wither_skeleton_wall_skull" => Some(BlockKind::WitherSkeletonWallSkull), + "minecraft:green_terracotta" => Some(BlockKind::GreenTerracotta), + "minecraft:birch_sapling" => Some(BlockKind::BirchSapling), + "minecraft:dirt_path" => Some(BlockKind::DirtPath), + "minecraft:conduit" => Some(BlockKind::Conduit), + "minecraft:blue_candle_cake" => Some(BlockKind::BlueCandleCake), + "minecraft:rooted_dirt" => Some(BlockKind::RootedDirt), + "minecraft:cyan_terracotta" => Some(BlockKind::CyanTerracotta), + "minecraft:red_sandstone_stairs" => Some(BlockKind::RedSandstoneStairs), + "minecraft:light_blue_candle_cake" => Some(BlockKind::LightBlueCandleCake), + "minecraft:weathered_copper" => Some(BlockKind::WeatheredCopper), + "minecraft:cobblestone_stairs" => Some(BlockKind::CobblestoneStairs), + "minecraft:spruce_wall_sign" => Some(BlockKind::SpruceWallSign), + "minecraft:potted_spruce_sapling" => Some(BlockKind::PottedSpruceSapling), + "minecraft:potted_dandelion" => Some(BlockKind::PottedDandelion), + "minecraft:spruce_pressure_plate" => Some(BlockKind::SprucePressurePlate), + "minecraft:jigsaw" => Some(BlockKind::Jigsaw), + "minecraft:kelp" => Some(BlockKind::Kelp), + "minecraft:dead_bubble_coral_block" => Some(BlockKind::DeadBubbleCoralBlock), + "minecraft:dead_brain_coral" => Some(BlockKind::DeadBrainCoral), + "minecraft:gray_wall_banner" => Some(BlockKind::GrayWallBanner), + "minecraft:prismarine_stairs" => Some(BlockKind::PrismarineStairs), + "minecraft:green_concrete_powder" => Some(BlockKind::GreenConcretePowder), + "minecraft:weathered_cut_copper_stairs" => Some(BlockKind::WeatheredCutCopperStairs), + "minecraft:piston" => Some(BlockKind::Piston), + "minecraft:chiseled_quartz_block" => Some(BlockKind::ChiseledQuartzBlock), + "minecraft:peony" => Some(BlockKind::Peony), + "minecraft:crimson_roots" => Some(BlockKind::CrimsonRoots), + "minecraft:spruce_sign" => Some(BlockKind::SpruceSign), + "minecraft:dead_fire_coral_wall_fan" => Some(BlockKind::DeadFireCoralWallFan), + "minecraft:magenta_stained_glass" => Some(BlockKind::MagentaStainedGlass), + "minecraft:oxeye_daisy" => Some(BlockKind::OxeyeDaisy), + "minecraft:magenta_concrete" => Some(BlockKind::MagentaConcrete), + "minecraft:mushroom_stem" => Some(BlockKind::MushroomStem), + "minecraft:water_cauldron" => Some(BlockKind::WaterCauldron), + "minecraft:black_concrete" => Some(BlockKind::BlackConcrete), + "minecraft:magma_block" => Some(BlockKind::MagmaBlock), + "minecraft:horn_coral_fan" => Some(BlockKind::HornCoralFan), + "minecraft:blue_stained_glass_pane" => Some(BlockKind::BlueStainedGlassPane), + "minecraft:crimson_stairs" => Some(BlockKind::CrimsonStairs), + "minecraft:dragon_egg" => Some(BlockKind::DragonEgg), + "minecraft:polished_blackstone_brick_slab" => { + Some(BlockKind::PolishedBlackstoneBrickSlab) } - BlockKind::DarkPrismarine => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:purpur_pillar" => Some(BlockKind::PurpurPillar), + "minecraft:deepslate_gold_ore" => Some(BlockKind::DeepslateGoldOre), + "minecraft:stripped_acacia_log" => Some(BlockKind::StrippedAcaciaLog), + "minecraft:lime_stained_glass_pane" => Some(BlockKind::LimeStainedGlassPane), + "minecraft:birch_wood" => Some(BlockKind::BirchWood), + "minecraft:blue_candle" => Some(BlockKind::BlueCandle), + "minecraft:iron_bars" => Some(BlockKind::IronBars), + "minecraft:orange_candle_cake" => Some(BlockKind::OrangeCandleCake), + "minecraft:stone" => Some(BlockKind::Stone), + "minecraft:dark_oak_button" => Some(BlockKind::DarkOakButton), + "minecraft:nether_brick_stairs" => Some(BlockKind::NetherBrickStairs), + "minecraft:jungle_wood" => Some(BlockKind::JungleWood), + "minecraft:cobbled_deepslate_wall" => Some(BlockKind::CobbledDeepslateWall), + "minecraft:bone_block" => Some(BlockKind::BoneBlock), + "minecraft:moss_block" => Some(BlockKind::MossBlock), + "minecraft:brown_concrete_powder" => Some(BlockKind::BrownConcretePowder), + "minecraft:creeper_wall_head" => Some(BlockKind::CreeperWallHead), + "minecraft:lantern" => Some(BlockKind::Lantern), + "minecraft:blue_stained_glass" => Some(BlockKind::BlueStainedGlass), + "minecraft:warped_stairs" => Some(BlockKind::WarpedStairs), + "minecraft:brewing_stand" => Some(BlockKind::BrewingStand), + "minecraft:waxed_cut_copper_stairs" => Some(BlockKind::WaxedCutCopperStairs), + "minecraft:obsidian" => Some(BlockKind::Obsidian), + "minecraft:chain" => Some(BlockKind::Chain), + "minecraft:pink_wool" => Some(BlockKind::PinkWool), + "minecraft:mossy_cobblestone_slab" => Some(BlockKind::MossyCobblestoneSlab), + "minecraft:end_portal" => Some(BlockKind::EndPortal), + "minecraft:prismarine_bricks" => Some(BlockKind::PrismarineBricks), + "minecraft:brown_mushroom_block" => Some(BlockKind::BrownMushroomBlock), + "minecraft:deepslate_redstone_ore" => Some(BlockKind::DeepslateRedstoneOre), + "minecraft:black_glazed_terracotta" => Some(BlockKind::BlackGlazedTerracotta), + "minecraft:light_blue_banner" => Some(BlockKind::LightBlueBanner), + "minecraft:oxidized_cut_copper_stairs" => Some(BlockKind::OxidizedCutCopperStairs), + "minecraft:smooth_sandstone" => Some(BlockKind::SmoothSandstone), + "minecraft:purple_shulker_box" => Some(BlockKind::PurpleShulkerBox), + "minecraft:soul_campfire" => Some(BlockKind::SoulCampfire), + "minecraft:skeleton_wall_skull" => Some(BlockKind::SkeletonWallSkull), + "minecraft:deepslate_copper_ore" => Some(BlockKind::DeepslateCopperOre), + "minecraft:red_banner" => Some(BlockKind::RedBanner), + "minecraft:smoker" => Some(BlockKind::Smoker), + "minecraft:stone_button" => Some(BlockKind::StoneButton), + "minecraft:podzol" => Some(BlockKind::Podzol), + "minecraft:purple_stained_glass_pane" => Some(BlockKind::PurpleStainedGlassPane), + "minecraft:gray_carpet" => Some(BlockKind::GrayCarpet), + "minecraft:warped_sign" => Some(BlockKind::WarpedSign), + "minecraft:magenta_candle" => Some(BlockKind::MagentaCandle), + "minecraft:orange_bed" => Some(BlockKind::OrangeBed), + "minecraft:warped_door" => Some(BlockKind::WarpedDoor), + "minecraft:yellow_bed" => Some(BlockKind::YellowBed), + "minecraft:blackstone_wall" => Some(BlockKind::BlackstoneWall), + "minecraft:carrots" => Some(BlockKind::Carrots), + "minecraft:command_block" => Some(BlockKind::CommandBlock), + "minecraft:clay" => Some(BlockKind::Clay), + "minecraft:purple_candle" => Some(BlockKind::PurpleCandle), + "minecraft:warped_fence_gate" => Some(BlockKind::WarpedFenceGate), + "minecraft:snow_block" => Some(BlockKind::SnowBlock), + "minecraft:seagrass" => Some(BlockKind::Seagrass), + "minecraft:tuff" => Some(BlockKind::Tuff), + "minecraft:redstone_torch" => Some(BlockKind::RedstoneTorch), + "minecraft:polished_deepslate_slab" => Some(BlockKind::PolishedDeepslateSlab), + "minecraft:warped_button" => Some(BlockKind::WarpedButton), + "minecraft:purple_concrete" => Some(BlockKind::PurpleConcrete), + "minecraft:lime_wool" => Some(BlockKind::LimeWool), + "minecraft:petrified_oak_slab" => Some(BlockKind::PetrifiedOakSlab), + "minecraft:iron_block" => Some(BlockKind::IronBlock), + "minecraft:yellow_concrete" => Some(BlockKind::YellowConcrete), + "minecraft:polished_blackstone_pressure_plate" => { + Some(BlockKind::PolishedBlackstonePressurePlate) } - BlockKind::PrismarineStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:black_concrete_powder" => Some(BlockKind::BlackConcretePowder), + "minecraft:smooth_red_sandstone" => Some(BlockKind::SmoothRedSandstone), + "minecraft:end_rod" => Some(BlockKind::EndRod), + "minecraft:black_banner" => Some(BlockKind::BlackBanner), + "minecraft:dropper" => Some(BlockKind::Dropper), + "minecraft:jungle_sapling" => Some(BlockKind::JungleSapling), + "minecraft:moving_piston" => Some(BlockKind::MovingPiston), + "minecraft:polished_diorite" => Some(BlockKind::PolishedDiorite), + "minecraft:nether_wart_block" => Some(BlockKind::NetherWartBlock), + "minecraft:potatoes" => Some(BlockKind::Potatoes), + "minecraft:dark_oak_fence" => Some(BlockKind::DarkOakFence), + "minecraft:stone_bricks" => Some(BlockKind::StoneBricks), + "minecraft:light_gray_bed" => Some(BlockKind::LightGrayBed), + "minecraft:dark_oak_fence_gate" => Some(BlockKind::DarkOakFenceGate), + "minecraft:slime_block" => Some(BlockKind::SlimeBlock), + "minecraft:beetroots" => Some(BlockKind::Beetroots), + "minecraft:cyan_wool" => Some(BlockKind::CyanWool), + "minecraft:potted_red_tulip" => Some(BlockKind::PottedRedTulip), + "minecraft:candle" => Some(BlockKind::Candle), + "minecraft:netherrack" => Some(BlockKind::Netherrack), + "minecraft:prismarine" => Some(BlockKind::Prismarine), + "minecraft:blue_orchid" => Some(BlockKind::BlueOrchid), + "minecraft:spruce_trapdoor" => Some(BlockKind::SpruceTrapdoor), + "minecraft:potted_blue_orchid" => Some(BlockKind::PottedBlueOrchid), + "minecraft:polished_andesite_slab" => Some(BlockKind::PolishedAndesiteSlab), + "minecraft:dead_horn_coral_wall_fan" => Some(BlockKind::DeadHornCoralWallFan), + "minecraft:purple_wall_banner" => Some(BlockKind::PurpleWallBanner), + "minecraft:oak_button" => Some(BlockKind::OakButton), + "minecraft:kelp_plant" => Some(BlockKind::KelpPlant), + "minecraft:brain_coral" => Some(BlockKind::BrainCoral), + "minecraft:polished_diorite_slab" => Some(BlockKind::PolishedDioriteSlab), + "minecraft:cobbled_deepslate" => Some(BlockKind::CobbledDeepslate), + "minecraft:green_carpet" => Some(BlockKind::GreenCarpet), + "minecraft:red_wall_banner" => Some(BlockKind::RedWallBanner), + "minecraft:acacia_stairs" => Some(BlockKind::AcaciaStairs), + "minecraft:emerald_ore" => Some(BlockKind::EmeraldOre), + "minecraft:diamond_ore" => Some(BlockKind::DiamondOre), + "minecraft:stripped_jungle_log" => Some(BlockKind::StrippedJungleLog), + "minecraft:potted_jungle_sapling" => Some(BlockKind::PottedJungleSapling), + "minecraft:birch_door" => Some(BlockKind::BirchDoor), + "minecraft:smooth_red_sandstone_stairs" => Some(BlockKind::SmoothRedSandstoneStairs), + "minecraft:magenta_carpet" => Some(BlockKind::MagentaCarpet), + "minecraft:spruce_door" => Some(BlockKind::SpruceDoor), + "minecraft:quartz_block" => Some(BlockKind::QuartzBlock), + "minecraft:dark_oak_wood" => Some(BlockKind::DarkOakWood), + "minecraft:dead_bubble_coral" => Some(BlockKind::DeadBubbleCoral), + "minecraft:crimson_pressure_plate" => Some(BlockKind::CrimsonPressurePlate), + "minecraft:mossy_stone_brick_slab" => Some(BlockKind::MossyStoneBrickSlab), + "minecraft:air" => Some(BlockKind::Air), + "minecraft:end_stone_bricks" => Some(BlockKind::EndStoneBricks), + "minecraft:jungle_log" => Some(BlockKind::JungleLog), + "minecraft:potted_white_tulip" => Some(BlockKind::PottedWhiteTulip), + "minecraft:diorite_slab" => Some(BlockKind::DioriteSlab), + "minecraft:infested_mossy_stone_bricks" => Some(BlockKind::InfestedMossyStoneBricks), + "minecraft:gray_stained_glass" => Some(BlockKind::GrayStainedGlass), + "minecraft:potted_oak_sapling" => Some(BlockKind::PottedOakSapling), + "minecraft:smooth_quartz_slab" => Some(BlockKind::SmoothQuartzSlab), + "minecraft:white_candle_cake" => Some(BlockKind::WhiteCandleCake), + "minecraft:cave_vines" => Some(BlockKind::CaveVines), + "minecraft:yellow_carpet" => Some(BlockKind::YellowCarpet), + "minecraft:brick_stairs" => Some(BlockKind::BrickStairs), + "minecraft:prismarine_slab" => Some(BlockKind::PrismarineSlab), + "minecraft:warped_roots" => Some(BlockKind::WarpedRoots), + "minecraft:flower_pot" => Some(BlockKind::FlowerPot), + "minecraft:birch_fence_gate" => Some(BlockKind::BirchFenceGate), + "minecraft:deepslate_emerald_ore" => Some(BlockKind::DeepslateEmeraldOre), + "minecraft:exposed_cut_copper_stairs" => Some(BlockKind::ExposedCutCopperStairs), + "minecraft:wall_torch" => Some(BlockKind::WallTorch), + "minecraft:bubble_column" => Some(BlockKind::BubbleColumn), + "minecraft:cyan_candle" => Some(BlockKind::CyanCandle), + "minecraft:cut_copper" => Some(BlockKind::CutCopper), + "minecraft:dead_fire_coral_block" => Some(BlockKind::DeadFireCoralBlock), + "minecraft:blue_terracotta" => Some(BlockKind::BlueTerracotta), + "minecraft:ender_chest" => Some(BlockKind::EnderChest), + "minecraft:yellow_shulker_box" => Some(BlockKind::YellowShulkerBox), + "minecraft:coarse_dirt" => Some(BlockKind::CoarseDirt), + "minecraft:black_candle_cake" => Some(BlockKind::BlackCandleCake), + "minecraft:hanging_roots" => Some(BlockKind::HangingRoots), + "minecraft:green_wall_banner" => Some(BlockKind::GreenWallBanner), + "minecraft:smooth_stone" => Some(BlockKind::SmoothStone), + "minecraft:jungle_fence" => Some(BlockKind::JungleFence), + "minecraft:deepslate_tile_wall" => Some(BlockKind::DeepslateTileWall), + "minecraft:pink_stained_glass" => Some(BlockKind::PinkStainedGlass), + "minecraft:bubble_coral_wall_fan" => Some(BlockKind::BubbleCoralWallFan), + "minecraft:white_stained_glass" => Some(BlockKind::WhiteStainedGlass), + "minecraft:gray_concrete_powder" => Some(BlockKind::GrayConcretePowder), + "minecraft:dark_oak_pressure_plate" => Some(BlockKind::DarkOakPressurePlate), + "minecraft:brown_mushroom" => Some(BlockKind::BrownMushroom), + "minecraft:spawner" => Some(BlockKind::Spawner), + "minecraft:green_glazed_terracotta" => Some(BlockKind::GreenGlazedTerracotta), + "minecraft:brain_coral_block" => Some(BlockKind::BrainCoralBlock), + "minecraft:dead_tube_coral" => Some(BlockKind::DeadTubeCoral), + "minecraft:brown_concrete" => Some(BlockKind::BrownConcrete), + "minecraft:gravel" => Some(BlockKind::Gravel), + "minecraft:twisting_vines_plant" => Some(BlockKind::TwistingVinesPlant), + "minecraft:medium_amethyst_bud" => Some(BlockKind::MediumAmethystBud), + "minecraft:cobbled_deepslate_stairs" => Some(BlockKind::CobbledDeepslateStairs), + "minecraft:large_fern" => Some(BlockKind::LargeFern), + "minecraft:green_banner" => Some(BlockKind::GreenBanner), + "minecraft:light_weighted_pressure_plate" => { + Some(BlockKind::LightWeightedPressurePlate) } - BlockKind::PrismarineBrickStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:yellow_wool" => Some(BlockKind::YellowWool), + "minecraft:crying_obsidian" => Some(BlockKind::CryingObsidian), + "minecraft:waxed_cut_copper" => Some(BlockKind::WaxedCutCopper), + "minecraft:barrel" => Some(BlockKind::Barrel), + "minecraft:potted_cornflower" => Some(BlockKind::PottedCornflower), + "minecraft:pink_candle_cake" => Some(BlockKind::PinkCandleCake), + "minecraft:blue_banner" => Some(BlockKind::BlueBanner), + "minecraft:dark_oak_sign" => Some(BlockKind::DarkOakSign), + "minecraft:granite" => Some(BlockKind::Granite), + "minecraft:sandstone_stairs" => Some(BlockKind::SandstoneStairs), + "minecraft:chiseled_red_sandstone" => Some(BlockKind::ChiseledRedSandstone), + "minecraft:warped_wall_sign" => Some(BlockKind::WarpedWallSign), + "minecraft:tinted_glass" => Some(BlockKind::TintedGlass), + "minecraft:smooth_basalt" => Some(BlockKind::SmoothBasalt), + "minecraft:magenta_candle_cake" => Some(BlockKind::MagentaCandleCake), + "minecraft:white_tulip" => Some(BlockKind::WhiteTulip), + "minecraft:white_concrete_powder" => Some(BlockKind::WhiteConcretePowder), + "minecraft:budding_amethyst" => Some(BlockKind::BuddingAmethyst), + "minecraft:white_glazed_terracotta" => Some(BlockKind::WhiteGlazedTerracotta), + "minecraft:potted_wither_rose" => Some(BlockKind::PottedWitherRose), + "minecraft:gray_candle_cake" => Some(BlockKind::GrayCandleCake), + "minecraft:magenta_wool" => Some(BlockKind::MagentaWool), + "minecraft:pink_terracotta" => Some(BlockKind::PinkTerracotta), + "minecraft:warped_slab" => Some(BlockKind::WarpedSlab), + "minecraft:crimson_fence" => Some(BlockKind::CrimsonFence), + "minecraft:tall_seagrass" => Some(BlockKind::TallSeagrass), + "minecraft:deepslate_coal_ore" => Some(BlockKind::DeepslateCoalOre), + "minecraft:warped_trapdoor" => Some(BlockKind::WarpedTrapdoor), + "minecraft:light_blue_shulker_box" => Some(BlockKind::LightBlueShulkerBox), + "minecraft:brown_bed" => Some(BlockKind::BrownBed), + "minecraft:cyan_stained_glass" => Some(BlockKind::CyanStainedGlass), + "minecraft:red_stained_glass" => Some(BlockKind::RedStainedGlass), + "minecraft:blast_furnace" => Some(BlockKind::BlastFurnace), + "minecraft:light_blue_bed" => Some(BlockKind::LightBlueBed), + "minecraft:dead_tube_coral_block" => Some(BlockKind::DeadTubeCoralBlock), + "minecraft:green_bed" => Some(BlockKind::GreenBed), + "minecraft:mossy_stone_bricks" => Some(BlockKind::MossyStoneBricks), + "minecraft:weathered_cut_copper_slab" => Some(BlockKind::WeatheredCutCopperSlab), + "minecraft:smooth_red_sandstone_slab" => Some(BlockKind::SmoothRedSandstoneSlab), + "minecraft:cobbled_deepslate_slab" => Some(BlockKind::CobbledDeepslateSlab), + "minecraft:melon" => Some(BlockKind::Melon), + "minecraft:turtle_egg" => Some(BlockKind::TurtleEgg), + "minecraft:acacia_planks" => Some(BlockKind::AcaciaPlanks), + "minecraft:stone_brick_wall" => Some(BlockKind::StoneBrickWall), + "minecraft:nether_wart" => Some(BlockKind::NetherWart), + "minecraft:waxed_exposed_cut_copper" => Some(BlockKind::WaxedExposedCutCopper), + "minecraft:jungle_slab" => Some(BlockKind::JungleSlab), + "minecraft:yellow_stained_glass_pane" => Some(BlockKind::YellowStainedGlassPane), + "minecraft:quartz_pillar" => Some(BlockKind::QuartzPillar), + "minecraft:end_portal_frame" => Some(BlockKind::EndPortalFrame), + "minecraft:end_gateway" => Some(BlockKind::EndGateway), + "minecraft:crimson_trapdoor" => Some(BlockKind::CrimsonTrapdoor), + "minecraft:pointed_dripstone" => Some(BlockKind::PointedDripstone), + "minecraft:waxed_weathered_cut_copper" => Some(BlockKind::WaxedWeatheredCutCopper), + "minecraft:sandstone_slab" => Some(BlockKind::SandstoneSlab), + "minecraft:cut_sandstone" => Some(BlockKind::CutSandstone), + "minecraft:granite_stairs" => Some(BlockKind::GraniteStairs), + "minecraft:white_candle" => Some(BlockKind::WhiteCandle), + "minecraft:coal_ore" => Some(BlockKind::CoalOre), + "minecraft:carved_pumpkin" => Some(BlockKind::CarvedPumpkin), + "minecraft:black_terracotta" => Some(BlockKind::BlackTerracotta), + "minecraft:crimson_fence_gate" => Some(BlockKind::CrimsonFenceGate), + "minecraft:dripstone_block" => Some(BlockKind::DripstoneBlock), + "minecraft:infested_chiseled_stone_bricks" => { + Some(BlockKind::InfestedChiseledStoneBricks) } - BlockKind::DarkPrismarineStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:poppy" => Some(BlockKind::Poppy), + "minecraft:brain_coral_fan" => Some(BlockKind::BrainCoralFan), + "minecraft:soul_wall_torch" => Some(BlockKind::SoulWallTorch), + "minecraft:redstone_block" => Some(BlockKind::RedstoneBlock), + "minecraft:orange_stained_glass" => Some(BlockKind::OrangeStainedGlass), + "minecraft:cartography_table" => Some(BlockKind::CartographyTable), + "minecraft:respawn_anchor" => Some(BlockKind::RespawnAnchor), + "minecraft:red_nether_brick_slab" => Some(BlockKind::RedNetherBrickSlab), + "minecraft:acacia_fence" => Some(BlockKind::AcaciaFence), + "minecraft:snow" => Some(BlockKind::Snow), + "minecraft:light_gray_concrete_powder" => Some(BlockKind::LightGrayConcretePowder), + "minecraft:infested_cobblestone" => Some(BlockKind::InfestedCobblestone), + "minecraft:tube_coral_wall_fan" => Some(BlockKind::TubeCoralWallFan), + "minecraft:mossy_stone_brick_stairs" => Some(BlockKind::MossyStoneBrickStairs), + "minecraft:blue_concrete_powder" => Some(BlockKind::BlueConcretePowder), + "minecraft:deepslate_tile_stairs" => Some(BlockKind::DeepslateTileStairs), + "minecraft:heavy_weighted_pressure_plate" => { + Some(BlockKind::HeavyWeightedPressurePlate) } - BlockKind::PrismarineSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:dark_prismarine" => Some(BlockKind::DarkPrismarine), + "minecraft:dead_fire_coral_fan" => Some(BlockKind::DeadFireCoralFan), + "minecraft:pink_banner" => Some(BlockKind::PinkBanner), + "minecraft:redstone_wall_torch" => Some(BlockKind::RedstoneWallTorch), + "minecraft:weathered_cut_copper" => Some(BlockKind::WeatheredCutCopper), + "minecraft:light_gray_banner" => Some(BlockKind::LightGrayBanner), + "minecraft:zombie_wall_head" => Some(BlockKind::ZombieWallHead), + "minecraft:stonecutter" => Some(BlockKind::Stonecutter), + "minecraft:cyan_concrete_powder" => Some(BlockKind::CyanConcretePowder), + "minecraft:exposed_cut_copper_slab" => Some(BlockKind::ExposedCutCopperSlab), + "minecraft:amethyst_block" => Some(BlockKind::AmethystBlock), + "minecraft:bubble_coral_fan" => Some(BlockKind::BubbleCoralFan), + "minecraft:dark_oak_trapdoor" => Some(BlockKind::DarkOakTrapdoor), + "minecraft:cut_red_sandstone_slab" => Some(BlockKind::CutRedSandstoneSlab), + "minecraft:light_gray_glazed_terracotta" => Some(BlockKind::LightGrayGlazedTerracotta), + "minecraft:cornflower" => Some(BlockKind::Cornflower), + "minecraft:fire_coral_wall_fan" => Some(BlockKind::FireCoralWallFan), + "minecraft:lapis_ore" => Some(BlockKind::LapisOre), + "minecraft:blue_bed" => Some(BlockKind::BlueBed), + "minecraft:red_stained_glass_pane" => Some(BlockKind::RedStainedGlassPane), + "minecraft:lime_stained_glass" => Some(BlockKind::LimeStainedGlass), + "minecraft:nether_brick_slab" => Some(BlockKind::NetherBrickSlab), + "minecraft:white_wool" => Some(BlockKind::WhiteWool), + "minecraft:spruce_slab" => Some(BlockKind::SpruceSlab), + "minecraft:purple_candle_cake" => Some(BlockKind::PurpleCandleCake), + "minecraft:oak_fence" => Some(BlockKind::OakFence), + "minecraft:scaffolding" => Some(BlockKind::Scaffolding), + "minecraft:jungle_trapdoor" => Some(BlockKind::JungleTrapdoor), + "minecraft:red_sandstone_wall" => Some(BlockKind::RedSandstoneWall), + "minecraft:red_nether_brick_wall" => Some(BlockKind::RedNetherBrickWall), + "minecraft:copper_ore" => Some(BlockKind::CopperOre), + "minecraft:dark_oak_wall_sign" => Some(BlockKind::DarkOakWallSign), + "minecraft:crafting_table" => Some(BlockKind::CraftingTable), + "minecraft:stone_stairs" => Some(BlockKind::StoneStairs), + "minecraft:pink_bed" => Some(BlockKind::PinkBed), + "minecraft:stripped_dark_oak_log" => Some(BlockKind::StrippedDarkOakLog), + "minecraft:oak_wood" => Some(BlockKind::OakWood), + "minecraft:sunflower" => Some(BlockKind::Sunflower), + "minecraft:red_shulker_box" => Some(BlockKind::RedShulkerBox), + "minecraft:bricks" => Some(BlockKind::Bricks), + "minecraft:bamboo_sapling" => Some(BlockKind::BambooSapling), + "minecraft:pumpkin" => Some(BlockKind::Pumpkin), + "minecraft:pink_glazed_terracotta" => Some(BlockKind::PinkGlazedTerracotta), + "minecraft:gray_terracotta" => Some(BlockKind::GrayTerracotta), + "minecraft:green_concrete" => Some(BlockKind::GreenConcrete), + "minecraft:waxed_copper_block" => Some(BlockKind::WaxedCopperBlock), + "minecraft:potted_dark_oak_sapling" => Some(BlockKind::PottedDarkOakSapling), + "minecraft:waxed_weathered_cut_copper_stairs" => { + Some(BlockKind::WaxedWeatheredCutCopperStairs) } - BlockKind::PrismarineBrickSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:farmland" => Some(BlockKind::Farmland), + "minecraft:orange_concrete" => Some(BlockKind::OrangeConcrete), + "minecraft:gray_bed" => Some(BlockKind::GrayBed), + "minecraft:white_bed" => Some(BlockKind::WhiteBed), + "minecraft:potted_lily_of_the_valley" => Some(BlockKind::PottedLilyOfTheValley), + "minecraft:orange_wall_banner" => Some(BlockKind::OrangeWallBanner), + "minecraft:end_stone_brick_slab" => Some(BlockKind::EndStoneBrickSlab), + "minecraft:observer" => Some(BlockKind::Observer), + "minecraft:lodestone" => Some(BlockKind::Lodestone), + "minecraft:bubble_coral_block" => Some(BlockKind::BubbleCoralBlock), + "minecraft:horn_coral_block" => Some(BlockKind::HornCoralBlock), + "minecraft:acacia_sign" => Some(BlockKind::AcaciaSign), + "minecraft:trapped_chest" => Some(BlockKind::TrappedChest), + "minecraft:red_wool" => Some(BlockKind::RedWool), + "minecraft:candle_cake" => Some(BlockKind::CandleCake), + "minecraft:sugar_cane" => Some(BlockKind::SugarCane), + "minecraft:birch_slab" => Some(BlockKind::BirchSlab), + "minecraft:pink_stained_glass_pane" => Some(BlockKind::PinkStainedGlassPane), + "minecraft:crimson_fungus" => Some(BlockKind::CrimsonFungus), + "minecraft:polished_blackstone_brick_wall" => { + Some(BlockKind::PolishedBlackstoneBrickWall) } - BlockKind::DarkPrismarineSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) + "minecraft:cyan_stained_glass_pane" => Some(BlockKind::CyanStainedGlassPane), + "minecraft:smooth_sandstone_stairs" => Some(BlockKind::SmoothSandstoneStairs), + "minecraft:crimson_door" => Some(BlockKind::CrimsonDoor), + "minecraft:brown_wall_banner" => Some(BlockKind::BrownWallBanner), + "minecraft:cyan_glazed_terracotta" => Some(BlockKind::CyanGlazedTerracotta), + "minecraft:waxed_oxidized_copper" => Some(BlockKind::WaxedOxidizedCopper), + "minecraft:green_stained_glass_pane" => Some(BlockKind::GreenStainedGlassPane), + "minecraft:honey_block" => Some(BlockKind::HoneyBlock), + "minecraft:polished_blackstone" => Some(BlockKind::PolishedBlackstone), + "minecraft:white_wall_banner" => Some(BlockKind::WhiteWallBanner), + "minecraft:sea_lantern" => Some(BlockKind::SeaLantern), + "minecraft:deepslate_brick_slab" => Some(BlockKind::DeepslateBrickSlab), + "minecraft:stone_brick_stairs" => Some(BlockKind::StoneBrickStairs), + "minecraft:mycelium" => Some(BlockKind::Mycelium), + "minecraft:spruce_fence" => Some(BlockKind::SpruceFence), + "minecraft:ladder" => Some(BlockKind::Ladder), + "minecraft:green_shulker_box" => Some(BlockKind::GreenShulkerBox), + "minecraft:dirt" => Some(BlockKind::Dirt), + "minecraft:cactus" => Some(BlockKind::Cactus), + "minecraft:lava" => Some(BlockKind::Lava), + "minecraft:oak_sign" => Some(BlockKind::OakSign), + "minecraft:jungle_door" => Some(BlockKind::JungleDoor), + "minecraft:white_terracotta" => Some(BlockKind::WhiteTerracotta), + "minecraft:acacia_door" => Some(BlockKind::AcaciaDoor), + "minecraft:cobblestone_slab" => Some(BlockKind::CobblestoneSlab), + "minecraft:dark_oak_door" => Some(BlockKind::DarkOakDoor), + "minecraft:gray_candle" => Some(BlockKind::GrayCandle), + "minecraft:purpur_stairs" => Some(BlockKind::PurpurStairs), + "minecraft:blue_concrete" => Some(BlockKind::BlueConcrete), + "minecraft:light_gray_stained_glass_pane" => Some(BlockKind::LightGrayStainedGlassPane), + "minecraft:dark_oak_planks" => Some(BlockKind::DarkOakPlanks), + "minecraft:potted_warped_roots" => Some(BlockKind::PottedWarpedRoots), + "minecraft:jungle_leaves" => Some(BlockKind::JungleLeaves), + "minecraft:daylight_detector" => Some(BlockKind::DaylightDetector), + "minecraft:acacia_sapling" => Some(BlockKind::AcaciaSapling), + "minecraft:sandstone_wall" => Some(BlockKind::SandstoneWall), + "minecraft:blue_carpet" => Some(BlockKind::BlueCarpet), + "minecraft:polished_granite_stairs" => Some(BlockKind::PolishedGraniteStairs), + "minecraft:dark_oak_sapling" => Some(BlockKind::DarkOakSapling), + "minecraft:brick_wall" => Some(BlockKind::BrickWall), + "minecraft:acacia_wood" => Some(BlockKind::AcaciaWood), + "minecraft:moss_carpet" => Some(BlockKind::MossCarpet), + "minecraft:magenta_bed" => Some(BlockKind::MagentaBed), + "minecraft:birch_stairs" => Some(BlockKind::BirchStairs), + "minecraft:tube_coral_block" => Some(BlockKind::TubeCoralBlock), + "minecraft:netherite_block" => Some(BlockKind::NetheriteBlock), + "minecraft:waxed_weathered_copper" => Some(BlockKind::WaxedWeatheredCopper), + "minecraft:sand" => Some(BlockKind::Sand), + "minecraft:calcite" => Some(BlockKind::Calcite), + "minecraft:hopper" => Some(BlockKind::Hopper), + "minecraft:horn_coral" => Some(BlockKind::HornCoral), + "minecraft:deepslate_tiles" => Some(BlockKind::DeepslateTiles), + "minecraft:cut_red_sandstone" => Some(BlockKind::CutRedSandstone), + "minecraft:mossy_cobblestone_wall" => Some(BlockKind::MossyCobblestoneWall), + "minecraft:lectern" => Some(BlockKind::Lectern), + "minecraft:polished_blackstone_wall" => Some(BlockKind::PolishedBlackstoneWall), + "minecraft:yellow_wall_banner" => Some(BlockKind::YellowWallBanner), + "minecraft:crimson_wall_sign" => Some(BlockKind::CrimsonWallSign), + "minecraft:pink_concrete" => Some(BlockKind::PinkConcrete), + "minecraft:stripped_acacia_wood" => Some(BlockKind::StrippedAcaciaWood), + "minecraft:jungle_wall_sign" => Some(BlockKind::JungleWallSign), + "minecraft:brown_banner" => Some(BlockKind::BrownBanner), + "minecraft:orange_glazed_terracotta" => Some(BlockKind::OrangeGlazedTerracotta), + "minecraft:emerald_block" => Some(BlockKind::EmeraldBlock), + "minecraft:oxidized_cut_copper" => Some(BlockKind::OxidizedCutCopper), + "minecraft:crimson_hyphae" => Some(BlockKind::CrimsonHyphae), + "minecraft:yellow_candle_cake" => Some(BlockKind::YellowCandleCake), + "minecraft:structure_void" => Some(BlockKind::StructureVoid), + "minecraft:warped_planks" => Some(BlockKind::WarpedPlanks), + "minecraft:glowstone" => Some(BlockKind::Glowstone), + "minecraft:spruce_wood" => Some(BlockKind::SpruceWood), + "minecraft:pink_concrete_powder" => Some(BlockKind::PinkConcretePowder), + "minecraft:shulker_box" => Some(BlockKind::ShulkerBox), + "minecraft:red_sandstone_slab" => Some(BlockKind::RedSandstoneSlab), + "minecraft:orange_stained_glass_pane" => Some(BlockKind::OrangeStainedGlassPane), + "minecraft:waxed_weathered_cut_copper_slab" => { + Some(BlockKind::WaxedWeatheredCutCopperSlab) } - BlockKind::SeaLantern => None, - BlockKind::HayBlock => None, - BlockKind::WhiteCarpet => None, - BlockKind::OrangeCarpet => None, - BlockKind::MagentaCarpet => None, - BlockKind::LightBlueCarpet => None, - BlockKind::YellowCarpet => None, + "minecraft:potted_azalea_bush" => Some(BlockKind::PottedAzaleaBush), + "minecraft:azalea_leaves" => Some(BlockKind::AzaleaLeaves), + "minecraft:cracked_deepslate_tiles" => Some(BlockKind::CrackedDeepslateTiles), + "minecraft:light_blue_candle" => Some(BlockKind::LightBlueCandle), + "minecraft:brown_shulker_box" => Some(BlockKind::BrownShulkerBox), + "minecraft:red_nether_brick_stairs" => Some(BlockKind::RedNetherBrickStairs), + "minecraft:small_amethyst_bud" => Some(BlockKind::SmallAmethystBud), + "minecraft:crimson_stem" => Some(BlockKind::CrimsonStem), + "minecraft:birch_fence" => Some(BlockKind::BirchFence), + "minecraft:infested_stone" => Some(BlockKind::InfestedStone), + "minecraft:dead_tube_coral_fan" => Some(BlockKind::DeadTubeCoralFan), + "minecraft:bell" => Some(BlockKind::Bell), + "minecraft:polished_granite_slab" => Some(BlockKind::PolishedGraniteSlab), + "minecraft:crimson_sign" => Some(BlockKind::CrimsonSign), + "minecraft:birch_planks" => Some(BlockKind::BirchPlanks), + "minecraft:light_gray_candle" => Some(BlockKind::LightGrayCandle), + "minecraft:spore_blossom" => Some(BlockKind::SporeBlossom), + "minecraft:purple_concrete_powder" => Some(BlockKind::PurpleConcretePowder), + "minecraft:furnace" => Some(BlockKind::Furnace), + "minecraft:polished_andesite_stairs" => Some(BlockKind::PolishedAndesiteStairs), + "minecraft:red_candle_cake" => Some(BlockKind::RedCandleCake), + "minecraft:chiseled_deepslate" => Some(BlockKind::ChiseledDeepslate), + "minecraft:quartz_slab" => Some(BlockKind::QuartzSlab), + "minecraft:spruce_leaves" => Some(BlockKind::SpruceLeaves), + "minecraft:bubble_coral" => Some(BlockKind::BubbleCoral), + "minecraft:light_gray_wall_banner" => Some(BlockKind::LightGrayWallBanner), + "minecraft:purpur_block" => Some(BlockKind::PurpurBlock), + "minecraft:yellow_banner" => Some(BlockKind::YellowBanner), + "minecraft:oak_sapling" => Some(BlockKind::OakSapling), + "minecraft:azure_bluet" => Some(BlockKind::AzureBluet), + "minecraft:magenta_stained_glass_pane" => Some(BlockKind::MagentaStainedGlassPane), + "minecraft:dispenser" => Some(BlockKind::Dispenser), + "minecraft:gray_stained_glass_pane" => Some(BlockKind::GrayStainedGlassPane), + "minecraft:andesite_wall" => Some(BlockKind::AndesiteWall), + "minecraft:jungle_fence_gate" => Some(BlockKind::JungleFenceGate), + "minecraft:red_nether_bricks" => Some(BlockKind::RedNetherBricks), + "minecraft:light_gray_candle_cake" => Some(BlockKind::LightGrayCandleCake), + "minecraft:jukebox" => Some(BlockKind::Jukebox), + "minecraft:note_block" => Some(BlockKind::NoteBlock), + "minecraft:lime_terracotta" => Some(BlockKind::LimeTerracotta), + "minecraft:warped_fence" => Some(BlockKind::WarpedFence), + "minecraft:gold_ore" => Some(BlockKind::GoldOre), + "minecraft:potted_pink_tulip" => Some(BlockKind::PottedPinkTulip), + "minecraft:spruce_button" => Some(BlockKind::SpruceButton), + "minecraft:brown_candle_cake" => Some(BlockKind::BrownCandleCake), + "minecraft:wither_rose" => Some(BlockKind::WitherRose), + "minecraft:diamond_block" => Some(BlockKind::DiamondBlock), + "minecraft:wheat" => Some(BlockKind::Wheat), + "minecraft:glow_lichen" => Some(BlockKind::GlowLichen), + "minecraft:cocoa" => Some(BlockKind::Cocoa), + "minecraft:oak_trapdoor" => Some(BlockKind::OakTrapdoor), + "minecraft:stripped_birch_wood" => Some(BlockKind::StrippedBirchWood), + "minecraft:birch_wall_sign" => Some(BlockKind::BirchWallSign), + "minecraft:smooth_stone_slab" => Some(BlockKind::SmoothStoneSlab), + "minecraft:exposed_copper" => Some(BlockKind::ExposedCopper), + "minecraft:water" => Some(BlockKind::Water), + "minecraft:bedrock" => Some(BlockKind::Bedrock), + "minecraft:pumpkin_stem" => Some(BlockKind::PumpkinStem), + "minecraft:cauldron" => Some(BlockKind::Cauldron), + "minecraft:purple_carpet" => Some(BlockKind::PurpleCarpet), + "minecraft:fletching_table" => Some(BlockKind::FletchingTable), + "minecraft:anvil" => Some(BlockKind::Anvil), + "minecraft:lily_of_the_valley" => Some(BlockKind::LilyOfTheValley), + "minecraft:flowering_azalea" => Some(BlockKind::FloweringAzalea), + "minecraft:lime_concrete_powder" => Some(BlockKind::LimeConcretePowder), + "minecraft:blue_glazed_terracotta" => Some(BlockKind::BlueGlazedTerracotta), + "minecraft:tripwire_hook" => Some(BlockKind::TripwireHook), + "minecraft:cyan_concrete" => Some(BlockKind::CyanConcrete), + "minecraft:big_dripleaf_stem" => Some(BlockKind::BigDripleafStem), + "minecraft:sticky_piston" => Some(BlockKind::StickyPiston), + "minecraft:lever" => Some(BlockKind::Lever), + "minecraft:white_concrete" => Some(BlockKind::WhiteConcrete), + "minecraft:dead_brain_coral_block" => Some(BlockKind::DeadBrainCoralBlock), + "minecraft:smooth_quartz" => Some(BlockKind::SmoothQuartz), + "minecraft:torch" => Some(BlockKind::Torch), + "minecraft:redstone_wire" => Some(BlockKind::RedstoneWire), + "minecraft:birch_trapdoor" => Some(BlockKind::BirchTrapdoor), + "minecraft:weeping_vines_plant" => Some(BlockKind::WeepingVinesPlant), + "minecraft:acacia_log" => Some(BlockKind::AcaciaLog), + "minecraft:player_head" => Some(BlockKind::PlayerHead), + "minecraft:nether_brick_fence" => Some(BlockKind::NetherBrickFence), + "minecraft:dead_horn_coral" => Some(BlockKind::DeadHornCoral), + "minecraft:stripped_dark_oak_wood" => Some(BlockKind::StrippedDarkOakWood), + "minecraft:polished_granite" => Some(BlockKind::PolishedGranite), + "minecraft:structure_block" => Some(BlockKind::StructureBlock), + "minecraft:dragon_wall_head" => Some(BlockKind::DragonWallHead), + "minecraft:dead_horn_coral_block" => Some(BlockKind::DeadHornCoralBlock), + "minecraft:dark_oak_slab" => Some(BlockKind::DarkOakSlab), + "minecraft:stripped_crimson_hyphae" => Some(BlockKind::StrippedCrimsonHyphae), + "minecraft:light_gray_shulker_box" => Some(BlockKind::LightGrayShulkerBox), + "minecraft:enchanting_table" => Some(BlockKind::EnchantingTable), + "minecraft:player_wall_head" => Some(BlockKind::PlayerWallHead), + "minecraft:purple_stained_glass" => Some(BlockKind::PurpleStainedGlass), + "minecraft:hay_block" => Some(BlockKind::HayBlock), + "minecraft:comparator" => Some(BlockKind::Comparator), + "minecraft:purple_glazed_terracotta" => Some(BlockKind::PurpleGlazedTerracotta), + "minecraft:deepslate_brick_stairs" => Some(BlockKind::DeepslateBrickStairs), + "minecraft:iron_ore" => Some(BlockKind::IronOre), + "minecraft:purple_wool" => Some(BlockKind::PurpleWool), + "minecraft:deepslate_tile_slab" => Some(BlockKind::DeepslateTileSlab), + "minecraft:chiseled_nether_bricks" => Some(BlockKind::ChiseledNetherBricks), + "minecraft:spruce_log" => Some(BlockKind::SpruceLog), + "minecraft:jungle_planks" => Some(BlockKind::JunglePlanks), + "minecraft:sweet_berry_bush" => Some(BlockKind::SweetBerryBush), + "minecraft:potted_poppy" => Some(BlockKind::PottedPoppy), + "minecraft:smithing_table" => Some(BlockKind::SmithingTable), + "minecraft:stone_slab" => Some(BlockKind::StoneSlab), + "minecraft:wet_sponge" => Some(BlockKind::WetSponge), + "minecraft:dead_bubble_coral_fan" => Some(BlockKind::DeadBubbleCoralFan), + "minecraft:orange_terracotta" => Some(BlockKind::OrangeTerracotta), + "minecraft:light_blue_carpet" => Some(BlockKind::LightBlueCarpet), + "minecraft:polished_deepslate_stairs" => Some(BlockKind::PolishedDeepslateStairs), + "minecraft:orange_tulip" => Some(BlockKind::OrangeTulip), + _ => None, + } + } +} +impl BlockKind { + #[doc = "Returns the `resistance` property of this `BlockKind`."] + #[inline] + pub fn resistance(&self) -> f32 { + match self { + BlockKind::NetherBrickFence => 6f32, + BlockKind::EndStoneBrickWall => 9f32, + BlockKind::PurpurBlock => 6f32, + BlockKind::LightBlueCarpet => 0.1f32, + BlockKind::RedShulkerBox => 2f32, + BlockKind::YellowCandle => 0.1f32, + BlockKind::BlackBed => 0.2f32, + BlockKind::JungleSign => 1f32, + BlockKind::OrangeConcrete => 1.8f32, + BlockKind::BrownCandleCake => 0f32, + BlockKind::WarpedSlab => 3f32, + BlockKind::MossyCobblestoneWall => 6f32, + BlockKind::PottedRedTulip => 0f32, + BlockKind::StrippedJungleLog => 2f32, + BlockKind::DragonHead => 1f32, + BlockKind::CutCopperStairs => 0f32, + BlockKind::CrimsonWallSign => 1f32, + BlockKind::EndStoneBricks => 9f32, + BlockKind::Poppy => 0f32, + BlockKind::DragonEgg => 9f32, + BlockKind::WaxedExposedCutCopperStairs => 0f32, + BlockKind::GoldOre => 3f32, + BlockKind::WhiteWallBanner => 1f32, + BlockKind::DeadHornCoralBlock => 6f32, + BlockKind::Beehive => 0.6f32, + BlockKind::BlueGlazedTerracotta => 1.4f32, + BlockKind::TubeCoralFan => 0f32, + BlockKind::Conduit => 3f32, + BlockKind::RedWallBanner => 1f32, + BlockKind::GrayShulkerBox => 2f32, + BlockKind::RedCandleCake => 0f32, + BlockKind::DarkOakDoor => 3f32, + BlockKind::JungleFence => 3f32, + BlockKind::WhiteShulkerBox => 2f32, + BlockKind::PolishedBlackstone => 6f32, + BlockKind::ExposedCutCopper => 0f32, + BlockKind::AcaciaTrapdoor => 3f32, + BlockKind::DeadBrainCoralFan => 0f32, + BlockKind::WarpedDoor => 3f32, + BlockKind::Sponge => 0.6f32, + BlockKind::BlackstoneSlab => 6f32, + BlockKind::ChiseledSandstone => 0.8f32, + BlockKind::CobblestoneSlab => 6f32, + BlockKind::AzaleaLeaves => 0.2f32, + BlockKind::MelonStem => 0f32, + BlockKind::Dirt => 0.5f32, + BlockKind::BlackConcrete => 1.8f32, + BlockKind::CrimsonPlanks => 3f32, + BlockKind::PottedWhiteTulip => 0f32, + BlockKind::GreenStainedGlassPane => 0.3f32, + BlockKind::BigDripleaf => 0.1f32, + BlockKind::PinkTerracotta => 4.2f32, + BlockKind::MagentaStainedGlass => 0.3f32, + BlockKind::CryingObsidian => 1200f32, + BlockKind::WarpedHyphae => 2f32, + BlockKind::Loom => 2.5f32, + BlockKind::StrippedAcaciaLog => 2f32, + BlockKind::PottedJungleSapling => 0f32, + BlockKind::PottedDeadBush => 0f32, + BlockKind::Light => 3600000.8f32, + BlockKind::PolishedBlackstonePressurePlate => 0.5f32, + BlockKind::BubbleCoral => 0f32, + BlockKind::WetSponge => 0.6f32, + BlockKind::SoulFire => 0f32, + BlockKind::MagmaBlock => 0.5f32, + BlockKind::ExposedCopper => 6f32, + BlockKind::PottedFern => 0f32, + BlockKind::WitherSkeletonWallSkull => 1f32, + BlockKind::BlueIce => 2.8f32, + BlockKind::CyanStainedGlassPane => 0.3f32, + BlockKind::StrippedJungleWood => 2f32, + BlockKind::YellowBed => 0.2f32, + BlockKind::LargeFern => 0f32, + BlockKind::LightGrayConcrete => 1.8f32, + BlockKind::GreenStainedGlass => 0.3f32, + BlockKind::EndGateway => 3600000f32, + BlockKind::Farmland => 0.6f32, + BlockKind::GreenShulkerBox => 2f32, + BlockKind::MossyStoneBricks => 6f32, + BlockKind::WaxedWeatheredCutCopperSlab => 0f32, + BlockKind::SpruceLog => 2f32, + BlockKind::ZombieHead => 1f32, + BlockKind::RedstoneWire => 0f32, + BlockKind::Peony => 0f32, + BlockKind::Glowstone => 0.3f32, + BlockKind::YellowConcrete => 1.8f32, + BlockKind::PolishedGraniteSlab => 6f32, + BlockKind::AcaciaButton => 0.5f32, + BlockKind::TallGrass => 0f32, + BlockKind::HornCoralWallFan => 0f32, + BlockKind::PurpleStainedGlassPane => 0.3f32, + BlockKind::Comparator => 0f32, + BlockKind::PistonHead => 1.5f32, + BlockKind::OakFenceGate => 3f32, + BlockKind::CrimsonStem => 2f32, + BlockKind::WaxedExposedCutCopper => 0f32, + BlockKind::DeadBrainCoral => 0f32, + BlockKind::SpruceSapling => 0f32, + BlockKind::BlackStainedGlassPane => 0.3f32, + BlockKind::SoulWallTorch => 0f32, + BlockKind::GreenBanner => 1f32, + BlockKind::DeadFireCoralWallFan => 0f32, + BlockKind::DeadBush => 0f32, + BlockKind::LightBlueStainedGlassPane => 0.3f32, + BlockKind::CutRedSandstoneSlab => 6f32, + BlockKind::OrangeWool => 0.8f32, + BlockKind::DeepslateCopperOre => 3f32, + BlockKind::BlueConcrete => 1.8f32, + BlockKind::WaxedCutCopperStairs => 0f32, + BlockKind::SkeletonWallSkull => 1f32, + BlockKind::InfestedStoneBricks => 0f32, + BlockKind::TallSeagrass => 0f32, + BlockKind::BrainCoralFan => 0f32, + BlockKind::SpruceButton => 0.5f32, + BlockKind::LightGrayBed => 0.2f32, + BlockKind::CrimsonNylium => 0.4f32, + BlockKind::GreenCandleCake => 0f32, + BlockKind::Barrier => 3600000.8f32, + BlockKind::PottedFloweringAzaleaBush => 0f32, + BlockKind::JackOLantern => 1f32, + BlockKind::BirchLog => 2f32, + BlockKind::DragonWallHead => 1f32, + BlockKind::OxidizedCutCopper => 0f32, + BlockKind::Pumpkin => 1f32, + BlockKind::EndStoneBrickStairs => 9f32, + BlockKind::OrangeBanner => 1f32, + BlockKind::DeadBrainCoralWallFan => 0f32, + BlockKind::WhiteCandleCake => 0f32, + BlockKind::PurpleCandleCake => 0f32, + BlockKind::NetherBrickStairs => 6f32, + BlockKind::BrownMushroomBlock => 0.2f32, + BlockKind::WaxedOxidizedCutCopperSlab => 0f32, + BlockKind::CrimsonButton => 0.5f32, + BlockKind::CobblestoneStairs => 6f32, + BlockKind::SandstoneWall => 0.8f32, + BlockKind::GrayWool => 0.8f32, + BlockKind::SpruceWood => 2f32, + BlockKind::SmallDripleaf => 0f32, + BlockKind::WhiteStainedGlass => 0.3f32, + BlockKind::WarpedStairs => 3f32, + BlockKind::StrippedWarpedHyphae => 2f32, + BlockKind::BirchFence => 3f32, + BlockKind::MagentaCandle => 0.1f32, + BlockKind::BlueWool => 0.8f32, + BlockKind::GoldBlock => 6f32, + BlockKind::PurpleBanner => 1f32, + BlockKind::RedWool => 0.8f32, + BlockKind::PottedLilyOfTheValley => 0f32, + BlockKind::WeepingVines => 0f32, + BlockKind::MagentaBanner => 1f32, + BlockKind::StrippedSpruceLog => 2f32, + BlockKind::GlassPane => 0.3f32, + BlockKind::RedstoneTorch => 0f32, + BlockKind::Anvil => 1200f32, + BlockKind::BlackWallBanner => 1f32, + BlockKind::DarkOakFence => 3f32, + BlockKind::SmoothStone => 6f32, + BlockKind::AndesiteSlab => 6f32, + BlockKind::WhiteStainedGlassPane => 0.3f32, + BlockKind::MagentaStainedGlassPane => 0.3f32, + BlockKind::BlackTerracotta => 4.2f32, + BlockKind::EndRod => 0f32, + BlockKind::OakSlab => 3f32, + BlockKind::Sand => 0.5f32, + BlockKind::StrippedDarkOakLog => 2f32, + BlockKind::PottedRedMushroom => 0f32, + BlockKind::OxidizedCutCopperStairs => 0f32, + BlockKind::Sunflower => 0f32, + BlockKind::MagentaConcretePowder => 0.5f32, + BlockKind::PurpleTerracotta => 4.2f32, + BlockKind::SoulSand => 0.5f32, + BlockKind::AndesiteWall => 6f32, + BlockKind::LimeCarpet => 0.1f32, + BlockKind::PrismarineWall => 6f32, + BlockKind::BlackCarpet => 0.1f32, + BlockKind::WaxedWeatheredCopper => 0f32, + BlockKind::DarkOakSapling => 0f32, + BlockKind::ChippedAnvil => 1200f32, + BlockKind::RedNetherBrickSlab => 6f32, + BlockKind::Cocoa => 3f32, + BlockKind::PottedBamboo => 0f32, + BlockKind::LightBlueConcrete => 1.8f32, + BlockKind::WarpedRoots => 0f32, + BlockKind::Spawner => 5f32, + BlockKind::StonePressurePlate => 0.5f32, + BlockKind::DeadTubeCoralBlock => 6f32, + BlockKind::AcaciaPressurePlate => 0.5f32, + BlockKind::MagentaTerracotta => 4.2f32, + BlockKind::OrangeConcretePowder => 0.5f32, + BlockKind::MossyStoneBrickWall => 6f32, + BlockKind::LimeCandleCake => 0f32, + BlockKind::PinkTulip => 0f32, + BlockKind::RedNetherBricks => 6f32, + BlockKind::NetheriteBlock => 1200f32, + BlockKind::PolishedBlackstoneBrickWall => 6f32, + BlockKind::RawCopperBlock => 6f32, + BlockKind::Diorite => 6f32, + BlockKind::DarkOakWood => 2f32, + BlockKind::BrownWool => 0.8f32, + BlockKind::OrangeWallBanner => 1f32, + BlockKind::OakDoor => 3f32, + BlockKind::DarkOakLeaves => 0.2f32, + BlockKind::OrangeCandleCake => 0f32, + BlockKind::LightGrayConcretePowder => 0.5f32, + BlockKind::RedStainedGlassPane => 0.3f32, + BlockKind::EndPortal => 3600000f32, + BlockKind::CyanGlazedTerracotta => 1.4f32, + BlockKind::TwistingVinesPlant => 0f32, + BlockKind::JungleButton => 0.5f32, + BlockKind::BrainCoral => 0f32, + BlockKind::PottedOrangeTulip => 0f32, + BlockKind::SeaPickle => 0f32, + BlockKind::BlueStainedGlass => 0.3f32, + BlockKind::PottedCactus => 0f32, + BlockKind::Potatoes => 0f32, + BlockKind::CommandBlock => 3600000f32, + BlockKind::CrackedStoneBricks => 6f32, + BlockKind::YellowCarpet => 0.1f32, + BlockKind::DeepslateIronOre => 3f32, + BlockKind::Rail => 0.7f32, + BlockKind::NetherQuartzOre => 3f32, + BlockKind::PinkConcrete => 1.8f32, + BlockKind::CrimsonDoor => 3f32, + BlockKind::WarpedWallSign => 1f32, + BlockKind::PolishedBlackstoneStairs => 6f32, + BlockKind::MediumAmethystBud => 0f32, + BlockKind::BirchStairs => 3f32, + BlockKind::BigDripleafStem => 0.1f32, + BlockKind::DarkOakStairs => 3f32, + BlockKind::DarkOakButton => 0.5f32, + BlockKind::LightGrayGlazedTerracotta => 1.4f32, + BlockKind::PottedAllium => 0f32, + BlockKind::PetrifiedOakSlab => 6f32, + BlockKind::QuartzPillar => 0.8f32, + BlockKind::GrayGlazedTerracotta => 1.4f32, + BlockKind::PurpleConcretePowder => 0.5f32, + BlockKind::DeadTubeCoral => 0f32, + BlockKind::LightBlueTerracotta => 4.2f32, + BlockKind::NoteBlock => 0.8f32, + BlockKind::LimeConcretePowder => 0.5f32, + BlockKind::SweetBerryBush => 0f32, + BlockKind::OrangeCandle => 0.1f32, + BlockKind::CandleCake => 0f32, + BlockKind::GraniteStairs => 6f32, + BlockKind::StoneStairs => 6f32, + BlockKind::AmethystCluster => 1.5f32, + BlockKind::InfestedCobblestone => 0f32, + BlockKind::Mycelium => 0.6f32, + BlockKind::WaxedWeatheredCutCopper => 0f32, + BlockKind::YellowWool => 0.8f32, + BlockKind::SmoothQuartzSlab => 6f32, + BlockKind::SmoothRedSandstone => 6f32, + BlockKind::JungleLeaves => 0.2f32, + BlockKind::SkeletonSkull => 1f32, + BlockKind::BrownGlazedTerracotta => 1.4f32, + BlockKind::MagentaConcrete => 1.8f32, + BlockKind::StrippedBirchLog => 2f32, + BlockKind::OakWood => 2f32, + BlockKind::YellowWallBanner => 1f32, + BlockKind::PolishedBlackstoneWall => 6f32, + BlockKind::DeadBubbleCoralWallFan => 0f32, + BlockKind::PoweredRail => 0.7f32, + BlockKind::WhiteCarpet => 0.1f32, + BlockKind::AcaciaDoor => 3f32, + BlockKind::StoneSlab => 6f32, + BlockKind::LimeStainedGlass => 0.3f32, + BlockKind::OakLog => 2f32, + BlockKind::BlastFurnace => 3.5f32, + BlockKind::RespawnAnchor => 1200f32, + BlockKind::Torch => 0f32, + BlockKind::PolishedDioriteSlab => 6f32, + BlockKind::StoneBrickWall => 6f32, + BlockKind::Repeater => 0f32, + BlockKind::CopperBlock => 6f32, + BlockKind::LightningRod => 6f32, + BlockKind::Fern => 0f32, + BlockKind::PolishedDioriteStairs => 6f32, + BlockKind::PinkShulkerBox => 2f32, + BlockKind::AmethystBlock => 1.5f32, + BlockKind::StrippedOakWood => 2f32, + BlockKind::RedGlazedTerracotta => 1.4f32, + BlockKind::EmeraldBlock => 6f32, + BlockKind::PottedOakSapling => 0f32, + BlockKind::PolishedDeepslateStairs => 0f32, + BlockKind::StrippedCrimsonStem => 2f32, + BlockKind::DamagedAnvil => 1200f32, + BlockKind::JungleSapling => 0f32, + BlockKind::GrayStainedGlassPane => 0.3f32, + BlockKind::LimeWool => 0.8f32, + BlockKind::ChiseledPolishedBlackstone => 6f32, + BlockKind::SculkSensor => 1.5f32, + BlockKind::LimeBanner => 1f32, + BlockKind::PinkStainedGlassPane => 0.3f32, + BlockKind::PolishedGraniteStairs => 6f32, + BlockKind::MossyCobblestone => 6f32, + BlockKind::AttachedPumpkinStem => 0f32, + BlockKind::WaxedExposedCutCopperSlab => 0f32, + BlockKind::BubbleCoralBlock => 6f32, + BlockKind::RedstoneWallTorch => 0f32, + BlockKind::LimeGlazedTerracotta => 1.4f32, + BlockKind::DarkOakSlab => 3f32, + BlockKind::ExposedCutCopperStairs => 0f32, + BlockKind::AcaciaLog => 2f32, + BlockKind::WarpedFungus => 0f32, + BlockKind::BlueCandleCake => 0f32, + BlockKind::Blackstone => 6f32, + BlockKind::Tuff => 6f32, + BlockKind::RedMushroom => 0f32, + BlockKind::Cake => 0.5f32, + BlockKind::DioriteSlab => 6f32, + BlockKind::Target => 0.5f32, + BlockKind::OrangeGlazedTerracotta => 1.4f32, + BlockKind::MagentaBed => 0.2f32, + BlockKind::WarpedWartBlock => 1f32, + BlockKind::CarvedPumpkin => 1f32, + BlockKind::WeatheredCutCopper => 0f32, + BlockKind::SpruceFence => 3f32, + BlockKind::Shroomlight => 1f32, + BlockKind::PrismarineBrickSlab => 6f32, + BlockKind::BrownConcrete => 1.8f32, + BlockKind::Lever => 0.5f32, + BlockKind::Bamboo => 1f32, + BlockKind::BrickSlab => 6f32, + BlockKind::BoneBlock => 2f32, + BlockKind::PottedWitherRose => 0f32, + BlockKind::ChorusPlant => 0.4f32, + BlockKind::DetectorRail => 0.7f32, + BlockKind::Calcite => 0.75f32, + BlockKind::CaveVinesPlant => 0f32, + BlockKind::DeepslateTiles => 0f32, + BlockKind::FloweringAzaleaLeaves => 0.2f32, + BlockKind::PottedAcaciaSapling => 0f32, + BlockKind::AcaciaWood => 2f32, + BlockKind::RedTerracotta => 4.2f32, + BlockKind::RedCarpet => 0.1f32, + BlockKind::BubbleCoralFan => 0f32, + BlockKind::WaxedWeatheredCutCopperStairs => 0f32, + BlockKind::RedstoneLamp => 0.3f32, + BlockKind::StoneBricks => 6f32, + BlockKind::Vine => 0.2f32, + BlockKind::CrackedDeepslateBricks => 0f32, + BlockKind::CobbledDeepslateSlab => 0f32, + BlockKind::CreeperWallHead => 1f32, + BlockKind::DeadHornCoral => 0f32, + BlockKind::PolishedDeepslateWall => 0f32, + BlockKind::FletchingTable => 2.5f32, + BlockKind::Dispenser => 3.5f32, + BlockKind::Prismarine => 6f32, + BlockKind::DarkPrismarine => 6f32, + BlockKind::DarkOakPressurePlate => 0.5f32, + BlockKind::OakPressurePlate => 0.5f32, + BlockKind::HornCoralFan => 0f32, + BlockKind::DeepslateTileWall => 0f32, + BlockKind::Campfire => 2f32, + BlockKind::WarpedStem => 2f32, + BlockKind::WaxedOxidizedCopper => 0f32, + BlockKind::DeepslateLapisOre => 3f32, + BlockKind::OakStairs => 3f32, + BlockKind::BirchFenceGate => 3f32, + BlockKind::DeadFireCoralFan => 0f32, + BlockKind::FrostedIce => 0.5f32, + BlockKind::NetherBricks => 6f32, + BlockKind::KelpPlant => 0f32, + BlockKind::BrickWall => 6f32, + BlockKind::CrimsonHyphae => 2f32, + BlockKind::GlowLichen => 0.2f32, + BlockKind::LimeBed => 0.2f32, + BlockKind::StoneButton => 0.5f32, + BlockKind::BrewingStand => 0.5f32, + BlockKind::PinkBed => 0.2f32, + BlockKind::BlackGlazedTerracotta => 1.4f32, + BlockKind::Stonecutter => 3.5f32, + BlockKind::WarpedFence => 3f32, + BlockKind::CrimsonFenceGate => 3f32, + BlockKind::Deepslate => 6f32, + BlockKind::WeatheredCopper => 6f32, + BlockKind::DeadBubbleCoralFan => 0f32, + BlockKind::PurpleShulkerBox => 2f32, + BlockKind::FloweringAzalea => 0f32, + BlockKind::WhiteWool => 0.8f32, + BlockKind::Bricks => 6f32, + BlockKind::PurpleStainedGlass => 0.3f32, + BlockKind::EndPortalFrame => 3600000f32, + BlockKind::RedSand => 0.5f32, + BlockKind::Cobblestone => 6f32, + BlockKind::LightBlueCandle => 0.1f32, + BlockKind::LightBlueShulkerBox => 2f32, + BlockKind::CrimsonSlab => 3f32, + BlockKind::GrayCandleCake => 0f32, + BlockKind::BirchWood => 2f32, + BlockKind::CyanBanner => 1f32, + BlockKind::PottedPinkTulip => 0f32, + BlockKind::YellowBanner => 1f32, + BlockKind::BrownShulkerBox => 2f32, + BlockKind::Lectern => 2.5f32, + BlockKind::HayBlock => 0.5f32, + BlockKind::WeatheredCutCopperSlab => 0f32, + BlockKind::CyanConcretePowder => 0.5f32, + BlockKind::YellowShulkerBox => 2f32, + BlockKind::OakSign => 1f32, + BlockKind::SmoothStoneSlab => 6f32, + BlockKind::BrownMushroom => 0f32, + BlockKind::PottedDarkOakSapling => 0f32, + BlockKind::Candle => 0.1f32, + BlockKind::BlueBanner => 1f32, + BlockKind::AcaciaSlab => 3f32, + BlockKind::BlackBanner => 1f32, + BlockKind::BeeNest => 0.3f32, + BlockKind::LightGrayCandle => 0.1f32, + BlockKind::JungleStairs => 3f32, + BlockKind::EnchantingTable => 1200f32, + BlockKind::SlimeBlock => 0f32, + BlockKind::PottedWarpedFungus => 0f32, + BlockKind::CyanCandle => 0.1f32, + BlockKind::DioriteStairs => 6f32, + BlockKind::DiamondOre => 3f32, + BlockKind::PolishedGranite => 6f32, + BlockKind::NetherWartBlock => 1f32, + BlockKind::DarkOakFenceGate => 3f32, + BlockKind::LightBlueGlazedTerracotta => 1.4f32, + BlockKind::BirchButton => 0.5f32, + BlockKind::BlackWool => 0.8f32, + BlockKind::InfestedCrackedStoneBricks => 0f32, + BlockKind::OrangeTerracotta => 4.2f32, + BlockKind::InfestedMossyStoneBricks => 0f32, + BlockKind::WaterCauldron => 0f32, + BlockKind::Beetroots => 0f32, + BlockKind::BrainCoralWallFan => 0f32, + BlockKind::LimeStainedGlassPane => 0.3f32, + BlockKind::BirchSlab => 3f32, + BlockKind::JungleWood => 2f32, + BlockKind::BrownStainedGlass => 0.3f32, + BlockKind::CaveAir => 0f32, + BlockKind::EnderChest => 600f32, + BlockKind::BirchPressurePlate => 0.5f32, + BlockKind::DeadFireCoral => 0f32, + BlockKind::MossyStoneBrickStairs => 6f32, + BlockKind::Obsidian => 1200f32, + BlockKind::Tripwire => 0f32, + BlockKind::MossyCobblestoneStairs => 6f32, + BlockKind::DeepslateBrickSlab => 0f32, + BlockKind::CobbledDeepslateWall => 0f32, + BlockKind::DeadBubbleCoralBlock => 6f32, + BlockKind::CoarseDirt => 0.5f32, + BlockKind::SeaLantern => 0.3f32, + BlockKind::LightGrayStainedGlass => 0.3f32, + BlockKind::CyanBed => 0.2f32, + BlockKind::SmoothBasalt => 0f32, + BlockKind::GrayConcretePowder => 0.5f32, + BlockKind::BrownBed => 0.2f32, + BlockKind::PolishedAndesite => 6f32, + BlockKind::AcaciaFence => 3f32, + BlockKind::WaxedCutCopper => 0f32, + BlockKind::PrismarineBricks => 6f32, + BlockKind::IronBars => 6f32, + BlockKind::RedTulip => 0f32, + BlockKind::DiamondBlock => 6f32, + BlockKind::OxeyeDaisy => 0f32, + BlockKind::PinkCandle => 0.1f32, + BlockKind::GrayBanner => 1f32, + BlockKind::LightBlueWallBanner => 1f32, + BlockKind::BlackCandleCake => 0f32, + BlockKind::CutCopper => 0f32, + BlockKind::LightGrayTerracotta => 4.2f32, + BlockKind::SpruceStairs => 3f32, + BlockKind::CutSandstone => 0.8f32, + BlockKind::PowderSnowCauldron => 0f32, + BlockKind::Clay => 0.6f32, + BlockKind::ChiseledQuartzBlock => 0.8f32, + BlockKind::JungleSlab => 3f32, + BlockKind::TurtleEgg => 0.5f32, + BlockKind::CobbledDeepslate => 6f32, + BlockKind::AcaciaPlanks => 3f32, + BlockKind::Kelp => 0f32, + BlockKind::BrownBanner => 1f32, + BlockKind::GrayTerracotta => 4.2f32, + BlockKind::PinkCandleCake => 0f32, + BlockKind::OakTrapdoor => 3f32, + BlockKind::BlueWallBanner => 1f32, + BlockKind::PlayerWallHead => 1f32, + BlockKind::LilyOfTheValley => 0f32, + BlockKind::OxidizedCutCopperSlab => 0f32, + BlockKind::Allium => 0f32, + BlockKind::QuartzSlab => 6f32, + BlockKind::DarkOakPlanks => 3f32, + BlockKind::SmoothSandstoneSlab => 6f32, + BlockKind::LapisOre => 3f32, + BlockKind::Gravel => 0.6f32, + BlockKind::CyanCarpet => 0.1f32, + BlockKind::QuartzBricks => 0.8f32, + BlockKind::GreenConcrete => 1.8f32, + BlockKind::MagentaWool => 0.8f32, + BlockKind::GrayBed => 0.2f32, + BlockKind::YellowCandleCake => 0f32, + BlockKind::RedConcretePowder => 0.5f32, + BlockKind::SporeBlossom => 0f32, + BlockKind::Cornflower => 0f32, + BlockKind::BlueCarpet => 0.1f32, + BlockKind::SmoothQuartzStairs => 6f32, + BlockKind::BuddingAmethyst => 1.5f32, + BlockKind::JungleWallSign => 1f32, + BlockKind::DeepslateRedstoneOre => 3f32, + BlockKind::BrownStainedGlassPane => 0.3f32, + BlockKind::StrippedAcaciaWood => 2f32, + BlockKind::JungleFenceGate => 3f32, + BlockKind::SmallAmethystBud => 0f32, + BlockKind::CobblestoneWall => 6f32, + BlockKind::OrangeBed => 0.2f32, + BlockKind::BrainCoralBlock => 6f32, + BlockKind::TubeCoralWallFan => 0f32, + BlockKind::RedNetherBrickStairs => 6f32, + BlockKind::DaylightDetector => 0.2f32, + BlockKind::CutRedSandstone => 0.8f32, + BlockKind::NetherPortal => -1f32, + BlockKind::DeadFireCoralBlock => 6f32, + BlockKind::PottedBrownMushroom => 0f32, + BlockKind::CoalBlock => 6f32, + BlockKind::DeepslateGoldOre => 3f32, + BlockKind::LightBlueBed => 0.2f32, + BlockKind::SnowBlock => 0.2f32, + BlockKind::AcaciaSapling => 0f32, + BlockKind::TwistingVines => 0f32, + BlockKind::DeepslateBricks => 0f32, + BlockKind::WarpedPlanks => 3f32, + BlockKind::GrayWallBanner => 1f32, + BlockKind::ExposedCutCopperSlab => 0f32, + BlockKind::RawIronBlock => 6f32, + BlockKind::DarkOakTrapdoor => 3f32, + BlockKind::PurpleConcrete => 1.8f32, + BlockKind::SprucePlanks => 3f32, + BlockKind::DarkOakSign => 1f32, + BlockKind::GrayConcrete => 1.8f32, + BlockKind::DarkOakLog => 2f32, + BlockKind::PinkGlazedTerracotta => 1.4f32, + BlockKind::CartographyTable => 2.5f32, + BlockKind::DarkOakWallSign => 1f32, + BlockKind::AcaciaLeaves => 0.2f32, + BlockKind::CrackedNetherBricks => 6f32, + BlockKind::BlackCandle => 0.1f32, + BlockKind::SoulSoil => 0.5f32, + BlockKind::PottedDandelion => 0f32, + BlockKind::PrismarineStairs => 6f32, + BlockKind::DeepslateTileStairs => 0f32, + BlockKind::AcaciaWallSign => 1f32, + BlockKind::GrayStainedGlass => 0.3f32, + BlockKind::MossCarpet => 0.1f32, + BlockKind::CyanShulkerBox => 2f32, + BlockKind::StrippedOakLog => 2f32, + BlockKind::RedNetherBrickWall => 6f32, + BlockKind::Carrots => 0f32, + BlockKind::StrippedDarkOakWood => 2f32, + BlockKind::WitherRose => 0f32, + BlockKind::RedSandstoneStairs => 0.8f32, + BlockKind::BlackConcretePowder => 0.5f32, + BlockKind::RedBanner => 1f32, + BlockKind::PolishedDeepslate => 0f32, + BlockKind::SandstoneSlab => 6f32, + BlockKind::WallTorch => 0f32, + BlockKind::RawGoldBlock => 6f32, + BlockKind::BirchSign => 1f32, + BlockKind::NetherWart => 0f32, + BlockKind::Glass => 0.3f32, + BlockKind::LightGrayWallBanner => 1f32, + BlockKind::Lava => 100f32, + BlockKind::FireCoralWallFan => 0f32, + BlockKind::ChiseledDeepslate => 0f32, + BlockKind::InfestedStone => 0f32, + BlockKind::RedConcrete => 1.8f32, + BlockKind::OrangeTulip => 0f32, + BlockKind::CobbledDeepslateStairs => 0f32, + BlockKind::AncientDebris => 1200f32, + BlockKind::BirchDoor => 3f32, + BlockKind::Hopper => 4.8f32, + BlockKind::WaxedExposedCopper => 0f32, + BlockKind::LightBlueWool => 0.8f32, + BlockKind::BlackShulkerBox => 2f32, + BlockKind::PottedBirchSapling => 0f32, + BlockKind::PowderSnow => 0.25f32, + BlockKind::BrownCandle => 0.1f32, + BlockKind::DirtPath => 0.65f32, + BlockKind::BrownWallBanner => 1f32, + BlockKind::MagentaCandleCake => 0f32, + BlockKind::DeadTubeCoralWallFan => 0f32, + BlockKind::ShulkerBox => 2f32, + BlockKind::GreenGlazedTerracotta => 1.4f32, + BlockKind::Seagrass => 0f32, + BlockKind::JungleTrapdoor => 3f32, + BlockKind::Andesite => 6f32, + BlockKind::PottedBlueOrchid => 0f32, + BlockKind::BlueConcretePowder => 0.5f32, + BlockKind::GrassBlock => 0.6f32, + BlockKind::JungleLog => 2f32, + BlockKind::Furnace => 3.5f32, + BlockKind::LightGrayWool => 0.8f32, + BlockKind::SpruceLeaves => 0.2f32, + BlockKind::Chain => 6f32, + BlockKind::Composter => 0.6f32, + BlockKind::PrismarineSlab => 6f32, + BlockKind::CrimsonSign => 1f32, + BlockKind::NetherGoldOre => 3f32, + BlockKind::PinkStainedGlass => 0.3f32, + BlockKind::Podzol => 0.5f32, + BlockKind::PolishedBasalt => 4.2f32, + BlockKind::PrismarineBrickStairs => 6f32, + BlockKind::CrimsonTrapdoor => 3f32, + BlockKind::RoseBush => 0f32, + BlockKind::DeepslateEmeraldOre => 3f32, + BlockKind::WeatheredCutCopperStairs => 0f32, + BlockKind::PurpleGlazedTerracotta => 1.4f32, + BlockKind::PinkWool => 0.8f32, + BlockKind::Beacon => 3f32, + BlockKind::RedBed => 0.2f32, + BlockKind::BlueBed => 0.2f32, + BlockKind::HeavyWeightedPressurePlate => 0.5f32, + BlockKind::ZombieWallHead => 1f32, + BlockKind::LightGrayCarpet => 0.1f32, + BlockKind::YellowConcretePowder => 0.5f32, + BlockKind::CraftingTable => 2.5f32, + BlockKind::SoulLantern => 3.5f32, + BlockKind::BlueStainedGlassPane => 0.3f32, + BlockKind::OxidizedCopper => 6f32, + BlockKind::PackedIce => 0.5f32, + BlockKind::BubbleColumn => 0f32, + BlockKind::Bell => 5f32, + BlockKind::PurpurStairs => 6f32, + BlockKind::CyanCandleCake => 0f32, + BlockKind::WarpedPressurePlate => 0.5f32, + BlockKind::AcaciaSign => 1f32, + BlockKind::Air => 0f32, + BlockKind::WhiteBed => 0.2f32, + BlockKind::FireCoralFan => 0f32, + BlockKind::CrimsonPressurePlate => 0.5f32, + BlockKind::OrangeStainedGlassPane => 0.3f32, + BlockKind::TintedGlass => 0f32, + BlockKind::GrayCarpet => 0.1f32, + BlockKind::EndStoneBrickSlab => 9f32, + BlockKind::WhiteConcrete => 1.8f32, + BlockKind::BirchPlanks => 3f32, + BlockKind::SpruceWallSign => 1f32, + BlockKind::IronBlock => 6f32, + BlockKind::Granite => 6f32, + BlockKind::LimeWallBanner => 1f32, + BlockKind::AzureBluet => 0f32, + BlockKind::PinkWallBanner => 1f32, + BlockKind::WhiteGlazedTerracotta => 1.4f32, + BlockKind::PolishedAndesiteStairs => 6f32, + BlockKind::Jigsaw => 3600000f32, + BlockKind::PurpurPillar => 6f32, + BlockKind::JungleDoor => 3f32, + BlockKind::PolishedDiorite => 6f32, + BlockKind::CrimsonRoots => 0f32, + BlockKind::SandstoneStairs => 0.8f32, + BlockKind::MushroomStem => 0.2f32, + BlockKind::LimeTerracotta => 4.2f32, + BlockKind::PolishedBlackstoneBrickStairs => 6f32, + BlockKind::SoulTorch => 0f32, + BlockKind::WarpedButton => 0.5f32, + BlockKind::RedSandstoneWall => 0.8f32, + BlockKind::TripwireHook => 0f32, + BlockKind::CyanWallBanner => 1f32, + BlockKind::BlueOrchid => 0f32, + BlockKind::YellowGlazedTerracotta => 1.4f32, + BlockKind::Cobweb => 4f32, + BlockKind::CyanStainedGlass => 0.3f32, + BlockKind::GreenTerracotta => 4.2f32, + BlockKind::InfestedDeepslate => 0f32, + BlockKind::Ladder => 0.4f32, + BlockKind::Lodestone => 3.5f32, + BlockKind::TubeCoralBlock => 6f32, + BlockKind::Stone => 6f32, + BlockKind::PottedCrimsonRoots => 0f32, + BlockKind::SprucePressurePlate => 0.5f32, + BlockKind::LimeCandle => 0.1f32, + BlockKind::ChiseledStoneBricks => 6f32, + BlockKind::CoalOre => 3f32, + BlockKind::CreeperHead => 1f32, + BlockKind::BirchTrapdoor => 3f32, + BlockKind::ChiseledNetherBricks => 6f32, + BlockKind::DeadHornCoralWallFan => 0f32, + BlockKind::PinkCarpet => 0.1f32, + BlockKind::VoidAir => 0f32, + BlockKind::SmoothRedSandstoneSlab => 6f32, + BlockKind::HoneyBlock => 0f32, + BlockKind::YellowTerracotta => 4.2f32, + BlockKind::StructureVoid => 0f32, + BlockKind::Cactus => 0.4f32, + BlockKind::BirchSapling => 0f32, + BlockKind::WaxedOxidizedCutCopperStairs => 0f32, + BlockKind::OakSapling => 0f32, + BlockKind::IronOre => 3f32, + BlockKind::SmoothSandstoneStairs => 6f32, + BlockKind::WhiteTulip => 0f32, + BlockKind::NetherBrickWall => 6f32, + BlockKind::ChiseledRedSandstone => 0.8f32, + BlockKind::BirchLeaves => 0.2f32, + BlockKind::ActivatorRail => 0.7f32, + BlockKind::QuartzStairs => 0.8f32, + BlockKind::LightGrayShulkerBox => 2f32, + BlockKind::SmoothRedSandstoneStairs => 6f32, + BlockKind::PurpleWool => 0.8f32, + BlockKind::PolishedBlackstoneBricks => 6f32, + BlockKind::EndStone => 9f32, + BlockKind::Azalea => 0f32, + BlockKind::Melon => 1f32, + BlockKind::Lilac => 0f32, + BlockKind::LightGrayStainedGlassPane => 0.3f32, + BlockKind::StickyPiston => 1.5f32, + BlockKind::Snow => 0.1f32, + BlockKind::SpruceSlab => 3f32, + BlockKind::LightGrayCandleCake => 0f32, + BlockKind::DriedKelpBlock => 2.5f32, + BlockKind::PottedSpruceSapling => 0f32, + BlockKind::BlackStainedGlass => 0.3f32, + BlockKind::BlueCandle => 0.1f32, + BlockKind::Dandelion => 0f32, + BlockKind::BrownConcretePowder => 0.5f32, + BlockKind::IronDoor => 5f32, + BlockKind::DeepslateCoalOre => 3f32, + BlockKind::OakFence => 3f32, + BlockKind::IronTrapdoor => 5f32, + BlockKind::GraniteWall => 6f32, + BlockKind::SpruceTrapdoor => 3f32, + BlockKind::PinkBanner => 1f32, + BlockKind::LapisBlock => 3f32, + BlockKind::GreenWool => 0.8f32, + BlockKind::Piston => 1.5f32, + BlockKind::MagentaGlazedTerracotta => 1.4f32, + BlockKind::Grindstone => 6f32, + BlockKind::StrippedBirchWood => 2f32, + BlockKind::CutSandstoneSlab => 6f32, + BlockKind::LimeShulkerBox => 2f32, + BlockKind::StrippedSpruceWood => 2f32, + BlockKind::Ice => 0.5f32, + BlockKind::PurpleCarpet => 0.1f32, + BlockKind::GreenConcretePowder => 0.5f32, + BlockKind::DripstoneBlock => 1f32, + BlockKind::DeepslateDiamondOre => 3f32, + BlockKind::WhiteCandle => 0.1f32, + BlockKind::SpruceDoor => 3f32, + BlockKind::DeadBrainCoralBlock => 6f32, + BlockKind::Observer => 3f32, + BlockKind::WeepingVinesPlant => 0f32, + BlockKind::PottedWarpedRoots => 0f32, + BlockKind::AttachedMelonStem => 0f32, + BlockKind::GraniteSlab => 6f32, + BlockKind::CrimsonFungus => 0f32, + BlockKind::CutCopperSlab => 0f32, + BlockKind::QuartzBlock => 0.8f32, + BlockKind::Smoker => 3.5f32, + BlockKind::OakPlanks => 3f32, + BlockKind::JunglePlanks => 3f32, + BlockKind::HornCoralBlock => 6f32, + BlockKind::PottedCrimsonFungus => 0f32, + BlockKind::BambooSapling => 1f32, + BlockKind::DeepslateTileSlab => 0f32, + BlockKind::BlueTerracotta => 4.2f32, + BlockKind::CrackedPolishedBlackstoneBricks => 6f32, + BlockKind::FireCoral => 0f32, + BlockKind::JunglePressurePlate => 0.5f32, + BlockKind::ChainCommandBlock => 3600000f32, + BlockKind::BlackstoneWall => 6f32, + BlockKind::HoneycombBlock => 0.6f32, + BlockKind::NetherSprouts => 0f32, + BlockKind::Basalt => 4.2f32, + BlockKind::AcaciaFenceGate => 3f32, + BlockKind::CrimsonFence => 3f32, + BlockKind::GildedBlackstone => 6f32, + BlockKind::WarpedNylium => 0.4f32, + BlockKind::Sandstone => 0.8f32, + BlockKind::PurpleCandle => 0.1f32, + BlockKind::CyanWool => 0.8f32, + BlockKind::Dropper => 3.5f32, + BlockKind::ChorusFlower => 0.4f32, + BlockKind::Chest => 2.5f32, + BlockKind::CrackedDeepslateTiles => 0f32, + BlockKind::Grass => 0f32, + BlockKind::DarkPrismarineStairs => 6f32, + BlockKind::OakWallSign => 1f32, + BlockKind::PottedPoppy => 0f32, + BlockKind::GrayCandle => 0.1f32, + BlockKind::WitherSkeletonSkull => 1f32, + BlockKind::RedCandle => 0.1f32, + BlockKind::RedstoneOre => 3f32, + BlockKind::PumpkinStem => 0f32, + BlockKind::CrimsonStairs => 3f32, + BlockKind::WaxedCutCopperSlab => 0f32, + BlockKind::LimeConcrete => 1.8f32, + BlockKind::FireCoralBlock => 6f32, + BlockKind::Water => 100f32, + BlockKind::BrownTerracotta => 4.2f32, + BlockKind::StoneBrickSlab => 6f32, + BlockKind::PottedOxeyeDaisy => 0f32, + BlockKind::WhiteBanner => 1f32, + BlockKind::WarpedTrapdoor => 3f32, + BlockKind::Bookshelf => 1.5f32, + BlockKind::PottedAzureBluet => 0f32, + BlockKind::MossyCobblestoneSlab => 6f32, + BlockKind::LightWeightedPressurePlate => 0.5f32, + BlockKind::PolishedAndesiteSlab => 6f32, + BlockKind::PolishedBlackstoneBrickSlab => 6f32, + BlockKind::NetherBrickSlab => 6f32, + BlockKind::GreenWallBanner => 1f32, + BlockKind::Jukebox => 6f32, + BlockKind::LargeAmethystBud => 0f32, + BlockKind::PolishedDeepslateSlab => 0f32, + BlockKind::YellowStainedGlass => 0.3f32, + BlockKind::HangingRoots => 0f32, + BlockKind::LightBlueCandleCake => 0f32, + BlockKind::Bedrock => 3600000f32, + BlockKind::BrickStairs => 6f32, + BlockKind::TubeCoral => 0f32, + BlockKind::SmithingTable => 2.5f32, + BlockKind::MossBlock => 0.1f32, + BlockKind::SoulCampfire => 2f32, + BlockKind::BubbleCoralWallFan => 0f32, + BlockKind::StructureBlock => 3600000f32, + BlockKind::PottedAzaleaBush => 0f32, + BlockKind::DeadHornCoralFan => 0f32, + BlockKind::MagentaCarpet => 0.1f32, + BlockKind::GreenCarpet => 0.1f32, + BlockKind::WarpedSign => 1f32, + BlockKind::LightBlueStainedGlass => 0.3f32, + BlockKind::LightBlueConcretePowder => 0.5f32, + BlockKind::StrippedWarpedStem => 2f32, + BlockKind::WarpedFenceGate => 3f32, + BlockKind::DeadBubbleCoral => 0f32, + BlockKind::MagentaShulkerBox => 2f32, + BlockKind::Lantern => 3.5f32, + BlockKind::RedSandstone => 0.8f32, + BlockKind::Fire => 0f32, + BlockKind::WhiteTerracotta => 4.2f32, + BlockKind::LightBlueBanner => 1f32, + BlockKind::OakButton => 0.5f32, + BlockKind::TrappedChest => 2.5f32, + BlockKind::PolishedBlackstoneButton => 0.5f32, + BlockKind::OrangeStainedGlass => 0.3f32, + BlockKind::BlackstoneStairs => 6f32, + BlockKind::WaxedOxidizedCutCopper => 0f32, + BlockKind::CyanTerracotta => 4.2f32, + BlockKind::Wheat => 0f32, + BlockKind::BirchWallSign => 1f32, + BlockKind::SmoothQuartz => 6f32, + BlockKind::LilyPad => 0f32, + BlockKind::AcaciaStairs => 3f32, + BlockKind::BlueShulkerBox => 2f32, + BlockKind::WhiteConcretePowder => 0.5f32, + BlockKind::MossyStoneBrickSlab => 6f32, + BlockKind::RootedDirt => 0.5f32, + BlockKind::OakLeaves => 0.2f32, + BlockKind::RedMushroomBlock => 0.2f32, + BlockKind::StrippedCrimsonHyphae => 2f32, + BlockKind::SmoothSandstone => 6f32, + BlockKind::CyanConcrete => 1.8f32, + BlockKind::Netherrack => 0.4f32, + BlockKind::PottedCornflower => 0f32, + BlockKind::PointedDripstone => 3f32, + BlockKind::DarkPrismarineSlab => 6f32, + BlockKind::DeepslateBrickWall => 0f32, + BlockKind::SugarCane => 0f32, + BlockKind::RedStainedGlass => 0.3f32, + BlockKind::YellowStainedGlassPane => 0.3f32, + BlockKind::WaxedCopperBlock => 0f32, + BlockKind::MagentaWallBanner => 1f32, + BlockKind::FlowerPot => 0f32, + BlockKind::CaveVines => 0f32, + BlockKind::DeadTubeCoralFan => 0f32, + BlockKind::MovingPiston => -1f32, + BlockKind::PurpurSlab => 6f32, + BlockKind::LavaCauldron => 0f32, + BlockKind::OrangeCarpet => 0.1f32, + BlockKind::AndesiteStairs => 6f32, + BlockKind::Barrel => 2.5f32, + BlockKind::OrangeShulkerBox => 2f32, + BlockKind::StoneBrickStairs => 6f32, + BlockKind::HornCoral => 0f32, + BlockKind::PolishedBlackstoneSlab => 6f32, + BlockKind::SpruceSign => 1f32, + BlockKind::PurpleWallBanner => 1f32, + BlockKind::SpruceFenceGate => 3f32, + BlockKind::GreenCandle => 0.1f32, + BlockKind::PlayerHead => 1f32, + BlockKind::CopperOre => 0f32, + BlockKind::EmeraldOre => 3f32, + BlockKind::RedSandstoneSlab => 6f32, + BlockKind::BrownCarpet => 0.1f32, + BlockKind::DeepslateBrickStairs => 0f32, + BlockKind::LightGrayBanner => 1f32, + BlockKind::Tnt => 0f32, + BlockKind::RedstoneBlock => 6f32, + BlockKind::Terracotta => 4.2f32, + BlockKind::GreenBed => 0.2f32, + BlockKind::Cauldron => 2f32, + BlockKind::RepeatingCommandBlock => 3600000f32, + BlockKind::DioriteWall => 6f32, + BlockKind::PurpleBed => 0.2f32, + BlockKind::Scaffolding => 0f32, + BlockKind::InfestedChiseledStoneBricks => 0f32, + BlockKind::PinkConcretePowder => 0.5f32, + } + } +} +impl BlockKind { + #[doc = "Returns the `hardness` property of this `BlockKind`."] + #[inline] + pub fn hardness(&self) -> f32 { + match self { + BlockKind::Light => -1f32, + BlockKind::CrimsonFungus => 0f32, + BlockKind::BlueConcrete => 1.8f32, + BlockKind::CutRedSandstoneSlab => 2f32, + BlockKind::CyanCarpet => 0.1f32, + BlockKind::MagentaStainedGlass => 0.3f32, + BlockKind::RedWallBanner => 1f32, + BlockKind::PinkTulip => 0f32, + BlockKind::DarkPrismarineSlab => 1.5f32, + BlockKind::PottedCactus => 0f32, + BlockKind::LimeBed => 0.2f32, + BlockKind::Shroomlight => 1f32, + BlockKind::FireCoralFan => 0f32, + BlockKind::Bedrock => -1f32, + BlockKind::CyanConcretePowder => 0.5f32, + BlockKind::AcaciaLeaves => 0.2f32, + BlockKind::PolishedAndesiteSlab => 1.5f32, + BlockKind::WarpedButton => 0.5f32, + BlockKind::WaxedCutCopperStairs => 0f32, + BlockKind::SmoothRedSandstoneStairs => 2f32, + BlockKind::PinkWool => 0.8f32, + BlockKind::WhiteBanner => 1f32, + BlockKind::AcaciaDoor => 3f32, + BlockKind::BrickWall => 2f32, + BlockKind::CutSandstoneSlab => 2f32, + BlockKind::InfestedStoneBricks => 0f32, + BlockKind::StrippedSpruceLog => 2f32, + BlockKind::LightBlueWallBanner => 1f32, + BlockKind::DeepslateRedstoneOre => 4.5f32, + BlockKind::BoneBlock => 2f32, + BlockKind::LightBlueCandle => 0.1f32, + BlockKind::MagentaCandleCake => 0f32, + BlockKind::Candle => 0.1f32, + BlockKind::CreeperHead => 1f32, + BlockKind::CrimsonFenceGate => 2f32, + BlockKind::CyanStainedGlass => 0.3f32, + BlockKind::BlackTerracotta => 1.25f32, + BlockKind::SpruceLeaves => 0.2f32, + BlockKind::OrangeGlazedTerracotta => 1.4f32, + BlockKind::JungleWallSign => 1f32, + BlockKind::RepeatingCommandBlock => -1f32, + BlockKind::OxidizedCutCopper => 0f32, + BlockKind::DirtPath => 0.65f32, + BlockKind::DiamondOre => 3f32, + BlockKind::SoulTorch => 0f32, + BlockKind::CoarseDirt => 0.5f32, + BlockKind::PurpleCandle => 0.1f32, + BlockKind::ChiseledDeepslate => 0f32, + BlockKind::PoweredRail => 0.7f32, + BlockKind::PrismarineBrickStairs => 1.5f32, + BlockKind::StoneBricks => 1.5f32, + BlockKind::PinkStainedGlassPane => 0.3f32, + BlockKind::MagentaConcrete => 1.8f32, + BlockKind::BlueGlazedTerracotta => 1.4f32, + BlockKind::Basalt => 1.25f32, + BlockKind::PolishedGraniteSlab => 1.5f32, + BlockKind::OrangeWallBanner => 1f32, + BlockKind::CommandBlock => -1f32, + BlockKind::BrickStairs => 2f32, + BlockKind::PinkCarpet => 0.1f32, + BlockKind::SmithingTable => 2.5f32, + BlockKind::PolishedDeepslateStairs => 0f32, + BlockKind::DeadBush => 0f32, + BlockKind::AmethystCluster => 1.5f32, + BlockKind::StrippedBirchWood => 2f32, + BlockKind::SweetBerryBush => 0f32, + BlockKind::LightGrayWallBanner => 1f32, + BlockKind::CoalOre => 3f32, + BlockKind::OakLog => 2f32, + BlockKind::OrangeCandleCake => 0f32, + BlockKind::MossCarpet => 0.1f32, + BlockKind::BirchLeaves => 0.2f32, + BlockKind::OakWallSign => 1f32, + BlockKind::BirchFenceGate => 2f32, + BlockKind::OrangeStainedGlass => 0.3f32, + BlockKind::StrippedWarpedHyphae => 2f32, + BlockKind::CyanCandle => 0.1f32, + BlockKind::Poppy => 0f32, + BlockKind::MagentaWallBanner => 1f32, + BlockKind::CobblestoneWall => 2f32, + BlockKind::StrippedSpruceWood => 2f32, + BlockKind::QuartzBlock => 0.8f32, + BlockKind::RedSandstoneStairs => 0.8f32, + BlockKind::Air => 0f32, + BlockKind::SpruceLog => 2f32, + BlockKind::BlueBed => 0.2f32, + BlockKind::SpruceTrapdoor => 3f32, + BlockKind::WarpedHyphae => 2f32, + BlockKind::CryingObsidian => 50f32, + BlockKind::StrippedOakLog => 2f32, + BlockKind::DeepslateIronOre => 4.5f32, + BlockKind::Potatoes => 0f32, + BlockKind::SpruceWood => 2f32, + BlockKind::SoulSand => 0.5f32, + BlockKind::OakButton => 0.5f32, + BlockKind::HangingRoots => 0f32, + BlockKind::Stone => 1.5f32, + BlockKind::NoteBlock => 0.8f32, + BlockKind::AcaciaPlanks => 2f32, + BlockKind::BirchSign => 1f32, + BlockKind::YellowWallBanner => 1f32, + BlockKind::JungleTrapdoor => 3f32, + BlockKind::RedNetherBricks => 2f32, + BlockKind::PurpleConcretePowder => 0.5f32, + BlockKind::DeadFireCoralWallFan => 0f32, + BlockKind::OxidizedCutCopperSlab => 0f32, + BlockKind::CobbledDeepslateStairs => 0f32, + BlockKind::CobbledDeepslateSlab => 0f32, + BlockKind::RootedDirt => 0.5f32, + BlockKind::EndStoneBrickStairs => 3f32, + BlockKind::ChorusFlower => 0.4f32, + BlockKind::Rail => 0.7f32, + BlockKind::LightGrayCandle => 0.1f32, + BlockKind::CyanBanner => 1f32, + BlockKind::InfestedStone => 0f32, + BlockKind::GreenShulkerBox => 2f32, + BlockKind::AcaciaWood => 2f32, + BlockKind::CyanWool => 0.8f32, + BlockKind::WhiteCandleCake => 0f32, + BlockKind::MossyCobblestone => 2f32, + BlockKind::ChiseledQuartzBlock => 0.8f32, + BlockKind::PurpleWool => 0.8f32, + BlockKind::NetherBrickStairs => 2f32, + BlockKind::MagentaCandle => 0.1f32, + BlockKind::EndStoneBrickSlab => 3f32, + BlockKind::Prismarine => 1.5f32, + BlockKind::DioriteStairs => 1.5f32, + BlockKind::BrownCandle => 0.1f32, + BlockKind::CrimsonSign => 1f32, + BlockKind::CobbledDeepslate => 3.5f32, + BlockKind::WeepingVines => 0f32, + BlockKind::BlackCarpet => 0.1f32, + BlockKind::VoidAir => 0f32, + BlockKind::DarkOakSapling => 0f32, + BlockKind::CrackedStoneBricks => 1.5f32, + BlockKind::CrimsonPressurePlate => 0.5f32, + BlockKind::PottedCrimsonRoots => 0f32, + BlockKind::RedStainedGlass => 0.3f32, + BlockKind::LimeBanner => 1f32, + BlockKind::SporeBlossom => 0f32, + BlockKind::EmeraldBlock => 5f32, + BlockKind::DarkOakButton => 0.5f32, + BlockKind::MossyCobblestoneWall => 2f32, + BlockKind::PolishedBlackstoneSlab => 2f32, + BlockKind::BubbleCoralWallFan => 0f32, + BlockKind::GreenCandleCake => 0f32, + BlockKind::DeadBubbleCoral => 0f32, + BlockKind::AcaciaFenceGate => 2f32, + BlockKind::PrismarineBricks => 1.5f32, + BlockKind::CaveVinesPlant => 0f32, + BlockKind::SeaLantern => 0.3f32, + BlockKind::CartographyTable => 2.5f32, + BlockKind::ExposedCutCopperSlab => 0f32, + BlockKind::WhiteWool => 0.8f32, + BlockKind::StrippedBirchLog => 2f32, + BlockKind::QuartzBricks => 0.8f32, + BlockKind::Farmland => 0.6f32, + BlockKind::SmoothBasalt => 0f32, + BlockKind::PottedWarpedRoots => 0f32, + BlockKind::SmallAmethystBud => 0f32, + BlockKind::RedNetherBrickSlab => 2f32, + BlockKind::BlueStainedGlass => 0.3f32, + BlockKind::WaxedCutCopperSlab => 0f32, + BlockKind::CopperOre => 0f32, + BlockKind::LightBlueStainedGlassPane => 0.3f32, + BlockKind::Clay => 0.6f32, + BlockKind::Chain => 5f32, + BlockKind::Glass => 0.3f32, + BlockKind::Cobblestone => 2f32, + BlockKind::MagentaWool => 0.8f32, + BlockKind::PottedAzaleaBush => 0f32, + BlockKind::OrangeWool => 0.8f32, + BlockKind::Observer => 3f32, + BlockKind::PottedOxeyeDaisy => 0f32, + BlockKind::PrismarineBrickSlab => 1.5f32, + BlockKind::PottedBlueOrchid => 0f32, + BlockKind::CaveAir => 0f32, + BlockKind::WarpedTrapdoor => 3f32, + BlockKind::BlueCarpet => 0.1f32, + BlockKind::Loom => 2.5f32, + BlockKind::SpruceDoor => 3f32, + BlockKind::NetherGoldOre => 3f32, + BlockKind::Granite => 1.5f32, + BlockKind::Podzol => 0.5f32, + BlockKind::Lilac => 0f32, + BlockKind::CutSandstone => 0.8f32, + BlockKind::LightWeightedPressurePlate => 0.5f32, + BlockKind::ChiseledStoneBricks => 1.5f32, + BlockKind::WaxedExposedCutCopper => 0f32, + BlockKind::StrippedCrimsonHyphae => 2f32, + BlockKind::Ice => 0.5f32, + BlockKind::TintedGlass => 0f32, + BlockKind::PurpurSlab => 2f32, + BlockKind::SoulFire => 0f32, + BlockKind::BrownBanner => 1f32, + BlockKind::WarpedSlab => 2f32, + BlockKind::NetherBrickSlab => 2f32, + BlockKind::SpruceFenceGate => 2f32, + BlockKind::DeadBubbleCoralFan => 0f32, + BlockKind::WaxedOxidizedCutCopper => 0f32, + BlockKind::GreenWallBanner => 1f32, + BlockKind::PurpurBlock => 1.5f32, + BlockKind::BlackConcrete => 1.8f32, + BlockKind::StrippedDarkOakLog => 2f32, + BlockKind::Fern => 0f32, + BlockKind::DragonEgg => 3f32, + BlockKind::AmethystBlock => 1.5f32, + BlockKind::PurpleBanner => 1f32, + BlockKind::OakSapling => 0f32, + BlockKind::PolishedBasalt => 1.25f32, + BlockKind::Sunflower => 0f32, + BlockKind::CyanTerracotta => 1.25f32, + BlockKind::Barrel => 2.5f32, + BlockKind::SandstoneStairs => 0.8f32, + BlockKind::OrangeCandle => 0.1f32, + BlockKind::LimeStainedGlassPane => 0.3f32, + BlockKind::LimeCandleCake => 0f32, + BlockKind::AcaciaSapling => 0f32, + BlockKind::BuddingAmethyst => 1.5f32, + BlockKind::PurpleGlazedTerracotta => 1.4f32, + BlockKind::RawCopperBlock => 5f32, + BlockKind::DarkOakFence => 2f32, + BlockKind::PinkWallBanner => 1f32, + BlockKind::JunglePlanks => 2f32, + BlockKind::PolishedDeepslateWall => 0f32, + BlockKind::BrownMushroomBlock => 0.2f32, + BlockKind::Lodestone => 3.5f32, + BlockKind::TubeCoralWallFan => 0f32, + BlockKind::Cornflower => 0f32, + BlockKind::BigDripleaf => 0.1f32, + BlockKind::MagentaStainedGlassPane => 0.3f32, + BlockKind::MagentaCarpet => 0.1f32, + BlockKind::CobblestoneSlab => 2f32, + BlockKind::LapisOre => 3f32, + BlockKind::ChorusPlant => 0.4f32, + BlockKind::BubbleColumn => 0f32, + BlockKind::YellowWool => 0.8f32, + BlockKind::DarkOakWallSign => 1f32, + BlockKind::GraniteSlab => 1.5f32, + BlockKind::DeepslateEmeraldOre => 4.5f32, + BlockKind::PolishedGranite => 1.5f32, + BlockKind::PottedPoppy => 0f32, + BlockKind::LimeWool => 0.8f32, + BlockKind::OrangeBed => 0.2f32, + BlockKind::RedCandle => 0.1f32, + BlockKind::RedSand => 0.5f32, + BlockKind::BirchFence => 2f32, + BlockKind::DaylightDetector => 0.2f32, + BlockKind::CrackedPolishedBlackstoneBricks => 1.5f32, + BlockKind::DarkOakTrapdoor => 3f32, + BlockKind::WitherSkeletonWallSkull => 1f32, + BlockKind::BirchPlanks => 2f32, + BlockKind::DeepslateGoldOre => 4.5f32, + BlockKind::PurpleCarpet => 0.1f32, + BlockKind::DeepslateLapisOre => 4.5f32, + BlockKind::DioriteWall => 1.5f32, + BlockKind::WeepingVinesPlant => 0f32, + BlockKind::LimeStainedGlass => 0.3f32, + BlockKind::BlackShulkerBox => 2f32, + BlockKind::PolishedBlackstone => 2f32, + BlockKind::WarpedWallSign => 1f32, + BlockKind::GlowLichen => 0.2f32, + BlockKind::BubbleCoralFan => 0f32, + BlockKind::BirchTrapdoor => 3f32, + BlockKind::PrismarineSlab => 1.5f32, + BlockKind::CrimsonWallSign => 1f32, + BlockKind::AcaciaButton => 0.5f32, + BlockKind::WaxedWeatheredCutCopper => 0f32, + BlockKind::DeadBubbleCoralWallFan => 0f32, + BlockKind::WarpedFungus => 0f32, + BlockKind::BrownCandleCake => 0f32, + BlockKind::AcaciaStairs => 2f32, + BlockKind::IronTrapdoor => 5f32, + BlockKind::BrownWallBanner => 1f32, + BlockKind::SmallDripleaf => 0f32, + BlockKind::LimeConcretePowder => 0.5f32, + BlockKind::FireCoralBlock => 1.5f32, + BlockKind::LightGrayConcretePowder => 0.5f32, + BlockKind::BirchLog => 2f32, + BlockKind::SmoothStoneSlab => 2f32, + BlockKind::DarkPrismarineStairs => 1.5f32, + BlockKind::PurpurStairs => 1.5f32, + BlockKind::CrackedNetherBricks => 2f32, + BlockKind::PurpleTerracotta => 1.25f32, + BlockKind::Grass => 0f32, + BlockKind::SmoothSandstoneSlab => 2f32, + BlockKind::WarpedPlanks => 2f32, + BlockKind::FloweringAzalea => 0f32, + BlockKind::WarpedStem => 2f32, + BlockKind::BrownStainedGlassPane => 0.3f32, + BlockKind::DeepslateBrickSlab => 0f32, + BlockKind::BrownCarpet => 0.1f32, + BlockKind::WeatheredCutCopperSlab => 0f32, + BlockKind::JungleLeaves => 0.2f32, + BlockKind::OrangeConcrete => 1.8f32, + BlockKind::JungleStairs => 2f32, + BlockKind::SoulWallTorch => 0f32, + BlockKind::PolishedBlackstonePressurePlate => 0.5f32, + BlockKind::StickyPiston => 1.5f32, + BlockKind::AzureBluet => 0f32, + BlockKind::GoldOre => 3f32, + BlockKind::RedBed => 0.2f32, + BlockKind::OakSlab => 2f32, + BlockKind::Bamboo => 1f32, + BlockKind::PottedWarpedFungus => 0f32, + BlockKind::QuartzStairs => 0.8f32, + BlockKind::SpruceSlab => 2f32, + BlockKind::WhiteConcrete => 1.8f32, + BlockKind::NetherBrickFence => 2f32, + BlockKind::LilyOfTheValley => 0f32, + BlockKind::GreenGlazedTerracotta => 1.4f32, + BlockKind::WaxedWeatheredCopper => 0f32, + BlockKind::EndPortal => -1f32, + BlockKind::Vine => 0.2f32, + BlockKind::EndPortalFrame => -1f32, + BlockKind::HornCoralBlock => 1.5f32, + BlockKind::ChiseledPolishedBlackstone => 1.5f32, + BlockKind::OakSign => 1f32, + BlockKind::GrayWool => 0.8f32, + BlockKind::PottedJungleSapling => 0f32, + BlockKind::DeepslateBrickWall => 0f32, + BlockKind::LimeCarpet => 0.1f32, + BlockKind::Sandstone => 0.8f32, + BlockKind::BrickSlab => 2f32, + BlockKind::SmoothSandstoneStairs => 2f32, + BlockKind::DarkOakLeaves => 0.2f32, + BlockKind::BlueWool => 0.8f32, + BlockKind::BrownMushroom => 0f32, + BlockKind::YellowTerracotta => 1.25f32, + BlockKind::LightGrayBed => 0.2f32, + BlockKind::JungleSlab => 2f32, + BlockKind::PottedPinkTulip => 0f32, + BlockKind::FrostedIce => 0.5f32, + BlockKind::IronBars => 5f32, + BlockKind::ZombieWallHead => 1f32, + BlockKind::StrippedDarkOakWood => 2f32, + BlockKind::YellowStainedGlass => 0.3f32, + BlockKind::Terracotta => 1.25f32, + BlockKind::SandstoneSlab => 2f32, + BlockKind::WhiteShulkerBox => 2f32, + BlockKind::Repeater => 0f32, + BlockKind::StructureVoid => 0f32, + BlockKind::AttachedPumpkinStem => 0f32, + BlockKind::SprucePlanks => 2f32, + BlockKind::PottedWitherRose => 0f32, + BlockKind::Lava => 100f32, + BlockKind::PottedBamboo => 0f32, + BlockKind::EmeraldOre => 3f32, + BlockKind::DeadBubbleCoralBlock => 1.5f32, + BlockKind::YellowConcrete => 1.8f32, + BlockKind::BirchSlab => 2f32, + BlockKind::BlackConcretePowder => 0.5f32, + BlockKind::AcaciaPressurePlate => 0.5f32, + BlockKind::SlimeBlock => 0f32, + BlockKind::SmoothStone => 2f32, + BlockKind::SmoothRedSandstone => 2f32, + BlockKind::WarpedNylium => 0.4f32, + BlockKind::Tnt => 0f32, + BlockKind::BlueShulkerBox => 2f32, + BlockKind::BrownWool => 0.8f32, + BlockKind::BlueBanner => 1f32, + BlockKind::GraniteWall => 1.5f32, + BlockKind::PottedCrimsonFungus => 0f32, + BlockKind::NetherPortal => -1f32, + BlockKind::BlueIce => 2.8f32, + BlockKind::CutCopper => 0f32, + BlockKind::CobbledDeepslateWall => 0f32, + BlockKind::ChiseledSandstone => 0.8f32, + BlockKind::NetherBrickWall => 2f32, + BlockKind::WarpedRoots => 0f32, + BlockKind::WhiteCandle => 0.1f32, + BlockKind::Lantern => 3.5f32, + BlockKind::WhiteStainedGlass => 0.3f32, + BlockKind::BambooSapling => 1f32, + BlockKind::PackedIce => 0.5f32, + BlockKind::Cobweb => 4f32, + BlockKind::NetherWart => 0f32, + BlockKind::FloweringAzaleaLeaves => 0.2f32, + BlockKind::BlackBanner => 1f32, + BlockKind::AndesiteStairs => 1.5f32, + BlockKind::RedConcrete => 1.8f32, + BlockKind::PowderSnow => 0.25f32, + BlockKind::CaveVines => 0f32, + BlockKind::Tripwire => 0f32, + BlockKind::LimeGlazedTerracotta => 1.4f32, + BlockKind::WhiteBed => 0.2f32, + BlockKind::SpruceButton => 0.5f32, + BlockKind::PottedRedTulip => 0f32, + BlockKind::PinkBanner => 1f32, + BlockKind::PurpleConcrete => 1.8f32, + BlockKind::RedTulip => 0f32, + BlockKind::PinkStainedGlass => 0.3f32, + BlockKind::BubbleCoralBlock => 1.5f32, + BlockKind::PlayerHead => 1f32, + BlockKind::SmoothQuartz => 2f32, + BlockKind::Anvil => 5f32, + BlockKind::DeadFireCoral => 0f32, + BlockKind::InfestedCobblestone => 0f32, + BlockKind::ChainCommandBlock => -1f32, + BlockKind::TurtleEgg => 0.5f32, + BlockKind::GreenCarpet => 0.1f32, + BlockKind::WeatheredCutCopperStairs => 0f32, + BlockKind::RedNetherBrickWall => 2f32, + BlockKind::BrownTerracotta => 1.25f32, + BlockKind::OrangeCarpet => 0.1f32, + BlockKind::LightBlueBed => 0.2f32, + BlockKind::PottedWhiteTulip => 0f32, + BlockKind::DragonHead => 1f32, + BlockKind::LightBlueCandleCake => 0f32, + BlockKind::SpruceSapling => 0f32, + BlockKind::Water => 100f32, + BlockKind::BlackStainedGlass => 0.3f32, + BlockKind::InfestedChiseledStoneBricks => 0f32, + BlockKind::LightBlueConcretePowder => 0.5f32, + BlockKind::StoneStairs => 1.5f32, + BlockKind::InfestedDeepslate => 0f32, + BlockKind::QuartzPillar => 0.8f32, + BlockKind::Gravel => 0.6f32, + BlockKind::CyanGlazedTerracotta => 1.4f32, + BlockKind::DarkOakSign => 1f32, + BlockKind::OrangeShulkerBox => 2f32, + BlockKind::LapisBlock => 3f32, + BlockKind::Deepslate => 3f32, + BlockKind::DarkOakDoor => 3f32, + BlockKind::EndStoneBrickWall => 3f32, + BlockKind::RawIronBlock => 5f32, + BlockKind::HornCoralFan => 0f32, + BlockKind::TrappedChest => 2.5f32, + BlockKind::CyanShulkerBox => 2f32, + BlockKind::WhiteTulip => 0f32, + BlockKind::Barrier => -1f32, + BlockKind::SmoothSandstone => 2f32, + BlockKind::TripwireHook => 0f32, + BlockKind::DeadFireCoralBlock => 1.5f32, + BlockKind::Bookshelf => 1.5f32, + BlockKind::OakTrapdoor => 3f32, + BlockKind::JungleLog => 2f32, + BlockKind::PinkBed => 0.2f32, + BlockKind::GreenConcretePowder => 0.5f32, + BlockKind::BrainCoralWallFan => 0f32, + BlockKind::LimeWallBanner => 1f32, + BlockKind::BlackGlazedTerracotta => 1.4f32, + BlockKind::BlackStainedGlassPane => 0.3f32, + BlockKind::ExposedCutCopperStairs => 0f32, + BlockKind::GreenBanner => 1f32, + BlockKind::PottedOakSapling => 0f32, + BlockKind::PinkConcrete => 1.8f32, + BlockKind::GoldBlock => 3f32, + BlockKind::StonePressurePlate => 0.5f32, + BlockKind::DetectorRail => 0.7f32, + BlockKind::CutRedSandstone => 0.8f32, + BlockKind::Dispenser => 3.5f32, + BlockKind::RedSandstoneSlab => 2f32, + BlockKind::TwistingVinesPlant => 0f32, + BlockKind::DiamondBlock => 5f32, + BlockKind::YellowGlazedTerracotta => 1.4f32, + BlockKind::InfestedCrackedStoneBricks => 0f32, + BlockKind::RedSandstone => 0.8f32, + BlockKind::Beacon => 3f32, + BlockKind::LimeTerracotta => 1.25f32, + BlockKind::JungleFenceGate => 2f32, + BlockKind::DarkOakPressurePlate => 0.5f32, + BlockKind::RedNetherBrickStairs => 2f32, + BlockKind::CrimsonStem => 2f32, + BlockKind::LightningRod => 3f32, + BlockKind::PinkCandleCake => 0f32, + BlockKind::EndGateway => -1f32, + BlockKind::WarpedFence => 2f32, + BlockKind::DeadBrainCoral => 0f32, + BlockKind::OakStairs => 2f32, + BlockKind::JunglePressurePlate => 0.5f32, + BlockKind::PottedAcaciaSapling => 0f32, + BlockKind::DeadBrainCoralFan => 0f32, + BlockKind::CrimsonFence => 2f32, + BlockKind::DeadHornCoral => 0f32, + BlockKind::RedMushroom => 0f32, + BlockKind::SprucePressurePlate => 0.5f32, + BlockKind::TubeCoralBlock => 1.5f32, + BlockKind::GrassBlock => 0.6f32, + BlockKind::CrimsonPlanks => 2f32, + BlockKind::WarpedFenceGate => 2f32, + BlockKind::RespawnAnchor => 50f32, + BlockKind::DripstoneBlock => 1.5f32, + BlockKind::StrippedOakWood => 2f32, + BlockKind::OakDoor => 3f32, + BlockKind::Snow => 0.1f32, + BlockKind::SpruceFence => 2f32, + BlockKind::BrainCoralFan => 0f32, + BlockKind::AcaciaFence => 2f32, + BlockKind::BlackWool => 0.8f32, + BlockKind::DeadBrainCoralBlock => 1.5f32, + BlockKind::WaxedOxidizedCutCopperSlab => 0f32, + BlockKind::FireCoralWallFan => 0f32, + BlockKind::PurpleStainedGlass => 0.3f32, + BlockKind::DeadBrainCoralWallFan => 0f32, + BlockKind::OakPressurePlate => 0.5f32, + BlockKind::BrownShulkerBox => 2f32, + BlockKind::KelpPlant => 0f32, + BlockKind::RedTerracotta => 1.25f32, + BlockKind::DeadHornCoralBlock => 1.5f32, + BlockKind::PolishedBlackstoneBrickWall => 1.5f32, + BlockKind::MossyStoneBrickSlab => 1.5f32, + BlockKind::Lever => 0.5f32, + BlockKind::Chest => 2.5f32, + BlockKind::JungleDoor => 3f32, + BlockKind::PurpleBed => 0.2f32, + BlockKind::YellowCandle => 0.1f32, + BlockKind::Melon => 1f32, + BlockKind::Hopper => 3f32, + BlockKind::Andesite => 1.5f32, + BlockKind::Pumpkin => 1f32, + BlockKind::CrimsonButton => 0.5f32, + BlockKind::PolishedBlackstoneBrickSlab => 2f32, + BlockKind::MagentaBanner => 1f32, + BlockKind::BirchWood => 2f32, + BlockKind::SnowBlock => 0.2f32, + BlockKind::WarpedStairs => 2f32, + BlockKind::Beehive => 0.6f32, + BlockKind::WaxedExposedCopper => 0f32, + BlockKind::RedMushroomBlock => 0.2f32, + BlockKind::GrayShulkerBox => 2f32, + BlockKind::Sponge => 0.6f32, + BlockKind::Dropper => 3.5f32, + BlockKind::Comparator => 0f32, + BlockKind::Composter => 0.6f32, + BlockKind::HeavyWeightedPressurePlate => 0.5f32, + BlockKind::RedstoneWire => 0f32, + BlockKind::OxidizedCutCopperStairs => 0f32, + BlockKind::BlueOrchid => 0f32, + BlockKind::WaxedCopperBlock => 0f32, + BlockKind::Beetroots => 0f32, + BlockKind::PinkGlazedTerracotta => 1.4f32, + BlockKind::SkeletonWallSkull => 1f32, + BlockKind::CoalBlock => 5f32, + BlockKind::Lectern => 2.5f32, + BlockKind::PolishedBlackstoneStairs => 2f32, + BlockKind::LightBlueGlazedTerracotta => 1.4f32, + BlockKind::PurpurPillar => 1.5f32, + BlockKind::PolishedDeepslateSlab => 0f32, + BlockKind::PrismarineWall => 1.5f32, + BlockKind::CraftingTable => 2.5f32, + BlockKind::Jukebox => 2f32, + BlockKind::BlueCandleCake => 0f32, + BlockKind::Blackstone => 1.5f32, + BlockKind::GrayStainedGlass => 0.3f32, + BlockKind::GrayConcrete => 1.8f32, + BlockKind::BrownConcrete => 1.8f32, + BlockKind::Spawner => 5f32, + BlockKind::PottedBirchSapling => 0f32, + BlockKind::RedConcretePowder => 0.5f32, + BlockKind::Seagrass => 0f32, + BlockKind::Piston => 1.5f32, + BlockKind::CyanConcrete => 1.8f32, + BlockKind::MushroomStem => 0.2f32, + BlockKind::DarkPrismarine => 1.5f32, + BlockKind::MovingPiston => -1f32, + BlockKind::BirchWallSign => 1f32, + BlockKind::Torch => 0f32, + BlockKind::WallTorch => 0f32, + BlockKind::DeadHornCoralWallFan => 0f32, + BlockKind::Grindstone => 2f32, + BlockKind::LightGrayCandleCake => 0f32, + BlockKind::LightBlueCarpet => 0.1f32, + BlockKind::MagentaTerracotta => 1.25f32, + BlockKind::PolishedAndesiteStairs => 1.5f32, + BlockKind::StoneBrickSlab => 2f32, + BlockKind::AndesiteWall => 1.5f32, + BlockKind::Cocoa => 0.2f32, + BlockKind::MagentaShulkerBox => 2f32, + BlockKind::DeadTubeCoralBlock => 1.5f32, + BlockKind::HoneycombBlock => 0.6f32, + BlockKind::GrayGlazedTerracotta => 1.4f32, + BlockKind::OrangeStainedGlassPane => 0.3f32, + BlockKind::NetherWartBlock => 1f32, + BlockKind::LightGrayWool => 0.8f32, + BlockKind::MossyCobblestoneSlab => 2f32, + BlockKind::Cake => 0.5f32, + BlockKind::WaxedExposedCutCopperStairs => 0f32, + BlockKind::Campfire => 2f32, + BlockKind::OakLeaves => 0.2f32, + BlockKind::RedStainedGlassPane => 0.3f32, + BlockKind::EnchantingTable => 5f32, + BlockKind::PowderSnowCauldron => 0f32, + BlockKind::ShulkerBox => 2f32, + BlockKind::GildedBlackstone => 1.5f32, + BlockKind::GrayCandleCake => 0f32, + BlockKind::PottedLilyOfTheValley => 0f32, + BlockKind::BirchPressurePlate => 0.5f32, + BlockKind::Diorite => 1.5f32, + BlockKind::LightGrayShulkerBox => 2f32, + BlockKind::GrayConcretePowder => 0.5f32, + BlockKind::DriedKelpBlock => 0.5f32, + BlockKind::DamagedAnvil => 5f32, + BlockKind::RedCarpet => 0.1f32, + BlockKind::WhiteWallBanner => 1f32, + BlockKind::NetherSprouts => 0f32, + BlockKind::FletchingTable => 2.5f32, + BlockKind::PottedRedMushroom => 0f32, + BlockKind::Glowstone => 0.3f32, + BlockKind::Cauldron => 2f32, + BlockKind::LightGrayBanner => 1f32, + BlockKind::BrewingStand => 0.5f32, + BlockKind::StoneSlab => 2f32, + BlockKind::GlassPane => 0.3f32, + BlockKind::YellowConcretePowder => 0.5f32, + BlockKind::MossyStoneBrickStairs => 1.5f32, + BlockKind::ExposedCopper => 3f32, + BlockKind::EndStone => 3f32, + BlockKind::StoneBrickWall => 1.5f32, + BlockKind::Obsidian => 50f32, + BlockKind::LightGrayCarpet => 0.1f32, + BlockKind::RedstoneBlock => 5f32, + BlockKind::RoseBush => 0f32, + BlockKind::JungleButton => 0.5f32, + BlockKind::SpruceSign => 1f32, + BlockKind::TubeCoralFan => 0f32, + BlockKind::NetheriteBlock => 50f32, + BlockKind::AncientDebris => 30f32, + BlockKind::DeepslateCopperOre => 4.5f32, + BlockKind::PinkConcretePowder => 0.5f32, + BlockKind::TallSeagrass => 0f32, + BlockKind::PolishedGraniteStairs => 1.5f32, + BlockKind::Sand => 0.5f32, + BlockKind::YellowStainedGlassPane => 0.3f32, + BlockKind::MossyStoneBrickWall => 1.5f32, + BlockKind::StoneButton => 0.5f32, + BlockKind::LightGrayConcrete => 1.8f32, + BlockKind::BlackstoneStairs => 1.5f32, + BlockKind::YellowCarpet => 0.1f32, + BlockKind::GrayCarpet => 0.1f32, + BlockKind::PinkShulkerBox => 2f32, + BlockKind::PottedCornflower => 0f32, + BlockKind::PolishedBlackstoneButton => 0.5f32, + BlockKind::OxidizedCopper => 3f32, + BlockKind::OrangeBanner => 1f32, + BlockKind::PurpleShulkerBox => 2f32, + BlockKind::DeepslateTileStairs => 0f32, + BlockKind::LightBlueStainedGlass => 0.3f32, + BlockKind::DarkOakFenceGate => 2f32, + BlockKind::DarkOakWood => 2f32, + BlockKind::LilyPad => 0f32, + BlockKind::IronOre => 3f32, + BlockKind::OakPlanks => 2f32, + BlockKind::CyanStainedGlassPane => 0.3f32, + BlockKind::DarkOakPlanks => 2f32, + BlockKind::BlueConcretePowder => 0.5f32, + BlockKind::RedstoneWallTorch => 0f32, + BlockKind::LightBlueShulkerBox => 2f32, + BlockKind::WhiteTerracotta => 1.25f32, + BlockKind::LimeConcrete => 1.8f32, + BlockKind::Bell => 5f32, + BlockKind::BirchStairs => 2f32, + BlockKind::NetherQuartzOre => 3f32, + BlockKind::BeeNest => 0.3f32, + BlockKind::GreenConcrete => 1.8f32, + BlockKind::LightGrayTerracotta => 1.25f32, + BlockKind::LargeAmethystBud => 0f32, + BlockKind::Allium => 0f32, + BlockKind::Smoker => 3.5f32, + BlockKind::Dandelion => 0f32, + BlockKind::CrimsonRoots => 0f32, + BlockKind::GrayBanner => 1f32, + BlockKind::DeepslateTileWall => 0f32, + BlockKind::SoulSoil => 0.5f32, + BlockKind::EnderChest => 22.5f32, + BlockKind::LightGrayGlazedTerracotta => 1.4f32, + BlockKind::CrimsonDoor => 3f32, + BlockKind::BlueCandle => 0.1f32, + BlockKind::BlueWallBanner => 1f32, + BlockKind::BrainCoral => 0f32, + BlockKind::WaxedWeatheredCutCopperStairs => 0f32, + BlockKind::BlueStainedGlassPane => 0.3f32, + BlockKind::PistonHead => 1.5f32, + BlockKind::RedShulkerBox => 2f32, + BlockKind::JungleSign => 1f32, + BlockKind::CrimsonSlab => 2f32, + BlockKind::DarkOakSlab => 2f32, + BlockKind::DeadFireCoralFan => 0f32, + BlockKind::SugarCane => 0f32, + BlockKind::ChiseledRedSandstone => 0.8f32, + BlockKind::LightBlueConcrete => 1.8f32, + BlockKind::SmoothQuartzStairs => 2f32, + BlockKind::LimeCandle => 0.1f32, + BlockKind::GreenBed => 0.2f32, + BlockKind::PetrifiedOakSlab => 2f32, + BlockKind::Dirt => 0.5f32, + BlockKind::DarkOakStairs => 2f32, + BlockKind::RedGlazedTerracotta => 1.4f32, + BlockKind::BirchDoor => 3f32, + BlockKind::PinkTerracotta => 1.25f32, + BlockKind::PolishedDiorite => 1.5f32, + BlockKind::AcaciaWallSign => 1f32, + BlockKind::CarvedPumpkin => 1f32, + BlockKind::DeepslateTileSlab => 0f32, + BlockKind::WhiteCarpet => 0.1f32, + BlockKind::JungleSapling => 0f32, + BlockKind::FlowerPot => 0f32, + BlockKind::Cactus => 0.4f32, + BlockKind::LightBlueWool => 0.8f32, + BlockKind::GrayTerracotta => 1.25f32, + BlockKind::MagmaBlock => 0.5f32, + BlockKind::WarpedPressurePlate => 0.5f32, + BlockKind::WarpedDoor => 3f32, + BlockKind::Calcite => 0.75f32, + BlockKind::DeepslateBrickStairs => 0f32, + BlockKind::OakFence => 2f32, + BlockKind::DeepslateDiamondOre => 4.5f32, + BlockKind::DeadHornCoralFan => 0f32, + BlockKind::SmoothQuartzSlab => 2f32, + BlockKind::WaterCauldron => 0f32, + BlockKind::NetherBricks => 2f32, + BlockKind::GreenStainedGlass => 0.3f32, + BlockKind::LavaCauldron => 0f32, + BlockKind::PottedSpruceSapling => 0f32, + BlockKind::GrayWallBanner => 1f32, + BlockKind::WarpedSign => 1f32, + BlockKind::GrayStainedGlassPane => 0.3f32, + BlockKind::Jigsaw => -1f32, + BlockKind::GrayCandle => 0.1f32, + BlockKind::MagentaConcretePowder => 0.5f32, + BlockKind::StrippedWarpedStem => 2f32, + BlockKind::CyanWallBanner => 1f32, + BlockKind::PointedDripstone => 1.5f32, + BlockKind::Mycelium => 0.6f32, + BlockKind::MossBlock => 0.1f32, + BlockKind::HayBlock => 0.5f32, + BlockKind::BlackWallBanner => 1f32, + BlockKind::WeatheredCutCopper => 0f32, + BlockKind::StrippedJungleLog => 2f32, + BlockKind::MagentaGlazedTerracotta => 1.4f32, + BlockKind::CobblestoneStairs => 2f32, + BlockKind::PolishedBlackstoneBricks => 1.5f32, + BlockKind::LightBlueBanner => 1f32, + BlockKind::SpruceWallSign => 1f32, + BlockKind::JackOLantern => 1f32, + BlockKind::SandstoneWall => 0.8f32, + BlockKind::CrimsonStairs => 2f32, + BlockKind::PolishedAndesite => 1.5f32, + BlockKind::Wheat => 0f32, + BlockKind::LightGrayStainedGlassPane => 0.3f32, + BlockKind::MagentaBed => 0.2f32, + BlockKind::PottedAllium => 0f32, + BlockKind::StructureBlock => -1f32, + BlockKind::ChiseledNetherBricks => 2f32, + BlockKind::BrownConcretePowder => 0.5f32, + BlockKind::GrayBed => 0.2f32, + BlockKind::IronDoor => 5f32, + BlockKind::StoneBrickStairs => 1.5f32, + BlockKind::RedBanner => 1f32, + BlockKind::WarpedWartBlock => 1f32, + BlockKind::WhiteStainedGlassPane => 0.3f32, + BlockKind::TallGrass => 0f32, + BlockKind::WaxedWeatheredCutCopperSlab => 0f32, + BlockKind::DeepslateTiles => 0f32, + BlockKind::YellowShulkerBox => 2f32, + BlockKind::BrownGlazedTerracotta => 1.4f32, + BlockKind::BlueTerracotta => 1.25f32, + BlockKind::BigDripleafStem => 0.1f32, + BlockKind::RedstoneTorch => 0f32, + BlockKind::StrippedAcaciaLog => 2f32, + BlockKind::JungleWood => 2f32, + BlockKind::SkeletonSkull => 1f32, + BlockKind::YellowCandleCake => 0f32, + BlockKind::GreenCandle => 0.1f32, + BlockKind::RedCandleCake => 0f32, + BlockKind::ActivatorRail => 0.7f32, + BlockKind::MediumAmethystBud => 0f32, + BlockKind::CrimsonHyphae => 2f32, + BlockKind::EndRod => 0f32, + BlockKind::WhiteGlazedTerracotta => 1.4f32, + BlockKind::BubbleCoral => 0f32, + BlockKind::SoulLantern => 3.5f32, + BlockKind::Carrots => 0f32, + BlockKind::PottedDandelion => 0f32, + BlockKind::PottedFern => 0f32, + BlockKind::HornCoralWallFan => 0f32, + BlockKind::LightBlueTerracotta => 1.25f32, + BlockKind::PolishedDioriteStairs => 1.5f32, + BlockKind::WaxedOxidizedCopper => 0f32, + BlockKind::BlackstoneSlab => 2f32, + BlockKind::Tuff => 1.5f32, + BlockKind::PinkCandle => 0.1f32, + BlockKind::CandleCake => 0f32, + BlockKind::RedstoneLamp => 0.3f32, + BlockKind::Ladder => 0.4f32, + BlockKind::PottedDarkOakSapling => 0f32, + BlockKind::PottedOrangeTulip => 0f32, + BlockKind::Target => 0.5f32, + BlockKind::CrimsonNylium => 0.4f32, + BlockKind::PolishedDioriteSlab => 1.5f32, + BlockKind::CutCopperStairs => 0f32, + BlockKind::MossyCobblestoneStairs => 2f32, + BlockKind::Peony => 0f32, + BlockKind::BirchButton => 0.5f32, + BlockKind::Bricks => 2f32, + BlockKind::DeepslateCoalOre => 4.5f32, + BlockKind::OrangeConcretePowder => 0.5f32, + BlockKind::BlastFurnace => 3.5f32, + BlockKind::Stonecutter => 3.5f32, + BlockKind::AndesiteSlab => 1.5f32, + BlockKind::CrackedDeepslateBricks => 0f32, + BlockKind::OakWood => 2f32, + BlockKind::OakFenceGate => 2f32, + BlockKind::BrownStainedGlass => 0.3f32, + BlockKind::QuartzSlab => 2f32, + BlockKind::StrippedAcaciaWood => 2f32, + BlockKind::PolishedBlackstoneWall => 2f32, + BlockKind::PottedFloweringAzaleaBush => 0f32, + BlockKind::PolishedDeepslate => 0f32, + BlockKind::WetSponge => 0.6f32, + BlockKind::BrownBed => 0.2f32, + BlockKind::WhiteConcretePowder => 0.5f32, + BlockKind::DragonWallHead => 1f32, + BlockKind::WaxedCutCopper => 0f32, + BlockKind::RedstoneOre => 3f32, + BlockKind::PottedBrownMushroom => 0f32, + BlockKind::StrippedCrimsonStem => 2f32, + BlockKind::HoneyBlock => 0f32, + BlockKind::DeadTubeCoralFan => 0f32, + BlockKind::SpruceStairs => 2f32, + BlockKind::JungleFence => 2f32, + BlockKind::PurpleCandleCake => 0f32, + BlockKind::OrangeTerracotta => 1.25f32, + BlockKind::SculkSensor => 1.5f32, + BlockKind::Fire => 0f32, + BlockKind::ExposedCutCopper => 0f32, + BlockKind::HornCoral => 0f32, + BlockKind::AcaciaTrapdoor => 3f32, + BlockKind::MelonStem => 0f32, + BlockKind::PlayerWallHead => 1f32, + BlockKind::PurpleStainedGlassPane => 0.3f32, + BlockKind::PolishedBlackstoneBrickStairs => 1.5f32, + BlockKind::SmoothRedSandstoneSlab => 2f32, + BlockKind::BlackCandle => 0.1f32, + BlockKind::RawGoldBlock => 5f32, + BlockKind::AttachedMelonStem => 0f32, + BlockKind::IronBlock => 5f32, + BlockKind::BrainCoralBlock => 1.5f32, + BlockKind::BlackCandleCake => 0f32, + BlockKind::ChippedAnvil => 5f32, + BlockKind::DeadTubeCoral => 0f32, + BlockKind::SoulCampfire => 2f32, + BlockKind::LargeFern => 0f32, + BlockKind::YellowBed => 0.2f32, + BlockKind::GreenStainedGlassPane => 0.3f32, + BlockKind::CyanCandleCake => 0f32, + BlockKind::LightGrayStainedGlass => 0.3f32, + BlockKind::TwistingVines => 0f32, + BlockKind::BirchSapling => 0f32, + BlockKind::CrimsonTrapdoor => 3f32, + BlockKind::BlackstoneWall => 1.5f32, + BlockKind::AcaciaLog => 2f32, + BlockKind::OrangeTulip => 0f32, + BlockKind::EndStoneBricks => 3f32, + BlockKind::FireCoral => 0f32, + BlockKind::WaxedOxidizedCutCopperStairs => 0f32, + BlockKind::DarkOakLog => 2f32, + BlockKind::CutCopperSlab => 0f32, + BlockKind::OxeyeDaisy => 0f32, + BlockKind::PottedDeadBush => 0f32, + BlockKind::TubeCoral => 0f32, + BlockKind::RedWool => 0.8f32, + BlockKind::WitherRose => 0f32, + BlockKind::ZombieHead => 1f32, + BlockKind::Netherrack => 0.4f32, + BlockKind::WitherSkeletonSkull => 1f32, + BlockKind::YellowBanner => 1f32, + BlockKind::MossyStoneBricks => 1.5f32, + BlockKind::GraniteStairs => 1.5f32, + BlockKind::CreeperWallHead => 1f32, + BlockKind::PrismarineStairs => 1.5f32, + BlockKind::WaxedExposedCutCopperSlab => 0f32, + BlockKind::Scaffolding => 0f32, + BlockKind::StrippedJungleWood => 2f32, + BlockKind::CyanBed => 0.2f32, + BlockKind::Furnace => 3.5f32, + BlockKind::AcaciaSlab => 2f32, + BlockKind::Kelp => 0f32, + BlockKind::SeaPickle => 0f32, + BlockKind::AzaleaLeaves => 0.2f32, + BlockKind::GreenWool => 0.8f32, + BlockKind::LimeShulkerBox => 2f32, + BlockKind::CopperBlock => 3f32, + BlockKind::PottedAzureBluet => 0f32, + BlockKind::WeatheredCopper => 3f32, + BlockKind::Azalea => 0f32, + BlockKind::CrackedDeepslateTiles => 0f32, + BlockKind::DeepslateBricks => 0f32, + BlockKind::Conduit => 3f32, + BlockKind::GreenTerracotta => 1.25f32, + BlockKind::DioriteSlab => 1.5f32, + BlockKind::BlackBed => 0.2f32, + BlockKind::RedSandstoneWall => 0.8f32, + BlockKind::PumpkinStem => 0f32, + BlockKind::AcaciaSign => 1f32, + BlockKind::DeadTubeCoralWallFan => 0f32, + BlockKind::PurpleWallBanner => 1f32, + BlockKind::InfestedMossyStoneBricks => 0f32, + } + } +} +impl BlockKind { + #[doc = "Returns the `stack_size` property of this `BlockKind`."] + #[inline] + pub fn stack_size(&self) -> u32 { + match self { + BlockKind::PottedAllium => 64u32, + BlockKind::Observer => 64u32, + BlockKind::AcaciaSign => 16u32, + BlockKind::MagentaCandleCake => 64u32, + BlockKind::OrangeShulkerBox => 1u32, + BlockKind::CrackedNetherBricks => 64u32, + BlockKind::HornCoralBlock => 64u32, + BlockKind::SpruceSapling => 64u32, + BlockKind::RedSandstoneSlab => 64u32, + BlockKind::SpruceFenceGate => 64u32, + BlockKind::PolishedBlackstoneBrickWall => 64u32, + BlockKind::StrippedBirchLog => 64u32, + BlockKind::MossyCobblestone => 64u32, + BlockKind::CobbledDeepslateWall => 64u32, + BlockKind::Farmland => 64u32, + BlockKind::CrimsonStem => 64u32, + BlockKind::WaxedWeatheredCopper => 64u32, + BlockKind::WaxedCopperBlock => 64u32, + BlockKind::CutRedSandstone => 64u32, + BlockKind::DioriteWall => 64u32, + BlockKind::EndPortal => 64u32, + BlockKind::CyanCandleCake => 64u32, + BlockKind::BlueGlazedTerracotta => 64u32, + BlockKind::DeadBrainCoral => 64u32, + BlockKind::SkeletonWallSkull => 64u32, + BlockKind::EmeraldBlock => 64u32, + BlockKind::PottedLilyOfTheValley => 64u32, + BlockKind::Chest => 64u32, + BlockKind::DeadFireCoralBlock => 64u32, + BlockKind::SprucePlanks => 64u32, + BlockKind::QuartzBricks => 64u32, + BlockKind::Lodestone => 64u32, + BlockKind::NetheriteBlock => 64u32, + BlockKind::DeepslateBrickSlab => 64u32, + BlockKind::HeavyWeightedPressurePlate => 64u32, + BlockKind::DragonHead => 64u32, + BlockKind::StrippedJungleLog => 64u32, + BlockKind::MossyCobblestoneWall => 64u32, + BlockKind::LightWeightedPressurePlate => 64u32, + BlockKind::PurpleCandleCake => 64u32, + BlockKind::BrickWall => 64u32, + BlockKind::WaxedExposedCutCopper => 64u32, + BlockKind::Grass => 64u32, + BlockKind::PinkTulip => 64u32, + BlockKind::ChiseledDeepslate => 64u32, + BlockKind::SpruceLeaves => 64u32, + BlockKind::InfestedChiseledStoneBricks => 64u32, + BlockKind::YellowCandleCake => 64u32, + BlockKind::RedNetherBricks => 64u32, + BlockKind::BrownBed => 1u32, + BlockKind::Light => 64u32, + BlockKind::PurpleBed => 1u32, + BlockKind::GreenCandle => 64u32, + BlockKind::BrownMushroomBlock => 64u32, + BlockKind::AttachedPumpkinStem => 64u32, + BlockKind::WhiteBed => 1u32, + BlockKind::StoneButton => 64u32, + BlockKind::RespawnAnchor => 64u32, + BlockKind::JunglePlanks => 64u32, + BlockKind::IronOre => 64u32, + BlockKind::SoulTorch => 64u32, + BlockKind::YellowCarpet => 64u32, + BlockKind::CrimsonStairs => 64u32, + BlockKind::LightBlueBanner => 16u32, + BlockKind::EndStone => 64u32, + BlockKind::CrimsonFence => 64u32, + BlockKind::Cocoa => 64u32, + BlockKind::MagentaConcretePowder => 64u32, + BlockKind::Glass => 64u32, + BlockKind::BlueWool => 64u32, + BlockKind::RedTulip => 64u32, + BlockKind::NetherWartBlock => 64u32, + BlockKind::SmoothSandstone => 64u32, + BlockKind::LightBlueConcretePowder => 64u32, + BlockKind::PottedBamboo => 64u32, + BlockKind::GraniteWall => 64u32, + BlockKind::LightBlueCarpet => 64u32, + BlockKind::BlackstoneSlab => 64u32, + BlockKind::YellowGlazedTerracotta => 64u32, + BlockKind::DarkOakButton => 64u32, + BlockKind::Sunflower => 64u32, + BlockKind::PottedAzaleaBush => 64u32, + BlockKind::AmethystBlock => 64u32, + BlockKind::Wheat => 64u32, + BlockKind::OrangeCandleCake => 64u32, + BlockKind::DetectorRail => 64u32, + BlockKind::NetherBrickFence => 64u32, + BlockKind::BrownBanner => 16u32, + BlockKind::LightBlueBed => 1u32, + BlockKind::PottedBirchSapling => 64u32, + BlockKind::WaterCauldron => 64u32, + BlockKind::OakWood => 64u32, + BlockKind::QuartzBlock => 64u32, + BlockKind::WeepingVines => 64u32, + BlockKind::MagentaWallBanner => 16u32, + BlockKind::WarpedHyphae => 64u32, + BlockKind::ExposedCutCopper => 64u32, + BlockKind::SporeBlossom => 64u32, + BlockKind::PumpkinStem => 64u32, + BlockKind::BirchPressurePlate => 64u32, + BlockKind::DeepslateBrickStairs => 64u32, + BlockKind::WaxedOxidizedCopper => 64u32, + BlockKind::LightBlueShulkerBox => 1u32, + BlockKind::ChippedAnvil => 64u32, + BlockKind::PottedAcaciaSapling => 64u32, + BlockKind::CrimsonDoor => 64u32, + BlockKind::AcaciaWallSign => 16u32, + BlockKind::DarkPrismarineSlab => 64u32, + BlockKind::Snow => 64u32, + BlockKind::StickyPiston => 64u32, + BlockKind::PurpleWool => 64u32, + BlockKind::DriedKelpBlock => 64u32, + BlockKind::PolishedAndesite => 64u32, + BlockKind::StoneBrickSlab => 64u32, + BlockKind::PottedPinkTulip => 64u32, + BlockKind::PolishedDiorite => 64u32, + BlockKind::CutSandstoneSlab => 64u32, + BlockKind::TintedGlass => 64u32, + BlockKind::SmoothQuartzStairs => 64u32, + BlockKind::BeeNest => 64u32, + BlockKind::Podzol => 64u32, + BlockKind::WitherSkeletonSkull => 64u32, + BlockKind::DeadTubeCoral => 64u32, + BlockKind::MagentaStainedGlass => 64u32, + BlockKind::WaxedOxidizedCutCopper => 64u32, + BlockKind::GreenConcrete => 64u32, + BlockKind::CutRedSandstoneSlab => 64u32, + BlockKind::StrippedBirchWood => 64u32, + BlockKind::Beacon => 64u32, + BlockKind::MagentaTerracotta => 64u32, + BlockKind::SmoothQuartzSlab => 64u32, + BlockKind::OrangeStainedGlassPane => 64u32, + BlockKind::Cornflower => 64u32, + BlockKind::MossyStoneBrickStairs => 64u32, + BlockKind::DaylightDetector => 64u32, + BlockKind::RedTerracotta => 64u32, + BlockKind::AcaciaStairs => 64u32, + BlockKind::PurpleStainedGlass => 64u32, + BlockKind::GrayShulkerBox => 1u32, + BlockKind::RedCarpet => 64u32, + BlockKind::SmoothQuartz => 64u32, + BlockKind::RedShulkerBox => 1u32, + BlockKind::WarpedButton => 64u32, + BlockKind::GrayWallBanner => 16u32, + BlockKind::Poppy => 64u32, + BlockKind::PrismarineBrickStairs => 64u32, + BlockKind::WetSponge => 64u32, + BlockKind::BrownConcretePowder => 64u32, + BlockKind::Rail => 64u32, + BlockKind::DeadBush => 64u32, + BlockKind::BirchLeaves => 64u32, + BlockKind::BrownMushroom => 64u32, + BlockKind::DeadHornCoralFan => 64u32, + BlockKind::DragonWallHead => 64u32, + BlockKind::OrangeBanner => 16u32, + BlockKind::RoseBush => 64u32, + BlockKind::SpruceStairs => 64u32, + BlockKind::CutCopper => 64u32, + BlockKind::PolishedDeepslateSlab => 64u32, + BlockKind::TubeCoralWallFan => 64u32, + BlockKind::RedstoneLamp => 64u32, + BlockKind::LimeConcrete => 64u32, + BlockKind::MagentaBanner => 16u32, + BlockKind::CutSandstone => 64u32, + BlockKind::BrickSlab => 64u32, + BlockKind::SugarCane => 64u32, + BlockKind::PinkBanner => 16u32, + BlockKind::WarpedWartBlock => 64u32, + BlockKind::Cake => 1u32, + BlockKind::LargeFern => 64u32, + BlockKind::YellowWool => 64u32, + BlockKind::BrownCandleCake => 64u32, + BlockKind::FireCoral => 64u32, + BlockKind::MossyStoneBrickSlab => 64u32, + BlockKind::TrappedChest => 64u32, + BlockKind::AcaciaPlanks => 64u32, + BlockKind::BirchWallSign => 16u32, + BlockKind::OrangeWallBanner => 16u32, + BlockKind::PottedBrownMushroom => 64u32, + BlockKind::LightBlueStainedGlassPane => 64u32, + BlockKind::GrayCarpet => 64u32, + BlockKind::TwistingVinesPlant => 64u32, + BlockKind::CyanStainedGlass => 64u32, + BlockKind::GrayWool => 64u32, + BlockKind::CommandBlock => 64u32, + BlockKind::ShulkerBox => 1u32, + BlockKind::LightGrayConcretePowder => 64u32, + BlockKind::GreenShulkerBox => 1u32, + BlockKind::JungleFence => 64u32, + BlockKind::Campfire => 64u32, + BlockKind::Bedrock => 64u32, + BlockKind::CrimsonTrapdoor => 64u32, + BlockKind::CrackedPolishedBlackstoneBricks => 64u32, + BlockKind::GlassPane => 64u32, + BlockKind::LightGrayWallBanner => 16u32, + BlockKind::Repeater => 64u32, + BlockKind::QuartzPillar => 64u32, + BlockKind::GildedBlackstone => 64u32, + BlockKind::OrangeTerracotta => 64u32, + BlockKind::PinkGlazedTerracotta => 64u32, + BlockKind::BrickStairs => 64u32, + BlockKind::Fern => 64u32, + BlockKind::Bricks => 64u32, + BlockKind::GreenConcretePowder => 64u32, + BlockKind::PowderSnowCauldron => 64u32, + BlockKind::WaxedCutCopperSlab => 64u32, + BlockKind::IronDoor => 64u32, + BlockKind::DarkPrismarine => 64u32, + BlockKind::LightGrayShulkerBox => 1u32, + BlockKind::TallSeagrass => 64u32, + BlockKind::GrayConcrete => 64u32, + BlockKind::RedNetherBrickSlab => 64u32, + BlockKind::MossyCobblestoneSlab => 64u32, + BlockKind::DarkOakSlab => 64u32, + BlockKind::RedConcretePowder => 64u32, + BlockKind::Cobblestone => 64u32, + BlockKind::PottedSpruceSapling => 64u32, + BlockKind::QuartzStairs => 64u32, + BlockKind::CrimsonPlanks => 64u32, + BlockKind::DarkOakPressurePlate => 64u32, + BlockKind::OrangeConcrete => 64u32, + BlockKind::LimeConcretePowder => 64u32, + BlockKind::CoalBlock => 64u32, + BlockKind::SoulLantern => 64u32, + BlockKind::DeepslateTileSlab => 64u32, + BlockKind::Piston => 64u32, + BlockKind::PinkCarpet => 64u32, + BlockKind::StructureBlock => 64u32, + BlockKind::Cobweb => 64u32, + BlockKind::BlackstoneWall => 64u32, + BlockKind::SmoothRedSandstone => 64u32, + BlockKind::TurtleEgg => 64u32, + BlockKind::LightGrayBed => 1u32, + BlockKind::WhiteStainedGlassPane => 64u32, + BlockKind::ZombieWallHead => 64u32, + BlockKind::LightBlueWool => 64u32, + BlockKind::HornCoralWallFan => 64u32, + BlockKind::Sponge => 64u32, + BlockKind::Diorite => 64u32, + BlockKind::CobbledDeepslateSlab => 64u32, + BlockKind::DarkOakStairs => 64u32, + BlockKind::LimeCandle => 64u32, + BlockKind::WaxedCutCopperStairs => 64u32, + BlockKind::BirchSign => 16u32, + BlockKind::AcaciaPressurePlate => 64u32, + BlockKind::StoneStairs => 64u32, + BlockKind::AcaciaFenceGate => 64u32, + BlockKind::WarpedStem => 64u32, + BlockKind::ExposedCutCopperSlab => 64u32, + BlockKind::GreenBanner => 16u32, + BlockKind::LightGrayWool => 64u32, + BlockKind::BlueStainedGlassPane => 64u32, + BlockKind::DeadHornCoral => 64u32, + BlockKind::EndStoneBrickSlab => 64u32, + BlockKind::PolishedBlackstoneSlab => 64u32, + BlockKind::CandleCake => 64u32, + BlockKind::RedNetherBrickStairs => 64u32, + BlockKind::FlowerPot => 64u32, + BlockKind::DarkOakDoor => 64u32, + BlockKind::PinkCandle => 64u32, + BlockKind::CopperBlock => 64u32, + BlockKind::BlackWool => 64u32, + BlockKind::InfestedDeepslate => 64u32, + BlockKind::PinkBed => 1u32, + BlockKind::CobblestoneStairs => 64u32, + BlockKind::BambooSapling => 64u32, + BlockKind::SweetBerryBush => 64u32, + BlockKind::PurpurBlock => 64u32, + BlockKind::WhiteCandle => 64u32, + BlockKind::BlackBanner => 16u32, + BlockKind::BubbleCoralWallFan => 64u32, + BlockKind::TwistingVines => 64u32, + BlockKind::PolishedBlackstoneStairs => 64u32, + BlockKind::PurpleShulkerBox => 1u32, + BlockKind::PurpleGlazedTerracotta => 64u32, + BlockKind::OakDoor => 64u32, + BlockKind::Granite => 64u32, + BlockKind::MushroomStem => 64u32, + BlockKind::EndPortalFrame => 64u32, + BlockKind::QuartzSlab => 64u32, + BlockKind::OakSlab => 64u32, + BlockKind::PottedFern => 64u32, + BlockKind::DirtPath => 64u32, + BlockKind::PointedDripstone => 64u32, + BlockKind::ActivatorRail => 64u32, + BlockKind::SculkSensor => 64u32, + BlockKind::BrainCoralWallFan => 64u32, + BlockKind::BirchSlab => 64u32, + BlockKind::PolishedBlackstone => 64u32, + BlockKind::EnderChest => 64u32, + BlockKind::BlastFurnace => 64u32, + BlockKind::BlueWallBanner => 16u32, + BlockKind::HoneycombBlock => 64u32, + BlockKind::NetherQuartzOre => 64u32, + BlockKind::DarkPrismarineStairs => 64u32, + BlockKind::JungleTrapdoor => 64u32, + BlockKind::SandstoneWall => 64u32, + BlockKind::RedGlazedTerracotta => 64u32, + BlockKind::Fire => 64u32, + BlockKind::CaveAir => 64u32, + BlockKind::BlueCandleCake => 64u32, + BlockKind::NetherBricks => 64u32, + BlockKind::DiamondBlock => 64u32, + BlockKind::Barrier => 64u32, + BlockKind::AndesiteStairs => 64u32, + BlockKind::WarpedStairs => 64u32, + BlockKind::LightGrayCandle => 64u32, + BlockKind::LimeBanner => 16u32, + BlockKind::Hopper => 64u32, + BlockKind::BlueStainedGlass => 64u32, + BlockKind::OakWallSign => 16u32, + BlockKind::AcaciaSlab => 64u32, + BlockKind::CutCopperStairs => 64u32, + BlockKind::MagentaStainedGlassPane => 64u32, + BlockKind::LightGrayStainedGlass => 64u32, + BlockKind::BlackTerracotta => 64u32, + BlockKind::DeepslateTiles => 64u32, + BlockKind::OrangeStainedGlass => 64u32, + BlockKind::SpruceLog => 64u32, + BlockKind::WhiteBanner => 16u32, + BlockKind::PottedPoppy => 64u32, + BlockKind::WitherSkeletonWallSkull => 64u32, + BlockKind::CyanCandle => 64u32, + BlockKind::RedSandstoneStairs => 64u32, + BlockKind::WhiteShulkerBox => 1u32, + BlockKind::Melon => 64u32, + BlockKind::PottedCactus => 64u32, + BlockKind::BlackConcretePowder => 64u32, + BlockKind::GreenCarpet => 64u32, + BlockKind::DeadHornCoralBlock => 64u32, + BlockKind::Basalt => 64u32, + BlockKind::SnowBlock => 64u32, + BlockKind::SandstoneStairs => 64u32, + BlockKind::LimeBed => 1u32, + BlockKind::GreenTerracotta => 64u32, + BlockKind::BirchTrapdoor => 64u32, + BlockKind::CrimsonButton => 64u32, + BlockKind::Vine => 64u32, + BlockKind::Torch => 64u32, + BlockKind::PottedCrimsonRoots => 64u32, + BlockKind::PolishedBlackstonePressurePlate => 64u32, + BlockKind::DeepslateCoalOre => 64u32, + BlockKind::CrimsonRoots => 64u32, + BlockKind::RedstoneOre => 64u32, + BlockKind::PurpleTerracotta => 64u32, + BlockKind::BlackCarpet => 64u32, + BlockKind::Conduit => 64u32, + BlockKind::OrangeCandle => 64u32, + BlockKind::WhiteStainedGlass => 64u32, + BlockKind::WeepingVinesPlant => 64u32, + BlockKind::BirchWood => 64u32, + BlockKind::StoneBrickWall => 64u32, + BlockKind::TubeCoral => 64u32, + BlockKind::Tripwire => 64u32, + BlockKind::BlackCandleCake => 64u32, + BlockKind::LightGrayConcrete => 64u32, + BlockKind::BrainCoralBlock => 64u32, + BlockKind::OakLeaves => 64u32, + BlockKind::Terracotta => 64u32, + BlockKind::SmoothSandstoneStairs => 64u32, + BlockKind::PoweredRail => 64u32, + BlockKind::MagentaShulkerBox => 1u32, + BlockKind::PistonHead => 64u32, + BlockKind::RedSandstone => 64u32, + BlockKind::GrayBed => 1u32, + BlockKind::Andesite => 64u32, + BlockKind::OakLog => 64u32, + BlockKind::DarkOakLeaves => 64u32, + BlockKind::CaveVines => 64u32, + BlockKind::YellowShulkerBox => 1u32, + BlockKind::PottedOxeyeDaisy => 64u32, + BlockKind::GreenStainedGlassPane => 64u32, + BlockKind::YellowStainedGlass => 64u32, + BlockKind::MagmaBlock => 64u32, + BlockKind::SoulSand => 64u32, + BlockKind::SmallDripleaf => 64u32, + BlockKind::MagentaBed => 1u32, + BlockKind::PurpurSlab => 64u32, + BlockKind::EndRod => 64u32, + BlockKind::AcaciaLeaves => 64u32, + BlockKind::Cauldron => 64u32, + BlockKind::DeadBrainCoralBlock => 64u32, + BlockKind::PolishedBlackstoneWall => 64u32, + BlockKind::ChiseledNetherBricks => 64u32, + BlockKind::WeatheredCutCopperStairs => 64u32, + BlockKind::CrackedStoneBricks => 64u32, + BlockKind::DragonEgg => 64u32, + BlockKind::PurpleCarpet => 64u32, + BlockKind::Comparator => 64u32, + BlockKind::Calcite => 64u32, + BlockKind::PolishedGraniteSlab => 64u32, + BlockKind::Dirt => 64u32, + BlockKind::LimeStainedGlassPane => 64u32, + BlockKind::Seagrass => 64u32, + BlockKind::NetherPortal => 64u32, + BlockKind::GrayBanner => 16u32, + BlockKind::LightBlueWallBanner => 16u32, + BlockKind::AcaciaSapling => 64u32, + BlockKind::BubbleCoral => 64u32, + BlockKind::PurpleConcretePowder => 64u32, + BlockKind::RedstoneWire => 64u32, + BlockKind::RedMushroomBlock => 64u32, + BlockKind::LilyOfTheValley => 64u32, + BlockKind::AcaciaDoor => 64u32, + BlockKind::BrownShulkerBox => 1u32, + BlockKind::WarpedWallSign => 16u32, + BlockKind::BuddingAmethyst => 64u32, + BlockKind::HornCoral => 64u32, + BlockKind::SmoothBasalt => 64u32, + BlockKind::Jigsaw => 64u32, + BlockKind::BigDripleafStem => 64u32, + BlockKind::GreenWool => 64u32, + BlockKind::PolishedDeepslateStairs => 64u32, + BlockKind::DarkOakPlanks => 64u32, + BlockKind::RedStainedGlassPane => 64u32, + BlockKind::YellowConcretePowder => 64u32, + BlockKind::LightGrayCandleCake => 64u32, + BlockKind::GreenStainedGlass => 64u32, + BlockKind::CyanTerracotta => 64u32, + BlockKind::OrangeWool => 64u32, + BlockKind::BrownTerracotta => 64u32, + BlockKind::BrownGlazedTerracotta => 64u32, + BlockKind::DarkOakSapling => 64u32, + BlockKind::CutCopperSlab => 64u32, + BlockKind::PottedRedMushroom => 64u32, + BlockKind::StrippedAcaciaWood => 64u32, + BlockKind::PinkTerracotta => 64u32, + BlockKind::SeaLantern => 64u32, + BlockKind::PurpleBanner => 16u32, + BlockKind::SandstoneSlab => 64u32, + BlockKind::RedNetherBrickWall => 64u32, + BlockKind::LargeAmethystBud => 64u32, + BlockKind::YellowConcrete => 64u32, + BlockKind::OakPlanks => 64u32, + BlockKind::Water => 64u32, + BlockKind::AcaciaLog => 64u32, + BlockKind::LapisOre => 64u32, + BlockKind::GoldBlock => 64u32, + BlockKind::NetherBrickWall => 64u32, + BlockKind::LavaCauldron => 64u32, + BlockKind::PinkWallBanner => 16u32, + BlockKind::SoulWallTorch => 64u32, + BlockKind::MagentaGlazedTerracotta => 64u32, + BlockKind::BlueConcretePowder => 64u32, + BlockKind::PolishedDioriteStairs => 64u32, + BlockKind::NetherBrickSlab => 64u32, + BlockKind::WaxedExposedCutCopperSlab => 64u32, + BlockKind::DeadHornCoralWallFan => 64u32, + BlockKind::Anvil => 64u32, + BlockKind::SpruceSlab => 64u32, + BlockKind::OakSapling => 64u32, + BlockKind::BlueCandle => 64u32, + BlockKind::RawCopperBlock => 64u32, + BlockKind::Sandstone => 64u32, + BlockKind::LimeWool => 64u32, + BlockKind::LightGrayBanner => 16u32, + BlockKind::AzaleaLeaves => 64u32, + BlockKind::OakFenceGate => 64u32, + BlockKind::BlueBed => 1u32, + BlockKind::OrangeConcretePowder => 64u32, + BlockKind::DeadBubbleCoralBlock => 64u32, + BlockKind::StrippedCrimsonStem => 64u32, + BlockKind::CrimsonHyphae => 64u32, + BlockKind::StrippedOakWood => 64u32, + BlockKind::DarkOakTrapdoor => 64u32, + BlockKind::RedConcrete => 64u32, + BlockKind::PottedCrimsonFungus => 64u32, + BlockKind::OakTrapdoor => 64u32, + BlockKind::GlowLichen => 64u32, + BlockKind::MagentaCarpet => 64u32, + BlockKind::WhiteWallBanner => 16u32, + BlockKind::Beehive => 64u32, + BlockKind::CobbledDeepslate => 64u32, + BlockKind::MossyStoneBricks => 64u32, + BlockKind::BrewingStand => 64u32, + BlockKind::CryingObsidian => 64u32, + BlockKind::CrimsonWallSign => 16u32, + BlockKind::JungleDoor => 64u32, + BlockKind::BlueOrchid => 64u32, + BlockKind::BrownCarpet => 64u32, + BlockKind::GreenCandleCake => 64u32, + BlockKind::NetherBrickStairs => 64u32, + BlockKind::AcaciaWood => 64u32, + BlockKind::RedBed => 1u32, + BlockKind::OxidizedCopper => 64u32, + BlockKind::RedStainedGlass => 64u32, + BlockKind::PrismarineSlab => 64u32, + BlockKind::BlueShulkerBox => 1u32, + BlockKind::DeepslateBrickWall => 64u32, + BlockKind::BlackConcrete => 64u32, + BlockKind::HornCoralFan => 64u32, + BlockKind::TubeCoralFan => 64u32, + BlockKind::NetherSprouts => 64u32, + BlockKind::PowderSnow => 1u32, + BlockKind::PottedDandelion => 64u32, + BlockKind::DeadBrainCoralWallFan => 64u32, + BlockKind::WaxedExposedCopper => 64u32, + BlockKind::DioriteStairs => 64u32, + BlockKind::SmallAmethystBud => 64u32, + BlockKind::Air => 64u32, + BlockKind::FireCoralWallFan => 64u32, + BlockKind::Lilac => 64u32, + BlockKind::PrismarineBricks => 64u32, + BlockKind::AzureBluet => 64u32, + BlockKind::Tnt => 64u32, + BlockKind::Candle => 64u32, + BlockKind::PolishedAndesiteSlab => 64u32, + BlockKind::PolishedBlackstoneButton => 64u32, + BlockKind::OxidizedCutCopper => 64u32, + BlockKind::BlueCarpet => 64u32, + BlockKind::IronBlock => 64u32, + BlockKind::CrimsonPressurePlate => 64u32, + BlockKind::StoneBrickStairs => 64u32, + BlockKind::JungleSapling => 64u32, + BlockKind::PrismarineBrickSlab => 64u32, + BlockKind::GrayGlazedTerracotta => 64u32, + BlockKind::Lectern => 64u32, + BlockKind::PolishedGranite => 64u32, + BlockKind::RedBanner => 16u32, + BlockKind::OrangeGlazedTerracotta => 64u32, + BlockKind::PinkConcretePowder => 64u32, + BlockKind::Composter => 64u32, + BlockKind::BubbleCoralFan => 64u32, + BlockKind::Deepslate => 64u32, + BlockKind::WallTorch => 64u32, + BlockKind::JungleLeaves => 64u32, + BlockKind::PottedWarpedFungus => 64u32, + BlockKind::Blackstone => 64u32, + BlockKind::ChiseledRedSandstone => 64u32, + BlockKind::PottedFloweringAzaleaBush => 64u32, + BlockKind::WaxedOxidizedCutCopperStairs => 64u32, + BlockKind::Barrel => 64u32, + BlockKind::JackOLantern => 64u32, + BlockKind::AcaciaButton => 64u32, + BlockKind::ChiseledSandstone => 64u32, + BlockKind::PurpurStairs => 64u32, + BlockKind::StrippedWarpedStem => 64u32, + BlockKind::LightGrayTerracotta => 64u32, + BlockKind::PottedOrangeTulip => 64u32, + BlockKind::BlueTerracotta => 64u32, + BlockKind::CopperOre => 64u32, + BlockKind::RootedDirt => 64u32, + BlockKind::DeepslateTileStairs => 64u32, + BlockKind::PottedBlueOrchid => 64u32, + BlockKind::MelonStem => 64u32, + BlockKind::PinkWool => 64u32, + BlockKind::StrippedSpruceLog => 64u32, + BlockKind::RedMushroom => 64u32, + BlockKind::RedCandle => 64u32, + BlockKind::DripstoneBlock => 64u32, + BlockKind::PolishedDeepslate => 64u32, + BlockKind::RawGoldBlock => 64u32, + BlockKind::PinkCandleCake => 64u32, + BlockKind::CreeperHead => 64u32, + BlockKind::DarkOakLog => 64u32, + BlockKind::YellowBanner => 16u32, + BlockKind::NoteBlock => 64u32, + BlockKind::DarkOakFence => 64u32, + BlockKind::DeadTubeCoralFan => 64u32, + BlockKind::YellowCandle => 64u32, + BlockKind::OrangeTulip => 64u32, + BlockKind::EndStoneBricks => 64u32, + BlockKind::PolishedGraniteStairs => 64u32, + BlockKind::WhiteCandleCake => 64u32, + BlockKind::TallGrass => 64u32, + BlockKind::Stonecutter => 64u32, + BlockKind::MagentaWool => 64u32, + BlockKind::PolishedBasalt => 64u32, + BlockKind::GrayStainedGlass => 64u32, + BlockKind::LimeTerracotta => 64u32, + BlockKind::Shroomlight => 64u32, + BlockKind::CrimsonSlab => 64u32, + BlockKind::WarpedSlab => 64u32, + BlockKind::RedWool => 64u32, + BlockKind::GrassBlock => 64u32, + BlockKind::BlackstoneStairs => 64u32, + BlockKind::GrayCandle => 64u32, + BlockKind::WhiteCarpet => 64u32, + BlockKind::PottedCornflower => 64u32, + BlockKind::WarpedFence => 64u32, + BlockKind::OxeyeDaisy => 64u32, + BlockKind::BirchSapling => 64u32, + BlockKind::StrippedSpruceWood => 64u32, + BlockKind::FloweringAzalea => 64u32, + BlockKind::PinkStainedGlassPane => 64u32, + BlockKind::AcaciaTrapdoor => 64u32, + BlockKind::PottedDeadBush => 64u32, + BlockKind::Lantern => 64u32, + BlockKind::RedWallBanner => 16u32, + BlockKind::Smoker => 64u32, + BlockKind::LightGrayCarpet => 64u32, + BlockKind::PinkConcrete => 64u32, + BlockKind::SpruceFence => 64u32, + BlockKind::WhiteConcrete => 64u32, + BlockKind::JungleWallSign => 16u32, + BlockKind::AndesiteWall => 64u32, + BlockKind::WarpedSign => 16u32, + BlockKind::LimeCarpet => 64u32, + BlockKind::Cactus => 64u32, + BlockKind::LimeWallBanner => 16u32, + BlockKind::CyanShulkerBox => 1u32, + BlockKind::MagentaConcrete => 64u32, + BlockKind::LapisBlock => 64u32, + BlockKind::OakSign => 16u32, + BlockKind::CobbledDeepslateStairs => 64u32, + BlockKind::DeadBubbleCoralWallFan => 64u32, + BlockKind::Lava => 64u32, + BlockKind::DeadBubbleCoralFan => 64u32, + BlockKind::GrayCandleCake => 64u32, + BlockKind::Furnace => 64u32, + BlockKind::FletchingTable => 64u32, + BlockKind::GreenWallBanner => 16u32, + BlockKind::CrackedDeepslateTiles => 64u32, + BlockKind::CyanBed => 1u32, + BlockKind::SpruceTrapdoor => 64u32, + BlockKind::PottedDarkOakSapling => 64u32, + BlockKind::Beetroots => 64u32, + BlockKind::GrayStainedGlassPane => 64u32, + BlockKind::LightBlueCandle => 64u32, + BlockKind::FireCoralBlock => 64u32, + BlockKind::PlayerWallHead => 64u32, + BlockKind::DeadFireCoralFan => 64u32, + BlockKind::LightningRod => 64u32, + BlockKind::DeepslateRedstoneOre => 64u32, + BlockKind::BoneBlock => 64u32, + BlockKind::NetherWart => 64u32, + BlockKind::BubbleCoralBlock => 64u32, + BlockKind::AcaciaFence => 64u32, + BlockKind::Grindstone => 64u32, + BlockKind::SoulSoil => 64u32, + BlockKind::DeadBubbleCoral => 64u32, + BlockKind::CrackedDeepslateBricks => 64u32, + BlockKind::BlackBed => 1u32, + BlockKind::JungleSign => 16u32, + BlockKind::InfestedStone => 64u32, + BlockKind::DeadTubeCoralWallFan => 64u32, + BlockKind::GraniteStairs => 64u32, + BlockKind::WaxedWeatheredCutCopperSlab => 64u32, + BlockKind::SprucePressurePlate => 64u32, + BlockKind::JungleSlab => 64u32, + BlockKind::AndesiteSlab => 64u32, + BlockKind::BlackShulkerBox => 1u32, + BlockKind::JungleLog => 64u32, + BlockKind::ChiseledQuartzBlock => 64u32, + BlockKind::LightBlueTerracotta => 64u32, + BlockKind::Ladder => 64u32, + BlockKind::MossyStoneBrickWall => 64u32, + BlockKind::Kelp => 64u32, + BlockKind::Target => 64u32, + BlockKind::LightBlueGlazedTerracotta => 64u32, + BlockKind::CoarseDirt => 64u32, + BlockKind::LightGrayGlazedTerracotta => 64u32, + BlockKind::DeadBrainCoralFan => 64u32, + BlockKind::BubbleColumn => 64u32, + BlockKind::JunglePressurePlate => 64u32, + BlockKind::FloweringAzaleaLeaves => 64u32, + BlockKind::WeatheredCutCopperSlab => 64u32, + BlockKind::StrippedDarkOakLog => 64u32, + BlockKind::PurpleConcrete => 64u32, + BlockKind::DarkOakFenceGate => 64u32, + BlockKind::GrayConcretePowder => 64u32, + BlockKind::StonePressurePlate => 64u32, + BlockKind::Dropper => 64u32, + BlockKind::BlueBanner => 16u32, + BlockKind::DeepslateEmeraldOre => 64u32, + BlockKind::ChainCommandBlock => 64u32, + BlockKind::CrimsonFenceGate => 64u32, + BlockKind::MagentaCandle => 64u32, + BlockKind::LimeCandleCake => 64u32, + BlockKind::WaxedWeatheredCutCopper => 64u32, + BlockKind::RawIronBlock => 64u32, + BlockKind::ZombieHead => 64u32, + BlockKind::SmoothRedSandstoneSlab => 64u32, + BlockKind::WitherRose => 64u32, + BlockKind::BirchButton => 64u32, + BlockKind::TubeCoralBlock => 64u32, + BlockKind::InfestedCobblestone => 64u32, + BlockKind::PurpleStainedGlassPane => 64u32, + BlockKind::StructureVoid => 64u32, + BlockKind::CraftingTable => 64u32, + BlockKind::OakPressurePlate => 64u32, + BlockKind::OakButton => 64u32, + BlockKind::LightBlueConcrete => 64u32, + BlockKind::LimeStainedGlass => 64u32, + BlockKind::StrippedWarpedHyphae => 64u32, + BlockKind::StrippedAcaciaLog => 64u32, + BlockKind::PinkStainedGlass => 64u32, + BlockKind::LilyPad => 64u32, + BlockKind::GraniteSlab => 64u32, + BlockKind::DarkOakWood => 64u32, + BlockKind::Prismarine => 64u32, + BlockKind::CyanWool => 64u32, + BlockKind::Netherrack => 64u32, + BlockKind::YellowStainedGlassPane => 64u32, + BlockKind::SoulFire => 64u32, + BlockKind::CyanConcrete => 64u32, + BlockKind::CrimsonSign => 16u32, + BlockKind::SeaPickle => 64u32, + BlockKind::SpruceDoor => 64u32, + BlockKind::ChiseledPolishedBlackstone => 64u32, + BlockKind::Scaffolding => 64u32, + BlockKind::MossBlock => 64u32, + BlockKind::ChorusPlant => 64u32, + BlockKind::StrippedDarkOakWood => 64u32, + BlockKind::BirchFence => 64u32, + BlockKind::Spawner => 64u32, + BlockKind::WhiteConcretePowder => 64u32, + BlockKind::WarpedPressurePlate => 64u32, + BlockKind::PottedWarpedRoots => 64u32, + BlockKind::BirchPlanks => 64u32, + BlockKind::WhiteTerracotta => 64u32, + BlockKind::SpruceSign => 16u32, + BlockKind::WhiteWool => 64u32, + BlockKind::PottedWitherRose => 64u32, + BlockKind::EndStoneBrickStairs => 64u32, + BlockKind::ChiseledStoneBricks => 64u32, + BlockKind::StrippedCrimsonHyphae => 64u32, + BlockKind::WarpedNylium => 64u32, + BlockKind::AncientDebris => 64u32, + BlockKind::PackedIce => 64u32, + BlockKind::PolishedBlackstoneBrickStairs => 64u32, + BlockKind::OxidizedCutCopperSlab => 64u32, + BlockKind::DeepslateLapisOre => 64u32, + BlockKind::SpruceWood => 64u32, + BlockKind::WarpedDoor => 64u32, + BlockKind::BlueConcrete => 64u32, + BlockKind::BlackGlazedTerracotta => 64u32, + BlockKind::Stone => 64u32, + BlockKind::SpruceWallSign => 16u32, + BlockKind::WarpedFenceGate => 64u32, + BlockKind::GoldOre => 64u32, + BlockKind::FrostedIce => 64u32, + BlockKind::InfestedCrackedStoneBricks => 64u32, + BlockKind::WhiteGlazedTerracotta => 64u32, + BlockKind::LimeGlazedTerracotta => 64u32, + BlockKind::BrownConcrete => 64u32, + BlockKind::WarpedFungus => 64u32, + BlockKind::RedstoneTorch => 64u32, + BlockKind::PrismarineStairs => 64u32, + BlockKind::CyanStainedGlassPane => 64u32, + BlockKind::PurpleWallBanner => 16u32, + BlockKind::AmethystCluster => 64u32, + BlockKind::PinkShulkerBox => 1u32, + BlockKind::DiamondOre => 64u32, + BlockKind::DeepslateGoldOre => 64u32, + BlockKind::DeepslateTileWall => 64u32, + BlockKind::StoneBricks => 64u32, + BlockKind::Peony => 64u32, + BlockKind::AttachedMelonStem => 64u32, + BlockKind::WaxedCutCopper => 64u32, + BlockKind::SlimeBlock => 64u32, + BlockKind::PrismarineWall => 64u32, + BlockKind::InfestedStoneBricks => 64u32, + BlockKind::Obsidian => 64u32, + BlockKind::LightGrayStainedGlassPane => 64u32, + BlockKind::WaxedWeatheredCutCopperStairs => 64u32, + BlockKind::YellowBed => 1u32, + BlockKind::MossyCobblestoneStairs => 64u32, + BlockKind::WhiteTulip => 64u32, + BlockKind::LightBlueCandleCake => 64u32, + BlockKind::Bell => 64u32, + BlockKind::OrangeBed => 1u32, + BlockKind::DamagedAnvil => 64u32, + BlockKind::PlayerHead => 64u32, + BlockKind::PolishedDioriteSlab => 64u32, + BlockKind::WaxedOxidizedCutCopperSlab => 64u32, + BlockKind::OakFence => 64u32, + BlockKind::BlueIce => 64u32, + BlockKind::DeepslateIronOre => 64u32, + BlockKind::CrimsonNylium => 64u32, + BlockKind::JungleStairs => 64u32, + BlockKind::GreenGlazedTerracotta => 64u32, + BlockKind::IronBars => 64u32, + BlockKind::EndStoneBrickWall => 64u32, + BlockKind::EnchantingTable => 64u32, + BlockKind::WeatheredCopper => 64u32, + BlockKind::NetherGoldOre => 64u32, + BlockKind::RedCandleCake => 64u32, + BlockKind::Glowstone => 64u32, + BlockKind::StrippedOakLog => 64u32, + BlockKind::PurpleCandle => 64u32, + BlockKind::SmoothSandstoneSlab => 64u32, + BlockKind::WarpedTrapdoor => 64u32, + BlockKind::EndGateway => 64u32, + BlockKind::BrownWool => 64u32, + BlockKind::StoneSlab => 64u32, + BlockKind::SmoothRedSandstoneStairs => 64u32, + BlockKind::Bookshelf => 64u32, + BlockKind::OxidizedCutCopperStairs => 64u32, + BlockKind::PurpurPillar => 64u32, + BlockKind::ExposedCutCopperStairs => 64u32, + BlockKind::HangingRoots => 64u32, + BlockKind::EmeraldOre => 64u32, + BlockKind::DeadTubeCoralBlock => 64u32, + BlockKind::YellowWallBanner => 16u32, + BlockKind::VoidAir => 64u32, + BlockKind::OakStairs => 64u32, + BlockKind::Lever => 64u32, + BlockKind::PottedWhiteTulip => 64u32, + BlockKind::CyanWallBanner => 16u32, + BlockKind::PetrifiedOakSlab => 64u32, + BlockKind::Mycelium => 64u32, + BlockKind::BirchFenceGate => 64u32, + BlockKind::Clay => 64u32, + BlockKind::CaveVinesPlant => 64u32, + BlockKind::CyanCarpet => 64u32, + BlockKind::FireCoralFan => 64u32, + BlockKind::RepeatingCommandBlock => 64u32, + BlockKind::PottedAzureBluet => 64u32, + BlockKind::BrownWallBanner => 16u32, + BlockKind::PolishedBlackstoneBrickSlab => 64u32, + BlockKind::Pumpkin => 64u32, + BlockKind::Sand => 64u32, + BlockKind::IronTrapdoor => 64u32, + BlockKind::KelpPlant => 64u32, + BlockKind::DioriteSlab => 64u32, + BlockKind::RedSandstoneWall => 64u32, + BlockKind::SmithingTable => 64u32, + BlockKind::MediumAmethystBud => 64u32, + BlockKind::Chain => 64u32, + BlockKind::BrainCoralFan => 64u32, + BlockKind::SpruceButton => 64u32, + BlockKind::Potatoes => 64u32, + BlockKind::DeadFireCoralWallFan => 64u32, + BlockKind::ChorusFlower => 64u32, + BlockKind::Allium => 64u32, + BlockKind::CrimsonFungus => 64u32, + BlockKind::PottedJungleSapling => 64u32, + BlockKind::CarvedPumpkin => 64u32, + BlockKind::BigDripleaf => 64u32, + BlockKind::CoalOre => 64u32, + BlockKind::DeepslateDiamondOre => 64u32, + BlockKind::Dispenser => 64u32, + BlockKind::DarkOakWallSign => 16u32, + BlockKind::SoulCampfire => 64u32, + BlockKind::Jukebox => 64u32, + BlockKind::MovingPiston => 64u32, + BlockKind::WaxedExposedCutCopperStairs => 64u32, + BlockKind::CyanGlazedTerracotta => 64u32, + BlockKind::StrippedJungleWood => 64u32, + BlockKind::Bamboo => 64u32, + BlockKind::HayBlock => 64u32, + BlockKind::DeepslateCopperOre => 64u32, + BlockKind::PottedOakSapling => 64u32, + BlockKind::JungleButton => 64u32, + BlockKind::Tuff => 64u32, + BlockKind::BirchDoor => 64u32, + BlockKind::GrayTerracotta => 64u32, + BlockKind::SmoothStone => 64u32, + BlockKind::DeadFireCoral => 64u32, + BlockKind::RedstoneWallTorch => 64u32, + BlockKind::Loom => 64u32, + BlockKind::WeatheredCutCopper => 64u32, + BlockKind::SkeletonSkull => 64u32, + BlockKind::BlackWallBanner => 16u32, + BlockKind::Carrots => 64u32, + BlockKind::BlackStainedGlassPane => 64u32, + BlockKind::PottedRedTulip => 64u32, + BlockKind::CartographyTable => 64u32, + BlockKind::WarpedRoots => 64u32, + BlockKind::BrownStainedGlass => 64u32, + BlockKind::DeepslateBricks => 64u32, + BlockKind::RedstoneBlock => 64u32, + BlockKind::GreenBed => 1u32, + BlockKind::CreeperWallHead => 64u32, + BlockKind::JungleFenceGate => 64u32, + BlockKind::LimeShulkerBox => 1u32, + BlockKind::Gravel => 64u32, + BlockKind::OrangeCarpet => 64u32, + BlockKind::BrownCandle => 64u32, + BlockKind::ExposedCopper => 64u32, + BlockKind::BirchStairs => 64u32, + BlockKind::InfestedMossyStoneBricks => 64u32, + BlockKind::SmoothStoneSlab => 64u32, + BlockKind::Dandelion => 64u32, + BlockKind::PolishedBlackstoneBricks => 64u32, + BlockKind::LightBlueStainedGlass => 64u32, + BlockKind::PolishedAndesiteStairs => 64u32, + BlockKind::Ice => 64u32, + BlockKind::BirchLog => 64u32, + BlockKind::Azalea => 64u32, + BlockKind::HoneyBlock => 64u32, + BlockKind::BrownStainedGlassPane => 64u32, + BlockKind::CyanConcretePowder => 64u32, + BlockKind::RedSand => 64u32, + BlockKind::BlackStainedGlass => 64u32, + BlockKind::JungleWood => 64u32, + BlockKind::BrainCoral => 64u32, + BlockKind::CobblestoneWall => 64u32, + BlockKind::MossCarpet => 64u32, + BlockKind::WarpedPlanks => 64u32, + BlockKind::DarkOakSign => 16u32, + BlockKind::BlackCandle => 64u32, + BlockKind::YellowTerracotta => 64u32, + BlockKind::TripwireHook => 64u32, + BlockKind::PolishedDeepslateWall => 64u32, + BlockKind::CyanBanner => 16u32, + BlockKind::CobblestoneSlab => 64u32, + } + } +} +impl BlockKind { + #[doc = "Returns the `diggable` property of this `BlockKind`."] + #[inline] + pub fn diggable(&self) -> bool { + match self { + BlockKind::SpruceFenceGate => true, + BlockKind::SmithingTable => true, + BlockKind::RedWallBanner => true, + BlockKind::RedBed => true, + BlockKind::LightBlueWool => true, + BlockKind::StrippedCrimsonStem => true, + BlockKind::LargeAmethystBud => true, + BlockKind::PottedCactus => true, + BlockKind::BrownWool => true, + BlockKind::DragonHead => true, + BlockKind::BlackStainedGlass => true, + BlockKind::CutRedSandstoneSlab => true, + BlockKind::RedstoneWire => true, + BlockKind::SpruceTrapdoor => true, + BlockKind::RespawnAnchor => true, + BlockKind::Fern => true, + BlockKind::CrimsonDoor => true, + BlockKind::OakPressurePlate => true, + BlockKind::JungleButton => true, + BlockKind::PurpleTerracotta => true, + BlockKind::QuartzStairs => true, + BlockKind::RawCopperBlock => true, + BlockKind::DiamondOre => true, + BlockKind::OrangeStainedGlass => true, + BlockKind::WarpedPressurePlate => true, + BlockKind::PottedDeadBush => true, + BlockKind::LightBlueConcretePowder => true, + BlockKind::Melon => true, + BlockKind::LightGrayConcretePowder => true, + BlockKind::YellowCandleCake => true, + BlockKind::BrownCandle => true, + BlockKind::LightGrayTerracotta => true, + BlockKind::LightBlueStainedGlass => true, + BlockKind::NetherBrickWall => true, + BlockKind::BubbleCoralFan => true, + BlockKind::AndesiteWall => true, + BlockKind::GreenShulkerBox => true, + BlockKind::Barrier => false, + BlockKind::Lever => true, + BlockKind::WitherSkeletonWallSkull => true, + BlockKind::Campfire => true, + BlockKind::PinkWallBanner => true, + BlockKind::WaterCauldron => true, + BlockKind::CyanTerracotta => true, + BlockKind::WaxedWeatheredCutCopperStairs => true, + BlockKind::BlueWallBanner => true, + BlockKind::CrackedStoneBricks => true, + BlockKind::SprucePlanks => true, + BlockKind::Dispenser => true, + BlockKind::LilyPad => true, + BlockKind::StoneButton => true, + BlockKind::YellowShulkerBox => true, + BlockKind::VoidAir => true, + BlockKind::Lodestone => true, + BlockKind::Ice => true, + BlockKind::GreenStainedGlassPane => true, + BlockKind::SmoothRedSandstone => true, + BlockKind::Loom => true, + BlockKind::PrismarineWall => true, + BlockKind::LimeConcrete => true, + BlockKind::WarpedPlanks => true, + BlockKind::BlueCandleCake => true, + BlockKind::DeadFireCoral => true, + BlockKind::Basalt => true, + BlockKind::BlueCandle => true, + BlockKind::WhiteConcrete => true, + BlockKind::LightGrayCandleCake => true, + BlockKind::SmoothSandstoneSlab => true, + BlockKind::GrayStainedGlass => true, + BlockKind::DetectorRail => true, + BlockKind::TrappedChest => true, + BlockKind::Andesite => true, + BlockKind::AcaciaFence => true, + BlockKind::DeadHornCoral => true, + BlockKind::WhiteBed => true, + BlockKind::WarpedStem => true, + BlockKind::BlackWallBanner => true, + BlockKind::NetherWart => true, + BlockKind::GreenTerracotta => true, + BlockKind::CyanBanner => true, + BlockKind::BrainCoralBlock => true, + BlockKind::HornCoral => true, + BlockKind::DeadBubbleCoralFan => true, + BlockKind::WarpedStairs => true, + BlockKind::DeepslateRedstoneOre => true, + BlockKind::EndStoneBrickWall => true, + BlockKind::WaxedExposedCutCopper => true, + BlockKind::GoldBlock => true, + BlockKind::Pumpkin => true, + BlockKind::JungleDoor => true, + BlockKind::SmoothQuartzStairs => true, + BlockKind::JungleSapling => true, + BlockKind::Barrel => true, + BlockKind::RedShulkerBox => true, + BlockKind::BeeNest => true, + BlockKind::WitherRose => true, + BlockKind::CyanStainedGlass => true, + BlockKind::CyanWallBanner => true, + BlockKind::SpruceSign => true, + BlockKind::OrangeConcretePowder => true, + BlockKind::PowderSnow => true, + BlockKind::CobbledDeepslateWall => true, + BlockKind::BirchDoor => true, + BlockKind::BlueOrchid => true, + BlockKind::DeepslateBricks => true, + BlockKind::Ladder => true, + BlockKind::EndGateway => false, + BlockKind::MagentaCandle => true, + BlockKind::OxidizedCopper => true, + BlockKind::WarpedSlab => true, + BlockKind::ZombieWallHead => true, + BlockKind::MagentaStainedGlass => true, + BlockKind::PolishedBlackstonePressurePlate => true, + BlockKind::RedStainedGlassPane => true, + BlockKind::WarpedTrapdoor => true, + BlockKind::OrangeTulip => true, + BlockKind::DarkOakPressurePlate => true, + BlockKind::OrangeGlazedTerracotta => true, + BlockKind::BigDripleaf => true, + BlockKind::BrownBanner => true, + BlockKind::DeadFireCoralFan => true, + BlockKind::Deepslate => true, + BlockKind::CryingObsidian => true, + BlockKind::StoneStairs => true, + BlockKind::Dirt => true, + BlockKind::QuartzBlock => true, + BlockKind::PolishedBlackstone => true, + BlockKind::DarkOakStairs => true, + BlockKind::WhiteTerracotta => true, + BlockKind::CommandBlock => false, + BlockKind::YellowCarpet => true, + BlockKind::Torch => true, + BlockKind::CobbledDeepslate => true, + BlockKind::GrayConcretePowder => true, + BlockKind::WaxedWeatheredCutCopper => true, + BlockKind::GreenConcretePowder => true, + BlockKind::PolishedBlackstoneButton => true, + BlockKind::DeadTubeCoralWallFan => true, + BlockKind::RootedDirt => true, + BlockKind::FireCoralBlock => true, + BlockKind::GraniteWall => true, + BlockKind::OxidizedCutCopperStairs => true, + BlockKind::OxidizedCutCopper => true, + BlockKind::StrippedBirchWood => true, + BlockKind::EndStoneBricks => true, + BlockKind::CrackedNetherBricks => true, + BlockKind::SpruceLog => true, + BlockKind::WallTorch => true, + BlockKind::AcaciaLeaves => true, + BlockKind::PackedIce => true, + BlockKind::Diorite => true, + BlockKind::IronBlock => true, + BlockKind::Allium => true, + BlockKind::BirchWallSign => true, + BlockKind::LimeBanner => true, + BlockKind::LightGrayGlazedTerracotta => true, + BlockKind::MediumAmethystBud => true, + BlockKind::PottedLilyOfTheValley => true, + BlockKind::Lilac => true, + BlockKind::Grass => true, + BlockKind::DaylightDetector => true, + BlockKind::CutRedSandstone => true, + BlockKind::PottedCornflower => true, + BlockKind::RedSand => true, + BlockKind::Cobweb => true, + BlockKind::PolishedBlackstoneBricks => true, + BlockKind::PolishedGraniteSlab => true, + BlockKind::RawGoldBlock => true, + BlockKind::OrangeBed => true, + BlockKind::PurpurBlock => true, + BlockKind::ShulkerBox => true, + BlockKind::PrismarineBrickStairs => true, + BlockKind::BirchStairs => true, + BlockKind::OakPlanks => true, + BlockKind::PottedPinkTulip => true, + BlockKind::RedTerracotta => true, + BlockKind::StrippedWarpedStem => true, + BlockKind::Anvil => true, + BlockKind::WhiteStainedGlass => true, + BlockKind::PottedOakSapling => true, + BlockKind::BirchFence => true, + BlockKind::OxidizedCutCopperSlab => true, + BlockKind::JungleFence => true, + BlockKind::ExposedCutCopperStairs => true, + BlockKind::OrangeConcrete => true, + BlockKind::Cocoa => true, + BlockKind::StrippedAcaciaWood => true, + BlockKind::DarkOakWood => true, + BlockKind::Lantern => true, + BlockKind::YellowStainedGlassPane => true, + BlockKind::LimeTerracotta => true, + BlockKind::CreeperWallHead => true, + BlockKind::SeaLantern => true, + BlockKind::PolishedGranite => true, + BlockKind::BrownConcretePowder => true, + BlockKind::GrayBed => true, + BlockKind::LightGrayWallBanner => true, + BlockKind::ChiseledQuartzBlock => true, + BlockKind::BrownStainedGlassPane => true, + BlockKind::Jukebox => true, + BlockKind::HornCoralBlock => true, + BlockKind::LightBlueStainedGlassPane => true, + BlockKind::OrangeTerracotta => true, + BlockKind::BlackstoneStairs => true, + BlockKind::Observer => true, + BlockKind::PinkStainedGlass => true, + BlockKind::BrickSlab => true, + BlockKind::MossyStoneBrickStairs => true, + BlockKind::WaxedOxidizedCutCopperStairs => true, + BlockKind::StrippedBirchLog => true, + BlockKind::PurpurStairs => true, + BlockKind::InfestedCrackedStoneBricks => true, + BlockKind::PurpleStainedGlassPane => true, + BlockKind::Glass => true, + BlockKind::LightWeightedPressurePlate => true, + BlockKind::DiamondBlock => true, + BlockKind::LightGrayShulkerBox => true, + BlockKind::DioriteSlab => true, + BlockKind::SoulCampfire => true, + BlockKind::CrimsonTrapdoor => true, + BlockKind::MagentaGlazedTerracotta => true, + BlockKind::PoweredRail => true, + BlockKind::Shroomlight => true, + BlockKind::DeepslateGoldOre => true, + BlockKind::PottedCrimsonRoots => true, + BlockKind::SandstoneWall => true, + BlockKind::DarkPrismarine => true, + BlockKind::RedSandstone => true, + BlockKind::DarkOakLeaves => true, + BlockKind::StrippedWarpedHyphae => true, + BlockKind::CrimsonStem => true, + BlockKind::BrownCandleCake => true, + BlockKind::OakWallSign => true, + BlockKind::FireCoralFan => true, + BlockKind::Podzol => true, + BlockKind::OrangeStainedGlassPane => true, + BlockKind::AcaciaSign => true, + BlockKind::Kelp => true, + BlockKind::CutCopperSlab => true, + BlockKind::HangingRoots => true, + BlockKind::RedNetherBrickWall => true, + BlockKind::LightBlueCarpet => true, + BlockKind::LimeWool => true, + BlockKind::WhiteShulkerBox => true, + BlockKind::SnowBlock => true, + BlockKind::PurpleBanner => true, + BlockKind::PottedBamboo => true, + BlockKind::PlayerHead => true, + BlockKind::Beehive => true, + BlockKind::Rail => true, + BlockKind::AcaciaLog => true, + BlockKind::PurpleWallBanner => true, + BlockKind::Mycelium => true, + BlockKind::WhiteGlazedTerracotta => true, + BlockKind::OakLeaves => true, + BlockKind::CrimsonFenceGate => true, + BlockKind::AttachedPumpkinStem => true, + BlockKind::Chain => true, + BlockKind::RedBanner => true, + BlockKind::KelpPlant => true, + BlockKind::OrangeCandle => true, + BlockKind::WaxedOxidizedCutCopper => true, + BlockKind::Composter => true, + BlockKind::StrippedJungleLog => true, + BlockKind::AzaleaLeaves => true, + BlockKind::WarpedSign => true, + BlockKind::Gravel => true, + BlockKind::RedNetherBrickSlab => true, + BlockKind::AmethystCluster => true, + BlockKind::BrownShulkerBox => true, + BlockKind::WhiteCandleCake => true, + BlockKind::Cactus => true, + BlockKind::Obsidian => true, + BlockKind::LapisOre => true, + BlockKind::RedSandstoneStairs => true, + BlockKind::PolishedDeepslate => true, + BlockKind::FireCoralWallFan => true, + BlockKind::PottedBlueOrchid => true, + BlockKind::LightGrayBed => true, + BlockKind::LightBlueBed => true, + BlockKind::AzureBluet => true, + BlockKind::RedMushroom => true, + BlockKind::Fire => true, + BlockKind::BlackWool => true, + BlockKind::SoulSand => true, + BlockKind::ChippedAnvil => true, + BlockKind::MagentaBed => true, + BlockKind::BlackStainedGlassPane => true, + BlockKind::BlueBanner => true, + BlockKind::BirchSapling => true, + BlockKind::BirchFenceGate => true, + BlockKind::AcaciaFenceGate => true, + BlockKind::SpruceDoor => true, + BlockKind::PinkConcrete => true, + BlockKind::WhiteConcretePowder => true, + BlockKind::YellowCandle => true, + BlockKind::GrayCandle => true, + BlockKind::PurpleCandle => true, + BlockKind::DarkOakFenceGate => true, + BlockKind::DeadHornCoralFan => true, + BlockKind::CrackedPolishedBlackstoneBricks => true, + BlockKind::LightGrayConcrete => true, + BlockKind::StoneBrickStairs => true, + BlockKind::BrownTerracotta => true, + BlockKind::PolishedBlackstoneStairs => true, + BlockKind::DeadBubbleCoralWallFan => true, + BlockKind::ChorusPlant => true, + BlockKind::Calcite => true, + BlockKind::PistonHead => true, + BlockKind::BuddingAmethyst => true, + BlockKind::ExposedCutCopperSlab => true, + BlockKind::MossyStoneBrickSlab => true, + BlockKind::PinkBanner => true, + BlockKind::Hopper => true, + BlockKind::BlueTerracotta => true, + BlockKind::WeepingVinesPlant => true, + BlockKind::CaveAir => true, + BlockKind::CutSandstoneSlab => true, + BlockKind::DeepslateTileSlab => true, + BlockKind::OakButton => true, + BlockKind::WetSponge => true, + BlockKind::WarpedButton => true, + BlockKind::BrownGlazedTerracotta => true, + BlockKind::DeepslateDiamondOre => true, + BlockKind::IronDoor => true, + BlockKind::Dropper => true, + BlockKind::QuartzBricks => true, + BlockKind::BlueConcretePowder => true, + BlockKind::JunglePlanks => true, + BlockKind::DeepslateCoalOre => true, + BlockKind::BlueConcrete => true, + BlockKind::DarkOakSapling => true, + BlockKind::PottedOrangeTulip => true, + BlockKind::CrimsonNylium => true, + BlockKind::SpruceStairs => true, + BlockKind::PinkCandleCake => true, + BlockKind::CoalBlock => true, + BlockKind::RedNetherBrickStairs => true, + BlockKind::JungleTrapdoor => true, + BlockKind::OakTrapdoor => true, + BlockKind::GildedBlackstone => true, + BlockKind::CutCopperStairs => true, + BlockKind::YellowConcrete => true, + BlockKind::NetherGoldOre => true, + BlockKind::JunglePressurePlate => true, + BlockKind::Bookshelf => true, + BlockKind::CarvedPumpkin => true, + BlockKind::MagentaConcretePowder => true, + BlockKind::OakSapling => true, + BlockKind::CobblestoneWall => true, + BlockKind::HeavyWeightedPressurePlate => true, + BlockKind::BlueGlazedTerracotta => true, + BlockKind::NetherPortal => false, + BlockKind::TallSeagrass => true, + BlockKind::PinkCandle => true, + BlockKind::BirchLog => true, + BlockKind::SmoothQuartz => true, + BlockKind::Bamboo => true, + BlockKind::SpruceWallSign => true, + BlockKind::ChiseledDeepslate => true, + BlockKind::RedMushroomBlock => true, + BlockKind::OakSlab => true, + BlockKind::TubeCoralFan => true, + BlockKind::BirchPressurePlate => true, + BlockKind::PottedRedTulip => true, + BlockKind::SmoothRedSandstoneSlab => true, + BlockKind::RedGlazedTerracotta => true, + BlockKind::JungleWood => true, + BlockKind::Terracotta => true, + BlockKind::NetherSprouts => true, + BlockKind::ChiseledRedSandstone => true, + BlockKind::FrostedIce => true, + BlockKind::PurpleBed => true, + BlockKind::Sponge => true, + BlockKind::LightBlueCandleCake => true, + BlockKind::RawIronBlock => true, + BlockKind::GrayBanner => true, + BlockKind::StrippedDarkOakLog => true, + BlockKind::WaxedExposedCutCopperStairs => true, + BlockKind::CrimsonFungus => true, + BlockKind::Bedrock => false, + BlockKind::Comparator => true, + BlockKind::TallGrass => true, + BlockKind::Tripwire => true, + BlockKind::WhiteCarpet => true, + BlockKind::SpruceSlab => true, + BlockKind::TintedGlass => true, + BlockKind::DarkOakWallSign => true, + BlockKind::SmallDripleaf => true, + BlockKind::StrippedOakWood => true, + BlockKind::CyanWool => true, + BlockKind::ChiseledStoneBricks => true, + BlockKind::PolishedDeepslateWall => true, + BlockKind::OakSign => true, + BlockKind::SkeletonSkull => true, + BlockKind::HayBlock => true, + BlockKind::BlackCandle => true, + BlockKind::ChiseledPolishedBlackstone => true, + BlockKind::Jigsaw => false, + BlockKind::CobbledDeepslateSlab => true, + BlockKind::QuartzSlab => true, + BlockKind::Sunflower => true, + BlockKind::BlueIce => true, + BlockKind::CutCopper => true, + BlockKind::Beacon => true, + BlockKind::DragonEgg => true, + BlockKind::Light => false, + BlockKind::LightGrayWool => true, + BlockKind::EndStoneBrickStairs => true, + BlockKind::BlueStainedGlass => true, + BlockKind::OakFenceGate => true, + BlockKind::Grindstone => true, + BlockKind::MagentaShulkerBox => true, + BlockKind::OakFence => true, + BlockKind::BubbleCoralWallFan => true, + BlockKind::WeepingVines => true, + BlockKind::BlastFurnace => true, + BlockKind::GraniteSlab => true, + BlockKind::WarpedFungus => true, + BlockKind::CobbledDeepslateStairs => true, + BlockKind::TubeCoral => true, + BlockKind::CandleCake => true, + BlockKind::PumpkinStem => true, + BlockKind::PinkTulip => true, + BlockKind::BlueCarpet => true, + BlockKind::QuartzPillar => true, + BlockKind::JungleSlab => true, + BlockKind::Bricks => true, + BlockKind::CrimsonWallSign => true, + BlockKind::YellowConcretePowder => true, + BlockKind::Tnt => true, + BlockKind::CrimsonHyphae => true, + BlockKind::CrimsonSlab => true, + BlockKind::DeepslateTileWall => true, + BlockKind::DioriteWall => true, + BlockKind::LapisBlock => true, + BlockKind::PointedDripstone => true, + BlockKind::TwistingVinesPlant => true, + BlockKind::Azalea => true, + BlockKind::WitherSkeletonSkull => true, + BlockKind::PolishedDeepslateSlab => true, + BlockKind::Carrots => true, + BlockKind::PinkShulkerBox => true, + BlockKind::PolishedAndesite => true, + BlockKind::PolishedDioriteStairs => true, + BlockKind::WaxedWeatheredCopper => true, + BlockKind::SandstoneStairs => true, + BlockKind::Netherrack => true, + BlockKind::BrownConcrete => true, + BlockKind::CrackedDeepslateTiles => true, + BlockKind::GrassBlock => true, + BlockKind::CoarseDirt => true, + BlockKind::ExposedCopper => true, + BlockKind::MagentaTerracotta => true, + BlockKind::PottedPoppy => true, + BlockKind::MagentaCarpet => true, + BlockKind::AndesiteSlab => true, + BlockKind::WhiteBanner => true, + BlockKind::PolishedDioriteSlab => true, + BlockKind::SeaPickle => true, + BlockKind::GrayStainedGlassPane => true, + BlockKind::PottedAzureBluet => true, + BlockKind::RedCarpet => true, + BlockKind::Seagrass => true, + BlockKind::Cauldron => true, + BlockKind::PinkTerracotta => true, + BlockKind::IronOre => true, + BlockKind::AmethystBlock => true, + BlockKind::BlackBanner => true, + BlockKind::StonePressurePlate => true, + BlockKind::BirchWood => true, + BlockKind::SmoothStoneSlab => true, + BlockKind::AcaciaStairs => true, + BlockKind::DeepslateCopperOre => true, + BlockKind::YellowGlazedTerracotta => true, + BlockKind::CyanConcrete => true, + BlockKind::WaxedExposedCopper => true, + BlockKind::PottedFern => true, + BlockKind::EnderChest => true, + BlockKind::SpruceButton => true, + BlockKind::PurpleConcretePowder => true, + BlockKind::GreenBed => true, + BlockKind::Piston => true, + BlockKind::SpruceFence => true, + BlockKind::DeadTubeCoralFan => true, + BlockKind::StoneBricks => true, + BlockKind::NetherBrickSlab => true, + BlockKind::PottedSpruceSapling => true, + BlockKind::JackOLantern => true, + BlockKind::CobblestoneSlab => true, + BlockKind::OakWood => true, + BlockKind::WaxedOxidizedCopper => true, + BlockKind::DeepslateIronOre => true, + BlockKind::CyanCandle => true, + BlockKind::PottedJungleSapling => true, + BlockKind::BrainCoral => true, + BlockKind::EmeraldBlock => true, + BlockKind::Dandelion => true, + BlockKind::BirchSign => true, + BlockKind::InfestedStoneBricks => true, + BlockKind::PolishedGraniteStairs => true, + BlockKind::InfestedChiseledStoneBricks => true, + BlockKind::PottedWitherRose => true, + BlockKind::SlimeBlock => true, + BlockKind::RedSandstoneWall => true, + BlockKind::LimeConcretePowder => true, + BlockKind::CrackedDeepslateBricks => true, + BlockKind::WarpedRoots => true, + BlockKind::SmoothSandstone => true, + BlockKind::BrainCoralWallFan => true, + BlockKind::LightBlueConcrete => true, + BlockKind::MossCarpet => true, + BlockKind::LightGrayStainedGlass => true, + BlockKind::YellowBanner => true, + BlockKind::AcaciaPressurePlate => true, + BlockKind::RoseBush => true, + BlockKind::GreenBanner => true, + BlockKind::YellowWallBanner => true, + BlockKind::SmoothStone => true, + BlockKind::GlassPane => true, + BlockKind::IronBars => true, + BlockKind::FloweringAzalea => true, + BlockKind::Wheat => true, + BlockKind::GrayCarpet => true, + BlockKind::PinkGlazedTerracotta => true, + BlockKind::DarkPrismarineSlab => true, + BlockKind::JungleStairs => true, + BlockKind::DeadBrainCoralFan => true, + BlockKind::CrimsonButton => true, + BlockKind::AndesiteStairs => true, + BlockKind::SugarCane => true, + BlockKind::StrippedSpruceWood => true, + BlockKind::YellowBed => true, + BlockKind::LimeShulkerBox => true, + BlockKind::CrimsonPlanks => true, + BlockKind::HornCoralWallFan => true, + BlockKind::PinkBed => true, + BlockKind::StoneSlab => true, + BlockKind::LightGrayCandle => true, + BlockKind::MossyCobblestoneWall => true, + BlockKind::AcaciaWood => true, + BlockKind::LimeStainedGlassPane => true, + BlockKind::PottedFloweringAzaleaBush => true, + BlockKind::CaveVines => true, + BlockKind::EmeraldOre => true, + BlockKind::CyanCandleCake => true, + BlockKind::WhiteWool => true, + BlockKind::PlayerWallHead => true, + BlockKind::CrimsonFence => true, + BlockKind::StrippedOakLog => true, + BlockKind::WarpedWartBlock => true, + BlockKind::CraftingTable => true, + BlockKind::WarpedDoor => true, + BlockKind::Snow => true, + BlockKind::CobblestoneStairs => true, + BlockKind::PetrifiedOakSlab => true, + BlockKind::CyanGlazedTerracotta => true, + BlockKind::DeepslateTileStairs => true, + BlockKind::WaxedCutCopper => true, + BlockKind::DarkPrismarineStairs => true, + BlockKind::StructureVoid => true, + BlockKind::WhiteWallBanner => true, + BlockKind::AcaciaSapling => true, + BlockKind::WeatheredCutCopperSlab => true, + BlockKind::LimeCandle => true, + BlockKind::BrickStairs => true, + BlockKind::MagentaBanner => true, + BlockKind::SmoothBasalt => true, + BlockKind::BrownBed => true, + BlockKind::PottedDandelion => true, + BlockKind::WhiteCandle => true, + BlockKind::LightBlueWallBanner => true, + BlockKind::PurpleConcrete => true, + BlockKind::PolishedBlackstoneBrickWall => true, + BlockKind::Candle => true, + BlockKind::SmoothRedSandstoneStairs => true, + BlockKind::WeatheredCutCopper => true, + BlockKind::PurpurSlab => true, + BlockKind::WhiteTulip => true, + BlockKind::Cake => true, + BlockKind::PurpurPillar => true, + BlockKind::SpruceSapling => true, + BlockKind::CyanCarpet => true, + BlockKind::DragonWallHead => true, + BlockKind::BlueShulkerBox => true, + BlockKind::StoneBrickWall => true, + BlockKind::DeepslateBrickStairs => true, + BlockKind::MossyStoneBrickWall => true, + BlockKind::MagentaWool => true, + BlockKind::DamagedAnvil => true, + BlockKind::FloweringAzaleaLeaves => true, + BlockKind::InfestedStone => true, + BlockKind::NetheriteBlock => true, + BlockKind::PurpleCarpet => true, + BlockKind::TwistingVines => true, + BlockKind::Lectern => true, + BlockKind::LimeWallBanner => true, + BlockKind::BrainCoralFan => true, + BlockKind::OrangeWool => true, + BlockKind::OrangeCandleCake => true, + BlockKind::GrayWool => true, + BlockKind::Target => true, + BlockKind::BrownMushroom => true, + BlockKind::Clay => true, + BlockKind::PrismarineBrickSlab => true, + BlockKind::AcaciaWallSign => true, + BlockKind::PolishedBlackstoneBrickSlab => true, + BlockKind::HornCoralFan => true, + BlockKind::PottedOxeyeDaisy => true, + BlockKind::PinkConcretePowder => true, + BlockKind::RedSandstoneSlab => true, + BlockKind::Farmland => true, + BlockKind::Prismarine => true, + BlockKind::StructureBlock => false, + BlockKind::BlackCandleCake => true, + BlockKind::PurpleGlazedTerracotta => true, + BlockKind::BirchPlanks => true, + BlockKind::LightBlueShulkerBox => true, + BlockKind::LightBlueTerracotta => true, + BlockKind::PinkCarpet => true, + BlockKind::LightBlueGlazedTerracotta => true, + BlockKind::HoneyBlock => true, + BlockKind::InfestedDeepslate => true, + BlockKind::GreenWallBanner => true, + BlockKind::PottedRedMushroom => true, + BlockKind::SculkSensor => true, + BlockKind::CrimsonPressurePlate => true, + BlockKind::EndRod => true, + BlockKind::DirtPath => true, + BlockKind::ChiseledSandstone => true, + BlockKind::PolishedDeepslateStairs => true, + BlockKind::GraniteStairs => true, + BlockKind::GrayWallBanner => true, + BlockKind::PinkWool => true, + BlockKind::ChorusFlower => true, + BlockKind::GrayCandleCake => true, + BlockKind::DripstoneBlock => true, + BlockKind::NoteBlock => true, + BlockKind::LavaCauldron => true, + BlockKind::GreenCandle => true, + BlockKind::BirchSlab => true, + BlockKind::DeadBubbleCoral => true, + BlockKind::DarkOakDoor => true, + BlockKind::MossyCobblestoneSlab => true, + BlockKind::PottedAzaleaBush => true, + BlockKind::OakStairs => true, + BlockKind::Air => true, + BlockKind::WhiteStainedGlassPane => true, + BlockKind::NetherBrickFence => true, + BlockKind::GreenWool => true, + BlockKind::Vine => true, + BlockKind::DeadHornCoralWallFan => true, + BlockKind::PottedWhiteTulip => true, + BlockKind::RepeatingCommandBlock => false, + BlockKind::NetherWartBlock => true, + BlockKind::BlueStainedGlassPane => true, + BlockKind::BlackCarpet => true, + BlockKind::RedTulip => true, + BlockKind::BlackstoneSlab => true, + BlockKind::GrayConcrete => true, + BlockKind::BirchLeaves => true, + BlockKind::ExposedCutCopper => true, + BlockKind::MagentaConcrete => true, + BlockKind::PowderSnowCauldron => true, + BlockKind::WarpedHyphae => true, + BlockKind::RedstoneTorch => true, + BlockKind::BlackConcretePowder => true, + BlockKind::WaxedExposedCutCopperSlab => true, + BlockKind::EndPortalFrame => false, + BlockKind::SmoothSandstoneStairs => true, + BlockKind::RedWool => true, + BlockKind::DarkOakTrapdoor => true, + BlockKind::IronTrapdoor => true, + BlockKind::TubeCoralBlock => true, + BlockKind::ChainCommandBlock => false, + BlockKind::BubbleCoralBlock => true, + BlockKind::MossyCobblestoneStairs => true, + BlockKind::LilyOfTheValley => true, + BlockKind::WeatheredCutCopperStairs => true, + BlockKind::SprucePressurePlate => true, + BlockKind::FletchingTable => true, + BlockKind::Peony => true, + BlockKind::MushroomStem => true, + BlockKind::SpruceLeaves => true, + BlockKind::JungleWallSign => true, + BlockKind::BlackConcrete => true, + BlockKind::LightGrayStainedGlassPane => true, + BlockKind::DarkOakLog => true, + BlockKind::LimeCarpet => true, + BlockKind::Poppy => true, + BlockKind::RedStainedGlass => true, + BlockKind::Smoker => true, + BlockKind::PottedWarpedFungus => true, + BlockKind::BlackstoneWall => true, + BlockKind::GreenStainedGlass => true, + BlockKind::NetherBrickStairs => true, + BlockKind::PolishedAndesiteSlab => true, + BlockKind::DeadFireCoralWallFan => true, + BlockKind::InfestedCobblestone => true, + BlockKind::EndStone => true, + BlockKind::Sandstone => true, + BlockKind::OrangeBanner => true, + BlockKind::PolishedDiorite => true, + BlockKind::Sand => true, + BlockKind::PottedDarkOakSapling => true, + BlockKind::Cornflower => true, + BlockKind::WaxedOxidizedCutCopperSlab => true, + BlockKind::Glowstone => true, + BlockKind::CartographyTable => true, + BlockKind::WaxedWeatheredCutCopperSlab => true, + BlockKind::YellowWool => true, + BlockKind::PrismarineBricks => true, + BlockKind::CrimsonSign => true, + BlockKind::PottedCrimsonFungus => true, + BlockKind::MagentaCandleCake => true, + BlockKind::BlackGlazedTerracotta => true, + BlockKind::YellowStainedGlass => true, + BlockKind::AcaciaSlab => true, + BlockKind::JungleSign => true, + BlockKind::SoulLantern => true, + BlockKind::MossBlock => true, + BlockKind::BirchTrapdoor => true, + BlockKind::DeepslateEmeraldOre => true, + BlockKind::GrayGlazedTerracotta => true, + BlockKind::DeadBrainCoralBlock => true, + BlockKind::OakLog => true, + BlockKind::DarkOakSign => true, + BlockKind::TubeCoralWallFan => true, + BlockKind::FlowerPot => true, + BlockKind::CoalOre => true, + BlockKind::CyanStainedGlassPane => true, + BlockKind::LargeFern => true, + BlockKind::NetherBricks => true, + BlockKind::Stonecutter => true, + BlockKind::DeadHornCoralBlock => true, + BlockKind::OrangeCarpet => true, + BlockKind::PottedAcaciaSapling => true, + BlockKind::Bell => true, + BlockKind::AcaciaDoor => true, + BlockKind::CrimsonRoots => true, + BlockKind::PrismarineStairs => true, + BlockKind::BubbleColumn => true, + BlockKind::PolishedAndesiteStairs => true, + BlockKind::InfestedMossyStoneBricks => true, + BlockKind::WarpedWallSign => true, + BlockKind::Chest => true, + BlockKind::Water => false, + BlockKind::LimeStainedGlass => true, + BlockKind::Conduit => true, + BlockKind::CyanConcretePowder => true, + BlockKind::CaveVinesPlant => true, + BlockKind::JungleFenceGate => true, + BlockKind::StoneBrickSlab => true, + BlockKind::BrownCarpet => true, + BlockKind::StrippedJungleWood => true, + BlockKind::RedConcrete => true, + BlockKind::BrickWall => true, + BlockKind::CreeperHead => true, + BlockKind::NetherQuartzOre => true, + BlockKind::Scaffolding => true, + BlockKind::PinkStainedGlassPane => true, + BlockKind::BlackTerracotta => true, + BlockKind::WarpedFence => true, + BlockKind::AncientDebris => true, + BlockKind::WaxedCopperBlock => true, + BlockKind::DeadTubeCoral => true, + BlockKind::BigDripleafStem => true, + BlockKind::Furnace => true, + BlockKind::AcaciaTrapdoor => true, + BlockKind::SoulSoil => true, + BlockKind::LightGrayCarpet => true, + BlockKind::MagentaWallBanner => true, + BlockKind::RedNetherBricks => true, + BlockKind::OakDoor => true, + BlockKind::GlowLichen => true, + BlockKind::LimeCandleCake => true, + BlockKind::WaxedCutCopperStairs => true, + BlockKind::LimeBed => true, + BlockKind::MelonStem => true, + BlockKind::CrimsonStairs => true, + BlockKind::MossyCobblestone => true, + BlockKind::ChiseledNetherBricks => true, + BlockKind::EndStoneBrickSlab => true, + BlockKind::BrownStainedGlass => true, + BlockKind::LightningRod => true, + BlockKind::PolishedBlackstoneBrickStairs => true, + BlockKind::Lava => false, + BlockKind::PolishedBlackstoneSlab => true, + BlockKind::DeepslateTiles => true, + BlockKind::TurtleEgg => true, + BlockKind::CutSandstone => true, + BlockKind::BrownMushroomBlock => true, + BlockKind::WarpedNylium => true, + BlockKind::DeadFireCoralBlock => true, + BlockKind::GrayTerracotta => true, + BlockKind::ZombieHead => true, + BlockKind::FireCoral => true, + BlockKind::WaxedCutCopperSlab => true, + BlockKind::BrownWallBanner => true, + BlockKind::Blackstone => true, + BlockKind::BlueBed => true, + BlockKind::Beetroots => true, + BlockKind::SmallAmethystBud => true, + BlockKind::SoulTorch => true, + BlockKind::DioriteStairs => true, + BlockKind::LightBlueCandle => true, + BlockKind::DeadBrainCoral => true, + BlockKind::BambooSapling => true, + BlockKind::CopperBlock => true, + BlockKind::GreenCarpet => true, + BlockKind::RedCandle => true, + BlockKind::DeepslateBrickSlab => true, + BlockKind::OrangeWallBanner => true, + BlockKind::CopperOre => true, + BlockKind::SweetBerryBush => true, + BlockKind::Granite => true, + BlockKind::RedstoneLamp => true, + BlockKind::AcaciaPlanks => true, + BlockKind::PrismarineSlab => true, + BlockKind::DarkOakButton => true, + BlockKind::LimeGlazedTerracotta => true, + BlockKind::PottedAllium => true, + BlockKind::SoulFire => true, + BlockKind::LightBlueBanner => true, + BlockKind::Potatoes => true, + BlockKind::DriedKelpBlock => true, + BlockKind::GrayShulkerBox => true, + BlockKind::RedstoneWallTorch => true, + BlockKind::StickyPiston => true, + BlockKind::RedstoneOre => true, + BlockKind::BirchButton => true, + BlockKind::SoulWallTorch => true, + BlockKind::PurpleStainedGlass => true, + BlockKind::AttachedMelonStem => true, + BlockKind::AcaciaButton => true, + BlockKind::BoneBlock => true, + BlockKind::Spawner => true, + BlockKind::StrippedAcaciaLog => true, + BlockKind::MossyStoneBricks => true, + BlockKind::DeadBush => true, + BlockKind::CyanShulkerBox => true, + BlockKind::BlueWool => true, + BlockKind::JungleLog => true, + BlockKind::SkeletonWallSkull => true, + BlockKind::SandstoneSlab => true, + BlockKind::ActivatorRail => true, + BlockKind::Stone => true, + BlockKind::Cobblestone => true, + BlockKind::BrewingStand => true, + BlockKind::DeepslateLapisOre => true, + BlockKind::StrippedCrimsonHyphae => true, + BlockKind::MagentaStainedGlassPane => true, + BlockKind::PolishedBasalt => true, + BlockKind::OrangeShulkerBox => true, + BlockKind::PottedBrownMushroom => true, + BlockKind::GoldOre => true, + BlockKind::MovingPiston => false, + BlockKind::DarkOakPlanks => true, + BlockKind::DarkOakSlab => true, + BlockKind::OxeyeDaisy => true, + BlockKind::BlackShulkerBox => true, + BlockKind::RedCandleCake => true, + BlockKind::GreenConcrete => true, + BlockKind::PottedWarpedRoots => true, + BlockKind::YellowTerracotta => true, + BlockKind::PottedBirchSapling => true, + BlockKind::EndPortal => false, + BlockKind::LightGrayBanner => true, + BlockKind::DeadTubeCoralBlock => true, + BlockKind::BubbleCoral => true, + BlockKind::PolishedBlackstoneWall => true, + BlockKind::SporeBlossom => true, + BlockKind::Repeater => true, + BlockKind::RedstoneBlock => true, + BlockKind::SpruceWood => true, + BlockKind::GreenCandleCake => true, + BlockKind::DeepslateBrickWall => true, + BlockKind::MagmaBlock => true, + BlockKind::DeadBubbleCoralBlock => true, + BlockKind::RedConcretePowder => true, + BlockKind::StrippedSpruceLog => true, + BlockKind::EnchantingTable => true, + BlockKind::WarpedFenceGate => true, + BlockKind::StrippedDarkOakWood => true, + BlockKind::PurpleShulkerBox => true, + BlockKind::JungleLeaves => true, + BlockKind::CyanBed => true, + BlockKind::DeadBrainCoralWallFan => true, + BlockKind::PurpleWool => true, + BlockKind::GreenGlazedTerracotta => true, + BlockKind::WeatheredCopper => true, + BlockKind::BlackBed => true, + BlockKind::SmoothQuartzSlab => true, + BlockKind::HoneycombBlock => true, + BlockKind::Tuff => true, + BlockKind::PurpleCandleCake => true, + BlockKind::DarkOakFence => true, + BlockKind::TripwireHook => true, + } + } +} +impl BlockKind { + #[doc = "Returns the `transparent` property of this `BlockKind`."] + #[inline] + pub fn transparent(&self) -> bool { + match self { + BlockKind::StrippedOakLog => false, + BlockKind::AcaciaWallSign => true, + BlockKind::SpruceDoor => true, + BlockKind::Cornflower => true, + BlockKind::PistonHead => false, + BlockKind::Seagrass => true, + BlockKind::Ice => true, + BlockKind::PottedCactus => true, + BlockKind::ExposedCutCopperStairs => false, + BlockKind::MossyStoneBrickStairs => false, + BlockKind::EndStoneBricks => false, + BlockKind::HoneyBlock => true, + BlockKind::BirchWallSign => true, + BlockKind::Lodestone => false, + BlockKind::PinkTerracotta => false, + BlockKind::StrippedDarkOakLog => false, + BlockKind::PolishedBasalt => false, + BlockKind::ChiseledDeepslate => false, + BlockKind::PottedBrownMushroom => true, + BlockKind::SpruceButton => true, + BlockKind::WaxedExposedCutCopperStairs => false, + BlockKind::Dispenser => false, + BlockKind::CyanCandleCake => false, + BlockKind::StoneBricks => false, + BlockKind::PottedFern => true, + BlockKind::Carrots => true, + BlockKind::CrimsonPressurePlate => true, + BlockKind::CrimsonWallSign => true, + BlockKind::NetherPortal => true, + BlockKind::DeadBubbleCoral => true, + BlockKind::MossyStoneBrickWall => false, + BlockKind::TintedGlass => true, + BlockKind::RawCopperBlock => false, + BlockKind::CyanBed => true, + BlockKind::Fire => true, + BlockKind::WeatheredCutCopper => false, + BlockKind::PottedFloweringAzaleaBush => true, + BlockKind::BlueStainedGlass => true, + BlockKind::DeepslateEmeraldOre => false, + BlockKind::OrangeGlazedTerracotta => false, + BlockKind::Tuff => false, + BlockKind::PowderSnowCauldron => true, + BlockKind::PurpurStairs => false, + BlockKind::BlueShulkerBox => true, + BlockKind::OakDoor => true, + BlockKind::GrayStainedGlassPane => true, + BlockKind::YellowWallBanner => true, + BlockKind::BlackBed => true, + BlockKind::LightBlueConcretePowder => false, + BlockKind::CandleCake => false, + BlockKind::DeadBrainCoralBlock => false, + BlockKind::LightningRod => true, + BlockKind::TubeCoralWallFan => true, + BlockKind::CrimsonHyphae => false, + BlockKind::CraftingTable => false, + BlockKind::GrayShulkerBox => true, + BlockKind::SmoothStone => false, + BlockKind::CopperOre => false, + BlockKind::WarpedHyphae => false, + BlockKind::RedSandstoneStairs => false, + BlockKind::Grass => true, + BlockKind::DarkOakLog => false, + BlockKind::GildedBlackstone => false, + BlockKind::PinkWallBanner => true, + BlockKind::GreenStainedGlass => true, + BlockKind::OrangeWool => false, + BlockKind::Repeater => false, + BlockKind::Melon => false, + BlockKind::CyanBanner => true, + BlockKind::Torch => true, + BlockKind::PottedCrimsonFungus => true, + BlockKind::EmeraldOre => false, + BlockKind::SkeletonSkull => false, + BlockKind::PolishedDiorite => false, + BlockKind::BrownConcretePowder => false, + BlockKind::PrismarineWall => false, + BlockKind::StrippedJungleLog => false, + BlockKind::Prismarine => false, + BlockKind::PlayerHead => false, + BlockKind::SmoothQuartz => false, + BlockKind::StrippedAcaciaWood => false, + BlockKind::PowderSnow => false, + BlockKind::Chain => true, + BlockKind::NetherWartBlock => false, + BlockKind::NetherBricks => false, + BlockKind::DarkOakSapling => true, + BlockKind::ChiseledQuartzBlock => false, + BlockKind::TubeCoralBlock => false, + BlockKind::WaxedExposedCutCopperSlab => false, + BlockKind::PolishedGranite => false, + BlockKind::StructureBlock => false, + BlockKind::NetherBrickSlab => false, + BlockKind::GrassBlock => false, + BlockKind::AcaciaDoor => true, + BlockKind::EndStoneBrickSlab => false, + BlockKind::GreenTerracotta => false, + BlockKind::Tripwire => true, + BlockKind::WhiteStainedGlassPane => true, + BlockKind::CrimsonSlab => false, + BlockKind::DripstoneBlock => false, + BlockKind::SculkSensor => false, + BlockKind::QuartzSlab => false, + BlockKind::CobblestoneWall => false, + BlockKind::CrimsonTrapdoor => true, + BlockKind::EnchantingTable => false, + BlockKind::BirchButton => true, + BlockKind::GrayCarpet => false, + BlockKind::OrangeBanner => true, + BlockKind::DarkOakWood => false, + BlockKind::MossBlock => false, + BlockKind::MagentaWool => false, + BlockKind::CyanWool => false, + BlockKind::PolishedAndesiteStairs => false, + BlockKind::DeepslateBrickWall => false, + BlockKind::OakFenceGate => false, + BlockKind::Loom => false, + BlockKind::YellowShulkerBox => true, + BlockKind::LightBlueCandle => true, + BlockKind::GreenCandle => true, + BlockKind::BrownStainedGlassPane => true, + BlockKind::JungleSlab => false, + BlockKind::DeepslateCoalOre => false, + BlockKind::CutSandstone => false, + BlockKind::RawIronBlock => false, + BlockKind::PottedSpruceSapling => true, + BlockKind::Bricks => false, + BlockKind::PurpleStainedGlassPane => true, + BlockKind::WitherRose => true, + BlockKind::BoneBlock => false, + BlockKind::WarpedSlab => false, + BlockKind::BirchWood => false, + BlockKind::Comparator => false, + BlockKind::PottedWitherRose => true, + BlockKind::Terracotta => false, + BlockKind::PolishedBlackstoneBrickWall => false, + BlockKind::ExposedCopper => false, + BlockKind::Scaffolding => true, + BlockKind::PottedDarkOakSapling => true, + BlockKind::WarpedWartBlock => false, + BlockKind::LightGrayConcrete => false, + BlockKind::CrimsonFenceGate => false, + BlockKind::DeadBubbleCoralBlock => false, + BlockKind::LightBlueCandleCake => false, + BlockKind::CobbledDeepslateStairs => false, + BlockKind::BrownMushroomBlock => false, + BlockKind::RedSand => false, + BlockKind::Farmland => false, + BlockKind::StrippedOakWood => false, + BlockKind::WaterCauldron => true, + BlockKind::OrangeConcretePowder => false, + BlockKind::PinkStainedGlass => true, + BlockKind::WarpedStairs => false, + BlockKind::DeepslateTileWall => false, + BlockKind::OakSign => true, + BlockKind::PolishedAndesiteSlab => false, + BlockKind::GreenCarpet => false, + BlockKind::LimeTerracotta => false, + BlockKind::AzureBluet => true, + BlockKind::NetherWart => true, + BlockKind::DaylightDetector => false, + BlockKind::QuartzBlock => false, + BlockKind::SoulSand => false, + BlockKind::WaxedWeatheredCutCopper => false, + BlockKind::RedNetherBrickSlab => false, + BlockKind::GrayTerracotta => false, + BlockKind::OakStairs => false, + BlockKind::BrownBed => true, + BlockKind::BrownStainedGlass => true, + BlockKind::AcaciaPressurePlate => true, + BlockKind::DragonHead => false, + BlockKind::CyanConcrete => false, + BlockKind::BubbleCoralFan => true, + BlockKind::WaxedWeatheredCutCopperStairs => false, + BlockKind::Jukebox => false, + BlockKind::Dirt => false, + BlockKind::RedMushroomBlock => false, + BlockKind::DarkOakFence => false, + BlockKind::LightGrayShulkerBox => true, + BlockKind::CrimsonSign => true, + BlockKind::BlackTerracotta => false, + BlockKind::WarpedFenceGate => false, + BlockKind::InfestedStone => false, + BlockKind::Kelp => true, + BlockKind::StoneBrickStairs => false, + BlockKind::PolishedDioriteStairs => false, + BlockKind::LimeCarpet => false, + BlockKind::DarkOakSign => true, + BlockKind::PrismarineBrickStairs => false, + BlockKind::WarpedSign => true, + BlockKind::GreenConcrete => false, + BlockKind::Beetroots => true, + BlockKind::OakPlanks => false, + BlockKind::DeepslateRedstoneOre => false, + BlockKind::RedConcretePowder => false, + BlockKind::PolishedBlackstoneStairs => false, + BlockKind::DarkOakDoor => true, + BlockKind::AmethystBlock => false, + BlockKind::Azalea => true, + BlockKind::PottedAllium => true, + BlockKind::MagentaWallBanner => true, + BlockKind::StrippedCrimsonHyphae => false, + BlockKind::PolishedBlackstonePressurePlate => true, + BlockKind::RedstoneWire => true, + BlockKind::LightBlueWallBanner => true, + BlockKind::PurpleTerracotta => false, + BlockKind::CaveVinesPlant => true, + BlockKind::SoulWallTorch => true, + BlockKind::GlassPane => true, + BlockKind::InfestedChiseledStoneBricks => false, + BlockKind::RedstoneOre => false, + BlockKind::RedCandle => true, + BlockKind::CutRedSandstoneSlab => false, + BlockKind::BlackCandle => true, + BlockKind::OrangeTulip => true, + BlockKind::LargeFern => true, + BlockKind::WaxedWeatheredCopper => false, + BlockKind::DeepslateGoldOre => false, + BlockKind::BlackShulkerBox => true, + BlockKind::MagentaCarpet => false, + BlockKind::BrickStairs => false, + BlockKind::BrownWallBanner => true, + BlockKind::BrainCoralFan => true, + BlockKind::RedTulip => true, + BlockKind::CyanTerracotta => false, + BlockKind::GraniteSlab => false, + BlockKind::BirchFenceGate => false, + BlockKind::YellowConcrete => false, + BlockKind::PottedAcaciaSapling => true, + BlockKind::MagmaBlock => false, + BlockKind::DarkOakTrapdoor => true, + BlockKind::Air => true, + BlockKind::WetSponge => false, + BlockKind::JungleTrapdoor => true, + BlockKind::BrownWool => false, + BlockKind::GreenConcretePowder => false, + BlockKind::GrayBanner => true, + BlockKind::MossyCobblestone => false, + BlockKind::PurpleStainedGlass => true, + BlockKind::SpruceFenceGate => false, + BlockKind::MagentaConcretePowder => false, + BlockKind::DeadBubbleCoralWallFan => true, + BlockKind::PolishedDeepslateStairs => false, + BlockKind::SpruceWood => false, + BlockKind::BlueWool => false, + BlockKind::RootedDirt => false, + BlockKind::ChiseledRedSandstone => false, + BlockKind::GraniteWall => false, + BlockKind::MagentaCandleCake => false, + BlockKind::CutCopperStairs => false, + BlockKind::BrickWall => false, + BlockKind::BirchPlanks => false, + BlockKind::GlowLichen => true, + BlockKind::LightBlueBanner => true, + BlockKind::Clay => false, + BlockKind::MossyStoneBricks => false, + BlockKind::SmoothSandstoneStairs => false, + BlockKind::OxidizedCopper => false, + BlockKind::GraniteStairs => false, + BlockKind::BirchSign => true, + BlockKind::SnowBlock => false, + BlockKind::SmallDripleaf => true, + BlockKind::DetectorRail => true, + BlockKind::CreeperHead => false, + BlockKind::WarpedTrapdoor => true, + BlockKind::WhiteConcrete => false, + BlockKind::RedNetherBrickStairs => false, + BlockKind::FletchingTable => false, + BlockKind::BlueOrchid => true, + BlockKind::LightBlueGlazedTerracotta => false, + BlockKind::RedNetherBrickWall => false, + BlockKind::NetherSprouts => true, + BlockKind::VoidAir => true, + BlockKind::OakButton => true, + BlockKind::BlueGlazedTerracotta => false, + BlockKind::ZombieHead => false, + BlockKind::LightGrayCarpet => false, + BlockKind::DeadTubeCoralWallFan => true, + BlockKind::SoulCampfire => true, + BlockKind::ExposedCutCopperSlab => false, + BlockKind::HornCoralFan => true, + BlockKind::BrownMushroom => true, + BlockKind::BirchTrapdoor => true, + BlockKind::CyanCandle => true, + BlockKind::PottedBirchSapling => true, + BlockKind::StoneStairs => false, + BlockKind::RawGoldBlock => false, + BlockKind::WarpedButton => true, + BlockKind::OxeyeDaisy => true, + BlockKind::BlueCarpet => false, + BlockKind::Water => true, + BlockKind::CryingObsidian => false, + BlockKind::Shroomlight => false, + BlockKind::RedStainedGlassPane => true, + BlockKind::EndStoneBrickStairs => false, + BlockKind::WarpedFungus => true, + BlockKind::PrismarineStairs => false, + BlockKind::LightBlueBed => true, + BlockKind::LightGrayGlazedTerracotta => false, + BlockKind::PottedDandelion => true, + BlockKind::FloweringAzaleaLeaves => true, + BlockKind::Netherrack => false, + BlockKind::LavaCauldron => true, + BlockKind::CyanShulkerBox => true, + BlockKind::LimeStainedGlass => true, + BlockKind::DeadFireCoralWallFan => true, + BlockKind::LimeConcrete => false, + BlockKind::HornCoralBlock => false, + BlockKind::BrownBanner => true, + BlockKind::Smoker => false, + BlockKind::BrownTerracotta => false, + BlockKind::StrippedBirchLog => false, + BlockKind::Cobblestone => false, + BlockKind::DarkOakStairs => false, + BlockKind::BuddingAmethyst => false, + BlockKind::GoldBlock => false, + BlockKind::RedstoneLamp => false, + BlockKind::BlackstoneStairs => false, + BlockKind::LightGrayCandleCake => false, + BlockKind::WaxedCutCopper => false, + BlockKind::GreenWallBanner => true, + BlockKind::AttachedPumpkinStem => true, + BlockKind::Conduit => true, + BlockKind::JungleSign => true, + BlockKind::GrayWallBanner => true, + BlockKind::WaxedOxidizedCutCopperStairs => false, + BlockKind::WarpedPressurePlate => true, + BlockKind::CobblestoneSlab => false, + BlockKind::BrainCoralWallFan => true, + BlockKind::Cactus => false, + BlockKind::LilyOfTheValley => true, + BlockKind::SandstoneSlab => false, + BlockKind::PinkCandle => true, + BlockKind::BigDripleaf => false, + BlockKind::DarkPrismarine => false, + BlockKind::SporeBlossom => true, + BlockKind::PumpkinStem => true, + BlockKind::DeepslateLapisOre => false, + BlockKind::EndPortal => true, + BlockKind::InfestedMossyStoneBricks => false, + BlockKind::ZombieWallHead => false, + BlockKind::BrainCoral => true, + BlockKind::Stone => false, + BlockKind::RedStainedGlass => true, + BlockKind::EndStone => false, + BlockKind::Piston => false, + BlockKind::DeadTubeCoral => true, + BlockKind::CrackedPolishedBlackstoneBricks => false, + BlockKind::PolishedDeepslateWall => false, + BlockKind::AncientDebris => false, + BlockKind::WhiteTerracotta => false, + BlockKind::WarpedFence => false, + BlockKind::AcaciaWood => false, + BlockKind::SmithingTable => false, + BlockKind::PolishedBlackstoneButton => true, + BlockKind::Snow => false, + BlockKind::MagentaShulkerBox => true, + BlockKind::Basalt => false, + BlockKind::Bookshelf => false, + BlockKind::DeadFireCoralBlock => false, + BlockKind::YellowCarpet => false, + BlockKind::MagentaGlazedTerracotta => false, + BlockKind::PolishedGraniteStairs => false, + BlockKind::EndPortalFrame => false, + BlockKind::Lantern => true, + BlockKind::JungleStairs => false, + BlockKind::ChiseledSandstone => false, + BlockKind::StrippedSpruceLog => false, + BlockKind::PottedOrangeTulip => true, + BlockKind::Andesite => false, + BlockKind::NetherBrickFence => false, + BlockKind::BlastFurnace => false, + BlockKind::WhiteCarpet => false, + BlockKind::StonePressurePlate => true, + BlockKind::SpruceSign => true, + BlockKind::Sunflower => true, + BlockKind::DarkOakFenceGate => false, + BlockKind::SeaLantern => false, + BlockKind::Barrel => false, + BlockKind::CartographyTable => false, + BlockKind::Lava => true, + BlockKind::CrimsonNylium => false, + BlockKind::SmoothQuartzStairs => false, + BlockKind::DeadTubeCoralFan => true, + BlockKind::BlueBanner => true, + BlockKind::SoulFire => true, + BlockKind::YellowCandle => true, + BlockKind::CobbledDeepslateSlab => false, + BlockKind::InfestedStoneBricks => false, + BlockKind::LilyPad => true, + BlockKind::LightBlueShulkerBox => true, + BlockKind::AcaciaTrapdoor => true, + BlockKind::BlackGlazedTerracotta => false, + BlockKind::SpruceSapling => true, + BlockKind::LightBlueStainedGlass => true, + BlockKind::StrippedAcaciaLog => false, + BlockKind::BrownCarpet => false, + BlockKind::QuartzBricks => false, + BlockKind::AcaciaFenceGate => false, + BlockKind::CutCopperSlab => false, + BlockKind::OrangeCarpet => false, + BlockKind::CyanConcretePowder => false, + BlockKind::TallGrass => true, + BlockKind::WeatheredCutCopperStairs => false, + BlockKind::BlackStainedGlassPane => true, + BlockKind::QuartzPillar => false, + BlockKind::GrayStainedGlass => true, + BlockKind::SmoothSandstone => false, + BlockKind::EnderChest => false, + BlockKind::LightGrayBanner => true, + BlockKind::DragonWallHead => false, + BlockKind::DeadHornCoral => true, + BlockKind::ShulkerBox => true, + BlockKind::OxidizedCutCopperStairs => false, + BlockKind::SpruceStairs => false, + BlockKind::YellowTerracotta => false, + BlockKind::Target => false, + BlockKind::RepeatingCommandBlock => false, + BlockKind::PurpleBanner => true, + BlockKind::EmeraldBlock => false, + BlockKind::InfestedCobblestone => false, + BlockKind::Bamboo => true, + BlockKind::SweetBerryBush => true, + BlockKind::RedShulkerBox => true, + BlockKind::CobblestoneStairs => false, + BlockKind::RedstoneTorch => true, + BlockKind::BeeNest => false, + BlockKind::BlueConcretePowder => false, + BlockKind::OrangeCandle => true, + BlockKind::GreenWool => false, + BlockKind::CaveVines => true, + BlockKind::WeepingVines => true, + BlockKind::CrackedDeepslateBricks => false, + BlockKind::SlimeBlock => true, + BlockKind::WhiteTulip => true, + BlockKind::MelonStem => true, + BlockKind::DeadTubeCoralBlock => false, + BlockKind::LimeBanner => true, + BlockKind::ExposedCutCopper => false, + BlockKind::NetherQuartzOre => false, + BlockKind::JungleFenceGate => false, + BlockKind::WhiteGlazedTerracotta => false, + BlockKind::HornCoralWallFan => true, + BlockKind::PoweredRail => true, + BlockKind::AndesiteSlab => false, + BlockKind::LightGrayCandle => true, + BlockKind::Light => true, + BlockKind::StructureVoid => true, + BlockKind::GrayConcretePowder => false, + BlockKind::IronOre => false, + BlockKind::LimeGlazedTerracotta => false, + BlockKind::Anvil => false, + BlockKind::SprucePressurePlate => true, + BlockKind::Vine => true, + BlockKind::Campfire => true, + BlockKind::RedSandstone => false, + BlockKind::DeadBrainCoral => true, + BlockKind::PinkStainedGlassPane => true, + BlockKind::SmallAmethystBud => true, + BlockKind::DarkOakSlab => false, + BlockKind::PurpleGlazedTerracotta => false, + BlockKind::MagentaStainedGlassPane => true, + BlockKind::WaxedOxidizedCopper => false, + BlockKind::Cake => false, + BlockKind::BlackCarpet => false, + BlockKind::CutCopper => false, + BlockKind::PurpleWool => false, + BlockKind::FloweringAzalea => true, + BlockKind::YellowBed => true, + BlockKind::Wheat => true, + BlockKind::PolishedBlackstoneSlab => false, + BlockKind::Poppy => true, + BlockKind::AcaciaFence => false, + BlockKind::MagentaBed => true, + BlockKind::BlueBed => true, + BlockKind::AcaciaSign => true, + BlockKind::WhiteCandle => true, + BlockKind::GrayConcrete => false, + BlockKind::StrippedDarkOakWood => false, + BlockKind::NetherBrickStairs => false, + BlockKind::PottedWhiteTulip => true, + BlockKind::WaxedExposedCopper => false, + BlockKind::CommandBlock => false, + BlockKind::PottedBamboo => true, + BlockKind::PottedCornflower => true, + BlockKind::DeepslateDiamondOre => false, + BlockKind::Sponge => false, + BlockKind::WallTorch => true, + BlockKind::NetherBrickWall => false, + BlockKind::BirchStairs => false, + BlockKind::CoalOre => false, + BlockKind::PottedRedTulip => true, + BlockKind::IronBars => true, + BlockKind::RedMushroom => true, + BlockKind::Furnace => false, + BlockKind::WeatheredCopper => false, + BlockKind::PottedAzaleaBush => true, + BlockKind::LapisOre => false, + BlockKind::OrangeBed => true, + BlockKind::BirchDoor => true, + BlockKind::BubbleCoralBlock => false, + BlockKind::AcaciaSapling => true, + BlockKind::BubbleColumn => true, + BlockKind::HayBlock => false, + BlockKind::PottedWarpedFungus => true, + BlockKind::TallSeagrass => true, + BlockKind::MagentaStainedGlass => true, + BlockKind::PottedPoppy => true, + BlockKind::LapisBlock => false, + BlockKind::DarkPrismarineSlab => false, + BlockKind::FrostedIce => true, + BlockKind::PurpleConcrete => false, + BlockKind::BrownShulkerBox => true, + BlockKind::StoneSlab => false, + BlockKind::PolishedGraniteSlab => false, + BlockKind::PurpleCarpet => false, + BlockKind::DarkOakButton => true, + BlockKind::Composter => false, + BlockKind::JackOLantern => false, + BlockKind::YellowBanner => true, + BlockKind::PinkGlazedTerracotta => false, + BlockKind::NetheriteBlock => false, + BlockKind::LimeStainedGlassPane => true, + BlockKind::WhiteBanner => true, + BlockKind::SmoothRedSandstoneStairs => false, + BlockKind::BlueCandleCake => false, + BlockKind::Dropper => false, + BlockKind::YellowStainedGlass => true, + BlockKind::LightGrayTerracotta => false, + BlockKind::RoseBush => true, + BlockKind::ChorusPlant => true, + BlockKind::CrimsonDoor => true, + BlockKind::Jigsaw => false, + BlockKind::CrimsonFence => false, + BlockKind::PinkShulkerBox => true, + BlockKind::PinkCarpet => false, + BlockKind::DeadHornCoralBlock => false, + BlockKind::PolishedAndesite => false, + BlockKind::ChiseledPolishedBlackstone => false, + BlockKind::PolishedBlackstoneBricks => false, + BlockKind::DeepslateTileSlab => false, + BlockKind::DarkOakWallSign => true, + BlockKind::MossyCobblestoneStairs => false, + BlockKind::SandstoneWall => false, + BlockKind::SpruceFence => false, + BlockKind::Ladder => true, + BlockKind::PottedDeadBush => true, + BlockKind::MagentaCandle => true, + BlockKind::StrippedBirchWood => false, + BlockKind::LimeConcretePowder => false, + BlockKind::PottedJungleSapling => true, + BlockKind::PolishedBlackstoneWall => false, + BlockKind::AndesiteStairs => false, + BlockKind::GreenBed => true, + BlockKind::SeaPickle => true, + BlockKind::DeadBrainCoralWallFan => true, + BlockKind::LightBlueStainedGlassPane => true, + BlockKind::DeepslateBrickStairs => false, + BlockKind::Cobweb => true, + BlockKind::LightGrayStainedGlass => true, + BlockKind::PurpleWallBanner => true, + BlockKind::SugarCane => true, + BlockKind::Grindstone => false, + BlockKind::InfestedCrackedStoneBricks => false, + BlockKind::DeadHornCoralWallFan => true, + BlockKind::DeepslateTiles => false, + BlockKind::MushroomStem => false, + BlockKind::AcaciaButton => true, + BlockKind::PurpleShulkerBox => true, + BlockKind::MediumAmethystBud => true, + BlockKind::WhiteStainedGlass => true, + BlockKind::WeatheredCutCopperSlab => false, + BlockKind::BrownCandle => true, + BlockKind::LightBlueWool => false, + BlockKind::GreenStainedGlassPane => true, + BlockKind::RedCarpet => false, + BlockKind::WarpedDoor => true, + BlockKind::GoldOre => false, + BlockKind::CutSandstoneSlab => false, + BlockKind::CoalBlock => false, + BlockKind::MossyCobblestoneSlab => false, + BlockKind::BlackStainedGlass => true, + BlockKind::Dandelion => true, + BlockKind::Cocoa => true, + BlockKind::CyanWallBanner => true, + BlockKind::MagentaConcrete => false, + BlockKind::BambooSapling => true, + BlockKind::Granite => false, + BlockKind::WaxedWeatheredCutCopperSlab => false, + BlockKind::EndStoneBrickWall => false, + BlockKind::TrappedChest => false, + BlockKind::AmethystCluster => true, + BlockKind::Obsidian => false, + BlockKind::HangingRoots => true, + BlockKind::QuartzStairs => false, + BlockKind::CrackedDeepslateTiles => false, + BlockKind::OxidizedCutCopper => false, + BlockKind::LightBlueTerracotta => false, + BlockKind::WaxedExposedCutCopper => false, + BlockKind::StrippedCrimsonStem => false, + BlockKind::DeepslateIronOre => false, + BlockKind::JungleWallSign => true, + BlockKind::PinkConcrete => false, + BlockKind::Bell => false, + BlockKind::SpruceTrapdoor => true, + BlockKind::PolishedDioriteSlab => false, + BlockKind::PinkWool => false, + BlockKind::AcaciaStairs => false, + BlockKind::SpruceLog => false, + BlockKind::Chest => false, + BlockKind::LightGrayStainedGlassPane => true, + BlockKind::BirchFence => false, + BlockKind::CrackedNetherBricks => false, + BlockKind::NetherGoldOre => false, + BlockKind::OakWood => false, + BlockKind::WhiteShulkerBox => true, + BlockKind::OakTrapdoor => true, + BlockKind::Tnt => false, + BlockKind::Lectern => false, + BlockKind::CrimsonButton => true, + BlockKind::WaxedCopperBlock => false, + BlockKind::BlackstoneSlab => false, + BlockKind::StoneBrickSlab => false, + BlockKind::FireCoralBlock => false, + BlockKind::LimeCandleCake => false, + BlockKind::LightBlueConcrete => false, + BlockKind::CoarseDirt => false, + BlockKind::Beehive => false, + BlockKind::WhiteBed => true, + BlockKind::YellowConcretePowder => false, + BlockKind::CrimsonFungus => true, + BlockKind::PolishedBlackstoneBrickSlab => false, + BlockKind::WarpedRoots => true, + BlockKind::Beacon => true, + BlockKind::GrayWool => false, + BlockKind::PottedOxeyeDaisy => true, + BlockKind::WaxedCutCopperSlab => false, + BlockKind::SmoothQuartzSlab => false, + BlockKind::StrippedJungleWood => false, + BlockKind::CreeperWallHead => false, + BlockKind::LightBlueCarpet => false, + BlockKind::BirchSapling => true, + BlockKind::TripwireHook => true, + BlockKind::StrippedWarpedHyphae => false, + BlockKind::DiamondOre => false, + BlockKind::RedSandstoneSlab => false, + BlockKind::MovingPiston => true, + BlockKind::OrangeConcrete => false, + BlockKind::PurpleCandle => true, + BlockKind::ChippedAnvil => false, + BlockKind::OrangeTerracotta => false, + BlockKind::OakPressurePlate => true, + BlockKind::RedWallBanner => true, + BlockKind::BlueIce => false, + BlockKind::BlueStainedGlassPane => true, + BlockKind::PottedAzureBluet => true, + BlockKind::OakSapling => true, + BlockKind::BirchLog => false, + BlockKind::Lever => true, + BlockKind::BlueWallBanner => true, + BlockKind::GrayGlazedTerracotta => false, + BlockKind::OakLeaves => true, + BlockKind::Candle => true, + BlockKind::WeepingVinesPlant => true, + BlockKind::LimeWallBanner => true, + BlockKind::Spawner => true, + BlockKind::SkeletonWallSkull => false, + BlockKind::BirchSlab => false, + BlockKind::PolishedBlackstone => false, + BlockKind::LightGrayBed => true, + BlockKind::PinkBanner => true, + BlockKind::TwistingVinesPlant => true, + BlockKind::StoneButton => true, + BlockKind::InfestedDeepslate => false, + BlockKind::CopperBlock => false, + BlockKind::BrownConcrete => false, + BlockKind::ActivatorRail => true, + BlockKind::GrayCandleCake => false, + BlockKind::FlowerPot => true, + BlockKind::CobbledDeepslateWall => false, + BlockKind::TwistingVines => true, + BlockKind::SmoothBasalt => false, + BlockKind::WarpedPlanks => false, + BlockKind::PinkCandleCake => false, + BlockKind::DeadBush => true, + BlockKind::IronDoor => true, + BlockKind::PottedOakSapling => true, + BlockKind::BrickSlab => false, + BlockKind::Blackstone => false, + BlockKind::DeepslateCopperOre => false, + BlockKind::PinkBed => true, + BlockKind::OrangeCandleCake => false, + BlockKind::StickyPiston => false, + BlockKind::PottedWarpedRoots => true, + BlockKind::PurpurBlock => false, + BlockKind::HoneycombBlock => false, + BlockKind::AcaciaLeaves => true, + BlockKind::Cauldron => true, + BlockKind::PottedBlueOrchid => true, + BlockKind::BirchLeaves => true, + BlockKind::DeadBrainCoralFan => true, + BlockKind::LimeCandle => true, + BlockKind::ChainCommandBlock => false, + BlockKind::WhiteCandleCake => false, + BlockKind::KelpPlant => true, + BlockKind::YellowCandleCake => false, + BlockKind::Deepslate => false, + BlockKind::LightGrayWallBanner => true, + BlockKind::LightGrayConcretePowder => false, + BlockKind::PurpurSlab => false, + BlockKind::BlueConcrete => false, + BlockKind::StrippedWarpedStem => false, + BlockKind::WhiteWool => false, + BlockKind::RedConcrete => false, + BlockKind::JungleLeaves => true, + BlockKind::GreenBanner => true, + BlockKind::JungleDoor => true, + BlockKind::JungleSapling => true, + BlockKind::Bedrock => false, + BlockKind::Peony => true, + BlockKind::SpruceSlab => false, + BlockKind::PolishedDeepslateSlab => false, + BlockKind::RedGlazedTerracotta => false, + BlockKind::CrimsonPlanks => false, + BlockKind::DeadHornCoralFan => true, + BlockKind::PinkConcretePowder => false, + BlockKind::CyanStainedGlassPane => true, + BlockKind::BubbleCoralWallFan => true, + BlockKind::BlackBanner => true, + BlockKind::DeepslateBrickSlab => false, + BlockKind::AcaciaPlanks => false, + BlockKind::Hopper => true, + BlockKind::HeavyWeightedPressurePlate => true, + BlockKind::PinkTulip => true, + BlockKind::Barrier => true, + BlockKind::DarkPrismarineStairs => false, + BlockKind::Gravel => false, + BlockKind::WarpedNylium => false, + BlockKind::SoulTorch => true, + BlockKind::DeadFireCoral => true, + BlockKind::OxidizedCutCopperSlab => false, + BlockKind::GrayCandle => true, + BlockKind::EndGateway => true, + BlockKind::StrippedSpruceWood => false, + BlockKind::FireCoralFan => true, + BlockKind::SpruceWallSign => true, + BlockKind::CyanCarpet => false, + BlockKind::MossyStoneBrickSlab => false, + BlockKind::WitherSkeletonSkull => false, + BlockKind::GreenCandleCake => false, + BlockKind::LimeBed => true, + BlockKind::PetrifiedOakSlab => false, + BlockKind::YellowGlazedTerracotta => false, + BlockKind::WitherSkeletonWallSkull => false, + BlockKind::DiamondBlock => false, + BlockKind::YellowWool => false, + BlockKind::BlackWallBanner => true, + BlockKind::BirchPressurePlate => true, + BlockKind::PottedPinkTulip => true, + BlockKind::PackedIce => false, + BlockKind::RedSandstoneWall => false, + BlockKind::BrownCandleCake => false, + BlockKind::MossCarpet => false, + BlockKind::PottedRedMushroom => true, + BlockKind::WaxedCutCopperStairs => false, + BlockKind::Lilac => true, + BlockKind::LimeShulkerBox => true, + BlockKind::SmoothSandstoneSlab => false, + BlockKind::PurpleCandleCake => false, + BlockKind::SmoothStoneSlab => false, + BlockKind::OrangeWallBanner => true, + BlockKind::JungleLog => false, + BlockKind::PrismarineSlab => false, + BlockKind::DioriteSlab => false, + BlockKind::OrangeShulkerBox => true, + BlockKind::RedNetherBricks => false, + BlockKind::SoulLantern => true, + BlockKind::RedWool => false, + BlockKind::CrimsonStairs => false, + BlockKind::OrangeStainedGlassPane => true, + BlockKind::LightGrayWool => false, + BlockKind::CarvedPumpkin => false, + BlockKind::SandstoneStairs => false, + BlockKind::WhiteWallBanner => true, + BlockKind::WhiteConcretePowder => false, + BlockKind::DioriteWall => false, + BlockKind::SprucePlanks => false, + BlockKind::PolishedDeepslate => false, + BlockKind::Allium => true, + BlockKind::SoulSoil => false, + BlockKind::LargeAmethystBud => true, + BlockKind::Diorite => false, + BlockKind::JunglePlanks => false, + BlockKind::AzaleaLeaves => true, + BlockKind::CutRedSandstone => false, + BlockKind::YellowStainedGlassPane => true, + BlockKind::CrimsonRoots => true, + BlockKind::PurpleConcretePowder => false, + BlockKind::Potatoes => true, + BlockKind::BlueTerracotta => false, + BlockKind::GreenShulkerBox => true, + BlockKind::RedTerracotta => false, + BlockKind::Podzol => false, + BlockKind::AcaciaSlab => false, + BlockKind::PointedDripstone => true, + BlockKind::WarpedWallSign => true, + BlockKind::BlackConcretePowder => false, + BlockKind::FireCoralWallFan => true, + BlockKind::DragonEgg => true, + BlockKind::ChiseledStoneBricks => false, + BlockKind::DarkOakPlanks => false, + BlockKind::WarpedStem => false, + BlockKind::Glowstone => false, + BlockKind::DeadFireCoralFan => true, + BlockKind::TubeCoral => true, + BlockKind::DirtPath => false, + BlockKind::DarkOakPressurePlate => true, + BlockKind::PurpurPillar => false, + BlockKind::FireCoral => true, + BlockKind::MossyCobblestoneWall => false, + BlockKind::DarkOakLeaves => true, + BlockKind::TubeCoralFan => true, + BlockKind::Pumpkin => false, + BlockKind::Glass => true, + BlockKind::SmoothRedSandstoneSlab => false, + BlockKind::PrismarineBrickSlab => false, + BlockKind::BrownGlazedTerracotta => false, + BlockKind::TurtleEgg => true, + BlockKind::DeadBubbleCoralFan => true, + BlockKind::EndRod => true, + BlockKind::RespawnAnchor => false, + BlockKind::HornCoral => true, + BlockKind::PlayerWallHead => false, + BlockKind::ChiseledNetherBricks => false, + BlockKind::SmoothRedSandstone => false, + BlockKind::PrismarineBricks => false, + BlockKind::GrayBed => true, + BlockKind::OrangeStainedGlass => true, + BlockKind::IronTrapdoor => true, + BlockKind::RedBanner => true, + BlockKind::GreenGlazedTerracotta => false, + BlockKind::DioriteStairs => false, + BlockKind::RedCandleCake => false, + BlockKind::BlueCandle => true, + BlockKind::BlackCandleCake => false, + BlockKind::CobbledDeepslate => false, + BlockKind::SpruceLeaves => true, + BlockKind::RedstoneBlock => false, + BlockKind::Rail => true, + BlockKind::NoteBlock => false, + BlockKind::PolishedBlackstoneBrickStairs => false, + BlockKind::Observer => false, + BlockKind::JunglePressurePlate => true, + BlockKind::BrewingStand => true, + BlockKind::MagentaTerracotta => false, + BlockKind::CrackedStoneBricks => false, + BlockKind::StoneBrickWall => false, + BlockKind::BubbleCoral => true, + BlockKind::MagentaBanner => true, + BlockKind::Sand => false, + BlockKind::JungleFence => false, + BlockKind::CyanGlazedTerracotta => false, + BlockKind::DeepslateBricks => false, + BlockKind::OakWallSign => true, + BlockKind::CrimsonStem => false, + BlockKind::WaxedOxidizedCutCopperSlab => false, + BlockKind::PurpleBed => true, + BlockKind::JungleWood => false, + BlockKind::OakSlab => false, + BlockKind::CaveAir => true, + BlockKind::BlackConcrete => false, + BlockKind::JungleButton => true, + BlockKind::OakFence => false, + BlockKind::BlackstoneWall => false, + BlockKind::RedstoneWallTorch => true, + BlockKind::CyanStainedGlass => true, + BlockKind::BigDripleafStem => true, + BlockKind::Mycelium => false, + BlockKind::DamagedAnvil => false, + BlockKind::PottedLilyOfTheValley => true, + BlockKind::ChorusFlower => true, + BlockKind::LimeWool => false, + BlockKind::AcaciaLog => false, + BlockKind::Calcite => false, + BlockKind::AttachedMelonStem => true, + BlockKind::LightWeightedPressurePlate => true, + BlockKind::DeepslateTileStairs => false, + BlockKind::Fern => true, + BlockKind::BrainCoralBlock => false, + BlockKind::PottedCrimsonRoots => true, + BlockKind::AndesiteWall => false, + BlockKind::OakLog => false, + BlockKind::Sandstone => false, + BlockKind::RedBed => true, + BlockKind::BlackWool => false, + BlockKind::WaxedOxidizedCutCopper => false, + BlockKind::Stonecutter => false, + BlockKind::DriedKelpBlock => false, + BlockKind::IronBlock => false, + } + } +} +impl BlockKind { + #[doc = "Returns the `default_state_id` property of this `BlockKind`."] + #[inline] + pub fn default_state_id(&self) -> u16 { + match self { + BlockKind::Seagrass => 1401u16, + BlockKind::AcaciaTrapdoor => 4451u16, + BlockKind::SoulSand => 4069u16, + BlockKind::AmethystCluster => 17675u16, + BlockKind::MagmaBlock => 9503u16, + BlockKind::StoneBricks => 4564u16, + BlockKind::BrownShulkerBox => 9604u16, + BlockKind::OrangeConcretePowder => 9705u16, + BlockKind::OakLog => 77u16, + BlockKind::DarkOakSlab => 8583u16, + BlockKind::Sponge => 260u16, + BlockKind::Chain => 4801u16, + BlockKind::DeadTubeCoralBlock => 9760u16, + BlockKind::YellowWallBanner => 8419u16, + BlockKind::MagentaStainedGlassPane => 7176u16, + BlockKind::JungleWood => 122u16, + BlockKind::InfestedCrackedStoneBricks => 4572u16, + BlockKind::IronDoor => 3887u16, + BlockKind::RedGlazedTerracotta => 9680u16, + BlockKind::ExposedCopper => 17816u16, + BlockKind::DeadBush => 1400u16, + BlockKind::AndesiteStairs => 10730u16, + BlockKind::Basalt => 4072u16, + BlockKind::StoneSlab => 8589u16, + BlockKind::OrangeShulkerBox => 9538u16, + BlockKind::RedTerracotta => 7079u16, + BlockKind::PurpleBed => 1244u16, + BlockKind::WaxedCutCopperSlab => 18517u16, + BlockKind::EndStoneBrickSlab => 11072u16, + BlockKind::DeepslateTileWall => 19598u16, + BlockKind::BrownGlazedTerracotta => 9672u16, + BlockKind::GrayWool => 1447u16, + BlockKind::StrippedWarpedStem => 15216u16, + BlockKind::CyanCandleCake => 17651u16, + BlockKind::BrainCoralWallFan => 9858u16, + BlockKind::SeaPickle => 9890u16, + BlockKind::Repeater => 4103u16, + BlockKind::RedSandstoneWall => 11768u16, + BlockKind::CandleCake => 17631u16, + BlockKind::GlowLichen => 5020u16, + BlockKind::BlueCarpet => 8127u16, + BlockKind::AcaciaLeaves => 217u16, + BlockKind::MagentaShulkerBox => 9544u16, + BlockKind::BlueConcrete => 9699u16, + BlockKind::NetherBricks => 5216u16, + BlockKind::BlueIce => 9898u16, + BlockKind::BambooSapling => 9901u16, + BlockKind::PottedPoppy => 6520u16, + BlockKind::Observer => 9515u16, + BlockKind::BlackConcrete => 9703u16, + BlockKind::PottedCrimsonFungus => 16088u16, + BlockKind::WaxedWeatheredCopper => 18169u16, + BlockKind::PlayerHead => 6756u16, + BlockKind::StrippedBirchWood => 137u16, + BlockKind::MagentaBed => 1116u16, + BlockKind::Sand => 66u16, + BlockKind::RedstoneTorch => 3956u16, + BlockKind::RedCandle => 17601u16, + BlockKind::OrangeBanner => 8163u16, + BlockKind::BirchSlab => 8565u16, + BlockKind::WhiteTulip => 1475u16, + BlockKind::SpruceSign => 3471u16, + BlockKind::PottedWhiteTulip => 6526u16, + BlockKind::DeadTubeCoral => 9770u16, + BlockKind::BubbleCoralWallFan => 9866u16, + BlockKind::MagentaWool => 1442u16, + BlockKind::WitherRose => 1479u16, + BlockKind::TurtleEgg => 9748u16, + BlockKind::WeatheredCutCopper => 17821u16, + BlockKind::BlueConcretePowder => 9715u16, + BlockKind::WarpedFungus => 15225u16, + BlockKind::PrismarineBricks => 7852u16, + BlockKind::Cactus => 4000u16, + BlockKind::Terracotta => 8132u16, + BlockKind::BlackstoneSlab => 16501u16, + BlockKind::YellowGlazedTerracotta => 9640u16, + BlockKind::BlackstoneWall => 16177u16, + BlockKind::GreenShulkerBox => 9610u16, + BlockKind::BlackGlazedTerracotta => 9684u16, + BlockKind::Blackstone => 16093u16, + BlockKind::LightBlueGlazedTerracotta => 9636u16, + BlockKind::GrayBed => 1196u16, + BlockKind::RedstoneOre => 3953u16, + BlockKind::WeepingVines => 15244u16, + BlockKind::Fern => 1399u16, + BlockKind::SpruceDoor => 8999u16, + BlockKind::RedTulip => 1473u16, + BlockKind::LightGrayWallBanner => 8435u16, + BlockKind::CutCopper => 17823u16, + BlockKind::CobblestoneSlab => 8619u16, + BlockKind::AcaciaWood => 125u16, + BlockKind::StrippedWarpedHyphae => 15222u16, + BlockKind::MagentaBanner => 8179u16, + BlockKind::EndRod => 9312u16, + BlockKind::TwistingVinesPlant => 15297u16, + BlockKind::CutSandstone => 280u16, + BlockKind::WhiteGlazedTerracotta => 9624u16, + BlockKind::Cornflower => 1478u16, + BlockKind::DarkOakPlanks => 20u16, + BlockKind::SmoothStoneSlab => 8595u16, + BlockKind::PointedDripstone => 18549u16, + BlockKind::DarkOakSign => 3599u16, + BlockKind::MossyStoneBrickWall => 12092u16, + BlockKind::PottedRedTulip => 6524u16, + BlockKind::DeadTubeCoralWallFan => 9810u16, + BlockKind::FloweringAzalea => 18621u16, + BlockKind::WaxedExposedCutCopperStairs => 18347u16, + BlockKind::SmoothSandstoneSlab => 11078u16, + BlockKind::AzureBluet => 1472u16, + BlockKind::HornCoral => 9788u16, + BlockKind::Bell => 15105u16, + BlockKind::CyanGlazedTerracotta => 9660u16, + BlockKind::DarkOakTrapdoor => 4515u16, + BlockKind::WarpedStem => 15213u16, + BlockKind::IronOre => 71u16, + BlockKind::GreenBanner => 8355u16, + BlockKind::BlueWallBanner => 8447u16, + BlockKind::BubbleCoralBlock => 9767u16, + BlockKind::CrimsonDoor => 15792u16, + BlockKind::PrismarineStairs => 7865u16, + BlockKind::Bookshelf => 1488u16, + BlockKind::DragonHead => 6796u16, + BlockKind::PumpkinStem => 4845u16, + BlockKind::NetherWart => 5329u16, + BlockKind::Stone => 1u16, + BlockKind::LimeStainedGlassPane => 7272u16, + BlockKind::SoulSoil => 4070u16, + BlockKind::EnchantingTable => 5333u16, + BlockKind::SmoothStone => 8664u16, + BlockKind::LargeAmethystBud => 17687u16, + BlockKind::EndStone => 5359u16, + BlockKind::LimeBed => 1164u16, + BlockKind::PottedFern => 6518u16, + BlockKind::HornCoralFan => 9808u16, + BlockKind::HayBlock => 8114u16, + BlockKind::PottedDeadBush => 6534u16, + BlockKind::CarvedPumpkin => 4085u16, + BlockKind::BrownConcrete => 9700u16, + BlockKind::GoldOre => 69u16, + BlockKind::BlackStainedGlass => 4179u16, + BlockKind::OakSlab => 8553u16, + BlockKind::PinkStainedGlassPane => 7304u16, + BlockKind::NetherBrickWall => 13064u16, + BlockKind::SoulCampfire => 15179u16, + BlockKind::GreenConcretePowder => 9717u16, + BlockKind::PottedWitherRose => 6531u16, + BlockKind::LimeCandle => 17457u16, + BlockKind::DarkOakWallSign => 3843u16, + BlockKind::Granite => 2u16, + BlockKind::CutCopperStairs => 18075u16, + BlockKind::DeepslateLapisOre => 264u16, + BlockKind::LavaCauldron => 5346u16, + BlockKind::LightGrayTerracotta => 7073u16, + BlockKind::WarpedSign => 15942u16, + BlockKind::AmethystBlock => 17664u16, + BlockKind::YellowConcrete => 9692u16, + BlockKind::JunglePlanks => 18u16, + BlockKind::PolishedDeepslateWall => 19187u16, + BlockKind::QuartzBlock => 6944u16, + BlockKind::RedCarpet => 8130u16, + BlockKind::QuartzPillar => 6947u16, + BlockKind::SandstoneWall => 14036u16, + BlockKind::SoulTorch => 4077u16, + BlockKind::IronBars => 4797u16, + BlockKind::WhiteShulkerBox => 9532u16, + BlockKind::LightGrayCandle => 17505u16, + BlockKind::WaxedExposedCutCopper => 18174u16, + BlockKind::PottedAllium => 6522u16, + BlockKind::CyanConcretePowder => 9713u16, + BlockKind::Scaffolding => 15036u16, + BlockKind::Furnace => 3431u16, + BlockKind::DarkPrismarine => 7853u16, + BlockKind::DeepslateTileSlab => 19592u16, + BlockKind::RedSandstoneSlab => 8649u16, + BlockKind::SugarCane => 4017u16, + BlockKind::InfestedDeepslate => 20334u16, + BlockKind::AttachedMelonStem => 4841u16, + BlockKind::GreenBed => 1292u16, + BlockKind::Azalea => 18620u16, + BlockKind::DeadBrainCoralFan => 9792u16, + BlockKind::RedNetherBrickStairs => 10810u16, + BlockKind::MossyCobblestoneSlab => 11066u16, + BlockKind::LimeConcretePowder => 9709u16, + BlockKind::CyanCarpet => 8125u16, + BlockKind::CobbledDeepslate => 18686u16, + BlockKind::NetherSprouts => 15228u16, + BlockKind::Comparator => 6885u16, + BlockKind::Netherrack => 4068u16, + BlockKind::SnowBlock => 3999u16, + BlockKind::GrayCandleCake => 17647u16, + BlockKind::ChainCommandBlock => 9493u16, + BlockKind::CobbledDeepslateWall => 18776u16, + BlockKind::CyanBed => 1228u16, + BlockKind::Sunflower => 8136u16, + BlockKind::DeadFireCoralFan => 9796u16, + BlockKind::PinkBed => 1180u16, + BlockKind::BirchFence => 8891u16, + BlockKind::BlackBed => 1324u16, + BlockKind::StrippedOakLog => 110u16, + BlockKind::CrackedDeepslateTiles => 20332u16, + BlockKind::BrainCoral => 9782u16, + BlockKind::GrayStainedGlassPane => 7336u16, + BlockKind::WaxedExposedCopper => 18170u16, + BlockKind::CartographyTable => 15069u16, + BlockKind::PurpleTerracotta => 7075u16, + BlockKind::DeepslateDiamondOre => 3411u16, + BlockKind::OakTrapdoor => 4195u16, + BlockKind::Candle => 17361u16, + BlockKind::CraftingTable => 3413u16, + BlockKind::LightGrayGlazedTerracotta => 9656u16, + BlockKind::Bamboo => 9902u16, + BlockKind::EmeraldOre => 5455u16, + BlockKind::PolishedDeepslate => 19097u16, + BlockKind::MossyCobblestone => 1489u16, + BlockKind::CrimsonFungus => 15242u16, + BlockKind::PottedJungleSapling => 6515u16, + BlockKind::Tnt => 1487u16, + BlockKind::BigDripleafStem => 18657u16, + BlockKind::BlueTerracotta => 7076u16, + BlockKind::WarpedRoots => 15227u16, + BlockKind::LightBlueCandle => 17425u16, + BlockKind::MagentaTerracotta => 7067u16, + BlockKind::Calcite => 17715u16, + BlockKind::OakDoor => 3641u16, + BlockKind::DeadBrainCoralWallFan => 9818u16, + BlockKind::PistonHead => 1418u16, + BlockKind::PlayerWallHead => 6772u16, + BlockKind::PottedRedMushroom => 6532u16, + BlockKind::RedSandstone => 8467u16, + BlockKind::LightGrayConcrete => 9696u16, + BlockKind::OrangeCandleCake => 17635u16, + BlockKind::JungleTrapdoor => 4387u16, + BlockKind::NetherPortal => 4083u16, + BlockKind::Carrots => 6536u16, + BlockKind::FireCoral => 9786u16, + BlockKind::RawCopperBlock => 20338u16, + BlockKind::WaxedWeatheredCutCopperSlab => 18505u16, + BlockKind::OakSapling => 21u16, + BlockKind::LightWeightedPressurePlate => 6852u16, + BlockKind::LightBlueWool => 1443u16, + BlockKind::DarkOakLeaves => 231u16, + BlockKind::EnderChest => 5458u16, + BlockKind::BlueStainedGlassPane => 7464u16, + BlockKind::DeepslateBrickWall => 20009u16, + BlockKind::PurpleCarpet => 8126u16, + BlockKind::GrassBlock => 9u16, + BlockKind::CoarseDirt => 11u16, + BlockKind::WhiteTerracotta => 7065u16, + BlockKind::YellowShulkerBox => 9556u16, + BlockKind::GreenGlazedTerracotta => 9676u16, + BlockKind::Sandstone => 278u16, + BlockKind::PottedDarkOakSapling => 6517u16, + BlockKind::QuartzBricks => 17357u16, + BlockKind::WaxedOxidizedCutCopperStairs => 18187u16, + BlockKind::HeavyWeightedPressurePlate => 6868u16, + BlockKind::SandstoneSlab => 8601u16, + BlockKind::SmoothQuartzStairs => 10570u16, + BlockKind::SoulLantern => 15143u16, + BlockKind::RawGoldBlock => 20339u16, + BlockKind::JungleButton => 6633u16, + BlockKind::Glass => 262u16, + BlockKind::StrippedJungleLog => 101u16, + BlockKind::MelonStem => 4853u16, + BlockKind::AcaciaFence => 8955u16, + BlockKind::YellowCarpet => 8120u16, + BlockKind::GraniteWall => 12416u16, + BlockKind::BirchWood => 119u16, + BlockKind::LimeCarpet => 8121u16, + BlockKind::Composter => 16005u16, + BlockKind::Lever => 3859u16, + BlockKind::Ladder => 3695u16, + BlockKind::FletchingTable => 15070u16, + BlockKind::WarpedStairs => 15664u16, + BlockKind::CrimsonStairs => 15584u16, + BlockKind::OakPressurePlate => 3941u16, + BlockKind::RespawnAnchor => 16083u16, + BlockKind::BrickWall => 11120u16, + BlockKind::GrayCandle => 17489u16, + BlockKind::PurpleCandleCake => 17653u16, + BlockKind::BuddingAmethyst => 17665u16, + BlockKind::LimeCandleCake => 17643u16, + BlockKind::CyanWallBanner => 8439u16, + BlockKind::WhiteWool => 1440u16, + BlockKind::AcaciaDoor => 9191u16, + BlockKind::LapisOre => 263u16, + BlockKind::PurpleShulkerBox => 9592u16, + BlockKind::CaveAir => 9916u16, + BlockKind::PinkCarpet => 8122u16, + BlockKind::YellowWool => 1444u16, + BlockKind::BirchWallSign => 3819u16, + BlockKind::PrismarineBrickStairs => 7945u16, + BlockKind::InfestedMossyStoneBricks => 4571u16, + BlockKind::BirchPlanks => 17u16, + BlockKind::JungleFenceGate => 8739u16, + BlockKind::PolishedBlackstoneBrickWall => 16597u16, + BlockKind::AndesiteWall => 13388u16, + BlockKind::DeepslateIronOre => 72u16, + BlockKind::StructureBlock => 15990u16, + BlockKind::YellowCandle => 17441u16, + BlockKind::FrostedIce => 9499u16, + BlockKind::CyanCandle => 17521u16, + BlockKind::Spawner => 2009u16, + BlockKind::DeepslateCopperOre => 17819u16, + BlockKind::RedNetherBrickWall => 13712u16, + BlockKind::CaveVinesPlant => 18618u16, + BlockKind::DetectorRail => 1374u16, + BlockKind::RoseBush => 8140u16, + BlockKind::OakSign => 3439u16, + BlockKind::HoneycombBlock => 16079u16, + BlockKind::CrackedPolishedBlackstoneBricks => 16506u16, + BlockKind::BirchStairs => 5701u16, + BlockKind::DeadBrainCoral => 9772u16, + BlockKind::PolishedGraniteStairs => 9930u16, + BlockKind::WarpedTrapdoor => 15460u16, + BlockKind::ZombieWallHead => 6752u16, + BlockKind::PinkBanner => 8243u16, + BlockKind::Hopper => 6934u16, + BlockKind::Loom => 15037u16, + BlockKind::WaxedCutCopperStairs => 18427u16, + BlockKind::JungleSlab => 8571u16, + BlockKind::PottedWarpedFungus => 16089u16, + BlockKind::OrangeTerracotta => 7066u16, + BlockKind::JungleDoor => 9127u16, + BlockKind::DarkOakDoor => 9255u16, + BlockKind::LimeTerracotta => 7070u16, + BlockKind::LightBlueConcrete => 9691u16, + BlockKind::LilyPad => 5215u16, + BlockKind::Tripwire => 5608u16, + BlockKind::NetherBrickSlab => 8637u16, + BlockKind::PolishedBlackstone => 16504u16, + BlockKind::BrickSlab => 8625u16, + BlockKind::RawIronBlock => 20337u16, + BlockKind::DarkPrismarineStairs => 8025u16, + BlockKind::SoulWallTorch => 4078u16, + BlockKind::MagentaCarpet => 8118u16, + BlockKind::OakLeaves => 161u16, + BlockKind::DeepslateBrickStairs => 19931u16, + BlockKind::PinkConcretePowder => 9710u16, + BlockKind::GildedBlackstone => 16918u16, + BlockKind::Dropper => 7054u16, + BlockKind::SmoothQuartzSlab => 11084u16, + BlockKind::WitherSkeletonWallSkull => 6732u16, + BlockKind::PowderSnowCauldron => 5347u16, + BlockKind::Ice => 3998u16, + BlockKind::PurpleWallBanner => 8443u16, + BlockKind::Gravel => 68u16, + BlockKind::BlueBanner => 8323u16, + BlockKind::LightBlueCandleCake => 17639u16, + BlockKind::EndPortalFrame => 5355u16, + BlockKind::LightBlueBanner => 8195u16, + BlockKind::DeadHornCoralFan => 9798u16, + BlockKind::AzaleaLeaves => 245u16, + BlockKind::DeepslateTileStairs => 19520u16, + BlockKind::CutRedSandstoneSlab => 8655u16, + BlockKind::PinkTulip => 1476u16, + BlockKind::SmoothSandstone => 8665u16, + BlockKind::BlackstoneStairs => 16105u16, + BlockKind::EmeraldBlock => 5609u16, + BlockKind::Peony => 8142u16, + BlockKind::OrangeBed => 1100u16, + BlockKind::Snow => 3990u16, + BlockKind::PinkStainedGlass => 4170u16, + BlockKind::BigDripleaf => 18625u16, + BlockKind::Beehive => 16054u16, + BlockKind::GrayStainedGlass => 4171u16, + BlockKind::StoneBrickStairs => 5144u16, + BlockKind::Cake => 4093u16, + BlockKind::LilyOfTheValley => 1480u16, + BlockKind::OakStairs => 2021u16, + BlockKind::BrownWallBanner => 8451u16, + BlockKind::Dirt => 10u16, + BlockKind::LightBlueTerracotta => 7068u16, + BlockKind::RedStainedGlassPane => 7560u16, + BlockKind::Melon => 4836u16, + BlockKind::PurpurStairs => 9399u16, + BlockKind::PurpleWool => 1450u16, + BlockKind::Shroomlight => 15243u16, + BlockKind::Water => 34u16, + BlockKind::WhiteStainedGlass => 4164u16, + BlockKind::DragonWallHead => 6812u16, + BlockKind::TallSeagrass => 1403u16, + BlockKind::JungleWallSign => 3835u16, + BlockKind::InfestedStone => 4568u16, + BlockKind::OrangeCarpet => 8117u16, + BlockKind::QuartzSlab => 8643u16, + BlockKind::MossyStoneBricks => 4565u16, + BlockKind::WaterCauldron => 5343u16, + BlockKind::SpruceButton => 6585u16, + BlockKind::BlackBanner => 8387u16, + BlockKind::AncientDebris => 16081u16, + BlockKind::PottedAzaleaBush => 20340u16, + BlockKind::ActivatorRail => 7042u16, + BlockKind::OakButton => 6561u16, + BlockKind::WhiteCandleCake => 17633u16, + BlockKind::WaxedExposedCutCopperSlab => 18511u16, + BlockKind::DeadBubbleCoralFan => 9794u16, + BlockKind::TubeCoralBlock => 9765u16, + BlockKind::WarpedPressurePlate => 15316u16, + BlockKind::VoidAir => 9915u16, + BlockKind::WaxedOxidizedCutCopper => 18172u16, + BlockKind::TubeCoralWallFan => 9850u16, + BlockKind::WarpedPlanks => 15300u16, + BlockKind::BubbleCoralFan => 9804u16, + BlockKind::WarpedSlab => 15310u16, + BlockKind::AcaciaFenceGate => 8771u16, + BlockKind::WhiteCandle => 17377u16, + BlockKind::DragonEgg => 5360u16, + BlockKind::WhiteConcretePowder => 9704u16, + BlockKind::DioriteWall => 14684u16, + BlockKind::MagentaConcrete => 9690u16, + BlockKind::LimeBanner => 8227u16, + BlockKind::BrewingStand => 5341u16, + BlockKind::CrimsonSlab => 15304u16, + BlockKind::PolishedBlackstoneBrickStairs => 16525u16, + BlockKind::IronTrapdoor => 7802u16, + BlockKind::StrippedOakWood => 131u16, + BlockKind::CryingObsidian => 16082u16, + BlockKind::DeepslateBricks => 19919u16, + BlockKind::MossCarpet => 18622u16, + BlockKind::EndStoneBrickWall => 14360u16, + BlockKind::OxidizedCutCopper => 17820u16, + BlockKind::AndesiteSlab => 11096u16, + BlockKind::Clay => 4016u16, + BlockKind::MagentaStainedGlass => 4166u16, + BlockKind::Cocoa => 5363u16, + BlockKind::BrownTerracotta => 7077u16, + BlockKind::StonePressurePlate => 3875u16, + BlockKind::AcaciaSlab => 8577u16, + BlockKind::DarkOakFenceGate => 8803u16, + BlockKind::DeepslateTiles => 19508u16, + BlockKind::BirchLeaves => 189u16, + BlockKind::StrippedDarkOakLog => 107u16, + BlockKind::FlowerPot => 6511u16, + BlockKind::WarpedWartBlock => 15226u16, + BlockKind::LightBlueWallBanner => 8415u16, + BlockKind::AcaciaLog => 89u16, + BlockKind::LightningRod => 18539u16, + BlockKind::BrownStainedGlass => 4176u16, + BlockKind::PurpurSlab => 8661u16, + BlockKind::DioriteStairs => 10970u16, + BlockKind::PottedAzureBluet => 6523u16, + BlockKind::Rail => 3703u16, + BlockKind::PinkTerracotta => 7071u16, + BlockKind::PurpleStainedGlass => 4174u16, + BlockKind::CrimsonStem => 15230u16, + BlockKind::OxidizedCutCopperStairs => 17835u16, + BlockKind::BirchTrapdoor => 4323u16, + BlockKind::PolishedBlackstoneWall => 17034u16, + BlockKind::PowderSnow => 17717u16, + BlockKind::LimeStainedGlass => 4169u16, + BlockKind::DeadHornCoralBlock => 9764u16, + BlockKind::PolishedDeepslateSlab => 19181u16, + BlockKind::SpruceSlab => 8559u16, + BlockKind::BlackConcretePowder => 9719u16, + BlockKind::DaylightDetector => 6916u16, + BlockKind::JunglePressurePlate => 3947u16, + BlockKind::CreeperHead => 6776u16, + BlockKind::BirchSapling => 25u16, + BlockKind::LightBlueShulkerBox => 9550u16, + BlockKind::OrangeStainedGlass => 4165u16, + BlockKind::RepeatingCommandBlock => 9481u16, + BlockKind::Potatoes => 6544u16, + BlockKind::MossyCobblestoneWall => 6190u16, + BlockKind::LightBlueBed => 1132u16, + BlockKind::YellowStainedGlass => 4168u16, + BlockKind::RedstoneBlock => 6932u16, + BlockKind::DiamondBlock => 3412u16, + BlockKind::RedStainedGlass => 4178u16, + BlockKind::BlackCandle => 17617u16, + BlockKind::JungleSign => 3567u16, + BlockKind::FireCoralFan => 9806u16, + BlockKind::SkeletonSkull => 6696u16, + BlockKind::SeaLantern => 8112u16, + BlockKind::Chest => 2091u16, + BlockKind::PolishedDioriteStairs => 10170u16, + BlockKind::MossyStoneBrickStairs => 10090u16, + BlockKind::AcaciaPlanks => 19u16, + BlockKind::JungleFence => 8923u16, + BlockKind::CobblestoneStairs => 3733u16, + BlockKind::GreenCandle => 17585u16, + BlockKind::GreenWool => 1453u16, + BlockKind::Allium => 1471u16, + BlockKind::Barrier => 7754u16, + BlockKind::RedSand => 67u16, + BlockKind::AcaciaSign => 3535u16, + BlockKind::Vine => 4892u16, + BlockKind::SlimeBlock => 7753u16, + BlockKind::SmoothRedSandstoneStairs => 10010u16, + BlockKind::DeepslateCoalOre => 74u16, + BlockKind::Fire => 1527u16, + BlockKind::PottedAcaciaSapling => 6516u16, + BlockKind::LightGrayCarpet => 8124u16, + BlockKind::OrangeConcrete => 9689u16, + BlockKind::Cauldron => 5342u16, + BlockKind::PottedWarpedRoots => 16091u16, + BlockKind::YellowTerracotta => 7069u16, + BlockKind::GlassPane => 4835u16, + BlockKind::BrownBanner => 8339u16, + BlockKind::OrangeWallBanner => 8407u16, + BlockKind::HoneyBlock => 16078u16, + BlockKind::CrimsonNylium => 15241u16, + BlockKind::CrimsonRoots => 15298u16, + BlockKind::SpruceLog => 80u16, + BlockKind::DiamondOre => 3410u16, + BlockKind::EndStoneBricks => 9468u16, + BlockKind::CyanShulkerBox => 9586u16, + BlockKind::WaxedOxidizedCutCopperSlab => 18499u16, + BlockKind::CommandBlock => 5856u16, + BlockKind::Mycelium => 5214u16, + BlockKind::Barrel => 15042u16, + BlockKind::StrippedSpruceLog => 95u16, + BlockKind::MovingPiston => 1456u16, + BlockKind::PinkWool => 1446u16, + BlockKind::Kelp => 9720u16, + BlockKind::CrimsonPlanks => 15299u16, + BlockKind::TallGrass => 8144u16, + BlockKind::SpruceWood => 116u16, + BlockKind::PottedLilyOfTheValley => 6530u16, + BlockKind::GrayShulkerBox => 9574u16, + BlockKind::YellowStainedGlassPane => 7240u16, + BlockKind::LimeWool => 1445u16, + BlockKind::PottedCactus => 6535u16, + BlockKind::PolishedGranite => 3u16, + BlockKind::LimeWallBanner => 8423u16, + BlockKind::WhiteWallBanner => 8403u16, + BlockKind::WetSponge => 261u16, + BlockKind::CrimsonHyphae => 15236u16, + BlockKind::SpruceLeaves => 175u16, + BlockKind::SpruceWallSign => 3811u16, + BlockKind::PolishedDiorite => 5u16, + BlockKind::PrismarineBrickSlab => 8103u16, + BlockKind::RedstoneWire => 3274u16, + BlockKind::GreenCarpet => 8129u16, + BlockKind::PurpleCandle => 17537u16, + BlockKind::SpruceFenceGate => 8675u16, + BlockKind::StrippedJungleWood => 140u16, + BlockKind::StoneButton => 3975u16, + BlockKind::BlackWool => 1455u16, + BlockKind::DeepslateRedstoneOre => 3955u16, + BlockKind::OxidizedCutCopperSlab => 18147u16, + BlockKind::WeatheredCutCopperStairs => 17915u16, + BlockKind::Lantern => 15139u16, + BlockKind::PottedPinkTulip => 6527u16, + BlockKind::Lilac => 8138u16, + BlockKind::DeadTubeCoralFan => 9790u16, + BlockKind::DeepslateGoldOre => 70u16, + BlockKind::OrangeTulip => 1474u16, + BlockKind::PurpleConcretePowder => 9714u16, + BlockKind::BlueWool => 1451u16, + BlockKind::CrimsonPressurePlate => 15314u16, + BlockKind::GreenConcrete => 9701u16, + BlockKind::Air => 0u16, + BlockKind::SandstoneStairs => 5386u16, + BlockKind::WhiteBanner => 8147u16, + BlockKind::PurpurPillar => 9386u16, + BlockKind::GrayGlazedTerracotta => 9652u16, + BlockKind::Stonecutter => 15100u16, + BlockKind::Tuff => 17714u16, + BlockKind::CutCopperSlab => 18165u16, + BlockKind::DamagedAnvil => 6824u16, + BlockKind::StoneStairs => 10410u16, + BlockKind::WhiteBed => 1084u16, + BlockKind::Prismarine => 7851u16, + BlockKind::IronBlock => 1484u16, + BlockKind::BrownWool => 1452u16, + BlockKind::SkeletonWallSkull => 6712u16, + BlockKind::PottedCornflower => 6529u16, + BlockKind::CrimsonFence => 15348u16, + BlockKind::CrimsonFenceGate => 15516u16, + BlockKind::CrackedNetherBricks => 17356u16, + BlockKind::Jigsaw => 16003u16, + BlockKind::BlueStainedGlass => 4175u16, + BlockKind::Light => 7786u16, + BlockKind::LightGrayCandleCake => 17649u16, + BlockKind::BrownConcretePowder => 9716u16, + BlockKind::PolishedBlackstoneBrickSlab => 16511u16, + BlockKind::ChiseledDeepslate => 20330u16, + BlockKind::DioriteSlab => 11114u16, + BlockKind::PackedIce => 8134u16, + BlockKind::LightBlueStainedGlass => 4167u16, + BlockKind::DeepslateEmeraldOre => 5456u16, + BlockKind::LightBlueStainedGlassPane => 7208u16, + BlockKind::MagentaConcretePowder => 9706u16, + BlockKind::RedConcretePowder => 9718u16, + BlockKind::LightGrayStainedGlassPane => 7368u16, + BlockKind::SprucePressurePlate => 3943u16, + BlockKind::GrayConcrete => 9695u16, + BlockKind::DriedKelpBlock => 9747u16, + BlockKind::PolishedBlackstoneStairs => 16930u16, + BlockKind::DeadHornCoral => 9778u16, + BlockKind::MagentaGlazedTerracotta => 9632u16, + BlockKind::PolishedAndesiteStairs => 10890u16, + BlockKind::Glowstone => 4082u16, + BlockKind::CobblestoneWall => 5866u16, + BlockKind::CoalBlock => 8133u16, + BlockKind::PurpleBanner => 8307u16, + BlockKind::StickyPiston => 1391u16, + BlockKind::Cobblestone => 14u16, + BlockKind::InfestedChiseledStoneBricks => 4573u16, + BlockKind::MagentaWallBanner => 8411u16, + BlockKind::CaveVines => 18566u16, + BlockKind::WarpedNylium => 15224u16, + BlockKind::DeepslateBrickSlab => 20003u16, + BlockKind::ChiseledStoneBricks => 4567u16, + BlockKind::CoalOre => 73u16, + BlockKind::DeadBrainCoralBlock => 9761u16, + BlockKind::DarkOakPressurePlate => 3951u16, + BlockKind::BrownBed => 1276u16, + BlockKind::Beacon => 5862u16, + BlockKind::PurpleStainedGlassPane => 7432u16, + BlockKind::Obsidian => 1490u16, + BlockKind::JungleLog => 86u16, + BlockKind::CobbledDeepslateStairs => 18698u16, + BlockKind::PottedBirchSapling => 6514u16, + BlockKind::SmithingTable => 15099u16, + BlockKind::BubbleColumn => 9917u16, + BlockKind::PoweredRail => 1350u16, + BlockKind::Jukebox => 4034u16, + BlockKind::YellowConcretePowder => 9708u16, + BlockKind::NetherGoldOre => 75u16, + BlockKind::WitherSkeletonSkull => 6716u16, + BlockKind::OxidizedCopper => 17814u16, + BlockKind::TintedGlass => 17716u16, + BlockKind::PottedOakSapling => 6512u16, + BlockKind::FireCoralBlock => 9768u16, + BlockKind::PinkWallBanner => 8427u16, + BlockKind::YellowBanner => 8211u16, + BlockKind::LimeShulkerBox => 9562u16, + BlockKind::NoteBlock => 282u16, + BlockKind::RedstoneWallTorch => 3958u16, + BlockKind::Podzol => 13u16, + BlockKind::LightGrayBanner => 8275u16, + BlockKind::AcaciaButton => 6657u16, + BlockKind::PrismarineWall => 11444u16, + BlockKind::Deepslate => 18684u16, + BlockKind::PottedBrownMushroom => 6533u16, + BlockKind::PinkCandleCake => 17645u16, + BlockKind::BlackCarpet => 8131u16, + BlockKind::GrayBanner => 8259u16, + BlockKind::Anvil => 6816u16, + BlockKind::GreenStainedGlass => 4177u16, + BlockKind::SmoothBasalt => 20336u16, + BlockKind::DarkOakButton => 6681u16, + BlockKind::CyanTerracotta => 7074u16, + BlockKind::FireCoralWallFan => 9874u16, + BlockKind::Wheat => 3414u16, + BlockKind::PottedBlueOrchid => 6521u16, + BlockKind::BlueBed => 1260u16, + BlockKind::SmoothQuartz => 8666u16, + BlockKind::PolishedBlackstoneButton => 17016u16, + BlockKind::CrimsonButton => 15742u16, + BlockKind::BirchSign => 3503u16, + BlockKind::TubeCoralFan => 9800u16, + BlockKind::BirchLog => 83u16, + BlockKind::BirchFenceGate => 8707u16, + BlockKind::RedShulkerBox => 9616u16, + BlockKind::AcaciaSapling => 29u16, + BlockKind::OakPlanks => 15u16, + BlockKind::RedNetherBricks => 9505u16, + BlockKind::EndPortal => 5350u16, + BlockKind::PolishedDeepslateStairs => 19109u16, + BlockKind::CyanBanner => 8291u16, + BlockKind::EndGateway => 9474u16, + BlockKind::BrownMushroomBlock => 4574u16, + BlockKind::KelpPlant => 9746u16, + BlockKind::SmallDripleaf => 18667u16, + BlockKind::BlackStainedGlassPane => 7592u16, + BlockKind::OakFenceGate => 5028u16, + BlockKind::DeadFireCoralWallFan => 9834u16, + BlockKind::PolishedAndesite => 7u16, + BlockKind::BlueOrchid => 1470u16, + BlockKind::StrippedCrimsonHyphae => 15239u16, + BlockKind::SmoothRedSandstoneSlab => 11048u16, + BlockKind::LightGrayShulkerBox => 9580u16, + BlockKind::GreenCandleCake => 17659u16, + BlockKind::HornCoralWallFan => 9882u16, + BlockKind::InfestedStoneBricks => 4570u16, + BlockKind::CyanStainedGlass => 4173u16, + BlockKind::GrayWallBanner => 8431u16, + BlockKind::StrippedAcaciaLog => 104u16, + BlockKind::CopperBlock => 17817u16, + BlockKind::ExposedCutCopper => 17822u16, + BlockKind::DarkOakStairs => 7684u16, + BlockKind::DeadFireCoral => 9776u16, + BlockKind::OrangeGlazedTerracotta => 9628u16, + BlockKind::StrippedBirchLog => 98u16, + BlockKind::PurpleGlazedTerracotta => 9664u16, + BlockKind::NetheriteBlock => 16080u16, + BlockKind::WarpedDoor => 15856u16, + BlockKind::PolishedBlackstoneBricks => 16505u16, + BlockKind::PottedDandelion => 6519u16, + BlockKind::SprucePlanks => 16u16, + BlockKind::RedSandstoneStairs => 8481u16, + BlockKind::PurpleConcrete => 9698u16, + BlockKind::DarkOakWood => 128u16, + BlockKind::GraniteStairs => 10650u16, + BlockKind::QuartzStairs => 6960u16, + BlockKind::LightGrayBed => 1212u16, + BlockKind::WaxedOxidizedCopper => 18171u16, + BlockKind::MagentaCandle => 17409u16, + BlockKind::AcaciaWallSign => 3827u16, + BlockKind::AcaciaPressurePlate => 3949u16, + BlockKind::Torch => 1491u16, + BlockKind::GoldBlock => 1483u16, + BlockKind::JungleStairs => 5781u16, + BlockKind::AttachedPumpkinStem => 4837u16, + BlockKind::BrainCoralBlock => 9766u16, + BlockKind::BeeNest => 16030u16, + BlockKind::LapisBlock => 265u16, + BlockKind::Dispenser => 267u16, + BlockKind::RedMushroom => 1482u16, + BlockKind::GrayTerracotta => 7072u16, + BlockKind::BrownCandle => 17569u16, + BlockKind::SporeBlossom => 18619u16, + BlockKind::LightGrayStainedGlass => 4172u16, + BlockKind::Beetroots => 9469u16, + BlockKind::PottedCrimsonRoots => 16090u16, + BlockKind::LimeGlazedTerracotta => 9644u16, + BlockKind::StrippedDarkOakWood => 146u16, + BlockKind::LightGrayWool => 1448u16, + BlockKind::ChorusFlower => 9378u16, + BlockKind::OrangeStainedGlassPane => 7144u16, + BlockKind::RedBanner => 8371u16, + BlockKind::CrackedDeepslateBricks => 20331u16, + BlockKind::WarpedHyphae => 15219u16, + BlockKind::StrippedCrimsonStem => 15233u16, + BlockKind::JungleLeaves => 203u16, + BlockKind::YellowCandleCake => 17641u16, + BlockKind::SpruceStairs => 5621u16, + BlockKind::WarpedWallSign => 15982u16, + BlockKind::DarkOakFence => 8987u16, + BlockKind::TubeCoral => 9780u16, + BlockKind::CrimsonWallSign => 15974u16, + BlockKind::MossyCobblestoneStairs => 10250u16, + BlockKind::DeadBubbleCoralWallFan => 9826u16, + BlockKind::SpruceFence => 8859u16, + BlockKind::ChippedAnvil => 6820u16, + BlockKind::PolishedBlackstoneSlab => 17002u16, + BlockKind::GraniteSlab => 11090u16, + BlockKind::ChiseledSandstone => 279u16, + BlockKind::Piston => 1410u16, + BlockKind::RootedDirt => 18682u16, + BlockKind::DarkOakLog => 92u16, + BlockKind::JungleSapling => 27u16, + BlockKind::SpruceTrapdoor => 4259u16, + BlockKind::CutSandstoneSlab => 8607u16, + BlockKind::JackOLantern => 4089u16, + BlockKind::RedstoneLamp => 5362u16, + BlockKind::PinkCandle => 17473u16, + BlockKind::BlackWallBanner => 8463u16, + BlockKind::WeatheredCutCopperSlab => 18153u16, + BlockKind::PinkShulkerBox => 9568u16, + BlockKind::PottedOxeyeDaisy => 6528u16, + BlockKind::StrippedSpruceWood => 134u16, + BlockKind::Bedrock => 33u16, + BlockKind::StrippedAcaciaWood => 143u16, + BlockKind::WaxedCutCopper => 18175u16, + BlockKind::Diorite => 4u16, + BlockKind::RedWool => 1454u16, + BlockKind::BirchButton => 6609u16, + BlockKind::Pumpkin => 4067u16, + BlockKind::RedMushroomBlock => 4638u16, + BlockKind::GreenWallBanner => 8455u16, + BlockKind::StoneBrickWall => 12740u16, + BlockKind::WeatheredCopper => 17815u16, + BlockKind::DeadBubbleCoral => 9774u16, + BlockKind::PottedSpruceSapling => 6513u16, + BlockKind::StoneBrickSlab => 8631u16, + BlockKind::DarkOakSapling => 31u16, + BlockKind::Farmland => 3422u16, + BlockKind::CopperOre => 17818u16, + BlockKind::NetherWartBlock => 9504u16, + BlockKind::BlackCandleCake => 17663u16, + BlockKind::NetherBrickFence => 5248u16, + BlockKind::ZombieHead => 6736u16, + BlockKind::ChiseledNetherBricks => 17355u16, + BlockKind::WhiteCarpet => 8116u16, + BlockKind::SmoothRedSandstone => 8667u16, + BlockKind::RedBed => 1308u16, + BlockKind::DripstoneBlock => 18564u16, + BlockKind::WaxedWeatheredCutCopperStairs => 18267u16, + BlockKind::CreeperWallHead => 6792u16, + BlockKind::Lodestone => 16092u16, + BlockKind::Grindstone => 15075u16, + BlockKind::CyanConcrete => 9697u16, + BlockKind::FloweringAzaleaLeaves => 259u16, + BlockKind::AcaciaStairs => 7604u16, + BlockKind::DarkPrismarineSlab => 8109u16, + BlockKind::BlastFurnace => 15062u16, + BlockKind::TwistingVines => 15271u16, + BlockKind::DeadBubbleCoralBlock => 9762u16, + BlockKind::MossyStoneBrickSlab => 11054u16, + BlockKind::YellowBed => 1148u16, + BlockKind::SmallAmethystBud => 17711u16, + BlockKind::ShulkerBox => 9526u16, + BlockKind::Andesite => 6u16, + BlockKind::BlackShulkerBox => 9622u16, + BlockKind::ChiseledQuartzBlock => 6945u16, + BlockKind::WaxedCopperBlock => 18168u16, + BlockKind::Dandelion => 1468u16, + BlockKind::LightGrayConcretePowder => 9712u16, + BlockKind::ExposedCutCopperSlab => 18159u16, + BlockKind::DeadHornCoralWallFan => 9842u16, + BlockKind::Cobweb => 1397u16, + BlockKind::CrimsonSign => 15910u16, + BlockKind::PetrifiedOakSlab => 8613u16, + BlockKind::BlueShulkerBox => 9598u16, + BlockKind::HornCoralBlock => 9769u16, + BlockKind::BubbleCoral => 9784u16, + BlockKind::PottedOrangeTulip => 6525u16, + BlockKind::BrainCoralFan => 9802u16, + BlockKind::PolishedAndesiteSlab => 11108u16, + BlockKind::LightBlueCarpet => 8119u16, + BlockKind::WarpedButton => 15766u16, + BlockKind::MushroomStem => 4702u16, + BlockKind::RedCandleCake => 17661u16, + BlockKind::GreenStainedGlassPane => 7528u16, + BlockKind::BirchDoor => 9063u16, + BlockKind::PinkGlazedTerracotta => 9648u16, + BlockKind::Conduit => 9899u16, + BlockKind::CrimsonTrapdoor => 15396u16, + BlockKind::Target => 16014u16, + BlockKind::OakWood => 113u16, + BlockKind::BlueGlazedTerracotta => 9668u16, + BlockKind::WarpedFenceGate => 15548u16, + BlockKind::PurpurBlock => 9384u16, + BlockKind::PinkConcrete => 9694u16, + BlockKind::Campfire => 15147u16, + BlockKind::WarpedFence => 15380u16, + BlockKind::ChiseledPolishedBlackstone => 16507u16, + BlockKind::BlueCandleCake => 17655u16, + BlockKind::SpruceSapling => 23u16, + BlockKind::GrayCarpet => 8123u16, + BlockKind::MagentaCandleCake => 17637u16, + BlockKind::RedNetherBrickSlab => 11102u16, + BlockKind::SmoothSandstoneStairs => 10490u16, + BlockKind::MediumAmethystBud => 17699u16, + BlockKind::OxeyeDaisy => 1477u16, + BlockKind::LightBlueConcretePowder => 9707u16, + BlockKind::EndStoneBrickStairs => 10330u16, + BlockKind::CyanWool => 1449u16, + BlockKind::BlackTerracotta => 7080u16, + BlockKind::Bricks => 1485u16, + BlockKind::BrownStainedGlassPane => 7496u16, + BlockKind::DirtPath => 9473u16, + BlockKind::PolishedBlackstonePressurePlate => 17006u16, + BlockKind::TripwireHook => 5474u16, + BlockKind::CrackedStoneBricks => 4566u16, + BlockKind::BlueCandle => 17553u16, + BlockKind::TrappedChest => 6829u16, + BlockKind::GrayConcretePowder => 9711u16, + BlockKind::PolishedDioriteSlab => 11060u16, + BlockKind::ChorusPlant => 9377u16, + BlockKind::WeepingVinesPlant => 15270u16, + BlockKind::BrownCandleCake => 17657u16, + BlockKind::Lectern => 15086u16, + BlockKind::BrickStairs => 5064u16, + BlockKind::BoneBlock => 9507u16, + BlockKind::DeadFireCoralBlock => 9763u16, + BlockKind::Lava => 50u16, + BlockKind::RedWallBanner => 8459u16, + BlockKind::WhiteStainedGlassPane => 7112u16, + BlockKind::RedConcrete => 9702u16, + BlockKind::HangingRoots => 18681u16, + BlockKind::PolishedGraniteSlab => 11042u16, + BlockKind::PottedFloweringAzaleaBush => 20341u16, + BlockKind::PottedBamboo => 9914u16, + BlockKind::WhiteConcrete => 9688u16, + BlockKind::Grass => 1398u16, + BlockKind::Poppy => 1469u16, + BlockKind::ChiseledRedSandstone => 8468u16, + BlockKind::Smoker => 15054u16, + BlockKind::GreenTerracotta => 7078u16, + BlockKind::StructureVoid => 9509u16, + BlockKind::PrismarineSlab => 8097u16, + BlockKind::LargeFern => 8146u16, + BlockKind::CyanStainedGlassPane => 7400u16, + BlockKind::BirchPressurePlate => 3945u16, + BlockKind::OrangeCandle => 17393u16, + BlockKind::CutRedSandstone => 8469u16, + BlockKind::SculkSensor => 17719u16, + BlockKind::MossBlock => 18623u16, + BlockKind::CobbledDeepslateSlab => 18770u16, + BlockKind::SoulFire => 2008u16, + BlockKind::OakWallSign => 3803u16, + BlockKind::InfestedCobblestone => 4569u16, + BlockKind::ExposedCutCopperStairs => 17995u16, + BlockKind::WaxedWeatheredCutCopper => 18173u16, + BlockKind::NetherQuartzOre => 6933u16, + BlockKind::LimeConcrete => 9693u16, + BlockKind::SweetBerryBush => 15208u16, + BlockKind::OrangeWool => 1441u16, + BlockKind::OakFence => 4066u16, + BlockKind::NetherBrickStairs => 5260u16, + BlockKind::PolishedBasalt => 4075u16, + BlockKind::BrownCarpet => 8128u16, + BlockKind::BrownMushroom => 1481u16, + BlockKind::WallTorch => 1492u16, + } + } +} +impl BlockKind { + #[doc = "Returns the `min_state_id` property of this `BlockKind`."] + #[inline] + pub fn min_state_id(&self) -> u16 { + match self { + BlockKind::LilyOfTheValley => 1480u16, + BlockKind::EndStoneBrickStairs => 10319u16, + BlockKind::WallTorch => 1492u16, + BlockKind::BubbleCoralFan => 9804u16, + BlockKind::WaxedWeatheredCutCopperStairs => 18256u16, + BlockKind::DeadHornCoralBlock => 9764u16, + BlockKind::StrippedCrimsonHyphae => 15238u16, + BlockKind::PottedBrownMushroom => 6533u16, + BlockKind::WeatheredCutCopperSlab => 18150u16, + BlockKind::IronBlock => 1484u16, + BlockKind::LightGrayWallBanner => 8435u16, + BlockKind::Comparator => 6884u16, + BlockKind::HornCoralFan => 9808u16, + BlockKind::ChiseledPolishedBlackstone => 16507u16, + BlockKind::BlackCandle => 17614u16, + BlockKind::BlueBed => 1257u16, + BlockKind::LimeCarpet => 8121u16, + BlockKind::BlastFurnace => 15061u16, + BlockKind::CyanBed => 1225u16, + BlockKind::BlackBed => 1321u16, + BlockKind::StrippedWarpedStem => 15215u16, + BlockKind::WarpedFungus => 15225u16, + BlockKind::PinkBed => 1177u16, + BlockKind::OakStairs => 2010u16, + BlockKind::SandstoneWall => 14033u16, + BlockKind::AcaciaPlanks => 19u16, + BlockKind::SoulCampfire => 15176u16, + BlockKind::RedTulip => 1473u16, + BlockKind::CrackedStoneBricks => 4566u16, + BlockKind::BirchPressurePlate => 3944u16, + BlockKind::PrismarineSlab => 8094u16, + BlockKind::PinkShulkerBox => 9564u16, + BlockKind::WaxedWeatheredCutCopper => 18173u16, + BlockKind::RedSand => 67u16, + BlockKind::LimeBed => 1161u16, + BlockKind::BlackWool => 1455u16, + BlockKind::CrimsonSign => 15909u16, + BlockKind::AcaciaSapling => 29u16, + BlockKind::ExposedCutCopperSlab => 18156u16, + BlockKind::ChiseledDeepslate => 20330u16, + BlockKind::HayBlock => 8113u16, + BlockKind::Cauldron => 5342u16, + BlockKind::CutCopperSlab => 18162u16, + BlockKind::PottedAcaciaSapling => 6516u16, + BlockKind::PumpkinStem => 4845u16, + BlockKind::PottedPinkTulip => 6527u16, + BlockKind::StrippedAcaciaWood => 142u16, + BlockKind::BirchWood => 118u16, + BlockKind::RedSandstoneStairs => 8470u16, + BlockKind::CutSandstoneSlab => 8604u16, + BlockKind::YellowStainedGlass => 4168u16, + BlockKind::HangingRoots => 18680u16, + BlockKind::SpruceWood => 115u16, + BlockKind::Anvil => 6816u16, + BlockKind::PottedCrimsonRoots => 16090u16, + BlockKind::WhiteCandleCake => 17632u16, + BlockKind::Basalt => 4071u16, + BlockKind::JungleFence => 8892u16, + BlockKind::RedSandstoneWall => 11765u16, + BlockKind::PottedWhiteTulip => 6526u16, + BlockKind::SmoothSandstoneSlab => 11075u16, + BlockKind::BrownShulkerBox => 9600u16, + BlockKind::RedWallBanner => 8459u16, + BlockKind::DeadHornCoral => 9778u16, + BlockKind::WhiteWool => 1440u16, + BlockKind::Tnt => 1486u16, + BlockKind::HornCoral => 9788u16, + BlockKind::LargeAmethystBud => 17678u16, + BlockKind::DarkOakPlanks => 20u16, + BlockKind::BlackCandleCake => 17662u16, + BlockKind::EndStoneBrickSlab => 11069u16, + BlockKind::DragonWallHead => 6812u16, + BlockKind::BlueOrchid => 1470u16, + BlockKind::BlackWallBanner => 8463u16, + BlockKind::QuartzStairs => 6949u16, + BlockKind::CyanGlazedTerracotta => 9660u16, + BlockKind::BlueCandle => 17550u16, + BlockKind::BlackStainedGlassPane => 7561u16, + BlockKind::CreeperWallHead => 6792u16, + BlockKind::DeepslateBricks => 19919u16, + BlockKind::OrangeConcrete => 9689u16, + BlockKind::StickyPiston => 1385u16, + BlockKind::Ladder => 3694u16, + BlockKind::DeadFireCoralBlock => 9763u16, + BlockKind::CyanStainedGlassPane => 7369u16, + BlockKind::Bricks => 1485u16, + BlockKind::MossCarpet => 18622u16, + BlockKind::Dandelion => 1468u16, + BlockKind::CyanCandle => 17518u16, + BlockKind::BirchSapling => 25u16, + BlockKind::RedBanner => 8371u16, + BlockKind::InfestedCobblestone => 4569u16, + BlockKind::RedWool => 1454u16, + BlockKind::CrimsonSlab => 15301u16, + BlockKind::FireCoralWallFan => 9874u16, + BlockKind::DarkOakWallSign => 3842u16, + BlockKind::Candle => 17358u16, + BlockKind::PinkCandle => 17470u16, + BlockKind::DeepslateTileWall => 19595u16, + BlockKind::FloweringAzaleaLeaves => 246u16, + BlockKind::PottedPoppy => 6520u16, + BlockKind::BrownCandle => 17566u16, + BlockKind::PurpurBlock => 9384u16, + BlockKind::PolishedAndesite => 7u16, + BlockKind::CyanBanner => 8291u16, + BlockKind::Poppy => 1469u16, + BlockKind::LightBlueGlazedTerracotta => 9636u16, + BlockKind::StrippedCrimsonStem => 15232u16, + BlockKind::TurtleEgg => 9748u16, + BlockKind::DioriteWall => 14681u16, + BlockKind::DarkOakTrapdoor => 4500u16, + BlockKind::YellowCandle => 17438u16, + BlockKind::YellowCandleCake => 17640u16, + BlockKind::PrismarineBrickSlab => 8100u16, + BlockKind::DeadTubeCoralWallFan => 9810u16, + BlockKind::DeepslateBrickWall => 20006u16, + BlockKind::QuartzPillar => 6946u16, + BlockKind::Snow => 3990u16, + BlockKind::DarkPrismarineStairs => 8014u16, + BlockKind::PurpleCarpet => 8126u16, + BlockKind::RootedDirt => 18682u16, + BlockKind::Spawner => 2009u16, + BlockKind::DarkOakPressurePlate => 3950u16, + BlockKind::AcaciaFenceGate => 8764u16, + BlockKind::Glowstone => 4082u16, + BlockKind::LargeFern => 8145u16, + BlockKind::CutCopperStairs => 18064u16, + BlockKind::SpruceSapling => 23u16, + BlockKind::WhiteStainedGlass => 4164u16, + BlockKind::DeadBrainCoralFan => 9792u16, + BlockKind::RedstoneLamp => 5361u16, + BlockKind::LapisOre => 263u16, + BlockKind::BrickWall => 11117u16, + BlockKind::WhiteShulkerBox => 9528u16, + BlockKind::BlackShulkerBox => 9618u16, + BlockKind::AmethystCluster => 17666u16, + BlockKind::SmoothRedSandstoneSlab => 11045u16, + BlockKind::SkeletonSkull => 6696u16, + BlockKind::PolishedDeepslateStairs => 19098u16, + BlockKind::TintedGlass => 17716u16, + BlockKind::MagentaWallBanner => 8411u16, + BlockKind::YellowWallBanner => 8419u16, + BlockKind::BrownWallBanner => 8451u16, + BlockKind::AcaciaFence => 8924u16, + BlockKind::GreenConcrete => 9701u16, + BlockKind::BlackTerracotta => 7080u16, + BlockKind::ZombieWallHead => 6752u16, + BlockKind::WaxedCutCopperStairs => 18416u16, + BlockKind::BrownGlazedTerracotta => 9672u16, + BlockKind::Bedrock => 33u16, + BlockKind::LightWeightedPressurePlate => 6852u16, + BlockKind::StrippedAcaciaLog => 103u16, + BlockKind::PrismarineStairs => 7854u16, + BlockKind::LightGrayGlazedTerracotta => 9656u16, + BlockKind::CobbledDeepslateSlab => 18767u16, + BlockKind::Bamboo => 9902u16, + BlockKind::CrimsonStairs => 15573u16, + BlockKind::StrippedBirchLog => 97u16, + BlockKind::BirchTrapdoor => 4308u16, + BlockKind::PottedJungleSapling => 6515u16, + BlockKind::SugarCane => 4017u16, + BlockKind::GreenWool => 1453u16, + BlockKind::NetherWartBlock => 9504u16, + BlockKind::AcaciaStairs => 7593u16, + BlockKind::WeepingVines => 15244u16, + BlockKind::ChiseledNetherBricks => 17355u16, + BlockKind::Scaffolding => 15005u16, + BlockKind::TubeCoralFan => 9800u16, + BlockKind::LavaCauldron => 5346u16, + BlockKind::DarkPrismarineSlab => 8106u16, + BlockKind::RedNetherBricks => 9505u16, + BlockKind::WaxedCutCopperSlab => 18514u16, + BlockKind::PolishedBlackstoneBrickSlab => 16508u16, + BlockKind::LimeBanner => 8227u16, + BlockKind::GraniteStairs => 10639u16, + BlockKind::DetectorRail => 1361u16, + BlockKind::CrimsonFenceGate => 15509u16, + BlockKind::CrimsonTrapdoor => 15381u16, + BlockKind::InfestedCrackedStoneBricks => 4572u16, + BlockKind::Chain => 4798u16, + BlockKind::RedNetherBrickWall => 13709u16, + BlockKind::Granite => 2u16, + BlockKind::NetheriteBlock => 16080u16, + BlockKind::EndStoneBrickWall => 14357u16, + BlockKind::NetherWart => 5329u16, + BlockKind::CobblestoneWall => 5863u16, + BlockKind::RedStainedGlassPane => 7529u16, + BlockKind::OxidizedCutCopper => 17820u16, + BlockKind::Stone => 1u16, + BlockKind::DeepslateCoalOre => 74u16, + BlockKind::QuartzBlock => 6944u16, + BlockKind::Carrots => 6536u16, + BlockKind::OakSlab => 8550u16, + BlockKind::RawGoldBlock => 20339u16, + BlockKind::PottedFloweringAzaleaBush => 20341u16, + BlockKind::RedstoneWallTorch => 3958u16, + BlockKind::DarkOakSlab => 8580u16, + BlockKind::RawCopperBlock => 20338u16, + BlockKind::JungleTrapdoor => 4372u16, + BlockKind::Andesite => 6u16, + BlockKind::ZombieHead => 6736u16, + BlockKind::GreenCandle => 17582u16, + BlockKind::MelonStem => 4853u16, + BlockKind::DeadBrainCoralWallFan => 9818u16, + BlockKind::BlackstoneWall => 16174u16, + BlockKind::WarpedTrapdoor => 15445u16, + BlockKind::PottedLilyOfTheValley => 6530u16, + BlockKind::CyanCandleCake => 17650u16, + BlockKind::StoneBrickStairs => 5133u16, + BlockKind::PolishedDioriteSlab => 11057u16, + BlockKind::SkeletonWallSkull => 6712u16, + BlockKind::Cobblestone => 14u16, + BlockKind::SeaPickle => 9890u16, + BlockKind::PinkCandleCake => 17644u16, + BlockKind::CaveVinesPlant => 18617u16, + BlockKind::StrippedBirchWood => 136u16, + BlockKind::SprucePlanks => 16u16, + BlockKind::WeepingVinesPlant => 15270u16, + BlockKind::DeadFireCoralWallFan => 9834u16, + BlockKind::OrangeCandleCake => 17634u16, + BlockKind::StrippedOakLog => 109u16, + BlockKind::JackOLantern => 4089u16, + BlockKind::PottedAllium => 6522u16, + BlockKind::OrangeTerracotta => 7066u16, + BlockKind::PurpleTerracotta => 7075u16, + BlockKind::OakPlanks => 15u16, + BlockKind::RoseBush => 8139u16, + BlockKind::Observer => 9510u16, + BlockKind::DeadFireCoralFan => 9796u16, + BlockKind::BrainCoralFan => 9802u16, + BlockKind::DioriteStairs => 10959u16, + BlockKind::OakPressurePlate => 3940u16, + BlockKind::WarpedPressurePlate => 15315u16, + BlockKind::WaxedCopperBlock => 18168u16, + BlockKind::SpruceTrapdoor => 4244u16, + BlockKind::ChiseledSandstone => 279u16, + BlockKind::WarpedWartBlock => 15226u16, + BlockKind::Clay => 4016u16, + BlockKind::AndesiteSlab => 11093u16, + BlockKind::EndGateway => 9474u16, + BlockKind::PottedDandelion => 6519u16, + BlockKind::LightBlueStainedGlass => 4167u16, + BlockKind::YellowBanner => 8211u16, + BlockKind::DeadTubeCoralBlock => 9760u16, + BlockKind::SweetBerryBush => 15208u16, + BlockKind::OrangeCandle => 17390u16, + BlockKind::BirchFenceGate => 8700u16, + BlockKind::RawIronBlock => 20337u16, + BlockKind::BlackStainedGlass => 4179u16, + BlockKind::Prismarine => 7851u16, + BlockKind::BirchWallSign => 3818u16, + BlockKind::DeepslateBrickSlab => 20000u16, + BlockKind::DragonHead => 6796u16, + BlockKind::MossyStoneBrickWall => 12089u16, + BlockKind::PolishedGraniteStairs => 9919u16, + BlockKind::IronDoor => 3876u16, + BlockKind::WhiteCandle => 17374u16, + BlockKind::DeepslateGoldOre => 70u16, + BlockKind::DeadBubbleCoralBlock => 9762u16, + BlockKind::Lodestone => 16092u16, + BlockKind::MagentaCarpet => 8118u16, + BlockKind::WaxedWeatheredCopper => 18169u16, + BlockKind::TubeCoralWallFan => 9850u16, + BlockKind::OakLeaves => 148u16, + BlockKind::PolishedBlackstoneBrickStairs => 16514u16, + BlockKind::BirchDoor => 9052u16, + BlockKind::PolishedDeepslateSlab => 19178u16, + BlockKind::GrayWool => 1447u16, + BlockKind::RedstoneTorch => 3956u16, + BlockKind::PottedCactus => 6535u16, + BlockKind::StrippedSpruceWood => 133u16, + BlockKind::BirchLeaves => 176u16, + BlockKind::BeeNest => 16030u16, + BlockKind::PinkStainedGlassPane => 7273u16, + BlockKind::DeadBubbleCoralWallFan => 9826u16, + BlockKind::JungleSign => 3566u16, + BlockKind::DarkOakSapling => 31u16, + BlockKind::JungleWood => 121u16, + BlockKind::Repeater => 4100u16, + BlockKind::MagentaTerracotta => 7067u16, + BlockKind::Dirt => 10u16, + BlockKind::JunglePressurePlate => 3946u16, + BlockKind::StrippedWarpedHyphae => 15221u16, + BlockKind::SoulSand => 4069u16, + BlockKind::GreenBanner => 8355u16, + BlockKind::PolishedDeepslate => 19097u16, + BlockKind::BlackBanner => 8387u16, + BlockKind::SpruceLeaves => 162u16, + BlockKind::BirchPlanks => 17u16, + BlockKind::Lectern => 15083u16, + BlockKind::DarkOakFenceGate => 8796u16, + BlockKind::EnderChest => 5457u16, + BlockKind::NetherSprouts => 15228u16, + BlockKind::Chest => 2090u16, + BlockKind::RepeatingCommandBlock => 9475u16, + BlockKind::Hopper => 6934u16, + BlockKind::PottedOrangeTulip => 6525u16, + BlockKind::HeavyWeightedPressurePlate => 6868u16, + BlockKind::SpruceWallSign => 3810u16, + BlockKind::DragonEgg => 5360u16, + BlockKind::GreenCarpet => 8129u16, + BlockKind::MagentaConcrete => 9690u16, + BlockKind::GrayBanner => 8259u16, + BlockKind::SlimeBlock => 7753u16, + BlockKind::RedConcretePowder => 9718u16, + BlockKind::PlayerHead => 6756u16, + BlockKind::GreenStainedGlass => 4177u16, + BlockKind::DarkPrismarine => 7853u16, + BlockKind::GrayWallBanner => 8431u16, + BlockKind::CyanWool => 1449u16, + BlockKind::CoarseDirt => 11u16, + BlockKind::Dispenser => 266u16, + BlockKind::Dropper => 7053u16, + BlockKind::LimeStainedGlassPane => 7241u16, + BlockKind::SmoothStoneSlab => 8592u16, + BlockKind::CobbledDeepslateWall => 18773u16, + BlockKind::EndStone => 5359u16, + BlockKind::GraniteWall => 12413u16, + BlockKind::DirtPath => 9473u16, + BlockKind::BirchButton => 6600u16, + BlockKind::SmoothRedSandstoneStairs => 9999u16, + BlockKind::BrownBed => 1273u16, + BlockKind::WaxedExposedCutCopperSlab => 18508u16, + BlockKind::IronBars => 4766u16, + BlockKind::Lava => 50u16, + BlockKind::StructureBlock => 15989u16, + BlockKind::Allium => 1471u16, + BlockKind::WaxedExposedCutCopperStairs => 18336u16, + BlockKind::DeepslateBrickStairs => 19920u16, + BlockKind::LilyPad => 5215u16, + BlockKind::SporeBlossom => 18619u16, + BlockKind::BambooSapling => 9901u16, + BlockKind::RedMushroom => 1482u16, + BlockKind::ChorusFlower => 9378u16, + BlockKind::DarkOakStairs => 7673u16, + BlockKind::Sunflower => 8135u16, + BlockKind::LightGrayCarpet => 8124u16, + BlockKind::YellowShulkerBox => 9552u16, + BlockKind::JungleSapling => 27u16, + BlockKind::NetherBrickFence => 5217u16, + BlockKind::YellowConcrete => 9692u16, + BlockKind::CrimsonWallSign => 15973u16, + BlockKind::StoneStairs => 10399u16, + BlockKind::EndPortalFrame => 5351u16, + BlockKind::CreeperHead => 6776u16, + BlockKind::CrackedDeepslateTiles => 20332u16, + BlockKind::Obsidian => 1490u16, + BlockKind::WhiteConcretePowder => 9704u16, + BlockKind::DeadBrainCoralBlock => 9761u16, + BlockKind::BlueBanner => 8323u16, + BlockKind::WarpedWallSign => 15981u16, + BlockKind::InfestedDeepslate => 20333u16, + BlockKind::Pumpkin => 4067u16, + BlockKind::WhiteBed => 1081u16, + BlockKind::CrimsonPressurePlate => 15313u16, + BlockKind::PolishedDiorite => 5u16, + BlockKind::BubbleCoralBlock => 9767u16, + BlockKind::WarpedRoots => 15227u16, + BlockKind::OakWood => 112u16, + BlockKind::Conduit => 9899u16, + BlockKind::AttachedMelonStem => 4841u16, + BlockKind::WhiteStainedGlassPane => 7081u16, + BlockKind::MagentaCandleCake => 17636u16, + BlockKind::MossyCobblestoneWall => 6187u16, + BlockKind::YellowBed => 1145u16, + BlockKind::LightBlueCandleCake => 17638u16, + BlockKind::LimeConcretePowder => 9709u16, + BlockKind::WhiteConcrete => 9688u16, + BlockKind::LightGrayCandle => 17502u16, + BlockKind::BlueCandleCake => 17654u16, + BlockKind::CommandBlock => 5850u16, + BlockKind::GrayStainedGlass => 4171u16, + BlockKind::PinkGlazedTerracotta => 9648u16, + BlockKind::BrainCoralBlock => 9766u16, + BlockKind::PottedBlueOrchid => 6521u16, + BlockKind::RedShulkerBox => 9612u16, + BlockKind::MossyStoneBrickStairs => 10079u16, + BlockKind::CyanConcrete => 9697u16, + BlockKind::DeadFireCoral => 9776u16, + BlockKind::ChainCommandBlock => 9487u16, + BlockKind::PrismarineBrickStairs => 7934u16, + BlockKind::GreenConcretePowder => 9717u16, + BlockKind::WarpedStem => 15212u16, + BlockKind::BigDripleaf => 18624u16, + BlockKind::OrangeBanner => 8163u16, + BlockKind::HornCoralBlock => 9769u16, + BlockKind::RespawnAnchor => 16083u16, + BlockKind::WarpedStairs => 15653u16, + BlockKind::EndPortal => 5350u16, + BlockKind::PointedDripstone => 18544u16, + BlockKind::Deepslate => 18683u16, + BlockKind::Bookshelf => 1488u16, + BlockKind::BlueConcrete => 9699u16, + BlockKind::RedConcrete => 9702u16, + BlockKind::Sponge => 260u16, + BlockKind::DeadTubeCoral => 9770u16, + BlockKind::DamagedAnvil => 6824u16, + BlockKind::PolishedBlackstoneButton => 17007u16, + BlockKind::PottedDeadBush => 6534u16, + BlockKind::StrippedDarkOakLog => 106u16, + BlockKind::Beehive => 16054u16, + BlockKind::Kelp => 9720u16, + BlockKind::PolishedBlackstonePressurePlate => 17005u16, + BlockKind::FireCoralBlock => 9768u16, + BlockKind::SpruceButton => 6576u16, + BlockKind::SculkSensor => 17718u16, + BlockKind::BirchFence => 8860u16, + BlockKind::DeepslateIronOre => 72u16, + BlockKind::DeadTubeCoralFan => 9790u16, + BlockKind::WarpedPlanks => 15300u16, + BlockKind::TripwireHook => 5465u16, + BlockKind::SpruceSign => 3470u16, + BlockKind::PottedRedMushroom => 6532u16, + BlockKind::CrimsonNylium => 15241u16, + BlockKind::PolishedBlackstoneSlab => 16999u16, + BlockKind::CrackedDeepslateBricks => 20331u16, + BlockKind::SmallAmethystBud => 17702u16, + BlockKind::DiamondBlock => 3412u16, + BlockKind::BirchStairs => 5690u16, + BlockKind::DeepslateCopperOre => 17819u16, + BlockKind::WaxedOxidizedCutCopperSlab => 18496u16, + BlockKind::PolishedGranite => 3u16, + BlockKind::CraftingTable => 3413u16, + BlockKind::Farmland => 3422u16, + BlockKind::OakLog => 76u16, + BlockKind::NetherBrickSlab => 8634u16, + BlockKind::WaxedExposedCutCopper => 18174u16, + BlockKind::BlackstoneSlab => 16498u16, + BlockKind::JungleFenceGate => 8732u16, + BlockKind::FireCoral => 9786u16, + BlockKind::LimeShulkerBox => 9558u16, + BlockKind::LightGrayTerracotta => 7073u16, + BlockKind::DeadHornCoralWallFan => 9842u16, + BlockKind::Gravel => 68u16, + BlockKind::Sandstone => 278u16, + BlockKind::Blackstone => 16093u16, + BlockKind::OxidizedCutCopperSlab => 18144u16, + BlockKind::AcaciaSign => 3534u16, + BlockKind::ChiseledQuartzBlock => 6945u16, + BlockKind::Terracotta => 8132u16, + BlockKind::SpruceDoor => 8988u16, + BlockKind::PurpleConcretePowder => 9714u16, + BlockKind::RedCandleCake => 17660u16, + BlockKind::OrangeWool => 1441u16, + BlockKind::IronTrapdoor => 7787u16, + BlockKind::KelpPlant => 9746u16, + BlockKind::Cobweb => 1397u16, + BlockKind::LightBlueStainedGlassPane => 7177u16, + BlockKind::SnowBlock => 3999u16, + BlockKind::ShulkerBox => 9522u16, + BlockKind::LightGrayConcrete => 9696u16, + BlockKind::BlackConcretePowder => 9719u16, + BlockKind::PurpleCandleCake => 17652u16, + BlockKind::JungleLeaves => 190u16, + BlockKind::InfestedStoneBricks => 4570u16, + BlockKind::WhiteWallBanner => 8403u16, + BlockKind::SmoothRedSandstone => 8667u16, + BlockKind::CutCopper => 17823u16, + BlockKind::Piston => 1404u16, + BlockKind::GreenShulkerBox => 9606u16, + BlockKind::SmoothBasalt => 20336u16, + BlockKind::TwistingVines => 15271u16, + BlockKind::MossyStoneBrickSlab => 11051u16, + BlockKind::StoneSlab => 8586u16, + BlockKind::DeepslateTiles => 19508u16, + BlockKind::RedNetherBrickSlab => 11099u16, + BlockKind::IronOre => 71u16, + BlockKind::MagentaConcretePowder => 9706u16, + BlockKind::Smoker => 15053u16, + BlockKind::OakButton => 6552u16, + BlockKind::PottedWarpedFungus => 16089u16, + BlockKind::PurpleWool => 1450u16, + BlockKind::BrownBanner => 8339u16, + BlockKind::EndStoneBricks => 9468u16, + BlockKind::BlueShulkerBox => 9594u16, + BlockKind::DeepslateEmeraldOre => 5456u16, + BlockKind::WarpedSlab => 15307u16, + BlockKind::StructureVoid => 9509u16, + BlockKind::GrayGlazedTerracotta => 9652u16, + BlockKind::DarkOakWood => 127u16, + BlockKind::RedCarpet => 8130u16, + BlockKind::Lantern => 15136u16, + BlockKind::Jigsaw => 15993u16, + BlockKind::CaveVines => 18565u16, + BlockKind::Lever => 3850u16, + BlockKind::WaxedOxidizedCutCopperStairs => 18176u16, + BlockKind::WeatheredCopper => 17815u16, + BlockKind::LightBlueWool => 1443u16, + BlockKind::NetherBrickWall => 13061u16, + BlockKind::NoteBlock => 281u16, + BlockKind::GlassPane => 4804u16, + BlockKind::LightGrayConcretePowder => 9712u16, + BlockKind::Grass => 1398u16, + BlockKind::PolishedAndesiteSlab => 11105u16, + BlockKind::Beetroots => 9469u16, + BlockKind::Mycelium => 5213u16, + BlockKind::NetherBricks => 5216u16, + BlockKind::MagentaStainedGlass => 4166u16, + BlockKind::BlackstoneStairs => 16094u16, + BlockKind::LightBlueBed => 1129u16, + BlockKind::LightningRod => 18520u16, + BlockKind::LightBlueWallBanner => 8415u16, + BlockKind::GrayCandleCake => 17646u16, + BlockKind::OakDoor => 3630u16, + BlockKind::ChorusPlant => 9314u16, + BlockKind::Glass => 262u16, + BlockKind::AcaciaWallSign => 3826u16, + BlockKind::SmallDripleaf => 18664u16, + BlockKind::WetSponge => 261u16, + BlockKind::PurpleConcrete => 9698u16, + BlockKind::PinkTerracotta => 7071u16, + BlockKind::BrownMushroomBlock => 4574u16, + BlockKind::FletchingTable => 15070u16, + BlockKind::Campfire => 15144u16, + BlockKind::SeaLantern => 8112u16, + BlockKind::WaxedOxidizedCopper => 18171u16, + BlockKind::HoneycombBlock => 16079u16, + BlockKind::EmeraldOre => 5455u16, + BlockKind::YellowWool => 1444u16, + BlockKind::DeadBubbleCoral => 9774u16, + BlockKind::Target => 16014u16, + BlockKind::PetrifiedOakSlab => 8610u16, + BlockKind::AttachedPumpkinStem => 4837u16, + BlockKind::JunglePlanks => 18u16, + BlockKind::WaxedExposedCopper => 18170u16, + BlockKind::RedstoneWire => 2114u16, + BlockKind::PurpleGlazedTerracotta => 9664u16, + BlockKind::StonePressurePlate => 3874u16, + BlockKind::MossBlock => 18623u16, + BlockKind::BirchSlab => 8562u16, + BlockKind::ActivatorRail => 7029u16, + BlockKind::BrickStairs => 5053u16, + BlockKind::LightBlueConcretePowder => 9707u16, + BlockKind::BrownCarpet => 8128u16, + BlockKind::AcaciaLeaves => 204u16, + BlockKind::PinkStainedGlass => 4170u16, + BlockKind::AcaciaDoor => 9180u16, + BlockKind::PolishedDioriteStairs => 10159u16, + BlockKind::CutRedSandstone => 8469u16, + BlockKind::Water => 34u16, + BlockKind::BlueTerracotta => 7076u16, + BlockKind::OrangeConcretePowder => 9705u16, + BlockKind::AzureBluet => 1472u16, + BlockKind::RedBed => 1305u16, + BlockKind::Netherrack => 4068u16, + BlockKind::AcaciaButton => 6648u16, + BlockKind::LimeGlazedTerracotta => 9644u16, + BlockKind::Furnace => 3430u16, + BlockKind::CobbledDeepslate => 18686u16, + BlockKind::DarkOakSign => 3598u16, + BlockKind::WarpedNylium => 15224u16, + BlockKind::Cocoa => 5363u16, + BlockKind::MagentaStainedGlassPane => 7145u16, + BlockKind::Grindstone => 15071u16, + BlockKind::BigDripleafStem => 18656u16, + BlockKind::EndRod => 9308u16, + BlockKind::SoulSoil => 4070u16, + BlockKind::CrimsonFence => 15317u16, + BlockKind::BrownMushroom => 1481u16, + BlockKind::LightGrayStainedGlassPane => 7337u16, + BlockKind::CyanWallBanner => 8439u16, + BlockKind::CoalOre => 73u16, + BlockKind::JungleDoor => 9116u16, + BlockKind::GoldOre => 69u16, + BlockKind::LimeTerracotta => 7070u16, + BlockKind::MagentaGlazedTerracotta => 9632u16, + BlockKind::WarpedFenceGate => 15541u16, + BlockKind::MagentaBed => 1113u16, + BlockKind::Calcite => 17715u16, + BlockKind::DarkOakButton => 6672u16, + BlockKind::CrimsonStem => 15229u16, + BlockKind::RedSandstone => 8467u16, + BlockKind::ExposedCutCopper => 17822u16, + BlockKind::StrippedDarkOakWood => 145u16, + BlockKind::QuartzSlab => 8640u16, + BlockKind::SpruceFence => 8828u16, + BlockKind::LightGrayShulkerBox => 9576u16, + BlockKind::CrimsonHyphae => 15235u16, + BlockKind::SpruceStairs => 5610u16, + BlockKind::JungleButton => 6624u16, + BlockKind::Cake => 4093u16, + BlockKind::RedTerracotta => 7079u16, + BlockKind::FireCoralFan => 9806u16, + BlockKind::PottedCrimsonFungus => 16088u16, + BlockKind::FrostedIce => 9499u16, + BlockKind::PinkTulip => 1476u16, + BlockKind::OakSign => 3438u16, + BlockKind::PolishedBlackstoneBrickWall => 16594u16, + BlockKind::CrimsonRoots => 15298u16, + BlockKind::LightBlueBanner => 8195u16, + BlockKind::WarpedHyphae => 15218u16, + BlockKind::PottedAzureBluet => 6523u16, + BlockKind::PurpleShulkerBox => 9588u16, + BlockKind::AndesiteWall => 13385u16, + BlockKind::MossyCobblestoneSlab => 11063u16, + BlockKind::ChiseledRedSandstone => 8468u16, + BlockKind::NetherBrickStairs => 5249u16, + BlockKind::WaxedWeatheredCutCopperSlab => 18502u16, + BlockKind::CyanTerracotta => 7074u16, + BlockKind::MossyCobblestone => 1489u16, + BlockKind::CryingObsidian => 16082u16, + BlockKind::PolishedBlackstoneWall => 17031u16, + BlockKind::ExposedCutCopperStairs => 17984u16, + BlockKind::OakWallSign => 3802u16, + BlockKind::VoidAir => 9915u16, + BlockKind::OxidizedCutCopperStairs => 17824u16, + BlockKind::LimeCandle => 17454u16, + BlockKind::RedGlazedTerracotta => 9680u16, + BlockKind::WeatheredCutCopperStairs => 17904u16, + BlockKind::GrassBlock => 8u16, + BlockKind::DarkOakLog => 91u16, + BlockKind::JungleLog => 85u16, + BlockKind::BubbleColumn => 9917u16, + BlockKind::CopperOre => 17818u16, + BlockKind::RedstoneBlock => 6932u16, + BlockKind::CarvedPumpkin => 4085u16, + BlockKind::WhiteTerracotta => 7065u16, + BlockKind::CutSandstone => 280u16, + BlockKind::StoneBricks => 4564u16, + BlockKind::WaterCauldron => 5343u16, + BlockKind::WaxedCutCopper => 18175u16, + BlockKind::AcaciaWood => 124u16, + BlockKind::PottedAzaleaBush => 20340u16, + BlockKind::PackedIce => 8134u16, + BlockKind::DarkOakFence => 8956u16, + BlockKind::DeepslateTileSlab => 19589u16, + BlockKind::RedSandstoneSlab => 8646u16, + BlockKind::PurpurStairs => 9388u16, + BlockKind::GrayTerracotta => 7072u16, + BlockKind::PolishedBlackstoneStairs => 16919u16, + BlockKind::PottedOakSapling => 6512u16, + BlockKind::DeepslateTileStairs => 19509u16, + BlockKind::EnchantingTable => 5333u16, + BlockKind::BrownConcrete => 9700u16, + BlockKind::PottedDarkOakSapling => 6517u16, + BlockKind::PottedRedTulip => 6524u16, + BlockKind::OrangeTulip => 1474u16, + BlockKind::JungleWallSign => 3834u16, + BlockKind::GrayCarpet => 8123u16, + BlockKind::LightBlueShulkerBox => 9546u16, + BlockKind::StrippedOakWood => 130u16, + BlockKind::MovingPiston => 1456u16, + BlockKind::PolishedBlackstone => 16504u16, + BlockKind::SmoothQuartzSlab => 11081u16, + BlockKind::TallGrass => 8143u16, + BlockKind::StrippedSpruceLog => 94u16, + BlockKind::LightGrayStainedGlass => 4172u16, + BlockKind::WarpedSign => 15941u16, + BlockKind::DiamondOre => 3410u16, + BlockKind::DeepslateDiamondOre => 3411u16, + BlockKind::BrewingStand => 5334u16, + BlockKind::JungleStairs => 5770u16, + BlockKind::JungleSlab => 8568u16, + BlockKind::Seagrass => 1401u16, + BlockKind::DeepslateRedstoneOre => 3954u16, + BlockKind::DioriteSlab => 11111u16, + BlockKind::OxeyeDaisy => 1477u16, + BlockKind::InfestedMossyStoneBricks => 4571u16, + BlockKind::PottedBamboo => 9914u16, + BlockKind::PistonHead => 1416u16, + BlockKind::BlueConcretePowder => 9715u16, + BlockKind::PowderSnow => 17717u16, + BlockKind::PottedWarpedRoots => 16091u16, + BlockKind::RedNetherBrickStairs => 10799u16, + BlockKind::WaxedOxidizedCutCopper => 18172u16, + BlockKind::CandleCake => 17630u16, + BlockKind::SoulFire => 2008u16, + BlockKind::LightBlueCarpet => 8119u16, + BlockKind::LimeWallBanner => 8423u16, + BlockKind::Tripwire => 5481u16, + BlockKind::BlackGlazedTerracotta => 9684u16, + BlockKind::DeadBrainCoral => 9772u16, + BlockKind::AcaciaLog => 88u16, + BlockKind::OakFence => 4035u16, + BlockKind::SmoothSandstoneStairs => 10479u16, + BlockKind::SandstoneSlab => 8598u16, + BlockKind::GreenCandleCake => 17658u16, + BlockKind::LapisBlock => 265u16, + BlockKind::GraniteSlab => 11087u16, + BlockKind::GrayCandle => 17486u16, + BlockKind::RedStainedGlass => 4178u16, + BlockKind::RedCandle => 17598u16, + BlockKind::PolishedBlackstoneBricks => 16505u16, + BlockKind::EmeraldBlock => 5609u16, + BlockKind::LightBlueCandle => 17422u16, + BlockKind::InfestedStone => 4568u16, + BlockKind::BrownConcretePowder => 9716u16, + BlockKind::PolishedDeepslateWall => 19184u16, + BlockKind::Potatoes => 6544u16, + BlockKind::TubeCoral => 9780u16, + BlockKind::WitherSkeletonWallSkull => 6732u16, + BlockKind::MediumAmethystBud => 17690u16, + BlockKind::PottedOxeyeDaisy => 6528u16, + BlockKind::GreenBed => 1289u16, + BlockKind::Air => 0u16, + BlockKind::SoulLantern => 15140u16, + BlockKind::PowderSnowCauldron => 5347u16, + BlockKind::NetherQuartzOre => 6933u16, + BlockKind::BrainCoral => 9782u16, + BlockKind::PurpurSlab => 8658u16, + BlockKind::Jukebox => 4033u16, + BlockKind::PurpleBanner => 8307u16, + BlockKind::BrownStainedGlassPane => 7465u16, + BlockKind::PinkConcrete => 9694u16, + BlockKind::PolishedAndesiteStairs => 10879u16, + BlockKind::LightGrayBed => 1209u16, + BlockKind::Tuff => 17714u16, + BlockKind::ExposedCopper => 17816u16, + BlockKind::StoneBrickWall => 12737u16, + BlockKind::WarpedFence => 15349u16, + BlockKind::OakFenceGate => 5021u16, + BlockKind::GreenWallBanner => 8455u16, + BlockKind::RedMushroomBlock => 4638u16, + BlockKind::Fire => 1496u16, + BlockKind::SoulTorch => 4077u16, + BlockKind::LightGrayBanner => 8275u16, + BlockKind::OrangeGlazedTerracotta => 9628u16, + BlockKind::AndesiteStairs => 10719u16, + BlockKind::Loom => 15037u16, + BlockKind::StoneBrickSlab => 8628u16, + BlockKind::WitherRose => 1479u16, + BlockKind::AmethystBlock => 17664u16, + BlockKind::Barrel => 15041u16, + BlockKind::PottedSpruceSapling => 6513u16, + BlockKind::CoalBlock => 8133u16, + BlockKind::OrangeStainedGlass => 4165u16, + BlockKind::OrangeWallBanner => 8407u16, + BlockKind::CobblestoneStairs => 3722u16, + BlockKind::LimeCandleCake => 17642u16, + BlockKind::WhiteGlazedTerracotta => 9624u16, + BlockKind::RedstoneOre => 3952u16, + BlockKind::Podzol => 12u16, + BlockKind::StrippedJungleLog => 100u16, + BlockKind::GildedBlackstone => 16918u16, + BlockKind::QuartzBricks => 17357u16, + BlockKind::DriedKelpBlock => 9747u16, + BlockKind::PottedWitherRose => 6531u16, + BlockKind::DeepslateLapisOre => 264u16, + BlockKind::CartographyTable => 15069u16, + BlockKind::MagmaBlock => 9503u16, + BlockKind::DripstoneBlock => 18564u16, + BlockKind::SandstoneStairs => 5375u16, + BlockKind::PinkBanner => 8243u16, + BlockKind::DarkOakDoor => 9244u16, + BlockKind::CyanShulkerBox => 9582u16, + BlockKind::NetherGoldOre => 75u16, + BlockKind::SpruceFenceGate => 8668u16, + BlockKind::PinkConcretePowder => 9710u16, + BlockKind::GrayConcretePowder => 9711u16, + BlockKind::CopperBlock => 17817u16, + BlockKind::Sand => 66u16, + BlockKind::PinkWallBanner => 8427u16, + BlockKind::YellowConcretePowder => 9708u16, + BlockKind::GreenTerracotta => 7078u16, + BlockKind::Wheat => 3414u16, + BlockKind::PinkCarpet => 8122u16, + BlockKind::SpruceLog => 79u16, + BlockKind::BlueStainedGlassPane => 7433u16, + BlockKind::FlowerPot => 6511u16, + BlockKind::GreenGlazedTerracotta => 9676u16, + BlockKind::LimeWool => 1445u16, + BlockKind::GrayBed => 1193u16, + BlockKind::InfestedChiseledStoneBricks => 4573u16, + BlockKind::PolishedGraniteSlab => 11039u16, + BlockKind::MagentaBanner => 8179u16, + BlockKind::MossyStoneBricks => 4565u16, + BlockKind::BrownCandleCake => 17656u16, + BlockKind::SpruceSlab => 8556u16, + BlockKind::AcaciaSlab => 8574u16, + BlockKind::PrismarineWall => 11441u16, + BlockKind::GlowLichen => 4893u16, + BlockKind::Peony => 8141u16, + BlockKind::CyanConcretePowder => 9713u16, + BlockKind::GrayShulkerBox => 9570u16, + BlockKind::WeatheredCutCopper => 17821u16, + BlockKind::StrippedJungleWood => 139u16, + BlockKind::BirchSign => 3502u16, + BlockKind::Rail => 3702u16, + BlockKind::ChiseledStoneBricks => 4567u16, + BlockKind::BlueWool => 1451u16, + BlockKind::SmoothStone => 8664u16, + BlockKind::Cornflower => 1478u16, + BlockKind::Beacon => 5862u16, + BlockKind::WhiteCarpet => 8116u16, + BlockKind::AncientDebris => 16081u16, + BlockKind::SprucePressurePlate => 3942u16, + BlockKind::SmithingTable => 15099u16, + BlockKind::YellowGlazedTerracotta => 9640u16, + BlockKind::CrackedPolishedBlackstoneBricks => 16506u16, + BlockKind::CutRedSandstoneSlab => 8652u16, + BlockKind::StoneButton => 3966u16, + BlockKind::SoulWallTorch => 4078u16, + BlockKind::BlueGlazedTerracotta => 9668u16, + BlockKind::OakSapling => 21u16, + BlockKind::AcaciaPressurePlate => 3948u16, + BlockKind::GrayStainedGlassPane => 7305u16, + BlockKind::BlueStainedGlass => 4175u16, + BlockKind::BrownStainedGlass => 4176u16, + BlockKind::LightGrayWool => 1448u16, + BlockKind::PottedFern => 6518u16, + BlockKind::CrimsonButton => 15733u16, + BlockKind::NetherPortal => 4083u16, + BlockKind::WarpedDoor => 15845u16, + BlockKind::MossyCobblestoneStairs => 10239u16, + BlockKind::YellowStainedGlassPane => 7209u16, + BlockKind::Melon => 4836u16, + BlockKind::LightGrayCandleCake => 17648u16, + BlockKind::YellowCarpet => 8120u16, + BlockKind::BlueIce => 9898u16, + BlockKind::FloweringAzalea => 18621u16, + BlockKind::PurpleWallBanner => 8443u16, + BlockKind::PottedCornflower => 6529u16, + BlockKind::AzaleaLeaves => 232u16, + BlockKind::LimeConcrete => 9693u16, + BlockKind::BlackConcrete => 9703u16, + BlockKind::Diorite => 4u16, + BlockKind::CrackedNetherBricks => 17356u16, + BlockKind::DaylightDetector => 6900u16, + BlockKind::BoneBlock => 9506u16, + BlockKind::BrownWool => 1452u16, + BlockKind::BrainCoralWallFan => 9858u16, + BlockKind::BubbleCoralWallFan => 9866u16, + BlockKind::BlackCarpet => 8131u16, + BlockKind::GreenStainedGlassPane => 7497u16, + BlockKind::DeadBubbleCoralFan => 9794u16, + BlockKind::TwistingVinesPlant => 15297u16, + BlockKind::Light => 7755u16, + BlockKind::CobbledDeepslateStairs => 18687u16, + BlockKind::CyanStainedGlass => 4173u16, + BlockKind::YellowTerracotta => 7069u16, + BlockKind::CaveAir => 9916u16, + BlockKind::ChippedAnvil => 6820u16, + BlockKind::Stonecutter => 15100u16, + BlockKind::HornCoralWallFan => 9882u16, + BlockKind::WarpedButton => 15757u16, + BlockKind::Torch => 1491u16, + BlockKind::TubeCoralBlock => 9765u16, + BlockKind::Shroomlight => 15243u16, + BlockKind::LimeStainedGlass => 4169u16, + BlockKind::OxidizedCopper => 17814u16, + BlockKind::BubbleCoral => 9784u16, + BlockKind::PurpurPillar => 9385u16, + BlockKind::BrownTerracotta => 7077u16, + BlockKind::Bell => 15104u16, + BlockKind::MushroomStem => 4702u16, + BlockKind::Lilac => 8137u16, + BlockKind::LightBlueConcrete => 9691u16, + BlockKind::OakTrapdoor => 4180u16, + BlockKind::CobblestoneSlab => 8616u16, + BlockKind::SmoothQuartzStairs => 10559u16, + BlockKind::SmoothSandstone => 8665u16, + BlockKind::PolishedBasalt => 4074u16, + BlockKind::OrangeCarpet => 8117u16, + BlockKind::CrimsonPlanks => 15299u16, + BlockKind::WhiteTulip => 1475u16, + BlockKind::MagentaCandle => 17406u16, + BlockKind::GoldBlock => 1483u16, + BlockKind::WhiteBanner => 8147u16, + BlockKind::WitherSkeletonSkull => 6716u16, + BlockKind::CrimsonDoor => 15781u16, + BlockKind::Ice => 3998u16, + BlockKind::Vine => 4861u16, + BlockKind::Barrier => 7754u16, + BlockKind::MagentaWool => 1442u16, + BlockKind::HoneyBlock => 16078u16, + BlockKind::BirchLog => 82u16, + BlockKind::BuddingAmethyst => 17665u16, + BlockKind::CrimsonFungus => 15242u16, + BlockKind::Cactus => 4000u16, + BlockKind::PoweredRail => 1337u16, + BlockKind::DarkOakLeaves => 218u16, + BlockKind::PurpleStainedGlass => 4174u16, + BlockKind::PurpleCandle => 17534u16, + BlockKind::BrickSlab => 8622u16, + BlockKind::SmoothQuartz => 8666u16, + BlockKind::PlayerWallHead => 6772u16, + BlockKind::PottedBirchSapling => 6514u16, + BlockKind::PurpleStainedGlassPane => 7401u16, + BlockKind::GrayConcrete => 9695u16, + BlockKind::TrappedChest => 6828u16, + BlockKind::BlueCarpet => 8127u16, + BlockKind::MagentaShulkerBox => 9540u16, + BlockKind::DeadBush => 1400u16, + BlockKind::OrangeBed => 1097u16, + BlockKind::PinkWool => 1446u16, + BlockKind::LightBlueTerracotta => 7068u16, + BlockKind::OrangeStainedGlassPane => 7113u16, + BlockKind::OrangeShulkerBox => 9534u16, + BlockKind::AcaciaTrapdoor => 4436u16, + BlockKind::PurpleBed => 1241u16, + BlockKind::TallSeagrass => 1402u16, + BlockKind::BlueWallBanner => 8447u16, + BlockKind::DeadHornCoralFan => 9798u16, + BlockKind::Azalea => 18620u16, + BlockKind::CyanCarpet => 8125u16, + BlockKind::Fern => 1399u16, + BlockKind::Composter => 16005u16, + BlockKind::PrismarineBricks => 7852u16, + } + } +} +impl BlockKind { + #[doc = "Returns the `max_state_id` property of this `BlockKind`."] + #[inline] + pub fn max_state_id(&self) -> u16 { + match self { + BlockKind::WitherSkeletonSkull => 6731u16, + BlockKind::InfestedDeepslate => 20335u16, + BlockKind::NetherBrickStairs => 5328u16, + BlockKind::DeepslateEmeraldOre => 5456u16, + BlockKind::PurpleShulkerBox => 9593u16, + BlockKind::SpruceSign => 3501u16, + BlockKind::DeadBubbleCoralBlock => 9762u16, + BlockKind::WaxedCopperBlock => 18168u16, + BlockKind::TallSeagrass => 1403u16, + BlockKind::WeatheredCutCopperStairs => 17983u16, + BlockKind::DeepslateBricks => 19919u16, + BlockKind::PowderSnowCauldron => 5349u16, + BlockKind::SpruceFenceGate => 8699u16, + BlockKind::PottedBirchSapling => 6514u16, + BlockKind::LightGrayWool => 1448u16, + BlockKind::VoidAir => 9915u16, + BlockKind::SkeletonSkull => 6711u16, + BlockKind::RedSand => 67u16, + BlockKind::HornCoral => 9789u16, + BlockKind::Pumpkin => 4067u16, + BlockKind::StrippedBirchWood => 138u16, + BlockKind::DragonEgg => 5360u16, + BlockKind::PistonHead => 1439u16, + BlockKind::ChiseledDeepslate => 20330u16, + BlockKind::WarpedWallSign => 15988u16, + BlockKind::DeepslateCoalOre => 74u16, + BlockKind::DaylightDetector => 6931u16, + BlockKind::PurpleStainedGlass => 4174u16, + BlockKind::CyanWallBanner => 8442u16, + BlockKind::Blackstone => 16093u16, + BlockKind::PottedWarpedRoots => 16091u16, + BlockKind::WaxedCutCopper => 18175u16, + BlockKind::ChiseledNetherBricks => 17355u16, + BlockKind::WaxedExposedCutCopperStairs => 18415u16, + BlockKind::Snow => 3997u16, + BlockKind::GrayTerracotta => 7072u16, + BlockKind::Cactus => 4015u16, + BlockKind::PottedBamboo => 9914u16, + BlockKind::DeadTubeCoralWallFan => 9817u16, + BlockKind::BrownBed => 1288u16, + BlockKind::PinkWool => 1446u16, + BlockKind::RedSandstoneStairs => 8549u16, + BlockKind::EndStoneBrickSlab => 11074u16, + BlockKind::Bamboo => 9913u16, + BlockKind::MossyCobblestone => 1489u16, + BlockKind::SoulLantern => 15143u16, + BlockKind::ChiseledPolishedBlackstone => 16507u16, + BlockKind::WaxedOxidizedCutCopper => 18172u16, + BlockKind::StoneButton => 3989u16, + BlockKind::Cauldron => 5342u16, + BlockKind::Chain => 4803u16, + BlockKind::WarpedPressurePlate => 15316u16, + BlockKind::RedStainedGlass => 4178u16, + BlockKind::LightGrayCarpet => 8124u16, + BlockKind::LightningRod => 18543u16, + BlockKind::BrownCarpet => 8128u16, + BlockKind::Bell => 15135u16, + BlockKind::HayBlock => 8115u16, + BlockKind::BirchFence => 8891u16, + BlockKind::OrangeCarpet => 8117u16, + BlockKind::BlueStainedGlass => 4175u16, + BlockKind::StrippedBirchLog => 99u16, + BlockKind::BrownWool => 1452u16, + BlockKind::LightGrayStainedGlass => 4172u16, + BlockKind::CryingObsidian => 16082u16, + BlockKind::LightBlueStainedGlass => 4167u16, + BlockKind::BrewingStand => 5341u16, + BlockKind::YellowCandle => 17453u16, + BlockKind::PolishedDioriteSlab => 11062u16, + BlockKind::WaxedWeatheredCutCopperSlab => 18507u16, + BlockKind::MagentaBanner => 8194u16, + BlockKind::TubeCoral => 9781u16, + BlockKind::CandleCake => 17631u16, + BlockKind::WhiteShulkerBox => 9533u16, + BlockKind::SoulSand => 4069u16, + BlockKind::NetherBricks => 5216u16, + BlockKind::RedNetherBricks => 9505u16, + BlockKind::RedstoneLamp => 5362u16, + BlockKind::GoldOre => 69u16, + BlockKind::CyanShulkerBox => 9587u16, + BlockKind::GrayGlazedTerracotta => 9655u16, + BlockKind::SlimeBlock => 7753u16, + BlockKind::Chest => 2113u16, + BlockKind::RespawnAnchor => 16087u16, + BlockKind::PottedJungleSapling => 6515u16, + BlockKind::Shroomlight => 15243u16, + BlockKind::OakSlab => 8555u16, + BlockKind::Peony => 8142u16, + BlockKind::Lantern => 15139u16, + BlockKind::CyanConcretePowder => 9713u16, + BlockKind::JungleWallSign => 3841u16, + BlockKind::OrangeBanner => 8178u16, + BlockKind::CobbledDeepslateStairs => 18766u16, + BlockKind::SpruceWood => 117u16, + BlockKind::StrippedDarkOakWood => 147u16, + BlockKind::SkeletonWallSkull => 6715u16, + BlockKind::BirchWallSign => 3825u16, + BlockKind::BrickStairs => 5132u16, + BlockKind::Light => 7786u16, + BlockKind::PackedIce => 8134u16, + BlockKind::GreenStainedGlassPane => 7528u16, + BlockKind::LightGrayWallBanner => 8438u16, + BlockKind::LightGrayBed => 1224u16, + BlockKind::OrangeWool => 1441u16, + BlockKind::WarpedWartBlock => 15226u16, + BlockKind::EndStoneBrickWall => 14680u16, + BlockKind::CrimsonPressurePlate => 15314u16, + BlockKind::DiamondOre => 3410u16, + BlockKind::ActivatorRail => 7052u16, + BlockKind::PinkBanner => 8258u16, + BlockKind::WaterCauldron => 5345u16, + BlockKind::CobbledDeepslateWall => 19096u16, + BlockKind::Lodestone => 16092u16, + BlockKind::AncientDebris => 16081u16, + BlockKind::Repeater => 4163u16, + BlockKind::CreeperHead => 6791u16, + BlockKind::ZombieWallHead => 6755u16, + BlockKind::JungleSlab => 8573u16, + BlockKind::PolishedBlackstone => 16504u16, + BlockKind::AndesiteSlab => 11098u16, + BlockKind::ChippedAnvil => 6823u16, + BlockKind::BlackBed => 1336u16, + BlockKind::PottedOrangeTulip => 6525u16, + BlockKind::FireCoralBlock => 9768u16, + BlockKind::RedCandle => 17613u16, + BlockKind::MushroomStem => 4765u16, + BlockKind::GildedBlackstone => 16918u16, + BlockKind::CreeperWallHead => 6795u16, + BlockKind::SmoothSandstone => 8665u16, + BlockKind::PinkConcretePowder => 9710u16, + BlockKind::WeepingVines => 15269u16, + BlockKind::LightGrayBanner => 8290u16, + BlockKind::TurtleEgg => 9759u16, + BlockKind::SmoothBasalt => 20336u16, + BlockKind::PottedWitherRose => 6531u16, + BlockKind::Tripwire => 5608u16, + BlockKind::WaxedExposedCutCopper => 18174u16, + BlockKind::SpruceWallSign => 3817u16, + BlockKind::RedMushroom => 1482u16, + BlockKind::QuartzSlab => 8645u16, + BlockKind::DarkPrismarineSlab => 8111u16, + BlockKind::YellowStainedGlassPane => 7240u16, + BlockKind::Dropper => 7064u16, + BlockKind::DragonWallHead => 6815u16, + BlockKind::NetherGoldOre => 75u16, + BlockKind::StrippedCrimsonHyphae => 15240u16, + BlockKind::Obsidian => 1490u16, + BlockKind::DeepslateDiamondOre => 3411u16, + BlockKind::YellowConcretePowder => 9708u16, + BlockKind::WeepingVinesPlant => 15270u16, + BlockKind::MossBlock => 18623u16, + BlockKind::BlackstoneStairs => 16173u16, + BlockKind::Tnt => 1487u16, + BlockKind::GrayWallBanner => 8434u16, + BlockKind::SmoothRedSandstoneSlab => 11050u16, + BlockKind::CutCopper => 17823u16, + BlockKind::PolishedBlackstoneBrickStairs => 16593u16, + BlockKind::CrimsonFungus => 15242u16, + BlockKind::RawGoldBlock => 20339u16, + BlockKind::MossyStoneBrickStairs => 10158u16, + BlockKind::ChorusPlant => 9377u16, + BlockKind::PottedAcaciaSapling => 6516u16, + BlockKind::SeaLantern => 8112u16, + BlockKind::PurpleCarpet => 8126u16, + BlockKind::Wheat => 3421u16, + BlockKind::GraniteSlab => 11092u16, + BlockKind::GrayCarpet => 8123u16, + BlockKind::PurpleConcrete => 9698u16, + BlockKind::BlackCandle => 17629u16, + BlockKind::WhiteTulip => 1475u16, + BlockKind::GrayShulkerBox => 9575u16, + BlockKind::MossyCobblestoneStairs => 10318u16, + BlockKind::RedConcretePowder => 9718u16, + BlockKind::DriedKelpBlock => 9747u16, + BlockKind::DeepslateTileWall => 19918u16, + BlockKind::PurpleStainedGlassPane => 7432u16, + BlockKind::Barrel => 15052u16, + BlockKind::StrippedOakWood => 132u16, + BlockKind::GoldBlock => 1483u16, + BlockKind::BrownCandle => 17581u16, + BlockKind::CrackedDeepslateTiles => 20332u16, + BlockKind::ChiseledSandstone => 279u16, + BlockKind::JunglePressurePlate => 3947u16, + BlockKind::ChorusFlower => 9383u16, + BlockKind::InfestedChiseledStoneBricks => 4573u16, + BlockKind::BirchFenceGate => 8731u16, + BlockKind::BirchPressurePlate => 3945u16, + BlockKind::RepeatingCommandBlock => 9486u16, + BlockKind::BirchStairs => 5769u16, + BlockKind::FletchingTable => 15070u16, + BlockKind::WarpedStem => 15214u16, + BlockKind::BlueConcretePowder => 9715u16, + BlockKind::PinkCandle => 17485u16, + BlockKind::StoneBrickWall => 13060u16, + BlockKind::AndesiteWall => 13708u16, + BlockKind::NetherSprouts => 15228u16, + BlockKind::RedShulkerBox => 9617u16, + BlockKind::OakWood => 114u16, + BlockKind::SprucePlanks => 16u16, + BlockKind::BirchSlab => 8567u16, + BlockKind::CyanStainedGlassPane => 7400u16, + BlockKind::SoulTorch => 4077u16, + BlockKind::LapisBlock => 265u16, + BlockKind::LightGrayCandle => 17517u16, + BlockKind::GlassPane => 4835u16, + BlockKind::MossyCobblestoneSlab => 11068u16, + BlockKind::MagentaCandle => 17421u16, + BlockKind::GrayWool => 1447u16, + BlockKind::BrownMushroomBlock => 4637u16, + BlockKind::PinkConcrete => 9694u16, + BlockKind::CobblestoneStairs => 3801u16, + BlockKind::PolishedDiorite => 5u16, + BlockKind::BlackstoneWall => 16497u16, + BlockKind::BrownStainedGlassPane => 7496u16, + BlockKind::FireCoralWallFan => 9881u16, + BlockKind::BlueWool => 1451u16, + BlockKind::BrownStainedGlass => 4176u16, + BlockKind::StrippedAcaciaLog => 105u16, + BlockKind::SmoothStone => 8664u16, + BlockKind::JungleSapling => 28u16, + BlockKind::InfestedStoneBricks => 4570u16, + BlockKind::CrackedStoneBricks => 4566u16, + BlockKind::SpruceButton => 6599u16, + BlockKind::BlueConcrete => 9699u16, + BlockKind::PolishedBlackstoneSlab => 17004u16, + BlockKind::SculkSensor => 17813u16, + BlockKind::Gravel => 68u16, + BlockKind::GreenStainedGlass => 4177u16, + BlockKind::GreenGlazedTerracotta => 9679u16, + BlockKind::TubeCoralWallFan => 9857u16, + BlockKind::JungleDoor => 9179u16, + BlockKind::SandstoneStairs => 5454u16, + BlockKind::AcaciaButton => 6671u16, + BlockKind::Piston => 1415u16, + BlockKind::AcaciaSlab => 8579u16, + BlockKind::RedstoneTorch => 3957u16, + BlockKind::InfestedCrackedStoneBricks => 4572u16, + BlockKind::Barrier => 7754u16, + BlockKind::Lava => 65u16, + BlockKind::DeadHornCoralWallFan => 9849u16, + BlockKind::HornCoralWallFan => 9889u16, + BlockKind::WitherRose => 1479u16, + BlockKind::QuartzPillar => 6948u16, + BlockKind::PottedCactus => 6535u16, + BlockKind::RedSandstoneWall => 12088u16, + BlockKind::MagentaCandleCake => 17637u16, + BlockKind::OrangeShulkerBox => 9539u16, + BlockKind::Prismarine => 7851u16, + BlockKind::CrimsonSlab => 15306u16, + BlockKind::WarpedFungus => 15225u16, + BlockKind::SporeBlossom => 18619u16, + BlockKind::AcaciaLeaves => 217u16, + BlockKind::GreenCarpet => 8129u16, + BlockKind::Dispenser => 277u16, + BlockKind::AcaciaWallSign => 3833u16, + BlockKind::DioriteSlab => 11116u16, + BlockKind::WaxedExposedCopper => 18170u16, + BlockKind::PolishedDeepslateStairs => 19177u16, + BlockKind::Potatoes => 6551u16, + BlockKind::DeadBrainCoralBlock => 9761u16, + BlockKind::StoneStairs => 10478u16, + BlockKind::SugarCane => 4032u16, + BlockKind::SpruceStairs => 5689u16, + BlockKind::CyanCarpet => 8125u16, + BlockKind::CrimsonHyphae => 15237u16, + BlockKind::TubeCoralBlock => 9765u16, + BlockKind::ChiseledStoneBricks => 4567u16, + BlockKind::DeadFireCoralWallFan => 9841u16, + BlockKind::PurpleWool => 1450u16, + BlockKind::Podzol => 13u16, + BlockKind::LightBlueTerracotta => 7068u16, + BlockKind::SoulSoil => 4070u16, + BlockKind::Carrots => 6543u16, + BlockKind::SpruceLeaves => 175u16, + BlockKind::ShulkerBox => 9527u16, + BlockKind::CrimsonStairs => 15652u16, + BlockKind::DeadBrainCoralWallFan => 9825u16, + BlockKind::LightBlueCarpet => 8119u16, + BlockKind::PolishedAndesiteStairs => 10958u16, + BlockKind::Mycelium => 5214u16, + BlockKind::LightBlueShulkerBox => 9551u16, + BlockKind::AndesiteStairs => 10798u16, + BlockKind::LightBlueCandleCake => 17639u16, + BlockKind::TallGrass => 8144u16, + BlockKind::Cornflower => 1478u16, + BlockKind::BlueOrchid => 1470u16, + BlockKind::Diorite => 4u16, + BlockKind::OrangeBed => 1112u16, + BlockKind::AzaleaLeaves => 245u16, + BlockKind::DarkOakFence => 8987u16, + BlockKind::LightBlueWallBanner => 8418u16, + BlockKind::MagentaShulkerBox => 9545u16, + BlockKind::BlueCandle => 17565u16, + BlockKind::Rail => 3721u16, + BlockKind::PurpleCandleCake => 17653u16, + BlockKind::WaxedWeatheredCutCopper => 18173u16, + BlockKind::CyanWool => 1449u16, + BlockKind::JungleWood => 123u16, + BlockKind::BlueWallBanner => 8450u16, + BlockKind::GrayStainedGlass => 4171u16, + BlockKind::HeavyWeightedPressurePlate => 6883u16, + BlockKind::GreenBed => 1304u16, + BlockKind::CobbledDeepslate => 18686u16, + BlockKind::DeadHornCoralFan => 9799u16, + BlockKind::Azalea => 18620u16, + BlockKind::DarkOakButton => 6695u16, + BlockKind::DeepslateBrickStairs => 19999u16, + BlockKind::LightGrayGlazedTerracotta => 9659u16, + BlockKind::Kelp => 9745u16, + BlockKind::BlueCarpet => 8127u16, + BlockKind::SmoothQuartz => 8666u16, + BlockKind::WaxedOxidizedCutCopperStairs => 18255u16, + BlockKind::QuartzBlock => 6944u16, + BlockKind::BlackstoneSlab => 16503u16, + BlockKind::BubbleCoralFan => 9805u16, + BlockKind::StoneBrickStairs => 5212u16, + BlockKind::PolishedDeepslateSlab => 19183u16, + BlockKind::StrippedDarkOakLog => 108u16, + BlockKind::PottedAllium => 6522u16, + BlockKind::Melon => 4836u16, + BlockKind::OrangeCandleCake => 17635u16, + BlockKind::StrippedOakLog => 111u16, + BlockKind::MovingPiston => 1467u16, + BlockKind::RootedDirt => 18682u16, + BlockKind::EndRod => 9313u16, + BlockKind::DeadFireCoralFan => 9797u16, + BlockKind::YellowBed => 1160u16, + BlockKind::BrownShulkerBox => 9605u16, + BlockKind::JungleLog => 87u16, + BlockKind::PolishedDeepslate => 19097u16, + BlockKind::CoarseDirt => 11u16, + BlockKind::GreenConcrete => 9701u16, + BlockKind::ExposedCopper => 17816u16, + BlockKind::BlueStainedGlassPane => 7464u16, + BlockKind::EndStoneBricks => 9468u16, + BlockKind::DeadHornCoral => 9779u16, + BlockKind::MossCarpet => 18622u16, + BlockKind::FireCoralFan => 9807u16, + BlockKind::OakDoor => 3693u16, + BlockKind::JungleSign => 3597u16, + BlockKind::DeadBubbleCoralWallFan => 9833u16, + BlockKind::GreenWallBanner => 8458u16, + BlockKind::DarkOakSlab => 8585u16, + BlockKind::WarpedFence => 15380u16, + BlockKind::NetherPortal => 4084u16, + BlockKind::BlueTerracotta => 7076u16, + BlockKind::Farmland => 3429u16, + BlockKind::SandstoneSlab => 8603u16, + BlockKind::EmeraldOre => 5455u16, + BlockKind::CrimsonFenceGate => 15540u16, + BlockKind::Glowstone => 4082u16, + BlockKind::RedstoneWire => 3409u16, + BlockKind::SmoothStoneSlab => 8597u16, + BlockKind::LightWeightedPressurePlate => 6867u16, + BlockKind::LargeFern => 8146u16, + BlockKind::PrismarineBrickSlab => 8105u16, + BlockKind::BrownConcrete => 9700u16, + BlockKind::BrainCoralFan => 9803u16, + BlockKind::PolishedDioriteStairs => 10238u16, + BlockKind::WarpedDoor => 15908u16, + BlockKind::PolishedBlackstoneButton => 17030u16, + BlockKind::DeadBrainCoralFan => 9793u16, + BlockKind::LimeCandleCake => 17643u16, + BlockKind::Grindstone => 15082u16, + BlockKind::YellowGlazedTerracotta => 9643u16, + BlockKind::LightBlueConcretePowder => 9707u16, + BlockKind::LimeTerracotta => 7070u16, + BlockKind::MagmaBlock => 9503u16, + BlockKind::PolishedBlackstoneBricks => 16505u16, + BlockKind::IronTrapdoor => 7850u16, + BlockKind::AcaciaLog => 90u16, + BlockKind::PottedWhiteTulip => 6526u16, + BlockKind::ExposedCutCopperStairs => 18063u16, + BlockKind::PottedWarpedFungus => 16089u16, + BlockKind::PolishedBlackstoneBrickWall => 16917u16, + BlockKind::MossyStoneBricks => 4565u16, + BlockKind::PurpleConcretePowder => 9714u16, + BlockKind::WeatheredCutCopperSlab => 18155u16, + BlockKind::KelpPlant => 9746u16, + BlockKind::BigDripleafStem => 18663u16, + BlockKind::LimeWool => 1445u16, + BlockKind::LimeCarpet => 8121u16, + BlockKind::BrainCoralBlock => 9766u16, + BlockKind::YellowStainedGlass => 4168u16, + BlockKind::HornCoralBlock => 9769u16, + BlockKind::BlueBed => 1272u16, + BlockKind::Lever => 3873u16, + BlockKind::DeadBrainCoral => 9773u16, + BlockKind::CrimsonFence => 15348u16, + BlockKind::LimeWallBanner => 8426u16, + BlockKind::Lilac => 8138u16, + BlockKind::RedNetherBrickStairs => 10878u16, + BlockKind::CrimsonTrapdoor => 15444u16, + BlockKind::CoalBlock => 8133u16, + BlockKind::BambooSapling => 9901u16, + BlockKind::Netherrack => 4068u16, + BlockKind::Air => 0u16, + BlockKind::MagentaBed => 1128u16, + BlockKind::WhiteCarpet => 8116u16, + BlockKind::Bedrock => 33u16, + BlockKind::PottedCrimsonFungus => 16088u16, + BlockKind::PottedDandelion => 6519u16, + BlockKind::IronDoor => 3939u16, + BlockKind::LightGrayStainedGlassPane => 7368u16, + BlockKind::MagentaConcretePowder => 9706u16, + BlockKind::Tuff => 17714u16, + BlockKind::Grass => 1398u16, + BlockKind::LimeCandle => 17469u16, + BlockKind::WallTorch => 1495u16, + BlockKind::CyanBanner => 8306u16, + BlockKind::BubbleCoral => 9785u16, + BlockKind::AzureBluet => 1472u16, + BlockKind::PottedFern => 6518u16, + BlockKind::WhiteBed => 1096u16, + BlockKind::TripwireHook => 5480u16, + BlockKind::EndPortalFrame => 5358u16, + BlockKind::Beetroots => 9472u16, + BlockKind::WarpedFenceGate => 15572u16, + BlockKind::Candle => 17373u16, + BlockKind::PottedAzureBluet => 6523u16, + BlockKind::Andesite => 6u16, + BlockKind::DragonHead => 6811u16, + BlockKind::EnchantingTable => 5333u16, + BlockKind::CyanTerracotta => 7074u16, + BlockKind::GreenShulkerBox => 9611u16, + BlockKind::Clay => 4016u16, + BlockKind::PottedAzaleaBush => 20340u16, + BlockKind::PolishedBlackstoneBrickSlab => 16513u16, + BlockKind::WhiteConcretePowder => 9704u16, + BlockKind::OxidizedCutCopperStairs => 17903u16, + BlockKind::GrayConcrete => 9695u16, + BlockKind::PlayerHead => 6771u16, + BlockKind::DeadBubbleCoralFan => 9795u16, + BlockKind::FlowerPot => 6511u16, + BlockKind::DeepslateTileStairs => 19588u16, + BlockKind::RedSandstone => 8467u16, + BlockKind::RedCandleCake => 17661u16, + BlockKind::SmoothQuartzSlab => 11086u16, + BlockKind::JungleStairs => 5849u16, + BlockKind::DarkOakWallSign => 3849u16, + BlockKind::YellowConcrete => 9692u16, + BlockKind::CrimsonPlanks => 15299u16, + BlockKind::OxeyeDaisy => 1477u16, + BlockKind::WhiteWool => 1440u16, + BlockKind::OakTrapdoor => 4243u16, + BlockKind::BirchDoor => 9115u16, + BlockKind::BlueIce => 9898u16, + BlockKind::RedMushroomBlock => 4701u16, + BlockKind::BubbleColumn => 9918u16, + BlockKind::RedNetherBrickWall => 14032u16, + BlockKind::Campfire => 15175u16, + BlockKind::PointedDripstone => 18563u16, + BlockKind::EmeraldBlock => 5609u16, + BlockKind::BlastFurnace => 15068u16, + BlockKind::Dandelion => 1468u16, + BlockKind::MagentaCarpet => 8118u16, + BlockKind::WitherSkeletonWallSkull => 6735u16, + BlockKind::StrippedJungleWood => 141u16, + BlockKind::LightBlueCandle => 17437u16, + BlockKind::CarvedPumpkin => 4088u16, + BlockKind::StoneBricks => 4564u16, + BlockKind::BirchButton => 6623u16, + BlockKind::BirchPlanks => 17u16, + BlockKind::OakLog => 78u16, + BlockKind::OxidizedCopper => 17814u16, + BlockKind::IronBars => 4797u16, + BlockKind::GraniteWall => 12736u16, + BlockKind::CopperOre => 17818u16, + BlockKind::LimeBanner => 8242u16, + BlockKind::GraniteStairs => 10718u16, + BlockKind::StrippedCrimsonStem => 15234u16, + BlockKind::FireCoral => 9787u16, + BlockKind::RedStainedGlassPane => 7560u16, + BlockKind::PolishedAndesiteSlab => 11110u16, + BlockKind::WarpedTrapdoor => 15508u16, + BlockKind::StrippedWarpedStem => 15217u16, + BlockKind::RedBanner => 8386u16, + BlockKind::BlackWool => 1455u16, + BlockKind::PinkTulip => 1476u16, + BlockKind::EndPortal => 5350u16, + BlockKind::Composter => 16013u16, + BlockKind::GreenCandleCake => 17659u16, + BlockKind::TrappedChest => 6851u16, + BlockKind::OakWallSign => 3809u16, + BlockKind::AmethystBlock => 17664u16, + BlockKind::TubeCoralFan => 9801u16, + BlockKind::CrimsonSign => 15940u16, + BlockKind::AmethystCluster => 17677u16, + BlockKind::PottedCrimsonRoots => 16090u16, + BlockKind::Calcite => 17715u16, + BlockKind::LightBlueWool => 1443u16, + BlockKind::PottedCornflower => 6529u16, + BlockKind::BlackConcrete => 9703u16, + BlockKind::SnowBlock => 3999u16, + BlockKind::GrayConcretePowder => 9711u16, + BlockKind::SmallAmethystBud => 17713u16, + BlockKind::CutCopperSlab => 18167u16, + BlockKind::BigDripleaf => 18655u16, + BlockKind::GrayBanner => 8274u16, + BlockKind::Granite => 2u16, + BlockKind::PinkBed => 1192u16, + BlockKind::CrackedNetherBricks => 17356u16, + BlockKind::DeepslateBrickSlab => 20005u16, + BlockKind::CrimsonNylium => 15241u16, + BlockKind::Jigsaw => 16004u16, + BlockKind::DeepslateCopperOre => 17819u16, + BlockKind::MagentaStainedGlassPane => 7176u16, + BlockKind::Smoker => 15060u16, + BlockKind::JungleButton => 6647u16, + BlockKind::OrangeConcretePowder => 9705u16, + BlockKind::NetheriteBlock => 16080u16, + BlockKind::PottedDarkOakSapling => 6517u16, + BlockKind::BrownGlazedTerracotta => 9675u16, + BlockKind::WarpedStairs => 15732u16, + BlockKind::Cobblestone => 14u16, + BlockKind::GreenConcretePowder => 9717u16, + BlockKind::DeepslateIronOre => 72u16, + BlockKind::BlackCandleCake => 17663u16, + BlockKind::GrayCandle => 17501u16, + BlockKind::DarkOakLog => 93u16, + BlockKind::EndStone => 5359u16, + BlockKind::DamagedAnvil => 6827u16, + BlockKind::PolishedAndesite => 7u16, + BlockKind::PolishedBlackstonePressurePlate => 17006u16, + BlockKind::PottedFloweringAzaleaBush => 20341u16, + BlockKind::WhiteCandleCake => 17633u16, + BlockKind::OrangeWallBanner => 8410u16, + BlockKind::YellowWallBanner => 8422u16, + BlockKind::MossyStoneBrickWall => 12412u16, + BlockKind::LargeAmethystBud => 17689u16, + BlockKind::PowderSnow => 17717u16, + BlockKind::JungleTrapdoor => 4435u16, + BlockKind::SoulWallTorch => 4081u16, + BlockKind::DeadBush => 1400u16, + BlockKind::PottedLilyOfTheValley => 6530u16, + BlockKind::DarkOakTrapdoor => 4563u16, + BlockKind::StrippedSpruceWood => 135u16, + BlockKind::SweetBerryBush => 15211u16, + BlockKind::BirchLeaves => 189u16, + BlockKind::GrayStainedGlassPane => 7336u16, + BlockKind::DeadTubeCoralFan => 9791u16, + BlockKind::LightBlueBanner => 8210u16, + BlockKind::WeatheredCutCopper => 17821u16, + BlockKind::Loom => 15040u16, + BlockKind::CutCopperStairs => 18143u16, + BlockKind::YellowTerracotta => 7069u16, + BlockKind::DiamondBlock => 3412u16, + BlockKind::RedConcrete => 9702u16, + BlockKind::NetherBrickWall => 13384u16, + BlockKind::DeepslateLapisOre => 264u16, + BlockKind::InfestedMossyStoneBricks => 4571u16, + BlockKind::Cobweb => 1397u16, + BlockKind::RedNetherBrickSlab => 11104u16, + BlockKind::DeepslateGoldOre => 70u16, + BlockKind::LavaCauldron => 5346u16, + BlockKind::MagentaWallBanner => 8414u16, + BlockKind::AcaciaSign => 3565u16, + BlockKind::MagentaTerracotta => 7067u16, + BlockKind::CutSandstoneSlab => 8609u16, + BlockKind::Vine => 4892u16, + BlockKind::LilyPad => 5215u16, + BlockKind::QuartzBricks => 17357u16, + BlockKind::PolishedDeepslateWall => 19507u16, + BlockKind::LilyOfTheValley => 1480u16, + BlockKind::SoulCampfire => 15207u16, + BlockKind::SandstoneWall => 14356u16, + BlockKind::PottedPinkTulip => 6527u16, + BlockKind::BrainCoralWallFan => 9865u16, + BlockKind::PrismarineStairs => 7933u16, + BlockKind::SpruceFence => 8859u16, + BlockKind::MagentaStainedGlass => 4166u16, + BlockKind::DarkOakSapling => 32u16, + BlockKind::HoneycombBlock => 16079u16, + BlockKind::TintedGlass => 17716u16, + BlockKind::WaxedWeatheredCopper => 18169u16, + BlockKind::LightBlueBed => 1144u16, + BlockKind::OakSign => 3469u16, + BlockKind::BrownConcretePowder => 9716u16, + BlockKind::Fern => 1399u16, + BlockKind::Sand => 66u16, + BlockKind::IronOre => 71u16, + BlockKind::FrostedIce => 9502u16, + BlockKind::LightBlueGlazedTerracotta => 9639u16, + BlockKind::GreenCandle => 17597u16, + BlockKind::BubbleCoralWallFan => 9873u16, + BlockKind::WarpedNylium => 15224u16, + BlockKind::Basalt => 4073u16, + BlockKind::StructureBlock => 15992u16, + BlockKind::RedSandstoneSlab => 8651u16, + BlockKind::Terracotta => 8132u16, + BlockKind::PinkShulkerBox => 9569u16, + BlockKind::BrickSlab => 8627u16, + BlockKind::JackOLantern => 4092u16, + BlockKind::LightBlueConcrete => 9691u16, + BlockKind::WarpedRoots => 15227u16, + BlockKind::BubbleCoralBlock => 9767u16, + BlockKind::Allium => 1471u16, + BlockKind::PurpleCandle => 17549u16, + BlockKind::StoneSlab => 8591u16, + BlockKind::YellowBanner => 8226u16, + BlockKind::IronBlock => 1484u16, + BlockKind::NetherWart => 5332u16, + BlockKind::StructureVoid => 9509u16, + BlockKind::Beacon => 5862u16, + BlockKind::PolishedBlackstoneStairs => 16998u16, + BlockKind::CaveVines => 18616u16, + BlockKind::SmallDripleaf => 18679u16, + BlockKind::DarkOakDoor => 9307u16, + BlockKind::RedWool => 1454u16, + BlockKind::WhiteWallBanner => 8406u16, + BlockKind::CommandBlock => 5861u16, + BlockKind::BrownBanner => 8354u16, + BlockKind::SmoothSandstoneSlab => 11080u16, + BlockKind::SoulFire => 2008u16, + BlockKind::GreenBanner => 8370u16, + BlockKind::OrangeStainedGlassPane => 7144u16, + BlockKind::StrippedJungleLog => 102u16, + BlockKind::DeepslateRedstoneOre => 3955u16, + BlockKind::LimeConcrete => 9693u16, + BlockKind::AcaciaPressurePlate => 3949u16, + BlockKind::InfestedCobblestone => 4569u16, + BlockKind::PurpurSlab => 8663u16, + BlockKind::Ice => 3998u16, + BlockKind::BlackStainedGlassPane => 7592u16, + BlockKind::LightGrayShulkerBox => 9581u16, + BlockKind::SmoothSandstoneStairs => 10558u16, + BlockKind::BlackConcretePowder => 9719u16, + BlockKind::AcaciaFenceGate => 8795u16, + BlockKind::CrackedPolishedBlackstoneBricks => 16506u16, + BlockKind::PurpleTerracotta => 7075u16, + BlockKind::StickyPiston => 1396u16, + BlockKind::PumpkinStem => 4852u16, + BlockKind::Beehive => 16077u16, + BlockKind::LimeGlazedTerracotta => 9647u16, + BlockKind::AcaciaTrapdoor => 4499u16, + BlockKind::EndGateway => 9474u16, + BlockKind::TwistingVinesPlant => 15297u16, + BlockKind::Sponge => 260u16, + BlockKind::PinkGlazedTerracotta => 9651u16, + BlockKind::CartographyTable => 15069u16, + BlockKind::FloweringAzaleaLeaves => 259u16, + BlockKind::ExposedCutCopper => 17822u16, + BlockKind::CrackedDeepslateBricks => 20331u16, + BlockKind::JungleLeaves => 203u16, + BlockKind::CrimsonRoots => 15298u16, + BlockKind::WhiteTerracotta => 7065u16, + BlockKind::DarkPrismarine => 7853u16, + BlockKind::BoneBlock => 9508u16, + BlockKind::YellowWool => 1444u16, + BlockKind::SmoothQuartzStairs => 10638u16, + BlockKind::BlueShulkerBox => 9599u16, + BlockKind::RedTulip => 1473u16, + BlockKind::CyanCandle => 17533u16, + BlockKind::WaxedWeatheredCutCopperStairs => 18335u16, + BlockKind::StoneBrickSlab => 8633u16, + BlockKind::CrimsonStem => 15231u16, + BlockKind::BirchLog => 84u16, + BlockKind::PottedDeadBush => 6534u16, + BlockKind::DioriteStairs => 11038u16, + BlockKind::BeeNest => 16053u16, + BlockKind::BuddingAmethyst => 17665u16, + BlockKind::OakLeaves => 161u16, + BlockKind::MossyStoneBrickSlab => 11056u16, + BlockKind::WetSponge => 261u16, + BlockKind::Poppy => 1469u16, + BlockKind::PlayerWallHead => 6775u16, + BlockKind::BlackShulkerBox => 9623u16, + BlockKind::NetherBrickFence => 5248u16, + BlockKind::OakStairs => 2089u16, + BlockKind::LightBlueStainedGlassPane => 7208u16, + BlockKind::Bricks => 1485u16, + BlockKind::CutRedSandstoneSlab => 8657u16, + BlockKind::SeaPickle => 9897u16, + BlockKind::CyanBed => 1240u16, + BlockKind::NetherWartBlock => 9504u16, + BlockKind::PottedSpruceSapling => 6513u16, + BlockKind::RoseBush => 8140u16, + BlockKind::PolishedGraniteStairs => 9998u16, + BlockKind::CobbledDeepslateSlab => 18772u16, + BlockKind::RedWallBanner => 8462u16, + BlockKind::Cake => 4099u16, + BlockKind::PottedRedMushroom => 6532u16, + BlockKind::AcaciaStairs => 7672u16, + BlockKind::PrismarineWall => 11764u16, + BlockKind::PinkWallBanner => 8430u16, + BlockKind::JunglePlanks => 18u16, + BlockKind::PolishedGraniteSlab => 11044u16, + BlockKind::BirchSapling => 26u16, + BlockKind::DarkOakLeaves => 231u16, + BlockKind::RedBed => 1320u16, + BlockKind::BrownTerracotta => 7077u16, + BlockKind::DarkPrismarineStairs => 8093u16, + BlockKind::Stonecutter => 15103u16, + BlockKind::PolishedBasalt => 4076u16, + BlockKind::BlueGlazedTerracotta => 9671u16, + BlockKind::WarpedHyphae => 15220u16, + BlockKind::PurpleWallBanner => 8446u16, + BlockKind::HangingRoots => 18681u16, + BlockKind::OrangeCandle => 17405u16, + BlockKind::AcaciaPlanks => 19u16, + BlockKind::Torch => 1491u16, + BlockKind::BlackBanner => 8402u16, + BlockKind::DeadBubbleCoral => 9775u16, + BlockKind::PottedOakSapling => 6512u16, + BlockKind::CutRedSandstone => 8469u16, + BlockKind::FloweringAzalea => 18621u16, + BlockKind::YellowCarpet => 8120u16, + BlockKind::NetherBrickSlab => 8639u16, + BlockKind::WarpedSlab => 15312u16, + BlockKind::BrainCoral => 9783u16, + BlockKind::ChainCommandBlock => 9498u16, + BlockKind::WhiteGlazedTerracotta => 9627u16, + BlockKind::DeadTubeCoralBlock => 9760u16, + BlockKind::DarkOakPressurePlate => 3951u16, + BlockKind::MossyCobblestoneWall => 6510u16, + BlockKind::WaxedCutCopperStairs => 18495u16, + BlockKind::Anvil => 6819u16, + BlockKind::BirchWood => 120u16, + BlockKind::RedGlazedTerracotta => 9683u16, + BlockKind::PottedBrownMushroom => 6533u16, + BlockKind::AttachedPumpkinStem => 4840u16, + BlockKind::Stone => 1u16, + BlockKind::Bookshelf => 1488u16, + BlockKind::RedstoneOre => 3953u16, + BlockKind::DarkOakStairs => 7752u16, + BlockKind::DeadFireCoralBlock => 9763u16, + BlockKind::HoneyBlock => 16078u16, + BlockKind::BrownCandleCake => 17657u16, + BlockKind::WeatheredCopper => 17815u16, + BlockKind::PetrifiedOakSlab => 8615u16, + BlockKind::CrimsonDoor => 15844u16, + BlockKind::WhiteStainedGlassPane => 7112u16, + BlockKind::BlackCarpet => 8131u16, + BlockKind::PottedOxeyeDaisy => 6528u16, + BlockKind::PolishedGranite => 3u16, + BlockKind::StrippedWarpedHyphae => 15223u16, + BlockKind::DeepslateTiles => 19508u16, + BlockKind::GreenWool => 1453u16, + BlockKind::PottedPoppy => 6520u16, + BlockKind::LightGrayTerracotta => 7073u16, + BlockKind::OrangeConcrete => 9689u16, + BlockKind::PinkStainedGlassPane => 7304u16, + BlockKind::CoalOre => 73u16, + BlockKind::CobblestoneSlab => 8621u16, + BlockKind::LimeBed => 1176u16, + BlockKind::BlackWallBanner => 8466u16, + BlockKind::OrangeTulip => 1474u16, + BlockKind::DarkOakFenceGate => 8827u16, + BlockKind::GreenTerracotta => 7078u16, + BlockKind::CaveAir => 9916u16, + BlockKind::Spawner => 2009u16, + BlockKind::Furnace => 3437u16, + BlockKind::ChiseledQuartzBlock => 6945u16, + BlockKind::CyanStainedGlass => 4173u16, + BlockKind::EndStoneBrickStairs => 10398u16, + BlockKind::MagentaGlazedTerracotta => 9635u16, + BlockKind::LightGrayCandleCake => 17649u16, + BlockKind::AttachedMelonStem => 4844u16, + BlockKind::Scaffolding => 15036u16, + BlockKind::DetectorRail => 1384u16, + BlockKind::OakPlanks => 15u16, + BlockKind::WaxedOxidizedCutCopperSlab => 18501u16, + BlockKind::Water => 49u16, + BlockKind::CrimsonButton => 15756u16, + BlockKind::PinkCarpet => 8122u16, + BlockKind::OrangeStainedGlass => 4165u16, + BlockKind::AcaciaFence => 8955u16, + BlockKind::BlueBanner => 8338u16, + BlockKind::OakSapling => 22u16, + BlockKind::PrismarineBricks => 7852u16, + BlockKind::JungleFenceGate => 8763u16, + BlockKind::DioriteWall => 15004u16, + BlockKind::PurpurStairs => 9467u16, + BlockKind::SpruceLog => 81u16, + BlockKind::WaxedExposedCutCopperSlab => 18513u16, + BlockKind::RawCopperBlock => 20338u16, + BlockKind::WarpedButton => 15780u16, + BlockKind::WhiteStainedGlass => 4164u16, + BlockKind::HornCoralFan => 9809u16, + BlockKind::CrimsonWallSign => 15980u16, + BlockKind::CobblestoneWall => 6186u16, + BlockKind::CyanCandleCake => 17651u16, + BlockKind::StonePressurePlate => 3875u16, + BlockKind::Jukebox => 4034u16, + BlockKind::SpruceSlab => 8561u16, + BlockKind::BlackGlazedTerracotta => 9687u16, + BlockKind::Conduit => 9900u16, + BlockKind::TwistingVines => 15296u16, + BlockKind::SpruceSapling => 24u16, + BlockKind::OakPressurePlate => 3941u16, + BlockKind::StrippedSpruceLog => 96u16, + BlockKind::RedstoneBlock => 6932u16, + BlockKind::NoteBlock => 1080u16, + BlockKind::BrickWall => 11440u16, + BlockKind::CyanConcrete => 9697u16, + BlockKind::RedstoneWallTorch => 3965u16, + BlockKind::Seagrass => 1401u16, + BlockKind::LightGrayConcretePowder => 9712u16, + BlockKind::SmithingTable => 15099u16, + BlockKind::MelonStem => 4860u16, + BlockKind::OrangeTerracotta => 7066u16, + BlockKind::ChiseledRedSandstone => 8468u16, + BlockKind::RawIronBlock => 20337u16, + BlockKind::OakFence => 4066u16, + BlockKind::WarpedPlanks => 15300u16, + BlockKind::OrangeGlazedTerracotta => 9631u16, + BlockKind::BrownMushroom => 1481u16, + BlockKind::Fire => 2007u16, + BlockKind::PinkTerracotta => 7071u16, + BlockKind::Dirt => 10u16, + BlockKind::SmoothRedSandstone => 8667u16, + BlockKind::PurpleBed => 1256u16, + BlockKind::OakFenceGate => 5052u16, + BlockKind::OakButton => 6575u16, + BlockKind::PrismarineSlab => 8099u16, + BlockKind::AcaciaDoor => 9243u16, + BlockKind::PurpleBanner => 8322u16, + BlockKind::BrownWallBanner => 8454u16, + BlockKind::Target => 16029u16, + BlockKind::OxidizedCutCopper => 17820u16, + BlockKind::BirchTrapdoor => 4371u16, + BlockKind::ZombieHead => 6751u16, + BlockKind::GrayCandleCake => 17647u16, + BlockKind::BlackTerracotta => 7080u16, + BlockKind::CopperBlock => 17817u16, + BlockKind::DarkOakSign => 3629u16, + BlockKind::WhiteBanner => 8162u16, + BlockKind::InfestedStone => 4568u16, + BlockKind::WhiteCandle => 17389u16, + BlockKind::WhiteConcrete => 9688u16, + BlockKind::LimeStainedGlassPane => 7272u16, + BlockKind::DeadHornCoralBlock => 9764u16, + BlockKind::MagentaConcrete => 9690u16, + BlockKind::BirchSign => 3533u16, + BlockKind::BlackStainedGlass => 4179u16, + BlockKind::BlueCandleCake => 17655u16, + BlockKind::Ladder => 3701u16, + BlockKind::Observer => 9521u16, + BlockKind::YellowCandleCake => 17641u16, + BlockKind::Sunflower => 8136u16, + BlockKind::PinkStainedGlass => 4170u16, + BlockKind::SmoothRedSandstoneStairs => 10078u16, + BlockKind::LapisOre => 263u16, + BlockKind::Lectern => 15098u16, + BlockKind::ExposedCutCopperSlab => 18161u16, + BlockKind::NetherQuartzOre => 6933u16, + BlockKind::Deepslate => 18685u16, + BlockKind::EnderChest => 5464u16, + BlockKind::WarpedSign => 15972u16, + BlockKind::PottedBlueOrchid => 6521u16, + BlockKind::RedTerracotta => 7079u16, + BlockKind::GrassBlock => 9u16, + BlockKind::PurpurBlock => 9384u16, + BlockKind::DeepslateBrickWall => 20329u16, + BlockKind::CutSandstone => 280u16, + BlockKind::OxidizedCutCopperSlab => 18149u16, + BlockKind::CyanGlazedTerracotta => 9663u16, + BlockKind::AcaciaWood => 126u16, + BlockKind::PottedRedTulip => 6524u16, + BlockKind::PolishedBlackstoneWall => 17354u16, + BlockKind::SpruceDoor => 9051u16, + BlockKind::PoweredRail => 1360u16, + BlockKind::LimeConcretePowder => 9709u16, + BlockKind::DeadTubeCoral => 9771u16, + BlockKind::JungleFence => 8923u16, + BlockKind::MediumAmethystBud => 17701u16, + BlockKind::Comparator => 6899u16, + BlockKind::Sandstone => 278u16, + BlockKind::PurpurPillar => 9387u16, + BlockKind::LimeShulkerBox => 9563u16, + BlockKind::RedCarpet => 8130u16, + BlockKind::WaxedOxidizedCopper => 18171u16, + BlockKind::PrismarineBrickStairs => 8013u16, + BlockKind::DeadFireCoral => 9777u16, + BlockKind::GrayBed => 1208u16, + BlockKind::AcaciaSapling => 30u16, + BlockKind::CraftingTable => 3413u16, + BlockKind::DripstoneBlock => 18564u16, + BlockKind::DirtPath => 9473u16, + BlockKind::CaveVinesPlant => 18618u16, + BlockKind::QuartzStairs => 7028u16, + BlockKind::YellowShulkerBox => 9557u16, + BlockKind::StrippedAcaciaWood => 144u16, + BlockKind::SpruceTrapdoor => 4307u16, + BlockKind::GlowLichen => 5020u16, + BlockKind::DeepslateTileSlab => 19594u16, + BlockKind::MagentaWool => 1442u16, + BlockKind::PinkCandleCake => 17645u16, + BlockKind::DarkOakWood => 129u16, + BlockKind::WaxedCutCopperSlab => 18519u16, + BlockKind::SprucePressurePlate => 3943u16, + BlockKind::Cocoa => 5374u16, + BlockKind::Hopper => 6943u16, + BlockKind::LimeStainedGlass => 4169u16, + BlockKind::DarkOakPlanks => 20u16, + BlockKind::PurpleGlazedTerracotta => 9667u16, + BlockKind::Glass => 262u16, + BlockKind::LightGrayConcrete => 9696u16, + } + } +} +impl BlockKind { + #[doc = "Returns the `light_emission` property of this `BlockKind`."] + #[inline] + pub fn light_emission(&self) -> u8 { + match self { + BlockKind::LightBlueBanner => 0u8, + BlockKind::PottedRedMushroom => 0u8, + BlockKind::DeepslateTileSlab => 0u8, + BlockKind::QuartzPillar => 0u8, + BlockKind::MagentaBanner => 0u8, + BlockKind::CutRedSandstoneSlab => 0u8, + BlockKind::JungleLog => 0u8, + BlockKind::PolishedBlackstone => 0u8, + BlockKind::RedMushroom => 0u8, + BlockKind::GrassBlock => 0u8, + BlockKind::WhiteTulip => 0u8, + BlockKind::LavaCauldron => 15u8, + BlockKind::PottedCactus => 0u8, + BlockKind::FloweringAzalea => 0u8, + BlockKind::BlackShulkerBox => 0u8, + BlockKind::PolishedDiorite => 0u8, + BlockKind::LightGrayBed => 0u8, + BlockKind::PolishedBlackstoneWall => 0u8, + BlockKind::DarkOakTrapdoor => 0u8, + BlockKind::SlimeBlock => 0u8, + BlockKind::WarpedNylium => 0u8, + BlockKind::Candle => 0u8, + BlockKind::PottedRedTulip => 0u8, + BlockKind::PolishedAndesiteSlab => 0u8, + BlockKind::SoulSand => 0u8, + BlockKind::PointedDripstone => 0u8, + BlockKind::WeatheredCutCopperSlab => 0u8, + BlockKind::InfestedCrackedStoneBricks => 0u8, + BlockKind::Dropper => 0u8, + BlockKind::PolishedDioriteStairs => 0u8, + BlockKind::BrewingStand => 1u8, + BlockKind::CrimsonPlanks => 0u8, + BlockKind::YellowBanner => 0u8, + BlockKind::MediumAmethystBud => 2u8, + BlockKind::TintedGlass => 0u8, + BlockKind::CoalOre => 0u8, + BlockKind::Farmland => 0u8, + BlockKind::MelonStem => 0u8, + BlockKind::BlueConcretePowder => 0u8, + BlockKind::ChorusPlant => 0u8, + BlockKind::WhiteCandle => 0u8, + BlockKind::Melon => 0u8, + BlockKind::LightGrayGlazedTerracotta => 0u8, + BlockKind::BrownBanner => 0u8, + BlockKind::CrimsonFungus => 0u8, + BlockKind::JungleFenceGate => 0u8, + BlockKind::CutSandstone => 0u8, + BlockKind::Bricks => 0u8, + BlockKind::DeadFireCoral => 0u8, + BlockKind::PolishedBlackstonePressurePlate => 0u8, + BlockKind::DeepslateBrickSlab => 0u8, + BlockKind::Basalt => 0u8, + BlockKind::CandleCake => 0u8, + BlockKind::GreenConcrete => 0u8, + BlockKind::DeadFireCoralBlock => 0u8, + BlockKind::RedTulip => 0u8, + BlockKind::PolishedGraniteSlab => 0u8, + BlockKind::PottedOrangeTulip => 0u8, + BlockKind::CyanTerracotta => 0u8, + BlockKind::GrayConcretePowder => 0u8, + BlockKind::WeatheredCutCopperStairs => 0u8, + BlockKind::PurpleWallBanner => 0u8, + BlockKind::CyanWallBanner => 0u8, + BlockKind::BigDripleafStem => 0u8, + BlockKind::ChainCommandBlock => 0u8, + BlockKind::LightBlueShulkerBox => 0u8, + BlockKind::MossCarpet => 0u8, + BlockKind::OxeyeDaisy => 0u8, + BlockKind::AzaleaLeaves => 0u8, + BlockKind::CutCopperStairs => 0u8, + BlockKind::MushroomStem => 0u8, + BlockKind::GreenWool => 0u8, + BlockKind::DarkOakWallSign => 0u8, + BlockKind::CyanGlazedTerracotta => 0u8, + BlockKind::RedConcrete => 0u8, + BlockKind::DeepslateCoalOre => 0u8, + BlockKind::DeadTubeCoralFan => 0u8, + BlockKind::VoidAir => 0u8, + BlockKind::WarpedFenceGate => 0u8, + BlockKind::WarpedSign => 0u8, + BlockKind::GrayCandle => 0u8, + BlockKind::PowderSnow => 0u8, + BlockKind::RedStainedGlassPane => 0u8, + BlockKind::SandstoneWall => 0u8, + BlockKind::SoulTorch => 10u8, + BlockKind::GreenConcretePowder => 0u8, + BlockKind::Lever => 0u8, + BlockKind::PinkWallBanner => 0u8, + BlockKind::CreeperHead => 0u8, + BlockKind::DeepslateBrickStairs => 0u8, + BlockKind::RedstoneLamp => 0u8, + BlockKind::MossyCobblestoneStairs => 0u8, + BlockKind::TwistingVinesPlant => 0u8, + BlockKind::WhiteCandleCake => 0u8, + BlockKind::SpruceWood => 0u8, + BlockKind::HornCoralWallFan => 0u8, + BlockKind::HornCoralFan => 0u8, + BlockKind::NetherSprouts => 0u8, + BlockKind::SeaPickle => 6u8, + BlockKind::GreenCarpet => 0u8, + BlockKind::PurpleConcretePowder => 0u8, + BlockKind::WaxedWeatheredCutCopperSlab => 0u8, + BlockKind::Cake => 0u8, + BlockKind::GlowLichen => 0u8, + BlockKind::JungleLeaves => 0u8, + BlockKind::DragonHead => 0u8, + BlockKind::RedSandstoneSlab => 0u8, + BlockKind::LightGrayStainedGlass => 0u8, + BlockKind::AcaciaStairs => 0u8, + BlockKind::BrownConcretePowder => 0u8, + BlockKind::RedNetherBrickWall => 0u8, + BlockKind::LightGrayCandle => 0u8, + BlockKind::CrimsonStairs => 0u8, + BlockKind::PinkCandleCake => 0u8, + BlockKind::WhiteBed => 0u8, + BlockKind::SmoothRedSandstoneStairs => 0u8, + BlockKind::NetheriteBlock => 0u8, + BlockKind::PolishedBlackstoneSlab => 0u8, + BlockKind::PinkStainedGlass => 0u8, + BlockKind::WeepingVines => 0u8, + BlockKind::RedCarpet => 0u8, + BlockKind::TallSeagrass => 0u8, + BlockKind::PinkConcretePowder => 0u8, + BlockKind::GreenCandle => 0u8, + BlockKind::OakSapling => 0u8, + BlockKind::PinkConcrete => 0u8, + BlockKind::NetherBrickFence => 0u8, + BlockKind::BuddingAmethyst => 0u8, + BlockKind::PolishedBasalt => 0u8, + BlockKind::JungleWood => 0u8, + BlockKind::FireCoralWallFan => 0u8, + BlockKind::SmithingTable => 0u8, + BlockKind::Beacon => 15u8, + BlockKind::GlassPane => 0u8, + BlockKind::OrangeConcrete => 0u8, + BlockKind::BigDripleaf => 0u8, + BlockKind::CyanBanner => 0u8, + BlockKind::Sand => 0u8, + BlockKind::StoneStairs => 0u8, + BlockKind::MossyCobblestoneSlab => 0u8, + BlockKind::DarkOakFenceGate => 0u8, + BlockKind::CyanCandle => 0u8, + BlockKind::AcaciaPlanks => 0u8, + BlockKind::Dispenser => 0u8, + BlockKind::WarpedStem => 0u8, + BlockKind::GraniteStairs => 0u8, + BlockKind::PinkCarpet => 0u8, + BlockKind::OrangeCandleCake => 0u8, + BlockKind::InfestedCobblestone => 0u8, + BlockKind::DeepslateTileWall => 0u8, + BlockKind::PurpleCarpet => 0u8, + BlockKind::Cactus => 0u8, + BlockKind::YellowCarpet => 0u8, + BlockKind::BrownStainedGlassPane => 0u8, + BlockKind::CutRedSandstone => 0u8, + BlockKind::LimeConcrete => 0u8, + BlockKind::GreenStainedGlass => 0u8, + BlockKind::LightGrayWallBanner => 0u8, + BlockKind::IronOre => 0u8, + BlockKind::RedstoneOre => 0u8, + BlockKind::IronBars => 0u8, + BlockKind::InfestedChiseledStoneBricks => 0u8, + BlockKind::AcaciaWallSign => 0u8, + BlockKind::OrangeCarpet => 0u8, + BlockKind::Bell => 0u8, + BlockKind::ChiseledDeepslate => 0u8, + BlockKind::CrimsonSlab => 0u8, + BlockKind::RedSand => 0u8, + BlockKind::WhiteConcretePowder => 0u8, + BlockKind::PurpleStainedGlass => 0u8, + BlockKind::TubeCoralFan => 0u8, + BlockKind::WarpedWartBlock => 0u8, + BlockKind::OakTrapdoor => 0u8, + BlockKind::ChiseledNetherBricks => 0u8, + BlockKind::PolishedDeepslateWall => 0u8, + BlockKind::RedstoneTorch => 7u8, + BlockKind::RedMushroomBlock => 0u8, + BlockKind::EndStoneBrickStairs => 0u8, + BlockKind::Bedrock => 0u8, + BlockKind::Piston => 0u8, + BlockKind::Scaffolding => 0u8, + BlockKind::DeadTubeCoralBlock => 0u8, + BlockKind::BambooSapling => 0u8, + BlockKind::Campfire => 15u8, + BlockKind::SmoothSandstone => 0u8, + BlockKind::NetherWart => 0u8, + BlockKind::PottedAllium => 0u8, + BlockKind::PlayerWallHead => 0u8, + BlockKind::LightBlueStainedGlass => 0u8, + BlockKind::BlueWallBanner => 0u8, + BlockKind::Sunflower => 0u8, + BlockKind::LightBlueWool => 0u8, + BlockKind::Repeater => 0u8, + BlockKind::DeadBubbleCoralBlock => 0u8, + BlockKind::Deepslate => 0u8, + BlockKind::WarpedRoots => 0u8, + BlockKind::CopperOre => 0u8, + BlockKind::PottedAzaleaBush => 0u8, + BlockKind::MossyCobblestone => 0u8, + BlockKind::CrackedDeepslateTiles => 0u8, + BlockKind::PurpurPillar => 0u8, + BlockKind::WarpedButton => 0u8, + BlockKind::GrayShulkerBox => 0u8, + BlockKind::WaxedCutCopperStairs => 0u8, + BlockKind::YellowConcretePowder => 0u8, + BlockKind::DeepslateBrickWall => 0u8, + BlockKind::StrippedBirchLog => 0u8, + BlockKind::SeaLantern => 15u8, + BlockKind::CrackedNetherBricks => 0u8, + BlockKind::GreenBed => 0u8, + BlockKind::CarvedPumpkin => 0u8, + BlockKind::BrickWall => 0u8, + BlockKind::LimeBanner => 0u8, + BlockKind::WaxedCopperBlock => 0u8, + BlockKind::LargeFern => 0u8, + BlockKind::Dandelion => 0u8, + BlockKind::CoarseDirt => 0u8, + BlockKind::DeepslateEmeraldOre => 0u8, + BlockKind::PolishedDeepslateStairs => 0u8, + BlockKind::PottedBrownMushroom => 0u8, + BlockKind::AcaciaFence => 0u8, + BlockKind::JungleSign => 0u8, + BlockKind::StructureBlock => 0u8, + BlockKind::CartographyTable => 0u8, + BlockKind::RoseBush => 0u8, + BlockKind::MagentaStainedGlass => 0u8, + BlockKind::Fern => 0u8, + BlockKind::HeavyWeightedPressurePlate => 0u8, + BlockKind::BirchLeaves => 0u8, + BlockKind::SpruceFenceGate => 0u8, + BlockKind::WaxedOxidizedCutCopperStairs => 0u8, + BlockKind::Beehive => 0u8, + BlockKind::CommandBlock => 0u8, + BlockKind::Hopper => 0u8, + BlockKind::CyanStainedGlassPane => 0u8, + BlockKind::Peony => 0u8, + BlockKind::BlackstoneSlab => 0u8, + BlockKind::DeepslateLapisOre => 0u8, + BlockKind::Poppy => 0u8, + BlockKind::DarkOakStairs => 0u8, + BlockKind::DetectorRail => 0u8, + BlockKind::RawIronBlock => 0u8, + BlockKind::IronTrapdoor => 0u8, + BlockKind::Sandstone => 0u8, + BlockKind::IronDoor => 0u8, + BlockKind::Vine => 0u8, + BlockKind::LightBlueCarpet => 0u8, + BlockKind::YellowTerracotta => 0u8, + BlockKind::JungleDoor => 0u8, + BlockKind::PottedAcaciaSapling => 0u8, + BlockKind::DeadHornCoral => 0u8, + BlockKind::GrayCandleCake => 0u8, + BlockKind::RedCandleCake => 0u8, + BlockKind::AcaciaTrapdoor => 0u8, + BlockKind::PinkTulip => 0u8, + BlockKind::SpruceTrapdoor => 0u8, + BlockKind::PolishedBlackstoneButton => 0u8, + BlockKind::JungleFence => 0u8, + BlockKind::Lodestone => 0u8, + BlockKind::WeatheredCopper => 0u8, + BlockKind::PottedWitherRose => 0u8, + BlockKind::MossyCobblestoneWall => 0u8, + BlockKind::BlackstoneWall => 0u8, + BlockKind::WarpedSlab => 0u8, + BlockKind::Furnace => 0u8, + BlockKind::CutCopperSlab => 0u8, + BlockKind::AcaciaLog => 0u8, + BlockKind::GraniteWall => 0u8, + BlockKind::StrippedOakLog => 0u8, + BlockKind::ExposedCutCopperSlab => 0u8, + BlockKind::PottedPinkTulip => 0u8, + BlockKind::DamagedAnvil => 0u8, + BlockKind::DragonEgg => 1u8, + BlockKind::SpruceButton => 0u8, + BlockKind::DioriteStairs => 0u8, + BlockKind::CraftingTable => 0u8, + BlockKind::BrownCandle => 0u8, + BlockKind::PurpleGlazedTerracotta => 0u8, + BlockKind::Prismarine => 0u8, + BlockKind::GrayConcrete => 0u8, + BlockKind::DeadBubbleCoralWallFan => 0u8, + BlockKind::PurpleCandleCake => 0u8, + BlockKind::BirchButton => 0u8, + BlockKind::DeepslateRedstoneOre => 0u8, + BlockKind::BlackStainedGlassPane => 0u8, + BlockKind::DirtPath => 0u8, + BlockKind::StoneSlab => 0u8, + BlockKind::BlackstoneStairs => 0u8, + BlockKind::WitherRose => 0u8, + BlockKind::BeeNest => 0u8, + BlockKind::PottedCrimsonFungus => 0u8, + BlockKind::WaxedCutCopperSlab => 0u8, + BlockKind::PinkBed => 0u8, + BlockKind::BrickSlab => 0u8, + BlockKind::BrownCandleCake => 0u8, + BlockKind::AncientDebris => 0u8, + BlockKind::PurpleShulkerBox => 0u8, + BlockKind::LimeBed => 0u8, + BlockKind::BrownMushroom => 1u8, + BlockKind::CreeperWallHead => 0u8, + BlockKind::PottedJungleSapling => 0u8, + BlockKind::RedGlazedTerracotta => 0u8, + BlockKind::Conduit => 15u8, + BlockKind::PistonHead => 0u8, + BlockKind::PottedBirchSapling => 0u8, + BlockKind::SkeletonSkull => 0u8, + BlockKind::Azalea => 0u8, + BlockKind::BlueCandle => 0u8, + BlockKind::LimeStainedGlassPane => 0u8, + BlockKind::BlueConcrete => 0u8, + BlockKind::EndStoneBrickSlab => 0u8, + BlockKind::BirchWallSign => 0u8, + BlockKind::AndesiteWall => 0u8, + BlockKind::WarpedHyphae => 0u8, + BlockKind::OrangeStainedGlass => 0u8, + BlockKind::AndesiteSlab => 0u8, + BlockKind::WaxedWeatheredCutCopperStairs => 0u8, + BlockKind::GoldOre => 0u8, + BlockKind::StrippedCrimsonHyphae => 0u8, + BlockKind::CrimsonTrapdoor => 0u8, + BlockKind::PrismarineSlab => 0u8, + BlockKind::ExposedCutCopper => 0u8, + BlockKind::SmallDripleaf => 0u8, + BlockKind::BirchTrapdoor => 0u8, + BlockKind::ChorusFlower => 0u8, + BlockKind::StrippedAcaciaWood => 0u8, + BlockKind::DripstoneBlock => 0u8, + BlockKind::MagentaTerracotta => 0u8, + BlockKind::RedNetherBrickStairs => 0u8, + BlockKind::OrangeBanner => 0u8, + BlockKind::SporeBlossom => 0u8, + BlockKind::InfestedStoneBricks => 0u8, + BlockKind::CyanWool => 0u8, + BlockKind::GreenTerracotta => 0u8, + BlockKind::MagentaStainedGlassPane => 0u8, + BlockKind::Observer => 0u8, + BlockKind::BlackCarpet => 0u8, + BlockKind::DarkPrismarineSlab => 0u8, + BlockKind::MagentaBed => 0u8, + BlockKind::BirchPressurePlate => 0u8, + BlockKind::JungleSlab => 0u8, + BlockKind::OakStairs => 0u8, + BlockKind::LightGrayConcrete => 0u8, + BlockKind::DarkOakSlab => 0u8, + BlockKind::BrownCarpet => 0u8, + BlockKind::OrangeShulkerBox => 0u8, + BlockKind::NetherWartBlock => 0u8, + BlockKind::FireCoralBlock => 0u8, + BlockKind::OakPressurePlate => 0u8, + BlockKind::TurtleEgg => 0u8, + BlockKind::BlackBed => 0u8, + BlockKind::RedstoneWire => 0u8, + BlockKind::SculkSensor => 1u8, + BlockKind::MovingPiston => 0u8, + BlockKind::DeepslateTileStairs => 0u8, + BlockKind::StrippedAcaciaLog => 0u8, + BlockKind::CaveVinesPlant => 0u8, + BlockKind::Fire => 15u8, + BlockKind::StrippedSpruceWood => 0u8, + BlockKind::NetherPortal => 11u8, + BlockKind::CyanCandleCake => 0u8, + BlockKind::BlueTerracotta => 0u8, + BlockKind::GrayGlazedTerracotta => 0u8, + BlockKind::Cornflower => 0u8, + BlockKind::TrappedChest => 0u8, + BlockKind::WarpedDoor => 0u8, + BlockKind::Kelp => 0u8, + BlockKind::Rail => 0u8, + BlockKind::GreenBanner => 0u8, + BlockKind::OakDoor => 0u8, + BlockKind::AcaciaDoor => 0u8, + BlockKind::JungleStairs => 0u8, + BlockKind::MagentaConcrete => 0u8, + BlockKind::PinkGlazedTerracotta => 0u8, + BlockKind::BirchFenceGate => 0u8, + BlockKind::BubbleColumn => 0u8, + BlockKind::DeadBrainCoralWallFan => 0u8, + BlockKind::YellowWallBanner => 0u8, + BlockKind::CrimsonSign => 0u8, + BlockKind::CrimsonPressurePlate => 0u8, + BlockKind::Spawner => 0u8, + BlockKind::PottedDandelion => 0u8, + BlockKind::CaveAir => 0u8, + BlockKind::MagentaWallBanner => 0u8, + BlockKind::OakSign => 0u8, + BlockKind::LilyPad => 0u8, + BlockKind::LightGrayShulkerBox => 0u8, + BlockKind::InfestedMossyStoneBricks => 0u8, + BlockKind::DeepslateDiamondOre => 0u8, + BlockKind::ChiseledRedSandstone => 0u8, + BlockKind::PottedFloweringAzaleaBush => 0u8, + BlockKind::CoalBlock => 0u8, + BlockKind::TripwireHook => 0u8, + BlockKind::BlueStainedGlass => 0u8, + BlockKind::BirchSlab => 0u8, + BlockKind::ActivatorRail => 0u8, + BlockKind::BlueCandleCake => 0u8, + BlockKind::QuartzStairs => 0u8, + BlockKind::NetherGoldOre => 0u8, + BlockKind::Seagrass => 0u8, + BlockKind::HoneycombBlock => 0u8, + BlockKind::ShulkerBox => 0u8, + BlockKind::RedStainedGlass => 0u8, + BlockKind::FireCoralFan => 0u8, + BlockKind::OrangeConcretePowder => 0u8, + BlockKind::Glowstone => 15u8, + BlockKind::CobblestoneWall => 0u8, + BlockKind::AndesiteStairs => 0u8, + BlockKind::Torch => 14u8, + BlockKind::GrayCarpet => 0u8, + BlockKind::EnderChest => 7u8, + BlockKind::DeepslateCopperOre => 0u8, + BlockKind::LightBlueTerracotta => 0u8, + BlockKind::Allium => 0u8, + BlockKind::SmoothRedSandstoneSlab => 0u8, + BlockKind::DeadHornCoralBlock => 0u8, + BlockKind::CrackedDeepslateBricks => 0u8, + BlockKind::PolishedDeepslate => 0u8, + BlockKind::DioriteWall => 0u8, + BlockKind::LimeCandleCake => 0u8, + BlockKind::OakWallSign => 0u8, + BlockKind::RedSandstoneWall => 0u8, + BlockKind::CrimsonDoor => 0u8, + BlockKind::Sponge => 0u8, + BlockKind::AcaciaButton => 0u8, + BlockKind::StoneBrickStairs => 0u8, + BlockKind::Pumpkin => 0u8, + BlockKind::JungleButton => 0u8, + BlockKind::DarkOakSapling => 0u8, + BlockKind::RedTerracotta => 0u8, + BlockKind::WitherSkeletonSkull => 0u8, + BlockKind::Chest => 0u8, + BlockKind::GrayStainedGlassPane => 0u8, + BlockKind::BirchSign => 0u8, + BlockKind::AcaciaLeaves => 0u8, + BlockKind::WhiteConcrete => 0u8, + BlockKind::MagentaCandle => 0u8, + BlockKind::Obsidian => 0u8, + BlockKind::PowderSnowCauldron => 0u8, + BlockKind::YellowConcrete => 0u8, + BlockKind::Diorite => 0u8, + BlockKind::BirchPlanks => 0u8, + BlockKind::JungleTrapdoor => 0u8, + BlockKind::WhiteBanner => 0u8, + BlockKind::BlastFurnace => 0u8, + BlockKind::ChippedAnvil => 0u8, + BlockKind::ChiseledPolishedBlackstone => 0u8, + BlockKind::SpruceLeaves => 0u8, + BlockKind::WarpedStairs => 0u8, + BlockKind::PurpurBlock => 0u8, + BlockKind::PottedOxeyeDaisy => 0u8, + BlockKind::StrippedDarkOakWood => 0u8, + BlockKind::CobblestoneSlab => 0u8, + BlockKind::PottedSpruceSapling => 0u8, + BlockKind::PottedCrimsonRoots => 0u8, + BlockKind::TwistingVines => 0u8, + BlockKind::LightBlueStainedGlassPane => 0u8, + BlockKind::OrangeGlazedTerracotta => 0u8, + BlockKind::YellowShulkerBox => 0u8, + BlockKind::Podzol => 0u8, + BlockKind::StrippedDarkOakLog => 0u8, + BlockKind::CutCopper => 0u8, + BlockKind::MagentaWool => 0u8, + BlockKind::EmeraldBlock => 0u8, + BlockKind::OxidizedCutCopper => 0u8, + BlockKind::StoneBrickSlab => 0u8, + BlockKind::DarkOakLog => 0u8, + BlockKind::DeadFireCoralFan => 0u8, + BlockKind::BrainCoralFan => 0u8, + BlockKind::PottedDarkOakSapling => 0u8, + BlockKind::SoulCampfire => 10u8, + BlockKind::RepeatingCommandBlock => 0u8, + BlockKind::Gravel => 0u8, + BlockKind::DarkOakPlanks => 0u8, + BlockKind::Shroomlight => 15u8, + BlockKind::BlackCandleCake => 0u8, + BlockKind::WarpedPressurePlate => 0u8, + BlockKind::WaxedOxidizedCopper => 0u8, + BlockKind::LightBlueGlazedTerracotta => 0u8, + BlockKind::RedBanner => 0u8, + BlockKind::Lectern => 0u8, + BlockKind::CyanConcrete => 0u8, + BlockKind::RedBed => 0u8, + BlockKind::GrayBanner => 0u8, + BlockKind::WeepingVinesPlant => 0u8, + BlockKind::PinkTerracotta => 0u8, + BlockKind::AcaciaSapling => 0u8, + BlockKind::Cauldron => 0u8, + BlockKind::RedConcretePowder => 0u8, + BlockKind::AcaciaFenceGate => 0u8, + BlockKind::Andesite => 0u8, + BlockKind::PottedDeadBush => 0u8, + BlockKind::BubbleCoralWallFan => 0u8, + BlockKind::AcaciaWood => 0u8, + BlockKind::JunglePressurePlate => 0u8, + BlockKind::YellowCandle => 0u8, + BlockKind::GreenStainedGlassPane => 0u8, + BlockKind::SandstoneStairs => 0u8, + BlockKind::PumpkinStem => 0u8, + BlockKind::FlowerPot => 0u8, + BlockKind::SmallAmethystBud => 1u8, + BlockKind::DiamondBlock => 0u8, + BlockKind::SmoothSandstoneStairs => 0u8, + BlockKind::OxidizedCutCopperStairs => 0u8, + BlockKind::StrippedJungleWood => 0u8, + BlockKind::PurpleTerracotta => 0u8, + BlockKind::IronBlock => 0u8, + BlockKind::StrippedBirchWood => 0u8, + BlockKind::DarkOakFence => 0u8, + BlockKind::DeepslateBricks => 0u8, + BlockKind::Barrel => 0u8, + BlockKind::MagentaCandleCake => 0u8, + BlockKind::OrangeWool => 0u8, + BlockKind::PurpurSlab => 0u8, + BlockKind::BirchLog => 0u8, + BlockKind::StickyPiston => 0u8, + BlockKind::BirchDoor => 0u8, + BlockKind::PottedWarpedFungus => 0u8, + BlockKind::CobbledDeepslateStairs => 0u8, + BlockKind::SpruceFence => 0u8, + BlockKind::PinkStainedGlassPane => 0u8, + BlockKind::BrownConcrete => 0u8, + BlockKind::PlayerHead => 0u8, + BlockKind::LimeCandle => 0u8, + BlockKind::DeadFireCoralWallFan => 0u8, + BlockKind::PolishedDeepslateSlab => 0u8, + BlockKind::DeadHornCoralWallFan => 0u8, + BlockKind::WhiteTerracotta => 0u8, + BlockKind::BrownWool => 0u8, + BlockKind::MossyStoneBrickWall => 0u8, + BlockKind::Light => 15u8, + BlockKind::Calcite => 0u8, + BlockKind::Ladder => 0u8, + BlockKind::WhiteShulkerBox => 0u8, + BlockKind::Tnt => 0u8, + BlockKind::Granite => 0u8, + BlockKind::PurpleWool => 0u8, + BlockKind::CyanStainedGlass => 0u8, + BlockKind::MossyStoneBrickStairs => 0u8, + BlockKind::BrownShulkerBox => 0u8, + BlockKind::DeadBubbleCoral => 0u8, + BlockKind::GrayWool => 0u8, + BlockKind::PoweredRail => 0u8, + BlockKind::Wheat => 0u8, + BlockKind::RedCandle => 0u8, + BlockKind::Clay => 0u8, + BlockKind::Dirt => 0u8, + BlockKind::LapisOre => 0u8, + BlockKind::CyanConcretePowder => 0u8, + BlockKind::CaveVines => 0u8, + BlockKind::HoneyBlock => 0u8, + BlockKind::OakFence => 0u8, + BlockKind::DeadTubeCoralWallFan => 0u8, + BlockKind::BlueStainedGlassPane => 0u8, + BlockKind::WitherSkeletonWallSkull => 0u8, + BlockKind::Beetroots => 0u8, + BlockKind::LimeTerracotta => 0u8, + BlockKind::PurpleConcrete => 0u8, + BlockKind::GildedBlackstone => 0u8, + BlockKind::Chain => 0u8, + BlockKind::CyanBed => 0u8, + BlockKind::LightGrayWool => 0u8, + BlockKind::DeadBubbleCoralFan => 0u8, + BlockKind::PackedIce => 0u8, + BlockKind::BlackConcretePowder => 0u8, + BlockKind::RedNetherBrickSlab => 0u8, + BlockKind::FireCoral => 0u8, + BlockKind::LimeConcretePowder => 0u8, + BlockKind::WarpedTrapdoor => 0u8, + BlockKind::WhiteWallBanner => 0u8, + BlockKind::EndPortalFrame => 1u8, + BlockKind::PolishedBlackstoneBrickWall => 0u8, + BlockKind::InfestedStone => 0u8, + BlockKind::SpruceSlab => 0u8, + BlockKind::Anvil => 0u8, + BlockKind::ChiseledStoneBricks => 0u8, + BlockKind::CobbledDeepslate => 0u8, + BlockKind::OakSlab => 0u8, + BlockKind::HornCoral => 0u8, + BlockKind::SmoothBasalt => 0u8, + BlockKind::PetrifiedOakSlab => 0u8, + BlockKind::BlackGlazedTerracotta => 0u8, + BlockKind::Terracotta => 0u8, + BlockKind::AcaciaSlab => 0u8, + BlockKind::OrangeCandle => 0u8, + BlockKind::SpruceWallSign => 0u8, + BlockKind::DarkOakDoor => 0u8, + BlockKind::LapisBlock => 0u8, + BlockKind::OakButton => 0u8, + BlockKind::Tuff => 0u8, + BlockKind::RootedDirt => 0u8, + BlockKind::PottedBamboo => 0u8, + BlockKind::OrangeWallBanner => 0u8, + BlockKind::CobbledDeepslateSlab => 0u8, + BlockKind::Target => 0u8, + BlockKind::StrippedOakWood => 0u8, + BlockKind::CyanShulkerBox => 0u8, + BlockKind::LightBlueConcretePowder => 0u8, + BlockKind::Stonecutter => 0u8, + BlockKind::Barrier => 0u8, + BlockKind::LightBlueBed => 0u8, + BlockKind::OrangeTulip => 0u8, + BlockKind::QuartzBricks => 0u8, + BlockKind::PolishedDioriteSlab => 0u8, + BlockKind::SprucePressurePlate => 0u8, + BlockKind::BlueBed => 0u8, + BlockKind::FletchingTable => 0u8, + BlockKind::StoneBrickWall => 0u8, + BlockKind::Mycelium => 0u8, + BlockKind::JungleWallSign => 0u8, + BlockKind::BrainCoral => 0u8, + BlockKind::WhiteStainedGlass => 0u8, + BlockKind::BlueShulkerBox => 0u8, + BlockKind::LightGrayCandleCake => 0u8, + BlockKind::Glass => 0u8, + BlockKind::BlackWool => 0u8, + BlockKind::LightGrayCarpet => 0u8, + BlockKind::YellowStainedGlassPane => 0u8, + BlockKind::MagentaGlazedTerracotta => 0u8, + BlockKind::WetSponge => 0u8, + BlockKind::WaxedExposedCutCopperStairs => 0u8, + BlockKind::GreenCandleCake => 0u8, + BlockKind::LimeShulkerBox => 0u8, + BlockKind::Snow => 0u8, + BlockKind::GreenWallBanner => 0u8, + BlockKind::PottedPoppy => 0u8, + BlockKind::PrismarineBrickSlab => 0u8, + BlockKind::BlackWallBanner => 0u8, + BlockKind::MagmaBlock => 3u8, + BlockKind::RedSandstone => 0u8, + BlockKind::BrickStairs => 0u8, + BlockKind::PottedCornflower => 0u8, + BlockKind::CrimsonButton => 0u8, + BlockKind::StrippedWarpedHyphae => 0u8, + BlockKind::NetherBricks => 0u8, + BlockKind::BrownMushroomBlock => 0u8, + BlockKind::PolishedAndesiteStairs => 0u8, + BlockKind::PottedWhiteTulip => 0u8, + BlockKind::WaxedExposedCutCopperSlab => 0u8, + BlockKind::PurpurStairs => 0u8, + BlockKind::PottedLilyOfTheValley => 0u8, + BlockKind::QuartzBlock => 0u8, + BlockKind::WhiteGlazedTerracotta => 0u8, + BlockKind::WarpedPlanks => 0u8, + BlockKind::DeepslateIronOre => 0u8, + BlockKind::NetherBrickWall => 0u8, + BlockKind::EndGateway => 15u8, + BlockKind::MagentaCarpet => 0u8, + BlockKind::CryingObsidian => 10u8, + BlockKind::BubbleCoralFan => 0u8, + BlockKind::WhiteStainedGlassPane => 0u8, + BlockKind::BlackBanner => 0u8, + BlockKind::PottedBlueOrchid => 0u8, + BlockKind::GrayTerracotta => 0u8, + BlockKind::SpruceSapling => 0u8, + BlockKind::EmeraldOre => 0u8, + BlockKind::CrimsonNylium => 0u8, + BlockKind::Grindstone => 0u8, + BlockKind::CobblestoneStairs => 0u8, + BlockKind::ChiseledQuartzBlock => 0u8, + BlockKind::GoldBlock => 0u8, + BlockKind::OakLog => 0u8, + BlockKind::LightBlueWallBanner => 0u8, + BlockKind::StrippedJungleLog => 0u8, + BlockKind::BoneBlock => 0u8, + BlockKind::SmoothQuartzStairs => 0u8, + BlockKind::BlueIce => 0u8, + BlockKind::AcaciaSign => 0u8, + BlockKind::StrippedSpruceLog => 0u8, + BlockKind::KelpPlant => 0u8, + BlockKind::LightGrayBanner => 0u8, + BlockKind::OxidizedCutCopperSlab => 0u8, + BlockKind::CrackedPolishedBlackstoneBricks => 0u8, + BlockKind::EndStone => 0u8, + BlockKind::RedNetherBricks => 0u8, + BlockKind::SmoothQuartzSlab => 0u8, + BlockKind::Comparator => 0u8, + BlockKind::Cocoa => 0u8, + BlockKind::BlueBanner => 0u8, + BlockKind::BirchWood => 0u8, + BlockKind::RawCopperBlock => 0u8, + BlockKind::Lantern => 15u8, + BlockKind::PolishedAndesite => 0u8, + BlockKind::BlueCarpet => 0u8, + BlockKind::WhiteWool => 0u8, + BlockKind::CobbledDeepslateWall => 0u8, + BlockKind::SmoothSandstoneSlab => 0u8, + BlockKind::WeatheredCutCopper => 0u8, + BlockKind::DeepslateGoldOre => 0u8, + BlockKind::NoteBlock => 0u8, + BlockKind::AzureBluet => 0u8, + BlockKind::YellowGlazedTerracotta => 0u8, + BlockKind::DarkOakPressurePlate => 0u8, + BlockKind::LightBlueCandle => 0u8, + BlockKind::DarkPrismarine => 0u8, + BlockKind::WarpedWallSign => 0u8, + BlockKind::InfestedDeepslate => 0u8, + BlockKind::DeadHornCoralFan => 0u8, + BlockKind::PolishedBlackstoneStairs => 0u8, + BlockKind::EndStoneBrickWall => 0u8, + BlockKind::SpruceStairs => 0u8, + BlockKind::BlueGlazedTerracotta => 0u8, + BlockKind::RedstoneBlock => 0u8, + BlockKind::SmoothStoneSlab => 0u8, + BlockKind::TallGrass => 0u8, + BlockKind::BlackConcrete => 0u8, + BlockKind::BlueWool => 0u8, + BlockKind::BirchFence => 0u8, + BlockKind::OakPlanks => 0u8, + BlockKind::FloweringAzaleaLeaves => 0u8, + BlockKind::BlackStainedGlass => 0u8, + BlockKind::GrayBed => 0u8, + BlockKind::StoneBricks => 0u8, + BlockKind::BirchSapling => 0u8, + BlockKind::PurpleStainedGlassPane => 0u8, + BlockKind::Carrots => 0u8, + BlockKind::CrimsonStem => 0u8, + BlockKind::DaylightDetector => 0u8, + BlockKind::OrangeBed => 0u8, + BlockKind::ExposedCopper => 0u8, + BlockKind::TubeCoralWallFan => 0u8, + BlockKind::PolishedBlackstoneBrickStairs => 0u8, + BlockKind::BlueOrchid => 0u8, + BlockKind::LimeCarpet => 0u8, + BlockKind::DeadBush => 0u8, + BlockKind::DarkOakButton => 0u8, + BlockKind::Lilac => 0u8, + BlockKind::Bookshelf => 0u8, + BlockKind::Jigsaw => 0u8, + BlockKind::CrimsonFence => 0u8, + BlockKind::SoulLantern => 10u8, + BlockKind::DiamondOre => 0u8, + BlockKind::SandstoneSlab => 0u8, + BlockKind::GraniteSlab => 0u8, + BlockKind::PrismarineBrickStairs => 0u8, + BlockKind::Tripwire => 0u8, + BlockKind::OrangeStainedGlassPane => 0u8, + BlockKind::MagentaConcretePowder => 0u8, + BlockKind::PottedAzureBluet => 0u8, + BlockKind::AcaciaPressurePlate => 0u8, + BlockKind::Lava => 15u8, + BlockKind::GrayStainedGlass => 0u8, + BlockKind::PrismarineStairs => 0u8, + BlockKind::YellowBed => 0u8, + BlockKind::MossyStoneBricks => 0u8, + BlockKind::RedShulkerBox => 0u8, + BlockKind::PrismarineWall => 0u8, + BlockKind::SmoothStone => 0u8, + BlockKind::OakWood => 0u8, + BlockKind::AttachedMelonStem => 0u8, + BlockKind::OakFenceGate => 0u8, + BlockKind::CopperBlock => 0u8, + BlockKind::WaxedWeatheredCutCopper => 0u8, + BlockKind::BrownWallBanner => 0u8, + BlockKind::DarkOakSign => 0u8, + BlockKind::FrostedIce => 0u8, + BlockKind::DarkPrismarineStairs => 0u8, + BlockKind::RedSandstoneStairs => 0u8, + BlockKind::AmethystBlock => 0u8, + BlockKind::BrownGlazedTerracotta => 0u8, + BlockKind::QuartzSlab => 0u8, + BlockKind::BlackCandle => 0u8, + BlockKind::PottedWarpedRoots => 0u8, + BlockKind::CyanCarpet => 0u8, + BlockKind::DioriteSlab => 0u8, + BlockKind::LightWeightedPressurePlate => 0u8, + BlockKind::LimeWallBanner => 0u8, + BlockKind::Blackstone => 0u8, + BlockKind::HornCoralBlock => 0u8, + BlockKind::LightGrayStainedGlassPane => 0u8, + BlockKind::SweetBerryBush => 0u8, + BlockKind::DarkOakWood => 0u8, + BlockKind::JungleSapling => 0u8, + BlockKind::SmoothQuartz => 0u8, + BlockKind::BlackTerracotta => 0u8, + BlockKind::PinkWool => 0u8, + BlockKind::DeadTubeCoral => 0u8, + BlockKind::WaxedExposedCopper => 0u8, + BlockKind::Composter => 0u8, + BlockKind::WhiteCarpet => 0u8, + BlockKind::StrippedCrimsonStem => 0u8, + BlockKind::LightBlueConcrete => 0u8, + BlockKind::DragonWallHead => 0u8, + BlockKind::BrainCoralWallFan => 0u8, + BlockKind::SnowBlock => 0u8, + BlockKind::TubeCoral => 0u8, + BlockKind::Air => 0u8, + BlockKind::AttachedPumpkinStem => 0u8, + BlockKind::Jukebox => 0u8, + BlockKind::AmethystCluster => 5u8, + BlockKind::ExposedCutCopperStairs => 0u8, + BlockKind::NetherQuartzOre => 0u8, + BlockKind::PolishedBlackstoneBricks => 0u8, + BlockKind::LargeAmethystBud => 4u8, + BlockKind::WallTorch => 14u8, + BlockKind::ChiseledSandstone => 0u8, + BlockKind::OrangeTerracotta => 0u8, + BlockKind::NetherBrickSlab => 0u8, + BlockKind::HangingRoots => 0u8, + BlockKind::LilyOfTheValley => 0u8, + BlockKind::MossyStoneBrickSlab => 0u8, + BlockKind::CutSandstoneSlab => 0u8, + BlockKind::DeadBrainCoral => 0u8, + BlockKind::JunglePlanks => 0u8, + BlockKind::Netherrack => 0u8, + BlockKind::BubbleCoral => 0u8, + BlockKind::CrimsonWallSign => 0u8, + BlockKind::GrayWallBanner => 0u8, + BlockKind::CrackedStoneBricks => 0u8, + BlockKind::MagentaShulkerBox => 0u8, + BlockKind::Bamboo => 0u8, + BlockKind::WaxedExposedCutCopper => 0u8, + BlockKind::BubbleCoralBlock => 0u8, + BlockKind::LightGrayConcretePowder => 0u8, + BlockKind::DeadBrainCoralBlock => 0u8, + BlockKind::PottedOakSapling => 0u8, + BlockKind::HayBlock => 0u8, + BlockKind::SoulSoil => 0u8, + BlockKind::WaxedOxidizedCutCopper => 0u8, + BlockKind::CrimsonRoots => 0u8, + BlockKind::DriedKelpBlock => 0u8, + BlockKind::LimeStainedGlass => 0u8, + BlockKind::SugarCane => 0u8, + BlockKind::NetherBrickStairs => 0u8, + BlockKind::BrownTerracotta => 0u8, + BlockKind::GreenShulkerBox => 0u8, + BlockKind::SoulFire => 10u8, + BlockKind::YellowWool => 0u8, + BlockKind::Cobblestone => 0u8, + BlockKind::PolishedGraniteStairs => 0u8, + BlockKind::Smoker => 0u8, + BlockKind::EndRod => 14u8, + BlockKind::PurpleBanner => 0u8, + BlockKind::SpruceLog => 0u8, + BlockKind::OakLeaves => 0u8, + BlockKind::WaxedWeatheredCopper => 0u8, + BlockKind::OxidizedCopper => 0u8, + BlockKind::BrownStainedGlass => 0u8, + BlockKind::StonePressurePlate => 0u8, + BlockKind::PinkCandle => 0u8, + BlockKind::PolishedBlackstoneBrickSlab => 0u8, + BlockKind::PottedFern => 0u8, + BlockKind::SkeletonWallSkull => 0u8, + BlockKind::CrimsonHyphae => 0u8, + BlockKind::PinkBanner => 0u8, + BlockKind::MossBlock => 0u8, + BlockKind::DeadBrainCoralFan => 0u8, + BlockKind::EndPortal => 15u8, + BlockKind::YellowStainedGlass => 0u8, + BlockKind::WaxedOxidizedCutCopperSlab => 0u8, + BlockKind::Stone => 0u8, + BlockKind::RedWallBanner => 0u8, + BlockKind::Potatoes => 0u8, + BlockKind::LimeWool => 0u8, + BlockKind::WaterCauldron => 0u8, + BlockKind::GreenGlazedTerracotta => 0u8, + BlockKind::RedstoneWallTorch => 7u8, + BlockKind::Grass => 0u8, + BlockKind::LightningRod => 0u8, + BlockKind::StoneButton => 0u8, + BlockKind::ZombieWallHead => 0u8, + BlockKind::YellowCandleCake => 0u8, + BlockKind::BirchStairs => 0u8, + BlockKind::SmoothRedSandstone => 0u8, + BlockKind::Water => 0u8, + BlockKind::ZombieHead => 0u8, + BlockKind::RespawnAnchor => 0u8, + BlockKind::Cobweb => 0u8, + BlockKind::SpruceDoor => 0u8, + BlockKind::BrownBed => 0u8, + BlockKind::PurpleBed => 0u8, + BlockKind::LimeGlazedTerracotta => 0u8, + BlockKind::StrippedWarpedStem => 0u8, + BlockKind::Ice => 0u8, + BlockKind::WarpedFungus => 0u8, + BlockKind::WarpedFence => 0u8, + BlockKind::Loom => 0u8, + BlockKind::PinkShulkerBox => 0u8, + BlockKind::PurpleCandle => 0u8, + BlockKind::StructureVoid => 0u8, + BlockKind::EnchantingTable => 0u8, + BlockKind::SprucePlanks => 0u8, + BlockKind::LightGrayTerracotta => 0u8, + BlockKind::SoulWallTorch => 10u8, + BlockKind::WaxedCutCopper => 0u8, + BlockKind::BrainCoralBlock => 0u8, + BlockKind::PolishedGranite => 0u8, + BlockKind::CrimsonFenceGate => 0u8, + BlockKind::LightBlueCandleCake => 0u8, + BlockKind::JackOLantern => 15u8, + BlockKind::DarkOakLeaves => 0u8, + BlockKind::DeepslateTiles => 0u8, + BlockKind::RawGoldBlock => 0u8, + BlockKind::SpruceSign => 0u8, + BlockKind::TubeCoralBlock => 0u8, + BlockKind::PrismarineBricks => 0u8, + BlockKind::RedWool => 0u8, + BlockKind::EndStoneBricks => 0u8, + } + } +} +impl BlockKind { + #[doc = "Returns the `light_filter` property of this `BlockKind`."] + #[inline] + pub fn light_filter(&self) -> u8 { + match self { + BlockKind::OakWallSign => 0u8, + BlockKind::OrangeCarpet => 0u8, + BlockKind::BrickSlab => 0u8, + BlockKind::WarpedPlanks => 15u8, + BlockKind::LightGrayBanner => 0u8, + BlockKind::StructureBlock => 15u8, + BlockKind::PistonHead => 0u8, + BlockKind::RedWool => 15u8, + BlockKind::PurpurPillar => 15u8, + BlockKind::LightGrayCandle => 0u8, + BlockKind::NoteBlock => 15u8, + BlockKind::PolishedBlackstoneStairs => 0u8, + BlockKind::Carrots => 0u8, + BlockKind::CaveVinesPlant => 0u8, + BlockKind::CrimsonFence => 0u8, + BlockKind::ZombieWallHead => 0u8, + BlockKind::OakDoor => 0u8, + BlockKind::CrimsonFenceGate => 0u8, + BlockKind::Beacon => 1u8, + BlockKind::RedNetherBrickStairs => 0u8, + BlockKind::Peony => 0u8, + BlockKind::CopperBlock => 15u8, + BlockKind::DeadBrainCoralWallFan => 1u8, + BlockKind::Scaffolding => 0u8, + BlockKind::CrimsonDoor => 0u8, + BlockKind::Chain => 0u8, + BlockKind::LimeTerracotta => 15u8, + BlockKind::Fern => 0u8, + BlockKind::EndRod => 0u8, + BlockKind::OakFence => 0u8, + BlockKind::InfestedCobblestone => 15u8, + BlockKind::PolishedDioriteSlab => 0u8, + BlockKind::SmallDripleaf => 0u8, + BlockKind::LightGrayGlazedTerracotta => 15u8, + BlockKind::MossyCobblestoneStairs => 0u8, + BlockKind::WarpedFence => 0u8, + BlockKind::LightBlueGlazedTerracotta => 15u8, + BlockKind::BlackWool => 15u8, + BlockKind::Potatoes => 0u8, + BlockKind::BlueStainedGlassPane => 0u8, + BlockKind::SpruceWood => 15u8, + BlockKind::RedStainedGlass => 0u8, + BlockKind::OakPlanks => 15u8, + BlockKind::LightBlueConcretePowder => 15u8, + BlockKind::SpruceSlab => 0u8, + BlockKind::CaveAir => 0u8, + BlockKind::WaxedCopperBlock => 15u8, + BlockKind::GrayBanner => 0u8, + BlockKind::CyanBed => 0u8, + BlockKind::LimeCarpet => 0u8, + BlockKind::PinkWool => 15u8, + BlockKind::RawGoldBlock => 15u8, + BlockKind::JunglePressurePlate => 0u8, + BlockKind::PurpleCandle => 0u8, + BlockKind::LimeCandle => 0u8, + BlockKind::BubbleColumn => 1u8, + BlockKind::WaxedCutCopperStairs => 0u8, + BlockKind::KelpPlant => 1u8, + BlockKind::Barrier => 0u8, + BlockKind::SprucePlanks => 15u8, + BlockKind::NetherGoldOre => 15u8, + BlockKind::Rail => 0u8, + BlockKind::MovingPiston => 0u8, + BlockKind::GoldOre => 15u8, + BlockKind::PottedAcaciaSapling => 0u8, + BlockKind::DragonWallHead => 0u8, + BlockKind::SoulSoil => 15u8, + BlockKind::PottedAzaleaBush => 0u8, + BlockKind::BrownBanner => 0u8, + BlockKind::OakFenceGate => 0u8, + BlockKind::OrangeBed => 0u8, + BlockKind::DarkPrismarine => 15u8, + BlockKind::PottedPinkTulip => 0u8, + BlockKind::CoalBlock => 15u8, + BlockKind::CutCopper => 15u8, + BlockKind::DragonEgg => 0u8, + BlockKind::EndGateway => 1u8, + BlockKind::BrownWallBanner => 0u8, + BlockKind::BlueShulkerBox => 1u8, + BlockKind::PinkCandleCake => 0u8, + BlockKind::WeatheredCutCopper => 15u8, + BlockKind::WaxedExposedCopper => 15u8, + BlockKind::BirchDoor => 0u8, + BlockKind::RedCandleCake => 0u8, + BlockKind::PrismarineStairs => 0u8, + BlockKind::DetectorRail => 0u8, + BlockKind::MossyCobblestoneWall => 0u8, + BlockKind::RedSand => 15u8, + BlockKind::GreenConcretePowder => 15u8, + BlockKind::GreenBanner => 0u8, + BlockKind::YellowStainedGlass => 0u8, + BlockKind::GrayTerracotta => 15u8, + BlockKind::BlueConcretePowder => 15u8, + BlockKind::LimeGlazedTerracotta => 15u8, + BlockKind::SpruceButton => 0u8, + BlockKind::PottedWarpedRoots => 0u8, + BlockKind::DarkOakLog => 15u8, + BlockKind::TwistingVinesPlant => 0u8, + BlockKind::AmethystBlock => 15u8, + BlockKind::GrayShulkerBox => 1u8, + BlockKind::MossyStoneBrickWall => 0u8, + BlockKind::PolishedGranite => 15u8, + BlockKind::PolishedBlackstoneButton => 0u8, + BlockKind::PinkWallBanner => 0u8, + BlockKind::RedSandstone => 15u8, + BlockKind::HayBlock => 15u8, + BlockKind::SpruceLog => 15u8, + BlockKind::NetherQuartzOre => 15u8, + BlockKind::SmoothStoneSlab => 0u8, + BlockKind::DeepslateTileWall => 0u8, + BlockKind::Bedrock => 15u8, + BlockKind::Cobblestone => 15u8, + BlockKind::CoarseDirt => 15u8, + BlockKind::GreenStainedGlassPane => 0u8, + BlockKind::Lava => 1u8, + BlockKind::PottedBirchSapling => 0u8, + BlockKind::JungleLeaves => 1u8, + BlockKind::WaxedExposedCutCopper => 15u8, + BlockKind::RedstoneOre => 15u8, + BlockKind::CryingObsidian => 15u8, + BlockKind::LilyPad => 0u8, + BlockKind::Sponge => 15u8, + BlockKind::Lever => 0u8, + BlockKind::WaterCauldron => 0u8, + BlockKind::TallGrass => 0u8, + BlockKind::SeaPickle => 1u8, + BlockKind::BirchWallSign => 0u8, + BlockKind::BlastFurnace => 15u8, + BlockKind::OakWood => 15u8, + BlockKind::BrownStainedGlassPane => 0u8, + BlockKind::WaxedExposedCutCopperStairs => 0u8, + BlockKind::Gravel => 15u8, + BlockKind::CrimsonWallSign => 0u8, + BlockKind::MossyCobblestone => 15u8, + BlockKind::RedTerracotta => 15u8, + BlockKind::WarpedWallSign => 0u8, + BlockKind::BlackStainedGlassPane => 0u8, + BlockKind::Beehive => 15u8, + BlockKind::BrownMushroomBlock => 15u8, + BlockKind::Candle => 0u8, + BlockKind::DeadFireCoralFan => 1u8, + BlockKind::RedCandle => 0u8, + BlockKind::SandstoneStairs => 0u8, + BlockKind::EndPortal => 0u8, + BlockKind::GrayCandleCake => 0u8, + BlockKind::CutCopperSlab => 0u8, + BlockKind::GreenShulkerBox => 1u8, + BlockKind::Poppy => 0u8, + BlockKind::CandleCake => 0u8, + BlockKind::DarkOakButton => 0u8, + BlockKind::Dirt => 15u8, + BlockKind::LightGrayBed => 0u8, + BlockKind::Tripwire => 0u8, + BlockKind::LightBlueCarpet => 0u8, + BlockKind::DarkOakStairs => 0u8, + BlockKind::EndStoneBrickWall => 0u8, + BlockKind::ChorusFlower => 1u8, + BlockKind::BirchLog => 15u8, + BlockKind::EmeraldBlock => 15u8, + BlockKind::DeepslateCopperOre => 15u8, + BlockKind::Vine => 0u8, + BlockKind::BlackCandle => 0u8, + BlockKind::DiamondBlock => 15u8, + BlockKind::DarkOakSign => 0u8, + BlockKind::Bell => 0u8, + BlockKind::PolishedBlackstoneBrickSlab => 0u8, + BlockKind::BrownCandleCake => 0u8, + BlockKind::DarkOakPlanks => 15u8, + BlockKind::SmoothQuartz => 15u8, + BlockKind::PowderSnowCauldron => 0u8, + BlockKind::TubeCoralWallFan => 1u8, + BlockKind::RedSandstoneSlab => 0u8, + BlockKind::AcaciaDoor => 0u8, + BlockKind::MagentaStainedGlassPane => 0u8, + BlockKind::GreenBed => 0u8, + BlockKind::NetherWartBlock => 15u8, + BlockKind::PottedCrimsonRoots => 0u8, + BlockKind::DeepslateCoalOre => 15u8, + BlockKind::DarkOakWallSign => 0u8, + BlockKind::IronDoor => 0u8, + BlockKind::CyanBanner => 0u8, + BlockKind::BubbleCoralFan => 1u8, + BlockKind::Campfire => 0u8, + BlockKind::PolishedBlackstonePressurePlate => 0u8, + BlockKind::GrayBed => 0u8, + BlockKind::AndesiteWall => 0u8, + BlockKind::Glowstone => 15u8, + BlockKind::DeepslateEmeraldOre => 15u8, + BlockKind::MagentaBanner => 0u8, + BlockKind::PurpleStainedGlass => 0u8, + BlockKind::CobbledDeepslateStairs => 0u8, + BlockKind::PottedCactus => 0u8, + BlockKind::AcaciaLeaves => 1u8, + BlockKind::OxidizedCutCopperStairs => 0u8, + BlockKind::LimeShulkerBox => 1u8, + BlockKind::FrostedIce => 1u8, + BlockKind::SoulCampfire => 0u8, + BlockKind::Cake => 0u8, + BlockKind::PottedOxeyeDaisy => 0u8, + BlockKind::Jukebox => 15u8, + BlockKind::FireCoralBlock => 15u8, + BlockKind::CrackedDeepslateBricks => 15u8, + BlockKind::OakStairs => 0u8, + BlockKind::PolishedDeepslateSlab => 0u8, + BlockKind::StoneBricks => 15u8, + BlockKind::SpruceSign => 0u8, + BlockKind::BrownCandle => 0u8, + BlockKind::ChiseledPolishedBlackstone => 15u8, + BlockKind::FloweringAzaleaLeaves => 1u8, + BlockKind::ChiseledStoneBricks => 15u8, + BlockKind::DeepslateTileStairs => 0u8, + BlockKind::Bricks => 15u8, + BlockKind::PottedPoppy => 0u8, + BlockKind::WaxedOxidizedCutCopperSlab => 0u8, + BlockKind::BrownStainedGlass => 0u8, + BlockKind::BirchTrapdoor => 0u8, + BlockKind::EndStoneBrickSlab => 0u8, + BlockKind::Seagrass => 1u8, + BlockKind::AndesiteStairs => 0u8, + BlockKind::PolishedBlackstoneSlab => 0u8, + BlockKind::SmoothQuartzStairs => 0u8, + BlockKind::LightWeightedPressurePlate => 0u8, + BlockKind::SpruceWallSign => 0u8, + BlockKind::WaxedOxidizedCopper => 15u8, + BlockKind::SoulSand => 15u8, + BlockKind::BrownShulkerBox => 1u8, + BlockKind::GrayStainedGlassPane => 0u8, + BlockKind::RedMushroom => 0u8, + BlockKind::OrangeWallBanner => 0u8, + BlockKind::TubeCoralBlock => 15u8, + BlockKind::WhiteWool => 15u8, + BlockKind::Target => 15u8, + BlockKind::AcaciaTrapdoor => 0u8, + BlockKind::SmoothRedSandstone => 15u8, + BlockKind::StrippedOakLog => 15u8, + BlockKind::EndPortalFrame => 0u8, + BlockKind::BuddingAmethyst => 15u8, + BlockKind::PolishedGraniteSlab => 0u8, + BlockKind::WeatheredCutCopperSlab => 0u8, + BlockKind::Pumpkin => 15u8, + BlockKind::BlueCarpet => 0u8, + BlockKind::Clay => 15u8, + BlockKind::GraniteWall => 0u8, + BlockKind::GrayWool => 15u8, + BlockKind::YellowShulkerBox => 1u8, + BlockKind::SmoothRedSandstoneStairs => 0u8, + BlockKind::LightBlueConcrete => 15u8, + BlockKind::StrippedWarpedStem => 15u8, + BlockKind::SandstoneSlab => 0u8, + BlockKind::BigDripleafStem => 0u8, + BlockKind::LimeWallBanner => 0u8, + BlockKind::WeepingVines => 0u8, + BlockKind::Composter => 0u8, + BlockKind::RawIronBlock => 15u8, + BlockKind::AcaciaStairs => 0u8, + BlockKind::DeadBubbleCoralWallFan => 1u8, + BlockKind::LightBlueWool => 15u8, + BlockKind::DeadHornCoralBlock => 15u8, + BlockKind::WetSponge => 15u8, + BlockKind::Sand => 15u8, + BlockKind::Obsidian => 15u8, + BlockKind::YellowConcretePowder => 15u8, + BlockKind::OxeyeDaisy => 0u8, + BlockKind::ExposedCopper => 15u8, + BlockKind::DeepslateBrickStairs => 0u8, + BlockKind::TubeCoralFan => 1u8, + BlockKind::WeepingVinesPlant => 0u8, + BlockKind::PottedLilyOfTheValley => 0u8, + BlockKind::LimeConcrete => 15u8, + BlockKind::FlowerPot => 0u8, + BlockKind::OrangeShulkerBox => 1u8, + BlockKind::Deepslate => 15u8, + BlockKind::WarpedFungus => 0u8, + BlockKind::Smoker => 15u8, + BlockKind::PurpleStainedGlassPane => 0u8, + BlockKind::PolishedBlackstoneBrickWall => 0u8, + BlockKind::LilyOfTheValley => 0u8, + BlockKind::DeadFireCoralWallFan => 1u8, + BlockKind::Lodestone => 15u8, + BlockKind::BlackShulkerBox => 1u8, + BlockKind::HoneycombBlock => 15u8, + BlockKind::SeaLantern => 15u8, + BlockKind::SweetBerryBush => 0u8, + BlockKind::LavaCauldron => 0u8, + BlockKind::OrangeConcrete => 15u8, + BlockKind::BrickStairs => 0u8, + BlockKind::PottedOrangeTulip => 0u8, + BlockKind::MagentaShulkerBox => 1u8, + BlockKind::BrownCarpet => 0u8, + BlockKind::DeepslateTileSlab => 0u8, + BlockKind::SpruceFenceGate => 0u8, + BlockKind::NetherPortal => 0u8, + BlockKind::GrayConcretePowder => 15u8, + BlockKind::WarpedSlab => 0u8, + BlockKind::BrickWall => 0u8, + BlockKind::SoulTorch => 0u8, + BlockKind::Granite => 15u8, + BlockKind::WarpedSign => 0u8, + BlockKind::Ladder => 0u8, + BlockKind::AcaciaPlanks => 15u8, + BlockKind::CartographyTable => 15u8, + BlockKind::BlackstoneWall => 0u8, + BlockKind::LightGrayTerracotta => 15u8, + BlockKind::CopperOre => 15u8, + BlockKind::LightBlueStainedGlass => 0u8, + BlockKind::NetheriteBlock => 15u8, + BlockKind::DarkOakFenceGate => 0u8, + BlockKind::Loom => 15u8, + BlockKind::CrackedDeepslateTiles => 15u8, + BlockKind::FireCoralWallFan => 1u8, + BlockKind::StoneBrickWall => 0u8, + BlockKind::BrownMushroom => 0u8, + BlockKind::AcaciaWood => 15u8, + BlockKind::LightBlueShulkerBox => 1u8, + BlockKind::BlueStainedGlass => 0u8, + BlockKind::StrippedBirchLog => 15u8, + BlockKind::CutSandstone => 15u8, + BlockKind::LargeFern => 0u8, + BlockKind::Tnt => 15u8, + BlockKind::WhiteStainedGlassPane => 0u8, + BlockKind::WarpedRoots => 0u8, + BlockKind::PolishedDeepslateStairs => 0u8, + BlockKind::GraniteStairs => 0u8, + BlockKind::AcaciaButton => 0u8, + BlockKind::BrownGlazedTerracotta => 15u8, + BlockKind::ExposedCutCopperStairs => 0u8, + BlockKind::PinkConcrete => 15u8, + BlockKind::HornCoralBlock => 15u8, + BlockKind::DamagedAnvil => 0u8, + BlockKind::PolishedBlackstoneWall => 0u8, + BlockKind::WarpedPressurePlate => 0u8, + BlockKind::WhiteBed => 0u8, + BlockKind::PrismarineSlab => 0u8, + BlockKind::JungleTrapdoor => 0u8, + BlockKind::YellowWallBanner => 0u8, + BlockKind::WeatheredCopper => 15u8, + BlockKind::PottedBrownMushroom => 0u8, + BlockKind::WarpedStairs => 0u8, + BlockKind::Dropper => 15u8, + BlockKind::TallSeagrass => 1u8, + BlockKind::CrimsonTrapdoor => 0u8, + BlockKind::Anvil => 0u8, + BlockKind::HornCoralWallFan => 1u8, + BlockKind::RedstoneWallTorch => 0u8, + BlockKind::CobblestoneStairs => 0u8, + BlockKind::BirchSign => 0u8, + BlockKind::GrayStainedGlass => 0u8, + BlockKind::Melon => 15u8, + BlockKind::ChiseledSandstone => 15u8, + BlockKind::HangingRoots => 0u8, + BlockKind::BlueWallBanner => 0u8, + BlockKind::BrownConcretePowder => 15u8, + BlockKind::PolishedAndesiteSlab => 0u8, + BlockKind::Bookshelf => 15u8, + BlockKind::DeadBrainCoralBlock => 15u8, + BlockKind::BlackStainedGlass => 0u8, + BlockKind::BlueBanner => 0u8, + BlockKind::EnchantingTable => 0u8, + BlockKind::SpruceSapling => 0u8, + BlockKind::BrownConcrete => 15u8, + BlockKind::PackedIce => 15u8, + BlockKind::WarpedNylium => 15u8, + BlockKind::CyanCandleCake => 0u8, + BlockKind::WaxedCutCopperSlab => 0u8, + BlockKind::InfestedCrackedStoneBricks => 15u8, + BlockKind::ChiseledRedSandstone => 15u8, + BlockKind::WarpedTrapdoor => 0u8, + BlockKind::CobblestoneSlab => 0u8, + BlockKind::MagentaGlazedTerracotta => 15u8, + BlockKind::DarkOakPressurePlate => 0u8, + BlockKind::CyanCarpet => 0u8, + BlockKind::PurpleBanner => 0u8, + BlockKind::StrippedCrimsonStem => 15u8, + BlockKind::MagentaStainedGlass => 0u8, + BlockKind::NetherBrickFence => 0u8, + BlockKind::YellowBanner => 0u8, + BlockKind::SoulWallTorch => 0u8, + BlockKind::SmoothSandstoneSlab => 0u8, + BlockKind::MagmaBlock => 15u8, + BlockKind::JungleFence => 0u8, + BlockKind::PinkGlazedTerracotta => 15u8, + BlockKind::BrownBed => 0u8, + BlockKind::DarkOakWood => 15u8, + BlockKind::IronOre => 15u8, + BlockKind::DeepslateIronOre => 15u8, + BlockKind::BlackConcrete => 15u8, + BlockKind::AcaciaFenceGate => 0u8, + BlockKind::RedCarpet => 0u8, + BlockKind::RedSandstoneWall => 0u8, + BlockKind::CoalOre => 15u8, + BlockKind::LightGrayWool => 15u8, + BlockKind::PottedDeadBush => 0u8, + BlockKind::WhiteGlazedTerracotta => 15u8, + BlockKind::BrainCoralWallFan => 1u8, + BlockKind::OakLeaves => 1u8, + BlockKind::RedNetherBrickWall => 0u8, + BlockKind::DripstoneBlock => 15u8, + BlockKind::SmoothStone => 15u8, + BlockKind::ChainCommandBlock => 15u8, + BlockKind::Mycelium => 15u8, + BlockKind::MagentaBed => 0u8, + BlockKind::AncientDebris => 15u8, + BlockKind::PinkBanner => 0u8, + BlockKind::LightGrayStainedGlass => 0u8, + BlockKind::PolishedAndesite => 15u8, + BlockKind::WhiteCandle => 0u8, + BlockKind::PolishedBlackstoneBricks => 15u8, + BlockKind::CrimsonSign => 0u8, + BlockKind::DeadHornCoralWallFan => 1u8, + BlockKind::PurpleWallBanner => 0u8, + BlockKind::MossyStoneBrickStairs => 0u8, + BlockKind::LimeBanner => 0u8, + BlockKind::TurtleEgg => 0u8, + BlockKind::Diorite => 15u8, + BlockKind::PurpleWool => 15u8, + BlockKind::SmoothSandstoneStairs => 0u8, + BlockKind::WitherSkeletonSkull => 0u8, + BlockKind::CrimsonStem => 15u8, + BlockKind::Lantern => 0u8, + BlockKind::DeepslateGoldOre => 15u8, + BlockKind::Dispenser => 15u8, + BlockKind::AcaciaPressurePlate => 0u8, + BlockKind::InfestedStoneBricks => 15u8, + BlockKind::GrayCarpet => 0u8, + BlockKind::GreenWallBanner => 0u8, + BlockKind::SpruceDoor => 0u8, + BlockKind::EndStoneBricks => 15u8, + BlockKind::IronBlock => 15u8, + BlockKind::WarpedDoor => 0u8, + BlockKind::PolishedBlackstone => 15u8, + BlockKind::OrangeCandle => 0u8, + BlockKind::OrangeCandleCake => 0u8, + BlockKind::RedMushroomBlock => 15u8, + BlockKind::PottedWhiteTulip => 0u8, + BlockKind::Air => 0u8, + BlockKind::CaveVines => 0u8, + BlockKind::PolishedBasalt => 15u8, + BlockKind::StrippedOakWood => 15u8, + BlockKind::DarkOakTrapdoor => 0u8, + BlockKind::ActivatorRail => 0u8, + BlockKind::Kelp => 1u8, + BlockKind::WhiteBanner => 0u8, + BlockKind::IronTrapdoor => 0u8, + BlockKind::DarkOakDoor => 0u8, + BlockKind::Cocoa => 0u8, + BlockKind::BlackWallBanner => 0u8, + BlockKind::OxidizedCutCopper => 15u8, + BlockKind::Allium => 0u8, + BlockKind::NetherBrickSlab => 0u8, + BlockKind::GreenGlazedTerracotta => 15u8, + BlockKind::PurpleTerracotta => 15u8, + BlockKind::RespawnAnchor => 15u8, + BlockKind::BirchFence => 0u8, + BlockKind::NetherBrickWall => 0u8, + BlockKind::WaxedCutCopper => 15u8, + BlockKind::BlackBed => 0u8, + BlockKind::CyanShulkerBox => 1u8, + BlockKind::DarkPrismarineSlab => 0u8, + BlockKind::Chest => 0u8, + BlockKind::LightBlueCandle => 0u8, + BlockKind::StrippedDarkOakLog => 15u8, + BlockKind::Glass => 0u8, + BlockKind::GoldBlock => 15u8, + BlockKind::Barrel => 15u8, + BlockKind::RawCopperBlock => 15u8, + BlockKind::OakSlab => 0u8, + BlockKind::CutRedSandstoneSlab => 0u8, + BlockKind::PinkCarpet => 0u8, + BlockKind::WhiteShulkerBox => 1u8, + BlockKind::PinkStainedGlassPane => 0u8, + BlockKind::SoulFire => 0u8, + BlockKind::PottedOakSapling => 0u8, + BlockKind::DeadBubbleCoral => 1u8, + BlockKind::CrimsonPressurePlate => 0u8, + BlockKind::PolishedBlackstoneBrickStairs => 0u8, + BlockKind::PurpleBed => 0u8, + BlockKind::StoneBrickStairs => 0u8, + BlockKind::PottedRedTulip => 0u8, + BlockKind::DriedKelpBlock => 15u8, + BlockKind::YellowConcrete => 15u8, + BlockKind::SmallAmethystBud => 0u8, + BlockKind::BrainCoral => 1u8, + BlockKind::AcaciaSapling => 0u8, + BlockKind::DeepslateLapisOre => 15u8, + BlockKind::CrackedPolishedBlackstoneBricks => 15u8, + BlockKind::Furnace => 15u8, + BlockKind::FireCoral => 1u8, + BlockKind::MagentaConcretePowder => 15u8, + BlockKind::MagentaCandleCake => 0u8, + BlockKind::StrippedBirchWood => 15u8, + BlockKind::TwistingVines => 0u8, + BlockKind::SporeBlossom => 0u8, + BlockKind::CrimsonRoots => 0u8, + BlockKind::ChorusPlant => 1u8, + BlockKind::DiamondOre => 15u8, + BlockKind::LightBlueTerracotta => 15u8, + BlockKind::BlueCandle => 0u8, + BlockKind::VoidAir => 0u8, + BlockKind::PrismarineWall => 0u8, + BlockKind::Cactus => 0u8, + BlockKind::CrimsonHyphae => 15u8, + BlockKind::AttachedMelonStem => 0u8, + BlockKind::WeatheredCutCopperStairs => 0u8, + BlockKind::BlackGlazedTerracotta => 15u8, + BlockKind::BlueIce => 15u8, + BlockKind::Stonecutter => 0u8, + BlockKind::SpruceFence => 0u8, + BlockKind::Shroomlight => 15u8, + BlockKind::WhiteWallBanner => 0u8, + BlockKind::SmoothSandstone => 15u8, + BlockKind::RedstoneWire => 0u8, + BlockKind::SkeletonSkull => 0u8, + BlockKind::RedstoneBlock => 15u8, + BlockKind::StoneSlab => 0u8, + BlockKind::LimeCandleCake => 0u8, + BlockKind::PottedFern => 0u8, + BlockKind::PinkTulip => 0u8, + BlockKind::AcaciaWallSign => 0u8, + BlockKind::CreeperWallHead => 0u8, + BlockKind::BirchWood => 15u8, + BlockKind::MediumAmethystBud => 0u8, + BlockKind::MossyStoneBricks => 15u8, + BlockKind::TintedGlass => 15u8, + BlockKind::OxidizedCutCopperSlab => 0u8, + BlockKind::NetherBrickStairs => 0u8, + BlockKind::AzaleaLeaves => 1u8, + BlockKind::RedTulip => 0u8, + BlockKind::LightBlueStainedGlassPane => 0u8, + BlockKind::PurpleConcrete => 15u8, + BlockKind::GreenStainedGlass => 0u8, + BlockKind::WitherRose => 0u8, + BlockKind::Dandelion => 0u8, + BlockKind::Bamboo => 0u8, + BlockKind::Stone => 15u8, + BlockKind::CyanConcrete => 15u8, + BlockKind::Cauldron => 0u8, + BlockKind::BeeNest => 15u8, + BlockKind::JungleWallSign => 0u8, + BlockKind::DeepslateBricks => 15u8, + BlockKind::YellowCandle => 0u8, + BlockKind::BrownTerracotta => 15u8, + BlockKind::BirchStairs => 0u8, + BlockKind::BirchButton => 0u8, + BlockKind::PlayerHead => 0u8, + BlockKind::PolishedGraniteStairs => 0u8, + BlockKind::BlackstoneSlab => 0u8, + BlockKind::OakSapling => 0u8, + BlockKind::DeadHornCoralFan => 1u8, + BlockKind::ExposedCutCopperSlab => 0u8, + BlockKind::StrippedDarkOakWood => 15u8, + BlockKind::PetrifiedOakSlab => 0u8, + BlockKind::AzureBluet => 0u8, + BlockKind::OakPressurePlate => 0u8, + BlockKind::PinkShulkerBox => 1u8, + BlockKind::DarkOakSapling => 0u8, + BlockKind::CreeperHead => 0u8, + BlockKind::NetherWart => 0u8, + BlockKind::TripwireHook => 0u8, + BlockKind::WarpedFenceGate => 0u8, + BlockKind::CyanConcretePowder => 15u8, + BlockKind::CraftingTable => 15u8, + BlockKind::Sunflower => 0u8, + BlockKind::Observer => 15u8, + BlockKind::JungleSign => 0u8, + BlockKind::PurpleCarpet => 0u8, + BlockKind::DeadTubeCoralWallFan => 1u8, + BlockKind::EndStone => 15u8, + BlockKind::GrassBlock => 15u8, + BlockKind::Light => 0u8, + BlockKind::YellowWool => 15u8, + BlockKind::PottedFloweringAzaleaBush => 0u8, + BlockKind::Andesite => 15u8, + BlockKind::CrimsonFungus => 0u8, + BlockKind::OrangeWool => 15u8, + BlockKind::DeepslateBrickSlab => 0u8, + BlockKind::Calcite => 15u8, + BlockKind::BlackBanner => 0u8, + BlockKind::CyanWallBanner => 0u8, + BlockKind::InfestedMossyStoneBricks => 15u8, + BlockKind::MelonStem => 0u8, + BlockKind::SlimeBlock => 1u8, + BlockKind::PrismarineBricks => 15u8, + BlockKind::Beetroots => 0u8, + BlockKind::PowderSnow => 1u8, + BlockKind::DeadBrainCoralFan => 1u8, + BlockKind::InfestedChiseledStoneBricks => 15u8, + BlockKind::EnderChest => 0u8, + BlockKind::ChiseledDeepslate => 15u8, + BlockKind::CommandBlock => 15u8, + BlockKind::CarvedPumpkin => 15u8, + BlockKind::Podzol => 15u8, + BlockKind::LightGrayWallBanner => 0u8, + BlockKind::WaxedWeatheredCutCopperStairs => 0u8, + BlockKind::JungleLog => 15u8, + BlockKind::LightningRod => 0u8, + BlockKind::QuartzBricks => 15u8, + BlockKind::LapisBlock => 15u8, + BlockKind::MagentaCarpet => 0u8, + BlockKind::OrangeConcretePowder => 15u8, + BlockKind::BirchSapling => 0u8, + BlockKind::CrimsonNylium => 15u8, + BlockKind::PolishedDioriteStairs => 0u8, + BlockKind::SpruceLeaves => 1u8, + BlockKind::WhiteConcretePowder => 15u8, + BlockKind::WhiteCarpet => 0u8, + BlockKind::LightGrayStainedGlassPane => 0u8, + BlockKind::LimeWool => 15u8, + BlockKind::BrownWool => 15u8, + BlockKind::OakButton => 0u8, + BlockKind::BlackCandleCake => 0u8, + BlockKind::OxidizedCopper => 15u8, + BlockKind::YellowCandleCake => 0u8, + BlockKind::GreenCandleCake => 0u8, + BlockKind::Snow => 0u8, + BlockKind::OrangeStainedGlassPane => 0u8, + BlockKind::CutCopperStairs => 0u8, + BlockKind::CrimsonStairs => 0u8, + BlockKind::HornCoral => 1u8, + BlockKind::BlueGlazedTerracotta => 15u8, + BlockKind::PottedJungleSapling => 0u8, + BlockKind::WarpedHyphae => 15u8, + BlockKind::StrippedCrimsonHyphae => 15u8, + BlockKind::CyanWool => 15u8, + BlockKind::DeadTubeCoralBlock => 15u8, + BlockKind::Basalt => 15u8, + BlockKind::MossyCobblestoneSlab => 0u8, + BlockKind::GildedBlackstone => 15u8, + BlockKind::MushroomStem => 15u8, + BlockKind::PottedRedMushroom => 0u8, + BlockKind::BlueTerracotta => 15u8, + BlockKind::OrangeBanner => 0u8, + BlockKind::ExposedCutCopper => 15u8, + BlockKind::PinkStainedGlass => 0u8, + BlockKind::BlueWool => 15u8, + BlockKind::StrippedAcaciaWood => 15u8, + BlockKind::NetherSprouts => 0u8, + BlockKind::DeadBubbleCoralBlock => 15u8, + BlockKind::Water => 1u8, + BlockKind::CutSandstoneSlab => 0u8, + BlockKind::Farmland => 0u8, + BlockKind::YellowBed => 0u8, + BlockKind::GraniteSlab => 0u8, + BlockKind::WaxedOxidizedCutCopper => 15u8, + BlockKind::WaxedWeatheredCopper => 15u8, + BlockKind::DioriteSlab => 0u8, + BlockKind::Comparator => 0u8, + BlockKind::OrangeTerracotta => 15u8, + BlockKind::OrangeGlazedTerracotta => 15u8, + BlockKind::RedConcretePowder => 15u8, + BlockKind::DeadBubbleCoralFan => 1u8, + BlockKind::BrainCoralFan => 1u8, + BlockKind::CrimsonSlab => 0u8, + BlockKind::LightGrayConcretePowder => 15u8, + BlockKind::GrayCandle => 0u8, + BlockKind::PrismarineBrickStairs => 0u8, + BlockKind::GlassPane => 0u8, + BlockKind::WaxedOxidizedCutCopperStairs => 0u8, + BlockKind::BrewingStand => 0u8, + BlockKind::CrimsonPlanks => 15u8, + BlockKind::JungleFenceGate => 0u8, + BlockKind::DeadTubeCoral => 1u8, + BlockKind::GreenCandle => 0u8, + BlockKind::DeepslateTiles => 15u8, + BlockKind::Jigsaw => 15u8, + BlockKind::DirtPath => 0u8, + BlockKind::WaxedWeatheredCutCopperSlab => 0u8, + BlockKind::WhiteStainedGlass => 0u8, + BlockKind::ZombieHead => 0u8, + BlockKind::JackOLantern => 15u8, + BlockKind::PottedDandelion => 0u8, + BlockKind::PottedWarpedFungus => 0u8, + BlockKind::PottedWitherRose => 0u8, + BlockKind::StrippedWarpedHyphae => 15u8, + BlockKind::CyanCandle => 0u8, + BlockKind::InfestedDeepslate => 15u8, + BlockKind::PolishedAndesiteStairs => 0u8, + BlockKind::RedWallBanner => 0u8, + BlockKind::ShulkerBox => 1u8, + BlockKind::Cobweb => 1u8, + BlockKind::DaylightDetector => 0u8, + BlockKind::CyanTerracotta => 15u8, + BlockKind::ChippedAnvil => 0u8, + BlockKind::RedGlazedTerracotta => 15u8, + BlockKind::FletchingTable => 15u8, + BlockKind::StonePressurePlate => 0u8, + BlockKind::CobbledDeepslate => 15u8, + BlockKind::WitherSkeletonWallSkull => 0u8, + BlockKind::Netherrack => 15u8, + BlockKind::MagentaTerracotta => 15u8, + BlockKind::BlueCandleCake => 0u8, + BlockKind::QuartzPillar => 15u8, + BlockKind::LightBlueBanner => 0u8, + BlockKind::SoulLantern => 0u8, + BlockKind::MagentaWool => 15u8, + BlockKind::DeadTubeCoralFan => 1u8, + BlockKind::DragonHead => 0u8, + BlockKind::JungleButton => 0u8, + BlockKind::ChiseledQuartzBlock => 15u8, + BlockKind::BigDripleaf => 0u8, + BlockKind::BubbleCoralWallFan => 1u8, + BlockKind::PointedDripstone => 0u8, + BlockKind::DarkOakLeaves => 1u8, + BlockKind::LimeConcretePowder => 15u8, + BlockKind::MagentaWallBanner => 0u8, + BlockKind::PurpurStairs => 0u8, + BlockKind::StructureVoid => 0u8, + BlockKind::LightGrayCarpet => 0u8, + BlockKind::OakSign => 0u8, + BlockKind::PolishedDeepslateWall => 0u8, + BlockKind::StrippedSpruceLog => 15u8, + BlockKind::LimeBed => 0u8, + BlockKind::PinkTerracotta => 15u8, + BlockKind::AcaciaFence => 0u8, + BlockKind::EndStoneBrickStairs => 0u8, + BlockKind::Lectern => 0u8, + BlockKind::BlueConcrete => 15u8, + BlockKind::PlayerWallHead => 0u8, + BlockKind::RootedDirt => 15u8, + BlockKind::DeadHornCoral => 1u8, + BlockKind::ChiseledNetherBricks => 15u8, + BlockKind::BirchPressurePlate => 0u8, + BlockKind::PinkConcretePowder => 15u8, + BlockKind::RedNetherBrickSlab => 0u8, + BlockKind::RedConcrete => 15u8, + BlockKind::FloweringAzalea => 0u8, + BlockKind::WallTorch => 0u8, + BlockKind::BubbleCoral => 1u8, + BlockKind::PrismarineBrickSlab => 0u8, + BlockKind::AndesiteSlab => 0u8, + BlockKind::LightGrayCandleCake => 0u8, + BlockKind::Torch => 0u8, + BlockKind::HeavyWeightedPressurePlate => 0u8, + BlockKind::DarkOakSlab => 0u8, + BlockKind::QuartzStairs => 0u8, + BlockKind::Repeater => 0u8, + BlockKind::CobbledDeepslateSlab => 0u8, + BlockKind::PurpurSlab => 0u8, + BlockKind::SprucePressurePlate => 0u8, + BlockKind::JungleSapling => 0u8, + BlockKind::PinkBed => 0u8, + BlockKind::IronBars => 0u8, + BlockKind::OrangeStainedGlass => 0u8, + BlockKind::DeadBush => 0u8, + BlockKind::OakLog => 15u8, + BlockKind::PurpurBlock => 15u8, + BlockKind::MossBlock => 15u8, + BlockKind::WarpedWartBlock => 15u8, + BlockKind::CobbledDeepslateWall => 0u8, + BlockKind::PolishedDiorite => 15u8, + BlockKind::LapisOre => 15u8, + BlockKind::GreenTerracotta => 15u8, + BlockKind::MagentaCandle => 0u8, + BlockKind::BirchPlanks => 15u8, + BlockKind::DarkOakFence => 0u8, + BlockKind::PottedBlueOrchid => 0u8, + BlockKind::BubbleCoralBlock => 15u8, + BlockKind::StoneStairs => 0u8, + BlockKind::SmoothBasalt => 15u8, + BlockKind::GrayGlazedTerracotta => 15u8, + BlockKind::BirchLeaves => 1u8, + BlockKind::LargeAmethystBud => 0u8, + BlockKind::SkeletonWallSkull => 0u8, + BlockKind::DioriteWall => 0u8, + BlockKind::PottedAllium => 0u8, + BlockKind::WhiteTulip => 0u8, + BlockKind::WarpedStem => 15u8, + BlockKind::JungleStairs => 0u8, + BlockKind::TrappedChest => 0u8, + BlockKind::SpruceTrapdoor => 0u8, + BlockKind::DeadFireCoral => 1u8, + BlockKind::GrayWallBanner => 0u8, + BlockKind::PottedAzureBluet => 0u8, + BlockKind::PurpleConcretePowder => 15u8, + BlockKind::PinkCandle => 0u8, + BlockKind::GlowLichen => 0u8, + BlockKind::PottedCornflower => 0u8, + BlockKind::RoseBush => 0u8, + BlockKind::CyanStainedGlassPane => 0u8, + BlockKind::HoneyBlock => 1u8, + BlockKind::StoneBrickSlab => 0u8, + BlockKind::QuartzSlab => 0u8, + BlockKind::YellowGlazedTerracotta => 15u8, + BlockKind::GreenWool => 15u8, + BlockKind::WhiteConcrete => 15u8, + BlockKind::LightGrayShulkerBox => 1u8, + BlockKind::Blackstone => 15u8, + BlockKind::StrippedAcaciaLog => 15u8, + BlockKind::Grindstone => 0u8, + BlockKind::BlueBed => 0u8, + BlockKind::LightGrayConcrete => 15u8, + BlockKind::CrackedStoneBricks => 15u8, + BlockKind::Spawner => 1u8, + BlockKind::Conduit => 1u8, + BlockKind::BrainCoralBlock => 15u8, + BlockKind::BlackstoneStairs => 0u8, + BlockKind::GreenConcrete => 15u8, + BlockKind::CrackedNetherBricks => 15u8, + BlockKind::Cornflower => 0u8, + BlockKind::CutRedSandstone => 15u8, + BlockKind::SugarCane => 0u8, + BlockKind::JungleDoor => 0u8, + BlockKind::LimeStainedGlass => 0u8, + BlockKind::Piston => 15u8, + BlockKind::DioriteStairs => 0u8, + BlockKind::PottedCrimsonFungus => 0u8, + BlockKind::PurpleShulkerBox => 1u8, + BlockKind::DeadFireCoralBlock => 15u8, + BlockKind::YellowCarpet => 0u8, + BlockKind::SmoothRedSandstoneSlab => 0u8, + BlockKind::JunglePlanks => 15u8, + BlockKind::SmoothQuartzSlab => 0u8, + BlockKind::SnowBlock => 15u8, + BlockKind::PumpkinStem => 0u8, + BlockKind::CrimsonButton => 0u8, + BlockKind::GreenCarpet => 0u8, + BlockKind::Lilac => 0u8, + BlockKind::RedstoneTorch => 0u8, + BlockKind::PoweredRail => 0u8, + BlockKind::YellowStainedGlassPane => 0u8, + BlockKind::DeepslateRedstoneOre => 15u8, + BlockKind::JungleWood => 15u8, + BlockKind::LightBlueCandleCake => 0u8, + BlockKind::SmithingTable => 15u8, + BlockKind::MossCarpet => 0u8, + BlockKind::RedStainedGlassPane => 0u8, + BlockKind::Sandstone => 15u8, + BlockKind::PolishedDeepslate => 15u8, + BlockKind::Fire => 0u8, + BlockKind::TubeCoral => 1u8, + BlockKind::SpruceStairs => 0u8, + BlockKind::PurpleCandleCake => 0u8, + BlockKind::BoneBlock => 15u8, + BlockKind::StickyPiston => 15u8, + BlockKind::RedNetherBricks => 15u8, + BlockKind::LimeStainedGlassPane => 0u8, + BlockKind::SandstoneWall => 0u8, + BlockKind::StrippedSpruceWood => 15u8, + BlockKind::YellowTerracotta => 15u8, + BlockKind::WhiteCandleCake => 0u8, + BlockKind::EmeraldOre => 15u8, + BlockKind::AcaciaSign => 0u8, + BlockKind::FireCoralFan => 1u8, + BlockKind::CobblestoneWall => 0u8, + BlockKind::PottedDarkOakSapling => 0u8, + BlockKind::Prismarine => 15u8, + BlockKind::BambooSapling => 0u8, + BlockKind::OrangeTulip => 0u8, + BlockKind::CyanGlazedTerracotta => 15u8, + BlockKind::DeepslateDiamondOre => 15u8, + BlockKind::RedShulkerBox => 1u8, + BlockKind::MossyStoneBrickSlab => 0u8, + BlockKind::PurpleGlazedTerracotta => 15u8, + BlockKind::BlackConcretePowder => 15u8, + BlockKind::Tuff => 15u8, + BlockKind::WaxedWeatheredCutCopper => 15u8, + BlockKind::RedstoneLamp => 15u8, + BlockKind::AcaciaLog => 15u8, + BlockKind::Terracotta => 15u8, + BlockKind::AcaciaSlab => 0u8, + BlockKind::QuartzBlock => 15u8, + BlockKind::PottedBamboo => 0u8, + BlockKind::JungleSlab => 0u8, + BlockKind::Azalea => 0u8, + BlockKind::RedBed => 0u8, + BlockKind::CyanStainedGlass => 0u8, + BlockKind::DarkPrismarineStairs => 0u8, + BlockKind::DeepslateBrickWall => 0u8, + BlockKind::MagentaConcrete => 15u8, + BlockKind::Wheat => 0u8, + BlockKind::BirchSlab => 0u8, + BlockKind::BlackTerracotta => 15u8, + BlockKind::AttachedPumpkinStem => 0u8, + BlockKind::WhiteTerracotta => 15u8, + BlockKind::BirchFenceGate => 0u8, + BlockKind::RepeatingCommandBlock => 15u8, + BlockKind::Ice => 1u8, + BlockKind::LightBlueBed => 0u8, + BlockKind::BlackCarpet => 0u8, + BlockKind::StrippedJungleWood => 15u8, + BlockKind::PottedSpruceSapling => 0u8, + BlockKind::OakTrapdoor => 0u8, + BlockKind::DeadBrainCoral => 1u8, + BlockKind::StoneButton => 0u8, + BlockKind::StrippedJungleLog => 15u8, + BlockKind::WaxedExposedCutCopperSlab => 0u8, + BlockKind::Hopper => 0u8, + BlockKind::NetherBricks => 15u8, + BlockKind::RedSandstoneStairs => 0u8, + BlockKind::HornCoralFan => 1u8, + BlockKind::GrayConcrete => 15u8, + BlockKind::RedBanner => 0u8, + BlockKind::WarpedButton => 0u8, + BlockKind::SculkSensor => 0u8, + BlockKind::Grass => 0u8, + BlockKind::InfestedStone => 15u8, + BlockKind::LightBlueWallBanner => 0u8, + BlockKind::AmethystCluster => 0u8, + BlockKind::BlueOrchid => 0u8, + } + } +} +impl BlockKind { + #[doc = "Returns the `solid` property of this `BlockKind`."] + #[inline] + pub fn solid(&self) -> bool { + match self { + BlockKind::LightGrayWool => true, + BlockKind::OakFence => true, + BlockKind::PackedIce => true, + BlockKind::YellowBed => true, + BlockKind::HornCoral => false, + BlockKind::WaxedExposedCutCopperStairs => true, + BlockKind::GreenWool => true, + BlockKind::PottedOxeyeDaisy => true, + BlockKind::BrownMushroom => false, + BlockKind::QuartzPillar => true, + BlockKind::WaxedWeatheredCutCopperSlab => true, + BlockKind::MagentaTerracotta => true, + BlockKind::GrayConcretePowder => true, + BlockKind::LargeAmethystBud => true, + BlockKind::DeepslateGoldOre => true, + BlockKind::DeepslateBricks => true, + BlockKind::JungleFenceGate => true, + BlockKind::SprucePlanks => true, + BlockKind::BrownMushroomBlock => true, + BlockKind::LightGrayCandle => true, + BlockKind::DeepslateBrickStairs => true, + BlockKind::CutCopper => true, + BlockKind::WaxedOxidizedCutCopperSlab => true, + BlockKind::PinkShulkerBox => true, + BlockKind::RedSand => true, + BlockKind::OxidizedCutCopperStairs => true, + BlockKind::BrownStainedGlass => true, + BlockKind::AttachedPumpkinStem => false, + BlockKind::CrimsonTrapdoor => true, + BlockKind::StrippedOakLog => true, + BlockKind::CyanBed => true, + BlockKind::PottedBlueOrchid => true, + BlockKind::DeadBrainCoralBlock => true, + BlockKind::CrimsonButton => false, + BlockKind::PottedDeadBush => true, + BlockKind::GreenStainedGlassPane => true, + BlockKind::LavaCauldron => true, + BlockKind::GrayStainedGlass => true, + BlockKind::DaylightDetector => true, + BlockKind::SporeBlossom => false, + BlockKind::JungleLog => true, + BlockKind::OakStairs => true, + BlockKind::Smoker => true, + BlockKind::SlimeBlock => true, + BlockKind::Snow => true, + BlockKind::AcaciaPressurePlate => false, + BlockKind::Clay => true, + BlockKind::PinkCarpet => true, + BlockKind::ChippedAnvil => true, + BlockKind::PurpleStainedGlassPane => true, + BlockKind::VoidAir => false, + BlockKind::DarkOakSign => false, + BlockKind::PottedBirchSapling => true, + BlockKind::Beehive => true, + BlockKind::LightBlueStainedGlassPane => true, + BlockKind::DragonEgg => true, + BlockKind::PinkConcrete => true, + BlockKind::GreenCarpet => true, + BlockKind::Pumpkin => true, + BlockKind::CyanShulkerBox => true, + BlockKind::GraniteSlab => true, + BlockKind::FletchingTable => true, + BlockKind::Candle => true, + BlockKind::RedTerracotta => true, + BlockKind::CyanTerracotta => true, + BlockKind::StrippedWarpedStem => true, + BlockKind::AttachedMelonStem => false, + BlockKind::LightGrayWallBanner => false, + BlockKind::SmoothSandstone => true, + BlockKind::Cauldron => true, + BlockKind::WeatheredCutCopperSlab => true, + BlockKind::Spawner => true, + BlockKind::Bell => true, + BlockKind::GreenWallBanner => false, + BlockKind::DeadTubeCoralBlock => true, + BlockKind::DarkOakButton => false, + BlockKind::BlackWool => true, + BlockKind::RedSandstoneSlab => true, + BlockKind::ChorusFlower => true, + BlockKind::BlackShulkerBox => true, + BlockKind::DiamondOre => true, + BlockKind::StonePressurePlate => false, + BlockKind::Sunflower => false, + BlockKind::DetectorRail => false, + BlockKind::JungleFence => true, + BlockKind::PolishedBasalt => true, + BlockKind::SmoothSandstoneStairs => true, + BlockKind::EndStoneBrickStairs => true, + BlockKind::BlackCarpet => true, + BlockKind::BlueConcrete => true, + BlockKind::YellowStainedGlassPane => true, + BlockKind::DeadBush => false, + BlockKind::AcaciaFenceGate => true, + BlockKind::OrangeShulkerBox => true, + BlockKind::MossCarpet => true, + BlockKind::GrayWool => true, + BlockKind::WarpedWallSign => false, + BlockKind::EndStone => true, + BlockKind::AcaciaLog => true, + BlockKind::DarkPrismarine => true, + BlockKind::BlueCandle => true, + BlockKind::PottedAzureBluet => true, + BlockKind::PowderSnowCauldron => true, + BlockKind::TubeCoralFan => false, + BlockKind::Chest => true, + BlockKind::SpruceStairs => true, + BlockKind::NetherQuartzOre => true, + BlockKind::WaxedCutCopperSlab => true, + BlockKind::StoneBrickStairs => true, + BlockKind::WarpedFungus => false, + BlockKind::AcaciaButton => false, + BlockKind::LimeWool => true, + BlockKind::Kelp => false, + BlockKind::InfestedChiseledStoneBricks => true, + BlockKind::Target => true, + BlockKind::SandstoneStairs => true, + BlockKind::CyanCandle => true, + BlockKind::BirchFenceGate => true, + BlockKind::Lilac => false, + BlockKind::RedSandstoneWall => true, + BlockKind::TubeCoralBlock => true, + BlockKind::PrismarineBrickSlab => true, + BlockKind::RedNetherBrickSlab => true, + BlockKind::RedStainedGlassPane => true, + BlockKind::YellowGlazedTerracotta => true, + BlockKind::MagentaCarpet => true, + BlockKind::BrownConcrete => true, + BlockKind::RedMushroom => false, + BlockKind::StrippedBirchLog => true, + BlockKind::Tripwire => false, + BlockKind::PinkTerracotta => true, + BlockKind::JungleStairs => true, + BlockKind::Barrel => true, + BlockKind::DeadFireCoralFan => false, + BlockKind::Barrier => true, + BlockKind::LightBlueCarpet => true, + BlockKind::PottedLilyOfTheValley => true, + BlockKind::AcaciaSapling => false, + BlockKind::WitherRose => false, + BlockKind::SmoothQuartz => true, + BlockKind::StructureBlock => true, + BlockKind::DeepslateIronOre => true, + BlockKind::PinkWallBanner => false, + BlockKind::StrippedJungleWood => true, + BlockKind::BirchLog => true, + BlockKind::Diorite => true, + BlockKind::LimeShulkerBox => true, + BlockKind::BuddingAmethyst => true, + BlockKind::MushroomStem => true, + BlockKind::LightBlueTerracotta => true, + BlockKind::BlueStainedGlass => true, + BlockKind::BlackCandle => true, + BlockKind::BrownCarpet => true, + BlockKind::JunglePressurePlate => false, + BlockKind::OakDoor => true, + BlockKind::YellowWool => true, + BlockKind::Bedrock => true, + BlockKind::YellowCarpet => true, + BlockKind::CrimsonDoor => true, + BlockKind::SpruceButton => false, + BlockKind::BambooSapling => false, + BlockKind::CarvedPumpkin => true, + BlockKind::AcaciaLeaves => true, + BlockKind::ChiseledNetherBricks => true, + BlockKind::PottedOrangeTulip => true, + BlockKind::LightBlueCandle => true, + BlockKind::GraniteStairs => true, + BlockKind::Sponge => true, + BlockKind::PetrifiedOakSlab => true, + BlockKind::CobbledDeepslateSlab => true, + BlockKind::NetherWart => false, + BlockKind::PinkGlazedTerracotta => true, + BlockKind::SpruceFenceGate => true, + BlockKind::SmoothQuartzSlab => true, + BlockKind::RedMushroomBlock => true, + BlockKind::EndRod => true, + BlockKind::PinkStainedGlass => true, + BlockKind::BrewingStand => true, + BlockKind::BlackStainedGlassPane => true, + BlockKind::LimeConcretePowder => true, + BlockKind::DeadBrainCoralWallFan => false, + BlockKind::DarkOakPlanks => true, + BlockKind::DarkOakLog => true, + BlockKind::JungleWallSign => false, + BlockKind::RedstoneBlock => true, + BlockKind::DriedKelpBlock => true, + BlockKind::Lantern => true, + BlockKind::LilyPad => true, + BlockKind::CreeperHead => true, + BlockKind::PolishedGraniteSlab => true, + BlockKind::WhiteTulip => false, + BlockKind::WhiteCandle => true, + BlockKind::BlueStainedGlassPane => true, + BlockKind::WhiteCarpet => true, + BlockKind::QuartzBlock => true, + BlockKind::CobbledDeepslate => true, + BlockKind::Conduit => true, + BlockKind::AndesiteWall => true, + BlockKind::OakSign => false, + BlockKind::PlayerHead => true, + BlockKind::PottedCrimsonRoots => true, + BlockKind::SmoothRedSandstoneSlab => true, + BlockKind::LightGrayStainedGlass => true, + BlockKind::StoneSlab => true, + BlockKind::Dandelion => false, + BlockKind::CobblestoneSlab => true, + BlockKind::PrismarineBricks => true, + BlockKind::PinkCandleCake => true, + BlockKind::Blackstone => true, + BlockKind::AcaciaWallSign => false, + BlockKind::CyanConcretePowder => true, + BlockKind::CandleCake => true, + BlockKind::BigDripleafStem => false, + BlockKind::StrippedOakWood => true, + BlockKind::Scaffolding => true, + BlockKind::AcaciaFence => true, + BlockKind::StrippedAcaciaLog => true, + BlockKind::BrainCoralBlock => true, + BlockKind::CaveAir => false, + BlockKind::Grindstone => true, + BlockKind::OrangeStainedGlassPane => true, + BlockKind::StrippedCrimsonHyphae => true, + BlockKind::CutSandstoneSlab => true, + BlockKind::CutSandstone => true, + BlockKind::GildedBlackstone => true, + BlockKind::CobblestoneStairs => true, + BlockKind::NetherPortal => false, + BlockKind::Carrots => false, + BlockKind::WeatheredCopper => true, + BlockKind::StrippedDarkOakWood => true, + BlockKind::AmethystCluster => true, + BlockKind::PottedPoppy => true, + BlockKind::MagmaBlock => true, + BlockKind::StructureVoid => false, + BlockKind::OrangeConcrete => true, + BlockKind::RedStainedGlass => true, + BlockKind::PurpleCarpet => true, + BlockKind::RedConcretePowder => true, + BlockKind::GrayCarpet => true, + BlockKind::StrippedBirchWood => true, + BlockKind::DeepslateLapisOre => true, + BlockKind::MagentaBanner => false, + BlockKind::CrimsonStairs => true, + BlockKind::ExposedCutCopperSlab => true, + BlockKind::MossyStoneBrickStairs => true, + BlockKind::WaxedOxidizedCutCopperStairs => true, + BlockKind::SoulSand => true, + BlockKind::SpruceSign => false, + BlockKind::LimeGlazedTerracotta => true, + BlockKind::YellowCandleCake => true, + BlockKind::GrayTerracotta => true, + BlockKind::BlueBanner => false, + BlockKind::CyanWool => true, + BlockKind::NetherSprouts => false, + BlockKind::LightningRod => true, + BlockKind::BirchButton => false, + BlockKind::NetherBrickSlab => true, + BlockKind::GrayBed => true, + BlockKind::TripwireHook => false, + BlockKind::Anvil => true, + BlockKind::MossyCobblestoneSlab => true, + BlockKind::Cactus => true, + BlockKind::CoalBlock => true, + BlockKind::PottedBamboo => true, + BlockKind::WarpedButton => false, + BlockKind::SkeletonWallSkull => true, + BlockKind::CrackedDeepslateTiles => true, + BlockKind::ChiseledStoneBricks => true, + BlockKind::OakPressurePlate => false, + BlockKind::NetherBricks => true, + BlockKind::Glass => true, + BlockKind::CyanConcrete => true, + BlockKind::YellowShulkerBox => true, + BlockKind::TubeCoral => false, + BlockKind::SmithingTable => true, + BlockKind::PottedFloweringAzaleaBush => true, + BlockKind::MossBlock => true, + BlockKind::MossyStoneBrickWall => true, + BlockKind::WarpedStairs => true, + BlockKind::Stone => true, + BlockKind::PottedDarkOakSapling => true, + BlockKind::Gravel => true, + BlockKind::CoarseDirt => true, + BlockKind::SmoothStone => true, + BlockKind::MagentaGlazedTerracotta => true, + BlockKind::ExposedCutCopperStairs => true, + BlockKind::Mycelium => true, + BlockKind::ShulkerBox => true, + BlockKind::RedstoneLamp => true, + BlockKind::WhiteWallBanner => false, + BlockKind::WhiteConcretePowder => true, + BlockKind::CrimsonStem => true, + BlockKind::Comparator => true, + BlockKind::LimeTerracotta => true, + BlockKind::BirchPlanks => true, + BlockKind::DeadBubbleCoralWallFan => false, + BlockKind::MagentaCandle => true, + BlockKind::LargeFern => false, + BlockKind::Cobblestone => true, + BlockKind::EndPortalFrame => true, + BlockKind::GreenShulkerBox => true, + BlockKind::PrismarineBrickStairs => true, + BlockKind::BirchPressurePlate => false, + BlockKind::OrangeConcretePowder => true, + BlockKind::SmoothBasalt => true, + BlockKind::Vine => false, + BlockKind::SweetBerryBush => false, + BlockKind::NetheriteBlock => true, + BlockKind::Lever => false, + BlockKind::DeadBrainCoral => false, + BlockKind::RawIronBlock => true, + BlockKind::HornCoralFan => false, + BlockKind::RedSandstone => true, + BlockKind::Light => false, + BlockKind::PurpleStainedGlass => true, + BlockKind::GrayShulkerBox => true, + BlockKind::InfestedMossyStoneBricks => true, + BlockKind::BubbleCoralWallFan => false, + BlockKind::WaxedOxidizedCopper => true, + BlockKind::OxeyeDaisy => false, + BlockKind::GoldBlock => true, + BlockKind::BlueCandleCake => true, + BlockKind::PolishedBlackstone => true, + BlockKind::Ladder => true, + BlockKind::BlackStainedGlass => true, + BlockKind::Terracotta => true, + BlockKind::PurpleConcretePowder => true, + BlockKind::PowderSnow => false, + BlockKind::SmallDripleaf => false, + BlockKind::JackOLantern => true, + BlockKind::StrippedSpruceLog => true, + BlockKind::AcaciaWood => true, + BlockKind::WhiteStainedGlass => true, + BlockKind::CopperOre => true, + BlockKind::CrimsonFenceGate => true, + BlockKind::BirchTrapdoor => true, + BlockKind::RepeatingCommandBlock => true, + BlockKind::RedCarpet => true, + BlockKind::Water => false, + BlockKind::BirchLeaves => true, + BlockKind::RoseBush => false, + BlockKind::WaxedExposedCutCopper => true, + BlockKind::AcaciaSign => false, + BlockKind::PolishedDeepslateWall => true, + BlockKind::CreeperWallHead => true, + BlockKind::AndesiteStairs => true, + BlockKind::PottedRedTulip => true, + BlockKind::WetSponge => true, + BlockKind::CrimsonNylium => true, + BlockKind::OakLeaves => true, + BlockKind::PottedCrimsonFungus => true, + BlockKind::BubbleCoral => false, + BlockKind::BlueCarpet => true, + BlockKind::SpruceSapling => false, + BlockKind::MovingPiston => false, + BlockKind::RedGlazedTerracotta => true, + BlockKind::LightGrayConcrete => true, + BlockKind::Allium => false, + BlockKind::PurpleBanner => false, + BlockKind::PolishedGraniteStairs => true, + BlockKind::NetherBrickFence => true, + BlockKind::PurpleCandle => true, + BlockKind::DragonHead => true, + BlockKind::SandstoneWall => true, + BlockKind::DiamondBlock => true, + BlockKind::JungleTrapdoor => true, + BlockKind::CobbledDeepslateStairs => true, + BlockKind::BigDripleaf => true, + BlockKind::WaterCauldron => true, + BlockKind::ChiseledDeepslate => true, + BlockKind::Bricks => true, + BlockKind::DeadTubeCoral => false, + BlockKind::SpruceSlab => true, + BlockKind::GreenBed => true, + BlockKind::WhiteBanner => false, + BlockKind::HangingRoots => false, + BlockKind::AncientDebris => true, + BlockKind::WhiteStainedGlassPane => true, + BlockKind::DirtPath => true, + BlockKind::PottedBrownMushroom => true, + BlockKind::Bamboo => true, + BlockKind::Dispenser => true, + BlockKind::LimeBanner => false, + BlockKind::DeepslateBrickWall => true, + BlockKind::SmallAmethystBud => true, + BlockKind::ExposedCopper => true, + BlockKind::PolishedBlackstoneSlab => true, + BlockKind::SoulWallTorch => false, + BlockKind::Glowstone => true, + BlockKind::RedCandle => true, + BlockKind::WeatheredCutCopper => true, + BlockKind::WaxedWeatheredCutCopperStairs => true, + BlockKind::StrippedJungleLog => true, + BlockKind::PottedSpruceSapling => true, + BlockKind::BlackstoneSlab => true, + BlockKind::PolishedBlackstoneButton => false, + BlockKind::LapisBlock => true, + BlockKind::GreenConcretePowder => true, + BlockKind::BlackWallBanner => false, + BlockKind::BlackCandleCake => true, + BlockKind::AcaciaTrapdoor => true, + BlockKind::FloweringAzalea => true, + BlockKind::PolishedBlackstoneBrickWall => true, + BlockKind::WaxedExposedCopper => true, + BlockKind::InfestedCrackedStoneBricks => true, + BlockKind::NetherBrickStairs => true, + BlockKind::TallGrass => false, + BlockKind::PurpleWool => true, + BlockKind::Netherrack => true, + BlockKind::EndStoneBricks => true, + BlockKind::CyanStainedGlassPane => true, + BlockKind::MediumAmethystBud => true, + BlockKind::StrippedCrimsonStem => true, + BlockKind::DeepslateCoalOre => true, + BlockKind::DeepslateEmeraldOre => true, + BlockKind::WarpedWartBlock => true, + BlockKind::StoneStairs => true, + BlockKind::DeadBubbleCoral => false, + BlockKind::YellowWallBanner => false, + BlockKind::Melon => true, + BlockKind::PolishedDioriteSlab => true, + BlockKind::BlueGlazedTerracotta => true, + BlockKind::WeepingVines => false, + BlockKind::LightBlueConcrete => true, + BlockKind::OxidizedCutCopper => true, + BlockKind::SpruceLog => true, + BlockKind::RawCopperBlock => true, + BlockKind::SpruceLeaves => true, + BlockKind::StrippedDarkOakLog => true, + BlockKind::Beacon => true, + BlockKind::BrownWool => true, + BlockKind::SugarCane => false, + BlockKind::BrownConcretePowder => true, + BlockKind::EndStoneBrickWall => true, + BlockKind::PurpleWallBanner => false, + BlockKind::YellowCandle => true, + BlockKind::CutRedSandstoneSlab => true, + BlockKind::PottedCactus => true, + BlockKind::Tnt => true, + BlockKind::LightBlueBed => true, + BlockKind::JungleSlab => true, + BlockKind::Calcite => true, + BlockKind::MagentaConcrete => true, + BlockKind::DeepslateTiles => true, + BlockKind::HayBlock => true, + BlockKind::CrimsonHyphae => true, + BlockKind::SprucePressurePlate => false, + BlockKind::LightGrayShulkerBox => true, + BlockKind::WarpedRoots => false, + BlockKind::GrayBanner => false, + BlockKind::LightGrayCandleCake => true, + BlockKind::AcaciaDoor => true, + BlockKind::LightBlueGlazedTerracotta => true, + BlockKind::LightGrayBed => true, + BlockKind::TintedGlass => true, + BlockKind::CrackedDeepslateBricks => true, + BlockKind::StoneBrickSlab => true, + BlockKind::PottedOakSapling => true, + BlockKind::PurpleTerracotta => true, + BlockKind::GoldOre => true, + BlockKind::FloweringAzaleaLeaves => true, + BlockKind::LightGrayGlazedTerracotta => true, + BlockKind::PolishedDeepslate => true, + BlockKind::MagentaCandleCake => true, + BlockKind::LightBlueBanner => false, + BlockKind::ChainCommandBlock => true, + BlockKind::NetherWartBlock => true, + BlockKind::PolishedDeepslateStairs => true, + BlockKind::BubbleColumn => false, + BlockKind::StrippedSpruceWood => true, + BlockKind::RespawnAnchor => true, + BlockKind::CyanGlazedTerracotta => true, + BlockKind::StrippedWarpedHyphae => true, + BlockKind::StoneButton => false, + BlockKind::YellowStainedGlass => true, + BlockKind::PurpleGlazedTerracotta => true, + BlockKind::BrownGlazedTerracotta => true, + BlockKind::GlowLichen => false, + BlockKind::LimeStainedGlass => true, + BlockKind::PolishedAndesiteSlab => true, + BlockKind::IronBlock => true, + BlockKind::MagentaConcretePowder => true, + BlockKind::CrimsonSign => false, + BlockKind::PinkBed => true, + BlockKind::PottedRedMushroom => true, + BlockKind::FlowerPot => true, + BlockKind::DeepslateCopperOre => true, + BlockKind::BirchSapling => false, + BlockKind::StoneBrickWall => true, + BlockKind::AndesiteSlab => true, + BlockKind::Stonecutter => true, + BlockKind::WarpedFence => true, + BlockKind::CrimsonPressurePlate => false, + BlockKind::BrownBed => true, + BlockKind::LightGrayCarpet => true, + BlockKind::MossyCobblestoneStairs => true, + BlockKind::CrimsonFungus => false, + BlockKind::OrangeWallBanner => false, + BlockKind::Fern => false, + BlockKind::PurpleBed => true, + BlockKind::WhiteWool => true, + BlockKind::LightGrayTerracotta => true, + BlockKind::RedSandstoneStairs => true, + BlockKind::PolishedGranite => true, + BlockKind::SnowBlock => true, + BlockKind::WitherSkeletonSkull => true, + BlockKind::DioriteStairs => true, + BlockKind::OrangeBanner => false, + BlockKind::PinkCandle => true, + BlockKind::PlayerWallHead => true, + BlockKind::BrownCandle => true, + BlockKind::MelonStem => false, + BlockKind::PottedWitherRose => true, + BlockKind::GreenStainedGlass => true, + BlockKind::RedNetherBricks => true, + BlockKind::RootedDirt => true, + BlockKind::BlackConcretePowder => true, + BlockKind::Jigsaw => true, + BlockKind::GrayStainedGlassPane => true, + BlockKind::PolishedBlackstonePressurePlate => false, + BlockKind::IronDoor => true, + BlockKind::PolishedAndesite => true, + BlockKind::LightBlueStainedGlass => true, + BlockKind::WeepingVinesPlant => false, + BlockKind::WarpedFenceGate => true, + BlockKind::ChiseledPolishedBlackstone => true, + BlockKind::OakLog => true, + BlockKind::GreenTerracotta => true, + BlockKind::OrangeBed => true, + BlockKind::PurpleConcrete => true, + BlockKind::SoulSoil => true, + BlockKind::DeadTubeCoralFan => false, + BlockKind::Prismarine => true, + BlockKind::DeepslateTileSlab => true, + BlockKind::Furnace => true, + BlockKind::Repeater => true, + BlockKind::WhiteBed => true, + BlockKind::DragonWallHead => true, + BlockKind::Chain => true, + BlockKind::AcaciaSlab => true, + BlockKind::JunglePlanks => true, + BlockKind::BlastFurnace => true, + BlockKind::BirchWood => true, + BlockKind::Observer => true, + BlockKind::BlueTerracotta => true, + BlockKind::GrayConcrete => true, + BlockKind::Tuff => true, + BlockKind::IronBars => true, + BlockKind::SpruceFence => true, + BlockKind::CrimsonPlanks => true, + BlockKind::StrippedAcaciaWood => true, + BlockKind::ChiseledQuartzBlock => true, + BlockKind::BirchSlab => true, + BlockKind::Cobweb => false, + BlockKind::Lodestone => true, + BlockKind::GrayWallBanner => false, + BlockKind::WeatheredCutCopperStairs => true, + BlockKind::LilyOfTheValley => false, + BlockKind::DamagedAnvil => true, + BlockKind::DioriteSlab => true, + BlockKind::GlassPane => true, + BlockKind::KelpPlant => false, + BlockKind::GreenCandle => true, + BlockKind::CyanCandleCake => true, + BlockKind::EmeraldBlock => true, + BlockKind::DarkOakFence => true, + BlockKind::PrismarineWall => true, + BlockKind::PinkConcretePowder => true, + BlockKind::AcaciaPlanks => true, + BlockKind::OrangeGlazedTerracotta => true, + BlockKind::CrimsonFence => true, + BlockKind::YellowTerracotta => true, + BlockKind::Andesite => true, + BlockKind::CutCopperStairs => true, + BlockKind::PrismarineSlab => true, + BlockKind::CobblestoneWall => true, + BlockKind::BlackBanner => false, + BlockKind::EndStoneBrickSlab => true, + BlockKind::WarpedTrapdoor => true, + BlockKind::RedNetherBrickWall => true, + BlockKind::WarpedDoor => true, + BlockKind::RedstoneTorch => false, + BlockKind::StoneBricks => true, + BlockKind::WaxedExposedCutCopperSlab => true, + BlockKind::Cocoa => true, + BlockKind::BirchSign => false, + BlockKind::Jukebox => true, + BlockKind::SoulLantern => true, + BlockKind::PottedAcaciaSapling => true, + BlockKind::Basalt => true, + BlockKind::QuartzStairs => true, + BlockKind::SoulFire => false, + BlockKind::Farmland => true, + BlockKind::LightWeightedPressurePlate => false, + BlockKind::BlackstoneWall => true, + BlockKind::PolishedDeepslateSlab => true, + BlockKind::PistonHead => true, + BlockKind::MagentaWallBanner => false, + BlockKind::AcaciaStairs => true, + BlockKind::DeepslateRedstoneOre => true, + BlockKind::JungleSapling => false, + BlockKind::PurpurStairs => true, + BlockKind::MossyCobblestone => true, + BlockKind::DeadHornCoral => false, + BlockKind::PolishedAndesiteStairs => true, + BlockKind::LightBlueShulkerBox => true, + BlockKind::SpruceTrapdoor => true, + BlockKind::WarpedPressurePlate => false, + BlockKind::RedBed => true, + BlockKind::DeadFireCoral => false, + BlockKind::PolishedBlackstoneBrickSlab => true, + BlockKind::OakWallSign => false, + BlockKind::LightBlueCandleCake => true, + BlockKind::DarkOakWood => true, + BlockKind::SkeletonSkull => true, + BlockKind::Beetroots => false, + BlockKind::DeadBubbleCoralBlock => true, + BlockKind::GrayCandle => true, + BlockKind::FireCoralWallFan => false, + BlockKind::LimeWallBanner => false, + BlockKind::WarpedStem => true, + BlockKind::DarkOakDoor => true, + BlockKind::BlackGlazedTerracotta => true, + BlockKind::WitherSkeletonWallSkull => true, + BlockKind::DioriteWall => true, + BlockKind::Torch => false, + BlockKind::SeaPickle => true, + BlockKind::JungleWood => true, + BlockKind::LightGrayConcretePowder => true, + BlockKind::BrainCoralFan => false, + BlockKind::DarkOakTrapdoor => true, + BlockKind::CobbledDeepslateWall => true, + BlockKind::LimeBed => true, + BlockKind::PinkTulip => false, + BlockKind::ChorusPlant => true, + BlockKind::PinkBanner => false, + BlockKind::SmoothRedSandstone => true, + BlockKind::PolishedBlackstoneWall => true, + BlockKind::BoneBlock => true, + BlockKind::OxidizedCutCopperSlab => true, + BlockKind::SmoothQuartzStairs => true, + BlockKind::PurpurPillar => true, + BlockKind::PottedAllium => true, + BlockKind::CaveVines => false, + BlockKind::DarkPrismarineStairs => true, + BlockKind::LimeStainedGlassPane => true, + BlockKind::CoalOre => true, + BlockKind::OakWood => true, + BlockKind::Cake => true, + BlockKind::Campfire => true, + BlockKind::PottedCornflower => true, + BlockKind::OakTrapdoor => true, + BlockKind::HornCoralBlock => true, + BlockKind::Grass => false, + BlockKind::LimeConcrete => true, + BlockKind::CutRedSandstone => true, + BlockKind::CryingObsidian => true, + BlockKind::WaxedCopperBlock => true, + BlockKind::WarpedNylium => true, + BlockKind::HoneyBlock => true, + BlockKind::RedWallBanner => false, + BlockKind::ChiseledRedSandstone => true, + BlockKind::Wheat => false, + BlockKind::BrickStairs => true, + BlockKind::DeepslateDiamondOre => true, + BlockKind::GreenGlazedTerracotta => true, + BlockKind::Bookshelf => true, + BlockKind::GraniteWall => true, + BlockKind::InfestedDeepslate => true, + BlockKind::NoteBlock => true, + BlockKind::LimeCandle => true, + BlockKind::BlueIce => true, + BlockKind::DeadBrainCoralFan => false, + BlockKind::SoulTorch => false, + BlockKind::SpruceDoor => true, + BlockKind::DeadHornCoralBlock => true, + BlockKind::PointedDripstone => true, + BlockKind::Dropper => true, + BlockKind::ChiseledSandstone => true, + BlockKind::FireCoralBlock => true, + BlockKind::MossyStoneBrickSlab => true, + BlockKind::WaxedWeatheredCutCopper => true, + BlockKind::PinkStainedGlassPane => true, + BlockKind::BrainCoral => false, + BlockKind::OakSapling => false, + BlockKind::PottedJungleSapling => true, + BlockKind::DarkOakWallSign => false, + BlockKind::RedstoneWallTorch => false, + BlockKind::BubbleCoralFan => false, + BlockKind::OrangeCandle => true, + BlockKind::DeadHornCoralFan => false, + BlockKind::DarkPrismarineSlab => true, + BlockKind::Air => false, + BlockKind::CrackedStoneBricks => true, + BlockKind::Ice => true, + BlockKind::WaxedCutCopper => true, + BlockKind::RedWool => true, + BlockKind::CartographyTable => true, + BlockKind::FireCoral => false, + BlockKind::RedBanner => false, + BlockKind::Loom => true, + BlockKind::BlueOrchid => false, + BlockKind::RedTulip => false, + BlockKind::DarkOakLeaves => true, + BlockKind::BirchWallSign => false, + BlockKind::TurtleEgg => true, + BlockKind::OakFenceGate => true, + BlockKind::PurpurSlab => true, + BlockKind::GrassBlock => true, + BlockKind::PottedFern => true, + BlockKind::BlueConcretePowder => true, + BlockKind::WaxedOxidizedCutCopper => true, + BlockKind::Rail => false, + BlockKind::CrimsonSlab => true, + BlockKind::OakPlanks => true, + BlockKind::LightBlueWool => true, + BlockKind::StickyPiston => true, + BlockKind::PottedPinkTulip => true, + BlockKind::Granite => true, + BlockKind::IronTrapdoor => true, + BlockKind::DarkOakPressurePlate => false, + BlockKind::SeaLantern => true, + BlockKind::WarpedSlab => true, + BlockKind::Poppy => false, + BlockKind::Peony => false, + BlockKind::CopperBlock => true, + BlockKind::JungleDoor => true, + BlockKind::DarkOakSlab => true, + BlockKind::DarkOakStairs => true, + BlockKind::OrangeWool => true, + BlockKind::Piston => true, + BlockKind::GrayGlazedTerracotta => true, + BlockKind::PinkWool => true, + BlockKind::BubbleCoralBlock => true, + BlockKind::CrimsonWallSign => false, + BlockKind::FrostedIce => true, + BlockKind::LightGrayBanner => false, + BlockKind::DeadFireCoralBlock => true, + BlockKind::WarpedHyphae => true, + BlockKind::Obsidian => true, + BlockKind::Fire => false, + BlockKind::InfestedCobblestone => true, + BlockKind::LightBlueWallBanner => false, + BlockKind::WhiteConcrete => true, + BlockKind::DeadBubbleCoralFan => false, + BlockKind::PolishedBlackstoneBricks => true, + BlockKind::BlackTerracotta => true, + BlockKind::TwistingVinesPlant => false, + BlockKind::LimeCarpet => true, + BlockKind::WhiteGlazedTerracotta => true, + BlockKind::Cornflower => false, + BlockKind::PolishedDiorite => true, + BlockKind::BrownBanner => false, + BlockKind::SculkSensor => true, + BlockKind::DarkOakSapling => false, + BlockKind::BirchDoor => true, + BlockKind::RedCandleCake => true, + BlockKind::Azalea => true, + BlockKind::JungleLeaves => true, + BlockKind::MagentaStainedGlassPane => true, + BlockKind::RedConcrete => true, + BlockKind::RawGoldBlock => true, + BlockKind::WallTorch => false, + BlockKind::NetherBrickWall => true, + BlockKind::SpruceWallSign => false, + BlockKind::WarpedPlanks => true, + BlockKind::AzureBluet => false, + BlockKind::Potatoes => false, + BlockKind::OrangeTerracotta => true, + BlockKind::SmoothRedSandstoneStairs => true, + BlockKind::GreenCandleCake => true, + BlockKind::MagentaStainedGlass => true, + BlockKind::Lava => false, + BlockKind::PottedDandelion => true, + BlockKind::CommandBlock => true, + BlockKind::GreenConcrete => true, + BlockKind::ZombieWallHead => true, + BlockKind::CrackedPolishedBlackstoneBricks => true, + BlockKind::PottedAzaleaBush => true, + BlockKind::InfestedStoneBricks => true, + BlockKind::MagentaShulkerBox => true, + BlockKind::TwistingVines => false, + BlockKind::BrownCandleCake => true, + BlockKind::AmethystBlock => true, + BlockKind::DeadHornCoralWallFan => false, + BlockKind::SandstoneSlab => true, + BlockKind::TrappedChest => true, + BlockKind::DripstoneBlock => true, + BlockKind::MagentaWool => true, + BlockKind::MossyCobblestoneWall => true, + BlockKind::EnchantingTable => true, + BlockKind::SmoothSandstoneSlab => true, + BlockKind::PrismarineStairs => true, + BlockKind::CraftingTable => true, + BlockKind::IronOre => true, + BlockKind::PurpleShulkerBox => true, + BlockKind::OakSlab => true, + BlockKind::Composter => true, + BlockKind::Dirt => true, + BlockKind::PoweredRail => false, + BlockKind::CaveVinesPlant => false, + BlockKind::TallSeagrass => false, + BlockKind::GreenBanner => false, + BlockKind::OrangeStainedGlass => true, + BlockKind::TubeCoralWallFan => false, + BlockKind::PolishedBlackstoneStairs => true, + BlockKind::BlackstoneStairs => true, + BlockKind::HeavyWeightedPressurePlate => false, + BlockKind::BrainCoralWallFan => false, + BlockKind::QuartzBricks => true, + BlockKind::DarkOakFenceGate => true, + BlockKind::SoulCampfire => true, + BlockKind::BirchStairs => true, + BlockKind::FireCoralFan => false, + BlockKind::BlueShulkerBox => true, + BlockKind::OrangeTulip => false, + BlockKind::BrownStainedGlassPane => true, + BlockKind::Podzol => true, + BlockKind::BrownWallBanner => false, + BlockKind::DeepslateTileStairs => true, + BlockKind::EndPortal => false, + BlockKind::BrownShulkerBox => true, + BlockKind::CyanWallBanner => false, + BlockKind::PurpleCandleCake => true, + BlockKind::BlackConcrete => true, + BlockKind::PumpkinStem => false, + BlockKind::OakButton => false, + BlockKind::OrangeCarpet => true, + BlockKind::WhiteTerracotta => true, + BlockKind::BirchFence => true, + BlockKind::Shroomlight => true, + BlockKind::ZombieHead => true, + BlockKind::Deepslate => true, + BlockKind::Seagrass => false, + BlockKind::PurpurBlock => true, + BlockKind::DeepslateBrickSlab => true, + BlockKind::Hopper => true, + BlockKind::HornCoralWallFan => false, + BlockKind::WaxedWeatheredCopper => true, + BlockKind::OxidizedCopper => true, + BlockKind::LapisOre => true, + BlockKind::BlueBed => true, + BlockKind::LightGrayStainedGlassPane => true, + BlockKind::EndGateway => false, + BlockKind::CrackedNetherBricks => true, + BlockKind::Sand => true, + BlockKind::BrickSlab => true, + BlockKind::SpruceWood => true, + BlockKind::BlueWallBanner => false, + BlockKind::YellowConcretePowder => true, + BlockKind::HoneycombBlock => true, + BlockKind::YellowConcrete => true, + BlockKind::CyanCarpet => true, + BlockKind::DeadTubeCoralWallFan => false, + BlockKind::JungleButton => false, + BlockKind::QuartzSlab => true, + BlockKind::RedNetherBrickStairs => true, + BlockKind::MagentaBed => true, + BlockKind::AzaleaLeaves => true, + BlockKind::MossyStoneBricks => true, + BlockKind::BlackBed => true, + BlockKind::JungleSign => false, + BlockKind::EnderChest => true, + BlockKind::Lectern => true, + BlockKind::ActivatorRail => false, + BlockKind::RedstoneOre => true, + BlockKind::BlueWool => true, + BlockKind::GrayCandleCake => true, + BlockKind::WhiteCandleCake => true, + BlockKind::RedShulkerBox => true, + BlockKind::DeepslateTileWall => true, + BlockKind::InfestedStone => true, + BlockKind::CutCopperSlab => true, + BlockKind::Sandstone => true, + BlockKind::RedstoneWire => false, + BlockKind::BrownTerracotta => true, + BlockKind::WarpedSign => false, + BlockKind::ExposedCutCopper => true, + BlockKind::LightBlueConcretePowder => true, + BlockKind::PolishedBlackstoneBrickStairs => true, + BlockKind::CyanStainedGlass => true, + BlockKind::WaxedCutCopperStairs => true, + BlockKind::EmeraldOre => true, + BlockKind::BrickWall => true, + BlockKind::SmoothStoneSlab => true, + BlockKind::PolishedDioriteStairs => true, + BlockKind::DeadFireCoralWallFan => false, + BlockKind::BeeNest => true, + BlockKind::CyanBanner => false, + BlockKind::WhiteShulkerBox => true, + BlockKind::CrimsonRoots => false, + BlockKind::PottedWarpedFungus => true, + BlockKind::LimeCandleCake => true, + BlockKind::PottedWarpedRoots => true, + BlockKind::NetherGoldOre => true, + BlockKind::PottedWhiteTulip => true, + BlockKind::OrangeCandleCake => true, + BlockKind::YellowBanner => false, + } + } +} +impl BlockKind { + #[doc = "Returns the `dig_multipliers` property of this `BlockKind`."] + #[inline] + pub fn dig_multipliers(&self) -> &'static [(libcraft_items::Item, f32)] { + match self { + BlockKind::BlueCandle => &[], + BlockKind::SpruceSapling => &[], + BlockKind::BigDripleaf => &[], + BlockKind::RedBed => &[], + BlockKind::Farmland => &[], + BlockKind::GlassPane => &[], + BlockKind::Jigsaw => &[], + BlockKind::QuartzStairs => &[], + BlockKind::SpruceSign => &[], + BlockKind::Shroomlight => &[], + BlockKind::Tripwire => &[], + BlockKind::EndStoneBrickWall => &[], + BlockKind::Beetroots => &[], + BlockKind::BrownWallBanner => &[], + BlockKind::RedMushroom => &[], + BlockKind::PolishedBlackstoneWall => &[], + BlockKind::RedWool => &[], + BlockKind::Candle => &[], + BlockKind::BlackShulkerBox => &[], + BlockKind::Kelp => &[], + BlockKind::DeepslateTileSlab => &[], + BlockKind::Clay => &[], + BlockKind::WarpedHyphae => &[], + BlockKind::DeadBrainCoralBlock => &[], + BlockKind::WarpedNylium => &[], + BlockKind::Pumpkin => &[], + BlockKind::JungleTrapdoor => &[], + BlockKind::RedConcrete => &[], + BlockKind::NetheriteBlock => &[], + BlockKind::SpruceWood => &[], + BlockKind::StrippedOakLog => &[], + BlockKind::LightBlueConcretePowder => &[], + BlockKind::MediumAmethystBud => &[], + BlockKind::WaxedWeatheredCutCopper => &[], + BlockKind::WarpedFungus => &[], + BlockKind::PottedFloweringAzaleaBush => &[], + BlockKind::GrayWallBanner => &[], + BlockKind::RedstoneOre => &[], + BlockKind::DarkOakLeaves => &[], + BlockKind::WaxedOxidizedCopper => &[], + BlockKind::MossBlock => &[], + BlockKind::TubeCoralWallFan => &[], + BlockKind::DeadFireCoralFan => &[], + BlockKind::Sand => &[], + BlockKind::LapisOre => &[], + BlockKind::WetSponge => &[], + BlockKind::Barrier => &[], + BlockKind::Smoker => &[], + BlockKind::BrownCandleCake => &[], + BlockKind::MagmaBlock => &[], + BlockKind::BrainCoralBlock => &[], + BlockKind::Cauldron => &[], + BlockKind::ChiseledRedSandstone => &[], + BlockKind::CobblestoneSlab => &[], + BlockKind::NetherBricks => &[], + BlockKind::Sandstone => &[], + BlockKind::StrippedCrimsonStem => &[], + BlockKind::LightBlueCandle => &[], + BlockKind::AzaleaLeaves => &[], + BlockKind::InfestedCrackedStoneBricks => &[], + BlockKind::PottedAllium => &[], + BlockKind::BlueCandleCake => &[], + BlockKind::GreenWool => &[], + BlockKind::CrimsonFenceGate => &[], + BlockKind::PurpleBanner => &[], + BlockKind::JunglePlanks => &[], + BlockKind::WaterCauldron => &[], + BlockKind::PinkCandleCake => &[], + BlockKind::LimeCandleCake => &[], + BlockKind::PointedDripstone => &[], + BlockKind::DioriteSlab => &[], + BlockKind::TubeCoralFan => &[], + BlockKind::OxidizedCutCopper => &[], + BlockKind::YellowBanner => &[], + BlockKind::TintedGlass => &[], + BlockKind::SpruceLog => &[], + BlockKind::BlackConcretePowder => &[], + BlockKind::LightBlueBed => &[], + BlockKind::RedSandstoneWall => &[], + BlockKind::Rail => &[], + BlockKind::JungleFence => &[], + BlockKind::DeepslateTiles => &[], + BlockKind::LightGrayGlazedTerracotta => &[], + BlockKind::SandstoneSlab => &[], + BlockKind::Melon => &[], + BlockKind::SkeletonWallSkull => &[], + BlockKind::Beacon => &[], + BlockKind::LightBlueShulkerBox => &[], + BlockKind::AcaciaLog => &[], + BlockKind::PinkShulkerBox => &[], + BlockKind::GrayStainedGlassPane => &[], + BlockKind::DarkPrismarine => &[], + BlockKind::Andesite => &[], + BlockKind::BrownMushroomBlock => &[], + BlockKind::WeatheredCutCopperStairs => &[], + BlockKind::RedTulip => &[], + BlockKind::Torch => &[], + BlockKind::BirchStairs => &[], + BlockKind::WarpedPressurePlate => &[], + BlockKind::MossyCobblestoneWall => &[], + BlockKind::GrayConcretePowder => &[], + BlockKind::RedConcretePowder => &[], + BlockKind::OrangeConcrete => &[], + BlockKind::SpruceFenceGate => &[], + BlockKind::BirchFenceGate => &[], + BlockKind::SmithingTable => &[], + BlockKind::SandstoneWall => &[], + BlockKind::YellowGlazedTerracotta => &[], + BlockKind::BirchFence => &[], + BlockKind::JungleDoor => &[], + BlockKind::PolishedBlackstoneBrickSlab => &[], + BlockKind::CrimsonFence => &[], + BlockKind::MagentaWallBanner => &[], + BlockKind::DarkOakWallSign => &[], + BlockKind::BirchSapling => &[], + BlockKind::Seagrass => &[], + BlockKind::WhiteWool => &[], + BlockKind::CyanWool => &[], + BlockKind::OakPlanks => &[], + BlockKind::SmoothSandstone => &[], + BlockKind::SprucePlanks => &[], + BlockKind::GreenConcrete => &[], + BlockKind::JungleSapling => &[], + BlockKind::Lectern => &[], + BlockKind::Bricks => &[], + BlockKind::LilyOfTheValley => &[], + BlockKind::LightGrayTerracotta => &[], + BlockKind::Piston => &[], + BlockKind::PackedIce => &[], + BlockKind::SmoothStoneSlab => &[], + BlockKind::MossyStoneBrickSlab => &[], + BlockKind::DeepslateBrickWall => &[], + BlockKind::GrayCarpet => &[], + BlockKind::RedNetherBrickWall => &[], + BlockKind::OrangeCandle => &[], + BlockKind::GreenStainedGlass => &[], + BlockKind::PistonHead => &[], + BlockKind::DeadBubbleCoralFan => &[], + BlockKind::NetherBrickSlab => &[], + BlockKind::GrayGlazedTerracotta => &[], + BlockKind::DeepslateRedstoneOre => &[], + BlockKind::EnchantingTable => &[], + BlockKind::SkeletonSkull => &[], + BlockKind::DriedKelpBlock => &[], + BlockKind::EndGateway => &[], + BlockKind::Mycelium => &[], + BlockKind::ZombieWallHead => &[], + BlockKind::WhiteConcretePowder => &[], + BlockKind::YellowStainedGlassPane => &[], + BlockKind::MossyStoneBrickWall => &[], + BlockKind::CryingObsidian => &[], + BlockKind::CreeperHead => &[], + BlockKind::Glowstone => &[], + BlockKind::NetherGoldOre => &[], + BlockKind::BlackWallBanner => &[], + BlockKind::GrayBanner => &[], + BlockKind::GoldBlock => &[], + BlockKind::BirchLog => &[], + BlockKind::CarvedPumpkin => &[], + BlockKind::Fern => &[], + BlockKind::ChiseledQuartzBlock => &[], + BlockKind::LimeStainedGlassPane => &[], + BlockKind::StrippedDarkOakLog => &[], + BlockKind::LavaCauldron => &[], + BlockKind::OakStairs => &[], + BlockKind::TrappedChest => &[], + BlockKind::BirchSlab => &[], + BlockKind::DarkOakWood => &[], + BlockKind::BlueStainedGlass => &[], + BlockKind::AndesiteStairs => &[], + BlockKind::WaxedExposedCutCopperSlab => &[], + BlockKind::PolishedDeepslateWall => &[], + BlockKind::Dropper => &[], + BlockKind::RedMushroomBlock => &[], + BlockKind::RedSandstoneStairs => &[], + BlockKind::StrippedJungleLog => &[], + BlockKind::LimeWool => &[], + BlockKind::Bedrock => &[], + BlockKind::EndPortalFrame => &[], + BlockKind::Glass => &[], + BlockKind::Fire => &[], + BlockKind::GreenGlazedTerracotta => &[], + BlockKind::AcaciaFence => &[], + BlockKind::RawCopperBlock => &[], + BlockKind::AttachedPumpkinStem => &[], + BlockKind::StoneBricks => &[], + BlockKind::BubbleCoralBlock => &[], + BlockKind::StrippedAcaciaWood => &[], + BlockKind::LargeFern => &[], + BlockKind::Tuff => &[], + BlockKind::FrostedIce => &[], + BlockKind::NetherWartBlock => &[], + BlockKind::MagentaCandle => &[], + BlockKind::NetherBrickFence => &[], + BlockKind::WhiteBanner => &[], + BlockKind::PinkBanner => &[], + BlockKind::CyanConcretePowder => &[], + BlockKind::GrayCandleCake => &[], + BlockKind::WeepingVines => &[], + BlockKind::OakButton => &[], + BlockKind::CrackedPolishedBlackstoneBricks => &[], + BlockKind::DarkOakSlab => &[], + BlockKind::PottedSpruceSapling => &[], + BlockKind::PolishedDeepslateStairs => &[], + BlockKind::NoteBlock => &[], + BlockKind::SmoothBasalt => &[], + BlockKind::OrangeTulip => &[], + BlockKind::BrickStairs => &[], + BlockKind::CrackedNetherBricks => &[], + BlockKind::SmoothRedSandstoneStairs => &[], + BlockKind::JungleWood => &[], + BlockKind::FloweringAzalea => &[], + BlockKind::WarpedFence => &[], + BlockKind::BlackTerracotta => &[], + BlockKind::Lantern => &[], + BlockKind::GrayBed => &[], + BlockKind::PowderSnowCauldron => &[], + BlockKind::PottedPoppy => &[], + BlockKind::FireCoralFan => &[], + BlockKind::IronBlock => &[], + BlockKind::MagentaTerracotta => &[], + BlockKind::BrickSlab => &[], + BlockKind::PurpleGlazedTerracotta => &[], + BlockKind::OakSapling => &[], + BlockKind::Hopper => &[], + BlockKind::Peony => &[], + BlockKind::MagentaConcrete => &[], + BlockKind::CutCopper => &[], + BlockKind::WaxedExposedCutCopperStairs => &[], + BlockKind::GraniteStairs => &[], + BlockKind::DarkOakLog => &[], + BlockKind::PolishedBlackstone => &[], + BlockKind::JungleLog => &[], + BlockKind::SpruceFence => &[], + BlockKind::DarkOakSapling => &[], + BlockKind::StrippedAcaciaLog => &[], + BlockKind::PottedDarkOakSapling => &[], + BlockKind::DeadTubeCoral => &[], + BlockKind::LightGrayCandle => &[], + BlockKind::WaxedCopperBlock => &[], + BlockKind::StrippedWarpedHyphae => &[], + BlockKind::AcaciaWallSign => &[], + BlockKind::WaxedOxidizedCutCopperSlab => &[], + BlockKind::PurpurPillar => &[], + BlockKind::BlueConcretePowder => &[], + BlockKind::BrownBanner => &[], + BlockKind::OakWallSign => &[], + BlockKind::LimeTerracotta => &[], + BlockKind::PolishedBlackstoneSlab => &[], + BlockKind::RedBanner => &[], + BlockKind::AmethystCluster => &[], + BlockKind::DarkOakTrapdoor => &[], + BlockKind::FireCoralWallFan => &[], + BlockKind::ChiseledSandstone => &[], + BlockKind::Chain => &[], + BlockKind::HoneycombBlock => &[], + BlockKind::DarkOakDoor => &[], + BlockKind::LightBlueBanner => &[], + BlockKind::Azalea => &[], + BlockKind::WarpedWallSign => &[], + BlockKind::CyanCarpet => &[], + BlockKind::SpruceStairs => &[], + BlockKind::AncientDebris => &[], + BlockKind::BlackstoneSlab => &[], + BlockKind::NetherSprouts => &[], + BlockKind::WaxedWeatheredCutCopperSlab => &[], + BlockKind::BrownMushroom => &[], + BlockKind::OakTrapdoor => &[], + BlockKind::Bamboo => &[], + BlockKind::BlueTerracotta => &[], + BlockKind::BlueGlazedTerracotta => &[], + BlockKind::Cobblestone => &[], + BlockKind::TripwireHook => &[], + BlockKind::SweetBerryBush => &[], + BlockKind::Observer => &[], + BlockKind::Dirt => &[], + BlockKind::BlackStainedGlass => &[], + BlockKind::StrippedSpruceLog => &[], + BlockKind::BlackCarpet => &[], + BlockKind::LightWeightedPressurePlate => &[], + BlockKind::GreenBed => &[], + BlockKind::PrismarineStairs => &[], + BlockKind::NetherPortal => &[], + BlockKind::DeadBrainCoralFan => &[], + BlockKind::EndRod => &[], + BlockKind::RedSandstone => &[], + BlockKind::BubbleCoralWallFan => &[], + BlockKind::BrownConcretePowder => &[], + BlockKind::WaxedCutCopper => &[], + BlockKind::BlackGlazedTerracotta => &[], + BlockKind::PolishedAndesite => &[], + BlockKind::CyanBed => &[], + BlockKind::DeadTubeCoralWallFan => &[], + BlockKind::AcaciaDoor => &[], + BlockKind::WallTorch => &[], + BlockKind::OakSign => &[], + BlockKind::StrippedBirchLog => &[], + BlockKind::BirchLeaves => &[], + BlockKind::RedStainedGlass => &[], + BlockKind::Cocoa => &[], + BlockKind::Obsidian => &[], + BlockKind::CyanCandleCake => &[], + BlockKind::PlayerHead => &[], + BlockKind::Netherrack => &[], + BlockKind::RedGlazedTerracotta => &[], + BlockKind::SoulLantern => &[], + BlockKind::Sunflower => &[], + BlockKind::WarpedDoor => &[], + BlockKind::PolishedDioriteSlab => &[], + BlockKind::YellowShulkerBox => &[], + BlockKind::WarpedTrapdoor => &[], + BlockKind::BlueWallBanner => &[], + BlockKind::LightGrayStainedGlassPane => &[], + BlockKind::EnderChest => &[], + BlockKind::YellowConcrete => &[], + BlockKind::YellowWool => &[], + BlockKind::CobbledDeepslateWall => &[], + BlockKind::CrimsonStem => &[], + BlockKind::Anvil => &[], + BlockKind::SmoothRedSandstone => &[], + BlockKind::GrayTerracotta => &[], + BlockKind::DeepslateCoalOre => &[], + BlockKind::GreenCarpet => &[], + BlockKind::PurpleShulkerBox => &[], + BlockKind::BlueShulkerBox => &[], + BlockKind::PottedWarpedFungus => &[], + BlockKind::WhiteStainedGlassPane => &[], + BlockKind::DaylightDetector => &[], + BlockKind::PolishedBlackstoneBricks => &[], + BlockKind::WeatheredCopper => &[], + BlockKind::CopperBlock => &[], + BlockKind::LimeCarpet => &[], + BlockKind::BlackBed => &[], + BlockKind::BirchTrapdoor => &[], + BlockKind::CobbledDeepslate => &[], + BlockKind::SmallAmethystBud => &[], + BlockKind::LightBlueTerracotta => &[], + BlockKind::Calcite => &[], + BlockKind::CutCopperStairs => &[], + BlockKind::OakLog => &[], + BlockKind::RoseBush => &[], + BlockKind::DeepslateDiamondOre => &[], + BlockKind::EndStone => &[], + BlockKind::PinkBed => &[], + BlockKind::JungleSlab => &[], + BlockKind::InfestedMossyStoneBricks => &[], + BlockKind::DarkOakStairs => &[], + BlockKind::OrangeShulkerBox => &[], + BlockKind::LightBlueWallBanner => &[], + BlockKind::SoulFire => &[], + BlockKind::SeaLantern => &[], + BlockKind::VoidAir => &[], + BlockKind::PolishedGraniteStairs => &[], + BlockKind::GrayWool => &[], + BlockKind::BambooSapling => &[], + BlockKind::BrickWall => &[], + BlockKind::SmoothRedSandstoneSlab => &[], + BlockKind::Lodestone => &[], + BlockKind::OrangeCandleCake => &[], + BlockKind::SmallDripleaf => &[], + BlockKind::CyanCandle => &[], + BlockKind::PottedCactus => &[], + BlockKind::NetherWart => &[], + BlockKind::LimeConcretePowder => &[], + BlockKind::RedWallBanner => &[], + BlockKind::HornCoralFan => &[], + BlockKind::EndStoneBrickStairs => &[], + BlockKind::BrewingStand => &[], + BlockKind::RedSand => &[], + BlockKind::WaxedExposedCopper => &[], + BlockKind::WhiteStainedGlass => &[], + BlockKind::Allium => &[], + BlockKind::RedStainedGlassPane => &[], + BlockKind::TubeCoral => &[], + BlockKind::Deepslate => &[], + BlockKind::PurpurSlab => &[], + BlockKind::CutSandstoneSlab => &[], + BlockKind::PolishedBlackstonePressurePlate => &[], + BlockKind::CyanBanner => &[], + BlockKind::BrownCandle => &[], + BlockKind::DeepslateGoldOre => &[], + BlockKind::PottedOakSapling => &[], + BlockKind::WaxedWeatheredCopper => &[], + BlockKind::BirchDoor => &[], + BlockKind::LightGrayCarpet => &[], + BlockKind::LightningRod => &[], + BlockKind::PinkGlazedTerracotta => &[], + BlockKind::DeepslateIronOre => &[], + BlockKind::AndesiteWall => &[], + BlockKind::OakLeaves => &[], + BlockKind::OrangeCarpet => &[], + BlockKind::Dispenser => &[], + BlockKind::DeadTubeCoralFan => &[], + BlockKind::YellowCandle => &[], + BlockKind::BlueStainedGlassPane => &[], + BlockKind::PolishedBlackstoneBrickWall => &[], + BlockKind::BirchButton => &[], + BlockKind::Granite => &[], + BlockKind::CrimsonWallSign => &[], + BlockKind::OxidizedCutCopperSlab => &[], + BlockKind::WaxedCutCopperStairs => &[], + BlockKind::BrownGlazedTerracotta => &[], + BlockKind::SugarCane => &[], + BlockKind::SpruceTrapdoor => &[], + BlockKind::WeepingVinesPlant => &[], + BlockKind::LightBlueWool => &[], + BlockKind::OakPressurePlate => &[], + BlockKind::PolishedAndesiteSlab => &[], + BlockKind::Potatoes => &[], + BlockKind::WarpedRoots => &[], + BlockKind::BlueCarpet => &[], + BlockKind::WaxedWeatheredCutCopperStairs => &[], + BlockKind::StoneButton => &[], + BlockKind::MagentaCarpet => &[], + BlockKind::Snow => &[], + BlockKind::SpruceLeaves => &[], + BlockKind::LightGrayShulkerBox => &[], + BlockKind::KelpPlant => &[], + BlockKind::StrippedCrimsonHyphae => &[], + BlockKind::PottedBamboo => &[], + BlockKind::ExposedCutCopper => &[], + BlockKind::ExposedCopper => &[], + BlockKind::DeepslateBrickStairs => &[], + BlockKind::AzureBluet => &[], + BlockKind::MossCarpet => &[], + BlockKind::BrainCoral => &[], + BlockKind::GlowLichen => &[], + BlockKind::GreenConcretePowder => &[], + BlockKind::WitherRose => &[], + BlockKind::OxeyeDaisy => &[], + BlockKind::Repeater => &[], + BlockKind::RedSandstoneSlab => &[], + BlockKind::CaveAir => &[], + BlockKind::PottedLilyOfTheValley => &[], + BlockKind::PurpleStainedGlassPane => &[], + BlockKind::StrippedDarkOakWood => &[], + BlockKind::SpruceButton => &[], + BlockKind::PolishedBlackstoneBrickStairs => &[], + BlockKind::PinkConcretePowder => &[], + BlockKind::Poppy => &[], + BlockKind::CobblestoneStairs => &[], + BlockKind::CyanTerracotta => &[], + BlockKind::StrippedOakWood => &[], + BlockKind::OrangeTerracotta => &[], + BlockKind::LightBlueCarpet => &[], + BlockKind::CrackedStoneBricks => &[], + BlockKind::CreeperWallHead => &[], + BlockKind::Composter => &[], + BlockKind::RespawnAnchor => &[], + BlockKind::RedstoneLamp => &[], + BlockKind::BrainCoralFan => &[], + BlockKind::Blackstone => &[], + BlockKind::DeepslateTileStairs => &[], + BlockKind::Grass => &[], + BlockKind::WarpedSlab => &[], + BlockKind::FloweringAzaleaLeaves => &[], + BlockKind::BrownConcrete => &[], + BlockKind::BigDripleafStem => &[], + BlockKind::LimeStainedGlass => &[], + BlockKind::DiamondOre => &[], + BlockKind::PottedAzureBluet => &[], + BlockKind::SnowBlock => &[], + BlockKind::YellowBed => &[], + BlockKind::WhiteTulip => &[], + BlockKind::GrayStainedGlass => &[], + BlockKind::PinkStainedGlass => &[], + BlockKind::GoldOre => &[], + BlockKind::EndStoneBricks => &[], + BlockKind::Target => &[], + BlockKind::Gravel => &[], + BlockKind::PottedBlueOrchid => &[], + BlockKind::WarpedStem => &[], + BlockKind::Bookshelf => &[], + BlockKind::CrimsonTrapdoor => &[], + BlockKind::SoulCampfire => &[], + BlockKind::BlueOrchid => &[], + BlockKind::BlueIce => &[], + BlockKind::DarkOakPressurePlate => &[], + BlockKind::CutRedSandstone => &[], + BlockKind::SmoothQuartzStairs => &[], + BlockKind::StoneSlab => &[], + BlockKind::InfestedChiseledStoneBricks => &[], + BlockKind::ChiseledPolishedBlackstone => &[], + BlockKind::OrangeWool => &[], + BlockKind::PrismarineWall => &[], + BlockKind::CrimsonNylium => &[], + BlockKind::TallSeagrass => &[], + BlockKind::PolishedBlackstoneButton => &[], + BlockKind::LightBlueCandleCake => &[], + BlockKind::JungleSign => &[], + BlockKind::MagentaBanner => &[], + BlockKind::DarkOakPlanks => &[], + BlockKind::PolishedGranite => &[], + BlockKind::PottedDeadBush => &[], + BlockKind::MagentaGlazedTerracotta => &[], + BlockKind::RawIronBlock => &[], + BlockKind::DeadFireCoralWallFan => &[], + BlockKind::DeepslateTileWall => &[], + BlockKind::MagentaWool => &[], + BlockKind::DeepslateCopperOre => &[], + BlockKind::OrangeConcretePowder => &[], + BlockKind::Air => &[], + BlockKind::BubbleColumn => &[], + BlockKind::BlastFurnace => &[], + BlockKind::PottedDandelion => &[], + BlockKind::LimeWallBanner => &[], + BlockKind::PurpurBlock => &[], + BlockKind::DeepslateEmeraldOre => &[], + BlockKind::TallGrass => &[], + BlockKind::CyanShulkerBox => &[], + BlockKind::Basalt => &[], + BlockKind::WaxedOxidizedCutCopperStairs => &[], + BlockKind::RootedDirt => &[], + BlockKind::BrownCarpet => &[], + BlockKind::FlowerPot => &[], + BlockKind::Scaffolding => &[], + BlockKind::PurpleConcrete => &[], + BlockKind::PowderSnow => &[], + BlockKind::PinkTulip => &[], + BlockKind::GreenCandleCake => &[], + BlockKind::Barrel => &[], + BlockKind::RedCandleCake => &[], + BlockKind::IronBars => &[], + BlockKind::WhiteTerracotta => &[], + BlockKind::ActivatorRail => &[], + BlockKind::BlackStainedGlassPane => &[], + BlockKind::EndPortal => &[], + BlockKind::PottedWitherRose => &[], + BlockKind::StickyPiston => &[], + BlockKind::OakWood => &[], + BlockKind::LimeBed => &[], + BlockKind::AcaciaPressurePlate => &[], + BlockKind::GreenBanner => &[], + BlockKind::LimeGlazedTerracotta => &[], + BlockKind::CrimsonDoor => &[], + BlockKind::LapisBlock => &[], + BlockKind::MossyStoneBricks => &[], + BlockKind::OakFenceGate => &[], + BlockKind::BlueBanner => &[], + BlockKind::GildedBlackstone => &[], + BlockKind::RedstoneTorch => &[], + BlockKind::ChiseledStoneBricks => &[], + BlockKind::CraftingTable => &[], + BlockKind::CyanStainedGlass => &[], + BlockKind::CyanWallBanner => &[], + BlockKind::OrangeGlazedTerracotta => &[], + BlockKind::CrimsonStairs => &[], + BlockKind::Beehive => &[], + BlockKind::JungleFenceGate => &[], + BlockKind::PumpkinStem => &[], + BlockKind::YellowCandleCake => &[], + BlockKind::PetrifiedOakSlab => &[], + BlockKind::JunglePressurePlate => &[], + BlockKind::BlueBed => &[], + BlockKind::PottedJungleSapling => &[], + BlockKind::EndStoneBrickSlab => &[], + BlockKind::BirchPressurePlate => &[], + BlockKind::QuartzBricks => &[], + BlockKind::PrismarineBrickStairs => &[], + BlockKind::LargeAmethystBud => &[], + BlockKind::OakDoor => &[], + BlockKind::WhiteCandleCake => &[], + BlockKind::DeadBubbleCoralWallFan => &[], + BlockKind::Ice => &[], + BlockKind::DarkOakButton => &[], + BlockKind::MagentaStainedGlassPane => &[], + BlockKind::BlackWool => &[], + BlockKind::Bell => &[], + BlockKind::GreenCandle => &[], + BlockKind::RedstoneWallTorch => &[], + BlockKind::OrangeBed => &[], + BlockKind::BoneBlock => &[], + BlockKind::RedNetherBricks => &[], + BlockKind::RedNetherBrickStairs => &[], + BlockKind::OrangeWallBanner => &[], + BlockKind::DeepslateLapisOre => &[], + BlockKind::Prismarine => &[], + BlockKind::CrimsonSign => &[], + BlockKind::MagentaCandleCake => &[], + BlockKind::DeepslateBrickSlab => &[], + BlockKind::MushroomStem => &[], + BlockKind::PottedPinkTulip => &[], + BlockKind::SpruceSlab => &[], + BlockKind::CrimsonRoots => &[], + BlockKind::PottedWhiteTulip => &[], + BlockKind::Tnt => &[], + BlockKind::BlackstoneWall => &[], + BlockKind::BrainCoralWallFan => &[], + BlockKind::CrimsonSlab => &[], + BlockKind::AndesiteSlab => &[], + BlockKind::LightGrayWool => &[], + BlockKind::BrownWool => &[], + BlockKind::CommandBlock => &[], + BlockKind::Conduit => &[], + BlockKind::ExposedCutCopperStairs => &[], + BlockKind::WitherSkeletonSkull => &[], + BlockKind::LightGrayCandleCake => &[], + BlockKind::InfestedStoneBricks => &[], + BlockKind::PinkCandle => &[], + BlockKind::DeadTubeCoralBlock => &[], + BlockKind::SandstoneStairs => &[], + BlockKind::Chest => &[], + BlockKind::DirtPath => &[], + BlockKind::RedShulkerBox => &[], + BlockKind::CobbledDeepslateSlab => &[], + BlockKind::OakFence => &[], + BlockKind::PurpleCarpet => &[], + BlockKind::StrippedSpruceWood => &[], + BlockKind::WhiteCarpet => &[], + BlockKind::StrippedWarpedStem => &[], + BlockKind::PottedFern => &[], + BlockKind::WitherSkeletonWallSkull => &[], + BlockKind::MovingPiston => &[], + BlockKind::CopperOre => &[], + BlockKind::PolishedAndesiteStairs => &[], + BlockKind::LimeConcrete => &[], + BlockKind::CrackedDeepslateBricks => &[], + BlockKind::MossyCobblestone => &[], + BlockKind::CoalBlock => &[], + BlockKind::BlackCandleCake => &[], + BlockKind::StonePressurePlate => &[], + BlockKind::BeeNest => &[], + BlockKind::OxidizedCopper => &[], + BlockKind::DeepslateBricks => &[], + BlockKind::BirchWallSign => &[], + BlockKind::ChippedAnvil => &[], + BlockKind::DarkOakSign => &[], + BlockKind::WhiteGlazedTerracotta => &[], + BlockKind::StoneBrickSlab => &[], + BlockKind::DioriteWall => &[], + BlockKind::PrismarineBrickSlab => &[], + BlockKind::Grindstone => &[], + BlockKind::Ladder => &[], + BlockKind::Stonecutter => &[], + BlockKind::BirchPlanks => &[], + BlockKind::DeadHornCoral => &[], + BlockKind::FireCoral => &[], + BlockKind::WeatheredCutCopperSlab => &[], + BlockKind::ChorusPlant => &[], + BlockKind::MagentaStainedGlass => &[], + BlockKind::CrimsonFungus => &[], + BlockKind::PolishedDiorite => &[], + BlockKind::BubbleCoralFan => &[], + BlockKind::LilyPad => &[], + BlockKind::CaveVinesPlant => &[], + BlockKind::GreenStainedGlassPane => &[], + BlockKind::SmoothQuartzSlab => &[], + BlockKind::HornCoral => &[], + BlockKind::LimeBanner => &[], + BlockKind::DragonHead => &[], + BlockKind::Lava => &[], + BlockKind::LightGrayBed => &[], + BlockKind::CoalOre => &[], + BlockKind::NetherQuartzOre => &[], + BlockKind::AcaciaFenceGate => &[], + BlockKind::ChainCommandBlock => &[], + BlockKind::RedstoneWire => &[], + BlockKind::CandleCake => &[], + BlockKind::LightGrayConcretePowder => &[], + BlockKind::CyanStainedGlassPane => &[], + BlockKind::Sponge => &[], + BlockKind::OrangeStainedGlass => &[], + BlockKind::JackOLantern => &[], + BlockKind::DarkPrismarineStairs => &[], + BlockKind::SculkSensor => &[], + BlockKind::CrimsonHyphae => &[], + BlockKind::DetectorRail => &[], + BlockKind::GrassBlock => &[], + BlockKind::ShulkerBox => &[], + BlockKind::PolishedBlackstoneStairs => &[], + BlockKind::OrangeStainedGlassPane => &[], + BlockKind::Lever => &[], + BlockKind::PottedAcaciaSapling => &[], + BlockKind::DamagedAnvil => &[], + BlockKind::BlackstoneStairs => &[], + BlockKind::PlayerWallHead => &[], + BlockKind::PolishedGraniteSlab => &[], + BlockKind::StrippedBirchWood => &[], + BlockKind::SprucePressurePlate => &[], + BlockKind::BrownStainedGlass => &[], + BlockKind::StoneBrickStairs => &[], + BlockKind::DarkPrismarineSlab => &[], + BlockKind::AcaciaLeaves => &[], + BlockKind::PurpleBed => &[], + BlockKind::NetherBrickStairs => &[], + BlockKind::YellowWallBanner => &[], + BlockKind::CyanConcrete => &[], + BlockKind::PoweredRail => &[], + BlockKind::Furnace => &[], + BlockKind::Diorite => &[], + BlockKind::PinkConcrete => &[], + BlockKind::CartographyTable => &[], + BlockKind::MelonStem => &[], + BlockKind::AcaciaSign => &[], + BlockKind::PinkCarpet => &[], + BlockKind::YellowConcretePowder => &[], + BlockKind::AcaciaStairs => &[], + BlockKind::WhiteConcrete => &[], + BlockKind::WarpedButton => &[], + BlockKind::GrayCandle => &[], + BlockKind::BrownTerracotta => &[], + BlockKind::PolishedDeepslate => &[], + BlockKind::PolishedDioriteStairs => &[], + BlockKind::RedCarpet => &[], + BlockKind::GraniteWall => &[], + BlockKind::JungleLeaves => &[], + BlockKind::InfestedStone => &[], + BlockKind::GreenShulkerBox => &[], + BlockKind::Carrots => &[], + BlockKind::MagentaBed => &[], + BlockKind::QuartzBlock => &[], + BlockKind::PottedWarpedRoots => &[], + BlockKind::LightBlueStainedGlass => &[], + BlockKind::MagentaConcretePowder => &[], + BlockKind::MossyStoneBrickStairs => &[], + BlockKind::PurpleTerracotta => &[], + BlockKind::WhiteCandle => &[], + BlockKind::SoulSand => &[], + BlockKind::YellowTerracotta => &[], + BlockKind::StrippedJungleWood => &[], + BlockKind::GreenTerracotta => &[], + BlockKind::AttachedMelonStem => &[], + BlockKind::StoneStairs => &[], + BlockKind::CrimsonButton => &[], + BlockKind::WarpedPlanks => &[], + BlockKind::StructureVoid => &[], + BlockKind::YellowCarpet => &[], + BlockKind::BrownBed => &[], + BlockKind::ZombieHead => &[], + BlockKind::WhiteShulkerBox => &[], + BlockKind::TwistingVines => &[], + BlockKind::LightGrayStainedGlass => &[], + BlockKind::PolishedDeepslateSlab => &[], + BlockKind::RepeatingCommandBlock => &[], + BlockKind::PrismarineBricks => &[], + BlockKind::SmoothSandstoneStairs => &[], + BlockKind::Lilac => &[], + BlockKind::GreenWallBanner => &[], + BlockKind::CutCopperSlab => &[], + BlockKind::PinkTerracotta => &[], + BlockKind::DarkOakFenceGate => &[], + BlockKind::PurpleConcretePowder => &[], + BlockKind::BrownShulkerBox => &[], + BlockKind::JungleStairs => &[], + BlockKind::CutSandstone => &[], + BlockKind::PinkWallBanner => &[], + BlockKind::WhiteWallBanner => &[], + BlockKind::PrismarineSlab => &[], + BlockKind::JungleButton => &[], + BlockKind::RedstoneBlock => &[], + BlockKind::InfestedCobblestone => &[], + BlockKind::DeadHornCoralFan => &[], + BlockKind::AcaciaSapling => &[], + BlockKind::YellowStainedGlass => &[], + BlockKind::LightBlueConcrete => &[], + BlockKind::ChorusFlower => &[], + BlockKind::CrimsonPressurePlate => &[], + BlockKind::Terracotta => &[], + BlockKind::BlackBanner => &[], + BlockKind::WarpedWartBlock => &[], + BlockKind::PottedCrimsonRoots => &[], + BlockKind::LightGrayBanner => &[], + BlockKind::ExposedCutCopperSlab => &[], + BlockKind::Water => &[], + BlockKind::Cake => &[], + BlockKind::HornCoralBlock => &[], + BlockKind::PinkStainedGlassPane => &[], + BlockKind::WaxedOxidizedCutCopper => &[], + BlockKind::CobblestoneWall => &[], + BlockKind::CaveVines => &[], + BlockKind::FletchingTable => &[], + BlockKind::HayBlock => &[], + BlockKind::OakSlab => &[], + BlockKind::BirchWood => &[], + BlockKind::DeadFireCoral => &[], + BlockKind::OrangeBanner => &[], + BlockKind::SpruceDoor => &[], + BlockKind::DiamondBlock => &[], + BlockKind::BlueWool => &[], + BlockKind::PottedRedTulip => &[], + BlockKind::CyanGlazedTerracotta => &[], + BlockKind::FireCoralBlock => &[], + BlockKind::WarpedFenceGate => &[], + BlockKind::Wheat => &[], + BlockKind::LimeCandle => &[], + BlockKind::MagentaShulkerBox => &[], + BlockKind::DeadFireCoralBlock => &[], + BlockKind::SpruceWallSign => &[], + BlockKind::GrayConcrete => &[], + BlockKind::ChiseledDeepslate => &[], + BlockKind::NetherBrickWall => &[], + BlockKind::RedCandle => &[], + BlockKind::Campfire => &[], + BlockKind::Cobweb => &[], + BlockKind::WaxedExposedCutCopper => &[], + BlockKind::SmoothSandstoneSlab => &[], + BlockKind::SoulSoil => &[], + BlockKind::QuartzSlab => &[], + BlockKind::Dandelion => &[], + BlockKind::PottedBirchSapling => &[], + BlockKind::DeadHornCoralBlock => &[], + BlockKind::WarpedSign => &[], + BlockKind::WaxedCutCopperSlab => &[], + BlockKind::DragonEgg => &[], + BlockKind::RedNetherBrickSlab => &[], + BlockKind::PurpleCandle => &[], + BlockKind::WeatheredCutCopper => &[], + BlockKind::PottedOxeyeDaisy => &[], + BlockKind::RawGoldBlock => &[], + BlockKind::PinkWool => &[], + BlockKind::JungleWallSign => &[], + BlockKind::QuartzPillar => &[], + BlockKind::DripstoneBlock => &[], + BlockKind::BlueConcrete => &[], + BlockKind::CobbledDeepslateStairs => &[], + BlockKind::DeadBrainCoral => &[], + BlockKind::DeadBubbleCoral => &[], + BlockKind::BubbleCoral => &[], + BlockKind::HoneyBlock => &[], + BlockKind::LightGrayWallBanner => &[], + BlockKind::TurtleEgg => &[], + BlockKind::LightBlueGlazedTerracotta => &[], + BlockKind::CrimsonPlanks => &[], + BlockKind::BirchSign => &[], + BlockKind::BlackConcrete => &[], + BlockKind::PurpleWool => &[], + BlockKind::TwistingVinesPlant => &[], + BlockKind::AcaciaSlab => &[], + BlockKind::AmethystBlock => &[], + BlockKind::RedTerracotta => &[], + BlockKind::EmeraldBlock => &[], + BlockKind::AcaciaButton => &[], + BlockKind::Stone => &[], + BlockKind::WhiteBed => &[], + BlockKind::DioriteStairs => &[], + BlockKind::SlimeBlock => &[], + BlockKind::MossyCobblestoneStairs => &[], + BlockKind::PurpleStainedGlass => &[], + BlockKind::IronTrapdoor => &[], + BlockKind::GraniteSlab => &[], + BlockKind::WarpedStairs => &[], + BlockKind::PottedAzaleaBush => &[], + BlockKind::StoneBrickWall => &[], + BlockKind::PurpleWallBanner => &[], + BlockKind::OxidizedCutCopperStairs => &[], + BlockKind::DeadBrainCoralWallFan => &[], + BlockKind::HangingRoots => &[], + BlockKind::CoarseDirt => &[], + BlockKind::AcaciaTrapdoor => &[], + BlockKind::SoulTorch => &[], + BlockKind::Light => &[], + BlockKind::BrownStainedGlassPane => &[], + BlockKind::SmoothStone => &[], + BlockKind::Vine => &[], + BlockKind::Loom => &[], + BlockKind::BuddingAmethyst => &[], + BlockKind::EmeraldOre => &[], + BlockKind::InfestedDeepslate => &[], + BlockKind::HeavyWeightedPressurePlate => &[], + BlockKind::LightGrayConcrete => &[], + BlockKind::MossyCobblestoneSlab => &[], + BlockKind::AcaciaPlanks => &[], + BlockKind::ChiseledNetherBricks => &[], + BlockKind::BlackCandle => &[], + BlockKind::AcaciaWood => &[], + BlockKind::GrayShulkerBox => &[], + BlockKind::PottedCrimsonFungus => &[], + BlockKind::DeadBush => &[], + BlockKind::Comparator => &[], + BlockKind::PurpurStairs => &[], + BlockKind::PurpleCandleCake => &[], + BlockKind::DeadBubbleCoralBlock => &[], + BlockKind::IronOre => &[], + BlockKind::PottedRedMushroom => &[], + BlockKind::SporeBlossom => &[], + BlockKind::Jukebox => &[], + BlockKind::PottedBrownMushroom => &[], + BlockKind::PottedOrangeTulip => &[], + BlockKind::SmoothQuartz => &[], + BlockKind::CutRedSandstoneSlab => &[], + BlockKind::DragonWallHead => &[], + BlockKind::StructureBlock => &[], + BlockKind::PolishedBasalt => &[], + BlockKind::Spawner => &[], + BlockKind::HornCoralWallFan => &[], + BlockKind::PottedCornflower => &[], + BlockKind::Cornflower => &[], + BlockKind::SoulWallTorch => &[], + BlockKind::LimeShulkerBox => &[], + BlockKind::SeaPickle => &[], + BlockKind::DarkOakFence => &[], + BlockKind::Cactus => &[], + BlockKind::CrackedDeepslateTiles => &[], + BlockKind::TubeCoralBlock => &[], + BlockKind::IronDoor => &[], + BlockKind::Podzol => &[], + BlockKind::DeadHornCoralWallFan => &[], + BlockKind::LightBlueStainedGlassPane => &[], + } + } +} +impl BlockKind { + #[doc = "Returns the `harvest_tools` property of this `BlockKind`."] + #[inline] + pub fn harvest_tools(&self) -> Option<&'static [libcraft_items::Item]> { + match self { + BlockKind::AcaciaWood => None, + BlockKind::JunglePressurePlate => None, + BlockKind::ZombieWallHead => None, + BlockKind::Dropper => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), BlockKind::LimeCarpet => None, - BlockKind::PinkCarpet => None, - BlockKind::GrayCarpet => None, - BlockKind::LightGrayCarpet => None, - BlockKind::CyanCarpet => None, - BlockKind::PurpleCarpet => None, - BlockKind::BlueCarpet => None, - BlockKind::BrownCarpet => None, - BlockKind::GreenCarpet => None, - BlockKind::RedCarpet => None, - BlockKind::BlackCarpet => None, - BlockKind::Terracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CoalBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PackedIce => None, - BlockKind::Sunflower => None, - BlockKind::Lilac => None, - BlockKind::RoseBush => None, - BlockKind::Peony => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::TallGrass => None, + BlockKind::AcaciaSlab => None, + BlockKind::Hopper => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::PottedCrimsonRoots => None, + BlockKind::FrostedIce => None, + BlockKind::Conduit => None, + BlockKind::SpruceWallSign => None, + BlockKind::SpruceFence => None, + BlockKind::BlackstoneWall => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::Tuff => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::SlimeBlock => None, + BlockKind::LargeAmethystBud => None, + BlockKind::RedTulip => None, + BlockKind::MovingPiston => None, + BlockKind::PinkConcrete => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::BrownStainedGlassPane => None, + BlockKind::SoulCampfire => None, + BlockKind::PolishedBlackstoneStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Cobweb => Some(&[ + libcraft_items::Item::GoldenSword, + libcraft_items::Item::Shears, + libcraft_items::Item::DiamondSword, + libcraft_items::Item::WoodenSword, + libcraft_items::Item::IronSword, + libcraft_items::Item::NetheriteSword, + libcraft_items::Item::StoneSword, + ]), + BlockKind::Bookshelf => None, + BlockKind::PottedPoppy => None, + BlockKind::DeepslateDiamondOre => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::DeepslateBricks => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::StrippedJungleWood => None, + BlockKind::DeepslateLapisOre => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::DeepslateBrickWall => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::MagentaWallBanner => None, + BlockKind::Campfire => None, + BlockKind::CyanConcretePowder => None, + BlockKind::DragonEgg => None, + BlockKind::CrimsonHyphae => None, + BlockKind::PurpleCandle => None, + BlockKind::RawCopperBlock => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::StrippedSpruceLog => None, + BlockKind::YellowWool => None, + BlockKind::LimeStainedGlassPane => None, + BlockKind::PurpleShulkerBox => None, + BlockKind::GreenTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::OrangeWool => None, + BlockKind::BigDripleafStem => None, + BlockKind::Pumpkin => None, + BlockKind::SpruceStairs => None, + BlockKind::PurpurBlock => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::OakLog => None, + BlockKind::Torch => None, + BlockKind::Glowstone => None, + BlockKind::PottedJungleSapling => None, + BlockKind::BirchWood => None, + BlockKind::NetherGoldOre => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), BlockKind::LargeFern => None, - BlockKind::WhiteBanner => None, - BlockKind::OrangeBanner => None, - BlockKind::MagentaBanner => None, - BlockKind::LightBlueBanner => None, - BlockKind::YellowBanner => None, - BlockKind::LimeBanner => None, - BlockKind::PinkBanner => None, - BlockKind::GrayBanner => None, - BlockKind::LightGrayBanner => None, - BlockKind::CyanBanner => None, - BlockKind::PurpleBanner => None, - BlockKind::BlueBanner => None, - BlockKind::BrownBanner => None, - BlockKind::GreenBanner => None, + BlockKind::PurpleGlazedTerracotta => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::Target => None, + BlockKind::Sunflower => None, + BlockKind::LightGrayCandleCake => None, + BlockKind::BrownTerracotta => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::LightGrayGlazedTerracotta => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::CreeperWallHead => None, + BlockKind::CrimsonRoots => None, + BlockKind::InfestedDeepslate => None, + BlockKind::Andesite => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::DeepslateTileStairs => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::FloweringAzaleaLeaves => None, + BlockKind::BubbleCoralWallFan => None, + BlockKind::LightGrayConcretePowder => None, + BlockKind::AndesiteWall => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::BambooSapling => None, + BlockKind::HayBlock => None, + BlockKind::SpruceSlab => None, + BlockKind::OakDoor => None, + BlockKind::SprucePlanks => None, + BlockKind::OrangeStainedGlass => None, + BlockKind::Basalt => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::WeatheredCopper => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::WeatheredCutCopperSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::MossyStoneBricks => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::IronBlock => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::LightGrayWallBanner => None, + BlockKind::PottedDeadBush => None, BlockKind::RedBanner => None, - BlockKind::BlackBanner => None, + BlockKind::Prismarine => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::DarkOakSlab => None, + BlockKind::WarpedFenceGate => None, BlockKind::WhiteWallBanner => None, - BlockKind::OrangeWallBanner => None, - BlockKind::MagentaWallBanner => None, - BlockKind::LightBlueWallBanner => None, - BlockKind::YellowWallBanner => None, - BlockKind::LimeWallBanner => None, - BlockKind::PinkWallBanner => None, - BlockKind::GrayWallBanner => None, - BlockKind::LightGrayWallBanner => None, - BlockKind::CyanWallBanner => None, - BlockKind::PurpleWallBanner => None, - BlockKind::BlueWallBanner => None, - BlockKind::BrownWallBanner => None, - BlockKind::GreenWallBanner => None, - BlockKind::RedWallBanner => None, - BlockKind::BlackWallBanner => None, - BlockKind::RedSandstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::ChiseledRedSandstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CutRedSandstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::RedSandstoneStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::OakSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SpruceSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BirchSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::JungleSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::AcaciaSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DarkOakSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::StoneSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SmoothStoneSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SandstoneSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CutSandstoneSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PetrifiedOakSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CobblestoneSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BrickSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::StoneBrickSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::NetherBrickSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::QuartzSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::RedSandstoneSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CutRedSandstoneSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PurpurSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SmoothStone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SmoothSandstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SmoothQuartz => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SmoothRedSandstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SpruceFenceGate => None, - BlockKind::BirchFenceGate => None, - BlockKind::JungleFenceGate => None, - BlockKind::AcaciaFenceGate => None, - BlockKind::DarkOakFenceGate => None, - BlockKind::SpruceFence => None, - BlockKind::BirchFence => None, - BlockKind::JungleFence => None, - BlockKind::AcaciaFence => None, - BlockKind::DarkOakFence => None, - BlockKind::SpruceDoor => None, - BlockKind::BirchDoor => None, - BlockKind::JungleDoor => None, - BlockKind::AcaciaDoor => None, - BlockKind::DarkOakDoor => None, - BlockKind::EndRod => None, - BlockKind::ChorusPlant => None, - BlockKind::ChorusFlower => None, - BlockKind::PurpurBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PurpurPillar => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PurpurStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::EndStoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Beetroots => None, - BlockKind::GrassPath => None, - BlockKind::EndGateway => None, - BlockKind::RepeatingCommandBlock => None, - BlockKind::ChainCommandBlock => None, - BlockKind::FrostedIce => None, - BlockKind::MagmaBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::NetherWartBlock => None, - BlockKind::RedNetherBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BoneBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::StructureVoid => None, - BlockKind::Observer => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::ShulkerBox => None, - BlockKind::WhiteShulkerBox => None, - BlockKind::OrangeShulkerBox => None, - BlockKind::MagentaShulkerBox => None, BlockKind::LightBlueShulkerBox => None, - BlockKind::YellowShulkerBox => None, - BlockKind::LimeShulkerBox => None, - BlockKind::PinkShulkerBox => None, - BlockKind::GrayShulkerBox => None, - BlockKind::LightGrayShulkerBox => None, - BlockKind::CyanShulkerBox => None, - BlockKind::PurpleShulkerBox => None, - BlockKind::BlueShulkerBox => None, - BlockKind::BrownShulkerBox => None, - BlockKind::GreenShulkerBox => None, - BlockKind::RedShulkerBox => None, - BlockKind::BlackShulkerBox => None, - BlockKind::WhiteGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::OrangeGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::MagentaGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::LightBlueGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::YellowGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::LimeGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PinkGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::GrayGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::LightGrayGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CyanGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PurpleGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BlueGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BrownGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::GreenGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::RedGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BlackGlazedTerracotta => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::WhiteConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::OrangeConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::MagentaConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::LightBlueConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::YellowConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::LimeConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PinkConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::GrayConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::LightGrayConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CyanConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PurpleConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BlueConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BrownConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::GreenConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::RedConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BlackConcrete => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::WhiteConcretePowder => None, - BlockKind::OrangeConcretePowder => None, - BlockKind::MagentaConcretePowder => None, - BlockKind::LightBlueConcretePowder => None, + BlockKind::ChiseledDeepslate => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::Wheat => None, + BlockKind::PrismarineBrickStairs => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::Lilac => None, + BlockKind::BlueCandle => None, + BlockKind::JungleLeaves => None, + BlockKind::RedstoneWire => None, + BlockKind::PowderSnowCauldron => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::AcaciaDoor => None, + BlockKind::EnchantingTable => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Farmland => None, + BlockKind::PolishedBlackstoneSlab => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::BrownBanner => None, BlockKind::YellowConcretePowder => None, - BlockKind::LimeConcretePowder => None, - BlockKind::PinkConcretePowder => None, - BlockKind::GrayConcretePowder => None, - BlockKind::LightGrayConcretePowder => None, - BlockKind::CyanConcretePowder => None, - BlockKind::PurpleConcretePowder => None, - BlockKind::BlueConcretePowder => None, - BlockKind::BrownConcretePowder => None, - BlockKind::GreenConcretePowder => None, + BlockKind::ChorusFlower => None, + BlockKind::PinkBanner => None, + BlockKind::EndStoneBricks => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::Lectern => None, + BlockKind::DeepslateCopperOre => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::DeadTubeCoralFan => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::TwistingVinesPlant => None, + BlockKind::PottedSpruceSapling => None, + BlockKind::MagentaCarpet => None, + BlockKind::PurpleStainedGlassPane => None, + BlockKind::ActivatorRail => None, + BlockKind::NetherWart => None, + BlockKind::SoulWallTorch => None, + BlockKind::LightBlueBanner => None, + BlockKind::PurpleBanner => None, + BlockKind::DarkOakDoor => None, + BlockKind::DarkOakPlanks => None, + BlockKind::EndStoneBrickWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::LimeWool => None, + BlockKind::CyanBanner => None, + BlockKind::QuartzBlock => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::PurpleBed => None, + BlockKind::BlueWool => None, + BlockKind::PottedLilyOfTheValley => None, + BlockKind::DeepslateCoalOre => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::WaxedOxidizedCutCopperSlab => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::NetherBrickFence => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::OrangeCarpet => None, + BlockKind::BlackstoneStairs => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::CyanTerracotta => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::DetectorRail => None, + BlockKind::GreenCandleCake => None, + BlockKind::SpruceLeaves => None, + BlockKind::CyanGlazedTerracotta => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::TrappedChest => None, + BlockKind::SeaLantern => None, + BlockKind::RedCarpet => None, + BlockKind::YellowCarpet => None, + BlockKind::SmithingTable => None, + BlockKind::BrownCandleCake => None, + BlockKind::Blackstone => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::OrangeConcretePowder => None, + BlockKind::LightBlueConcretePowder => None, + BlockKind::DioriteStairs => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::AmethystBlock => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::DamagedAnvil => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::AcaciaFence => None, + BlockKind::HeavyWeightedPressurePlate => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::Allium => None, + BlockKind::DeadBrainCoralFan => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::PottedAcaciaSapling => None, + BlockKind::NetherBrickWall => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::GrayShulkerBox => None, + BlockKind::LightBlueTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::SoulSoil => None, + BlockKind::InfestedChiseledStoneBricks => None, + BlockKind::Glass => None, BlockKind::RedConcretePowder => None, - BlockKind::BlackConcretePowder => None, - BlockKind::Kelp => None, - BlockKind::KelpPlant => None, - BlockKind::DriedKelpBlock => None, + BlockKind::DeepslateTileSlab => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BlueTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::CrimsonSlab => None, + BlockKind::SmallAmethystBud => None, + BlockKind::JackOLantern => None, + BlockKind::PolishedDiorite => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BirchWallSign => None, + BlockKind::Cocoa => None, + BlockKind::StickyPiston => None, + BlockKind::NetherBricks => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::WhiteStainedGlassPane => None, + BlockKind::WarpedSlab => None, + BlockKind::StoneSlab => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::RoseBush => None, + BlockKind::GreenConcretePowder => None, + BlockKind::Dirt => None, + BlockKind::RawGoldBlock => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::PlayerWallHead => None, + BlockKind::DeadFireCoralFan => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::OrangeConcrete => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::TwistingVines => None, + BlockKind::LightningRod => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::MossyCobblestoneSlab => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PistonHead => None, + BlockKind::InfestedStoneBricks => None, BlockKind::TurtleEgg => None, - BlockKind::DeadTubeCoralBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DeadBrainCoralBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DeadBubbleCoralBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DeadFireCoralBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DeadHornCoralBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::TubeCoralBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BrainCoralBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BubbleCoralBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::FireCoralBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::HornCoralBlock => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DeadTubeCoral => None, - BlockKind::DeadBrainCoral => None, - BlockKind::DeadBubbleCoral => None, - BlockKind::DeadFireCoral => None, - BlockKind::DeadHornCoral => None, - BlockKind::TubeCoral => None, - BlockKind::BrainCoral => None, + BlockKind::DeadBrainCoral => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::Clay => None, + BlockKind::ChiseledPolishedBlackstone => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::MediumAmethystBud => None, + BlockKind::SpruceSapling => None, + BlockKind::IronBars => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::MossyCobblestoneStairs => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::OrangeBed => None, + BlockKind::StructureBlock => Some(&[]), + BlockKind::LightGrayStainedGlassPane => None, + BlockKind::CyanWallBanner => None, + BlockKind::DeadHornCoralWallFan => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::BirchLog => None, + BlockKind::PrismarineBrickSlab => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::CreeperHead => None, + BlockKind::Deepslate => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::MagentaWool => None, + BlockKind::YellowBanner => None, + BlockKind::YellowWallBanner => None, + BlockKind::SmoothStone => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::WeatheredCutCopper => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BubbleColumn => None, + BlockKind::YellowCandle => None, + BlockKind::CrimsonSign => None, + BlockKind::LightGrayStainedGlass => None, + BlockKind::GrayStainedGlassPane => None, + BlockKind::WarpedTrapdoor => None, + BlockKind::WaxedWeatheredCutCopper => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::YellowStainedGlassPane => None, + BlockKind::Smoker => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::BlackConcretePowder => None, + BlockKind::JungleTrapdoor => None, + BlockKind::CrackedStoneBricks => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::TallSeagrass => None, + BlockKind::CobblestoneWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PinkStainedGlassPane => None, + BlockKind::RedWallBanner => None, + BlockKind::StructureVoid => None, + BlockKind::Sand => None, + BlockKind::PolishedDioriteSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::PolishedBlackstoneBrickWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BlackCandleCake => None, + BlockKind::DarkOakWood => None, BlockKind::BubbleCoral => None, - BlockKind::FireCoral => None, + BlockKind::BirchFenceGate => None, + BlockKind::MossBlock => None, + BlockKind::DarkOakLog => None, + BlockKind::CutSandstoneSlab => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::MagentaShulkerBox => None, + BlockKind::LightBlueBed => None, + BlockKind::PolishedBlackstoneBrickSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::PinkCarpet => None, + BlockKind::Bricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), BlockKind::HornCoral => None, - BlockKind::DeadTubeCoralFan => None, - BlockKind::DeadBrainCoralFan => None, - BlockKind::DeadBubbleCoralFan => None, - BlockKind::DeadFireCoralFan => None, - BlockKind::DeadHornCoralFan => None, - BlockKind::TubeCoralFan => None, - BlockKind::BrainCoralFan => None, + BlockKind::Composter => None, + BlockKind::BlueBanner => None, + BlockKind::AmethystCluster => None, + BlockKind::BlackWool => None, + BlockKind::Spawner => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::OxidizedCutCopper => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PolishedDeepslateStairs => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::PottedCrimsonFungus => None, + BlockKind::GrayBanner => None, + BlockKind::DeadTubeCoral => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::AcaciaFenceGate => None, + BlockKind::PolishedDeepslateSlab => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Melon => None, + BlockKind::OrangeShulkerBox => None, + BlockKind::Lever => None, + BlockKind::IronOre => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::DarkOakTrapdoor => None, + BlockKind::WhiteConcretePowder => None, + BlockKind::WaterCauldron => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::RedStainedGlassPane => None, + BlockKind::BlackGlazedTerracotta => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::Kelp => None, + BlockKind::PurpleCandleCake => None, + BlockKind::Cauldron => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::RedTerracotta => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::BigDripleaf => None, + BlockKind::BlueCarpet => None, + BlockKind::DarkPrismarineSlab => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::DiamondBlock => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::OakButton => None, + BlockKind::AcaciaButton => None, + BlockKind::DarkOakButton => None, + BlockKind::DioriteWall => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::CobblestoneSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::JungleLog => None, + BlockKind::GoldBlock => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::BlueWallBanner => None, + BlockKind::Water => None, + BlockKind::StoneBricks => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::AttachedPumpkinStem => None, + BlockKind::ChiseledQuartzBlock => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PrismarineSlab => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), BlockKind::BubbleCoralFan => None, - BlockKind::FireCoralFan => None, - BlockKind::HornCoralFan => None, - BlockKind::DeadTubeCoralWallFan => None, - BlockKind::DeadBrainCoralWallFan => None, - BlockKind::DeadBubbleCoralWallFan => None, - BlockKind::DeadFireCoralWallFan => None, - BlockKind::DeadHornCoralWallFan => None, - BlockKind::TubeCoralWallFan => None, + BlockKind::PolishedDioriteStairs => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::Barrel => None, + BlockKind::Poppy => None, + BlockKind::ChainCommandBlock => Some(&[]), + BlockKind::JungleSign => None, + BlockKind::GreenCarpet => None, + BlockKind::JungleFence => None, + BlockKind::HornCoralBlock => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::WarpedButton => None, + BlockKind::PolishedGraniteSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::StrippedOakWood => None, + BlockKind::GrayBed => None, + BlockKind::AcaciaPressurePlate => None, + BlockKind::SandstoneStairs => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::RedSandstoneWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::Beetroots => None, + BlockKind::SmoothRedSandstoneStairs => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Tnt => None, + BlockKind::PrismarineBricks => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::SoulSand => None, + BlockKind::RespawnAnchor => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), BlockKind::BrainCoralWallFan => None, - BlockKind::BubbleCoralWallFan => None, - BlockKind::FireCoralWallFan => None, - BlockKind::HornCoralWallFan => None, + BlockKind::AcaciaSign => None, + BlockKind::EndStoneBrickStairs => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::SpruceSign => None, + BlockKind::BrownShulkerBox => None, + BlockKind::PottedCactus => None, + BlockKind::AncientDebris => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DragonWallHead => None, + BlockKind::WitherRose => None, + BlockKind::LightGrayConcrete => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::RedSandstoneSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::Beacon => None, + BlockKind::CrimsonStem => None, + BlockKind::LightGrayTerracotta => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::LightBlueCandle => None, + BlockKind::DeepslateBrickStairs => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::WaxedWeatheredCopper => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::StoneStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::PurpleTerracotta => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::GrassBlock => None, + BlockKind::PinkWallBanner => None, + BlockKind::EmeraldOre => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::BrainCoralFan => None, + BlockKind::Shroomlight => None, + BlockKind::CobbledDeepslateWall => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::CrimsonButton => None, + BlockKind::BrownWool => None, + BlockKind::DeadHornCoralFan => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::LightGrayBed => None, + BlockKind::CarvedPumpkin => None, + BlockKind::WhiteShulkerBox => None, + BlockKind::Carrots => None, + BlockKind::LightWeightedPressurePlate => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::SmoothQuartzStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::AcaciaPlanks => None, + BlockKind::StrippedWarpedStem => None, + BlockKind::CraftingTable => None, + BlockKind::NetherSprouts => None, + BlockKind::Barrier => None, + BlockKind::BirchDoor => None, + BlockKind::BoneBlock => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::GildedBlackstone => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::OxidizedCutCopperSlab => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::RedSandstone => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::Beehive => None, + BlockKind::CyanShulkerBox => None, + BlockKind::WaxedCutCopperStairs => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::GreenCandle => None, + BlockKind::MossyStoneBrickWall => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::CandleCake => None, + BlockKind::WaxedExposedCopper => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::AcaciaTrapdoor => None, + BlockKind::Dandelion => None, + BlockKind::WarpedHyphae => None, + BlockKind::BrickSlab => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::SmoothBasalt => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::BlueOrchid => None, + BlockKind::PinkConcretePowder => None, + BlockKind::OakFence => None, + BlockKind::YellowGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::TubeCoralBlock => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::WhiteBed => None, + BlockKind::CyanBed => None, + BlockKind::OakPlanks => None, + BlockKind::CutCopperSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::PinkShulkerBox => None, + BlockKind::RedWool => None, + BlockKind::DeadBubbleCoralFan => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::LightGrayCarpet => None, + BlockKind::GreenStainedGlass => None, + BlockKind::DarkOakLeaves => None, + BlockKind::GreenConcrete => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::WarpedPlanks => None, + BlockKind::PowderSnow => None, + BlockKind::OakWood => None, + BlockKind::CobbledDeepslate => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::CrimsonPressurePlate => None, + BlockKind::RedstoneLamp => None, + BlockKind::StrippedWarpedHyphae => None, + BlockKind::GrayCarpet => None, + BlockKind::TintedGlass => None, + BlockKind::LightBlueCandleCake => None, + BlockKind::LightGrayWool => None, + BlockKind::CutCopper => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::StrippedCrimsonHyphae => None, + BlockKind::CrackedDeepslateBricks => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Obsidian => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::QuartzBricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::SmoothStoneSlab => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PlayerHead => None, + BlockKind::CaveVines => None, + BlockKind::PolishedGranite => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::MossyCobblestone => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PottedOxeyeDaisy => None, + BlockKind::Cobblestone => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::CyanCandle => None, + BlockKind::CaveVinesPlant => None, + BlockKind::SandstoneWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::EndStone => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::WaxedOxidizedCopper => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::DeadBush => None, + BlockKind::GrayCandleCake => None, + BlockKind::Loom => None, + BlockKind::BrickStairs => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::CyanWool => None, + BlockKind::MagentaGlazedTerracotta => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PetrifiedOakSlab => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::MagentaCandleCake => None, + BlockKind::CrimsonFenceGate => None, + BlockKind::BlackBed => None, + BlockKind::ChiseledSandstone => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::GrayStainedGlass => None, + BlockKind::SpruceLog => None, + BlockKind::WarpedWallSign => None, + BlockKind::PolishedDeepslateWall => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::DeepslateGoldOre => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::WeepingVinesPlant => None, + BlockKind::SmoothQuartzSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::DarkOakFenceGate => None, + BlockKind::DeepslateTiles => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::WaxedOxidizedCutCopper => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::DeadHornCoral => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BrewingStand => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::Potatoes => None, + BlockKind::OrangeBanner => None, + BlockKind::LimeShulkerBox => None, + BlockKind::BlackWallBanner => None, + BlockKind::BlackShulkerBox => None, + BlockKind::Chest => None, + BlockKind::PolishedBlackstoneWall => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::BlueGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::LightGrayShulkerBox => None, + BlockKind::OrangeCandleCake => None, + BlockKind::FloweringAzalea => None, + BlockKind::CopperOre => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::LapisOre => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::BrownBed => None, + BlockKind::Podzol => None, + BlockKind::RedNetherBrickStairs => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::FlowerPot => None, + BlockKind::SculkSensor => None, + BlockKind::CopperBlock => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::SkeletonWallSkull => None, + BlockKind::Observer => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::PolishedBlackstonePressurePlate => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::ExposedCutCopper => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::StrippedDarkOakWood => None, + BlockKind::MagentaConcrete => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::OakSapling => None, + BlockKind::AndesiteSlab => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::LapisBlock => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), BlockKind::SeaPickle => None, + BlockKind::RedBed => None, + BlockKind::Dispenser => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BrownGlazedTerracotta => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::SmallDripleaf => None, + BlockKind::StonePressurePlate => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::BlueCandleCake => None, + BlockKind::SnowBlock => Some(&[ + libcraft_items::Item::IronShovel, + libcraft_items::Item::DiamondShovel, + libcraft_items::Item::NetheriteShovel, + libcraft_items::Item::WoodenShovel, + libcraft_items::Item::StoneShovel, + libcraft_items::Item::GoldenShovel, + ]), + BlockKind::DeepslateRedstoneOre => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::Stonecutter => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::Cornflower => None, + BlockKind::OakTrapdoor => None, + BlockKind::BuddingAmethyst => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Chain => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BlackCarpet => None, + BlockKind::ExposedCutCopperStairs => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::MagentaTerracotta => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::WarpedStairs => None, + BlockKind::DarkOakSapling => None, + BlockKind::EmeraldBlock => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::WaxedExposedCutCopperSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::HoneyBlock => None, + BlockKind::SpruceWood => None, + BlockKind::CutCopperStairs => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::CryingObsidian => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::Mycelium => None, + BlockKind::BrownWallBanner => None, + BlockKind::JungleWallSign => None, + BlockKind::BlackTerracotta => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::SmoothSandstoneSlab => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::BlueStainedGlass => None, + BlockKind::MossyStoneBrickStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::RedstoneWallTorch => None, + BlockKind::Ladder => None, + BlockKind::RedNetherBrickSlab => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::LightBlueConcrete => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::LilyPad => None, + BlockKind::WarpedNylium => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::EndPortalFrame => None, + BlockKind::Sandstone => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::LimeCandleCake => None, + BlockKind::CobbledDeepslateStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BrainCoral => None, + BlockKind::RedstoneOre => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::GrayTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::PottedBrownMushroom => None, + BlockKind::PottedWarpedFungus => None, + BlockKind::SoulFire => None, + BlockKind::OakSign => None, + BlockKind::InfestedCrackedStoneBricks => None, + BlockKind::Netherrack => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::PurpleWool => None, + BlockKind::SmoothSandstone => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::WhiteTerracotta => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PinkWool => None, + BlockKind::SkeletonSkull => None, + BlockKind::Air => None, + BlockKind::JungleDoor => None, BlockKind::BlueIce => None, - BlockKind::Conduit => None, - BlockKind::BambooSapling => None, + BlockKind::StrippedBirchLog => None, + BlockKind::PinkCandleCake => None, + BlockKind::Bell => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::Rail => None, + BlockKind::CrimsonStairs => None, + BlockKind::DarkPrismarine => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::WarpedFungus => None, + BlockKind::PottedCornflower => None, + BlockKind::ExposedCopper => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::PolishedBasalt => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::MossCarpet => None, + BlockKind::MagentaBanner => None, + BlockKind::PottedAzureBluet => None, + BlockKind::AcaciaLog => None, + BlockKind::ChippedAnvil => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::DarkOakFence => None, + BlockKind::StrippedAcaciaWood => None, + BlockKind::NoteBlock => None, + BlockKind::StoneBrickWall => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::AcaciaWallSign => None, + BlockKind::StoneBrickStairs => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::GreenStainedGlassPane => None, + BlockKind::GlassPane => None, + BlockKind::Jigsaw => Some(&[]), + BlockKind::OrangeTulip => None, + BlockKind::RedGlazedTerracotta => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::StrippedDarkOakLog => None, + BlockKind::YellowTerracotta => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::BrownConcretePowder => None, + BlockKind::EndPortal => None, + BlockKind::PurpurSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::NetherBrickSlab => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::DeadBubbleCoral => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::BirchPressurePlate => None, + BlockKind::GreenShulkerBox => None, + BlockKind::WhiteCandleCake => None, + BlockKind::InfestedMossyStoneBricks => None, + BlockKind::RedStainedGlass => None, + BlockKind::CyanCandleCake => None, + BlockKind::LimeTerracotta => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::AcaciaStairs => None, + BlockKind::EndRod => None, + BlockKind::BirchTrapdoor => None, + BlockKind::PinkBed => None, + BlockKind::TripwireHook => None, + BlockKind::OakStairs => None, + BlockKind::GreenWool => None, + BlockKind::AcaciaSapling => None, + BlockKind::BirchPlanks => None, + BlockKind::Snow => Some(&[ + libcraft_items::Item::StoneShovel, + libcraft_items::Item::GoldenShovel, + libcraft_items::Item::NetheriteShovel, + libcraft_items::Item::IronShovel, + libcraft_items::Item::WoodenShovel, + libcraft_items::Item::DiamondShovel, + ]), + BlockKind::DeadTubeCoralBlock => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::PottedAzaleaBush => None, + BlockKind::MagentaStainedGlass => None, + BlockKind::GraniteStairs => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::PurpleConcrete => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::JunglePlanks => None, + BlockKind::StoneBrickSlab => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::DarkOakStairs => None, + BlockKind::PointedDripstone => None, + BlockKind::DeadFireCoralBlock => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::SprucePressurePlate => None, + BlockKind::WaxedCutCopperSlab => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::CaveAir => None, + BlockKind::QuartzSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::RedstoneTorch => None, + BlockKind::Grass => None, + BlockKind::CobblestoneStairs => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::PottedBlueOrchid => None, + BlockKind::MelonStem => None, + BlockKind::RedConcrete => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::MushroomStem => None, + BlockKind::CommandBlock => Some(&[]), + BlockKind::WhiteWool => None, + BlockKind::BrownMushroomBlock => None, + BlockKind::JungleStairs => None, + BlockKind::PottedOrangeTulip => None, + BlockKind::BlueConcretePowder => None, + BlockKind::SporeBlossom => None, + BlockKind::OakFenceGate => None, + BlockKind::DriedKelpBlock => None, + BlockKind::CutSandstone => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::HornCoralWallFan => None, + BlockKind::MossyCobblestoneWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::ZombieHead => None, + BlockKind::RedMushroomBlock => None, + BlockKind::DarkPrismarineStairs => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::PolishedAndesiteSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::AcaciaLeaves => None, + BlockKind::PolishedGraniteStairs => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::StrippedAcaciaLog => None, + BlockKind::PrismarineStairs => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::SmoothRedSandstone => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::RedCandleCake => None, + BlockKind::Vine => None, + BlockKind::Candle => None, + BlockKind::PurpurStairs => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::YellowConcrete => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::WeatheredCutCopperStairs => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::WhiteTulip => None, + BlockKind::ChiseledNetherBricks => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::AttachedMelonStem => None, + BlockKind::DioriteSlab => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Granite => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::Fire => None, BlockKind::Bamboo => None, - BlockKind::PottedBamboo => None, - BlockKind::VoidAir => None, - BlockKind::CaveAir => None, - BlockKind::BubbleColumn => None, - BlockKind::PolishedGraniteStairs => None, - BlockKind::SmoothRedSandstoneStairs => None, - BlockKind::MossyStoneBrickStairs => None, - BlockKind::PolishedDioriteStairs => None, - BlockKind::MossyCobblestoneStairs => None, - BlockKind::EndStoneBrickStairs => None, - BlockKind::StoneStairs => None, - BlockKind::SmoothSandstoneStairs => None, - BlockKind::SmoothQuartzStairs => None, - BlockKind::GraniteStairs => None, - BlockKind::AndesiteStairs => None, - BlockKind::RedNetherBrickStairs => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PolishedAndesiteStairs => None, - BlockKind::DioriteStairs => None, - BlockKind::PolishedGraniteSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SmoothRedSandstoneSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::MossyStoneBrickSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PolishedDioriteSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::MossyCobblestoneSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::EndStoneBrickSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SmoothSandstoneSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SmoothQuartzSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::GraniteSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::AndesiteSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::RedNetherBrickSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PolishedAndesiteSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DioriteSlab => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BrickWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PrismarineWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::RedSandstoneWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::MossyStoneBrickWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::GraniteWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::StoneBrickWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::NetherBrickWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::AndesiteWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::RedNetherBrickWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SandstoneWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::EndStoneBrickWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::DioriteWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Scaffolding => None, - BlockKind::Loom => None, - BlockKind::Barrel => None, - BlockKind::Smoker => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BlastFurnace => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CartographyTable => None, - BlockKind::FletchingTable => None, - BlockKind::Grindstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Lectern => None, - BlockKind::SmithingTable => None, - BlockKind::Stonecutter => None, - BlockKind::Bell => None, - BlockKind::Lantern => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::SoulLantern => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Campfire => None, - BlockKind::SoulCampfire => None, + BlockKind::BlueShulkerBox => None, + BlockKind::PottedPinkTulip => None, + BlockKind::DiamondOre => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::LavaCauldron => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::CyanStainedGlassPane => None, + BlockKind::Lava => None, + BlockKind::EndGateway => None, + BlockKind::BrownConcrete => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::GlowLichen => None, + BlockKind::FireCoralBlock => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::LimeCandle => None, + BlockKind::Grindstone => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::GrayWallBanner => None, + BlockKind::EndStoneBrickSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::HornCoralFan => None, + BlockKind::CrimsonWallSign => None, + BlockKind::Azalea => None, + BlockKind::CyanConcrete => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Repeater => None, BlockKind::SweetBerryBush => None, - BlockKind::WarpedStem => None, - BlockKind::StrippedWarpedStem => None, - BlockKind::WarpedHyphae => None, - BlockKind::StrippedWarpedHyphae => None, - BlockKind::WarpedNylium => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::WarpedFungus => None, + BlockKind::PumpkinStem => None, + BlockKind::LimeGlazedTerracotta => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::DeadFireCoral => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::Diorite => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::Tripwire => None, + BlockKind::PinkTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::OakLeaves => None, + BlockKind::ShulkerBox => None, + BlockKind::YellowBed => None, + BlockKind::WhiteConcrete => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::PottedWhiteTulip => None, + BlockKind::Seagrass => None, + BlockKind::PottedOakSapling => None, + BlockKind::GreenGlazedTerracotta => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::CoalOre => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BrownStainedGlass => None, + BlockKind::CobbledDeepslateSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), BlockKind::WarpedWartBlock => None, - BlockKind::WarpedRoots => None, - BlockKind::NetherSprouts => None, - BlockKind::CrimsonStem => None, + BlockKind::JungleButton => None, + BlockKind::BlueStainedGlassPane => None, + BlockKind::MagentaConcretePowder => None, + BlockKind::OrangeStainedGlassPane => None, + BlockKind::StrippedJungleLog => None, + BlockKind::WaxedCopperBlock => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::NetherBrickStairs => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DeepslateTileWall => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::BlackStainedGlass => None, + BlockKind::JungleWood => None, + BlockKind::OakSlab => None, + BlockKind::RepeatingCommandBlock => Some(&[]), + BlockKind::SpruceButton => None, + BlockKind::YellowStainedGlass => None, + BlockKind::Anvil => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::BirchSapling => None, BlockKind::StrippedCrimsonStem => None, - BlockKind::CrimsonHyphae => None, - BlockKind::StrippedCrimsonHyphae => None, - BlockKind::CrimsonNylium => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } + BlockKind::GraniteSlab => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::Light => None, + BlockKind::SmoothSandstoneStairs => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::AzaleaLeaves => None, + BlockKind::WaxedWeatheredCutCopperSlab => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::Sponge => None, + BlockKind::WaxedWeatheredCutCopperStairs => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::MagentaBed => None, + BlockKind::FireCoral => None, + BlockKind::LightBlueGlazedTerracotta => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::OrangeGlazedTerracotta => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::StoneButton => None, + BlockKind::LimeConcrete => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::SugarCane => None, + BlockKind::PottedWarpedRoots => None, + BlockKind::OrangeWallBanner => None, + BlockKind::AndesiteStairs => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::Gravel => None, + BlockKind::CyanCarpet => None, + BlockKind::Fern => None, + BlockKind::BirchFence => None, + BlockKind::Bedrock => None, + BlockKind::QuartzStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::TubeCoralFan => None, + BlockKind::WarpedPressurePlate => None, + BlockKind::BrainCoralBlock => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DripstoneBlock => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::BeeNest => None, + BlockKind::GrayCandle => None, + BlockKind::MagentaStainedGlassPane => None, + BlockKind::SpruceFenceGate => None, + BlockKind::RedstoneBlock => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::RedSand => None, + BlockKind::RawIronBlock => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PolishedAndesiteStairs => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::AzureBluet => None, + BlockKind::LightBlueWool => None, + BlockKind::PurpleCarpet => None, + BlockKind::BlueBed => None, + BlockKind::NetherPortal => None, + BlockKind::PackedIce => None, + BlockKind::InfestedStone => None, + BlockKind::RedShulkerBox => None, + BlockKind::LimeWallBanner => None, + BlockKind::OakWallSign => None, + BlockKind::WhiteGlazedTerracotta => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::KelpPlant => None, + BlockKind::FletchingTable => None, + BlockKind::WarpedDoor => None, + BlockKind::ChorusPlant => None, + BlockKind::ChiseledStoneBricks => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::BlackBanner => None, + BlockKind::PrismarineWall => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::GreenBed => None, + BlockKind::CrimsonTrapdoor => None, + BlockKind::CyanStainedGlass => None, BlockKind::CrimsonFungus => None, - BlockKind::Shroomlight => None, + BlockKind::OrangeCandle => None, + BlockKind::DarkOakPressurePlate => None, + BlockKind::PurpleConcretePowder => None, + BlockKind::HoneycombBlock => None, + BlockKind::CrimsonNylium => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::DeadBubbleCoralBlock => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::ExposedCutCopperSlab => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::LimeStainedGlass => None, + BlockKind::RedCandle => None, + BlockKind::WaxedOxidizedCutCopperStairs => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::PolishedBlackstoneBrickStairs => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::FireCoralWallFan => None, + BlockKind::BlackStainedGlassPane => None, + BlockKind::Peony => None, + BlockKind::WitherSkeletonSkull => None, + BlockKind::Cactus => None, + BlockKind::GrayGlazedTerracotta => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::OxidizedCopper => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::GrayConcrete => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Calcite => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::Jukebox => None, + BlockKind::JungleFenceGate => None, + BlockKind::BubbleCoralBlock => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::PoweredRail => None, + BlockKind::LimeBed => None, + BlockKind::Piston => None, + BlockKind::VoidAir => None, + BlockKind::SmoothRedSandstoneSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::WarpedSign => None, + BlockKind::BrownCandle => None, + BlockKind::PolishedDeepslate => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Cake => None, + BlockKind::Terracotta => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::PurpleWallBanner => None, + BlockKind::MagmaBlock => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::CrackedNetherBricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::GreenWallBanner => None, + BlockKind::RedMushroom => None, + BlockKind::PottedWitherRose => None, + BlockKind::PolishedBlackstoneButton => None, + BlockKind::RedNetherBrickWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DirtPath => None, + BlockKind::PottedRedMushroom => None, + BlockKind::BirchButton => None, + BlockKind::CoalBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), BlockKind::WeepingVines => None, - BlockKind::WeepingVinesPlant => None, - BlockKind::TwistingVines => None, - BlockKind::TwistingVinesPlant => None, - BlockKind::CrimsonRoots => None, + BlockKind::CutRedSandstone => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::CrimsonDoor => None, + BlockKind::WarpedStem => None, + BlockKind::CrackedPolishedBlackstoneBricks => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::MossyStoneBrickSlab => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::BirchSlab => None, + BlockKind::PinkStainedGlass => None, + BlockKind::CrackedDeepslateTiles => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::WitherSkeletonWallSkull => None, + BlockKind::MagentaCandle => None, + BlockKind::BrownMushroom => None, + BlockKind::SoulTorch => None, + BlockKind::PurpurPillar => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::DarkOakWallSign => None, + BlockKind::DeepslateBrickSlab => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::PolishedAndesite => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::RootedDirt => None, + BlockKind::OxidizedCutCopperStairs => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::WaxedCutCopper => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BrickWall => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::InfestedCobblestone => None, + BlockKind::CutRedSandstoneSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::DeepslateEmeraldOre => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::YellowShulkerBox => None, + BlockKind::StrippedSpruceWood => None, + BlockKind::LimeConcretePowder => None, + BlockKind::LightGrayCandle => None, + BlockKind::NetherWartBlock => None, + BlockKind::IronTrapdoor => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::BlackConcrete => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::DeepslateIronOre => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::WhiteCarpet => None, + BlockKind::LightBlueCarpet => None, + BlockKind::PottedRedTulip => None, + BlockKind::SmoothQuartz => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::StrippedOakLog => None, + BlockKind::LimeBanner => None, + BlockKind::DeadBrainCoralBlock => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::PottedBamboo => None, + BlockKind::PottedAllium => None, + BlockKind::CartographyTable => None, + BlockKind::PurpleStainedGlass => None, + BlockKind::DragonHead => None, + BlockKind::PinkCandle => None, + BlockKind::WarpedRoots => None, + BlockKind::QuartzPillar => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::SpruceDoor => None, + BlockKind::Lantern => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::WaxedExposedCutCopperStairs => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::Lodestone => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::WetSponge => None, + BlockKind::FireCoralFan => None, + BlockKind::PolishedBlackstoneBricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::Scaffolding => None, + BlockKind::WhiteCandle => None, + BlockKind::PottedDandelion => None, + BlockKind::StrippedBirchWood => None, + BlockKind::WhiteBanner => None, + BlockKind::JungleSlab => None, + BlockKind::BlastFurnace => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::RedNetherBricks => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::RedSandstoneStairs => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::GoldOre => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::TubeCoralWallFan => None, + BlockKind::DeadFireCoralWallFan => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::Stone => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::PinkGlazedTerracotta => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::DeadTubeCoralWallFan => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::OxeyeDaisy => None, + BlockKind::LilyOfTheValley => None, + BlockKind::BirchStairs => None, + BlockKind::SoulLantern => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::LightBlueStainedGlassPane => None, + BlockKind::ChiseledRedSandstone => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::JungleSapling => None, + BlockKind::TallGrass => None, + BlockKind::LightBlueWallBanner => None, + BlockKind::BirchSign => None, + BlockKind::NetherQuartzOre => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::BlueConcrete => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::OakPressurePlate => None, + BlockKind::DeadBrainCoralWallFan => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::WallTorch => None, BlockKind::CrimsonPlanks => None, - BlockKind::WarpedPlanks => None, - BlockKind::CrimsonSlab => None, - BlockKind::WarpedSlab => None, - BlockKind::CrimsonPressurePlate => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::WarpedPressurePlate => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } + BlockKind::GraniteWall => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), BlockKind::CrimsonFence => None, - BlockKind::WarpedFence => None, - BlockKind::CrimsonTrapdoor => None, - BlockKind::WarpedTrapdoor => None, - BlockKind::CrimsonFenceGate => None, - BlockKind::WarpedFenceGate => None, - BlockKind::CrimsonStairs => None, - BlockKind::WarpedStairs => None, - BlockKind::CrimsonButton => None, - BlockKind::WarpedButton => None, - BlockKind::CrimsonDoor => None, - BlockKind::WarpedDoor => None, - BlockKind::CrimsonSign => None, - BlockKind::WarpedSign => None, - BlockKind::CrimsonWallSign => None, - BlockKind::WarpedWallSign => None, - BlockKind::StructureBlock => None, - BlockKind::Jigsaw => None, - BlockKind::Composter => None, - BlockKind::Target => None, - BlockKind::BeeNest => None, - BlockKind::Beehive => None, - BlockKind::HoneyBlock => None, - BlockKind::HoneycombBlock => None, - BlockKind::NetheriteBlock => { - const TOOLS: &[libcraft_items::Item] = &[libcraft_items::Item::DiamondPickaxe]; - Some(TOOLS) - } - BlockKind::AncientDebris => { - const TOOLS: &[libcraft_items::Item] = &[libcraft_items::Item::DiamondPickaxe]; - Some(TOOLS) - } - BlockKind::CryingObsidian => { - const TOOLS: &[libcraft_items::Item] = &[libcraft_items::Item::DiamondPickaxe]; - Some(TOOLS) - } - BlockKind::RespawnAnchor => { - const TOOLS: &[libcraft_items::Item] = &[libcraft_items::Item::DiamondPickaxe]; - Some(TOOLS) - } - BlockKind::PottedCrimsonFungus => None, - BlockKind::PottedWarpedFungus => None, - BlockKind::PottedCrimsonRoots => None, - BlockKind::PottedWarpedRoots => None, - BlockKind::Lodestone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::Blackstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BlackstoneStairs => None, - BlockKind::BlackstoneWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::BlackstoneSlab => None, - BlockKind::PolishedBlackstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PolishedBlackstoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CrackedPolishedBlackstoneBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::ChiseledPolishedBlackstone => None, - BlockKind::PolishedBlackstoneBrickSlab => None, - BlockKind::PolishedBlackstoneBrickStairs => None, - BlockKind::PolishedBlackstoneBrickWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::GildedBlackstone => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PolishedBlackstoneStairs => None, - BlockKind::PolishedBlackstoneSlab => None, - BlockKind::PolishedBlackstonePressurePlate => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::PolishedBlackstoneButton => None, - BlockKind::PolishedBlackstoneWall => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::ChiseledNetherBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::CrackedNetherBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } - BlockKind::QuartzBricks => { - const TOOLS: &[libcraft_items::Item] = &[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]; - Some(TOOLS) - } + BlockKind::PolishedBlackstone => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::PottedDarkOakSapling => None, + BlockKind::Furnace => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::IronDoor => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::TubeCoral => None, + BlockKind::PottedBirchSapling => None, + BlockKind::LightGrayBanner => None, + BlockKind::DarkOakSign => None, + BlockKind::DeadBubbleCoralWallFan => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + ]), + BlockKind::SpruceTrapdoor => None, + BlockKind::GreenBanner => None, + BlockKind::BlackCandle => None, + BlockKind::OrangeTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Ice => None, + BlockKind::PottedFern => None, + BlockKind::GrayWool => None, + BlockKind::PinkTulip => None, + BlockKind::WhiteStainedGlass => None, + BlockKind::Comparator => None, + BlockKind::DeadHornCoralBlock => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DaylightDetector => None, + BlockKind::BirchLeaves => None, + BlockKind::LightBlueStainedGlass => None, + BlockKind::BrownCarpet => None, + BlockKind::WaxedExposedCutCopper => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + ]), + BlockKind::WarpedFence => None, + BlockKind::NetheriteBlock => Some(&[ + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::HangingRoots => None, + BlockKind::GrayConcretePowder => None, + BlockKind::YellowCandleCake => None, + BlockKind::EnderChest => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::PottedFloweringAzaleaBush => None, + BlockKind::CoarseDirt => None, + BlockKind::SandstoneSlab => Some(&[ + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::BlackstoneSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + ]), + } + } +} +impl BlockKind { + #[doc = "Returns the `drops` property of this `BlockKind`."] + #[inline] + pub fn drops(&self) -> &'static [libcraft_items::Item] { + match self { + BlockKind::SeaPickle => &[], + BlockKind::MagentaCandleCake => &[], + BlockKind::LightGrayConcrete => &[], + BlockKind::BubbleCoralFan => &[], + BlockKind::CraftingTable => &[], + BlockKind::LargeAmethystBud => &[], + BlockKind::GreenStainedGlass => &[], + BlockKind::Melon => &[], + BlockKind::ChiseledPolishedBlackstone => &[], + BlockKind::PottedOrangeTulip => &[], + BlockKind::GrayGlazedTerracotta => &[], + BlockKind::Tripwire => &[], + BlockKind::DriedKelpBlock => &[], + BlockKind::BlueBanner => &[], + BlockKind::ZombieWallHead => &[], + BlockKind::GrayConcretePowder => &[], + BlockKind::GrayStainedGlassPane => &[], + BlockKind::LilyOfTheValley => &[], + BlockKind::PurpleWallBanner => &[], + BlockKind::WeatheredCutCopperStairs => &[], + BlockKind::WarpedWartBlock => &[], + BlockKind::MagentaStainedGlass => &[], + BlockKind::RedWallBanner => &[], + BlockKind::AcaciaSapling => &[], + BlockKind::PottedPinkTulip => &[], + BlockKind::Stone => &[], + BlockKind::CreeperWallHead => &[], + BlockKind::FireCoralFan => &[], + BlockKind::BirchPressurePlate => &[], + BlockKind::AndesiteSlab => &[], + BlockKind::Sunflower => &[], + BlockKind::GreenCandle => &[], + BlockKind::Granite => &[], + BlockKind::BirchButton => &[], + BlockKind::Anvil => &[], + BlockKind::PurpurSlab => &[], + BlockKind::PinkCandleCake => &[], + BlockKind::CaveVinesPlant => &[], + BlockKind::JungleWallSign => &[], + BlockKind::Candle => &[], + BlockKind::WaxedOxidizedCutCopperStairs => &[], + BlockKind::CrackedDeepslateTiles => &[], + BlockKind::Barrel => &[], + BlockKind::StonePressurePlate => &[], + BlockKind::GildedBlackstone => &[], + BlockKind::Farmland => &[], + BlockKind::OrangeTerracotta => &[], + BlockKind::BlueOrchid => &[], + BlockKind::BlueStainedGlass => &[], + BlockKind::CyanCandle => &[], + BlockKind::InfestedCobblestone => &[], + BlockKind::Clay => &[], + BlockKind::StrippedDarkOakWood => &[], + BlockKind::CyanTerracotta => &[], + BlockKind::Gravel => &[], + BlockKind::CyanCandleCake => &[], + BlockKind::OakLeaves => &[], + BlockKind::CrimsonFungus => &[], + BlockKind::RedNetherBrickWall => &[], + BlockKind::AcaciaFence => &[], + BlockKind::TwistingVines => &[], + BlockKind::PinkTulip => &[], + BlockKind::RedBed => &[], + BlockKind::Observer => &[], + BlockKind::PinkGlazedTerracotta => &[], + BlockKind::PurpleConcretePowder => &[], + BlockKind::Cactus => &[], + BlockKind::Fern => &[], + BlockKind::DarkPrismarineStairs => &[], + BlockKind::RedSandstoneSlab => &[], + BlockKind::DioriteStairs => &[], + BlockKind::PottedRedMushroom => &[], + BlockKind::OrangeConcretePowder => &[], + BlockKind::CryingObsidian => &[], + BlockKind::CobbledDeepslateWall => &[], + BlockKind::Chest => &[], + BlockKind::PrismarineBricks => &[], + BlockKind::Bricks => &[], + BlockKind::OakWallSign => &[], + BlockKind::RedStainedGlassPane => &[], + BlockKind::TrappedChest => &[], + BlockKind::OxidizedCutCopperSlab => &[], + BlockKind::CobbledDeepslateSlab => &[], + BlockKind::LightGrayTerracotta => &[], + BlockKind::GrayShulkerBox => &[], + BlockKind::DeadHornCoralFan => &[], + BlockKind::LightBlueCandleCake => &[], + BlockKind::CrimsonButton => &[], + BlockKind::DeepslateEmeraldOre => &[], + BlockKind::WaxedCutCopperStairs => &[], + BlockKind::SkeletonWallSkull => &[], + BlockKind::CoalOre => &[], + BlockKind::RedNetherBrickStairs => &[], + BlockKind::Bell => &[], + BlockKind::AttachedMelonStem => &[], + BlockKind::NoteBlock => &[], + BlockKind::LightGrayBanner => &[], + BlockKind::Conduit => &[], + BlockKind::ExposedCopper => &[], + BlockKind::ActivatorRail => &[], + BlockKind::Dropper => &[], + BlockKind::BlackConcretePowder => &[], + BlockKind::LimeConcrete => &[], + BlockKind::BirchDoor => &[], + BlockKind::CobbledDeepslateStairs => &[], + BlockKind::WaxedExposedCutCopperSlab => &[], + BlockKind::GreenCandleCake => &[], + BlockKind::YellowBanner => &[], + BlockKind::BlackStainedGlass => &[], + BlockKind::ChiseledStoneBricks => &[], + BlockKind::SoulWallTorch => &[], + BlockKind::WhiteBanner => &[], + BlockKind::RedGlazedTerracotta => &[], + BlockKind::PinkCarpet => &[], + BlockKind::DarkOakTrapdoor => &[], + BlockKind::BirchLog => &[], + BlockKind::MossyCobblestoneWall => &[], + BlockKind::BrownCarpet => &[], + BlockKind::BrownMushroomBlock => &[], + BlockKind::MossyStoneBricks => &[], + BlockKind::CyanGlazedTerracotta => &[], + BlockKind::RootedDirt => &[], + BlockKind::NetherWart => &[], + BlockKind::WarpedPlanks => &[], + BlockKind::CyanWallBanner => &[], + BlockKind::GoldOre => &[], + BlockKind::Stonecutter => &[], + BlockKind::NetherWartBlock => &[], + BlockKind::EmeraldBlock => &[], + BlockKind::MagentaTerracotta => &[], + BlockKind::OrangeGlazedTerracotta => &[], + BlockKind::LightBlueConcrete => &[], + BlockKind::SmoothRedSandstoneStairs => &[], + BlockKind::CyanConcrete => &[], + BlockKind::BrownCandleCake => &[], + BlockKind::BlueWool => &[], + BlockKind::NetherBrickWall => &[], + BlockKind::OakPressurePlate => &[], + BlockKind::FireCoralBlock => &[], + BlockKind::LightBlueWallBanner => &[], + BlockKind::NetherBrickSlab => &[], + BlockKind::HoneyBlock => &[], + BlockKind::GraniteWall => &[], + BlockKind::SkeletonSkull => &[], + BlockKind::CyanConcretePowder => &[], + BlockKind::QuartzBlock => &[], + BlockKind::RedMushroomBlock => &[], + BlockKind::SoulTorch => &[], + BlockKind::RedSandstoneWall => &[], + BlockKind::DeadTubeCoralWallFan => &[], + BlockKind::AcaciaFenceGate => &[], + BlockKind::PinkTerracotta => &[], + BlockKind::StoneBrickSlab => &[], + BlockKind::SpruceDoor => &[], + BlockKind::AmethystCluster => &[], + BlockKind::BlueStainedGlassPane => &[], + BlockKind::AcaciaLog => &[], + BlockKind::Barrier => &[], + BlockKind::WaxedWeatheredCopper => &[], + BlockKind::PottedCactus => &[], + BlockKind::YellowWallBanner => &[], + BlockKind::DarkOakSign => &[], + BlockKind::LightBlueCarpet => &[], + BlockKind::Lantern => &[], + BlockKind::DetectorRail => &[], + BlockKind::AndesiteStairs => &[], + BlockKind::BlackstoneWall => &[], + BlockKind::RespawnAnchor => &[], + BlockKind::SmallAmethystBud => &[], + BlockKind::BlackTerracotta => &[], + BlockKind::StructureVoid => &[], + BlockKind::PackedIce => &[], + BlockKind::HornCoralFan => &[], + BlockKind::NetherBricks => &[], + BlockKind::TallSeagrass => &[], + BlockKind::JungleSign => &[], + BlockKind::StrippedAcaciaLog => &[], + BlockKind::BlueCandle => &[], + BlockKind::BlueConcrete => &[], + BlockKind::PottedCrimsonRoots => &[], + BlockKind::BubbleColumn => &[], + BlockKind::DioriteWall => &[], + BlockKind::SmoothQuartz => &[], + BlockKind::Deepslate => &[], + BlockKind::DeepslateGoldOre => &[], + BlockKind::StrippedWarpedHyphae => &[], + BlockKind::RedCarpet => &[], + BlockKind::PottedCrimsonFungus => &[], + BlockKind::CobbledDeepslate => &[], + BlockKind::Poppy => &[], + BlockKind::BlackCandle => &[], + BlockKind::MagentaShulkerBox => &[], + BlockKind::InfestedMossyStoneBricks => &[], + BlockKind::MagentaGlazedTerracotta => &[], + BlockKind::DeadHornCoralBlock => &[], + BlockKind::HornCoralWallFan => &[], + BlockKind::DarkOakWood => &[], + BlockKind::OakButton => &[], + BlockKind::OrangeWool => &[], + BlockKind::Lilac => &[], + BlockKind::YellowGlazedTerracotta => &[], + BlockKind::Bookshelf => &[], + BlockKind::WarpedDoor => &[], + BlockKind::PottedAzureBluet => &[], + BlockKind::StrippedSpruceWood => &[], + BlockKind::TallGrass => &[], + BlockKind::BrainCoralFan => &[], + BlockKind::StoneStairs => &[], + BlockKind::CrimsonSlab => &[], + BlockKind::DarkPrismarine => &[], + BlockKind::WaxedWeatheredCutCopperSlab => &[], + BlockKind::AcaciaSlab => &[], + BlockKind::BrownMushroom => &[], + BlockKind::SmallDripleaf => &[], + BlockKind::PottedBlueOrchid => &[], + BlockKind::SmoothBasalt => &[], + BlockKind::IronBlock => &[], + BlockKind::Tnt => &[], + BlockKind::Diorite => &[], + BlockKind::DeadTubeCoralFan => &[], + BlockKind::JackOLantern => &[], + BlockKind::OrangeShulkerBox => &[], + BlockKind::Composter => &[], + BlockKind::DeepslateLapisOre => &[], + BlockKind::Allium => &[], + BlockKind::SoulFire => &[], + BlockKind::DeepslateTileSlab => &[], + BlockKind::YellowStainedGlass => &[], + BlockKind::PottedPoppy => &[], + BlockKind::WhiteConcretePowder => &[], + BlockKind::YellowCandle => &[], + BlockKind::NetherQuartzOre => &[], + BlockKind::HayBlock => &[], + BlockKind::RoseBush => &[], + BlockKind::SmoothStoneSlab => &[], + BlockKind::MagentaCarpet => &[], + BlockKind::DeadBrainCoralBlock => &[], + BlockKind::EndStoneBricks => &[], + BlockKind::CrimsonDoor => &[], + BlockKind::LargeFern => &[], + BlockKind::DarkOakStairs => &[], + BlockKind::OrangeBanner => &[], + BlockKind::JungleTrapdoor => &[], + BlockKind::ExposedCutCopperStairs => &[], + BlockKind::BlueTerracotta => &[], + BlockKind::StrippedJungleWood => &[], + BlockKind::RedSand => &[], + BlockKind::SpruceButton => &[], + BlockKind::WhiteCarpet => &[], + BlockKind::CyanCarpet => &[], + BlockKind::PowderSnowCauldron => &[], + BlockKind::WarpedStem => &[], + BlockKind::CrimsonSign => &[], + BlockKind::GrayCandle => &[], + BlockKind::AcaciaWood => &[], + BlockKind::ZombieHead => &[], + BlockKind::YellowCarpet => &[], + BlockKind::AzureBluet => &[], + BlockKind::LilyPad => &[], + BlockKind::Comparator => &[], + BlockKind::WaxedExposedCutCopperStairs => &[], + BlockKind::Jigsaw => &[], + BlockKind::PurpleBed => &[], + BlockKind::LightGrayWool => &[], + BlockKind::PrismarineBrickStairs => &[], + BlockKind::BirchStairs => &[], + BlockKind::GreenShulkerBox => &[], + BlockKind::WhiteConcrete => &[], + BlockKind::TubeCoral => &[], + BlockKind::DeadTubeCoral => &[], + BlockKind::Cauldron => &[], + BlockKind::PurpleWool => &[], + BlockKind::DarkOakButton => &[], + BlockKind::HornCoralBlock => &[], + BlockKind::PumpkinStem => &[], + BlockKind::WeatheredCopper => &[], + BlockKind::Pumpkin => &[], + BlockKind::DeadBrainCoralFan => &[], + BlockKind::FlowerPot => &[], + BlockKind::LightBlueBanner => &[], + BlockKind::WarpedSlab => &[], + BlockKind::BlueIce => &[], + BlockKind::Prismarine => &[], + BlockKind::BlackBanner => &[], + BlockKind::NetherSprouts => &[], + BlockKind::BrainCoralWallFan => &[], + BlockKind::OakSlab => &[], + BlockKind::StrippedSpruceLog => &[], + BlockKind::TubeCoralFan => &[], + BlockKind::RedNetherBricks => &[], + BlockKind::EndPortal => &[], + BlockKind::BrownBanner => &[], + BlockKind::WhiteCandleCake => &[], + BlockKind::DarkOakLeaves => &[], + BlockKind::CreeperHead => &[], + BlockKind::MagentaBanner => &[], + BlockKind::MossyStoneBrickSlab => &[], + BlockKind::MagentaWool => &[], + BlockKind::OrangeWallBanner => &[], + BlockKind::PolishedBlackstone => &[], + BlockKind::LightGrayShulkerBox => &[], + BlockKind::JungleWood => &[], + BlockKind::EndStoneBrickWall => &[], + BlockKind::MossCarpet => &[], + BlockKind::IronBars => &[], + BlockKind::BirchWallSign => &[], + BlockKind::WarpedFenceGate => &[], + BlockKind::DarkOakDoor => &[], + BlockKind::WaxedOxidizedCutCopper => &[], + BlockKind::YellowStainedGlassPane => &[], + BlockKind::DeadTubeCoralBlock => &[], + BlockKind::PlayerHead => &[], + BlockKind::BrownWool => &[], + BlockKind::SpruceLeaves => &[], + BlockKind::Loom => &[], + BlockKind::SmoothRedSandstone => &[], + BlockKind::CobblestoneStairs => &[], + BlockKind::MagentaWallBanner => &[], + BlockKind::AmethystBlock => &[], + BlockKind::PolishedBlackstoneBrickWall => &[], + BlockKind::WaxedWeatheredCutCopper => &[], + BlockKind::PistonHead => &[], + BlockKind::PottedAllium => &[], + BlockKind::SweetBerryBush => &[], + BlockKind::BirchPlanks => &[], + BlockKind::CutSandstone => &[], + BlockKind::MagentaConcretePowder => &[], + BlockKind::LightBlueStainedGlassPane => &[], + BlockKind::LightGrayCandle => &[], + BlockKind::WaxedWeatheredCutCopperStairs => &[], + BlockKind::RawIronBlock => &[], + BlockKind::EndPortalFrame => &[], + BlockKind::Chain => &[], + BlockKind::RedstoneLamp => &[], + BlockKind::SmoothQuartzStairs => &[], + BlockKind::Scaffolding => &[], + BlockKind::FletchingTable => &[], + BlockKind::PointedDripstone => &[], + BlockKind::CutRedSandstone => &[], + BlockKind::HornCoral => &[], + BlockKind::Dispenser => &[], + BlockKind::Snow => &[], + BlockKind::PowderSnow => &[], + BlockKind::BlackCarpet => &[], + BlockKind::DeadFireCoralFan => &[], + BlockKind::CandleCake => &[], + BlockKind::WarpedWallSign => &[], + BlockKind::IronOre => &[], + BlockKind::BirchSapling => &[], + BlockKind::SmoothSandstone => &[], + BlockKind::DeepslateBrickStairs => &[], + BlockKind::SpruceSapling => &[], + BlockKind::CrackedStoneBricks => &[], + BlockKind::OrangeBed => &[], + BlockKind::PolishedAndesite => &[], + BlockKind::GreenWool => &[], + BlockKind::PinkStainedGlass => &[], + BlockKind::DragonHead => &[], + BlockKind::ChiseledSandstone => &[], + BlockKind::PrismarineBrickSlab => &[], + BlockKind::Water => &[], + BlockKind::RawCopperBlock => &[], + BlockKind::RedConcrete => &[], + BlockKind::Sponge => &[], + BlockKind::AzaleaLeaves => &[], + BlockKind::RedShulkerBox => &[], + BlockKind::AcaciaLeaves => &[], + BlockKind::InfestedStone => &[], + BlockKind::DarkOakFence => &[], + BlockKind::SmoothStone => &[], + BlockKind::BlackGlazedTerracotta => &[], + BlockKind::PinkConcrete => &[], + BlockKind::LightGrayStainedGlass => &[], + BlockKind::GreenWallBanner => &[], + BlockKind::SmoothQuartzSlab => &[], + BlockKind::SeaLantern => &[], + BlockKind::PurpurStairs => &[], + BlockKind::BambooSapling => &[], + BlockKind::SpruceSlab => &[], + BlockKind::YellowCandleCake => &[], + BlockKind::CutRedSandstoneSlab => &[], + BlockKind::PottedWarpedRoots => &[], + BlockKind::Calcite => &[], + BlockKind::PrismarineWall => &[], + BlockKind::OakTrapdoor => &[], + BlockKind::PolishedDiorite => &[], + BlockKind::DeadBubbleCoralFan => &[], + BlockKind::YellowWool => &[], + BlockKind::RedNetherBrickSlab => &[], + BlockKind::GreenStainedGlassPane => &[], + BlockKind::ChiseledDeepslate => &[], + BlockKind::PolishedBlackstoneBricks => &[], + BlockKind::PottedDeadBush => &[], + BlockKind::PinkWool => &[], + BlockKind::NetherBrickFence => &[], + BlockKind::DeepslateTileStairs => &[], + BlockKind::WarpedButton => &[], + BlockKind::GrayCandleCake => &[], + BlockKind::QuartzSlab => &[], + BlockKind::PottedFern => &[], + BlockKind::RedSandstone => &[], + BlockKind::LimeStainedGlass => &[], + BlockKind::IronTrapdoor => &[], + BlockKind::Repeater => &[], + BlockKind::DragonEgg => &[], + BlockKind::RedTerracotta => &[], + BlockKind::Air => &[], + BlockKind::EnderChest => &[], + BlockKind::InfestedCrackedStoneBricks => &[], + BlockKind::StoneBrickWall => &[], + BlockKind::WhiteCandle => &[], + BlockKind::Terracotta => &[], + BlockKind::BlueWallBanner => &[], + BlockKind::Lodestone => &[], + BlockKind::PurpleStainedGlassPane => &[], + BlockKind::DripstoneBlock => &[], + BlockKind::LightBlueWool => &[], + BlockKind::CrackedPolishedBlackstoneBricks => &[], + BlockKind::StoneBrickStairs => &[], + BlockKind::GreenBed => &[], + BlockKind::CoarseDirt => &[], + BlockKind::StrippedOakWood => &[], + BlockKind::WarpedSign => &[], + BlockKind::WarpedStairs => &[], + BlockKind::Lectern => &[], + BlockKind::BubbleCoral => &[], + BlockKind::LightGrayConcretePowder => &[], + BlockKind::TwistingVinesPlant => &[], + BlockKind::JungleFenceGate => &[], + BlockKind::AcaciaPressurePlate => &[], + BlockKind::GlowLichen => &[], + BlockKind::Carrots => &[], + BlockKind::SpruceFenceGate => &[], + BlockKind::GrayBanner => &[], + BlockKind::PolishedBlackstoneBrickStairs => &[], + BlockKind::Torch => &[], + BlockKind::PottedDandelion => &[], + BlockKind::OakPlanks => &[], + BlockKind::StrippedCrimsonHyphae => &[], + BlockKind::Spawner => &[], + BlockKind::GrassBlock => &[], + BlockKind::CommandBlock => &[], + BlockKind::CobblestoneWall => &[], + BlockKind::SpruceWood => &[], + BlockKind::LavaCauldron => &[], + BlockKind::DamagedAnvil => &[], + BlockKind::PottedBrownMushroom => &[], + BlockKind::LimeConcretePowder => &[], + BlockKind::GreenCarpet => &[], + BlockKind::ExposedCutCopper => &[], + BlockKind::BirchFenceGate => &[], + BlockKind::AcaciaButton => &[], + BlockKind::WhiteStainedGlassPane => &[], + BlockKind::GraniteStairs => &[], + BlockKind::GlassPane => &[], + BlockKind::GreenBanner => &[], + BlockKind::JungleLeaves => &[], + BlockKind::NetherGoldOre => &[], + BlockKind::StoneButton => &[], + BlockKind::Kelp => &[], + BlockKind::LimeGlazedTerracotta => &[], + BlockKind::DeepslateCopperOre => &[], + BlockKind::StrippedAcaciaWood => &[], + BlockKind::PottedDarkOakSapling => &[], + BlockKind::BlackBed => &[], + BlockKind::AcaciaDoor => &[], + BlockKind::WarpedPressurePlate => &[], + BlockKind::JungleDoor => &[], + BlockKind::PrismarineSlab => &[], + BlockKind::RedWool => &[], + BlockKind::SlimeBlock => &[], + BlockKind::LimeShulkerBox => &[], + BlockKind::SpruceTrapdoor => &[], + BlockKind::Basalt => &[], + BlockKind::CaveAir => &[], + BlockKind::QuartzBricks => &[], + BlockKind::DarkPrismarineSlab => &[], + BlockKind::BeeNest => &[], + BlockKind::CyanWool => &[], + BlockKind::WaxedCopperBlock => &[], + BlockKind::SoulLantern => &[], + BlockKind::CrimsonStem => &[], + BlockKind::Smoker => &[], + BlockKind::Obsidian => &[], + BlockKind::PottedCornflower => &[], + BlockKind::LightGrayStainedGlassPane => &[], + BlockKind::PolishedBlackstonePressurePlate => &[], + BlockKind::BoneBlock => &[], + BlockKind::Dandelion => &[], + BlockKind::StrippedBirchLog => &[], + BlockKind::StrippedJungleLog => &[], + BlockKind::BlueConcretePowder => &[], + BlockKind::PolishedDioriteSlab => &[], + BlockKind::OxeyeDaisy => &[], + BlockKind::SandstoneStairs => &[], + BlockKind::WitherSkeletonWallSkull => &[], + BlockKind::MagentaStainedGlassPane => &[], + BlockKind::PetrifiedOakSlab => &[], + BlockKind::PurpurBlock => &[], + BlockKind::MossyCobblestoneSlab => &[], + BlockKind::Ice => &[], + BlockKind::AncientDebris => &[], + BlockKind::PurpleConcrete => &[], + BlockKind::DeepslateBrickSlab => &[], + BlockKind::DeepslateBrickWall => &[], + BlockKind::PurpleCandleCake => &[], + BlockKind::Beetroots => &[], + BlockKind::PurpleGlazedTerracotta => &[], + BlockKind::CaveVines => &[], + BlockKind::LimeCandleCake => &[], + BlockKind::CopperOre => &[], + BlockKind::CyanShulkerBox => &[], + BlockKind::DarkOakPressurePlate => &[], + BlockKind::StoneSlab => &[], + BlockKind::WhiteTulip => &[], + BlockKind::StrippedWarpedStem => &[], + BlockKind::GrayCarpet => &[], + BlockKind::Sandstone => &[], + BlockKind::QuartzStairs => &[], + BlockKind::PinkStainedGlassPane => &[], + BlockKind::YellowShulkerBox => &[], + BlockKind::Sand => &[], + BlockKind::GreenConcrete => &[], + BlockKind::SoulSoil => &[], + BlockKind::EndRod => &[], + BlockKind::FireCoralWallFan => &[], + BlockKind::PolishedGraniteStairs => &[], + BlockKind::PolishedDeepslateStairs => &[], + BlockKind::BrewingStand => &[], + BlockKind::SandstoneSlab => &[], + BlockKind::DeepslateRedstoneOre => &[], + BlockKind::LimeCarpet => &[], + BlockKind::AcaciaStairs => &[], + BlockKind::BigDripleaf => &[], + BlockKind::SpruceWallSign => &[], + BlockKind::LightGrayCarpet => &[], + BlockKind::PottedWitherRose => &[], + BlockKind::Netherrack => &[], + BlockKind::KelpPlant => &[], + BlockKind::Dirt => &[], + BlockKind::CyanStainedGlass => &[], + BlockKind::LimeBed => &[], + BlockKind::CutCopperStairs => &[], + BlockKind::WaxedOxidizedCopper => &[], + BlockKind::BrownShulkerBox => &[], + BlockKind::AcaciaPlanks => &[], + BlockKind::PurpleTerracotta => &[], + BlockKind::RedstoneOre => &[], + BlockKind::TurtleEgg => &[], + BlockKind::PurpleStainedGlass => &[], + BlockKind::OakFenceGate => &[], + BlockKind::RepeatingCommandBlock => &[], + BlockKind::CobblestoneSlab => &[], + BlockKind::PinkCandle => &[], + BlockKind::BrownTerracotta => &[], + BlockKind::CopperBlock => &[], + BlockKind::LightGrayGlazedTerracotta => &[], + BlockKind::Mycelium => &[], + BlockKind::PolishedDioriteStairs => &[], + BlockKind::LapisBlock => &[], + BlockKind::OxidizedCutCopper => &[], + BlockKind::Furnace => &[], + BlockKind::MagmaBlock => &[], + BlockKind::Ladder => &[], + BlockKind::BlueGlazedTerracotta => &[], + BlockKind::WaxedCutCopperSlab => &[], + BlockKind::WitherRose => &[], + BlockKind::AcaciaTrapdoor => &[], + BlockKind::OrangeStainedGlassPane => &[], + BlockKind::BlackCandleCake => &[], + BlockKind::PolishedBlackstoneSlab => &[], + BlockKind::ChippedAnvil => &[], + BlockKind::BirchLeaves => &[], + BlockKind::DeepslateTiles => &[], + BlockKind::Rail => &[], + BlockKind::BirchFence => &[], + BlockKind::LightBlueStainedGlass => &[], + BlockKind::MossyStoneBrickStairs => &[], + BlockKind::PottedAzaleaBush => &[], + BlockKind::FireCoral => &[], + BlockKind::BirchWood => &[], + BlockKind::WhiteBed => &[], + BlockKind::Shroomlight => &[], + BlockKind::StrippedDarkOakLog => &[], + BlockKind::DaylightDetector => &[], + BlockKind::OxidizedCopper => &[], + BlockKind::WeatheredCutCopper => &[], + BlockKind::LightBlueTerracotta => &[], + BlockKind::DeadFireCoralBlock => &[], + BlockKind::EndStoneBrickStairs => &[], + BlockKind::CrackedNetherBricks => &[], + BlockKind::MagentaBed => &[], + BlockKind::BlackWool => &[], + BlockKind::StructureBlock => &[], + BlockKind::WhiteGlazedTerracotta => &[], + BlockKind::PurpleBanner => &[], + BlockKind::ChiseledRedSandstone => &[], + BlockKind::Glass => &[], + BlockKind::PottedWhiteTulip => &[], + BlockKind::LightGrayCandleCake => &[], + BlockKind::SmoothSandstoneSlab => &[], + BlockKind::EndStone => &[], + BlockKind::CrackedDeepslateBricks => &[], + BlockKind::DarkOakFenceGate => &[], + BlockKind::BlastFurnace => &[], + BlockKind::CrimsonRoots => &[], + BlockKind::Bamboo => &[], + BlockKind::SoulSand => &[], + BlockKind::BrownStainedGlass => &[], + BlockKind::PottedAcaciaSapling => &[], + BlockKind::FloweringAzaleaLeaves => &[], + BlockKind::WhiteStainedGlass => &[], + BlockKind::MossyCobblestone => &[], + BlockKind::GrayConcrete => &[], + BlockKind::JunglePressurePlate => &[], + BlockKind::LimeWool => &[], + BlockKind::SprucePlanks => &[], + BlockKind::LimeCandle => &[], + BlockKind::LightBlueBed => &[], + BlockKind::BubbleCoralBlock => &[], + BlockKind::CrimsonStairs => &[], + BlockKind::BlueShulkerBox => &[], + BlockKind::OxidizedCutCopperStairs => &[], + BlockKind::BlackWallBanner => &[], + BlockKind::InfestedStoneBricks => &[], + BlockKind::PinkConcretePowder => &[], + BlockKind::Cocoa => &[], + BlockKind::PurpleCandle => &[], + BlockKind::ChorusPlant => &[], + BlockKind::WaxedCutCopper => &[], + BlockKind::GrayWool => &[], + BlockKind::WarpedTrapdoor => &[], + BlockKind::CarvedPumpkin => &[], + BlockKind::StrippedBirchWood => &[], + BlockKind::Potatoes => &[], + BlockKind::OrangeCarpet => &[], + BlockKind::EndGateway => &[], + BlockKind::Light => &[], + BlockKind::WarpedRoots => &[], + BlockKind::CyanStainedGlassPane => &[], + BlockKind::EmeraldOre => &[], + BlockKind::PolishedBlackstoneBrickSlab => &[], + BlockKind::DirtPath => &[], + BlockKind::DeadHornCoralWallFan => &[], + BlockKind::Lava => &[], + BlockKind::GrayBed => &[], + BlockKind::TripwireHook => &[], + BlockKind::WaxedExposedCutCopper => &[], + BlockKind::SmoothRedSandstoneSlab => &[], + BlockKind::CrimsonNylium => &[], + BlockKind::OakLog => &[], + BlockKind::WeepingVines => &[], + BlockKind::PolishedBasalt => &[], + BlockKind::LightWeightedPressurePlate => &[], + BlockKind::SculkSensor => &[], + BlockKind::BlackstoneStairs => &[], + BlockKind::StoneBricks => &[], + BlockKind::BrownConcrete => &[], + BlockKind::CyanBed => &[], + BlockKind::AcaciaWallSign => &[], + BlockKind::RedConcretePowder => &[], + BlockKind::Glowstone => &[], + BlockKind::CrimsonPressurePlate => &[], + BlockKind::BlueCandleCake => &[], + BlockKind::DeepslateDiamondOre => &[], + BlockKind::OakFence => &[], + BlockKind::HeavyWeightedPressurePlate => &[], + BlockKind::LimeWallBanner => &[], + BlockKind::DeadBush => &[], + BlockKind::DeadBrainCoral => &[], + BlockKind::Peony => &[], + BlockKind::CyanBanner => &[], + BlockKind::PottedOakSapling => &[], + BlockKind::BirchSign => &[], + BlockKind::WaxedOxidizedCutCopperSlab => &[], + BlockKind::Grindstone => &[], + BlockKind::OakSapling => &[], + BlockKind::ChainCommandBlock => &[], + BlockKind::PinkBed => &[], + BlockKind::DarkOakWallSign => &[], + BlockKind::DarkOakSapling => &[], + BlockKind::YellowConcrete => &[], + BlockKind::IronDoor => &[], + BlockKind::GraniteSlab => &[], + BlockKind::SpruceLog => &[], + BlockKind::WaterCauldron => &[], + BlockKind::YellowTerracotta => &[], + BlockKind::LimeTerracotta => &[], + BlockKind::DeadBubbleCoralBlock => &[], + BlockKind::CartographyTable => &[], + BlockKind::InfestedChiseledStoneBricks => &[], + BlockKind::DragonWallHead => &[], + BlockKind::MelonStem => &[], + BlockKind::RedStainedGlass => &[], + BlockKind::SoulCampfire => &[], + BlockKind::DarkOakSlab => &[], + BlockKind::PinkShulkerBox => &[], + BlockKind::DeepslateCoalOre => &[], + BlockKind::BrainCoral => &[], + BlockKind::LightGrayBed => &[], + BlockKind::CutCopper => &[], + BlockKind::PurpurPillar => &[], + BlockKind::CrimsonFenceGate => &[], + BlockKind::BuddingAmethyst => &[], + BlockKind::Cornflower => &[], + BlockKind::BrickWall => &[], + BlockKind::StrippedCrimsonStem => &[], + BlockKind::PlayerWallHead => &[], + BlockKind::HoneycombBlock => &[], + BlockKind::OrangeCandle => &[], + BlockKind::RedstoneTorch => &[], + BlockKind::WitherSkeletonSkull => &[], + BlockKind::QuartzPillar => &[], + BlockKind::LimeBanner => &[], + BlockKind::JunglePlanks => &[], + BlockKind::SpruceFence => &[], + BlockKind::WeepingVinesPlant => &[], + BlockKind::WaxedExposedCopper => &[], + BlockKind::DeadBrainCoralWallFan => &[], + BlockKind::Cake => &[], + BlockKind::RedBanner => &[], + BlockKind::RedCandle => &[], + BlockKind::PolishedDeepslateWall => &[], + BlockKind::SporeBlossom => &[], + BlockKind::Vine => &[], + BlockKind::PolishedAndesiteSlab => &[], + BlockKind::OrangeStainedGlass => &[], + BlockKind::JungleButton => &[], + BlockKind::OakSign => &[], + BlockKind::PoweredRail => &[], + BlockKind::MushroomStem => &[], + BlockKind::AttachedPumpkinStem => &[], + BlockKind::LimeStainedGlassPane => &[], + BlockKind::LightBlueShulkerBox => &[], + BlockKind::DeepslateBricks => &[], + BlockKind::Fire => &[], + BlockKind::WhiteTerracotta => &[], + BlockKind::BrickSlab => &[], + BlockKind::PottedJungleSapling => &[], + BlockKind::JungleStairs => &[], + BlockKind::DeadHornCoral => &[], + BlockKind::AndesiteWall => &[], + BlockKind::Wheat => &[], + BlockKind::Bedrock => &[], + BlockKind::SprucePressurePlate => &[], + BlockKind::FloweringAzalea => &[], + BlockKind::RawGoldBlock => &[], + BlockKind::MovingPiston => &[], + BlockKind::PottedLilyOfTheValley => &[], + BlockKind::BrownStainedGlassPane => &[], + BlockKind::RedstoneWire => &[], + BlockKind::WetSponge => &[], + BlockKind::LightBlueConcretePowder => &[], + BlockKind::OakWood => &[], + BlockKind::OakDoor => &[], + BlockKind::VoidAir => &[], + BlockKind::CrimsonPlanks => &[], + BlockKind::OakStairs => &[], + BlockKind::FrostedIce => &[], + BlockKind::Jukebox => &[], + BlockKind::JungleSapling => &[], + BlockKind::Cobweb => &[], + BlockKind::DeadBubbleCoral => &[], + BlockKind::MossyStoneBrickWall => &[], + BlockKind::Andesite => &[], + BlockKind::LightningRod => &[], + BlockKind::MagentaConcrete => &[], + BlockKind::WarpedFungus => &[], + BlockKind::LightBlueCandle => &[], + BlockKind::GrayTerracotta => &[], + BlockKind::RedTulip => &[], + BlockKind::YellowConcretePowder => &[], + BlockKind::ChiseledNetherBricks => &[], + BlockKind::PolishedDeepslate => &[], + BlockKind::PurpleShulkerBox => &[], + BlockKind::PottedBirchSapling => &[], + BlockKind::MossyCobblestoneStairs => &[], + BlockKind::PolishedAndesiteStairs => &[], + BlockKind::SmithingTable => &[], + BlockKind::MagentaCandle => &[], + BlockKind::DeadBubbleCoralWallFan => &[], + BlockKind::BrownGlazedTerracotta => &[], + BlockKind::CutCopperSlab => &[], + BlockKind::MossBlock => &[], + BlockKind::CrimsonTrapdoor => &[], + BlockKind::PinkBanner => &[], + BlockKind::DeadFireCoralWallFan => &[], + BlockKind::BigDripleafStem => &[], + BlockKind::RedSandstoneStairs => &[], + BlockKind::TintedGlass => &[], + BlockKind::PurpleCarpet => &[], + BlockKind::CrimsonFence => &[], + BlockKind::BlueCarpet => &[], + BlockKind::PolishedDeepslateSlab => &[], + BlockKind::SpruceSign => &[], + BlockKind::DeepslateTileWall => &[], + BlockKind::JungleLog => &[], + BlockKind::WeatheredCutCopperSlab => &[], + BlockKind::NetherBrickStairs => &[], + BlockKind::DarkOakPlanks => &[], + BlockKind::GoldBlock => &[], + BlockKind::Piston => &[], + BlockKind::Seagrass => &[], + BlockKind::PottedOxeyeDaisy => &[], + BlockKind::Campfire => &[], + BlockKind::WarpedNylium => &[], + BlockKind::Beehive => &[], + BlockKind::PolishedGranite => &[], + BlockKind::OrangeTulip => &[], + BlockKind::BlackStainedGlassPane => &[], + BlockKind::SmoothSandstoneStairs => &[], + BlockKind::GreenGlazedTerracotta => &[], + BlockKind::Grass => &[], + BlockKind::ChiseledQuartzBlock => &[], + BlockKind::WhiteWallBanner => &[], + BlockKind::Cobblestone => &[], + BlockKind::BlackstoneSlab => &[], + BlockKind::LightBlueGlazedTerracotta => &[], + BlockKind::EndStoneBrickSlab => &[], + BlockKind::Target => &[], + BlockKind::PolishedBlackstoneStairs => &[], + BlockKind::WarpedHyphae => &[], + BlockKind::StrippedOakLog => &[], + BlockKind::BrickStairs => &[], + BlockKind::CutSandstoneSlab => &[], + BlockKind::YellowBed => &[], + BlockKind::StickyPiston => &[], + BlockKind::TubeCoralWallFan => &[], + BlockKind::Tuff => &[], + BlockKind::OrangeConcrete => &[], + BlockKind::AcaciaSign => &[], + BlockKind::BlackConcrete => &[], + BlockKind::BirchTrapdoor => &[], + BlockKind::GrayStainedGlass => &[], + BlockKind::TubeCoralBlock => &[], + BlockKind::CrimsonWallSign => &[], + BlockKind::ShulkerBox => &[], + BlockKind::BrainCoralBlock => &[], + BlockKind::JungleSlab => &[], + BlockKind::HangingRoots => &[], + BlockKind::PottedWarpedFungus => &[], + BlockKind::Podzol => &[], + BlockKind::PottedFloweringAzaleaBush => &[], + BlockKind::BrownBed => &[], + BlockKind::WhiteWool => &[], + BlockKind::LapisOre => &[], + BlockKind::SpruceStairs => &[], + BlockKind::CoalBlock => &[], + BlockKind::DiamondOre => &[], + BlockKind::SnowBlock => &[], + BlockKind::WarpedFence => &[], + BlockKind::PottedBamboo => &[], + BlockKind::DarkOakLog => &[], + BlockKind::LightGrayWallBanner => &[], + BlockKind::WallTorch => &[], + BlockKind::SandstoneWall => &[], + BlockKind::BrownCandle => &[], + BlockKind::Azalea => &[], + BlockKind::DeadFireCoral => &[], + BlockKind::PinkWallBanner => &[], + BlockKind::ExposedCutCopperSlab => &[], + BlockKind::DiamondBlock => &[], + BlockKind::Lever => &[], + BlockKind::RedMushroom => &[], + BlockKind::PottedSpruceSapling => &[], + BlockKind::RedstoneBlock => &[], + BlockKind::PolishedGraniteSlab => &[], + BlockKind::WhiteShulkerBox => &[], + BlockKind::DioriteSlab => &[], + BlockKind::Hopper => &[], + BlockKind::CrimsonHyphae => &[], + BlockKind::ChorusFlower => &[], + BlockKind::RedstoneWallTorch => &[], + BlockKind::GrayWallBanner => &[], + BlockKind::MediumAmethystBud => &[], + BlockKind::BrownWallBanner => &[], + BlockKind::NetheriteBlock => &[], + BlockKind::RedCandleCake => &[], + BlockKind::BirchSlab => &[], + BlockKind::BubbleCoralWallFan => &[], + BlockKind::BlueBed => &[], + BlockKind::PolishedBlackstoneWall => &[], + BlockKind::GreenConcretePowder => &[], + BlockKind::PolishedBlackstoneButton => &[], + BlockKind::NetherPortal => &[], + BlockKind::PrismarineStairs => &[], + BlockKind::OrangeCandleCake => &[], + BlockKind::SugarCane => &[], + BlockKind::PottedRedTulip => &[], + BlockKind::JungleFence => &[], + BlockKind::DeepslateIronOre => &[], + BlockKind::EnchantingTable => &[], + BlockKind::GreenTerracotta => &[], + BlockKind::BlackShulkerBox => &[], + BlockKind::Beacon => &[], + BlockKind::BrownConcretePowder => &[], + BlockKind::Blackstone => &[], + BlockKind::InfestedDeepslate => &[], } } } diff --git a/libcraft/blocks/src/block_data.rs b/libcraft/blocks/src/block_data.rs deleted file mode 100644 index 10d3fe618..000000000 --- a/libcraft/blocks/src/block_data.rs +++ /dev/null @@ -1,577 +0,0 @@ -use crate::data::{RawBlockStateProperties, ValidProperties}; -use libcraft_core::block::{ - AttachedFace, Axis, BambooLeaves, BedPart, BellAttachment, BlockFace, BlockHalf, ChestType, - ComparatorMode, Instrument, Orientation, PistonType, RailShape, SlabType, StairShape, - StructureBlockMode, WallConnection, -}; -use libcraft_macros::BlockData; - -/// Represents the data (properties) of a block. -/// -/// Types implementing this trait mirror Bukkit's `BlockData` interface. -/// -/// This trait is internal; don't try implementing it for your -/// own types. -pub trait BlockData { - fn from_raw(raw: &RawBlockStateProperties, valid: &'static ValidProperties) -> Option - where - Self: Sized; - - fn apply(&self, raw: &mut RawBlockStateProperties); -} - -/// Generalized BlockData structs - -/// A block that has an "age" property that -/// represents crop growth. -/// -/// Fire also has this property. -#[derive(Debug, BlockData)] -pub struct Ageable { - age: u8, - valid_properties: &'static ValidProperties, -} - -/// A block that can be powered with a redstone -/// signal. -#[derive(Debug, BlockData)] -pub struct AnaloguePowerable { - power: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Attachable { - attached: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Bisected { - half: BlockHalf, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Directional { - facing: BlockFace, - valid_properties: &'static ValidProperties, -} - -/// Represents the face to which a lever or -/// button is stuck. -#[derive(Debug, BlockData)] -pub struct FaceAttachable { - attached_face: AttachedFace, - valid_properties: &'static ValidProperties, -} - -/// Represents the fluid level contained -/// within this block. -#[derive(Debug, BlockData)] -pub struct Levelled { - level: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Lightable { - lit: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct MultipleFacing { - down: bool, - east: bool, - north: bool, - south: bool, - west: bool, - up: bool, - valid_properties: &'static ValidProperties, -} - -/// Denotes whether the block can be opened. -#[derive(Debug, BlockData)] -pub struct Openable { - open: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Orientable { - axis: Axis, - valid_properties: &'static ValidProperties, -} - -/// Indicates whether block is in powered state -#[derive(Debug, BlockData)] -pub struct Powerable { - powered: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Rail { - rail_shape: RailShape, - valid_properties: &'static ValidProperties, -} - -/// Current rotation of the block -#[derive(Debug, BlockData)] -pub struct Rotatable { - rotation: BlockFace, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Snowable { - snowy: bool, - valid_properties: &'static ValidProperties, -} - -/// Whether the block has water in it -#[derive(Debug, BlockData)] -pub struct Waterlogged { - waterlogged: bool, - valid_properties: &'static ValidProperties, -} - -// Specific BlockData structs - -#[derive(Debug, BlockData)] -pub struct Bamboo { - age: u8, - stage: u8, - bamboo_leaves: BambooLeaves, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Bed { - facing: BlockFace, - part: BedPart, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Beehive { - facing: BlockFace, - honey_level: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Bell { - facing: BlockFace, - powered: bool, - bell_attachment: BellAttachment, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct BrewingStand { - has_bottle_0: bool, - has_bottle_1: bool, - has_bottle_2: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct BubbleColumn { - drag: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Cake { - bites: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Campfire { - facing: BlockFace, - lit: bool, - waterlogged: bool, - signal_fire: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Chain { - facing: BlockFace, - waterlogged: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Chest { - facing: BlockFace, - waterlogged: bool, - chest_type: ChestType, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Cocoa { - age: u8, - facing: BlockFace, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct CommandBlock { - facing: BlockFace, - conditional: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Comparator { - facing: BlockFace, - powered: bool, - comparator_mode: ComparatorMode, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct CoralWallFan { - facing: BlockFace, - waterlogged: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct DaylightDetector { - power: u8, - inverted: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Dispenser { - facing: BlockFace, - triggered: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Door { - half: BlockHalf, - facing: BlockFace, - open: bool, - powered: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct EndPortalFrame { - facing: BlockFace, - eye: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Farmland { - moisture: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Fence { - waterlogged: bool, - down: bool, - east: bool, - north: bool, - south: bool, - west: bool, - up: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Furnace { - facing: BlockFace, - lit: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Gate { - facing: BlockFace, - open: bool, - powered: bool, - in_wall: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct GlassPane { - facing: BlockFace, - waterlogged: bool, - down: bool, - east: bool, - north: bool, - south: bool, - west: bool, - up: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Grindstone { - facing: BlockFace, - attached_face: AttachedFace, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Hopper { - facing: BlockFace, - enabled: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Jigsaw { - orientation: Orientation, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct JukeBox { - has_record: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Ladder { - facing: BlockFace, - waterlogged: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Lantern { - waterlogged: bool, - hanging: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Leaves { - distance: u8, - persistent: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Lectern { - facing: BlockFace, - powered: bool, - has_book: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct NoteBlock { - powered: bool, - instrument: Instrument, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Observer { - facing: BlockFace, - powered: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Piston { - facing: BlockFace, - extended: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct PistonHead { - facing: BlockFace, - piston_type: PistonType, - short: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct RedstoneRail { - powered: bool, - rail_shape: RailShape, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct RedstoneWallTorch { - facing: BlockFace, - lit: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct RedstoneWire { - power: u8, - north: bool, - east: bool, - south: bool, - west: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Repeater { - facing: BlockFace, - powered: bool, - delay: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct RespawnAnchor { - charges: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Sapling { - stage: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Scaffolding { - waterlogged: bool, - bottom: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct SeaPickle { - waterlogged: bool, - pickles: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Sign { - rotation: BlockFace, - waterlogged: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Slab { - waterlogged: bool, - slab_type: SlabType, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Snow { - layers: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Stairs { - half: BlockHalf, - facing: BlockFace, - waterlogged: bool, - stair_shape: StairShape, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct StructureBlock { - structure_block_mode: StructureBlockMode, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Switch { - facing: BlockFace, - attached_face: AttachedFace, - powered: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct TechnicalPiston { - facing: BlockFace, - piston_type: PistonType, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Tnt { - unstable: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct TrapDoor { - half: BlockHalf, - facing: BlockFace, - open: bool, - powered: bool, - waterlogged: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Tripwire { - attached: bool, - powered: bool, - down: bool, - east: bool, - north: bool, - south: bool, - west: bool, - up: bool, - disarmed: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct TripwireHook { - attached: bool, - facing: BlockFace, - powered: bool, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct TurtleEgg { - hatch: u8, - eggs: u8, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct Wall { - waterlogged: bool, - wall_north: WallConnection, - wall_east: WallConnection, - wall_south: WallConnection, - wall_west: WallConnection, - wall_up: WallConnection, - valid_properties: &'static ValidProperties, -} - -#[derive(Debug, BlockData)] -pub struct WallSign { - facing: BlockFace, - waterlogged: bool, - valid_properties: &'static ValidProperties, -} - -// https://hub.spigotmc.org/javadocs/spigot/org/bukkit/block/data/BlockData.html diff --git a/feather/blocks/src/categories.rs b/libcraft/blocks/src/categories.rs similarity index 98% rename from feather/blocks/src/categories.rs rename to libcraft/blocks/src/categories.rs index 16920fddf..e58dcaa05 100644 --- a/feather/blocks/src/categories.rs +++ b/libcraft/blocks/src/categories.rs @@ -1,5 +1,4 @@ -use crate::{BlockId, BlockKind}; -use libcraft_blocks::SimplifiedBlockKind; +use crate::{BlockId, BlockKind, SimplifiedBlockKind}; #[derive(Copy, Clone, Debug, Eq, PartialEq)] pub enum PlacementType { diff --git a/libcraft/blocks/src/data.rs b/libcraft/blocks/src/data.rs deleted file mode 100644 index cb4fd4a1c..000000000 --- a/libcraft/blocks/src/data.rs +++ /dev/null @@ -1,415 +0,0 @@ -use std::{collections::HashMap, str::FromStr}; - -use crate::BlockKind; -use libcraft_core::block::{ - AttachedFace, Axis, BambooLeaves, BedPart, BellAttachment, BlockFace, BlockHalf, ChestType, - ComparatorMode, DoorHinge, Instrument, Orientation, PistonType, RailShape, RedstoneConnection, - SlabType, StairHalf, StairShape, StructureBlockMode, WallConnection, -}; -use serde::{Deserialize, Serialize}; - -/// Defines all possible data associated with a block state. -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)] -pub struct RawBlockState { - /// Block state ID - pub id: u16, - pub kind: BlockKind, - /// Whether this is the default state for this block kind - pub default: bool, - pub properties: RawBlockStateProperties, -} - -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)] -pub struct RawBlockStateProperties { - pub facing: Option, - pub bamboo_leaves: Option, - pub age: Option, - pub stage: Option, - pub rotation: Option, - pub open: Option, - pub occupied: Option, - pub part: Option, - pub honey_level: Option, - pub bell_attachment: Option, - pub powered: Option, - pub lit: Option, - pub axis: Option, - pub has_bottle_0: Option, - pub has_bottle_1: Option, - pub has_bottle_2: Option, - pub drag: Option, - pub attached_face: Option, - pub signal_fire: Option, - pub waterlogged: Option, - pub bites: Option, - pub level: Option, - pub chest_type: Option, - pub down: Option, - pub east: Option, - pub north: Option, - pub south: Option, - pub up: Option, - pub west: Option, - pub conditional: Option, - pub inverted: Option, - pub power: Option, - pub triggered: Option, - pub hinge: Option, - pub half: Option, - pub eye: Option, - pub moisture: Option, - pub in_wall: Option, - pub snowy: Option, - pub enabled: Option, - pub orientation: Option, - pub has_record: Option, - pub hanging: Option, - pub distance: Option, - pub persistent: Option, - pub has_book: Option, - pub instrument: Option, - pub note: Option, - pub extended: Option, - pub piston_type: Option, - pub short: Option, - pub rail_shape: Option, - pub comparator_mode: Option, - pub dust_east: Option, - pub dust_north: Option, - pub dust_south: Option, - pub dust_west: Option, - pub delay: Option, - pub locked: Option, - pub charges: Option, - pub bottom: Option, - pub pickles: Option, - pub slab_type: Option, - pub layers: Option, - pub stair_half: Option, - pub stair_shape: Option, - pub structure_block_mode: Option, - pub unstable: Option, - pub attached: Option, - pub disarmed: Option, - pub eggs: Option, - pub hatch: Option, - pub wall_east: Option, - pub wall_north: Option, - pub wall_south: Option, - pub wall_up: Option, - pub wall_west: Option, -} - -/// The Minecraft data report read from -/// `blocks.json`. -#[derive(Debug, Serialize, Deserialize)] -pub struct BlockReport { - #[serde(flatten)] - pub blocks: HashMap, -} - -#[derive(Debug, Serialize, Deserialize)] -pub struct BlockReportEntry { - pub states: Vec, - #[serde(default)] - pub properties: HashMap>, -} - -impl BlockReportEntry { - fn properties(&self, name: &str) -> Vec - where - ::Err: std::fmt::Debug, - { - if let Some(vec) = self.properties.get(name) { - vec.iter().map(|s| T::from_str(s).ok()).flatten().collect() - } else { - Vec::new() - } - } - pub fn to_raw_properties(&self, block_kind: BlockKind) -> RawBlockProperties { - RawBlockProperties { - kind: block_kind, - valid_properties: ValidProperties { - facing: self.properties("facing"), - bamboo_leaves: self.properties("leaves"), - age: self.properties("age"), - stage: self.properties("stage"), - rotation: self.properties("rotation"), - open: self.properties("open"), - occupied: self.properties("occupied"), - part: self.properties("part"), - honey_level: self.properties("honey_level"), - bell_attachment: self.properties("attachment"), - powered: self.properties("powered"), - lit: self.properties("lit"), - axis: self.properties("axis"), - has_bottle_0: self.properties("has_bottle_0"), - has_bottle_1: self.properties("has_bottle_1"), - has_bottle_2: self.properties("has_bottle_2"), - drag: self.properties("drag"), - attached_face: self.properties("face"), - signal_fire: self.properties("signal_fire"), - waterlogged: self.properties("waterlogged"), - bites: self.properties("bites"), - level: self.properties("level"), - chest_type: self.properties("type"), - down: self.properties("down"), - east: self.properties("east"), - north: self.properties("north"), - south: self.properties("south"), - up: self.properties("up"), - west: self.properties("west"), - conditional: self.properties("conditional"), - inverted: self.properties("inverted"), - power: self.properties("power"), - triggered: self.properties("triggered"), - hinge: self.properties("hinge"), - half: self.properties("half"), - eye: self.properties("eye"), - moisture: self.properties("moisture"), - in_wall: self.properties("in_wall"), - snowy: self.properties("snowy"), - enabled: self.properties("enabled"), - orientation: self.properties("orientation"), - has_record: self.properties("has_record"), - hanging: self.properties("hanging"), - distance: self.properties("distance"), - persistent: self.properties("persistent"), - has_book: self.properties("has_book"), - instrument: self.properties("instrument"), - note: self.properties("note"), - extended: self.properties("extended"), - piston_type: self.properties("type"), - short: self.properties("short"), - rail_shape: self.properties("shape"), - comparator_mode: self.properties("mode"), - dust_east: self.properties("east"), - dust_north: self.properties("north"), - dust_south: self.properties("south"), - dust_west: self.properties("west"), - delay: self.properties("delay"), - locked: self.properties("locked"), - charges: self.properties("charges"), - bottom: self.properties("bottom"), - pickles: self.properties("pickles"), - slab_type: self.properties("type"), - layers: self.properties("layers"), - stair_half: self.properties("half"), - stair_shape: self.properties("shape"), - structure_block_mode: self.properties("mode"), - unstable: self.properties("unstable"), - attached: self.properties("attached"), - disarmed: self.properties("disarmed"), - eggs: self.properties("eggs"), - hatch: self.properties("hatch"), - wall_east: self.properties("east"), - wall_north: self.properties("north"), - wall_south: self.properties("south"), - wall_up: self.properties("up"), - wall_west: self.properties("west"), - }, - } - } -} - -#[derive(Debug, Serialize, Deserialize)] -pub struct BlockReportState { - #[serde(default)] - pub properties: HashMap, - pub id: u16, - #[serde(default)] - pub default: bool, -} - -impl BlockReportState { - fn property(&self, name: &str) -> Option { - let s = self.properties.get(name)?; - T::from_str(s).ok() - } - - pub fn to_raw_state(&self, block_kind: BlockKind) -> RawBlockState { - RawBlockState { - id: self.id, - kind: block_kind, - default: self.default, - properties: RawBlockStateProperties { - facing: self.property("facing"), - bamboo_leaves: self.property("leaves"), - age: self.property("age"), - stage: self.property("stage"), - rotation: self.property("rotation"), - open: self.property("open"), - occupied: self.property("occupied"), - part: self.property("part"), - honey_level: self.property("honey_level"), - bell_attachment: self.property("attachment"), - powered: self.property("powered"), - lit: self.property("lit"), - axis: self.property("axis"), - has_bottle_0: self.property("has_bottle_0"), - has_bottle_1: self.property("has_bottle_1"), - has_bottle_2: self.property("has_bottle_2"), - drag: self.property("drag"), - attached_face: self.property("face"), - signal_fire: self.property("signal_fire"), - waterlogged: self.property("waterlogged"), - bites: self.property("bites"), - level: self.property("level"), - chest_type: self.property("type"), - down: self.property("down"), - east: self.property("east"), - north: self.property("north"), - south: self.property("south"), - up: self.property("up"), - west: self.property("west"), - conditional: self.property("conditional"), - inverted: self.property("inverted"), - power: self.property("power"), - triggered: self.property("triggered"), - hinge: self.property("hinge"), - half: self.property("half"), - eye: self.property("eye"), - moisture: self.property("moisture"), - in_wall: self.property("in_wall"), - snowy: self.property("snowy"), - enabled: self.property("enabled"), - orientation: self.property("orientation"), - has_record: self.property("has_record"), - hanging: self.property("hanging"), - distance: self.property("distance"), - persistent: self.property("persistent"), - has_book: self.property("has_book"), - instrument: self.property("instrument"), - note: self.property("note"), - extended: self.property("extended"), - piston_type: self.property("type"), - short: self.property("short"), - rail_shape: self.property("shape"), - comparator_mode: self.property("mode"), - dust_east: self.property("east"), - dust_north: self.property("north"), - dust_south: self.property("south"), - dust_west: self.property("west"), - delay: self.property("delay"), - locked: self.property("locked"), - charges: self.property("charges"), - bottom: self.property("bottom"), - pickles: self.property("pickles"), - slab_type: self.property("type"), - layers: self.property("layers"), - stair_half: self.property("half"), - stair_shape: self.property("shape"), - structure_block_mode: self.property("mode"), - unstable: self.property("unstable"), - attached: self.property("attached"), - disarmed: self.property("disarmed"), - eggs: self.property("eggs"), - hatch: self.property("hatch"), - wall_east: self.property("east"), - wall_north: self.property("north"), - wall_south: self.property("south"), - wall_up: self.property("up"), - wall_west: self.property("west"), - }, - } - } -} - -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)] -pub struct RawBlockProperties { - pub kind: BlockKind, - pub valid_properties: ValidProperties, -} - -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)] -pub struct ValidProperties { - pub facing: Vec, - pub bamboo_leaves: Vec, - pub age: Vec, - pub stage: Vec, - pub rotation: Vec, - pub open: Vec, - pub occupied: Vec, - pub part: Vec, - pub honey_level: Vec, - pub bell_attachment: Vec, - pub powered: Vec, - pub lit: Vec, - pub axis: Vec, - pub has_bottle_0: Vec, - pub has_bottle_1: Vec, - pub has_bottle_2: Vec, - pub drag: Vec, - pub attached_face: Vec, - pub signal_fire: Vec, - pub waterlogged: Vec, - pub bites: Vec, - pub level: Vec, - pub chest_type: Vec, - pub down: Vec, - pub east: Vec, - pub north: Vec, - pub south: Vec, - pub up: Vec, - pub west: Vec, - pub conditional: Vec, - pub inverted: Vec, - pub power: Vec, - pub triggered: Vec, - pub hinge: Vec, - pub half: Vec, - pub eye: Vec, - pub moisture: Vec, - pub in_wall: Vec, - pub snowy: Vec, - pub enabled: Vec, - pub orientation: Vec, - pub has_record: Vec, - pub hanging: Vec, - pub distance: Vec, - pub persistent: Vec, - pub has_book: Vec, - pub instrument: Vec, - pub note: Vec, - pub extended: Vec, - pub piston_type: Vec, - pub short: Vec, - pub rail_shape: Vec, - pub comparator_mode: Vec, - pub dust_east: Vec, - pub dust_north: Vec, - pub dust_south: Vec, - pub dust_west: Vec, - pub delay: Vec, - pub locked: Vec, - pub charges: Vec, - pub bottom: Vec, - pub pickles: Vec, - pub slab_type: Vec, - pub layers: Vec, - pub stair_half: Vec, - pub stair_shape: Vec, - pub structure_block_mode: Vec, - pub unstable: Vec, - pub attached: Vec, - pub disarmed: Vec, - pub eggs: Vec, - pub hatch: Vec, - pub wall_east: Vec, - pub wall_north: Vec, - pub wall_south: Vec, - pub wall_up: Vec, - pub wall_west: Vec, -} - -#[cfg(test)] -mod tests { - use std::mem::size_of; - - use super::*; - - #[test] - fn block_sizes() { - println!("Raw block state size: {} bytes", size_of::()); - } -} diff --git a/libcraft/blocks/src/directions.rs b/libcraft/blocks/src/directions.rs new file mode 100644 index 000000000..54a6d3bf1 --- /dev/null +++ b/libcraft/blocks/src/directions.rs @@ -0,0 +1,162 @@ +// use crate::blocks::{AxisXyz, FacingCardinalAndDown, FacingCubic}; +// use vek::Vec3; +// +// impl FacingCardinal { +// pub fn opposite(self) -> FacingCardinal { +// match self { +// FacingCardinal::North => FacingCardinal::South, +// FacingCardinal::East => FacingCardinal::West, +// FacingCardinal::South => FacingCardinal::North, +// FacingCardinal::West => FacingCardinal::East, +// } +// } +// +// pub fn right(self) -> FacingCardinal { +// match self { +// FacingCardinal::North => FacingCardinal::East, +// FacingCardinal::East => FacingCardinal::South, +// FacingCardinal::South => FacingCardinal::West, +// FacingCardinal::West => FacingCardinal::North, +// } +// } +// +// pub fn left(self) -> FacingCardinal { +// match self { +// FacingCardinal::North => FacingCardinal::West, +// FacingCardinal::East => FacingCardinal::North, +// FacingCardinal::South => FacingCardinal::East, +// FacingCardinal::West => FacingCardinal::South, +// } +// } +// +// pub fn is_horizontal(self) -> bool { +// true +// } +// +// pub fn to_facing_cardinal_and_down(self) -> FacingCardinalAndDown { +// match self { +// FacingCardinal::North => FacingCardinalAndDown::North, +// FacingCardinal::East => FacingCardinalAndDown::East, +// FacingCardinal::South => FacingCardinalAndDown::South, +// FacingCardinal::West => FacingCardinalAndDown::West, +// } +// } +// +// pub fn to_facing_cubic(self) -> FacingCubic { +// match self { +// FacingCardinal::North => FacingCubic::North, +// FacingCardinal::East => FacingCubic::East, +// FacingCardinal::South => FacingCubic::South, +// FacingCardinal::West => FacingCubic::West, +// } +// } +// +// pub fn axis(self) -> AxisXyz { +// self.to_facing_cubic().axis() +// } +// +// pub fn offset(self) -> Vec3 { +// self.to_facing_cubic().offset() +// } +// } +// +// impl FacingCardinalAndDown { +// pub fn opposite(self) -> Option { +// match self { +// FacingCardinalAndDown::North => Some(FacingCardinalAndDown::South), +// FacingCardinalAndDown::East => Some(FacingCardinalAndDown::West), +// FacingCardinalAndDown::South => Some(FacingCardinalAndDown::North), +// FacingCardinalAndDown::West => Some(FacingCardinalAndDown::East), +// _ => None, +// } +// } +// +// pub fn is_horizontal(self) -> bool { +// self != FacingCardinalAndDown::Down +// } +// +// pub fn to_facing_cardinal(self) -> Option { +// match self { +// FacingCardinalAndDown::North => Some(FacingCardinal::North), +// FacingCardinalAndDown::East => Some(FacingCardinal::East), +// FacingCardinalAndDown::South => Some(FacingCardinal::South), +// FacingCardinalAndDown::West => Some(FacingCardinal::West), +// _ => None, +// } +// } +// +// pub fn to_facing_cubic(self) -> FacingCubic { +// match self { +// FacingCardinalAndDown::North => FacingCubic::North, +// FacingCardinalAndDown::East => FacingCubic::East, +// FacingCardinalAndDown::South => FacingCubic::South, +// FacingCardinalAndDown::West => FacingCubic::West, +// FacingCardinalAndDown::Down => FacingCubic::Down, +// } +// } +// +// pub fn axis(self) -> AxisXyz { +// self.to_facing_cubic().axis() +// } +// +// pub fn offset(self) -> Vec3 { +// self.to_facing_cubic().offset() +// } +// } +// +// impl FacingCubic { +// pub fn opposite(self) -> FacingCubic { +// match self { +// FacingCubic::North => FacingCubic::South, +// FacingCubic::East => FacingCubic::West, +// FacingCubic::South => FacingCubic::North, +// FacingCubic::West => FacingCubic::East, +// FacingCubic::Up => FacingCubic::Down, +// FacingCubic::Down => FacingCubic::Up, +// } +// } +// +// pub fn is_horizontal(self) -> bool { +// !matches!(self, FacingCubic::Up | FacingCubic::Down) +// } +// +// pub fn to_facing_cardinal(self) -> Option { +// match self { +// FacingCubic::North => Some(FacingCardinal::North), +// FacingCubic::East => Some(FacingCardinal::East), +// FacingCubic::South => Some(FacingCardinal::South), +// FacingCubic::West => Some(FacingCardinal::West), +// _ => None, +// } +// } +// +// pub fn to_facing_cardinal_and_down(self) -> Option { +// match self { +// FacingCubic::North => Some(FacingCardinalAndDown::North), +// FacingCubic::East => Some(FacingCardinalAndDown::East), +// FacingCubic::South => Some(FacingCardinalAndDown::South), +// FacingCubic::West => Some(FacingCardinalAndDown::West), +// FacingCubic::Down => Some(FacingCardinalAndDown::Down), +// _ => None, +// } +// } +// +// pub fn axis(self) -> AxisXyz { +// match self { +// FacingCubic::East | FacingCubic::West => AxisXyz::X, +// FacingCubic::Up | FacingCubic::Down => AxisXyz::Y, +// FacingCubic::North | FacingCubic::South => AxisXyz::Z, +// } +// } +// +// pub fn offset(self) -> Vec3 { +// match self { +// FacingCubic::North => Vec3 { x: 0, y: 0, z: -1 }, +// FacingCubic::East => Vec3 { x: 1, y: 0, z: 0 }, +// FacingCubic::South => Vec3 { x: 0, y: 0, z: 1 }, +// FacingCubic::West => Vec3 { x: -1, y: 0, z: 0 }, +// FacingCubic::Up => Vec3 { x: 0, y: 1, z: 0 }, +// FacingCubic::Down => Vec3 { x: 0, y: -1, z: 0 }, +// } +// } +// } diff --git a/feather/blocks/src/generated/block_fns.rs b/libcraft/blocks/src/generated/block_fns.rs similarity index 78% rename from feather/blocks/src/generated/block_fns.rs rename to libcraft/blocks/src/generated/block_fns.rs index f3eaaa1ad..f7b67bf74 100644 --- a/feather/blocks/src/generated/block_fns.rs +++ b/libcraft/blocks/src/generated/block_fns.rs @@ -1,3 +1,4 @@ +// This file is @generated. Please do not edit. use crate::*; use std::collections::BTreeMap; use std::str::FromStr; @@ -6,7 +7,7 @@ impl BlockId { pub fn air() -> Self { let mut block = Self { kind: BlockKind::Air, - state: 0, + state: BlockKind::Air.default_state_id() - BlockKind::Air.min_state_id(), }; block } @@ -14,7 +15,7 @@ impl BlockId { pub fn stone() -> Self { let mut block = Self { kind: BlockKind::Stone, - state: 0, + state: BlockKind::Stone.default_state_id() - BlockKind::Stone.min_state_id(), }; block } @@ -22,7 +23,7 @@ impl BlockId { pub fn granite() -> Self { let mut block = Self { kind: BlockKind::Granite, - state: 0, + state: BlockKind::Granite.default_state_id() - BlockKind::Granite.min_state_id(), }; block } @@ -30,7 +31,8 @@ impl BlockId { pub fn polished_granite() -> Self { let mut block = Self { kind: BlockKind::PolishedGranite, - state: 0, + state: BlockKind::PolishedGranite.default_state_id() + - BlockKind::PolishedGranite.min_state_id(), }; block } @@ -38,7 +40,7 @@ impl BlockId { pub fn diorite() -> Self { let mut block = Self { kind: BlockKind::Diorite, - state: 0, + state: BlockKind::Diorite.default_state_id() - BlockKind::Diorite.min_state_id(), }; block } @@ -46,7 +48,8 @@ impl BlockId { pub fn polished_diorite() -> Self { let mut block = Self { kind: BlockKind::PolishedDiorite, - state: 0, + state: BlockKind::PolishedDiorite.default_state_id() + - BlockKind::PolishedDiorite.min_state_id(), }; block } @@ -54,7 +57,7 @@ impl BlockId { pub fn andesite() -> Self { let mut block = Self { kind: BlockKind::Andesite, - state: 0, + state: BlockKind::Andesite.default_state_id() - BlockKind::Andesite.min_state_id(), }; block } @@ -62,7 +65,8 @@ impl BlockId { pub fn polished_andesite() -> Self { let mut block = Self { kind: BlockKind::PolishedAndesite, - state: 0, + state: BlockKind::PolishedAndesite.default_state_id() + - BlockKind::PolishedAndesite.min_state_id(), }; block } @@ -70,7 +74,7 @@ impl BlockId { pub fn grass_block() -> Self { let mut block = Self { kind: BlockKind::GrassBlock, - state: 0, + state: BlockKind::GrassBlock.default_state_id() - BlockKind::GrassBlock.min_state_id(), }; block.set_snowy(false); block @@ -79,7 +83,7 @@ impl BlockId { pub fn dirt() -> Self { let mut block = Self { kind: BlockKind::Dirt, - state: 0, + state: BlockKind::Dirt.default_state_id() - BlockKind::Dirt.min_state_id(), }; block } @@ -87,7 +91,7 @@ impl BlockId { pub fn coarse_dirt() -> Self { let mut block = Self { kind: BlockKind::CoarseDirt, - state: 0, + state: BlockKind::CoarseDirt.default_state_id() - BlockKind::CoarseDirt.min_state_id(), }; block } @@ -95,7 +99,7 @@ impl BlockId { pub fn podzol() -> Self { let mut block = Self { kind: BlockKind::Podzol, - state: 0, + state: BlockKind::Podzol.default_state_id() - BlockKind::Podzol.min_state_id(), }; block.set_snowy(false); block @@ -104,7 +108,8 @@ impl BlockId { pub fn cobblestone() -> Self { let mut block = Self { kind: BlockKind::Cobblestone, - state: 0, + state: BlockKind::Cobblestone.default_state_id() + - BlockKind::Cobblestone.min_state_id(), }; block } @@ -112,7 +117,7 @@ impl BlockId { pub fn oak_planks() -> Self { let mut block = Self { kind: BlockKind::OakPlanks, - state: 0, + state: BlockKind::OakPlanks.default_state_id() - BlockKind::OakPlanks.min_state_id(), }; block } @@ -120,7 +125,8 @@ impl BlockId { pub fn spruce_planks() -> Self { let mut block = Self { kind: BlockKind::SprucePlanks, - state: 0, + state: BlockKind::SprucePlanks.default_state_id() + - BlockKind::SprucePlanks.min_state_id(), }; block } @@ -128,7 +134,8 @@ impl BlockId { pub fn birch_planks() -> Self { let mut block = Self { kind: BlockKind::BirchPlanks, - state: 0, + state: BlockKind::BirchPlanks.default_state_id() + - BlockKind::BirchPlanks.min_state_id(), }; block } @@ -136,7 +143,8 @@ impl BlockId { pub fn jungle_planks() -> Self { let mut block = Self { kind: BlockKind::JunglePlanks, - state: 0, + state: BlockKind::JunglePlanks.default_state_id() + - BlockKind::JunglePlanks.min_state_id(), }; block } @@ -144,7 +152,8 @@ impl BlockId { pub fn acacia_planks() -> Self { let mut block = Self { kind: BlockKind::AcaciaPlanks, - state: 0, + state: BlockKind::AcaciaPlanks.default_state_id() + - BlockKind::AcaciaPlanks.min_state_id(), }; block } @@ -152,7 +161,8 @@ impl BlockId { pub fn dark_oak_planks() -> Self { let mut block = Self { kind: BlockKind::DarkOakPlanks, - state: 0, + state: BlockKind::DarkOakPlanks.default_state_id() + - BlockKind::DarkOakPlanks.min_state_id(), }; block } @@ -160,7 +170,7 @@ impl BlockId { pub fn oak_sapling() -> Self { let mut block = Self { kind: BlockKind::OakSapling, - state: 0, + state: BlockKind::OakSapling.default_state_id() - BlockKind::OakSapling.min_state_id(), }; block.set_stage(0i32); block @@ -169,7 +179,8 @@ impl BlockId { pub fn spruce_sapling() -> Self { let mut block = Self { kind: BlockKind::SpruceSapling, - state: 0, + state: BlockKind::SpruceSapling.default_state_id() + - BlockKind::SpruceSapling.min_state_id(), }; block.set_stage(0i32); block @@ -178,7 +189,8 @@ impl BlockId { pub fn birch_sapling() -> Self { let mut block = Self { kind: BlockKind::BirchSapling, - state: 0, + state: BlockKind::BirchSapling.default_state_id() + - BlockKind::BirchSapling.min_state_id(), }; block.set_stage(0i32); block @@ -187,7 +199,8 @@ impl BlockId { pub fn jungle_sapling() -> Self { let mut block = Self { kind: BlockKind::JungleSapling, - state: 0, + state: BlockKind::JungleSapling.default_state_id() + - BlockKind::JungleSapling.min_state_id(), }; block.set_stage(0i32); block @@ -196,7 +209,8 @@ impl BlockId { pub fn acacia_sapling() -> Self { let mut block = Self { kind: BlockKind::AcaciaSapling, - state: 0, + state: BlockKind::AcaciaSapling.default_state_id() + - BlockKind::AcaciaSapling.min_state_id(), }; block.set_stage(0i32); block @@ -205,7 +219,8 @@ impl BlockId { pub fn dark_oak_sapling() -> Self { let mut block = Self { kind: BlockKind::DarkOakSapling, - state: 0, + state: BlockKind::DarkOakSapling.default_state_id() + - BlockKind::DarkOakSapling.min_state_id(), }; block.set_stage(0i32); block @@ -214,7 +229,7 @@ impl BlockId { pub fn bedrock() -> Self { let mut block = Self { kind: BlockKind::Bedrock, - state: 0, + state: BlockKind::Bedrock.default_state_id() - BlockKind::Bedrock.min_state_id(), }; block } @@ -222,7 +237,7 @@ impl BlockId { pub fn water() -> Self { let mut block = Self { kind: BlockKind::Water, - state: 0, + state: BlockKind::Water.default_state_id() - BlockKind::Water.min_state_id(), }; block.set_water_level(0i32); block @@ -231,7 +246,7 @@ impl BlockId { pub fn lava() -> Self { let mut block = Self { kind: BlockKind::Lava, - state: 0, + state: BlockKind::Lava.default_state_id() - BlockKind::Lava.min_state_id(), }; block.set_water_level(0i32); block @@ -240,7 +255,7 @@ impl BlockId { pub fn sand() -> Self { let mut block = Self { kind: BlockKind::Sand, - state: 0, + state: BlockKind::Sand.default_state_id() - BlockKind::Sand.min_state_id(), }; block } @@ -248,7 +263,7 @@ impl BlockId { pub fn red_sand() -> Self { let mut block = Self { kind: BlockKind::RedSand, - state: 0, + state: BlockKind::RedSand.default_state_id() - BlockKind::RedSand.min_state_id(), }; block } @@ -256,7 +271,7 @@ impl BlockId { pub fn gravel() -> Self { let mut block = Self { kind: BlockKind::Gravel, - state: 0, + state: BlockKind::Gravel.default_state_id() - BlockKind::Gravel.min_state_id(), }; block } @@ -264,7 +279,16 @@ impl BlockId { pub fn gold_ore() -> Self { let mut block = Self { kind: BlockKind::GoldOre, - state: 0, + state: BlockKind::GoldOre.default_state_id() - BlockKind::GoldOre.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `deepslate_gold_ore` with default state values."] + pub fn deepslate_gold_ore() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateGoldOre, + state: BlockKind::DeepslateGoldOre.default_state_id() + - BlockKind::DeepslateGoldOre.min_state_id(), }; block } @@ -272,7 +296,16 @@ impl BlockId { pub fn iron_ore() -> Self { let mut block = Self { kind: BlockKind::IronOre, - state: 0, + state: BlockKind::IronOre.default_state_id() - BlockKind::IronOre.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `deepslate_iron_ore` with default state values."] + pub fn deepslate_iron_ore() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateIronOre, + state: BlockKind::DeepslateIronOre.default_state_id() + - BlockKind::DeepslateIronOre.min_state_id(), }; block } @@ -280,7 +313,16 @@ impl BlockId { pub fn coal_ore() -> Self { let mut block = Self { kind: BlockKind::CoalOre, - state: 0, + state: BlockKind::CoalOre.default_state_id() - BlockKind::CoalOre.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `deepslate_coal_ore` with default state values."] + pub fn deepslate_coal_ore() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateCoalOre, + state: BlockKind::DeepslateCoalOre.default_state_id() + - BlockKind::DeepslateCoalOre.min_state_id(), }; block } @@ -288,7 +330,8 @@ impl BlockId { pub fn nether_gold_ore() -> Self { let mut block = Self { kind: BlockKind::NetherGoldOre, - state: 0, + state: BlockKind::NetherGoldOre.default_state_id() + - BlockKind::NetherGoldOre.min_state_id(), }; block } @@ -296,7 +339,7 @@ impl BlockId { pub fn oak_log() -> Self { let mut block = Self { kind: BlockKind::OakLog, - state: 0, + state: BlockKind::OakLog.default_state_id() - BlockKind::OakLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -305,7 +348,7 @@ impl BlockId { pub fn spruce_log() -> Self { let mut block = Self { kind: BlockKind::SpruceLog, - state: 0, + state: BlockKind::SpruceLog.default_state_id() - BlockKind::SpruceLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -314,7 +357,7 @@ impl BlockId { pub fn birch_log() -> Self { let mut block = Self { kind: BlockKind::BirchLog, - state: 0, + state: BlockKind::BirchLog.default_state_id() - BlockKind::BirchLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -323,7 +366,7 @@ impl BlockId { pub fn jungle_log() -> Self { let mut block = Self { kind: BlockKind::JungleLog, - state: 0, + state: BlockKind::JungleLog.default_state_id() - BlockKind::JungleLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -332,7 +375,7 @@ impl BlockId { pub fn acacia_log() -> Self { let mut block = Self { kind: BlockKind::AcaciaLog, - state: 0, + state: BlockKind::AcaciaLog.default_state_id() - BlockKind::AcaciaLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -341,7 +384,7 @@ impl BlockId { pub fn dark_oak_log() -> Self { let mut block = Self { kind: BlockKind::DarkOakLog, - state: 0, + state: BlockKind::DarkOakLog.default_state_id() - BlockKind::DarkOakLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -350,7 +393,8 @@ impl BlockId { pub fn stripped_spruce_log() -> Self { let mut block = Self { kind: BlockKind::StrippedSpruceLog, - state: 0, + state: BlockKind::StrippedSpruceLog.default_state_id() + - BlockKind::StrippedSpruceLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -359,7 +403,8 @@ impl BlockId { pub fn stripped_birch_log() -> Self { let mut block = Self { kind: BlockKind::StrippedBirchLog, - state: 0, + state: BlockKind::StrippedBirchLog.default_state_id() + - BlockKind::StrippedBirchLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -368,7 +413,8 @@ impl BlockId { pub fn stripped_jungle_log() -> Self { let mut block = Self { kind: BlockKind::StrippedJungleLog, - state: 0, + state: BlockKind::StrippedJungleLog.default_state_id() + - BlockKind::StrippedJungleLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -377,7 +423,8 @@ impl BlockId { pub fn stripped_acacia_log() -> Self { let mut block = Self { kind: BlockKind::StrippedAcaciaLog, - state: 0, + state: BlockKind::StrippedAcaciaLog.default_state_id() + - BlockKind::StrippedAcaciaLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -386,7 +433,8 @@ impl BlockId { pub fn stripped_dark_oak_log() -> Self { let mut block = Self { kind: BlockKind::StrippedDarkOakLog, - state: 0, + state: BlockKind::StrippedDarkOakLog.default_state_id() + - BlockKind::StrippedDarkOakLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -395,7 +443,8 @@ impl BlockId { pub fn stripped_oak_log() -> Self { let mut block = Self { kind: BlockKind::StrippedOakLog, - state: 0, + state: BlockKind::StrippedOakLog.default_state_id() + - BlockKind::StrippedOakLog.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -404,7 +453,7 @@ impl BlockId { pub fn oak_wood() -> Self { let mut block = Self { kind: BlockKind::OakWood, - state: 0, + state: BlockKind::OakWood.default_state_id() - BlockKind::OakWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -413,7 +462,7 @@ impl BlockId { pub fn spruce_wood() -> Self { let mut block = Self { kind: BlockKind::SpruceWood, - state: 0, + state: BlockKind::SpruceWood.default_state_id() - BlockKind::SpruceWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -422,7 +471,7 @@ impl BlockId { pub fn birch_wood() -> Self { let mut block = Self { kind: BlockKind::BirchWood, - state: 0, + state: BlockKind::BirchWood.default_state_id() - BlockKind::BirchWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -431,7 +480,7 @@ impl BlockId { pub fn jungle_wood() -> Self { let mut block = Self { kind: BlockKind::JungleWood, - state: 0, + state: BlockKind::JungleWood.default_state_id() - BlockKind::JungleWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -440,7 +489,7 @@ impl BlockId { pub fn acacia_wood() -> Self { let mut block = Self { kind: BlockKind::AcaciaWood, - state: 0, + state: BlockKind::AcaciaWood.default_state_id() - BlockKind::AcaciaWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -449,7 +498,8 @@ impl BlockId { pub fn dark_oak_wood() -> Self { let mut block = Self { kind: BlockKind::DarkOakWood, - state: 0, + state: BlockKind::DarkOakWood.default_state_id() + - BlockKind::DarkOakWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -458,7 +508,8 @@ impl BlockId { pub fn stripped_oak_wood() -> Self { let mut block = Self { kind: BlockKind::StrippedOakWood, - state: 0, + state: BlockKind::StrippedOakWood.default_state_id() + - BlockKind::StrippedOakWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -467,7 +518,8 @@ impl BlockId { pub fn stripped_spruce_wood() -> Self { let mut block = Self { kind: BlockKind::StrippedSpruceWood, - state: 0, + state: BlockKind::StrippedSpruceWood.default_state_id() + - BlockKind::StrippedSpruceWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -476,7 +528,8 @@ impl BlockId { pub fn stripped_birch_wood() -> Self { let mut block = Self { kind: BlockKind::StrippedBirchWood, - state: 0, + state: BlockKind::StrippedBirchWood.default_state_id() + - BlockKind::StrippedBirchWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -485,7 +538,8 @@ impl BlockId { pub fn stripped_jungle_wood() -> Self { let mut block = Self { kind: BlockKind::StrippedJungleWood, - state: 0, + state: BlockKind::StrippedJungleWood.default_state_id() + - BlockKind::StrippedJungleWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -494,7 +548,8 @@ impl BlockId { pub fn stripped_acacia_wood() -> Self { let mut block = Self { kind: BlockKind::StrippedAcaciaWood, - state: 0, + state: BlockKind::StrippedAcaciaWood.default_state_id() + - BlockKind::StrippedAcaciaWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -503,7 +558,8 @@ impl BlockId { pub fn stripped_dark_oak_wood() -> Self { let mut block = Self { kind: BlockKind::StrippedDarkOakWood, - state: 0, + state: BlockKind::StrippedDarkOakWood.default_state_id() + - BlockKind::StrippedDarkOakWood.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -512,7 +568,7 @@ impl BlockId { pub fn oak_leaves() -> Self { let mut block = Self { kind: BlockKind::OakLeaves, - state: 0, + state: BlockKind::OakLeaves.default_state_id() - BlockKind::OakLeaves.min_state_id(), }; block.set_distance_1_7(7i32); block.set_persistent(false); @@ -522,7 +578,8 @@ impl BlockId { pub fn spruce_leaves() -> Self { let mut block = Self { kind: BlockKind::SpruceLeaves, - state: 0, + state: BlockKind::SpruceLeaves.default_state_id() + - BlockKind::SpruceLeaves.min_state_id(), }; block.set_distance_1_7(7i32); block.set_persistent(false); @@ -532,7 +589,8 @@ impl BlockId { pub fn birch_leaves() -> Self { let mut block = Self { kind: BlockKind::BirchLeaves, - state: 0, + state: BlockKind::BirchLeaves.default_state_id() + - BlockKind::BirchLeaves.min_state_id(), }; block.set_distance_1_7(7i32); block.set_persistent(false); @@ -542,7 +600,8 @@ impl BlockId { pub fn jungle_leaves() -> Self { let mut block = Self { kind: BlockKind::JungleLeaves, - state: 0, + state: BlockKind::JungleLeaves.default_state_id() + - BlockKind::JungleLeaves.min_state_id(), }; block.set_distance_1_7(7i32); block.set_persistent(false); @@ -552,7 +611,8 @@ impl BlockId { pub fn acacia_leaves() -> Self { let mut block = Self { kind: BlockKind::AcaciaLeaves, - state: 0, + state: BlockKind::AcaciaLeaves.default_state_id() + - BlockKind::AcaciaLeaves.min_state_id(), }; block.set_distance_1_7(7i32); block.set_persistent(false); @@ -562,7 +622,30 @@ impl BlockId { pub fn dark_oak_leaves() -> Self { let mut block = Self { kind: BlockKind::DarkOakLeaves, - state: 0, + state: BlockKind::DarkOakLeaves.default_state_id() + - BlockKind::DarkOakLeaves.min_state_id(), + }; + block.set_distance_1_7(7i32); + block.set_persistent(false); + block + } + #[doc = "Returns an instance of `azalea_leaves` with default state values.\nThe default state values are as follows:\n* `distance_1_7`: 7\n* `persistent`: false\n"] + pub fn azalea_leaves() -> Self { + let mut block = Self { + kind: BlockKind::AzaleaLeaves, + state: BlockKind::AzaleaLeaves.default_state_id() + - BlockKind::AzaleaLeaves.min_state_id(), + }; + block.set_distance_1_7(7i32); + block.set_persistent(false); + block + } + #[doc = "Returns an instance of `flowering_azalea_leaves` with default state values.\nThe default state values are as follows:\n* `distance_1_7`: 7\n* `persistent`: false\n"] + pub fn flowering_azalea_leaves() -> Self { + let mut block = Self { + kind: BlockKind::FloweringAzaleaLeaves, + state: BlockKind::FloweringAzaleaLeaves.default_state_id() + - BlockKind::FloweringAzaleaLeaves.min_state_id(), }; block.set_distance_1_7(7i32); block.set_persistent(false); @@ -572,7 +655,7 @@ impl BlockId { pub fn sponge() -> Self { let mut block = Self { kind: BlockKind::Sponge, - state: 0, + state: BlockKind::Sponge.default_state_id() - BlockKind::Sponge.min_state_id(), }; block } @@ -580,7 +663,7 @@ impl BlockId { pub fn wet_sponge() -> Self { let mut block = Self { kind: BlockKind::WetSponge, - state: 0, + state: BlockKind::WetSponge.default_state_id() - BlockKind::WetSponge.min_state_id(), }; block } @@ -588,7 +671,7 @@ impl BlockId { pub fn glass() -> Self { let mut block = Self { kind: BlockKind::Glass, - state: 0, + state: BlockKind::Glass.default_state_id() - BlockKind::Glass.min_state_id(), }; block } @@ -596,7 +679,16 @@ impl BlockId { pub fn lapis_ore() -> Self { let mut block = Self { kind: BlockKind::LapisOre, - state: 0, + state: BlockKind::LapisOre.default_state_id() - BlockKind::LapisOre.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `deepslate_lapis_ore` with default state values."] + pub fn deepslate_lapis_ore() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateLapisOre, + state: BlockKind::DeepslateLapisOre.default_state_id() + - BlockKind::DeepslateLapisOre.min_state_id(), }; block } @@ -604,7 +696,7 @@ impl BlockId { pub fn lapis_block() -> Self { let mut block = Self { kind: BlockKind::LapisBlock, - state: 0, + state: BlockKind::LapisBlock.default_state_id() - BlockKind::LapisBlock.min_state_id(), }; block } @@ -612,7 +704,7 @@ impl BlockId { pub fn dispenser() -> Self { let mut block = Self { kind: BlockKind::Dispenser, - state: 0, + state: BlockKind::Dispenser.default_state_id() - BlockKind::Dispenser.min_state_id(), }; block.set_facing_cubic(FacingCubic::North); block.set_triggered(false); @@ -622,7 +714,7 @@ impl BlockId { pub fn sandstone() -> Self { let mut block = Self { kind: BlockKind::Sandstone, - state: 0, + state: BlockKind::Sandstone.default_state_id() - BlockKind::Sandstone.min_state_id(), }; block } @@ -630,7 +722,8 @@ impl BlockId { pub fn chiseled_sandstone() -> Self { let mut block = Self { kind: BlockKind::ChiseledSandstone, - state: 0, + state: BlockKind::ChiseledSandstone.default_state_id() + - BlockKind::ChiseledSandstone.min_state_id(), }; block } @@ -638,7 +731,8 @@ impl BlockId { pub fn cut_sandstone() -> Self { let mut block = Self { kind: BlockKind::CutSandstone, - state: 0, + state: BlockKind::CutSandstone.default_state_id() + - BlockKind::CutSandstone.min_state_id(), }; block } @@ -646,7 +740,7 @@ impl BlockId { pub fn note_block() -> Self { let mut block = Self { kind: BlockKind::NoteBlock, - state: 0, + state: BlockKind::NoteBlock.default_state_id() - BlockKind::NoteBlock.min_state_id(), }; block.set_instrument(Instrument::Harp); block.set_note(0i32); @@ -657,7 +751,7 @@ impl BlockId { pub fn white_bed() -> Self { let mut block = Self { kind: BlockKind::WhiteBed, - state: 0, + state: BlockKind::WhiteBed.default_state_id() - BlockKind::WhiteBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -668,7 +762,7 @@ impl BlockId { pub fn orange_bed() -> Self { let mut block = Self { kind: BlockKind::OrangeBed, - state: 0, + state: BlockKind::OrangeBed.default_state_id() - BlockKind::OrangeBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -679,7 +773,7 @@ impl BlockId { pub fn magenta_bed() -> Self { let mut block = Self { kind: BlockKind::MagentaBed, - state: 0, + state: BlockKind::MagentaBed.default_state_id() - BlockKind::MagentaBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -690,7 +784,8 @@ impl BlockId { pub fn light_blue_bed() -> Self { let mut block = Self { kind: BlockKind::LightBlueBed, - state: 0, + state: BlockKind::LightBlueBed.default_state_id() + - BlockKind::LightBlueBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -701,7 +796,7 @@ impl BlockId { pub fn yellow_bed() -> Self { let mut block = Self { kind: BlockKind::YellowBed, - state: 0, + state: BlockKind::YellowBed.default_state_id() - BlockKind::YellowBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -712,7 +807,7 @@ impl BlockId { pub fn lime_bed() -> Self { let mut block = Self { kind: BlockKind::LimeBed, - state: 0, + state: BlockKind::LimeBed.default_state_id() - BlockKind::LimeBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -723,7 +818,7 @@ impl BlockId { pub fn pink_bed() -> Self { let mut block = Self { kind: BlockKind::PinkBed, - state: 0, + state: BlockKind::PinkBed.default_state_id() - BlockKind::PinkBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -734,7 +829,7 @@ impl BlockId { pub fn gray_bed() -> Self { let mut block = Self { kind: BlockKind::GrayBed, - state: 0, + state: BlockKind::GrayBed.default_state_id() - BlockKind::GrayBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -745,7 +840,8 @@ impl BlockId { pub fn light_gray_bed() -> Self { let mut block = Self { kind: BlockKind::LightGrayBed, - state: 0, + state: BlockKind::LightGrayBed.default_state_id() + - BlockKind::LightGrayBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -756,7 +852,7 @@ impl BlockId { pub fn cyan_bed() -> Self { let mut block = Self { kind: BlockKind::CyanBed, - state: 0, + state: BlockKind::CyanBed.default_state_id() - BlockKind::CyanBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -767,7 +863,7 @@ impl BlockId { pub fn purple_bed() -> Self { let mut block = Self { kind: BlockKind::PurpleBed, - state: 0, + state: BlockKind::PurpleBed.default_state_id() - BlockKind::PurpleBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -778,7 +874,7 @@ impl BlockId { pub fn blue_bed() -> Self { let mut block = Self { kind: BlockKind::BlueBed, - state: 0, + state: BlockKind::BlueBed.default_state_id() - BlockKind::BlueBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -789,7 +885,7 @@ impl BlockId { pub fn brown_bed() -> Self { let mut block = Self { kind: BlockKind::BrownBed, - state: 0, + state: BlockKind::BrownBed.default_state_id() - BlockKind::BrownBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -800,7 +896,7 @@ impl BlockId { pub fn green_bed() -> Self { let mut block = Self { kind: BlockKind::GreenBed, - state: 0, + state: BlockKind::GreenBed.default_state_id() - BlockKind::GreenBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -811,7 +907,7 @@ impl BlockId { pub fn red_bed() -> Self { let mut block = Self { kind: BlockKind::RedBed, - state: 0, + state: BlockKind::RedBed.default_state_id() - BlockKind::RedBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); @@ -822,38 +918,43 @@ impl BlockId { pub fn black_bed() -> Self { let mut block = Self { kind: BlockKind::BlackBed, - state: 0, + state: BlockKind::BlackBed.default_state_id() - BlockKind::BlackBed.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_occupied(false); block.set_part(Part::Foot); block } - #[doc = "Returns an instance of `powered_rail` with default state values.\nThe default state values are as follows:\n* `powered`: false\n* `powered_rail_shape`: north_south\n"] + #[doc = "Returns an instance of `powered_rail` with default state values.\nThe default state values are as follows:\n* `powered`: false\n* `powered_rail_shape`: north_south\n* `waterlogged`: false\n"] pub fn powered_rail() -> Self { let mut block = Self { kind: BlockKind::PoweredRail, - state: 0, + state: BlockKind::PoweredRail.default_state_id() + - BlockKind::PoweredRail.min_state_id(), }; block.set_powered(false); block.set_powered_rail_shape(PoweredRailShape::NorthSouth); + block.set_waterlogged(false); block } - #[doc = "Returns an instance of `detector_rail` with default state values.\nThe default state values are as follows:\n* `powered`: false\n* `powered_rail_shape`: north_south\n"] + #[doc = "Returns an instance of `detector_rail` with default state values.\nThe default state values are as follows:\n* `powered`: false\n* `powered_rail_shape`: north_south\n* `waterlogged`: false\n"] pub fn detector_rail() -> Self { let mut block = Self { kind: BlockKind::DetectorRail, - state: 0, + state: BlockKind::DetectorRail.default_state_id() + - BlockKind::DetectorRail.min_state_id(), }; block.set_powered(false); block.set_powered_rail_shape(PoweredRailShape::NorthSouth); + block.set_waterlogged(false); block } #[doc = "Returns an instance of `sticky_piston` with default state values.\nThe default state values are as follows:\n* `extended`: false\n* `facing_cubic`: north\n"] pub fn sticky_piston() -> Self { let mut block = Self { kind: BlockKind::StickyPiston, - state: 0, + state: BlockKind::StickyPiston.default_state_id() + - BlockKind::StickyPiston.min_state_id(), }; block.set_extended(false); block.set_facing_cubic(FacingCubic::North); @@ -863,7 +964,7 @@ impl BlockId { pub fn cobweb() -> Self { let mut block = Self { kind: BlockKind::Cobweb, - state: 0, + state: BlockKind::Cobweb.default_state_id() - BlockKind::Cobweb.min_state_id(), }; block } @@ -871,7 +972,7 @@ impl BlockId { pub fn grass() -> Self { let mut block = Self { kind: BlockKind::Grass, - state: 0, + state: BlockKind::Grass.default_state_id() - BlockKind::Grass.min_state_id(), }; block } @@ -879,7 +980,7 @@ impl BlockId { pub fn fern() -> Self { let mut block = Self { kind: BlockKind::Fern, - state: 0, + state: BlockKind::Fern.default_state_id() - BlockKind::Fern.min_state_id(), }; block } @@ -887,7 +988,7 @@ impl BlockId { pub fn dead_bush() -> Self { let mut block = Self { kind: BlockKind::DeadBush, - state: 0, + state: BlockKind::DeadBush.default_state_id() - BlockKind::DeadBush.min_state_id(), }; block } @@ -895,7 +996,7 @@ impl BlockId { pub fn seagrass() -> Self { let mut block = Self { kind: BlockKind::Seagrass, - state: 0, + state: BlockKind::Seagrass.default_state_id() - BlockKind::Seagrass.min_state_id(), }; block } @@ -903,7 +1004,8 @@ impl BlockId { pub fn tall_seagrass() -> Self { let mut block = Self { kind: BlockKind::TallSeagrass, - state: 0, + state: BlockKind::TallSeagrass.default_state_id() + - BlockKind::TallSeagrass.min_state_id(), }; block.set_half_upper_lower(HalfUpperLower::Lower); block @@ -912,7 +1014,7 @@ impl BlockId { pub fn piston() -> Self { let mut block = Self { kind: BlockKind::Piston, - state: 0, + state: BlockKind::Piston.default_state_id() - BlockKind::Piston.min_state_id(), }; block.set_extended(false); block.set_facing_cubic(FacingCubic::North); @@ -922,7 +1024,7 @@ impl BlockId { pub fn piston_head() -> Self { let mut block = Self { kind: BlockKind::PistonHead, - state: 0, + state: BlockKind::PistonHead.default_state_id() - BlockKind::PistonHead.min_state_id(), }; block.set_facing_cubic(FacingCubic::North); block.set_piston_kind(PistonKind::Normal); @@ -933,7 +1035,7 @@ impl BlockId { pub fn white_wool() -> Self { let mut block = Self { kind: BlockKind::WhiteWool, - state: 0, + state: BlockKind::WhiteWool.default_state_id() - BlockKind::WhiteWool.min_state_id(), }; block } @@ -941,7 +1043,7 @@ impl BlockId { pub fn orange_wool() -> Self { let mut block = Self { kind: BlockKind::OrangeWool, - state: 0, + state: BlockKind::OrangeWool.default_state_id() - BlockKind::OrangeWool.min_state_id(), }; block } @@ -949,7 +1051,8 @@ impl BlockId { pub fn magenta_wool() -> Self { let mut block = Self { kind: BlockKind::MagentaWool, - state: 0, + state: BlockKind::MagentaWool.default_state_id() + - BlockKind::MagentaWool.min_state_id(), }; block } @@ -957,7 +1060,8 @@ impl BlockId { pub fn light_blue_wool() -> Self { let mut block = Self { kind: BlockKind::LightBlueWool, - state: 0, + state: BlockKind::LightBlueWool.default_state_id() + - BlockKind::LightBlueWool.min_state_id(), }; block } @@ -965,7 +1069,7 @@ impl BlockId { pub fn yellow_wool() -> Self { let mut block = Self { kind: BlockKind::YellowWool, - state: 0, + state: BlockKind::YellowWool.default_state_id() - BlockKind::YellowWool.min_state_id(), }; block } @@ -973,7 +1077,7 @@ impl BlockId { pub fn lime_wool() -> Self { let mut block = Self { kind: BlockKind::LimeWool, - state: 0, + state: BlockKind::LimeWool.default_state_id() - BlockKind::LimeWool.min_state_id(), }; block } @@ -981,7 +1085,7 @@ impl BlockId { pub fn pink_wool() -> Self { let mut block = Self { kind: BlockKind::PinkWool, - state: 0, + state: BlockKind::PinkWool.default_state_id() - BlockKind::PinkWool.min_state_id(), }; block } @@ -989,7 +1093,7 @@ impl BlockId { pub fn gray_wool() -> Self { let mut block = Self { kind: BlockKind::GrayWool, - state: 0, + state: BlockKind::GrayWool.default_state_id() - BlockKind::GrayWool.min_state_id(), }; block } @@ -997,7 +1101,8 @@ impl BlockId { pub fn light_gray_wool() -> Self { let mut block = Self { kind: BlockKind::LightGrayWool, - state: 0, + state: BlockKind::LightGrayWool.default_state_id() + - BlockKind::LightGrayWool.min_state_id(), }; block } @@ -1005,7 +1110,7 @@ impl BlockId { pub fn cyan_wool() -> Self { let mut block = Self { kind: BlockKind::CyanWool, - state: 0, + state: BlockKind::CyanWool.default_state_id() - BlockKind::CyanWool.min_state_id(), }; block } @@ -1013,7 +1118,7 @@ impl BlockId { pub fn purple_wool() -> Self { let mut block = Self { kind: BlockKind::PurpleWool, - state: 0, + state: BlockKind::PurpleWool.default_state_id() - BlockKind::PurpleWool.min_state_id(), }; block } @@ -1021,7 +1126,7 @@ impl BlockId { pub fn blue_wool() -> Self { let mut block = Self { kind: BlockKind::BlueWool, - state: 0, + state: BlockKind::BlueWool.default_state_id() - BlockKind::BlueWool.min_state_id(), }; block } @@ -1029,7 +1134,7 @@ impl BlockId { pub fn brown_wool() -> Self { let mut block = Self { kind: BlockKind::BrownWool, - state: 0, + state: BlockKind::BrownWool.default_state_id() - BlockKind::BrownWool.min_state_id(), }; block } @@ -1037,7 +1142,7 @@ impl BlockId { pub fn green_wool() -> Self { let mut block = Self { kind: BlockKind::GreenWool, - state: 0, + state: BlockKind::GreenWool.default_state_id() - BlockKind::GreenWool.min_state_id(), }; block } @@ -1045,7 +1150,7 @@ impl BlockId { pub fn red_wool() -> Self { let mut block = Self { kind: BlockKind::RedWool, - state: 0, + state: BlockKind::RedWool.default_state_id() - BlockKind::RedWool.min_state_id(), }; block } @@ -1053,7 +1158,7 @@ impl BlockId { pub fn black_wool() -> Self { let mut block = Self { kind: BlockKind::BlackWool, - state: 0, + state: BlockKind::BlackWool.default_state_id() - BlockKind::BlackWool.min_state_id(), }; block } @@ -1061,7 +1166,8 @@ impl BlockId { pub fn moving_piston() -> Self { let mut block = Self { kind: BlockKind::MovingPiston, - state: 0, + state: BlockKind::MovingPiston.default_state_id() + - BlockKind::MovingPiston.min_state_id(), }; block.set_facing_cubic(FacingCubic::North); block.set_piston_kind(PistonKind::Normal); @@ -1071,7 +1177,7 @@ impl BlockId { pub fn dandelion() -> Self { let mut block = Self { kind: BlockKind::Dandelion, - state: 0, + state: BlockKind::Dandelion.default_state_id() - BlockKind::Dandelion.min_state_id(), }; block } @@ -1079,7 +1185,7 @@ impl BlockId { pub fn poppy() -> Self { let mut block = Self { kind: BlockKind::Poppy, - state: 0, + state: BlockKind::Poppy.default_state_id() - BlockKind::Poppy.min_state_id(), }; block } @@ -1087,7 +1193,7 @@ impl BlockId { pub fn blue_orchid() -> Self { let mut block = Self { kind: BlockKind::BlueOrchid, - state: 0, + state: BlockKind::BlueOrchid.default_state_id() - BlockKind::BlueOrchid.min_state_id(), }; block } @@ -1095,7 +1201,7 @@ impl BlockId { pub fn allium() -> Self { let mut block = Self { kind: BlockKind::Allium, - state: 0, + state: BlockKind::Allium.default_state_id() - BlockKind::Allium.min_state_id(), }; block } @@ -1103,7 +1209,7 @@ impl BlockId { pub fn azure_bluet() -> Self { let mut block = Self { kind: BlockKind::AzureBluet, - state: 0, + state: BlockKind::AzureBluet.default_state_id() - BlockKind::AzureBluet.min_state_id(), }; block } @@ -1111,7 +1217,7 @@ impl BlockId { pub fn red_tulip() -> Self { let mut block = Self { kind: BlockKind::RedTulip, - state: 0, + state: BlockKind::RedTulip.default_state_id() - BlockKind::RedTulip.min_state_id(), }; block } @@ -1119,7 +1225,8 @@ impl BlockId { pub fn orange_tulip() -> Self { let mut block = Self { kind: BlockKind::OrangeTulip, - state: 0, + state: BlockKind::OrangeTulip.default_state_id() + - BlockKind::OrangeTulip.min_state_id(), }; block } @@ -1127,7 +1234,7 @@ impl BlockId { pub fn white_tulip() -> Self { let mut block = Self { kind: BlockKind::WhiteTulip, - state: 0, + state: BlockKind::WhiteTulip.default_state_id() - BlockKind::WhiteTulip.min_state_id(), }; block } @@ -1135,7 +1242,7 @@ impl BlockId { pub fn pink_tulip() -> Self { let mut block = Self { kind: BlockKind::PinkTulip, - state: 0, + state: BlockKind::PinkTulip.default_state_id() - BlockKind::PinkTulip.min_state_id(), }; block } @@ -1143,7 +1250,7 @@ impl BlockId { pub fn oxeye_daisy() -> Self { let mut block = Self { kind: BlockKind::OxeyeDaisy, - state: 0, + state: BlockKind::OxeyeDaisy.default_state_id() - BlockKind::OxeyeDaisy.min_state_id(), }; block } @@ -1151,7 +1258,7 @@ impl BlockId { pub fn cornflower() -> Self { let mut block = Self { kind: BlockKind::Cornflower, - state: 0, + state: BlockKind::Cornflower.default_state_id() - BlockKind::Cornflower.min_state_id(), }; block } @@ -1159,7 +1266,7 @@ impl BlockId { pub fn wither_rose() -> Self { let mut block = Self { kind: BlockKind::WitherRose, - state: 0, + state: BlockKind::WitherRose.default_state_id() - BlockKind::WitherRose.min_state_id(), }; block } @@ -1167,7 +1274,8 @@ impl BlockId { pub fn lily_of_the_valley() -> Self { let mut block = Self { kind: BlockKind::LilyOfTheValley, - state: 0, + state: BlockKind::LilyOfTheValley.default_state_id() + - BlockKind::LilyOfTheValley.min_state_id(), }; block } @@ -1175,7 +1283,8 @@ impl BlockId { pub fn brown_mushroom() -> Self { let mut block = Self { kind: BlockKind::BrownMushroom, - state: 0, + state: BlockKind::BrownMushroom.default_state_id() + - BlockKind::BrownMushroom.min_state_id(), }; block } @@ -1183,7 +1292,8 @@ impl BlockId { pub fn red_mushroom() -> Self { let mut block = Self { kind: BlockKind::RedMushroom, - state: 0, + state: BlockKind::RedMushroom.default_state_id() + - BlockKind::RedMushroom.min_state_id(), }; block } @@ -1191,7 +1301,7 @@ impl BlockId { pub fn gold_block() -> Self { let mut block = Self { kind: BlockKind::GoldBlock, - state: 0, + state: BlockKind::GoldBlock.default_state_id() - BlockKind::GoldBlock.min_state_id(), }; block } @@ -1199,7 +1309,7 @@ impl BlockId { pub fn iron_block() -> Self { let mut block = Self { kind: BlockKind::IronBlock, - state: 0, + state: BlockKind::IronBlock.default_state_id() - BlockKind::IronBlock.min_state_id(), }; block } @@ -1207,7 +1317,7 @@ impl BlockId { pub fn bricks() -> Self { let mut block = Self { kind: BlockKind::Bricks, - state: 0, + state: BlockKind::Bricks.default_state_id() - BlockKind::Bricks.min_state_id(), }; block } @@ -1215,7 +1325,7 @@ impl BlockId { pub fn tnt() -> Self { let mut block = Self { kind: BlockKind::Tnt, - state: 0, + state: BlockKind::Tnt.default_state_id() - BlockKind::Tnt.min_state_id(), }; block.set_unstable(false); block @@ -1224,7 +1334,7 @@ impl BlockId { pub fn bookshelf() -> Self { let mut block = Self { kind: BlockKind::Bookshelf, - state: 0, + state: BlockKind::Bookshelf.default_state_id() - BlockKind::Bookshelf.min_state_id(), }; block } @@ -1232,7 +1342,8 @@ impl BlockId { pub fn mossy_cobblestone() -> Self { let mut block = Self { kind: BlockKind::MossyCobblestone, - state: 0, + state: BlockKind::MossyCobblestone.default_state_id() + - BlockKind::MossyCobblestone.min_state_id(), }; block } @@ -1240,7 +1351,7 @@ impl BlockId { pub fn obsidian() -> Self { let mut block = Self { kind: BlockKind::Obsidian, - state: 0, + state: BlockKind::Obsidian.default_state_id() - BlockKind::Obsidian.min_state_id(), }; block } @@ -1248,7 +1359,7 @@ impl BlockId { pub fn torch() -> Self { let mut block = Self { kind: BlockKind::Torch, - state: 0, + state: BlockKind::Torch.default_state_id() - BlockKind::Torch.min_state_id(), }; block } @@ -1256,7 +1367,7 @@ impl BlockId { pub fn wall_torch() -> Self { let mut block = Self { kind: BlockKind::WallTorch, - state: 0, + state: BlockKind::WallTorch.default_state_id() - BlockKind::WallTorch.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -1265,7 +1376,7 @@ impl BlockId { pub fn fire() -> Self { let mut block = Self { kind: BlockKind::Fire, - state: 0, + state: BlockKind::Fire.default_state_id() - BlockKind::Fire.min_state_id(), }; block.set_age_0_15(0i32); block.set_east_connected(false); @@ -1279,7 +1390,7 @@ impl BlockId { pub fn soul_fire() -> Self { let mut block = Self { kind: BlockKind::SoulFire, - state: 0, + state: BlockKind::SoulFire.default_state_id() - BlockKind::SoulFire.min_state_id(), }; block } @@ -1287,7 +1398,7 @@ impl BlockId { pub fn spawner() -> Self { let mut block = Self { kind: BlockKind::Spawner, - state: 0, + state: BlockKind::Spawner.default_state_id() - BlockKind::Spawner.min_state_id(), }; block } @@ -1295,7 +1406,7 @@ impl BlockId { pub fn oak_stairs() -> Self { let mut block = Self { kind: BlockKind::OakStairs, - state: 0, + state: BlockKind::OakStairs.default_state_id() - BlockKind::OakStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -1307,7 +1418,7 @@ impl BlockId { pub fn chest() -> Self { let mut block = Self { kind: BlockKind::Chest, - state: 0, + state: BlockKind::Chest.default_state_id() - BlockKind::Chest.min_state_id(), }; block.set_chest_kind(ChestKind::Single); block.set_facing_cardinal(FacingCardinal::North); @@ -1318,7 +1429,8 @@ impl BlockId { pub fn redstone_wire() -> Self { let mut block = Self { kind: BlockKind::RedstoneWire, - state: 0, + state: BlockKind::RedstoneWire.default_state_id() + - BlockKind::RedstoneWire.min_state_id(), }; block.set_east_wire(EastWire::None); block.set_north_wire(NorthWire::None); @@ -1331,7 +1443,16 @@ impl BlockId { pub fn diamond_ore() -> Self { let mut block = Self { kind: BlockKind::DiamondOre, - state: 0, + state: BlockKind::DiamondOre.default_state_id() - BlockKind::DiamondOre.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `deepslate_diamond_ore` with default state values."] + pub fn deepslate_diamond_ore() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateDiamondOre, + state: BlockKind::DeepslateDiamondOre.default_state_id() + - BlockKind::DeepslateDiamondOre.min_state_id(), }; block } @@ -1339,7 +1460,8 @@ impl BlockId { pub fn diamond_block() -> Self { let mut block = Self { kind: BlockKind::DiamondBlock, - state: 0, + state: BlockKind::DiamondBlock.default_state_id() + - BlockKind::DiamondBlock.min_state_id(), }; block } @@ -1347,7 +1469,8 @@ impl BlockId { pub fn crafting_table() -> Self { let mut block = Self { kind: BlockKind::CraftingTable, - state: 0, + state: BlockKind::CraftingTable.default_state_id() + - BlockKind::CraftingTable.min_state_id(), }; block } @@ -1355,7 +1478,7 @@ impl BlockId { pub fn wheat() -> Self { let mut block = Self { kind: BlockKind::Wheat, - state: 0, + state: BlockKind::Wheat.default_state_id() - BlockKind::Wheat.min_state_id(), }; block.set_age_0_7(0i32); block @@ -1364,7 +1487,7 @@ impl BlockId { pub fn farmland() -> Self { let mut block = Self { kind: BlockKind::Farmland, - state: 0, + state: BlockKind::Farmland.default_state_id() - BlockKind::Farmland.min_state_id(), }; block.set_moisture(0i32); block @@ -1373,7 +1496,7 @@ impl BlockId { pub fn furnace() -> Self { let mut block = Self { kind: BlockKind::Furnace, - state: 0, + state: BlockKind::Furnace.default_state_id() - BlockKind::Furnace.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_lit(false); @@ -1383,7 +1506,7 @@ impl BlockId { pub fn oak_sign() -> Self { let mut block = Self { kind: BlockKind::OakSign, - state: 0, + state: BlockKind::OakSign.default_state_id() - BlockKind::OakSign.min_state_id(), }; block.set_rotation(0i32); block.set_waterlogged(false); @@ -1393,7 +1516,7 @@ impl BlockId { pub fn spruce_sign() -> Self { let mut block = Self { kind: BlockKind::SpruceSign, - state: 0, + state: BlockKind::SpruceSign.default_state_id() - BlockKind::SpruceSign.min_state_id(), }; block.set_rotation(0i32); block.set_waterlogged(false); @@ -1403,7 +1526,7 @@ impl BlockId { pub fn birch_sign() -> Self { let mut block = Self { kind: BlockKind::BirchSign, - state: 0, + state: BlockKind::BirchSign.default_state_id() - BlockKind::BirchSign.min_state_id(), }; block.set_rotation(0i32); block.set_waterlogged(false); @@ -1413,7 +1536,7 @@ impl BlockId { pub fn acacia_sign() -> Self { let mut block = Self { kind: BlockKind::AcaciaSign, - state: 0, + state: BlockKind::AcaciaSign.default_state_id() - BlockKind::AcaciaSign.min_state_id(), }; block.set_rotation(0i32); block.set_waterlogged(false); @@ -1423,7 +1546,7 @@ impl BlockId { pub fn jungle_sign() -> Self { let mut block = Self { kind: BlockKind::JungleSign, - state: 0, + state: BlockKind::JungleSign.default_state_id() - BlockKind::JungleSign.min_state_id(), }; block.set_rotation(0i32); block.set_waterlogged(false); @@ -1433,7 +1556,8 @@ impl BlockId { pub fn dark_oak_sign() -> Self { let mut block = Self { kind: BlockKind::DarkOakSign, - state: 0, + state: BlockKind::DarkOakSign.default_state_id() + - BlockKind::DarkOakSign.min_state_id(), }; block.set_rotation(0i32); block.set_waterlogged(false); @@ -1443,7 +1567,7 @@ impl BlockId { pub fn oak_door() -> Self { let mut block = Self { kind: BlockKind::OakDoor, - state: 0, + state: BlockKind::OakDoor.default_state_id() - BlockKind::OakDoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_upper_lower(HalfUpperLower::Lower); @@ -1456,26 +1580,28 @@ impl BlockId { pub fn ladder() -> Self { let mut block = Self { kind: BlockKind::Ladder, - state: 0, + state: BlockKind::Ladder.default_state_id() - BlockKind::Ladder.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(false); block } - #[doc = "Returns an instance of `rail` with default state values.\nThe default state values are as follows:\n* `rail_shape`: north_south\n"] + #[doc = "Returns an instance of `rail` with default state values.\nThe default state values are as follows:\n* `rail_shape`: north_south\n* `waterlogged`: false\n"] pub fn rail() -> Self { let mut block = Self { kind: BlockKind::Rail, - state: 0, + state: BlockKind::Rail.default_state_id() - BlockKind::Rail.min_state_id(), }; block.set_rail_shape(RailShape::NorthSouth); + block.set_waterlogged(false); block } #[doc = "Returns an instance of `cobblestone_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] pub fn cobblestone_stairs() -> Self { let mut block = Self { kind: BlockKind::CobblestoneStairs, - state: 0, + state: BlockKind::CobblestoneStairs.default_state_id() + - BlockKind::CobblestoneStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -1487,7 +1613,8 @@ impl BlockId { pub fn oak_wall_sign() -> Self { let mut block = Self { kind: BlockKind::OakWallSign, - state: 0, + state: BlockKind::OakWallSign.default_state_id() + - BlockKind::OakWallSign.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(false); @@ -1497,7 +1624,8 @@ impl BlockId { pub fn spruce_wall_sign() -> Self { let mut block = Self { kind: BlockKind::SpruceWallSign, - state: 0, + state: BlockKind::SpruceWallSign.default_state_id() + - BlockKind::SpruceWallSign.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(false); @@ -1507,7 +1635,8 @@ impl BlockId { pub fn birch_wall_sign() -> Self { let mut block = Self { kind: BlockKind::BirchWallSign, - state: 0, + state: BlockKind::BirchWallSign.default_state_id() + - BlockKind::BirchWallSign.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(false); @@ -1517,7 +1646,8 @@ impl BlockId { pub fn acacia_wall_sign() -> Self { let mut block = Self { kind: BlockKind::AcaciaWallSign, - state: 0, + state: BlockKind::AcaciaWallSign.default_state_id() + - BlockKind::AcaciaWallSign.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(false); @@ -1527,7 +1657,8 @@ impl BlockId { pub fn jungle_wall_sign() -> Self { let mut block = Self { kind: BlockKind::JungleWallSign, - state: 0, + state: BlockKind::JungleWallSign.default_state_id() + - BlockKind::JungleWallSign.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(false); @@ -1537,7 +1668,8 @@ impl BlockId { pub fn dark_oak_wall_sign() -> Self { let mut block = Self { kind: BlockKind::DarkOakWallSign, - state: 0, + state: BlockKind::DarkOakWallSign.default_state_id() + - BlockKind::DarkOakWallSign.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(false); @@ -1547,7 +1679,7 @@ impl BlockId { pub fn lever() -> Self { let mut block = Self { kind: BlockKind::Lever, - state: 0, + state: BlockKind::Lever.default_state_id() - BlockKind::Lever.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -1558,7 +1690,8 @@ impl BlockId { pub fn stone_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::StonePressurePlate, - state: 0, + state: BlockKind::StonePressurePlate.default_state_id() + - BlockKind::StonePressurePlate.min_state_id(), }; block.set_powered(false); block @@ -1567,7 +1700,7 @@ impl BlockId { pub fn iron_door() -> Self { let mut block = Self { kind: BlockKind::IronDoor, - state: 0, + state: BlockKind::IronDoor.default_state_id() - BlockKind::IronDoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_upper_lower(HalfUpperLower::Lower); @@ -1580,7 +1713,8 @@ impl BlockId { pub fn oak_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::OakPressurePlate, - state: 0, + state: BlockKind::OakPressurePlate.default_state_id() + - BlockKind::OakPressurePlate.min_state_id(), }; block.set_powered(false); block @@ -1589,7 +1723,8 @@ impl BlockId { pub fn spruce_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::SprucePressurePlate, - state: 0, + state: BlockKind::SprucePressurePlate.default_state_id() + - BlockKind::SprucePressurePlate.min_state_id(), }; block.set_powered(false); block @@ -1598,7 +1733,8 @@ impl BlockId { pub fn birch_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::BirchPressurePlate, - state: 0, + state: BlockKind::BirchPressurePlate.default_state_id() + - BlockKind::BirchPressurePlate.min_state_id(), }; block.set_powered(false); block @@ -1607,7 +1743,8 @@ impl BlockId { pub fn jungle_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::JunglePressurePlate, - state: 0, + state: BlockKind::JunglePressurePlate.default_state_id() + - BlockKind::JunglePressurePlate.min_state_id(), }; block.set_powered(false); block @@ -1616,7 +1753,8 @@ impl BlockId { pub fn acacia_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::AcaciaPressurePlate, - state: 0, + state: BlockKind::AcaciaPressurePlate.default_state_id() + - BlockKind::AcaciaPressurePlate.min_state_id(), }; block.set_powered(false); block @@ -1625,7 +1763,8 @@ impl BlockId { pub fn dark_oak_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::DarkOakPressurePlate, - state: 0, + state: BlockKind::DarkOakPressurePlate.default_state_id() + - BlockKind::DarkOakPressurePlate.min_state_id(), }; block.set_powered(false); block @@ -1634,7 +1773,18 @@ impl BlockId { pub fn redstone_ore() -> Self { let mut block = Self { kind: BlockKind::RedstoneOre, - state: 0, + state: BlockKind::RedstoneOre.default_state_id() + - BlockKind::RedstoneOre.min_state_id(), + }; + block.set_lit(false); + block + } + #[doc = "Returns an instance of `deepslate_redstone_ore` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn deepslate_redstone_ore() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateRedstoneOre, + state: BlockKind::DeepslateRedstoneOre.default_state_id() + - BlockKind::DeepslateRedstoneOre.min_state_id(), }; block.set_lit(false); block @@ -1643,7 +1793,8 @@ impl BlockId { pub fn redstone_torch() -> Self { let mut block = Self { kind: BlockKind::RedstoneTorch, - state: 0, + state: BlockKind::RedstoneTorch.default_state_id() + - BlockKind::RedstoneTorch.min_state_id(), }; block.set_lit(true); block @@ -1652,7 +1803,8 @@ impl BlockId { pub fn redstone_wall_torch() -> Self { let mut block = Self { kind: BlockKind::RedstoneWallTorch, - state: 0, + state: BlockKind::RedstoneWallTorch.default_state_id() + - BlockKind::RedstoneWallTorch.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_lit(true); @@ -1662,7 +1814,8 @@ impl BlockId { pub fn stone_button() -> Self { let mut block = Self { kind: BlockKind::StoneButton, - state: 0, + state: BlockKind::StoneButton.default_state_id() + - BlockKind::StoneButton.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -1673,7 +1826,7 @@ impl BlockId { pub fn snow() -> Self { let mut block = Self { kind: BlockKind::Snow, - state: 0, + state: BlockKind::Snow.default_state_id() - BlockKind::Snow.min_state_id(), }; block.set_layers(1i32); block @@ -1682,7 +1835,7 @@ impl BlockId { pub fn ice() -> Self { let mut block = Self { kind: BlockKind::Ice, - state: 0, + state: BlockKind::Ice.default_state_id() - BlockKind::Ice.min_state_id(), }; block } @@ -1690,7 +1843,7 @@ impl BlockId { pub fn snow_block() -> Self { let mut block = Self { kind: BlockKind::SnowBlock, - state: 0, + state: BlockKind::SnowBlock.default_state_id() - BlockKind::SnowBlock.min_state_id(), }; block } @@ -1698,7 +1851,7 @@ impl BlockId { pub fn cactus() -> Self { let mut block = Self { kind: BlockKind::Cactus, - state: 0, + state: BlockKind::Cactus.default_state_id() - BlockKind::Cactus.min_state_id(), }; block.set_age_0_15(0i32); block @@ -1707,7 +1860,7 @@ impl BlockId { pub fn clay() -> Self { let mut block = Self { kind: BlockKind::Clay, - state: 0, + state: BlockKind::Clay.default_state_id() - BlockKind::Clay.min_state_id(), }; block } @@ -1715,7 +1868,7 @@ impl BlockId { pub fn sugar_cane() -> Self { let mut block = Self { kind: BlockKind::SugarCane, - state: 0, + state: BlockKind::SugarCane.default_state_id() - BlockKind::SugarCane.min_state_id(), }; block.set_age_0_15(0i32); block @@ -1724,7 +1877,7 @@ impl BlockId { pub fn jukebox() -> Self { let mut block = Self { kind: BlockKind::Jukebox, - state: 0, + state: BlockKind::Jukebox.default_state_id() - BlockKind::Jukebox.min_state_id(), }; block.set_has_record(false); block @@ -1733,7 +1886,7 @@ impl BlockId { pub fn oak_fence() -> Self { let mut block = Self { kind: BlockKind::OakFence, - state: 0, + state: BlockKind::OakFence.default_state_id() - BlockKind::OakFence.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -1746,7 +1899,7 @@ impl BlockId { pub fn pumpkin() -> Self { let mut block = Self { kind: BlockKind::Pumpkin, - state: 0, + state: BlockKind::Pumpkin.default_state_id() - BlockKind::Pumpkin.min_state_id(), }; block } @@ -1754,7 +1907,7 @@ impl BlockId { pub fn netherrack() -> Self { let mut block = Self { kind: BlockKind::Netherrack, - state: 0, + state: BlockKind::Netherrack.default_state_id() - BlockKind::Netherrack.min_state_id(), }; block } @@ -1762,7 +1915,7 @@ impl BlockId { pub fn soul_sand() -> Self { let mut block = Self { kind: BlockKind::SoulSand, - state: 0, + state: BlockKind::SoulSand.default_state_id() - BlockKind::SoulSand.min_state_id(), }; block } @@ -1770,7 +1923,7 @@ impl BlockId { pub fn soul_soil() -> Self { let mut block = Self { kind: BlockKind::SoulSoil, - state: 0, + state: BlockKind::SoulSoil.default_state_id() - BlockKind::SoulSoil.min_state_id(), }; block } @@ -1778,7 +1931,7 @@ impl BlockId { pub fn basalt() -> Self { let mut block = Self { kind: BlockKind::Basalt, - state: 0, + state: BlockKind::Basalt.default_state_id() - BlockKind::Basalt.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -1787,7 +1940,8 @@ impl BlockId { pub fn polished_basalt() -> Self { let mut block = Self { kind: BlockKind::PolishedBasalt, - state: 0, + state: BlockKind::PolishedBasalt.default_state_id() + - BlockKind::PolishedBasalt.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -1796,7 +1950,7 @@ impl BlockId { pub fn soul_torch() -> Self { let mut block = Self { kind: BlockKind::SoulTorch, - state: 0, + state: BlockKind::SoulTorch.default_state_id() - BlockKind::SoulTorch.min_state_id(), }; block } @@ -1804,7 +1958,8 @@ impl BlockId { pub fn soul_wall_torch() -> Self { let mut block = Self { kind: BlockKind::SoulWallTorch, - state: 0, + state: BlockKind::SoulWallTorch.default_state_id() + - BlockKind::SoulWallTorch.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -1813,7 +1968,7 @@ impl BlockId { pub fn glowstone() -> Self { let mut block = Self { kind: BlockKind::Glowstone, - state: 0, + state: BlockKind::Glowstone.default_state_id() - BlockKind::Glowstone.min_state_id(), }; block } @@ -1821,7 +1976,8 @@ impl BlockId { pub fn nether_portal() -> Self { let mut block = Self { kind: BlockKind::NetherPortal, - state: 0, + state: BlockKind::NetherPortal.default_state_id() + - BlockKind::NetherPortal.min_state_id(), }; block.set_axis_xz(AxisXz::X); block @@ -1830,7 +1986,8 @@ impl BlockId { pub fn carved_pumpkin() -> Self { let mut block = Self { kind: BlockKind::CarvedPumpkin, - state: 0, + state: BlockKind::CarvedPumpkin.default_state_id() + - BlockKind::CarvedPumpkin.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -1839,7 +1996,8 @@ impl BlockId { pub fn jack_o_lantern() -> Self { let mut block = Self { kind: BlockKind::JackOLantern, - state: 0, + state: BlockKind::JackOLantern.default_state_id() + - BlockKind::JackOLantern.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -1848,7 +2006,7 @@ impl BlockId { pub fn cake() -> Self { let mut block = Self { kind: BlockKind::Cake, - state: 0, + state: BlockKind::Cake.default_state_id() - BlockKind::Cake.min_state_id(), }; block.set_bites(0i32); block @@ -1857,7 +2015,7 @@ impl BlockId { pub fn repeater() -> Self { let mut block = Self { kind: BlockKind::Repeater, - state: 0, + state: BlockKind::Repeater.default_state_id() - BlockKind::Repeater.min_state_id(), }; block.set_delay(1i32); block.set_facing_cardinal(FacingCardinal::North); @@ -1869,7 +2027,8 @@ impl BlockId { pub fn white_stained_glass() -> Self { let mut block = Self { kind: BlockKind::WhiteStainedGlass, - state: 0, + state: BlockKind::WhiteStainedGlass.default_state_id() + - BlockKind::WhiteStainedGlass.min_state_id(), }; block } @@ -1877,7 +2036,8 @@ impl BlockId { pub fn orange_stained_glass() -> Self { let mut block = Self { kind: BlockKind::OrangeStainedGlass, - state: 0, + state: BlockKind::OrangeStainedGlass.default_state_id() + - BlockKind::OrangeStainedGlass.min_state_id(), }; block } @@ -1885,7 +2045,8 @@ impl BlockId { pub fn magenta_stained_glass() -> Self { let mut block = Self { kind: BlockKind::MagentaStainedGlass, - state: 0, + state: BlockKind::MagentaStainedGlass.default_state_id() + - BlockKind::MagentaStainedGlass.min_state_id(), }; block } @@ -1893,7 +2054,8 @@ impl BlockId { pub fn light_blue_stained_glass() -> Self { let mut block = Self { kind: BlockKind::LightBlueStainedGlass, - state: 0, + state: BlockKind::LightBlueStainedGlass.default_state_id() + - BlockKind::LightBlueStainedGlass.min_state_id(), }; block } @@ -1901,7 +2063,8 @@ impl BlockId { pub fn yellow_stained_glass() -> Self { let mut block = Self { kind: BlockKind::YellowStainedGlass, - state: 0, + state: BlockKind::YellowStainedGlass.default_state_id() + - BlockKind::YellowStainedGlass.min_state_id(), }; block } @@ -1909,7 +2072,8 @@ impl BlockId { pub fn lime_stained_glass() -> Self { let mut block = Self { kind: BlockKind::LimeStainedGlass, - state: 0, + state: BlockKind::LimeStainedGlass.default_state_id() + - BlockKind::LimeStainedGlass.min_state_id(), }; block } @@ -1917,7 +2081,8 @@ impl BlockId { pub fn pink_stained_glass() -> Self { let mut block = Self { kind: BlockKind::PinkStainedGlass, - state: 0, + state: BlockKind::PinkStainedGlass.default_state_id() + - BlockKind::PinkStainedGlass.min_state_id(), }; block } @@ -1925,7 +2090,8 @@ impl BlockId { pub fn gray_stained_glass() -> Self { let mut block = Self { kind: BlockKind::GrayStainedGlass, - state: 0, + state: BlockKind::GrayStainedGlass.default_state_id() + - BlockKind::GrayStainedGlass.min_state_id(), }; block } @@ -1933,7 +2099,8 @@ impl BlockId { pub fn light_gray_stained_glass() -> Self { let mut block = Self { kind: BlockKind::LightGrayStainedGlass, - state: 0, + state: BlockKind::LightGrayStainedGlass.default_state_id() + - BlockKind::LightGrayStainedGlass.min_state_id(), }; block } @@ -1941,7 +2108,8 @@ impl BlockId { pub fn cyan_stained_glass() -> Self { let mut block = Self { kind: BlockKind::CyanStainedGlass, - state: 0, + state: BlockKind::CyanStainedGlass.default_state_id() + - BlockKind::CyanStainedGlass.min_state_id(), }; block } @@ -1949,7 +2117,8 @@ impl BlockId { pub fn purple_stained_glass() -> Self { let mut block = Self { kind: BlockKind::PurpleStainedGlass, - state: 0, + state: BlockKind::PurpleStainedGlass.default_state_id() + - BlockKind::PurpleStainedGlass.min_state_id(), }; block } @@ -1957,7 +2126,8 @@ impl BlockId { pub fn blue_stained_glass() -> Self { let mut block = Self { kind: BlockKind::BlueStainedGlass, - state: 0, + state: BlockKind::BlueStainedGlass.default_state_id() + - BlockKind::BlueStainedGlass.min_state_id(), }; block } @@ -1965,7 +2135,8 @@ impl BlockId { pub fn brown_stained_glass() -> Self { let mut block = Self { kind: BlockKind::BrownStainedGlass, - state: 0, + state: BlockKind::BrownStainedGlass.default_state_id() + - BlockKind::BrownStainedGlass.min_state_id(), }; block } @@ -1973,7 +2144,8 @@ impl BlockId { pub fn green_stained_glass() -> Self { let mut block = Self { kind: BlockKind::GreenStainedGlass, - state: 0, + state: BlockKind::GreenStainedGlass.default_state_id() + - BlockKind::GreenStainedGlass.min_state_id(), }; block } @@ -1981,7 +2153,8 @@ impl BlockId { pub fn red_stained_glass() -> Self { let mut block = Self { kind: BlockKind::RedStainedGlass, - state: 0, + state: BlockKind::RedStainedGlass.default_state_id() + - BlockKind::RedStainedGlass.min_state_id(), }; block } @@ -1989,7 +2162,8 @@ impl BlockId { pub fn black_stained_glass() -> Self { let mut block = Self { kind: BlockKind::BlackStainedGlass, - state: 0, + state: BlockKind::BlackStainedGlass.default_state_id() + - BlockKind::BlackStainedGlass.min_state_id(), }; block } @@ -1997,7 +2171,8 @@ impl BlockId { pub fn oak_trapdoor() -> Self { let mut block = Self { kind: BlockKind::OakTrapdoor, - state: 0, + state: BlockKind::OakTrapdoor.default_state_id() + - BlockKind::OakTrapdoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2010,7 +2185,8 @@ impl BlockId { pub fn spruce_trapdoor() -> Self { let mut block = Self { kind: BlockKind::SpruceTrapdoor, - state: 0, + state: BlockKind::SpruceTrapdoor.default_state_id() + - BlockKind::SpruceTrapdoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2023,7 +2199,8 @@ impl BlockId { pub fn birch_trapdoor() -> Self { let mut block = Self { kind: BlockKind::BirchTrapdoor, - state: 0, + state: BlockKind::BirchTrapdoor.default_state_id() + - BlockKind::BirchTrapdoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2036,7 +2213,8 @@ impl BlockId { pub fn jungle_trapdoor() -> Self { let mut block = Self { kind: BlockKind::JungleTrapdoor, - state: 0, + state: BlockKind::JungleTrapdoor.default_state_id() + - BlockKind::JungleTrapdoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2049,7 +2227,8 @@ impl BlockId { pub fn acacia_trapdoor() -> Self { let mut block = Self { kind: BlockKind::AcaciaTrapdoor, - state: 0, + state: BlockKind::AcaciaTrapdoor.default_state_id() + - BlockKind::AcaciaTrapdoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2062,7 +2241,8 @@ impl BlockId { pub fn dark_oak_trapdoor() -> Self { let mut block = Self { kind: BlockKind::DarkOakTrapdoor, - state: 0, + state: BlockKind::DarkOakTrapdoor.default_state_id() + - BlockKind::DarkOakTrapdoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2075,7 +2255,8 @@ impl BlockId { pub fn stone_bricks() -> Self { let mut block = Self { kind: BlockKind::StoneBricks, - state: 0, + state: BlockKind::StoneBricks.default_state_id() + - BlockKind::StoneBricks.min_state_id(), }; block } @@ -2083,7 +2264,8 @@ impl BlockId { pub fn mossy_stone_bricks() -> Self { let mut block = Self { kind: BlockKind::MossyStoneBricks, - state: 0, + state: BlockKind::MossyStoneBricks.default_state_id() + - BlockKind::MossyStoneBricks.min_state_id(), }; block } @@ -2091,7 +2273,8 @@ impl BlockId { pub fn cracked_stone_bricks() -> Self { let mut block = Self { kind: BlockKind::CrackedStoneBricks, - state: 0, + state: BlockKind::CrackedStoneBricks.default_state_id() + - BlockKind::CrackedStoneBricks.min_state_id(), }; block } @@ -2099,7 +2282,8 @@ impl BlockId { pub fn chiseled_stone_bricks() -> Self { let mut block = Self { kind: BlockKind::ChiseledStoneBricks, - state: 0, + state: BlockKind::ChiseledStoneBricks.default_state_id() + - BlockKind::ChiseledStoneBricks.min_state_id(), }; block } @@ -2107,7 +2291,8 @@ impl BlockId { pub fn infested_stone() -> Self { let mut block = Self { kind: BlockKind::InfestedStone, - state: 0, + state: BlockKind::InfestedStone.default_state_id() + - BlockKind::InfestedStone.min_state_id(), }; block } @@ -2115,7 +2300,8 @@ impl BlockId { pub fn infested_cobblestone() -> Self { let mut block = Self { kind: BlockKind::InfestedCobblestone, - state: 0, + state: BlockKind::InfestedCobblestone.default_state_id() + - BlockKind::InfestedCobblestone.min_state_id(), }; block } @@ -2123,7 +2309,8 @@ impl BlockId { pub fn infested_stone_bricks() -> Self { let mut block = Self { kind: BlockKind::InfestedStoneBricks, - state: 0, + state: BlockKind::InfestedStoneBricks.default_state_id() + - BlockKind::InfestedStoneBricks.min_state_id(), }; block } @@ -2131,7 +2318,8 @@ impl BlockId { pub fn infested_mossy_stone_bricks() -> Self { let mut block = Self { kind: BlockKind::InfestedMossyStoneBricks, - state: 0, + state: BlockKind::InfestedMossyStoneBricks.default_state_id() + - BlockKind::InfestedMossyStoneBricks.min_state_id(), }; block } @@ -2139,7 +2327,8 @@ impl BlockId { pub fn infested_cracked_stone_bricks() -> Self { let mut block = Self { kind: BlockKind::InfestedCrackedStoneBricks, - state: 0, + state: BlockKind::InfestedCrackedStoneBricks.default_state_id() + - BlockKind::InfestedCrackedStoneBricks.min_state_id(), }; block } @@ -2147,7 +2336,8 @@ impl BlockId { pub fn infested_chiseled_stone_bricks() -> Self { let mut block = Self { kind: BlockKind::InfestedChiseledStoneBricks, - state: 0, + state: BlockKind::InfestedChiseledStoneBricks.default_state_id() + - BlockKind::InfestedChiseledStoneBricks.min_state_id(), }; block } @@ -2155,7 +2345,8 @@ impl BlockId { pub fn brown_mushroom_block() -> Self { let mut block = Self { kind: BlockKind::BrownMushroomBlock, - state: 0, + state: BlockKind::BrownMushroomBlock.default_state_id() + - BlockKind::BrownMushroomBlock.min_state_id(), }; block.set_down(true); block.set_east_connected(true); @@ -2169,7 +2360,8 @@ impl BlockId { pub fn red_mushroom_block() -> Self { let mut block = Self { kind: BlockKind::RedMushroomBlock, - state: 0, + state: BlockKind::RedMushroomBlock.default_state_id() + - BlockKind::RedMushroomBlock.min_state_id(), }; block.set_down(true); block.set_east_connected(true); @@ -2183,7 +2375,8 @@ impl BlockId { pub fn mushroom_stem() -> Self { let mut block = Self { kind: BlockKind::MushroomStem, - state: 0, + state: BlockKind::MushroomStem.default_state_id() + - BlockKind::MushroomStem.min_state_id(), }; block.set_down(true); block.set_east_connected(true); @@ -2197,7 +2390,7 @@ impl BlockId { pub fn iron_bars() -> Self { let mut block = Self { kind: BlockKind::IronBars, - state: 0, + state: BlockKind::IronBars.default_state_id() - BlockKind::IronBars.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -2210,7 +2403,7 @@ impl BlockId { pub fn chain() -> Self { let mut block = Self { kind: BlockKind::Chain, - state: 0, + state: BlockKind::Chain.default_state_id() - BlockKind::Chain.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block.set_waterlogged(false); @@ -2220,7 +2413,7 @@ impl BlockId { pub fn glass_pane() -> Self { let mut block = Self { kind: BlockKind::GlassPane, - state: 0, + state: BlockKind::GlassPane.default_state_id() - BlockKind::GlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -2233,7 +2426,7 @@ impl BlockId { pub fn melon() -> Self { let mut block = Self { kind: BlockKind::Melon, - state: 0, + state: BlockKind::Melon.default_state_id() - BlockKind::Melon.min_state_id(), }; block } @@ -2241,7 +2434,8 @@ impl BlockId { pub fn attached_pumpkin_stem() -> Self { let mut block = Self { kind: BlockKind::AttachedPumpkinStem, - state: 0, + state: BlockKind::AttachedPumpkinStem.default_state_id() + - BlockKind::AttachedPumpkinStem.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -2250,7 +2444,8 @@ impl BlockId { pub fn attached_melon_stem() -> Self { let mut block = Self { kind: BlockKind::AttachedMelonStem, - state: 0, + state: BlockKind::AttachedMelonStem.default_state_id() + - BlockKind::AttachedMelonStem.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -2259,7 +2454,8 @@ impl BlockId { pub fn pumpkin_stem() -> Self { let mut block = Self { kind: BlockKind::PumpkinStem, - state: 0, + state: BlockKind::PumpkinStem.default_state_id() + - BlockKind::PumpkinStem.min_state_id(), }; block.set_age_0_7(0i32); block @@ -2268,7 +2464,7 @@ impl BlockId { pub fn melon_stem() -> Self { let mut block = Self { kind: BlockKind::MelonStem, - state: 0, + state: BlockKind::MelonStem.default_state_id() - BlockKind::MelonStem.min_state_id(), }; block.set_age_0_7(0i32); block @@ -2277,12 +2473,27 @@ impl BlockId { pub fn vine() -> Self { let mut block = Self { kind: BlockKind::Vine, - state: 0, + state: BlockKind::Vine.default_state_id() - BlockKind::Vine.min_state_id(), + }; + block.set_east_connected(false); + block.set_north_connected(false); + block.set_south_connected(false); + block.set_up(false); + block.set_west_connected(false); + block + } + #[doc = "Returns an instance of `glow_lichen` with default state values.\nThe default state values are as follows:\n* `down`: false\n* `east_connected`: false\n* `north_connected`: false\n* `south_connected`: false\n* `up`: false\n* `waterlogged`: false\n* `west_connected`: false\n"] + pub fn glow_lichen() -> Self { + let mut block = Self { + kind: BlockKind::GlowLichen, + state: BlockKind::GlowLichen.default_state_id() - BlockKind::GlowLichen.min_state_id(), }; + block.set_down(false); block.set_east_connected(false); block.set_north_connected(false); block.set_south_connected(false); block.set_up(false); + block.set_waterlogged(false); block.set_west_connected(false); block } @@ -2290,7 +2501,8 @@ impl BlockId { pub fn oak_fence_gate() -> Self { let mut block = Self { kind: BlockKind::OakFenceGate, - state: 0, + state: BlockKind::OakFenceGate.default_state_id() + - BlockKind::OakFenceGate.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_in_wall(false); @@ -2302,7 +2514,8 @@ impl BlockId { pub fn brick_stairs() -> Self { let mut block = Self { kind: BlockKind::BrickStairs, - state: 0, + state: BlockKind::BrickStairs.default_state_id() + - BlockKind::BrickStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2314,7 +2527,8 @@ impl BlockId { pub fn stone_brick_stairs() -> Self { let mut block = Self { kind: BlockKind::StoneBrickStairs, - state: 0, + state: BlockKind::StoneBrickStairs.default_state_id() + - BlockKind::StoneBrickStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2326,7 +2540,7 @@ impl BlockId { pub fn mycelium() -> Self { let mut block = Self { kind: BlockKind::Mycelium, - state: 0, + state: BlockKind::Mycelium.default_state_id() - BlockKind::Mycelium.min_state_id(), }; block.set_snowy(false); block @@ -2335,7 +2549,7 @@ impl BlockId { pub fn lily_pad() -> Self { let mut block = Self { kind: BlockKind::LilyPad, - state: 0, + state: BlockKind::LilyPad.default_state_id() - BlockKind::LilyPad.min_state_id(), }; block } @@ -2343,7 +2557,8 @@ impl BlockId { pub fn nether_bricks() -> Self { let mut block = Self { kind: BlockKind::NetherBricks, - state: 0, + state: BlockKind::NetherBricks.default_state_id() + - BlockKind::NetherBricks.min_state_id(), }; block } @@ -2351,7 +2566,8 @@ impl BlockId { pub fn nether_brick_fence() -> Self { let mut block = Self { kind: BlockKind::NetherBrickFence, - state: 0, + state: BlockKind::NetherBrickFence.default_state_id() + - BlockKind::NetherBrickFence.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -2364,7 +2580,8 @@ impl BlockId { pub fn nether_brick_stairs() -> Self { let mut block = Self { kind: BlockKind::NetherBrickStairs, - state: 0, + state: BlockKind::NetherBrickStairs.default_state_id() + - BlockKind::NetherBrickStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2376,7 +2593,7 @@ impl BlockId { pub fn nether_wart() -> Self { let mut block = Self { kind: BlockKind::NetherWart, - state: 0, + state: BlockKind::NetherWart.default_state_id() - BlockKind::NetherWart.min_state_id(), }; block.set_age_0_3(0i32); block @@ -2385,7 +2602,8 @@ impl BlockId { pub fn enchanting_table() -> Self { let mut block = Self { kind: BlockKind::EnchantingTable, - state: 0, + state: BlockKind::EnchantingTable.default_state_id() + - BlockKind::EnchantingTable.min_state_id(), }; block } @@ -2393,27 +2611,56 @@ impl BlockId { pub fn brewing_stand() -> Self { let mut block = Self { kind: BlockKind::BrewingStand, - state: 0, + state: BlockKind::BrewingStand.default_state_id() + - BlockKind::BrewingStand.min_state_id(), }; block.set_has_bottle_0(false); block.set_has_bottle_1(false); block.set_has_bottle_2(false); block } - #[doc = "Returns an instance of `cauldron` with default state values.\nThe default state values are as follows:\n* `cauldron_level`: 0\n"] + #[doc = "Returns an instance of `cauldron` with default state values."] pub fn cauldron() -> Self { let mut block = Self { kind: BlockKind::Cauldron, - state: 0, + state: BlockKind::Cauldron.default_state_id() - BlockKind::Cauldron.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `water_cauldron` with default state values.\nThe default state values are as follows:\n* `level_1_3`: 1\n"] + pub fn water_cauldron() -> Self { + let mut block = Self { + kind: BlockKind::WaterCauldron, + state: BlockKind::WaterCauldron.default_state_id() + - BlockKind::WaterCauldron.min_state_id(), + }; + block.set_level_1_3(1i32); + block + } + #[doc = "Returns an instance of `lava_cauldron` with default state values."] + pub fn lava_cauldron() -> Self { + let mut block = Self { + kind: BlockKind::LavaCauldron, + state: BlockKind::LavaCauldron.default_state_id() + - BlockKind::LavaCauldron.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `powder_snow_cauldron` with default state values.\nThe default state values are as follows:\n* `level_1_3`: 1\n"] + pub fn powder_snow_cauldron() -> Self { + let mut block = Self { + kind: BlockKind::PowderSnowCauldron, + state: BlockKind::PowderSnowCauldron.default_state_id() + - BlockKind::PowderSnowCauldron.min_state_id(), }; - block.set_cauldron_level(0i32); + block.set_level_1_3(1i32); block } #[doc = "Returns an instance of `end_portal` with default state values."] pub fn end_portal() -> Self { let mut block = Self { kind: BlockKind::EndPortal, - state: 0, + state: BlockKind::EndPortal.default_state_id() - BlockKind::EndPortal.min_state_id(), }; block } @@ -2421,7 +2668,8 @@ impl BlockId { pub fn end_portal_frame() -> Self { let mut block = Self { kind: BlockKind::EndPortalFrame, - state: 0, + state: BlockKind::EndPortalFrame.default_state_id() + - BlockKind::EndPortalFrame.min_state_id(), }; block.set_eye(false); block.set_facing_cardinal(FacingCardinal::North); @@ -2431,7 +2679,7 @@ impl BlockId { pub fn end_stone() -> Self { let mut block = Self { kind: BlockKind::EndStone, - state: 0, + state: BlockKind::EndStone.default_state_id() - BlockKind::EndStone.min_state_id(), }; block } @@ -2439,7 +2687,7 @@ impl BlockId { pub fn dragon_egg() -> Self { let mut block = Self { kind: BlockKind::DragonEgg, - state: 0, + state: BlockKind::DragonEgg.default_state_id() - BlockKind::DragonEgg.min_state_id(), }; block } @@ -2447,7 +2695,8 @@ impl BlockId { pub fn redstone_lamp() -> Self { let mut block = Self { kind: BlockKind::RedstoneLamp, - state: 0, + state: BlockKind::RedstoneLamp.default_state_id() + - BlockKind::RedstoneLamp.min_state_id(), }; block.set_lit(false); block @@ -2456,7 +2705,7 @@ impl BlockId { pub fn cocoa() -> Self { let mut block = Self { kind: BlockKind::Cocoa, - state: 0, + state: BlockKind::Cocoa.default_state_id() - BlockKind::Cocoa.min_state_id(), }; block.set_age_0_2(0i32); block.set_facing_cardinal(FacingCardinal::North); @@ -2466,7 +2715,8 @@ impl BlockId { pub fn sandstone_stairs() -> Self { let mut block = Self { kind: BlockKind::SandstoneStairs, - state: 0, + state: BlockKind::SandstoneStairs.default_state_id() + - BlockKind::SandstoneStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2478,7 +2728,16 @@ impl BlockId { pub fn emerald_ore() -> Self { let mut block = Self { kind: BlockKind::EmeraldOre, - state: 0, + state: BlockKind::EmeraldOre.default_state_id() - BlockKind::EmeraldOre.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `deepslate_emerald_ore` with default state values."] + pub fn deepslate_emerald_ore() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateEmeraldOre, + state: BlockKind::DeepslateEmeraldOre.default_state_id() + - BlockKind::DeepslateEmeraldOre.min_state_id(), }; block } @@ -2486,7 +2745,7 @@ impl BlockId { pub fn ender_chest() -> Self { let mut block = Self { kind: BlockKind::EnderChest, - state: 0, + state: BlockKind::EnderChest.default_state_id() - BlockKind::EnderChest.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(false); @@ -2496,7 +2755,8 @@ impl BlockId { pub fn tripwire_hook() -> Self { let mut block = Self { kind: BlockKind::TripwireHook, - state: 0, + state: BlockKind::TripwireHook.default_state_id() + - BlockKind::TripwireHook.min_state_id(), }; block.set_attached(false); block.set_facing_cardinal(FacingCardinal::North); @@ -2507,7 +2767,7 @@ impl BlockId { pub fn tripwire() -> Self { let mut block = Self { kind: BlockKind::Tripwire, - state: 0, + state: BlockKind::Tripwire.default_state_id() - BlockKind::Tripwire.min_state_id(), }; block.set_attached(false); block.set_disarmed(false); @@ -2522,7 +2782,8 @@ impl BlockId { pub fn emerald_block() -> Self { let mut block = Self { kind: BlockKind::EmeraldBlock, - state: 0, + state: BlockKind::EmeraldBlock.default_state_id() + - BlockKind::EmeraldBlock.min_state_id(), }; block } @@ -2530,7 +2791,8 @@ impl BlockId { pub fn spruce_stairs() -> Self { let mut block = Self { kind: BlockKind::SpruceStairs, - state: 0, + state: BlockKind::SpruceStairs.default_state_id() + - BlockKind::SpruceStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2542,7 +2804,8 @@ impl BlockId { pub fn birch_stairs() -> Self { let mut block = Self { kind: BlockKind::BirchStairs, - state: 0, + state: BlockKind::BirchStairs.default_state_id() + - BlockKind::BirchStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2554,7 +2817,8 @@ impl BlockId { pub fn jungle_stairs() -> Self { let mut block = Self { kind: BlockKind::JungleStairs, - state: 0, + state: BlockKind::JungleStairs.default_state_id() + - BlockKind::JungleStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -2566,7 +2830,8 @@ impl BlockId { pub fn command_block() -> Self { let mut block = Self { kind: BlockKind::CommandBlock, - state: 0, + state: BlockKind::CommandBlock.default_state_id() + - BlockKind::CommandBlock.min_state_id(), }; block.set_conditional(false); block.set_facing_cubic(FacingCubic::North); @@ -2576,7 +2841,7 @@ impl BlockId { pub fn beacon() -> Self { let mut block = Self { kind: BlockKind::Beacon, - state: 0, + state: BlockKind::Beacon.default_state_id() - BlockKind::Beacon.min_state_id(), }; block } @@ -2584,7 +2849,8 @@ impl BlockId { pub fn cobblestone_wall() -> Self { let mut block = Self { kind: BlockKind::CobblestoneWall, - state: 0, + state: BlockKind::CobblestoneWall.default_state_id() + - BlockKind::CobblestoneWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -2598,7 +2864,8 @@ impl BlockId { pub fn mossy_cobblestone_wall() -> Self { let mut block = Self { kind: BlockKind::MossyCobblestoneWall, - state: 0, + state: BlockKind::MossyCobblestoneWall.default_state_id() + - BlockKind::MossyCobblestoneWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -2612,7 +2879,7 @@ impl BlockId { pub fn flower_pot() -> Self { let mut block = Self { kind: BlockKind::FlowerPot, - state: 0, + state: BlockKind::FlowerPot.default_state_id() - BlockKind::FlowerPot.min_state_id(), }; block } @@ -2620,7 +2887,8 @@ impl BlockId { pub fn potted_oak_sapling() -> Self { let mut block = Self { kind: BlockKind::PottedOakSapling, - state: 0, + state: BlockKind::PottedOakSapling.default_state_id() + - BlockKind::PottedOakSapling.min_state_id(), }; block } @@ -2628,7 +2896,8 @@ impl BlockId { pub fn potted_spruce_sapling() -> Self { let mut block = Self { kind: BlockKind::PottedSpruceSapling, - state: 0, + state: BlockKind::PottedSpruceSapling.default_state_id() + - BlockKind::PottedSpruceSapling.min_state_id(), }; block } @@ -2636,7 +2905,8 @@ impl BlockId { pub fn potted_birch_sapling() -> Self { let mut block = Self { kind: BlockKind::PottedBirchSapling, - state: 0, + state: BlockKind::PottedBirchSapling.default_state_id() + - BlockKind::PottedBirchSapling.min_state_id(), }; block } @@ -2644,7 +2914,8 @@ impl BlockId { pub fn potted_jungle_sapling() -> Self { let mut block = Self { kind: BlockKind::PottedJungleSapling, - state: 0, + state: BlockKind::PottedJungleSapling.default_state_id() + - BlockKind::PottedJungleSapling.min_state_id(), }; block } @@ -2652,7 +2923,8 @@ impl BlockId { pub fn potted_acacia_sapling() -> Self { let mut block = Self { kind: BlockKind::PottedAcaciaSapling, - state: 0, + state: BlockKind::PottedAcaciaSapling.default_state_id() + - BlockKind::PottedAcaciaSapling.min_state_id(), }; block } @@ -2660,7 +2932,8 @@ impl BlockId { pub fn potted_dark_oak_sapling() -> Self { let mut block = Self { kind: BlockKind::PottedDarkOakSapling, - state: 0, + state: BlockKind::PottedDarkOakSapling.default_state_id() + - BlockKind::PottedDarkOakSapling.min_state_id(), }; block } @@ -2668,7 +2941,7 @@ impl BlockId { pub fn potted_fern() -> Self { let mut block = Self { kind: BlockKind::PottedFern, - state: 0, + state: BlockKind::PottedFern.default_state_id() - BlockKind::PottedFern.min_state_id(), }; block } @@ -2676,7 +2949,8 @@ impl BlockId { pub fn potted_dandelion() -> Self { let mut block = Self { kind: BlockKind::PottedDandelion, - state: 0, + state: BlockKind::PottedDandelion.default_state_id() + - BlockKind::PottedDandelion.min_state_id(), }; block } @@ -2684,7 +2958,8 @@ impl BlockId { pub fn potted_poppy() -> Self { let mut block = Self { kind: BlockKind::PottedPoppy, - state: 0, + state: BlockKind::PottedPoppy.default_state_id() + - BlockKind::PottedPoppy.min_state_id(), }; block } @@ -2692,7 +2967,8 @@ impl BlockId { pub fn potted_blue_orchid() -> Self { let mut block = Self { kind: BlockKind::PottedBlueOrchid, - state: 0, + state: BlockKind::PottedBlueOrchid.default_state_id() + - BlockKind::PottedBlueOrchid.min_state_id(), }; block } @@ -2700,7 +2976,8 @@ impl BlockId { pub fn potted_allium() -> Self { let mut block = Self { kind: BlockKind::PottedAllium, - state: 0, + state: BlockKind::PottedAllium.default_state_id() + - BlockKind::PottedAllium.min_state_id(), }; block } @@ -2708,7 +2985,8 @@ impl BlockId { pub fn potted_azure_bluet() -> Self { let mut block = Self { kind: BlockKind::PottedAzureBluet, - state: 0, + state: BlockKind::PottedAzureBluet.default_state_id() + - BlockKind::PottedAzureBluet.min_state_id(), }; block } @@ -2716,7 +2994,8 @@ impl BlockId { pub fn potted_red_tulip() -> Self { let mut block = Self { kind: BlockKind::PottedRedTulip, - state: 0, + state: BlockKind::PottedRedTulip.default_state_id() + - BlockKind::PottedRedTulip.min_state_id(), }; block } @@ -2724,7 +3003,8 @@ impl BlockId { pub fn potted_orange_tulip() -> Self { let mut block = Self { kind: BlockKind::PottedOrangeTulip, - state: 0, + state: BlockKind::PottedOrangeTulip.default_state_id() + - BlockKind::PottedOrangeTulip.min_state_id(), }; block } @@ -2732,7 +3012,8 @@ impl BlockId { pub fn potted_white_tulip() -> Self { let mut block = Self { kind: BlockKind::PottedWhiteTulip, - state: 0, + state: BlockKind::PottedWhiteTulip.default_state_id() + - BlockKind::PottedWhiteTulip.min_state_id(), }; block } @@ -2740,7 +3021,8 @@ impl BlockId { pub fn potted_pink_tulip() -> Self { let mut block = Self { kind: BlockKind::PottedPinkTulip, - state: 0, + state: BlockKind::PottedPinkTulip.default_state_id() + - BlockKind::PottedPinkTulip.min_state_id(), }; block } @@ -2748,7 +3030,8 @@ impl BlockId { pub fn potted_oxeye_daisy() -> Self { let mut block = Self { kind: BlockKind::PottedOxeyeDaisy, - state: 0, + state: BlockKind::PottedOxeyeDaisy.default_state_id() + - BlockKind::PottedOxeyeDaisy.min_state_id(), }; block } @@ -2756,7 +3039,8 @@ impl BlockId { pub fn potted_cornflower() -> Self { let mut block = Self { kind: BlockKind::PottedCornflower, - state: 0, + state: BlockKind::PottedCornflower.default_state_id() + - BlockKind::PottedCornflower.min_state_id(), }; block } @@ -2764,7 +3048,8 @@ impl BlockId { pub fn potted_lily_of_the_valley() -> Self { let mut block = Self { kind: BlockKind::PottedLilyOfTheValley, - state: 0, + state: BlockKind::PottedLilyOfTheValley.default_state_id() + - BlockKind::PottedLilyOfTheValley.min_state_id(), }; block } @@ -2772,7 +3057,8 @@ impl BlockId { pub fn potted_wither_rose() -> Self { let mut block = Self { kind: BlockKind::PottedWitherRose, - state: 0, + state: BlockKind::PottedWitherRose.default_state_id() + - BlockKind::PottedWitherRose.min_state_id(), }; block } @@ -2780,7 +3066,8 @@ impl BlockId { pub fn potted_red_mushroom() -> Self { let mut block = Self { kind: BlockKind::PottedRedMushroom, - state: 0, + state: BlockKind::PottedRedMushroom.default_state_id() + - BlockKind::PottedRedMushroom.min_state_id(), }; block } @@ -2788,7 +3075,8 @@ impl BlockId { pub fn potted_brown_mushroom() -> Self { let mut block = Self { kind: BlockKind::PottedBrownMushroom, - state: 0, + state: BlockKind::PottedBrownMushroom.default_state_id() + - BlockKind::PottedBrownMushroom.min_state_id(), }; block } @@ -2796,7 +3084,8 @@ impl BlockId { pub fn potted_dead_bush() -> Self { let mut block = Self { kind: BlockKind::PottedDeadBush, - state: 0, + state: BlockKind::PottedDeadBush.default_state_id() + - BlockKind::PottedDeadBush.min_state_id(), }; block } @@ -2804,7 +3093,8 @@ impl BlockId { pub fn potted_cactus() -> Self { let mut block = Self { kind: BlockKind::PottedCactus, - state: 0, + state: BlockKind::PottedCactus.default_state_id() + - BlockKind::PottedCactus.min_state_id(), }; block } @@ -2812,7 +3102,7 @@ impl BlockId { pub fn carrots() -> Self { let mut block = Self { kind: BlockKind::Carrots, - state: 0, + state: BlockKind::Carrots.default_state_id() - BlockKind::Carrots.min_state_id(), }; block.set_age_0_7(0i32); block @@ -2821,7 +3111,7 @@ impl BlockId { pub fn potatoes() -> Self { let mut block = Self { kind: BlockKind::Potatoes, - state: 0, + state: BlockKind::Potatoes.default_state_id() - BlockKind::Potatoes.min_state_id(), }; block.set_age_0_7(0i32); block @@ -2830,7 +3120,7 @@ impl BlockId { pub fn oak_button() -> Self { let mut block = Self { kind: BlockKind::OakButton, - state: 0, + state: BlockKind::OakButton.default_state_id() - BlockKind::OakButton.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -2841,7 +3131,8 @@ impl BlockId { pub fn spruce_button() -> Self { let mut block = Self { kind: BlockKind::SpruceButton, - state: 0, + state: BlockKind::SpruceButton.default_state_id() + - BlockKind::SpruceButton.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -2852,7 +3143,8 @@ impl BlockId { pub fn birch_button() -> Self { let mut block = Self { kind: BlockKind::BirchButton, - state: 0, + state: BlockKind::BirchButton.default_state_id() + - BlockKind::BirchButton.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -2863,7 +3155,8 @@ impl BlockId { pub fn jungle_button() -> Self { let mut block = Self { kind: BlockKind::JungleButton, - state: 0, + state: BlockKind::JungleButton.default_state_id() + - BlockKind::JungleButton.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -2874,7 +3167,8 @@ impl BlockId { pub fn acacia_button() -> Self { let mut block = Self { kind: BlockKind::AcaciaButton, - state: 0, + state: BlockKind::AcaciaButton.default_state_id() + - BlockKind::AcaciaButton.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -2885,7 +3179,8 @@ impl BlockId { pub fn dark_oak_button() -> Self { let mut block = Self { kind: BlockKind::DarkOakButton, - state: 0, + state: BlockKind::DarkOakButton.default_state_id() + - BlockKind::DarkOakButton.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -2896,7 +3191,8 @@ impl BlockId { pub fn skeleton_skull() -> Self { let mut block = Self { kind: BlockKind::SkeletonSkull, - state: 0, + state: BlockKind::SkeletonSkull.default_state_id() + - BlockKind::SkeletonSkull.min_state_id(), }; block.set_rotation(0i32); block @@ -2905,7 +3201,8 @@ impl BlockId { pub fn skeleton_wall_skull() -> Self { let mut block = Self { kind: BlockKind::SkeletonWallSkull, - state: 0, + state: BlockKind::SkeletonWallSkull.default_state_id() + - BlockKind::SkeletonWallSkull.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -2914,7 +3211,8 @@ impl BlockId { pub fn wither_skeleton_skull() -> Self { let mut block = Self { kind: BlockKind::WitherSkeletonSkull, - state: 0, + state: BlockKind::WitherSkeletonSkull.default_state_id() + - BlockKind::WitherSkeletonSkull.min_state_id(), }; block.set_rotation(0i32); block @@ -2923,7 +3221,8 @@ impl BlockId { pub fn wither_skeleton_wall_skull() -> Self { let mut block = Self { kind: BlockKind::WitherSkeletonWallSkull, - state: 0, + state: BlockKind::WitherSkeletonWallSkull.default_state_id() + - BlockKind::WitherSkeletonWallSkull.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -2932,7 +3231,7 @@ impl BlockId { pub fn zombie_head() -> Self { let mut block = Self { kind: BlockKind::ZombieHead, - state: 0, + state: BlockKind::ZombieHead.default_state_id() - BlockKind::ZombieHead.min_state_id(), }; block.set_rotation(0i32); block @@ -2941,7 +3240,8 @@ impl BlockId { pub fn zombie_wall_head() -> Self { let mut block = Self { kind: BlockKind::ZombieWallHead, - state: 0, + state: BlockKind::ZombieWallHead.default_state_id() + - BlockKind::ZombieWallHead.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -2950,7 +3250,7 @@ impl BlockId { pub fn player_head() -> Self { let mut block = Self { kind: BlockKind::PlayerHead, - state: 0, + state: BlockKind::PlayerHead.default_state_id() - BlockKind::PlayerHead.min_state_id(), }; block.set_rotation(0i32); block @@ -2959,7 +3259,8 @@ impl BlockId { pub fn player_wall_head() -> Self { let mut block = Self { kind: BlockKind::PlayerWallHead, - state: 0, + state: BlockKind::PlayerWallHead.default_state_id() + - BlockKind::PlayerWallHead.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -2968,7 +3269,8 @@ impl BlockId { pub fn creeper_head() -> Self { let mut block = Self { kind: BlockKind::CreeperHead, - state: 0, + state: BlockKind::CreeperHead.default_state_id() + - BlockKind::CreeperHead.min_state_id(), }; block.set_rotation(0i32); block @@ -2977,7 +3279,8 @@ impl BlockId { pub fn creeper_wall_head() -> Self { let mut block = Self { kind: BlockKind::CreeperWallHead, - state: 0, + state: BlockKind::CreeperWallHead.default_state_id() + - BlockKind::CreeperWallHead.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -2986,7 +3289,7 @@ impl BlockId { pub fn dragon_head() -> Self { let mut block = Self { kind: BlockKind::DragonHead, - state: 0, + state: BlockKind::DragonHead.default_state_id() - BlockKind::DragonHead.min_state_id(), }; block.set_rotation(0i32); block @@ -2995,7 +3298,8 @@ impl BlockId { pub fn dragon_wall_head() -> Self { let mut block = Self { kind: BlockKind::DragonWallHead, - state: 0, + state: BlockKind::DragonWallHead.default_state_id() + - BlockKind::DragonWallHead.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -3004,7 +3308,7 @@ impl BlockId { pub fn anvil() -> Self { let mut block = Self { kind: BlockKind::Anvil, - state: 0, + state: BlockKind::Anvil.default_state_id() - BlockKind::Anvil.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -3013,7 +3317,8 @@ impl BlockId { pub fn chipped_anvil() -> Self { let mut block = Self { kind: BlockKind::ChippedAnvil, - state: 0, + state: BlockKind::ChippedAnvil.default_state_id() + - BlockKind::ChippedAnvil.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -3022,7 +3327,8 @@ impl BlockId { pub fn damaged_anvil() -> Self { let mut block = Self { kind: BlockKind::DamagedAnvil, - state: 0, + state: BlockKind::DamagedAnvil.default_state_id() + - BlockKind::DamagedAnvil.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -3031,7 +3337,8 @@ impl BlockId { pub fn trapped_chest() -> Self { let mut block = Self { kind: BlockKind::TrappedChest, - state: 0, + state: BlockKind::TrappedChest.default_state_id() + - BlockKind::TrappedChest.min_state_id(), }; block.set_chest_kind(ChestKind::Single); block.set_facing_cardinal(FacingCardinal::North); @@ -3042,7 +3349,8 @@ impl BlockId { pub fn light_weighted_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::LightWeightedPressurePlate, - state: 0, + state: BlockKind::LightWeightedPressurePlate.default_state_id() + - BlockKind::LightWeightedPressurePlate.min_state_id(), }; block.set_power(0i32); block @@ -3051,7 +3359,8 @@ impl BlockId { pub fn heavy_weighted_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::HeavyWeightedPressurePlate, - state: 0, + state: BlockKind::HeavyWeightedPressurePlate.default_state_id() + - BlockKind::HeavyWeightedPressurePlate.min_state_id(), }; block.set_power(0i32); block @@ -3060,7 +3369,7 @@ impl BlockId { pub fn comparator() -> Self { let mut block = Self { kind: BlockKind::Comparator, - state: 0, + state: BlockKind::Comparator.default_state_id() - BlockKind::Comparator.min_state_id(), }; block.set_comparator_mode(ComparatorMode::Compare); block.set_facing_cardinal(FacingCardinal::North); @@ -3071,7 +3380,8 @@ impl BlockId { pub fn daylight_detector() -> Self { let mut block = Self { kind: BlockKind::DaylightDetector, - state: 0, + state: BlockKind::DaylightDetector.default_state_id() + - BlockKind::DaylightDetector.min_state_id(), }; block.set_inverted(false); block.set_power(0i32); @@ -3081,7 +3391,8 @@ impl BlockId { pub fn redstone_block() -> Self { let mut block = Self { kind: BlockKind::RedstoneBlock, - state: 0, + state: BlockKind::RedstoneBlock.default_state_id() + - BlockKind::RedstoneBlock.min_state_id(), }; block } @@ -3089,7 +3400,8 @@ impl BlockId { pub fn nether_quartz_ore() -> Self { let mut block = Self { kind: BlockKind::NetherQuartzOre, - state: 0, + state: BlockKind::NetherQuartzOre.default_state_id() + - BlockKind::NetherQuartzOre.min_state_id(), }; block } @@ -3097,7 +3409,7 @@ impl BlockId { pub fn hopper() -> Self { let mut block = Self { kind: BlockKind::Hopper, - state: 0, + state: BlockKind::Hopper.default_state_id() - BlockKind::Hopper.min_state_id(), }; block.set_enabled(true); block.set_facing_cardinal_and_down(FacingCardinalAndDown::Down); @@ -3107,7 +3419,8 @@ impl BlockId { pub fn quartz_block() -> Self { let mut block = Self { kind: BlockKind::QuartzBlock, - state: 0, + state: BlockKind::QuartzBlock.default_state_id() + - BlockKind::QuartzBlock.min_state_id(), }; block } @@ -3115,7 +3428,8 @@ impl BlockId { pub fn chiseled_quartz_block() -> Self { let mut block = Self { kind: BlockKind::ChiseledQuartzBlock, - state: 0, + state: BlockKind::ChiseledQuartzBlock.default_state_id() + - BlockKind::ChiseledQuartzBlock.min_state_id(), }; block } @@ -3123,7 +3437,8 @@ impl BlockId { pub fn quartz_pillar() -> Self { let mut block = Self { kind: BlockKind::QuartzPillar, - state: 0, + state: BlockKind::QuartzPillar.default_state_id() + - BlockKind::QuartzPillar.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -3132,7 +3447,8 @@ impl BlockId { pub fn quartz_stairs() -> Self { let mut block = Self { kind: BlockKind::QuartzStairs, - state: 0, + state: BlockKind::QuartzStairs.default_state_id() + - BlockKind::QuartzStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -3140,21 +3456,23 @@ impl BlockId { block.set_waterlogged(false); block } - #[doc = "Returns an instance of `activator_rail` with default state values.\nThe default state values are as follows:\n* `powered`: false\n* `powered_rail_shape`: north_south\n"] + #[doc = "Returns an instance of `activator_rail` with default state values.\nThe default state values are as follows:\n* `powered`: false\n* `powered_rail_shape`: north_south\n* `waterlogged`: false\n"] pub fn activator_rail() -> Self { let mut block = Self { kind: BlockKind::ActivatorRail, - state: 0, + state: BlockKind::ActivatorRail.default_state_id() + - BlockKind::ActivatorRail.min_state_id(), }; block.set_powered(false); block.set_powered_rail_shape(PoweredRailShape::NorthSouth); + block.set_waterlogged(false); block } #[doc = "Returns an instance of `dropper` with default state values.\nThe default state values are as follows:\n* `facing_cubic`: north\n* `triggered`: false\n"] pub fn dropper() -> Self { let mut block = Self { kind: BlockKind::Dropper, - state: 0, + state: BlockKind::Dropper.default_state_id() - BlockKind::Dropper.min_state_id(), }; block.set_facing_cubic(FacingCubic::North); block.set_triggered(false); @@ -3164,7 +3482,8 @@ impl BlockId { pub fn white_terracotta() -> Self { let mut block = Self { kind: BlockKind::WhiteTerracotta, - state: 0, + state: BlockKind::WhiteTerracotta.default_state_id() + - BlockKind::WhiteTerracotta.min_state_id(), }; block } @@ -3172,7 +3491,8 @@ impl BlockId { pub fn orange_terracotta() -> Self { let mut block = Self { kind: BlockKind::OrangeTerracotta, - state: 0, + state: BlockKind::OrangeTerracotta.default_state_id() + - BlockKind::OrangeTerracotta.min_state_id(), }; block } @@ -3180,7 +3500,8 @@ impl BlockId { pub fn magenta_terracotta() -> Self { let mut block = Self { kind: BlockKind::MagentaTerracotta, - state: 0, + state: BlockKind::MagentaTerracotta.default_state_id() + - BlockKind::MagentaTerracotta.min_state_id(), }; block } @@ -3188,7 +3509,8 @@ impl BlockId { pub fn light_blue_terracotta() -> Self { let mut block = Self { kind: BlockKind::LightBlueTerracotta, - state: 0, + state: BlockKind::LightBlueTerracotta.default_state_id() + - BlockKind::LightBlueTerracotta.min_state_id(), }; block } @@ -3196,7 +3518,8 @@ impl BlockId { pub fn yellow_terracotta() -> Self { let mut block = Self { kind: BlockKind::YellowTerracotta, - state: 0, + state: BlockKind::YellowTerracotta.default_state_id() + - BlockKind::YellowTerracotta.min_state_id(), }; block } @@ -3204,7 +3527,8 @@ impl BlockId { pub fn lime_terracotta() -> Self { let mut block = Self { kind: BlockKind::LimeTerracotta, - state: 0, + state: BlockKind::LimeTerracotta.default_state_id() + - BlockKind::LimeTerracotta.min_state_id(), }; block } @@ -3212,7 +3536,8 @@ impl BlockId { pub fn pink_terracotta() -> Self { let mut block = Self { kind: BlockKind::PinkTerracotta, - state: 0, + state: BlockKind::PinkTerracotta.default_state_id() + - BlockKind::PinkTerracotta.min_state_id(), }; block } @@ -3220,7 +3545,8 @@ impl BlockId { pub fn gray_terracotta() -> Self { let mut block = Self { kind: BlockKind::GrayTerracotta, - state: 0, + state: BlockKind::GrayTerracotta.default_state_id() + - BlockKind::GrayTerracotta.min_state_id(), }; block } @@ -3228,7 +3554,8 @@ impl BlockId { pub fn light_gray_terracotta() -> Self { let mut block = Self { kind: BlockKind::LightGrayTerracotta, - state: 0, + state: BlockKind::LightGrayTerracotta.default_state_id() + - BlockKind::LightGrayTerracotta.min_state_id(), }; block } @@ -3236,7 +3563,8 @@ impl BlockId { pub fn cyan_terracotta() -> Self { let mut block = Self { kind: BlockKind::CyanTerracotta, - state: 0, + state: BlockKind::CyanTerracotta.default_state_id() + - BlockKind::CyanTerracotta.min_state_id(), }; block } @@ -3244,7 +3572,8 @@ impl BlockId { pub fn purple_terracotta() -> Self { let mut block = Self { kind: BlockKind::PurpleTerracotta, - state: 0, + state: BlockKind::PurpleTerracotta.default_state_id() + - BlockKind::PurpleTerracotta.min_state_id(), }; block } @@ -3252,7 +3581,8 @@ impl BlockId { pub fn blue_terracotta() -> Self { let mut block = Self { kind: BlockKind::BlueTerracotta, - state: 0, + state: BlockKind::BlueTerracotta.default_state_id() + - BlockKind::BlueTerracotta.min_state_id(), }; block } @@ -3260,7 +3590,8 @@ impl BlockId { pub fn brown_terracotta() -> Self { let mut block = Self { kind: BlockKind::BrownTerracotta, - state: 0, + state: BlockKind::BrownTerracotta.default_state_id() + - BlockKind::BrownTerracotta.min_state_id(), }; block } @@ -3268,7 +3599,8 @@ impl BlockId { pub fn green_terracotta() -> Self { let mut block = Self { kind: BlockKind::GreenTerracotta, - state: 0, + state: BlockKind::GreenTerracotta.default_state_id() + - BlockKind::GreenTerracotta.min_state_id(), }; block } @@ -3276,7 +3608,8 @@ impl BlockId { pub fn red_terracotta() -> Self { let mut block = Self { kind: BlockKind::RedTerracotta, - state: 0, + state: BlockKind::RedTerracotta.default_state_id() + - BlockKind::RedTerracotta.min_state_id(), }; block } @@ -3284,7 +3617,8 @@ impl BlockId { pub fn black_terracotta() -> Self { let mut block = Self { kind: BlockKind::BlackTerracotta, - state: 0, + state: BlockKind::BlackTerracotta.default_state_id() + - BlockKind::BlackTerracotta.min_state_id(), }; block } @@ -3292,7 +3626,8 @@ impl BlockId { pub fn white_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::WhiteStainedGlassPane, - state: 0, + state: BlockKind::WhiteStainedGlassPane.default_state_id() + - BlockKind::WhiteStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3305,7 +3640,8 @@ impl BlockId { pub fn orange_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::OrangeStainedGlassPane, - state: 0, + state: BlockKind::OrangeStainedGlassPane.default_state_id() + - BlockKind::OrangeStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3318,7 +3654,8 @@ impl BlockId { pub fn magenta_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::MagentaStainedGlassPane, - state: 0, + state: BlockKind::MagentaStainedGlassPane.default_state_id() + - BlockKind::MagentaStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3331,7 +3668,8 @@ impl BlockId { pub fn light_blue_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::LightBlueStainedGlassPane, - state: 0, + state: BlockKind::LightBlueStainedGlassPane.default_state_id() + - BlockKind::LightBlueStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3344,7 +3682,8 @@ impl BlockId { pub fn yellow_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::YellowStainedGlassPane, - state: 0, + state: BlockKind::YellowStainedGlassPane.default_state_id() + - BlockKind::YellowStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3357,7 +3696,8 @@ impl BlockId { pub fn lime_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::LimeStainedGlassPane, - state: 0, + state: BlockKind::LimeStainedGlassPane.default_state_id() + - BlockKind::LimeStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3370,7 +3710,8 @@ impl BlockId { pub fn pink_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::PinkStainedGlassPane, - state: 0, + state: BlockKind::PinkStainedGlassPane.default_state_id() + - BlockKind::PinkStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3383,7 +3724,8 @@ impl BlockId { pub fn gray_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::GrayStainedGlassPane, - state: 0, + state: BlockKind::GrayStainedGlassPane.default_state_id() + - BlockKind::GrayStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3396,7 +3738,8 @@ impl BlockId { pub fn light_gray_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::LightGrayStainedGlassPane, - state: 0, + state: BlockKind::LightGrayStainedGlassPane.default_state_id() + - BlockKind::LightGrayStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3409,7 +3752,8 @@ impl BlockId { pub fn cyan_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::CyanStainedGlassPane, - state: 0, + state: BlockKind::CyanStainedGlassPane.default_state_id() + - BlockKind::CyanStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3422,7 +3766,8 @@ impl BlockId { pub fn purple_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::PurpleStainedGlassPane, - state: 0, + state: BlockKind::PurpleStainedGlassPane.default_state_id() + - BlockKind::PurpleStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3435,7 +3780,8 @@ impl BlockId { pub fn blue_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::BlueStainedGlassPane, - state: 0, + state: BlockKind::BlueStainedGlassPane.default_state_id() + - BlockKind::BlueStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3448,7 +3794,8 @@ impl BlockId { pub fn brown_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::BrownStainedGlassPane, - state: 0, + state: BlockKind::BrownStainedGlassPane.default_state_id() + - BlockKind::BrownStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3461,7 +3808,8 @@ impl BlockId { pub fn green_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::GreenStainedGlassPane, - state: 0, + state: BlockKind::GreenStainedGlassPane.default_state_id() + - BlockKind::GreenStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3474,7 +3822,8 @@ impl BlockId { pub fn red_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::RedStainedGlassPane, - state: 0, + state: BlockKind::RedStainedGlassPane.default_state_id() + - BlockKind::RedStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3487,7 +3836,8 @@ impl BlockId { pub fn black_stained_glass_pane() -> Self { let mut block = Self { kind: BlockKind::BlackStainedGlassPane, - state: 0, + state: BlockKind::BlackStainedGlassPane.default_state_id() + - BlockKind::BlackStainedGlassPane.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -3500,7 +3850,8 @@ impl BlockId { pub fn acacia_stairs() -> Self { let mut block = Self { kind: BlockKind::AcaciaStairs, - state: 0, + state: BlockKind::AcaciaStairs.default_state_id() + - BlockKind::AcaciaStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -3512,7 +3863,8 @@ impl BlockId { pub fn dark_oak_stairs() -> Self { let mut block = Self { kind: BlockKind::DarkOakStairs, - state: 0, + state: BlockKind::DarkOakStairs.default_state_id() + - BlockKind::DarkOakStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -3524,7 +3876,7 @@ impl BlockId { pub fn slime_block() -> Self { let mut block = Self { kind: BlockKind::SlimeBlock, - state: 0, + state: BlockKind::SlimeBlock.default_state_id() - BlockKind::SlimeBlock.min_state_id(), }; block } @@ -3532,15 +3884,26 @@ impl BlockId { pub fn barrier() -> Self { let mut block = Self { kind: BlockKind::Barrier, - state: 0, + state: BlockKind::Barrier.default_state_id() - BlockKind::Barrier.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `light` with default state values.\nThe default state values are as follows:\n* `water_level`: 15\n* `waterlogged`: false\n"] + pub fn light() -> Self { + let mut block = Self { + kind: BlockKind::Light, + state: BlockKind::Light.default_state_id() - BlockKind::Light.min_state_id(), }; + block.set_water_level(15i32); + block.set_waterlogged(false); block } #[doc = "Returns an instance of `iron_trapdoor` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `open`: false\n* `powered`: false\n* `waterlogged`: false\n"] pub fn iron_trapdoor() -> Self { let mut block = Self { kind: BlockKind::IronTrapdoor, - state: 0, + state: BlockKind::IronTrapdoor.default_state_id() + - BlockKind::IronTrapdoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -3553,7 +3916,7 @@ impl BlockId { pub fn prismarine() -> Self { let mut block = Self { kind: BlockKind::Prismarine, - state: 0, + state: BlockKind::Prismarine.default_state_id() - BlockKind::Prismarine.min_state_id(), }; block } @@ -3561,7 +3924,8 @@ impl BlockId { pub fn prismarine_bricks() -> Self { let mut block = Self { kind: BlockKind::PrismarineBricks, - state: 0, + state: BlockKind::PrismarineBricks.default_state_id() + - BlockKind::PrismarineBricks.min_state_id(), }; block } @@ -3569,7 +3933,8 @@ impl BlockId { pub fn dark_prismarine() -> Self { let mut block = Self { kind: BlockKind::DarkPrismarine, - state: 0, + state: BlockKind::DarkPrismarine.default_state_id() + - BlockKind::DarkPrismarine.min_state_id(), }; block } @@ -3577,7 +3942,8 @@ impl BlockId { pub fn prismarine_stairs() -> Self { let mut block = Self { kind: BlockKind::PrismarineStairs, - state: 0, + state: BlockKind::PrismarineStairs.default_state_id() + - BlockKind::PrismarineStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -3589,7 +3955,8 @@ impl BlockId { pub fn prismarine_brick_stairs() -> Self { let mut block = Self { kind: BlockKind::PrismarineBrickStairs, - state: 0, + state: BlockKind::PrismarineBrickStairs.default_state_id() + - BlockKind::PrismarineBrickStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -3601,7 +3968,8 @@ impl BlockId { pub fn dark_prismarine_stairs() -> Self { let mut block = Self { kind: BlockKind::DarkPrismarineStairs, - state: 0, + state: BlockKind::DarkPrismarineStairs.default_state_id() + - BlockKind::DarkPrismarineStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -3613,7 +3981,8 @@ impl BlockId { pub fn prismarine_slab() -> Self { let mut block = Self { kind: BlockKind::PrismarineSlab, - state: 0, + state: BlockKind::PrismarineSlab.default_state_id() + - BlockKind::PrismarineSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -3623,7 +3992,8 @@ impl BlockId { pub fn prismarine_brick_slab() -> Self { let mut block = Self { kind: BlockKind::PrismarineBrickSlab, - state: 0, + state: BlockKind::PrismarineBrickSlab.default_state_id() + - BlockKind::PrismarineBrickSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -3633,7 +4003,8 @@ impl BlockId { pub fn dark_prismarine_slab() -> Self { let mut block = Self { kind: BlockKind::DarkPrismarineSlab, - state: 0, + state: BlockKind::DarkPrismarineSlab.default_state_id() + - BlockKind::DarkPrismarineSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -3643,7 +4014,7 @@ impl BlockId { pub fn sea_lantern() -> Self { let mut block = Self { kind: BlockKind::SeaLantern, - state: 0, + state: BlockKind::SeaLantern.default_state_id() - BlockKind::SeaLantern.min_state_id(), }; block } @@ -3651,7 +4022,7 @@ impl BlockId { pub fn hay_block() -> Self { let mut block = Self { kind: BlockKind::HayBlock, - state: 0, + state: BlockKind::HayBlock.default_state_id() - BlockKind::HayBlock.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -3660,7 +4031,8 @@ impl BlockId { pub fn white_carpet() -> Self { let mut block = Self { kind: BlockKind::WhiteCarpet, - state: 0, + state: BlockKind::WhiteCarpet.default_state_id() + - BlockKind::WhiteCarpet.min_state_id(), }; block } @@ -3668,7 +4040,8 @@ impl BlockId { pub fn orange_carpet() -> Self { let mut block = Self { kind: BlockKind::OrangeCarpet, - state: 0, + state: BlockKind::OrangeCarpet.default_state_id() + - BlockKind::OrangeCarpet.min_state_id(), }; block } @@ -3676,7 +4049,8 @@ impl BlockId { pub fn magenta_carpet() -> Self { let mut block = Self { kind: BlockKind::MagentaCarpet, - state: 0, + state: BlockKind::MagentaCarpet.default_state_id() + - BlockKind::MagentaCarpet.min_state_id(), }; block } @@ -3684,7 +4058,8 @@ impl BlockId { pub fn light_blue_carpet() -> Self { let mut block = Self { kind: BlockKind::LightBlueCarpet, - state: 0, + state: BlockKind::LightBlueCarpet.default_state_id() + - BlockKind::LightBlueCarpet.min_state_id(), }; block } @@ -3692,7 +4067,8 @@ impl BlockId { pub fn yellow_carpet() -> Self { let mut block = Self { kind: BlockKind::YellowCarpet, - state: 0, + state: BlockKind::YellowCarpet.default_state_id() + - BlockKind::YellowCarpet.min_state_id(), }; block } @@ -3700,7 +4076,7 @@ impl BlockId { pub fn lime_carpet() -> Self { let mut block = Self { kind: BlockKind::LimeCarpet, - state: 0, + state: BlockKind::LimeCarpet.default_state_id() - BlockKind::LimeCarpet.min_state_id(), }; block } @@ -3708,7 +4084,7 @@ impl BlockId { pub fn pink_carpet() -> Self { let mut block = Self { kind: BlockKind::PinkCarpet, - state: 0, + state: BlockKind::PinkCarpet.default_state_id() - BlockKind::PinkCarpet.min_state_id(), }; block } @@ -3716,7 +4092,7 @@ impl BlockId { pub fn gray_carpet() -> Self { let mut block = Self { kind: BlockKind::GrayCarpet, - state: 0, + state: BlockKind::GrayCarpet.default_state_id() - BlockKind::GrayCarpet.min_state_id(), }; block } @@ -3724,7 +4100,8 @@ impl BlockId { pub fn light_gray_carpet() -> Self { let mut block = Self { kind: BlockKind::LightGrayCarpet, - state: 0, + state: BlockKind::LightGrayCarpet.default_state_id() + - BlockKind::LightGrayCarpet.min_state_id(), }; block } @@ -3732,7 +4109,7 @@ impl BlockId { pub fn cyan_carpet() -> Self { let mut block = Self { kind: BlockKind::CyanCarpet, - state: 0, + state: BlockKind::CyanCarpet.default_state_id() - BlockKind::CyanCarpet.min_state_id(), }; block } @@ -3740,7 +4117,8 @@ impl BlockId { pub fn purple_carpet() -> Self { let mut block = Self { kind: BlockKind::PurpleCarpet, - state: 0, + state: BlockKind::PurpleCarpet.default_state_id() + - BlockKind::PurpleCarpet.min_state_id(), }; block } @@ -3748,7 +4126,7 @@ impl BlockId { pub fn blue_carpet() -> Self { let mut block = Self { kind: BlockKind::BlueCarpet, - state: 0, + state: BlockKind::BlueCarpet.default_state_id() - BlockKind::BlueCarpet.min_state_id(), }; block } @@ -3756,7 +4134,8 @@ impl BlockId { pub fn brown_carpet() -> Self { let mut block = Self { kind: BlockKind::BrownCarpet, - state: 0, + state: BlockKind::BrownCarpet.default_state_id() + - BlockKind::BrownCarpet.min_state_id(), }; block } @@ -3764,7 +4143,8 @@ impl BlockId { pub fn green_carpet() -> Self { let mut block = Self { kind: BlockKind::GreenCarpet, - state: 0, + state: BlockKind::GreenCarpet.default_state_id() + - BlockKind::GreenCarpet.min_state_id(), }; block } @@ -3772,7 +4152,7 @@ impl BlockId { pub fn red_carpet() -> Self { let mut block = Self { kind: BlockKind::RedCarpet, - state: 0, + state: BlockKind::RedCarpet.default_state_id() - BlockKind::RedCarpet.min_state_id(), }; block } @@ -3780,7 +4160,8 @@ impl BlockId { pub fn black_carpet() -> Self { let mut block = Self { kind: BlockKind::BlackCarpet, - state: 0, + state: BlockKind::BlackCarpet.default_state_id() + - BlockKind::BlackCarpet.min_state_id(), }; block } @@ -3788,7 +4169,7 @@ impl BlockId { pub fn terracotta() -> Self { let mut block = Self { kind: BlockKind::Terracotta, - state: 0, + state: BlockKind::Terracotta.default_state_id() - BlockKind::Terracotta.min_state_id(), }; block } @@ -3796,7 +4177,7 @@ impl BlockId { pub fn coal_block() -> Self { let mut block = Self { kind: BlockKind::CoalBlock, - state: 0, + state: BlockKind::CoalBlock.default_state_id() - BlockKind::CoalBlock.min_state_id(), }; block } @@ -3804,7 +4185,7 @@ impl BlockId { pub fn packed_ice() -> Self { let mut block = Self { kind: BlockKind::PackedIce, - state: 0, + state: BlockKind::PackedIce.default_state_id() - BlockKind::PackedIce.min_state_id(), }; block } @@ -3812,7 +4193,7 @@ impl BlockId { pub fn sunflower() -> Self { let mut block = Self { kind: BlockKind::Sunflower, - state: 0, + state: BlockKind::Sunflower.default_state_id() - BlockKind::Sunflower.min_state_id(), }; block.set_half_upper_lower(HalfUpperLower::Lower); block @@ -3821,7 +4202,7 @@ impl BlockId { pub fn lilac() -> Self { let mut block = Self { kind: BlockKind::Lilac, - state: 0, + state: BlockKind::Lilac.default_state_id() - BlockKind::Lilac.min_state_id(), }; block.set_half_upper_lower(HalfUpperLower::Lower); block @@ -3830,7 +4211,7 @@ impl BlockId { pub fn rose_bush() -> Self { let mut block = Self { kind: BlockKind::RoseBush, - state: 0, + state: BlockKind::RoseBush.default_state_id() - BlockKind::RoseBush.min_state_id(), }; block.set_half_upper_lower(HalfUpperLower::Lower); block @@ -3839,7 +4220,7 @@ impl BlockId { pub fn peony() -> Self { let mut block = Self { kind: BlockKind::Peony, - state: 0, + state: BlockKind::Peony.default_state_id() - BlockKind::Peony.min_state_id(), }; block.set_half_upper_lower(HalfUpperLower::Lower); block @@ -3848,7 +4229,7 @@ impl BlockId { pub fn tall_grass() -> Self { let mut block = Self { kind: BlockKind::TallGrass, - state: 0, + state: BlockKind::TallGrass.default_state_id() - BlockKind::TallGrass.min_state_id(), }; block.set_half_upper_lower(HalfUpperLower::Lower); block @@ -3857,7 +4238,7 @@ impl BlockId { pub fn large_fern() -> Self { let mut block = Self { kind: BlockKind::LargeFern, - state: 0, + state: BlockKind::LargeFern.default_state_id() - BlockKind::LargeFern.min_state_id(), }; block.set_half_upper_lower(HalfUpperLower::Lower); block @@ -3866,7 +4247,8 @@ impl BlockId { pub fn white_banner() -> Self { let mut block = Self { kind: BlockKind::WhiteBanner, - state: 0, + state: BlockKind::WhiteBanner.default_state_id() + - BlockKind::WhiteBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3875,7 +4257,8 @@ impl BlockId { pub fn orange_banner() -> Self { let mut block = Self { kind: BlockKind::OrangeBanner, - state: 0, + state: BlockKind::OrangeBanner.default_state_id() + - BlockKind::OrangeBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3884,7 +4267,8 @@ impl BlockId { pub fn magenta_banner() -> Self { let mut block = Self { kind: BlockKind::MagentaBanner, - state: 0, + state: BlockKind::MagentaBanner.default_state_id() + - BlockKind::MagentaBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3893,7 +4277,8 @@ impl BlockId { pub fn light_blue_banner() -> Self { let mut block = Self { kind: BlockKind::LightBlueBanner, - state: 0, + state: BlockKind::LightBlueBanner.default_state_id() + - BlockKind::LightBlueBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3902,7 +4287,8 @@ impl BlockId { pub fn yellow_banner() -> Self { let mut block = Self { kind: BlockKind::YellowBanner, - state: 0, + state: BlockKind::YellowBanner.default_state_id() + - BlockKind::YellowBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3911,7 +4297,7 @@ impl BlockId { pub fn lime_banner() -> Self { let mut block = Self { kind: BlockKind::LimeBanner, - state: 0, + state: BlockKind::LimeBanner.default_state_id() - BlockKind::LimeBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3920,7 +4306,7 @@ impl BlockId { pub fn pink_banner() -> Self { let mut block = Self { kind: BlockKind::PinkBanner, - state: 0, + state: BlockKind::PinkBanner.default_state_id() - BlockKind::PinkBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3929,7 +4315,7 @@ impl BlockId { pub fn gray_banner() -> Self { let mut block = Self { kind: BlockKind::GrayBanner, - state: 0, + state: BlockKind::GrayBanner.default_state_id() - BlockKind::GrayBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3938,7 +4324,8 @@ impl BlockId { pub fn light_gray_banner() -> Self { let mut block = Self { kind: BlockKind::LightGrayBanner, - state: 0, + state: BlockKind::LightGrayBanner.default_state_id() + - BlockKind::LightGrayBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3947,7 +4334,7 @@ impl BlockId { pub fn cyan_banner() -> Self { let mut block = Self { kind: BlockKind::CyanBanner, - state: 0, + state: BlockKind::CyanBanner.default_state_id() - BlockKind::CyanBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3956,7 +4343,8 @@ impl BlockId { pub fn purple_banner() -> Self { let mut block = Self { kind: BlockKind::PurpleBanner, - state: 0, + state: BlockKind::PurpleBanner.default_state_id() + - BlockKind::PurpleBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3965,7 +4353,7 @@ impl BlockId { pub fn blue_banner() -> Self { let mut block = Self { kind: BlockKind::BlueBanner, - state: 0, + state: BlockKind::BlueBanner.default_state_id() - BlockKind::BlueBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3974,7 +4362,8 @@ impl BlockId { pub fn brown_banner() -> Self { let mut block = Self { kind: BlockKind::BrownBanner, - state: 0, + state: BlockKind::BrownBanner.default_state_id() + - BlockKind::BrownBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3983,7 +4372,8 @@ impl BlockId { pub fn green_banner() -> Self { let mut block = Self { kind: BlockKind::GreenBanner, - state: 0, + state: BlockKind::GreenBanner.default_state_id() + - BlockKind::GreenBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -3992,7 +4382,7 @@ impl BlockId { pub fn red_banner() -> Self { let mut block = Self { kind: BlockKind::RedBanner, - state: 0, + state: BlockKind::RedBanner.default_state_id() - BlockKind::RedBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -4001,7 +4391,8 @@ impl BlockId { pub fn black_banner() -> Self { let mut block = Self { kind: BlockKind::BlackBanner, - state: 0, + state: BlockKind::BlackBanner.default_state_id() + - BlockKind::BlackBanner.min_state_id(), }; block.set_rotation(0i32); block @@ -4010,7 +4401,8 @@ impl BlockId { pub fn white_wall_banner() -> Self { let mut block = Self { kind: BlockKind::WhiteWallBanner, - state: 0, + state: BlockKind::WhiteWallBanner.default_state_id() + - BlockKind::WhiteWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4019,7 +4411,8 @@ impl BlockId { pub fn orange_wall_banner() -> Self { let mut block = Self { kind: BlockKind::OrangeWallBanner, - state: 0, + state: BlockKind::OrangeWallBanner.default_state_id() + - BlockKind::OrangeWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4028,7 +4421,8 @@ impl BlockId { pub fn magenta_wall_banner() -> Self { let mut block = Self { kind: BlockKind::MagentaWallBanner, - state: 0, + state: BlockKind::MagentaWallBanner.default_state_id() + - BlockKind::MagentaWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4037,7 +4431,8 @@ impl BlockId { pub fn light_blue_wall_banner() -> Self { let mut block = Self { kind: BlockKind::LightBlueWallBanner, - state: 0, + state: BlockKind::LightBlueWallBanner.default_state_id() + - BlockKind::LightBlueWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4046,7 +4441,8 @@ impl BlockId { pub fn yellow_wall_banner() -> Self { let mut block = Self { kind: BlockKind::YellowWallBanner, - state: 0, + state: BlockKind::YellowWallBanner.default_state_id() + - BlockKind::YellowWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4055,7 +4451,8 @@ impl BlockId { pub fn lime_wall_banner() -> Self { let mut block = Self { kind: BlockKind::LimeWallBanner, - state: 0, + state: BlockKind::LimeWallBanner.default_state_id() + - BlockKind::LimeWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4064,7 +4461,8 @@ impl BlockId { pub fn pink_wall_banner() -> Self { let mut block = Self { kind: BlockKind::PinkWallBanner, - state: 0, + state: BlockKind::PinkWallBanner.default_state_id() + - BlockKind::PinkWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4073,7 +4471,8 @@ impl BlockId { pub fn gray_wall_banner() -> Self { let mut block = Self { kind: BlockKind::GrayWallBanner, - state: 0, + state: BlockKind::GrayWallBanner.default_state_id() + - BlockKind::GrayWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4082,7 +4481,8 @@ impl BlockId { pub fn light_gray_wall_banner() -> Self { let mut block = Self { kind: BlockKind::LightGrayWallBanner, - state: 0, + state: BlockKind::LightGrayWallBanner.default_state_id() + - BlockKind::LightGrayWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4091,7 +4491,8 @@ impl BlockId { pub fn cyan_wall_banner() -> Self { let mut block = Self { kind: BlockKind::CyanWallBanner, - state: 0, + state: BlockKind::CyanWallBanner.default_state_id() + - BlockKind::CyanWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4100,7 +4501,8 @@ impl BlockId { pub fn purple_wall_banner() -> Self { let mut block = Self { kind: BlockKind::PurpleWallBanner, - state: 0, + state: BlockKind::PurpleWallBanner.default_state_id() + - BlockKind::PurpleWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4109,7 +4511,8 @@ impl BlockId { pub fn blue_wall_banner() -> Self { let mut block = Self { kind: BlockKind::BlueWallBanner, - state: 0, + state: BlockKind::BlueWallBanner.default_state_id() + - BlockKind::BlueWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4118,7 +4521,8 @@ impl BlockId { pub fn brown_wall_banner() -> Self { let mut block = Self { kind: BlockKind::BrownWallBanner, - state: 0, + state: BlockKind::BrownWallBanner.default_state_id() + - BlockKind::BrownWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4127,7 +4531,8 @@ impl BlockId { pub fn green_wall_banner() -> Self { let mut block = Self { kind: BlockKind::GreenWallBanner, - state: 0, + state: BlockKind::GreenWallBanner.default_state_id() + - BlockKind::GreenWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4136,7 +4541,8 @@ impl BlockId { pub fn red_wall_banner() -> Self { let mut block = Self { kind: BlockKind::RedWallBanner, - state: 0, + state: BlockKind::RedWallBanner.default_state_id() + - BlockKind::RedWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4145,7 +4551,8 @@ impl BlockId { pub fn black_wall_banner() -> Self { let mut block = Self { kind: BlockKind::BlackWallBanner, - state: 0, + state: BlockKind::BlackWallBanner.default_state_id() + - BlockKind::BlackWallBanner.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4154,7 +4561,8 @@ impl BlockId { pub fn red_sandstone() -> Self { let mut block = Self { kind: BlockKind::RedSandstone, - state: 0, + state: BlockKind::RedSandstone.default_state_id() + - BlockKind::RedSandstone.min_state_id(), }; block } @@ -4162,7 +4570,8 @@ impl BlockId { pub fn chiseled_red_sandstone() -> Self { let mut block = Self { kind: BlockKind::ChiseledRedSandstone, - state: 0, + state: BlockKind::ChiseledRedSandstone.default_state_id() + - BlockKind::ChiseledRedSandstone.min_state_id(), }; block } @@ -4170,7 +4579,8 @@ impl BlockId { pub fn cut_red_sandstone() -> Self { let mut block = Self { kind: BlockKind::CutRedSandstone, - state: 0, + state: BlockKind::CutRedSandstone.default_state_id() + - BlockKind::CutRedSandstone.min_state_id(), }; block } @@ -4178,7 +4588,8 @@ impl BlockId { pub fn red_sandstone_stairs() -> Self { let mut block = Self { kind: BlockKind::RedSandstoneStairs, - state: 0, + state: BlockKind::RedSandstoneStairs.default_state_id() + - BlockKind::RedSandstoneStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -4190,7 +4601,7 @@ impl BlockId { pub fn oak_slab() -> Self { let mut block = Self { kind: BlockKind::OakSlab, - state: 0, + state: BlockKind::OakSlab.default_state_id() - BlockKind::OakSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4200,7 +4611,7 @@ impl BlockId { pub fn spruce_slab() -> Self { let mut block = Self { kind: BlockKind::SpruceSlab, - state: 0, + state: BlockKind::SpruceSlab.default_state_id() - BlockKind::SpruceSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4210,7 +4621,7 @@ impl BlockId { pub fn birch_slab() -> Self { let mut block = Self { kind: BlockKind::BirchSlab, - state: 0, + state: BlockKind::BirchSlab.default_state_id() - BlockKind::BirchSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4220,7 +4631,7 @@ impl BlockId { pub fn jungle_slab() -> Self { let mut block = Self { kind: BlockKind::JungleSlab, - state: 0, + state: BlockKind::JungleSlab.default_state_id() - BlockKind::JungleSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4230,7 +4641,7 @@ impl BlockId { pub fn acacia_slab() -> Self { let mut block = Self { kind: BlockKind::AcaciaSlab, - state: 0, + state: BlockKind::AcaciaSlab.default_state_id() - BlockKind::AcaciaSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4240,7 +4651,8 @@ impl BlockId { pub fn dark_oak_slab() -> Self { let mut block = Self { kind: BlockKind::DarkOakSlab, - state: 0, + state: BlockKind::DarkOakSlab.default_state_id() + - BlockKind::DarkOakSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4250,7 +4662,7 @@ impl BlockId { pub fn stone_slab() -> Self { let mut block = Self { kind: BlockKind::StoneSlab, - state: 0, + state: BlockKind::StoneSlab.default_state_id() - BlockKind::StoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4260,7 +4672,8 @@ impl BlockId { pub fn smooth_stone_slab() -> Self { let mut block = Self { kind: BlockKind::SmoothStoneSlab, - state: 0, + state: BlockKind::SmoothStoneSlab.default_state_id() + - BlockKind::SmoothStoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4270,7 +4683,8 @@ impl BlockId { pub fn sandstone_slab() -> Self { let mut block = Self { kind: BlockKind::SandstoneSlab, - state: 0, + state: BlockKind::SandstoneSlab.default_state_id() + - BlockKind::SandstoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4280,7 +4694,8 @@ impl BlockId { pub fn cut_sandstone_slab() -> Self { let mut block = Self { kind: BlockKind::CutSandstoneSlab, - state: 0, + state: BlockKind::CutSandstoneSlab.default_state_id() + - BlockKind::CutSandstoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4290,7 +4705,8 @@ impl BlockId { pub fn petrified_oak_slab() -> Self { let mut block = Self { kind: BlockKind::PetrifiedOakSlab, - state: 0, + state: BlockKind::PetrifiedOakSlab.default_state_id() + - BlockKind::PetrifiedOakSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4300,7 +4716,8 @@ impl BlockId { pub fn cobblestone_slab() -> Self { let mut block = Self { kind: BlockKind::CobblestoneSlab, - state: 0, + state: BlockKind::CobblestoneSlab.default_state_id() + - BlockKind::CobblestoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4310,7 +4727,7 @@ impl BlockId { pub fn brick_slab() -> Self { let mut block = Self { kind: BlockKind::BrickSlab, - state: 0, + state: BlockKind::BrickSlab.default_state_id() - BlockKind::BrickSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4320,7 +4737,8 @@ impl BlockId { pub fn stone_brick_slab() -> Self { let mut block = Self { kind: BlockKind::StoneBrickSlab, - state: 0, + state: BlockKind::StoneBrickSlab.default_state_id() + - BlockKind::StoneBrickSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4330,7 +4748,8 @@ impl BlockId { pub fn nether_brick_slab() -> Self { let mut block = Self { kind: BlockKind::NetherBrickSlab, - state: 0, + state: BlockKind::NetherBrickSlab.default_state_id() + - BlockKind::NetherBrickSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4340,7 +4759,7 @@ impl BlockId { pub fn quartz_slab() -> Self { let mut block = Self { kind: BlockKind::QuartzSlab, - state: 0, + state: BlockKind::QuartzSlab.default_state_id() - BlockKind::QuartzSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4350,7 +4769,8 @@ impl BlockId { pub fn red_sandstone_slab() -> Self { let mut block = Self { kind: BlockKind::RedSandstoneSlab, - state: 0, + state: BlockKind::RedSandstoneSlab.default_state_id() + - BlockKind::RedSandstoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4360,7 +4780,8 @@ impl BlockId { pub fn cut_red_sandstone_slab() -> Self { let mut block = Self { kind: BlockKind::CutRedSandstoneSlab, - state: 0, + state: BlockKind::CutRedSandstoneSlab.default_state_id() + - BlockKind::CutRedSandstoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4370,7 +4791,7 @@ impl BlockId { pub fn purpur_slab() -> Self { let mut block = Self { kind: BlockKind::PurpurSlab, - state: 0, + state: BlockKind::PurpurSlab.default_state_id() - BlockKind::PurpurSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -4380,7 +4801,8 @@ impl BlockId { pub fn smooth_stone() -> Self { let mut block = Self { kind: BlockKind::SmoothStone, - state: 0, + state: BlockKind::SmoothStone.default_state_id() + - BlockKind::SmoothStone.min_state_id(), }; block } @@ -4388,7 +4810,8 @@ impl BlockId { pub fn smooth_sandstone() -> Self { let mut block = Self { kind: BlockKind::SmoothSandstone, - state: 0, + state: BlockKind::SmoothSandstone.default_state_id() + - BlockKind::SmoothSandstone.min_state_id(), }; block } @@ -4396,7 +4819,8 @@ impl BlockId { pub fn smooth_quartz() -> Self { let mut block = Self { kind: BlockKind::SmoothQuartz, - state: 0, + state: BlockKind::SmoothQuartz.default_state_id() + - BlockKind::SmoothQuartz.min_state_id(), }; block } @@ -4404,7 +4828,8 @@ impl BlockId { pub fn smooth_red_sandstone() -> Self { let mut block = Self { kind: BlockKind::SmoothRedSandstone, - state: 0, + state: BlockKind::SmoothRedSandstone.default_state_id() + - BlockKind::SmoothRedSandstone.min_state_id(), }; block } @@ -4412,7 +4837,8 @@ impl BlockId { pub fn spruce_fence_gate() -> Self { let mut block = Self { kind: BlockKind::SpruceFenceGate, - state: 0, + state: BlockKind::SpruceFenceGate.default_state_id() + - BlockKind::SpruceFenceGate.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_in_wall(false); @@ -4424,7 +4850,8 @@ impl BlockId { pub fn birch_fence_gate() -> Self { let mut block = Self { kind: BlockKind::BirchFenceGate, - state: 0, + state: BlockKind::BirchFenceGate.default_state_id() + - BlockKind::BirchFenceGate.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_in_wall(false); @@ -4436,7 +4863,8 @@ impl BlockId { pub fn jungle_fence_gate() -> Self { let mut block = Self { kind: BlockKind::JungleFenceGate, - state: 0, + state: BlockKind::JungleFenceGate.default_state_id() + - BlockKind::JungleFenceGate.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_in_wall(false); @@ -4448,7 +4876,8 @@ impl BlockId { pub fn acacia_fence_gate() -> Self { let mut block = Self { kind: BlockKind::AcaciaFenceGate, - state: 0, + state: BlockKind::AcaciaFenceGate.default_state_id() + - BlockKind::AcaciaFenceGate.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_in_wall(false); @@ -4460,7 +4889,8 @@ impl BlockId { pub fn dark_oak_fence_gate() -> Self { let mut block = Self { kind: BlockKind::DarkOakFenceGate, - state: 0, + state: BlockKind::DarkOakFenceGate.default_state_id() + - BlockKind::DarkOakFenceGate.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_in_wall(false); @@ -4472,7 +4902,8 @@ impl BlockId { pub fn spruce_fence() -> Self { let mut block = Self { kind: BlockKind::SpruceFence, - state: 0, + state: BlockKind::SpruceFence.default_state_id() + - BlockKind::SpruceFence.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -4485,7 +4916,7 @@ impl BlockId { pub fn birch_fence() -> Self { let mut block = Self { kind: BlockKind::BirchFence, - state: 0, + state: BlockKind::BirchFence.default_state_id() - BlockKind::BirchFence.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -4498,7 +4929,8 @@ impl BlockId { pub fn jungle_fence() -> Self { let mut block = Self { kind: BlockKind::JungleFence, - state: 0, + state: BlockKind::JungleFence.default_state_id() + - BlockKind::JungleFence.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -4511,7 +4943,8 @@ impl BlockId { pub fn acacia_fence() -> Self { let mut block = Self { kind: BlockKind::AcaciaFence, - state: 0, + state: BlockKind::AcaciaFence.default_state_id() + - BlockKind::AcaciaFence.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -4524,7 +4957,8 @@ impl BlockId { pub fn dark_oak_fence() -> Self { let mut block = Self { kind: BlockKind::DarkOakFence, - state: 0, + state: BlockKind::DarkOakFence.default_state_id() + - BlockKind::DarkOakFence.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -4537,7 +4971,7 @@ impl BlockId { pub fn spruce_door() -> Self { let mut block = Self { kind: BlockKind::SpruceDoor, - state: 0, + state: BlockKind::SpruceDoor.default_state_id() - BlockKind::SpruceDoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_upper_lower(HalfUpperLower::Lower); @@ -4550,7 +4984,7 @@ impl BlockId { pub fn birch_door() -> Self { let mut block = Self { kind: BlockKind::BirchDoor, - state: 0, + state: BlockKind::BirchDoor.default_state_id() - BlockKind::BirchDoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_upper_lower(HalfUpperLower::Lower); @@ -4563,7 +4997,7 @@ impl BlockId { pub fn jungle_door() -> Self { let mut block = Self { kind: BlockKind::JungleDoor, - state: 0, + state: BlockKind::JungleDoor.default_state_id() - BlockKind::JungleDoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_upper_lower(HalfUpperLower::Lower); @@ -4576,7 +5010,7 @@ impl BlockId { pub fn acacia_door() -> Self { let mut block = Self { kind: BlockKind::AcaciaDoor, - state: 0, + state: BlockKind::AcaciaDoor.default_state_id() - BlockKind::AcaciaDoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_upper_lower(HalfUpperLower::Lower); @@ -4589,7 +5023,8 @@ impl BlockId { pub fn dark_oak_door() -> Self { let mut block = Self { kind: BlockKind::DarkOakDoor, - state: 0, + state: BlockKind::DarkOakDoor.default_state_id() + - BlockKind::DarkOakDoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_upper_lower(HalfUpperLower::Lower); @@ -4602,7 +5037,7 @@ impl BlockId { pub fn end_rod() -> Self { let mut block = Self { kind: BlockKind::EndRod, - state: 0, + state: BlockKind::EndRod.default_state_id() - BlockKind::EndRod.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4611,7 +5046,8 @@ impl BlockId { pub fn chorus_plant() -> Self { let mut block = Self { kind: BlockKind::ChorusPlant, - state: 0, + state: BlockKind::ChorusPlant.default_state_id() + - BlockKind::ChorusPlant.min_state_id(), }; block.set_down(false); block.set_east_connected(false); @@ -4625,7 +5061,8 @@ impl BlockId { pub fn chorus_flower() -> Self { let mut block = Self { kind: BlockKind::ChorusFlower, - state: 0, + state: BlockKind::ChorusFlower.default_state_id() + - BlockKind::ChorusFlower.min_state_id(), }; block.set_age_0_5(0i32); block @@ -4634,7 +5071,8 @@ impl BlockId { pub fn purpur_block() -> Self { let mut block = Self { kind: BlockKind::PurpurBlock, - state: 0, + state: BlockKind::PurpurBlock.default_state_id() + - BlockKind::PurpurBlock.min_state_id(), }; block } @@ -4642,7 +5080,8 @@ impl BlockId { pub fn purpur_pillar() -> Self { let mut block = Self { kind: BlockKind::PurpurPillar, - state: 0, + state: BlockKind::PurpurPillar.default_state_id() + - BlockKind::PurpurPillar.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -4651,7 +5090,8 @@ impl BlockId { pub fn purpur_stairs() -> Self { let mut block = Self { kind: BlockKind::PurpurStairs, - state: 0, + state: BlockKind::PurpurStairs.default_state_id() + - BlockKind::PurpurStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -4663,7 +5103,8 @@ impl BlockId { pub fn end_stone_bricks() -> Self { let mut block = Self { kind: BlockKind::EndStoneBricks, - state: 0, + state: BlockKind::EndStoneBricks.default_state_id() + - BlockKind::EndStoneBricks.min_state_id(), }; block } @@ -4671,16 +5112,16 @@ impl BlockId { pub fn beetroots() -> Self { let mut block = Self { kind: BlockKind::Beetroots, - state: 0, + state: BlockKind::Beetroots.default_state_id() - BlockKind::Beetroots.min_state_id(), }; block.set_age_0_3(0i32); block } - #[doc = "Returns an instance of `grass_path` with default state values."] - pub fn grass_path() -> Self { + #[doc = "Returns an instance of `dirt_path` with default state values."] + pub fn dirt_path() -> Self { let mut block = Self { - kind: BlockKind::GrassPath, - state: 0, + kind: BlockKind::DirtPath, + state: BlockKind::DirtPath.default_state_id() - BlockKind::DirtPath.min_state_id(), }; block } @@ -4688,7 +5129,7 @@ impl BlockId { pub fn end_gateway() -> Self { let mut block = Self { kind: BlockKind::EndGateway, - state: 0, + state: BlockKind::EndGateway.default_state_id() - BlockKind::EndGateway.min_state_id(), }; block } @@ -4696,7 +5137,8 @@ impl BlockId { pub fn repeating_command_block() -> Self { let mut block = Self { kind: BlockKind::RepeatingCommandBlock, - state: 0, + state: BlockKind::RepeatingCommandBlock.default_state_id() + - BlockKind::RepeatingCommandBlock.min_state_id(), }; block.set_conditional(false); block.set_facing_cubic(FacingCubic::North); @@ -4706,7 +5148,8 @@ impl BlockId { pub fn chain_command_block() -> Self { let mut block = Self { kind: BlockKind::ChainCommandBlock, - state: 0, + state: BlockKind::ChainCommandBlock.default_state_id() + - BlockKind::ChainCommandBlock.min_state_id(), }; block.set_conditional(false); block.set_facing_cubic(FacingCubic::North); @@ -4716,7 +5159,7 @@ impl BlockId { pub fn frosted_ice() -> Self { let mut block = Self { kind: BlockKind::FrostedIce, - state: 0, + state: BlockKind::FrostedIce.default_state_id() - BlockKind::FrostedIce.min_state_id(), }; block.set_age_0_3(0i32); block @@ -4725,7 +5168,7 @@ impl BlockId { pub fn magma_block() -> Self { let mut block = Self { kind: BlockKind::MagmaBlock, - state: 0, + state: BlockKind::MagmaBlock.default_state_id() - BlockKind::MagmaBlock.min_state_id(), }; block } @@ -4733,7 +5176,8 @@ impl BlockId { pub fn nether_wart_block() -> Self { let mut block = Self { kind: BlockKind::NetherWartBlock, - state: 0, + state: BlockKind::NetherWartBlock.default_state_id() + - BlockKind::NetherWartBlock.min_state_id(), }; block } @@ -4741,7 +5185,8 @@ impl BlockId { pub fn red_nether_bricks() -> Self { let mut block = Self { kind: BlockKind::RedNetherBricks, - state: 0, + state: BlockKind::RedNetherBricks.default_state_id() + - BlockKind::RedNetherBricks.min_state_id(), }; block } @@ -4749,7 +5194,7 @@ impl BlockId { pub fn bone_block() -> Self { let mut block = Self { kind: BlockKind::BoneBlock, - state: 0, + state: BlockKind::BoneBlock.default_state_id() - BlockKind::BoneBlock.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -4758,7 +5203,8 @@ impl BlockId { pub fn structure_void() -> Self { let mut block = Self { kind: BlockKind::StructureVoid, - state: 0, + state: BlockKind::StructureVoid.default_state_id() + - BlockKind::StructureVoid.min_state_id(), }; block } @@ -4766,7 +5212,7 @@ impl BlockId { pub fn observer() -> Self { let mut block = Self { kind: BlockKind::Observer, - state: 0, + state: BlockKind::Observer.default_state_id() - BlockKind::Observer.min_state_id(), }; block.set_facing_cubic(FacingCubic::South); block.set_powered(false); @@ -4776,7 +5222,7 @@ impl BlockId { pub fn shulker_box() -> Self { let mut block = Self { kind: BlockKind::ShulkerBox, - state: 0, + state: BlockKind::ShulkerBox.default_state_id() - BlockKind::ShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4785,7 +5231,8 @@ impl BlockId { pub fn white_shulker_box() -> Self { let mut block = Self { kind: BlockKind::WhiteShulkerBox, - state: 0, + state: BlockKind::WhiteShulkerBox.default_state_id() + - BlockKind::WhiteShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4794,7 +5241,8 @@ impl BlockId { pub fn orange_shulker_box() -> Self { let mut block = Self { kind: BlockKind::OrangeShulkerBox, - state: 0, + state: BlockKind::OrangeShulkerBox.default_state_id() + - BlockKind::OrangeShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4803,7 +5251,8 @@ impl BlockId { pub fn magenta_shulker_box() -> Self { let mut block = Self { kind: BlockKind::MagentaShulkerBox, - state: 0, + state: BlockKind::MagentaShulkerBox.default_state_id() + - BlockKind::MagentaShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4812,7 +5261,8 @@ impl BlockId { pub fn light_blue_shulker_box() -> Self { let mut block = Self { kind: BlockKind::LightBlueShulkerBox, - state: 0, + state: BlockKind::LightBlueShulkerBox.default_state_id() + - BlockKind::LightBlueShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4821,7 +5271,8 @@ impl BlockId { pub fn yellow_shulker_box() -> Self { let mut block = Self { kind: BlockKind::YellowShulkerBox, - state: 0, + state: BlockKind::YellowShulkerBox.default_state_id() + - BlockKind::YellowShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4830,7 +5281,8 @@ impl BlockId { pub fn lime_shulker_box() -> Self { let mut block = Self { kind: BlockKind::LimeShulkerBox, - state: 0, + state: BlockKind::LimeShulkerBox.default_state_id() + - BlockKind::LimeShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4839,7 +5291,8 @@ impl BlockId { pub fn pink_shulker_box() -> Self { let mut block = Self { kind: BlockKind::PinkShulkerBox, - state: 0, + state: BlockKind::PinkShulkerBox.default_state_id() + - BlockKind::PinkShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4848,7 +5301,8 @@ impl BlockId { pub fn gray_shulker_box() -> Self { let mut block = Self { kind: BlockKind::GrayShulkerBox, - state: 0, + state: BlockKind::GrayShulkerBox.default_state_id() + - BlockKind::GrayShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4857,7 +5311,8 @@ impl BlockId { pub fn light_gray_shulker_box() -> Self { let mut block = Self { kind: BlockKind::LightGrayShulkerBox, - state: 0, + state: BlockKind::LightGrayShulkerBox.default_state_id() + - BlockKind::LightGrayShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4866,7 +5321,8 @@ impl BlockId { pub fn cyan_shulker_box() -> Self { let mut block = Self { kind: BlockKind::CyanShulkerBox, - state: 0, + state: BlockKind::CyanShulkerBox.default_state_id() + - BlockKind::CyanShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4875,7 +5331,8 @@ impl BlockId { pub fn purple_shulker_box() -> Self { let mut block = Self { kind: BlockKind::PurpleShulkerBox, - state: 0, + state: BlockKind::PurpleShulkerBox.default_state_id() + - BlockKind::PurpleShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4884,7 +5341,8 @@ impl BlockId { pub fn blue_shulker_box() -> Self { let mut block = Self { kind: BlockKind::BlueShulkerBox, - state: 0, + state: BlockKind::BlueShulkerBox.default_state_id() + - BlockKind::BlueShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4893,7 +5351,8 @@ impl BlockId { pub fn brown_shulker_box() -> Self { let mut block = Self { kind: BlockKind::BrownShulkerBox, - state: 0, + state: BlockKind::BrownShulkerBox.default_state_id() + - BlockKind::BrownShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4902,7 +5361,8 @@ impl BlockId { pub fn green_shulker_box() -> Self { let mut block = Self { kind: BlockKind::GreenShulkerBox, - state: 0, + state: BlockKind::GreenShulkerBox.default_state_id() + - BlockKind::GreenShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4911,7 +5371,8 @@ impl BlockId { pub fn red_shulker_box() -> Self { let mut block = Self { kind: BlockKind::RedShulkerBox, - state: 0, + state: BlockKind::RedShulkerBox.default_state_id() + - BlockKind::RedShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4920,7 +5381,8 @@ impl BlockId { pub fn black_shulker_box() -> Self { let mut block = Self { kind: BlockKind::BlackShulkerBox, - state: 0, + state: BlockKind::BlackShulkerBox.default_state_id() + - BlockKind::BlackShulkerBox.min_state_id(), }; block.set_facing_cubic(FacingCubic::Up); block @@ -4929,7 +5391,8 @@ impl BlockId { pub fn white_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::WhiteGlazedTerracotta, - state: 0, + state: BlockKind::WhiteGlazedTerracotta.default_state_id() + - BlockKind::WhiteGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4938,7 +5401,8 @@ impl BlockId { pub fn orange_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::OrangeGlazedTerracotta, - state: 0, + state: BlockKind::OrangeGlazedTerracotta.default_state_id() + - BlockKind::OrangeGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4947,7 +5411,8 @@ impl BlockId { pub fn magenta_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::MagentaGlazedTerracotta, - state: 0, + state: BlockKind::MagentaGlazedTerracotta.default_state_id() + - BlockKind::MagentaGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4956,7 +5421,8 @@ impl BlockId { pub fn light_blue_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::LightBlueGlazedTerracotta, - state: 0, + state: BlockKind::LightBlueGlazedTerracotta.default_state_id() + - BlockKind::LightBlueGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4965,7 +5431,8 @@ impl BlockId { pub fn yellow_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::YellowGlazedTerracotta, - state: 0, + state: BlockKind::YellowGlazedTerracotta.default_state_id() + - BlockKind::YellowGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4974,7 +5441,8 @@ impl BlockId { pub fn lime_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::LimeGlazedTerracotta, - state: 0, + state: BlockKind::LimeGlazedTerracotta.default_state_id() + - BlockKind::LimeGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4983,7 +5451,8 @@ impl BlockId { pub fn pink_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::PinkGlazedTerracotta, - state: 0, + state: BlockKind::PinkGlazedTerracotta.default_state_id() + - BlockKind::PinkGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -4992,7 +5461,8 @@ impl BlockId { pub fn gray_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::GrayGlazedTerracotta, - state: 0, + state: BlockKind::GrayGlazedTerracotta.default_state_id() + - BlockKind::GrayGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -5001,7 +5471,8 @@ impl BlockId { pub fn light_gray_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::LightGrayGlazedTerracotta, - state: 0, + state: BlockKind::LightGrayGlazedTerracotta.default_state_id() + - BlockKind::LightGrayGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -5010,7 +5481,8 @@ impl BlockId { pub fn cyan_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::CyanGlazedTerracotta, - state: 0, + state: BlockKind::CyanGlazedTerracotta.default_state_id() + - BlockKind::CyanGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -5019,7 +5491,8 @@ impl BlockId { pub fn purple_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::PurpleGlazedTerracotta, - state: 0, + state: BlockKind::PurpleGlazedTerracotta.default_state_id() + - BlockKind::PurpleGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -5028,7 +5501,8 @@ impl BlockId { pub fn blue_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::BlueGlazedTerracotta, - state: 0, + state: BlockKind::BlueGlazedTerracotta.default_state_id() + - BlockKind::BlueGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -5037,7 +5511,8 @@ impl BlockId { pub fn brown_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::BrownGlazedTerracotta, - state: 0, + state: BlockKind::BrownGlazedTerracotta.default_state_id() + - BlockKind::BrownGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -5046,7 +5521,8 @@ impl BlockId { pub fn green_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::GreenGlazedTerracotta, - state: 0, + state: BlockKind::GreenGlazedTerracotta.default_state_id() + - BlockKind::GreenGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -5055,7 +5531,8 @@ impl BlockId { pub fn red_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::RedGlazedTerracotta, - state: 0, + state: BlockKind::RedGlazedTerracotta.default_state_id() + - BlockKind::RedGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -5064,7 +5541,8 @@ impl BlockId { pub fn black_glazed_terracotta() -> Self { let mut block = Self { kind: BlockKind::BlackGlazedTerracotta, - state: 0, + state: BlockKind::BlackGlazedTerracotta.default_state_id() + - BlockKind::BlackGlazedTerracotta.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -5073,7 +5551,8 @@ impl BlockId { pub fn white_concrete() -> Self { let mut block = Self { kind: BlockKind::WhiteConcrete, - state: 0, + state: BlockKind::WhiteConcrete.default_state_id() + - BlockKind::WhiteConcrete.min_state_id(), }; block } @@ -5081,7 +5560,8 @@ impl BlockId { pub fn orange_concrete() -> Self { let mut block = Self { kind: BlockKind::OrangeConcrete, - state: 0, + state: BlockKind::OrangeConcrete.default_state_id() + - BlockKind::OrangeConcrete.min_state_id(), }; block } @@ -5089,7 +5569,8 @@ impl BlockId { pub fn magenta_concrete() -> Self { let mut block = Self { kind: BlockKind::MagentaConcrete, - state: 0, + state: BlockKind::MagentaConcrete.default_state_id() + - BlockKind::MagentaConcrete.min_state_id(), }; block } @@ -5097,7 +5578,8 @@ impl BlockId { pub fn light_blue_concrete() -> Self { let mut block = Self { kind: BlockKind::LightBlueConcrete, - state: 0, + state: BlockKind::LightBlueConcrete.default_state_id() + - BlockKind::LightBlueConcrete.min_state_id(), }; block } @@ -5105,7 +5587,8 @@ impl BlockId { pub fn yellow_concrete() -> Self { let mut block = Self { kind: BlockKind::YellowConcrete, - state: 0, + state: BlockKind::YellowConcrete.default_state_id() + - BlockKind::YellowConcrete.min_state_id(), }; block } @@ -5113,7 +5596,8 @@ impl BlockId { pub fn lime_concrete() -> Self { let mut block = Self { kind: BlockKind::LimeConcrete, - state: 0, + state: BlockKind::LimeConcrete.default_state_id() + - BlockKind::LimeConcrete.min_state_id(), }; block } @@ -5121,7 +5605,8 @@ impl BlockId { pub fn pink_concrete() -> Self { let mut block = Self { kind: BlockKind::PinkConcrete, - state: 0, + state: BlockKind::PinkConcrete.default_state_id() + - BlockKind::PinkConcrete.min_state_id(), }; block } @@ -5129,7 +5614,8 @@ impl BlockId { pub fn gray_concrete() -> Self { let mut block = Self { kind: BlockKind::GrayConcrete, - state: 0, + state: BlockKind::GrayConcrete.default_state_id() + - BlockKind::GrayConcrete.min_state_id(), }; block } @@ -5137,7 +5623,8 @@ impl BlockId { pub fn light_gray_concrete() -> Self { let mut block = Self { kind: BlockKind::LightGrayConcrete, - state: 0, + state: BlockKind::LightGrayConcrete.default_state_id() + - BlockKind::LightGrayConcrete.min_state_id(), }; block } @@ -5145,7 +5632,8 @@ impl BlockId { pub fn cyan_concrete() -> Self { let mut block = Self { kind: BlockKind::CyanConcrete, - state: 0, + state: BlockKind::CyanConcrete.default_state_id() + - BlockKind::CyanConcrete.min_state_id(), }; block } @@ -5153,7 +5641,8 @@ impl BlockId { pub fn purple_concrete() -> Self { let mut block = Self { kind: BlockKind::PurpleConcrete, - state: 0, + state: BlockKind::PurpleConcrete.default_state_id() + - BlockKind::PurpleConcrete.min_state_id(), }; block } @@ -5161,7 +5650,8 @@ impl BlockId { pub fn blue_concrete() -> Self { let mut block = Self { kind: BlockKind::BlueConcrete, - state: 0, + state: BlockKind::BlueConcrete.default_state_id() + - BlockKind::BlueConcrete.min_state_id(), }; block } @@ -5169,7 +5659,8 @@ impl BlockId { pub fn brown_concrete() -> Self { let mut block = Self { kind: BlockKind::BrownConcrete, - state: 0, + state: BlockKind::BrownConcrete.default_state_id() + - BlockKind::BrownConcrete.min_state_id(), }; block } @@ -5177,7 +5668,8 @@ impl BlockId { pub fn green_concrete() -> Self { let mut block = Self { kind: BlockKind::GreenConcrete, - state: 0, + state: BlockKind::GreenConcrete.default_state_id() + - BlockKind::GreenConcrete.min_state_id(), }; block } @@ -5185,7 +5677,8 @@ impl BlockId { pub fn red_concrete() -> Self { let mut block = Self { kind: BlockKind::RedConcrete, - state: 0, + state: BlockKind::RedConcrete.default_state_id() + - BlockKind::RedConcrete.min_state_id(), }; block } @@ -5193,7 +5686,8 @@ impl BlockId { pub fn black_concrete() -> Self { let mut block = Self { kind: BlockKind::BlackConcrete, - state: 0, + state: BlockKind::BlackConcrete.default_state_id() + - BlockKind::BlackConcrete.min_state_id(), }; block } @@ -5201,7 +5695,8 @@ impl BlockId { pub fn white_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::WhiteConcretePowder, - state: 0, + state: BlockKind::WhiteConcretePowder.default_state_id() + - BlockKind::WhiteConcretePowder.min_state_id(), }; block } @@ -5209,7 +5704,8 @@ impl BlockId { pub fn orange_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::OrangeConcretePowder, - state: 0, + state: BlockKind::OrangeConcretePowder.default_state_id() + - BlockKind::OrangeConcretePowder.min_state_id(), }; block } @@ -5217,7 +5713,8 @@ impl BlockId { pub fn magenta_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::MagentaConcretePowder, - state: 0, + state: BlockKind::MagentaConcretePowder.default_state_id() + - BlockKind::MagentaConcretePowder.min_state_id(), }; block } @@ -5225,7 +5722,8 @@ impl BlockId { pub fn light_blue_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::LightBlueConcretePowder, - state: 0, + state: BlockKind::LightBlueConcretePowder.default_state_id() + - BlockKind::LightBlueConcretePowder.min_state_id(), }; block } @@ -5233,7 +5731,8 @@ impl BlockId { pub fn yellow_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::YellowConcretePowder, - state: 0, + state: BlockKind::YellowConcretePowder.default_state_id() + - BlockKind::YellowConcretePowder.min_state_id(), }; block } @@ -5241,7 +5740,8 @@ impl BlockId { pub fn lime_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::LimeConcretePowder, - state: 0, + state: BlockKind::LimeConcretePowder.default_state_id() + - BlockKind::LimeConcretePowder.min_state_id(), }; block } @@ -5249,7 +5749,8 @@ impl BlockId { pub fn pink_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::PinkConcretePowder, - state: 0, + state: BlockKind::PinkConcretePowder.default_state_id() + - BlockKind::PinkConcretePowder.min_state_id(), }; block } @@ -5257,7 +5758,8 @@ impl BlockId { pub fn gray_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::GrayConcretePowder, - state: 0, + state: BlockKind::GrayConcretePowder.default_state_id() + - BlockKind::GrayConcretePowder.min_state_id(), }; block } @@ -5265,7 +5767,8 @@ impl BlockId { pub fn light_gray_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::LightGrayConcretePowder, - state: 0, + state: BlockKind::LightGrayConcretePowder.default_state_id() + - BlockKind::LightGrayConcretePowder.min_state_id(), }; block } @@ -5273,7 +5776,8 @@ impl BlockId { pub fn cyan_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::CyanConcretePowder, - state: 0, + state: BlockKind::CyanConcretePowder.default_state_id() + - BlockKind::CyanConcretePowder.min_state_id(), }; block } @@ -5281,7 +5785,8 @@ impl BlockId { pub fn purple_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::PurpleConcretePowder, - state: 0, + state: BlockKind::PurpleConcretePowder.default_state_id() + - BlockKind::PurpleConcretePowder.min_state_id(), }; block } @@ -5289,7 +5794,8 @@ impl BlockId { pub fn blue_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::BlueConcretePowder, - state: 0, + state: BlockKind::BlueConcretePowder.default_state_id() + - BlockKind::BlueConcretePowder.min_state_id(), }; block } @@ -5297,7 +5803,8 @@ impl BlockId { pub fn brown_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::BrownConcretePowder, - state: 0, + state: BlockKind::BrownConcretePowder.default_state_id() + - BlockKind::BrownConcretePowder.min_state_id(), }; block } @@ -5305,7 +5812,8 @@ impl BlockId { pub fn green_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::GreenConcretePowder, - state: 0, + state: BlockKind::GreenConcretePowder.default_state_id() + - BlockKind::GreenConcretePowder.min_state_id(), }; block } @@ -5313,7 +5821,8 @@ impl BlockId { pub fn red_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::RedConcretePowder, - state: 0, + state: BlockKind::RedConcretePowder.default_state_id() + - BlockKind::RedConcretePowder.min_state_id(), }; block } @@ -5321,7 +5830,8 @@ impl BlockId { pub fn black_concrete_powder() -> Self { let mut block = Self { kind: BlockKind::BlackConcretePowder, - state: 0, + state: BlockKind::BlackConcretePowder.default_state_id() + - BlockKind::BlackConcretePowder.min_state_id(), }; block } @@ -5329,7 +5839,7 @@ impl BlockId { pub fn kelp() -> Self { let mut block = Self { kind: BlockKind::Kelp, - state: 0, + state: BlockKind::Kelp.default_state_id() - BlockKind::Kelp.min_state_id(), }; block.set_age_0_25(0i32); block @@ -5338,7 +5848,7 @@ impl BlockId { pub fn kelp_plant() -> Self { let mut block = Self { kind: BlockKind::KelpPlant, - state: 0, + state: BlockKind::KelpPlant.default_state_id() - BlockKind::KelpPlant.min_state_id(), }; block } @@ -5346,7 +5856,8 @@ impl BlockId { pub fn dried_kelp_block() -> Self { let mut block = Self { kind: BlockKind::DriedKelpBlock, - state: 0, + state: BlockKind::DriedKelpBlock.default_state_id() + - BlockKind::DriedKelpBlock.min_state_id(), }; block } @@ -5354,7 +5865,7 @@ impl BlockId { pub fn turtle_egg() -> Self { let mut block = Self { kind: BlockKind::TurtleEgg, - state: 0, + state: BlockKind::TurtleEgg.default_state_id() - BlockKind::TurtleEgg.min_state_id(), }; block.set_eggs(1i32); block.set_hatch(0i32); @@ -5364,7 +5875,8 @@ impl BlockId { pub fn dead_tube_coral_block() -> Self { let mut block = Self { kind: BlockKind::DeadTubeCoralBlock, - state: 0, + state: BlockKind::DeadTubeCoralBlock.default_state_id() + - BlockKind::DeadTubeCoralBlock.min_state_id(), }; block } @@ -5372,7 +5884,8 @@ impl BlockId { pub fn dead_brain_coral_block() -> Self { let mut block = Self { kind: BlockKind::DeadBrainCoralBlock, - state: 0, + state: BlockKind::DeadBrainCoralBlock.default_state_id() + - BlockKind::DeadBrainCoralBlock.min_state_id(), }; block } @@ -5380,7 +5893,8 @@ impl BlockId { pub fn dead_bubble_coral_block() -> Self { let mut block = Self { kind: BlockKind::DeadBubbleCoralBlock, - state: 0, + state: BlockKind::DeadBubbleCoralBlock.default_state_id() + - BlockKind::DeadBubbleCoralBlock.min_state_id(), }; block } @@ -5388,7 +5902,8 @@ impl BlockId { pub fn dead_fire_coral_block() -> Self { let mut block = Self { kind: BlockKind::DeadFireCoralBlock, - state: 0, + state: BlockKind::DeadFireCoralBlock.default_state_id() + - BlockKind::DeadFireCoralBlock.min_state_id(), }; block } @@ -5396,7 +5911,8 @@ impl BlockId { pub fn dead_horn_coral_block() -> Self { let mut block = Self { kind: BlockKind::DeadHornCoralBlock, - state: 0, + state: BlockKind::DeadHornCoralBlock.default_state_id() + - BlockKind::DeadHornCoralBlock.min_state_id(), }; block } @@ -5404,7 +5920,8 @@ impl BlockId { pub fn tube_coral_block() -> Self { let mut block = Self { kind: BlockKind::TubeCoralBlock, - state: 0, + state: BlockKind::TubeCoralBlock.default_state_id() + - BlockKind::TubeCoralBlock.min_state_id(), }; block } @@ -5412,7 +5929,8 @@ impl BlockId { pub fn brain_coral_block() -> Self { let mut block = Self { kind: BlockKind::BrainCoralBlock, - state: 0, + state: BlockKind::BrainCoralBlock.default_state_id() + - BlockKind::BrainCoralBlock.min_state_id(), }; block } @@ -5420,7 +5938,8 @@ impl BlockId { pub fn bubble_coral_block() -> Self { let mut block = Self { kind: BlockKind::BubbleCoralBlock, - state: 0, + state: BlockKind::BubbleCoralBlock.default_state_id() + - BlockKind::BubbleCoralBlock.min_state_id(), }; block } @@ -5428,7 +5947,8 @@ impl BlockId { pub fn fire_coral_block() -> Self { let mut block = Self { kind: BlockKind::FireCoralBlock, - state: 0, + state: BlockKind::FireCoralBlock.default_state_id() + - BlockKind::FireCoralBlock.min_state_id(), }; block } @@ -5436,7 +5956,8 @@ impl BlockId { pub fn horn_coral_block() -> Self { let mut block = Self { kind: BlockKind::HornCoralBlock, - state: 0, + state: BlockKind::HornCoralBlock.default_state_id() + - BlockKind::HornCoralBlock.min_state_id(), }; block } @@ -5444,7 +5965,8 @@ impl BlockId { pub fn dead_tube_coral() -> Self { let mut block = Self { kind: BlockKind::DeadTubeCoral, - state: 0, + state: BlockKind::DeadTubeCoral.default_state_id() + - BlockKind::DeadTubeCoral.min_state_id(), }; block.set_waterlogged(true); block @@ -5453,7 +5975,8 @@ impl BlockId { pub fn dead_brain_coral() -> Self { let mut block = Self { kind: BlockKind::DeadBrainCoral, - state: 0, + state: BlockKind::DeadBrainCoral.default_state_id() + - BlockKind::DeadBrainCoral.min_state_id(), }; block.set_waterlogged(true); block @@ -5462,7 +5985,8 @@ impl BlockId { pub fn dead_bubble_coral() -> Self { let mut block = Self { kind: BlockKind::DeadBubbleCoral, - state: 0, + state: BlockKind::DeadBubbleCoral.default_state_id() + - BlockKind::DeadBubbleCoral.min_state_id(), }; block.set_waterlogged(true); block @@ -5471,7 +5995,8 @@ impl BlockId { pub fn dead_fire_coral() -> Self { let mut block = Self { kind: BlockKind::DeadFireCoral, - state: 0, + state: BlockKind::DeadFireCoral.default_state_id() + - BlockKind::DeadFireCoral.min_state_id(), }; block.set_waterlogged(true); block @@ -5480,7 +6005,8 @@ impl BlockId { pub fn dead_horn_coral() -> Self { let mut block = Self { kind: BlockKind::DeadHornCoral, - state: 0, + state: BlockKind::DeadHornCoral.default_state_id() + - BlockKind::DeadHornCoral.min_state_id(), }; block.set_waterlogged(true); block @@ -5489,7 +6015,7 @@ impl BlockId { pub fn tube_coral() -> Self { let mut block = Self { kind: BlockKind::TubeCoral, - state: 0, + state: BlockKind::TubeCoral.default_state_id() - BlockKind::TubeCoral.min_state_id(), }; block.set_waterlogged(true); block @@ -5498,7 +6024,7 @@ impl BlockId { pub fn brain_coral() -> Self { let mut block = Self { kind: BlockKind::BrainCoral, - state: 0, + state: BlockKind::BrainCoral.default_state_id() - BlockKind::BrainCoral.min_state_id(), }; block.set_waterlogged(true); block @@ -5507,7 +6033,8 @@ impl BlockId { pub fn bubble_coral() -> Self { let mut block = Self { kind: BlockKind::BubbleCoral, - state: 0, + state: BlockKind::BubbleCoral.default_state_id() + - BlockKind::BubbleCoral.min_state_id(), }; block.set_waterlogged(true); block @@ -5516,7 +6043,7 @@ impl BlockId { pub fn fire_coral() -> Self { let mut block = Self { kind: BlockKind::FireCoral, - state: 0, + state: BlockKind::FireCoral.default_state_id() - BlockKind::FireCoral.min_state_id(), }; block.set_waterlogged(true); block @@ -5525,7 +6052,7 @@ impl BlockId { pub fn horn_coral() -> Self { let mut block = Self { kind: BlockKind::HornCoral, - state: 0, + state: BlockKind::HornCoral.default_state_id() - BlockKind::HornCoral.min_state_id(), }; block.set_waterlogged(true); block @@ -5534,7 +6061,8 @@ impl BlockId { pub fn dead_tube_coral_fan() -> Self { let mut block = Self { kind: BlockKind::DeadTubeCoralFan, - state: 0, + state: BlockKind::DeadTubeCoralFan.default_state_id() + - BlockKind::DeadTubeCoralFan.min_state_id(), }; block.set_waterlogged(true); block @@ -5543,7 +6071,8 @@ impl BlockId { pub fn dead_brain_coral_fan() -> Self { let mut block = Self { kind: BlockKind::DeadBrainCoralFan, - state: 0, + state: BlockKind::DeadBrainCoralFan.default_state_id() + - BlockKind::DeadBrainCoralFan.min_state_id(), }; block.set_waterlogged(true); block @@ -5552,7 +6081,8 @@ impl BlockId { pub fn dead_bubble_coral_fan() -> Self { let mut block = Self { kind: BlockKind::DeadBubbleCoralFan, - state: 0, + state: BlockKind::DeadBubbleCoralFan.default_state_id() + - BlockKind::DeadBubbleCoralFan.min_state_id(), }; block.set_waterlogged(true); block @@ -5561,7 +6091,8 @@ impl BlockId { pub fn dead_fire_coral_fan() -> Self { let mut block = Self { kind: BlockKind::DeadFireCoralFan, - state: 0, + state: BlockKind::DeadFireCoralFan.default_state_id() + - BlockKind::DeadFireCoralFan.min_state_id(), }; block.set_waterlogged(true); block @@ -5570,7 +6101,8 @@ impl BlockId { pub fn dead_horn_coral_fan() -> Self { let mut block = Self { kind: BlockKind::DeadHornCoralFan, - state: 0, + state: BlockKind::DeadHornCoralFan.default_state_id() + - BlockKind::DeadHornCoralFan.min_state_id(), }; block.set_waterlogged(true); block @@ -5579,7 +6111,8 @@ impl BlockId { pub fn tube_coral_fan() -> Self { let mut block = Self { kind: BlockKind::TubeCoralFan, - state: 0, + state: BlockKind::TubeCoralFan.default_state_id() + - BlockKind::TubeCoralFan.min_state_id(), }; block.set_waterlogged(true); block @@ -5588,7 +6121,8 @@ impl BlockId { pub fn brain_coral_fan() -> Self { let mut block = Self { kind: BlockKind::BrainCoralFan, - state: 0, + state: BlockKind::BrainCoralFan.default_state_id() + - BlockKind::BrainCoralFan.min_state_id(), }; block.set_waterlogged(true); block @@ -5597,7 +6131,8 @@ impl BlockId { pub fn bubble_coral_fan() -> Self { let mut block = Self { kind: BlockKind::BubbleCoralFan, - state: 0, + state: BlockKind::BubbleCoralFan.default_state_id() + - BlockKind::BubbleCoralFan.min_state_id(), }; block.set_waterlogged(true); block @@ -5606,7 +6141,8 @@ impl BlockId { pub fn fire_coral_fan() -> Self { let mut block = Self { kind: BlockKind::FireCoralFan, - state: 0, + state: BlockKind::FireCoralFan.default_state_id() + - BlockKind::FireCoralFan.min_state_id(), }; block.set_waterlogged(true); block @@ -5615,7 +6151,8 @@ impl BlockId { pub fn horn_coral_fan() -> Self { let mut block = Self { kind: BlockKind::HornCoralFan, - state: 0, + state: BlockKind::HornCoralFan.default_state_id() + - BlockKind::HornCoralFan.min_state_id(), }; block.set_waterlogged(true); block @@ -5624,7 +6161,8 @@ impl BlockId { pub fn dead_tube_coral_wall_fan() -> Self { let mut block = Self { kind: BlockKind::DeadTubeCoralWallFan, - state: 0, + state: BlockKind::DeadTubeCoralWallFan.default_state_id() + - BlockKind::DeadTubeCoralWallFan.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(true); @@ -5634,7 +6172,8 @@ impl BlockId { pub fn dead_brain_coral_wall_fan() -> Self { let mut block = Self { kind: BlockKind::DeadBrainCoralWallFan, - state: 0, + state: BlockKind::DeadBrainCoralWallFan.default_state_id() + - BlockKind::DeadBrainCoralWallFan.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(true); @@ -5644,7 +6183,8 @@ impl BlockId { pub fn dead_bubble_coral_wall_fan() -> Self { let mut block = Self { kind: BlockKind::DeadBubbleCoralWallFan, - state: 0, + state: BlockKind::DeadBubbleCoralWallFan.default_state_id() + - BlockKind::DeadBubbleCoralWallFan.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(true); @@ -5654,7 +6194,8 @@ impl BlockId { pub fn dead_fire_coral_wall_fan() -> Self { let mut block = Self { kind: BlockKind::DeadFireCoralWallFan, - state: 0, + state: BlockKind::DeadFireCoralWallFan.default_state_id() + - BlockKind::DeadFireCoralWallFan.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(true); @@ -5664,7 +6205,8 @@ impl BlockId { pub fn dead_horn_coral_wall_fan() -> Self { let mut block = Self { kind: BlockKind::DeadHornCoralWallFan, - state: 0, + state: BlockKind::DeadHornCoralWallFan.default_state_id() + - BlockKind::DeadHornCoralWallFan.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(true); @@ -5674,7 +6216,8 @@ impl BlockId { pub fn tube_coral_wall_fan() -> Self { let mut block = Self { kind: BlockKind::TubeCoralWallFan, - state: 0, + state: BlockKind::TubeCoralWallFan.default_state_id() + - BlockKind::TubeCoralWallFan.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(true); @@ -5684,7 +6227,8 @@ impl BlockId { pub fn brain_coral_wall_fan() -> Self { let mut block = Self { kind: BlockKind::BrainCoralWallFan, - state: 0, + state: BlockKind::BrainCoralWallFan.default_state_id() + - BlockKind::BrainCoralWallFan.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(true); @@ -5694,7 +6238,8 @@ impl BlockId { pub fn bubble_coral_wall_fan() -> Self { let mut block = Self { kind: BlockKind::BubbleCoralWallFan, - state: 0, + state: BlockKind::BubbleCoralWallFan.default_state_id() + - BlockKind::BubbleCoralWallFan.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(true); @@ -5704,7 +6249,8 @@ impl BlockId { pub fn fire_coral_wall_fan() -> Self { let mut block = Self { kind: BlockKind::FireCoralWallFan, - state: 0, + state: BlockKind::FireCoralWallFan.default_state_id() + - BlockKind::FireCoralWallFan.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(true); @@ -5714,7 +6260,8 @@ impl BlockId { pub fn horn_coral_wall_fan() -> Self { let mut block = Self { kind: BlockKind::HornCoralWallFan, - state: 0, + state: BlockKind::HornCoralWallFan.default_state_id() + - BlockKind::HornCoralWallFan.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(true); @@ -5724,7 +6271,7 @@ impl BlockId { pub fn sea_pickle() -> Self { let mut block = Self { kind: BlockKind::SeaPickle, - state: 0, + state: BlockKind::SeaPickle.default_state_id() - BlockKind::SeaPickle.min_state_id(), }; block.set_pickles(1i32); block.set_waterlogged(true); @@ -5734,7 +6281,7 @@ impl BlockId { pub fn blue_ice() -> Self { let mut block = Self { kind: BlockKind::BlueIce, - state: 0, + state: BlockKind::BlueIce.default_state_id() - BlockKind::BlueIce.min_state_id(), }; block } @@ -5742,7 +6289,7 @@ impl BlockId { pub fn conduit() -> Self { let mut block = Self { kind: BlockKind::Conduit, - state: 0, + state: BlockKind::Conduit.default_state_id() - BlockKind::Conduit.min_state_id(), }; block.set_waterlogged(true); block @@ -5751,7 +6298,8 @@ impl BlockId { pub fn bamboo_sapling() -> Self { let mut block = Self { kind: BlockKind::BambooSapling, - state: 0, + state: BlockKind::BambooSapling.default_state_id() + - BlockKind::BambooSapling.min_state_id(), }; block } @@ -5759,7 +6307,7 @@ impl BlockId { pub fn bamboo() -> Self { let mut block = Self { kind: BlockKind::Bamboo, - state: 0, + state: BlockKind::Bamboo.default_state_id() - BlockKind::Bamboo.min_state_id(), }; block.set_age_0_1(0i32); block.set_leaves(Leaves::None); @@ -5770,7 +6318,8 @@ impl BlockId { pub fn potted_bamboo() -> Self { let mut block = Self { kind: BlockKind::PottedBamboo, - state: 0, + state: BlockKind::PottedBamboo.default_state_id() + - BlockKind::PottedBamboo.min_state_id(), }; block } @@ -5778,7 +6327,7 @@ impl BlockId { pub fn void_air() -> Self { let mut block = Self { kind: BlockKind::VoidAir, - state: 0, + state: BlockKind::VoidAir.default_state_id() - BlockKind::VoidAir.min_state_id(), }; block } @@ -5786,7 +6335,7 @@ impl BlockId { pub fn cave_air() -> Self { let mut block = Self { kind: BlockKind::CaveAir, - state: 0, + state: BlockKind::CaveAir.default_state_id() - BlockKind::CaveAir.min_state_id(), }; block } @@ -5794,7 +6343,8 @@ impl BlockId { pub fn bubble_column() -> Self { let mut block = Self { kind: BlockKind::BubbleColumn, - state: 0, + state: BlockKind::BubbleColumn.default_state_id() + - BlockKind::BubbleColumn.min_state_id(), }; block.set_drag(true); block @@ -5803,7 +6353,8 @@ impl BlockId { pub fn polished_granite_stairs() -> Self { let mut block = Self { kind: BlockKind::PolishedGraniteStairs, - state: 0, + state: BlockKind::PolishedGraniteStairs.default_state_id() + - BlockKind::PolishedGraniteStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5815,7 +6366,8 @@ impl BlockId { pub fn smooth_red_sandstone_stairs() -> Self { let mut block = Self { kind: BlockKind::SmoothRedSandstoneStairs, - state: 0, + state: BlockKind::SmoothRedSandstoneStairs.default_state_id() + - BlockKind::SmoothRedSandstoneStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5827,7 +6379,8 @@ impl BlockId { pub fn mossy_stone_brick_stairs() -> Self { let mut block = Self { kind: BlockKind::MossyStoneBrickStairs, - state: 0, + state: BlockKind::MossyStoneBrickStairs.default_state_id() + - BlockKind::MossyStoneBrickStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5839,7 +6392,8 @@ impl BlockId { pub fn polished_diorite_stairs() -> Self { let mut block = Self { kind: BlockKind::PolishedDioriteStairs, - state: 0, + state: BlockKind::PolishedDioriteStairs.default_state_id() + - BlockKind::PolishedDioriteStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5851,7 +6405,8 @@ impl BlockId { pub fn mossy_cobblestone_stairs() -> Self { let mut block = Self { kind: BlockKind::MossyCobblestoneStairs, - state: 0, + state: BlockKind::MossyCobblestoneStairs.default_state_id() + - BlockKind::MossyCobblestoneStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5863,7 +6418,8 @@ impl BlockId { pub fn end_stone_brick_stairs() -> Self { let mut block = Self { kind: BlockKind::EndStoneBrickStairs, - state: 0, + state: BlockKind::EndStoneBrickStairs.default_state_id() + - BlockKind::EndStoneBrickStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5875,7 +6431,8 @@ impl BlockId { pub fn stone_stairs() -> Self { let mut block = Self { kind: BlockKind::StoneStairs, - state: 0, + state: BlockKind::StoneStairs.default_state_id() + - BlockKind::StoneStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5887,7 +6444,8 @@ impl BlockId { pub fn smooth_sandstone_stairs() -> Self { let mut block = Self { kind: BlockKind::SmoothSandstoneStairs, - state: 0, + state: BlockKind::SmoothSandstoneStairs.default_state_id() + - BlockKind::SmoothSandstoneStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5899,7 +6457,8 @@ impl BlockId { pub fn smooth_quartz_stairs() -> Self { let mut block = Self { kind: BlockKind::SmoothQuartzStairs, - state: 0, + state: BlockKind::SmoothQuartzStairs.default_state_id() + - BlockKind::SmoothQuartzStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5911,7 +6470,8 @@ impl BlockId { pub fn granite_stairs() -> Self { let mut block = Self { kind: BlockKind::GraniteStairs, - state: 0, + state: BlockKind::GraniteStairs.default_state_id() + - BlockKind::GraniteStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5923,7 +6483,8 @@ impl BlockId { pub fn andesite_stairs() -> Self { let mut block = Self { kind: BlockKind::AndesiteStairs, - state: 0, + state: BlockKind::AndesiteStairs.default_state_id() + - BlockKind::AndesiteStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5935,7 +6496,8 @@ impl BlockId { pub fn red_nether_brick_stairs() -> Self { let mut block = Self { kind: BlockKind::RedNetherBrickStairs, - state: 0, + state: BlockKind::RedNetherBrickStairs.default_state_id() + - BlockKind::RedNetherBrickStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5947,7 +6509,8 @@ impl BlockId { pub fn polished_andesite_stairs() -> Self { let mut block = Self { kind: BlockKind::PolishedAndesiteStairs, - state: 0, + state: BlockKind::PolishedAndesiteStairs.default_state_id() + - BlockKind::PolishedAndesiteStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5959,7 +6522,8 @@ impl BlockId { pub fn diorite_stairs() -> Self { let mut block = Self { kind: BlockKind::DioriteStairs, - state: 0, + state: BlockKind::DioriteStairs.default_state_id() + - BlockKind::DioriteStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -5971,7 +6535,8 @@ impl BlockId { pub fn polished_granite_slab() -> Self { let mut block = Self { kind: BlockKind::PolishedGraniteSlab, - state: 0, + state: BlockKind::PolishedGraniteSlab.default_state_id() + - BlockKind::PolishedGraniteSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -5981,7 +6546,8 @@ impl BlockId { pub fn smooth_red_sandstone_slab() -> Self { let mut block = Self { kind: BlockKind::SmoothRedSandstoneSlab, - state: 0, + state: BlockKind::SmoothRedSandstoneSlab.default_state_id() + - BlockKind::SmoothRedSandstoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -5991,7 +6557,8 @@ impl BlockId { pub fn mossy_stone_brick_slab() -> Self { let mut block = Self { kind: BlockKind::MossyStoneBrickSlab, - state: 0, + state: BlockKind::MossyStoneBrickSlab.default_state_id() + - BlockKind::MossyStoneBrickSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6001,7 +6568,8 @@ impl BlockId { pub fn polished_diorite_slab() -> Self { let mut block = Self { kind: BlockKind::PolishedDioriteSlab, - state: 0, + state: BlockKind::PolishedDioriteSlab.default_state_id() + - BlockKind::PolishedDioriteSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6011,7 +6579,8 @@ impl BlockId { pub fn mossy_cobblestone_slab() -> Self { let mut block = Self { kind: BlockKind::MossyCobblestoneSlab, - state: 0, + state: BlockKind::MossyCobblestoneSlab.default_state_id() + - BlockKind::MossyCobblestoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6021,7 +6590,8 @@ impl BlockId { pub fn end_stone_brick_slab() -> Self { let mut block = Self { kind: BlockKind::EndStoneBrickSlab, - state: 0, + state: BlockKind::EndStoneBrickSlab.default_state_id() + - BlockKind::EndStoneBrickSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6031,7 +6601,8 @@ impl BlockId { pub fn smooth_sandstone_slab() -> Self { let mut block = Self { kind: BlockKind::SmoothSandstoneSlab, - state: 0, + state: BlockKind::SmoothSandstoneSlab.default_state_id() + - BlockKind::SmoothSandstoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6041,7 +6612,8 @@ impl BlockId { pub fn smooth_quartz_slab() -> Self { let mut block = Self { kind: BlockKind::SmoothQuartzSlab, - state: 0, + state: BlockKind::SmoothQuartzSlab.default_state_id() + - BlockKind::SmoothQuartzSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6051,7 +6623,8 @@ impl BlockId { pub fn granite_slab() -> Self { let mut block = Self { kind: BlockKind::GraniteSlab, - state: 0, + state: BlockKind::GraniteSlab.default_state_id() + - BlockKind::GraniteSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6061,7 +6634,8 @@ impl BlockId { pub fn andesite_slab() -> Self { let mut block = Self { kind: BlockKind::AndesiteSlab, - state: 0, + state: BlockKind::AndesiteSlab.default_state_id() + - BlockKind::AndesiteSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6071,7 +6645,8 @@ impl BlockId { pub fn red_nether_brick_slab() -> Self { let mut block = Self { kind: BlockKind::RedNetherBrickSlab, - state: 0, + state: BlockKind::RedNetherBrickSlab.default_state_id() + - BlockKind::RedNetherBrickSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6081,7 +6656,8 @@ impl BlockId { pub fn polished_andesite_slab() -> Self { let mut block = Self { kind: BlockKind::PolishedAndesiteSlab, - state: 0, + state: BlockKind::PolishedAndesiteSlab.default_state_id() + - BlockKind::PolishedAndesiteSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6091,7 +6667,8 @@ impl BlockId { pub fn diorite_slab() -> Self { let mut block = Self { kind: BlockKind::DioriteSlab, - state: 0, + state: BlockKind::DioriteSlab.default_state_id() + - BlockKind::DioriteSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6101,7 +6678,7 @@ impl BlockId { pub fn brick_wall() -> Self { let mut block = Self { kind: BlockKind::BrickWall, - state: 0, + state: BlockKind::BrickWall.default_state_id() - BlockKind::BrickWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6115,7 +6692,8 @@ impl BlockId { pub fn prismarine_wall() -> Self { let mut block = Self { kind: BlockKind::PrismarineWall, - state: 0, + state: BlockKind::PrismarineWall.default_state_id() + - BlockKind::PrismarineWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6129,7 +6707,8 @@ impl BlockId { pub fn red_sandstone_wall() -> Self { let mut block = Self { kind: BlockKind::RedSandstoneWall, - state: 0, + state: BlockKind::RedSandstoneWall.default_state_id() + - BlockKind::RedSandstoneWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6143,7 +6722,8 @@ impl BlockId { pub fn mossy_stone_brick_wall() -> Self { let mut block = Self { kind: BlockKind::MossyStoneBrickWall, - state: 0, + state: BlockKind::MossyStoneBrickWall.default_state_id() + - BlockKind::MossyStoneBrickWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6157,7 +6737,8 @@ impl BlockId { pub fn granite_wall() -> Self { let mut block = Self { kind: BlockKind::GraniteWall, - state: 0, + state: BlockKind::GraniteWall.default_state_id() + - BlockKind::GraniteWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6171,7 +6752,8 @@ impl BlockId { pub fn stone_brick_wall() -> Self { let mut block = Self { kind: BlockKind::StoneBrickWall, - state: 0, + state: BlockKind::StoneBrickWall.default_state_id() + - BlockKind::StoneBrickWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6185,7 +6767,8 @@ impl BlockId { pub fn nether_brick_wall() -> Self { let mut block = Self { kind: BlockKind::NetherBrickWall, - state: 0, + state: BlockKind::NetherBrickWall.default_state_id() + - BlockKind::NetherBrickWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6199,7 +6782,8 @@ impl BlockId { pub fn andesite_wall() -> Self { let mut block = Self { kind: BlockKind::AndesiteWall, - state: 0, + state: BlockKind::AndesiteWall.default_state_id() + - BlockKind::AndesiteWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6213,7 +6797,8 @@ impl BlockId { pub fn red_nether_brick_wall() -> Self { let mut block = Self { kind: BlockKind::RedNetherBrickWall, - state: 0, + state: BlockKind::RedNetherBrickWall.default_state_id() + - BlockKind::RedNetherBrickWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6227,7 +6812,8 @@ impl BlockId { pub fn sandstone_wall() -> Self { let mut block = Self { kind: BlockKind::SandstoneWall, - state: 0, + state: BlockKind::SandstoneWall.default_state_id() + - BlockKind::SandstoneWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6241,7 +6827,8 @@ impl BlockId { pub fn end_stone_brick_wall() -> Self { let mut block = Self { kind: BlockKind::EndStoneBrickWall, - state: 0, + state: BlockKind::EndStoneBrickWall.default_state_id() + - BlockKind::EndStoneBrickWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6255,7 +6842,8 @@ impl BlockId { pub fn diorite_wall() -> Self { let mut block = Self { kind: BlockKind::DioriteWall, - state: 0, + state: BlockKind::DioriteWall.default_state_id() + - BlockKind::DioriteWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -6269,7 +6857,8 @@ impl BlockId { pub fn scaffolding() -> Self { let mut block = Self { kind: BlockKind::Scaffolding, - state: 0, + state: BlockKind::Scaffolding.default_state_id() + - BlockKind::Scaffolding.min_state_id(), }; block.set_bottom(false); block.set_distance_0_7(7i32); @@ -6280,7 +6869,7 @@ impl BlockId { pub fn loom() -> Self { let mut block = Self { kind: BlockKind::Loom, - state: 0, + state: BlockKind::Loom.default_state_id() - BlockKind::Loom.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -6289,7 +6878,7 @@ impl BlockId { pub fn barrel() -> Self { let mut block = Self { kind: BlockKind::Barrel, - state: 0, + state: BlockKind::Barrel.default_state_id() - BlockKind::Barrel.min_state_id(), }; block.set_facing_cubic(FacingCubic::North); block.set_open(false); @@ -6299,7 +6888,7 @@ impl BlockId { pub fn smoker() -> Self { let mut block = Self { kind: BlockKind::Smoker, - state: 0, + state: BlockKind::Smoker.default_state_id() - BlockKind::Smoker.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_lit(false); @@ -6309,7 +6898,8 @@ impl BlockId { pub fn blast_furnace() -> Self { let mut block = Self { kind: BlockKind::BlastFurnace, - state: 0, + state: BlockKind::BlastFurnace.default_state_id() + - BlockKind::BlastFurnace.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_lit(false); @@ -6319,7 +6909,8 @@ impl BlockId { pub fn cartography_table() -> Self { let mut block = Self { kind: BlockKind::CartographyTable, - state: 0, + state: BlockKind::CartographyTable.default_state_id() + - BlockKind::CartographyTable.min_state_id(), }; block } @@ -6327,7 +6918,8 @@ impl BlockId { pub fn fletching_table() -> Self { let mut block = Self { kind: BlockKind::FletchingTable, - state: 0, + state: BlockKind::FletchingTable.default_state_id() + - BlockKind::FletchingTable.min_state_id(), }; block } @@ -6335,7 +6927,7 @@ impl BlockId { pub fn grindstone() -> Self { let mut block = Self { kind: BlockKind::Grindstone, - state: 0, + state: BlockKind::Grindstone.default_state_id() - BlockKind::Grindstone.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -6345,7 +6937,7 @@ impl BlockId { pub fn lectern() -> Self { let mut block = Self { kind: BlockKind::Lectern, - state: 0, + state: BlockKind::Lectern.default_state_id() - BlockKind::Lectern.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_has_book(false); @@ -6356,7 +6948,8 @@ impl BlockId { pub fn smithing_table() -> Self { let mut block = Self { kind: BlockKind::SmithingTable, - state: 0, + state: BlockKind::SmithingTable.default_state_id() + - BlockKind::SmithingTable.min_state_id(), }; block } @@ -6364,7 +6957,8 @@ impl BlockId { pub fn stonecutter() -> Self { let mut block = Self { kind: BlockKind::Stonecutter, - state: 0, + state: BlockKind::Stonecutter.default_state_id() + - BlockKind::Stonecutter.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block @@ -6373,7 +6967,7 @@ impl BlockId { pub fn bell() -> Self { let mut block = Self { kind: BlockKind::Bell, - state: 0, + state: BlockKind::Bell.default_state_id() - BlockKind::Bell.min_state_id(), }; block.set_attachment(Attachment::Floor); block.set_facing_cardinal(FacingCardinal::North); @@ -6384,7 +6978,7 @@ impl BlockId { pub fn lantern() -> Self { let mut block = Self { kind: BlockKind::Lantern, - state: 0, + state: BlockKind::Lantern.default_state_id() - BlockKind::Lantern.min_state_id(), }; block.set_hanging(false); block.set_waterlogged(false); @@ -6394,7 +6988,8 @@ impl BlockId { pub fn soul_lantern() -> Self { let mut block = Self { kind: BlockKind::SoulLantern, - state: 0, + state: BlockKind::SoulLantern.default_state_id() + - BlockKind::SoulLantern.min_state_id(), }; block.set_hanging(false); block.set_waterlogged(false); @@ -6404,7 +6999,7 @@ impl BlockId { pub fn campfire() -> Self { let mut block = Self { kind: BlockKind::Campfire, - state: 0, + state: BlockKind::Campfire.default_state_id() - BlockKind::Campfire.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_lit(true); @@ -6416,7 +7011,8 @@ impl BlockId { pub fn soul_campfire() -> Self { let mut block = Self { kind: BlockKind::SoulCampfire, - state: 0, + state: BlockKind::SoulCampfire.default_state_id() + - BlockKind::SoulCampfire.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_lit(true); @@ -6428,7 +7024,8 @@ impl BlockId { pub fn sweet_berry_bush() -> Self { let mut block = Self { kind: BlockKind::SweetBerryBush, - state: 0, + state: BlockKind::SweetBerryBush.default_state_id() + - BlockKind::SweetBerryBush.min_state_id(), }; block.set_age_0_3(0i32); block @@ -6437,7 +7034,7 @@ impl BlockId { pub fn warped_stem() -> Self { let mut block = Self { kind: BlockKind::WarpedStem, - state: 0, + state: BlockKind::WarpedStem.default_state_id() - BlockKind::WarpedStem.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -6446,7 +7043,8 @@ impl BlockId { pub fn stripped_warped_stem() -> Self { let mut block = Self { kind: BlockKind::StrippedWarpedStem, - state: 0, + state: BlockKind::StrippedWarpedStem.default_state_id() + - BlockKind::StrippedWarpedStem.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -6455,7 +7053,8 @@ impl BlockId { pub fn warped_hyphae() -> Self { let mut block = Self { kind: BlockKind::WarpedHyphae, - state: 0, + state: BlockKind::WarpedHyphae.default_state_id() + - BlockKind::WarpedHyphae.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -6464,7 +7063,8 @@ impl BlockId { pub fn stripped_warped_hyphae() -> Self { let mut block = Self { kind: BlockKind::StrippedWarpedHyphae, - state: 0, + state: BlockKind::StrippedWarpedHyphae.default_state_id() + - BlockKind::StrippedWarpedHyphae.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -6473,7 +7073,8 @@ impl BlockId { pub fn warped_nylium() -> Self { let mut block = Self { kind: BlockKind::WarpedNylium, - state: 0, + state: BlockKind::WarpedNylium.default_state_id() + - BlockKind::WarpedNylium.min_state_id(), }; block } @@ -6481,7 +7082,8 @@ impl BlockId { pub fn warped_fungus() -> Self { let mut block = Self { kind: BlockKind::WarpedFungus, - state: 0, + state: BlockKind::WarpedFungus.default_state_id() + - BlockKind::WarpedFungus.min_state_id(), }; block } @@ -6489,7 +7091,8 @@ impl BlockId { pub fn warped_wart_block() -> Self { let mut block = Self { kind: BlockKind::WarpedWartBlock, - state: 0, + state: BlockKind::WarpedWartBlock.default_state_id() + - BlockKind::WarpedWartBlock.min_state_id(), }; block } @@ -6497,7 +7100,8 @@ impl BlockId { pub fn warped_roots() -> Self { let mut block = Self { kind: BlockKind::WarpedRoots, - state: 0, + state: BlockKind::WarpedRoots.default_state_id() + - BlockKind::WarpedRoots.min_state_id(), }; block } @@ -6505,7 +7109,8 @@ impl BlockId { pub fn nether_sprouts() -> Self { let mut block = Self { kind: BlockKind::NetherSprouts, - state: 0, + state: BlockKind::NetherSprouts.default_state_id() + - BlockKind::NetherSprouts.min_state_id(), }; block } @@ -6513,7 +7118,8 @@ impl BlockId { pub fn crimson_stem() -> Self { let mut block = Self { kind: BlockKind::CrimsonStem, - state: 0, + state: BlockKind::CrimsonStem.default_state_id() + - BlockKind::CrimsonStem.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -6522,7 +7128,8 @@ impl BlockId { pub fn stripped_crimson_stem() -> Self { let mut block = Self { kind: BlockKind::StrippedCrimsonStem, - state: 0, + state: BlockKind::StrippedCrimsonStem.default_state_id() + - BlockKind::StrippedCrimsonStem.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -6531,7 +7138,8 @@ impl BlockId { pub fn crimson_hyphae() -> Self { let mut block = Self { kind: BlockKind::CrimsonHyphae, - state: 0, + state: BlockKind::CrimsonHyphae.default_state_id() + - BlockKind::CrimsonHyphae.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -6540,7 +7148,8 @@ impl BlockId { pub fn stripped_crimson_hyphae() -> Self { let mut block = Self { kind: BlockKind::StrippedCrimsonHyphae, - state: 0, + state: BlockKind::StrippedCrimsonHyphae.default_state_id() + - BlockKind::StrippedCrimsonHyphae.min_state_id(), }; block.set_axis_xyz(AxisXyz::Y); block @@ -6549,7 +7158,8 @@ impl BlockId { pub fn crimson_nylium() -> Self { let mut block = Self { kind: BlockKind::CrimsonNylium, - state: 0, + state: BlockKind::CrimsonNylium.default_state_id() + - BlockKind::CrimsonNylium.min_state_id(), }; block } @@ -6557,7 +7167,8 @@ impl BlockId { pub fn crimson_fungus() -> Self { let mut block = Self { kind: BlockKind::CrimsonFungus, - state: 0, + state: BlockKind::CrimsonFungus.default_state_id() + - BlockKind::CrimsonFungus.min_state_id(), }; block } @@ -6565,7 +7176,8 @@ impl BlockId { pub fn shroomlight() -> Self { let mut block = Self { kind: BlockKind::Shroomlight, - state: 0, + state: BlockKind::Shroomlight.default_state_id() + - BlockKind::Shroomlight.min_state_id(), }; block } @@ -6573,7 +7185,8 @@ impl BlockId { pub fn weeping_vines() -> Self { let mut block = Self { kind: BlockKind::WeepingVines, - state: 0, + state: BlockKind::WeepingVines.default_state_id() + - BlockKind::WeepingVines.min_state_id(), }; block.set_age_0_25(0i32); block @@ -6582,7 +7195,8 @@ impl BlockId { pub fn weeping_vines_plant() -> Self { let mut block = Self { kind: BlockKind::WeepingVinesPlant, - state: 0, + state: BlockKind::WeepingVinesPlant.default_state_id() + - BlockKind::WeepingVinesPlant.min_state_id(), }; block } @@ -6590,7 +7204,8 @@ impl BlockId { pub fn twisting_vines() -> Self { let mut block = Self { kind: BlockKind::TwistingVines, - state: 0, + state: BlockKind::TwistingVines.default_state_id() + - BlockKind::TwistingVines.min_state_id(), }; block.set_age_0_25(0i32); block @@ -6599,7 +7214,8 @@ impl BlockId { pub fn twisting_vines_plant() -> Self { let mut block = Self { kind: BlockKind::TwistingVinesPlant, - state: 0, + state: BlockKind::TwistingVinesPlant.default_state_id() + - BlockKind::TwistingVinesPlant.min_state_id(), }; block } @@ -6607,7 +7223,8 @@ impl BlockId { pub fn crimson_roots() -> Self { let mut block = Self { kind: BlockKind::CrimsonRoots, - state: 0, + state: BlockKind::CrimsonRoots.default_state_id() + - BlockKind::CrimsonRoots.min_state_id(), }; block } @@ -6615,7 +7232,8 @@ impl BlockId { pub fn crimson_planks() -> Self { let mut block = Self { kind: BlockKind::CrimsonPlanks, - state: 0, + state: BlockKind::CrimsonPlanks.default_state_id() + - BlockKind::CrimsonPlanks.min_state_id(), }; block } @@ -6623,7 +7241,8 @@ impl BlockId { pub fn warped_planks() -> Self { let mut block = Self { kind: BlockKind::WarpedPlanks, - state: 0, + state: BlockKind::WarpedPlanks.default_state_id() + - BlockKind::WarpedPlanks.min_state_id(), }; block } @@ -6631,7 +7250,8 @@ impl BlockId { pub fn crimson_slab() -> Self { let mut block = Self { kind: BlockKind::CrimsonSlab, - state: 0, + state: BlockKind::CrimsonSlab.default_state_id() + - BlockKind::CrimsonSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6641,7 +7261,7 @@ impl BlockId { pub fn warped_slab() -> Self { let mut block = Self { kind: BlockKind::WarpedSlab, - state: 0, + state: BlockKind::WarpedSlab.default_state_id() - BlockKind::WarpedSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -6651,7 +7271,8 @@ impl BlockId { pub fn crimson_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::CrimsonPressurePlate, - state: 0, + state: BlockKind::CrimsonPressurePlate.default_state_id() + - BlockKind::CrimsonPressurePlate.min_state_id(), }; block.set_powered(false); block @@ -6660,7 +7281,8 @@ impl BlockId { pub fn warped_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::WarpedPressurePlate, - state: 0, + state: BlockKind::WarpedPressurePlate.default_state_id() + - BlockKind::WarpedPressurePlate.min_state_id(), }; block.set_powered(false); block @@ -6669,7 +7291,8 @@ impl BlockId { pub fn crimson_fence() -> Self { let mut block = Self { kind: BlockKind::CrimsonFence, - state: 0, + state: BlockKind::CrimsonFence.default_state_id() + - BlockKind::CrimsonFence.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -6682,7 +7305,8 @@ impl BlockId { pub fn warped_fence() -> Self { let mut block = Self { kind: BlockKind::WarpedFence, - state: 0, + state: BlockKind::WarpedFence.default_state_id() + - BlockKind::WarpedFence.min_state_id(), }; block.set_east_connected(false); block.set_north_connected(false); @@ -6695,7 +7319,8 @@ impl BlockId { pub fn crimson_trapdoor() -> Self { let mut block = Self { kind: BlockKind::CrimsonTrapdoor, - state: 0, + state: BlockKind::CrimsonTrapdoor.default_state_id() + - BlockKind::CrimsonTrapdoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -6708,7 +7333,8 @@ impl BlockId { pub fn warped_trapdoor() -> Self { let mut block = Self { kind: BlockKind::WarpedTrapdoor, - state: 0, + state: BlockKind::WarpedTrapdoor.default_state_id() + - BlockKind::WarpedTrapdoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -6721,7 +7347,8 @@ impl BlockId { pub fn crimson_fence_gate() -> Self { let mut block = Self { kind: BlockKind::CrimsonFenceGate, - state: 0, + state: BlockKind::CrimsonFenceGate.default_state_id() + - BlockKind::CrimsonFenceGate.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_in_wall(false); @@ -6733,7 +7360,8 @@ impl BlockId { pub fn warped_fence_gate() -> Self { let mut block = Self { kind: BlockKind::WarpedFenceGate, - state: 0, + state: BlockKind::WarpedFenceGate.default_state_id() + - BlockKind::WarpedFenceGate.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_in_wall(false); @@ -6745,7 +7373,8 @@ impl BlockId { pub fn crimson_stairs() -> Self { let mut block = Self { kind: BlockKind::CrimsonStairs, - state: 0, + state: BlockKind::CrimsonStairs.default_state_id() + - BlockKind::CrimsonStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -6757,7 +7386,8 @@ impl BlockId { pub fn warped_stairs() -> Self { let mut block = Self { kind: BlockKind::WarpedStairs, - state: 0, + state: BlockKind::WarpedStairs.default_state_id() + - BlockKind::WarpedStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -6769,7 +7399,8 @@ impl BlockId { pub fn crimson_button() -> Self { let mut block = Self { kind: BlockKind::CrimsonButton, - state: 0, + state: BlockKind::CrimsonButton.default_state_id() + - BlockKind::CrimsonButton.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -6780,7 +7411,8 @@ impl BlockId { pub fn warped_button() -> Self { let mut block = Self { kind: BlockKind::WarpedButton, - state: 0, + state: BlockKind::WarpedButton.default_state_id() + - BlockKind::WarpedButton.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -6791,7 +7423,8 @@ impl BlockId { pub fn crimson_door() -> Self { let mut block = Self { kind: BlockKind::CrimsonDoor, - state: 0, + state: BlockKind::CrimsonDoor.default_state_id() + - BlockKind::CrimsonDoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_upper_lower(HalfUpperLower::Lower); @@ -6804,7 +7437,7 @@ impl BlockId { pub fn warped_door() -> Self { let mut block = Self { kind: BlockKind::WarpedDoor, - state: 0, + state: BlockKind::WarpedDoor.default_state_id() - BlockKind::WarpedDoor.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_upper_lower(HalfUpperLower::Lower); @@ -6817,7 +7450,8 @@ impl BlockId { pub fn crimson_sign() -> Self { let mut block = Self { kind: BlockKind::CrimsonSign, - state: 0, + state: BlockKind::CrimsonSign.default_state_id() + - BlockKind::CrimsonSign.min_state_id(), }; block.set_rotation(0i32); block.set_waterlogged(false); @@ -6827,7 +7461,7 @@ impl BlockId { pub fn warped_sign() -> Self { let mut block = Self { kind: BlockKind::WarpedSign, - state: 0, + state: BlockKind::WarpedSign.default_state_id() - BlockKind::WarpedSign.min_state_id(), }; block.set_rotation(0i32); block.set_waterlogged(false); @@ -6837,7 +7471,8 @@ impl BlockId { pub fn crimson_wall_sign() -> Self { let mut block = Self { kind: BlockKind::CrimsonWallSign, - state: 0, + state: BlockKind::CrimsonWallSign.default_state_id() + - BlockKind::CrimsonWallSign.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(false); @@ -6847,26 +7482,28 @@ impl BlockId { pub fn warped_wall_sign() -> Self { let mut block = Self { kind: BlockKind::WarpedWallSign, - state: 0, + state: BlockKind::WarpedWallSign.default_state_id() + - BlockKind::WarpedWallSign.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_waterlogged(false); block } - #[doc = "Returns an instance of `structure_block` with default state values.\nThe default state values are as follows:\n* `structure_block_mode`: save\n"] + #[doc = "Returns an instance of `structure_block` with default state values.\nThe default state values are as follows:\n* `structure_block_mode`: load\n"] pub fn structure_block() -> Self { let mut block = Self { kind: BlockKind::StructureBlock, - state: 0, + state: BlockKind::StructureBlock.default_state_id() + - BlockKind::StructureBlock.min_state_id(), }; - block.set_structure_block_mode(StructureBlockMode::Save); + block.set_structure_block_mode(StructureBlockMode::Load); block } #[doc = "Returns an instance of `jigsaw` with default state values.\nThe default state values are as follows:\n* `orientation`: north_up\n"] pub fn jigsaw() -> Self { let mut block = Self { kind: BlockKind::Jigsaw, - state: 0, + state: BlockKind::Jigsaw.default_state_id() - BlockKind::Jigsaw.min_state_id(), }; block.set_orientation(Orientation::NorthUp); block @@ -6875,7 +7512,7 @@ impl BlockId { pub fn composter() -> Self { let mut block = Self { kind: BlockKind::Composter, - state: 0, + state: BlockKind::Composter.default_state_id() - BlockKind::Composter.min_state_id(), }; block.set_level_0_8(0i32); block @@ -6884,7 +7521,7 @@ impl BlockId { pub fn target() -> Self { let mut block = Self { kind: BlockKind::Target, - state: 0, + state: BlockKind::Target.default_state_id() - BlockKind::Target.min_state_id(), }; block.set_power(0i32); block @@ -6893,7 +7530,7 @@ impl BlockId { pub fn bee_nest() -> Self { let mut block = Self { kind: BlockKind::BeeNest, - state: 0, + state: BlockKind::BeeNest.default_state_id() - BlockKind::BeeNest.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_honey_level(0i32); @@ -6903,7 +7540,7 @@ impl BlockId { pub fn beehive() -> Self { let mut block = Self { kind: BlockKind::Beehive, - state: 0, + state: BlockKind::Beehive.default_state_id() - BlockKind::Beehive.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_honey_level(0i32); @@ -6913,7 +7550,7 @@ impl BlockId { pub fn honey_block() -> Self { let mut block = Self { kind: BlockKind::HoneyBlock, - state: 0, + state: BlockKind::HoneyBlock.default_state_id() - BlockKind::HoneyBlock.min_state_id(), }; block } @@ -6921,7 +7558,8 @@ impl BlockId { pub fn honeycomb_block() -> Self { let mut block = Self { kind: BlockKind::HoneycombBlock, - state: 0, + state: BlockKind::HoneycombBlock.default_state_id() + - BlockKind::HoneycombBlock.min_state_id(), }; block } @@ -6929,7 +7567,8 @@ impl BlockId { pub fn netherite_block() -> Self { let mut block = Self { kind: BlockKind::NetheriteBlock, - state: 0, + state: BlockKind::NetheriteBlock.default_state_id() + - BlockKind::NetheriteBlock.min_state_id(), }; block } @@ -6937,7 +7576,8 @@ impl BlockId { pub fn ancient_debris() -> Self { let mut block = Self { kind: BlockKind::AncientDebris, - state: 0, + state: BlockKind::AncientDebris.default_state_id() + - BlockKind::AncientDebris.min_state_id(), }; block } @@ -6945,7 +7585,8 @@ impl BlockId { pub fn crying_obsidian() -> Self { let mut block = Self { kind: BlockKind::CryingObsidian, - state: 0, + state: BlockKind::CryingObsidian.default_state_id() + - BlockKind::CryingObsidian.min_state_id(), }; block } @@ -6953,7 +7594,8 @@ impl BlockId { pub fn respawn_anchor() -> Self { let mut block = Self { kind: BlockKind::RespawnAnchor, - state: 0, + state: BlockKind::RespawnAnchor.default_state_id() + - BlockKind::RespawnAnchor.min_state_id(), }; block.set_charges(0i32); block @@ -6962,7 +7604,8 @@ impl BlockId { pub fn potted_crimson_fungus() -> Self { let mut block = Self { kind: BlockKind::PottedCrimsonFungus, - state: 0, + state: BlockKind::PottedCrimsonFungus.default_state_id() + - BlockKind::PottedCrimsonFungus.min_state_id(), }; block } @@ -6970,7 +7613,8 @@ impl BlockId { pub fn potted_warped_fungus() -> Self { let mut block = Self { kind: BlockKind::PottedWarpedFungus, - state: 0, + state: BlockKind::PottedWarpedFungus.default_state_id() + - BlockKind::PottedWarpedFungus.min_state_id(), }; block } @@ -6978,7 +7622,8 @@ impl BlockId { pub fn potted_crimson_roots() -> Self { let mut block = Self { kind: BlockKind::PottedCrimsonRoots, - state: 0, + state: BlockKind::PottedCrimsonRoots.default_state_id() + - BlockKind::PottedCrimsonRoots.min_state_id(), }; block } @@ -6986,7 +7631,8 @@ impl BlockId { pub fn potted_warped_roots() -> Self { let mut block = Self { kind: BlockKind::PottedWarpedRoots, - state: 0, + state: BlockKind::PottedWarpedRoots.default_state_id() + - BlockKind::PottedWarpedRoots.min_state_id(), }; block } @@ -6994,7 +7640,7 @@ impl BlockId { pub fn lodestone() -> Self { let mut block = Self { kind: BlockKind::Lodestone, - state: 0, + state: BlockKind::Lodestone.default_state_id() - BlockKind::Lodestone.min_state_id(), }; block } @@ -7002,7 +7648,7 @@ impl BlockId { pub fn blackstone() -> Self { let mut block = Self { kind: BlockKind::Blackstone, - state: 0, + state: BlockKind::Blackstone.default_state_id() - BlockKind::Blackstone.min_state_id(), }; block } @@ -7010,7 +7656,8 @@ impl BlockId { pub fn blackstone_stairs() -> Self { let mut block = Self { kind: BlockKind::BlackstoneStairs, - state: 0, + state: BlockKind::BlackstoneStairs.default_state_id() + - BlockKind::BlackstoneStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -7022,7 +7669,8 @@ impl BlockId { pub fn blackstone_wall() -> Self { let mut block = Self { kind: BlockKind::BlackstoneWall, - state: 0, + state: BlockKind::BlackstoneWall.default_state_id() + - BlockKind::BlackstoneWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -7036,7 +7684,8 @@ impl BlockId { pub fn blackstone_slab() -> Self { let mut block = Self { kind: BlockKind::BlackstoneSlab, - state: 0, + state: BlockKind::BlackstoneSlab.default_state_id() + - BlockKind::BlackstoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -7046,7 +7695,8 @@ impl BlockId { pub fn polished_blackstone() -> Self { let mut block = Self { kind: BlockKind::PolishedBlackstone, - state: 0, + state: BlockKind::PolishedBlackstone.default_state_id() + - BlockKind::PolishedBlackstone.min_state_id(), }; block } @@ -7054,7 +7704,8 @@ impl BlockId { pub fn polished_blackstone_bricks() -> Self { let mut block = Self { kind: BlockKind::PolishedBlackstoneBricks, - state: 0, + state: BlockKind::PolishedBlackstoneBricks.default_state_id() + - BlockKind::PolishedBlackstoneBricks.min_state_id(), }; block } @@ -7062,7 +7713,8 @@ impl BlockId { pub fn cracked_polished_blackstone_bricks() -> Self { let mut block = Self { kind: BlockKind::CrackedPolishedBlackstoneBricks, - state: 0, + state: BlockKind::CrackedPolishedBlackstoneBricks.default_state_id() + - BlockKind::CrackedPolishedBlackstoneBricks.min_state_id(), }; block } @@ -7070,7 +7722,8 @@ impl BlockId { pub fn chiseled_polished_blackstone() -> Self { let mut block = Self { kind: BlockKind::ChiseledPolishedBlackstone, - state: 0, + state: BlockKind::ChiseledPolishedBlackstone.default_state_id() + - BlockKind::ChiseledPolishedBlackstone.min_state_id(), }; block } @@ -7078,7 +7731,8 @@ impl BlockId { pub fn polished_blackstone_brick_slab() -> Self { let mut block = Self { kind: BlockKind::PolishedBlackstoneBrickSlab, - state: 0, + state: BlockKind::PolishedBlackstoneBrickSlab.default_state_id() + - BlockKind::PolishedBlackstoneBrickSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -7088,7 +7742,8 @@ impl BlockId { pub fn polished_blackstone_brick_stairs() -> Self { let mut block = Self { kind: BlockKind::PolishedBlackstoneBrickStairs, - state: 0, + state: BlockKind::PolishedBlackstoneBrickStairs.default_state_id() + - BlockKind::PolishedBlackstoneBrickStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -7100,7 +7755,8 @@ impl BlockId { pub fn polished_blackstone_brick_wall() -> Self { let mut block = Self { kind: BlockKind::PolishedBlackstoneBrickWall, - state: 0, + state: BlockKind::PolishedBlackstoneBrickWall.default_state_id() + - BlockKind::PolishedBlackstoneBrickWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -7114,7 +7770,8 @@ impl BlockId { pub fn gilded_blackstone() -> Self { let mut block = Self { kind: BlockKind::GildedBlackstone, - state: 0, + state: BlockKind::GildedBlackstone.default_state_id() + - BlockKind::GildedBlackstone.min_state_id(), }; block } @@ -7122,7 +7779,8 @@ impl BlockId { pub fn polished_blackstone_stairs() -> Self { let mut block = Self { kind: BlockKind::PolishedBlackstoneStairs, - state: 0, + state: BlockKind::PolishedBlackstoneStairs.default_state_id() + - BlockKind::PolishedBlackstoneStairs.min_state_id(), }; block.set_facing_cardinal(FacingCardinal::North); block.set_half_top_bottom(HalfTopBottom::Bottom); @@ -7134,7 +7792,8 @@ impl BlockId { pub fn polished_blackstone_slab() -> Self { let mut block = Self { kind: BlockKind::PolishedBlackstoneSlab, - state: 0, + state: BlockKind::PolishedBlackstoneSlab.default_state_id() + - BlockKind::PolishedBlackstoneSlab.min_state_id(), }; block.set_slab_kind(SlabKind::Bottom); block.set_waterlogged(false); @@ -7144,7 +7803,8 @@ impl BlockId { pub fn polished_blackstone_pressure_plate() -> Self { let mut block = Self { kind: BlockKind::PolishedBlackstonePressurePlate, - state: 0, + state: BlockKind::PolishedBlackstonePressurePlate.default_state_id() + - BlockKind::PolishedBlackstonePressurePlate.min_state_id(), }; block.set_powered(false); block @@ -7153,7 +7813,8 @@ impl BlockId { pub fn polished_blackstone_button() -> Self { let mut block = Self { kind: BlockKind::PolishedBlackstoneButton, - state: 0, + state: BlockKind::PolishedBlackstoneButton.default_state_id() + - BlockKind::PolishedBlackstoneButton.min_state_id(), }; block.set_face(Face::Wall); block.set_facing_cardinal(FacingCardinal::North); @@ -7164,7 +7825,8 @@ impl BlockId { pub fn polished_blackstone_wall() -> Self { let mut block = Self { kind: BlockKind::PolishedBlackstoneWall, - state: 0, + state: BlockKind::PolishedBlackstoneWall.default_state_id() + - BlockKind::PolishedBlackstoneWall.min_state_id(), }; block.set_east_nlt(EastNlt::None); block.set_north_nlt(NorthNlt::None); @@ -7178,7 +7840,8 @@ impl BlockId { pub fn chiseled_nether_bricks() -> Self { let mut block = Self { kind: BlockKind::ChiseledNetherBricks, - state: 0, + state: BlockKind::ChiseledNetherBricks.default_state_id() + - BlockKind::ChiseledNetherBricks.min_state_id(), }; block } @@ -7186,7 +7849,8 @@ impl BlockId { pub fn cracked_nether_bricks() -> Self { let mut block = Self { kind: BlockKind::CrackedNetherBricks, - state: 0, + state: BlockKind::CrackedNetherBricks.default_state_id() + - BlockKind::CrackedNetherBricks.min_state_id(), }; block } @@ -7194,617 +7858,1297 @@ impl BlockId { pub fn quartz_bricks() -> Self { let mut block = Self { kind: BlockKind::QuartzBricks, - state: 0, + state: BlockKind::QuartzBricks.default_state_id() + - BlockKind::QuartzBricks.min_state_id(), }; block } - pub fn age_0_1(self) -> Option { - BLOCK_TABLE.age_0_1(self.kind, self.state) - } - pub fn set_age_0_1(&mut self, age_0_1: i32) -> bool { - match BLOCK_TABLE.set_age_0_1(self.kind, self.state, age_0_1) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn candle() -> Self { + let mut block = Self { + kind: BlockKind::Candle, + state: BlockKind::Candle.default_state_id() - BlockKind::Candle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn with_age_0_1(mut self, age_0_1: i32) -> Self { - self.set_age_0_1(age_0_1); - self + #[doc = "Returns an instance of `white_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn white_candle() -> Self { + let mut block = Self { + kind: BlockKind::WhiteCandle, + state: BlockKind::WhiteCandle.default_state_id() + - BlockKind::WhiteCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn age_0_15(self) -> Option { - BLOCK_TABLE.age_0_15(self.kind, self.state) + #[doc = "Returns an instance of `orange_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn orange_candle() -> Self { + let mut block = Self { + kind: BlockKind::OrangeCandle, + state: BlockKind::OrangeCandle.default_state_id() + - BlockKind::OrangeCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn set_age_0_15(&mut self, age_0_15: i32) -> bool { - match BLOCK_TABLE.set_age_0_15(self.kind, self.state, age_0_15) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `magenta_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn magenta_candle() -> Self { + let mut block = Self { + kind: BlockKind::MagentaCandle, + state: BlockKind::MagentaCandle.default_state_id() + - BlockKind::MagentaCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn with_age_0_15(mut self, age_0_15: i32) -> Self { - self.set_age_0_15(age_0_15); - self + #[doc = "Returns an instance of `light_blue_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn light_blue_candle() -> Self { + let mut block = Self { + kind: BlockKind::LightBlueCandle, + state: BlockKind::LightBlueCandle.default_state_id() + - BlockKind::LightBlueCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn age_0_2(self) -> Option { - BLOCK_TABLE.age_0_2(self.kind, self.state) + #[doc = "Returns an instance of `yellow_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn yellow_candle() -> Self { + let mut block = Self { + kind: BlockKind::YellowCandle, + state: BlockKind::YellowCandle.default_state_id() + - BlockKind::YellowCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn set_age_0_2(&mut self, age_0_2: i32) -> bool { - match BLOCK_TABLE.set_age_0_2(self.kind, self.state, age_0_2) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `lime_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn lime_candle() -> Self { + let mut block = Self { + kind: BlockKind::LimeCandle, + state: BlockKind::LimeCandle.default_state_id() - BlockKind::LimeCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn with_age_0_2(mut self, age_0_2: i32) -> Self { - self.set_age_0_2(age_0_2); - self + #[doc = "Returns an instance of `pink_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn pink_candle() -> Self { + let mut block = Self { + kind: BlockKind::PinkCandle, + state: BlockKind::PinkCandle.default_state_id() - BlockKind::PinkCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn age_0_25(self) -> Option { - BLOCK_TABLE.age_0_25(self.kind, self.state) + #[doc = "Returns an instance of `gray_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn gray_candle() -> Self { + let mut block = Self { + kind: BlockKind::GrayCandle, + state: BlockKind::GrayCandle.default_state_id() - BlockKind::GrayCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn set_age_0_25(&mut self, age_0_25: i32) -> bool { - match BLOCK_TABLE.set_age_0_25(self.kind, self.state, age_0_25) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `light_gray_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn light_gray_candle() -> Self { + let mut block = Self { + kind: BlockKind::LightGrayCandle, + state: BlockKind::LightGrayCandle.default_state_id() + - BlockKind::LightGrayCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn with_age_0_25(mut self, age_0_25: i32) -> Self { - self.set_age_0_25(age_0_25); - self + #[doc = "Returns an instance of `cyan_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn cyan_candle() -> Self { + let mut block = Self { + kind: BlockKind::CyanCandle, + state: BlockKind::CyanCandle.default_state_id() - BlockKind::CyanCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn age_0_3(self) -> Option { - BLOCK_TABLE.age_0_3(self.kind, self.state) + #[doc = "Returns an instance of `purple_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn purple_candle() -> Self { + let mut block = Self { + kind: BlockKind::PurpleCandle, + state: BlockKind::PurpleCandle.default_state_id() + - BlockKind::PurpleCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn set_age_0_3(&mut self, age_0_3: i32) -> bool { - match BLOCK_TABLE.set_age_0_3(self.kind, self.state, age_0_3) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `blue_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn blue_candle() -> Self { + let mut block = Self { + kind: BlockKind::BlueCandle, + state: BlockKind::BlueCandle.default_state_id() - BlockKind::BlueCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn with_age_0_3(mut self, age_0_3: i32) -> Self { - self.set_age_0_3(age_0_3); - self + #[doc = "Returns an instance of `brown_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn brown_candle() -> Self { + let mut block = Self { + kind: BlockKind::BrownCandle, + state: BlockKind::BrownCandle.default_state_id() + - BlockKind::BrownCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn age_0_5(self) -> Option { - BLOCK_TABLE.age_0_5(self.kind, self.state) + #[doc = "Returns an instance of `green_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn green_candle() -> Self { + let mut block = Self { + kind: BlockKind::GreenCandle, + state: BlockKind::GreenCandle.default_state_id() + - BlockKind::GreenCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn set_age_0_5(&mut self, age_0_5: i32) -> bool { - match BLOCK_TABLE.set_age_0_5(self.kind, self.state, age_0_5) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `red_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn red_candle() -> Self { + let mut block = Self { + kind: BlockKind::RedCandle, + state: BlockKind::RedCandle.default_state_id() - BlockKind::RedCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn with_age_0_5(mut self, age_0_5: i32) -> Self { - self.set_age_0_5(age_0_5); - self + #[doc = "Returns an instance of `black_candle` with default state values.\nThe default state values are as follows:\n* `candles`: 1\n* `lit`: false\n* `waterlogged`: false\n"] + pub fn black_candle() -> Self { + let mut block = Self { + kind: BlockKind::BlackCandle, + state: BlockKind::BlackCandle.default_state_id() + - BlockKind::BlackCandle.min_state_id(), + }; + block.set_candles(1i32); + block.set_lit(false); + block.set_waterlogged(false); + block } - pub fn age_0_7(self) -> Option { - BLOCK_TABLE.age_0_7(self.kind, self.state) + #[doc = "Returns an instance of `candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::CandleCake, + state: BlockKind::CandleCake.default_state_id() - BlockKind::CandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn set_age_0_7(&mut self, age_0_7: i32) -> bool { - match BLOCK_TABLE.set_age_0_7(self.kind, self.state, age_0_7) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `white_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn white_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::WhiteCandleCake, + state: BlockKind::WhiteCandleCake.default_state_id() + - BlockKind::WhiteCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn with_age_0_7(mut self, age_0_7: i32) -> Self { - self.set_age_0_7(age_0_7); - self + #[doc = "Returns an instance of `orange_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn orange_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::OrangeCandleCake, + state: BlockKind::OrangeCandleCake.default_state_id() + - BlockKind::OrangeCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn attached(self) -> Option { - BLOCK_TABLE.attached(self.kind, self.state) + #[doc = "Returns an instance of `magenta_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn magenta_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::MagentaCandleCake, + state: BlockKind::MagentaCandleCake.default_state_id() + - BlockKind::MagentaCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn set_attached(&mut self, attached: bool) -> bool { - match BLOCK_TABLE.set_attached(self.kind, self.state, attached) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `light_blue_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn light_blue_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::LightBlueCandleCake, + state: BlockKind::LightBlueCandleCake.default_state_id() + - BlockKind::LightBlueCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn with_attached(mut self, attached: bool) -> Self { - self.set_attached(attached); - self + #[doc = "Returns an instance of `yellow_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn yellow_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::YellowCandleCake, + state: BlockKind::YellowCandleCake.default_state_id() + - BlockKind::YellowCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn attachment(self) -> Option { - BLOCK_TABLE.attachment(self.kind, self.state) + #[doc = "Returns an instance of `lime_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn lime_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::LimeCandleCake, + state: BlockKind::LimeCandleCake.default_state_id() + - BlockKind::LimeCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn set_attachment(&mut self, attachment: Attachment) -> bool { - match BLOCK_TABLE.set_attachment(self.kind, self.state, attachment) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `pink_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn pink_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::PinkCandleCake, + state: BlockKind::PinkCandleCake.default_state_id() + - BlockKind::PinkCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn with_attachment(mut self, attachment: Attachment) -> Self { - self.set_attachment(attachment); - self + #[doc = "Returns an instance of `gray_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn gray_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::GrayCandleCake, + state: BlockKind::GrayCandleCake.default_state_id() + - BlockKind::GrayCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn axis_xyz(self) -> Option { - BLOCK_TABLE.axis_xyz(self.kind, self.state) + #[doc = "Returns an instance of `light_gray_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn light_gray_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::LightGrayCandleCake, + state: BlockKind::LightGrayCandleCake.default_state_id() + - BlockKind::LightGrayCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn set_axis_xyz(&mut self, axis_xyz: AxisXyz) -> bool { - match BLOCK_TABLE.set_axis_xyz(self.kind, self.state, axis_xyz) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `cyan_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn cyan_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::CyanCandleCake, + state: BlockKind::CyanCandleCake.default_state_id() + - BlockKind::CyanCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn with_axis_xyz(mut self, axis_xyz: AxisXyz) -> Self { - self.set_axis_xyz(axis_xyz); - self + #[doc = "Returns an instance of `purple_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn purple_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::PurpleCandleCake, + state: BlockKind::PurpleCandleCake.default_state_id() + - BlockKind::PurpleCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn axis_xz(self) -> Option { - BLOCK_TABLE.axis_xz(self.kind, self.state) + #[doc = "Returns an instance of `blue_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn blue_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::BlueCandleCake, + state: BlockKind::BlueCandleCake.default_state_id() + - BlockKind::BlueCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn set_axis_xz(&mut self, axis_xz: AxisXz) -> bool { - match BLOCK_TABLE.set_axis_xz(self.kind, self.state, axis_xz) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `brown_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn brown_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::BrownCandleCake, + state: BlockKind::BrownCandleCake.default_state_id() + - BlockKind::BrownCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn with_axis_xz(mut self, axis_xz: AxisXz) -> Self { - self.set_axis_xz(axis_xz); - self + #[doc = "Returns an instance of `green_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn green_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::GreenCandleCake, + state: BlockKind::GreenCandleCake.default_state_id() + - BlockKind::GreenCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn bites(self) -> Option { - BLOCK_TABLE.bites(self.kind, self.state) + #[doc = "Returns an instance of `red_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn red_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::RedCandleCake, + state: BlockKind::RedCandleCake.default_state_id() + - BlockKind::RedCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn set_bites(&mut self, bites: i32) -> bool { - match BLOCK_TABLE.set_bites(self.kind, self.state, bites) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `black_candle_cake` with default state values.\nThe default state values are as follows:\n* `lit`: false\n"] + pub fn black_candle_cake() -> Self { + let mut block = Self { + kind: BlockKind::BlackCandleCake, + state: BlockKind::BlackCandleCake.default_state_id() + - BlockKind::BlackCandleCake.min_state_id(), + }; + block.set_lit(false); + block } - pub fn with_bites(mut self, bites: i32) -> Self { - self.set_bites(bites); - self + #[doc = "Returns an instance of `amethyst_block` with default state values."] + pub fn amethyst_block() -> Self { + let mut block = Self { + kind: BlockKind::AmethystBlock, + state: BlockKind::AmethystBlock.default_state_id() + - BlockKind::AmethystBlock.min_state_id(), + }; + block } - pub fn bottom(self) -> Option { - BLOCK_TABLE.bottom(self.kind, self.state) + #[doc = "Returns an instance of `budding_amethyst` with default state values."] + pub fn budding_amethyst() -> Self { + let mut block = Self { + kind: BlockKind::BuddingAmethyst, + state: BlockKind::BuddingAmethyst.default_state_id() + - BlockKind::BuddingAmethyst.min_state_id(), + }; + block } - pub fn set_bottom(&mut self, bottom: bool) -> bool { - match BLOCK_TABLE.set_bottom(self.kind, self.state, bottom) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `amethyst_cluster` with default state values.\nThe default state values are as follows:\n* `facing_cubic`: up\n* `waterlogged`: false\n"] + pub fn amethyst_cluster() -> Self { + let mut block = Self { + kind: BlockKind::AmethystCluster, + state: BlockKind::AmethystCluster.default_state_id() + - BlockKind::AmethystCluster.min_state_id(), + }; + block.set_facing_cubic(FacingCubic::Up); + block.set_waterlogged(false); + block } - pub fn with_bottom(mut self, bottom: bool) -> Self { - self.set_bottom(bottom); - self + #[doc = "Returns an instance of `large_amethyst_bud` with default state values.\nThe default state values are as follows:\n* `facing_cubic`: up\n* `waterlogged`: false\n"] + pub fn large_amethyst_bud() -> Self { + let mut block = Self { + kind: BlockKind::LargeAmethystBud, + state: BlockKind::LargeAmethystBud.default_state_id() + - BlockKind::LargeAmethystBud.min_state_id(), + }; + block.set_facing_cubic(FacingCubic::Up); + block.set_waterlogged(false); + block } - pub fn cauldron_level(self) -> Option { - BLOCK_TABLE.cauldron_level(self.kind, self.state) + #[doc = "Returns an instance of `medium_amethyst_bud` with default state values.\nThe default state values are as follows:\n* `facing_cubic`: up\n* `waterlogged`: false\n"] + pub fn medium_amethyst_bud() -> Self { + let mut block = Self { + kind: BlockKind::MediumAmethystBud, + state: BlockKind::MediumAmethystBud.default_state_id() + - BlockKind::MediumAmethystBud.min_state_id(), + }; + block.set_facing_cubic(FacingCubic::Up); + block.set_waterlogged(false); + block } - pub fn set_cauldron_level(&mut self, cauldron_level: i32) -> bool { - match BLOCK_TABLE.set_cauldron_level(self.kind, self.state, cauldron_level) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `small_amethyst_bud` with default state values.\nThe default state values are as follows:\n* `facing_cubic`: up\n* `waterlogged`: false\n"] + pub fn small_amethyst_bud() -> Self { + let mut block = Self { + kind: BlockKind::SmallAmethystBud, + state: BlockKind::SmallAmethystBud.default_state_id() + - BlockKind::SmallAmethystBud.min_state_id(), + }; + block.set_facing_cubic(FacingCubic::Up); + block.set_waterlogged(false); + block } - pub fn with_cauldron_level(mut self, cauldron_level: i32) -> Self { - self.set_cauldron_level(cauldron_level); - self + #[doc = "Returns an instance of `tuff` with default state values."] + pub fn tuff() -> Self { + let mut block = Self { + kind: BlockKind::Tuff, + state: BlockKind::Tuff.default_state_id() - BlockKind::Tuff.min_state_id(), + }; + block } - pub fn charges(self) -> Option { - BLOCK_TABLE.charges(self.kind, self.state) + #[doc = "Returns an instance of `calcite` with default state values."] + pub fn calcite() -> Self { + let mut block = Self { + kind: BlockKind::Calcite, + state: BlockKind::Calcite.default_state_id() - BlockKind::Calcite.min_state_id(), + }; + block } - pub fn set_charges(&mut self, charges: i32) -> bool { - match BLOCK_TABLE.set_charges(self.kind, self.state, charges) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `tinted_glass` with default state values."] + pub fn tinted_glass() -> Self { + let mut block = Self { + kind: BlockKind::TintedGlass, + state: BlockKind::TintedGlass.default_state_id() + - BlockKind::TintedGlass.min_state_id(), + }; + block } - pub fn with_charges(mut self, charges: i32) -> Self { - self.set_charges(charges); - self + #[doc = "Returns an instance of `powder_snow` with default state values."] + pub fn powder_snow() -> Self { + let mut block = Self { + kind: BlockKind::PowderSnow, + state: BlockKind::PowderSnow.default_state_id() - BlockKind::PowderSnow.min_state_id(), + }; + block } - pub fn chest_kind(self) -> Option { - BLOCK_TABLE.chest_kind(self.kind, self.state) + #[doc = "Returns an instance of `sculk_sensor` with default state values.\nThe default state values are as follows:\n* `power`: 0\n* `sculk_sensor_phase`: inactive\n* `waterlogged`: false\n"] + pub fn sculk_sensor() -> Self { + let mut block = Self { + kind: BlockKind::SculkSensor, + state: BlockKind::SculkSensor.default_state_id() + - BlockKind::SculkSensor.min_state_id(), + }; + block.set_power(0i32); + block.set_sculk_sensor_phase(SculkSensorPhase::Inactive); + block.set_waterlogged(false); + block } - pub fn set_chest_kind(&mut self, chest_kind: ChestKind) -> bool { - match BLOCK_TABLE.set_chest_kind(self.kind, self.state, chest_kind) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `oxidized_copper` with default state values."] + pub fn oxidized_copper() -> Self { + let mut block = Self { + kind: BlockKind::OxidizedCopper, + state: BlockKind::OxidizedCopper.default_state_id() + - BlockKind::OxidizedCopper.min_state_id(), + }; + block } - pub fn with_chest_kind(mut self, chest_kind: ChestKind) -> Self { - self.set_chest_kind(chest_kind); - self + #[doc = "Returns an instance of `weathered_copper` with default state values."] + pub fn weathered_copper() -> Self { + let mut block = Self { + kind: BlockKind::WeatheredCopper, + state: BlockKind::WeatheredCopper.default_state_id() + - BlockKind::WeatheredCopper.min_state_id(), + }; + block } - pub fn comparator_mode(self) -> Option { - BLOCK_TABLE.comparator_mode(self.kind, self.state) + #[doc = "Returns an instance of `exposed_copper` with default state values."] + pub fn exposed_copper() -> Self { + let mut block = Self { + kind: BlockKind::ExposedCopper, + state: BlockKind::ExposedCopper.default_state_id() + - BlockKind::ExposedCopper.min_state_id(), + }; + block } - pub fn set_comparator_mode(&mut self, comparator_mode: ComparatorMode) -> bool { - match BLOCK_TABLE.set_comparator_mode(self.kind, self.state, comparator_mode) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `copper_block` with default state values."] + pub fn copper_block() -> Self { + let mut block = Self { + kind: BlockKind::CopperBlock, + state: BlockKind::CopperBlock.default_state_id() + - BlockKind::CopperBlock.min_state_id(), + }; + block } - pub fn with_comparator_mode(mut self, comparator_mode: ComparatorMode) -> Self { - self.set_comparator_mode(comparator_mode); - self + #[doc = "Returns an instance of `copper_ore` with default state values."] + pub fn copper_ore() -> Self { + let mut block = Self { + kind: BlockKind::CopperOre, + state: BlockKind::CopperOre.default_state_id() - BlockKind::CopperOre.min_state_id(), + }; + block } - pub fn conditional(self) -> Option { - BLOCK_TABLE.conditional(self.kind, self.state) + #[doc = "Returns an instance of `deepslate_copper_ore` with default state values."] + pub fn deepslate_copper_ore() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateCopperOre, + state: BlockKind::DeepslateCopperOre.default_state_id() + - BlockKind::DeepslateCopperOre.min_state_id(), + }; + block } - pub fn set_conditional(&mut self, conditional: bool) -> bool { - match BLOCK_TABLE.set_conditional(self.kind, self.state, conditional) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } - } - pub fn with_conditional(mut self, conditional: bool) -> Self { - self.set_conditional(conditional); - self + #[doc = "Returns an instance of `oxidized_cut_copper` with default state values."] + pub fn oxidized_cut_copper() -> Self { + let mut block = Self { + kind: BlockKind::OxidizedCutCopper, + state: BlockKind::OxidizedCutCopper.default_state_id() + - BlockKind::OxidizedCutCopper.min_state_id(), + }; + block } - pub fn delay(self) -> Option { - BLOCK_TABLE.delay(self.kind, self.state) + #[doc = "Returns an instance of `weathered_cut_copper` with default state values."] + pub fn weathered_cut_copper() -> Self { + let mut block = Self { + kind: BlockKind::WeatheredCutCopper, + state: BlockKind::WeatheredCutCopper.default_state_id() + - BlockKind::WeatheredCutCopper.min_state_id(), + }; + block } - pub fn set_delay(&mut self, delay: i32) -> bool { - match BLOCK_TABLE.set_delay(self.kind, self.state, delay) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `exposed_cut_copper` with default state values."] + pub fn exposed_cut_copper() -> Self { + let mut block = Self { + kind: BlockKind::ExposedCutCopper, + state: BlockKind::ExposedCutCopper.default_state_id() + - BlockKind::ExposedCutCopper.min_state_id(), + }; + block } - pub fn with_delay(mut self, delay: i32) -> Self { - self.set_delay(delay); - self + #[doc = "Returns an instance of `cut_copper` with default state values."] + pub fn cut_copper() -> Self { + let mut block = Self { + kind: BlockKind::CutCopper, + state: BlockKind::CutCopper.default_state_id() - BlockKind::CutCopper.min_state_id(), + }; + block } - pub fn disarmed(self) -> Option { - BLOCK_TABLE.disarmed(self.kind, self.state) + #[doc = "Returns an instance of `oxidized_cut_copper_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn oxidized_cut_copper_stairs() -> Self { + let mut block = Self { + kind: BlockKind::OxidizedCutCopperStairs, + state: BlockKind::OxidizedCutCopperStairs.default_state_id() + - BlockKind::OxidizedCutCopperStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn set_disarmed(&mut self, disarmed: bool) -> bool { - match BLOCK_TABLE.set_disarmed(self.kind, self.state, disarmed) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `weathered_cut_copper_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn weathered_cut_copper_stairs() -> Self { + let mut block = Self { + kind: BlockKind::WeatheredCutCopperStairs, + state: BlockKind::WeatheredCutCopperStairs.default_state_id() + - BlockKind::WeatheredCutCopperStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn with_disarmed(mut self, disarmed: bool) -> Self { - self.set_disarmed(disarmed); - self + #[doc = "Returns an instance of `exposed_cut_copper_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn exposed_cut_copper_stairs() -> Self { + let mut block = Self { + kind: BlockKind::ExposedCutCopperStairs, + state: BlockKind::ExposedCutCopperStairs.default_state_id() + - BlockKind::ExposedCutCopperStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn distance_0_7(self) -> Option { - BLOCK_TABLE.distance_0_7(self.kind, self.state) + #[doc = "Returns an instance of `cut_copper_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn cut_copper_stairs() -> Self { + let mut block = Self { + kind: BlockKind::CutCopperStairs, + state: BlockKind::CutCopperStairs.default_state_id() + - BlockKind::CutCopperStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn set_distance_0_7(&mut self, distance_0_7: i32) -> bool { - match BLOCK_TABLE.set_distance_0_7(self.kind, self.state, distance_0_7) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `oxidized_cut_copper_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn oxidized_cut_copper_slab() -> Self { + let mut block = Self { + kind: BlockKind::OxidizedCutCopperSlab, + state: BlockKind::OxidizedCutCopperSlab.default_state_id() + - BlockKind::OxidizedCutCopperSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn with_distance_0_7(mut self, distance_0_7: i32) -> Self { - self.set_distance_0_7(distance_0_7); - self + #[doc = "Returns an instance of `weathered_cut_copper_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn weathered_cut_copper_slab() -> Self { + let mut block = Self { + kind: BlockKind::WeatheredCutCopperSlab, + state: BlockKind::WeatheredCutCopperSlab.default_state_id() + - BlockKind::WeatheredCutCopperSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn distance_1_7(self) -> Option { - BLOCK_TABLE.distance_1_7(self.kind, self.state) + #[doc = "Returns an instance of `exposed_cut_copper_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn exposed_cut_copper_slab() -> Self { + let mut block = Self { + kind: BlockKind::ExposedCutCopperSlab, + state: BlockKind::ExposedCutCopperSlab.default_state_id() + - BlockKind::ExposedCutCopperSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn set_distance_1_7(&mut self, distance_1_7: i32) -> bool { - match BLOCK_TABLE.set_distance_1_7(self.kind, self.state, distance_1_7) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `cut_copper_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn cut_copper_slab() -> Self { + let mut block = Self { + kind: BlockKind::CutCopperSlab, + state: BlockKind::CutCopperSlab.default_state_id() + - BlockKind::CutCopperSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn with_distance_1_7(mut self, distance_1_7: i32) -> Self { - self.set_distance_1_7(distance_1_7); - self + #[doc = "Returns an instance of `waxed_copper_block` with default state values."] + pub fn waxed_copper_block() -> Self { + let mut block = Self { + kind: BlockKind::WaxedCopperBlock, + state: BlockKind::WaxedCopperBlock.default_state_id() + - BlockKind::WaxedCopperBlock.min_state_id(), + }; + block } - pub fn down(self) -> Option { - BLOCK_TABLE.down(self.kind, self.state) + #[doc = "Returns an instance of `waxed_weathered_copper` with default state values."] + pub fn waxed_weathered_copper() -> Self { + let mut block = Self { + kind: BlockKind::WaxedWeatheredCopper, + state: BlockKind::WaxedWeatheredCopper.default_state_id() + - BlockKind::WaxedWeatheredCopper.min_state_id(), + }; + block } - pub fn set_down(&mut self, down: bool) -> bool { - match BLOCK_TABLE.set_down(self.kind, self.state, down) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `waxed_exposed_copper` with default state values."] + pub fn waxed_exposed_copper() -> Self { + let mut block = Self { + kind: BlockKind::WaxedExposedCopper, + state: BlockKind::WaxedExposedCopper.default_state_id() + - BlockKind::WaxedExposedCopper.min_state_id(), + }; + block } - pub fn with_down(mut self, down: bool) -> Self { - self.set_down(down); - self + #[doc = "Returns an instance of `waxed_oxidized_copper` with default state values."] + pub fn waxed_oxidized_copper() -> Self { + let mut block = Self { + kind: BlockKind::WaxedOxidizedCopper, + state: BlockKind::WaxedOxidizedCopper.default_state_id() + - BlockKind::WaxedOxidizedCopper.min_state_id(), + }; + block } - pub fn drag(self) -> Option { - BLOCK_TABLE.drag(self.kind, self.state) + #[doc = "Returns an instance of `waxed_oxidized_cut_copper` with default state values."] + pub fn waxed_oxidized_cut_copper() -> Self { + let mut block = Self { + kind: BlockKind::WaxedOxidizedCutCopper, + state: BlockKind::WaxedOxidizedCutCopper.default_state_id() + - BlockKind::WaxedOxidizedCutCopper.min_state_id(), + }; + block } - pub fn set_drag(&mut self, drag: bool) -> bool { - match BLOCK_TABLE.set_drag(self.kind, self.state, drag) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `waxed_weathered_cut_copper` with default state values."] + pub fn waxed_weathered_cut_copper() -> Self { + let mut block = Self { + kind: BlockKind::WaxedWeatheredCutCopper, + state: BlockKind::WaxedWeatheredCutCopper.default_state_id() + - BlockKind::WaxedWeatheredCutCopper.min_state_id(), + }; + block } - pub fn with_drag(mut self, drag: bool) -> Self { - self.set_drag(drag); - self + #[doc = "Returns an instance of `waxed_exposed_cut_copper` with default state values."] + pub fn waxed_exposed_cut_copper() -> Self { + let mut block = Self { + kind: BlockKind::WaxedExposedCutCopper, + state: BlockKind::WaxedExposedCutCopper.default_state_id() + - BlockKind::WaxedExposedCutCopper.min_state_id(), + }; + block } - pub fn east_connected(self) -> Option { - BLOCK_TABLE.east_connected(self.kind, self.state) + #[doc = "Returns an instance of `waxed_cut_copper` with default state values."] + pub fn waxed_cut_copper() -> Self { + let mut block = Self { + kind: BlockKind::WaxedCutCopper, + state: BlockKind::WaxedCutCopper.default_state_id() + - BlockKind::WaxedCutCopper.min_state_id(), + }; + block } - pub fn set_east_connected(&mut self, east_connected: bool) -> bool { - match BLOCK_TABLE.set_east_connected(self.kind, self.state, east_connected) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `waxed_oxidized_cut_copper_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn waxed_oxidized_cut_copper_stairs() -> Self { + let mut block = Self { + kind: BlockKind::WaxedOxidizedCutCopperStairs, + state: BlockKind::WaxedOxidizedCutCopperStairs.default_state_id() + - BlockKind::WaxedOxidizedCutCopperStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn with_east_connected(mut self, east_connected: bool) -> Self { - self.set_east_connected(east_connected); - self + #[doc = "Returns an instance of `waxed_weathered_cut_copper_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn waxed_weathered_cut_copper_stairs() -> Self { + let mut block = Self { + kind: BlockKind::WaxedWeatheredCutCopperStairs, + state: BlockKind::WaxedWeatheredCutCopperStairs.default_state_id() + - BlockKind::WaxedWeatheredCutCopperStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn east_nlt(self) -> Option { - BLOCK_TABLE.east_nlt(self.kind, self.state) + #[doc = "Returns an instance of `waxed_exposed_cut_copper_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn waxed_exposed_cut_copper_stairs() -> Self { + let mut block = Self { + kind: BlockKind::WaxedExposedCutCopperStairs, + state: BlockKind::WaxedExposedCutCopperStairs.default_state_id() + - BlockKind::WaxedExposedCutCopperStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn set_east_nlt(&mut self, east_nlt: EastNlt) -> bool { - match BLOCK_TABLE.set_east_nlt(self.kind, self.state, east_nlt) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `waxed_cut_copper_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn waxed_cut_copper_stairs() -> Self { + let mut block = Self { + kind: BlockKind::WaxedCutCopperStairs, + state: BlockKind::WaxedCutCopperStairs.default_state_id() + - BlockKind::WaxedCutCopperStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn with_east_nlt(mut self, east_nlt: EastNlt) -> Self { - self.set_east_nlt(east_nlt); - self + #[doc = "Returns an instance of `waxed_oxidized_cut_copper_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn waxed_oxidized_cut_copper_slab() -> Self { + let mut block = Self { + kind: BlockKind::WaxedOxidizedCutCopperSlab, + state: BlockKind::WaxedOxidizedCutCopperSlab.default_state_id() + - BlockKind::WaxedOxidizedCutCopperSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn east_wire(self) -> Option { - BLOCK_TABLE.east_wire(self.kind, self.state) + #[doc = "Returns an instance of `waxed_weathered_cut_copper_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn waxed_weathered_cut_copper_slab() -> Self { + let mut block = Self { + kind: BlockKind::WaxedWeatheredCutCopperSlab, + state: BlockKind::WaxedWeatheredCutCopperSlab.default_state_id() + - BlockKind::WaxedWeatheredCutCopperSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn set_east_wire(&mut self, east_wire: EastWire) -> bool { - match BLOCK_TABLE.set_east_wire(self.kind, self.state, east_wire) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `waxed_exposed_cut_copper_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn waxed_exposed_cut_copper_slab() -> Self { + let mut block = Self { + kind: BlockKind::WaxedExposedCutCopperSlab, + state: BlockKind::WaxedExposedCutCopperSlab.default_state_id() + - BlockKind::WaxedExposedCutCopperSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn with_east_wire(mut self, east_wire: EastWire) -> Self { - self.set_east_wire(east_wire); - self + #[doc = "Returns an instance of `waxed_cut_copper_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn waxed_cut_copper_slab() -> Self { + let mut block = Self { + kind: BlockKind::WaxedCutCopperSlab, + state: BlockKind::WaxedCutCopperSlab.default_state_id() + - BlockKind::WaxedCutCopperSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn eggs(self) -> Option { - BLOCK_TABLE.eggs(self.kind, self.state) - } - pub fn set_eggs(&mut self, eggs: i32) -> bool { - match BLOCK_TABLE.set_eggs(self.kind, self.state, eggs) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `lightning_rod` with default state values.\nThe default state values are as follows:\n* `facing_cubic`: up\n* `powered`: false\n* `waterlogged`: false\n"] + pub fn lightning_rod() -> Self { + let mut block = Self { + kind: BlockKind::LightningRod, + state: BlockKind::LightningRod.default_state_id() + - BlockKind::LightningRod.min_state_id(), + }; + block.set_facing_cubic(FacingCubic::Up); + block.set_powered(false); + block.set_waterlogged(false); + block } - pub fn with_eggs(mut self, eggs: i32) -> Self { - self.set_eggs(eggs); - self + #[doc = "Returns an instance of `pointed_dripstone` with default state values.\nThe default state values are as follows:\n* `thickness`: tip\n* `vertical_direction`: up\n* `waterlogged`: false\n"] + pub fn pointed_dripstone() -> Self { + let mut block = Self { + kind: BlockKind::PointedDripstone, + state: BlockKind::PointedDripstone.default_state_id() + - BlockKind::PointedDripstone.min_state_id(), + }; + block.set_thickness(Thickness::Tip); + block.set_vertical_direction(VerticalDirection::Up); + block.set_waterlogged(false); + block } - pub fn enabled(self) -> Option { - BLOCK_TABLE.enabled(self.kind, self.state) + #[doc = "Returns an instance of `dripstone_block` with default state values."] + pub fn dripstone_block() -> Self { + let mut block = Self { + kind: BlockKind::DripstoneBlock, + state: BlockKind::DripstoneBlock.default_state_id() + - BlockKind::DripstoneBlock.min_state_id(), + }; + block } - pub fn set_enabled(&mut self, enabled: bool) -> bool { - match BLOCK_TABLE.set_enabled(self.kind, self.state, enabled) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `cave_vines` with default state values.\nThe default state values are as follows:\n* `age_0_25`: 0\n* `berries`: false\n"] + pub fn cave_vines() -> Self { + let mut block = Self { + kind: BlockKind::CaveVines, + state: BlockKind::CaveVines.default_state_id() - BlockKind::CaveVines.min_state_id(), + }; + block.set_age_0_25(0i32); + block.set_berries(false); + block } - pub fn with_enabled(mut self, enabled: bool) -> Self { - self.set_enabled(enabled); - self + #[doc = "Returns an instance of `cave_vines_plant` with default state values.\nThe default state values are as follows:\n* `berries`: false\n"] + pub fn cave_vines_plant() -> Self { + let mut block = Self { + kind: BlockKind::CaveVinesPlant, + state: BlockKind::CaveVinesPlant.default_state_id() + - BlockKind::CaveVinesPlant.min_state_id(), + }; + block.set_berries(false); + block } - pub fn extended(self) -> Option { - BLOCK_TABLE.extended(self.kind, self.state) + #[doc = "Returns an instance of `spore_blossom` with default state values."] + pub fn spore_blossom() -> Self { + let mut block = Self { + kind: BlockKind::SporeBlossom, + state: BlockKind::SporeBlossom.default_state_id() + - BlockKind::SporeBlossom.min_state_id(), + }; + block } - pub fn set_extended(&mut self, extended: bool) -> bool { - match BLOCK_TABLE.set_extended(self.kind, self.state, extended) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `azalea` with default state values."] + pub fn azalea() -> Self { + let mut block = Self { + kind: BlockKind::Azalea, + state: BlockKind::Azalea.default_state_id() - BlockKind::Azalea.min_state_id(), + }; + block } - pub fn with_extended(mut self, extended: bool) -> Self { - self.set_extended(extended); - self + #[doc = "Returns an instance of `flowering_azalea` with default state values."] + pub fn flowering_azalea() -> Self { + let mut block = Self { + kind: BlockKind::FloweringAzalea, + state: BlockKind::FloweringAzalea.default_state_id() + - BlockKind::FloweringAzalea.min_state_id(), + }; + block } - pub fn eye(self) -> Option { - BLOCK_TABLE.eye(self.kind, self.state) + #[doc = "Returns an instance of `moss_carpet` with default state values."] + pub fn moss_carpet() -> Self { + let mut block = Self { + kind: BlockKind::MossCarpet, + state: BlockKind::MossCarpet.default_state_id() - BlockKind::MossCarpet.min_state_id(), + }; + block } - pub fn set_eye(&mut self, eye: bool) -> bool { - match BLOCK_TABLE.set_eye(self.kind, self.state, eye) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `moss_block` with default state values."] + pub fn moss_block() -> Self { + let mut block = Self { + kind: BlockKind::MossBlock, + state: BlockKind::MossBlock.default_state_id() - BlockKind::MossBlock.min_state_id(), + }; + block } - pub fn with_eye(mut self, eye: bool) -> Self { - self.set_eye(eye); - self + #[doc = "Returns an instance of `big_dripleaf` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `tilt`: none\n* `waterlogged`: false\n"] + pub fn big_dripleaf() -> Self { + let mut block = Self { + kind: BlockKind::BigDripleaf, + state: BlockKind::BigDripleaf.default_state_id() + - BlockKind::BigDripleaf.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_tilt(Tilt::None); + block.set_waterlogged(false); + block } - pub fn face(self) -> Option { - BLOCK_TABLE.face(self.kind, self.state) + #[doc = "Returns an instance of `big_dripleaf_stem` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `waterlogged`: false\n"] + pub fn big_dripleaf_stem() -> Self { + let mut block = Self { + kind: BlockKind::BigDripleafStem, + state: BlockKind::BigDripleafStem.default_state_id() + - BlockKind::BigDripleafStem.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_waterlogged(false); + block } - pub fn set_face(&mut self, face: Face) -> bool { - match BLOCK_TABLE.set_face(self.kind, self.state, face) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `small_dripleaf` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_upper_lower`: lower\n* `waterlogged`: false\n"] + pub fn small_dripleaf() -> Self { + let mut block = Self { + kind: BlockKind::SmallDripleaf, + state: BlockKind::SmallDripleaf.default_state_id() + - BlockKind::SmallDripleaf.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_upper_lower(HalfUpperLower::Lower); + block.set_waterlogged(false); + block } - pub fn with_face(mut self, face: Face) -> Self { - self.set_face(face); - self + #[doc = "Returns an instance of `hanging_roots` with default state values.\nThe default state values are as follows:\n* `waterlogged`: false\n"] + pub fn hanging_roots() -> Self { + let mut block = Self { + kind: BlockKind::HangingRoots, + state: BlockKind::HangingRoots.default_state_id() + - BlockKind::HangingRoots.min_state_id(), + }; + block.set_waterlogged(false); + block } - pub fn facing_cardinal(self) -> Option { - BLOCK_TABLE.facing_cardinal(self.kind, self.state) + #[doc = "Returns an instance of `rooted_dirt` with default state values."] + pub fn rooted_dirt() -> Self { + let mut block = Self { + kind: BlockKind::RootedDirt, + state: BlockKind::RootedDirt.default_state_id() - BlockKind::RootedDirt.min_state_id(), + }; + block } - pub fn set_facing_cardinal(&mut self, facing_cardinal: FacingCardinal) -> bool { - match BLOCK_TABLE.set_facing_cardinal(self.kind, self.state, facing_cardinal) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `deepslate` with default state values.\nThe default state values are as follows:\n* `axis_xyz`: y\n"] + pub fn deepslate() -> Self { + let mut block = Self { + kind: BlockKind::Deepslate, + state: BlockKind::Deepslate.default_state_id() - BlockKind::Deepslate.min_state_id(), + }; + block.set_axis_xyz(AxisXyz::Y); + block } - pub fn with_facing_cardinal(mut self, facing_cardinal: FacingCardinal) -> Self { - self.set_facing_cardinal(facing_cardinal); - self + #[doc = "Returns an instance of `cobbled_deepslate` with default state values."] + pub fn cobbled_deepslate() -> Self { + let mut block = Self { + kind: BlockKind::CobbledDeepslate, + state: BlockKind::CobbledDeepslate.default_state_id() + - BlockKind::CobbledDeepslate.min_state_id(), + }; + block } - pub fn facing_cardinal_and_down(self) -> Option { - BLOCK_TABLE.facing_cardinal_and_down(self.kind, self.state) + #[doc = "Returns an instance of `cobbled_deepslate_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn cobbled_deepslate_stairs() -> Self { + let mut block = Self { + kind: BlockKind::CobbledDeepslateStairs, + state: BlockKind::CobbledDeepslateStairs.default_state_id() + - BlockKind::CobbledDeepslateStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn set_facing_cardinal_and_down( - &mut self, - facing_cardinal_and_down: FacingCardinalAndDown, - ) -> bool { - match BLOCK_TABLE.set_facing_cardinal_and_down( - self.kind, - self.state, - facing_cardinal_and_down, - ) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `cobbled_deepslate_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn cobbled_deepslate_slab() -> Self { + let mut block = Self { + kind: BlockKind::CobbledDeepslateSlab, + state: BlockKind::CobbledDeepslateSlab.default_state_id() + - BlockKind::CobbledDeepslateSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn with_facing_cardinal_and_down( - mut self, - facing_cardinal_and_down: FacingCardinalAndDown, - ) -> Self { - self.set_facing_cardinal_and_down(facing_cardinal_and_down); - self + #[doc = "Returns an instance of `cobbled_deepslate_wall` with default state values.\nThe default state values are as follows:\n* `east_nlt`: none\n* `north_nlt`: none\n* `south_nlt`: none\n* `up`: true\n* `waterlogged`: false\n* `west_nlt`: none\n"] + pub fn cobbled_deepslate_wall() -> Self { + let mut block = Self { + kind: BlockKind::CobbledDeepslateWall, + state: BlockKind::CobbledDeepslateWall.default_state_id() + - BlockKind::CobbledDeepslateWall.min_state_id(), + }; + block.set_east_nlt(EastNlt::None); + block.set_north_nlt(NorthNlt::None); + block.set_south_nlt(SouthNlt::None); + block.set_up(true); + block.set_waterlogged(false); + block.set_west_nlt(WestNlt::None); + block } - pub fn facing_cubic(self) -> Option { - BLOCK_TABLE.facing_cubic(self.kind, self.state) + #[doc = "Returns an instance of `polished_deepslate` with default state values."] + pub fn polished_deepslate() -> Self { + let mut block = Self { + kind: BlockKind::PolishedDeepslate, + state: BlockKind::PolishedDeepslate.default_state_id() + - BlockKind::PolishedDeepslate.min_state_id(), + }; + block } - pub fn set_facing_cubic(&mut self, facing_cubic: FacingCubic) -> bool { - match BLOCK_TABLE.set_facing_cubic(self.kind, self.state, facing_cubic) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `polished_deepslate_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn polished_deepslate_stairs() -> Self { + let mut block = Self { + kind: BlockKind::PolishedDeepslateStairs, + state: BlockKind::PolishedDeepslateStairs.default_state_id() + - BlockKind::PolishedDeepslateStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn with_facing_cubic(mut self, facing_cubic: FacingCubic) -> Self { - self.set_facing_cubic(facing_cubic); - self + #[doc = "Returns an instance of `polished_deepslate_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn polished_deepslate_slab() -> Self { + let mut block = Self { + kind: BlockKind::PolishedDeepslateSlab, + state: BlockKind::PolishedDeepslateSlab.default_state_id() + - BlockKind::PolishedDeepslateSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn half_top_bottom(self) -> Option { - BLOCK_TABLE.half_top_bottom(self.kind, self.state) + #[doc = "Returns an instance of `polished_deepslate_wall` with default state values.\nThe default state values are as follows:\n* `east_nlt`: none\n* `north_nlt`: none\n* `south_nlt`: none\n* `up`: true\n* `waterlogged`: false\n* `west_nlt`: none\n"] + pub fn polished_deepslate_wall() -> Self { + let mut block = Self { + kind: BlockKind::PolishedDeepslateWall, + state: BlockKind::PolishedDeepslateWall.default_state_id() + - BlockKind::PolishedDeepslateWall.min_state_id(), + }; + block.set_east_nlt(EastNlt::None); + block.set_north_nlt(NorthNlt::None); + block.set_south_nlt(SouthNlt::None); + block.set_up(true); + block.set_waterlogged(false); + block.set_west_nlt(WestNlt::None); + block } - pub fn set_half_top_bottom(&mut self, half_top_bottom: HalfTopBottom) -> bool { - match BLOCK_TABLE.set_half_top_bottom(self.kind, self.state, half_top_bottom) { - Some(new_state) => { - self.state = new_state; - true - } - None => false, - } + #[doc = "Returns an instance of `deepslate_tiles` with default state values."] + pub fn deepslate_tiles() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateTiles, + state: BlockKind::DeepslateTiles.default_state_id() + - BlockKind::DeepslateTiles.min_state_id(), + }; + block } - pub fn with_half_top_bottom(mut self, half_top_bottom: HalfTopBottom) -> Self { - self.set_half_top_bottom(half_top_bottom); - self + #[doc = "Returns an instance of `deepslate_tile_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn deepslate_tile_stairs() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateTileStairs, + state: BlockKind::DeepslateTileStairs.default_state_id() + - BlockKind::DeepslateTileStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block } - pub fn half_upper_lower(self) -> Option { - BLOCK_TABLE.half_upper_lower(self.kind, self.state) + #[doc = "Returns an instance of `deepslate_tile_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn deepslate_tile_slab() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateTileSlab, + state: BlockKind::DeepslateTileSlab.default_state_id() + - BlockKind::DeepslateTileSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block } - pub fn set_half_upper_lower(&mut self, half_upper_lower: HalfUpperLower) -> bool { - match BLOCK_TABLE.set_half_upper_lower(self.kind, self.state, half_upper_lower) { - Some(new_state) => { + #[doc = "Returns an instance of `deepslate_tile_wall` with default state values.\nThe default state values are as follows:\n* `east_nlt`: none\n* `north_nlt`: none\n* `south_nlt`: none\n* `up`: true\n* `waterlogged`: false\n* `west_nlt`: none\n"] + pub fn deepslate_tile_wall() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateTileWall, + state: BlockKind::DeepslateTileWall.default_state_id() + - BlockKind::DeepslateTileWall.min_state_id(), + }; + block.set_east_nlt(EastNlt::None); + block.set_north_nlt(NorthNlt::None); + block.set_south_nlt(SouthNlt::None); + block.set_up(true); + block.set_waterlogged(false); + block.set_west_nlt(WestNlt::None); + block + } + #[doc = "Returns an instance of `deepslate_bricks` with default state values."] + pub fn deepslate_bricks() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateBricks, + state: BlockKind::DeepslateBricks.default_state_id() + - BlockKind::DeepslateBricks.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `deepslate_brick_stairs` with default state values.\nThe default state values are as follows:\n* `facing_cardinal`: north\n* `half_top_bottom`: bottom\n* `stairs_shape`: straight\n* `waterlogged`: false\n"] + pub fn deepslate_brick_stairs() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateBrickStairs, + state: BlockKind::DeepslateBrickStairs.default_state_id() + - BlockKind::DeepslateBrickStairs.min_state_id(), + }; + block.set_facing_cardinal(FacingCardinal::North); + block.set_half_top_bottom(HalfTopBottom::Bottom); + block.set_stairs_shape(StairsShape::Straight); + block.set_waterlogged(false); + block + } + #[doc = "Returns an instance of `deepslate_brick_slab` with default state values.\nThe default state values are as follows:\n* `slab_kind`: bottom\n* `waterlogged`: false\n"] + pub fn deepslate_brick_slab() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateBrickSlab, + state: BlockKind::DeepslateBrickSlab.default_state_id() + - BlockKind::DeepslateBrickSlab.min_state_id(), + }; + block.set_slab_kind(SlabKind::Bottom); + block.set_waterlogged(false); + block + } + #[doc = "Returns an instance of `deepslate_brick_wall` with default state values.\nThe default state values are as follows:\n* `east_nlt`: none\n* `north_nlt`: none\n* `south_nlt`: none\n* `up`: true\n* `waterlogged`: false\n* `west_nlt`: none\n"] + pub fn deepslate_brick_wall() -> Self { + let mut block = Self { + kind: BlockKind::DeepslateBrickWall, + state: BlockKind::DeepslateBrickWall.default_state_id() + - BlockKind::DeepslateBrickWall.min_state_id(), + }; + block.set_east_nlt(EastNlt::None); + block.set_north_nlt(NorthNlt::None); + block.set_south_nlt(SouthNlt::None); + block.set_up(true); + block.set_waterlogged(false); + block.set_west_nlt(WestNlt::None); + block + } + #[doc = "Returns an instance of `chiseled_deepslate` with default state values."] + pub fn chiseled_deepslate() -> Self { + let mut block = Self { + kind: BlockKind::ChiseledDeepslate, + state: BlockKind::ChiseledDeepslate.default_state_id() + - BlockKind::ChiseledDeepslate.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `cracked_deepslate_bricks` with default state values."] + pub fn cracked_deepslate_bricks() -> Self { + let mut block = Self { + kind: BlockKind::CrackedDeepslateBricks, + state: BlockKind::CrackedDeepslateBricks.default_state_id() + - BlockKind::CrackedDeepslateBricks.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `cracked_deepslate_tiles` with default state values."] + pub fn cracked_deepslate_tiles() -> Self { + let mut block = Self { + kind: BlockKind::CrackedDeepslateTiles, + state: BlockKind::CrackedDeepslateTiles.default_state_id() + - BlockKind::CrackedDeepslateTiles.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `infested_deepslate` with default state values.\nThe default state values are as follows:\n* `axis_xyz`: y\n"] + pub fn infested_deepslate() -> Self { + let mut block = Self { + kind: BlockKind::InfestedDeepslate, + state: BlockKind::InfestedDeepslate.default_state_id() + - BlockKind::InfestedDeepslate.min_state_id(), + }; + block.set_axis_xyz(AxisXyz::Y); + block + } + #[doc = "Returns an instance of `smooth_basalt` with default state values."] + pub fn smooth_basalt() -> Self { + let mut block = Self { + kind: BlockKind::SmoothBasalt, + state: BlockKind::SmoothBasalt.default_state_id() + - BlockKind::SmoothBasalt.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `raw_iron_block` with default state values."] + pub fn raw_iron_block() -> Self { + let mut block = Self { + kind: BlockKind::RawIronBlock, + state: BlockKind::RawIronBlock.default_state_id() + - BlockKind::RawIronBlock.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `raw_copper_block` with default state values."] + pub fn raw_copper_block() -> Self { + let mut block = Self { + kind: BlockKind::RawCopperBlock, + state: BlockKind::RawCopperBlock.default_state_id() + - BlockKind::RawCopperBlock.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `raw_gold_block` with default state values."] + pub fn raw_gold_block() -> Self { + let mut block = Self { + kind: BlockKind::RawGoldBlock, + state: BlockKind::RawGoldBlock.default_state_id() + - BlockKind::RawGoldBlock.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `potted_azalea_bush` with default state values."] + pub fn potted_azalea_bush() -> Self { + let mut block = Self { + kind: BlockKind::PottedAzaleaBush, + state: BlockKind::PottedAzaleaBush.default_state_id() + - BlockKind::PottedAzaleaBush.min_state_id(), + }; + block + } + #[doc = "Returns an instance of `potted_flowering_azalea_bush` with default state values."] + pub fn potted_flowering_azalea_bush() -> Self { + let mut block = Self { + kind: BlockKind::PottedFloweringAzaleaBush, + state: BlockKind::PottedFloweringAzaleaBush.default_state_id() + - BlockKind::PottedFloweringAzaleaBush.min_state_id(), + }; + block + } + pub fn age_0_1(self) -> Option { + BLOCK_TABLE.age_0_1(self.kind, self.state) + } + pub fn set_age_0_1(&mut self, age_0_1: i32) -> bool { + match BLOCK_TABLE.set_age_0_1(self.kind, self.state, age_0_1) { + Some(new_state) => { self.state = new_state; true } None => false, } } - pub fn with_half_upper_lower(mut self, half_upper_lower: HalfUpperLower) -> Self { - self.set_half_upper_lower(half_upper_lower); + pub fn with_age_0_1(mut self, age_0_1: i32) -> Self { + self.set_age_0_1(age_0_1); self } - pub fn hanging(self) -> Option { - BLOCK_TABLE.hanging(self.kind, self.state) + pub fn age_0_15(self) -> Option { + BLOCK_TABLE.age_0_15(self.kind, self.state) } - pub fn set_hanging(&mut self, hanging: bool) -> bool { - match BLOCK_TABLE.set_hanging(self.kind, self.state, hanging) { + pub fn set_age_0_15(&mut self, age_0_15: i32) -> bool { + match BLOCK_TABLE.set_age_0_15(self.kind, self.state, age_0_15) { Some(new_state) => { self.state = new_state; true @@ -7812,15 +9156,15 @@ impl BlockId { None => false, } } - pub fn with_hanging(mut self, hanging: bool) -> Self { - self.set_hanging(hanging); + pub fn with_age_0_15(mut self, age_0_15: i32) -> Self { + self.set_age_0_15(age_0_15); self } - pub fn has_book(self) -> Option { - BLOCK_TABLE.has_book(self.kind, self.state) + pub fn age_0_2(self) -> Option { + BLOCK_TABLE.age_0_2(self.kind, self.state) } - pub fn set_has_book(&mut self, has_book: bool) -> bool { - match BLOCK_TABLE.set_has_book(self.kind, self.state, has_book) { + pub fn set_age_0_2(&mut self, age_0_2: i32) -> bool { + match BLOCK_TABLE.set_age_0_2(self.kind, self.state, age_0_2) { Some(new_state) => { self.state = new_state; true @@ -7828,15 +9172,15 @@ impl BlockId { None => false, } } - pub fn with_has_book(mut self, has_book: bool) -> Self { - self.set_has_book(has_book); + pub fn with_age_0_2(mut self, age_0_2: i32) -> Self { + self.set_age_0_2(age_0_2); self } - pub fn has_bottle_0(self) -> Option { - BLOCK_TABLE.has_bottle_0(self.kind, self.state) + pub fn age_0_25(self) -> Option { + BLOCK_TABLE.age_0_25(self.kind, self.state) } - pub fn set_has_bottle_0(&mut self, has_bottle_0: bool) -> bool { - match BLOCK_TABLE.set_has_bottle_0(self.kind, self.state, has_bottle_0) { + pub fn set_age_0_25(&mut self, age_0_25: i32) -> bool { + match BLOCK_TABLE.set_age_0_25(self.kind, self.state, age_0_25) { Some(new_state) => { self.state = new_state; true @@ -7844,15 +9188,15 @@ impl BlockId { None => false, } } - pub fn with_has_bottle_0(mut self, has_bottle_0: bool) -> Self { - self.set_has_bottle_0(has_bottle_0); + pub fn with_age_0_25(mut self, age_0_25: i32) -> Self { + self.set_age_0_25(age_0_25); self } - pub fn has_bottle_1(self) -> Option { - BLOCK_TABLE.has_bottle_1(self.kind, self.state) + pub fn age_0_3(self) -> Option { + BLOCK_TABLE.age_0_3(self.kind, self.state) } - pub fn set_has_bottle_1(&mut self, has_bottle_1: bool) -> bool { - match BLOCK_TABLE.set_has_bottle_1(self.kind, self.state, has_bottle_1) { + pub fn set_age_0_3(&mut self, age_0_3: i32) -> bool { + match BLOCK_TABLE.set_age_0_3(self.kind, self.state, age_0_3) { Some(new_state) => { self.state = new_state; true @@ -7860,15 +9204,15 @@ impl BlockId { None => false, } } - pub fn with_has_bottle_1(mut self, has_bottle_1: bool) -> Self { - self.set_has_bottle_1(has_bottle_1); + pub fn with_age_0_3(mut self, age_0_3: i32) -> Self { + self.set_age_0_3(age_0_3); self } - pub fn has_bottle_2(self) -> Option { - BLOCK_TABLE.has_bottle_2(self.kind, self.state) + pub fn age_0_5(self) -> Option { + BLOCK_TABLE.age_0_5(self.kind, self.state) } - pub fn set_has_bottle_2(&mut self, has_bottle_2: bool) -> bool { - match BLOCK_TABLE.set_has_bottle_2(self.kind, self.state, has_bottle_2) { + pub fn set_age_0_5(&mut self, age_0_5: i32) -> bool { + match BLOCK_TABLE.set_age_0_5(self.kind, self.state, age_0_5) { Some(new_state) => { self.state = new_state; true @@ -7876,15 +9220,15 @@ impl BlockId { None => false, } } - pub fn with_has_bottle_2(mut self, has_bottle_2: bool) -> Self { - self.set_has_bottle_2(has_bottle_2); + pub fn with_age_0_5(mut self, age_0_5: i32) -> Self { + self.set_age_0_5(age_0_5); self } - pub fn has_record(self) -> Option { - BLOCK_TABLE.has_record(self.kind, self.state) + pub fn age_0_7(self) -> Option { + BLOCK_TABLE.age_0_7(self.kind, self.state) } - pub fn set_has_record(&mut self, has_record: bool) -> bool { - match BLOCK_TABLE.set_has_record(self.kind, self.state, has_record) { + pub fn set_age_0_7(&mut self, age_0_7: i32) -> bool { + match BLOCK_TABLE.set_age_0_7(self.kind, self.state, age_0_7) { Some(new_state) => { self.state = new_state; true @@ -7892,15 +9236,15 @@ impl BlockId { None => false, } } - pub fn with_has_record(mut self, has_record: bool) -> Self { - self.set_has_record(has_record); + pub fn with_age_0_7(mut self, age_0_7: i32) -> Self { + self.set_age_0_7(age_0_7); self } - pub fn hatch(self) -> Option { - BLOCK_TABLE.hatch(self.kind, self.state) + pub fn attached(self) -> Option { + BLOCK_TABLE.attached(self.kind, self.state) } - pub fn set_hatch(&mut self, hatch: i32) -> bool { - match BLOCK_TABLE.set_hatch(self.kind, self.state, hatch) { + pub fn set_attached(&mut self, attached: bool) -> bool { + match BLOCK_TABLE.set_attached(self.kind, self.state, attached) { Some(new_state) => { self.state = new_state; true @@ -7908,15 +9252,15 @@ impl BlockId { None => false, } } - pub fn with_hatch(mut self, hatch: i32) -> Self { - self.set_hatch(hatch); + pub fn with_attached(mut self, attached: bool) -> Self { + self.set_attached(attached); self } - pub fn hinge(self) -> Option { - BLOCK_TABLE.hinge(self.kind, self.state) + pub fn attachment(self) -> Option { + BLOCK_TABLE.attachment(self.kind, self.state) } - pub fn set_hinge(&mut self, hinge: Hinge) -> bool { - match BLOCK_TABLE.set_hinge(self.kind, self.state, hinge) { + pub fn set_attachment(&mut self, attachment: Attachment) -> bool { + match BLOCK_TABLE.set_attachment(self.kind, self.state, attachment) { Some(new_state) => { self.state = new_state; true @@ -7924,15 +9268,15 @@ impl BlockId { None => false, } } - pub fn with_hinge(mut self, hinge: Hinge) -> Self { - self.set_hinge(hinge); + pub fn with_attachment(mut self, attachment: Attachment) -> Self { + self.set_attachment(attachment); self } - pub fn honey_level(self) -> Option { - BLOCK_TABLE.honey_level(self.kind, self.state) + pub fn axis_xyz(self) -> Option { + BLOCK_TABLE.axis_xyz(self.kind, self.state) } - pub fn set_honey_level(&mut self, honey_level: i32) -> bool { - match BLOCK_TABLE.set_honey_level(self.kind, self.state, honey_level) { + pub fn set_axis_xyz(&mut self, axis_xyz: AxisXyz) -> bool { + match BLOCK_TABLE.set_axis_xyz(self.kind, self.state, axis_xyz) { Some(new_state) => { self.state = new_state; true @@ -7940,15 +9284,15 @@ impl BlockId { None => false, } } - pub fn with_honey_level(mut self, honey_level: i32) -> Self { - self.set_honey_level(honey_level); + pub fn with_axis_xyz(mut self, axis_xyz: AxisXyz) -> Self { + self.set_axis_xyz(axis_xyz); self } - pub fn in_wall(self) -> Option { - BLOCK_TABLE.in_wall(self.kind, self.state) + pub fn axis_xz(self) -> Option { + BLOCK_TABLE.axis_xz(self.kind, self.state) } - pub fn set_in_wall(&mut self, in_wall: bool) -> bool { - match BLOCK_TABLE.set_in_wall(self.kind, self.state, in_wall) { + pub fn set_axis_xz(&mut self, axis_xz: AxisXz) -> bool { + match BLOCK_TABLE.set_axis_xz(self.kind, self.state, axis_xz) { Some(new_state) => { self.state = new_state; true @@ -7956,15 +9300,15 @@ impl BlockId { None => false, } } - pub fn with_in_wall(mut self, in_wall: bool) -> Self { - self.set_in_wall(in_wall); + pub fn with_axis_xz(mut self, axis_xz: AxisXz) -> Self { + self.set_axis_xz(axis_xz); self } - pub fn instrument(self) -> Option { - BLOCK_TABLE.instrument(self.kind, self.state) + pub fn berries(self) -> Option { + BLOCK_TABLE.berries(self.kind, self.state) } - pub fn set_instrument(&mut self, instrument: Instrument) -> bool { - match BLOCK_TABLE.set_instrument(self.kind, self.state, instrument) { + pub fn set_berries(&mut self, berries: bool) -> bool { + match BLOCK_TABLE.set_berries(self.kind, self.state, berries) { Some(new_state) => { self.state = new_state; true @@ -7972,15 +9316,15 @@ impl BlockId { None => false, } } - pub fn with_instrument(mut self, instrument: Instrument) -> Self { - self.set_instrument(instrument); + pub fn with_berries(mut self, berries: bool) -> Self { + self.set_berries(berries); self } - pub fn inverted(self) -> Option { - BLOCK_TABLE.inverted(self.kind, self.state) + pub fn bites(self) -> Option { + BLOCK_TABLE.bites(self.kind, self.state) } - pub fn set_inverted(&mut self, inverted: bool) -> bool { - match BLOCK_TABLE.set_inverted(self.kind, self.state, inverted) { + pub fn set_bites(&mut self, bites: i32) -> bool { + match BLOCK_TABLE.set_bites(self.kind, self.state, bites) { Some(new_state) => { self.state = new_state; true @@ -7988,15 +9332,15 @@ impl BlockId { None => false, } } - pub fn with_inverted(mut self, inverted: bool) -> Self { - self.set_inverted(inverted); + pub fn with_bites(mut self, bites: i32) -> Self { + self.set_bites(bites); self } - pub fn layers(self) -> Option { - BLOCK_TABLE.layers(self.kind, self.state) + pub fn bottom(self) -> Option { + BLOCK_TABLE.bottom(self.kind, self.state) } - pub fn set_layers(&mut self, layers: i32) -> bool { - match BLOCK_TABLE.set_layers(self.kind, self.state, layers) { + pub fn set_bottom(&mut self, bottom: bool) -> bool { + match BLOCK_TABLE.set_bottom(self.kind, self.state, bottom) { Some(new_state) => { self.state = new_state; true @@ -8004,15 +9348,15 @@ impl BlockId { None => false, } } - pub fn with_layers(mut self, layers: i32) -> Self { - self.set_layers(layers); + pub fn with_bottom(mut self, bottom: bool) -> Self { + self.set_bottom(bottom); self } - pub fn leaves(self) -> Option { - BLOCK_TABLE.leaves(self.kind, self.state) + pub fn candles(self) -> Option { + BLOCK_TABLE.candles(self.kind, self.state) } - pub fn set_leaves(&mut self, leaves: Leaves) -> bool { - match BLOCK_TABLE.set_leaves(self.kind, self.state, leaves) { + pub fn set_candles(&mut self, candles: i32) -> bool { + match BLOCK_TABLE.set_candles(self.kind, self.state, candles) { Some(new_state) => { self.state = new_state; true @@ -8020,15 +9364,15 @@ impl BlockId { None => false, } } - pub fn with_leaves(mut self, leaves: Leaves) -> Self { - self.set_leaves(leaves); + pub fn with_candles(mut self, candles: i32) -> Self { + self.set_candles(candles); self } - pub fn level_0_8(self) -> Option { - BLOCK_TABLE.level_0_8(self.kind, self.state) + pub fn charges(self) -> Option { + BLOCK_TABLE.charges(self.kind, self.state) } - pub fn set_level_0_8(&mut self, level_0_8: i32) -> bool { - match BLOCK_TABLE.set_level_0_8(self.kind, self.state, level_0_8) { + pub fn set_charges(&mut self, charges: i32) -> bool { + match BLOCK_TABLE.set_charges(self.kind, self.state, charges) { Some(new_state) => { self.state = new_state; true @@ -8036,15 +9380,15 @@ impl BlockId { None => false, } } - pub fn with_level_0_8(mut self, level_0_8: i32) -> Self { - self.set_level_0_8(level_0_8); - self + pub fn with_charges(mut self, charges: i32) -> Self { + self.set_charges(charges); + self } - pub fn lit(self) -> Option { - BLOCK_TABLE.lit(self.kind, self.state) + pub fn chest_kind(self) -> Option { + BLOCK_TABLE.chest_kind(self.kind, self.state) } - pub fn set_lit(&mut self, lit: bool) -> bool { - match BLOCK_TABLE.set_lit(self.kind, self.state, lit) { + pub fn set_chest_kind(&mut self, chest_kind: ChestKind) -> bool { + match BLOCK_TABLE.set_chest_kind(self.kind, self.state, chest_kind) { Some(new_state) => { self.state = new_state; true @@ -8052,15 +9396,15 @@ impl BlockId { None => false, } } - pub fn with_lit(mut self, lit: bool) -> Self { - self.set_lit(lit); + pub fn with_chest_kind(mut self, chest_kind: ChestKind) -> Self { + self.set_chest_kind(chest_kind); self } - pub fn locked(self) -> Option { - BLOCK_TABLE.locked(self.kind, self.state) + pub fn comparator_mode(self) -> Option { + BLOCK_TABLE.comparator_mode(self.kind, self.state) } - pub fn set_locked(&mut self, locked: bool) -> bool { - match BLOCK_TABLE.set_locked(self.kind, self.state, locked) { + pub fn set_comparator_mode(&mut self, comparator_mode: ComparatorMode) -> bool { + match BLOCK_TABLE.set_comparator_mode(self.kind, self.state, comparator_mode) { Some(new_state) => { self.state = new_state; true @@ -8068,15 +9412,15 @@ impl BlockId { None => false, } } - pub fn with_locked(mut self, locked: bool) -> Self { - self.set_locked(locked); + pub fn with_comparator_mode(mut self, comparator_mode: ComparatorMode) -> Self { + self.set_comparator_mode(comparator_mode); self } - pub fn moisture(self) -> Option { - BLOCK_TABLE.moisture(self.kind, self.state) + pub fn conditional(self) -> Option { + BLOCK_TABLE.conditional(self.kind, self.state) } - pub fn set_moisture(&mut self, moisture: i32) -> bool { - match BLOCK_TABLE.set_moisture(self.kind, self.state, moisture) { + pub fn set_conditional(&mut self, conditional: bool) -> bool { + match BLOCK_TABLE.set_conditional(self.kind, self.state, conditional) { Some(new_state) => { self.state = new_state; true @@ -8084,15 +9428,15 @@ impl BlockId { None => false, } } - pub fn with_moisture(mut self, moisture: i32) -> Self { - self.set_moisture(moisture); + pub fn with_conditional(mut self, conditional: bool) -> Self { + self.set_conditional(conditional); self } - pub fn north_connected(self) -> Option { - BLOCK_TABLE.north_connected(self.kind, self.state) + pub fn delay(self) -> Option { + BLOCK_TABLE.delay(self.kind, self.state) } - pub fn set_north_connected(&mut self, north_connected: bool) -> bool { - match BLOCK_TABLE.set_north_connected(self.kind, self.state, north_connected) { + pub fn set_delay(&mut self, delay: i32) -> bool { + match BLOCK_TABLE.set_delay(self.kind, self.state, delay) { Some(new_state) => { self.state = new_state; true @@ -8100,15 +9444,15 @@ impl BlockId { None => false, } } - pub fn with_north_connected(mut self, north_connected: bool) -> Self { - self.set_north_connected(north_connected); + pub fn with_delay(mut self, delay: i32) -> Self { + self.set_delay(delay); self } - pub fn north_nlt(self) -> Option { - BLOCK_TABLE.north_nlt(self.kind, self.state) + pub fn disarmed(self) -> Option { + BLOCK_TABLE.disarmed(self.kind, self.state) } - pub fn set_north_nlt(&mut self, north_nlt: NorthNlt) -> bool { - match BLOCK_TABLE.set_north_nlt(self.kind, self.state, north_nlt) { + pub fn set_disarmed(&mut self, disarmed: bool) -> bool { + match BLOCK_TABLE.set_disarmed(self.kind, self.state, disarmed) { Some(new_state) => { self.state = new_state; true @@ -8116,15 +9460,15 @@ impl BlockId { None => false, } } - pub fn with_north_nlt(mut self, north_nlt: NorthNlt) -> Self { - self.set_north_nlt(north_nlt); + pub fn with_disarmed(mut self, disarmed: bool) -> Self { + self.set_disarmed(disarmed); self } - pub fn north_wire(self) -> Option { - BLOCK_TABLE.north_wire(self.kind, self.state) + pub fn distance_0_7(self) -> Option { + BLOCK_TABLE.distance_0_7(self.kind, self.state) } - pub fn set_north_wire(&mut self, north_wire: NorthWire) -> bool { - match BLOCK_TABLE.set_north_wire(self.kind, self.state, north_wire) { + pub fn set_distance_0_7(&mut self, distance_0_7: i32) -> bool { + match BLOCK_TABLE.set_distance_0_7(self.kind, self.state, distance_0_7) { Some(new_state) => { self.state = new_state; true @@ -8132,15 +9476,15 @@ impl BlockId { None => false, } } - pub fn with_north_wire(mut self, north_wire: NorthWire) -> Self { - self.set_north_wire(north_wire); + pub fn with_distance_0_7(mut self, distance_0_7: i32) -> Self { + self.set_distance_0_7(distance_0_7); self } - pub fn note(self) -> Option { - BLOCK_TABLE.note(self.kind, self.state) + pub fn distance_1_7(self) -> Option { + BLOCK_TABLE.distance_1_7(self.kind, self.state) } - pub fn set_note(&mut self, note: i32) -> bool { - match BLOCK_TABLE.set_note(self.kind, self.state, note) { + pub fn set_distance_1_7(&mut self, distance_1_7: i32) -> bool { + match BLOCK_TABLE.set_distance_1_7(self.kind, self.state, distance_1_7) { Some(new_state) => { self.state = new_state; true @@ -8148,15 +9492,15 @@ impl BlockId { None => false, } } - pub fn with_note(mut self, note: i32) -> Self { - self.set_note(note); + pub fn with_distance_1_7(mut self, distance_1_7: i32) -> Self { + self.set_distance_1_7(distance_1_7); self } - pub fn occupied(self) -> Option { - BLOCK_TABLE.occupied(self.kind, self.state) + pub fn down(self) -> Option { + BLOCK_TABLE.down(self.kind, self.state) } - pub fn set_occupied(&mut self, occupied: bool) -> bool { - match BLOCK_TABLE.set_occupied(self.kind, self.state, occupied) { + pub fn set_down(&mut self, down: bool) -> bool { + match BLOCK_TABLE.set_down(self.kind, self.state, down) { Some(new_state) => { self.state = new_state; true @@ -8164,15 +9508,15 @@ impl BlockId { None => false, } } - pub fn with_occupied(mut self, occupied: bool) -> Self { - self.set_occupied(occupied); + pub fn with_down(mut self, down: bool) -> Self { + self.set_down(down); self } - pub fn open(self) -> Option { - BLOCK_TABLE.open(self.kind, self.state) + pub fn drag(self) -> Option { + BLOCK_TABLE.drag(self.kind, self.state) } - pub fn set_open(&mut self, open: bool) -> bool { - match BLOCK_TABLE.set_open(self.kind, self.state, open) { + pub fn set_drag(&mut self, drag: bool) -> bool { + match BLOCK_TABLE.set_drag(self.kind, self.state, drag) { Some(new_state) => { self.state = new_state; true @@ -8180,15 +9524,15 @@ impl BlockId { None => false, } } - pub fn with_open(mut self, open: bool) -> Self { - self.set_open(open); + pub fn with_drag(mut self, drag: bool) -> Self { + self.set_drag(drag); self } - pub fn orientation(self) -> Option { - BLOCK_TABLE.orientation(self.kind, self.state) + pub fn east_connected(self) -> Option { + BLOCK_TABLE.east_connected(self.kind, self.state) } - pub fn set_orientation(&mut self, orientation: Orientation) -> bool { - match BLOCK_TABLE.set_orientation(self.kind, self.state, orientation) { + pub fn set_east_connected(&mut self, east_connected: bool) -> bool { + match BLOCK_TABLE.set_east_connected(self.kind, self.state, east_connected) { Some(new_state) => { self.state = new_state; true @@ -8196,15 +9540,15 @@ impl BlockId { None => false, } } - pub fn with_orientation(mut self, orientation: Orientation) -> Self { - self.set_orientation(orientation); + pub fn with_east_connected(mut self, east_connected: bool) -> Self { + self.set_east_connected(east_connected); self } - pub fn part(self) -> Option { - BLOCK_TABLE.part(self.kind, self.state) + pub fn east_nlt(self) -> Option { + BLOCK_TABLE.east_nlt(self.kind, self.state) } - pub fn set_part(&mut self, part: Part) -> bool { - match BLOCK_TABLE.set_part(self.kind, self.state, part) { + pub fn set_east_nlt(&mut self, east_nlt: EastNlt) -> bool { + match BLOCK_TABLE.set_east_nlt(self.kind, self.state, east_nlt) { Some(new_state) => { self.state = new_state; true @@ -8212,15 +9556,15 @@ impl BlockId { None => false, } } - pub fn with_part(mut self, part: Part) -> Self { - self.set_part(part); + pub fn with_east_nlt(mut self, east_nlt: EastNlt) -> Self { + self.set_east_nlt(east_nlt); self } - pub fn persistent(self) -> Option { - BLOCK_TABLE.persistent(self.kind, self.state) + pub fn east_wire(self) -> Option { + BLOCK_TABLE.east_wire(self.kind, self.state) } - pub fn set_persistent(&mut self, persistent: bool) -> bool { - match BLOCK_TABLE.set_persistent(self.kind, self.state, persistent) { + pub fn set_east_wire(&mut self, east_wire: EastWire) -> bool { + match BLOCK_TABLE.set_east_wire(self.kind, self.state, east_wire) { Some(new_state) => { self.state = new_state; true @@ -8228,15 +9572,15 @@ impl BlockId { None => false, } } - pub fn with_persistent(mut self, persistent: bool) -> Self { - self.set_persistent(persistent); + pub fn with_east_wire(mut self, east_wire: EastWire) -> Self { + self.set_east_wire(east_wire); self } - pub fn pickles(self) -> Option { - BLOCK_TABLE.pickles(self.kind, self.state) + pub fn eggs(self) -> Option { + BLOCK_TABLE.eggs(self.kind, self.state) } - pub fn set_pickles(&mut self, pickles: i32) -> bool { - match BLOCK_TABLE.set_pickles(self.kind, self.state, pickles) { + pub fn set_eggs(&mut self, eggs: i32) -> bool { + match BLOCK_TABLE.set_eggs(self.kind, self.state, eggs) { Some(new_state) => { self.state = new_state; true @@ -8244,15 +9588,15 @@ impl BlockId { None => false, } } - pub fn with_pickles(mut self, pickles: i32) -> Self { - self.set_pickles(pickles); + pub fn with_eggs(mut self, eggs: i32) -> Self { + self.set_eggs(eggs); self } - pub fn piston_kind(self) -> Option { - BLOCK_TABLE.piston_kind(self.kind, self.state) + pub fn enabled(self) -> Option { + BLOCK_TABLE.enabled(self.kind, self.state) } - pub fn set_piston_kind(&mut self, piston_kind: PistonKind) -> bool { - match BLOCK_TABLE.set_piston_kind(self.kind, self.state, piston_kind) { + pub fn set_enabled(&mut self, enabled: bool) -> bool { + match BLOCK_TABLE.set_enabled(self.kind, self.state, enabled) { Some(new_state) => { self.state = new_state; true @@ -8260,15 +9604,15 @@ impl BlockId { None => false, } } - pub fn with_piston_kind(mut self, piston_kind: PistonKind) -> Self { - self.set_piston_kind(piston_kind); + pub fn with_enabled(mut self, enabled: bool) -> Self { + self.set_enabled(enabled); self } - pub fn power(self) -> Option { - BLOCK_TABLE.power(self.kind, self.state) + pub fn extended(self) -> Option { + BLOCK_TABLE.extended(self.kind, self.state) } - pub fn set_power(&mut self, power: i32) -> bool { - match BLOCK_TABLE.set_power(self.kind, self.state, power) { + pub fn set_extended(&mut self, extended: bool) -> bool { + match BLOCK_TABLE.set_extended(self.kind, self.state, extended) { Some(new_state) => { self.state = new_state; true @@ -8276,15 +9620,15 @@ impl BlockId { None => false, } } - pub fn with_power(mut self, power: i32) -> Self { - self.set_power(power); + pub fn with_extended(mut self, extended: bool) -> Self { + self.set_extended(extended); self } - pub fn powered(self) -> Option { - BLOCK_TABLE.powered(self.kind, self.state) + pub fn eye(self) -> Option { + BLOCK_TABLE.eye(self.kind, self.state) } - pub fn set_powered(&mut self, powered: bool) -> bool { - match BLOCK_TABLE.set_powered(self.kind, self.state, powered) { + pub fn set_eye(&mut self, eye: bool) -> bool { + match BLOCK_TABLE.set_eye(self.kind, self.state, eye) { Some(new_state) => { self.state = new_state; true @@ -8292,15 +9636,15 @@ impl BlockId { None => false, } } - pub fn with_powered(mut self, powered: bool) -> Self { - self.set_powered(powered); + pub fn with_eye(mut self, eye: bool) -> Self { + self.set_eye(eye); self } - pub fn powered_rail_shape(self) -> Option { - BLOCK_TABLE.powered_rail_shape(self.kind, self.state) + pub fn face(self) -> Option { + BLOCK_TABLE.face(self.kind, self.state) } - pub fn set_powered_rail_shape(&mut self, powered_rail_shape: PoweredRailShape) -> bool { - match BLOCK_TABLE.set_powered_rail_shape(self.kind, self.state, powered_rail_shape) { + pub fn set_face(&mut self, face: Face) -> bool { + match BLOCK_TABLE.set_face(self.kind, self.state, face) { Some(new_state) => { self.state = new_state; true @@ -8308,15 +9652,15 @@ impl BlockId { None => false, } } - pub fn with_powered_rail_shape(mut self, powered_rail_shape: PoweredRailShape) -> Self { - self.set_powered_rail_shape(powered_rail_shape); + pub fn with_face(mut self, face: Face) -> Self { + self.set_face(face); self } - pub fn rail_shape(self) -> Option { - BLOCK_TABLE.rail_shape(self.kind, self.state) + pub fn facing_cardinal(self) -> Option { + BLOCK_TABLE.facing_cardinal(self.kind, self.state) } - pub fn set_rail_shape(&mut self, rail_shape: RailShape) -> bool { - match BLOCK_TABLE.set_rail_shape(self.kind, self.state, rail_shape) { + pub fn set_facing_cardinal(&mut self, facing_cardinal: FacingCardinal) -> bool { + match BLOCK_TABLE.set_facing_cardinal(self.kind, self.state, facing_cardinal) { Some(new_state) => { self.state = new_state; true @@ -8324,15 +9668,22 @@ impl BlockId { None => false, } } - pub fn with_rail_shape(mut self, rail_shape: RailShape) -> Self { - self.set_rail_shape(rail_shape); + pub fn with_facing_cardinal(mut self, facing_cardinal: FacingCardinal) -> Self { + self.set_facing_cardinal(facing_cardinal); self } - pub fn rotation(self) -> Option { - BLOCK_TABLE.rotation(self.kind, self.state) + pub fn facing_cardinal_and_down(self) -> Option { + BLOCK_TABLE.facing_cardinal_and_down(self.kind, self.state) } - pub fn set_rotation(&mut self, rotation: i32) -> bool { - match BLOCK_TABLE.set_rotation(self.kind, self.state, rotation) { + pub fn set_facing_cardinal_and_down( + &mut self, + facing_cardinal_and_down: FacingCardinalAndDown, + ) -> bool { + match BLOCK_TABLE.set_facing_cardinal_and_down( + self.kind, + self.state, + facing_cardinal_and_down, + ) { Some(new_state) => { self.state = new_state; true @@ -8340,15 +9691,18 @@ impl BlockId { None => false, } } - pub fn with_rotation(mut self, rotation: i32) -> Self { - self.set_rotation(rotation); + pub fn with_facing_cardinal_and_down( + mut self, + facing_cardinal_and_down: FacingCardinalAndDown, + ) -> Self { + self.set_facing_cardinal_and_down(facing_cardinal_and_down); self } - pub fn short(self) -> Option { - BLOCK_TABLE.short(self.kind, self.state) + pub fn facing_cubic(self) -> Option { + BLOCK_TABLE.facing_cubic(self.kind, self.state) } - pub fn set_short(&mut self, short: bool) -> bool { - match BLOCK_TABLE.set_short(self.kind, self.state, short) { + pub fn set_facing_cubic(&mut self, facing_cubic: FacingCubic) -> bool { + match BLOCK_TABLE.set_facing_cubic(self.kind, self.state, facing_cubic) { Some(new_state) => { self.state = new_state; true @@ -8356,15 +9710,15 @@ impl BlockId { None => false, } } - pub fn with_short(mut self, short: bool) -> Self { - self.set_short(short); + pub fn with_facing_cubic(mut self, facing_cubic: FacingCubic) -> Self { + self.set_facing_cubic(facing_cubic); self } - pub fn signal_fire(self) -> Option { - BLOCK_TABLE.signal_fire(self.kind, self.state) - } - pub fn set_signal_fire(&mut self, signal_fire: bool) -> bool { - match BLOCK_TABLE.set_signal_fire(self.kind, self.state, signal_fire) { + pub fn half_top_bottom(self) -> Option { + BLOCK_TABLE.half_top_bottom(self.kind, self.state) + } + pub fn set_half_top_bottom(&mut self, half_top_bottom: HalfTopBottom) -> bool { + match BLOCK_TABLE.set_half_top_bottom(self.kind, self.state, half_top_bottom) { Some(new_state) => { self.state = new_state; true @@ -8372,15 +9726,15 @@ impl BlockId { None => false, } } - pub fn with_signal_fire(mut self, signal_fire: bool) -> Self { - self.set_signal_fire(signal_fire); + pub fn with_half_top_bottom(mut self, half_top_bottom: HalfTopBottom) -> Self { + self.set_half_top_bottom(half_top_bottom); self } - pub fn slab_kind(self) -> Option { - BLOCK_TABLE.slab_kind(self.kind, self.state) + pub fn half_upper_lower(self) -> Option { + BLOCK_TABLE.half_upper_lower(self.kind, self.state) } - pub fn set_slab_kind(&mut self, slab_kind: SlabKind) -> bool { - match BLOCK_TABLE.set_slab_kind(self.kind, self.state, slab_kind) { + pub fn set_half_upper_lower(&mut self, half_upper_lower: HalfUpperLower) -> bool { + match BLOCK_TABLE.set_half_upper_lower(self.kind, self.state, half_upper_lower) { Some(new_state) => { self.state = new_state; true @@ -8388,15 +9742,15 @@ impl BlockId { None => false, } } - pub fn with_slab_kind(mut self, slab_kind: SlabKind) -> Self { - self.set_slab_kind(slab_kind); + pub fn with_half_upper_lower(mut self, half_upper_lower: HalfUpperLower) -> Self { + self.set_half_upper_lower(half_upper_lower); self } - pub fn snowy(self) -> Option { - BLOCK_TABLE.snowy(self.kind, self.state) + pub fn hanging(self) -> Option { + BLOCK_TABLE.hanging(self.kind, self.state) } - pub fn set_snowy(&mut self, snowy: bool) -> bool { - match BLOCK_TABLE.set_snowy(self.kind, self.state, snowy) { + pub fn set_hanging(&mut self, hanging: bool) -> bool { + match BLOCK_TABLE.set_hanging(self.kind, self.state, hanging) { Some(new_state) => { self.state = new_state; true @@ -8404,15 +9758,15 @@ impl BlockId { None => false, } } - pub fn with_snowy(mut self, snowy: bool) -> Self { - self.set_snowy(snowy); + pub fn with_hanging(mut self, hanging: bool) -> Self { + self.set_hanging(hanging); self } - pub fn south_connected(self) -> Option { - BLOCK_TABLE.south_connected(self.kind, self.state) + pub fn has_book(self) -> Option { + BLOCK_TABLE.has_book(self.kind, self.state) } - pub fn set_south_connected(&mut self, south_connected: bool) -> bool { - match BLOCK_TABLE.set_south_connected(self.kind, self.state, south_connected) { + pub fn set_has_book(&mut self, has_book: bool) -> bool { + match BLOCK_TABLE.set_has_book(self.kind, self.state, has_book) { Some(new_state) => { self.state = new_state; true @@ -8420,15 +9774,15 @@ impl BlockId { None => false, } } - pub fn with_south_connected(mut self, south_connected: bool) -> Self { - self.set_south_connected(south_connected); + pub fn with_has_book(mut self, has_book: bool) -> Self { + self.set_has_book(has_book); self } - pub fn south_nlt(self) -> Option { - BLOCK_TABLE.south_nlt(self.kind, self.state) + pub fn has_bottle_0(self) -> Option { + BLOCK_TABLE.has_bottle_0(self.kind, self.state) } - pub fn set_south_nlt(&mut self, south_nlt: SouthNlt) -> bool { - match BLOCK_TABLE.set_south_nlt(self.kind, self.state, south_nlt) { + pub fn set_has_bottle_0(&mut self, has_bottle_0: bool) -> bool { + match BLOCK_TABLE.set_has_bottle_0(self.kind, self.state, has_bottle_0) { Some(new_state) => { self.state = new_state; true @@ -8436,15 +9790,15 @@ impl BlockId { None => false, } } - pub fn with_south_nlt(mut self, south_nlt: SouthNlt) -> Self { - self.set_south_nlt(south_nlt); + pub fn with_has_bottle_0(mut self, has_bottle_0: bool) -> Self { + self.set_has_bottle_0(has_bottle_0); self } - pub fn south_wire(self) -> Option { - BLOCK_TABLE.south_wire(self.kind, self.state) + pub fn has_bottle_1(self) -> Option { + BLOCK_TABLE.has_bottle_1(self.kind, self.state) } - pub fn set_south_wire(&mut self, south_wire: SouthWire) -> bool { - match BLOCK_TABLE.set_south_wire(self.kind, self.state, south_wire) { + pub fn set_has_bottle_1(&mut self, has_bottle_1: bool) -> bool { + match BLOCK_TABLE.set_has_bottle_1(self.kind, self.state, has_bottle_1) { Some(new_state) => { self.state = new_state; true @@ -8452,15 +9806,15 @@ impl BlockId { None => false, } } - pub fn with_south_wire(mut self, south_wire: SouthWire) -> Self { - self.set_south_wire(south_wire); + pub fn with_has_bottle_1(mut self, has_bottle_1: bool) -> Self { + self.set_has_bottle_1(has_bottle_1); self } - pub fn stage(self) -> Option { - BLOCK_TABLE.stage(self.kind, self.state) + pub fn has_bottle_2(self) -> Option { + BLOCK_TABLE.has_bottle_2(self.kind, self.state) } - pub fn set_stage(&mut self, stage: i32) -> bool { - match BLOCK_TABLE.set_stage(self.kind, self.state, stage) { + pub fn set_has_bottle_2(&mut self, has_bottle_2: bool) -> bool { + match BLOCK_TABLE.set_has_bottle_2(self.kind, self.state, has_bottle_2) { Some(new_state) => { self.state = new_state; true @@ -8468,15 +9822,15 @@ impl BlockId { None => false, } } - pub fn with_stage(mut self, stage: i32) -> Self { - self.set_stage(stage); + pub fn with_has_bottle_2(mut self, has_bottle_2: bool) -> Self { + self.set_has_bottle_2(has_bottle_2); self } - pub fn stairs_shape(self) -> Option { - BLOCK_TABLE.stairs_shape(self.kind, self.state) + pub fn has_record(self) -> Option { + BLOCK_TABLE.has_record(self.kind, self.state) } - pub fn set_stairs_shape(&mut self, stairs_shape: StairsShape) -> bool { - match BLOCK_TABLE.set_stairs_shape(self.kind, self.state, stairs_shape) { + pub fn set_has_record(&mut self, has_record: bool) -> bool { + match BLOCK_TABLE.set_has_record(self.kind, self.state, has_record) { Some(new_state) => { self.state = new_state; true @@ -8484,15 +9838,15 @@ impl BlockId { None => false, } } - pub fn with_stairs_shape(mut self, stairs_shape: StairsShape) -> Self { - self.set_stairs_shape(stairs_shape); + pub fn with_has_record(mut self, has_record: bool) -> Self { + self.set_has_record(has_record); self } - pub fn structure_block_mode(self) -> Option { - BLOCK_TABLE.structure_block_mode(self.kind, self.state) + pub fn hatch(self) -> Option { + BLOCK_TABLE.hatch(self.kind, self.state) } - pub fn set_structure_block_mode(&mut self, structure_block_mode: StructureBlockMode) -> bool { - match BLOCK_TABLE.set_structure_block_mode(self.kind, self.state, structure_block_mode) { + pub fn set_hatch(&mut self, hatch: i32) -> bool { + match BLOCK_TABLE.set_hatch(self.kind, self.state, hatch) { Some(new_state) => { self.state = new_state; true @@ -8500,15 +9854,15 @@ impl BlockId { None => false, } } - pub fn with_structure_block_mode(mut self, structure_block_mode: StructureBlockMode) -> Self { - self.set_structure_block_mode(structure_block_mode); + pub fn with_hatch(mut self, hatch: i32) -> Self { + self.set_hatch(hatch); self } - pub fn triggered(self) -> Option { - BLOCK_TABLE.triggered(self.kind, self.state) + pub fn hinge(self) -> Option { + BLOCK_TABLE.hinge(self.kind, self.state) } - pub fn set_triggered(&mut self, triggered: bool) -> bool { - match BLOCK_TABLE.set_triggered(self.kind, self.state, triggered) { + pub fn set_hinge(&mut self, hinge: Hinge) -> bool { + match BLOCK_TABLE.set_hinge(self.kind, self.state, hinge) { Some(new_state) => { self.state = new_state; true @@ -8516,15 +9870,15 @@ impl BlockId { None => false, } } - pub fn with_triggered(mut self, triggered: bool) -> Self { - self.set_triggered(triggered); + pub fn with_hinge(mut self, hinge: Hinge) -> Self { + self.set_hinge(hinge); self } - pub fn unstable(self) -> Option { - BLOCK_TABLE.unstable(self.kind, self.state) + pub fn honey_level(self) -> Option { + BLOCK_TABLE.honey_level(self.kind, self.state) } - pub fn set_unstable(&mut self, unstable: bool) -> bool { - match BLOCK_TABLE.set_unstable(self.kind, self.state, unstable) { + pub fn set_honey_level(&mut self, honey_level: i32) -> bool { + match BLOCK_TABLE.set_honey_level(self.kind, self.state, honey_level) { Some(new_state) => { self.state = new_state; true @@ -8532,15 +9886,15 @@ impl BlockId { None => false, } } - pub fn with_unstable(mut self, unstable: bool) -> Self { - self.set_unstable(unstable); + pub fn with_honey_level(mut self, honey_level: i32) -> Self { + self.set_honey_level(honey_level); self } - pub fn up(self) -> Option { - BLOCK_TABLE.up(self.kind, self.state) + pub fn in_wall(self) -> Option { + BLOCK_TABLE.in_wall(self.kind, self.state) } - pub fn set_up(&mut self, up: bool) -> bool { - match BLOCK_TABLE.set_up(self.kind, self.state, up) { + pub fn set_in_wall(&mut self, in_wall: bool) -> bool { + match BLOCK_TABLE.set_in_wall(self.kind, self.state, in_wall) { Some(new_state) => { self.state = new_state; true @@ -8548,15 +9902,15 @@ impl BlockId { None => false, } } - pub fn with_up(mut self, up: bool) -> Self { - self.set_up(up); + pub fn with_in_wall(mut self, in_wall: bool) -> Self { + self.set_in_wall(in_wall); self } - pub fn water_level(self) -> Option { - BLOCK_TABLE.water_level(self.kind, self.state) + pub fn instrument(self) -> Option { + BLOCK_TABLE.instrument(self.kind, self.state) } - pub fn set_water_level(&mut self, water_level: i32) -> bool { - match BLOCK_TABLE.set_water_level(self.kind, self.state, water_level) { + pub fn set_instrument(&mut self, instrument: Instrument) -> bool { + match BLOCK_TABLE.set_instrument(self.kind, self.state, instrument) { Some(new_state) => { self.state = new_state; true @@ -8564,15 +9918,15 @@ impl BlockId { None => false, } } - pub fn with_water_level(mut self, water_level: i32) -> Self { - self.set_water_level(water_level); + pub fn with_instrument(mut self, instrument: Instrument) -> Self { + self.set_instrument(instrument); self } - pub fn waterlogged(self) -> Option { - BLOCK_TABLE.waterlogged(self.kind, self.state) + pub fn inverted(self) -> Option { + BLOCK_TABLE.inverted(self.kind, self.state) } - pub fn set_waterlogged(&mut self, waterlogged: bool) -> bool { - match BLOCK_TABLE.set_waterlogged(self.kind, self.state, waterlogged) { + pub fn set_inverted(&mut self, inverted: bool) -> bool { + match BLOCK_TABLE.set_inverted(self.kind, self.state, inverted) { Some(new_state) => { self.state = new_state; true @@ -8580,15 +9934,15 @@ impl BlockId { None => false, } } - pub fn with_waterlogged(mut self, waterlogged: bool) -> Self { - self.set_waterlogged(waterlogged); + pub fn with_inverted(mut self, inverted: bool) -> Self { + self.set_inverted(inverted); self } - pub fn west_connected(self) -> Option { - BLOCK_TABLE.west_connected(self.kind, self.state) + pub fn layers(self) -> Option { + BLOCK_TABLE.layers(self.kind, self.state) } - pub fn set_west_connected(&mut self, west_connected: bool) -> bool { - match BLOCK_TABLE.set_west_connected(self.kind, self.state, west_connected) { + pub fn set_layers(&mut self, layers: i32) -> bool { + match BLOCK_TABLE.set_layers(self.kind, self.state, layers) { Some(new_state) => { self.state = new_state; true @@ -8596,15 +9950,15 @@ impl BlockId { None => false, } } - pub fn with_west_connected(mut self, west_connected: bool) -> Self { - self.set_west_connected(west_connected); + pub fn with_layers(mut self, layers: i32) -> Self { + self.set_layers(layers); self } - pub fn west_nlt(self) -> Option { - BLOCK_TABLE.west_nlt(self.kind, self.state) + pub fn leaves(self) -> Option { + BLOCK_TABLE.leaves(self.kind, self.state) } - pub fn set_west_nlt(&mut self, west_nlt: WestNlt) -> bool { - match BLOCK_TABLE.set_west_nlt(self.kind, self.state, west_nlt) { + pub fn set_leaves(&mut self, leaves: Leaves) -> bool { + match BLOCK_TABLE.set_leaves(self.kind, self.state, leaves) { Some(new_state) => { self.state = new_state; true @@ -8612,15 +9966,15 @@ impl BlockId { None => false, } } - pub fn with_west_nlt(mut self, west_nlt: WestNlt) -> Self { - self.set_west_nlt(west_nlt); + pub fn with_leaves(mut self, leaves: Leaves) -> Self { + self.set_leaves(leaves); self } - pub fn west_wire(self) -> Option { - BLOCK_TABLE.west_wire(self.kind, self.state) + pub fn level_0_8(self) -> Option { + BLOCK_TABLE.level_0_8(self.kind, self.state) } - pub fn set_west_wire(&mut self, west_wire: WestWire) -> bool { - match BLOCK_TABLE.set_west_wire(self.kind, self.state, west_wire) { + pub fn set_level_0_8(&mut self, level_0_8: i32) -> bool { + match BLOCK_TABLE.set_level_0_8(self.kind, self.state, level_0_8) { Some(new_state) => { self.state = new_state; true @@ -8628,63 +9982,738 @@ impl BlockId { None => false, } } - pub fn with_west_wire(mut self, west_wire: WestWire) -> Self { - self.set_west_wire(west_wire); + pub fn with_level_0_8(mut self, level_0_8: i32) -> Self { + self.set_level_0_8(level_0_8); self } - #[doc = "Returns the identifier of this block. For example, returns `minecraft::air` for an air block."] - pub fn identifier(self) -> &'static str { - match self.kind { - BlockKind::Air => "minecraft:air", - BlockKind::Stone => "minecraft:stone", - BlockKind::Granite => "minecraft:granite", - BlockKind::PolishedGranite => "minecraft:polished_granite", - BlockKind::Diorite => "minecraft:diorite", - BlockKind::PolishedDiorite => "minecraft:polished_diorite", - BlockKind::Andesite => "minecraft:andesite", - BlockKind::PolishedAndesite => "minecraft:polished_andesite", - BlockKind::GrassBlock => "minecraft:grass_block", - BlockKind::Dirt => "minecraft:dirt", - BlockKind::CoarseDirt => "minecraft:coarse_dirt", - BlockKind::Podzol => "minecraft:podzol", - BlockKind::Cobblestone => "minecraft:cobblestone", - BlockKind::OakPlanks => "minecraft:oak_planks", - BlockKind::SprucePlanks => "minecraft:spruce_planks", - BlockKind::BirchPlanks => "minecraft:birch_planks", - BlockKind::JunglePlanks => "minecraft:jungle_planks", - BlockKind::AcaciaPlanks => "minecraft:acacia_planks", - BlockKind::DarkOakPlanks => "minecraft:dark_oak_planks", - BlockKind::OakSapling => "minecraft:oak_sapling", - BlockKind::SpruceSapling => "minecraft:spruce_sapling", - BlockKind::BirchSapling => "minecraft:birch_sapling", - BlockKind::JungleSapling => "minecraft:jungle_sapling", - BlockKind::AcaciaSapling => "minecraft:acacia_sapling", - BlockKind::DarkOakSapling => "minecraft:dark_oak_sapling", - BlockKind::Bedrock => "minecraft:bedrock", - BlockKind::Water => "minecraft:water", - BlockKind::Lava => "minecraft:lava", - BlockKind::Sand => "minecraft:sand", - BlockKind::RedSand => "minecraft:red_sand", - BlockKind::Gravel => "minecraft:gravel", - BlockKind::GoldOre => "minecraft:gold_ore", - BlockKind::IronOre => "minecraft:iron_ore", - BlockKind::CoalOre => "minecraft:coal_ore", - BlockKind::NetherGoldOre => "minecraft:nether_gold_ore", - BlockKind::OakLog => "minecraft:oak_log", - BlockKind::SpruceLog => "minecraft:spruce_log", - BlockKind::BirchLog => "minecraft:birch_log", - BlockKind::JungleLog => "minecraft:jungle_log", - BlockKind::AcaciaLog => "minecraft:acacia_log", - BlockKind::DarkOakLog => "minecraft:dark_oak_log", - BlockKind::StrippedSpruceLog => "minecraft:stripped_spruce_log", - BlockKind::StrippedBirchLog => "minecraft:stripped_birch_log", - BlockKind::StrippedJungleLog => "minecraft:stripped_jungle_log", - BlockKind::StrippedAcaciaLog => "minecraft:stripped_acacia_log", - BlockKind::StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", - BlockKind::StrippedOakLog => "minecraft:stripped_oak_log", - BlockKind::OakWood => "minecraft:oak_wood", - BlockKind::SpruceWood => "minecraft:spruce_wood", - BlockKind::BirchWood => "minecraft:birch_wood", + pub fn level_1_3(self) -> Option { + BLOCK_TABLE.level_1_3(self.kind, self.state) + } + pub fn set_level_1_3(&mut self, level_1_3: i32) -> bool { + match BLOCK_TABLE.set_level_1_3(self.kind, self.state, level_1_3) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_level_1_3(mut self, level_1_3: i32) -> Self { + self.set_level_1_3(level_1_3); + self + } + pub fn lit(self) -> Option { + BLOCK_TABLE.lit(self.kind, self.state) + } + pub fn set_lit(&mut self, lit: bool) -> bool { + match BLOCK_TABLE.set_lit(self.kind, self.state, lit) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_lit(mut self, lit: bool) -> Self { + self.set_lit(lit); + self + } + pub fn locked(self) -> Option { + BLOCK_TABLE.locked(self.kind, self.state) + } + pub fn set_locked(&mut self, locked: bool) -> bool { + match BLOCK_TABLE.set_locked(self.kind, self.state, locked) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_locked(mut self, locked: bool) -> Self { + self.set_locked(locked); + self + } + pub fn moisture(self) -> Option { + BLOCK_TABLE.moisture(self.kind, self.state) + } + pub fn set_moisture(&mut self, moisture: i32) -> bool { + match BLOCK_TABLE.set_moisture(self.kind, self.state, moisture) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_moisture(mut self, moisture: i32) -> Self { + self.set_moisture(moisture); + self + } + pub fn north_connected(self) -> Option { + BLOCK_TABLE.north_connected(self.kind, self.state) + } + pub fn set_north_connected(&mut self, north_connected: bool) -> bool { + match BLOCK_TABLE.set_north_connected(self.kind, self.state, north_connected) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_north_connected(mut self, north_connected: bool) -> Self { + self.set_north_connected(north_connected); + self + } + pub fn north_nlt(self) -> Option { + BLOCK_TABLE.north_nlt(self.kind, self.state) + } + pub fn set_north_nlt(&mut self, north_nlt: NorthNlt) -> bool { + match BLOCK_TABLE.set_north_nlt(self.kind, self.state, north_nlt) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_north_nlt(mut self, north_nlt: NorthNlt) -> Self { + self.set_north_nlt(north_nlt); + self + } + pub fn north_wire(self) -> Option { + BLOCK_TABLE.north_wire(self.kind, self.state) + } + pub fn set_north_wire(&mut self, north_wire: NorthWire) -> bool { + match BLOCK_TABLE.set_north_wire(self.kind, self.state, north_wire) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_north_wire(mut self, north_wire: NorthWire) -> Self { + self.set_north_wire(north_wire); + self + } + pub fn note(self) -> Option { + BLOCK_TABLE.note(self.kind, self.state) + } + pub fn set_note(&mut self, note: i32) -> bool { + match BLOCK_TABLE.set_note(self.kind, self.state, note) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_note(mut self, note: i32) -> Self { + self.set_note(note); + self + } + pub fn occupied(self) -> Option { + BLOCK_TABLE.occupied(self.kind, self.state) + } + pub fn set_occupied(&mut self, occupied: bool) -> bool { + match BLOCK_TABLE.set_occupied(self.kind, self.state, occupied) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_occupied(mut self, occupied: bool) -> Self { + self.set_occupied(occupied); + self + } + pub fn open(self) -> Option { + BLOCK_TABLE.open(self.kind, self.state) + } + pub fn set_open(&mut self, open: bool) -> bool { + match BLOCK_TABLE.set_open(self.kind, self.state, open) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_open(mut self, open: bool) -> Self { + self.set_open(open); + self + } + pub fn orientation(self) -> Option { + BLOCK_TABLE.orientation(self.kind, self.state) + } + pub fn set_orientation(&mut self, orientation: Orientation) -> bool { + match BLOCK_TABLE.set_orientation(self.kind, self.state, orientation) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_orientation(mut self, orientation: Orientation) -> Self { + self.set_orientation(orientation); + self + } + pub fn part(self) -> Option { + BLOCK_TABLE.part(self.kind, self.state) + } + pub fn set_part(&mut self, part: Part) -> bool { + match BLOCK_TABLE.set_part(self.kind, self.state, part) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_part(mut self, part: Part) -> Self { + self.set_part(part); + self + } + pub fn persistent(self) -> Option { + BLOCK_TABLE.persistent(self.kind, self.state) + } + pub fn set_persistent(&mut self, persistent: bool) -> bool { + match BLOCK_TABLE.set_persistent(self.kind, self.state, persistent) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_persistent(mut self, persistent: bool) -> Self { + self.set_persistent(persistent); + self + } + pub fn pickles(self) -> Option { + BLOCK_TABLE.pickles(self.kind, self.state) + } + pub fn set_pickles(&mut self, pickles: i32) -> bool { + match BLOCK_TABLE.set_pickles(self.kind, self.state, pickles) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_pickles(mut self, pickles: i32) -> Self { + self.set_pickles(pickles); + self + } + pub fn piston_kind(self) -> Option { + BLOCK_TABLE.piston_kind(self.kind, self.state) + } + pub fn set_piston_kind(&mut self, piston_kind: PistonKind) -> bool { + match BLOCK_TABLE.set_piston_kind(self.kind, self.state, piston_kind) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_piston_kind(mut self, piston_kind: PistonKind) -> Self { + self.set_piston_kind(piston_kind); + self + } + pub fn power(self) -> Option { + BLOCK_TABLE.power(self.kind, self.state) + } + pub fn set_power(&mut self, power: i32) -> bool { + match BLOCK_TABLE.set_power(self.kind, self.state, power) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_power(mut self, power: i32) -> Self { + self.set_power(power); + self + } + pub fn powered(self) -> Option { + BLOCK_TABLE.powered(self.kind, self.state) + } + pub fn set_powered(&mut self, powered: bool) -> bool { + match BLOCK_TABLE.set_powered(self.kind, self.state, powered) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_powered(mut self, powered: bool) -> Self { + self.set_powered(powered); + self + } + pub fn powered_rail_shape(self) -> Option { + BLOCK_TABLE.powered_rail_shape(self.kind, self.state) + } + pub fn set_powered_rail_shape(&mut self, powered_rail_shape: PoweredRailShape) -> bool { + match BLOCK_TABLE.set_powered_rail_shape(self.kind, self.state, powered_rail_shape) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_powered_rail_shape(mut self, powered_rail_shape: PoweredRailShape) -> Self { + self.set_powered_rail_shape(powered_rail_shape); + self + } + pub fn rail_shape(self) -> Option { + BLOCK_TABLE.rail_shape(self.kind, self.state) + } + pub fn set_rail_shape(&mut self, rail_shape: RailShape) -> bool { + match BLOCK_TABLE.set_rail_shape(self.kind, self.state, rail_shape) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_rail_shape(mut self, rail_shape: RailShape) -> Self { + self.set_rail_shape(rail_shape); + self + } + pub fn rotation(self) -> Option { + BLOCK_TABLE.rotation(self.kind, self.state) + } + pub fn set_rotation(&mut self, rotation: i32) -> bool { + match BLOCK_TABLE.set_rotation(self.kind, self.state, rotation) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_rotation(mut self, rotation: i32) -> Self { + self.set_rotation(rotation); + self + } + pub fn sculk_sensor_phase(self) -> Option { + BLOCK_TABLE.sculk_sensor_phase(self.kind, self.state) + } + pub fn set_sculk_sensor_phase(&mut self, sculk_sensor_phase: SculkSensorPhase) -> bool { + match BLOCK_TABLE.set_sculk_sensor_phase(self.kind, self.state, sculk_sensor_phase) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_sculk_sensor_phase(mut self, sculk_sensor_phase: SculkSensorPhase) -> Self { + self.set_sculk_sensor_phase(sculk_sensor_phase); + self + } + pub fn short(self) -> Option { + BLOCK_TABLE.short(self.kind, self.state) + } + pub fn set_short(&mut self, short: bool) -> bool { + match BLOCK_TABLE.set_short(self.kind, self.state, short) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_short(mut self, short: bool) -> Self { + self.set_short(short); + self + } + pub fn signal_fire(self) -> Option { + BLOCK_TABLE.signal_fire(self.kind, self.state) + } + pub fn set_signal_fire(&mut self, signal_fire: bool) -> bool { + match BLOCK_TABLE.set_signal_fire(self.kind, self.state, signal_fire) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_signal_fire(mut self, signal_fire: bool) -> Self { + self.set_signal_fire(signal_fire); + self + } + pub fn slab_kind(self) -> Option { + BLOCK_TABLE.slab_kind(self.kind, self.state) + } + pub fn set_slab_kind(&mut self, slab_kind: SlabKind) -> bool { + match BLOCK_TABLE.set_slab_kind(self.kind, self.state, slab_kind) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_slab_kind(mut self, slab_kind: SlabKind) -> Self { + self.set_slab_kind(slab_kind); + self + } + pub fn snowy(self) -> Option { + BLOCK_TABLE.snowy(self.kind, self.state) + } + pub fn set_snowy(&mut self, snowy: bool) -> bool { + match BLOCK_TABLE.set_snowy(self.kind, self.state, snowy) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_snowy(mut self, snowy: bool) -> Self { + self.set_snowy(snowy); + self + } + pub fn south_connected(self) -> Option { + BLOCK_TABLE.south_connected(self.kind, self.state) + } + pub fn set_south_connected(&mut self, south_connected: bool) -> bool { + match BLOCK_TABLE.set_south_connected(self.kind, self.state, south_connected) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_south_connected(mut self, south_connected: bool) -> Self { + self.set_south_connected(south_connected); + self + } + pub fn south_nlt(self) -> Option { + BLOCK_TABLE.south_nlt(self.kind, self.state) + } + pub fn set_south_nlt(&mut self, south_nlt: SouthNlt) -> bool { + match BLOCK_TABLE.set_south_nlt(self.kind, self.state, south_nlt) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_south_nlt(mut self, south_nlt: SouthNlt) -> Self { + self.set_south_nlt(south_nlt); + self + } + pub fn south_wire(self) -> Option { + BLOCK_TABLE.south_wire(self.kind, self.state) + } + pub fn set_south_wire(&mut self, south_wire: SouthWire) -> bool { + match BLOCK_TABLE.set_south_wire(self.kind, self.state, south_wire) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_south_wire(mut self, south_wire: SouthWire) -> Self { + self.set_south_wire(south_wire); + self + } + pub fn stage(self) -> Option { + BLOCK_TABLE.stage(self.kind, self.state) + } + pub fn set_stage(&mut self, stage: i32) -> bool { + match BLOCK_TABLE.set_stage(self.kind, self.state, stage) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_stage(mut self, stage: i32) -> Self { + self.set_stage(stage); + self + } + pub fn stairs_shape(self) -> Option { + BLOCK_TABLE.stairs_shape(self.kind, self.state) + } + pub fn set_stairs_shape(&mut self, stairs_shape: StairsShape) -> bool { + match BLOCK_TABLE.set_stairs_shape(self.kind, self.state, stairs_shape) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_stairs_shape(mut self, stairs_shape: StairsShape) -> Self { + self.set_stairs_shape(stairs_shape); + self + } + pub fn structure_block_mode(self) -> Option { + BLOCK_TABLE.structure_block_mode(self.kind, self.state) + } + pub fn set_structure_block_mode(&mut self, structure_block_mode: StructureBlockMode) -> bool { + match BLOCK_TABLE.set_structure_block_mode(self.kind, self.state, structure_block_mode) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_structure_block_mode(mut self, structure_block_mode: StructureBlockMode) -> Self { + self.set_structure_block_mode(structure_block_mode); + self + } + pub fn thickness(self) -> Option { + BLOCK_TABLE.thickness(self.kind, self.state) + } + pub fn set_thickness(&mut self, thickness: Thickness) -> bool { + match BLOCK_TABLE.set_thickness(self.kind, self.state, thickness) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_thickness(mut self, thickness: Thickness) -> Self { + self.set_thickness(thickness); + self + } + pub fn tilt(self) -> Option { + BLOCK_TABLE.tilt(self.kind, self.state) + } + pub fn set_tilt(&mut self, tilt: Tilt) -> bool { + match BLOCK_TABLE.set_tilt(self.kind, self.state, tilt) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_tilt(mut self, tilt: Tilt) -> Self { + self.set_tilt(tilt); + self + } + pub fn triggered(self) -> Option { + BLOCK_TABLE.triggered(self.kind, self.state) + } + pub fn set_triggered(&mut self, triggered: bool) -> bool { + match BLOCK_TABLE.set_triggered(self.kind, self.state, triggered) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_triggered(mut self, triggered: bool) -> Self { + self.set_triggered(triggered); + self + } + pub fn unstable(self) -> Option { + BLOCK_TABLE.unstable(self.kind, self.state) + } + pub fn set_unstable(&mut self, unstable: bool) -> bool { + match BLOCK_TABLE.set_unstable(self.kind, self.state, unstable) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_unstable(mut self, unstable: bool) -> Self { + self.set_unstable(unstable); + self + } + pub fn up(self) -> Option { + BLOCK_TABLE.up(self.kind, self.state) + } + pub fn set_up(&mut self, up: bool) -> bool { + match BLOCK_TABLE.set_up(self.kind, self.state, up) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_up(mut self, up: bool) -> Self { + self.set_up(up); + self + } + pub fn vertical_direction(self) -> Option { + BLOCK_TABLE.vertical_direction(self.kind, self.state) + } + pub fn set_vertical_direction(&mut self, vertical_direction: VerticalDirection) -> bool { + match BLOCK_TABLE.set_vertical_direction(self.kind, self.state, vertical_direction) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_vertical_direction(mut self, vertical_direction: VerticalDirection) -> Self { + self.set_vertical_direction(vertical_direction); + self + } + pub fn water_level(self) -> Option { + BLOCK_TABLE.water_level(self.kind, self.state) + } + pub fn set_water_level(&mut self, water_level: i32) -> bool { + match BLOCK_TABLE.set_water_level(self.kind, self.state, water_level) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_water_level(mut self, water_level: i32) -> Self { + self.set_water_level(water_level); + self + } + pub fn waterlogged(self) -> Option { + BLOCK_TABLE.waterlogged(self.kind, self.state) + } + pub fn set_waterlogged(&mut self, waterlogged: bool) -> bool { + match BLOCK_TABLE.set_waterlogged(self.kind, self.state, waterlogged) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_waterlogged(mut self, waterlogged: bool) -> Self { + self.set_waterlogged(waterlogged); + self + } + pub fn west_connected(self) -> Option { + BLOCK_TABLE.west_connected(self.kind, self.state) + } + pub fn set_west_connected(&mut self, west_connected: bool) -> bool { + match BLOCK_TABLE.set_west_connected(self.kind, self.state, west_connected) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_west_connected(mut self, west_connected: bool) -> Self { + self.set_west_connected(west_connected); + self + } + pub fn west_nlt(self) -> Option { + BLOCK_TABLE.west_nlt(self.kind, self.state) + } + pub fn set_west_nlt(&mut self, west_nlt: WestNlt) -> bool { + match BLOCK_TABLE.set_west_nlt(self.kind, self.state, west_nlt) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_west_nlt(mut self, west_nlt: WestNlt) -> Self { + self.set_west_nlt(west_nlt); + self + } + pub fn west_wire(self) -> Option { + BLOCK_TABLE.west_wire(self.kind, self.state) + } + pub fn set_west_wire(&mut self, west_wire: WestWire) -> bool { + match BLOCK_TABLE.set_west_wire(self.kind, self.state, west_wire) { + Some(new_state) => { + self.state = new_state; + true + } + None => false, + } + } + pub fn with_west_wire(mut self, west_wire: WestWire) -> Self { + self.set_west_wire(west_wire); + self + } + #[doc = "Returns the identifier of this block. For example, returns `minecraft::air` for an air block."] + pub fn identifier(self) -> &'static str { + match self.kind { + BlockKind::Air => "minecraft:air", + BlockKind::Stone => "minecraft:stone", + BlockKind::Granite => "minecraft:granite", + BlockKind::PolishedGranite => "minecraft:polished_granite", + BlockKind::Diorite => "minecraft:diorite", + BlockKind::PolishedDiorite => "minecraft:polished_diorite", + BlockKind::Andesite => "minecraft:andesite", + BlockKind::PolishedAndesite => "minecraft:polished_andesite", + BlockKind::GrassBlock => "minecraft:grass_block", + BlockKind::Dirt => "minecraft:dirt", + BlockKind::CoarseDirt => "minecraft:coarse_dirt", + BlockKind::Podzol => "minecraft:podzol", + BlockKind::Cobblestone => "minecraft:cobblestone", + BlockKind::OakPlanks => "minecraft:oak_planks", + BlockKind::SprucePlanks => "minecraft:spruce_planks", + BlockKind::BirchPlanks => "minecraft:birch_planks", + BlockKind::JunglePlanks => "minecraft:jungle_planks", + BlockKind::AcaciaPlanks => "minecraft:acacia_planks", + BlockKind::DarkOakPlanks => "minecraft:dark_oak_planks", + BlockKind::OakSapling => "minecraft:oak_sapling", + BlockKind::SpruceSapling => "minecraft:spruce_sapling", + BlockKind::BirchSapling => "minecraft:birch_sapling", + BlockKind::JungleSapling => "minecraft:jungle_sapling", + BlockKind::AcaciaSapling => "minecraft:acacia_sapling", + BlockKind::DarkOakSapling => "minecraft:dark_oak_sapling", + BlockKind::Bedrock => "minecraft:bedrock", + BlockKind::Water => "minecraft:water", + BlockKind::Lava => "minecraft:lava", + BlockKind::Sand => "minecraft:sand", + BlockKind::RedSand => "minecraft:red_sand", + BlockKind::Gravel => "minecraft:gravel", + BlockKind::GoldOre => "minecraft:gold_ore", + BlockKind::DeepslateGoldOre => "minecraft:deepslate_gold_ore", + BlockKind::IronOre => "minecraft:iron_ore", + BlockKind::DeepslateIronOre => "minecraft:deepslate_iron_ore", + BlockKind::CoalOre => "minecraft:coal_ore", + BlockKind::DeepslateCoalOre => "minecraft:deepslate_coal_ore", + BlockKind::NetherGoldOre => "minecraft:nether_gold_ore", + BlockKind::OakLog => "minecraft:oak_log", + BlockKind::SpruceLog => "minecraft:spruce_log", + BlockKind::BirchLog => "minecraft:birch_log", + BlockKind::JungleLog => "minecraft:jungle_log", + BlockKind::AcaciaLog => "minecraft:acacia_log", + BlockKind::DarkOakLog => "minecraft:dark_oak_log", + BlockKind::StrippedSpruceLog => "minecraft:stripped_spruce_log", + BlockKind::StrippedBirchLog => "minecraft:stripped_birch_log", + BlockKind::StrippedJungleLog => "minecraft:stripped_jungle_log", + BlockKind::StrippedAcaciaLog => "minecraft:stripped_acacia_log", + BlockKind::StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", + BlockKind::StrippedOakLog => "minecraft:stripped_oak_log", + BlockKind::OakWood => "minecraft:oak_wood", + BlockKind::SpruceWood => "minecraft:spruce_wood", + BlockKind::BirchWood => "minecraft:birch_wood", BlockKind::JungleWood => "minecraft:jungle_wood", BlockKind::AcaciaWood => "minecraft:acacia_wood", BlockKind::DarkOakWood => "minecraft:dark_oak_wood", @@ -8700,10 +10729,13 @@ impl BlockId { BlockKind::JungleLeaves => "minecraft:jungle_leaves", BlockKind::AcaciaLeaves => "minecraft:acacia_leaves", BlockKind::DarkOakLeaves => "minecraft:dark_oak_leaves", + BlockKind::AzaleaLeaves => "minecraft:azalea_leaves", + BlockKind::FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", BlockKind::Sponge => "minecraft:sponge", BlockKind::WetSponge => "minecraft:wet_sponge", BlockKind::Glass => "minecraft:glass", BlockKind::LapisOre => "minecraft:lapis_ore", + BlockKind::DeepslateLapisOre => "minecraft:deepslate_lapis_ore", BlockKind::LapisBlock => "minecraft:lapis_block", BlockKind::Dispenser => "minecraft:dispenser", BlockKind::Sandstone => "minecraft:sandstone", @@ -8785,6 +10817,7 @@ impl BlockId { BlockKind::Chest => "minecraft:chest", BlockKind::RedstoneWire => "minecraft:redstone_wire", BlockKind::DiamondOre => "minecraft:diamond_ore", + BlockKind::DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", BlockKind::DiamondBlock => "minecraft:diamond_block", BlockKind::CraftingTable => "minecraft:crafting_table", BlockKind::Wheat => "minecraft:wheat", @@ -8816,6 +10849,7 @@ impl BlockId { BlockKind::AcaciaPressurePlate => "minecraft:acacia_pressure_plate", BlockKind::DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", BlockKind::RedstoneOre => "minecraft:redstone_ore", + BlockKind::DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", BlockKind::RedstoneTorch => "minecraft:redstone_torch", BlockKind::RedstoneWallTorch => "minecraft:redstone_wall_torch", BlockKind::StoneButton => "minecraft:stone_button", @@ -8885,6 +10919,7 @@ impl BlockId { BlockKind::PumpkinStem => "minecraft:pumpkin_stem", BlockKind::MelonStem => "minecraft:melon_stem", BlockKind::Vine => "minecraft:vine", + BlockKind::GlowLichen => "minecraft:glow_lichen", BlockKind::OakFenceGate => "minecraft:oak_fence_gate", BlockKind::BrickStairs => "minecraft:brick_stairs", BlockKind::StoneBrickStairs => "minecraft:stone_brick_stairs", @@ -8897,6 +10932,9 @@ impl BlockId { BlockKind::EnchantingTable => "minecraft:enchanting_table", BlockKind::BrewingStand => "minecraft:brewing_stand", BlockKind::Cauldron => "minecraft:cauldron", + BlockKind::WaterCauldron => "minecraft:water_cauldron", + BlockKind::LavaCauldron => "minecraft:lava_cauldron", + BlockKind::PowderSnowCauldron => "minecraft:powder_snow_cauldron", BlockKind::EndPortal => "minecraft:end_portal", BlockKind::EndPortalFrame => "minecraft:end_portal_frame", BlockKind::EndStone => "minecraft:end_stone", @@ -8905,6 +10943,7 @@ impl BlockId { BlockKind::Cocoa => "minecraft:cocoa", BlockKind::SandstoneStairs => "minecraft:sandstone_stairs", BlockKind::EmeraldOre => "minecraft:emerald_ore", + BlockKind::DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", BlockKind::EnderChest => "minecraft:ender_chest", BlockKind::TripwireHook => "minecraft:tripwire_hook", BlockKind::Tripwire => "minecraft:tripwire", @@ -9014,6 +11053,7 @@ impl BlockId { BlockKind::DarkOakStairs => "minecraft:dark_oak_stairs", BlockKind::SlimeBlock => "minecraft:slime_block", BlockKind::Barrier => "minecraft:barrier", + BlockKind::Light => "minecraft:light", BlockKind::IronTrapdoor => "minecraft:iron_trapdoor", BlockKind::Prismarine => "minecraft:prismarine", BlockKind::PrismarineBricks => "minecraft:prismarine_bricks", @@ -9133,7 +11173,7 @@ impl BlockId { BlockKind::PurpurStairs => "minecraft:purpur_stairs", BlockKind::EndStoneBricks => "minecraft:end_stone_bricks", BlockKind::Beetroots => "minecraft:beetroots", - BlockKind::GrassPath => "minecraft:grass_path", + BlockKind::DirtPath => "minecraft:dirt_path", BlockKind::EndGateway => "minecraft:end_gateway", BlockKind::RepeatingCommandBlock => "minecraft:repeating_command_block", BlockKind::ChainCommandBlock => "minecraft:chain_command_block", @@ -9385,1336 +11425,4555 @@ impl BlockId { BlockKind::PolishedBlackstone => "minecraft:polished_blackstone", BlockKind::PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", BlockKind::CrackedPolishedBlackstoneBricks => { - "minecraft:cracked_polished_blackstone_bricks" + "minecraft:cracked_polished_blackstone_bricks" + } + BlockKind::ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", + BlockKind::PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", + BlockKind::PolishedBlackstoneBrickStairs => { + "minecraft:polished_blackstone_brick_stairs" + } + BlockKind::PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", + BlockKind::GildedBlackstone => "minecraft:gilded_blackstone", + BlockKind::PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", + BlockKind::PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", + BlockKind::PolishedBlackstonePressurePlate => { + "minecraft:polished_blackstone_pressure_plate" + } + BlockKind::PolishedBlackstoneButton => "minecraft:polished_blackstone_button", + BlockKind::PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", + BlockKind::ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", + BlockKind::CrackedNetherBricks => "minecraft:cracked_nether_bricks", + BlockKind::QuartzBricks => "minecraft:quartz_bricks", + BlockKind::Candle => "minecraft:candle", + BlockKind::WhiteCandle => "minecraft:white_candle", + BlockKind::OrangeCandle => "minecraft:orange_candle", + BlockKind::MagentaCandle => "minecraft:magenta_candle", + BlockKind::LightBlueCandle => "minecraft:light_blue_candle", + BlockKind::YellowCandle => "minecraft:yellow_candle", + BlockKind::LimeCandle => "minecraft:lime_candle", + BlockKind::PinkCandle => "minecraft:pink_candle", + BlockKind::GrayCandle => "minecraft:gray_candle", + BlockKind::LightGrayCandle => "minecraft:light_gray_candle", + BlockKind::CyanCandle => "minecraft:cyan_candle", + BlockKind::PurpleCandle => "minecraft:purple_candle", + BlockKind::BlueCandle => "minecraft:blue_candle", + BlockKind::BrownCandle => "minecraft:brown_candle", + BlockKind::GreenCandle => "minecraft:green_candle", + BlockKind::RedCandle => "minecraft:red_candle", + BlockKind::BlackCandle => "minecraft:black_candle", + BlockKind::CandleCake => "minecraft:candle_cake", + BlockKind::WhiteCandleCake => "minecraft:white_candle_cake", + BlockKind::OrangeCandleCake => "minecraft:orange_candle_cake", + BlockKind::MagentaCandleCake => "minecraft:magenta_candle_cake", + BlockKind::LightBlueCandleCake => "minecraft:light_blue_candle_cake", + BlockKind::YellowCandleCake => "minecraft:yellow_candle_cake", + BlockKind::LimeCandleCake => "minecraft:lime_candle_cake", + BlockKind::PinkCandleCake => "minecraft:pink_candle_cake", + BlockKind::GrayCandleCake => "minecraft:gray_candle_cake", + BlockKind::LightGrayCandleCake => "minecraft:light_gray_candle_cake", + BlockKind::CyanCandleCake => "minecraft:cyan_candle_cake", + BlockKind::PurpleCandleCake => "minecraft:purple_candle_cake", + BlockKind::BlueCandleCake => "minecraft:blue_candle_cake", + BlockKind::BrownCandleCake => "minecraft:brown_candle_cake", + BlockKind::GreenCandleCake => "minecraft:green_candle_cake", + BlockKind::RedCandleCake => "minecraft:red_candle_cake", + BlockKind::BlackCandleCake => "minecraft:black_candle_cake", + BlockKind::AmethystBlock => "minecraft:amethyst_block", + BlockKind::BuddingAmethyst => "minecraft:budding_amethyst", + BlockKind::AmethystCluster => "minecraft:amethyst_cluster", + BlockKind::LargeAmethystBud => "minecraft:large_amethyst_bud", + BlockKind::MediumAmethystBud => "minecraft:medium_amethyst_bud", + BlockKind::SmallAmethystBud => "minecraft:small_amethyst_bud", + BlockKind::Tuff => "minecraft:tuff", + BlockKind::Calcite => "minecraft:calcite", + BlockKind::TintedGlass => "minecraft:tinted_glass", + BlockKind::PowderSnow => "minecraft:powder_snow", + BlockKind::SculkSensor => "minecraft:sculk_sensor", + BlockKind::OxidizedCopper => "minecraft:oxidized_copper", + BlockKind::WeatheredCopper => "minecraft:weathered_copper", + BlockKind::ExposedCopper => "minecraft:exposed_copper", + BlockKind::CopperBlock => "minecraft:copper_block", + BlockKind::CopperOre => "minecraft:copper_ore", + BlockKind::DeepslateCopperOre => "minecraft:deepslate_copper_ore", + BlockKind::OxidizedCutCopper => "minecraft:oxidized_cut_copper", + BlockKind::WeatheredCutCopper => "minecraft:weathered_cut_copper", + BlockKind::ExposedCutCopper => "minecraft:exposed_cut_copper", + BlockKind::CutCopper => "minecraft:cut_copper", + BlockKind::OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", + BlockKind::WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", + BlockKind::ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", + BlockKind::CutCopperStairs => "minecraft:cut_copper_stairs", + BlockKind::OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", + BlockKind::WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", + BlockKind::ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", + BlockKind::CutCopperSlab => "minecraft:cut_copper_slab", + BlockKind::WaxedCopperBlock => "minecraft:waxed_copper_block", + BlockKind::WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", + BlockKind::WaxedExposedCopper => "minecraft:waxed_exposed_copper", + BlockKind::WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", + BlockKind::WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", + BlockKind::WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", + BlockKind::WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", + BlockKind::WaxedCutCopper => "minecraft:waxed_cut_copper", + BlockKind::WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", + BlockKind::WaxedWeatheredCutCopperStairs => { + "minecraft:waxed_weathered_cut_copper_stairs" + } + BlockKind::WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", + BlockKind::WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", + BlockKind::WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", + BlockKind::WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", + BlockKind::WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", + BlockKind::WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", + BlockKind::LightningRod => "minecraft:lightning_rod", + BlockKind::PointedDripstone => "minecraft:pointed_dripstone", + BlockKind::DripstoneBlock => "minecraft:dripstone_block", + BlockKind::CaveVines => "minecraft:cave_vines", + BlockKind::CaveVinesPlant => "minecraft:cave_vines_plant", + BlockKind::SporeBlossom => "minecraft:spore_blossom", + BlockKind::Azalea => "minecraft:azalea", + BlockKind::FloweringAzalea => "minecraft:flowering_azalea", + BlockKind::MossCarpet => "minecraft:moss_carpet", + BlockKind::MossBlock => "minecraft:moss_block", + BlockKind::BigDripleaf => "minecraft:big_dripleaf", + BlockKind::BigDripleafStem => "minecraft:big_dripleaf_stem", + BlockKind::SmallDripleaf => "minecraft:small_dripleaf", + BlockKind::HangingRoots => "minecraft:hanging_roots", + BlockKind::RootedDirt => "minecraft:rooted_dirt", + BlockKind::Deepslate => "minecraft:deepslate", + BlockKind::CobbledDeepslate => "minecraft:cobbled_deepslate", + BlockKind::CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", + BlockKind::CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", + BlockKind::CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", + BlockKind::PolishedDeepslate => "minecraft:polished_deepslate", + BlockKind::PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", + BlockKind::PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", + BlockKind::PolishedDeepslateWall => "minecraft:polished_deepslate_wall", + BlockKind::DeepslateTiles => "minecraft:deepslate_tiles", + BlockKind::DeepslateTileStairs => "minecraft:deepslate_tile_stairs", + BlockKind::DeepslateTileSlab => "minecraft:deepslate_tile_slab", + BlockKind::DeepslateTileWall => "minecraft:deepslate_tile_wall", + BlockKind::DeepslateBricks => "minecraft:deepslate_bricks", + BlockKind::DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", + BlockKind::DeepslateBrickSlab => "minecraft:deepslate_brick_slab", + BlockKind::DeepslateBrickWall => "minecraft:deepslate_brick_wall", + BlockKind::ChiseledDeepslate => "minecraft:chiseled_deepslate", + BlockKind::CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", + BlockKind::CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", + BlockKind::InfestedDeepslate => "minecraft:infested_deepslate", + BlockKind::SmoothBasalt => "minecraft:smooth_basalt", + BlockKind::RawIronBlock => "minecraft:raw_iron_block", + BlockKind::RawCopperBlock => "minecraft:raw_copper_block", + BlockKind::RawGoldBlock => "minecraft:raw_gold_block", + BlockKind::PottedAzaleaBush => "minecraft:potted_azalea_bush", + BlockKind::PottedFloweringAzaleaBush => "minecraft:potted_flowering_azalea_bush", + } + } + #[doc = "Returns a mapping from property name to property value for this block. Used to serialize blocks in vanilla world saves."] + pub fn to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + match self.kind { + BlockKind::Air => self.air_to_properties_map(), + BlockKind::Stone => self.stone_to_properties_map(), + BlockKind::Granite => self.granite_to_properties_map(), + BlockKind::PolishedGranite => self.polished_granite_to_properties_map(), + BlockKind::Diorite => self.diorite_to_properties_map(), + BlockKind::PolishedDiorite => self.polished_diorite_to_properties_map(), + BlockKind::Andesite => self.andesite_to_properties_map(), + BlockKind::PolishedAndesite => self.polished_andesite_to_properties_map(), + BlockKind::GrassBlock => self.grass_block_to_properties_map(), + BlockKind::Dirt => self.dirt_to_properties_map(), + BlockKind::CoarseDirt => self.coarse_dirt_to_properties_map(), + BlockKind::Podzol => self.podzol_to_properties_map(), + BlockKind::Cobblestone => self.cobblestone_to_properties_map(), + BlockKind::OakPlanks => self.oak_planks_to_properties_map(), + BlockKind::SprucePlanks => self.spruce_planks_to_properties_map(), + BlockKind::BirchPlanks => self.birch_planks_to_properties_map(), + BlockKind::JunglePlanks => self.jungle_planks_to_properties_map(), + BlockKind::AcaciaPlanks => self.acacia_planks_to_properties_map(), + BlockKind::DarkOakPlanks => self.dark_oak_planks_to_properties_map(), + BlockKind::OakSapling => self.oak_sapling_to_properties_map(), + BlockKind::SpruceSapling => self.spruce_sapling_to_properties_map(), + BlockKind::BirchSapling => self.birch_sapling_to_properties_map(), + BlockKind::JungleSapling => self.jungle_sapling_to_properties_map(), + BlockKind::AcaciaSapling => self.acacia_sapling_to_properties_map(), + BlockKind::DarkOakSapling => self.dark_oak_sapling_to_properties_map(), + BlockKind::Bedrock => self.bedrock_to_properties_map(), + BlockKind::Water => self.water_to_properties_map(), + BlockKind::Lava => self.lava_to_properties_map(), + BlockKind::Sand => self.sand_to_properties_map(), + BlockKind::RedSand => self.red_sand_to_properties_map(), + BlockKind::Gravel => self.gravel_to_properties_map(), + BlockKind::GoldOre => self.gold_ore_to_properties_map(), + BlockKind::DeepslateGoldOre => self.deepslate_gold_ore_to_properties_map(), + BlockKind::IronOre => self.iron_ore_to_properties_map(), + BlockKind::DeepslateIronOre => self.deepslate_iron_ore_to_properties_map(), + BlockKind::CoalOre => self.coal_ore_to_properties_map(), + BlockKind::DeepslateCoalOre => self.deepslate_coal_ore_to_properties_map(), + BlockKind::NetherGoldOre => self.nether_gold_ore_to_properties_map(), + BlockKind::OakLog => self.oak_log_to_properties_map(), + BlockKind::SpruceLog => self.spruce_log_to_properties_map(), + BlockKind::BirchLog => self.birch_log_to_properties_map(), + BlockKind::JungleLog => self.jungle_log_to_properties_map(), + BlockKind::AcaciaLog => self.acacia_log_to_properties_map(), + BlockKind::DarkOakLog => self.dark_oak_log_to_properties_map(), + BlockKind::StrippedSpruceLog => self.stripped_spruce_log_to_properties_map(), + BlockKind::StrippedBirchLog => self.stripped_birch_log_to_properties_map(), + BlockKind::StrippedJungleLog => self.stripped_jungle_log_to_properties_map(), + BlockKind::StrippedAcaciaLog => self.stripped_acacia_log_to_properties_map(), + BlockKind::StrippedDarkOakLog => self.stripped_dark_oak_log_to_properties_map(), + BlockKind::StrippedOakLog => self.stripped_oak_log_to_properties_map(), + BlockKind::OakWood => self.oak_wood_to_properties_map(), + BlockKind::SpruceWood => self.spruce_wood_to_properties_map(), + BlockKind::BirchWood => self.birch_wood_to_properties_map(), + BlockKind::JungleWood => self.jungle_wood_to_properties_map(), + BlockKind::AcaciaWood => self.acacia_wood_to_properties_map(), + BlockKind::DarkOakWood => self.dark_oak_wood_to_properties_map(), + BlockKind::StrippedOakWood => self.stripped_oak_wood_to_properties_map(), + BlockKind::StrippedSpruceWood => self.stripped_spruce_wood_to_properties_map(), + BlockKind::StrippedBirchWood => self.stripped_birch_wood_to_properties_map(), + BlockKind::StrippedJungleWood => self.stripped_jungle_wood_to_properties_map(), + BlockKind::StrippedAcaciaWood => self.stripped_acacia_wood_to_properties_map(), + BlockKind::StrippedDarkOakWood => self.stripped_dark_oak_wood_to_properties_map(), + BlockKind::OakLeaves => self.oak_leaves_to_properties_map(), + BlockKind::SpruceLeaves => self.spruce_leaves_to_properties_map(), + BlockKind::BirchLeaves => self.birch_leaves_to_properties_map(), + BlockKind::JungleLeaves => self.jungle_leaves_to_properties_map(), + BlockKind::AcaciaLeaves => self.acacia_leaves_to_properties_map(), + BlockKind::DarkOakLeaves => self.dark_oak_leaves_to_properties_map(), + BlockKind::AzaleaLeaves => self.azalea_leaves_to_properties_map(), + BlockKind::FloweringAzaleaLeaves => self.flowering_azalea_leaves_to_properties_map(), + BlockKind::Sponge => self.sponge_to_properties_map(), + BlockKind::WetSponge => self.wet_sponge_to_properties_map(), + BlockKind::Glass => self.glass_to_properties_map(), + BlockKind::LapisOre => self.lapis_ore_to_properties_map(), + BlockKind::DeepslateLapisOre => self.deepslate_lapis_ore_to_properties_map(), + BlockKind::LapisBlock => self.lapis_block_to_properties_map(), + BlockKind::Dispenser => self.dispenser_to_properties_map(), + BlockKind::Sandstone => self.sandstone_to_properties_map(), + BlockKind::ChiseledSandstone => self.chiseled_sandstone_to_properties_map(), + BlockKind::CutSandstone => self.cut_sandstone_to_properties_map(), + BlockKind::NoteBlock => self.note_block_to_properties_map(), + BlockKind::WhiteBed => self.white_bed_to_properties_map(), + BlockKind::OrangeBed => self.orange_bed_to_properties_map(), + BlockKind::MagentaBed => self.magenta_bed_to_properties_map(), + BlockKind::LightBlueBed => self.light_blue_bed_to_properties_map(), + BlockKind::YellowBed => self.yellow_bed_to_properties_map(), + BlockKind::LimeBed => self.lime_bed_to_properties_map(), + BlockKind::PinkBed => self.pink_bed_to_properties_map(), + BlockKind::GrayBed => self.gray_bed_to_properties_map(), + BlockKind::LightGrayBed => self.light_gray_bed_to_properties_map(), + BlockKind::CyanBed => self.cyan_bed_to_properties_map(), + BlockKind::PurpleBed => self.purple_bed_to_properties_map(), + BlockKind::BlueBed => self.blue_bed_to_properties_map(), + BlockKind::BrownBed => self.brown_bed_to_properties_map(), + BlockKind::GreenBed => self.green_bed_to_properties_map(), + BlockKind::RedBed => self.red_bed_to_properties_map(), + BlockKind::BlackBed => self.black_bed_to_properties_map(), + BlockKind::PoweredRail => self.powered_rail_to_properties_map(), + BlockKind::DetectorRail => self.detector_rail_to_properties_map(), + BlockKind::StickyPiston => self.sticky_piston_to_properties_map(), + BlockKind::Cobweb => self.cobweb_to_properties_map(), + BlockKind::Grass => self.grass_to_properties_map(), + BlockKind::Fern => self.fern_to_properties_map(), + BlockKind::DeadBush => self.dead_bush_to_properties_map(), + BlockKind::Seagrass => self.seagrass_to_properties_map(), + BlockKind::TallSeagrass => self.tall_seagrass_to_properties_map(), + BlockKind::Piston => self.piston_to_properties_map(), + BlockKind::PistonHead => self.piston_head_to_properties_map(), + BlockKind::WhiteWool => self.white_wool_to_properties_map(), + BlockKind::OrangeWool => self.orange_wool_to_properties_map(), + BlockKind::MagentaWool => self.magenta_wool_to_properties_map(), + BlockKind::LightBlueWool => self.light_blue_wool_to_properties_map(), + BlockKind::YellowWool => self.yellow_wool_to_properties_map(), + BlockKind::LimeWool => self.lime_wool_to_properties_map(), + BlockKind::PinkWool => self.pink_wool_to_properties_map(), + BlockKind::GrayWool => self.gray_wool_to_properties_map(), + BlockKind::LightGrayWool => self.light_gray_wool_to_properties_map(), + BlockKind::CyanWool => self.cyan_wool_to_properties_map(), + BlockKind::PurpleWool => self.purple_wool_to_properties_map(), + BlockKind::BlueWool => self.blue_wool_to_properties_map(), + BlockKind::BrownWool => self.brown_wool_to_properties_map(), + BlockKind::GreenWool => self.green_wool_to_properties_map(), + BlockKind::RedWool => self.red_wool_to_properties_map(), + BlockKind::BlackWool => self.black_wool_to_properties_map(), + BlockKind::MovingPiston => self.moving_piston_to_properties_map(), + BlockKind::Dandelion => self.dandelion_to_properties_map(), + BlockKind::Poppy => self.poppy_to_properties_map(), + BlockKind::BlueOrchid => self.blue_orchid_to_properties_map(), + BlockKind::Allium => self.allium_to_properties_map(), + BlockKind::AzureBluet => self.azure_bluet_to_properties_map(), + BlockKind::RedTulip => self.red_tulip_to_properties_map(), + BlockKind::OrangeTulip => self.orange_tulip_to_properties_map(), + BlockKind::WhiteTulip => self.white_tulip_to_properties_map(), + BlockKind::PinkTulip => self.pink_tulip_to_properties_map(), + BlockKind::OxeyeDaisy => self.oxeye_daisy_to_properties_map(), + BlockKind::Cornflower => self.cornflower_to_properties_map(), + BlockKind::WitherRose => self.wither_rose_to_properties_map(), + BlockKind::LilyOfTheValley => self.lily_of_the_valley_to_properties_map(), + BlockKind::BrownMushroom => self.brown_mushroom_to_properties_map(), + BlockKind::RedMushroom => self.red_mushroom_to_properties_map(), + BlockKind::GoldBlock => self.gold_block_to_properties_map(), + BlockKind::IronBlock => self.iron_block_to_properties_map(), + BlockKind::Bricks => self.bricks_to_properties_map(), + BlockKind::Tnt => self.tnt_to_properties_map(), + BlockKind::Bookshelf => self.bookshelf_to_properties_map(), + BlockKind::MossyCobblestone => self.mossy_cobblestone_to_properties_map(), + BlockKind::Obsidian => self.obsidian_to_properties_map(), + BlockKind::Torch => self.torch_to_properties_map(), + BlockKind::WallTorch => self.wall_torch_to_properties_map(), + BlockKind::Fire => self.fire_to_properties_map(), + BlockKind::SoulFire => self.soul_fire_to_properties_map(), + BlockKind::Spawner => self.spawner_to_properties_map(), + BlockKind::OakStairs => self.oak_stairs_to_properties_map(), + BlockKind::Chest => self.chest_to_properties_map(), + BlockKind::RedstoneWire => self.redstone_wire_to_properties_map(), + BlockKind::DiamondOre => self.diamond_ore_to_properties_map(), + BlockKind::DeepslateDiamondOre => self.deepslate_diamond_ore_to_properties_map(), + BlockKind::DiamondBlock => self.diamond_block_to_properties_map(), + BlockKind::CraftingTable => self.crafting_table_to_properties_map(), + BlockKind::Wheat => self.wheat_to_properties_map(), + BlockKind::Farmland => self.farmland_to_properties_map(), + BlockKind::Furnace => self.furnace_to_properties_map(), + BlockKind::OakSign => self.oak_sign_to_properties_map(), + BlockKind::SpruceSign => self.spruce_sign_to_properties_map(), + BlockKind::BirchSign => self.birch_sign_to_properties_map(), + BlockKind::AcaciaSign => self.acacia_sign_to_properties_map(), + BlockKind::JungleSign => self.jungle_sign_to_properties_map(), + BlockKind::DarkOakSign => self.dark_oak_sign_to_properties_map(), + BlockKind::OakDoor => self.oak_door_to_properties_map(), + BlockKind::Ladder => self.ladder_to_properties_map(), + BlockKind::Rail => self.rail_to_properties_map(), + BlockKind::CobblestoneStairs => self.cobblestone_stairs_to_properties_map(), + BlockKind::OakWallSign => self.oak_wall_sign_to_properties_map(), + BlockKind::SpruceWallSign => self.spruce_wall_sign_to_properties_map(), + BlockKind::BirchWallSign => self.birch_wall_sign_to_properties_map(), + BlockKind::AcaciaWallSign => self.acacia_wall_sign_to_properties_map(), + BlockKind::JungleWallSign => self.jungle_wall_sign_to_properties_map(), + BlockKind::DarkOakWallSign => self.dark_oak_wall_sign_to_properties_map(), + BlockKind::Lever => self.lever_to_properties_map(), + BlockKind::StonePressurePlate => self.stone_pressure_plate_to_properties_map(), + BlockKind::IronDoor => self.iron_door_to_properties_map(), + BlockKind::OakPressurePlate => self.oak_pressure_plate_to_properties_map(), + BlockKind::SprucePressurePlate => self.spruce_pressure_plate_to_properties_map(), + BlockKind::BirchPressurePlate => self.birch_pressure_plate_to_properties_map(), + BlockKind::JunglePressurePlate => self.jungle_pressure_plate_to_properties_map(), + BlockKind::AcaciaPressurePlate => self.acacia_pressure_plate_to_properties_map(), + BlockKind::DarkOakPressurePlate => self.dark_oak_pressure_plate_to_properties_map(), + BlockKind::RedstoneOre => self.redstone_ore_to_properties_map(), + BlockKind::DeepslateRedstoneOre => self.deepslate_redstone_ore_to_properties_map(), + BlockKind::RedstoneTorch => self.redstone_torch_to_properties_map(), + BlockKind::RedstoneWallTorch => self.redstone_wall_torch_to_properties_map(), + BlockKind::StoneButton => self.stone_button_to_properties_map(), + BlockKind::Snow => self.snow_to_properties_map(), + BlockKind::Ice => self.ice_to_properties_map(), + BlockKind::SnowBlock => self.snow_block_to_properties_map(), + BlockKind::Cactus => self.cactus_to_properties_map(), + BlockKind::Clay => self.clay_to_properties_map(), + BlockKind::SugarCane => self.sugar_cane_to_properties_map(), + BlockKind::Jukebox => self.jukebox_to_properties_map(), + BlockKind::OakFence => self.oak_fence_to_properties_map(), + BlockKind::Pumpkin => self.pumpkin_to_properties_map(), + BlockKind::Netherrack => self.netherrack_to_properties_map(), + BlockKind::SoulSand => self.soul_sand_to_properties_map(), + BlockKind::SoulSoil => self.soul_soil_to_properties_map(), + BlockKind::Basalt => self.basalt_to_properties_map(), + BlockKind::PolishedBasalt => self.polished_basalt_to_properties_map(), + BlockKind::SoulTorch => self.soul_torch_to_properties_map(), + BlockKind::SoulWallTorch => self.soul_wall_torch_to_properties_map(), + BlockKind::Glowstone => self.glowstone_to_properties_map(), + BlockKind::NetherPortal => self.nether_portal_to_properties_map(), + BlockKind::CarvedPumpkin => self.carved_pumpkin_to_properties_map(), + BlockKind::JackOLantern => self.jack_o_lantern_to_properties_map(), + BlockKind::Cake => self.cake_to_properties_map(), + BlockKind::Repeater => self.repeater_to_properties_map(), + BlockKind::WhiteStainedGlass => self.white_stained_glass_to_properties_map(), + BlockKind::OrangeStainedGlass => self.orange_stained_glass_to_properties_map(), + BlockKind::MagentaStainedGlass => self.magenta_stained_glass_to_properties_map(), + BlockKind::LightBlueStainedGlass => self.light_blue_stained_glass_to_properties_map(), + BlockKind::YellowStainedGlass => self.yellow_stained_glass_to_properties_map(), + BlockKind::LimeStainedGlass => self.lime_stained_glass_to_properties_map(), + BlockKind::PinkStainedGlass => self.pink_stained_glass_to_properties_map(), + BlockKind::GrayStainedGlass => self.gray_stained_glass_to_properties_map(), + BlockKind::LightGrayStainedGlass => self.light_gray_stained_glass_to_properties_map(), + BlockKind::CyanStainedGlass => self.cyan_stained_glass_to_properties_map(), + BlockKind::PurpleStainedGlass => self.purple_stained_glass_to_properties_map(), + BlockKind::BlueStainedGlass => self.blue_stained_glass_to_properties_map(), + BlockKind::BrownStainedGlass => self.brown_stained_glass_to_properties_map(), + BlockKind::GreenStainedGlass => self.green_stained_glass_to_properties_map(), + BlockKind::RedStainedGlass => self.red_stained_glass_to_properties_map(), + BlockKind::BlackStainedGlass => self.black_stained_glass_to_properties_map(), + BlockKind::OakTrapdoor => self.oak_trapdoor_to_properties_map(), + BlockKind::SpruceTrapdoor => self.spruce_trapdoor_to_properties_map(), + BlockKind::BirchTrapdoor => self.birch_trapdoor_to_properties_map(), + BlockKind::JungleTrapdoor => self.jungle_trapdoor_to_properties_map(), + BlockKind::AcaciaTrapdoor => self.acacia_trapdoor_to_properties_map(), + BlockKind::DarkOakTrapdoor => self.dark_oak_trapdoor_to_properties_map(), + BlockKind::StoneBricks => self.stone_bricks_to_properties_map(), + BlockKind::MossyStoneBricks => self.mossy_stone_bricks_to_properties_map(), + BlockKind::CrackedStoneBricks => self.cracked_stone_bricks_to_properties_map(), + BlockKind::ChiseledStoneBricks => self.chiseled_stone_bricks_to_properties_map(), + BlockKind::InfestedStone => self.infested_stone_to_properties_map(), + BlockKind::InfestedCobblestone => self.infested_cobblestone_to_properties_map(), + BlockKind::InfestedStoneBricks => self.infested_stone_bricks_to_properties_map(), + BlockKind::InfestedMossyStoneBricks => { + self.infested_mossy_stone_bricks_to_properties_map() + } + BlockKind::InfestedCrackedStoneBricks => { + self.infested_cracked_stone_bricks_to_properties_map() + } + BlockKind::InfestedChiseledStoneBricks => { + self.infested_chiseled_stone_bricks_to_properties_map() + } + BlockKind::BrownMushroomBlock => self.brown_mushroom_block_to_properties_map(), + BlockKind::RedMushroomBlock => self.red_mushroom_block_to_properties_map(), + BlockKind::MushroomStem => self.mushroom_stem_to_properties_map(), + BlockKind::IronBars => self.iron_bars_to_properties_map(), + BlockKind::Chain => self.chain_to_properties_map(), + BlockKind::GlassPane => self.glass_pane_to_properties_map(), + BlockKind::Melon => self.melon_to_properties_map(), + BlockKind::AttachedPumpkinStem => self.attached_pumpkin_stem_to_properties_map(), + BlockKind::AttachedMelonStem => self.attached_melon_stem_to_properties_map(), + BlockKind::PumpkinStem => self.pumpkin_stem_to_properties_map(), + BlockKind::MelonStem => self.melon_stem_to_properties_map(), + BlockKind::Vine => self.vine_to_properties_map(), + BlockKind::GlowLichen => self.glow_lichen_to_properties_map(), + BlockKind::OakFenceGate => self.oak_fence_gate_to_properties_map(), + BlockKind::BrickStairs => self.brick_stairs_to_properties_map(), + BlockKind::StoneBrickStairs => self.stone_brick_stairs_to_properties_map(), + BlockKind::Mycelium => self.mycelium_to_properties_map(), + BlockKind::LilyPad => self.lily_pad_to_properties_map(), + BlockKind::NetherBricks => self.nether_bricks_to_properties_map(), + BlockKind::NetherBrickFence => self.nether_brick_fence_to_properties_map(), + BlockKind::NetherBrickStairs => self.nether_brick_stairs_to_properties_map(), + BlockKind::NetherWart => self.nether_wart_to_properties_map(), + BlockKind::EnchantingTable => self.enchanting_table_to_properties_map(), + BlockKind::BrewingStand => self.brewing_stand_to_properties_map(), + BlockKind::Cauldron => self.cauldron_to_properties_map(), + BlockKind::WaterCauldron => self.water_cauldron_to_properties_map(), + BlockKind::LavaCauldron => self.lava_cauldron_to_properties_map(), + BlockKind::PowderSnowCauldron => self.powder_snow_cauldron_to_properties_map(), + BlockKind::EndPortal => self.end_portal_to_properties_map(), + BlockKind::EndPortalFrame => self.end_portal_frame_to_properties_map(), + BlockKind::EndStone => self.end_stone_to_properties_map(), + BlockKind::DragonEgg => self.dragon_egg_to_properties_map(), + BlockKind::RedstoneLamp => self.redstone_lamp_to_properties_map(), + BlockKind::Cocoa => self.cocoa_to_properties_map(), + BlockKind::SandstoneStairs => self.sandstone_stairs_to_properties_map(), + BlockKind::EmeraldOre => self.emerald_ore_to_properties_map(), + BlockKind::DeepslateEmeraldOre => self.deepslate_emerald_ore_to_properties_map(), + BlockKind::EnderChest => self.ender_chest_to_properties_map(), + BlockKind::TripwireHook => self.tripwire_hook_to_properties_map(), + BlockKind::Tripwire => self.tripwire_to_properties_map(), + BlockKind::EmeraldBlock => self.emerald_block_to_properties_map(), + BlockKind::SpruceStairs => self.spruce_stairs_to_properties_map(), + BlockKind::BirchStairs => self.birch_stairs_to_properties_map(), + BlockKind::JungleStairs => self.jungle_stairs_to_properties_map(), + BlockKind::CommandBlock => self.command_block_to_properties_map(), + BlockKind::Beacon => self.beacon_to_properties_map(), + BlockKind::CobblestoneWall => self.cobblestone_wall_to_properties_map(), + BlockKind::MossyCobblestoneWall => self.mossy_cobblestone_wall_to_properties_map(), + BlockKind::FlowerPot => self.flower_pot_to_properties_map(), + BlockKind::PottedOakSapling => self.potted_oak_sapling_to_properties_map(), + BlockKind::PottedSpruceSapling => self.potted_spruce_sapling_to_properties_map(), + BlockKind::PottedBirchSapling => self.potted_birch_sapling_to_properties_map(), + BlockKind::PottedJungleSapling => self.potted_jungle_sapling_to_properties_map(), + BlockKind::PottedAcaciaSapling => self.potted_acacia_sapling_to_properties_map(), + BlockKind::PottedDarkOakSapling => self.potted_dark_oak_sapling_to_properties_map(), + BlockKind::PottedFern => self.potted_fern_to_properties_map(), + BlockKind::PottedDandelion => self.potted_dandelion_to_properties_map(), + BlockKind::PottedPoppy => self.potted_poppy_to_properties_map(), + BlockKind::PottedBlueOrchid => self.potted_blue_orchid_to_properties_map(), + BlockKind::PottedAllium => self.potted_allium_to_properties_map(), + BlockKind::PottedAzureBluet => self.potted_azure_bluet_to_properties_map(), + BlockKind::PottedRedTulip => self.potted_red_tulip_to_properties_map(), + BlockKind::PottedOrangeTulip => self.potted_orange_tulip_to_properties_map(), + BlockKind::PottedWhiteTulip => self.potted_white_tulip_to_properties_map(), + BlockKind::PottedPinkTulip => self.potted_pink_tulip_to_properties_map(), + BlockKind::PottedOxeyeDaisy => self.potted_oxeye_daisy_to_properties_map(), + BlockKind::PottedCornflower => self.potted_cornflower_to_properties_map(), + BlockKind::PottedLilyOfTheValley => self.potted_lily_of_the_valley_to_properties_map(), + BlockKind::PottedWitherRose => self.potted_wither_rose_to_properties_map(), + BlockKind::PottedRedMushroom => self.potted_red_mushroom_to_properties_map(), + BlockKind::PottedBrownMushroom => self.potted_brown_mushroom_to_properties_map(), + BlockKind::PottedDeadBush => self.potted_dead_bush_to_properties_map(), + BlockKind::PottedCactus => self.potted_cactus_to_properties_map(), + BlockKind::Carrots => self.carrots_to_properties_map(), + BlockKind::Potatoes => self.potatoes_to_properties_map(), + BlockKind::OakButton => self.oak_button_to_properties_map(), + BlockKind::SpruceButton => self.spruce_button_to_properties_map(), + BlockKind::BirchButton => self.birch_button_to_properties_map(), + BlockKind::JungleButton => self.jungle_button_to_properties_map(), + BlockKind::AcaciaButton => self.acacia_button_to_properties_map(), + BlockKind::DarkOakButton => self.dark_oak_button_to_properties_map(), + BlockKind::SkeletonSkull => self.skeleton_skull_to_properties_map(), + BlockKind::SkeletonWallSkull => self.skeleton_wall_skull_to_properties_map(), + BlockKind::WitherSkeletonSkull => self.wither_skeleton_skull_to_properties_map(), + BlockKind::WitherSkeletonWallSkull => { + self.wither_skeleton_wall_skull_to_properties_map() + } + BlockKind::ZombieHead => self.zombie_head_to_properties_map(), + BlockKind::ZombieWallHead => self.zombie_wall_head_to_properties_map(), + BlockKind::PlayerHead => self.player_head_to_properties_map(), + BlockKind::PlayerWallHead => self.player_wall_head_to_properties_map(), + BlockKind::CreeperHead => self.creeper_head_to_properties_map(), + BlockKind::CreeperWallHead => self.creeper_wall_head_to_properties_map(), + BlockKind::DragonHead => self.dragon_head_to_properties_map(), + BlockKind::DragonWallHead => self.dragon_wall_head_to_properties_map(), + BlockKind::Anvil => self.anvil_to_properties_map(), + BlockKind::ChippedAnvil => self.chipped_anvil_to_properties_map(), + BlockKind::DamagedAnvil => self.damaged_anvil_to_properties_map(), + BlockKind::TrappedChest => self.trapped_chest_to_properties_map(), + BlockKind::LightWeightedPressurePlate => { + self.light_weighted_pressure_plate_to_properties_map() + } + BlockKind::HeavyWeightedPressurePlate => { + self.heavy_weighted_pressure_plate_to_properties_map() + } + BlockKind::Comparator => self.comparator_to_properties_map(), + BlockKind::DaylightDetector => self.daylight_detector_to_properties_map(), + BlockKind::RedstoneBlock => self.redstone_block_to_properties_map(), + BlockKind::NetherQuartzOre => self.nether_quartz_ore_to_properties_map(), + BlockKind::Hopper => self.hopper_to_properties_map(), + BlockKind::QuartzBlock => self.quartz_block_to_properties_map(), + BlockKind::ChiseledQuartzBlock => self.chiseled_quartz_block_to_properties_map(), + BlockKind::QuartzPillar => self.quartz_pillar_to_properties_map(), + BlockKind::QuartzStairs => self.quartz_stairs_to_properties_map(), + BlockKind::ActivatorRail => self.activator_rail_to_properties_map(), + BlockKind::Dropper => self.dropper_to_properties_map(), + BlockKind::WhiteTerracotta => self.white_terracotta_to_properties_map(), + BlockKind::OrangeTerracotta => self.orange_terracotta_to_properties_map(), + BlockKind::MagentaTerracotta => self.magenta_terracotta_to_properties_map(), + BlockKind::LightBlueTerracotta => self.light_blue_terracotta_to_properties_map(), + BlockKind::YellowTerracotta => self.yellow_terracotta_to_properties_map(), + BlockKind::LimeTerracotta => self.lime_terracotta_to_properties_map(), + BlockKind::PinkTerracotta => self.pink_terracotta_to_properties_map(), + BlockKind::GrayTerracotta => self.gray_terracotta_to_properties_map(), + BlockKind::LightGrayTerracotta => self.light_gray_terracotta_to_properties_map(), + BlockKind::CyanTerracotta => self.cyan_terracotta_to_properties_map(), + BlockKind::PurpleTerracotta => self.purple_terracotta_to_properties_map(), + BlockKind::BlueTerracotta => self.blue_terracotta_to_properties_map(), + BlockKind::BrownTerracotta => self.brown_terracotta_to_properties_map(), + BlockKind::GreenTerracotta => self.green_terracotta_to_properties_map(), + BlockKind::RedTerracotta => self.red_terracotta_to_properties_map(), + BlockKind::BlackTerracotta => self.black_terracotta_to_properties_map(), + BlockKind::WhiteStainedGlassPane => self.white_stained_glass_pane_to_properties_map(), + BlockKind::OrangeStainedGlassPane => self.orange_stained_glass_pane_to_properties_map(), + BlockKind::MagentaStainedGlassPane => { + self.magenta_stained_glass_pane_to_properties_map() + } + BlockKind::LightBlueStainedGlassPane => { + self.light_blue_stained_glass_pane_to_properties_map() + } + BlockKind::YellowStainedGlassPane => self.yellow_stained_glass_pane_to_properties_map(), + BlockKind::LimeStainedGlassPane => self.lime_stained_glass_pane_to_properties_map(), + BlockKind::PinkStainedGlassPane => self.pink_stained_glass_pane_to_properties_map(), + BlockKind::GrayStainedGlassPane => self.gray_stained_glass_pane_to_properties_map(), + BlockKind::LightGrayStainedGlassPane => { + self.light_gray_stained_glass_pane_to_properties_map() + } + BlockKind::CyanStainedGlassPane => self.cyan_stained_glass_pane_to_properties_map(), + BlockKind::PurpleStainedGlassPane => self.purple_stained_glass_pane_to_properties_map(), + BlockKind::BlueStainedGlassPane => self.blue_stained_glass_pane_to_properties_map(), + BlockKind::BrownStainedGlassPane => self.brown_stained_glass_pane_to_properties_map(), + BlockKind::GreenStainedGlassPane => self.green_stained_glass_pane_to_properties_map(), + BlockKind::RedStainedGlassPane => self.red_stained_glass_pane_to_properties_map(), + BlockKind::BlackStainedGlassPane => self.black_stained_glass_pane_to_properties_map(), + BlockKind::AcaciaStairs => self.acacia_stairs_to_properties_map(), + BlockKind::DarkOakStairs => self.dark_oak_stairs_to_properties_map(), + BlockKind::SlimeBlock => self.slime_block_to_properties_map(), + BlockKind::Barrier => self.barrier_to_properties_map(), + BlockKind::Light => self.light_to_properties_map(), + BlockKind::IronTrapdoor => self.iron_trapdoor_to_properties_map(), + BlockKind::Prismarine => self.prismarine_to_properties_map(), + BlockKind::PrismarineBricks => self.prismarine_bricks_to_properties_map(), + BlockKind::DarkPrismarine => self.dark_prismarine_to_properties_map(), + BlockKind::PrismarineStairs => self.prismarine_stairs_to_properties_map(), + BlockKind::PrismarineBrickStairs => self.prismarine_brick_stairs_to_properties_map(), + BlockKind::DarkPrismarineStairs => self.dark_prismarine_stairs_to_properties_map(), + BlockKind::PrismarineSlab => self.prismarine_slab_to_properties_map(), + BlockKind::PrismarineBrickSlab => self.prismarine_brick_slab_to_properties_map(), + BlockKind::DarkPrismarineSlab => self.dark_prismarine_slab_to_properties_map(), + BlockKind::SeaLantern => self.sea_lantern_to_properties_map(), + BlockKind::HayBlock => self.hay_block_to_properties_map(), + BlockKind::WhiteCarpet => self.white_carpet_to_properties_map(), + BlockKind::OrangeCarpet => self.orange_carpet_to_properties_map(), + BlockKind::MagentaCarpet => self.magenta_carpet_to_properties_map(), + BlockKind::LightBlueCarpet => self.light_blue_carpet_to_properties_map(), + BlockKind::YellowCarpet => self.yellow_carpet_to_properties_map(), + BlockKind::LimeCarpet => self.lime_carpet_to_properties_map(), + BlockKind::PinkCarpet => self.pink_carpet_to_properties_map(), + BlockKind::GrayCarpet => self.gray_carpet_to_properties_map(), + BlockKind::LightGrayCarpet => self.light_gray_carpet_to_properties_map(), + BlockKind::CyanCarpet => self.cyan_carpet_to_properties_map(), + BlockKind::PurpleCarpet => self.purple_carpet_to_properties_map(), + BlockKind::BlueCarpet => self.blue_carpet_to_properties_map(), + BlockKind::BrownCarpet => self.brown_carpet_to_properties_map(), + BlockKind::GreenCarpet => self.green_carpet_to_properties_map(), + BlockKind::RedCarpet => self.red_carpet_to_properties_map(), + BlockKind::BlackCarpet => self.black_carpet_to_properties_map(), + BlockKind::Terracotta => self.terracotta_to_properties_map(), + BlockKind::CoalBlock => self.coal_block_to_properties_map(), + BlockKind::PackedIce => self.packed_ice_to_properties_map(), + BlockKind::Sunflower => self.sunflower_to_properties_map(), + BlockKind::Lilac => self.lilac_to_properties_map(), + BlockKind::RoseBush => self.rose_bush_to_properties_map(), + BlockKind::Peony => self.peony_to_properties_map(), + BlockKind::TallGrass => self.tall_grass_to_properties_map(), + BlockKind::LargeFern => self.large_fern_to_properties_map(), + BlockKind::WhiteBanner => self.white_banner_to_properties_map(), + BlockKind::OrangeBanner => self.orange_banner_to_properties_map(), + BlockKind::MagentaBanner => self.magenta_banner_to_properties_map(), + BlockKind::LightBlueBanner => self.light_blue_banner_to_properties_map(), + BlockKind::YellowBanner => self.yellow_banner_to_properties_map(), + BlockKind::LimeBanner => self.lime_banner_to_properties_map(), + BlockKind::PinkBanner => self.pink_banner_to_properties_map(), + BlockKind::GrayBanner => self.gray_banner_to_properties_map(), + BlockKind::LightGrayBanner => self.light_gray_banner_to_properties_map(), + BlockKind::CyanBanner => self.cyan_banner_to_properties_map(), + BlockKind::PurpleBanner => self.purple_banner_to_properties_map(), + BlockKind::BlueBanner => self.blue_banner_to_properties_map(), + BlockKind::BrownBanner => self.brown_banner_to_properties_map(), + BlockKind::GreenBanner => self.green_banner_to_properties_map(), + BlockKind::RedBanner => self.red_banner_to_properties_map(), + BlockKind::BlackBanner => self.black_banner_to_properties_map(), + BlockKind::WhiteWallBanner => self.white_wall_banner_to_properties_map(), + BlockKind::OrangeWallBanner => self.orange_wall_banner_to_properties_map(), + BlockKind::MagentaWallBanner => self.magenta_wall_banner_to_properties_map(), + BlockKind::LightBlueWallBanner => self.light_blue_wall_banner_to_properties_map(), + BlockKind::YellowWallBanner => self.yellow_wall_banner_to_properties_map(), + BlockKind::LimeWallBanner => self.lime_wall_banner_to_properties_map(), + BlockKind::PinkWallBanner => self.pink_wall_banner_to_properties_map(), + BlockKind::GrayWallBanner => self.gray_wall_banner_to_properties_map(), + BlockKind::LightGrayWallBanner => self.light_gray_wall_banner_to_properties_map(), + BlockKind::CyanWallBanner => self.cyan_wall_banner_to_properties_map(), + BlockKind::PurpleWallBanner => self.purple_wall_banner_to_properties_map(), + BlockKind::BlueWallBanner => self.blue_wall_banner_to_properties_map(), + BlockKind::BrownWallBanner => self.brown_wall_banner_to_properties_map(), + BlockKind::GreenWallBanner => self.green_wall_banner_to_properties_map(), + BlockKind::RedWallBanner => self.red_wall_banner_to_properties_map(), + BlockKind::BlackWallBanner => self.black_wall_banner_to_properties_map(), + BlockKind::RedSandstone => self.red_sandstone_to_properties_map(), + BlockKind::ChiseledRedSandstone => self.chiseled_red_sandstone_to_properties_map(), + BlockKind::CutRedSandstone => self.cut_red_sandstone_to_properties_map(), + BlockKind::RedSandstoneStairs => self.red_sandstone_stairs_to_properties_map(), + BlockKind::OakSlab => self.oak_slab_to_properties_map(), + BlockKind::SpruceSlab => self.spruce_slab_to_properties_map(), + BlockKind::BirchSlab => self.birch_slab_to_properties_map(), + BlockKind::JungleSlab => self.jungle_slab_to_properties_map(), + BlockKind::AcaciaSlab => self.acacia_slab_to_properties_map(), + BlockKind::DarkOakSlab => self.dark_oak_slab_to_properties_map(), + BlockKind::StoneSlab => self.stone_slab_to_properties_map(), + BlockKind::SmoothStoneSlab => self.smooth_stone_slab_to_properties_map(), + BlockKind::SandstoneSlab => self.sandstone_slab_to_properties_map(), + BlockKind::CutSandstoneSlab => self.cut_sandstone_slab_to_properties_map(), + BlockKind::PetrifiedOakSlab => self.petrified_oak_slab_to_properties_map(), + BlockKind::CobblestoneSlab => self.cobblestone_slab_to_properties_map(), + BlockKind::BrickSlab => self.brick_slab_to_properties_map(), + BlockKind::StoneBrickSlab => self.stone_brick_slab_to_properties_map(), + BlockKind::NetherBrickSlab => self.nether_brick_slab_to_properties_map(), + BlockKind::QuartzSlab => self.quartz_slab_to_properties_map(), + BlockKind::RedSandstoneSlab => self.red_sandstone_slab_to_properties_map(), + BlockKind::CutRedSandstoneSlab => self.cut_red_sandstone_slab_to_properties_map(), + BlockKind::PurpurSlab => self.purpur_slab_to_properties_map(), + BlockKind::SmoothStone => self.smooth_stone_to_properties_map(), + BlockKind::SmoothSandstone => self.smooth_sandstone_to_properties_map(), + BlockKind::SmoothQuartz => self.smooth_quartz_to_properties_map(), + BlockKind::SmoothRedSandstone => self.smooth_red_sandstone_to_properties_map(), + BlockKind::SpruceFenceGate => self.spruce_fence_gate_to_properties_map(), + BlockKind::BirchFenceGate => self.birch_fence_gate_to_properties_map(), + BlockKind::JungleFenceGate => self.jungle_fence_gate_to_properties_map(), + BlockKind::AcaciaFenceGate => self.acacia_fence_gate_to_properties_map(), + BlockKind::DarkOakFenceGate => self.dark_oak_fence_gate_to_properties_map(), + BlockKind::SpruceFence => self.spruce_fence_to_properties_map(), + BlockKind::BirchFence => self.birch_fence_to_properties_map(), + BlockKind::JungleFence => self.jungle_fence_to_properties_map(), + BlockKind::AcaciaFence => self.acacia_fence_to_properties_map(), + BlockKind::DarkOakFence => self.dark_oak_fence_to_properties_map(), + BlockKind::SpruceDoor => self.spruce_door_to_properties_map(), + BlockKind::BirchDoor => self.birch_door_to_properties_map(), + BlockKind::JungleDoor => self.jungle_door_to_properties_map(), + BlockKind::AcaciaDoor => self.acacia_door_to_properties_map(), + BlockKind::DarkOakDoor => self.dark_oak_door_to_properties_map(), + BlockKind::EndRod => self.end_rod_to_properties_map(), + BlockKind::ChorusPlant => self.chorus_plant_to_properties_map(), + BlockKind::ChorusFlower => self.chorus_flower_to_properties_map(), + BlockKind::PurpurBlock => self.purpur_block_to_properties_map(), + BlockKind::PurpurPillar => self.purpur_pillar_to_properties_map(), + BlockKind::PurpurStairs => self.purpur_stairs_to_properties_map(), + BlockKind::EndStoneBricks => self.end_stone_bricks_to_properties_map(), + BlockKind::Beetroots => self.beetroots_to_properties_map(), + BlockKind::DirtPath => self.dirt_path_to_properties_map(), + BlockKind::EndGateway => self.end_gateway_to_properties_map(), + BlockKind::RepeatingCommandBlock => self.repeating_command_block_to_properties_map(), + BlockKind::ChainCommandBlock => self.chain_command_block_to_properties_map(), + BlockKind::FrostedIce => self.frosted_ice_to_properties_map(), + BlockKind::MagmaBlock => self.magma_block_to_properties_map(), + BlockKind::NetherWartBlock => self.nether_wart_block_to_properties_map(), + BlockKind::RedNetherBricks => self.red_nether_bricks_to_properties_map(), + BlockKind::BoneBlock => self.bone_block_to_properties_map(), + BlockKind::StructureVoid => self.structure_void_to_properties_map(), + BlockKind::Observer => self.observer_to_properties_map(), + BlockKind::ShulkerBox => self.shulker_box_to_properties_map(), + BlockKind::WhiteShulkerBox => self.white_shulker_box_to_properties_map(), + BlockKind::OrangeShulkerBox => self.orange_shulker_box_to_properties_map(), + BlockKind::MagentaShulkerBox => self.magenta_shulker_box_to_properties_map(), + BlockKind::LightBlueShulkerBox => self.light_blue_shulker_box_to_properties_map(), + BlockKind::YellowShulkerBox => self.yellow_shulker_box_to_properties_map(), + BlockKind::LimeShulkerBox => self.lime_shulker_box_to_properties_map(), + BlockKind::PinkShulkerBox => self.pink_shulker_box_to_properties_map(), + BlockKind::GrayShulkerBox => self.gray_shulker_box_to_properties_map(), + BlockKind::LightGrayShulkerBox => self.light_gray_shulker_box_to_properties_map(), + BlockKind::CyanShulkerBox => self.cyan_shulker_box_to_properties_map(), + BlockKind::PurpleShulkerBox => self.purple_shulker_box_to_properties_map(), + BlockKind::BlueShulkerBox => self.blue_shulker_box_to_properties_map(), + BlockKind::BrownShulkerBox => self.brown_shulker_box_to_properties_map(), + BlockKind::GreenShulkerBox => self.green_shulker_box_to_properties_map(), + BlockKind::RedShulkerBox => self.red_shulker_box_to_properties_map(), + BlockKind::BlackShulkerBox => self.black_shulker_box_to_properties_map(), + BlockKind::WhiteGlazedTerracotta => self.white_glazed_terracotta_to_properties_map(), + BlockKind::OrangeGlazedTerracotta => self.orange_glazed_terracotta_to_properties_map(), + BlockKind::MagentaGlazedTerracotta => { + self.magenta_glazed_terracotta_to_properties_map() + } + BlockKind::LightBlueGlazedTerracotta => { + self.light_blue_glazed_terracotta_to_properties_map() + } + BlockKind::YellowGlazedTerracotta => self.yellow_glazed_terracotta_to_properties_map(), + BlockKind::LimeGlazedTerracotta => self.lime_glazed_terracotta_to_properties_map(), + BlockKind::PinkGlazedTerracotta => self.pink_glazed_terracotta_to_properties_map(), + BlockKind::GrayGlazedTerracotta => self.gray_glazed_terracotta_to_properties_map(), + BlockKind::LightGrayGlazedTerracotta => { + self.light_gray_glazed_terracotta_to_properties_map() + } + BlockKind::CyanGlazedTerracotta => self.cyan_glazed_terracotta_to_properties_map(), + BlockKind::PurpleGlazedTerracotta => self.purple_glazed_terracotta_to_properties_map(), + BlockKind::BlueGlazedTerracotta => self.blue_glazed_terracotta_to_properties_map(), + BlockKind::BrownGlazedTerracotta => self.brown_glazed_terracotta_to_properties_map(), + BlockKind::GreenGlazedTerracotta => self.green_glazed_terracotta_to_properties_map(), + BlockKind::RedGlazedTerracotta => self.red_glazed_terracotta_to_properties_map(), + BlockKind::BlackGlazedTerracotta => self.black_glazed_terracotta_to_properties_map(), + BlockKind::WhiteConcrete => self.white_concrete_to_properties_map(), + BlockKind::OrangeConcrete => self.orange_concrete_to_properties_map(), + BlockKind::MagentaConcrete => self.magenta_concrete_to_properties_map(), + BlockKind::LightBlueConcrete => self.light_blue_concrete_to_properties_map(), + BlockKind::YellowConcrete => self.yellow_concrete_to_properties_map(), + BlockKind::LimeConcrete => self.lime_concrete_to_properties_map(), + BlockKind::PinkConcrete => self.pink_concrete_to_properties_map(), + BlockKind::GrayConcrete => self.gray_concrete_to_properties_map(), + BlockKind::LightGrayConcrete => self.light_gray_concrete_to_properties_map(), + BlockKind::CyanConcrete => self.cyan_concrete_to_properties_map(), + BlockKind::PurpleConcrete => self.purple_concrete_to_properties_map(), + BlockKind::BlueConcrete => self.blue_concrete_to_properties_map(), + BlockKind::BrownConcrete => self.brown_concrete_to_properties_map(), + BlockKind::GreenConcrete => self.green_concrete_to_properties_map(), + BlockKind::RedConcrete => self.red_concrete_to_properties_map(), + BlockKind::BlackConcrete => self.black_concrete_to_properties_map(), + BlockKind::WhiteConcretePowder => self.white_concrete_powder_to_properties_map(), + BlockKind::OrangeConcretePowder => self.orange_concrete_powder_to_properties_map(), + BlockKind::MagentaConcretePowder => self.magenta_concrete_powder_to_properties_map(), + BlockKind::LightBlueConcretePowder => { + self.light_blue_concrete_powder_to_properties_map() + } + BlockKind::YellowConcretePowder => self.yellow_concrete_powder_to_properties_map(), + BlockKind::LimeConcretePowder => self.lime_concrete_powder_to_properties_map(), + BlockKind::PinkConcretePowder => self.pink_concrete_powder_to_properties_map(), + BlockKind::GrayConcretePowder => self.gray_concrete_powder_to_properties_map(), + BlockKind::LightGrayConcretePowder => { + self.light_gray_concrete_powder_to_properties_map() + } + BlockKind::CyanConcretePowder => self.cyan_concrete_powder_to_properties_map(), + BlockKind::PurpleConcretePowder => self.purple_concrete_powder_to_properties_map(), + BlockKind::BlueConcretePowder => self.blue_concrete_powder_to_properties_map(), + BlockKind::BrownConcretePowder => self.brown_concrete_powder_to_properties_map(), + BlockKind::GreenConcretePowder => self.green_concrete_powder_to_properties_map(), + BlockKind::RedConcretePowder => self.red_concrete_powder_to_properties_map(), + BlockKind::BlackConcretePowder => self.black_concrete_powder_to_properties_map(), + BlockKind::Kelp => self.kelp_to_properties_map(), + BlockKind::KelpPlant => self.kelp_plant_to_properties_map(), + BlockKind::DriedKelpBlock => self.dried_kelp_block_to_properties_map(), + BlockKind::TurtleEgg => self.turtle_egg_to_properties_map(), + BlockKind::DeadTubeCoralBlock => self.dead_tube_coral_block_to_properties_map(), + BlockKind::DeadBrainCoralBlock => self.dead_brain_coral_block_to_properties_map(), + BlockKind::DeadBubbleCoralBlock => self.dead_bubble_coral_block_to_properties_map(), + BlockKind::DeadFireCoralBlock => self.dead_fire_coral_block_to_properties_map(), + BlockKind::DeadHornCoralBlock => self.dead_horn_coral_block_to_properties_map(), + BlockKind::TubeCoralBlock => self.tube_coral_block_to_properties_map(), + BlockKind::BrainCoralBlock => self.brain_coral_block_to_properties_map(), + BlockKind::BubbleCoralBlock => self.bubble_coral_block_to_properties_map(), + BlockKind::FireCoralBlock => self.fire_coral_block_to_properties_map(), + BlockKind::HornCoralBlock => self.horn_coral_block_to_properties_map(), + BlockKind::DeadTubeCoral => self.dead_tube_coral_to_properties_map(), + BlockKind::DeadBrainCoral => self.dead_brain_coral_to_properties_map(), + BlockKind::DeadBubbleCoral => self.dead_bubble_coral_to_properties_map(), + BlockKind::DeadFireCoral => self.dead_fire_coral_to_properties_map(), + BlockKind::DeadHornCoral => self.dead_horn_coral_to_properties_map(), + BlockKind::TubeCoral => self.tube_coral_to_properties_map(), + BlockKind::BrainCoral => self.brain_coral_to_properties_map(), + BlockKind::BubbleCoral => self.bubble_coral_to_properties_map(), + BlockKind::FireCoral => self.fire_coral_to_properties_map(), + BlockKind::HornCoral => self.horn_coral_to_properties_map(), + BlockKind::DeadTubeCoralFan => self.dead_tube_coral_fan_to_properties_map(), + BlockKind::DeadBrainCoralFan => self.dead_brain_coral_fan_to_properties_map(), + BlockKind::DeadBubbleCoralFan => self.dead_bubble_coral_fan_to_properties_map(), + BlockKind::DeadFireCoralFan => self.dead_fire_coral_fan_to_properties_map(), + BlockKind::DeadHornCoralFan => self.dead_horn_coral_fan_to_properties_map(), + BlockKind::TubeCoralFan => self.tube_coral_fan_to_properties_map(), + BlockKind::BrainCoralFan => self.brain_coral_fan_to_properties_map(), + BlockKind::BubbleCoralFan => self.bubble_coral_fan_to_properties_map(), + BlockKind::FireCoralFan => self.fire_coral_fan_to_properties_map(), + BlockKind::HornCoralFan => self.horn_coral_fan_to_properties_map(), + BlockKind::DeadTubeCoralWallFan => self.dead_tube_coral_wall_fan_to_properties_map(), + BlockKind::DeadBrainCoralWallFan => self.dead_brain_coral_wall_fan_to_properties_map(), + BlockKind::DeadBubbleCoralWallFan => { + self.dead_bubble_coral_wall_fan_to_properties_map() + } + BlockKind::DeadFireCoralWallFan => self.dead_fire_coral_wall_fan_to_properties_map(), + BlockKind::DeadHornCoralWallFan => self.dead_horn_coral_wall_fan_to_properties_map(), + BlockKind::TubeCoralWallFan => self.tube_coral_wall_fan_to_properties_map(), + BlockKind::BrainCoralWallFan => self.brain_coral_wall_fan_to_properties_map(), + BlockKind::BubbleCoralWallFan => self.bubble_coral_wall_fan_to_properties_map(), + BlockKind::FireCoralWallFan => self.fire_coral_wall_fan_to_properties_map(), + BlockKind::HornCoralWallFan => self.horn_coral_wall_fan_to_properties_map(), + BlockKind::SeaPickle => self.sea_pickle_to_properties_map(), + BlockKind::BlueIce => self.blue_ice_to_properties_map(), + BlockKind::Conduit => self.conduit_to_properties_map(), + BlockKind::BambooSapling => self.bamboo_sapling_to_properties_map(), + BlockKind::Bamboo => self.bamboo_to_properties_map(), + BlockKind::PottedBamboo => self.potted_bamboo_to_properties_map(), + BlockKind::VoidAir => self.void_air_to_properties_map(), + BlockKind::CaveAir => self.cave_air_to_properties_map(), + BlockKind::BubbleColumn => self.bubble_column_to_properties_map(), + BlockKind::PolishedGraniteStairs => self.polished_granite_stairs_to_properties_map(), + BlockKind::SmoothRedSandstoneStairs => { + self.smooth_red_sandstone_stairs_to_properties_map() + } + BlockKind::MossyStoneBrickStairs => self.mossy_stone_brick_stairs_to_properties_map(), + BlockKind::PolishedDioriteStairs => self.polished_diorite_stairs_to_properties_map(), + BlockKind::MossyCobblestoneStairs => self.mossy_cobblestone_stairs_to_properties_map(), + BlockKind::EndStoneBrickStairs => self.end_stone_brick_stairs_to_properties_map(), + BlockKind::StoneStairs => self.stone_stairs_to_properties_map(), + BlockKind::SmoothSandstoneStairs => self.smooth_sandstone_stairs_to_properties_map(), + BlockKind::SmoothQuartzStairs => self.smooth_quartz_stairs_to_properties_map(), + BlockKind::GraniteStairs => self.granite_stairs_to_properties_map(), + BlockKind::AndesiteStairs => self.andesite_stairs_to_properties_map(), + BlockKind::RedNetherBrickStairs => self.red_nether_brick_stairs_to_properties_map(), + BlockKind::PolishedAndesiteStairs => self.polished_andesite_stairs_to_properties_map(), + BlockKind::DioriteStairs => self.diorite_stairs_to_properties_map(), + BlockKind::PolishedGraniteSlab => self.polished_granite_slab_to_properties_map(), + BlockKind::SmoothRedSandstoneSlab => self.smooth_red_sandstone_slab_to_properties_map(), + BlockKind::MossyStoneBrickSlab => self.mossy_stone_brick_slab_to_properties_map(), + BlockKind::PolishedDioriteSlab => self.polished_diorite_slab_to_properties_map(), + BlockKind::MossyCobblestoneSlab => self.mossy_cobblestone_slab_to_properties_map(), + BlockKind::EndStoneBrickSlab => self.end_stone_brick_slab_to_properties_map(), + BlockKind::SmoothSandstoneSlab => self.smooth_sandstone_slab_to_properties_map(), + BlockKind::SmoothQuartzSlab => self.smooth_quartz_slab_to_properties_map(), + BlockKind::GraniteSlab => self.granite_slab_to_properties_map(), + BlockKind::AndesiteSlab => self.andesite_slab_to_properties_map(), + BlockKind::RedNetherBrickSlab => self.red_nether_brick_slab_to_properties_map(), + BlockKind::PolishedAndesiteSlab => self.polished_andesite_slab_to_properties_map(), + BlockKind::DioriteSlab => self.diorite_slab_to_properties_map(), + BlockKind::BrickWall => self.brick_wall_to_properties_map(), + BlockKind::PrismarineWall => self.prismarine_wall_to_properties_map(), + BlockKind::RedSandstoneWall => self.red_sandstone_wall_to_properties_map(), + BlockKind::MossyStoneBrickWall => self.mossy_stone_brick_wall_to_properties_map(), + BlockKind::GraniteWall => self.granite_wall_to_properties_map(), + BlockKind::StoneBrickWall => self.stone_brick_wall_to_properties_map(), + BlockKind::NetherBrickWall => self.nether_brick_wall_to_properties_map(), + BlockKind::AndesiteWall => self.andesite_wall_to_properties_map(), + BlockKind::RedNetherBrickWall => self.red_nether_brick_wall_to_properties_map(), + BlockKind::SandstoneWall => self.sandstone_wall_to_properties_map(), + BlockKind::EndStoneBrickWall => self.end_stone_brick_wall_to_properties_map(), + BlockKind::DioriteWall => self.diorite_wall_to_properties_map(), + BlockKind::Scaffolding => self.scaffolding_to_properties_map(), + BlockKind::Loom => self.loom_to_properties_map(), + BlockKind::Barrel => self.barrel_to_properties_map(), + BlockKind::Smoker => self.smoker_to_properties_map(), + BlockKind::BlastFurnace => self.blast_furnace_to_properties_map(), + BlockKind::CartographyTable => self.cartography_table_to_properties_map(), + BlockKind::FletchingTable => self.fletching_table_to_properties_map(), + BlockKind::Grindstone => self.grindstone_to_properties_map(), + BlockKind::Lectern => self.lectern_to_properties_map(), + BlockKind::SmithingTable => self.smithing_table_to_properties_map(), + BlockKind::Stonecutter => self.stonecutter_to_properties_map(), + BlockKind::Bell => self.bell_to_properties_map(), + BlockKind::Lantern => self.lantern_to_properties_map(), + BlockKind::SoulLantern => self.soul_lantern_to_properties_map(), + BlockKind::Campfire => self.campfire_to_properties_map(), + BlockKind::SoulCampfire => self.soul_campfire_to_properties_map(), + BlockKind::SweetBerryBush => self.sweet_berry_bush_to_properties_map(), + BlockKind::WarpedStem => self.warped_stem_to_properties_map(), + BlockKind::StrippedWarpedStem => self.stripped_warped_stem_to_properties_map(), + BlockKind::WarpedHyphae => self.warped_hyphae_to_properties_map(), + BlockKind::StrippedWarpedHyphae => self.stripped_warped_hyphae_to_properties_map(), + BlockKind::WarpedNylium => self.warped_nylium_to_properties_map(), + BlockKind::WarpedFungus => self.warped_fungus_to_properties_map(), + BlockKind::WarpedWartBlock => self.warped_wart_block_to_properties_map(), + BlockKind::WarpedRoots => self.warped_roots_to_properties_map(), + BlockKind::NetherSprouts => self.nether_sprouts_to_properties_map(), + BlockKind::CrimsonStem => self.crimson_stem_to_properties_map(), + BlockKind::StrippedCrimsonStem => self.stripped_crimson_stem_to_properties_map(), + BlockKind::CrimsonHyphae => self.crimson_hyphae_to_properties_map(), + BlockKind::StrippedCrimsonHyphae => self.stripped_crimson_hyphae_to_properties_map(), + BlockKind::CrimsonNylium => self.crimson_nylium_to_properties_map(), + BlockKind::CrimsonFungus => self.crimson_fungus_to_properties_map(), + BlockKind::Shroomlight => self.shroomlight_to_properties_map(), + BlockKind::WeepingVines => self.weeping_vines_to_properties_map(), + BlockKind::WeepingVinesPlant => self.weeping_vines_plant_to_properties_map(), + BlockKind::TwistingVines => self.twisting_vines_to_properties_map(), + BlockKind::TwistingVinesPlant => self.twisting_vines_plant_to_properties_map(), + BlockKind::CrimsonRoots => self.crimson_roots_to_properties_map(), + BlockKind::CrimsonPlanks => self.crimson_planks_to_properties_map(), + BlockKind::WarpedPlanks => self.warped_planks_to_properties_map(), + BlockKind::CrimsonSlab => self.crimson_slab_to_properties_map(), + BlockKind::WarpedSlab => self.warped_slab_to_properties_map(), + BlockKind::CrimsonPressurePlate => self.crimson_pressure_plate_to_properties_map(), + BlockKind::WarpedPressurePlate => self.warped_pressure_plate_to_properties_map(), + BlockKind::CrimsonFence => self.crimson_fence_to_properties_map(), + BlockKind::WarpedFence => self.warped_fence_to_properties_map(), + BlockKind::CrimsonTrapdoor => self.crimson_trapdoor_to_properties_map(), + BlockKind::WarpedTrapdoor => self.warped_trapdoor_to_properties_map(), + BlockKind::CrimsonFenceGate => self.crimson_fence_gate_to_properties_map(), + BlockKind::WarpedFenceGate => self.warped_fence_gate_to_properties_map(), + BlockKind::CrimsonStairs => self.crimson_stairs_to_properties_map(), + BlockKind::WarpedStairs => self.warped_stairs_to_properties_map(), + BlockKind::CrimsonButton => self.crimson_button_to_properties_map(), + BlockKind::WarpedButton => self.warped_button_to_properties_map(), + BlockKind::CrimsonDoor => self.crimson_door_to_properties_map(), + BlockKind::WarpedDoor => self.warped_door_to_properties_map(), + BlockKind::CrimsonSign => self.crimson_sign_to_properties_map(), + BlockKind::WarpedSign => self.warped_sign_to_properties_map(), + BlockKind::CrimsonWallSign => self.crimson_wall_sign_to_properties_map(), + BlockKind::WarpedWallSign => self.warped_wall_sign_to_properties_map(), + BlockKind::StructureBlock => self.structure_block_to_properties_map(), + BlockKind::Jigsaw => self.jigsaw_to_properties_map(), + BlockKind::Composter => self.composter_to_properties_map(), + BlockKind::Target => self.target_to_properties_map(), + BlockKind::BeeNest => self.bee_nest_to_properties_map(), + BlockKind::Beehive => self.beehive_to_properties_map(), + BlockKind::HoneyBlock => self.honey_block_to_properties_map(), + BlockKind::HoneycombBlock => self.honeycomb_block_to_properties_map(), + BlockKind::NetheriteBlock => self.netherite_block_to_properties_map(), + BlockKind::AncientDebris => self.ancient_debris_to_properties_map(), + BlockKind::CryingObsidian => self.crying_obsidian_to_properties_map(), + BlockKind::RespawnAnchor => self.respawn_anchor_to_properties_map(), + BlockKind::PottedCrimsonFungus => self.potted_crimson_fungus_to_properties_map(), + BlockKind::PottedWarpedFungus => self.potted_warped_fungus_to_properties_map(), + BlockKind::PottedCrimsonRoots => self.potted_crimson_roots_to_properties_map(), + BlockKind::PottedWarpedRoots => self.potted_warped_roots_to_properties_map(), + BlockKind::Lodestone => self.lodestone_to_properties_map(), + BlockKind::Blackstone => self.blackstone_to_properties_map(), + BlockKind::BlackstoneStairs => self.blackstone_stairs_to_properties_map(), + BlockKind::BlackstoneWall => self.blackstone_wall_to_properties_map(), + BlockKind::BlackstoneSlab => self.blackstone_slab_to_properties_map(), + BlockKind::PolishedBlackstone => self.polished_blackstone_to_properties_map(), + BlockKind::PolishedBlackstoneBricks => { + self.polished_blackstone_bricks_to_properties_map() + } + BlockKind::CrackedPolishedBlackstoneBricks => { + self.cracked_polished_blackstone_bricks_to_properties_map() + } + BlockKind::ChiseledPolishedBlackstone => { + self.chiseled_polished_blackstone_to_properties_map() + } + BlockKind::PolishedBlackstoneBrickSlab => { + self.polished_blackstone_brick_slab_to_properties_map() + } + BlockKind::PolishedBlackstoneBrickStairs => { + self.polished_blackstone_brick_stairs_to_properties_map() + } + BlockKind::PolishedBlackstoneBrickWall => { + self.polished_blackstone_brick_wall_to_properties_map() + } + BlockKind::GildedBlackstone => self.gilded_blackstone_to_properties_map(), + BlockKind::PolishedBlackstoneStairs => { + self.polished_blackstone_stairs_to_properties_map() + } + BlockKind::PolishedBlackstoneSlab => self.polished_blackstone_slab_to_properties_map(), + BlockKind::PolishedBlackstonePressurePlate => { + self.polished_blackstone_pressure_plate_to_properties_map() + } + BlockKind::PolishedBlackstoneButton => { + self.polished_blackstone_button_to_properties_map() + } + BlockKind::PolishedBlackstoneWall => self.polished_blackstone_wall_to_properties_map(), + BlockKind::ChiseledNetherBricks => self.chiseled_nether_bricks_to_properties_map(), + BlockKind::CrackedNetherBricks => self.cracked_nether_bricks_to_properties_map(), + BlockKind::QuartzBricks => self.quartz_bricks_to_properties_map(), + BlockKind::Candle => self.candle_to_properties_map(), + BlockKind::WhiteCandle => self.white_candle_to_properties_map(), + BlockKind::OrangeCandle => self.orange_candle_to_properties_map(), + BlockKind::MagentaCandle => self.magenta_candle_to_properties_map(), + BlockKind::LightBlueCandle => self.light_blue_candle_to_properties_map(), + BlockKind::YellowCandle => self.yellow_candle_to_properties_map(), + BlockKind::LimeCandle => self.lime_candle_to_properties_map(), + BlockKind::PinkCandle => self.pink_candle_to_properties_map(), + BlockKind::GrayCandle => self.gray_candle_to_properties_map(), + BlockKind::LightGrayCandle => self.light_gray_candle_to_properties_map(), + BlockKind::CyanCandle => self.cyan_candle_to_properties_map(), + BlockKind::PurpleCandle => self.purple_candle_to_properties_map(), + BlockKind::BlueCandle => self.blue_candle_to_properties_map(), + BlockKind::BrownCandle => self.brown_candle_to_properties_map(), + BlockKind::GreenCandle => self.green_candle_to_properties_map(), + BlockKind::RedCandle => self.red_candle_to_properties_map(), + BlockKind::BlackCandle => self.black_candle_to_properties_map(), + BlockKind::CandleCake => self.candle_cake_to_properties_map(), + BlockKind::WhiteCandleCake => self.white_candle_cake_to_properties_map(), + BlockKind::OrangeCandleCake => self.orange_candle_cake_to_properties_map(), + BlockKind::MagentaCandleCake => self.magenta_candle_cake_to_properties_map(), + BlockKind::LightBlueCandleCake => self.light_blue_candle_cake_to_properties_map(), + BlockKind::YellowCandleCake => self.yellow_candle_cake_to_properties_map(), + BlockKind::LimeCandleCake => self.lime_candle_cake_to_properties_map(), + BlockKind::PinkCandleCake => self.pink_candle_cake_to_properties_map(), + BlockKind::GrayCandleCake => self.gray_candle_cake_to_properties_map(), + BlockKind::LightGrayCandleCake => self.light_gray_candle_cake_to_properties_map(), + BlockKind::CyanCandleCake => self.cyan_candle_cake_to_properties_map(), + BlockKind::PurpleCandleCake => self.purple_candle_cake_to_properties_map(), + BlockKind::BlueCandleCake => self.blue_candle_cake_to_properties_map(), + BlockKind::BrownCandleCake => self.brown_candle_cake_to_properties_map(), + BlockKind::GreenCandleCake => self.green_candle_cake_to_properties_map(), + BlockKind::RedCandleCake => self.red_candle_cake_to_properties_map(), + BlockKind::BlackCandleCake => self.black_candle_cake_to_properties_map(), + BlockKind::AmethystBlock => self.amethyst_block_to_properties_map(), + BlockKind::BuddingAmethyst => self.budding_amethyst_to_properties_map(), + BlockKind::AmethystCluster => self.amethyst_cluster_to_properties_map(), + BlockKind::LargeAmethystBud => self.large_amethyst_bud_to_properties_map(), + BlockKind::MediumAmethystBud => self.medium_amethyst_bud_to_properties_map(), + BlockKind::SmallAmethystBud => self.small_amethyst_bud_to_properties_map(), + BlockKind::Tuff => self.tuff_to_properties_map(), + BlockKind::Calcite => self.calcite_to_properties_map(), + BlockKind::TintedGlass => self.tinted_glass_to_properties_map(), + BlockKind::PowderSnow => self.powder_snow_to_properties_map(), + BlockKind::SculkSensor => self.sculk_sensor_to_properties_map(), + BlockKind::OxidizedCopper => self.oxidized_copper_to_properties_map(), + BlockKind::WeatheredCopper => self.weathered_copper_to_properties_map(), + BlockKind::ExposedCopper => self.exposed_copper_to_properties_map(), + BlockKind::CopperBlock => self.copper_block_to_properties_map(), + BlockKind::CopperOre => self.copper_ore_to_properties_map(), + BlockKind::DeepslateCopperOre => self.deepslate_copper_ore_to_properties_map(), + BlockKind::OxidizedCutCopper => self.oxidized_cut_copper_to_properties_map(), + BlockKind::WeatheredCutCopper => self.weathered_cut_copper_to_properties_map(), + BlockKind::ExposedCutCopper => self.exposed_cut_copper_to_properties_map(), + BlockKind::CutCopper => self.cut_copper_to_properties_map(), + BlockKind::OxidizedCutCopperStairs => { + self.oxidized_cut_copper_stairs_to_properties_map() + } + BlockKind::WeatheredCutCopperStairs => { + self.weathered_cut_copper_stairs_to_properties_map() + } + BlockKind::ExposedCutCopperStairs => self.exposed_cut_copper_stairs_to_properties_map(), + BlockKind::CutCopperStairs => self.cut_copper_stairs_to_properties_map(), + BlockKind::OxidizedCutCopperSlab => self.oxidized_cut_copper_slab_to_properties_map(), + BlockKind::WeatheredCutCopperSlab => self.weathered_cut_copper_slab_to_properties_map(), + BlockKind::ExposedCutCopperSlab => self.exposed_cut_copper_slab_to_properties_map(), + BlockKind::CutCopperSlab => self.cut_copper_slab_to_properties_map(), + BlockKind::WaxedCopperBlock => self.waxed_copper_block_to_properties_map(), + BlockKind::WaxedWeatheredCopper => self.waxed_weathered_copper_to_properties_map(), + BlockKind::WaxedExposedCopper => self.waxed_exposed_copper_to_properties_map(), + BlockKind::WaxedOxidizedCopper => self.waxed_oxidized_copper_to_properties_map(), + BlockKind::WaxedOxidizedCutCopper => self.waxed_oxidized_cut_copper_to_properties_map(), + BlockKind::WaxedWeatheredCutCopper => { + self.waxed_weathered_cut_copper_to_properties_map() + } + BlockKind::WaxedExposedCutCopper => self.waxed_exposed_cut_copper_to_properties_map(), + BlockKind::WaxedCutCopper => self.waxed_cut_copper_to_properties_map(), + BlockKind::WaxedOxidizedCutCopperStairs => { + self.waxed_oxidized_cut_copper_stairs_to_properties_map() + } + BlockKind::WaxedWeatheredCutCopperStairs => { + self.waxed_weathered_cut_copper_stairs_to_properties_map() + } + BlockKind::WaxedExposedCutCopperStairs => { + self.waxed_exposed_cut_copper_stairs_to_properties_map() + } + BlockKind::WaxedCutCopperStairs => self.waxed_cut_copper_stairs_to_properties_map(), + BlockKind::WaxedOxidizedCutCopperSlab => { + self.waxed_oxidized_cut_copper_slab_to_properties_map() + } + BlockKind::WaxedWeatheredCutCopperSlab => { + self.waxed_weathered_cut_copper_slab_to_properties_map() + } + BlockKind::WaxedExposedCutCopperSlab => { + self.waxed_exposed_cut_copper_slab_to_properties_map() + } + BlockKind::WaxedCutCopperSlab => self.waxed_cut_copper_slab_to_properties_map(), + BlockKind::LightningRod => self.lightning_rod_to_properties_map(), + BlockKind::PointedDripstone => self.pointed_dripstone_to_properties_map(), + BlockKind::DripstoneBlock => self.dripstone_block_to_properties_map(), + BlockKind::CaveVines => self.cave_vines_to_properties_map(), + BlockKind::CaveVinesPlant => self.cave_vines_plant_to_properties_map(), + BlockKind::SporeBlossom => self.spore_blossom_to_properties_map(), + BlockKind::Azalea => self.azalea_to_properties_map(), + BlockKind::FloweringAzalea => self.flowering_azalea_to_properties_map(), + BlockKind::MossCarpet => self.moss_carpet_to_properties_map(), + BlockKind::MossBlock => self.moss_block_to_properties_map(), + BlockKind::BigDripleaf => self.big_dripleaf_to_properties_map(), + BlockKind::BigDripleafStem => self.big_dripleaf_stem_to_properties_map(), + BlockKind::SmallDripleaf => self.small_dripleaf_to_properties_map(), + BlockKind::HangingRoots => self.hanging_roots_to_properties_map(), + BlockKind::RootedDirt => self.rooted_dirt_to_properties_map(), + BlockKind::Deepslate => self.deepslate_to_properties_map(), + BlockKind::CobbledDeepslate => self.cobbled_deepslate_to_properties_map(), + BlockKind::CobbledDeepslateStairs => self.cobbled_deepslate_stairs_to_properties_map(), + BlockKind::CobbledDeepslateSlab => self.cobbled_deepslate_slab_to_properties_map(), + BlockKind::CobbledDeepslateWall => self.cobbled_deepslate_wall_to_properties_map(), + BlockKind::PolishedDeepslate => self.polished_deepslate_to_properties_map(), + BlockKind::PolishedDeepslateStairs => { + self.polished_deepslate_stairs_to_properties_map() + } + BlockKind::PolishedDeepslateSlab => self.polished_deepslate_slab_to_properties_map(), + BlockKind::PolishedDeepslateWall => self.polished_deepslate_wall_to_properties_map(), + BlockKind::DeepslateTiles => self.deepslate_tiles_to_properties_map(), + BlockKind::DeepslateTileStairs => self.deepslate_tile_stairs_to_properties_map(), + BlockKind::DeepslateTileSlab => self.deepslate_tile_slab_to_properties_map(), + BlockKind::DeepslateTileWall => self.deepslate_tile_wall_to_properties_map(), + BlockKind::DeepslateBricks => self.deepslate_bricks_to_properties_map(), + BlockKind::DeepslateBrickStairs => self.deepslate_brick_stairs_to_properties_map(), + BlockKind::DeepslateBrickSlab => self.deepslate_brick_slab_to_properties_map(), + BlockKind::DeepslateBrickWall => self.deepslate_brick_wall_to_properties_map(), + BlockKind::ChiseledDeepslate => self.chiseled_deepslate_to_properties_map(), + BlockKind::CrackedDeepslateBricks => self.cracked_deepslate_bricks_to_properties_map(), + BlockKind::CrackedDeepslateTiles => self.cracked_deepslate_tiles_to_properties_map(), + BlockKind::InfestedDeepslate => self.infested_deepslate_to_properties_map(), + BlockKind::SmoothBasalt => self.smooth_basalt_to_properties_map(), + BlockKind::RawIronBlock => self.raw_iron_block_to_properties_map(), + BlockKind::RawCopperBlock => self.raw_copper_block_to_properties_map(), + BlockKind::RawGoldBlock => self.raw_gold_block_to_properties_map(), + BlockKind::PottedAzaleaBush => self.potted_azalea_bush_to_properties_map(), + BlockKind::PottedFloweringAzaleaBush => { + self.potted_flowering_azalea_bush_to_properties_map() + } + } + } + fn air_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn stone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn granite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn polished_granite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn diorite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn polished_diorite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn andesite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn polished_andesite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn grass_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let snowy = self.snowy().unwrap(); + map.insert("snowy", { + match snowy { + true => "true", + false => "false", + } + }); + map + } + fn dirt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn coarse_dirt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn podzol_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let snowy = self.snowy().unwrap(); + map.insert("snowy", { + match snowy { + true => "true", + false => "false", + } + }); + map + } + fn cobblestone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn oak_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn spruce_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn birch_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn jungle_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn acacia_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn dark_oak_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn oak_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let stage = self.stage().unwrap(); + map.insert("stage", { + match stage { + 0i32 => "0", + 1i32 => "1", + _ => "unknown", + } + }); + map + } + fn spruce_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let stage = self.stage().unwrap(); + map.insert("stage", { + match stage { + 0i32 => "0", + 1i32 => "1", + _ => "unknown", + } + }); + map + } + fn birch_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let stage = self.stage().unwrap(); + map.insert("stage", { + match stage { + 0i32 => "0", + 1i32 => "1", + _ => "unknown", + } + }); + map + } + fn jungle_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let stage = self.stage().unwrap(); + map.insert("stage", { + match stage { + 0i32 => "0", + 1i32 => "1", + _ => "unknown", + } + }); + map + } + fn acacia_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let stage = self.stage().unwrap(); + map.insert("stage", { + match stage { + 0i32 => "0", + 1i32 => "1", + _ => "unknown", + } + }); + map + } + fn dark_oak_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let stage = self.stage().unwrap(); + map.insert("stage", { + match stage { + 0i32 => "0", + 1i32 => "1", + _ => "unknown", + } + }); + map + } + fn bedrock_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn water_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let water_level = self.water_level().unwrap(); + map.insert("level", { + match water_level { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + map + } + fn lava_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let water_level = self.water_level().unwrap(); + map.insert("level", { + match water_level { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + map + } + fn sand_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn red_sand_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn gravel_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn gold_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn deepslate_gold_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn iron_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn deepslate_iron_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn coal_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn deepslate_coal_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn nether_gold_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn oak_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn spruce_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn birch_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn jungle_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn acacia_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn dark_oak_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_spruce_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_birch_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_jungle_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_acacia_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_dark_oak_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_oak_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn oak_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn spruce_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn birch_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn jungle_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn acacia_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn dark_oak_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_oak_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_spruce_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_birch_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_jungle_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_acacia_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_dark_oak_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn oak_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let distance_1_7 = self.distance_1_7().unwrap(); + map.insert("distance", { + match distance_1_7 { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); + let persistent = self.persistent().unwrap(); + map.insert("persistent", { + match persistent { + true => "true", + false => "false", + } + }); + map + } + fn spruce_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let distance_1_7 = self.distance_1_7().unwrap(); + map.insert("distance", { + match distance_1_7 { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); + let persistent = self.persistent().unwrap(); + map.insert("persistent", { + match persistent { + true => "true", + false => "false", + } + }); + map + } + fn birch_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let distance_1_7 = self.distance_1_7().unwrap(); + map.insert("distance", { + match distance_1_7 { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); + let persistent = self.persistent().unwrap(); + map.insert("persistent", { + match persistent { + true => "true", + false => "false", + } + }); + map + } + fn jungle_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let distance_1_7 = self.distance_1_7().unwrap(); + map.insert("distance", { + match distance_1_7 { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); + let persistent = self.persistent().unwrap(); + map.insert("persistent", { + match persistent { + true => "true", + false => "false", + } + }); + map + } + fn acacia_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let distance_1_7 = self.distance_1_7().unwrap(); + map.insert("distance", { + match distance_1_7 { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); + let persistent = self.persistent().unwrap(); + map.insert("persistent", { + match persistent { + true => "true", + false => "false", + } + }); + map + } + fn dark_oak_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let distance_1_7 = self.distance_1_7().unwrap(); + map.insert("distance", { + match distance_1_7 { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); + let persistent = self.persistent().unwrap(); + map.insert("persistent", { + match persistent { + true => "true", + false => "false", + } + }); + map + } + fn azalea_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let distance_1_7 = self.distance_1_7().unwrap(); + map.insert("distance", { + match distance_1_7 { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); + let persistent = self.persistent().unwrap(); + map.insert("persistent", { + match persistent { + true => "true", + false => "false", + } + }); + map + } + fn flowering_azalea_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let distance_1_7 = self.distance_1_7().unwrap(); + map.insert("distance", { + match distance_1_7 { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); + let persistent = self.persistent().unwrap(); + map.insert("persistent", { + match persistent { + true => "true", + false => "false", + } + }); + map + } + fn sponge_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn wet_sponge_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn lapis_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn deepslate_lapis_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn lapis_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn dispenser_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); + let triggered = self.triggered().unwrap(); + map.insert("triggered", { + match triggered { + true => "true", + false => "false", + } + }); + map + } + fn sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn chiseled_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn cut_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn note_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let instrument = self.instrument().unwrap(); + map.insert("instrument", { instrument.as_str() }); + let note = self.note().unwrap(); + map.insert("note", { + match note { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + 16i32 => "16", + 17i32 => "17", + 18i32 => "18", + 19i32 => "19", + 20i32 => "20", + 21i32 => "21", + 22i32 => "22", + 23i32 => "23", + 24i32 => "24", + _ => "unknown", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn white_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn orange_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn magenta_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn light_blue_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn yellow_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn lime_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn pink_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn gray_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn light_gray_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn cyan_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn purple_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn blue_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn brown_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn green_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn red_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn black_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let occupied = self.occupied().unwrap(); + map.insert("occupied", { + match occupied { + true => "true", + false => "false", + } + }); + let part = self.part().unwrap(); + map.insert("part", { part.as_str() }); + map + } + fn powered_rail_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + let powered_rail_shape = self.powered_rail_shape().unwrap(); + map.insert("shape", { powered_rail_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn detector_rail_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + let powered_rail_shape = self.powered_rail_shape().unwrap(); + map.insert("shape", { powered_rail_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn sticky_piston_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let extended = self.extended().unwrap(); + map.insert("extended", { + match extended { + true => "true", + false => "false", + } + }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); + map + } + fn cobweb_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn grass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn fern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn dead_bush_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn seagrass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn tall_seagrass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + map + } + fn piston_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let extended = self.extended().unwrap(); + map.insert("extended", { + match extended { + true => "true", + false => "false", + } + }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); + map + } + fn piston_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); + let piston_kind = self.piston_kind().unwrap(); + map.insert("type", { piston_kind.as_str() }); + let short = self.short().unwrap(); + map.insert("short", { + match short { + true => "true", + false => "false", + } + }); + map + } + fn white_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn orange_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn magenta_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn light_blue_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn yellow_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn lime_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn pink_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn gray_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn light_gray_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn cyan_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn purple_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn blue_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn brown_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn green_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn red_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn black_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn moving_piston_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); + let piston_kind = self.piston_kind().unwrap(); + map.insert("type", { piston_kind.as_str() }); + map + } + fn dandelion_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn poppy_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn blue_orchid_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn allium_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn azure_bluet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn red_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn orange_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn white_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn pink_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn oxeye_daisy_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn cornflower_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn wither_rose_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn lily_of_the_valley_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn brown_mushroom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn red_mushroom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn gold_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn iron_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn tnt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let unstable = self.unstable().unwrap(); + map.insert("unstable", { + match unstable { + true => "true", + false => "false", + } + }); + map + } + fn bookshelf_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn mossy_cobblestone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn obsidian_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn wall_torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + map + } + fn fire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let age_0_15 = self.age_0_15().unwrap(); + map.insert("age", { + match age_0_15 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); + map + } + fn soul_fire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn spawner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn oak_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn chest_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let chest_kind = self.chest_kind().unwrap(); + map.insert("type", { chest_kind.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn redstone_wire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let east_wire = self.east_wire().unwrap(); + map.insert("east", { east_wire.as_str() }); + let north_wire = self.north_wire().unwrap(); + map.insert("north", { north_wire.as_str() }); + let power = self.power().unwrap(); + map.insert("power", { + match power { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + let south_wire = self.south_wire().unwrap(); + map.insert("south", { south_wire.as_str() }); + let west_wire = self.west_wire().unwrap(); + map.insert("west", { west_wire.as_str() }); + map + } + fn diamond_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn deepslate_diamond_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn diamond_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn crafting_table_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn wheat_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let age_0_7 = self.age_0_7().unwrap(); + map.insert("age", { + match age_0_7 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); + map + } + fn farmland_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let moisture = self.moisture().unwrap(); + map.insert("moisture", { + match moisture { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); + map + } + fn furnace_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + map + } + fn oak_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn spruce_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn birch_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn acacia_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn jungle_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn dark_oak_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn oak_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + let hinge = self.hinge().unwrap(); + map.insert("hinge", { hinge.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn ladder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn rail_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rail_shape = self.rail_shape().unwrap(); + map.insert("shape", { rail_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn cobblestone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn oak_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn spruce_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn birch_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn acacia_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn jungle_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn dark_oak_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn lever_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn stone_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn iron_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + let hinge = self.hinge().unwrap(); + map.insert("hinge", { hinge.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn oak_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn spruce_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn birch_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn jungle_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn acacia_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn dark_oak_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn redstone_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + map + } + fn deepslate_redstone_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + map + } + fn redstone_torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + map + } + fn redstone_wall_torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + map + } + fn stone_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn snow_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let layers = self.layers().unwrap(); + map.insert("layers", { + match layers { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + _ => "unknown", + } + }); + map + } + fn ice_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn snow_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn cactus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let age_0_15 = self.age_0_15().unwrap(); + map.insert("age", { + match age_0_15 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + map + } + fn clay_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn sugar_cane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let age_0_15 = self.age_0_15().unwrap(); + map.insert("age", { + match age_0_15 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + map + } + fn jukebox_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let has_record = self.has_record().unwrap(); + map.insert("has_record", { + match has_record { + true => "true", + false => "false", + } + }); + map + } + fn oak_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); + map + } + fn pumpkin_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn netherrack_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn soul_sand_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn soul_soil_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn basalt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn polished_basalt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn soul_torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn soul_wall_torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + map + } + fn glowstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn nether_portal_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xz = self.axis_xz().unwrap(); + map.insert("axis", { axis_xz.as_str() }); + map + } + fn carved_pumpkin_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + map + } + fn jack_o_lantern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + map + } + fn cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let bites = self.bites().unwrap(); + map.insert("bites", { + match bites { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + _ => "unknown", + } + }); + map + } + fn repeater_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let delay = self.delay().unwrap(); + map.insert("delay", { + match delay { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let locked = self.locked().unwrap(); + map.insert("locked", { + match locked { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn white_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn orange_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn magenta_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn light_blue_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn yellow_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn lime_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn pink_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn gray_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn light_gray_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn cyan_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn purple_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn blue_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn brown_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn green_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn red_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn black_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn oak_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn spruce_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn birch_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn jungle_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn acacia_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn dark_oak_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", } - BlockKind::ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", - BlockKind::PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", - BlockKind::PolishedBlackstoneBrickStairs => { - "minecraft:polished_blackstone_brick_stairs" + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } - BlockKind::PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", - BlockKind::GildedBlackstone => "minecraft:gilded_blackstone", - BlockKind::PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", - BlockKind::PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", - BlockKind::PolishedBlackstonePressurePlate => { - "minecraft:polished_blackstone_pressure_plate" + }); + map + } + fn stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn mossy_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn cracked_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn chiseled_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn infested_stone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn infested_cobblestone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn infested_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn infested_mossy_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn infested_cracked_stone_bricks_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn infested_chiseled_stone_bricks_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn brown_mushroom_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let down = self.down().unwrap(); + map.insert("down", { + match down { + true => "true", + false => "false", } - BlockKind::PolishedBlackstoneButton => "minecraft:polished_blackstone_button", - BlockKind::PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", - BlockKind::ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", - BlockKind::CrackedNetherBricks => "minecraft:cracked_nether_bricks", - BlockKind::QuartzBricks => "minecraft:quartz_bricks", - } + }); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); + map + } + fn red_mushroom_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let down = self.down().unwrap(); + map.insert("down", { + match down { + true => "true", + false => "false", + } + }); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); + map + } + fn mushroom_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let down = self.down().unwrap(); + map.insert("down", { + match down { + true => "true", + false => "false", + } + }); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); + map + } + fn iron_bars_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); + map + } + fn chain_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map } - #[doc = "Returns a mapping from property name to property value for this block. Used to serialize blocks in vanilla world saves."] - pub fn to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - match self.kind { - BlockKind::Air => self.air_to_properties_map(), - BlockKind::Stone => self.stone_to_properties_map(), - BlockKind::Granite => self.granite_to_properties_map(), - BlockKind::PolishedGranite => self.polished_granite_to_properties_map(), - BlockKind::Diorite => self.diorite_to_properties_map(), - BlockKind::PolishedDiorite => self.polished_diorite_to_properties_map(), - BlockKind::Andesite => self.andesite_to_properties_map(), - BlockKind::PolishedAndesite => self.polished_andesite_to_properties_map(), - BlockKind::GrassBlock => self.grass_block_to_properties_map(), - BlockKind::Dirt => self.dirt_to_properties_map(), - BlockKind::CoarseDirt => self.coarse_dirt_to_properties_map(), - BlockKind::Podzol => self.podzol_to_properties_map(), - BlockKind::Cobblestone => self.cobblestone_to_properties_map(), - BlockKind::OakPlanks => self.oak_planks_to_properties_map(), - BlockKind::SprucePlanks => self.spruce_planks_to_properties_map(), - BlockKind::BirchPlanks => self.birch_planks_to_properties_map(), - BlockKind::JunglePlanks => self.jungle_planks_to_properties_map(), - BlockKind::AcaciaPlanks => self.acacia_planks_to_properties_map(), - BlockKind::DarkOakPlanks => self.dark_oak_planks_to_properties_map(), - BlockKind::OakSapling => self.oak_sapling_to_properties_map(), - BlockKind::SpruceSapling => self.spruce_sapling_to_properties_map(), - BlockKind::BirchSapling => self.birch_sapling_to_properties_map(), - BlockKind::JungleSapling => self.jungle_sapling_to_properties_map(), - BlockKind::AcaciaSapling => self.acacia_sapling_to_properties_map(), - BlockKind::DarkOakSapling => self.dark_oak_sapling_to_properties_map(), - BlockKind::Bedrock => self.bedrock_to_properties_map(), - BlockKind::Water => self.water_to_properties_map(), - BlockKind::Lava => self.lava_to_properties_map(), - BlockKind::Sand => self.sand_to_properties_map(), - BlockKind::RedSand => self.red_sand_to_properties_map(), - BlockKind::Gravel => self.gravel_to_properties_map(), - BlockKind::GoldOre => self.gold_ore_to_properties_map(), - BlockKind::IronOre => self.iron_ore_to_properties_map(), - BlockKind::CoalOre => self.coal_ore_to_properties_map(), - BlockKind::NetherGoldOre => self.nether_gold_ore_to_properties_map(), - BlockKind::OakLog => self.oak_log_to_properties_map(), - BlockKind::SpruceLog => self.spruce_log_to_properties_map(), - BlockKind::BirchLog => self.birch_log_to_properties_map(), - BlockKind::JungleLog => self.jungle_log_to_properties_map(), - BlockKind::AcaciaLog => self.acacia_log_to_properties_map(), - BlockKind::DarkOakLog => self.dark_oak_log_to_properties_map(), - BlockKind::StrippedSpruceLog => self.stripped_spruce_log_to_properties_map(), - BlockKind::StrippedBirchLog => self.stripped_birch_log_to_properties_map(), - BlockKind::StrippedJungleLog => self.stripped_jungle_log_to_properties_map(), - BlockKind::StrippedAcaciaLog => self.stripped_acacia_log_to_properties_map(), - BlockKind::StrippedDarkOakLog => self.stripped_dark_oak_log_to_properties_map(), - BlockKind::StrippedOakLog => self.stripped_oak_log_to_properties_map(), - BlockKind::OakWood => self.oak_wood_to_properties_map(), - BlockKind::SpruceWood => self.spruce_wood_to_properties_map(), - BlockKind::BirchWood => self.birch_wood_to_properties_map(), - BlockKind::JungleWood => self.jungle_wood_to_properties_map(), - BlockKind::AcaciaWood => self.acacia_wood_to_properties_map(), - BlockKind::DarkOakWood => self.dark_oak_wood_to_properties_map(), - BlockKind::StrippedOakWood => self.stripped_oak_wood_to_properties_map(), - BlockKind::StrippedSpruceWood => self.stripped_spruce_wood_to_properties_map(), - BlockKind::StrippedBirchWood => self.stripped_birch_wood_to_properties_map(), - BlockKind::StrippedJungleWood => self.stripped_jungle_wood_to_properties_map(), - BlockKind::StrippedAcaciaWood => self.stripped_acacia_wood_to_properties_map(), - BlockKind::StrippedDarkOakWood => self.stripped_dark_oak_wood_to_properties_map(), - BlockKind::OakLeaves => self.oak_leaves_to_properties_map(), - BlockKind::SpruceLeaves => self.spruce_leaves_to_properties_map(), - BlockKind::BirchLeaves => self.birch_leaves_to_properties_map(), - BlockKind::JungleLeaves => self.jungle_leaves_to_properties_map(), - BlockKind::AcaciaLeaves => self.acacia_leaves_to_properties_map(), - BlockKind::DarkOakLeaves => self.dark_oak_leaves_to_properties_map(), - BlockKind::Sponge => self.sponge_to_properties_map(), - BlockKind::WetSponge => self.wet_sponge_to_properties_map(), - BlockKind::Glass => self.glass_to_properties_map(), - BlockKind::LapisOre => self.lapis_ore_to_properties_map(), - BlockKind::LapisBlock => self.lapis_block_to_properties_map(), - BlockKind::Dispenser => self.dispenser_to_properties_map(), - BlockKind::Sandstone => self.sandstone_to_properties_map(), - BlockKind::ChiseledSandstone => self.chiseled_sandstone_to_properties_map(), - BlockKind::CutSandstone => self.cut_sandstone_to_properties_map(), - BlockKind::NoteBlock => self.note_block_to_properties_map(), - BlockKind::WhiteBed => self.white_bed_to_properties_map(), - BlockKind::OrangeBed => self.orange_bed_to_properties_map(), - BlockKind::MagentaBed => self.magenta_bed_to_properties_map(), - BlockKind::LightBlueBed => self.light_blue_bed_to_properties_map(), - BlockKind::YellowBed => self.yellow_bed_to_properties_map(), - BlockKind::LimeBed => self.lime_bed_to_properties_map(), - BlockKind::PinkBed => self.pink_bed_to_properties_map(), - BlockKind::GrayBed => self.gray_bed_to_properties_map(), - BlockKind::LightGrayBed => self.light_gray_bed_to_properties_map(), - BlockKind::CyanBed => self.cyan_bed_to_properties_map(), - BlockKind::PurpleBed => self.purple_bed_to_properties_map(), - BlockKind::BlueBed => self.blue_bed_to_properties_map(), - BlockKind::BrownBed => self.brown_bed_to_properties_map(), - BlockKind::GreenBed => self.green_bed_to_properties_map(), - BlockKind::RedBed => self.red_bed_to_properties_map(), - BlockKind::BlackBed => self.black_bed_to_properties_map(), - BlockKind::PoweredRail => self.powered_rail_to_properties_map(), - BlockKind::DetectorRail => self.detector_rail_to_properties_map(), - BlockKind::StickyPiston => self.sticky_piston_to_properties_map(), - BlockKind::Cobweb => self.cobweb_to_properties_map(), - BlockKind::Grass => self.grass_to_properties_map(), - BlockKind::Fern => self.fern_to_properties_map(), - BlockKind::DeadBush => self.dead_bush_to_properties_map(), - BlockKind::Seagrass => self.seagrass_to_properties_map(), - BlockKind::TallSeagrass => self.tall_seagrass_to_properties_map(), - BlockKind::Piston => self.piston_to_properties_map(), - BlockKind::PistonHead => self.piston_head_to_properties_map(), - BlockKind::WhiteWool => self.white_wool_to_properties_map(), - BlockKind::OrangeWool => self.orange_wool_to_properties_map(), - BlockKind::MagentaWool => self.magenta_wool_to_properties_map(), - BlockKind::LightBlueWool => self.light_blue_wool_to_properties_map(), - BlockKind::YellowWool => self.yellow_wool_to_properties_map(), - BlockKind::LimeWool => self.lime_wool_to_properties_map(), - BlockKind::PinkWool => self.pink_wool_to_properties_map(), - BlockKind::GrayWool => self.gray_wool_to_properties_map(), - BlockKind::LightGrayWool => self.light_gray_wool_to_properties_map(), - BlockKind::CyanWool => self.cyan_wool_to_properties_map(), - BlockKind::PurpleWool => self.purple_wool_to_properties_map(), - BlockKind::BlueWool => self.blue_wool_to_properties_map(), - BlockKind::BrownWool => self.brown_wool_to_properties_map(), - BlockKind::GreenWool => self.green_wool_to_properties_map(), - BlockKind::RedWool => self.red_wool_to_properties_map(), - BlockKind::BlackWool => self.black_wool_to_properties_map(), - BlockKind::MovingPiston => self.moving_piston_to_properties_map(), - BlockKind::Dandelion => self.dandelion_to_properties_map(), - BlockKind::Poppy => self.poppy_to_properties_map(), - BlockKind::BlueOrchid => self.blue_orchid_to_properties_map(), - BlockKind::Allium => self.allium_to_properties_map(), - BlockKind::AzureBluet => self.azure_bluet_to_properties_map(), - BlockKind::RedTulip => self.red_tulip_to_properties_map(), - BlockKind::OrangeTulip => self.orange_tulip_to_properties_map(), - BlockKind::WhiteTulip => self.white_tulip_to_properties_map(), - BlockKind::PinkTulip => self.pink_tulip_to_properties_map(), - BlockKind::OxeyeDaisy => self.oxeye_daisy_to_properties_map(), - BlockKind::Cornflower => self.cornflower_to_properties_map(), - BlockKind::WitherRose => self.wither_rose_to_properties_map(), - BlockKind::LilyOfTheValley => self.lily_of_the_valley_to_properties_map(), - BlockKind::BrownMushroom => self.brown_mushroom_to_properties_map(), - BlockKind::RedMushroom => self.red_mushroom_to_properties_map(), - BlockKind::GoldBlock => self.gold_block_to_properties_map(), - BlockKind::IronBlock => self.iron_block_to_properties_map(), - BlockKind::Bricks => self.bricks_to_properties_map(), - BlockKind::Tnt => self.tnt_to_properties_map(), - BlockKind::Bookshelf => self.bookshelf_to_properties_map(), - BlockKind::MossyCobblestone => self.mossy_cobblestone_to_properties_map(), - BlockKind::Obsidian => self.obsidian_to_properties_map(), - BlockKind::Torch => self.torch_to_properties_map(), - BlockKind::WallTorch => self.wall_torch_to_properties_map(), - BlockKind::Fire => self.fire_to_properties_map(), - BlockKind::SoulFire => self.soul_fire_to_properties_map(), - BlockKind::Spawner => self.spawner_to_properties_map(), - BlockKind::OakStairs => self.oak_stairs_to_properties_map(), - BlockKind::Chest => self.chest_to_properties_map(), - BlockKind::RedstoneWire => self.redstone_wire_to_properties_map(), - BlockKind::DiamondOre => self.diamond_ore_to_properties_map(), - BlockKind::DiamondBlock => self.diamond_block_to_properties_map(), - BlockKind::CraftingTable => self.crafting_table_to_properties_map(), - BlockKind::Wheat => self.wheat_to_properties_map(), - BlockKind::Farmland => self.farmland_to_properties_map(), - BlockKind::Furnace => self.furnace_to_properties_map(), - BlockKind::OakSign => self.oak_sign_to_properties_map(), - BlockKind::SpruceSign => self.spruce_sign_to_properties_map(), - BlockKind::BirchSign => self.birch_sign_to_properties_map(), - BlockKind::AcaciaSign => self.acacia_sign_to_properties_map(), - BlockKind::JungleSign => self.jungle_sign_to_properties_map(), - BlockKind::DarkOakSign => self.dark_oak_sign_to_properties_map(), - BlockKind::OakDoor => self.oak_door_to_properties_map(), - BlockKind::Ladder => self.ladder_to_properties_map(), - BlockKind::Rail => self.rail_to_properties_map(), - BlockKind::CobblestoneStairs => self.cobblestone_stairs_to_properties_map(), - BlockKind::OakWallSign => self.oak_wall_sign_to_properties_map(), - BlockKind::SpruceWallSign => self.spruce_wall_sign_to_properties_map(), - BlockKind::BirchWallSign => self.birch_wall_sign_to_properties_map(), - BlockKind::AcaciaWallSign => self.acacia_wall_sign_to_properties_map(), - BlockKind::JungleWallSign => self.jungle_wall_sign_to_properties_map(), - BlockKind::DarkOakWallSign => self.dark_oak_wall_sign_to_properties_map(), - BlockKind::Lever => self.lever_to_properties_map(), - BlockKind::StonePressurePlate => self.stone_pressure_plate_to_properties_map(), - BlockKind::IronDoor => self.iron_door_to_properties_map(), - BlockKind::OakPressurePlate => self.oak_pressure_plate_to_properties_map(), - BlockKind::SprucePressurePlate => self.spruce_pressure_plate_to_properties_map(), - BlockKind::BirchPressurePlate => self.birch_pressure_plate_to_properties_map(), - BlockKind::JunglePressurePlate => self.jungle_pressure_plate_to_properties_map(), - BlockKind::AcaciaPressurePlate => self.acacia_pressure_plate_to_properties_map(), - BlockKind::DarkOakPressurePlate => self.dark_oak_pressure_plate_to_properties_map(), - BlockKind::RedstoneOre => self.redstone_ore_to_properties_map(), - BlockKind::RedstoneTorch => self.redstone_torch_to_properties_map(), - BlockKind::RedstoneWallTorch => self.redstone_wall_torch_to_properties_map(), - BlockKind::StoneButton => self.stone_button_to_properties_map(), - BlockKind::Snow => self.snow_to_properties_map(), - BlockKind::Ice => self.ice_to_properties_map(), - BlockKind::SnowBlock => self.snow_block_to_properties_map(), - BlockKind::Cactus => self.cactus_to_properties_map(), - BlockKind::Clay => self.clay_to_properties_map(), - BlockKind::SugarCane => self.sugar_cane_to_properties_map(), - BlockKind::Jukebox => self.jukebox_to_properties_map(), - BlockKind::OakFence => self.oak_fence_to_properties_map(), - BlockKind::Pumpkin => self.pumpkin_to_properties_map(), - BlockKind::Netherrack => self.netherrack_to_properties_map(), - BlockKind::SoulSand => self.soul_sand_to_properties_map(), - BlockKind::SoulSoil => self.soul_soil_to_properties_map(), - BlockKind::Basalt => self.basalt_to_properties_map(), - BlockKind::PolishedBasalt => self.polished_basalt_to_properties_map(), - BlockKind::SoulTorch => self.soul_torch_to_properties_map(), - BlockKind::SoulWallTorch => self.soul_wall_torch_to_properties_map(), - BlockKind::Glowstone => self.glowstone_to_properties_map(), - BlockKind::NetherPortal => self.nether_portal_to_properties_map(), - BlockKind::CarvedPumpkin => self.carved_pumpkin_to_properties_map(), - BlockKind::JackOLantern => self.jack_o_lantern_to_properties_map(), - BlockKind::Cake => self.cake_to_properties_map(), - BlockKind::Repeater => self.repeater_to_properties_map(), - BlockKind::WhiteStainedGlass => self.white_stained_glass_to_properties_map(), - BlockKind::OrangeStainedGlass => self.orange_stained_glass_to_properties_map(), - BlockKind::MagentaStainedGlass => self.magenta_stained_glass_to_properties_map(), - BlockKind::LightBlueStainedGlass => self.light_blue_stained_glass_to_properties_map(), - BlockKind::YellowStainedGlass => self.yellow_stained_glass_to_properties_map(), - BlockKind::LimeStainedGlass => self.lime_stained_glass_to_properties_map(), - BlockKind::PinkStainedGlass => self.pink_stained_glass_to_properties_map(), - BlockKind::GrayStainedGlass => self.gray_stained_glass_to_properties_map(), - BlockKind::LightGrayStainedGlass => self.light_gray_stained_glass_to_properties_map(), - BlockKind::CyanStainedGlass => self.cyan_stained_glass_to_properties_map(), - BlockKind::PurpleStainedGlass => self.purple_stained_glass_to_properties_map(), - BlockKind::BlueStainedGlass => self.blue_stained_glass_to_properties_map(), - BlockKind::BrownStainedGlass => self.brown_stained_glass_to_properties_map(), - BlockKind::GreenStainedGlass => self.green_stained_glass_to_properties_map(), - BlockKind::RedStainedGlass => self.red_stained_glass_to_properties_map(), - BlockKind::BlackStainedGlass => self.black_stained_glass_to_properties_map(), - BlockKind::OakTrapdoor => self.oak_trapdoor_to_properties_map(), - BlockKind::SpruceTrapdoor => self.spruce_trapdoor_to_properties_map(), - BlockKind::BirchTrapdoor => self.birch_trapdoor_to_properties_map(), - BlockKind::JungleTrapdoor => self.jungle_trapdoor_to_properties_map(), - BlockKind::AcaciaTrapdoor => self.acacia_trapdoor_to_properties_map(), - BlockKind::DarkOakTrapdoor => self.dark_oak_trapdoor_to_properties_map(), - BlockKind::StoneBricks => self.stone_bricks_to_properties_map(), - BlockKind::MossyStoneBricks => self.mossy_stone_bricks_to_properties_map(), - BlockKind::CrackedStoneBricks => self.cracked_stone_bricks_to_properties_map(), - BlockKind::ChiseledStoneBricks => self.chiseled_stone_bricks_to_properties_map(), - BlockKind::InfestedStone => self.infested_stone_to_properties_map(), - BlockKind::InfestedCobblestone => self.infested_cobblestone_to_properties_map(), - BlockKind::InfestedStoneBricks => self.infested_stone_bricks_to_properties_map(), - BlockKind::InfestedMossyStoneBricks => { - self.infested_mossy_stone_bricks_to_properties_map() + fn glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", } - BlockKind::InfestedCrackedStoneBricks => { - self.infested_cracked_stone_bricks_to_properties_map() + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", } - BlockKind::InfestedChiseledStoneBricks => { - self.infested_chiseled_stone_bricks_to_properties_map() + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } - BlockKind::BrownMushroomBlock => self.brown_mushroom_block_to_properties_map(), - BlockKind::RedMushroomBlock => self.red_mushroom_block_to_properties_map(), - BlockKind::MushroomStem => self.mushroom_stem_to_properties_map(), - BlockKind::IronBars => self.iron_bars_to_properties_map(), - BlockKind::Chain => self.chain_to_properties_map(), - BlockKind::GlassPane => self.glass_pane_to_properties_map(), - BlockKind::Melon => self.melon_to_properties_map(), - BlockKind::AttachedPumpkinStem => self.attached_pumpkin_stem_to_properties_map(), - BlockKind::AttachedMelonStem => self.attached_melon_stem_to_properties_map(), - BlockKind::PumpkinStem => self.pumpkin_stem_to_properties_map(), - BlockKind::MelonStem => self.melon_stem_to_properties_map(), - BlockKind::Vine => self.vine_to_properties_map(), - BlockKind::OakFenceGate => self.oak_fence_gate_to_properties_map(), - BlockKind::BrickStairs => self.brick_stairs_to_properties_map(), - BlockKind::StoneBrickStairs => self.stone_brick_stairs_to_properties_map(), - BlockKind::Mycelium => self.mycelium_to_properties_map(), - BlockKind::LilyPad => self.lily_pad_to_properties_map(), - BlockKind::NetherBricks => self.nether_bricks_to_properties_map(), - BlockKind::NetherBrickFence => self.nether_brick_fence_to_properties_map(), - BlockKind::NetherBrickStairs => self.nether_brick_stairs_to_properties_map(), - BlockKind::NetherWart => self.nether_wart_to_properties_map(), - BlockKind::EnchantingTable => self.enchanting_table_to_properties_map(), - BlockKind::BrewingStand => self.brewing_stand_to_properties_map(), - BlockKind::Cauldron => self.cauldron_to_properties_map(), - BlockKind::EndPortal => self.end_portal_to_properties_map(), - BlockKind::EndPortalFrame => self.end_portal_frame_to_properties_map(), - BlockKind::EndStone => self.end_stone_to_properties_map(), - BlockKind::DragonEgg => self.dragon_egg_to_properties_map(), - BlockKind::RedstoneLamp => self.redstone_lamp_to_properties_map(), - BlockKind::Cocoa => self.cocoa_to_properties_map(), - BlockKind::SandstoneStairs => self.sandstone_stairs_to_properties_map(), - BlockKind::EmeraldOre => self.emerald_ore_to_properties_map(), - BlockKind::EnderChest => self.ender_chest_to_properties_map(), - BlockKind::TripwireHook => self.tripwire_hook_to_properties_map(), - BlockKind::Tripwire => self.tripwire_to_properties_map(), - BlockKind::EmeraldBlock => self.emerald_block_to_properties_map(), - BlockKind::SpruceStairs => self.spruce_stairs_to_properties_map(), - BlockKind::BirchStairs => self.birch_stairs_to_properties_map(), - BlockKind::JungleStairs => self.jungle_stairs_to_properties_map(), - BlockKind::CommandBlock => self.command_block_to_properties_map(), - BlockKind::Beacon => self.beacon_to_properties_map(), - BlockKind::CobblestoneWall => self.cobblestone_wall_to_properties_map(), - BlockKind::MossyCobblestoneWall => self.mossy_cobblestone_wall_to_properties_map(), - BlockKind::FlowerPot => self.flower_pot_to_properties_map(), - BlockKind::PottedOakSapling => self.potted_oak_sapling_to_properties_map(), - BlockKind::PottedSpruceSapling => self.potted_spruce_sapling_to_properties_map(), - BlockKind::PottedBirchSapling => self.potted_birch_sapling_to_properties_map(), - BlockKind::PottedJungleSapling => self.potted_jungle_sapling_to_properties_map(), - BlockKind::PottedAcaciaSapling => self.potted_acacia_sapling_to_properties_map(), - BlockKind::PottedDarkOakSapling => self.potted_dark_oak_sapling_to_properties_map(), - BlockKind::PottedFern => self.potted_fern_to_properties_map(), - BlockKind::PottedDandelion => self.potted_dandelion_to_properties_map(), - BlockKind::PottedPoppy => self.potted_poppy_to_properties_map(), - BlockKind::PottedBlueOrchid => self.potted_blue_orchid_to_properties_map(), - BlockKind::PottedAllium => self.potted_allium_to_properties_map(), - BlockKind::PottedAzureBluet => self.potted_azure_bluet_to_properties_map(), - BlockKind::PottedRedTulip => self.potted_red_tulip_to_properties_map(), - BlockKind::PottedOrangeTulip => self.potted_orange_tulip_to_properties_map(), - BlockKind::PottedWhiteTulip => self.potted_white_tulip_to_properties_map(), - BlockKind::PottedPinkTulip => self.potted_pink_tulip_to_properties_map(), - BlockKind::PottedOxeyeDaisy => self.potted_oxeye_daisy_to_properties_map(), - BlockKind::PottedCornflower => self.potted_cornflower_to_properties_map(), - BlockKind::PottedLilyOfTheValley => self.potted_lily_of_the_valley_to_properties_map(), - BlockKind::PottedWitherRose => self.potted_wither_rose_to_properties_map(), - BlockKind::PottedRedMushroom => self.potted_red_mushroom_to_properties_map(), - BlockKind::PottedBrownMushroom => self.potted_brown_mushroom_to_properties_map(), - BlockKind::PottedDeadBush => self.potted_dead_bush_to_properties_map(), - BlockKind::PottedCactus => self.potted_cactus_to_properties_map(), - BlockKind::Carrots => self.carrots_to_properties_map(), - BlockKind::Potatoes => self.potatoes_to_properties_map(), - BlockKind::OakButton => self.oak_button_to_properties_map(), - BlockKind::SpruceButton => self.spruce_button_to_properties_map(), - BlockKind::BirchButton => self.birch_button_to_properties_map(), - BlockKind::JungleButton => self.jungle_button_to_properties_map(), - BlockKind::AcaciaButton => self.acacia_button_to_properties_map(), - BlockKind::DarkOakButton => self.dark_oak_button_to_properties_map(), - BlockKind::SkeletonSkull => self.skeleton_skull_to_properties_map(), - BlockKind::SkeletonWallSkull => self.skeleton_wall_skull_to_properties_map(), - BlockKind::WitherSkeletonSkull => self.wither_skeleton_skull_to_properties_map(), - BlockKind::WitherSkeletonWallSkull => { - self.wither_skeleton_wall_skull_to_properties_map() + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", } - BlockKind::ZombieHead => self.zombie_head_to_properties_map(), - BlockKind::ZombieWallHead => self.zombie_wall_head_to_properties_map(), - BlockKind::PlayerHead => self.player_head_to_properties_map(), - BlockKind::PlayerWallHead => self.player_wall_head_to_properties_map(), - BlockKind::CreeperHead => self.creeper_head_to_properties_map(), - BlockKind::CreeperWallHead => self.creeper_wall_head_to_properties_map(), - BlockKind::DragonHead => self.dragon_head_to_properties_map(), - BlockKind::DragonWallHead => self.dragon_wall_head_to_properties_map(), - BlockKind::Anvil => self.anvil_to_properties_map(), - BlockKind::ChippedAnvil => self.chipped_anvil_to_properties_map(), - BlockKind::DamagedAnvil => self.damaged_anvil_to_properties_map(), - BlockKind::TrappedChest => self.trapped_chest_to_properties_map(), - BlockKind::LightWeightedPressurePlate => { - self.light_weighted_pressure_plate_to_properties_map() + }); + map + } + fn melon_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn attached_pumpkin_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + map + } + fn attached_melon_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + map + } + fn pumpkin_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let age_0_7 = self.age_0_7().unwrap(); + map.insert("age", { + match age_0_7 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", } - BlockKind::HeavyWeightedPressurePlate => { - self.heavy_weighted_pressure_plate_to_properties_map() + }); + map + } + fn melon_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let age_0_7 = self.age_0_7().unwrap(); + map.insert("age", { + match age_0_7 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", } - BlockKind::Comparator => self.comparator_to_properties_map(), - BlockKind::DaylightDetector => self.daylight_detector_to_properties_map(), - BlockKind::RedstoneBlock => self.redstone_block_to_properties_map(), - BlockKind::NetherQuartzOre => self.nether_quartz_ore_to_properties_map(), - BlockKind::Hopper => self.hopper_to_properties_map(), - BlockKind::QuartzBlock => self.quartz_block_to_properties_map(), - BlockKind::ChiseledQuartzBlock => self.chiseled_quartz_block_to_properties_map(), - BlockKind::QuartzPillar => self.quartz_pillar_to_properties_map(), - BlockKind::QuartzStairs => self.quartz_stairs_to_properties_map(), - BlockKind::ActivatorRail => self.activator_rail_to_properties_map(), - BlockKind::Dropper => self.dropper_to_properties_map(), - BlockKind::WhiteTerracotta => self.white_terracotta_to_properties_map(), - BlockKind::OrangeTerracotta => self.orange_terracotta_to_properties_map(), - BlockKind::MagentaTerracotta => self.magenta_terracotta_to_properties_map(), - BlockKind::LightBlueTerracotta => self.light_blue_terracotta_to_properties_map(), - BlockKind::YellowTerracotta => self.yellow_terracotta_to_properties_map(), - BlockKind::LimeTerracotta => self.lime_terracotta_to_properties_map(), - BlockKind::PinkTerracotta => self.pink_terracotta_to_properties_map(), - BlockKind::GrayTerracotta => self.gray_terracotta_to_properties_map(), - BlockKind::LightGrayTerracotta => self.light_gray_terracotta_to_properties_map(), - BlockKind::CyanTerracotta => self.cyan_terracotta_to_properties_map(), - BlockKind::PurpleTerracotta => self.purple_terracotta_to_properties_map(), - BlockKind::BlueTerracotta => self.blue_terracotta_to_properties_map(), - BlockKind::BrownTerracotta => self.brown_terracotta_to_properties_map(), - BlockKind::GreenTerracotta => self.green_terracotta_to_properties_map(), - BlockKind::RedTerracotta => self.red_terracotta_to_properties_map(), - BlockKind::BlackTerracotta => self.black_terracotta_to_properties_map(), - BlockKind::WhiteStainedGlassPane => self.white_stained_glass_pane_to_properties_map(), - BlockKind::OrangeStainedGlassPane => self.orange_stained_glass_pane_to_properties_map(), - BlockKind::MagentaStainedGlassPane => { - self.magenta_stained_glass_pane_to_properties_map() + }); + map + } + fn vine_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", } - BlockKind::LightBlueStainedGlassPane => { - self.light_blue_stained_glass_pane_to_properties_map() + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); + map + } + fn glow_lichen_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let down = self.down().unwrap(); + map.insert("down", { + match down { + true => "true", + false => "false", + } + }); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", } - BlockKind::YellowStainedGlassPane => self.yellow_stained_glass_pane_to_properties_map(), - BlockKind::LimeStainedGlassPane => self.lime_stained_glass_pane_to_properties_map(), - BlockKind::PinkStainedGlassPane => self.pink_stained_glass_pane_to_properties_map(), - BlockKind::GrayStainedGlassPane => self.gray_stained_glass_pane_to_properties_map(), - BlockKind::LightGrayStainedGlassPane => { - self.light_gray_stained_glass_pane_to_properties_map() + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", } - BlockKind::CyanStainedGlassPane => self.cyan_stained_glass_pane_to_properties_map(), - BlockKind::PurpleStainedGlassPane => self.purple_stained_glass_pane_to_properties_map(), - BlockKind::BlueStainedGlassPane => self.blue_stained_glass_pane_to_properties_map(), - BlockKind::BrownStainedGlassPane => self.brown_stained_glass_pane_to_properties_map(), - BlockKind::GreenStainedGlassPane => self.green_stained_glass_pane_to_properties_map(), - BlockKind::RedStainedGlassPane => self.red_stained_glass_pane_to_properties_map(), - BlockKind::BlackStainedGlassPane => self.black_stained_glass_pane_to_properties_map(), - BlockKind::AcaciaStairs => self.acacia_stairs_to_properties_map(), - BlockKind::DarkOakStairs => self.dark_oak_stairs_to_properties_map(), - BlockKind::SlimeBlock => self.slime_block_to_properties_map(), - BlockKind::Barrier => self.barrier_to_properties_map(), - BlockKind::IronTrapdoor => self.iron_trapdoor_to_properties_map(), - BlockKind::Prismarine => self.prismarine_to_properties_map(), - BlockKind::PrismarineBricks => self.prismarine_bricks_to_properties_map(), - BlockKind::DarkPrismarine => self.dark_prismarine_to_properties_map(), - BlockKind::PrismarineStairs => self.prismarine_stairs_to_properties_map(), - BlockKind::PrismarineBrickStairs => self.prismarine_brick_stairs_to_properties_map(), - BlockKind::DarkPrismarineStairs => self.dark_prismarine_stairs_to_properties_map(), - BlockKind::PrismarineSlab => self.prismarine_slab_to_properties_map(), - BlockKind::PrismarineBrickSlab => self.prismarine_brick_slab_to_properties_map(), - BlockKind::DarkPrismarineSlab => self.dark_prismarine_slab_to_properties_map(), - BlockKind::SeaLantern => self.sea_lantern_to_properties_map(), - BlockKind::HayBlock => self.hay_block_to_properties_map(), - BlockKind::WhiteCarpet => self.white_carpet_to_properties_map(), - BlockKind::OrangeCarpet => self.orange_carpet_to_properties_map(), - BlockKind::MagentaCarpet => self.magenta_carpet_to_properties_map(), - BlockKind::LightBlueCarpet => self.light_blue_carpet_to_properties_map(), - BlockKind::YellowCarpet => self.yellow_carpet_to_properties_map(), - BlockKind::LimeCarpet => self.lime_carpet_to_properties_map(), - BlockKind::PinkCarpet => self.pink_carpet_to_properties_map(), - BlockKind::GrayCarpet => self.gray_carpet_to_properties_map(), - BlockKind::LightGrayCarpet => self.light_gray_carpet_to_properties_map(), - BlockKind::CyanCarpet => self.cyan_carpet_to_properties_map(), - BlockKind::PurpleCarpet => self.purple_carpet_to_properties_map(), - BlockKind::BlueCarpet => self.blue_carpet_to_properties_map(), - BlockKind::BrownCarpet => self.brown_carpet_to_properties_map(), - BlockKind::GreenCarpet => self.green_carpet_to_properties_map(), - BlockKind::RedCarpet => self.red_carpet_to_properties_map(), - BlockKind::BlackCarpet => self.black_carpet_to_properties_map(), - BlockKind::Terracotta => self.terracotta_to_properties_map(), - BlockKind::CoalBlock => self.coal_block_to_properties_map(), - BlockKind::PackedIce => self.packed_ice_to_properties_map(), - BlockKind::Sunflower => self.sunflower_to_properties_map(), - BlockKind::Lilac => self.lilac_to_properties_map(), - BlockKind::RoseBush => self.rose_bush_to_properties_map(), - BlockKind::Peony => self.peony_to_properties_map(), - BlockKind::TallGrass => self.tall_grass_to_properties_map(), - BlockKind::LargeFern => self.large_fern_to_properties_map(), - BlockKind::WhiteBanner => self.white_banner_to_properties_map(), - BlockKind::OrangeBanner => self.orange_banner_to_properties_map(), - BlockKind::MagentaBanner => self.magenta_banner_to_properties_map(), - BlockKind::LightBlueBanner => self.light_blue_banner_to_properties_map(), - BlockKind::YellowBanner => self.yellow_banner_to_properties_map(), - BlockKind::LimeBanner => self.lime_banner_to_properties_map(), - BlockKind::PinkBanner => self.pink_banner_to_properties_map(), - BlockKind::GrayBanner => self.gray_banner_to_properties_map(), - BlockKind::LightGrayBanner => self.light_gray_banner_to_properties_map(), - BlockKind::CyanBanner => self.cyan_banner_to_properties_map(), - BlockKind::PurpleBanner => self.purple_banner_to_properties_map(), - BlockKind::BlueBanner => self.blue_banner_to_properties_map(), - BlockKind::BrownBanner => self.brown_banner_to_properties_map(), - BlockKind::GreenBanner => self.green_banner_to_properties_map(), - BlockKind::RedBanner => self.red_banner_to_properties_map(), - BlockKind::BlackBanner => self.black_banner_to_properties_map(), - BlockKind::WhiteWallBanner => self.white_wall_banner_to_properties_map(), - BlockKind::OrangeWallBanner => self.orange_wall_banner_to_properties_map(), - BlockKind::MagentaWallBanner => self.magenta_wall_banner_to_properties_map(), - BlockKind::LightBlueWallBanner => self.light_blue_wall_banner_to_properties_map(), - BlockKind::YellowWallBanner => self.yellow_wall_banner_to_properties_map(), - BlockKind::LimeWallBanner => self.lime_wall_banner_to_properties_map(), - BlockKind::PinkWallBanner => self.pink_wall_banner_to_properties_map(), - BlockKind::GrayWallBanner => self.gray_wall_banner_to_properties_map(), - BlockKind::LightGrayWallBanner => self.light_gray_wall_banner_to_properties_map(), - BlockKind::CyanWallBanner => self.cyan_wall_banner_to_properties_map(), - BlockKind::PurpleWallBanner => self.purple_wall_banner_to_properties_map(), - BlockKind::BlueWallBanner => self.blue_wall_banner_to_properties_map(), - BlockKind::BrownWallBanner => self.brown_wall_banner_to_properties_map(), - BlockKind::GreenWallBanner => self.green_wall_banner_to_properties_map(), - BlockKind::RedWallBanner => self.red_wall_banner_to_properties_map(), - BlockKind::BlackWallBanner => self.black_wall_banner_to_properties_map(), - BlockKind::RedSandstone => self.red_sandstone_to_properties_map(), - BlockKind::ChiseledRedSandstone => self.chiseled_red_sandstone_to_properties_map(), - BlockKind::CutRedSandstone => self.cut_red_sandstone_to_properties_map(), - BlockKind::RedSandstoneStairs => self.red_sandstone_stairs_to_properties_map(), - BlockKind::OakSlab => self.oak_slab_to_properties_map(), - BlockKind::SpruceSlab => self.spruce_slab_to_properties_map(), - BlockKind::BirchSlab => self.birch_slab_to_properties_map(), - BlockKind::JungleSlab => self.jungle_slab_to_properties_map(), - BlockKind::AcaciaSlab => self.acacia_slab_to_properties_map(), - BlockKind::DarkOakSlab => self.dark_oak_slab_to_properties_map(), - BlockKind::StoneSlab => self.stone_slab_to_properties_map(), - BlockKind::SmoothStoneSlab => self.smooth_stone_slab_to_properties_map(), - BlockKind::SandstoneSlab => self.sandstone_slab_to_properties_map(), - BlockKind::CutSandstoneSlab => self.cut_sandstone_slab_to_properties_map(), - BlockKind::PetrifiedOakSlab => self.petrified_oak_slab_to_properties_map(), - BlockKind::CobblestoneSlab => self.cobblestone_slab_to_properties_map(), - BlockKind::BrickSlab => self.brick_slab_to_properties_map(), - BlockKind::StoneBrickSlab => self.stone_brick_slab_to_properties_map(), - BlockKind::NetherBrickSlab => self.nether_brick_slab_to_properties_map(), - BlockKind::QuartzSlab => self.quartz_slab_to_properties_map(), - BlockKind::RedSandstoneSlab => self.red_sandstone_slab_to_properties_map(), - BlockKind::CutRedSandstoneSlab => self.cut_red_sandstone_slab_to_properties_map(), - BlockKind::PurpurSlab => self.purpur_slab_to_properties_map(), - BlockKind::SmoothStone => self.smooth_stone_to_properties_map(), - BlockKind::SmoothSandstone => self.smooth_sandstone_to_properties_map(), - BlockKind::SmoothQuartz => self.smooth_quartz_to_properties_map(), - BlockKind::SmoothRedSandstone => self.smooth_red_sandstone_to_properties_map(), - BlockKind::SpruceFenceGate => self.spruce_fence_gate_to_properties_map(), - BlockKind::BirchFenceGate => self.birch_fence_gate_to_properties_map(), - BlockKind::JungleFenceGate => self.jungle_fence_gate_to_properties_map(), - BlockKind::AcaciaFenceGate => self.acacia_fence_gate_to_properties_map(), - BlockKind::DarkOakFenceGate => self.dark_oak_fence_gate_to_properties_map(), - BlockKind::SpruceFence => self.spruce_fence_to_properties_map(), - BlockKind::BirchFence => self.birch_fence_to_properties_map(), - BlockKind::JungleFence => self.jungle_fence_to_properties_map(), - BlockKind::AcaciaFence => self.acacia_fence_to_properties_map(), - BlockKind::DarkOakFence => self.dark_oak_fence_to_properties_map(), - BlockKind::SpruceDoor => self.spruce_door_to_properties_map(), - BlockKind::BirchDoor => self.birch_door_to_properties_map(), - BlockKind::JungleDoor => self.jungle_door_to_properties_map(), - BlockKind::AcaciaDoor => self.acacia_door_to_properties_map(), - BlockKind::DarkOakDoor => self.dark_oak_door_to_properties_map(), - BlockKind::EndRod => self.end_rod_to_properties_map(), - BlockKind::ChorusPlant => self.chorus_plant_to_properties_map(), - BlockKind::ChorusFlower => self.chorus_flower_to_properties_map(), - BlockKind::PurpurBlock => self.purpur_block_to_properties_map(), - BlockKind::PurpurPillar => self.purpur_pillar_to_properties_map(), - BlockKind::PurpurStairs => self.purpur_stairs_to_properties_map(), - BlockKind::EndStoneBricks => self.end_stone_bricks_to_properties_map(), - BlockKind::Beetroots => self.beetroots_to_properties_map(), - BlockKind::GrassPath => self.grass_path_to_properties_map(), - BlockKind::EndGateway => self.end_gateway_to_properties_map(), - BlockKind::RepeatingCommandBlock => self.repeating_command_block_to_properties_map(), - BlockKind::ChainCommandBlock => self.chain_command_block_to_properties_map(), - BlockKind::FrostedIce => self.frosted_ice_to_properties_map(), - BlockKind::MagmaBlock => self.magma_block_to_properties_map(), - BlockKind::NetherWartBlock => self.nether_wart_block_to_properties_map(), - BlockKind::RedNetherBricks => self.red_nether_bricks_to_properties_map(), - BlockKind::BoneBlock => self.bone_block_to_properties_map(), - BlockKind::StructureVoid => self.structure_void_to_properties_map(), - BlockKind::Observer => self.observer_to_properties_map(), - BlockKind::ShulkerBox => self.shulker_box_to_properties_map(), - BlockKind::WhiteShulkerBox => self.white_shulker_box_to_properties_map(), - BlockKind::OrangeShulkerBox => self.orange_shulker_box_to_properties_map(), - BlockKind::MagentaShulkerBox => self.magenta_shulker_box_to_properties_map(), - BlockKind::LightBlueShulkerBox => self.light_blue_shulker_box_to_properties_map(), - BlockKind::YellowShulkerBox => self.yellow_shulker_box_to_properties_map(), - BlockKind::LimeShulkerBox => self.lime_shulker_box_to_properties_map(), - BlockKind::PinkShulkerBox => self.pink_shulker_box_to_properties_map(), - BlockKind::GrayShulkerBox => self.gray_shulker_box_to_properties_map(), - BlockKind::LightGrayShulkerBox => self.light_gray_shulker_box_to_properties_map(), - BlockKind::CyanShulkerBox => self.cyan_shulker_box_to_properties_map(), - BlockKind::PurpleShulkerBox => self.purple_shulker_box_to_properties_map(), - BlockKind::BlueShulkerBox => self.blue_shulker_box_to_properties_map(), - BlockKind::BrownShulkerBox => self.brown_shulker_box_to_properties_map(), - BlockKind::GreenShulkerBox => self.green_shulker_box_to_properties_map(), - BlockKind::RedShulkerBox => self.red_shulker_box_to_properties_map(), - BlockKind::BlackShulkerBox => self.black_shulker_box_to_properties_map(), - BlockKind::WhiteGlazedTerracotta => self.white_glazed_terracotta_to_properties_map(), - BlockKind::OrangeGlazedTerracotta => self.orange_glazed_terracotta_to_properties_map(), - BlockKind::MagentaGlazedTerracotta => { - self.magenta_glazed_terracotta_to_properties_map() + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", } - BlockKind::LightBlueGlazedTerracotta => { - self.light_blue_glazed_terracotta_to_properties_map() + }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", } - BlockKind::YellowGlazedTerracotta => self.yellow_glazed_terracotta_to_properties_map(), - BlockKind::LimeGlazedTerracotta => self.lime_glazed_terracotta_to_properties_map(), - BlockKind::PinkGlazedTerracotta => self.pink_glazed_terracotta_to_properties_map(), - BlockKind::GrayGlazedTerracotta => self.gray_glazed_terracotta_to_properties_map(), - BlockKind::LightGrayGlazedTerracotta => { - self.light_gray_glazed_terracotta_to_properties_map() + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } - BlockKind::CyanGlazedTerracotta => self.cyan_glazed_terracotta_to_properties_map(), - BlockKind::PurpleGlazedTerracotta => self.purple_glazed_terracotta_to_properties_map(), - BlockKind::BlueGlazedTerracotta => self.blue_glazed_terracotta_to_properties_map(), - BlockKind::BrownGlazedTerracotta => self.brown_glazed_terracotta_to_properties_map(), - BlockKind::GreenGlazedTerracotta => self.green_glazed_terracotta_to_properties_map(), - BlockKind::RedGlazedTerracotta => self.red_glazed_terracotta_to_properties_map(), - BlockKind::BlackGlazedTerracotta => self.black_glazed_terracotta_to_properties_map(), - BlockKind::WhiteConcrete => self.white_concrete_to_properties_map(), - BlockKind::OrangeConcrete => self.orange_concrete_to_properties_map(), - BlockKind::MagentaConcrete => self.magenta_concrete_to_properties_map(), - BlockKind::LightBlueConcrete => self.light_blue_concrete_to_properties_map(), - BlockKind::YellowConcrete => self.yellow_concrete_to_properties_map(), - BlockKind::LimeConcrete => self.lime_concrete_to_properties_map(), - BlockKind::PinkConcrete => self.pink_concrete_to_properties_map(), - BlockKind::GrayConcrete => self.gray_concrete_to_properties_map(), - BlockKind::LightGrayConcrete => self.light_gray_concrete_to_properties_map(), - BlockKind::CyanConcrete => self.cyan_concrete_to_properties_map(), - BlockKind::PurpleConcrete => self.purple_concrete_to_properties_map(), - BlockKind::BlueConcrete => self.blue_concrete_to_properties_map(), - BlockKind::BrownConcrete => self.brown_concrete_to_properties_map(), - BlockKind::GreenConcrete => self.green_concrete_to_properties_map(), - BlockKind::RedConcrete => self.red_concrete_to_properties_map(), - BlockKind::BlackConcrete => self.black_concrete_to_properties_map(), - BlockKind::WhiteConcretePowder => self.white_concrete_powder_to_properties_map(), - BlockKind::OrangeConcretePowder => self.orange_concrete_powder_to_properties_map(), - BlockKind::MagentaConcretePowder => self.magenta_concrete_powder_to_properties_map(), - BlockKind::LightBlueConcretePowder => { - self.light_blue_concrete_powder_to_properties_map() + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", } - BlockKind::YellowConcretePowder => self.yellow_concrete_powder_to_properties_map(), - BlockKind::LimeConcretePowder => self.lime_concrete_powder_to_properties_map(), - BlockKind::PinkConcretePowder => self.pink_concrete_powder_to_properties_map(), - BlockKind::GrayConcretePowder => self.gray_concrete_powder_to_properties_map(), - BlockKind::LightGrayConcretePowder => { - self.light_gray_concrete_powder_to_properties_map() + }); + map + } + fn oak_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let in_wall = self.in_wall().unwrap(); + map.insert("in_wall", { + match in_wall { + true => "true", + false => "false", } - BlockKind::CyanConcretePowder => self.cyan_concrete_powder_to_properties_map(), - BlockKind::PurpleConcretePowder => self.purple_concrete_powder_to_properties_map(), - BlockKind::BlueConcretePowder => self.blue_concrete_powder_to_properties_map(), - BlockKind::BrownConcretePowder => self.brown_concrete_powder_to_properties_map(), - BlockKind::GreenConcretePowder => self.green_concrete_powder_to_properties_map(), - BlockKind::RedConcretePowder => self.red_concrete_powder_to_properties_map(), - BlockKind::BlackConcretePowder => self.black_concrete_powder_to_properties_map(), - BlockKind::Kelp => self.kelp_to_properties_map(), - BlockKind::KelpPlant => self.kelp_plant_to_properties_map(), - BlockKind::DriedKelpBlock => self.dried_kelp_block_to_properties_map(), - BlockKind::TurtleEgg => self.turtle_egg_to_properties_map(), - BlockKind::DeadTubeCoralBlock => self.dead_tube_coral_block_to_properties_map(), - BlockKind::DeadBrainCoralBlock => self.dead_brain_coral_block_to_properties_map(), - BlockKind::DeadBubbleCoralBlock => self.dead_bubble_coral_block_to_properties_map(), - BlockKind::DeadFireCoralBlock => self.dead_fire_coral_block_to_properties_map(), - BlockKind::DeadHornCoralBlock => self.dead_horn_coral_block_to_properties_map(), - BlockKind::TubeCoralBlock => self.tube_coral_block_to_properties_map(), - BlockKind::BrainCoralBlock => self.brain_coral_block_to_properties_map(), - BlockKind::BubbleCoralBlock => self.bubble_coral_block_to_properties_map(), - BlockKind::FireCoralBlock => self.fire_coral_block_to_properties_map(), - BlockKind::HornCoralBlock => self.horn_coral_block_to_properties_map(), - BlockKind::DeadTubeCoral => self.dead_tube_coral_to_properties_map(), - BlockKind::DeadBrainCoral => self.dead_brain_coral_to_properties_map(), - BlockKind::DeadBubbleCoral => self.dead_bubble_coral_to_properties_map(), - BlockKind::DeadFireCoral => self.dead_fire_coral_to_properties_map(), - BlockKind::DeadHornCoral => self.dead_horn_coral_to_properties_map(), - BlockKind::TubeCoral => self.tube_coral_to_properties_map(), - BlockKind::BrainCoral => self.brain_coral_to_properties_map(), - BlockKind::BubbleCoral => self.bubble_coral_to_properties_map(), - BlockKind::FireCoral => self.fire_coral_to_properties_map(), - BlockKind::HornCoral => self.horn_coral_to_properties_map(), - BlockKind::DeadTubeCoralFan => self.dead_tube_coral_fan_to_properties_map(), - BlockKind::DeadBrainCoralFan => self.dead_brain_coral_fan_to_properties_map(), - BlockKind::DeadBubbleCoralFan => self.dead_bubble_coral_fan_to_properties_map(), - BlockKind::DeadFireCoralFan => self.dead_fire_coral_fan_to_properties_map(), - BlockKind::DeadHornCoralFan => self.dead_horn_coral_fan_to_properties_map(), - BlockKind::TubeCoralFan => self.tube_coral_fan_to_properties_map(), - BlockKind::BrainCoralFan => self.brain_coral_fan_to_properties_map(), - BlockKind::BubbleCoralFan => self.bubble_coral_fan_to_properties_map(), - BlockKind::FireCoralFan => self.fire_coral_fan_to_properties_map(), - BlockKind::HornCoralFan => self.horn_coral_fan_to_properties_map(), - BlockKind::DeadTubeCoralWallFan => self.dead_tube_coral_wall_fan_to_properties_map(), - BlockKind::DeadBrainCoralWallFan => self.dead_brain_coral_wall_fan_to_properties_map(), - BlockKind::DeadBubbleCoralWallFan => { - self.dead_bubble_coral_wall_fan_to_properties_map() + }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", } - BlockKind::DeadFireCoralWallFan => self.dead_fire_coral_wall_fan_to_properties_map(), - BlockKind::DeadHornCoralWallFan => self.dead_horn_coral_wall_fan_to_properties_map(), - BlockKind::TubeCoralWallFan => self.tube_coral_wall_fan_to_properties_map(), - BlockKind::BrainCoralWallFan => self.brain_coral_wall_fan_to_properties_map(), - BlockKind::BubbleCoralWallFan => self.bubble_coral_wall_fan_to_properties_map(), - BlockKind::FireCoralWallFan => self.fire_coral_wall_fan_to_properties_map(), - BlockKind::HornCoralWallFan => self.horn_coral_wall_fan_to_properties_map(), - BlockKind::SeaPickle => self.sea_pickle_to_properties_map(), - BlockKind::BlueIce => self.blue_ice_to_properties_map(), - BlockKind::Conduit => self.conduit_to_properties_map(), - BlockKind::BambooSapling => self.bamboo_sapling_to_properties_map(), - BlockKind::Bamboo => self.bamboo_to_properties_map(), - BlockKind::PottedBamboo => self.potted_bamboo_to_properties_map(), - BlockKind::VoidAir => self.void_air_to_properties_map(), - BlockKind::CaveAir => self.cave_air_to_properties_map(), - BlockKind::BubbleColumn => self.bubble_column_to_properties_map(), - BlockKind::PolishedGraniteStairs => self.polished_granite_stairs_to_properties_map(), - BlockKind::SmoothRedSandstoneStairs => { - self.smooth_red_sandstone_stairs_to_properties_map() + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", } - BlockKind::MossyStoneBrickStairs => self.mossy_stone_brick_stairs_to_properties_map(), - BlockKind::PolishedDioriteStairs => self.polished_diorite_stairs_to_properties_map(), - BlockKind::MossyCobblestoneStairs => self.mossy_cobblestone_stairs_to_properties_map(), - BlockKind::EndStoneBrickStairs => self.end_stone_brick_stairs_to_properties_map(), - BlockKind::StoneStairs => self.stone_stairs_to_properties_map(), - BlockKind::SmoothSandstoneStairs => self.smooth_sandstone_stairs_to_properties_map(), - BlockKind::SmoothQuartzStairs => self.smooth_quartz_stairs_to_properties_map(), - BlockKind::GraniteStairs => self.granite_stairs_to_properties_map(), - BlockKind::AndesiteStairs => self.andesite_stairs_to_properties_map(), - BlockKind::RedNetherBrickStairs => self.red_nether_brick_stairs_to_properties_map(), - BlockKind::PolishedAndesiteStairs => self.polished_andesite_stairs_to_properties_map(), - BlockKind::DioriteStairs => self.diorite_stairs_to_properties_map(), - BlockKind::PolishedGraniteSlab => self.polished_granite_slab_to_properties_map(), - BlockKind::SmoothRedSandstoneSlab => self.smooth_red_sandstone_slab_to_properties_map(), - BlockKind::MossyStoneBrickSlab => self.mossy_stone_brick_slab_to_properties_map(), - BlockKind::PolishedDioriteSlab => self.polished_diorite_slab_to_properties_map(), - BlockKind::MossyCobblestoneSlab => self.mossy_cobblestone_slab_to_properties_map(), - BlockKind::EndStoneBrickSlab => self.end_stone_brick_slab_to_properties_map(), - BlockKind::SmoothSandstoneSlab => self.smooth_sandstone_slab_to_properties_map(), - BlockKind::SmoothQuartzSlab => self.smooth_quartz_slab_to_properties_map(), - BlockKind::GraniteSlab => self.granite_slab_to_properties_map(), - BlockKind::AndesiteSlab => self.andesite_slab_to_properties_map(), - BlockKind::RedNetherBrickSlab => self.red_nether_brick_slab_to_properties_map(), - BlockKind::PolishedAndesiteSlab => self.polished_andesite_slab_to_properties_map(), - BlockKind::DioriteSlab => self.diorite_slab_to_properties_map(), - BlockKind::BrickWall => self.brick_wall_to_properties_map(), - BlockKind::PrismarineWall => self.prismarine_wall_to_properties_map(), - BlockKind::RedSandstoneWall => self.red_sandstone_wall_to_properties_map(), - BlockKind::MossyStoneBrickWall => self.mossy_stone_brick_wall_to_properties_map(), - BlockKind::GraniteWall => self.granite_wall_to_properties_map(), - BlockKind::StoneBrickWall => self.stone_brick_wall_to_properties_map(), - BlockKind::NetherBrickWall => self.nether_brick_wall_to_properties_map(), - BlockKind::AndesiteWall => self.andesite_wall_to_properties_map(), - BlockKind::RedNetherBrickWall => self.red_nether_brick_wall_to_properties_map(), - BlockKind::SandstoneWall => self.sandstone_wall_to_properties_map(), - BlockKind::EndStoneBrickWall => self.end_stone_brick_wall_to_properties_map(), - BlockKind::DioriteWall => self.diorite_wall_to_properties_map(), - BlockKind::Scaffolding => self.scaffolding_to_properties_map(), - BlockKind::Loom => self.loom_to_properties_map(), - BlockKind::Barrel => self.barrel_to_properties_map(), - BlockKind::Smoker => self.smoker_to_properties_map(), - BlockKind::BlastFurnace => self.blast_furnace_to_properties_map(), - BlockKind::CartographyTable => self.cartography_table_to_properties_map(), - BlockKind::FletchingTable => self.fletching_table_to_properties_map(), - BlockKind::Grindstone => self.grindstone_to_properties_map(), - BlockKind::Lectern => self.lectern_to_properties_map(), - BlockKind::SmithingTable => self.smithing_table_to_properties_map(), - BlockKind::Stonecutter => self.stonecutter_to_properties_map(), - BlockKind::Bell => self.bell_to_properties_map(), - BlockKind::Lantern => self.lantern_to_properties_map(), - BlockKind::SoulLantern => self.soul_lantern_to_properties_map(), - BlockKind::Campfire => self.campfire_to_properties_map(), - BlockKind::SoulCampfire => self.soul_campfire_to_properties_map(), - BlockKind::SweetBerryBush => self.sweet_berry_bush_to_properties_map(), - BlockKind::WarpedStem => self.warped_stem_to_properties_map(), - BlockKind::StrippedWarpedStem => self.stripped_warped_stem_to_properties_map(), - BlockKind::WarpedHyphae => self.warped_hyphae_to_properties_map(), - BlockKind::StrippedWarpedHyphae => self.stripped_warped_hyphae_to_properties_map(), - BlockKind::WarpedNylium => self.warped_nylium_to_properties_map(), - BlockKind::WarpedFungus => self.warped_fungus_to_properties_map(), - BlockKind::WarpedWartBlock => self.warped_wart_block_to_properties_map(), - BlockKind::WarpedRoots => self.warped_roots_to_properties_map(), - BlockKind::NetherSprouts => self.nether_sprouts_to_properties_map(), - BlockKind::CrimsonStem => self.crimson_stem_to_properties_map(), - BlockKind::StrippedCrimsonStem => self.stripped_crimson_stem_to_properties_map(), - BlockKind::CrimsonHyphae => self.crimson_hyphae_to_properties_map(), - BlockKind::StrippedCrimsonHyphae => self.stripped_crimson_hyphae_to_properties_map(), - BlockKind::CrimsonNylium => self.crimson_nylium_to_properties_map(), - BlockKind::CrimsonFungus => self.crimson_fungus_to_properties_map(), - BlockKind::Shroomlight => self.shroomlight_to_properties_map(), - BlockKind::WeepingVines => self.weeping_vines_to_properties_map(), - BlockKind::WeepingVinesPlant => self.weeping_vines_plant_to_properties_map(), - BlockKind::TwistingVines => self.twisting_vines_to_properties_map(), - BlockKind::TwistingVinesPlant => self.twisting_vines_plant_to_properties_map(), - BlockKind::CrimsonRoots => self.crimson_roots_to_properties_map(), - BlockKind::CrimsonPlanks => self.crimson_planks_to_properties_map(), - BlockKind::WarpedPlanks => self.warped_planks_to_properties_map(), - BlockKind::CrimsonSlab => self.crimson_slab_to_properties_map(), - BlockKind::WarpedSlab => self.warped_slab_to_properties_map(), - BlockKind::CrimsonPressurePlate => self.crimson_pressure_plate_to_properties_map(), - BlockKind::WarpedPressurePlate => self.warped_pressure_plate_to_properties_map(), - BlockKind::CrimsonFence => self.crimson_fence_to_properties_map(), - BlockKind::WarpedFence => self.warped_fence_to_properties_map(), - BlockKind::CrimsonTrapdoor => self.crimson_trapdoor_to_properties_map(), - BlockKind::WarpedTrapdoor => self.warped_trapdoor_to_properties_map(), - BlockKind::CrimsonFenceGate => self.crimson_fence_gate_to_properties_map(), - BlockKind::WarpedFenceGate => self.warped_fence_gate_to_properties_map(), - BlockKind::CrimsonStairs => self.crimson_stairs_to_properties_map(), - BlockKind::WarpedStairs => self.warped_stairs_to_properties_map(), - BlockKind::CrimsonButton => self.crimson_button_to_properties_map(), - BlockKind::WarpedButton => self.warped_button_to_properties_map(), - BlockKind::CrimsonDoor => self.crimson_door_to_properties_map(), - BlockKind::WarpedDoor => self.warped_door_to_properties_map(), - BlockKind::CrimsonSign => self.crimson_sign_to_properties_map(), - BlockKind::WarpedSign => self.warped_sign_to_properties_map(), - BlockKind::CrimsonWallSign => self.crimson_wall_sign_to_properties_map(), - BlockKind::WarpedWallSign => self.warped_wall_sign_to_properties_map(), - BlockKind::StructureBlock => self.structure_block_to_properties_map(), - BlockKind::Jigsaw => self.jigsaw_to_properties_map(), - BlockKind::Composter => self.composter_to_properties_map(), - BlockKind::Target => self.target_to_properties_map(), - BlockKind::BeeNest => self.bee_nest_to_properties_map(), - BlockKind::Beehive => self.beehive_to_properties_map(), - BlockKind::HoneyBlock => self.honey_block_to_properties_map(), - BlockKind::HoneycombBlock => self.honeycomb_block_to_properties_map(), - BlockKind::NetheriteBlock => self.netherite_block_to_properties_map(), - BlockKind::AncientDebris => self.ancient_debris_to_properties_map(), - BlockKind::CryingObsidian => self.crying_obsidian_to_properties_map(), - BlockKind::RespawnAnchor => self.respawn_anchor_to_properties_map(), - BlockKind::PottedCrimsonFungus => self.potted_crimson_fungus_to_properties_map(), - BlockKind::PottedWarpedFungus => self.potted_warped_fungus_to_properties_map(), - BlockKind::PottedCrimsonRoots => self.potted_crimson_roots_to_properties_map(), - BlockKind::PottedWarpedRoots => self.potted_warped_roots_to_properties_map(), - BlockKind::Lodestone => self.lodestone_to_properties_map(), - BlockKind::Blackstone => self.blackstone_to_properties_map(), - BlockKind::BlackstoneStairs => self.blackstone_stairs_to_properties_map(), - BlockKind::BlackstoneWall => self.blackstone_wall_to_properties_map(), - BlockKind::BlackstoneSlab => self.blackstone_slab_to_properties_map(), - BlockKind::PolishedBlackstone => self.polished_blackstone_to_properties_map(), - BlockKind::PolishedBlackstoneBricks => { - self.polished_blackstone_bricks_to_properties_map() + }); + map + } + fn brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } - BlockKind::CrackedPolishedBlackstoneBricks => { - self.cracked_polished_blackstone_bricks_to_properties_map() + }); + map + } + fn stone_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } - BlockKind::ChiseledPolishedBlackstone => { - self.chiseled_polished_blackstone_to_properties_map() + }); + map + } + fn mycelium_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let snowy = self.snowy().unwrap(); + map.insert("snowy", { + match snowy { + true => "true", + false => "false", } - BlockKind::PolishedBlackstoneBrickSlab => { - self.polished_blackstone_brick_slab_to_properties_map() + }); + map + } + fn lily_pad_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn nether_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn nether_brick_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", } - BlockKind::PolishedBlackstoneBrickStairs => { - self.polished_blackstone_brick_stairs_to_properties_map() + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", } - BlockKind::PolishedBlackstoneBrickWall => { - self.polished_blackstone_brick_wall_to_properties_map() + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", } - BlockKind::GildedBlackstone => self.gilded_blackstone_to_properties_map(), - BlockKind::PolishedBlackstoneStairs => { - self.polished_blackstone_stairs_to_properties_map() + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } - BlockKind::PolishedBlackstoneSlab => self.polished_blackstone_slab_to_properties_map(), - BlockKind::PolishedBlackstonePressurePlate => { - self.polished_blackstone_pressure_plate_to_properties_map() + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", } - BlockKind::PolishedBlackstoneButton => { - self.polished_blackstone_button_to_properties_map() + }); + map + } + fn nether_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } - BlockKind::PolishedBlackstoneWall => self.polished_blackstone_wall_to_properties_map(), - BlockKind::ChiseledNetherBricks => self.chiseled_nether_bricks_to_properties_map(), - BlockKind::CrackedNetherBricks => self.cracked_nether_bricks_to_properties_map(), - BlockKind::QuartzBricks => self.quartz_bricks_to_properties_map(), - } + }); + map } - fn air_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn nether_wart_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let age_0_3 = self.age_0_3().unwrap(); + map.insert("age", { + match age_0_3 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + _ => "unknown", + } + }); map } - fn stone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn enchanting_table_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn granite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brewing_stand_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let has_bottle_0 = self.has_bottle_0().unwrap(); + map.insert("has_bottle_0", { + match has_bottle_0 { + true => "true", + false => "false", + } + }); + let has_bottle_1 = self.has_bottle_1().unwrap(); + map.insert("has_bottle_1", { + match has_bottle_1 { + true => "true", + false => "false", + } + }); + let has_bottle_2 = self.has_bottle_2().unwrap(); + map.insert("has_bottle_2", { + match has_bottle_2 { + true => "true", + false => "false", + } + }); map } - fn polished_granite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cauldron_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn diorite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn water_cauldron_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let level_1_3 = self.level_1_3().unwrap(); + map.insert("level", { + match level_1_3 { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + _ => "unknown", + } + }); map } - fn polished_diorite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lava_cauldron_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn andesite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn powder_snow_cauldron_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let level_1_3 = self.level_1_3().unwrap(); + map.insert("level", { + match level_1_3 { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + _ => "unknown", + } + }); map } - fn polished_andesite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn end_portal_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn grass_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn end_portal_frame_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let snowy = self.snowy().unwrap(); - map.insert("snowy", { - match snowy { + let eye = self.eye().unwrap(); + map.insert("eye", { + match eye { true => "true", false => "false", } }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn dirt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn end_stone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn coarse_dirt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dragon_egg_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn podzol_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn redstone_lamp_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let snowy = self.snowy().unwrap(); - map.insert("snowy", { - match snowy { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn cobblestone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn oak_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cocoa_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let age_0_2 = self.age_0_2().unwrap(); + map.insert("age", { + match age_0_2 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + _ => "unknown", + } + }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn spruce_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn sandstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn birch_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn emerald_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn jungle_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn deepslate_emerald_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn acacia_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn ender_chest_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn dark_oak_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn tripwire_hook_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let attached = self.attached().unwrap(); + map.insert("attached", { + match attached { + true => "true", + false => "false", + } + }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); map } - fn oak_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn tripwire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let stage = self.stage().unwrap(); - map.insert("stage", { - match stage { - 0i32 => "0", - 1i32 => "1", - _ => "unknown", + let attached = self.attached().unwrap(); + map.insert("attached", { + match attached { + true => "true", + false => "false", + } + }); + let disarmed = self.disarmed().unwrap(); + map.insert("disarmed", { + match disarmed { + true => "true", + false => "false", + } + }); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", } }); map } - fn spruce_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn emerald_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let stage = self.stage().unwrap(); - map.insert("stage", { - match stage { - 0i32 => "0", - 1i32 => "1", - _ => "unknown", - } - }); map } - fn birch_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn spruce_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let stage = self.stage().unwrap(); - map.insert("stage", { - match stage { - 0i32 => "0", - 1i32 => "1", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn jungle_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn birch_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let stage = self.stage().unwrap(); - map.insert("stage", { - match stage { - 0i32 => "0", - 1i32 => "1", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn acacia_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn jungle_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let stage = self.stage().unwrap(); - map.insert("stage", { - match stage { - 0i32 => "0", - 1i32 => "1", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn dark_oak_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn command_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let stage = self.stage().unwrap(); - map.insert("stage", { - match stage { - 0i32 => "0", - 1i32 => "1", - _ => "unknown", + let conditional = self.conditional().unwrap(); + map.insert("conditional", { + match conditional { + true => "true", + false => "false", } }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn bedrock_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn beacon_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn water_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cobblestone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let water_level = self.water_level().unwrap(); - map.insert("level", { - match water_level { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", } }); - map - } - fn lava_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let water_level = self.water_level().unwrap(); - map.insert("level", { - match water_level { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn sand_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn red_sand_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn gravel_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn gold_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn iron_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn coal_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn nether_gold_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn oak_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn spruce_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn birch_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn mossy_cobblestone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn jungle_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn flower_pot_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn acacia_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_oak_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn dark_oak_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_spruce_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_spruce_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_birch_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_birch_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_jungle_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_jungle_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_acacia_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_acacia_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_dark_oak_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_dark_oak_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_fern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_oak_log_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_dandelion_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn oak_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_poppy_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn spruce_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_blue_orchid_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn birch_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_allium_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn jungle_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_azure_bluet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn acacia_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_red_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn dark_oak_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_orange_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_oak_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_white_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_spruce_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_pink_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_birch_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_oxeye_daisy_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_jungle_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_cornflower_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_acacia_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_lily_of_the_valley_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn stripped_dark_oak_wood_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_wither_rose_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn oak_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_red_mushroom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let distance_1_7 = self.distance_1_7().unwrap(); - map.insert("distance", { - match distance_1_7 { - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", - } - }); - let persistent = self.persistent().unwrap(); - map.insert("persistent", { - match persistent { - true => "true", - false => "false", - } - }); map } - fn spruce_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_brown_mushroom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let distance_1_7 = self.distance_1_7().unwrap(); - map.insert("distance", { - match distance_1_7 { - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", - } - }); - let persistent = self.persistent().unwrap(); - map.insert("persistent", { - match persistent { - true => "true", - false => "false", - } - }); map } - fn birch_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_dead_bush_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let distance_1_7 = self.distance_1_7().unwrap(); - map.insert("distance", { - match distance_1_7 { - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", - } - }); - let persistent = self.persistent().unwrap(); - map.insert("persistent", { - match persistent { - true => "true", - false => "false", - } - }); map } - fn jungle_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_cactus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let distance_1_7 = self.distance_1_7().unwrap(); - map.insert("distance", { - match distance_1_7 { - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", - } - }); - let persistent = self.persistent().unwrap(); - map.insert("persistent", { - match persistent { - true => "true", - false => "false", - } - }); map } - fn acacia_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn carrots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let distance_1_7 = self.distance_1_7().unwrap(); - map.insert("distance", { - match distance_1_7 { + let age_0_7 = self.age_0_7().unwrap(); + map.insert("age", { + match age_0_7 { + 0i32 => "0", 1i32 => "1", 2i32 => "2", 3i32 => "3", @@ -10725,20 +15984,14 @@ impl BlockId { _ => "unknown", } }); - let persistent = self.persistent().unwrap(); - map.insert("persistent", { - match persistent { - true => "true", - false => "false", - } - }); map } - fn dark_oak_leaves_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potatoes_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let distance_1_7 = self.distance_1_7().unwrap(); - map.insert("distance", { - match distance_1_7 { + let age_0_7 = self.age_0_7().unwrap(); + map.insert("age", { + match age_0_7 { + 0i32 => "0", 1i32 => "1", 2i32 => "2", 3i32 => "3", @@ -10749,95 +16002,29 @@ impl BlockId { _ => "unknown", } }); - let persistent = self.persistent().unwrap(); - map.insert("persistent", { - match persistent { - true => "true", - false => "false", - } - }); - map - } - fn sponge_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn wet_sponge_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn lapis_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn lapis_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); map } - fn dispenser_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn oak_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - let triggered = self.triggered().unwrap(); - map.insert("triggered", { - match triggered { + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); map } - fn sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn chiseled_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn cut_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn note_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn spruce_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let instrument = self.instrument().unwrap(); - map.insert("instrument", { instrument.as_str() }); - let note = self.note().unwrap(); - map.insert("note", { - match note { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - 16i32 => "16", - 17i32 => "17", - 18i32 => "18", - 19i32 => "19", - 20i32 => "20", - 21i32 => "21", - 22i32 => "22", - 23i32 => "23", - 24i32 => "24", - _ => "unknown", - } - }); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); let powered = self.powered().unwrap(); map.insert("powered", { match powered { @@ -10847,261 +16034,353 @@ impl BlockId { }); map } - fn white_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn birch_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn orange_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn jungle_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn magenta_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn acacia_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn light_blue_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dark_oak_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn yellow_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn skeleton_skull_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn lime_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn skeleton_wall_skull_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", + map + } + fn wither_skeleton_skull_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn pink_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn wither_skeleton_wall_skull_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", + map + } + fn zombie_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn gray_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn zombie_wall_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", + map + } + fn player_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn light_gray_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn player_wall_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", + map + } + fn creeper_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn cyan_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn creeper_wall_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", + map + } + fn dragon_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn purple_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dragon_wall_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", - } - }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn blue_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn anvil_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", - } - }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn brown_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn chipped_anvil_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", - } - }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn green_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn damaged_anvil_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", - } - }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn red_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn trapped_chest_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let chest_kind = self.chest_kind().unwrap(); + map.insert("type", { chest_kind.as_str() }); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn black_bed_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_weighted_pressure_plate_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let occupied = self.occupied().unwrap(); - map.insert("occupied", { - match occupied { - true => "true", - false => "false", + let power = self.power().unwrap(); + map.insert("power", { + match power { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); - let part = self.part().unwrap(); - map.insert("part", { part.as_str() }); map } - fn powered_rail_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn heavy_weighted_pressure_plate_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + let power = self.power().unwrap(); + map.insert("power", { + match power { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); - let powered_rail_shape = self.powered_rail_shape().unwrap(); - map.insert("shape", { powered_rail_shape.as_str() }); map } - fn detector_rail_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn comparator_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let comparator_mode = self.comparator_mode().unwrap(); + map.insert("mode", { comparator_mode.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); let powered = self.powered().unwrap(); map.insert("powered", { match powered { @@ -11109,278 +16388,664 @@ impl BlockId { false => "false", } }); - let powered_rail_shape = self.powered_rail_shape().unwrap(); - map.insert("shape", { powered_rail_shape.as_str() }); map } - fn sticky_piston_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn daylight_detector_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let extended = self.extended().unwrap(); - map.insert("extended", { - match extended { + let inverted = self.inverted().unwrap(); + map.insert("inverted", { + match inverted { true => "true", false => "false", } }); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); + let power = self.power().unwrap(); + map.insert("power", { + match power { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); map } - fn cobweb_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn redstone_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn grass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn nether_quartz_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn fern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn hopper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let enabled = self.enabled().unwrap(); + map.insert("enabled", { + match enabled { + true => "true", + false => "false", + } + }); + let facing_cardinal_and_down = self.facing_cardinal_and_down().unwrap(); + map.insert("facing", { facing_cardinal_and_down.as_str() }); map } - fn dead_bush_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn quartz_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn seagrass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn chiseled_quartz_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn tall_seagrass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn quartz_pillar_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); map } - fn piston_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn quartz_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let extended = self.extended().unwrap(); - map.insert("extended", { - match extended { + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); map } - fn piston_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn activator_rail_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - let piston_kind = self.piston_kind().unwrap(); - map.insert("type", { piston_kind.as_str() }); - let short = self.short().unwrap(); - map.insert("short", { - match short { + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + let powered_rail_shape = self.powered_rail_shape().unwrap(); + map.insert("shape", { powered_rail_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn white_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn orange_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn magenta_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn light_blue_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn yellow_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn lime_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn pink_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn gray_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn light_gray_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn cyan_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn purple_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn blue_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn brown_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn green_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dropper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); + let triggered = self.triggered().unwrap(); + map.insert("triggered", { + match triggered { + true => "true", + false => "false", + } + }); map } - fn red_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn black_wool_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn orange_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn moving_piston_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magenta_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - let piston_kind = self.piston_kind().unwrap(); - map.insert("type", { piston_kind.as_str() }); map } - fn dandelion_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_blue_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn poppy_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn yellow_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn blue_orchid_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lime_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn allium_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn pink_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn azure_bluet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gray_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn red_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_gray_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn orange_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cyan_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn white_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purple_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn pink_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blue_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn oxeye_daisy_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brown_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn cornflower_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn green_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn wither_rose_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn lily_of_the_valley_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn black_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn brown_mushroom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn red_mushroom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn orange_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn gold_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magenta_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn iron_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_blue_stained_glass_pane_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn yellow_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn tnt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lime_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let unstable = self.unstable().unwrap(); - map.insert("unstable", { - match unstable { + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { true => "true", false => "false", } }); map } - fn bookshelf_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn pink_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn mossy_cobblestone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gray_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn obsidian_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_gray_stained_glass_pane_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cyan_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn wall_torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purple_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn fire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blue_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let age_0_15 = self.age_0_15().unwrap(); - map.insert("age", { - match age_0_15 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", } }); + map + } + fn brown_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); let east_connected = self.east_connected().unwrap(); map.insert("east", { match east_connected { @@ -11402,9 +17067,9 @@ impl BlockId { false => "false", } }); - let up = self.up().unwrap(); - map.insert("up", { - match up { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } @@ -11418,37 +17083,29 @@ impl BlockId { }); map } - fn soul_fire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn spawner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn oak_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn green_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { true => "true", false => "false", } }); - map - } - fn chest_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let chest_kind = self.chest_kind().unwrap(); - map.insert("type", { chest_kind.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -11456,125 +17113,36 @@ impl BlockId { false => "false", } }); - map - } - fn redstone_wire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let east_wire = self.east_wire().unwrap(); - map.insert("east", { east_wire.as_str() }); - let north_wire = self.north_wire().unwrap(); - map.insert("north", { north_wire.as_str() }); - let power = self.power().unwrap(); - map.insert("power", { - match power { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); - let south_wire = self.south_wire().unwrap(); - map.insert("south", { south_wire.as_str() }); - let west_wire = self.west_wire().unwrap(); - map.insert("west", { west_wire.as_str() }); - map - } - fn diamond_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn diamond_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn crafting_table_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn wheat_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let age_0_7 = self.age_0_7().unwrap(); - map.insert("age", { - match age_0_7 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", } }); map } - fn farmland_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let moisture = self.moisture().unwrap(); - map.insert("moisture", { - match moisture { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", } }); - map - } - fn furnace_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let lit = self.lit().unwrap(); - map.insert("lit", { - match lit { + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { true => "true", false => "false", } }); - map - } - fn oak_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", } }); let waterlogged = self.waterlogged().unwrap(); @@ -11584,63 +17152,36 @@ impl BlockId { false => "false", } }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn spruce_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn black_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", } }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { true => "true", false => "false", } - }); - map - } - fn birch_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", } }); let waterlogged = self.waterlogged().unwrap(); @@ -11650,32 +17191,23 @@ impl BlockId { false => "false", } }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { + true => "true", + false => "false", + } + }); map } - fn acacia_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn acacia_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -11685,30 +17217,14 @@ impl BlockId { }); map } - fn jungle_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dark_oak_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -11718,11 +17234,19 @@ impl BlockId { }); map } - fn dark_oak_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn slime_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { + map + } + fn barrier_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn light_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let water_level = self.water_level().unwrap(); + map.insert("level", { + match water_level { 0i32 => "0", 1i32 => "1", 2i32 => "2", @@ -11751,14 +17275,12 @@ impl BlockId { }); map } - fn oak_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn iron_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); - let hinge = self.hinge().unwrap(); - map.insert("hinge", { hinge.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); let open = self.open().unwrap(); map.insert("open", { match open { @@ -11773,12 +17295,6 @@ impl BlockId { false => "false", } }); - map - } - fn ladder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -11788,13 +17304,19 @@ impl BlockId { }); map } - fn rail_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn prismarine_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rail_shape = self.rail_shape().unwrap(); - map.insert("shape", { rail_shape.as_str() }); map } - fn cobblestone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn prismarine_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn dark_prismarine_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn prismarine_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -11811,10 +17333,14 @@ impl BlockId { }); map } - fn oak_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn prismarine_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -11824,10 +17350,14 @@ impl BlockId { }); map } - fn spruce_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dark_prismarine_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -11837,10 +17367,10 @@ impl BlockId { }); map } - fn birch_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn prismarine_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -11850,10 +17380,10 @@ impl BlockId { }); map } - fn acacia_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn prismarine_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -11863,10 +17393,10 @@ impl BlockId { }); map } - fn jungle_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dark_prismarine_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -11876,190 +17406,316 @@ impl BlockId { }); map } - fn dark_oak_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn sea_lantern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn lever_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn hay_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); map } - fn stone_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn orange_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn magenta_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn light_blue_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn yellow_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn lime_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn pink_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn gray_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn light_gray_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn cyan_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn purple_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn blue_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn brown_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn green_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn red_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn black_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn coal_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn packed_ice_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn sunflower_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + map + } + fn lilac_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); map } - fn iron_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn rose_bush_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); let half_upper_lower = self.half_upper_lower().unwrap(); map.insert("half", { half_upper_lower.as_str() }); - let hinge = self.hinge().unwrap(); - map.insert("hinge", { hinge.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); map } - fn oak_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn peony_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); map } - fn spruce_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn tall_grass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); map } - fn birch_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn large_fern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); map } - fn jungle_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); map } - fn acacia_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn orange_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); map } - fn dark_oak_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magenta_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); map } - fn redstone_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_blue_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let lit = self.lit().unwrap(); - map.insert("lit", { - match lit { - true => "true", - false => "false", + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); map } - fn redstone_torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn yellow_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let lit = self.lit().unwrap(); - map.insert("lit", { - match lit { - true => "true", - false => "false", + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); map } - fn redstone_wall_torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lime_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let lit = self.lit().unwrap(); - map.insert("lit", { - match lit { - true => "true", - false => "false", + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); map } - fn stone_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn pink_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", } }); map } - fn snow_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gray_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let layers = self.layers().unwrap(); - map.insert("layers", { - match layers { + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", 1i32 => "1", 2i32 => "2", 3i32 => "3", @@ -12068,24 +17724,23 @@ impl BlockId { 6i32 => "6", 7i32 => "7", 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", _ => "unknown", } }); map } - fn ice_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn snow_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn cactus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_gray_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let age_0_15 = self.age_0_15().unwrap(); - map.insert("age", { - match age_0_15 { + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { 0i32 => "0", 1i32 => "1", 2i32 => "2", @@ -12107,15 +17762,11 @@ impl BlockId { }); map } - fn clay_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn sugar_cane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cyan_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let age_0_15 = self.age_0_15().unwrap(); - map.insert("age", { - match age_0_15 { + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { 0i32 => "0", 1i32 => "1", 2i32 => "2", @@ -12137,121 +17788,11 @@ impl BlockId { }); map } - fn jukebox_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let has_record = self.has_record().unwrap(); - map.insert("has_record", { - match has_record { - true => "true", - false => "false", - } - }); - map - } - fn oak_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); - map - } - fn pumpkin_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn netherrack_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn soul_sand_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn soul_soil_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn basalt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn polished_basalt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn soul_torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn soul_wall_torch_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - map - } - fn glowstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn nether_portal_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xz = self.axis_xz().unwrap(); - map.insert("axis", { axis_xz.as_str() }); - map - } - fn carved_pumpkin_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - map - } - fn jack_o_lantern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - map - } - fn cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purple_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let bites = self.bites().unwrap(); - map.insert("bites", { - match bites { + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { 0i32 => "0", 1i32 => "1", 2i32 => "2", @@ -12259,484 +17800,448 @@ impl BlockId { 4i32 => "4", 5i32 => "5", 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", _ => "unknown", } }); map } - fn repeater_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blue_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let delay = self.delay().unwrap(); - map.insert("delay", { - match delay { + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", 1i32 => "1", 2i32 => "2", 3i32 => "3", 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", _ => "unknown", } }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let locked = self.locked().unwrap(); - map.insert("locked", { - match locked { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); - map - } - fn white_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn orange_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn magenta_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn light_blue_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); map } - fn yellow_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn lime_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn pink_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn gray_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn light_gray_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn cyan_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brown_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); map } - fn purple_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn green_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); map } - fn blue_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); map } - fn brown_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn black_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); map } - fn green_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn red_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn orange_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn black_stained_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magenta_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn oak_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_blue_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn spruce_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn yellow_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn birch_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lime_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn jungle_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn pink_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn acacia_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gray_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn dark_oak_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_gray_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cyan_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn mossy_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purple_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn cracked_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blue_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn chiseled_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brown_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn infested_stone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn green_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn infested_cobblestone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn infested_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn black_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn infested_mossy_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn infested_cracked_stone_bricks_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { + fn chiseled_red_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn infested_chiseled_stone_bricks_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { + fn cut_red_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn brown_mushroom_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_sandstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let down = self.down().unwrap(); - map.insert("down", { - match down { - true => "true", - false => "false", - } - }); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn red_mushroom_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn oak_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let down = self.down().unwrap(); - map.insert("down", { - match down { - true => "true", - false => "false", - } - }); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { + map + } + fn spruce_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let up = self.up().unwrap(); - map.insert("up", { - match up { + map + } + fn birch_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { + map + } + fn jungle_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn mushroom_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn acacia_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let down = self.down().unwrap(); - map.insert("down", { - match down { + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { + map + } + fn dark_oak_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { + map + } + fn stone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { + map + } + fn smooth_stone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let up = self.up().unwrap(); - map.insert("up", { - match up { + map + } + fn sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { + map + } + fn cut_sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn iron_bars_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn petrified_oak_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { + map + } + fn cobblestone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { + map + } + fn brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); + map + } + fn stone_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -12744,19 +18249,25 @@ impl BlockId { false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { + map + } + fn nether_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn chain_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn quartz_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -12766,29 +18277,23 @@ impl BlockId { }); map } - fn glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); + map + } + fn cut_red_sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -12796,107 +18301,92 @@ impl BlockId { false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { + map + } + fn purpur_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn melon_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smooth_stone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn attached_pumpkin_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smooth_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); map } - fn attached_melon_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smooth_quartz_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); map } - fn pumpkin_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smooth_red_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let age_0_7 = self.age_0_7().unwrap(); - map.insert("age", { - match age_0_7 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", - } - }); map } - fn melon_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn spruce_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let age_0_7 = self.age_0_7().unwrap(); - map.insert("age", { - match age_0_7 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let in_wall = self.in_wall().unwrap(); + map.insert("in_wall", { + match in_wall { + true => "true", + false => "false", } }); - map - } - fn vine_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { + let open = self.open().unwrap(); + map.insert("open", { + match open { true => "true", false => "false", } }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { + map + } + fn birch_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let in_wall = self.in_wall().unwrap(); + map.insert("in_wall", { + match in_wall { true => "true", false => "false", } }); - let up = self.up().unwrap(); - map.insert("up", { - match up { + let open = self.open().unwrap(); + map.insert("open", { + match open { true => "true", false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); map } - fn oak_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn jungle_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -12923,60 +18413,61 @@ impl BlockId { }); map } - fn brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn acacia_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let in_wall = self.in_wall().unwrap(); + map.insert("in_wall", { + match in_wall { + true => "true", + false => "false", + } + }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); map } - fn stone_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dark_oak_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let in_wall = self.in_wall().unwrap(); + map.insert("in_wall", { + match in_wall { true => "true", false => "false", } }); - map - } - fn mycelium_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let snowy = self.snowy().unwrap(); - map.insert("snowy", { - match snowy { + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); map } - fn lily_pad_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn nether_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn nether_brick_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn spruce_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let east_connected = self.east_connected().unwrap(); map.insert("east", { @@ -13015,139 +18506,68 @@ impl BlockId { }); map } - fn nether_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn birch_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { true => "true", false => "false", } }); - map - } - fn nether_wart_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let age_0_3 = self.age_0_3().unwrap(); - map.insert("age", { - match age_0_3 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - _ => "unknown", + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", } }); - map - } - fn enchanting_table_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn brewing_stand_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let has_bottle_0 = self.has_bottle_0().unwrap(); - map.insert("has_bottle_0", { - match has_bottle_0 { + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { true => "true", false => "false", } }); - let has_bottle_1 = self.has_bottle_1().unwrap(); - map.insert("has_bottle_1", { - match has_bottle_1 { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let has_bottle_2 = self.has_bottle_2().unwrap(); - map.insert("has_bottle_2", { - match has_bottle_2 { + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { true => "true", false => "false", } }); map } - fn cauldron_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let cauldron_level = self.cauldron_level().unwrap(); - map.insert("level", { - match cauldron_level { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - _ => "unknown", - } - }); - map - } - fn end_portal_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn end_portal_frame_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn jungle_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let eye = self.eye().unwrap(); - map.insert("eye", { - match eye { + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { true => "true", false => "false", } }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - map - } - fn end_stone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn dragon_egg_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn redstone_lamp_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let lit = self.lit().unwrap(); - map.insert("lit", { - match lit { + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { true => "true", false => "false", } }); - map - } - fn cocoa_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let age_0_2 = self.age_0_2().unwrap(); - map.insert("age", { - match age_0_2 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - _ => "unknown", + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { + true => "true", + false => "false", } }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - map - } - fn sandstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -13155,61 +18575,56 @@ impl BlockId { false => "false", } }); - map - } - fn emerald_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn ender_chest_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { true => "true", false => "false", } }); map } - fn tripwire_hook_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn acacia_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let attached = self.attached().unwrap(); - map.insert("attached", { - match attached { + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { true => "true", false => "false", } }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { true => "true", false => "false", } }); - map - } - fn tripwire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let attached = self.attached().unwrap(); - map.insert("attached", { - match attached { + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { true => "true", false => "false", } }); - let disarmed = self.disarmed().unwrap(); - map.insert("disarmed", { - match disarmed { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { true => "true", false => "false", } }); + map + } + fn dark_oak_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); let east_connected = self.east_connected().unwrap(); map.insert("east", { match east_connected { @@ -13224,16 +18639,16 @@ impl BlockId { false => "false", } }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { true => "true", false => "false", } }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } @@ -13247,112 +18662,162 @@ impl BlockId { }); map } - fn emerald_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn spruce_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + let hinge = self.hinge().unwrap(); + map.insert("hinge", { hinge.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); map } - fn spruce_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn birch_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + let hinge = self.hinge().unwrap(); + map.insert("hinge", { hinge.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); map } - fn birch_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn jungle_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + let hinge = self.hinge().unwrap(); + map.insert("hinge", { hinge.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); map } - fn jungle_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn acacia_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + let hinge = self.hinge().unwrap(); + map.insert("hinge", { hinge.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); map } - fn command_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dark_oak_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let conditional = self.conditional().unwrap(); - map.insert("conditional", { - match conditional { + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + let hinge = self.hinge().unwrap(); + map.insert("hinge", { hinge.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); map } - fn beacon_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn end_rod_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn cobblestone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn chorus_plant_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { + let down = self.down().unwrap(); + map.insert("down", { + match down { true => "true", false => "false", } }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let east_connected = self.east_connected().unwrap(); + map.insert("east", { + match east_connected { + true => "true", + false => "false", + } + }); + let north_connected = self.north_connected().unwrap(); + map.insert("north", { + match north_connected { + true => "true", + false => "false", + } + }); + let south_connected = self.south_connected().unwrap(); + map.insert("south", { + match south_connected { true => "true", false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); - map - } - fn mossy_cobblestone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); let up = self.up().unwrap(); map.insert("up", { match up { @@ -13360,1248 +18825,609 @@ impl BlockId { false => "false", } }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let west_connected = self.west_connected().unwrap(); + map.insert("west", { + match west_connected { true => "true", false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); - map - } - fn flower_pot_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn potted_oak_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn potted_spruce_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); map } - fn potted_birch_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn chorus_flower_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let age_0_5 = self.age_0_5().unwrap(); + map.insert("age", { + match age_0_5 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + _ => "unknown", + } + }); map } - fn potted_jungle_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purpur_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn potted_acacia_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purpur_pillar_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); map } - fn potted_dark_oak_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purpur_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn potted_fern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn end_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn potted_dandelion_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn beetroots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let age_0_3 = self.age_0_3().unwrap(); + map.insert("age", { + match age_0_3 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + _ => "unknown", + } + }); map } - fn potted_poppy_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dirt_path_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn potted_blue_orchid_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn end_gateway_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn potted_allium_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn repeating_command_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let conditional = self.conditional().unwrap(); + map.insert("conditional", { + match conditional { + true => "true", + false => "false", + } + }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn potted_azure_bluet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn chain_command_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let conditional = self.conditional().unwrap(); + map.insert("conditional", { + match conditional { + true => "true", + false => "false", + } + }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn potted_red_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn frosted_ice_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let age_0_3 = self.age_0_3().unwrap(); + map.insert("age", { + match age_0_3 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + _ => "unknown", + } + }); map } - fn potted_orange_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magma_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn potted_white_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn nether_wart_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn potted_pink_tulip_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_nether_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn potted_oxeye_daisy_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn bone_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); map } - fn potted_cornflower_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn structure_void_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn potted_lily_of_the_valley_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn observer_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); map } - fn potted_wither_rose_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn potted_red_mushroom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn potted_brown_mushroom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn orange_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn potted_dead_bush_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magenta_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn potted_cactus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_blue_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn carrots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn yellow_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let age_0_7 = self.age_0_7().unwrap(); - map.insert("age", { - match age_0_7 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", - } - }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn potatoes_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lime_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let age_0_7 = self.age_0_7().unwrap(); - map.insert("age", { - match age_0_7 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", - } - }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map - } - fn oak_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + } + fn pink_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn spruce_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gray_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn birch_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_gray_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn jungle_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cyan_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn acacia_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purple_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn dark_oak_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blue_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn skeleton_skull_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brown_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn skeleton_wall_skull_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn green_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn wither_skeleton_skull_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn wither_skeleton_wall_skull_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn black_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); map } - fn zombie_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn zombie_wall_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn orange_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); map } - fn player_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magenta_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn player_wall_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_blue_glazed_terracotta_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); map } - fn creeper_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn yellow_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn creeper_wall_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lime_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); map } - fn dragon_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn pink_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn dragon_wall_head_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gray_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); map } - fn anvil_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_gray_glazed_terracotta_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); map } - fn chipped_anvil_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cyan_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); map } - fn damaged_anvil_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purple_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); map } - fn trapped_chest_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blue_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let chest_kind = self.chest_kind().unwrap(); - map.insert("type", { chest_kind.as_str() }); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn light_weighted_pressure_plate_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { + fn brown_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let power = self.power().unwrap(); - map.insert("power", { - match power { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn heavy_weighted_pressure_plate_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { + fn green_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let power = self.power().unwrap(); - map.insert("power", { - match power { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn comparator_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let comparator_mode = self.comparator_mode().unwrap(); - map.insert("mode", { comparator_mode.as_str() }); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); map } - fn daylight_detector_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn black_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let inverted = self.inverted().unwrap(); - map.insert("inverted", { - match inverted { - true => "true", - false => "false", - } - }); - let power = self.power().unwrap(); - map.insert("power", { - match power { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", - } - }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn redstone_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn nether_quartz_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn orange_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn hopper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magenta_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let enabled = self.enabled().unwrap(); - map.insert("enabled", { - match enabled { - true => "true", - false => "false", - } - }); - let facing_cardinal_and_down = self.facing_cardinal_and_down().unwrap(); - map.insert("facing", { facing_cardinal_and_down.as_str() }); map } - fn quartz_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_blue_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn chiseled_quartz_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn yellow_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn quartz_pillar_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lime_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); map } - fn quartz_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn pink_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn activator_rail_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gray_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); - let powered_rail_shape = self.powered_rail_shape().unwrap(); - map.insert("shape", { powered_rail_shape.as_str() }); map } - fn dropper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_gray_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - let triggered = self.triggered().unwrap(); - map.insert("triggered", { - match triggered { - true => "true", - false => "false", - } - }); map } - fn white_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cyan_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn orange_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purple_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn magenta_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blue_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn light_blue_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brown_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn yellow_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn green_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn lime_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn pink_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn black_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn gray_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn light_gray_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn orange_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn cyan_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magenta_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn purple_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_blue_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn blue_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn yellow_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn brown_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lime_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn green_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn pink_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn red_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gray_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn black_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_gray_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn white_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cyan_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn purple_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn blue_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn orange_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brown_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn magenta_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn green_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn light_blue_stained_glass_pane_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { + fn red_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn yellow_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn black_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn lime_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn kelp_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", + let age_0_25 = self.age_0_25().unwrap(); + map.insert("age", { + match age_0_25 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + 16i32 => "16", + 17i32 => "17", + 18i32 => "18", + 19i32 => "19", + 20i32 => "20", + 21i32 => "21", + 22i32 => "22", + 23i32 => "23", + 24i32 => "24", + 25i32 => "25", + _ => "unknown", } }); map } - fn pink_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn kelp_plant_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn dried_kelp_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn gray_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn turtle_egg_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + let eggs = self.eggs().unwrap(); + map.insert("eggs", { + match eggs { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", + let hatch = self.hatch().unwrap(); + map.insert("hatch", { + match hatch { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + _ => "unknown", } }); map } - fn light_gray_stained_glass_pane_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { + fn dead_tube_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn cyan_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_brain_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn purple_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_bubble_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn blue_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_fire_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn brown_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_horn_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn tube_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn brain_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn bubble_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn fire_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn horn_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn dead_tube_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn green_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_brain_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14609,38 +19435,10 @@ impl BlockId { false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn red_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_bubble_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14648,38 +19446,10 @@ impl BlockId { false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn black_stained_glass_pane_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_fire_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14687,23 +19457,10 @@ impl BlockId { false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn acacia_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_horn_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14713,14 +19470,8 @@ impl BlockId { }); map } - fn dark_oak_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn tube_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14730,34 +19481,19 @@ impl BlockId { }); map } - fn slime_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn barrier_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn iron_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brain_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); + map + } + fn bubble_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14767,26 +19503,8 @@ impl BlockId { }); map } - fn prismarine_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn prismarine_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn dark_prismarine_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn prismarine_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn fire_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14796,14 +19514,8 @@ impl BlockId { }); map } - fn prismarine_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn horn_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14813,14 +19525,8 @@ impl BlockId { }); map } - fn dark_prismarine_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_tube_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14830,10 +19536,8 @@ impl BlockId { }); map } - fn prismarine_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_brain_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14843,10 +19547,8 @@ impl BlockId { }); map } - fn prismarine_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_bubble_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14856,10 +19558,8 @@ impl BlockId { }); map } - fn dark_prismarine_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_fire_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -14869,660 +19569,787 @@ impl BlockId { }); map } - fn sea_lantern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn hay_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn white_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn orange_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn magenta_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn light_blue_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn yellow_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn lime_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn pink_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn gray_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn light_gray_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn cyan_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn purple_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn blue_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn brown_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn green_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn red_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_horn_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn black_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn tube_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brain_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn coal_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn bubble_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn packed_ice_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn fire_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn sunflower_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn horn_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn lilac_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_tube_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn rose_bush_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_brain_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn peony_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_bubble_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn tall_grass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_fire_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn large_fern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dead_horn_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn white_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn tube_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn orange_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brain_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn magenta_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn bubble_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn light_blue_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn fire_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn yellow_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + fn horn_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn lime_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn sea_pickle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", + let pickles = self.pickles().unwrap(); + map.insert("pickles", { + match pickles { 1i32 => "1", 2i32 => "2", 3i32 => "3", 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", _ => "unknown", } }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn pink_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blue_ice_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + map + } + fn conduit_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn gray_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn bamboo_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { + map + } + fn bamboo_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let age_0_1 = self.age_0_1().unwrap(); + map.insert("age", { + match age_0_1 { 0i32 => "0", 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", _ => "unknown", } }); - map - } - fn light_gray_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { + let leaves = self.leaves().unwrap(); + map.insert("leaves", { leaves.as_str() }); + let stage = self.stage().unwrap(); + map.insert("stage", { + match stage { 0i32 => "0", 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", _ => "unknown", } }); map } - fn cyan_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_bamboo_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + map + } + fn void_air_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn cave_air_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn bubble_column_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let drag = self.drag().unwrap(); + map.insert("drag", { + match drag { + true => "true", + false => "false", } }); map } - fn purple_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_granite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn blue_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smooth_red_sandstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn mossy_stone_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn polished_diorite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn brown_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn mossy_cobblestone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn green_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn end_stone_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn red_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn stone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn black_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smooth_sandstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn white_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smooth_quartz_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn orange_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn granite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn magenta_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn andesite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn light_blue_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_nether_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn yellow_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_andesite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn lime_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn diorite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn pink_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_granite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn smooth_red_sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn mossy_stone_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + map + } + fn polished_diorite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn gray_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn mossy_cobblestone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn light_gray_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn end_stone_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn cyan_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smooth_sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn purple_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smooth_quartz_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn blue_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn granite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn brown_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn andesite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn green_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_nether_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn red_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_andesite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn black_wall_banner_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn diorite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn red_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn chiseled_red_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn prismarine_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn cut_red_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_sandstone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn red_sandstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn mossy_stone_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15530,12 +20357,25 @@ impl BlockId { false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn oak_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn granite_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15543,12 +20383,25 @@ impl BlockId { false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn spruce_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn stone_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15556,25 +20409,25 @@ impl BlockId { false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn birch_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn nether_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { true => "true", false => "false", } }); - map - } - fn jungle_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15582,25 +20435,25 @@ impl BlockId { false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn acacia_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn andesite_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { true => "true", false => "false", } }); - map - } - fn dark_oak_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15608,25 +20461,25 @@ impl BlockId { false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn stone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_nether_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { true => "true", false => "false", } }); - map - } - fn smooth_stone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15634,25 +20487,25 @@ impl BlockId { false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn sandstone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { true => "true", false => "false", } }); - map - } - fn cut_sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15660,25 +20513,25 @@ impl BlockId { false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn petrified_oak_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn end_stone_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { true => "true", false => "false", } }); - map - } - fn cobblestone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15686,25 +20539,25 @@ impl BlockId { false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn diorite_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { true => "true", false => "false", } }); - map - } - fn stone_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15712,25 +20565,33 @@ impl BlockId { false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn nether_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn scaffolding_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let bottom = self.bottom().unwrap(); + map.insert("bottom", { + match bottom { true => "true", false => "false", } }); - map - } - fn quartz_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); + let distance_0_7 = self.distance_0_7().unwrap(); + map.insert("distance", { + match distance_0_7 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + _ => "unknown", + } + }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15740,219 +20601,392 @@ impl BlockId { }); map } - fn red_sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn loom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + map + } + fn barrel_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { true => "true", false => "false", } }); map } - fn cut_red_sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smoker_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn purpur_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blast_furnace_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn smooth_stone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cartography_table_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn smooth_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn fletching_table_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn smooth_quartz_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn grindstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn smooth_red_sandstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lectern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let has_book = self.has_book().unwrap(); + map.insert("has_book", { + match has_book { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); + map + } + fn smithing_table_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn stonecutter_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); map } - fn spruce_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn bell_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let attachment = self.attachment().unwrap(); + map.insert("attachment", { attachment.as_str() }); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let in_wall = self.in_wall().unwrap(); - map.insert("in_wall", { - match in_wall { + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); - let open = self.open().unwrap(); - map.insert("open", { - match open { + map + } + fn lantern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let hanging = self.hanging().unwrap(); + map.insert("hanging", { + match hanging { true => "true", false => "false", } }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn birch_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn soul_lantern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let in_wall = self.in_wall().unwrap(); - map.insert("in_wall", { - match in_wall { - true => "true", - false => "false", - } - }); - let open = self.open().unwrap(); - map.insert("open", { - match open { + let hanging = self.hanging().unwrap(); + map.insert("hanging", { + match hanging { true => "true", false => "false", } }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn jungle_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn campfire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let in_wall = self.in_wall().unwrap(); - map.insert("in_wall", { - match in_wall { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); - let open = self.open().unwrap(); - map.insert("open", { - match open { + let signal_fire = self.signal_fire().unwrap(); + map.insert("signal_fire", { + match signal_fire { true => "true", false => "false", } }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn acacia_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn soul_campfire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let in_wall = self.in_wall().unwrap(); - map.insert("in_wall", { - match in_wall { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); - let open = self.open().unwrap(); - map.insert("open", { - match open { + let signal_fire = self.signal_fire().unwrap(); + map.insert("signal_fire", { + match signal_fire { true => "true", false => "false", } }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn dark_oak_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn sweet_berry_bush_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let age_0_3 = self.age_0_3().unwrap(); + map.insert("age", { + match age_0_3 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + _ => "unknown", + } + }); + map + } + fn warped_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_warped_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn warped_hyphae_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_warped_hyphae_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn warped_nylium_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn warped_fungus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn warped_wart_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn warped_roots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn nether_sprouts_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn crimson_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_crimson_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn crimson_hyphae_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn stripped_crimson_hyphae_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn crimson_nylium_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn crimson_fungus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn shroomlight_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn weeping_vines_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let age_0_25 = self.age_0_25().unwrap(); + map.insert("age", { + match age_0_25 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + 16i32 => "16", + 17i32 => "17", + 18i32 => "18", + 19i32 => "19", + 20i32 => "20", + 21i32 => "21", + 22i32 => "22", + 23i32 => "23", + 24i32 => "24", + 25i32 => "25", + _ => "unknown", + } + }); + map + } + fn weeping_vines_plant_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn twisting_vines_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let age_0_25 = self.age_0_25().unwrap(); + map.insert("age", { + match age_0_25 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + 16i32 => "16", + 17i32 => "17", + 18i32 => "18", + 19i32 => "19", + 20i32 => "20", + 21i32 => "21", + 22i32 => "22", + 23i32 => "23", + 24i32 => "24", + 25i32 => "25", + _ => "unknown", + } + }); + map + } + fn twisting_vines_plant_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let in_wall = self.in_wall().unwrap(); - map.insert("in_wall", { - match in_wall { - true => "true", - false => "false", - } - }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); map } - fn spruce_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crimson_roots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); + map + } + fn crimson_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn warped_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn crimson_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15960,38 +20994,12 @@ impl BlockId { false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn birch_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn warped_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -15999,55 +21007,31 @@ impl BlockId { false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", - } - }); map } - fn jungle_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crimson_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", - } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { + map + } + fn warped_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); map } - fn acacia_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crimson_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let east_connected = self.east_connected().unwrap(); map.insert("east", { @@ -16086,7 +21070,7 @@ impl BlockId { }); map } - fn dark_oak_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn warped_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let east_connected = self.east_connected().unwrap(); map.insert("east", { @@ -16125,14 +21109,12 @@ impl BlockId { }); map } - fn spruce_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crimson_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); - let hinge = self.hinge().unwrap(); - map.insert("hinge", { hinge.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); let open = self.open().unwrap(); map.insert("open", { match open { @@ -16147,40 +21129,21 @@ impl BlockId { false => "false", } }); - map - } - fn birch_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); - let hinge = self.hinge().unwrap(); - map.insert("hinge", { hinge.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn jungle_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn warped_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); - let hinge = self.hinge().unwrap(); - map.insert("hinge", { hinge.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); let open = self.open().unwrap(); map.insert("open", { match open { @@ -16195,40 +21158,26 @@ impl BlockId { false => "false", } }); - map - } - fn acacia_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); - let hinge = self.hinge().unwrap(); - map.insert("hinge", { hinge.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); map } - fn dark_oak_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crimson_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); - let hinge = self.hinge().unwrap(); - map.insert("hinge", { hinge.as_str() }); + let in_wall = self.in_wall().unwrap(); + map.insert("in_wall", { + match in_wall { + true => "true", + false => "false", + } + }); let open = self.open().unwrap(); map.insert("open", { match open { @@ -16245,85 +21194,34 @@ impl BlockId { }); map } - fn end_rod_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn chorus_plant_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn warped_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let down = self.down().unwrap(); - map.insert("down", { - match down { - true => "true", - false => "false", - } - }); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", - } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", - } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let in_wall = self.in_wall().unwrap(); + map.insert("in_wall", { + match in_wall { true => "true", false => "false", } }); - let up = self.up().unwrap(); - map.insert("up", { - match up { + let open = self.open().unwrap(); + map.insert("open", { + match open { true => "true", false => "false", } }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); map } - fn chorus_flower_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let age_0_5 = self.age_0_5().unwrap(); - map.insert("age", { - match age_0_5 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - _ => "unknown", - } - }); - map - } - fn purpur_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn purpur_pillar_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn purpur_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crimson_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -16340,98 +21238,29 @@ impl BlockId { }); map } - fn end_stone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn beetroots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let age_0_3 = self.age_0_3().unwrap(); - map.insert("age", { - match age_0_3 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - _ => "unknown", - } - }); - map - } - fn grass_path_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn end_gateway_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn repeating_command_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let conditional = self.conditional().unwrap(); - map.insert("conditional", { - match conditional { - true => "true", - false => "false", - } - }); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn chain_command_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn warped_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let conditional = self.conditional().unwrap(); - map.insert("conditional", { - match conditional { + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn frosted_ice_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let age_0_3 = self.age_0_3().unwrap(); - map.insert("age", { - match age_0_3 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - _ => "unknown", - } - }); - map - } - fn magma_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn nether_wart_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn red_nether_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn bone_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn structure_void_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); map } - fn observer_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crimson_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); let powered = self.powered().unwrap(); map.insert("powered", { match powered { @@ -16441,385 +21270,668 @@ impl BlockId { }); map } - fn shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn white_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn orange_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn magenta_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn light_blue_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn yellow_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn lime_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn pink_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn gray_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn light_gray_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn cyan_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn purple_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn blue_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn brown_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn green_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn red_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn black_shulker_box_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - map - } - fn white_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - map - } - fn orange_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn warped_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); map } - fn magenta_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crimson_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + let hinge = self.hinge().unwrap(); + map.insert("hinge", { hinge.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); map } - fn light_blue_glazed_terracotta_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { + fn warped_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); + let hinge = self.hinge().unwrap(); + map.insert("hinge", { hinge.as_str() }); + let open = self.open().unwrap(); + map.insert("open", { + match open { + true => "true", + false => "false", + } + }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); map } - fn yellow_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crimson_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn lime_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn warped_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let rotation = self.rotation().unwrap(); + map.insert("rotation", { + match rotation { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn pink_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crimson_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn gray_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn warped_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn light_gray_glazed_terracotta_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { + fn structure_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let structure_block_mode = self.structure_block_mode().unwrap(); + map.insert("mode", { structure_block_mode.as_str() }); map } - fn cyan_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn jigsaw_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let orientation = self.orientation().unwrap(); + map.insert("orientation", { orientation.as_str() }); map } - fn purple_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn composter_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let level_0_8 = self.level_0_8().unwrap(); + map.insert("level", { + match level_0_8 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + _ => "unknown", + } + }); map } - fn blue_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn target_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let power = self.power().unwrap(); + map.insert("power", { + match power { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + _ => "unknown", + } + }); map } - fn brown_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn bee_nest_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let honey_level = self.honey_level().unwrap(); + map.insert("honey_level", { + match honey_level { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + _ => "unknown", + } + }); map } - fn green_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn beehive_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); + let honey_level = self.honey_level().unwrap(); + map.insert("honey_level", { + match honey_level { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + _ => "unknown", + } + }); map } - fn red_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn honey_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); map } - fn black_glazed_terracotta_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn honeycomb_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); map } - fn white_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn netherite_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn orange_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn ancient_debris_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn magenta_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn crying_obsidian_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn light_blue_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn respawn_anchor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let charges = self.charges().unwrap(); + map.insert("charges", { + match charges { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); map } - fn yellow_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_crimson_fungus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn lime_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_warped_fungus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn pink_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_crimson_roots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn gray_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_warped_roots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn light_gray_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lodestone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn cyan_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blackstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn purple_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blackstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn blue_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blackstone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn brown_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blackstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn green_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_blackstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn red_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_blackstone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn black_concrete_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cracked_polished_blackstone_bricks_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn white_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn chiseled_polished_blackstone_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn orange_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_blackstone_brick_slab_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn magenta_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_blackstone_brick_stairs_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn light_blue_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_blackstone_brick_wall_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn yellow_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gilded_blackstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn lime_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_blackstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn pink_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_blackstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn gray_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_blackstone_pressure_plate_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); map } - fn light_gray_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_blackstone_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let face = self.face().unwrap(); + map.insert("face", { face.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { + true => "true", + false => "false", + } + }); map } - fn cyan_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_blackstone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn purple_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn chiseled_nether_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn blue_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cracked_nether_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn brown_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn quartz_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn green_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn red_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn black_concrete_powder_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn orange_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn kelp_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magenta_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let age_0_25 = self.age_0_25().unwrap(); - map.insert("age", { - match age_0_25 { - 0i32 => "0", + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { 1i32 => "1", 2i32 => "2", 3i32 => "3", 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - 16i32 => "16", - 17i32 => "17", - 18i32 => "18", - 19i32 => "19", - 20i32 => "20", - 21i32 => "21", - 22i32 => "22", - 23i32 => "23", - 24i32 => "24", - 25i32 => "25", _ => "unknown", } }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn kelp_plant_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn dried_kelp_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn turtle_egg_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_blue_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let eggs = self.eggs().unwrap(); - map.insert("eggs", { - match eggs { + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { 1i32 => "1", 2i32 => "2", 3i32 => "3", @@ -16827,59 +21939,209 @@ impl BlockId { _ => "unknown", } }); - let hatch = self.hatch().unwrap(); - map.insert("hatch", { - match hatch { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - _ => "unknown", + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", } }); map } - fn dead_tube_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn dead_brain_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn dead_bubble_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn dead_fire_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn dead_horn_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn yellow_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn tube_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lime_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn brain_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn pink_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn bubble_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gray_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn fire_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_gray_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn horn_coral_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cyan_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { + true => "true", + false => "false", + } + }); map } - fn dead_tube_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purple_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -16887,10 +22149,27 @@ impl BlockId { false => "false", } }); - map - } - fn dead_brain_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); + map + } + fn blue_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -16900,19 +22179,25 @@ impl BlockId { }); map } - fn dead_bubble_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brown_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); - map - } - fn dead_fire_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -16922,19 +22207,25 @@ impl BlockId { }); map } - fn dead_horn_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn green_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); - map - } - fn tube_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -16944,19 +22235,25 @@ impl BlockId { }); map } - fn brain_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); - map - } - fn bubble_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -16966,8 +22263,25 @@ impl BlockId { }); map } - fn fire_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn black_candle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); + let candles = self.candles().unwrap(); + map.insert("candles", { + match candles { + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + _ => "unknown", + } + }); + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { + true => "true", + false => "false", + } + }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -16977,209 +22291,205 @@ impl BlockId { }); map } - fn horn_coral_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn dead_tube_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn white_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn dead_brain_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn orange_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn dead_bubble_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn magenta_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn dead_fire_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_blue_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn dead_horn_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn yellow_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn tube_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lime_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn brain_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn pink_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn bubble_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn gray_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn fire_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn light_gray_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn horn_coral_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cyan_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn dead_tube_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn purple_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn dead_brain_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn blue_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn dead_bubble_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn brown_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn dead_fire_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn green_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn dead_horn_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn red_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn tube_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn black_candle_cake_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let lit = self.lit().unwrap(); + map.insert("lit", { + match lit { true => "true", false => "false", } }); map } - fn brain_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn amethyst_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + map + } + fn budding_amethyst_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn amethyst_cluster_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17189,10 +22499,10 @@ impl BlockId { }); map } - fn bubble_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn large_amethyst_bud_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17202,10 +22512,10 @@ impl BlockId { }); map } - fn fire_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn medium_amethyst_bud_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17215,10 +22525,10 @@ impl BlockId { }); map } - fn horn_coral_wall_fan_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn small_amethyst_bud_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17228,18 +22538,48 @@ impl BlockId { }); map } - fn sea_pickle_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn tuff_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let pickles = self.pickles().unwrap(); - map.insert("pickles", { - match pickles { + map + } + fn calcite_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn tinted_glass_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn powder_snow_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn sculk_sensor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let power = self.power().unwrap(); + map.insert("power", { + match power { + 0i32 => "0", 1i32 => "1", 2i32 => "2", 3i32 => "3", 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", _ => "unknown", } }); + let sculk_sensor_phase = self.sculk_sensor_phase().unwrap(); + map.insert("sculk_sensor_phase", { sculk_sensor_phase.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17249,105 +22589,47 @@ impl BlockId { }); map } - fn blue_ice_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn oxidized_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn conduit_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn weathered_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn bamboo_sapling_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn exposed_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn bamboo_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn copper_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let age_0_1 = self.age_0_1().unwrap(); - map.insert("age", { - match age_0_1 { - 0i32 => "0", - 1i32 => "1", - _ => "unknown", - } - }); - let leaves = self.leaves().unwrap(); - map.insert("leaves", { leaves.as_str() }); - let stage = self.stage().unwrap(); - map.insert("stage", { - match stage { - 0i32 => "0", - 1i32 => "1", - _ => "unknown", - } - }); map } - fn potted_bamboo_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn copper_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn void_air_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn deepslate_copper_ore_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn cave_air_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn oxidized_cut_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn bubble_column_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn weathered_cut_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let drag = self.drag().unwrap(); - map.insert("drag", { - match drag { - true => "true", - false => "false", - } - }); map } - fn polished_granite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn exposed_cut_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn smooth_red_sandstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cut_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn mossy_stone_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn oxidized_cut_copper_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -17364,7 +22646,7 @@ impl BlockId { }); map } - fn polished_diorite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn weathered_cut_copper_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -17381,7 +22663,7 @@ impl BlockId { }); map } - fn mossy_cobblestone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn exposed_cut_copper_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -17398,7 +22680,7 @@ impl BlockId { }); map } - fn end_stone_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cut_copper_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -17415,14 +22697,10 @@ impl BlockId { }); map } - fn stone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn oxidized_cut_copper_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17432,14 +22710,10 @@ impl BlockId { }); map } - fn smooth_sandstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn weathered_cut_copper_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17449,14 +22723,10 @@ impl BlockId { }); map } - fn smooth_quartz_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn exposed_cut_copper_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17466,14 +22736,10 @@ impl BlockId { }); map } - fn granite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cut_copper_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17483,7 +22749,41 @@ impl BlockId { }); map } - fn andesite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn waxed_copper_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn waxed_weathered_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn waxed_exposed_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn waxed_oxidized_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn waxed_oxidized_cut_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn waxed_weathered_cut_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn waxed_exposed_cut_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn waxed_cut_copper_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn waxed_oxidized_cut_copper_stairs_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -17500,7 +22800,9 @@ impl BlockId { }); map } - fn red_nether_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn waxed_weathered_cut_copper_stairs_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -17517,7 +22819,9 @@ impl BlockId { }); map } - fn polished_andesite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn waxed_exposed_cut_copper_stairs_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -17534,7 +22838,7 @@ impl BlockId { }); map } - fn diorite_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn waxed_cut_copper_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let facing_cardinal = self.facing_cardinal().unwrap(); map.insert("facing", { facing_cardinal.as_str() }); @@ -17551,7 +22855,9 @@ impl BlockId { }); map } - fn polished_granite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn waxed_oxidized_cut_copper_slab_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let slab_kind = self.slab_kind().unwrap(); map.insert("type", { slab_kind.as_str() }); @@ -17564,7 +22870,9 @@ impl BlockId { }); map } - fn smooth_red_sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn waxed_weathered_cut_copper_slab_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let slab_kind = self.slab_kind().unwrap(); map.insert("type", { slab_kind.as_str() }); @@ -17577,7 +22885,9 @@ impl BlockId { }); map } - fn mossy_stone_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn waxed_exposed_cut_copper_slab_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let slab_kind = self.slab_kind().unwrap(); map.insert("type", { slab_kind.as_str() }); @@ -17590,7 +22900,7 @@ impl BlockId { }); map } - fn polished_diorite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn waxed_cut_copper_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let slab_kind = self.slab_kind().unwrap(); map.insert("type", { slab_kind.as_str() }); @@ -17603,23 +22913,17 @@ impl BlockId { }); map } - fn mossy_cobblestone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn lightning_rod_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let facing_cubic = self.facing_cubic().unwrap(); + map.insert("facing", { facing_cubic.as_str() }); + let powered = self.powered().unwrap(); + map.insert("powered", { + match powered { true => "true", false => "false", } }); - map - } - fn end_stone_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17629,10 +22933,12 @@ impl BlockId { }); map } - fn smooth_sandstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn pointed_dripstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); + let thickness = self.thickness().unwrap(); + map.insert("thickness", { thickness.as_str() }); + let vertical_direction = self.vertical_direction().unwrap(); + map.insert("vertical_direction", { vertical_direction.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17642,62 +22948,90 @@ impl BlockId { }); map } - fn smooth_quartz_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn dripstone_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn granite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cave_vines_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let age_0_25 = self.age_0_25().unwrap(); + map.insert("age", { + match age_0_25 { + 0i32 => "0", + 1i32 => "1", + 2i32 => "2", + 3i32 => "3", + 4i32 => "4", + 5i32 => "5", + 6i32 => "6", + 7i32 => "7", + 8i32 => "8", + 9i32 => "9", + 10i32 => "10", + 11i32 => "11", + 12i32 => "12", + 13i32 => "13", + 14i32 => "14", + 15i32 => "15", + 16i32 => "16", + 17i32 => "17", + 18i32 => "18", + 19i32 => "19", + 20i32 => "20", + 21i32 => "21", + 22i32 => "22", + 23i32 => "23", + 24i32 => "24", + 25i32 => "25", + _ => "unknown", + } + }); + let berries = self.berries().unwrap(); + map.insert("berries", { + match berries { true => "true", false => "false", } }); map } - fn andesite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cave_vines_plant_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { + let berries = self.berries().unwrap(); + map.insert("berries", { + match berries { true => "true", false => "false", } }); map } - fn red_nether_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn spore_blossom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn azalea_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn flowering_azalea_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn moss_carpet_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn moss_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", - } - }); map } - fn polished_andesite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn big_dripleaf_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let tilt = self.tilt().unwrap(); + map.insert("tilt", { tilt.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17707,10 +23041,10 @@ impl BlockId { }); map } - fn diorite_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn big_dripleaf_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17720,21 +23054,12 @@ impl BlockId { }); map } - fn brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn small_dripleaf_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", - } - }); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_upper_lower = self.half_upper_lower().unwrap(); + map.insert("half", { half_upper_lower.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17742,25 +23067,10 @@ impl BlockId { false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); map } - fn prismarine_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn hanging_roots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", - } - }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17768,25 +23078,30 @@ impl BlockId { false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); map } - fn red_sandstone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn rooted_dirt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", - } - }); + map + } + fn deepslate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); + map + } + fn cobbled_deepslate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + fn cobbled_deepslate_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17794,25 +23109,12 @@ impl BlockId { false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); map } - fn mossy_stone_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cobbled_deepslate_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", - } - }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17820,11 +23122,9 @@ impl BlockId { false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); map } - fn granite_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cobbled_deepslate_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let east_nlt = self.east_nlt().unwrap(); map.insert("east", { east_nlt.as_str() }); @@ -17850,21 +23150,18 @@ impl BlockId { map.insert("west", { west_nlt.as_str() }); map } - fn stone_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_deepslate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", - } - }); + map + } + fn polished_deepslate_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17872,25 +23169,12 @@ impl BlockId { false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); map } - fn nether_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_deepslate_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", - } - }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17898,11 +23182,9 @@ impl BlockId { false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); map } - fn andesite_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn polished_deepslate_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let east_nlt = self.east_nlt().unwrap(); map.insert("east", { east_nlt.as_str() }); @@ -17928,21 +23210,18 @@ impl BlockId { map.insert("west", { west_nlt.as_str() }); map } - fn red_nether_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn deepslate_tiles_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", - } - }); + map + } + fn deepslate_tile_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17950,25 +23229,12 @@ impl BlockId { false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); map } - fn sandstone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn deepslate_tile_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", - } - }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -17976,11 +23242,9 @@ impl BlockId { false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); map } - fn end_stone_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn deepslate_tile_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); let east_nlt = self.east_nlt().unwrap(); map.insert("east", { east_nlt.as_str() }); @@ -18006,21 +23270,18 @@ impl BlockId { map.insert("west", { west_nlt.as_str() }); map } - fn diorite_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn deepslate_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", - } - }); + map + } + fn deepslate_brick_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + let facing_cardinal = self.facing_cardinal().unwrap(); + map.insert("facing", { facing_cardinal.as_str() }); + let half_top_bottom = self.half_top_bottom().unwrap(); + map.insert("half", { half_top_bottom.as_str() }); + let stairs_shape = self.stairs_shape().unwrap(); + map.insert("shape", { stairs_shape.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -18028,33 +23289,12 @@ impl BlockId { false => "false", } }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); map } - fn scaffolding_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn deepslate_brick_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let bottom = self.bottom().unwrap(); - map.insert("bottom", { - match bottom { - true => "true", - false => "false", - } - }); - let distance_0_7 = self.distance_0_7().unwrap(); - map.insert("distance", { - match distance_0_7 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - _ => "unknown", - } - }); + let slab_kind = self.slab_kind().unwrap(); + map.insert("type", { slab_kind.as_str() }); let waterlogged = self.waterlogged().unwrap(); map.insert("waterlogged", { match waterlogged { @@ -18064,4159 +23304,4941 @@ impl BlockId { }); map } - fn loom_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - map - } - fn barrel_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn deepslate_brick_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cubic = self.facing_cubic().unwrap(); - map.insert("facing", { facing_cubic.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { + let east_nlt = self.east_nlt().unwrap(); + map.insert("east", { east_nlt.as_str() }); + let north_nlt = self.north_nlt().unwrap(); + map.insert("north", { north_nlt.as_str() }); + let south_nlt = self.south_nlt().unwrap(); + map.insert("south", { south_nlt.as_str() }); + let up = self.up().unwrap(); + map.insert("up", { + match up { true => "true", false => "false", } }); - map - } - fn smoker_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let lit = self.lit().unwrap(); - map.insert("lit", { - match lit { + let waterlogged = self.waterlogged().unwrap(); + map.insert("waterlogged", { + match waterlogged { true => "true", false => "false", } }); + let west_nlt = self.west_nlt().unwrap(); + map.insert("west", { west_nlt.as_str() }); map } - fn blast_furnace_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn chiseled_deepslate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let lit = self.lit().unwrap(); - map.insert("lit", { - match lit { - true => "true", - false => "false", - } - }); map } - fn cartography_table_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cracked_deepslate_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn fletching_table_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn cracked_deepslate_tiles_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn grindstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn infested_deepslate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); + let axis_xyz = self.axis_xyz().unwrap(); + map.insert("axis", { axis_xyz.as_str() }); map } - fn lectern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn smooth_basalt_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let has_book = self.has_book().unwrap(); - map.insert("has_book", { - match has_book { - true => "true", - false => "false", - } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); map } - fn smithing_table_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn raw_iron_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); map } - fn stonecutter_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn raw_copper_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); map } - fn bell_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn raw_gold_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let attachment = self.attachment().unwrap(); - map.insert("attachment", { attachment.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", - } - }); map } - fn lantern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { + fn potted_azalea_bush_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { let mut map = BTreeMap::new(); - let hanging = self.hanging().unwrap(); - map.insert("hanging", { - match hanging { - true => "true", - false => "false", + map + } + fn potted_flowering_azalea_bush_to_properties_map( + self, + ) -> BTreeMap<&'static str, &'static str> { + let mut map = BTreeMap::new(); + map + } + #[doc = "Attempts to convert a block kind identifier (e.g. `minecraft::air`) and properties map to a `BlockId`."] + pub fn from_identifier_and_properties( + identifier: &str, + properties: &BTreeMap, + ) -> Option { + match identifier { + "minecraft:air" => Self::air_from_identifier_and_properties(properties), + "minecraft:stone" => Self::stone_from_identifier_and_properties(properties), + "minecraft:granite" => Self::granite_from_identifier_and_properties(properties), + "minecraft:polished_granite" => { + Self::polished_granite_from_identifier_and_properties(properties) + } + "minecraft:diorite" => Self::diorite_from_identifier_and_properties(properties), + "minecraft:polished_diorite" => { + Self::polished_diorite_from_identifier_and_properties(properties) + } + "minecraft:andesite" => Self::andesite_from_identifier_and_properties(properties), + "minecraft:polished_andesite" => { + Self::polished_andesite_from_identifier_and_properties(properties) + } + "minecraft:grass_block" => Self::grass_block_from_identifier_and_properties(properties), + "minecraft:dirt" => Self::dirt_from_identifier_and_properties(properties), + "minecraft:coarse_dirt" => Self::coarse_dirt_from_identifier_and_properties(properties), + "minecraft:podzol" => Self::podzol_from_identifier_and_properties(properties), + "minecraft:cobblestone" => Self::cobblestone_from_identifier_and_properties(properties), + "minecraft:oak_planks" => Self::oak_planks_from_identifier_and_properties(properties), + "minecraft:spruce_planks" => { + Self::spruce_planks_from_identifier_and_properties(properties) + } + "minecraft:birch_planks" => { + Self::birch_planks_from_identifier_and_properties(properties) + } + "minecraft:jungle_planks" => { + Self::jungle_planks_from_identifier_and_properties(properties) + } + "minecraft:acacia_planks" => { + Self::acacia_planks_from_identifier_and_properties(properties) + } + "minecraft:dark_oak_planks" => { + Self::dark_oak_planks_from_identifier_and_properties(properties) + } + "minecraft:oak_sapling" => Self::oak_sapling_from_identifier_and_properties(properties), + "minecraft:spruce_sapling" => { + Self::spruce_sapling_from_identifier_and_properties(properties) + } + "minecraft:birch_sapling" => { + Self::birch_sapling_from_identifier_and_properties(properties) + } + "minecraft:jungle_sapling" => { + Self::jungle_sapling_from_identifier_and_properties(properties) + } + "minecraft:acacia_sapling" => { + Self::acacia_sapling_from_identifier_and_properties(properties) + } + "minecraft:dark_oak_sapling" => { + Self::dark_oak_sapling_from_identifier_and_properties(properties) + } + "minecraft:bedrock" => Self::bedrock_from_identifier_and_properties(properties), + "minecraft:water" => Self::water_from_identifier_and_properties(properties), + "minecraft:lava" => Self::lava_from_identifier_and_properties(properties), + "minecraft:sand" => Self::sand_from_identifier_and_properties(properties), + "minecraft:red_sand" => Self::red_sand_from_identifier_and_properties(properties), + "minecraft:gravel" => Self::gravel_from_identifier_and_properties(properties), + "minecraft:gold_ore" => Self::gold_ore_from_identifier_and_properties(properties), + "minecraft:deepslate_gold_ore" => { + Self::deepslate_gold_ore_from_identifier_and_properties(properties) + } + "minecraft:iron_ore" => Self::iron_ore_from_identifier_and_properties(properties), + "minecraft:deepslate_iron_ore" => { + Self::deepslate_iron_ore_from_identifier_and_properties(properties) + } + "minecraft:coal_ore" => Self::coal_ore_from_identifier_and_properties(properties), + "minecraft:deepslate_coal_ore" => { + Self::deepslate_coal_ore_from_identifier_and_properties(properties) + } + "minecraft:nether_gold_ore" => { + Self::nether_gold_ore_from_identifier_and_properties(properties) + } + "minecraft:oak_log" => Self::oak_log_from_identifier_and_properties(properties), + "minecraft:spruce_log" => Self::spruce_log_from_identifier_and_properties(properties), + "minecraft:birch_log" => Self::birch_log_from_identifier_and_properties(properties), + "minecraft:jungle_log" => Self::jungle_log_from_identifier_and_properties(properties), + "minecraft:acacia_log" => Self::acacia_log_from_identifier_and_properties(properties), + "minecraft:dark_oak_log" => { + Self::dark_oak_log_from_identifier_and_properties(properties) + } + "minecraft:stripped_spruce_log" => { + Self::stripped_spruce_log_from_identifier_and_properties(properties) + } + "minecraft:stripped_birch_log" => { + Self::stripped_birch_log_from_identifier_and_properties(properties) + } + "minecraft:stripped_jungle_log" => { + Self::stripped_jungle_log_from_identifier_and_properties(properties) + } + "minecraft:stripped_acacia_log" => { + Self::stripped_acacia_log_from_identifier_and_properties(properties) + } + "minecraft:stripped_dark_oak_log" => { + Self::stripped_dark_oak_log_from_identifier_and_properties(properties) + } + "minecraft:stripped_oak_log" => { + Self::stripped_oak_log_from_identifier_and_properties(properties) + } + "minecraft:oak_wood" => Self::oak_wood_from_identifier_and_properties(properties), + "minecraft:spruce_wood" => Self::spruce_wood_from_identifier_and_properties(properties), + "minecraft:birch_wood" => Self::birch_wood_from_identifier_and_properties(properties), + "minecraft:jungle_wood" => Self::jungle_wood_from_identifier_and_properties(properties), + "minecraft:acacia_wood" => Self::acacia_wood_from_identifier_and_properties(properties), + "minecraft:dark_oak_wood" => { + Self::dark_oak_wood_from_identifier_and_properties(properties) + } + "minecraft:stripped_oak_wood" => { + Self::stripped_oak_wood_from_identifier_and_properties(properties) + } + "minecraft:stripped_spruce_wood" => { + Self::stripped_spruce_wood_from_identifier_and_properties(properties) + } + "minecraft:stripped_birch_wood" => { + Self::stripped_birch_wood_from_identifier_and_properties(properties) + } + "minecraft:stripped_jungle_wood" => { + Self::stripped_jungle_wood_from_identifier_and_properties(properties) + } + "minecraft:stripped_acacia_wood" => { + Self::stripped_acacia_wood_from_identifier_and_properties(properties) + } + "minecraft:stripped_dark_oak_wood" => { + Self::stripped_dark_oak_wood_from_identifier_and_properties(properties) + } + "minecraft:oak_leaves" => Self::oak_leaves_from_identifier_and_properties(properties), + "minecraft:spruce_leaves" => { + Self::spruce_leaves_from_identifier_and_properties(properties) + } + "minecraft:birch_leaves" => { + Self::birch_leaves_from_identifier_and_properties(properties) + } + "minecraft:jungle_leaves" => { + Self::jungle_leaves_from_identifier_and_properties(properties) + } + "minecraft:acacia_leaves" => { + Self::acacia_leaves_from_identifier_and_properties(properties) + } + "minecraft:dark_oak_leaves" => { + Self::dark_oak_leaves_from_identifier_and_properties(properties) + } + "minecraft:azalea_leaves" => { + Self::azalea_leaves_from_identifier_and_properties(properties) + } + "minecraft:flowering_azalea_leaves" => { + Self::flowering_azalea_leaves_from_identifier_and_properties(properties) + } + "minecraft:sponge" => Self::sponge_from_identifier_and_properties(properties), + "minecraft:wet_sponge" => Self::wet_sponge_from_identifier_and_properties(properties), + "minecraft:glass" => Self::glass_from_identifier_and_properties(properties), + "minecraft:lapis_ore" => Self::lapis_ore_from_identifier_and_properties(properties), + "minecraft:deepslate_lapis_ore" => { + Self::deepslate_lapis_ore_from_identifier_and_properties(properties) + } + "minecraft:lapis_block" => Self::lapis_block_from_identifier_and_properties(properties), + "minecraft:dispenser" => Self::dispenser_from_identifier_and_properties(properties), + "minecraft:sandstone" => Self::sandstone_from_identifier_and_properties(properties), + "minecraft:chiseled_sandstone" => { + Self::chiseled_sandstone_from_identifier_and_properties(properties) + } + "minecraft:cut_sandstone" => { + Self::cut_sandstone_from_identifier_and_properties(properties) + } + "minecraft:note_block" => Self::note_block_from_identifier_and_properties(properties), + "minecraft:white_bed" => Self::white_bed_from_identifier_and_properties(properties), + "minecraft:orange_bed" => Self::orange_bed_from_identifier_and_properties(properties), + "minecraft:magenta_bed" => Self::magenta_bed_from_identifier_and_properties(properties), + "minecraft:light_blue_bed" => { + Self::light_blue_bed_from_identifier_and_properties(properties) + } + "minecraft:yellow_bed" => Self::yellow_bed_from_identifier_and_properties(properties), + "minecraft:lime_bed" => Self::lime_bed_from_identifier_and_properties(properties), + "minecraft:pink_bed" => Self::pink_bed_from_identifier_and_properties(properties), + "minecraft:gray_bed" => Self::gray_bed_from_identifier_and_properties(properties), + "minecraft:light_gray_bed" => { + Self::light_gray_bed_from_identifier_and_properties(properties) + } + "minecraft:cyan_bed" => Self::cyan_bed_from_identifier_and_properties(properties), + "minecraft:purple_bed" => Self::purple_bed_from_identifier_and_properties(properties), + "minecraft:blue_bed" => Self::blue_bed_from_identifier_and_properties(properties), + "minecraft:brown_bed" => Self::brown_bed_from_identifier_and_properties(properties), + "minecraft:green_bed" => Self::green_bed_from_identifier_and_properties(properties), + "minecraft:red_bed" => Self::red_bed_from_identifier_and_properties(properties), + "minecraft:black_bed" => Self::black_bed_from_identifier_and_properties(properties), + "minecraft:powered_rail" => { + Self::powered_rail_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:detector_rail" => { + Self::detector_rail_from_identifier_and_properties(properties) } - }); - map - } - fn soul_lantern_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let hanging = self.hanging().unwrap(); - map.insert("hanging", { - match hanging { - true => "true", - false => "false", + "minecraft:sticky_piston" => { + Self::sticky_piston_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:cobweb" => Self::cobweb_from_identifier_and_properties(properties), + "minecraft:grass" => Self::grass_from_identifier_and_properties(properties), + "minecraft:fern" => Self::fern_from_identifier_and_properties(properties), + "minecraft:dead_bush" => Self::dead_bush_from_identifier_and_properties(properties), + "minecraft:seagrass" => Self::seagrass_from_identifier_and_properties(properties), + "minecraft:tall_seagrass" => { + Self::tall_seagrass_from_identifier_and_properties(properties) } - }); - map - } - fn campfire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let lit = self.lit().unwrap(); - map.insert("lit", { - match lit { - true => "true", - false => "false", + "minecraft:piston" => Self::piston_from_identifier_and_properties(properties), + "minecraft:piston_head" => Self::piston_head_from_identifier_and_properties(properties), + "minecraft:white_wool" => Self::white_wool_from_identifier_and_properties(properties), + "minecraft:orange_wool" => Self::orange_wool_from_identifier_and_properties(properties), + "minecraft:magenta_wool" => { + Self::magenta_wool_from_identifier_and_properties(properties) } - }); - let signal_fire = self.signal_fire().unwrap(); - map.insert("signal_fire", { - match signal_fire { - true => "true", - false => "false", + "minecraft:light_blue_wool" => { + Self::light_blue_wool_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:yellow_wool" => Self::yellow_wool_from_identifier_and_properties(properties), + "minecraft:lime_wool" => Self::lime_wool_from_identifier_and_properties(properties), + "minecraft:pink_wool" => Self::pink_wool_from_identifier_and_properties(properties), + "minecraft:gray_wool" => Self::gray_wool_from_identifier_and_properties(properties), + "minecraft:light_gray_wool" => { + Self::light_gray_wool_from_identifier_and_properties(properties) } - }); - map - } - fn soul_campfire_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let lit = self.lit().unwrap(); - map.insert("lit", { - match lit { - true => "true", - false => "false", + "minecraft:cyan_wool" => Self::cyan_wool_from_identifier_and_properties(properties), + "minecraft:purple_wool" => Self::purple_wool_from_identifier_and_properties(properties), + "minecraft:blue_wool" => Self::blue_wool_from_identifier_and_properties(properties), + "minecraft:brown_wool" => Self::brown_wool_from_identifier_and_properties(properties), + "minecraft:green_wool" => Self::green_wool_from_identifier_and_properties(properties), + "minecraft:red_wool" => Self::red_wool_from_identifier_and_properties(properties), + "minecraft:black_wool" => Self::black_wool_from_identifier_and_properties(properties), + "minecraft:moving_piston" => { + Self::moving_piston_from_identifier_and_properties(properties) } - }); - let signal_fire = self.signal_fire().unwrap(); - map.insert("signal_fire", { - match signal_fire { - true => "true", - false => "false", + "minecraft:dandelion" => Self::dandelion_from_identifier_and_properties(properties), + "minecraft:poppy" => Self::poppy_from_identifier_and_properties(properties), + "minecraft:blue_orchid" => Self::blue_orchid_from_identifier_and_properties(properties), + "minecraft:allium" => Self::allium_from_identifier_and_properties(properties), + "minecraft:azure_bluet" => Self::azure_bluet_from_identifier_and_properties(properties), + "minecraft:red_tulip" => Self::red_tulip_from_identifier_and_properties(properties), + "minecraft:orange_tulip" => { + Self::orange_tulip_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:white_tulip" => Self::white_tulip_from_identifier_and_properties(properties), + "minecraft:pink_tulip" => Self::pink_tulip_from_identifier_and_properties(properties), + "minecraft:oxeye_daisy" => Self::oxeye_daisy_from_identifier_and_properties(properties), + "minecraft:cornflower" => Self::cornflower_from_identifier_and_properties(properties), + "minecraft:wither_rose" => Self::wither_rose_from_identifier_and_properties(properties), + "minecraft:lily_of_the_valley" => { + Self::lily_of_the_valley_from_identifier_and_properties(properties) } - }); - map - } - fn sweet_berry_bush_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let age_0_3 = self.age_0_3().unwrap(); - map.insert("age", { - match age_0_3 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - _ => "unknown", + "minecraft:brown_mushroom" => { + Self::brown_mushroom_from_identifier_and_properties(properties) } - }); - map - } - fn warped_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn stripped_warped_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn warped_hyphae_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn stripped_warped_hyphae_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn warped_nylium_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn warped_fungus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn warped_wart_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn warped_roots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn nether_sprouts_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn crimson_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn stripped_crimson_stem_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn crimson_hyphae_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn stripped_crimson_hyphae_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let axis_xyz = self.axis_xyz().unwrap(); - map.insert("axis", { axis_xyz.as_str() }); - map - } - fn crimson_nylium_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn crimson_fungus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn shroomlight_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn weeping_vines_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let age_0_25 = self.age_0_25().unwrap(); - map.insert("age", { - match age_0_25 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - 16i32 => "16", - 17i32 => "17", - 18i32 => "18", - 19i32 => "19", - 20i32 => "20", - 21i32 => "21", - 22i32 => "22", - 23i32 => "23", - 24i32 => "24", - 25i32 => "25", - _ => "unknown", + "minecraft:red_mushroom" => { + Self::red_mushroom_from_identifier_and_properties(properties) + } + "minecraft:gold_block" => Self::gold_block_from_identifier_and_properties(properties), + "minecraft:iron_block" => Self::iron_block_from_identifier_and_properties(properties), + "minecraft:bricks" => Self::bricks_from_identifier_and_properties(properties), + "minecraft:tnt" => Self::tnt_from_identifier_and_properties(properties), + "minecraft:bookshelf" => Self::bookshelf_from_identifier_and_properties(properties), + "minecraft:mossy_cobblestone" => { + Self::mossy_cobblestone_from_identifier_and_properties(properties) } - }); - map - } - fn weeping_vines_plant_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn twisting_vines_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let age_0_25 = self.age_0_25().unwrap(); - map.insert("age", { - match age_0_25 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - 16i32 => "16", - 17i32 => "17", - 18i32 => "18", - 19i32 => "19", - 20i32 => "20", - 21i32 => "21", - 22i32 => "22", - 23i32 => "23", - 24i32 => "24", - 25i32 => "25", - _ => "unknown", + "minecraft:obsidian" => Self::obsidian_from_identifier_and_properties(properties), + "minecraft:torch" => Self::torch_from_identifier_and_properties(properties), + "minecraft:wall_torch" => Self::wall_torch_from_identifier_and_properties(properties), + "minecraft:fire" => Self::fire_from_identifier_and_properties(properties), + "minecraft:soul_fire" => Self::soul_fire_from_identifier_and_properties(properties), + "minecraft:spawner" => Self::spawner_from_identifier_and_properties(properties), + "minecraft:oak_stairs" => Self::oak_stairs_from_identifier_and_properties(properties), + "minecraft:chest" => Self::chest_from_identifier_and_properties(properties), + "minecraft:redstone_wire" => { + Self::redstone_wire_from_identifier_and_properties(properties) } - }); - map - } - fn twisting_vines_plant_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn crimson_roots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn crimson_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn warped_planks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn crimson_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:diamond_ore" => Self::diamond_ore_from_identifier_and_properties(properties), + "minecraft:deepslate_diamond_ore" => { + Self::deepslate_diamond_ore_from_identifier_and_properties(properties) } - }); - map - } - fn warped_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:diamond_block" => { + Self::diamond_block_from_identifier_and_properties(properties) } - }); - map - } - fn crimson_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:crafting_table" => { + Self::crafting_table_from_identifier_and_properties(properties) } - }); - map - } - fn warped_pressure_plate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:wheat" => Self::wheat_from_identifier_and_properties(properties), + "minecraft:farmland" => Self::farmland_from_identifier_and_properties(properties), + "minecraft:furnace" => Self::furnace_from_identifier_and_properties(properties), + "minecraft:oak_sign" => Self::oak_sign_from_identifier_and_properties(properties), + "minecraft:spruce_sign" => Self::spruce_sign_from_identifier_and_properties(properties), + "minecraft:birch_sign" => Self::birch_sign_from_identifier_and_properties(properties), + "minecraft:acacia_sign" => Self::acacia_sign_from_identifier_and_properties(properties), + "minecraft:jungle_sign" => Self::jungle_sign_from_identifier_and_properties(properties), + "minecraft:dark_oak_sign" => { + Self::dark_oak_sign_from_identifier_and_properties(properties) } - }); - map - } - fn crimson_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", + "minecraft:oak_door" => Self::oak_door_from_identifier_and_properties(properties), + "minecraft:ladder" => Self::ladder_from_identifier_and_properties(properties), + "minecraft:rail" => Self::rail_from_identifier_and_properties(properties), + "minecraft:cobblestone_stairs" => { + Self::cobblestone_stairs_from_identifier_and_properties(properties) } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", + "minecraft:oak_wall_sign" => { + Self::oak_wall_sign_from_identifier_and_properties(properties) } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", + "minecraft:spruce_wall_sign" => { + Self::spruce_wall_sign_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:birch_wall_sign" => { + Self::birch_wall_sign_from_identifier_and_properties(properties) } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", + "minecraft:acacia_wall_sign" => { + Self::acacia_wall_sign_from_identifier_and_properties(properties) } - }); - map - } - fn warped_fence_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let east_connected = self.east_connected().unwrap(); - map.insert("east", { - match east_connected { - true => "true", - false => "false", + "minecraft:jungle_wall_sign" => { + Self::jungle_wall_sign_from_identifier_and_properties(properties) } - }); - let north_connected = self.north_connected().unwrap(); - map.insert("north", { - match north_connected { - true => "true", - false => "false", + "minecraft:dark_oak_wall_sign" => { + Self::dark_oak_wall_sign_from_identifier_and_properties(properties) } - }); - let south_connected = self.south_connected().unwrap(); - map.insert("south", { - match south_connected { - true => "true", - false => "false", + "minecraft:lever" => Self::lever_from_identifier_and_properties(properties), + "minecraft:stone_pressure_plate" => { + Self::stone_pressure_plate_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:iron_door" => Self::iron_door_from_identifier_and_properties(properties), + "minecraft:oak_pressure_plate" => { + Self::oak_pressure_plate_from_identifier_and_properties(properties) } - }); - let west_connected = self.west_connected().unwrap(); - map.insert("west", { - match west_connected { - true => "true", - false => "false", + "minecraft:spruce_pressure_plate" => { + Self::spruce_pressure_plate_from_identifier_and_properties(properties) } - }); - map - } - fn crimson_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", + "minecraft:birch_pressure_plate" => { + Self::birch_pressure_plate_from_identifier_and_properties(properties) } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:jungle_pressure_plate" => { + Self::jungle_pressure_plate_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:acacia_pressure_plate" => { + Self::acacia_pressure_plate_from_identifier_and_properties(properties) } - }); - map - } - fn warped_trapdoor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", + "minecraft:dark_oak_pressure_plate" => { + Self::dark_oak_pressure_plate_from_identifier_and_properties(properties) } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:redstone_ore" => { + Self::redstone_ore_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:deepslate_redstone_ore" => { + Self::deepslate_redstone_ore_from_identifier_and_properties(properties) } - }); - map - } - fn crimson_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let in_wall = self.in_wall().unwrap(); - map.insert("in_wall", { - match in_wall { - true => "true", - false => "false", + "minecraft:redstone_torch" => { + Self::redstone_torch_from_identifier_and_properties(properties) } - }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", + "minecraft:redstone_wall_torch" => { + Self::redstone_wall_torch_from_identifier_and_properties(properties) } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:stone_button" => { + Self::stone_button_from_identifier_and_properties(properties) } - }); - map - } - fn warped_fence_gate_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let in_wall = self.in_wall().unwrap(); - map.insert("in_wall", { - match in_wall { - true => "true", - false => "false", + "minecraft:snow" => Self::snow_from_identifier_and_properties(properties), + "minecraft:ice" => Self::ice_from_identifier_and_properties(properties), + "minecraft:snow_block" => Self::snow_block_from_identifier_and_properties(properties), + "minecraft:cactus" => Self::cactus_from_identifier_and_properties(properties), + "minecraft:clay" => Self::clay_from_identifier_and_properties(properties), + "minecraft:sugar_cane" => Self::sugar_cane_from_identifier_and_properties(properties), + "minecraft:jukebox" => Self::jukebox_from_identifier_and_properties(properties), + "minecraft:oak_fence" => Self::oak_fence_from_identifier_and_properties(properties), + "minecraft:pumpkin" => Self::pumpkin_from_identifier_and_properties(properties), + "minecraft:netherrack" => Self::netherrack_from_identifier_and_properties(properties), + "minecraft:soul_sand" => Self::soul_sand_from_identifier_and_properties(properties), + "minecraft:soul_soil" => Self::soul_soil_from_identifier_and_properties(properties), + "minecraft:basalt" => Self::basalt_from_identifier_and_properties(properties), + "minecraft:polished_basalt" => { + Self::polished_basalt_from_identifier_and_properties(properties) } - }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", + "minecraft:soul_torch" => Self::soul_torch_from_identifier_and_properties(properties), + "minecraft:soul_wall_torch" => { + Self::soul_wall_torch_from_identifier_and_properties(properties) } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:glowstone" => Self::glowstone_from_identifier_and_properties(properties), + "minecraft:nether_portal" => { + Self::nether_portal_from_identifier_and_properties(properties) } - }); - map - } - fn crimson_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:carved_pumpkin" => { + Self::carved_pumpkin_from_identifier_and_properties(properties) } - }); - map - } - fn warped_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:jack_o_lantern" => { + Self::jack_o_lantern_from_identifier_and_properties(properties) } - }); - map - } - fn crimson_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:cake" => Self::cake_from_identifier_and_properties(properties), + "minecraft:repeater" => Self::repeater_from_identifier_and_properties(properties), + "minecraft:white_stained_glass" => { + Self::white_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn warped_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:orange_stained_glass" => { + Self::orange_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn crimson_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); - let hinge = self.hinge().unwrap(); - map.insert("hinge", { hinge.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", + "minecraft:magenta_stained_glass" => { + Self::magenta_stained_glass_from_identifier_and_properties(properties) } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:light_blue_stained_glass" => { + Self::light_blue_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn warped_door_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_upper_lower = self.half_upper_lower().unwrap(); - map.insert("half", { half_upper_lower.as_str() }); - let hinge = self.hinge().unwrap(); - map.insert("hinge", { hinge.as_str() }); - let open = self.open().unwrap(); - map.insert("open", { - match open { - true => "true", - false => "false", + "minecraft:yellow_stained_glass" => { + Self::yellow_stained_glass_from_identifier_and_properties(properties) } - }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:lime_stained_glass" => { + Self::lime_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn crimson_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + "minecraft:pink_stained_glass" => { + Self::pink_stained_glass_from_identifier_and_properties(properties) + } + "minecraft:gray_stained_glass" => { + Self::gray_stained_glass_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:light_gray_stained_glass" => { + Self::light_gray_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn warped_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let rotation = self.rotation().unwrap(); - map.insert("rotation", { - match rotation { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + "minecraft:cyan_stained_glass" => { + Self::cyan_stained_glass_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:purple_stained_glass" => { + Self::purple_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn crimson_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:blue_stained_glass" => { + Self::blue_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn warped_wall_sign_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:brown_stained_glass" => { + Self::brown_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn structure_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let structure_block_mode = self.structure_block_mode().unwrap(); - map.insert("mode", { structure_block_mode.as_str() }); - map - } - fn jigsaw_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let orientation = self.orientation().unwrap(); - map.insert("orientation", { orientation.as_str() }); - map - } - fn composter_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let level_0_8 = self.level_0_8().unwrap(); - map.insert("level", { - match level_0_8 { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - _ => "unknown", + "minecraft:green_stained_glass" => { + Self::green_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn target_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let power = self.power().unwrap(); - map.insert("power", { - match power { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - 6i32 => "6", - 7i32 => "7", - 8i32 => "8", - 9i32 => "9", - 10i32 => "10", - 11i32 => "11", - 12i32 => "12", - 13i32 => "13", - 14i32 => "14", - 15i32 => "15", - _ => "unknown", + "minecraft:red_stained_glass" => { + Self::red_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn bee_nest_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let honey_level = self.honey_level().unwrap(); - map.insert("honey_level", { - match honey_level { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - _ => "unknown", + "minecraft:black_stained_glass" => { + Self::black_stained_glass_from_identifier_and_properties(properties) } - }); - map - } - fn beehive_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let honey_level = self.honey_level().unwrap(); - map.insert("honey_level", { - match honey_level { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - 5i32 => "5", - _ => "unknown", + "minecraft:oak_trapdoor" => { + Self::oak_trapdoor_from_identifier_and_properties(properties) } - }); - map - } - fn honey_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn honeycomb_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn netherite_block_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn ancient_debris_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn crying_obsidian_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn respawn_anchor_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let charges = self.charges().unwrap(); - map.insert("charges", { - match charges { - 0i32 => "0", - 1i32 => "1", - 2i32 => "2", - 3i32 => "3", - 4i32 => "4", - _ => "unknown", + "minecraft:spruce_trapdoor" => { + Self::spruce_trapdoor_from_identifier_and_properties(properties) } - }); - map - } - fn potted_crimson_fungus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn potted_warped_fungus_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn potted_crimson_roots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn potted_warped_roots_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn lodestone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn blackstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn blackstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:birch_trapdoor" => { + Self::birch_trapdoor_from_identifier_and_properties(properties) + } + "minecraft:jungle_trapdoor" => { + Self::jungle_trapdoor_from_identifier_and_properties(properties) + } + "minecraft:acacia_trapdoor" => { + Self::acacia_trapdoor_from_identifier_and_properties(properties) + } + "minecraft:dark_oak_trapdoor" => { + Self::dark_oak_trapdoor_from_identifier_and_properties(properties) } - }); - map - } - fn blackstone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", + "minecraft:stone_bricks" => { + Self::stone_bricks_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:mossy_stone_bricks" => { + Self::mossy_stone_bricks_from_identifier_and_properties(properties) } - }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); - map - } - fn blackstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:cracked_stone_bricks" => { + Self::cracked_stone_bricks_from_identifier_and_properties(properties) } - }); - map - } - fn polished_blackstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn polished_blackstone_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn cracked_polished_blackstone_bricks_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn chiseled_polished_blackstone_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn polished_blackstone_brick_slab_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:chiseled_stone_bricks" => { + Self::chiseled_stone_bricks_from_identifier_and_properties(properties) } - }); - map - } - fn polished_blackstone_brick_stairs_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:infested_stone" => { + Self::infested_stone_from_identifier_and_properties(properties) } - }); - map - } - fn polished_blackstone_brick_wall_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", + "minecraft:infested_cobblestone" => { + Self::infested_cobblestone_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:infested_stone_bricks" => { + Self::infested_stone_bricks_from_identifier_and_properties(properties) } - }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); - map - } - fn gilded_blackstone_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn polished_blackstone_stairs_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let half_top_bottom = self.half_top_bottom().unwrap(); - map.insert("half", { half_top_bottom.as_str() }); - let stairs_shape = self.stairs_shape().unwrap(); - map.insert("shape", { stairs_shape.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:infested_mossy_stone_bricks" => { + Self::infested_mossy_stone_bricks_from_identifier_and_properties(properties) } - }); - map - } - fn polished_blackstone_slab_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let slab_kind = self.slab_kind().unwrap(); - map.insert("type", { slab_kind.as_str() }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:infested_cracked_stone_bricks" => { + Self::infested_cracked_stone_bricks_from_identifier_and_properties(properties) } - }); - map - } - fn polished_blackstone_pressure_plate_to_properties_map( - self, - ) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:infested_chiseled_stone_bricks" => { + Self::infested_chiseled_stone_bricks_from_identifier_and_properties(properties) } - }); - map - } - fn polished_blackstone_button_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let face = self.face().unwrap(); - map.insert("face", { face.as_str() }); - let facing_cardinal = self.facing_cardinal().unwrap(); - map.insert("facing", { facing_cardinal.as_str() }); - let powered = self.powered().unwrap(); - map.insert("powered", { - match powered { - true => "true", - false => "false", + "minecraft:brown_mushroom_block" => { + Self::brown_mushroom_block_from_identifier_and_properties(properties) } - }); - map - } - fn polished_blackstone_wall_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - let east_nlt = self.east_nlt().unwrap(); - map.insert("east", { east_nlt.as_str() }); - let north_nlt = self.north_nlt().unwrap(); - map.insert("north", { north_nlt.as_str() }); - let south_nlt = self.south_nlt().unwrap(); - map.insert("south", { south_nlt.as_str() }); - let up = self.up().unwrap(); - map.insert("up", { - match up { - true => "true", - false => "false", + "minecraft:red_mushroom_block" => { + Self::red_mushroom_block_from_identifier_and_properties(properties) } - }); - let waterlogged = self.waterlogged().unwrap(); - map.insert("waterlogged", { - match waterlogged { - true => "true", - false => "false", + "minecraft:mushroom_stem" => { + Self::mushroom_stem_from_identifier_and_properties(properties) } - }); - let west_nlt = self.west_nlt().unwrap(); - map.insert("west", { west_nlt.as_str() }); - map - } - fn chiseled_nether_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn cracked_nether_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - fn quartz_bricks_to_properties_map(self) -> BTreeMap<&'static str, &'static str> { - let mut map = BTreeMap::new(); - map - } - #[doc = "Attempts to convert a block kind identifier (e.g. `minecraft::air`) and properties map to a `BlockId`."] - pub fn from_identifier_and_properties( - identifier: &str, - properties: &BTreeMap, - ) -> Option { - match identifier { - "minecraft:air" => Self::air_from_identifier_and_properties(properties), - "minecraft:stone" => Self::stone_from_identifier_and_properties(properties), - "minecraft:granite" => Self::granite_from_identifier_and_properties(properties), - "minecraft:polished_granite" => { - Self::polished_granite_from_identifier_and_properties(properties) + "minecraft:iron_bars" => Self::iron_bars_from_identifier_and_properties(properties), + "minecraft:chain" => Self::chain_from_identifier_and_properties(properties), + "minecraft:glass_pane" => Self::glass_pane_from_identifier_and_properties(properties), + "minecraft:melon" => Self::melon_from_identifier_and_properties(properties), + "minecraft:attached_pumpkin_stem" => { + Self::attached_pumpkin_stem_from_identifier_and_properties(properties) + } + "minecraft:attached_melon_stem" => { + Self::attached_melon_stem_from_identifier_and_properties(properties) } - "minecraft:diorite" => Self::diorite_from_identifier_and_properties(properties), - "minecraft:polished_diorite" => { - Self::polished_diorite_from_identifier_and_properties(properties) + "minecraft:pumpkin_stem" => { + Self::pumpkin_stem_from_identifier_and_properties(properties) } - "minecraft:andesite" => Self::andesite_from_identifier_and_properties(properties), - "minecraft:polished_andesite" => { - Self::polished_andesite_from_identifier_and_properties(properties) + "minecraft:melon_stem" => Self::melon_stem_from_identifier_and_properties(properties), + "minecraft:vine" => Self::vine_from_identifier_and_properties(properties), + "minecraft:glow_lichen" => Self::glow_lichen_from_identifier_and_properties(properties), + "minecraft:oak_fence_gate" => { + Self::oak_fence_gate_from_identifier_and_properties(properties) } - "minecraft:grass_block" => Self::grass_block_from_identifier_and_properties(properties), - "minecraft:dirt" => Self::dirt_from_identifier_and_properties(properties), - "minecraft:coarse_dirt" => Self::coarse_dirt_from_identifier_and_properties(properties), - "minecraft:podzol" => Self::podzol_from_identifier_and_properties(properties), - "minecraft:cobblestone" => Self::cobblestone_from_identifier_and_properties(properties), - "minecraft:oak_planks" => Self::oak_planks_from_identifier_and_properties(properties), - "minecraft:spruce_planks" => { - Self::spruce_planks_from_identifier_and_properties(properties) + "minecraft:brick_stairs" => { + Self::brick_stairs_from_identifier_and_properties(properties) } - "minecraft:birch_planks" => { - Self::birch_planks_from_identifier_and_properties(properties) + "minecraft:stone_brick_stairs" => { + Self::stone_brick_stairs_from_identifier_and_properties(properties) } - "minecraft:jungle_planks" => { - Self::jungle_planks_from_identifier_and_properties(properties) + "minecraft:mycelium" => Self::mycelium_from_identifier_and_properties(properties), + "minecraft:lily_pad" => Self::lily_pad_from_identifier_and_properties(properties), + "minecraft:nether_bricks" => { + Self::nether_bricks_from_identifier_and_properties(properties) } - "minecraft:acacia_planks" => { - Self::acacia_planks_from_identifier_and_properties(properties) + "minecraft:nether_brick_fence" => { + Self::nether_brick_fence_from_identifier_and_properties(properties) } - "minecraft:dark_oak_planks" => { - Self::dark_oak_planks_from_identifier_and_properties(properties) + "minecraft:nether_brick_stairs" => { + Self::nether_brick_stairs_from_identifier_and_properties(properties) } - "minecraft:oak_sapling" => Self::oak_sapling_from_identifier_and_properties(properties), - "minecraft:spruce_sapling" => { - Self::spruce_sapling_from_identifier_and_properties(properties) + "minecraft:nether_wart" => Self::nether_wart_from_identifier_and_properties(properties), + "minecraft:enchanting_table" => { + Self::enchanting_table_from_identifier_and_properties(properties) } - "minecraft:birch_sapling" => { - Self::birch_sapling_from_identifier_and_properties(properties) + "minecraft:brewing_stand" => { + Self::brewing_stand_from_identifier_and_properties(properties) } - "minecraft:jungle_sapling" => { - Self::jungle_sapling_from_identifier_and_properties(properties) + "minecraft:cauldron" => Self::cauldron_from_identifier_and_properties(properties), + "minecraft:water_cauldron" => { + Self::water_cauldron_from_identifier_and_properties(properties) } - "minecraft:acacia_sapling" => { - Self::acacia_sapling_from_identifier_and_properties(properties) + "minecraft:lava_cauldron" => { + Self::lava_cauldron_from_identifier_and_properties(properties) } - "minecraft:dark_oak_sapling" => { - Self::dark_oak_sapling_from_identifier_and_properties(properties) + "minecraft:powder_snow_cauldron" => { + Self::powder_snow_cauldron_from_identifier_and_properties(properties) } - "minecraft:bedrock" => Self::bedrock_from_identifier_and_properties(properties), - "minecraft:water" => Self::water_from_identifier_and_properties(properties), - "minecraft:lava" => Self::lava_from_identifier_and_properties(properties), - "minecraft:sand" => Self::sand_from_identifier_and_properties(properties), - "minecraft:red_sand" => Self::red_sand_from_identifier_and_properties(properties), - "minecraft:gravel" => Self::gravel_from_identifier_and_properties(properties), - "minecraft:gold_ore" => Self::gold_ore_from_identifier_and_properties(properties), - "minecraft:iron_ore" => Self::iron_ore_from_identifier_and_properties(properties), - "minecraft:coal_ore" => Self::coal_ore_from_identifier_and_properties(properties), - "minecraft:nether_gold_ore" => { - Self::nether_gold_ore_from_identifier_and_properties(properties) + "minecraft:end_portal" => Self::end_portal_from_identifier_and_properties(properties), + "minecraft:end_portal_frame" => { + Self::end_portal_frame_from_identifier_and_properties(properties) } - "minecraft:oak_log" => Self::oak_log_from_identifier_and_properties(properties), - "minecraft:spruce_log" => Self::spruce_log_from_identifier_and_properties(properties), - "minecraft:birch_log" => Self::birch_log_from_identifier_and_properties(properties), - "minecraft:jungle_log" => Self::jungle_log_from_identifier_and_properties(properties), - "minecraft:acacia_log" => Self::acacia_log_from_identifier_and_properties(properties), - "minecraft:dark_oak_log" => { - Self::dark_oak_log_from_identifier_and_properties(properties) + "minecraft:end_stone" => Self::end_stone_from_identifier_and_properties(properties), + "minecraft:dragon_egg" => Self::dragon_egg_from_identifier_and_properties(properties), + "minecraft:redstone_lamp" => { + Self::redstone_lamp_from_identifier_and_properties(properties) } - "minecraft:stripped_spruce_log" => { - Self::stripped_spruce_log_from_identifier_and_properties(properties) + "minecraft:cocoa" => Self::cocoa_from_identifier_and_properties(properties), + "minecraft:sandstone_stairs" => { + Self::sandstone_stairs_from_identifier_and_properties(properties) } - "minecraft:stripped_birch_log" => { - Self::stripped_birch_log_from_identifier_and_properties(properties) + "minecraft:emerald_ore" => Self::emerald_ore_from_identifier_and_properties(properties), + "minecraft:deepslate_emerald_ore" => { + Self::deepslate_emerald_ore_from_identifier_and_properties(properties) } - "minecraft:stripped_jungle_log" => { - Self::stripped_jungle_log_from_identifier_and_properties(properties) + "minecraft:ender_chest" => Self::ender_chest_from_identifier_and_properties(properties), + "minecraft:tripwire_hook" => { + Self::tripwire_hook_from_identifier_and_properties(properties) } - "minecraft:stripped_acacia_log" => { - Self::stripped_acacia_log_from_identifier_and_properties(properties) + "minecraft:tripwire" => Self::tripwire_from_identifier_and_properties(properties), + "minecraft:emerald_block" => { + Self::emerald_block_from_identifier_and_properties(properties) } - "minecraft:stripped_dark_oak_log" => { - Self::stripped_dark_oak_log_from_identifier_and_properties(properties) + "minecraft:spruce_stairs" => { + Self::spruce_stairs_from_identifier_and_properties(properties) } - "minecraft:stripped_oak_log" => { - Self::stripped_oak_log_from_identifier_and_properties(properties) + "minecraft:birch_stairs" => { + Self::birch_stairs_from_identifier_and_properties(properties) } - "minecraft:oak_wood" => Self::oak_wood_from_identifier_and_properties(properties), - "minecraft:spruce_wood" => Self::spruce_wood_from_identifier_and_properties(properties), - "minecraft:birch_wood" => Self::birch_wood_from_identifier_and_properties(properties), - "minecraft:jungle_wood" => Self::jungle_wood_from_identifier_and_properties(properties), - "minecraft:acacia_wood" => Self::acacia_wood_from_identifier_and_properties(properties), - "minecraft:dark_oak_wood" => { - Self::dark_oak_wood_from_identifier_and_properties(properties) + "minecraft:jungle_stairs" => { + Self::jungle_stairs_from_identifier_and_properties(properties) } - "minecraft:stripped_oak_wood" => { - Self::stripped_oak_wood_from_identifier_and_properties(properties) + "minecraft:command_block" => { + Self::command_block_from_identifier_and_properties(properties) } - "minecraft:stripped_spruce_wood" => { - Self::stripped_spruce_wood_from_identifier_and_properties(properties) + "minecraft:beacon" => Self::beacon_from_identifier_and_properties(properties), + "minecraft:cobblestone_wall" => { + Self::cobblestone_wall_from_identifier_and_properties(properties) } - "minecraft:stripped_birch_wood" => { - Self::stripped_birch_wood_from_identifier_and_properties(properties) + "minecraft:mossy_cobblestone_wall" => { + Self::mossy_cobblestone_wall_from_identifier_and_properties(properties) } - "minecraft:stripped_jungle_wood" => { - Self::stripped_jungle_wood_from_identifier_and_properties(properties) + "minecraft:flower_pot" => Self::flower_pot_from_identifier_and_properties(properties), + "minecraft:potted_oak_sapling" => { + Self::potted_oak_sapling_from_identifier_and_properties(properties) } - "minecraft:stripped_acacia_wood" => { - Self::stripped_acacia_wood_from_identifier_and_properties(properties) + "minecraft:potted_spruce_sapling" => { + Self::potted_spruce_sapling_from_identifier_and_properties(properties) } - "minecraft:stripped_dark_oak_wood" => { - Self::stripped_dark_oak_wood_from_identifier_and_properties(properties) + "minecraft:potted_birch_sapling" => { + Self::potted_birch_sapling_from_identifier_and_properties(properties) } - "minecraft:oak_leaves" => Self::oak_leaves_from_identifier_and_properties(properties), - "minecraft:spruce_leaves" => { - Self::spruce_leaves_from_identifier_and_properties(properties) + "minecraft:potted_jungle_sapling" => { + Self::potted_jungle_sapling_from_identifier_and_properties(properties) } - "minecraft:birch_leaves" => { - Self::birch_leaves_from_identifier_and_properties(properties) + "minecraft:potted_acacia_sapling" => { + Self::potted_acacia_sapling_from_identifier_and_properties(properties) } - "minecraft:jungle_leaves" => { - Self::jungle_leaves_from_identifier_and_properties(properties) + "minecraft:potted_dark_oak_sapling" => { + Self::potted_dark_oak_sapling_from_identifier_and_properties(properties) } - "minecraft:acacia_leaves" => { - Self::acacia_leaves_from_identifier_and_properties(properties) + "minecraft:potted_fern" => Self::potted_fern_from_identifier_and_properties(properties), + "minecraft:potted_dandelion" => { + Self::potted_dandelion_from_identifier_and_properties(properties) } - "minecraft:dark_oak_leaves" => { - Self::dark_oak_leaves_from_identifier_and_properties(properties) + "minecraft:potted_poppy" => { + Self::potted_poppy_from_identifier_and_properties(properties) } - "minecraft:sponge" => Self::sponge_from_identifier_and_properties(properties), - "minecraft:wet_sponge" => Self::wet_sponge_from_identifier_and_properties(properties), - "minecraft:glass" => Self::glass_from_identifier_and_properties(properties), - "minecraft:lapis_ore" => Self::lapis_ore_from_identifier_and_properties(properties), - "minecraft:lapis_block" => Self::lapis_block_from_identifier_and_properties(properties), - "minecraft:dispenser" => Self::dispenser_from_identifier_and_properties(properties), - "minecraft:sandstone" => Self::sandstone_from_identifier_and_properties(properties), - "minecraft:chiseled_sandstone" => { - Self::chiseled_sandstone_from_identifier_and_properties(properties) + "minecraft:potted_blue_orchid" => { + Self::potted_blue_orchid_from_identifier_and_properties(properties) } - "minecraft:cut_sandstone" => { - Self::cut_sandstone_from_identifier_and_properties(properties) + "minecraft:potted_allium" => { + Self::potted_allium_from_identifier_and_properties(properties) } - "minecraft:note_block" => Self::note_block_from_identifier_and_properties(properties), - "minecraft:white_bed" => Self::white_bed_from_identifier_and_properties(properties), - "minecraft:orange_bed" => Self::orange_bed_from_identifier_and_properties(properties), - "minecraft:magenta_bed" => Self::magenta_bed_from_identifier_and_properties(properties), - "minecraft:light_blue_bed" => { - Self::light_blue_bed_from_identifier_and_properties(properties) + "minecraft:potted_azure_bluet" => { + Self::potted_azure_bluet_from_identifier_and_properties(properties) } - "minecraft:yellow_bed" => Self::yellow_bed_from_identifier_and_properties(properties), - "minecraft:lime_bed" => Self::lime_bed_from_identifier_and_properties(properties), - "minecraft:pink_bed" => Self::pink_bed_from_identifier_and_properties(properties), - "minecraft:gray_bed" => Self::gray_bed_from_identifier_and_properties(properties), - "minecraft:light_gray_bed" => { - Self::light_gray_bed_from_identifier_and_properties(properties) + "minecraft:potted_red_tulip" => { + Self::potted_red_tulip_from_identifier_and_properties(properties) } - "minecraft:cyan_bed" => Self::cyan_bed_from_identifier_and_properties(properties), - "minecraft:purple_bed" => Self::purple_bed_from_identifier_and_properties(properties), - "minecraft:blue_bed" => Self::blue_bed_from_identifier_and_properties(properties), - "minecraft:brown_bed" => Self::brown_bed_from_identifier_and_properties(properties), - "minecraft:green_bed" => Self::green_bed_from_identifier_and_properties(properties), - "minecraft:red_bed" => Self::red_bed_from_identifier_and_properties(properties), - "minecraft:black_bed" => Self::black_bed_from_identifier_and_properties(properties), - "minecraft:powered_rail" => { - Self::powered_rail_from_identifier_and_properties(properties) + "minecraft:potted_orange_tulip" => { + Self::potted_orange_tulip_from_identifier_and_properties(properties) } - "minecraft:detector_rail" => { - Self::detector_rail_from_identifier_and_properties(properties) + "minecraft:potted_white_tulip" => { + Self::potted_white_tulip_from_identifier_and_properties(properties) } - "minecraft:sticky_piston" => { - Self::sticky_piston_from_identifier_and_properties(properties) + "minecraft:potted_pink_tulip" => { + Self::potted_pink_tulip_from_identifier_and_properties(properties) } - "minecraft:cobweb" => Self::cobweb_from_identifier_and_properties(properties), - "minecraft:grass" => Self::grass_from_identifier_and_properties(properties), - "minecraft:fern" => Self::fern_from_identifier_and_properties(properties), - "minecraft:dead_bush" => Self::dead_bush_from_identifier_and_properties(properties), - "minecraft:seagrass" => Self::seagrass_from_identifier_and_properties(properties), - "minecraft:tall_seagrass" => { - Self::tall_seagrass_from_identifier_and_properties(properties) + "minecraft:potted_oxeye_daisy" => { + Self::potted_oxeye_daisy_from_identifier_and_properties(properties) } - "minecraft:piston" => Self::piston_from_identifier_and_properties(properties), - "minecraft:piston_head" => Self::piston_head_from_identifier_and_properties(properties), - "minecraft:white_wool" => Self::white_wool_from_identifier_and_properties(properties), - "minecraft:orange_wool" => Self::orange_wool_from_identifier_and_properties(properties), - "minecraft:magenta_wool" => { - Self::magenta_wool_from_identifier_and_properties(properties) + "minecraft:potted_cornflower" => { + Self::potted_cornflower_from_identifier_and_properties(properties) + } + "minecraft:potted_lily_of_the_valley" => { + Self::potted_lily_of_the_valley_from_identifier_and_properties(properties) + } + "minecraft:potted_wither_rose" => { + Self::potted_wither_rose_from_identifier_and_properties(properties) + } + "minecraft:potted_red_mushroom" => { + Self::potted_red_mushroom_from_identifier_and_properties(properties) + } + "minecraft:potted_brown_mushroom" => { + Self::potted_brown_mushroom_from_identifier_and_properties(properties) + } + "minecraft:potted_dead_bush" => { + Self::potted_dead_bush_from_identifier_and_properties(properties) + } + "minecraft:potted_cactus" => { + Self::potted_cactus_from_identifier_and_properties(properties) + } + "minecraft:carrots" => Self::carrots_from_identifier_and_properties(properties), + "minecraft:potatoes" => Self::potatoes_from_identifier_and_properties(properties), + "minecraft:oak_button" => Self::oak_button_from_identifier_and_properties(properties), + "minecraft:spruce_button" => { + Self::spruce_button_from_identifier_and_properties(properties) } - "minecraft:light_blue_wool" => { - Self::light_blue_wool_from_identifier_and_properties(properties) + "minecraft:birch_button" => { + Self::birch_button_from_identifier_and_properties(properties) } - "minecraft:yellow_wool" => Self::yellow_wool_from_identifier_and_properties(properties), - "minecraft:lime_wool" => Self::lime_wool_from_identifier_and_properties(properties), - "minecraft:pink_wool" => Self::pink_wool_from_identifier_and_properties(properties), - "minecraft:gray_wool" => Self::gray_wool_from_identifier_and_properties(properties), - "minecraft:light_gray_wool" => { - Self::light_gray_wool_from_identifier_and_properties(properties) + "minecraft:jungle_button" => { + Self::jungle_button_from_identifier_and_properties(properties) } - "minecraft:cyan_wool" => Self::cyan_wool_from_identifier_and_properties(properties), - "minecraft:purple_wool" => Self::purple_wool_from_identifier_and_properties(properties), - "minecraft:blue_wool" => Self::blue_wool_from_identifier_and_properties(properties), - "minecraft:brown_wool" => Self::brown_wool_from_identifier_and_properties(properties), - "minecraft:green_wool" => Self::green_wool_from_identifier_and_properties(properties), - "minecraft:red_wool" => Self::red_wool_from_identifier_and_properties(properties), - "minecraft:black_wool" => Self::black_wool_from_identifier_and_properties(properties), - "minecraft:moving_piston" => { - Self::moving_piston_from_identifier_and_properties(properties) + "minecraft:acacia_button" => { + Self::acacia_button_from_identifier_and_properties(properties) } - "minecraft:dandelion" => Self::dandelion_from_identifier_and_properties(properties), - "minecraft:poppy" => Self::poppy_from_identifier_and_properties(properties), - "minecraft:blue_orchid" => Self::blue_orchid_from_identifier_and_properties(properties), - "minecraft:allium" => Self::allium_from_identifier_and_properties(properties), - "minecraft:azure_bluet" => Self::azure_bluet_from_identifier_and_properties(properties), - "minecraft:red_tulip" => Self::red_tulip_from_identifier_and_properties(properties), - "minecraft:orange_tulip" => { - Self::orange_tulip_from_identifier_and_properties(properties) + "minecraft:dark_oak_button" => { + Self::dark_oak_button_from_identifier_and_properties(properties) } - "minecraft:white_tulip" => Self::white_tulip_from_identifier_and_properties(properties), - "minecraft:pink_tulip" => Self::pink_tulip_from_identifier_and_properties(properties), - "minecraft:oxeye_daisy" => Self::oxeye_daisy_from_identifier_and_properties(properties), - "minecraft:cornflower" => Self::cornflower_from_identifier_and_properties(properties), - "minecraft:wither_rose" => Self::wither_rose_from_identifier_and_properties(properties), - "minecraft:lily_of_the_valley" => { - Self::lily_of_the_valley_from_identifier_and_properties(properties) + "minecraft:skeleton_skull" => { + Self::skeleton_skull_from_identifier_and_properties(properties) } - "minecraft:brown_mushroom" => { - Self::brown_mushroom_from_identifier_and_properties(properties) + "minecraft:skeleton_wall_skull" => { + Self::skeleton_wall_skull_from_identifier_and_properties(properties) } - "minecraft:red_mushroom" => { - Self::red_mushroom_from_identifier_and_properties(properties) + "minecraft:wither_skeleton_skull" => { + Self::wither_skeleton_skull_from_identifier_and_properties(properties) } - "minecraft:gold_block" => Self::gold_block_from_identifier_and_properties(properties), - "minecraft:iron_block" => Self::iron_block_from_identifier_and_properties(properties), - "minecraft:bricks" => Self::bricks_from_identifier_and_properties(properties), - "minecraft:tnt" => Self::tnt_from_identifier_and_properties(properties), - "minecraft:bookshelf" => Self::bookshelf_from_identifier_and_properties(properties), - "minecraft:mossy_cobblestone" => { - Self::mossy_cobblestone_from_identifier_and_properties(properties) + "minecraft:wither_skeleton_wall_skull" => { + Self::wither_skeleton_wall_skull_from_identifier_and_properties(properties) } - "minecraft:obsidian" => Self::obsidian_from_identifier_and_properties(properties), - "minecraft:torch" => Self::torch_from_identifier_and_properties(properties), - "minecraft:wall_torch" => Self::wall_torch_from_identifier_and_properties(properties), - "minecraft:fire" => Self::fire_from_identifier_and_properties(properties), - "minecraft:soul_fire" => Self::soul_fire_from_identifier_and_properties(properties), - "minecraft:spawner" => Self::spawner_from_identifier_and_properties(properties), - "minecraft:oak_stairs" => Self::oak_stairs_from_identifier_and_properties(properties), - "minecraft:chest" => Self::chest_from_identifier_and_properties(properties), - "minecraft:redstone_wire" => { - Self::redstone_wire_from_identifier_and_properties(properties) + "minecraft:zombie_head" => Self::zombie_head_from_identifier_and_properties(properties), + "minecraft:zombie_wall_head" => { + Self::zombie_wall_head_from_identifier_and_properties(properties) } - "minecraft:diamond_ore" => Self::diamond_ore_from_identifier_and_properties(properties), - "minecraft:diamond_block" => { - Self::diamond_block_from_identifier_and_properties(properties) + "minecraft:player_head" => Self::player_head_from_identifier_and_properties(properties), + "minecraft:player_wall_head" => { + Self::player_wall_head_from_identifier_and_properties(properties) } - "minecraft:crafting_table" => { - Self::crafting_table_from_identifier_and_properties(properties) + "minecraft:creeper_head" => { + Self::creeper_head_from_identifier_and_properties(properties) } - "minecraft:wheat" => Self::wheat_from_identifier_and_properties(properties), - "minecraft:farmland" => Self::farmland_from_identifier_and_properties(properties), - "minecraft:furnace" => Self::furnace_from_identifier_and_properties(properties), - "minecraft:oak_sign" => Self::oak_sign_from_identifier_and_properties(properties), - "minecraft:spruce_sign" => Self::spruce_sign_from_identifier_and_properties(properties), - "minecraft:birch_sign" => Self::birch_sign_from_identifier_and_properties(properties), - "minecraft:acacia_sign" => Self::acacia_sign_from_identifier_and_properties(properties), - "minecraft:jungle_sign" => Self::jungle_sign_from_identifier_and_properties(properties), - "minecraft:dark_oak_sign" => { - Self::dark_oak_sign_from_identifier_and_properties(properties) + "minecraft:creeper_wall_head" => { + Self::creeper_wall_head_from_identifier_and_properties(properties) } - "minecraft:oak_door" => Self::oak_door_from_identifier_and_properties(properties), - "minecraft:ladder" => Self::ladder_from_identifier_and_properties(properties), - "minecraft:rail" => Self::rail_from_identifier_and_properties(properties), - "minecraft:cobblestone_stairs" => { - Self::cobblestone_stairs_from_identifier_and_properties(properties) + "minecraft:dragon_head" => Self::dragon_head_from_identifier_and_properties(properties), + "minecraft:dragon_wall_head" => { + Self::dragon_wall_head_from_identifier_and_properties(properties) } - "minecraft:oak_wall_sign" => { - Self::oak_wall_sign_from_identifier_and_properties(properties) + "minecraft:anvil" => Self::anvil_from_identifier_and_properties(properties), + "minecraft:chipped_anvil" => { + Self::chipped_anvil_from_identifier_and_properties(properties) } - "minecraft:spruce_wall_sign" => { - Self::spruce_wall_sign_from_identifier_and_properties(properties) + "minecraft:damaged_anvil" => { + Self::damaged_anvil_from_identifier_and_properties(properties) } - "minecraft:birch_wall_sign" => { - Self::birch_wall_sign_from_identifier_and_properties(properties) + "minecraft:trapped_chest" => { + Self::trapped_chest_from_identifier_and_properties(properties) } - "minecraft:acacia_wall_sign" => { - Self::acacia_wall_sign_from_identifier_and_properties(properties) + "minecraft:light_weighted_pressure_plate" => { + Self::light_weighted_pressure_plate_from_identifier_and_properties(properties) } - "minecraft:jungle_wall_sign" => { - Self::jungle_wall_sign_from_identifier_and_properties(properties) + "minecraft:heavy_weighted_pressure_plate" => { + Self::heavy_weighted_pressure_plate_from_identifier_and_properties(properties) } - "minecraft:dark_oak_wall_sign" => { - Self::dark_oak_wall_sign_from_identifier_and_properties(properties) + "minecraft:comparator" => Self::comparator_from_identifier_and_properties(properties), + "minecraft:daylight_detector" => { + Self::daylight_detector_from_identifier_and_properties(properties) } - "minecraft:lever" => Self::lever_from_identifier_and_properties(properties), - "minecraft:stone_pressure_plate" => { - Self::stone_pressure_plate_from_identifier_and_properties(properties) + "minecraft:redstone_block" => { + Self::redstone_block_from_identifier_and_properties(properties) } - "minecraft:iron_door" => Self::iron_door_from_identifier_and_properties(properties), - "minecraft:oak_pressure_plate" => { - Self::oak_pressure_plate_from_identifier_and_properties(properties) + "minecraft:nether_quartz_ore" => { + Self::nether_quartz_ore_from_identifier_and_properties(properties) } - "minecraft:spruce_pressure_plate" => { - Self::spruce_pressure_plate_from_identifier_and_properties(properties) + "minecraft:hopper" => Self::hopper_from_identifier_and_properties(properties), + "minecraft:quartz_block" => { + Self::quartz_block_from_identifier_and_properties(properties) } - "minecraft:birch_pressure_plate" => { - Self::birch_pressure_plate_from_identifier_and_properties(properties) + "minecraft:chiseled_quartz_block" => { + Self::chiseled_quartz_block_from_identifier_and_properties(properties) } - "minecraft:jungle_pressure_plate" => { - Self::jungle_pressure_plate_from_identifier_and_properties(properties) + "minecraft:quartz_pillar" => { + Self::quartz_pillar_from_identifier_and_properties(properties) } - "minecraft:acacia_pressure_plate" => { - Self::acacia_pressure_plate_from_identifier_and_properties(properties) + "minecraft:quartz_stairs" => { + Self::quartz_stairs_from_identifier_and_properties(properties) } - "minecraft:dark_oak_pressure_plate" => { - Self::dark_oak_pressure_plate_from_identifier_and_properties(properties) + "minecraft:activator_rail" => { + Self::activator_rail_from_identifier_and_properties(properties) } - "minecraft:redstone_ore" => { - Self::redstone_ore_from_identifier_and_properties(properties) + "minecraft:dropper" => Self::dropper_from_identifier_and_properties(properties), + "minecraft:white_terracotta" => { + Self::white_terracotta_from_identifier_and_properties(properties) } - "minecraft:redstone_torch" => { - Self::redstone_torch_from_identifier_and_properties(properties) + "minecraft:orange_terracotta" => { + Self::orange_terracotta_from_identifier_and_properties(properties) } - "minecraft:redstone_wall_torch" => { - Self::redstone_wall_torch_from_identifier_and_properties(properties) + "minecraft:magenta_terracotta" => { + Self::magenta_terracotta_from_identifier_and_properties(properties) } - "minecraft:stone_button" => { - Self::stone_button_from_identifier_and_properties(properties) + "minecraft:light_blue_terracotta" => { + Self::light_blue_terracotta_from_identifier_and_properties(properties) } - "minecraft:snow" => Self::snow_from_identifier_and_properties(properties), - "minecraft:ice" => Self::ice_from_identifier_and_properties(properties), - "minecraft:snow_block" => Self::snow_block_from_identifier_and_properties(properties), - "minecraft:cactus" => Self::cactus_from_identifier_and_properties(properties), - "minecraft:clay" => Self::clay_from_identifier_and_properties(properties), - "minecraft:sugar_cane" => Self::sugar_cane_from_identifier_and_properties(properties), - "minecraft:jukebox" => Self::jukebox_from_identifier_and_properties(properties), - "minecraft:oak_fence" => Self::oak_fence_from_identifier_and_properties(properties), - "minecraft:pumpkin" => Self::pumpkin_from_identifier_and_properties(properties), - "minecraft:netherrack" => Self::netherrack_from_identifier_and_properties(properties), - "minecraft:soul_sand" => Self::soul_sand_from_identifier_and_properties(properties), - "minecraft:soul_soil" => Self::soul_soil_from_identifier_and_properties(properties), - "minecraft:basalt" => Self::basalt_from_identifier_and_properties(properties), - "minecraft:polished_basalt" => { - Self::polished_basalt_from_identifier_and_properties(properties) + "minecraft:yellow_terracotta" => { + Self::yellow_terracotta_from_identifier_and_properties(properties) } - "minecraft:soul_torch" => Self::soul_torch_from_identifier_and_properties(properties), - "minecraft:soul_wall_torch" => { - Self::soul_wall_torch_from_identifier_and_properties(properties) + "minecraft:lime_terracotta" => { + Self::lime_terracotta_from_identifier_and_properties(properties) } - "minecraft:glowstone" => Self::glowstone_from_identifier_and_properties(properties), - "minecraft:nether_portal" => { - Self::nether_portal_from_identifier_and_properties(properties) + "minecraft:pink_terracotta" => { + Self::pink_terracotta_from_identifier_and_properties(properties) } - "minecraft:carved_pumpkin" => { - Self::carved_pumpkin_from_identifier_and_properties(properties) + "minecraft:gray_terracotta" => { + Self::gray_terracotta_from_identifier_and_properties(properties) } - "minecraft:jack_o_lantern" => { - Self::jack_o_lantern_from_identifier_and_properties(properties) + "minecraft:light_gray_terracotta" => { + Self::light_gray_terracotta_from_identifier_and_properties(properties) } - "minecraft:cake" => Self::cake_from_identifier_and_properties(properties), - "minecraft:repeater" => Self::repeater_from_identifier_and_properties(properties), - "minecraft:white_stained_glass" => { - Self::white_stained_glass_from_identifier_and_properties(properties) + "minecraft:cyan_terracotta" => { + Self::cyan_terracotta_from_identifier_and_properties(properties) } - "minecraft:orange_stained_glass" => { - Self::orange_stained_glass_from_identifier_and_properties(properties) + "minecraft:purple_terracotta" => { + Self::purple_terracotta_from_identifier_and_properties(properties) } - "minecraft:magenta_stained_glass" => { - Self::magenta_stained_glass_from_identifier_and_properties(properties) + "minecraft:blue_terracotta" => { + Self::blue_terracotta_from_identifier_and_properties(properties) } - "minecraft:light_blue_stained_glass" => { - Self::light_blue_stained_glass_from_identifier_and_properties(properties) + "minecraft:brown_terracotta" => { + Self::brown_terracotta_from_identifier_and_properties(properties) } - "minecraft:yellow_stained_glass" => { - Self::yellow_stained_glass_from_identifier_and_properties(properties) + "minecraft:green_terracotta" => { + Self::green_terracotta_from_identifier_and_properties(properties) } - "minecraft:lime_stained_glass" => { - Self::lime_stained_glass_from_identifier_and_properties(properties) + "minecraft:red_terracotta" => { + Self::red_terracotta_from_identifier_and_properties(properties) } - "minecraft:pink_stained_glass" => { - Self::pink_stained_glass_from_identifier_and_properties(properties) + "minecraft:black_terracotta" => { + Self::black_terracotta_from_identifier_and_properties(properties) } - "minecraft:gray_stained_glass" => { - Self::gray_stained_glass_from_identifier_and_properties(properties) + "minecraft:white_stained_glass_pane" => { + Self::white_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:light_gray_stained_glass" => { - Self::light_gray_stained_glass_from_identifier_and_properties(properties) + "minecraft:orange_stained_glass_pane" => { + Self::orange_stained_glass_pane_from_identifier_and_properties(properties) + } + "minecraft:magenta_stained_glass_pane" => { + Self::magenta_stained_glass_pane_from_identifier_and_properties(properties) + } + "minecraft:light_blue_stained_glass_pane" => { + Self::light_blue_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:cyan_stained_glass" => { - Self::cyan_stained_glass_from_identifier_and_properties(properties) + "minecraft:yellow_stained_glass_pane" => { + Self::yellow_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:purple_stained_glass" => { - Self::purple_stained_glass_from_identifier_and_properties(properties) + "minecraft:lime_stained_glass_pane" => { + Self::lime_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:blue_stained_glass" => { - Self::blue_stained_glass_from_identifier_and_properties(properties) + "minecraft:pink_stained_glass_pane" => { + Self::pink_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:brown_stained_glass" => { - Self::brown_stained_glass_from_identifier_and_properties(properties) + "minecraft:gray_stained_glass_pane" => { + Self::gray_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:green_stained_glass" => { - Self::green_stained_glass_from_identifier_and_properties(properties) + "minecraft:light_gray_stained_glass_pane" => { + Self::light_gray_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:red_stained_glass" => { - Self::red_stained_glass_from_identifier_and_properties(properties) + "minecraft:cyan_stained_glass_pane" => { + Self::cyan_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:black_stained_glass" => { - Self::black_stained_glass_from_identifier_and_properties(properties) + "minecraft:purple_stained_glass_pane" => { + Self::purple_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:oak_trapdoor" => { - Self::oak_trapdoor_from_identifier_and_properties(properties) + "minecraft:blue_stained_glass_pane" => { + Self::blue_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:spruce_trapdoor" => { - Self::spruce_trapdoor_from_identifier_and_properties(properties) + "minecraft:brown_stained_glass_pane" => { + Self::brown_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:birch_trapdoor" => { - Self::birch_trapdoor_from_identifier_and_properties(properties) + "minecraft:green_stained_glass_pane" => { + Self::green_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:jungle_trapdoor" => { - Self::jungle_trapdoor_from_identifier_and_properties(properties) + "minecraft:red_stained_glass_pane" => { + Self::red_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:acacia_trapdoor" => { - Self::acacia_trapdoor_from_identifier_and_properties(properties) + "minecraft:black_stained_glass_pane" => { + Self::black_stained_glass_pane_from_identifier_and_properties(properties) } - "minecraft:dark_oak_trapdoor" => { - Self::dark_oak_trapdoor_from_identifier_and_properties(properties) + "minecraft:acacia_stairs" => { + Self::acacia_stairs_from_identifier_and_properties(properties) } - "minecraft:stone_bricks" => { - Self::stone_bricks_from_identifier_and_properties(properties) + "minecraft:dark_oak_stairs" => { + Self::dark_oak_stairs_from_identifier_and_properties(properties) } - "minecraft:mossy_stone_bricks" => { - Self::mossy_stone_bricks_from_identifier_and_properties(properties) + "minecraft:slime_block" => Self::slime_block_from_identifier_and_properties(properties), + "minecraft:barrier" => Self::barrier_from_identifier_and_properties(properties), + "minecraft:light" => Self::light_from_identifier_and_properties(properties), + "minecraft:iron_trapdoor" => { + Self::iron_trapdoor_from_identifier_and_properties(properties) } - "minecraft:cracked_stone_bricks" => { - Self::cracked_stone_bricks_from_identifier_and_properties(properties) + "minecraft:prismarine" => Self::prismarine_from_identifier_and_properties(properties), + "minecraft:prismarine_bricks" => { + Self::prismarine_bricks_from_identifier_and_properties(properties) } - "minecraft:chiseled_stone_bricks" => { - Self::chiseled_stone_bricks_from_identifier_and_properties(properties) + "minecraft:dark_prismarine" => { + Self::dark_prismarine_from_identifier_and_properties(properties) } - "minecraft:infested_stone" => { - Self::infested_stone_from_identifier_and_properties(properties) + "minecraft:prismarine_stairs" => { + Self::prismarine_stairs_from_identifier_and_properties(properties) } - "minecraft:infested_cobblestone" => { - Self::infested_cobblestone_from_identifier_and_properties(properties) + "minecraft:prismarine_brick_stairs" => { + Self::prismarine_brick_stairs_from_identifier_and_properties(properties) } - "minecraft:infested_stone_bricks" => { - Self::infested_stone_bricks_from_identifier_and_properties(properties) + "minecraft:dark_prismarine_stairs" => { + Self::dark_prismarine_stairs_from_identifier_and_properties(properties) } - "minecraft:infested_mossy_stone_bricks" => { - Self::infested_mossy_stone_bricks_from_identifier_and_properties(properties) + "minecraft:prismarine_slab" => { + Self::prismarine_slab_from_identifier_and_properties(properties) } - "minecraft:infested_cracked_stone_bricks" => { - Self::infested_cracked_stone_bricks_from_identifier_and_properties(properties) + "minecraft:prismarine_brick_slab" => { + Self::prismarine_brick_slab_from_identifier_and_properties(properties) } - "minecraft:infested_chiseled_stone_bricks" => { - Self::infested_chiseled_stone_bricks_from_identifier_and_properties(properties) + "minecraft:dark_prismarine_slab" => { + Self::dark_prismarine_slab_from_identifier_and_properties(properties) } - "minecraft:brown_mushroom_block" => { - Self::brown_mushroom_block_from_identifier_and_properties(properties) + "minecraft:sea_lantern" => Self::sea_lantern_from_identifier_and_properties(properties), + "minecraft:hay_block" => Self::hay_block_from_identifier_and_properties(properties), + "minecraft:white_carpet" => { + Self::white_carpet_from_identifier_and_properties(properties) } - "minecraft:red_mushroom_block" => { - Self::red_mushroom_block_from_identifier_and_properties(properties) + "minecraft:orange_carpet" => { + Self::orange_carpet_from_identifier_and_properties(properties) } - "minecraft:mushroom_stem" => { - Self::mushroom_stem_from_identifier_and_properties(properties) + "minecraft:magenta_carpet" => { + Self::magenta_carpet_from_identifier_and_properties(properties) } - "minecraft:iron_bars" => Self::iron_bars_from_identifier_and_properties(properties), - "minecraft:chain" => Self::chain_from_identifier_and_properties(properties), - "minecraft:glass_pane" => Self::glass_pane_from_identifier_and_properties(properties), - "minecraft:melon" => Self::melon_from_identifier_and_properties(properties), - "minecraft:attached_pumpkin_stem" => { - Self::attached_pumpkin_stem_from_identifier_and_properties(properties) + "minecraft:light_blue_carpet" => { + Self::light_blue_carpet_from_identifier_and_properties(properties) } - "minecraft:attached_melon_stem" => { - Self::attached_melon_stem_from_identifier_and_properties(properties) + "minecraft:yellow_carpet" => { + Self::yellow_carpet_from_identifier_and_properties(properties) } - "minecraft:pumpkin_stem" => { - Self::pumpkin_stem_from_identifier_and_properties(properties) + "minecraft:lime_carpet" => Self::lime_carpet_from_identifier_and_properties(properties), + "minecraft:pink_carpet" => Self::pink_carpet_from_identifier_and_properties(properties), + "minecraft:gray_carpet" => Self::gray_carpet_from_identifier_and_properties(properties), + "minecraft:light_gray_carpet" => { + Self::light_gray_carpet_from_identifier_and_properties(properties) } - "minecraft:melon_stem" => Self::melon_stem_from_identifier_and_properties(properties), - "minecraft:vine" => Self::vine_from_identifier_and_properties(properties), - "minecraft:oak_fence_gate" => { - Self::oak_fence_gate_from_identifier_and_properties(properties) + "minecraft:cyan_carpet" => Self::cyan_carpet_from_identifier_and_properties(properties), + "minecraft:purple_carpet" => { + Self::purple_carpet_from_identifier_and_properties(properties) } - "minecraft:brick_stairs" => { - Self::brick_stairs_from_identifier_and_properties(properties) + "minecraft:blue_carpet" => Self::blue_carpet_from_identifier_and_properties(properties), + "minecraft:brown_carpet" => { + Self::brown_carpet_from_identifier_and_properties(properties) } - "minecraft:stone_brick_stairs" => { - Self::stone_brick_stairs_from_identifier_and_properties(properties) + "minecraft:green_carpet" => { + Self::green_carpet_from_identifier_and_properties(properties) } - "minecraft:mycelium" => Self::mycelium_from_identifier_and_properties(properties), - "minecraft:lily_pad" => Self::lily_pad_from_identifier_and_properties(properties), - "minecraft:nether_bricks" => { - Self::nether_bricks_from_identifier_and_properties(properties) + "minecraft:red_carpet" => Self::red_carpet_from_identifier_and_properties(properties), + "minecraft:black_carpet" => { + Self::black_carpet_from_identifier_and_properties(properties) } - "minecraft:nether_brick_fence" => { - Self::nether_brick_fence_from_identifier_and_properties(properties) + "minecraft:terracotta" => Self::terracotta_from_identifier_and_properties(properties), + "minecraft:coal_block" => Self::coal_block_from_identifier_and_properties(properties), + "minecraft:packed_ice" => Self::packed_ice_from_identifier_and_properties(properties), + "minecraft:sunflower" => Self::sunflower_from_identifier_and_properties(properties), + "minecraft:lilac" => Self::lilac_from_identifier_and_properties(properties), + "minecraft:rose_bush" => Self::rose_bush_from_identifier_and_properties(properties), + "minecraft:peony" => Self::peony_from_identifier_and_properties(properties), + "minecraft:tall_grass" => Self::tall_grass_from_identifier_and_properties(properties), + "minecraft:large_fern" => Self::large_fern_from_identifier_and_properties(properties), + "minecraft:white_banner" => { + Self::white_banner_from_identifier_and_properties(properties) } - "minecraft:nether_brick_stairs" => { - Self::nether_brick_stairs_from_identifier_and_properties(properties) + "minecraft:orange_banner" => { + Self::orange_banner_from_identifier_and_properties(properties) } - "minecraft:nether_wart" => Self::nether_wart_from_identifier_and_properties(properties), - "minecraft:enchanting_table" => { - Self::enchanting_table_from_identifier_and_properties(properties) + "minecraft:magenta_banner" => { + Self::magenta_banner_from_identifier_and_properties(properties) } - "minecraft:brewing_stand" => { - Self::brewing_stand_from_identifier_and_properties(properties) + "minecraft:light_blue_banner" => { + Self::light_blue_banner_from_identifier_and_properties(properties) } - "minecraft:cauldron" => Self::cauldron_from_identifier_and_properties(properties), - "minecraft:end_portal" => Self::end_portal_from_identifier_and_properties(properties), - "minecraft:end_portal_frame" => { - Self::end_portal_frame_from_identifier_and_properties(properties) + "minecraft:yellow_banner" => { + Self::yellow_banner_from_identifier_and_properties(properties) } - "minecraft:end_stone" => Self::end_stone_from_identifier_and_properties(properties), - "minecraft:dragon_egg" => Self::dragon_egg_from_identifier_and_properties(properties), - "minecraft:redstone_lamp" => { - Self::redstone_lamp_from_identifier_and_properties(properties) + "minecraft:lime_banner" => Self::lime_banner_from_identifier_and_properties(properties), + "minecraft:pink_banner" => Self::pink_banner_from_identifier_and_properties(properties), + "minecraft:gray_banner" => Self::gray_banner_from_identifier_and_properties(properties), + "minecraft:light_gray_banner" => { + Self::light_gray_banner_from_identifier_and_properties(properties) } - "minecraft:cocoa" => Self::cocoa_from_identifier_and_properties(properties), - "minecraft:sandstone_stairs" => { - Self::sandstone_stairs_from_identifier_and_properties(properties) + "minecraft:cyan_banner" => Self::cyan_banner_from_identifier_and_properties(properties), + "minecraft:purple_banner" => { + Self::purple_banner_from_identifier_and_properties(properties) } - "minecraft:emerald_ore" => Self::emerald_ore_from_identifier_and_properties(properties), - "minecraft:ender_chest" => Self::ender_chest_from_identifier_and_properties(properties), - "minecraft:tripwire_hook" => { - Self::tripwire_hook_from_identifier_and_properties(properties) + "minecraft:blue_banner" => Self::blue_banner_from_identifier_and_properties(properties), + "minecraft:brown_banner" => { + Self::brown_banner_from_identifier_and_properties(properties) } - "minecraft:tripwire" => Self::tripwire_from_identifier_and_properties(properties), - "minecraft:emerald_block" => { - Self::emerald_block_from_identifier_and_properties(properties) + "minecraft:green_banner" => { + Self::green_banner_from_identifier_and_properties(properties) } - "minecraft:spruce_stairs" => { - Self::spruce_stairs_from_identifier_and_properties(properties) + "minecraft:red_banner" => Self::red_banner_from_identifier_and_properties(properties), + "minecraft:black_banner" => { + Self::black_banner_from_identifier_and_properties(properties) } - "minecraft:birch_stairs" => { - Self::birch_stairs_from_identifier_and_properties(properties) + "minecraft:white_wall_banner" => { + Self::white_wall_banner_from_identifier_and_properties(properties) } - "minecraft:jungle_stairs" => { - Self::jungle_stairs_from_identifier_and_properties(properties) + "minecraft:orange_wall_banner" => { + Self::orange_wall_banner_from_identifier_and_properties(properties) } - "minecraft:command_block" => { - Self::command_block_from_identifier_and_properties(properties) + "minecraft:magenta_wall_banner" => { + Self::magenta_wall_banner_from_identifier_and_properties(properties) } - "minecraft:beacon" => Self::beacon_from_identifier_and_properties(properties), - "minecraft:cobblestone_wall" => { - Self::cobblestone_wall_from_identifier_and_properties(properties) + "minecraft:light_blue_wall_banner" => { + Self::light_blue_wall_banner_from_identifier_and_properties(properties) } - "minecraft:mossy_cobblestone_wall" => { - Self::mossy_cobblestone_wall_from_identifier_and_properties(properties) + "minecraft:yellow_wall_banner" => { + Self::yellow_wall_banner_from_identifier_and_properties(properties) } - "minecraft:flower_pot" => Self::flower_pot_from_identifier_and_properties(properties), - "minecraft:potted_oak_sapling" => { - Self::potted_oak_sapling_from_identifier_and_properties(properties) + "minecraft:lime_wall_banner" => { + Self::lime_wall_banner_from_identifier_and_properties(properties) } - "minecraft:potted_spruce_sapling" => { - Self::potted_spruce_sapling_from_identifier_and_properties(properties) + "minecraft:pink_wall_banner" => { + Self::pink_wall_banner_from_identifier_and_properties(properties) } - "minecraft:potted_birch_sapling" => { - Self::potted_birch_sapling_from_identifier_and_properties(properties) + "minecraft:gray_wall_banner" => { + Self::gray_wall_banner_from_identifier_and_properties(properties) } - "minecraft:potted_jungle_sapling" => { - Self::potted_jungle_sapling_from_identifier_and_properties(properties) + "minecraft:light_gray_wall_banner" => { + Self::light_gray_wall_banner_from_identifier_and_properties(properties) + } + "minecraft:cyan_wall_banner" => { + Self::cyan_wall_banner_from_identifier_and_properties(properties) } - "minecraft:potted_acacia_sapling" => { - Self::potted_acacia_sapling_from_identifier_and_properties(properties) + "minecraft:purple_wall_banner" => { + Self::purple_wall_banner_from_identifier_and_properties(properties) } - "minecraft:potted_dark_oak_sapling" => { - Self::potted_dark_oak_sapling_from_identifier_and_properties(properties) + "minecraft:blue_wall_banner" => { + Self::blue_wall_banner_from_identifier_and_properties(properties) } - "minecraft:potted_fern" => Self::potted_fern_from_identifier_and_properties(properties), - "minecraft:potted_dandelion" => { - Self::potted_dandelion_from_identifier_and_properties(properties) + "minecraft:brown_wall_banner" => { + Self::brown_wall_banner_from_identifier_and_properties(properties) } - "minecraft:potted_poppy" => { - Self::potted_poppy_from_identifier_and_properties(properties) + "minecraft:green_wall_banner" => { + Self::green_wall_banner_from_identifier_and_properties(properties) } - "minecraft:potted_blue_orchid" => { - Self::potted_blue_orchid_from_identifier_and_properties(properties) + "minecraft:red_wall_banner" => { + Self::red_wall_banner_from_identifier_and_properties(properties) } - "minecraft:potted_allium" => { - Self::potted_allium_from_identifier_and_properties(properties) + "minecraft:black_wall_banner" => { + Self::black_wall_banner_from_identifier_and_properties(properties) } - "minecraft:potted_azure_bluet" => { - Self::potted_azure_bluet_from_identifier_and_properties(properties) + "minecraft:red_sandstone" => { + Self::red_sandstone_from_identifier_and_properties(properties) } - "minecraft:potted_red_tulip" => { - Self::potted_red_tulip_from_identifier_and_properties(properties) + "minecraft:chiseled_red_sandstone" => { + Self::chiseled_red_sandstone_from_identifier_and_properties(properties) } - "minecraft:potted_orange_tulip" => { - Self::potted_orange_tulip_from_identifier_and_properties(properties) + "minecraft:cut_red_sandstone" => { + Self::cut_red_sandstone_from_identifier_and_properties(properties) } - "minecraft:potted_white_tulip" => { - Self::potted_white_tulip_from_identifier_and_properties(properties) + "minecraft:red_sandstone_stairs" => { + Self::red_sandstone_stairs_from_identifier_and_properties(properties) } - "minecraft:potted_pink_tulip" => { - Self::potted_pink_tulip_from_identifier_and_properties(properties) + "minecraft:oak_slab" => Self::oak_slab_from_identifier_and_properties(properties), + "minecraft:spruce_slab" => Self::spruce_slab_from_identifier_and_properties(properties), + "minecraft:birch_slab" => Self::birch_slab_from_identifier_and_properties(properties), + "minecraft:jungle_slab" => Self::jungle_slab_from_identifier_and_properties(properties), + "minecraft:acacia_slab" => Self::acacia_slab_from_identifier_and_properties(properties), + "minecraft:dark_oak_slab" => { + Self::dark_oak_slab_from_identifier_and_properties(properties) } - "minecraft:potted_oxeye_daisy" => { - Self::potted_oxeye_daisy_from_identifier_and_properties(properties) + "minecraft:stone_slab" => Self::stone_slab_from_identifier_and_properties(properties), + "minecraft:smooth_stone_slab" => { + Self::smooth_stone_slab_from_identifier_and_properties(properties) } - "minecraft:potted_cornflower" => { - Self::potted_cornflower_from_identifier_and_properties(properties) + "minecraft:sandstone_slab" => { + Self::sandstone_slab_from_identifier_and_properties(properties) } - "minecraft:potted_lily_of_the_valley" => { - Self::potted_lily_of_the_valley_from_identifier_and_properties(properties) + "minecraft:cut_sandstone_slab" => { + Self::cut_sandstone_slab_from_identifier_and_properties(properties) } - "minecraft:potted_wither_rose" => { - Self::potted_wither_rose_from_identifier_and_properties(properties) + "minecraft:petrified_oak_slab" => { + Self::petrified_oak_slab_from_identifier_and_properties(properties) } - "minecraft:potted_red_mushroom" => { - Self::potted_red_mushroom_from_identifier_and_properties(properties) + "minecraft:cobblestone_slab" => { + Self::cobblestone_slab_from_identifier_and_properties(properties) } - "minecraft:potted_brown_mushroom" => { - Self::potted_brown_mushroom_from_identifier_and_properties(properties) + "minecraft:brick_slab" => Self::brick_slab_from_identifier_and_properties(properties), + "minecraft:stone_brick_slab" => { + Self::stone_brick_slab_from_identifier_and_properties(properties) } - "minecraft:potted_dead_bush" => { - Self::potted_dead_bush_from_identifier_and_properties(properties) + "minecraft:nether_brick_slab" => { + Self::nether_brick_slab_from_identifier_and_properties(properties) } - "minecraft:potted_cactus" => { - Self::potted_cactus_from_identifier_and_properties(properties) + "minecraft:quartz_slab" => Self::quartz_slab_from_identifier_and_properties(properties), + "minecraft:red_sandstone_slab" => { + Self::red_sandstone_slab_from_identifier_and_properties(properties) } - "minecraft:carrots" => Self::carrots_from_identifier_and_properties(properties), - "minecraft:potatoes" => Self::potatoes_from_identifier_and_properties(properties), - "minecraft:oak_button" => Self::oak_button_from_identifier_and_properties(properties), - "minecraft:spruce_button" => { - Self::spruce_button_from_identifier_and_properties(properties) + "minecraft:cut_red_sandstone_slab" => { + Self::cut_red_sandstone_slab_from_identifier_and_properties(properties) } - "minecraft:birch_button" => { - Self::birch_button_from_identifier_and_properties(properties) + "minecraft:purpur_slab" => Self::purpur_slab_from_identifier_and_properties(properties), + "minecraft:smooth_stone" => { + Self::smooth_stone_from_identifier_and_properties(properties) } - "minecraft:jungle_button" => { - Self::jungle_button_from_identifier_and_properties(properties) + "minecraft:smooth_sandstone" => { + Self::smooth_sandstone_from_identifier_and_properties(properties) } - "minecraft:acacia_button" => { - Self::acacia_button_from_identifier_and_properties(properties) + "minecraft:smooth_quartz" => { + Self::smooth_quartz_from_identifier_and_properties(properties) } - "minecraft:dark_oak_button" => { - Self::dark_oak_button_from_identifier_and_properties(properties) + "minecraft:smooth_red_sandstone" => { + Self::smooth_red_sandstone_from_identifier_and_properties(properties) } - "minecraft:skeleton_skull" => { - Self::skeleton_skull_from_identifier_and_properties(properties) + "minecraft:spruce_fence_gate" => { + Self::spruce_fence_gate_from_identifier_and_properties(properties) } - "minecraft:skeleton_wall_skull" => { - Self::skeleton_wall_skull_from_identifier_and_properties(properties) + "minecraft:birch_fence_gate" => { + Self::birch_fence_gate_from_identifier_and_properties(properties) } - "minecraft:wither_skeleton_skull" => { - Self::wither_skeleton_skull_from_identifier_and_properties(properties) + "minecraft:jungle_fence_gate" => { + Self::jungle_fence_gate_from_identifier_and_properties(properties) } - "minecraft:wither_skeleton_wall_skull" => { - Self::wither_skeleton_wall_skull_from_identifier_and_properties(properties) + "minecraft:acacia_fence_gate" => { + Self::acacia_fence_gate_from_identifier_and_properties(properties) } - "minecraft:zombie_head" => Self::zombie_head_from_identifier_and_properties(properties), - "minecraft:zombie_wall_head" => { - Self::zombie_wall_head_from_identifier_and_properties(properties) + "minecraft:dark_oak_fence_gate" => { + Self::dark_oak_fence_gate_from_identifier_and_properties(properties) } - "minecraft:player_head" => Self::player_head_from_identifier_and_properties(properties), - "minecraft:player_wall_head" => { - Self::player_wall_head_from_identifier_and_properties(properties) + "minecraft:spruce_fence" => { + Self::spruce_fence_from_identifier_and_properties(properties) } - "minecraft:creeper_head" => { - Self::creeper_head_from_identifier_and_properties(properties) + "minecraft:birch_fence" => Self::birch_fence_from_identifier_and_properties(properties), + "minecraft:jungle_fence" => { + Self::jungle_fence_from_identifier_and_properties(properties) } - "minecraft:creeper_wall_head" => { - Self::creeper_wall_head_from_identifier_and_properties(properties) + "minecraft:acacia_fence" => { + Self::acacia_fence_from_identifier_and_properties(properties) } - "minecraft:dragon_head" => Self::dragon_head_from_identifier_and_properties(properties), - "minecraft:dragon_wall_head" => { - Self::dragon_wall_head_from_identifier_and_properties(properties) + "minecraft:dark_oak_fence" => { + Self::dark_oak_fence_from_identifier_and_properties(properties) } - "minecraft:anvil" => Self::anvil_from_identifier_and_properties(properties), - "minecraft:chipped_anvil" => { - Self::chipped_anvil_from_identifier_and_properties(properties) + "minecraft:spruce_door" => Self::spruce_door_from_identifier_and_properties(properties), + "minecraft:birch_door" => Self::birch_door_from_identifier_and_properties(properties), + "minecraft:jungle_door" => Self::jungle_door_from_identifier_and_properties(properties), + "minecraft:acacia_door" => Self::acacia_door_from_identifier_and_properties(properties), + "minecraft:dark_oak_door" => { + Self::dark_oak_door_from_identifier_and_properties(properties) } - "minecraft:damaged_anvil" => { - Self::damaged_anvil_from_identifier_and_properties(properties) + "minecraft:end_rod" => Self::end_rod_from_identifier_and_properties(properties), + "minecraft:chorus_plant" => { + Self::chorus_plant_from_identifier_and_properties(properties) } - "minecraft:trapped_chest" => { - Self::trapped_chest_from_identifier_and_properties(properties) + "minecraft:chorus_flower" => { + Self::chorus_flower_from_identifier_and_properties(properties) } - "minecraft:light_weighted_pressure_plate" => { - Self::light_weighted_pressure_plate_from_identifier_and_properties(properties) + "minecraft:purpur_block" => { + Self::purpur_block_from_identifier_and_properties(properties) } - "minecraft:heavy_weighted_pressure_plate" => { - Self::heavy_weighted_pressure_plate_from_identifier_and_properties(properties) + "minecraft:purpur_pillar" => { + Self::purpur_pillar_from_identifier_and_properties(properties) } - "minecraft:comparator" => Self::comparator_from_identifier_and_properties(properties), - "minecraft:daylight_detector" => { - Self::daylight_detector_from_identifier_and_properties(properties) + "minecraft:purpur_stairs" => { + Self::purpur_stairs_from_identifier_and_properties(properties) } - "minecraft:redstone_block" => { - Self::redstone_block_from_identifier_and_properties(properties) + "minecraft:end_stone_bricks" => { + Self::end_stone_bricks_from_identifier_and_properties(properties) } - "minecraft:nether_quartz_ore" => { - Self::nether_quartz_ore_from_identifier_and_properties(properties) + "minecraft:beetroots" => Self::beetroots_from_identifier_and_properties(properties), + "minecraft:dirt_path" => Self::dirt_path_from_identifier_and_properties(properties), + "minecraft:end_gateway" => Self::end_gateway_from_identifier_and_properties(properties), + "minecraft:repeating_command_block" => { + Self::repeating_command_block_from_identifier_and_properties(properties) } - "minecraft:hopper" => Self::hopper_from_identifier_and_properties(properties), - "minecraft:quartz_block" => { - Self::quartz_block_from_identifier_and_properties(properties) + "minecraft:chain_command_block" => { + Self::chain_command_block_from_identifier_and_properties(properties) } - "minecraft:chiseled_quartz_block" => { - Self::chiseled_quartz_block_from_identifier_and_properties(properties) + "minecraft:frosted_ice" => Self::frosted_ice_from_identifier_and_properties(properties), + "minecraft:magma_block" => Self::magma_block_from_identifier_and_properties(properties), + "minecraft:nether_wart_block" => { + Self::nether_wart_block_from_identifier_and_properties(properties) } - "minecraft:quartz_pillar" => { - Self::quartz_pillar_from_identifier_and_properties(properties) + "minecraft:red_nether_bricks" => { + Self::red_nether_bricks_from_identifier_and_properties(properties) } - "minecraft:quartz_stairs" => { - Self::quartz_stairs_from_identifier_and_properties(properties) + "minecraft:bone_block" => Self::bone_block_from_identifier_and_properties(properties), + "minecraft:structure_void" => { + Self::structure_void_from_identifier_and_properties(properties) } - "minecraft:activator_rail" => { - Self::activator_rail_from_identifier_and_properties(properties) + "minecraft:observer" => Self::observer_from_identifier_and_properties(properties), + "minecraft:shulker_box" => Self::shulker_box_from_identifier_and_properties(properties), + "minecraft:white_shulker_box" => { + Self::white_shulker_box_from_identifier_and_properties(properties) } - "minecraft:dropper" => Self::dropper_from_identifier_and_properties(properties), - "minecraft:white_terracotta" => { - Self::white_terracotta_from_identifier_and_properties(properties) + "minecraft:orange_shulker_box" => { + Self::orange_shulker_box_from_identifier_and_properties(properties) } - "minecraft:orange_terracotta" => { - Self::orange_terracotta_from_identifier_and_properties(properties) + "minecraft:magenta_shulker_box" => { + Self::magenta_shulker_box_from_identifier_and_properties(properties) } - "minecraft:magenta_terracotta" => { - Self::magenta_terracotta_from_identifier_and_properties(properties) + "minecraft:light_blue_shulker_box" => { + Self::light_blue_shulker_box_from_identifier_and_properties(properties) } - "minecraft:light_blue_terracotta" => { - Self::light_blue_terracotta_from_identifier_and_properties(properties) + "minecraft:yellow_shulker_box" => { + Self::yellow_shulker_box_from_identifier_and_properties(properties) } - "minecraft:yellow_terracotta" => { - Self::yellow_terracotta_from_identifier_and_properties(properties) + "minecraft:lime_shulker_box" => { + Self::lime_shulker_box_from_identifier_and_properties(properties) } - "minecraft:lime_terracotta" => { - Self::lime_terracotta_from_identifier_and_properties(properties) + "minecraft:pink_shulker_box" => { + Self::pink_shulker_box_from_identifier_and_properties(properties) } - "minecraft:pink_terracotta" => { - Self::pink_terracotta_from_identifier_and_properties(properties) + "minecraft:gray_shulker_box" => { + Self::gray_shulker_box_from_identifier_and_properties(properties) } - "minecraft:gray_terracotta" => { - Self::gray_terracotta_from_identifier_and_properties(properties) + "minecraft:light_gray_shulker_box" => { + Self::light_gray_shulker_box_from_identifier_and_properties(properties) } - "minecraft:light_gray_terracotta" => { - Self::light_gray_terracotta_from_identifier_and_properties(properties) + "minecraft:cyan_shulker_box" => { + Self::cyan_shulker_box_from_identifier_and_properties(properties) } - "minecraft:cyan_terracotta" => { - Self::cyan_terracotta_from_identifier_and_properties(properties) + "minecraft:purple_shulker_box" => { + Self::purple_shulker_box_from_identifier_and_properties(properties) } - "minecraft:purple_terracotta" => { - Self::purple_terracotta_from_identifier_and_properties(properties) + "minecraft:blue_shulker_box" => { + Self::blue_shulker_box_from_identifier_and_properties(properties) } - "minecraft:blue_terracotta" => { - Self::blue_terracotta_from_identifier_and_properties(properties) + "minecraft:brown_shulker_box" => { + Self::brown_shulker_box_from_identifier_and_properties(properties) } - "minecraft:brown_terracotta" => { - Self::brown_terracotta_from_identifier_and_properties(properties) + "minecraft:green_shulker_box" => { + Self::green_shulker_box_from_identifier_and_properties(properties) } - "minecraft:green_terracotta" => { - Self::green_terracotta_from_identifier_and_properties(properties) + "minecraft:red_shulker_box" => { + Self::red_shulker_box_from_identifier_and_properties(properties) } - "minecraft:red_terracotta" => { - Self::red_terracotta_from_identifier_and_properties(properties) + "minecraft:black_shulker_box" => { + Self::black_shulker_box_from_identifier_and_properties(properties) } - "minecraft:black_terracotta" => { - Self::black_terracotta_from_identifier_and_properties(properties) + "minecraft:white_glazed_terracotta" => { + Self::white_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:white_stained_glass_pane" => { - Self::white_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:orange_glazed_terracotta" => { + Self::orange_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:orange_stained_glass_pane" => { - Self::orange_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:magenta_glazed_terracotta" => { + Self::magenta_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:magenta_stained_glass_pane" => { - Self::magenta_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:light_blue_glazed_terracotta" => { + Self::light_blue_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:light_blue_stained_glass_pane" => { - Self::light_blue_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:yellow_glazed_terracotta" => { + Self::yellow_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:yellow_stained_glass_pane" => { - Self::yellow_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:lime_glazed_terracotta" => { + Self::lime_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:lime_stained_glass_pane" => { - Self::lime_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:pink_glazed_terracotta" => { + Self::pink_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:pink_stained_glass_pane" => { - Self::pink_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:gray_glazed_terracotta" => { + Self::gray_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:gray_stained_glass_pane" => { - Self::gray_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:light_gray_glazed_terracotta" => { + Self::light_gray_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:light_gray_stained_glass_pane" => { - Self::light_gray_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:cyan_glazed_terracotta" => { + Self::cyan_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:cyan_stained_glass_pane" => { - Self::cyan_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:purple_glazed_terracotta" => { + Self::purple_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:purple_stained_glass_pane" => { - Self::purple_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:blue_glazed_terracotta" => { + Self::blue_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:blue_stained_glass_pane" => { - Self::blue_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:brown_glazed_terracotta" => { + Self::brown_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:brown_stained_glass_pane" => { - Self::brown_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:green_glazed_terracotta" => { + Self::green_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:green_stained_glass_pane" => { - Self::green_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:red_glazed_terracotta" => { + Self::red_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:red_stained_glass_pane" => { - Self::red_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:black_glazed_terracotta" => { + Self::black_glazed_terracotta_from_identifier_and_properties(properties) } - "minecraft:black_stained_glass_pane" => { - Self::black_stained_glass_pane_from_identifier_and_properties(properties) + "minecraft:white_concrete" => { + Self::white_concrete_from_identifier_and_properties(properties) } - "minecraft:acacia_stairs" => { - Self::acacia_stairs_from_identifier_and_properties(properties) + "minecraft:orange_concrete" => { + Self::orange_concrete_from_identifier_and_properties(properties) } - "minecraft:dark_oak_stairs" => { - Self::dark_oak_stairs_from_identifier_and_properties(properties) + "minecraft:magenta_concrete" => { + Self::magenta_concrete_from_identifier_and_properties(properties) } - "minecraft:slime_block" => Self::slime_block_from_identifier_and_properties(properties), - "minecraft:barrier" => Self::barrier_from_identifier_and_properties(properties), - "minecraft:iron_trapdoor" => { - Self::iron_trapdoor_from_identifier_and_properties(properties) + "minecraft:light_blue_concrete" => { + Self::light_blue_concrete_from_identifier_and_properties(properties) } - "minecraft:prismarine" => Self::prismarine_from_identifier_and_properties(properties), - "minecraft:prismarine_bricks" => { - Self::prismarine_bricks_from_identifier_and_properties(properties) + "minecraft:yellow_concrete" => { + Self::yellow_concrete_from_identifier_and_properties(properties) } - "minecraft:dark_prismarine" => { - Self::dark_prismarine_from_identifier_and_properties(properties) + "minecraft:lime_concrete" => { + Self::lime_concrete_from_identifier_and_properties(properties) } - "minecraft:prismarine_stairs" => { - Self::prismarine_stairs_from_identifier_and_properties(properties) + "minecraft:pink_concrete" => { + Self::pink_concrete_from_identifier_and_properties(properties) } - "minecraft:prismarine_brick_stairs" => { - Self::prismarine_brick_stairs_from_identifier_and_properties(properties) + "minecraft:gray_concrete" => { + Self::gray_concrete_from_identifier_and_properties(properties) } - "minecraft:dark_prismarine_stairs" => { - Self::dark_prismarine_stairs_from_identifier_and_properties(properties) + "minecraft:light_gray_concrete" => { + Self::light_gray_concrete_from_identifier_and_properties(properties) } - "minecraft:prismarine_slab" => { - Self::prismarine_slab_from_identifier_and_properties(properties) + "minecraft:cyan_concrete" => { + Self::cyan_concrete_from_identifier_and_properties(properties) } - "minecraft:prismarine_brick_slab" => { - Self::prismarine_brick_slab_from_identifier_and_properties(properties) + "minecraft:purple_concrete" => { + Self::purple_concrete_from_identifier_and_properties(properties) } - "minecraft:dark_prismarine_slab" => { - Self::dark_prismarine_slab_from_identifier_and_properties(properties) + "minecraft:blue_concrete" => { + Self::blue_concrete_from_identifier_and_properties(properties) } - "minecraft:sea_lantern" => Self::sea_lantern_from_identifier_and_properties(properties), - "minecraft:hay_block" => Self::hay_block_from_identifier_and_properties(properties), - "minecraft:white_carpet" => { - Self::white_carpet_from_identifier_and_properties(properties) + "minecraft:brown_concrete" => { + Self::brown_concrete_from_identifier_and_properties(properties) } - "minecraft:orange_carpet" => { - Self::orange_carpet_from_identifier_and_properties(properties) + "minecraft:green_concrete" => { + Self::green_concrete_from_identifier_and_properties(properties) } - "minecraft:magenta_carpet" => { - Self::magenta_carpet_from_identifier_and_properties(properties) + "minecraft:red_concrete" => { + Self::red_concrete_from_identifier_and_properties(properties) } - "minecraft:light_blue_carpet" => { - Self::light_blue_carpet_from_identifier_and_properties(properties) + "minecraft:black_concrete" => { + Self::black_concrete_from_identifier_and_properties(properties) } - "minecraft:yellow_carpet" => { - Self::yellow_carpet_from_identifier_and_properties(properties) + "minecraft:white_concrete_powder" => { + Self::white_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:lime_carpet" => Self::lime_carpet_from_identifier_and_properties(properties), - "minecraft:pink_carpet" => Self::pink_carpet_from_identifier_and_properties(properties), - "minecraft:gray_carpet" => Self::gray_carpet_from_identifier_and_properties(properties), - "minecraft:light_gray_carpet" => { - Self::light_gray_carpet_from_identifier_and_properties(properties) + "minecraft:orange_concrete_powder" => { + Self::orange_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:cyan_carpet" => Self::cyan_carpet_from_identifier_and_properties(properties), - "minecraft:purple_carpet" => { - Self::purple_carpet_from_identifier_and_properties(properties) + "minecraft:magenta_concrete_powder" => { + Self::magenta_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:blue_carpet" => Self::blue_carpet_from_identifier_and_properties(properties), - "minecraft:brown_carpet" => { - Self::brown_carpet_from_identifier_and_properties(properties) + "minecraft:light_blue_concrete_powder" => { + Self::light_blue_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:green_carpet" => { - Self::green_carpet_from_identifier_and_properties(properties) + "minecraft:yellow_concrete_powder" => { + Self::yellow_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:red_carpet" => Self::red_carpet_from_identifier_and_properties(properties), - "minecraft:black_carpet" => { - Self::black_carpet_from_identifier_and_properties(properties) + "minecraft:lime_concrete_powder" => { + Self::lime_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:terracotta" => Self::terracotta_from_identifier_and_properties(properties), - "minecraft:coal_block" => Self::coal_block_from_identifier_and_properties(properties), - "minecraft:packed_ice" => Self::packed_ice_from_identifier_and_properties(properties), - "minecraft:sunflower" => Self::sunflower_from_identifier_and_properties(properties), - "minecraft:lilac" => Self::lilac_from_identifier_and_properties(properties), - "minecraft:rose_bush" => Self::rose_bush_from_identifier_and_properties(properties), - "minecraft:peony" => Self::peony_from_identifier_and_properties(properties), - "minecraft:tall_grass" => Self::tall_grass_from_identifier_and_properties(properties), - "minecraft:large_fern" => Self::large_fern_from_identifier_and_properties(properties), - "minecraft:white_banner" => { - Self::white_banner_from_identifier_and_properties(properties) + "minecraft:pink_concrete_powder" => { + Self::pink_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:orange_banner" => { - Self::orange_banner_from_identifier_and_properties(properties) + "minecraft:gray_concrete_powder" => { + Self::gray_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:magenta_banner" => { - Self::magenta_banner_from_identifier_and_properties(properties) + "minecraft:light_gray_concrete_powder" => { + Self::light_gray_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:light_blue_banner" => { - Self::light_blue_banner_from_identifier_and_properties(properties) + "minecraft:cyan_concrete_powder" => { + Self::cyan_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:yellow_banner" => { - Self::yellow_banner_from_identifier_and_properties(properties) + "minecraft:purple_concrete_powder" => { + Self::purple_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:lime_banner" => Self::lime_banner_from_identifier_and_properties(properties), - "minecraft:pink_banner" => Self::pink_banner_from_identifier_and_properties(properties), - "minecraft:gray_banner" => Self::gray_banner_from_identifier_and_properties(properties), - "minecraft:light_gray_banner" => { - Self::light_gray_banner_from_identifier_and_properties(properties) + "minecraft:blue_concrete_powder" => { + Self::blue_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:cyan_banner" => Self::cyan_banner_from_identifier_and_properties(properties), - "minecraft:purple_banner" => { - Self::purple_banner_from_identifier_and_properties(properties) + "minecraft:brown_concrete_powder" => { + Self::brown_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:blue_banner" => Self::blue_banner_from_identifier_and_properties(properties), - "minecraft:brown_banner" => { - Self::brown_banner_from_identifier_and_properties(properties) + "minecraft:green_concrete_powder" => { + Self::green_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:green_banner" => { - Self::green_banner_from_identifier_and_properties(properties) + "minecraft:red_concrete_powder" => { + Self::red_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:red_banner" => Self::red_banner_from_identifier_and_properties(properties), - "minecraft:black_banner" => { - Self::black_banner_from_identifier_and_properties(properties) + "minecraft:black_concrete_powder" => { + Self::black_concrete_powder_from_identifier_and_properties(properties) } - "minecraft:white_wall_banner" => { - Self::white_wall_banner_from_identifier_and_properties(properties) + "minecraft:kelp" => Self::kelp_from_identifier_and_properties(properties), + "minecraft:kelp_plant" => Self::kelp_plant_from_identifier_and_properties(properties), + "minecraft:dried_kelp_block" => { + Self::dried_kelp_block_from_identifier_and_properties(properties) } - "minecraft:orange_wall_banner" => { - Self::orange_wall_banner_from_identifier_and_properties(properties) + "minecraft:turtle_egg" => Self::turtle_egg_from_identifier_and_properties(properties), + "minecraft:dead_tube_coral_block" => { + Self::dead_tube_coral_block_from_identifier_and_properties(properties) } - "minecraft:magenta_wall_banner" => { - Self::magenta_wall_banner_from_identifier_and_properties(properties) + "minecraft:dead_brain_coral_block" => { + Self::dead_brain_coral_block_from_identifier_and_properties(properties) } - "minecraft:light_blue_wall_banner" => { - Self::light_blue_wall_banner_from_identifier_and_properties(properties) + "minecraft:dead_bubble_coral_block" => { + Self::dead_bubble_coral_block_from_identifier_and_properties(properties) } - "minecraft:yellow_wall_banner" => { - Self::yellow_wall_banner_from_identifier_and_properties(properties) + "minecraft:dead_fire_coral_block" => { + Self::dead_fire_coral_block_from_identifier_and_properties(properties) } - "minecraft:lime_wall_banner" => { - Self::lime_wall_banner_from_identifier_and_properties(properties) + "minecraft:dead_horn_coral_block" => { + Self::dead_horn_coral_block_from_identifier_and_properties(properties) } - "minecraft:pink_wall_banner" => { - Self::pink_wall_banner_from_identifier_and_properties(properties) + "minecraft:tube_coral_block" => { + Self::tube_coral_block_from_identifier_and_properties(properties) } - "minecraft:gray_wall_banner" => { - Self::gray_wall_banner_from_identifier_and_properties(properties) + "minecraft:brain_coral_block" => { + Self::brain_coral_block_from_identifier_and_properties(properties) } - "minecraft:light_gray_wall_banner" => { - Self::light_gray_wall_banner_from_identifier_and_properties(properties) + "minecraft:bubble_coral_block" => { + Self::bubble_coral_block_from_identifier_and_properties(properties) } - "minecraft:cyan_wall_banner" => { - Self::cyan_wall_banner_from_identifier_and_properties(properties) + "minecraft:fire_coral_block" => { + Self::fire_coral_block_from_identifier_and_properties(properties) } - "minecraft:purple_wall_banner" => { - Self::purple_wall_banner_from_identifier_and_properties(properties) + "minecraft:horn_coral_block" => { + Self::horn_coral_block_from_identifier_and_properties(properties) } - "minecraft:blue_wall_banner" => { - Self::blue_wall_banner_from_identifier_and_properties(properties) + "minecraft:dead_tube_coral" => { + Self::dead_tube_coral_from_identifier_and_properties(properties) } - "minecraft:brown_wall_banner" => { - Self::brown_wall_banner_from_identifier_and_properties(properties) + "minecraft:dead_brain_coral" => { + Self::dead_brain_coral_from_identifier_and_properties(properties) } - "minecraft:green_wall_banner" => { - Self::green_wall_banner_from_identifier_and_properties(properties) + "minecraft:dead_bubble_coral" => { + Self::dead_bubble_coral_from_identifier_and_properties(properties) } - "minecraft:red_wall_banner" => { - Self::red_wall_banner_from_identifier_and_properties(properties) + "minecraft:dead_fire_coral" => { + Self::dead_fire_coral_from_identifier_and_properties(properties) } - "minecraft:black_wall_banner" => { - Self::black_wall_banner_from_identifier_and_properties(properties) + "minecraft:dead_horn_coral" => { + Self::dead_horn_coral_from_identifier_and_properties(properties) } - "minecraft:red_sandstone" => { - Self::red_sandstone_from_identifier_and_properties(properties) + "minecraft:tube_coral" => Self::tube_coral_from_identifier_and_properties(properties), + "minecraft:brain_coral" => Self::brain_coral_from_identifier_and_properties(properties), + "minecraft:bubble_coral" => { + Self::bubble_coral_from_identifier_and_properties(properties) } - "minecraft:chiseled_red_sandstone" => { - Self::chiseled_red_sandstone_from_identifier_and_properties(properties) + "minecraft:fire_coral" => Self::fire_coral_from_identifier_and_properties(properties), + "minecraft:horn_coral" => Self::horn_coral_from_identifier_and_properties(properties), + "minecraft:dead_tube_coral_fan" => { + Self::dead_tube_coral_fan_from_identifier_and_properties(properties) } - "minecraft:cut_red_sandstone" => { - Self::cut_red_sandstone_from_identifier_and_properties(properties) + "minecraft:dead_brain_coral_fan" => { + Self::dead_brain_coral_fan_from_identifier_and_properties(properties) } - "minecraft:red_sandstone_stairs" => { - Self::red_sandstone_stairs_from_identifier_and_properties(properties) + "minecraft:dead_bubble_coral_fan" => { + Self::dead_bubble_coral_fan_from_identifier_and_properties(properties) } - "minecraft:oak_slab" => Self::oak_slab_from_identifier_and_properties(properties), - "minecraft:spruce_slab" => Self::spruce_slab_from_identifier_and_properties(properties), - "minecraft:birch_slab" => Self::birch_slab_from_identifier_and_properties(properties), - "minecraft:jungle_slab" => Self::jungle_slab_from_identifier_and_properties(properties), - "minecraft:acacia_slab" => Self::acacia_slab_from_identifier_and_properties(properties), - "minecraft:dark_oak_slab" => { - Self::dark_oak_slab_from_identifier_and_properties(properties) + "minecraft:dead_fire_coral_fan" => { + Self::dead_fire_coral_fan_from_identifier_and_properties(properties) } - "minecraft:stone_slab" => Self::stone_slab_from_identifier_and_properties(properties), - "minecraft:smooth_stone_slab" => { - Self::smooth_stone_slab_from_identifier_and_properties(properties) + "minecraft:dead_horn_coral_fan" => { + Self::dead_horn_coral_fan_from_identifier_and_properties(properties) } - "minecraft:sandstone_slab" => { - Self::sandstone_slab_from_identifier_and_properties(properties) + "minecraft:tube_coral_fan" => { + Self::tube_coral_fan_from_identifier_and_properties(properties) } - "minecraft:cut_sandstone_slab" => { - Self::cut_sandstone_slab_from_identifier_and_properties(properties) + "minecraft:brain_coral_fan" => { + Self::brain_coral_fan_from_identifier_and_properties(properties) } - "minecraft:petrified_oak_slab" => { - Self::petrified_oak_slab_from_identifier_and_properties(properties) + "minecraft:bubble_coral_fan" => { + Self::bubble_coral_fan_from_identifier_and_properties(properties) } - "minecraft:cobblestone_slab" => { - Self::cobblestone_slab_from_identifier_and_properties(properties) + "minecraft:fire_coral_fan" => { + Self::fire_coral_fan_from_identifier_and_properties(properties) } - "minecraft:brick_slab" => Self::brick_slab_from_identifier_and_properties(properties), - "minecraft:stone_brick_slab" => { - Self::stone_brick_slab_from_identifier_and_properties(properties) + "minecraft:horn_coral_fan" => { + Self::horn_coral_fan_from_identifier_and_properties(properties) } - "minecraft:nether_brick_slab" => { - Self::nether_brick_slab_from_identifier_and_properties(properties) + "minecraft:dead_tube_coral_wall_fan" => { + Self::dead_tube_coral_wall_fan_from_identifier_and_properties(properties) } - "minecraft:quartz_slab" => Self::quartz_slab_from_identifier_and_properties(properties), - "minecraft:red_sandstone_slab" => { - Self::red_sandstone_slab_from_identifier_and_properties(properties) + "minecraft:dead_brain_coral_wall_fan" => { + Self::dead_brain_coral_wall_fan_from_identifier_and_properties(properties) } - "minecraft:cut_red_sandstone_slab" => { - Self::cut_red_sandstone_slab_from_identifier_and_properties(properties) + "minecraft:dead_bubble_coral_wall_fan" => { + Self::dead_bubble_coral_wall_fan_from_identifier_and_properties(properties) } - "minecraft:purpur_slab" => Self::purpur_slab_from_identifier_and_properties(properties), - "minecraft:smooth_stone" => { - Self::smooth_stone_from_identifier_and_properties(properties) + "minecraft:dead_fire_coral_wall_fan" => { + Self::dead_fire_coral_wall_fan_from_identifier_and_properties(properties) } - "minecraft:smooth_sandstone" => { - Self::smooth_sandstone_from_identifier_and_properties(properties) + "minecraft:dead_horn_coral_wall_fan" => { + Self::dead_horn_coral_wall_fan_from_identifier_and_properties(properties) } - "minecraft:smooth_quartz" => { - Self::smooth_quartz_from_identifier_and_properties(properties) + "minecraft:tube_coral_wall_fan" => { + Self::tube_coral_wall_fan_from_identifier_and_properties(properties) } - "minecraft:smooth_red_sandstone" => { - Self::smooth_red_sandstone_from_identifier_and_properties(properties) + "minecraft:brain_coral_wall_fan" => { + Self::brain_coral_wall_fan_from_identifier_and_properties(properties) } - "minecraft:spruce_fence_gate" => { - Self::spruce_fence_gate_from_identifier_and_properties(properties) + "minecraft:bubble_coral_wall_fan" => { + Self::bubble_coral_wall_fan_from_identifier_and_properties(properties) } - "minecraft:birch_fence_gate" => { - Self::birch_fence_gate_from_identifier_and_properties(properties) + "minecraft:fire_coral_wall_fan" => { + Self::fire_coral_wall_fan_from_identifier_and_properties(properties) } - "minecraft:jungle_fence_gate" => { - Self::jungle_fence_gate_from_identifier_and_properties(properties) + "minecraft:horn_coral_wall_fan" => { + Self::horn_coral_wall_fan_from_identifier_and_properties(properties) } - "minecraft:acacia_fence_gate" => { - Self::acacia_fence_gate_from_identifier_and_properties(properties) + "minecraft:sea_pickle" => Self::sea_pickle_from_identifier_and_properties(properties), + "minecraft:blue_ice" => Self::blue_ice_from_identifier_and_properties(properties), + "minecraft:conduit" => Self::conduit_from_identifier_and_properties(properties), + "minecraft:bamboo_sapling" => { + Self::bamboo_sapling_from_identifier_and_properties(properties) } - "minecraft:dark_oak_fence_gate" => { - Self::dark_oak_fence_gate_from_identifier_and_properties(properties) + "minecraft:bamboo" => Self::bamboo_from_identifier_and_properties(properties), + "minecraft:potted_bamboo" => { + Self::potted_bamboo_from_identifier_and_properties(properties) } - "minecraft:spruce_fence" => { - Self::spruce_fence_from_identifier_and_properties(properties) + "minecraft:void_air" => Self::void_air_from_identifier_and_properties(properties), + "minecraft:cave_air" => Self::cave_air_from_identifier_and_properties(properties), + "minecraft:bubble_column" => { + Self::bubble_column_from_identifier_and_properties(properties) } - "minecraft:birch_fence" => Self::birch_fence_from_identifier_and_properties(properties), - "minecraft:jungle_fence" => { - Self::jungle_fence_from_identifier_and_properties(properties) + "minecraft:polished_granite_stairs" => { + Self::polished_granite_stairs_from_identifier_and_properties(properties) } - "minecraft:acacia_fence" => { - Self::acacia_fence_from_identifier_and_properties(properties) + "minecraft:smooth_red_sandstone_stairs" => { + Self::smooth_red_sandstone_stairs_from_identifier_and_properties(properties) } - "minecraft:dark_oak_fence" => { - Self::dark_oak_fence_from_identifier_and_properties(properties) + "minecraft:mossy_stone_brick_stairs" => { + Self::mossy_stone_brick_stairs_from_identifier_and_properties(properties) } - "minecraft:spruce_door" => Self::spruce_door_from_identifier_and_properties(properties), - "minecraft:birch_door" => Self::birch_door_from_identifier_and_properties(properties), - "minecraft:jungle_door" => Self::jungle_door_from_identifier_and_properties(properties), - "minecraft:acacia_door" => Self::acacia_door_from_identifier_and_properties(properties), - "minecraft:dark_oak_door" => { - Self::dark_oak_door_from_identifier_and_properties(properties) + "minecraft:polished_diorite_stairs" => { + Self::polished_diorite_stairs_from_identifier_and_properties(properties) } - "minecraft:end_rod" => Self::end_rod_from_identifier_and_properties(properties), - "minecraft:chorus_plant" => { - Self::chorus_plant_from_identifier_and_properties(properties) + "minecraft:mossy_cobblestone_stairs" => { + Self::mossy_cobblestone_stairs_from_identifier_and_properties(properties) } - "minecraft:chorus_flower" => { - Self::chorus_flower_from_identifier_and_properties(properties) + "minecraft:end_stone_brick_stairs" => { + Self::end_stone_brick_stairs_from_identifier_and_properties(properties) } - "minecraft:purpur_block" => { - Self::purpur_block_from_identifier_and_properties(properties) + "minecraft:stone_stairs" => { + Self::stone_stairs_from_identifier_and_properties(properties) } - "minecraft:purpur_pillar" => { - Self::purpur_pillar_from_identifier_and_properties(properties) + "minecraft:smooth_sandstone_stairs" => { + Self::smooth_sandstone_stairs_from_identifier_and_properties(properties) } - "minecraft:purpur_stairs" => { - Self::purpur_stairs_from_identifier_and_properties(properties) + "minecraft:smooth_quartz_stairs" => { + Self::smooth_quartz_stairs_from_identifier_and_properties(properties) } - "minecraft:end_stone_bricks" => { - Self::end_stone_bricks_from_identifier_and_properties(properties) + "minecraft:granite_stairs" => { + Self::granite_stairs_from_identifier_and_properties(properties) } - "minecraft:beetroots" => Self::beetroots_from_identifier_and_properties(properties), - "minecraft:grass_path" => Self::grass_path_from_identifier_and_properties(properties), - "minecraft:end_gateway" => Self::end_gateway_from_identifier_and_properties(properties), - "minecraft:repeating_command_block" => { - Self::repeating_command_block_from_identifier_and_properties(properties) + "minecraft:andesite_stairs" => { + Self::andesite_stairs_from_identifier_and_properties(properties) } - "minecraft:chain_command_block" => { - Self::chain_command_block_from_identifier_and_properties(properties) + "minecraft:red_nether_brick_stairs" => { + Self::red_nether_brick_stairs_from_identifier_and_properties(properties) } - "minecraft:frosted_ice" => Self::frosted_ice_from_identifier_and_properties(properties), - "minecraft:magma_block" => Self::magma_block_from_identifier_and_properties(properties), - "minecraft:nether_wart_block" => { - Self::nether_wart_block_from_identifier_and_properties(properties) + "minecraft:polished_andesite_stairs" => { + Self::polished_andesite_stairs_from_identifier_and_properties(properties) } - "minecraft:red_nether_bricks" => { - Self::red_nether_bricks_from_identifier_and_properties(properties) + "minecraft:diorite_stairs" => { + Self::diorite_stairs_from_identifier_and_properties(properties) } - "minecraft:bone_block" => Self::bone_block_from_identifier_and_properties(properties), - "minecraft:structure_void" => { - Self::structure_void_from_identifier_and_properties(properties) + "minecraft:polished_granite_slab" => { + Self::polished_granite_slab_from_identifier_and_properties(properties) } - "minecraft:observer" => Self::observer_from_identifier_and_properties(properties), - "minecraft:shulker_box" => Self::shulker_box_from_identifier_and_properties(properties), - "minecraft:white_shulker_box" => { - Self::white_shulker_box_from_identifier_and_properties(properties) + "minecraft:smooth_red_sandstone_slab" => { + Self::smooth_red_sandstone_slab_from_identifier_and_properties(properties) } - "minecraft:orange_shulker_box" => { - Self::orange_shulker_box_from_identifier_and_properties(properties) + "minecraft:mossy_stone_brick_slab" => { + Self::mossy_stone_brick_slab_from_identifier_and_properties(properties) } - "minecraft:magenta_shulker_box" => { - Self::magenta_shulker_box_from_identifier_and_properties(properties) + "minecraft:polished_diorite_slab" => { + Self::polished_diorite_slab_from_identifier_and_properties(properties) } - "minecraft:light_blue_shulker_box" => { - Self::light_blue_shulker_box_from_identifier_and_properties(properties) + "minecraft:mossy_cobblestone_slab" => { + Self::mossy_cobblestone_slab_from_identifier_and_properties(properties) } - "minecraft:yellow_shulker_box" => { - Self::yellow_shulker_box_from_identifier_and_properties(properties) + "minecraft:end_stone_brick_slab" => { + Self::end_stone_brick_slab_from_identifier_and_properties(properties) } - "minecraft:lime_shulker_box" => { - Self::lime_shulker_box_from_identifier_and_properties(properties) + "minecraft:smooth_sandstone_slab" => { + Self::smooth_sandstone_slab_from_identifier_and_properties(properties) } - "minecraft:pink_shulker_box" => { - Self::pink_shulker_box_from_identifier_and_properties(properties) + "minecraft:smooth_quartz_slab" => { + Self::smooth_quartz_slab_from_identifier_and_properties(properties) } - "minecraft:gray_shulker_box" => { - Self::gray_shulker_box_from_identifier_and_properties(properties) + "minecraft:granite_slab" => { + Self::granite_slab_from_identifier_and_properties(properties) } - "minecraft:light_gray_shulker_box" => { - Self::light_gray_shulker_box_from_identifier_and_properties(properties) + "minecraft:andesite_slab" => { + Self::andesite_slab_from_identifier_and_properties(properties) } - "minecraft:cyan_shulker_box" => { - Self::cyan_shulker_box_from_identifier_and_properties(properties) + "minecraft:red_nether_brick_slab" => { + Self::red_nether_brick_slab_from_identifier_and_properties(properties) } - "minecraft:purple_shulker_box" => { - Self::purple_shulker_box_from_identifier_and_properties(properties) + "minecraft:polished_andesite_slab" => { + Self::polished_andesite_slab_from_identifier_and_properties(properties) } - "minecraft:blue_shulker_box" => { - Self::blue_shulker_box_from_identifier_and_properties(properties) + "minecraft:diorite_slab" => { + Self::diorite_slab_from_identifier_and_properties(properties) } - "minecraft:brown_shulker_box" => { - Self::brown_shulker_box_from_identifier_and_properties(properties) + "minecraft:brick_wall" => Self::brick_wall_from_identifier_and_properties(properties), + "minecraft:prismarine_wall" => { + Self::prismarine_wall_from_identifier_and_properties(properties) } - "minecraft:green_shulker_box" => { - Self::green_shulker_box_from_identifier_and_properties(properties) + "minecraft:red_sandstone_wall" => { + Self::red_sandstone_wall_from_identifier_and_properties(properties) } - "minecraft:red_shulker_box" => { - Self::red_shulker_box_from_identifier_and_properties(properties) + "minecraft:mossy_stone_brick_wall" => { + Self::mossy_stone_brick_wall_from_identifier_and_properties(properties) } - "minecraft:black_shulker_box" => { - Self::black_shulker_box_from_identifier_and_properties(properties) + "minecraft:granite_wall" => { + Self::granite_wall_from_identifier_and_properties(properties) } - "minecraft:white_glazed_terracotta" => { - Self::white_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:stone_brick_wall" => { + Self::stone_brick_wall_from_identifier_and_properties(properties) } - "minecraft:orange_glazed_terracotta" => { - Self::orange_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:nether_brick_wall" => { + Self::nether_brick_wall_from_identifier_and_properties(properties) } - "minecraft:magenta_glazed_terracotta" => { - Self::magenta_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:andesite_wall" => { + Self::andesite_wall_from_identifier_and_properties(properties) } - "minecraft:light_blue_glazed_terracotta" => { - Self::light_blue_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:red_nether_brick_wall" => { + Self::red_nether_brick_wall_from_identifier_and_properties(properties) } - "minecraft:yellow_glazed_terracotta" => { - Self::yellow_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:sandstone_wall" => { + Self::sandstone_wall_from_identifier_and_properties(properties) } - "minecraft:lime_glazed_terracotta" => { - Self::lime_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:end_stone_brick_wall" => { + Self::end_stone_brick_wall_from_identifier_and_properties(properties) } - "minecraft:pink_glazed_terracotta" => { - Self::pink_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:diorite_wall" => { + Self::diorite_wall_from_identifier_and_properties(properties) } - "minecraft:gray_glazed_terracotta" => { - Self::gray_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:scaffolding" => Self::scaffolding_from_identifier_and_properties(properties), + "minecraft:loom" => Self::loom_from_identifier_and_properties(properties), + "minecraft:barrel" => Self::barrel_from_identifier_and_properties(properties), + "minecraft:smoker" => Self::smoker_from_identifier_and_properties(properties), + "minecraft:blast_furnace" => { + Self::blast_furnace_from_identifier_and_properties(properties) } - "minecraft:light_gray_glazed_terracotta" => { - Self::light_gray_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:cartography_table" => { + Self::cartography_table_from_identifier_and_properties(properties) } - "minecraft:cyan_glazed_terracotta" => { - Self::cyan_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:fletching_table" => { + Self::fletching_table_from_identifier_and_properties(properties) } - "minecraft:purple_glazed_terracotta" => { - Self::purple_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:grindstone" => Self::grindstone_from_identifier_and_properties(properties), + "minecraft:lectern" => Self::lectern_from_identifier_and_properties(properties), + "minecraft:smithing_table" => { + Self::smithing_table_from_identifier_and_properties(properties) } - "minecraft:blue_glazed_terracotta" => { - Self::blue_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:stonecutter" => Self::stonecutter_from_identifier_and_properties(properties), + "minecraft:bell" => Self::bell_from_identifier_and_properties(properties), + "minecraft:lantern" => Self::lantern_from_identifier_and_properties(properties), + "minecraft:soul_lantern" => { + Self::soul_lantern_from_identifier_and_properties(properties) } - "minecraft:brown_glazed_terracotta" => { - Self::brown_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:campfire" => Self::campfire_from_identifier_and_properties(properties), + "minecraft:soul_campfire" => { + Self::soul_campfire_from_identifier_and_properties(properties) } - "minecraft:green_glazed_terracotta" => { - Self::green_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:sweet_berry_bush" => { + Self::sweet_berry_bush_from_identifier_and_properties(properties) } - "minecraft:red_glazed_terracotta" => { - Self::red_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:warped_stem" => Self::warped_stem_from_identifier_and_properties(properties), + "minecraft:stripped_warped_stem" => { + Self::stripped_warped_stem_from_identifier_and_properties(properties) } - "minecraft:black_glazed_terracotta" => { - Self::black_glazed_terracotta_from_identifier_and_properties(properties) + "minecraft:warped_hyphae" => { + Self::warped_hyphae_from_identifier_and_properties(properties) } - "minecraft:white_concrete" => { - Self::white_concrete_from_identifier_and_properties(properties) + "minecraft:stripped_warped_hyphae" => { + Self::stripped_warped_hyphae_from_identifier_and_properties(properties) } - "minecraft:orange_concrete" => { - Self::orange_concrete_from_identifier_and_properties(properties) + "minecraft:warped_nylium" => { + Self::warped_nylium_from_identifier_and_properties(properties) } - "minecraft:magenta_concrete" => { - Self::magenta_concrete_from_identifier_and_properties(properties) + "minecraft:warped_fungus" => { + Self::warped_fungus_from_identifier_and_properties(properties) } - "minecraft:light_blue_concrete" => { - Self::light_blue_concrete_from_identifier_and_properties(properties) + "minecraft:warped_wart_block" => { + Self::warped_wart_block_from_identifier_and_properties(properties) } - "minecraft:yellow_concrete" => { - Self::yellow_concrete_from_identifier_and_properties(properties) + "minecraft:warped_roots" => { + Self::warped_roots_from_identifier_and_properties(properties) } - "minecraft:lime_concrete" => { - Self::lime_concrete_from_identifier_and_properties(properties) + "minecraft:nether_sprouts" => { + Self::nether_sprouts_from_identifier_and_properties(properties) } - "minecraft:pink_concrete" => { - Self::pink_concrete_from_identifier_and_properties(properties) + "minecraft:crimson_stem" => { + Self::crimson_stem_from_identifier_and_properties(properties) } - "minecraft:gray_concrete" => { - Self::gray_concrete_from_identifier_and_properties(properties) + "minecraft:stripped_crimson_stem" => { + Self::stripped_crimson_stem_from_identifier_and_properties(properties) } - "minecraft:light_gray_concrete" => { - Self::light_gray_concrete_from_identifier_and_properties(properties) + "minecraft:crimson_hyphae" => { + Self::crimson_hyphae_from_identifier_and_properties(properties) } - "minecraft:cyan_concrete" => { - Self::cyan_concrete_from_identifier_and_properties(properties) + "minecraft:stripped_crimson_hyphae" => { + Self::stripped_crimson_hyphae_from_identifier_and_properties(properties) } - "minecraft:purple_concrete" => { - Self::purple_concrete_from_identifier_and_properties(properties) + "minecraft:crimson_nylium" => { + Self::crimson_nylium_from_identifier_and_properties(properties) } - "minecraft:blue_concrete" => { - Self::blue_concrete_from_identifier_and_properties(properties) + "minecraft:crimson_fungus" => { + Self::crimson_fungus_from_identifier_and_properties(properties) } - "minecraft:brown_concrete" => { - Self::brown_concrete_from_identifier_and_properties(properties) + "minecraft:shroomlight" => Self::shroomlight_from_identifier_and_properties(properties), + "minecraft:weeping_vines" => { + Self::weeping_vines_from_identifier_and_properties(properties) } - "minecraft:green_concrete" => { - Self::green_concrete_from_identifier_and_properties(properties) + "minecraft:weeping_vines_plant" => { + Self::weeping_vines_plant_from_identifier_and_properties(properties) } - "minecraft:red_concrete" => { - Self::red_concrete_from_identifier_and_properties(properties) + "minecraft:twisting_vines" => { + Self::twisting_vines_from_identifier_and_properties(properties) } - "minecraft:black_concrete" => { - Self::black_concrete_from_identifier_and_properties(properties) + "minecraft:twisting_vines_plant" => { + Self::twisting_vines_plant_from_identifier_and_properties(properties) } - "minecraft:white_concrete_powder" => { - Self::white_concrete_powder_from_identifier_and_properties(properties) + "minecraft:crimson_roots" => { + Self::crimson_roots_from_identifier_and_properties(properties) } - "minecraft:orange_concrete_powder" => { - Self::orange_concrete_powder_from_identifier_and_properties(properties) + "minecraft:crimson_planks" => { + Self::crimson_planks_from_identifier_and_properties(properties) } - "minecraft:magenta_concrete_powder" => { - Self::magenta_concrete_powder_from_identifier_and_properties(properties) + "minecraft:warped_planks" => { + Self::warped_planks_from_identifier_and_properties(properties) } - "minecraft:light_blue_concrete_powder" => { - Self::light_blue_concrete_powder_from_identifier_and_properties(properties) + "minecraft:crimson_slab" => { + Self::crimson_slab_from_identifier_and_properties(properties) } - "minecraft:yellow_concrete_powder" => { - Self::yellow_concrete_powder_from_identifier_and_properties(properties) + "minecraft:warped_slab" => Self::warped_slab_from_identifier_and_properties(properties), + "minecraft:crimson_pressure_plate" => { + Self::crimson_pressure_plate_from_identifier_and_properties(properties) } - "minecraft:lime_concrete_powder" => { - Self::lime_concrete_powder_from_identifier_and_properties(properties) + "minecraft:warped_pressure_plate" => { + Self::warped_pressure_plate_from_identifier_and_properties(properties) } - "minecraft:pink_concrete_powder" => { - Self::pink_concrete_powder_from_identifier_and_properties(properties) + "minecraft:crimson_fence" => { + Self::crimson_fence_from_identifier_and_properties(properties) } - "minecraft:gray_concrete_powder" => { - Self::gray_concrete_powder_from_identifier_and_properties(properties) + "minecraft:warped_fence" => { + Self::warped_fence_from_identifier_and_properties(properties) } - "minecraft:light_gray_concrete_powder" => { - Self::light_gray_concrete_powder_from_identifier_and_properties(properties) + "minecraft:crimson_trapdoor" => { + Self::crimson_trapdoor_from_identifier_and_properties(properties) } - "minecraft:cyan_concrete_powder" => { - Self::cyan_concrete_powder_from_identifier_and_properties(properties) + "minecraft:warped_trapdoor" => { + Self::warped_trapdoor_from_identifier_and_properties(properties) } - "minecraft:purple_concrete_powder" => { - Self::purple_concrete_powder_from_identifier_and_properties(properties) + "minecraft:crimson_fence_gate" => { + Self::crimson_fence_gate_from_identifier_and_properties(properties) } - "minecraft:blue_concrete_powder" => { - Self::blue_concrete_powder_from_identifier_and_properties(properties) + "minecraft:warped_fence_gate" => { + Self::warped_fence_gate_from_identifier_and_properties(properties) } - "minecraft:brown_concrete_powder" => { - Self::brown_concrete_powder_from_identifier_and_properties(properties) + "minecraft:crimson_stairs" => { + Self::crimson_stairs_from_identifier_and_properties(properties) } - "minecraft:green_concrete_powder" => { - Self::green_concrete_powder_from_identifier_and_properties(properties) + "minecraft:warped_stairs" => { + Self::warped_stairs_from_identifier_and_properties(properties) } - "minecraft:red_concrete_powder" => { - Self::red_concrete_powder_from_identifier_and_properties(properties) + "minecraft:crimson_button" => { + Self::crimson_button_from_identifier_and_properties(properties) } - "minecraft:black_concrete_powder" => { - Self::black_concrete_powder_from_identifier_and_properties(properties) + "minecraft:warped_button" => { + Self::warped_button_from_identifier_and_properties(properties) } - "minecraft:kelp" => Self::kelp_from_identifier_and_properties(properties), - "minecraft:kelp_plant" => Self::kelp_plant_from_identifier_and_properties(properties), - "minecraft:dried_kelp_block" => { - Self::dried_kelp_block_from_identifier_and_properties(properties) + "minecraft:crimson_door" => { + Self::crimson_door_from_identifier_and_properties(properties) } - "minecraft:turtle_egg" => Self::turtle_egg_from_identifier_and_properties(properties), - "minecraft:dead_tube_coral_block" => { - Self::dead_tube_coral_block_from_identifier_and_properties(properties) + "minecraft:warped_door" => Self::warped_door_from_identifier_and_properties(properties), + "minecraft:crimson_sign" => { + Self::crimson_sign_from_identifier_and_properties(properties) } - "minecraft:dead_brain_coral_block" => { - Self::dead_brain_coral_block_from_identifier_and_properties(properties) + "minecraft:warped_sign" => Self::warped_sign_from_identifier_and_properties(properties), + "minecraft:crimson_wall_sign" => { + Self::crimson_wall_sign_from_identifier_and_properties(properties) } - "minecraft:dead_bubble_coral_block" => { - Self::dead_bubble_coral_block_from_identifier_and_properties(properties) + "minecraft:warped_wall_sign" => { + Self::warped_wall_sign_from_identifier_and_properties(properties) } - "minecraft:dead_fire_coral_block" => { - Self::dead_fire_coral_block_from_identifier_and_properties(properties) + "minecraft:structure_block" => { + Self::structure_block_from_identifier_and_properties(properties) } - "minecraft:dead_horn_coral_block" => { - Self::dead_horn_coral_block_from_identifier_and_properties(properties) + "minecraft:jigsaw" => Self::jigsaw_from_identifier_and_properties(properties), + "minecraft:composter" => Self::composter_from_identifier_and_properties(properties), + "minecraft:target" => Self::target_from_identifier_and_properties(properties), + "minecraft:bee_nest" => Self::bee_nest_from_identifier_and_properties(properties), + "minecraft:beehive" => Self::beehive_from_identifier_and_properties(properties), + "minecraft:honey_block" => Self::honey_block_from_identifier_and_properties(properties), + "minecraft:honeycomb_block" => { + Self::honeycomb_block_from_identifier_and_properties(properties) } - "minecraft:tube_coral_block" => { - Self::tube_coral_block_from_identifier_and_properties(properties) + "minecraft:netherite_block" => { + Self::netherite_block_from_identifier_and_properties(properties) } - "minecraft:brain_coral_block" => { - Self::brain_coral_block_from_identifier_and_properties(properties) + "minecraft:ancient_debris" => { + Self::ancient_debris_from_identifier_and_properties(properties) } - "minecraft:bubble_coral_block" => { - Self::bubble_coral_block_from_identifier_and_properties(properties) + "minecraft:crying_obsidian" => { + Self::crying_obsidian_from_identifier_and_properties(properties) } - "minecraft:fire_coral_block" => { - Self::fire_coral_block_from_identifier_and_properties(properties) + "minecraft:respawn_anchor" => { + Self::respawn_anchor_from_identifier_and_properties(properties) } - "minecraft:horn_coral_block" => { - Self::horn_coral_block_from_identifier_and_properties(properties) + "minecraft:potted_crimson_fungus" => { + Self::potted_crimson_fungus_from_identifier_and_properties(properties) } - "minecraft:dead_tube_coral" => { - Self::dead_tube_coral_from_identifier_and_properties(properties) + "minecraft:potted_warped_fungus" => { + Self::potted_warped_fungus_from_identifier_and_properties(properties) } - "minecraft:dead_brain_coral" => { - Self::dead_brain_coral_from_identifier_and_properties(properties) + "minecraft:potted_crimson_roots" => { + Self::potted_crimson_roots_from_identifier_and_properties(properties) } - "minecraft:dead_bubble_coral" => { - Self::dead_bubble_coral_from_identifier_and_properties(properties) + "minecraft:potted_warped_roots" => { + Self::potted_warped_roots_from_identifier_and_properties(properties) } - "minecraft:dead_fire_coral" => { - Self::dead_fire_coral_from_identifier_and_properties(properties) + "minecraft:lodestone" => Self::lodestone_from_identifier_and_properties(properties), + "minecraft:blackstone" => Self::blackstone_from_identifier_and_properties(properties), + "minecraft:blackstone_stairs" => { + Self::blackstone_stairs_from_identifier_and_properties(properties) } - "minecraft:dead_horn_coral" => { - Self::dead_horn_coral_from_identifier_and_properties(properties) + "minecraft:blackstone_wall" => { + Self::blackstone_wall_from_identifier_and_properties(properties) } - "minecraft:tube_coral" => Self::tube_coral_from_identifier_and_properties(properties), - "minecraft:brain_coral" => Self::brain_coral_from_identifier_and_properties(properties), - "minecraft:bubble_coral" => { - Self::bubble_coral_from_identifier_and_properties(properties) + "minecraft:blackstone_slab" => { + Self::blackstone_slab_from_identifier_and_properties(properties) } - "minecraft:fire_coral" => Self::fire_coral_from_identifier_and_properties(properties), - "minecraft:horn_coral" => Self::horn_coral_from_identifier_and_properties(properties), - "minecraft:dead_tube_coral_fan" => { - Self::dead_tube_coral_fan_from_identifier_and_properties(properties) + "minecraft:polished_blackstone" => { + Self::polished_blackstone_from_identifier_and_properties(properties) } - "minecraft:dead_brain_coral_fan" => { - Self::dead_brain_coral_fan_from_identifier_and_properties(properties) + "minecraft:polished_blackstone_bricks" => { + Self::polished_blackstone_bricks_from_identifier_and_properties(properties) } - "minecraft:dead_bubble_coral_fan" => { - Self::dead_bubble_coral_fan_from_identifier_and_properties(properties) + "minecraft:cracked_polished_blackstone_bricks" => { + Self::cracked_polished_blackstone_bricks_from_identifier_and_properties(properties) } - "minecraft:dead_fire_coral_fan" => { - Self::dead_fire_coral_fan_from_identifier_and_properties(properties) + "minecraft:chiseled_polished_blackstone" => { + Self::chiseled_polished_blackstone_from_identifier_and_properties(properties) } - "minecraft:dead_horn_coral_fan" => { - Self::dead_horn_coral_fan_from_identifier_and_properties(properties) + "minecraft:polished_blackstone_brick_slab" => { + Self::polished_blackstone_brick_slab_from_identifier_and_properties(properties) } - "minecraft:tube_coral_fan" => { - Self::tube_coral_fan_from_identifier_and_properties(properties) + "minecraft:polished_blackstone_brick_stairs" => { + Self::polished_blackstone_brick_stairs_from_identifier_and_properties(properties) } - "minecraft:brain_coral_fan" => { - Self::brain_coral_fan_from_identifier_and_properties(properties) + "minecraft:polished_blackstone_brick_wall" => { + Self::polished_blackstone_brick_wall_from_identifier_and_properties(properties) } - "minecraft:bubble_coral_fan" => { - Self::bubble_coral_fan_from_identifier_and_properties(properties) + "minecraft:gilded_blackstone" => { + Self::gilded_blackstone_from_identifier_and_properties(properties) } - "minecraft:fire_coral_fan" => { - Self::fire_coral_fan_from_identifier_and_properties(properties) + "minecraft:polished_blackstone_stairs" => { + Self::polished_blackstone_stairs_from_identifier_and_properties(properties) } - "minecraft:horn_coral_fan" => { - Self::horn_coral_fan_from_identifier_and_properties(properties) + "minecraft:polished_blackstone_slab" => { + Self::polished_blackstone_slab_from_identifier_and_properties(properties) } - "minecraft:dead_tube_coral_wall_fan" => { - Self::dead_tube_coral_wall_fan_from_identifier_and_properties(properties) + "minecraft:polished_blackstone_pressure_plate" => { + Self::polished_blackstone_pressure_plate_from_identifier_and_properties(properties) } - "minecraft:dead_brain_coral_wall_fan" => { - Self::dead_brain_coral_wall_fan_from_identifier_and_properties(properties) + "minecraft:polished_blackstone_button" => { + Self::polished_blackstone_button_from_identifier_and_properties(properties) } - "minecraft:dead_bubble_coral_wall_fan" => { - Self::dead_bubble_coral_wall_fan_from_identifier_and_properties(properties) + "minecraft:polished_blackstone_wall" => { + Self::polished_blackstone_wall_from_identifier_and_properties(properties) } - "minecraft:dead_fire_coral_wall_fan" => { - Self::dead_fire_coral_wall_fan_from_identifier_and_properties(properties) + "minecraft:chiseled_nether_bricks" => { + Self::chiseled_nether_bricks_from_identifier_and_properties(properties) } - "minecraft:dead_horn_coral_wall_fan" => { - Self::dead_horn_coral_wall_fan_from_identifier_and_properties(properties) + "minecraft:cracked_nether_bricks" => { + Self::cracked_nether_bricks_from_identifier_and_properties(properties) } - "minecraft:tube_coral_wall_fan" => { - Self::tube_coral_wall_fan_from_identifier_and_properties(properties) + "minecraft:quartz_bricks" => { + Self::quartz_bricks_from_identifier_and_properties(properties) } - "minecraft:brain_coral_wall_fan" => { - Self::brain_coral_wall_fan_from_identifier_and_properties(properties) + "minecraft:candle" => Self::candle_from_identifier_and_properties(properties), + "minecraft:white_candle" => { + Self::white_candle_from_identifier_and_properties(properties) } - "minecraft:bubble_coral_wall_fan" => { - Self::bubble_coral_wall_fan_from_identifier_and_properties(properties) + "minecraft:orange_candle" => { + Self::orange_candle_from_identifier_and_properties(properties) } - "minecraft:fire_coral_wall_fan" => { - Self::fire_coral_wall_fan_from_identifier_and_properties(properties) + "minecraft:magenta_candle" => { + Self::magenta_candle_from_identifier_and_properties(properties) } - "minecraft:horn_coral_wall_fan" => { - Self::horn_coral_wall_fan_from_identifier_and_properties(properties) + "minecraft:light_blue_candle" => { + Self::light_blue_candle_from_identifier_and_properties(properties) } - "minecraft:sea_pickle" => Self::sea_pickle_from_identifier_and_properties(properties), - "minecraft:blue_ice" => Self::blue_ice_from_identifier_and_properties(properties), - "minecraft:conduit" => Self::conduit_from_identifier_and_properties(properties), - "minecraft:bamboo_sapling" => { - Self::bamboo_sapling_from_identifier_and_properties(properties) + "minecraft:yellow_candle" => { + Self::yellow_candle_from_identifier_and_properties(properties) } - "minecraft:bamboo" => Self::bamboo_from_identifier_and_properties(properties), - "minecraft:potted_bamboo" => { - Self::potted_bamboo_from_identifier_and_properties(properties) + "minecraft:lime_candle" => Self::lime_candle_from_identifier_and_properties(properties), + "minecraft:pink_candle" => Self::pink_candle_from_identifier_and_properties(properties), + "minecraft:gray_candle" => Self::gray_candle_from_identifier_and_properties(properties), + "minecraft:light_gray_candle" => { + Self::light_gray_candle_from_identifier_and_properties(properties) } - "minecraft:void_air" => Self::void_air_from_identifier_and_properties(properties), - "minecraft:cave_air" => Self::cave_air_from_identifier_and_properties(properties), - "minecraft:bubble_column" => { - Self::bubble_column_from_identifier_and_properties(properties) + "minecraft:cyan_candle" => Self::cyan_candle_from_identifier_and_properties(properties), + "minecraft:purple_candle" => { + Self::purple_candle_from_identifier_and_properties(properties) } - "minecraft:polished_granite_stairs" => { - Self::polished_granite_stairs_from_identifier_and_properties(properties) + "minecraft:blue_candle" => Self::blue_candle_from_identifier_and_properties(properties), + "minecraft:brown_candle" => { + Self::brown_candle_from_identifier_and_properties(properties) } - "minecraft:smooth_red_sandstone_stairs" => { - Self::smooth_red_sandstone_stairs_from_identifier_and_properties(properties) + "minecraft:green_candle" => { + Self::green_candle_from_identifier_and_properties(properties) } - "minecraft:mossy_stone_brick_stairs" => { - Self::mossy_stone_brick_stairs_from_identifier_and_properties(properties) + "minecraft:red_candle" => Self::red_candle_from_identifier_and_properties(properties), + "minecraft:black_candle" => { + Self::black_candle_from_identifier_and_properties(properties) } - "minecraft:polished_diorite_stairs" => { - Self::polished_diorite_stairs_from_identifier_and_properties(properties) + "minecraft:candle_cake" => Self::candle_cake_from_identifier_and_properties(properties), + "minecraft:white_candle_cake" => { + Self::white_candle_cake_from_identifier_and_properties(properties) } - "minecraft:mossy_cobblestone_stairs" => { - Self::mossy_cobblestone_stairs_from_identifier_and_properties(properties) + "minecraft:orange_candle_cake" => { + Self::orange_candle_cake_from_identifier_and_properties(properties) } - "minecraft:end_stone_brick_stairs" => { - Self::end_stone_brick_stairs_from_identifier_and_properties(properties) + "minecraft:magenta_candle_cake" => { + Self::magenta_candle_cake_from_identifier_and_properties(properties) } - "minecraft:stone_stairs" => { - Self::stone_stairs_from_identifier_and_properties(properties) + "minecraft:light_blue_candle_cake" => { + Self::light_blue_candle_cake_from_identifier_and_properties(properties) } - "minecraft:smooth_sandstone_stairs" => { - Self::smooth_sandstone_stairs_from_identifier_and_properties(properties) + "minecraft:yellow_candle_cake" => { + Self::yellow_candle_cake_from_identifier_and_properties(properties) } - "minecraft:smooth_quartz_stairs" => { - Self::smooth_quartz_stairs_from_identifier_and_properties(properties) + "minecraft:lime_candle_cake" => { + Self::lime_candle_cake_from_identifier_and_properties(properties) } - "minecraft:granite_stairs" => { - Self::granite_stairs_from_identifier_and_properties(properties) + "minecraft:pink_candle_cake" => { + Self::pink_candle_cake_from_identifier_and_properties(properties) } - "minecraft:andesite_stairs" => { - Self::andesite_stairs_from_identifier_and_properties(properties) + "minecraft:gray_candle_cake" => { + Self::gray_candle_cake_from_identifier_and_properties(properties) } - "minecraft:red_nether_brick_stairs" => { - Self::red_nether_brick_stairs_from_identifier_and_properties(properties) + "minecraft:light_gray_candle_cake" => { + Self::light_gray_candle_cake_from_identifier_and_properties(properties) } - "minecraft:polished_andesite_stairs" => { - Self::polished_andesite_stairs_from_identifier_and_properties(properties) + "minecraft:cyan_candle_cake" => { + Self::cyan_candle_cake_from_identifier_and_properties(properties) } - "minecraft:diorite_stairs" => { - Self::diorite_stairs_from_identifier_and_properties(properties) + "minecraft:purple_candle_cake" => { + Self::purple_candle_cake_from_identifier_and_properties(properties) } - "minecraft:polished_granite_slab" => { - Self::polished_granite_slab_from_identifier_and_properties(properties) + "minecraft:blue_candle_cake" => { + Self::blue_candle_cake_from_identifier_and_properties(properties) } - "minecraft:smooth_red_sandstone_slab" => { - Self::smooth_red_sandstone_slab_from_identifier_and_properties(properties) + "minecraft:brown_candle_cake" => { + Self::brown_candle_cake_from_identifier_and_properties(properties) } - "minecraft:mossy_stone_brick_slab" => { - Self::mossy_stone_brick_slab_from_identifier_and_properties(properties) + "minecraft:green_candle_cake" => { + Self::green_candle_cake_from_identifier_and_properties(properties) } - "minecraft:polished_diorite_slab" => { - Self::polished_diorite_slab_from_identifier_and_properties(properties) + "minecraft:red_candle_cake" => { + Self::red_candle_cake_from_identifier_and_properties(properties) } - "minecraft:mossy_cobblestone_slab" => { - Self::mossy_cobblestone_slab_from_identifier_and_properties(properties) + "minecraft:black_candle_cake" => { + Self::black_candle_cake_from_identifier_and_properties(properties) } - "minecraft:end_stone_brick_slab" => { - Self::end_stone_brick_slab_from_identifier_and_properties(properties) + "minecraft:amethyst_block" => { + Self::amethyst_block_from_identifier_and_properties(properties) } - "minecraft:smooth_sandstone_slab" => { - Self::smooth_sandstone_slab_from_identifier_and_properties(properties) + "minecraft:budding_amethyst" => { + Self::budding_amethyst_from_identifier_and_properties(properties) } - "minecraft:smooth_quartz_slab" => { - Self::smooth_quartz_slab_from_identifier_and_properties(properties) + "minecraft:amethyst_cluster" => { + Self::amethyst_cluster_from_identifier_and_properties(properties) } - "minecraft:granite_slab" => { - Self::granite_slab_from_identifier_and_properties(properties) + "minecraft:large_amethyst_bud" => { + Self::large_amethyst_bud_from_identifier_and_properties(properties) } - "minecraft:andesite_slab" => { - Self::andesite_slab_from_identifier_and_properties(properties) + "minecraft:medium_amethyst_bud" => { + Self::medium_amethyst_bud_from_identifier_and_properties(properties) } - "minecraft:red_nether_brick_slab" => { - Self::red_nether_brick_slab_from_identifier_and_properties(properties) + "minecraft:small_amethyst_bud" => { + Self::small_amethyst_bud_from_identifier_and_properties(properties) } - "minecraft:polished_andesite_slab" => { - Self::polished_andesite_slab_from_identifier_and_properties(properties) + "minecraft:tuff" => Self::tuff_from_identifier_and_properties(properties), + "minecraft:calcite" => Self::calcite_from_identifier_and_properties(properties), + "minecraft:tinted_glass" => { + Self::tinted_glass_from_identifier_and_properties(properties) } - "minecraft:diorite_slab" => { - Self::diorite_slab_from_identifier_and_properties(properties) + "minecraft:powder_snow" => Self::powder_snow_from_identifier_and_properties(properties), + "minecraft:sculk_sensor" => { + Self::sculk_sensor_from_identifier_and_properties(properties) } - "minecraft:brick_wall" => Self::brick_wall_from_identifier_and_properties(properties), - "minecraft:prismarine_wall" => { - Self::prismarine_wall_from_identifier_and_properties(properties) + "minecraft:oxidized_copper" => { + Self::oxidized_copper_from_identifier_and_properties(properties) } - "minecraft:red_sandstone_wall" => { - Self::red_sandstone_wall_from_identifier_and_properties(properties) + "minecraft:weathered_copper" => { + Self::weathered_copper_from_identifier_and_properties(properties) } - "minecraft:mossy_stone_brick_wall" => { - Self::mossy_stone_brick_wall_from_identifier_and_properties(properties) + "minecraft:exposed_copper" => { + Self::exposed_copper_from_identifier_and_properties(properties) } - "minecraft:granite_wall" => { - Self::granite_wall_from_identifier_and_properties(properties) + "minecraft:copper_block" => { + Self::copper_block_from_identifier_and_properties(properties) } - "minecraft:stone_brick_wall" => { - Self::stone_brick_wall_from_identifier_and_properties(properties) + "minecraft:copper_ore" => Self::copper_ore_from_identifier_and_properties(properties), + "minecraft:deepslate_copper_ore" => { + Self::deepslate_copper_ore_from_identifier_and_properties(properties) } - "minecraft:nether_brick_wall" => { - Self::nether_brick_wall_from_identifier_and_properties(properties) + "minecraft:oxidized_cut_copper" => { + Self::oxidized_cut_copper_from_identifier_and_properties(properties) } - "minecraft:andesite_wall" => { - Self::andesite_wall_from_identifier_and_properties(properties) + "minecraft:weathered_cut_copper" => { + Self::weathered_cut_copper_from_identifier_and_properties(properties) } - "minecraft:red_nether_brick_wall" => { - Self::red_nether_brick_wall_from_identifier_and_properties(properties) + "minecraft:exposed_cut_copper" => { + Self::exposed_cut_copper_from_identifier_and_properties(properties) } - "minecraft:sandstone_wall" => { - Self::sandstone_wall_from_identifier_and_properties(properties) + "minecraft:cut_copper" => Self::cut_copper_from_identifier_and_properties(properties), + "minecraft:oxidized_cut_copper_stairs" => { + Self::oxidized_cut_copper_stairs_from_identifier_and_properties(properties) } - "minecraft:end_stone_brick_wall" => { - Self::end_stone_brick_wall_from_identifier_and_properties(properties) + "minecraft:weathered_cut_copper_stairs" => { + Self::weathered_cut_copper_stairs_from_identifier_and_properties(properties) } - "minecraft:diorite_wall" => { - Self::diorite_wall_from_identifier_and_properties(properties) + "minecraft:exposed_cut_copper_stairs" => { + Self::exposed_cut_copper_stairs_from_identifier_and_properties(properties) } - "minecraft:scaffolding" => Self::scaffolding_from_identifier_and_properties(properties), - "minecraft:loom" => Self::loom_from_identifier_and_properties(properties), - "minecraft:barrel" => Self::barrel_from_identifier_and_properties(properties), - "minecraft:smoker" => Self::smoker_from_identifier_and_properties(properties), - "minecraft:blast_furnace" => { - Self::blast_furnace_from_identifier_and_properties(properties) + "minecraft:cut_copper_stairs" => { + Self::cut_copper_stairs_from_identifier_and_properties(properties) } - "minecraft:cartography_table" => { - Self::cartography_table_from_identifier_and_properties(properties) + "minecraft:oxidized_cut_copper_slab" => { + Self::oxidized_cut_copper_slab_from_identifier_and_properties(properties) } - "minecraft:fletching_table" => { - Self::fletching_table_from_identifier_and_properties(properties) + "minecraft:weathered_cut_copper_slab" => { + Self::weathered_cut_copper_slab_from_identifier_and_properties(properties) } - "minecraft:grindstone" => Self::grindstone_from_identifier_and_properties(properties), - "minecraft:lectern" => Self::lectern_from_identifier_and_properties(properties), - "minecraft:smithing_table" => { - Self::smithing_table_from_identifier_and_properties(properties) + "minecraft:exposed_cut_copper_slab" => { + Self::exposed_cut_copper_slab_from_identifier_and_properties(properties) } - "minecraft:stonecutter" => Self::stonecutter_from_identifier_and_properties(properties), - "minecraft:bell" => Self::bell_from_identifier_and_properties(properties), - "minecraft:lantern" => Self::lantern_from_identifier_and_properties(properties), - "minecraft:soul_lantern" => { - Self::soul_lantern_from_identifier_and_properties(properties) + "minecraft:cut_copper_slab" => { + Self::cut_copper_slab_from_identifier_and_properties(properties) } - "minecraft:campfire" => Self::campfire_from_identifier_and_properties(properties), - "minecraft:soul_campfire" => { - Self::soul_campfire_from_identifier_and_properties(properties) + "minecraft:waxed_copper_block" => { + Self::waxed_copper_block_from_identifier_and_properties(properties) } - "minecraft:sweet_berry_bush" => { - Self::sweet_berry_bush_from_identifier_and_properties(properties) + "minecraft:waxed_weathered_copper" => { + Self::waxed_weathered_copper_from_identifier_and_properties(properties) } - "minecraft:warped_stem" => Self::warped_stem_from_identifier_and_properties(properties), - "minecraft:stripped_warped_stem" => { - Self::stripped_warped_stem_from_identifier_and_properties(properties) + "minecraft:waxed_exposed_copper" => { + Self::waxed_exposed_copper_from_identifier_and_properties(properties) } - "minecraft:warped_hyphae" => { - Self::warped_hyphae_from_identifier_and_properties(properties) + "minecraft:waxed_oxidized_copper" => { + Self::waxed_oxidized_copper_from_identifier_and_properties(properties) } - "minecraft:stripped_warped_hyphae" => { - Self::stripped_warped_hyphae_from_identifier_and_properties(properties) + "minecraft:waxed_oxidized_cut_copper" => { + Self::waxed_oxidized_cut_copper_from_identifier_and_properties(properties) } - "minecraft:warped_nylium" => { - Self::warped_nylium_from_identifier_and_properties(properties) + "minecraft:waxed_weathered_cut_copper" => { + Self::waxed_weathered_cut_copper_from_identifier_and_properties(properties) } - "minecraft:warped_fungus" => { - Self::warped_fungus_from_identifier_and_properties(properties) + "minecraft:waxed_exposed_cut_copper" => { + Self::waxed_exposed_cut_copper_from_identifier_and_properties(properties) } - "minecraft:warped_wart_block" => { - Self::warped_wart_block_from_identifier_and_properties(properties) + "minecraft:waxed_cut_copper" => { + Self::waxed_cut_copper_from_identifier_and_properties(properties) } - "minecraft:warped_roots" => { - Self::warped_roots_from_identifier_and_properties(properties) + "minecraft:waxed_oxidized_cut_copper_stairs" => { + Self::waxed_oxidized_cut_copper_stairs_from_identifier_and_properties(properties) } - "minecraft:nether_sprouts" => { - Self::nether_sprouts_from_identifier_and_properties(properties) + "minecraft:waxed_weathered_cut_copper_stairs" => { + Self::waxed_weathered_cut_copper_stairs_from_identifier_and_properties(properties) } - "minecraft:crimson_stem" => { - Self::crimson_stem_from_identifier_and_properties(properties) + "minecraft:waxed_exposed_cut_copper_stairs" => { + Self::waxed_exposed_cut_copper_stairs_from_identifier_and_properties(properties) } - "minecraft:stripped_crimson_stem" => { - Self::stripped_crimson_stem_from_identifier_and_properties(properties) + "minecraft:waxed_cut_copper_stairs" => { + Self::waxed_cut_copper_stairs_from_identifier_and_properties(properties) } - "minecraft:crimson_hyphae" => { - Self::crimson_hyphae_from_identifier_and_properties(properties) + "minecraft:waxed_oxidized_cut_copper_slab" => { + Self::waxed_oxidized_cut_copper_slab_from_identifier_and_properties(properties) } - "minecraft:stripped_crimson_hyphae" => { - Self::stripped_crimson_hyphae_from_identifier_and_properties(properties) + "minecraft:waxed_weathered_cut_copper_slab" => { + Self::waxed_weathered_cut_copper_slab_from_identifier_and_properties(properties) } - "minecraft:crimson_nylium" => { - Self::crimson_nylium_from_identifier_and_properties(properties) + "minecraft:waxed_exposed_cut_copper_slab" => { + Self::waxed_exposed_cut_copper_slab_from_identifier_and_properties(properties) } - "minecraft:crimson_fungus" => { - Self::crimson_fungus_from_identifier_and_properties(properties) + "minecraft:waxed_cut_copper_slab" => { + Self::waxed_cut_copper_slab_from_identifier_and_properties(properties) } - "minecraft:shroomlight" => Self::shroomlight_from_identifier_and_properties(properties), - "minecraft:weeping_vines" => { - Self::weeping_vines_from_identifier_and_properties(properties) + "minecraft:lightning_rod" => { + Self::lightning_rod_from_identifier_and_properties(properties) } - "minecraft:weeping_vines_plant" => { - Self::weeping_vines_plant_from_identifier_and_properties(properties) + "minecraft:pointed_dripstone" => { + Self::pointed_dripstone_from_identifier_and_properties(properties) } - "minecraft:twisting_vines" => { - Self::twisting_vines_from_identifier_and_properties(properties) + "minecraft:dripstone_block" => { + Self::dripstone_block_from_identifier_and_properties(properties) } - "minecraft:twisting_vines_plant" => { - Self::twisting_vines_plant_from_identifier_and_properties(properties) + "minecraft:cave_vines" => Self::cave_vines_from_identifier_and_properties(properties), + "minecraft:cave_vines_plant" => { + Self::cave_vines_plant_from_identifier_and_properties(properties) } - "minecraft:crimson_roots" => { - Self::crimson_roots_from_identifier_and_properties(properties) + "minecraft:spore_blossom" => { + Self::spore_blossom_from_identifier_and_properties(properties) } - "minecraft:crimson_planks" => { - Self::crimson_planks_from_identifier_and_properties(properties) + "minecraft:azalea" => Self::azalea_from_identifier_and_properties(properties), + "minecraft:flowering_azalea" => { + Self::flowering_azalea_from_identifier_and_properties(properties) } - "minecraft:warped_planks" => { - Self::warped_planks_from_identifier_and_properties(properties) + "minecraft:moss_carpet" => Self::moss_carpet_from_identifier_and_properties(properties), + "minecraft:moss_block" => Self::moss_block_from_identifier_and_properties(properties), + "minecraft:big_dripleaf" => { + Self::big_dripleaf_from_identifier_and_properties(properties) } - "minecraft:crimson_slab" => { - Self::crimson_slab_from_identifier_and_properties(properties) + "minecraft:big_dripleaf_stem" => { + Self::big_dripleaf_stem_from_identifier_and_properties(properties) } - "minecraft:warped_slab" => Self::warped_slab_from_identifier_and_properties(properties), - "minecraft:crimson_pressure_plate" => { - Self::crimson_pressure_plate_from_identifier_and_properties(properties) + "minecraft:small_dripleaf" => { + Self::small_dripleaf_from_identifier_and_properties(properties) } - "minecraft:warped_pressure_plate" => { - Self::warped_pressure_plate_from_identifier_and_properties(properties) + "minecraft:hanging_roots" => { + Self::hanging_roots_from_identifier_and_properties(properties) } - "minecraft:crimson_fence" => { - Self::crimson_fence_from_identifier_and_properties(properties) + "minecraft:rooted_dirt" => Self::rooted_dirt_from_identifier_and_properties(properties), + "minecraft:deepslate" => Self::deepslate_from_identifier_and_properties(properties), + "minecraft:cobbled_deepslate" => { + Self::cobbled_deepslate_from_identifier_and_properties(properties) } - "minecraft:warped_fence" => { - Self::warped_fence_from_identifier_and_properties(properties) + "minecraft:cobbled_deepslate_stairs" => { + Self::cobbled_deepslate_stairs_from_identifier_and_properties(properties) } - "minecraft:crimson_trapdoor" => { - Self::crimson_trapdoor_from_identifier_and_properties(properties) + "minecraft:cobbled_deepslate_slab" => { + Self::cobbled_deepslate_slab_from_identifier_and_properties(properties) } - "minecraft:warped_trapdoor" => { - Self::warped_trapdoor_from_identifier_and_properties(properties) + "minecraft:cobbled_deepslate_wall" => { + Self::cobbled_deepslate_wall_from_identifier_and_properties(properties) } - "minecraft:crimson_fence_gate" => { - Self::crimson_fence_gate_from_identifier_and_properties(properties) + "minecraft:polished_deepslate" => { + Self::polished_deepslate_from_identifier_and_properties(properties) } - "minecraft:warped_fence_gate" => { - Self::warped_fence_gate_from_identifier_and_properties(properties) + "minecraft:polished_deepslate_stairs" => { + Self::polished_deepslate_stairs_from_identifier_and_properties(properties) } - "minecraft:crimson_stairs" => { - Self::crimson_stairs_from_identifier_and_properties(properties) + "minecraft:polished_deepslate_slab" => { + Self::polished_deepslate_slab_from_identifier_and_properties(properties) } - "minecraft:warped_stairs" => { - Self::warped_stairs_from_identifier_and_properties(properties) + "minecraft:polished_deepslate_wall" => { + Self::polished_deepslate_wall_from_identifier_and_properties(properties) } - "minecraft:crimson_button" => { - Self::crimson_button_from_identifier_and_properties(properties) + "minecraft:deepslate_tiles" => { + Self::deepslate_tiles_from_identifier_and_properties(properties) } - "minecraft:warped_button" => { - Self::warped_button_from_identifier_and_properties(properties) + "minecraft:deepslate_tile_stairs" => { + Self::deepslate_tile_stairs_from_identifier_and_properties(properties) } - "minecraft:crimson_door" => { - Self::crimson_door_from_identifier_and_properties(properties) + "minecraft:deepslate_tile_slab" => { + Self::deepslate_tile_slab_from_identifier_and_properties(properties) } - "minecraft:warped_door" => Self::warped_door_from_identifier_and_properties(properties), - "minecraft:crimson_sign" => { - Self::crimson_sign_from_identifier_and_properties(properties) + "minecraft:deepslate_tile_wall" => { + Self::deepslate_tile_wall_from_identifier_and_properties(properties) } - "minecraft:warped_sign" => Self::warped_sign_from_identifier_and_properties(properties), - "minecraft:crimson_wall_sign" => { - Self::crimson_wall_sign_from_identifier_and_properties(properties) + "minecraft:deepslate_bricks" => { + Self::deepslate_bricks_from_identifier_and_properties(properties) } - "minecraft:warped_wall_sign" => { - Self::warped_wall_sign_from_identifier_and_properties(properties) + "minecraft:deepslate_brick_stairs" => { + Self::deepslate_brick_stairs_from_identifier_and_properties(properties) } - "minecraft:structure_block" => { - Self::structure_block_from_identifier_and_properties(properties) + "minecraft:deepslate_brick_slab" => { + Self::deepslate_brick_slab_from_identifier_and_properties(properties) } - "minecraft:jigsaw" => Self::jigsaw_from_identifier_and_properties(properties), - "minecraft:composter" => Self::composter_from_identifier_and_properties(properties), - "minecraft:target" => Self::target_from_identifier_and_properties(properties), - "minecraft:bee_nest" => Self::bee_nest_from_identifier_and_properties(properties), - "minecraft:beehive" => Self::beehive_from_identifier_and_properties(properties), - "minecraft:honey_block" => Self::honey_block_from_identifier_and_properties(properties), - "minecraft:honeycomb_block" => { - Self::honeycomb_block_from_identifier_and_properties(properties) + "minecraft:deepslate_brick_wall" => { + Self::deepslate_brick_wall_from_identifier_and_properties(properties) } - "minecraft:netherite_block" => { - Self::netherite_block_from_identifier_and_properties(properties) + "minecraft:chiseled_deepslate" => { + Self::chiseled_deepslate_from_identifier_and_properties(properties) } - "minecraft:ancient_debris" => { - Self::ancient_debris_from_identifier_and_properties(properties) + "minecraft:cracked_deepslate_bricks" => { + Self::cracked_deepslate_bricks_from_identifier_and_properties(properties) } - "minecraft:crying_obsidian" => { - Self::crying_obsidian_from_identifier_and_properties(properties) + "minecraft:cracked_deepslate_tiles" => { + Self::cracked_deepslate_tiles_from_identifier_and_properties(properties) } - "minecraft:respawn_anchor" => { - Self::respawn_anchor_from_identifier_and_properties(properties) + "minecraft:infested_deepslate" => { + Self::infested_deepslate_from_identifier_and_properties(properties) } - "minecraft:potted_crimson_fungus" => { - Self::potted_crimson_fungus_from_identifier_and_properties(properties) + "minecraft:smooth_basalt" => { + Self::smooth_basalt_from_identifier_and_properties(properties) } - "minecraft:potted_warped_fungus" => { - Self::potted_warped_fungus_from_identifier_and_properties(properties) + "minecraft:raw_iron_block" => { + Self::raw_iron_block_from_identifier_and_properties(properties) } - "minecraft:potted_crimson_roots" => { - Self::potted_crimson_roots_from_identifier_and_properties(properties) + "minecraft:raw_copper_block" => { + Self::raw_copper_block_from_identifier_and_properties(properties) } - "minecraft:potted_warped_roots" => { - Self::potted_warped_roots_from_identifier_and_properties(properties) + "minecraft:raw_gold_block" => { + Self::raw_gold_block_from_identifier_and_properties(properties) } - "minecraft:lodestone" => Self::lodestone_from_identifier_and_properties(properties), - "minecraft:blackstone" => Self::blackstone_from_identifier_and_properties(properties), - "minecraft:blackstone_stairs" => { - Self::blackstone_stairs_from_identifier_and_properties(properties) + "minecraft:potted_azalea_bush" => { + Self::potted_azalea_bush_from_identifier_and_properties(properties) } - "minecraft:blackstone_wall" => { - Self::blackstone_wall_from_identifier_and_properties(properties) + "minecraft:potted_flowering_azalea_bush" => { + Self::potted_flowering_azalea_bush_from_identifier_and_properties(properties) } - "minecraft:blackstone_slab" => { - Self::blackstone_slab_from_identifier_and_properties(properties) + _ => None, + } + } + fn air_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::air(); + Some(block) + } + fn stone_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::stone(); + Some(block) + } + fn granite_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::granite(); + Some(block) + } + fn polished_granite_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::polished_granite(); + Some(block) + } + fn diorite_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::diorite(); + Some(block) + } + fn polished_diorite_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::polished_diorite(); + Some(block) + } + fn andesite_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::andesite(); + Some(block) + } + fn polished_andesite_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::polished_andesite(); + Some(block) + } + fn grass_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::grass_block(); + let snowy = map.get("snowy")?; + let snowy = bool::from_str(snowy).ok()?; + block.set_snowy(snowy); + Some(block) + } + fn dirt_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::dirt(); + Some(block) + } + fn coarse_dirt_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::coarse_dirt(); + Some(block) + } + fn podzol_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::podzol(); + let snowy = map.get("snowy")?; + let snowy = bool::from_str(snowy).ok()?; + block.set_snowy(snowy); + Some(block) + } + fn cobblestone_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cobblestone(); + Some(block) + } + fn oak_planks_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_planks(); + Some(block) + } + fn spruce_planks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::spruce_planks(); + Some(block) + } + fn birch_planks_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::birch_planks(); + Some(block) + } + fn jungle_planks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::jungle_planks(); + Some(block) + } + fn acacia_planks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::acacia_planks(); + Some(block) + } + fn dark_oak_planks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dark_oak_planks(); + Some(block) + } + fn oak_sapling_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_sapling(); + let stage = map.get("stage")?; + let stage = { + let x = i32::from_str(stage).ok()?; + if !(0i32..=1i32).contains(&x) { + return None; } - "minecraft:polished_blackstone" => { - Self::polished_blackstone_from_identifier_and_properties(properties) + x + }; + block.set_stage(stage); + Some(block) + } + fn spruce_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::spruce_sapling(); + let stage = map.get("stage")?; + let stage = { + let x = i32::from_str(stage).ok()?; + if !(0i32..=1i32).contains(&x) { + return None; } - "minecraft:polished_blackstone_bricks" => { - Self::polished_blackstone_bricks_from_identifier_and_properties(properties) + x + }; + block.set_stage(stage); + Some(block) + } + fn birch_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::birch_sapling(); + let stage = map.get("stage")?; + let stage = { + let x = i32::from_str(stage).ok()?; + if !(0i32..=1i32).contains(&x) { + return None; } - "minecraft:cracked_polished_blackstone_bricks" => { - Self::cracked_polished_blackstone_bricks_from_identifier_and_properties(properties) + x + }; + block.set_stage(stage); + Some(block) + } + fn jungle_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::jungle_sapling(); + let stage = map.get("stage")?; + let stage = { + let x = i32::from_str(stage).ok()?; + if !(0i32..=1i32).contains(&x) { + return None; } - "minecraft:chiseled_polished_blackstone" => { - Self::chiseled_polished_blackstone_from_identifier_and_properties(properties) + x + }; + block.set_stage(stage); + Some(block) + } + fn acacia_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::acacia_sapling(); + let stage = map.get("stage")?; + let stage = { + let x = i32::from_str(stage).ok()?; + if !(0i32..=1i32).contains(&x) { + return None; } - "minecraft:polished_blackstone_brick_slab" => { - Self::polished_blackstone_brick_slab_from_identifier_and_properties(properties) + x + }; + block.set_stage(stage); + Some(block) + } + fn dark_oak_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dark_oak_sapling(); + let stage = map.get("stage")?; + let stage = { + let x = i32::from_str(stage).ok()?; + if !(0i32..=1i32).contains(&x) { + return None; } - "minecraft:polished_blackstone_brick_stairs" => { - Self::polished_blackstone_brick_stairs_from_identifier_and_properties(properties) + x + }; + block.set_stage(stage); + Some(block) + } + fn bedrock_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::bedrock(); + Some(block) + } + fn water_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::water(); + let water_level = map.get("level")?; + let water_level = { + let x = i32::from_str(water_level).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; } - "minecraft:polished_blackstone_brick_wall" => { - Self::polished_blackstone_brick_wall_from_identifier_and_properties(properties) + x + }; + block.set_water_level(water_level); + Some(block) + } + fn lava_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lava(); + let water_level = map.get("level")?; + let water_level = { + let x = i32::from_str(water_level).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; } - "minecraft:gilded_blackstone" => { - Self::gilded_blackstone_from_identifier_and_properties(properties) + x + }; + block.set_water_level(water_level); + Some(block) + } + fn sand_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::sand(); + Some(block) + } + fn red_sand_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::red_sand(); + Some(block) + } + fn gravel_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::gravel(); + Some(block) + } + fn gold_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::gold_ore(); + Some(block) + } + fn deepslate_gold_ore_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::deepslate_gold_ore(); + Some(block) + } + fn iron_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::iron_ore(); + Some(block) + } + fn deepslate_iron_ore_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::deepslate_iron_ore(); + Some(block) + } + fn coal_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::coal_ore(); + Some(block) + } + fn deepslate_coal_ore_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::deepslate_coal_ore(); + Some(block) + } + fn nether_gold_ore_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::nether_gold_ore(); + Some(block) + } + fn oak_log_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn spruce_log_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::spruce_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn birch_log_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::birch_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn jungle_log_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::jungle_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn acacia_log_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::acacia_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn dark_oak_log_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::dark_oak_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_spruce_log_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_spruce_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_birch_log_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_birch_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_jungle_log_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_jungle_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_acacia_log_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_acacia_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_dark_oak_log_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_dark_oak_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_oak_log_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_oak_log(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn oak_wood_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn spruce_wood_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::spruce_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn birch_wood_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::birch_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn jungle_wood_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::jungle_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn acacia_wood_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::acacia_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn dark_oak_wood_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dark_oak_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_oak_wood_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_oak_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_spruce_wood_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_spruce_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_birch_wood_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_birch_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_jungle_wood_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_jungle_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_acacia_wood_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_acacia_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_dark_oak_wood_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stripped_dark_oak_wood(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn oak_leaves_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_leaves(); + let distance_1_7 = map.get("distance")?; + let distance_1_7 = { + let x = i32::from_str(distance_1_7).ok()?; + if !(1i32..=7i32).contains(&x) { + return None; } - "minecraft:polished_blackstone_stairs" => { - Self::polished_blackstone_stairs_from_identifier_and_properties(properties) + x + }; + block.set_distance_1_7(distance_1_7); + let persistent = map.get("persistent")?; + let persistent = bool::from_str(persistent).ok()?; + block.set_persistent(persistent); + Some(block) + } + fn spruce_leaves_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::spruce_leaves(); + let distance_1_7 = map.get("distance")?; + let distance_1_7 = { + let x = i32::from_str(distance_1_7).ok()?; + if !(1i32..=7i32).contains(&x) { + return None; } - "minecraft:polished_blackstone_slab" => { - Self::polished_blackstone_slab_from_identifier_and_properties(properties) + x + }; + block.set_distance_1_7(distance_1_7); + let persistent = map.get("persistent")?; + let persistent = bool::from_str(persistent).ok()?; + block.set_persistent(persistent); + Some(block) + } + fn birch_leaves_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::birch_leaves(); + let distance_1_7 = map.get("distance")?; + let distance_1_7 = { + let x = i32::from_str(distance_1_7).ok()?; + if !(1i32..=7i32).contains(&x) { + return None; } - "minecraft:polished_blackstone_pressure_plate" => { - Self::polished_blackstone_pressure_plate_from_identifier_and_properties(properties) + x + }; + block.set_distance_1_7(distance_1_7); + let persistent = map.get("persistent")?; + let persistent = bool::from_str(persistent).ok()?; + block.set_persistent(persistent); + Some(block) + } + fn jungle_leaves_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::jungle_leaves(); + let distance_1_7 = map.get("distance")?; + let distance_1_7 = { + let x = i32::from_str(distance_1_7).ok()?; + if !(1i32..=7i32).contains(&x) { + return None; } - "minecraft:polished_blackstone_button" => { - Self::polished_blackstone_button_from_identifier_and_properties(properties) + x + }; + block.set_distance_1_7(distance_1_7); + let persistent = map.get("persistent")?; + let persistent = bool::from_str(persistent).ok()?; + block.set_persistent(persistent); + Some(block) + } + fn acacia_leaves_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::acacia_leaves(); + let distance_1_7 = map.get("distance")?; + let distance_1_7 = { + let x = i32::from_str(distance_1_7).ok()?; + if !(1i32..=7i32).contains(&x) { + return None; } - "minecraft:polished_blackstone_wall" => { - Self::polished_blackstone_wall_from_identifier_and_properties(properties) + x + }; + block.set_distance_1_7(distance_1_7); + let persistent = map.get("persistent")?; + let persistent = bool::from_str(persistent).ok()?; + block.set_persistent(persistent); + Some(block) + } + fn dark_oak_leaves_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dark_oak_leaves(); + let distance_1_7 = map.get("distance")?; + let distance_1_7 = { + let x = i32::from_str(distance_1_7).ok()?; + if !(1i32..=7i32).contains(&x) { + return None; } - "minecraft:chiseled_nether_bricks" => { - Self::chiseled_nether_bricks_from_identifier_and_properties(properties) + x + }; + block.set_distance_1_7(distance_1_7); + let persistent = map.get("persistent")?; + let persistent = bool::from_str(persistent).ok()?; + block.set_persistent(persistent); + Some(block) + } + fn azalea_leaves_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::azalea_leaves(); + let distance_1_7 = map.get("distance")?; + let distance_1_7 = { + let x = i32::from_str(distance_1_7).ok()?; + if !(1i32..=7i32).contains(&x) { + return None; } - "minecraft:cracked_nether_bricks" => { - Self::cracked_nether_bricks_from_identifier_and_properties(properties) + x + }; + block.set_distance_1_7(distance_1_7); + let persistent = map.get("persistent")?; + let persistent = bool::from_str(persistent).ok()?; + block.set_persistent(persistent); + Some(block) + } + fn flowering_azalea_leaves_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::flowering_azalea_leaves(); + let distance_1_7 = map.get("distance")?; + let distance_1_7 = { + let x = i32::from_str(distance_1_7).ok()?; + if !(1i32..=7i32).contains(&x) { + return None; } - "minecraft:quartz_bricks" => { - Self::quartz_bricks_from_identifier_and_properties(properties) + x + }; + block.set_distance_1_7(distance_1_7); + let persistent = map.get("persistent")?; + let persistent = bool::from_str(persistent).ok()?; + block.set_persistent(persistent); + Some(block) + } + fn sponge_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::sponge(); + Some(block) + } + fn wet_sponge_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::wet_sponge(); + Some(block) + } + fn glass_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::glass(); + Some(block) + } + fn lapis_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lapis_ore(); + Some(block) + } + fn deepslate_lapis_ore_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::deepslate_lapis_ore(); + Some(block) + } + fn lapis_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lapis_block(); + Some(block) + } + fn dispenser_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::dispenser(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let triggered = map.get("triggered")?; + let triggered = bool::from_str(triggered).ok()?; + block.set_triggered(triggered); + Some(block) + } + fn sandstone_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::sandstone(); + Some(block) + } + fn chiseled_sandstone_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::chiseled_sandstone(); + Some(block) + } + fn cut_sandstone_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::cut_sandstone(); + Some(block) + } + fn note_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::note_block(); + let instrument = map.get("instrument")?; + let instrument = Instrument::from_str(instrument).ok()?; + block.set_instrument(instrument); + let note = map.get("note")?; + let note = { + let x = i32::from_str(note).ok()?; + if !(0i32..=24i32).contains(&x) { + return None; } - _ => None, - } + x + }; + block.set_note(note); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + Some(block) + } + fn white_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::white_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn orange_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::orange_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn magenta_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::magenta_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn light_blue_bed_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::light_blue_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn yellow_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::yellow_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn lime_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lime_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn pink_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::pink_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn gray_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::gray_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn light_gray_bed_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::light_gray_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn cyan_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cyan_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn purple_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::purple_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn blue_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::blue_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn brown_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::brown_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn green_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::green_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn red_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::red_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn black_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::black_bed(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let occupied = map.get("occupied")?; + let occupied = bool::from_str(occupied).ok()?; + block.set_occupied(occupied); + let part = map.get("part")?; + let part = Part::from_str(part).ok()?; + block.set_part(part); + Some(block) + } + fn powered_rail_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::powered_rail(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + let powered_rail_shape = map.get("shape")?; + let powered_rail_shape = PoweredRailShape::from_str(powered_rail_shape).ok()?; + block.set_powered_rail_shape(powered_rail_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) } - fn air_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::air(); + fn detector_rail_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::detector_rail(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + let powered_rail_shape = map.get("shape")?; + let powered_rail_shape = PoweredRailShape::from_str(powered_rail_shape).ok()?; + block.set_powered_rail_shape(powered_rail_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn stone_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::stone(); + fn sticky_piston_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::sticky_piston(); + let extended = map.get("extended")?; + let extended = bool::from_str(extended).ok()?; + block.set_extended(extended); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn granite_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::granite(); + fn cobweb_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cobweb(); Some(block) } - fn polished_granite_from_identifier_and_properties( + fn grass_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::grass(); + Some(block) + } + fn fern_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::fern(); + Some(block) + } + fn dead_bush_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::dead_bush(); + Some(block) + } + fn seagrass_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::seagrass(); + Some(block) + } + fn tall_seagrass_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_granite(); + let mut block = BlockId::tall_seagrass(); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); Some(block) } - fn diorite_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::diorite(); + fn piston_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::piston(); + let extended = map.get("extended")?; + let extended = bool::from_str(extended).ok()?; + block.set_extended(extended); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn polished_diorite_from_identifier_and_properties( + fn piston_head_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::piston_head(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let piston_kind = map.get("type")?; + let piston_kind = PistonKind::from_str(piston_kind).ok()?; + block.set_piston_kind(piston_kind); + let short = map.get("short")?; + let short = bool::from_str(short).ok()?; + block.set_short(short); + Some(block) + } + fn white_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::white_wool(); + Some(block) + } + fn orange_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::orange_wool(); + Some(block) + } + fn magenta_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::magenta_wool(); + Some(block) + } + fn light_blue_wool_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_diorite(); + let mut block = BlockId::light_blue_wool(); Some(block) } - fn andesite_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::andesite(); + fn yellow_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::yellow_wool(); Some(block) } - fn polished_andesite_from_identifier_and_properties( + fn lime_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lime_wool(); + Some(block) + } + fn pink_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::pink_wool(); + Some(block) + } + fn gray_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::gray_wool(); + Some(block) + } + fn light_gray_wool_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_andesite(); + let mut block = BlockId::light_gray_wool(); Some(block) } - fn grass_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::grass_block(); - let snowy = map.get("snowy")?; - let snowy = bool::from_str(snowy).ok()?; - block.set_snowy(snowy); + fn cyan_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cyan_wool(); + Some(block) + } + fn purple_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::purple_wool(); + Some(block) + } + fn blue_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::blue_wool(); + Some(block) + } + fn brown_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::brown_wool(); + Some(block) + } + fn green_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::green_wool(); + Some(block) + } + fn red_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::red_wool(); + Some(block) + } + fn black_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::black_wool(); + Some(block) + } + fn moving_piston_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::moving_piston(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let piston_kind = map.get("type")?; + let piston_kind = PistonKind::from_str(piston_kind).ok()?; + block.set_piston_kind(piston_kind); + Some(block) + } + fn dandelion_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::dandelion(); + Some(block) + } + fn poppy_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::poppy(); + Some(block) + } + fn blue_orchid_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::blue_orchid(); + Some(block) + } + fn allium_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::allium(); + Some(block) + } + fn azure_bluet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::azure_bluet(); + Some(block) + } + fn red_tulip_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::red_tulip(); + Some(block) + } + fn orange_tulip_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::orange_tulip(); + Some(block) + } + fn white_tulip_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::white_tulip(); + Some(block) + } + fn pink_tulip_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::pink_tulip(); + Some(block) + } + fn oxeye_daisy_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oxeye_daisy(); + Some(block) + } + fn cornflower_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cornflower(); + Some(block) + } + fn wither_rose_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::wither_rose(); + Some(block) + } + fn lily_of_the_valley_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::lily_of_the_valley(); + Some(block) + } + fn brown_mushroom_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::brown_mushroom(); + Some(block) + } + fn red_mushroom_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::red_mushroom(); + Some(block) + } + fn gold_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::gold_block(); + Some(block) + } + fn iron_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::iron_block(); + Some(block) + } + fn bricks_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::bricks(); + Some(block) + } + fn tnt_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::tnt(); + let unstable = map.get("unstable")?; + let unstable = bool::from_str(unstable).ok()?; + block.set_unstable(unstable); + Some(block) + } + fn bookshelf_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::bookshelf(); + Some(block) + } + fn mossy_cobblestone_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::mossy_cobblestone(); + Some(block) + } + fn obsidian_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::obsidian(); + Some(block) + } + fn torch_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::torch(); Some(block) } - fn dirt_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::dirt(); + fn wall_torch_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::wall_torch(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn coarse_dirt_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::coarse_dirt(); + fn fire_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::fire(); + let age_0_15 = map.get("age")?; + let age_0_15 = { + let x = i32::from_str(age_0_15).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_15(age_0_15); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn podzol_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::podzol(); - let snowy = map.get("snowy")?; - let snowy = bool::from_str(snowy).ok()?; - block.set_snowy(snowy); + fn soul_fire_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::soul_fire(); Some(block) } - fn cobblestone_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cobblestone(); + fn spawner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::spawner(); Some(block) } - fn oak_planks_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_planks(); + fn oak_stairs_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn spruce_planks_from_identifier_and_properties( + fn chest_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::chest(); + let chest_kind = map.get("type")?; + let chest_kind = ChestKind::from_str(chest_kind).ok()?; + block.set_chest_kind(chest_kind); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn redstone_wire_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::spruce_planks(); + let mut block = BlockId::redstone_wire(); + let east_wire = map.get("east")?; + let east_wire = EastWire::from_str(east_wire).ok()?; + block.set_east_wire(east_wire); + let north_wire = map.get("north")?; + let north_wire = NorthWire::from_str(north_wire).ok()?; + block.set_north_wire(north_wire); + let power = map.get("power")?; + let power = { + let x = i32::from_str(power).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_power(power); + let south_wire = map.get("south")?; + let south_wire = SouthWire::from_str(south_wire).ok()?; + block.set_south_wire(south_wire); + let west_wire = map.get("west")?; + let west_wire = WestWire::from_str(west_wire).ok()?; + block.set_west_wire(west_wire); Some(block) } - fn birch_planks_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::birch_planks(); + fn diamond_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::diamond_ore(); Some(block) } - fn jungle_planks_from_identifier_and_properties( + fn deepslate_diamond_ore_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::jungle_planks(); + let mut block = BlockId::deepslate_diamond_ore(); Some(block) } - fn acacia_planks_from_identifier_and_properties( + fn diamond_block_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::acacia_planks(); + let mut block = BlockId::diamond_block(); Some(block) } - fn dark_oak_planks_from_identifier_and_properties( + fn crafting_table_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_oak_planks(); + let mut block = BlockId::crafting_table(); Some(block) } - fn oak_sapling_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_sapling(); - let stage = map.get("stage")?; - let stage = { - let x = i32::from_str(stage).ok()?; - if !(0i32..=1i32).contains(&x) { + fn wheat_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::wheat(); + let age_0_7 = map.get("age")?; + let age_0_7 = { + let x = i32::from_str(age_0_7).ok()?; + if !(0i32..=7i32).contains(&x) { return None; } x }; - block.set_stage(stage); + block.set_age_0_7(age_0_7); Some(block) } - fn spruce_sapling_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::spruce_sapling(); - let stage = map.get("stage")?; - let stage = { - let x = i32::from_str(stage).ok()?; - if !(0i32..=1i32).contains(&x) { + fn farmland_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::farmland(); + let moisture = map.get("moisture")?; + let moisture = { + let x = i32::from_str(moisture).ok()?; + if !(0i32..=7i32).contains(&x) { return None; } x }; - block.set_stage(stage); + block.set_moisture(moisture); Some(block) } - fn birch_sapling_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::birch_sapling(); - let stage = map.get("stage")?; - let stage = { - let x = i32::from_str(stage).ok()?; - if !(0i32..=1i32).contains(&x) { + fn furnace_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::furnace(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); + Some(block) + } + fn oak_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_sign(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_stage(stage); + block.set_rotation(rotation); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn jungle_sapling_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::jungle_sapling(); - let stage = map.get("stage")?; - let stage = { - let x = i32::from_str(stage).ok()?; - if !(0i32..=1i32).contains(&x) { + fn spruce_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::spruce_sign(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_stage(stage); + block.set_rotation(rotation); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn acacia_sapling_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::acacia_sapling(); - let stage = map.get("stage")?; - let stage = { - let x = i32::from_str(stage).ok()?; - if !(0i32..=1i32).contains(&x) { + fn birch_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::birch_sign(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_stage(stage); + block.set_rotation(rotation); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn dark_oak_sapling_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::dark_oak_sapling(); - let stage = map.get("stage")?; - let stage = { - let x = i32::from_str(stage).ok()?; - if !(0i32..=1i32).contains(&x) { + fn acacia_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::acacia_sign(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_stage(stage); - Some(block) - } - fn bedrock_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::bedrock(); + block.set_rotation(rotation); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn water_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::water(); - let water_level = map.get("level")?; - let water_level = { - let x = i32::from_str(water_level).ok()?; + fn jungle_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::jungle_sign(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_water_level(water_level); + block.set_rotation(rotation); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) - } - fn lava_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lava(); - let water_level = map.get("level")?; - let water_level = { - let x = i32::from_str(water_level).ok()?; + } + fn dark_oak_sign_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dark_oak_sign(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_water_level(water_level); - Some(block) - } - fn sand_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::sand(); - Some(block) - } - fn red_sand_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::red_sand(); - Some(block) - } - fn gravel_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::gravel(); + block.set_rotation(rotation); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn gold_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::gold_ore(); + fn oak_door_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_door(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + let hinge = map.get("hinge")?; + let hinge = Hinge::from_str(hinge).ok()?; + block.set_hinge(hinge); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn iron_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::iron_ore(); + fn ladder_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::ladder(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn coal_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::coal_ore(); + fn rail_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::rail(); + let rail_shape = map.get("shape")?; + let rail_shape = RailShape::from_str(rail_shape).ok()?; + block.set_rail_shape(rail_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn nether_gold_ore_from_identifier_and_properties( + fn cobblestone_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::nether_gold_ore(); - Some(block) - } - fn oak_log_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); - Some(block) - } - fn spruce_log_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::spruce_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); - Some(block) - } - fn birch_log_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::birch_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); - Some(block) - } - fn jungle_log_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::jungle_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); - Some(block) - } - fn acacia_log_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::acacia_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); - Some(block) - } - fn dark_oak_log_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::dark_oak_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::cobblestone_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn stripped_spruce_log_from_identifier_and_properties( + fn oak_wall_sign_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_spruce_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::oak_wall_sign(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn stripped_birch_log_from_identifier_and_properties( + fn spruce_wall_sign_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_birch_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::spruce_wall_sign(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn stripped_jungle_log_from_identifier_and_properties( + fn birch_wall_sign_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_jungle_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::birch_wall_sign(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn stripped_acacia_log_from_identifier_and_properties( + fn acacia_wall_sign_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_acacia_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::acacia_wall_sign(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn stripped_dark_oak_log_from_identifier_and_properties( + fn jungle_wall_sign_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_dark_oak_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::jungle_wall_sign(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn stripped_oak_log_from_identifier_and_properties( + fn dark_oak_wall_sign_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_oak_log(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); - Some(block) - } - fn oak_wood_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); - Some(block) - } - fn spruce_wood_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::spruce_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::dark_oak_wall_sign(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn birch_wood_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::birch_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + fn lever_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lever(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn jungle_wood_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::jungle_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + fn stone_pressure_plate_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stone_pressure_plate(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn acacia_wood_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::acacia_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + fn iron_door_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::iron_door(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + let hinge = map.get("hinge")?; + let hinge = Hinge::from_str(hinge).ok()?; + block.set_hinge(hinge); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn dark_oak_wood_from_identifier_and_properties( + fn oak_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_oak_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::oak_pressure_plate(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn stripped_oak_wood_from_identifier_and_properties( + fn spruce_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_oak_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::spruce_pressure_plate(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn stripped_spruce_wood_from_identifier_and_properties( + fn birch_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_spruce_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::birch_pressure_plate(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn stripped_birch_wood_from_identifier_and_properties( + fn jungle_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_birch_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::jungle_pressure_plate(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn stripped_jungle_wood_from_identifier_and_properties( + fn acacia_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_jungle_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::acacia_pressure_plate(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn stripped_acacia_wood_from_identifier_and_properties( + fn dark_oak_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_acacia_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::dark_oak_pressure_plate(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn stripped_dark_oak_wood_from_identifier_and_properties( + fn redstone_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::redstone_ore(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); + Some(block) + } + fn deepslate_redstone_ore_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_dark_oak_wood(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::deepslate_redstone_ore(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn oak_leaves_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_leaves(); - let distance_1_7 = map.get("distance")?; - let distance_1_7 = { - let x = i32::from_str(distance_1_7).ok()?; - if !(1i32..=7i32).contains(&x) { - return None; - } - x - }; - block.set_distance_1_7(distance_1_7); - let persistent = map.get("persistent")?; - let persistent = bool::from_str(persistent).ok()?; - block.set_persistent(persistent); + fn redstone_torch_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::redstone_torch(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn spruce_leaves_from_identifier_and_properties( + fn redstone_wall_torch_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::spruce_leaves(); - let distance_1_7 = map.get("distance")?; - let distance_1_7 = { - let x = i32::from_str(distance_1_7).ok()?; - if !(1i32..=7i32).contains(&x) { - return None; - } - x - }; - block.set_distance_1_7(distance_1_7); - let persistent = map.get("persistent")?; - let persistent = bool::from_str(persistent).ok()?; - block.set_persistent(persistent); + let mut block = BlockId::redstone_wall_torch(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn birch_leaves_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::birch_leaves(); - let distance_1_7 = map.get("distance")?; - let distance_1_7 = { - let x = i32::from_str(distance_1_7).ok()?; - if !(1i32..=7i32).contains(&x) { - return None; - } - x - }; - block.set_distance_1_7(distance_1_7); - let persistent = map.get("persistent")?; - let persistent = bool::from_str(persistent).ok()?; - block.set_persistent(persistent); + fn stone_button_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::stone_button(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn jungle_leaves_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::jungle_leaves(); - let distance_1_7 = map.get("distance")?; - let distance_1_7 = { - let x = i32::from_str(distance_1_7).ok()?; - if !(1i32..=7i32).contains(&x) { + fn snow_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::snow(); + let layers = map.get("layers")?; + let layers = { + let x = i32::from_str(layers).ok()?; + if !(1i32..=8i32).contains(&x) { return None; } x }; - block.set_distance_1_7(distance_1_7); - let persistent = map.get("persistent")?; - let persistent = bool::from_str(persistent).ok()?; - block.set_persistent(persistent); + block.set_layers(layers); Some(block) } - fn acacia_leaves_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::acacia_leaves(); - let distance_1_7 = map.get("distance")?; - let distance_1_7 = { - let x = i32::from_str(distance_1_7).ok()?; - if !(1i32..=7i32).contains(&x) { + fn ice_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::ice(); + Some(block) + } + fn snow_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::snow_block(); + Some(block) + } + fn cactus_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cactus(); + let age_0_15 = map.get("age")?; + let age_0_15 = { + let x = i32::from_str(age_0_15).ok()?; + if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_distance_1_7(distance_1_7); - let persistent = map.get("persistent")?; - let persistent = bool::from_str(persistent).ok()?; - block.set_persistent(persistent); + block.set_age_0_15(age_0_15); Some(block) } - fn dark_oak_leaves_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::dark_oak_leaves(); - let distance_1_7 = map.get("distance")?; - let distance_1_7 = { - let x = i32::from_str(distance_1_7).ok()?; - if !(1i32..=7i32).contains(&x) { + fn clay_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::clay(); + Some(block) + } + fn sugar_cane_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::sugar_cane(); + let age_0_15 = map.get("age")?; + let age_0_15 = { + let x = i32::from_str(age_0_15).ok()?; + if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_distance_1_7(distance_1_7); - let persistent = map.get("persistent")?; - let persistent = bool::from_str(persistent).ok()?; - block.set_persistent(persistent); + block.set_age_0_15(age_0_15); + Some(block) + } + fn jukebox_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::jukebox(); + let has_record = map.get("has_record")?; + let has_record = bool::from_str(has_record).ok()?; + block.set_has_record(has_record); + Some(block) + } + fn oak_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_fence(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); + Some(block) + } + fn pumpkin_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::pumpkin(); + Some(block) + } + fn netherrack_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::netherrack(); + Some(block) + } + fn soul_sand_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::soul_sand(); Some(block) } - fn sponge_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::sponge(); + fn soul_soil_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::soul_soil(); Some(block) } - fn wet_sponge_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::wet_sponge(); + fn basalt_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::basalt(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn glass_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::glass(); + fn polished_basalt_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::polished_basalt(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn lapis_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lapis_ore(); + fn soul_torch_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::soul_torch(); Some(block) } - fn lapis_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lapis_block(); + fn soul_wall_torch_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::soul_wall_torch(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn dispenser_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::dispenser(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); - let triggered = map.get("triggered")?; - let triggered = bool::from_str(triggered).ok()?; - block.set_triggered(triggered); + fn glowstone_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::glowstone(); Some(block) } - fn sandstone_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::sandstone(); + fn nether_portal_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::nether_portal(); + let axis_xz = map.get("axis")?; + let axis_xz = AxisXz::from_str(axis_xz).ok()?; + block.set_axis_xz(axis_xz); Some(block) } - fn chiseled_sandstone_from_identifier_and_properties( + fn carved_pumpkin_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::chiseled_sandstone(); + let mut block = BlockId::carved_pumpkin(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn cut_sandstone_from_identifier_and_properties( + fn jack_o_lantern_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cut_sandstone(); + let mut block = BlockId::jack_o_lantern(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn note_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::note_block(); - let instrument = map.get("instrument")?; - let instrument = Instrument::from_str(instrument).ok()?; - block.set_instrument(instrument); - let note = map.get("note")?; - let note = { - let x = i32::from_str(note).ok()?; - if !(0i32..=24i32).contains(&x) { + fn cake_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cake(); + let bites = map.get("bites")?; + let bites = { + let x = i32::from_str(bites).ok()?; + if !(0i32..=6i32).contains(&x) { return None; } x }; - block.set_note(note); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + block.set_bites(bites); Some(block) } - fn white_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::white_bed(); + fn repeater_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::repeater(); + let delay = map.get("delay")?; + let delay = { + let x = i32::from_str(delay).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_delay(delay); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + let locked = map.get("locked")?; + let locked = bool::from_str(locked).ok()?; + block.set_locked(locked); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn orange_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::orange_bed(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + fn white_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::white_stained_glass(); Some(block) } - fn magenta_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::magenta_bed(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + fn orange_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::orange_stained_glass(); Some(block) } - fn light_blue_bed_from_identifier_and_properties( + fn magenta_stained_glass_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_blue_bed(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + let mut block = BlockId::magenta_stained_glass(); Some(block) } - fn yellow_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::yellow_bed(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + fn light_blue_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::light_blue_stained_glass(); Some(block) } - fn lime_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lime_bed(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + fn yellow_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::yellow_stained_glass(); Some(block) } - fn pink_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::pink_bed(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + fn lime_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::lime_stained_glass(); Some(block) } - fn gray_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::gray_bed(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + fn pink_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::pink_stained_glass(); Some(block) } - fn light_gray_bed_from_identifier_and_properties( + fn gray_stained_glass_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_gray_bed(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + let mut block = BlockId::gray_stained_glass(); + Some(block) + } + fn light_gray_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::light_gray_stained_glass(); + Some(block) + } + fn cyan_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::cyan_stained_glass(); + Some(block) + } + fn purple_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::purple_stained_glass(); + Some(block) + } + fn blue_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::blue_stained_glass(); + Some(block) + } + fn brown_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::brown_stained_glass(); Some(block) } - fn cyan_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cyan_bed(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + fn green_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::green_stained_glass(); Some(block) } - fn purple_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::purple_bed(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + fn red_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::red_stained_glass(); Some(block) } - fn blue_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::blue_bed(); + fn black_stained_glass_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::black_stained_glass(); + Some(block) + } + fn oak_trapdoor_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_trapdoor(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn brown_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::brown_bed(); + fn spruce_trapdoor_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::spruce_trapdoor(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn green_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::green_bed(); + fn birch_trapdoor_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::birch_trapdoor(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn red_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::red_bed(); + fn jungle_trapdoor_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::jungle_trapdoor(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn black_bed_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::black_bed(); + fn acacia_trapdoor_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::acacia_trapdoor(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let occupied = map.get("occupied")?; - let occupied = bool::from_str(occupied).ok()?; - block.set_occupied(occupied); - let part = map.get("part")?; - let part = Part::from_str(part).ok()?; - block.set_part(part); - Some(block) - } - fn powered_rail_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::powered_rail(); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); let powered = map.get("powered")?; let powered = bool::from_str(powered).ok()?; block.set_powered(powered); - let powered_rail_shape = map.get("shape")?; - let powered_rail_shape = PoweredRailShape::from_str(powered_rail_shape).ok()?; - block.set_powered_rail_shape(powered_rail_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn detector_rail_from_identifier_and_properties( + fn dark_oak_trapdoor_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::detector_rail(); + let mut block = BlockId::dark_oak_trapdoor(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); let powered = map.get("powered")?; let powered = bool::from_str(powered).ok()?; block.set_powered(powered); - let powered_rail_shape = map.get("shape")?; - let powered_rail_shape = PoweredRailShape::from_str(powered_rail_shape).ok()?; - block.set_powered_rail_shape(powered_rail_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn sticky_piston_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::sticky_piston(); - let extended = map.get("extended")?; - let extended = bool::from_str(extended).ok()?; - block.set_extended(extended); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + fn stone_bricks_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::stone_bricks(); Some(block) } - fn cobweb_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cobweb(); + fn mossy_stone_bricks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::mossy_stone_bricks(); Some(block) } - fn grass_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::grass(); + fn cracked_stone_bricks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::cracked_stone_bricks(); Some(block) } - fn fern_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::fern(); + fn chiseled_stone_bricks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::chiseled_stone_bricks(); Some(block) } - fn dead_bush_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::dead_bush(); + fn infested_stone_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::infested_stone(); Some(block) } - fn seagrass_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::seagrass(); + fn infested_cobblestone_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::infested_cobblestone(); Some(block) } - fn tall_seagrass_from_identifier_and_properties( + fn infested_stone_bricks_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::tall_seagrass(); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); + let mut block = BlockId::infested_stone_bricks(); Some(block) } - fn piston_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::piston(); - let extended = map.get("extended")?; - let extended = bool::from_str(extended).ok()?; - block.set_extended(extended); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + fn infested_mossy_stone_bricks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::infested_mossy_stone_bricks(); Some(block) } - fn piston_head_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::piston_head(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); - let piston_kind = map.get("type")?; - let piston_kind = PistonKind::from_str(piston_kind).ok()?; - block.set_piston_kind(piston_kind); - let short = map.get("short")?; - let short = bool::from_str(short).ok()?; - block.set_short(short); + fn infested_cracked_stone_bricks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::infested_cracked_stone_bricks(); Some(block) } - fn white_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::white_wool(); + fn infested_chiseled_stone_bricks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::infested_chiseled_stone_bricks(); Some(block) } - fn orange_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::orange_wool(); + fn brown_mushroom_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::brown_mushroom_block(); + let down = map.get("down")?; + let down = bool::from_str(down).ok()?; + block.set_down(down); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn magenta_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::magenta_wool(); + fn red_mushroom_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::red_mushroom_block(); + let down = map.get("down")?; + let down = bool::from_str(down).ok()?; + block.set_down(down); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn light_blue_wool_from_identifier_and_properties( + fn mushroom_stem_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_blue_wool(); + let mut block = BlockId::mushroom_stem(); + let down = map.get("down")?; + let down = bool::from_str(down).ok()?; + block.set_down(down); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn yellow_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::yellow_wool(); + fn iron_bars_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::iron_bars(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn lime_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lime_wool(); + fn chain_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::chain(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn pink_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::pink_wool(); + fn glass_pane_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::glass_pane(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn gray_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::gray_wool(); + fn melon_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::melon(); Some(block) } - fn light_gray_wool_from_identifier_and_properties( + fn attached_pumpkin_stem_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_gray_wool(); - Some(block) - } - fn cyan_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cyan_wool(); - Some(block) - } - fn purple_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::purple_wool(); + let mut block = BlockId::attached_pumpkin_stem(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn blue_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::blue_wool(); + fn attached_melon_stem_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::attached_melon_stem(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn brown_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::brown_wool(); + fn pumpkin_stem_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::pumpkin_stem(); + let age_0_7 = map.get("age")?; + let age_0_7 = { + let x = i32::from_str(age_0_7).ok()?; + if !(0i32..=7i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_7(age_0_7); Some(block) } - fn green_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::green_wool(); + fn melon_stem_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::melon_stem(); + let age_0_7 = map.get("age")?; + let age_0_7 = { + let x = i32::from_str(age_0_7).ok()?; + if !(0i32..=7i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_7(age_0_7); Some(block) } - fn red_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::red_wool(); + fn vine_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::vine(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn black_wool_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::black_wool(); + fn glow_lichen_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::glow_lichen(); + let down = map.get("down")?; + let down = bool::from_str(down).ok()?; + block.set_down(down); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn moving_piston_from_identifier_and_properties( + fn oak_fence_gate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::moving_piston(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); - let piston_kind = map.get("type")?; - let piston_kind = PistonKind::from_str(piston_kind).ok()?; - block.set_piston_kind(piston_kind); + let mut block = BlockId::oak_fence_gate(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let in_wall = map.get("in_wall")?; + let in_wall = bool::from_str(in_wall).ok()?; + block.set_in_wall(in_wall); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn dandelion_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::dandelion(); + fn brick_stairs_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::brick_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn poppy_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::poppy(); + fn stone_brick_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::stone_brick_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn blue_orchid_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::blue_orchid(); + fn mycelium_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::mycelium(); + let snowy = map.get("snowy")?; + let snowy = bool::from_str(snowy).ok()?; + block.set_snowy(snowy); Some(block) } - fn allium_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::allium(); + fn lily_pad_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lily_pad(); Some(block) } - fn azure_bluet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::azure_bluet(); + fn nether_bricks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::nether_bricks(); Some(block) } - fn red_tulip_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::red_tulip(); + fn nether_brick_fence_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::nether_brick_fence(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn orange_tulip_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::orange_tulip(); + fn nether_brick_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::nether_brick_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn white_tulip_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::white_tulip(); + fn nether_wart_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::nether_wart(); + let age_0_3 = map.get("age")?; + let age_0_3 = { + let x = i32::from_str(age_0_3).ok()?; + if !(0i32..=3i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_3(age_0_3); Some(block) } - fn pink_tulip_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::pink_tulip(); + fn enchanting_table_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::enchanting_table(); Some(block) } - fn oxeye_daisy_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oxeye_daisy(); + fn brewing_stand_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::brewing_stand(); + let has_bottle_0 = map.get("has_bottle_0")?; + let has_bottle_0 = bool::from_str(has_bottle_0).ok()?; + block.set_has_bottle_0(has_bottle_0); + let has_bottle_1 = map.get("has_bottle_1")?; + let has_bottle_1 = bool::from_str(has_bottle_1).ok()?; + block.set_has_bottle_1(has_bottle_1); + let has_bottle_2 = map.get("has_bottle_2")?; + let has_bottle_2 = bool::from_str(has_bottle_2).ok()?; + block.set_has_bottle_2(has_bottle_2); Some(block) } - fn cornflower_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cornflower(); + fn cauldron_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cauldron(); Some(block) } - fn wither_rose_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::wither_rose(); + fn water_cauldron_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::water_cauldron(); + let level_1_3 = map.get("level")?; + let level_1_3 = { + let x = i32::from_str(level_1_3).ok()?; + if !(1i32..=3i32).contains(&x) { + return None; + } + x + }; + block.set_level_1_3(level_1_3); Some(block) } - fn lily_of_the_valley_from_identifier_and_properties( + fn lava_cauldron_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::lily_of_the_valley(); + let mut block = BlockId::lava_cauldron(); Some(block) } - fn brown_mushroom_from_identifier_and_properties( + fn powder_snow_cauldron_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::brown_mushroom(); + let mut block = BlockId::powder_snow_cauldron(); + let level_1_3 = map.get("level")?; + let level_1_3 = { + let x = i32::from_str(level_1_3).ok()?; + if !(1i32..=3i32).contains(&x) { + return None; + } + x + }; + block.set_level_1_3(level_1_3); Some(block) } - fn red_mushroom_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::red_mushroom(); + fn end_portal_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::end_portal(); Some(block) } - fn gold_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::gold_block(); + fn end_portal_frame_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::end_portal_frame(); + let eye = map.get("eye")?; + let eye = bool::from_str(eye).ok()?; + block.set_eye(eye); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn iron_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::iron_block(); + fn end_stone_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::end_stone(); Some(block) } - fn bricks_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::bricks(); + fn dragon_egg_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::dragon_egg(); Some(block) } - fn tnt_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::tnt(); - let unstable = map.get("unstable")?; - let unstable = bool::from_str(unstable).ok()?; - block.set_unstable(unstable); + fn redstone_lamp_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::redstone_lamp(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn bookshelf_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::bookshelf(); + fn cocoa_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cocoa(); + let age_0_2 = map.get("age")?; + let age_0_2 = { + let x = i32::from_str(age_0_2).ok()?; + if !(0i32..=2i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_2(age_0_2); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn mossy_cobblestone_from_identifier_and_properties( + fn sandstone_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::mossy_cobblestone(); + let mut block = BlockId::sandstone_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn obsidian_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::obsidian(); + fn emerald_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::emerald_ore(); Some(block) } - fn torch_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::torch(); + fn deepslate_emerald_ore_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::deepslate_emerald_ore(); Some(block) } - fn wall_torch_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::wall_torch(); + fn ender_chest_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::ender_chest(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn fire_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::fire(); - let age_0_15 = map.get("age")?; - let age_0_15 = { - let x = i32::from_str(age_0_15).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_15(age_0_15); + fn tripwire_hook_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::tripwire_hook(); + let attached = map.get("attached")?; + let attached = bool::from_str(attached).ok()?; + block.set_attached(attached); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + Some(block) + } + fn tripwire_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::tripwire(); + let attached = map.get("attached")?; + let attached = bool::from_str(attached).ok()?; + block.set_attached(attached); + let disarmed = map.get("disarmed")?; + let disarmed = bool::from_str(disarmed).ok()?; + block.set_disarmed(disarmed); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); let north_connected = map.get("north")?; let north_connected = bool::from_str(north_connected).ok()?; block.set_north_connected(north_connected); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); let south_connected = map.get("south")?; let south_connected = bool::from_str(south_connected).ok()?; block.set_south_connected(south_connected); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); let west_connected = map.get("west")?; let west_connected = bool::from_str(west_connected).ok()?; block.set_west_connected(west_connected); Some(block) - } - fn soul_fire_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::soul_fire(); + } + fn emerald_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::emerald_block(); Some(block) } - fn spawner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::spawner(); + fn spruce_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::spruce_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn oak_stairs_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_stairs(); + fn birch_stairs_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::birch_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -22231,447 +28253,333 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn chest_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::chest(); - let chest_kind = map.get("type")?; - let chest_kind = ChestKind::from_str(chest_kind).ok()?; - block.set_chest_kind(chest_kind); + fn jungle_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::jungle_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn redstone_wire_from_identifier_and_properties( + fn command_block_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::redstone_wire(); - let east_wire = map.get("east")?; - let east_wire = EastWire::from_str(east_wire).ok()?; - block.set_east_wire(east_wire); - let north_wire = map.get("north")?; - let north_wire = NorthWire::from_str(north_wire).ok()?; - block.set_north_wire(north_wire); - let power = map.get("power")?; - let power = { - let x = i32::from_str(power).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_power(power); - let south_wire = map.get("south")?; - let south_wire = SouthWire::from_str(south_wire).ok()?; - block.set_south_wire(south_wire); - let west_wire = map.get("west")?; - let west_wire = WestWire::from_str(west_wire).ok()?; - block.set_west_wire(west_wire); + let mut block = BlockId::command_block(); + let conditional = map.get("conditional")?; + let conditional = bool::from_str(conditional).ok()?; + block.set_conditional(conditional); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn diamond_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::diamond_ore(); + fn beacon_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::beacon(); Some(block) } - fn diamond_block_from_identifier_and_properties( + fn cobblestone_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::diamond_block(); + let mut block = BlockId::cobblestone_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn crafting_table_from_identifier_and_properties( + fn mossy_cobblestone_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crafting_table(); + let mut block = BlockId::mossy_cobblestone_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn wheat_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::wheat(); - let age_0_7 = map.get("age")?; - let age_0_7 = { - let x = i32::from_str(age_0_7).ok()?; - if !(0i32..=7i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_7(age_0_7); + fn flower_pot_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::flower_pot(); Some(block) } - fn farmland_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::farmland(); - let moisture = map.get("moisture")?; - let moisture = { - let x = i32::from_str(moisture).ok()?; - if !(0i32..=7i32).contains(&x) { - return None; - } - x - }; - block.set_moisture(moisture); + fn potted_oak_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_oak_sapling(); Some(block) } - fn furnace_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::furnace(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let lit = map.get("lit")?; - let lit = bool::from_str(lit).ok()?; - block.set_lit(lit); + fn potted_spruce_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_spruce_sapling(); Some(block) } - fn oak_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_sign(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn potted_birch_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_birch_sapling(); Some(block) } - fn spruce_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::spruce_sign(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn potted_jungle_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_jungle_sapling(); Some(block) } - fn birch_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::birch_sign(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn potted_acacia_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_acacia_sapling(); Some(block) } - fn acacia_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::acacia_sign(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn potted_dark_oak_sapling_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_dark_oak_sapling(); Some(block) } - fn jungle_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::jungle_sign(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn potted_fern_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::potted_fern(); + Some(block) + } + fn potted_dandelion_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_dandelion(); + Some(block) + } + fn potted_poppy_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::potted_poppy(); Some(block) } - fn dark_oak_sign_from_identifier_and_properties( + fn potted_blue_orchid_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_oak_sign(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn oak_door_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_door(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); - let hinge = map.get("hinge")?; - let hinge = Hinge::from_str(hinge).ok()?; - block.set_hinge(hinge); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::potted_blue_orchid(); Some(block) } - fn ladder_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::ladder(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn potted_allium_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_allium(); Some(block) } - fn rail_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::rail(); - let rail_shape = map.get("shape")?; - let rail_shape = RailShape::from_str(rail_shape).ok()?; - block.set_rail_shape(rail_shape); + fn potted_azure_bluet_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_azure_bluet(); Some(block) } - fn cobblestone_stairs_from_identifier_and_properties( + fn potted_red_tulip_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cobblestone_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::potted_red_tulip(); Some(block) } - fn oak_wall_sign_from_identifier_and_properties( + fn potted_orange_tulip_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::oak_wall_sign(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::potted_orange_tulip(); Some(block) } - fn spruce_wall_sign_from_identifier_and_properties( + fn potted_white_tulip_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::spruce_wall_sign(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::potted_white_tulip(); Some(block) } - fn birch_wall_sign_from_identifier_and_properties( + fn potted_pink_tulip_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::birch_wall_sign(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::potted_pink_tulip(); Some(block) } - fn acacia_wall_sign_from_identifier_and_properties( + fn potted_oxeye_daisy_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::acacia_wall_sign(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::potted_oxeye_daisy(); Some(block) } - fn jungle_wall_sign_from_identifier_and_properties( + fn potted_cornflower_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::jungle_wall_sign(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::potted_cornflower(); Some(block) } - fn dark_oak_wall_sign_from_identifier_and_properties( + fn potted_lily_of_the_valley_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_oak_wall_sign(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::potted_lily_of_the_valley(); Some(block) } - fn lever_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lever(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn potted_wither_rose_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_wither_rose(); Some(block) } - fn stone_pressure_plate_from_identifier_and_properties( + fn potted_red_mushroom_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stone_pressure_plate(); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::potted_red_mushroom(); Some(block) } - fn iron_door_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::iron_door(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); - let hinge = map.get("hinge")?; - let hinge = Hinge::from_str(hinge).ok()?; - block.set_hinge(hinge); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn potted_brown_mushroom_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_brown_mushroom(); Some(block) } - fn oak_pressure_plate_from_identifier_and_properties( + fn potted_dead_bush_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::oak_pressure_plate(); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::potted_dead_bush(); Some(block) } - fn spruce_pressure_plate_from_identifier_and_properties( + fn potted_cactus_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::spruce_pressure_plate(); + let mut block = BlockId::potted_cactus(); + Some(block) + } + fn carrots_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::carrots(); + let age_0_7 = map.get("age")?; + let age_0_7 = { + let x = i32::from_str(age_0_7).ok()?; + if !(0i32..=7i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_7(age_0_7); + Some(block) + } + fn potatoes_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::potatoes(); + let age_0_7 = map.get("age")?; + let age_0_7 = { + let x = i32::from_str(age_0_7).ok()?; + if !(0i32..=7i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_7(age_0_7); + Some(block) + } + fn oak_button_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_button(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); let powered = map.get("powered")?; let powered = bool::from_str(powered).ok()?; block.set_powered(powered); Some(block) } - fn birch_pressure_plate_from_identifier_and_properties( + fn spruce_button_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::birch_pressure_plate(); + let mut block = BlockId::spruce_button(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); let powered = map.get("powered")?; let powered = bool::from_str(powered).ok()?; block.set_powered(powered); Some(block) } - fn jungle_pressure_plate_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::jungle_pressure_plate(); + fn birch_button_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::birch_button(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); let powered = map.get("powered")?; let powered = bool::from_str(powered).ok()?; block.set_powered(powered); Some(block) } - fn acacia_pressure_plate_from_identifier_and_properties( + fn jungle_button_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::acacia_pressure_plate(); + let mut block = BlockId::jungle_button(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); let powered = map.get("powered")?; let powered = bool::from_str(powered).ok()?; block.set_powered(powered); Some(block) } - fn dark_oak_pressure_plate_from_identifier_and_properties( + fn acacia_button_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_oak_pressure_plate(); + let mut block = BlockId::acacia_button(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); let powered = map.get("powered")?; let powered = bool::from_str(powered).ok()?; block.set_powered(powered); Some(block) } - fn redstone_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::redstone_ore(); - let lit = map.get("lit")?; - let lit = bool::from_str(lit).ok()?; - block.set_lit(lit); - Some(block) - } - fn redstone_torch_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::redstone_torch(); - let lit = map.get("lit")?; - let lit = bool::from_str(lit).ok()?; - block.set_lit(lit); - Some(block) - } - fn redstone_wall_torch_from_identifier_and_properties( + fn dark_oak_button_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::redstone_wall_torch(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let lit = map.get("lit")?; - let lit = bool::from_str(lit).ok()?; - block.set_lit(lit); - Some(block) - } - fn stone_button_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::stone_button(); + let mut block = BlockId::dark_oak_button(); let face = map.get("face")?; let face = Face::from_str(face).ok()?; block.set_face(face); @@ -22683,479 +28591,428 @@ impl BlockId { block.set_powered(powered); Some(block) } - fn snow_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::snow(); - let layers = map.get("layers")?; - let layers = { - let x = i32::from_str(layers).ok()?; - if !(1i32..=8i32).contains(&x) { + fn skeleton_skull_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::skeleton_skull(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_layers(layers); - Some(block) - } - fn ice_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::ice(); + block.set_rotation(rotation); Some(block) } - fn snow_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::snow_block(); + fn skeleton_wall_skull_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::skeleton_wall_skull(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn cactus_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cactus(); - let age_0_15 = map.get("age")?; - let age_0_15 = { - let x = i32::from_str(age_0_15).ok()?; + fn wither_skeleton_skull_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::wither_skeleton_skull(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_age_0_15(age_0_15); + block.set_rotation(rotation); Some(block) } - fn clay_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::clay(); + fn wither_skeleton_wall_skull_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::wither_skeleton_wall_skull(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn sugar_cane_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::sugar_cane(); - let age_0_15 = map.get("age")?; - let age_0_15 = { - let x = i32::from_str(age_0_15).ok()?; + fn zombie_head_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::zombie_head(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_age_0_15(age_0_15); - Some(block) - } - fn jukebox_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::jukebox(); - let has_record = map.get("has_record")?; - let has_record = bool::from_str(has_record).ok()?; - block.set_has_record(has_record); - Some(block) - } - fn oak_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_fence(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); - Some(block) - } - fn pumpkin_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::pumpkin(); - Some(block) - } - fn netherrack_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::netherrack(); - Some(block) - } - fn soul_sand_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::soul_sand(); - Some(block) - } - fn soul_soil_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::soul_soil(); - Some(block) - } - fn basalt_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::basalt(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); - Some(block) - } - fn polished_basalt_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::polished_basalt(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); - Some(block) - } - fn soul_torch_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::soul_torch(); + block.set_rotation(rotation); Some(block) } - fn soul_wall_torch_from_identifier_and_properties( + fn zombie_wall_head_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::soul_wall_torch(); + let mut block = BlockId::zombie_wall_head(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn glowstone_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::glowstone(); - Some(block) - } - fn nether_portal_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::nether_portal(); - let axis_xz = map.get("axis")?; - let axis_xz = AxisXz::from_str(axis_xz).ok()?; - block.set_axis_xz(axis_xz); - Some(block) - } - fn carved_pumpkin_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::carved_pumpkin(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + fn player_head_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::player_head(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn jack_o_lantern_from_identifier_and_properties( + fn player_wall_head_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::jack_o_lantern(); + let mut block = BlockId::player_wall_head(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn cake_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cake(); - let bites = map.get("bites")?; - let bites = { - let x = i32::from_str(bites).ok()?; - if !(0i32..=6i32).contains(&x) { + fn creeper_head_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::creeper_head(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_bites(bites); + block.set_rotation(rotation); Some(block) } - fn repeater_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::repeater(); - let delay = map.get("delay")?; - let delay = { - let x = i32::from_str(delay).ok()?; - if !(1i32..=4i32).contains(&x) { - return None; - } - x - }; - block.set_delay(delay); + fn creeper_wall_head_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::creeper_wall_head(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let locked = map.get("locked")?; - let locked = bool::from_str(locked).ok()?; - block.set_locked(locked); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); Some(block) } - fn white_stained_glass_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::white_stained_glass(); + fn dragon_head_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::dragon_head(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn orange_stained_glass_from_identifier_and_properties( + fn dragon_wall_head_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::orange_stained_glass(); + let mut block = BlockId::dragon_wall_head(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn magenta_stained_glass_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::magenta_stained_glass(); + fn anvil_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::anvil(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn light_blue_stained_glass_from_identifier_and_properties( + fn chipped_anvil_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_blue_stained_glass(); + let mut block = BlockId::chipped_anvil(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn yellow_stained_glass_from_identifier_and_properties( + fn damaged_anvil_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::yellow_stained_glass(); + let mut block = BlockId::damaged_anvil(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn lime_stained_glass_from_identifier_and_properties( + fn trapped_chest_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::lime_stained_glass(); + let mut block = BlockId::trapped_chest(); + let chest_kind = map.get("type")?; + let chest_kind = ChestKind::from_str(chest_kind).ok()?; + block.set_chest_kind(chest_kind); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn pink_stained_glass_from_identifier_and_properties( + fn light_weighted_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::pink_stained_glass(); + let mut block = BlockId::light_weighted_pressure_plate(); + let power = map.get("power")?; + let power = { + let x = i32::from_str(power).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_power(power); Some(block) } - fn gray_stained_glass_from_identifier_and_properties( + fn heavy_weighted_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::gray_stained_glass(); + let mut block = BlockId::heavy_weighted_pressure_plate(); + let power = map.get("power")?; + let power = { + let x = i32::from_str(power).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_power(power); Some(block) } - fn light_gray_stained_glass_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::light_gray_stained_glass(); + fn comparator_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::comparator(); + let comparator_mode = map.get("mode")?; + let comparator_mode = ComparatorMode::from_str(comparator_mode).ok()?; + block.set_comparator_mode(comparator_mode); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn cyan_stained_glass_from_identifier_and_properties( + fn daylight_detector_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cyan_stained_glass(); + let mut block = BlockId::daylight_detector(); + let inverted = map.get("inverted")?; + let inverted = bool::from_str(inverted).ok()?; + block.set_inverted(inverted); + let power = map.get("power")?; + let power = { + let x = i32::from_str(power).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_power(power); Some(block) } - fn purple_stained_glass_from_identifier_and_properties( + fn redstone_block_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purple_stained_glass(); + let mut block = BlockId::redstone_block(); Some(block) } - fn blue_stained_glass_from_identifier_and_properties( + fn nether_quartz_ore_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::blue_stained_glass(); + let mut block = BlockId::nether_quartz_ore(); Some(block) } - fn brown_stained_glass_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::brown_stained_glass(); + fn hopper_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::hopper(); + let enabled = map.get("enabled")?; + let enabled = bool::from_str(enabled).ok()?; + block.set_enabled(enabled); + let facing_cardinal_and_down = map.get("facing")?; + let facing_cardinal_and_down = + FacingCardinalAndDown::from_str(facing_cardinal_and_down).ok()?; + block.set_facing_cardinal_and_down(facing_cardinal_and_down); Some(block) } - fn green_stained_glass_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::green_stained_glass(); + fn quartz_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::quartz_block(); Some(block) } - fn red_stained_glass_from_identifier_and_properties( + fn chiseled_quartz_block_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_stained_glass(); + let mut block = BlockId::chiseled_quartz_block(); Some(block) } - fn black_stained_glass_from_identifier_and_properties( + fn quartz_pillar_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::black_stained_glass(); + let mut block = BlockId::quartz_pillar(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn oak_trapdoor_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_trapdoor(); + fn quartz_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::quartz_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); let half_top_bottom = map.get("half")?; let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; block.set_half_top_bottom(half_top_bottom); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn spruce_trapdoor_from_identifier_and_properties( + fn activator_rail_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::spruce_trapdoor(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); + let mut block = BlockId::activator_rail(); let powered = map.get("powered")?; let powered = bool::from_str(powered).ok()?; block.set_powered(powered); + let powered_rail_shape = map.get("shape")?; + let powered_rail_shape = PoweredRailShape::from_str(powered_rail_shape).ok()?; + block.set_powered_rail_shape(powered_rail_shape); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn birch_trapdoor_from_identifier_and_properties( + fn dropper_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::dropper(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let triggered = map.get("triggered")?; + let triggered = bool::from_str(triggered).ok()?; + block.set_triggered(triggered); + Some(block) + } + fn white_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::birch_trapdoor(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::white_terracotta(); Some(block) } - fn jungle_trapdoor_from_identifier_and_properties( + fn orange_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::jungle_trapdoor(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::orange_terracotta(); Some(block) } - fn acacia_trapdoor_from_identifier_and_properties( + fn magenta_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::acacia_trapdoor(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::magenta_terracotta(); Some(block) } - fn dark_oak_trapdoor_from_identifier_and_properties( + fn light_blue_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_oak_trapdoor(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::light_blue_terracotta(); + Some(block) + } + fn yellow_terracotta_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::yellow_terracotta(); Some(block) } - fn stone_bricks_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::stone_bricks(); + fn lime_terracotta_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::lime_terracotta(); Some(block) } - fn mossy_stone_bricks_from_identifier_and_properties( + fn pink_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::mossy_stone_bricks(); + let mut block = BlockId::pink_terracotta(); Some(block) } - fn cracked_stone_bricks_from_identifier_and_properties( + fn gray_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cracked_stone_bricks(); + let mut block = BlockId::gray_terracotta(); Some(block) } - fn chiseled_stone_bricks_from_identifier_and_properties( + fn light_gray_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::chiseled_stone_bricks(); + let mut block = BlockId::light_gray_terracotta(); Some(block) } - fn infested_stone_from_identifier_and_properties( + fn cyan_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::infested_stone(); + let mut block = BlockId::cyan_terracotta(); Some(block) } - fn infested_cobblestone_from_identifier_and_properties( + fn purple_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::infested_cobblestone(); + let mut block = BlockId::purple_terracotta(); Some(block) } - fn infested_stone_bricks_from_identifier_and_properties( + fn blue_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::infested_stone_bricks(); + let mut block = BlockId::blue_terracotta(); Some(block) } - fn infested_mossy_stone_bricks_from_identifier_and_properties( + fn brown_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::infested_mossy_stone_bricks(); + let mut block = BlockId::brown_terracotta(); Some(block) } - fn infested_cracked_stone_bricks_from_identifier_and_properties( + fn green_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::infested_cracked_stone_bricks(); + let mut block = BlockId::green_terracotta(); Some(block) } - fn infested_chiseled_stone_bricks_from_identifier_and_properties( + fn red_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::infested_chiseled_stone_bricks(); + let mut block = BlockId::red_terracotta(); Some(block) } - fn brown_mushroom_block_from_identifier_and_properties( + fn black_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::brown_mushroom_block(); - let down = map.get("down")?; - let down = bool::from_str(down).ok()?; - block.set_down(down); + let mut block = BlockId::black_terracotta(); + Some(block) + } + fn white_stained_glass_pane_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::white_stained_glass_pane(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -23165,21 +29022,18 @@ impl BlockId { let south_connected = map.get("south")?; let south_connected = bool::from_str(south_connected).ok()?; block.set_south_connected(south_connected); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); let west_connected = map.get("west")?; let west_connected = bool::from_str(west_connected).ok()?; block.set_west_connected(west_connected); Some(block) } - fn red_mushroom_block_from_identifier_and_properties( + fn orange_stained_glass_pane_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_mushroom_block(); - let down = map.get("down")?; - let down = bool::from_str(down).ok()?; - block.set_down(down); + let mut block = BlockId::orange_stained_glass_pane(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -23189,21 +29043,18 @@ impl BlockId { let south_connected = map.get("south")?; let south_connected = bool::from_str(south_connected).ok()?; block.set_south_connected(south_connected); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); let west_connected = map.get("west")?; let west_connected = bool::from_str(west_connected).ok()?; block.set_west_connected(west_connected); Some(block) } - fn mushroom_stem_from_identifier_and_properties( + fn magenta_stained_glass_pane_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::mushroom_stem(); - let down = map.get("down")?; - let down = bool::from_str(down).ok()?; - block.set_down(down); + let mut block = BlockId::magenta_stained_glass_pane(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -23213,16 +29064,18 @@ impl BlockId { let south_connected = map.get("south")?; let south_connected = bool::from_str(south_connected).ok()?; block.set_south_connected(south_connected); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); let west_connected = map.get("west")?; let west_connected = bool::from_str(west_connected).ok()?; block.set_west_connected(west_connected); Some(block) } - fn iron_bars_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::iron_bars(); + fn light_blue_stained_glass_pane_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::light_blue_stained_glass_pane(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -23240,18 +29093,31 @@ impl BlockId { block.set_west_connected(west_connected); Some(block) } - fn chain_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::chain(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + fn yellow_stained_glass_pane_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::yellow_stained_glass_pane(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn glass_pane_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::glass_pane(); + fn lime_stained_glass_pane_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::lime_stained_glass_pane(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -23269,56 +29135,115 @@ impl BlockId { block.set_west_connected(west_connected); Some(block) } - fn melon_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::melon(); + fn pink_stained_glass_pane_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::pink_stained_glass_pane(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn attached_pumpkin_stem_from_identifier_and_properties( + fn gray_stained_glass_pane_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::attached_pumpkin_stem(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::gray_stained_glass_pane(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn attached_melon_stem_from_identifier_and_properties( + fn light_gray_stained_glass_pane_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::attached_melon_stem(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::light_gray_stained_glass_pane(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn pumpkin_stem_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::pumpkin_stem(); - let age_0_7 = map.get("age")?; - let age_0_7 = { - let x = i32::from_str(age_0_7).ok()?; - if !(0i32..=7i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_7(age_0_7); + fn cyan_stained_glass_pane_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::cyan_stained_glass_pane(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn melon_stem_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::melon_stem(); - let age_0_7 = map.get("age")?; - let age_0_7 = { - let x = i32::from_str(age_0_7).ok()?; - if !(0i32..=7i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_7(age_0_7); + fn purple_stained_glass_pane_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::purple_stained_glass_pane(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn vine_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::vine(); + fn blue_stained_glass_pane_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::blue_stained_glass_pane(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -23328,87 +29253,81 @@ impl BlockId { let south_connected = map.get("south")?; let south_connected = bool::from_str(south_connected).ok()?; block.set_south_connected(south_connected); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); let west_connected = map.get("west")?; let west_connected = bool::from_str(west_connected).ok()?; block.set_west_connected(west_connected); Some(block) } - fn oak_fence_gate_from_identifier_and_properties( + fn brown_stained_glass_pane_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::oak_fence_gate(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let in_wall = map.get("in_wall")?; - let in_wall = bool::from_str(in_wall).ok()?; - block.set_in_wall(in_wall); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - Some(block) - } - fn brick_stairs_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::brick_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); + let mut block = BlockId::brown_stained_glass_pane(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn stone_brick_stairs_from_identifier_and_properties( + fn green_stained_glass_pane_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stone_brick_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); + let mut block = BlockId::green_stained_glass_pane(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn mycelium_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::mycelium(); - let snowy = map.get("snowy")?; - let snowy = bool::from_str(snowy).ok()?; - block.set_snowy(snowy); - Some(block) - } - fn lily_pad_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lily_pad(); - Some(block) - } - fn nether_bricks_from_identifier_and_properties( + fn red_stained_glass_pane_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::nether_bricks(); + let mut block = BlockId::red_stained_glass_pane(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn nether_brick_fence_from_identifier_and_properties( + fn black_stained_glass_pane_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::nether_brick_fence(); + let mut block = BlockId::black_stained_glass_pane(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -23426,10 +29345,10 @@ impl BlockId { block.set_west_connected(west_connected); Some(block) } - fn nether_brick_stairs_from_identifier_and_properties( + fn acacia_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::nether_brick_stairs(); + let mut block = BlockId::acacia_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -23444,106 +29363,10 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn nether_wart_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::nether_wart(); - let age_0_3 = map.get("age")?; - let age_0_3 = { - let x = i32::from_str(age_0_3).ok()?; - if !(0i32..=3i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_3(age_0_3); - Some(block) - } - fn enchanting_table_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::enchanting_table(); - Some(block) - } - fn brewing_stand_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::brewing_stand(); - let has_bottle_0 = map.get("has_bottle_0")?; - let has_bottle_0 = bool::from_str(has_bottle_0).ok()?; - block.set_has_bottle_0(has_bottle_0); - let has_bottle_1 = map.get("has_bottle_1")?; - let has_bottle_1 = bool::from_str(has_bottle_1).ok()?; - block.set_has_bottle_1(has_bottle_1); - let has_bottle_2 = map.get("has_bottle_2")?; - let has_bottle_2 = bool::from_str(has_bottle_2).ok()?; - block.set_has_bottle_2(has_bottle_2); - Some(block) - } - fn cauldron_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cauldron(); - let cauldron_level = map.get("level")?; - let cauldron_level = { - let x = i32::from_str(cauldron_level).ok()?; - if !(0i32..=3i32).contains(&x) { - return None; - } - x - }; - block.set_cauldron_level(cauldron_level); - Some(block) - } - fn end_portal_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::end_portal(); - Some(block) - } - fn end_portal_frame_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::end_portal_frame(); - let eye = map.get("eye")?; - let eye = bool::from_str(eye).ok()?; - block.set_eye(eye); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - Some(block) - } - fn end_stone_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::end_stone(); - Some(block) - } - fn dragon_egg_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::dragon_egg(); - Some(block) - } - fn redstone_lamp_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::redstone_lamp(); - let lit = map.get("lit")?; - let lit = bool::from_str(lit).ok()?; - block.set_lit(lit); - Some(block) - } - fn cocoa_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cocoa(); - let age_0_2 = map.get("age")?; - let age_0_2 = { - let x = i32::from_str(age_0_2).ok()?; - if !(0i32..=2i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_2(age_0_2); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - Some(block) - } - fn sandstone_stairs_from_identifier_and_properties( + fn dark_oak_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::sandstone_stairs(); + let mut block = BlockId::dark_oak_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -23558,70 +29381,71 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn emerald_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::emerald_ore(); + fn slime_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::slime_block(); Some(block) } - fn ender_chest_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::ender_chest(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + fn barrier_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::barrier(); + Some(block) + } + fn light_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::light(); + let water_level = map.get("level")?; + let water_level = { + let x = i32::from_str(water_level).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_water_level(water_level); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn tripwire_hook_from_identifier_and_properties( + fn iron_trapdoor_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::tripwire_hook(); - let attached = map.get("attached")?; - let attached = bool::from_str(attached).ok()?; - block.set_attached(attached); + let mut block = BlockId::iron_trapdoor(); let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - Some(block) - } - fn tripwire_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::tripwire(); - let attached = map.get("attached")?; - let attached = bool::from_str(attached).ok()?; - block.set_attached(attached); - let disarmed = map.get("disarmed")?; - let disarmed = bool::from_str(disarmed).ok()?; - block.set_disarmed(disarmed); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); let powered = map.get("powered")?; let powered = bool::from_str(powered).ok()?; block.set_powered(powered); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn emerald_block_from_identifier_and_properties( + fn prismarine_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::prismarine(); + Some(block) + } + fn prismarine_bricks_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::emerald_block(); + let mut block = BlockId::prismarine_bricks(); Some(block) } - fn spruce_stairs_from_identifier_and_properties( + fn dark_prismarine_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::spruce_stairs(); + let mut block = BlockId::dark_prismarine(); + Some(block) + } + fn prismarine_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::prismarine_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -23636,8 +29460,10 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn birch_stairs_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::birch_stairs(); + fn prismarine_brick_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::prismarine_brick_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -23652,10 +29478,10 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn jungle_stairs_from_identifier_and_properties( + fn dark_prismarine_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::jungle_stairs(); + let mut block = BlockId::dark_prismarine_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -23670,330 +29496,327 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn command_block_from_identifier_and_properties( + fn prismarine_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::command_block(); - let conditional = map.get("conditional")?; - let conditional = bool::from_str(conditional).ok()?; - block.set_conditional(conditional); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); - Some(block) - } - fn beacon_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::beacon(); + let mut block = BlockId::prismarine_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn cobblestone_wall_from_identifier_and_properties( + fn prismarine_brick_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cobblestone_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + let mut block = BlockId::prismarine_brick_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn mossy_cobblestone_wall_from_identifier_and_properties( + fn dark_prismarine_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::mossy_cobblestone_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + let mut block = BlockId::dark_prismarine_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn flower_pot_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::flower_pot(); + fn sea_lantern_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::sea_lantern(); Some(block) } - fn potted_oak_sapling_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_oak_sapling(); + fn hay_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::hay_block(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn potted_spruce_sapling_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_spruce_sapling(); + fn white_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::white_carpet(); Some(block) } - fn potted_birch_sapling_from_identifier_and_properties( + fn orange_carpet_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_birch_sapling(); + let mut block = BlockId::orange_carpet(); Some(block) } - fn potted_jungle_sapling_from_identifier_and_properties( + fn magenta_carpet_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_jungle_sapling(); + let mut block = BlockId::magenta_carpet(); Some(block) } - fn potted_acacia_sapling_from_identifier_and_properties( + fn light_blue_carpet_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_acacia_sapling(); + let mut block = BlockId::light_blue_carpet(); Some(block) } - fn potted_dark_oak_sapling_from_identifier_and_properties( + fn yellow_carpet_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_dark_oak_sapling(); + let mut block = BlockId::yellow_carpet(); Some(block) } - fn potted_fern_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::potted_fern(); + fn lime_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lime_carpet(); Some(block) } - fn potted_dandelion_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_dandelion(); + fn pink_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::pink_carpet(); Some(block) } - fn potted_poppy_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::potted_poppy(); + fn gray_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::gray_carpet(); Some(block) } - fn potted_blue_orchid_from_identifier_and_properties( + fn light_gray_carpet_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_blue_orchid(); + let mut block = BlockId::light_gray_carpet(); Some(block) } - fn potted_allium_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_allium(); + fn cyan_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cyan_carpet(); Some(block) } - fn potted_azure_bluet_from_identifier_and_properties( + fn purple_carpet_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_azure_bluet(); + let mut block = BlockId::purple_carpet(); Some(block) } - fn potted_red_tulip_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_red_tulip(); + fn blue_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::blue_carpet(); Some(block) } - fn potted_orange_tulip_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_orange_tulip(); + fn brown_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::brown_carpet(); Some(block) } - fn potted_white_tulip_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_white_tulip(); + fn green_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::green_carpet(); Some(block) } - fn potted_pink_tulip_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_pink_tulip(); + fn red_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::red_carpet(); Some(block) } - fn potted_oxeye_daisy_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_oxeye_daisy(); + fn black_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::black_carpet(); Some(block) } - fn potted_cornflower_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_cornflower(); + fn terracotta_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::terracotta(); Some(block) } - fn potted_lily_of_the_valley_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_lily_of_the_valley(); + fn coal_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::coal_block(); + Some(block) + } + fn packed_ice_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::packed_ice(); + Some(block) + } + fn sunflower_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::sunflower(); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + Some(block) + } + fn lilac_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lilac(); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + Some(block) + } + fn rose_bush_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::rose_bush(); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + Some(block) + } + fn peony_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::peony(); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + Some(block) + } + fn tall_grass_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::tall_grass(); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + Some(block) + } + fn large_fern_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::large_fern(); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); Some(block) } - fn potted_wither_rose_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::potted_wither_rose(); + fn white_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::white_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn potted_red_mushroom_from_identifier_and_properties( + fn orange_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_red_mushroom(); + let mut block = BlockId::orange_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn potted_brown_mushroom_from_identifier_and_properties( + fn magenta_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_brown_mushroom(); + let mut block = BlockId::magenta_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn potted_dead_bush_from_identifier_and_properties( + fn light_blue_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_dead_bush(); + let mut block = BlockId::light_blue_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn potted_cactus_from_identifier_and_properties( + fn yellow_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_cactus(); - Some(block) - } - fn carrots_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::carrots(); - let age_0_7 = map.get("age")?; - let age_0_7 = { - let x = i32::from_str(age_0_7).ok()?; - if !(0i32..=7i32).contains(&x) { + let mut block = BlockId::yellow_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_age_0_7(age_0_7); + block.set_rotation(rotation); Some(block) } - fn potatoes_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::potatoes(); - let age_0_7 = map.get("age")?; - let age_0_7 = { - let x = i32::from_str(age_0_7).ok()?; - if !(0i32..=7i32).contains(&x) { + fn lime_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lime_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { return None; } x }; - block.set_age_0_7(age_0_7); - Some(block) - } - fn oak_button_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_button(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - Some(block) - } - fn spruce_button_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::spruce_button(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + block.set_rotation(rotation); Some(block) } - fn birch_button_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::birch_button(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn pink_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::pink_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn jungle_button_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::jungle_button(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn gray_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::gray_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn acacia_button_from_identifier_and_properties( + fn light_gray_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::acacia_button(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::light_gray_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn dark_oak_button_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::dark_oak_button(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn cyan_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cyan_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn skeleton_skull_from_identifier_and_properties( + fn purple_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::skeleton_skull(); + let mut block = BlockId::purple_banner(); let rotation = map.get("rotation")?; let rotation = { let x = i32::from_str(rotation).ok()?; @@ -24005,19 +29828,21 @@ impl BlockId { block.set_rotation(rotation); Some(block) } - fn skeleton_wall_skull_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::skeleton_wall_skull(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + fn blue_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::blue_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn wither_skeleton_skull_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::wither_skeleton_skull(); + fn brown_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::brown_banner(); let rotation = map.get("rotation")?; let rotation = { let x = i32::from_str(rotation).ok()?; @@ -24029,17 +29854,21 @@ impl BlockId { block.set_rotation(rotation); Some(block) } - fn wither_skeleton_wall_skull_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::wither_skeleton_wall_skull(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + fn green_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::green_banner(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); Some(block) } - fn zombie_head_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::zombie_head(); + fn red_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::red_banner(); let rotation = map.get("rotation")?; let rotation = { let x = i32::from_str(rotation).ok()?; @@ -24051,17 +29880,8 @@ impl BlockId { block.set_rotation(rotation); Some(block) } - fn zombie_wall_head_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::zombie_wall_head(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - Some(block) - } - fn player_head_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::player_head(); + fn black_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::black_banner(); let rotation = map.get("rotation")?; let rotation = { let x = i32::from_str(rotation).ok()?; @@ -24073,206 +29893,172 @@ impl BlockId { block.set_rotation(rotation); Some(block) } - fn player_wall_head_from_identifier_and_properties( + fn white_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::player_wall_head(); + let mut block = BlockId::white_wall_banner(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn creeper_head_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::creeper_head(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn orange_wall_banner_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::orange_wall_banner(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn creeper_wall_head_from_identifier_and_properties( + fn magenta_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::creeper_wall_head(); + let mut block = BlockId::magenta_wall_banner(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn dragon_head_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::dragon_head(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn light_blue_wall_banner_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::light_blue_wall_banner(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn dragon_wall_head_from_identifier_and_properties( + fn yellow_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dragon_wall_head(); + let mut block = BlockId::yellow_wall_banner(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn anvil_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::anvil(); + fn lime_wall_banner_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::lime_wall_banner(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn chipped_anvil_from_identifier_and_properties( + fn pink_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::chipped_anvil(); + let mut block = BlockId::pink_wall_banner(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn damaged_anvil_from_identifier_and_properties( + fn gray_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::damaged_anvil(); + let mut block = BlockId::gray_wall_banner(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn trapped_chest_from_identifier_and_properties( + fn light_gray_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::trapped_chest(); - let chest_kind = map.get("type")?; - let chest_kind = ChestKind::from_str(chest_kind).ok()?; - block.set_chest_kind(chest_kind); + let mut block = BlockId::light_gray_wall_banner(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); Some(block) } - fn light_weighted_pressure_plate_from_identifier_and_properties( + fn cyan_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_weighted_pressure_plate(); - let power = map.get("power")?; - let power = { - let x = i32::from_str(power).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_power(power); + let mut block = BlockId::cyan_wall_banner(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn heavy_weighted_pressure_plate_from_identifier_and_properties( + fn purple_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::heavy_weighted_pressure_plate(); - let power = map.get("power")?; - let power = { - let x = i32::from_str(power).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_power(power); + let mut block = BlockId::purple_wall_banner(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn comparator_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::comparator(); - let comparator_mode = map.get("mode")?; - let comparator_mode = ComparatorMode::from_str(comparator_mode).ok()?; - block.set_comparator_mode(comparator_mode); + fn blue_wall_banner_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::blue_wall_banner(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); Some(block) } - fn daylight_detector_from_identifier_and_properties( + fn brown_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::daylight_detector(); - let inverted = map.get("inverted")?; - let inverted = bool::from_str(inverted).ok()?; - block.set_inverted(inverted); - let power = map.get("power")?; - let power = { - let x = i32::from_str(power).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_power(power); + let mut block = BlockId::brown_wall_banner(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn redstone_block_from_identifier_and_properties( + fn green_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::redstone_block(); + let mut block = BlockId::green_wall_banner(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn nether_quartz_ore_from_identifier_and_properties( + fn red_wall_banner_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::nether_quartz_ore(); + let mut block = BlockId::red_wall_banner(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn hopper_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::hopper(); - let enabled = map.get("enabled")?; - let enabled = bool::from_str(enabled).ok()?; - block.set_enabled(enabled); - let facing_cardinal_and_down = map.get("facing")?; - let facing_cardinal_and_down = - FacingCardinalAndDown::from_str(facing_cardinal_and_down).ok()?; - block.set_facing_cardinal_and_down(facing_cardinal_and_down); + fn black_wall_banner_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::black_wall_banner(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn quartz_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::quartz_block(); + fn red_sandstone_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::red_sandstone(); Some(block) } - fn chiseled_quartz_block_from_identifier_and_properties( + fn chiseled_red_sandstone_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::chiseled_quartz_block(); + let mut block = BlockId::chiseled_red_sandstone(); Some(block) } - fn quartz_pillar_from_identifier_and_properties( + fn cut_red_sandstone_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::quartz_pillar(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::cut_red_sandstone(); Some(block) } - fn quartz_stairs_from_identifier_and_properties( + fn red_sandstone_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::quartz_stairs(); + let mut block = BlockId::red_sandstone_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -24287,359 +30073,330 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn activator_rail_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::activator_rail(); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - let powered_rail_shape = map.get("shape")?; - let powered_rail_shape = PoweredRailShape::from_str(powered_rail_shape).ok()?; - block.set_powered_rail_shape(powered_rail_shape); - Some(block) - } - fn dropper_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::dropper(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); - let triggered = map.get("triggered")?; - let triggered = bool::from_str(triggered).ok()?; - block.set_triggered(triggered); - Some(block) - } - fn white_terracotta_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::white_terracotta(); - Some(block) - } - fn orange_terracotta_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::orange_terracotta(); - Some(block) - } - fn magenta_terracotta_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::magenta_terracotta(); + fn oak_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::oak_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn light_blue_terracotta_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::light_blue_terracotta(); + fn spruce_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::spruce_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn yellow_terracotta_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::yellow_terracotta(); + fn birch_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::birch_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn lime_terracotta_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::lime_terracotta(); + fn jungle_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::jungle_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn pink_terracotta_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::pink_terracotta(); + fn acacia_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::acacia_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn gray_terracotta_from_identifier_and_properties( + fn dark_oak_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::gray_terracotta(); + let mut block = BlockId::dark_oak_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn light_gray_terracotta_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::light_gray_terracotta(); + fn stone_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::stone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn cyan_terracotta_from_identifier_and_properties( + fn smooth_stone_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cyan_terracotta(); + let mut block = BlockId::smooth_stone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn purple_terracotta_from_identifier_and_properties( + fn sandstone_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purple_terracotta(); + let mut block = BlockId::sandstone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn blue_terracotta_from_identifier_and_properties( + fn cut_sandstone_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::blue_terracotta(); + let mut block = BlockId::cut_sandstone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn brown_terracotta_from_identifier_and_properties( + fn petrified_oak_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::brown_terracotta(); + let mut block = BlockId::petrified_oak_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn green_terracotta_from_identifier_and_properties( + fn cobblestone_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::green_terracotta(); + let mut block = BlockId::cobblestone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn red_terracotta_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::red_terracotta(); + fn brick_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::brick_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn black_terracotta_from_identifier_and_properties( + fn stone_brick_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::black_terracotta(); + let mut block = BlockId::stone_brick_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn white_stained_glass_pane_from_identifier_and_properties( + fn nether_brick_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::white_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); + let mut block = BlockId::nether_brick_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); Some(block) } - fn orange_stained_glass_pane_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::orange_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); + fn quartz_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::quartz_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); Some(block) } - fn magenta_stained_glass_pane_from_identifier_and_properties( + fn red_sandstone_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::magenta_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); + let mut block = BlockId::red_sandstone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); Some(block) } - fn light_blue_stained_glass_pane_from_identifier_and_properties( + fn cut_red_sandstone_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_blue_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); + let mut block = BlockId::cut_red_sandstone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); Some(block) } - fn yellow_stained_glass_pane_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::yellow_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); + fn purpur_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::purpur_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); Some(block) } - fn lime_stained_glass_pane_from_identifier_and_properties( + fn smooth_stone_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::smooth_stone(); + Some(block) + } + fn smooth_sandstone_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::lime_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + let mut block = BlockId::smooth_sandstone(); Some(block) } - fn pink_stained_glass_pane_from_identifier_and_properties( + fn smooth_quartz_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::pink_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + let mut block = BlockId::smooth_quartz(); Some(block) } - fn gray_stained_glass_pane_from_identifier_and_properties( + fn smooth_red_sandstone_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::gray_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + let mut block = BlockId::smooth_red_sandstone(); Some(block) } - fn light_gray_stained_glass_pane_from_identifier_and_properties( + fn spruce_fence_gate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_gray_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + let mut block = BlockId::spruce_fence_gate(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let in_wall = map.get("in_wall")?; + let in_wall = bool::from_str(in_wall).ok()?; + block.set_in_wall(in_wall); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn cyan_stained_glass_pane_from_identifier_and_properties( + fn birch_fence_gate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cyan_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + let mut block = BlockId::birch_fence_gate(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let in_wall = map.get("in_wall")?; + let in_wall = bool::from_str(in_wall).ok()?; + block.set_in_wall(in_wall); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn purple_stained_glass_pane_from_identifier_and_properties( + fn jungle_fence_gate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purple_stained_glass_pane(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + let mut block = BlockId::jungle_fence_gate(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let in_wall = map.get("in_wall")?; + let in_wall = bool::from_str(in_wall).ok()?; + block.set_in_wall(in_wall); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn blue_stained_glass_pane_from_identifier_and_properties( + fn acacia_fence_gate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::blue_stained_glass_pane(); + let mut block = BlockId::acacia_fence_gate(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let in_wall = map.get("in_wall")?; + let in_wall = bool::from_str(in_wall).ok()?; + block.set_in_wall(in_wall); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + Some(block) + } + fn dark_oak_fence_gate_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dark_oak_fence_gate(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let in_wall = map.get("in_wall")?; + let in_wall = bool::from_str(in_wall).ok()?; + block.set_in_wall(in_wall); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + Some(block) + } + fn spruce_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::spruce_fence(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -24657,10 +30414,8 @@ impl BlockId { block.set_west_connected(west_connected); Some(block) } - fn brown_stained_glass_pane_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::brown_stained_glass_pane(); + fn birch_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::birch_fence(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -24678,10 +30433,8 @@ impl BlockId { block.set_west_connected(west_connected); Some(block) } - fn green_stained_glass_pane_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::green_stained_glass_pane(); + fn jungle_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::jungle_fence(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -24699,10 +30452,8 @@ impl BlockId { block.set_west_connected(west_connected); Some(block) } - fn red_stained_glass_pane_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::red_stained_glass_pane(); + fn acacia_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::acacia_fence(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -24720,10 +30471,10 @@ impl BlockId { block.set_west_connected(west_connected); Some(block) } - fn black_stained_glass_pane_from_identifier_and_properties( + fn dark_oak_fence_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::black_stained_glass_pane(); + let mut block = BlockId::dark_oak_fence(); let east_connected = map.get("east")?; let east_connected = bool::from_str(east_connected).ok()?; block.set_east_connected(east_connected); @@ -24741,127 +30492,164 @@ impl BlockId { block.set_west_connected(west_connected); Some(block) } - fn acacia_stairs_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::acacia_stairs(); + fn spruce_door_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::spruce_door(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + let hinge = map.get("hinge")?; + let hinge = Hinge::from_str(hinge).ok()?; + block.set_hinge(hinge); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn dark_oak_stairs_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::dark_oak_stairs(); + fn birch_door_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::birch_door(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + let hinge = map.get("hinge")?; + let hinge = Hinge::from_str(hinge).ok()?; + block.set_hinge(hinge); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn slime_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::slime_block(); + fn jungle_door_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::jungle_door(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + let hinge = map.get("hinge")?; + let hinge = Hinge::from_str(hinge).ok()?; + block.set_hinge(hinge); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn barrier_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::barrier(); + fn acacia_door_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::acacia_door(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + let hinge = map.get("hinge")?; + let hinge = Hinge::from_str(hinge).ok()?; + block.set_hinge(hinge); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn iron_trapdoor_from_identifier_and_properties( + fn dark_oak_door_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::iron_trapdoor(); + let mut block = BlockId::dark_oak_door(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + let hinge = map.get("hinge")?; + let hinge = Hinge::from_str(hinge).ok()?; + block.set_hinge(hinge); let open = map.get("open")?; let open = bool::from_str(open).ok()?; block.set_open(open); let powered = map.get("powered")?; let powered = bool::from_str(powered).ok()?; block.set_powered(powered); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); Some(block) } - fn prismarine_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::prismarine(); + fn end_rod_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::end_rod(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn prismarine_bricks_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::prismarine_bricks(); + fn chorus_plant_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::chorus_plant(); + let down = map.get("down")?; + let down = bool::from_str(down).ok()?; + block.set_down(down); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn dark_prismarine_from_identifier_and_properties( + fn chorus_flower_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_prismarine(); + let mut block = BlockId::chorus_flower(); + let age_0_5 = map.get("age")?; + let age_0_5 = { + let x = i32::from_str(age_0_5).ok()?; + if !(0i32..=5i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_5(age_0_5); Some(block) } - fn prismarine_stairs_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::prismarine_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn purpur_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::purpur_block(); Some(block) } - fn prismarine_brick_stairs_from_identifier_and_properties( + fn purpur_pillar_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::prismarine_brick_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::purpur_pillar(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn dark_prismarine_stairs_from_identifier_and_properties( + fn purpur_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_prismarine_stairs(); + let mut block = BlockId::purpur_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -24876,2113 +30664,2410 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn prismarine_slab_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::prismarine_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn prismarine_brick_slab_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::prismarine_brick_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn dark_prismarine_slab_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::dark_prismarine_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn sea_lantern_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::sea_lantern(); - Some(block) - } - fn hay_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::hay_block(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); - Some(block) - } - fn white_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::white_carpet(); - Some(block) - } - fn orange_carpet_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::orange_carpet(); - Some(block) - } - fn magenta_carpet_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::magenta_carpet(); - Some(block) - } - fn light_blue_carpet_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::light_blue_carpet(); - Some(block) - } - fn yellow_carpet_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::yellow_carpet(); - Some(block) - } - fn lime_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lime_carpet(); - Some(block) - } - fn pink_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::pink_carpet(); - Some(block) - } - fn gray_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::gray_carpet(); - Some(block) - } - fn light_gray_carpet_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::light_gray_carpet(); - Some(block) - } - fn cyan_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cyan_carpet(); - Some(block) - } - fn purple_carpet_from_identifier_and_properties( + fn end_stone_bricks_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purple_carpet(); - Some(block) - } - fn blue_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::blue_carpet(); - Some(block) - } - fn brown_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::brown_carpet(); + let mut block = BlockId::end_stone_bricks(); Some(block) } - fn green_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::green_carpet(); + fn beetroots_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::beetroots(); + let age_0_3 = map.get("age")?; + let age_0_3 = { + let x = i32::from_str(age_0_3).ok()?; + if !(0i32..=3i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_3(age_0_3); Some(block) } - fn red_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::red_carpet(); + fn dirt_path_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::dirt_path(); Some(block) } - fn black_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::black_carpet(); + fn end_gateway_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::end_gateway(); Some(block) } - fn terracotta_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::terracotta(); + fn repeating_command_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::repeating_command_block(); + let conditional = map.get("conditional")?; + let conditional = bool::from_str(conditional).ok()?; + block.set_conditional(conditional); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn coal_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::coal_block(); + fn chain_command_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::chain_command_block(); + let conditional = map.get("conditional")?; + let conditional = bool::from_str(conditional).ok()?; + block.set_conditional(conditional); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn packed_ice_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::packed_ice(); + fn frosted_ice_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::frosted_ice(); + let age_0_3 = map.get("age")?; + let age_0_3 = { + let x = i32::from_str(age_0_3).ok()?; + if !(0i32..=3i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_3(age_0_3); Some(block) } - fn sunflower_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::sunflower(); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); + fn magma_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::magma_block(); Some(block) } - fn lilac_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lilac(); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); + fn nether_wart_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::nether_wart_block(); Some(block) } - fn rose_bush_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::rose_bush(); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); + fn red_nether_bricks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::red_nether_bricks(); Some(block) } - fn peony_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::peony(); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); + fn bone_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::bone_block(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn tall_grass_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::tall_grass(); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); + fn structure_void_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::structure_void(); Some(block) } - fn large_fern_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::large_fern(); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); + fn observer_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::observer(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn white_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::white_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn shulker_box_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn orange_banner_from_identifier_and_properties( + fn white_shulker_box_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::orange_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + let mut block = BlockId::white_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn magenta_banner_from_identifier_and_properties( + fn orange_shulker_box_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::magenta_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + let mut block = BlockId::orange_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn light_blue_banner_from_identifier_and_properties( + fn magenta_shulker_box_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_blue_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + let mut block = BlockId::magenta_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn yellow_banner_from_identifier_and_properties( + fn light_blue_shulker_box_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::yellow_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + let mut block = BlockId::light_blue_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn lime_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lime_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn yellow_shulker_box_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::yellow_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn pink_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::pink_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn lime_shulker_box_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::lime_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn gray_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::gray_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn pink_shulker_box_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::pink_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn light_gray_banner_from_identifier_and_properties( + fn gray_shulker_box_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_gray_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + let mut block = BlockId::gray_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn cyan_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cyan_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn light_gray_shulker_box_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::light_gray_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn purple_banner_from_identifier_and_properties( + fn cyan_shulker_box_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purple_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + let mut block = BlockId::cyan_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn blue_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::blue_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn purple_shulker_box_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::purple_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn brown_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::brown_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn blue_shulker_box_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::blue_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn green_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::green_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn brown_shulker_box_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::brown_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn red_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::red_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn green_shulker_box_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::green_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn black_banner_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::black_banner(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn red_shulker_box_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::red_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); Some(block) } - fn white_wall_banner_from_identifier_and_properties( + fn black_shulker_box_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::white_wall_banner(); + let mut block = BlockId::black_shulker_box(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + Some(block) + } + fn white_glazed_terracotta_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::white_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn orange_wall_banner_from_identifier_and_properties( + fn orange_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::orange_wall_banner(); + let mut block = BlockId::orange_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn magenta_wall_banner_from_identifier_and_properties( + fn magenta_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::magenta_wall_banner(); + let mut block = BlockId::magenta_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn light_blue_wall_banner_from_identifier_and_properties( + fn light_blue_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_blue_wall_banner(); + let mut block = BlockId::light_blue_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn yellow_wall_banner_from_identifier_and_properties( + fn yellow_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::yellow_wall_banner(); + let mut block = BlockId::yellow_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn lime_wall_banner_from_identifier_and_properties( + fn lime_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::lime_wall_banner(); + let mut block = BlockId::lime_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn pink_wall_banner_from_identifier_and_properties( + fn pink_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::pink_wall_banner(); + let mut block = BlockId::pink_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn gray_wall_banner_from_identifier_and_properties( + fn gray_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::gray_wall_banner(); + let mut block = BlockId::gray_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn light_gray_wall_banner_from_identifier_and_properties( + fn light_gray_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_gray_wall_banner(); + let mut block = BlockId::light_gray_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn cyan_wall_banner_from_identifier_and_properties( + fn cyan_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cyan_wall_banner(); + let mut block = BlockId::cyan_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn purple_wall_banner_from_identifier_and_properties( + fn purple_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purple_wall_banner(); + let mut block = BlockId::purple_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn blue_wall_banner_from_identifier_and_properties( + fn blue_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::blue_wall_banner(); + let mut block = BlockId::blue_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn brown_wall_banner_from_identifier_and_properties( + fn brown_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::brown_wall_banner(); + let mut block = BlockId::brown_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn green_wall_banner_from_identifier_and_properties( + fn green_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::green_wall_banner(); + let mut block = BlockId::green_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn red_wall_banner_from_identifier_and_properties( + fn red_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_wall_banner(); + let mut block = BlockId::red_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn black_wall_banner_from_identifier_and_properties( + fn black_glazed_terracotta_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::black_wall_banner(); + let mut block = BlockId::black_glazed_terracotta(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); Some(block) } - fn red_sandstone_from_identifier_and_properties( + fn white_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_sandstone(); + let mut block = BlockId::white_concrete(); Some(block) } - fn chiseled_red_sandstone_from_identifier_and_properties( + fn orange_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::chiseled_red_sandstone(); + let mut block = BlockId::orange_concrete(); Some(block) } - fn cut_red_sandstone_from_identifier_and_properties( + fn magenta_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cut_red_sandstone(); + let mut block = BlockId::magenta_concrete(); Some(block) } - fn red_sandstone_stairs_from_identifier_and_properties( + fn light_blue_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_sandstone_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn oak_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::oak_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn spruce_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::spruce_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn birch_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::birch_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::light_blue_concrete(); Some(block) } - fn jungle_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::jungle_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn yellow_concrete_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::yellow_concrete(); Some(block) } - fn acacia_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::acacia_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn lime_concrete_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::lime_concrete(); Some(block) } - fn dark_oak_slab_from_identifier_and_properties( + fn pink_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_oak_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::pink_concrete(); Some(block) } - fn stone_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::stone_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn gray_concrete_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::gray_concrete(); Some(block) } - fn smooth_stone_slab_from_identifier_and_properties( + fn light_gray_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::smooth_stone_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::light_gray_concrete(); Some(block) } - fn sandstone_slab_from_identifier_and_properties( + fn cyan_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::sandstone_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::cyan_concrete(); Some(block) } - fn cut_sandstone_slab_from_identifier_and_properties( + fn purple_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cut_sandstone_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::purple_concrete(); Some(block) } - fn petrified_oak_slab_from_identifier_and_properties( + fn blue_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::petrified_oak_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::blue_concrete(); Some(block) } - fn cobblestone_slab_from_identifier_and_properties( + fn brown_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cobblestone_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::brown_concrete(); Some(block) } - fn brick_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::brick_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn green_concrete_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::green_concrete(); Some(block) } - fn stone_brick_slab_from_identifier_and_properties( + fn red_concrete_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::red_concrete(); + Some(block) + } + fn black_concrete_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stone_brick_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::black_concrete(); Some(block) } - fn nether_brick_slab_from_identifier_and_properties( + fn white_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::nether_brick_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::white_concrete_powder(); Some(block) } - fn quartz_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::quartz_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn orange_concrete_powder_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::orange_concrete_powder(); Some(block) } - fn red_sandstone_slab_from_identifier_and_properties( + fn magenta_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_sandstone_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::magenta_concrete_powder(); Some(block) } - fn cut_red_sandstone_slab_from_identifier_and_properties( + fn light_blue_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cut_red_sandstone_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::light_blue_concrete_powder(); Some(block) } - fn purpur_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::purpur_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn yellow_concrete_powder_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::yellow_concrete_powder(); Some(block) } - fn smooth_stone_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::smooth_stone(); + fn lime_concrete_powder_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::lime_concrete_powder(); Some(block) } - fn smooth_sandstone_from_identifier_and_properties( + fn pink_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::smooth_sandstone(); + let mut block = BlockId::pink_concrete_powder(); Some(block) } - fn smooth_quartz_from_identifier_and_properties( + fn gray_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::smooth_quartz(); + let mut block = BlockId::gray_concrete_powder(); Some(block) } - fn smooth_red_sandstone_from_identifier_and_properties( + fn light_gray_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::smooth_red_sandstone(); + let mut block = BlockId::light_gray_concrete_powder(); Some(block) } - fn spruce_fence_gate_from_identifier_and_properties( + fn cyan_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::spruce_fence_gate(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let in_wall = map.get("in_wall")?; - let in_wall = bool::from_str(in_wall).ok()?; - block.set_in_wall(in_wall); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::cyan_concrete_powder(); Some(block) } - fn birch_fence_gate_from_identifier_and_properties( + fn purple_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::birch_fence_gate(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let in_wall = map.get("in_wall")?; - let in_wall = bool::from_str(in_wall).ok()?; - block.set_in_wall(in_wall); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::purple_concrete_powder(); Some(block) } - fn jungle_fence_gate_from_identifier_and_properties( + fn blue_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::jungle_fence_gate(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let in_wall = map.get("in_wall")?; - let in_wall = bool::from_str(in_wall).ok()?; - block.set_in_wall(in_wall); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::blue_concrete_powder(); Some(block) } - fn acacia_fence_gate_from_identifier_and_properties( + fn brown_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::acacia_fence_gate(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let in_wall = map.get("in_wall")?; - let in_wall = bool::from_str(in_wall).ok()?; - block.set_in_wall(in_wall); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::brown_concrete_powder(); + Some(block) + } + fn green_concrete_powder_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::green_concrete_powder(); + Some(block) + } + fn red_concrete_powder_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::red_concrete_powder(); Some(block) } - fn dark_oak_fence_gate_from_identifier_and_properties( + fn black_concrete_powder_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_oak_fence_gate(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let in_wall = map.get("in_wall")?; - let in_wall = bool::from_str(in_wall).ok()?; - block.set_in_wall(in_wall); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::black_concrete_powder(); Some(block) } - fn spruce_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::spruce_fence(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + fn kelp_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::kelp(); + let age_0_25 = map.get("age")?; + let age_0_25 = { + let x = i32::from_str(age_0_25).ok()?; + if !(0i32..=25i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_25(age_0_25); Some(block) } - fn birch_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::birch_fence(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + fn kelp_plant_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::kelp_plant(); Some(block) } - fn jungle_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::jungle_fence(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + fn dried_kelp_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dried_kelp_block(); Some(block) } - fn acacia_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::acacia_fence(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + fn turtle_egg_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::turtle_egg(); + let eggs = map.get("eggs")?; + let eggs = { + let x = i32::from_str(eggs).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_eggs(eggs); + let hatch = map.get("hatch")?; + let hatch = { + let x = i32::from_str(hatch).ok()?; + if !(0i32..=2i32).contains(&x) { + return None; + } + x + }; + block.set_hatch(hatch); Some(block) } - fn dark_oak_fence_from_identifier_and_properties( + fn dead_tube_coral_block_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_oak_fence(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + let mut block = BlockId::dead_tube_coral_block(); Some(block) } - fn spruce_door_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::spruce_door(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); - let hinge = map.get("hinge")?; - let hinge = Hinge::from_str(hinge).ok()?; - block.set_hinge(hinge); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn dead_brain_coral_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dead_brain_coral_block(); Some(block) } - fn birch_door_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::birch_door(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); - let hinge = map.get("hinge")?; - let hinge = Hinge::from_str(hinge).ok()?; - block.set_hinge(hinge); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn dead_bubble_coral_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dead_bubble_coral_block(); Some(block) } - fn jungle_door_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::jungle_door(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); - let hinge = map.get("hinge")?; - let hinge = Hinge::from_str(hinge).ok()?; - block.set_hinge(hinge); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn dead_fire_coral_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dead_fire_coral_block(); Some(block) } - fn acacia_door_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::acacia_door(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); - let hinge = map.get("hinge")?; - let hinge = Hinge::from_str(hinge).ok()?; - block.set_hinge(hinge); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn dead_horn_coral_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dead_horn_coral_block(); Some(block) } - fn dark_oak_door_from_identifier_and_properties( + fn tube_coral_block_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dark_oak_door(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); - let hinge = map.get("hinge")?; - let hinge = Hinge::from_str(hinge).ok()?; - block.set_hinge(hinge); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::tube_coral_block(); + Some(block) + } + fn brain_coral_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::brain_coral_block(); + Some(block) + } + fn bubble_coral_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::bubble_coral_block(); Some(block) } - fn end_rod_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::end_rod(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + fn fire_coral_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::fire_coral_block(); Some(block) } - fn chorus_plant_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::chorus_plant(); - let down = map.get("down")?; - let down = bool::from_str(down).ok()?; - block.set_down(down); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); + fn horn_coral_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::horn_coral_block(); Some(block) } - fn chorus_flower_from_identifier_and_properties( + fn dead_tube_coral_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::chorus_flower(); - let age_0_5 = map.get("age")?; - let age_0_5 = { - let x = i32::from_str(age_0_5).ok()?; - if !(0i32..=5i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_5(age_0_5); + let mut block = BlockId::dead_tube_coral(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn purpur_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::purpur_block(); + fn dead_brain_coral_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dead_brain_coral(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn purpur_pillar_from_identifier_and_properties( + fn dead_bubble_coral_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purpur_pillar(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::dead_bubble_coral(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn purpur_stairs_from_identifier_and_properties( + fn dead_fire_coral_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purpur_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); + let mut block = BlockId::dead_fire_coral(); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn end_stone_bricks_from_identifier_and_properties( + fn dead_horn_coral_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::end_stone_bricks(); + let mut block = BlockId::dead_horn_coral(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn beetroots_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::beetroots(); - let age_0_3 = map.get("age")?; - let age_0_3 = { - let x = i32::from_str(age_0_3).ok()?; - if !(0i32..=3i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_3(age_0_3); + fn tube_coral_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::tube_coral(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn grass_path_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::grass_path(); + fn brain_coral_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::brain_coral(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn end_gateway_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::end_gateway(); + fn bubble_coral_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::bubble_coral(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn repeating_command_block_from_identifier_and_properties( + fn fire_coral_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::fire_coral(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn horn_coral_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::horn_coral(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn dead_tube_coral_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::repeating_command_block(); - let conditional = map.get("conditional")?; - let conditional = bool::from_str(conditional).ok()?; - block.set_conditional(conditional); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::dead_tube_coral_fan(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn chain_command_block_from_identifier_and_properties( + fn dead_brain_coral_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::chain_command_block(); - let conditional = map.get("conditional")?; - let conditional = bool::from_str(conditional).ok()?; - block.set_conditional(conditional); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::dead_brain_coral_fan(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn frosted_ice_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::frosted_ice(); - let age_0_3 = map.get("age")?; - let age_0_3 = { - let x = i32::from_str(age_0_3).ok()?; - if !(0i32..=3i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_3(age_0_3); + fn dead_bubble_coral_fan_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dead_bubble_coral_fan(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn magma_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::magma_block(); + fn dead_fire_coral_fan_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::dead_fire_coral_fan(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn nether_wart_block_from_identifier_and_properties( + fn dead_horn_coral_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::nether_wart_block(); + let mut block = BlockId::dead_horn_coral_fan(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn red_nether_bricks_from_identifier_and_properties( + fn tube_coral_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_nether_bricks(); + let mut block = BlockId::tube_coral_fan(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn bone_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::bone_block(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + fn brain_coral_fan_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::brain_coral_fan(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn structure_void_from_identifier_and_properties( + fn bubble_coral_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::structure_void(); + let mut block = BlockId::bubble_coral_fan(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn observer_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::observer(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn fire_coral_fan_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::fire_coral_fan(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn shulker_box_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + fn horn_coral_fan_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::horn_coral_fan(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn white_shulker_box_from_identifier_and_properties( + fn dead_tube_coral_wall_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::white_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::dead_tube_coral_wall_fan(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn orange_shulker_box_from_identifier_and_properties( + fn dead_brain_coral_wall_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::orange_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::dead_brain_coral_wall_fan(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn magenta_shulker_box_from_identifier_and_properties( + fn dead_bubble_coral_wall_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::magenta_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::dead_bubble_coral_wall_fan(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn light_blue_shulker_box_from_identifier_and_properties( + fn dead_fire_coral_wall_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_blue_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::dead_fire_coral_wall_fan(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn yellow_shulker_box_from_identifier_and_properties( + fn dead_horn_coral_wall_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::yellow_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::dead_horn_coral_wall_fan(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn lime_shulker_box_from_identifier_and_properties( + fn tube_coral_wall_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::lime_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::tube_coral_wall_fan(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn pink_shulker_box_from_identifier_and_properties( + fn brain_coral_wall_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::pink_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::brain_coral_wall_fan(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn gray_shulker_box_from_identifier_and_properties( + fn bubble_coral_wall_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::gray_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::bubble_coral_wall_fan(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn light_gray_shulker_box_from_identifier_and_properties( + fn fire_coral_wall_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_gray_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::fire_coral_wall_fan(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn cyan_shulker_box_from_identifier_and_properties( + fn horn_coral_wall_fan_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cyan_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::horn_coral_wall_fan(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn purple_shulker_box_from_identifier_and_properties( + fn sea_pickle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::sea_pickle(); + let pickles = map.get("pickles")?; + let pickles = { + let x = i32::from_str(pickles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_pickles(pickles); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn blue_ice_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::blue_ice(); + Some(block) + } + fn conduit_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::conduit(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn bamboo_sapling_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purple_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::bamboo_sapling(); Some(block) } - fn blue_shulker_box_from_identifier_and_properties( + fn bamboo_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::bamboo(); + let age_0_1 = map.get("age")?; + let age_0_1 = { + let x = i32::from_str(age_0_1).ok()?; + if !(0i32..=1i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_1(age_0_1); + let leaves = map.get("leaves")?; + let leaves = Leaves::from_str(leaves).ok()?; + block.set_leaves(leaves); + let stage = map.get("stage")?; + let stage = { + let x = i32::from_str(stage).ok()?; + if !(0i32..=1i32).contains(&x) { + return None; + } + x + }; + block.set_stage(stage); + Some(block) + } + fn potted_bamboo_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::blue_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::potted_bamboo(); Some(block) } - fn brown_shulker_box_from_identifier_and_properties( + fn void_air_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::void_air(); + Some(block) + } + fn cave_air_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cave_air(); + Some(block) + } + fn bubble_column_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::brown_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::bubble_column(); + let drag = map.get("drag")?; + let drag = bool::from_str(drag).ok()?; + block.set_drag(drag); Some(block) } - fn green_shulker_box_from_identifier_and_properties( + fn polished_granite_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::green_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::polished_granite_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn red_shulker_box_from_identifier_and_properties( + fn smooth_red_sandstone_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::smooth_red_sandstone_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn black_shulker_box_from_identifier_and_properties( + fn mossy_stone_brick_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::black_shulker_box(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); + let mut block = BlockId::mossy_stone_brick_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn white_glazed_terracotta_from_identifier_and_properties( + fn polished_diorite_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::white_glazed_terracotta(); + let mut block = BlockId::polished_diorite_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn orange_glazed_terracotta_from_identifier_and_properties( + fn mossy_cobblestone_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::orange_glazed_terracotta(); + let mut block = BlockId::mossy_cobblestone_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn magenta_glazed_terracotta_from_identifier_and_properties( + fn end_stone_brick_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::magenta_glazed_terracotta(); + let mut block = BlockId::end_stone_brick_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn light_blue_glazed_terracotta_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::light_blue_glazed_terracotta(); + fn stone_stairs_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::stone_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn yellow_glazed_terracotta_from_identifier_and_properties( + fn smooth_sandstone_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::yellow_glazed_terracotta(); + let mut block = BlockId::smooth_sandstone_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn lime_glazed_terracotta_from_identifier_and_properties( + fn smooth_quartz_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::lime_glazed_terracotta(); + let mut block = BlockId::smooth_quartz_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn pink_glazed_terracotta_from_identifier_and_properties( + fn granite_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::pink_glazed_terracotta(); + let mut block = BlockId::granite_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn gray_glazed_terracotta_from_identifier_and_properties( + fn andesite_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::gray_glazed_terracotta(); + let mut block = BlockId::andesite_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn light_gray_glazed_terracotta_from_identifier_and_properties( + fn red_nether_brick_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_gray_glazed_terracotta(); + let mut block = BlockId::red_nether_brick_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn cyan_glazed_terracotta_from_identifier_and_properties( + fn polished_andesite_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cyan_glazed_terracotta(); + let mut block = BlockId::polished_andesite_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn purple_glazed_terracotta_from_identifier_and_properties( + fn diorite_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purple_glazed_terracotta(); + let mut block = BlockId::diorite_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn blue_glazed_terracotta_from_identifier_and_properties( + fn polished_granite_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::blue_glazed_terracotta(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::polished_granite_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn brown_glazed_terracotta_from_identifier_and_properties( + fn smooth_red_sandstone_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::brown_glazed_terracotta(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::smooth_red_sandstone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn green_glazed_terracotta_from_identifier_and_properties( + fn mossy_stone_brick_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::green_glazed_terracotta(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::mossy_stone_brick_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn red_glazed_terracotta_from_identifier_and_properties( + fn polished_diorite_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_glazed_terracotta(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::polished_diorite_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn black_glazed_terracotta_from_identifier_and_properties( + fn mossy_cobblestone_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::black_glazed_terracotta(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::mossy_cobblestone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn white_concrete_from_identifier_and_properties( + fn end_stone_brick_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::white_concrete(); + let mut block = BlockId::end_stone_brick_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn smooth_sandstone_slab_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::smooth_sandstone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn smooth_quartz_slab_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::smooth_quartz_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn granite_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::granite_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn orange_concrete_from_identifier_and_properties( + fn andesite_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::orange_concrete(); + let mut block = BlockId::andesite_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn magenta_concrete_from_identifier_and_properties( + fn red_nether_brick_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::magenta_concrete(); + let mut block = BlockId::red_nether_brick_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn light_blue_concrete_from_identifier_and_properties( + fn polished_andesite_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_blue_concrete(); + let mut block = BlockId::polished_andesite_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn yellow_concrete_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::yellow_concrete(); + fn diorite_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::diorite_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn lime_concrete_from_identifier_and_properties( + fn brick_wall_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::brick_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); + Some(block) + } + fn prismarine_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::lime_concrete(); + let mut block = BlockId::prismarine_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn pink_concrete_from_identifier_and_properties( + fn red_sandstone_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::pink_concrete(); + let mut block = BlockId::red_sandstone_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn gray_concrete_from_identifier_and_properties( + fn mossy_stone_brick_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::gray_concrete(); + let mut block = BlockId::mossy_stone_brick_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn light_gray_concrete_from_identifier_and_properties( + fn granite_wall_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::granite_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); + Some(block) + } + fn stone_brick_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::light_gray_concrete(); + let mut block = BlockId::stone_brick_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn cyan_concrete_from_identifier_and_properties( + fn nether_brick_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cyan_concrete(); + let mut block = BlockId::nether_brick_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn purple_concrete_from_identifier_and_properties( + fn andesite_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::purple_concrete(); + let mut block = BlockId::andesite_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn blue_concrete_from_identifier_and_properties( + fn red_nether_brick_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::blue_concrete(); + let mut block = BlockId::red_nether_brick_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn brown_concrete_from_identifier_and_properties( + fn sandstone_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::brown_concrete(); + let mut block = BlockId::sandstone_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn green_concrete_from_identifier_and_properties( + fn end_stone_brick_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::green_concrete(); - Some(block) - } - fn red_concrete_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::red_concrete(); + let mut block = BlockId::end_stone_brick_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn black_concrete_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::black_concrete(); + fn diorite_wall_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::diorite_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn white_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::white_concrete_powder(); + fn scaffolding_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::scaffolding(); + let bottom = map.get("bottom")?; + let bottom = bool::from_str(bottom).ok()?; + block.set_bottom(bottom); + let distance_0_7 = map.get("distance")?; + let distance_0_7 = { + let x = i32::from_str(distance_0_7).ok()?; + if !(0i32..=7i32).contains(&x) { + return None; + } + x + }; + block.set_distance_0_7(distance_0_7); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn orange_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::orange_concrete_powder(); + fn loom_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::loom(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn magenta_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::magenta_concrete_powder(); + fn barrel_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::barrel(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); Some(block) } - fn light_blue_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::light_blue_concrete_powder(); + fn smoker_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::smoker(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn yellow_concrete_powder_from_identifier_and_properties( + fn blast_furnace_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::yellow_concrete_powder(); + let mut block = BlockId::blast_furnace(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn lime_concrete_powder_from_identifier_and_properties( + fn cartography_table_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::lime_concrete_powder(); + let mut block = BlockId::cartography_table(); Some(block) } - fn pink_concrete_powder_from_identifier_and_properties( + fn fletching_table_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::pink_concrete_powder(); + let mut block = BlockId::fletching_table(); Some(block) } - fn gray_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::gray_concrete_powder(); + fn grindstone_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::grindstone(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn light_gray_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::light_gray_concrete_powder(); + fn lectern_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lectern(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let has_book = map.get("has_book")?; + let has_book = bool::from_str(has_book).ok()?; + block.set_has_book(has_book); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn cyan_concrete_powder_from_identifier_and_properties( + fn smithing_table_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cyan_concrete_powder(); + let mut block = BlockId::smithing_table(); Some(block) } - fn purple_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::purple_concrete_powder(); + fn stonecutter_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::stonecutter(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); Some(block) } - fn blue_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::blue_concrete_powder(); + fn bell_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::bell(); + let attachment = map.get("attachment")?; + let attachment = Attachment::from_str(attachment).ok()?; + block.set_attachment(attachment); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn brown_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::brown_concrete_powder(); + fn lantern_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lantern(); + let hanging = map.get("hanging")?; + let hanging = bool::from_str(hanging).ok()?; + block.set_hanging(hanging); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn green_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::green_concrete_powder(); + fn soul_lantern_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::soul_lantern(); + let hanging = map.get("hanging")?; + let hanging = bool::from_str(hanging).ok()?; + block.set_hanging(hanging); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn red_concrete_powder_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::red_concrete_powder(); + fn campfire_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::campfire(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); + let signal_fire = map.get("signal_fire")?; + let signal_fire = bool::from_str(signal_fire).ok()?; + block.set_signal_fire(signal_fire); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn black_concrete_powder_from_identifier_and_properties( + fn soul_campfire_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::black_concrete_powder(); - Some(block) - } - fn kelp_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::kelp(); - let age_0_25 = map.get("age")?; - let age_0_25 = { - let x = i32::from_str(age_0_25).ok()?; - if !(0i32..=25i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_25(age_0_25); - Some(block) - } - fn kelp_plant_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::kelp_plant(); + let mut block = BlockId::soul_campfire(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); + let signal_fire = map.get("signal_fire")?; + let signal_fire = bool::from_str(signal_fire).ok()?; + block.set_signal_fire(signal_fire); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn dried_kelp_block_from_identifier_and_properties( + fn sweet_berry_bush_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dried_kelp_block(); - Some(block) - } - fn turtle_egg_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::turtle_egg(); - let eggs = map.get("eggs")?; - let eggs = { - let x = i32::from_str(eggs).ok()?; - if !(1i32..=4i32).contains(&x) { - return None; - } - x - }; - block.set_eggs(eggs); - let hatch = map.get("hatch")?; - let hatch = { - let x = i32::from_str(hatch).ok()?; - if !(0i32..=2i32).contains(&x) { + let mut block = BlockId::sweet_berry_bush(); + let age_0_3 = map.get("age")?; + let age_0_3 = { + let x = i32::from_str(age_0_3).ok()?; + if !(0i32..=3i32).contains(&x) { return None; } x }; - block.set_hatch(hatch); + block.set_age_0_3(age_0_3); Some(block) } - fn dead_tube_coral_block_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::dead_tube_coral_block(); + fn warped_stem_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::warped_stem(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn dead_brain_coral_block_from_identifier_and_properties( + fn stripped_warped_stem_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_brain_coral_block(); + let mut block = BlockId::stripped_warped_stem(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn dead_bubble_coral_block_from_identifier_and_properties( + fn warped_hyphae_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_bubble_coral_block(); + let mut block = BlockId::warped_hyphae(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn dead_fire_coral_block_from_identifier_and_properties( + fn stripped_warped_hyphae_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_fire_coral_block(); + let mut block = BlockId::stripped_warped_hyphae(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn dead_horn_coral_block_from_identifier_and_properties( + fn warped_nylium_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_horn_coral_block(); + let mut block = BlockId::warped_nylium(); Some(block) } - fn tube_coral_block_from_identifier_and_properties( + fn warped_fungus_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::tube_coral_block(); + let mut block = BlockId::warped_fungus(); Some(block) } - fn brain_coral_block_from_identifier_and_properties( + fn warped_wart_block_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::brain_coral_block(); + let mut block = BlockId::warped_wart_block(); Some(block) } - fn bubble_coral_block_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::bubble_coral_block(); + fn warped_roots_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::warped_roots(); Some(block) } - fn fire_coral_block_from_identifier_and_properties( + fn nether_sprouts_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::fire_coral_block(); + let mut block = BlockId::nether_sprouts(); Some(block) } - fn horn_coral_block_from_identifier_and_properties( + fn crimson_stem_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::crimson_stem(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn stripped_crimson_stem_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::horn_coral_block(); + let mut block = BlockId::stripped_crimson_stem(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn dead_tube_coral_from_identifier_and_properties( + fn crimson_hyphae_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_tube_coral(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::crimson_hyphae(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn dead_brain_coral_from_identifier_and_properties( + fn stripped_crimson_hyphae_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_brain_coral(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::stripped_crimson_hyphae(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn dead_bubble_coral_from_identifier_and_properties( + fn crimson_nylium_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_bubble_coral(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::crimson_nylium(); Some(block) } - fn dead_fire_coral_from_identifier_and_properties( + fn crimson_fungus_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_fire_coral(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::crimson_fungus(); Some(block) } - fn dead_horn_coral_from_identifier_and_properties( + fn shroomlight_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::shroomlight(); + Some(block) + } + fn weeping_vines_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_horn_coral(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::weeping_vines(); + let age_0_25 = map.get("age")?; + let age_0_25 = { + let x = i32::from_str(age_0_25).ok()?; + if !(0i32..=25i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_25(age_0_25); Some(block) } - fn tube_coral_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::tube_coral(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn weeping_vines_plant_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::weeping_vines_plant(); Some(block) } - fn brain_coral_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::brain_coral(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn twisting_vines_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::twisting_vines(); + let age_0_25 = map.get("age")?; + let age_0_25 = { + let x = i32::from_str(age_0_25).ok()?; + if !(0i32..=25i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_25(age_0_25); Some(block) } - fn bubble_coral_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::bubble_coral(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn twisting_vines_plant_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::twisting_vines_plant(); Some(block) } - fn fire_coral_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::fire_coral(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn crimson_roots_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::crimson_roots(); Some(block) } - fn horn_coral_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::horn_coral(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn crimson_planks_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::crimson_planks(); Some(block) } - fn dead_tube_coral_fan_from_identifier_and_properties( + fn warped_planks_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_tube_coral_fan(); + let mut block = BlockId::warped_planks(); + Some(block) + } + fn crimson_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::crimson_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn dead_brain_coral_fan_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::dead_brain_coral_fan(); + fn warped_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::warped_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn dead_bubble_coral_fan_from_identifier_and_properties( + fn crimson_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_bubble_coral_fan(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::crimson_pressure_plate(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn dead_fire_coral_fan_from_identifier_and_properties( + fn warped_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_fire_coral_fan(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::warped_pressure_plate(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn dead_horn_coral_fan_from_identifier_and_properties( + fn crimson_fence_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_horn_coral_fan(); + let mut block = BlockId::crimson_fence(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn tube_coral_fan_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::tube_coral_fan(); + fn warped_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::warped_fence(); + let east_connected = map.get("east")?; + let east_connected = bool::from_str(east_connected).ok()?; + block.set_east_connected(east_connected); + let north_connected = map.get("north")?; + let north_connected = bool::from_str(north_connected).ok()?; + block.set_north_connected(north_connected); + let south_connected = map.get("south")?; + let south_connected = bool::from_str(south_connected).ok()?; + block.set_south_connected(south_connected); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); + let west_connected = map.get("west")?; + let west_connected = bool::from_str(west_connected).ok()?; + block.set_west_connected(west_connected); Some(block) } - fn brain_coral_fan_from_identifier_and_properties( + fn crimson_trapdoor_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::brain_coral_fan(); + let mut block = BlockId::crimson_trapdoor(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn bubble_coral_fan_from_identifier_and_properties( + fn warped_trapdoor_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::bubble_coral_fan(); + let mut block = BlockId::warped_trapdoor(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn fire_coral_fan_from_identifier_and_properties( + fn crimson_fence_gate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::fire_coral_fan(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::crimson_fence_gate(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let in_wall = map.get("in_wall")?; + let in_wall = bool::from_str(in_wall).ok()?; + block.set_in_wall(in_wall); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn horn_coral_fan_from_identifier_and_properties( + fn warped_fence_gate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::horn_coral_fan(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::warped_fence_gate(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let in_wall = map.get("in_wall")?; + let in_wall = bool::from_str(in_wall).ok()?; + block.set_in_wall(in_wall); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn dead_tube_coral_wall_fan_from_identifier_and_properties( + fn crimson_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_tube_coral_wall_fan(); + let mut block = BlockId::crimson_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn dead_brain_coral_wall_fan_from_identifier_and_properties( + fn warped_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_brain_coral_wall_fan(); + let mut block = BlockId::warped_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn dead_bubble_coral_wall_fan_from_identifier_and_properties( + fn crimson_button_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_bubble_coral_wall_fan(); + let mut block = BlockId::crimson_button(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn dead_fire_coral_wall_fan_from_identifier_and_properties( + fn warped_button_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::dead_fire_coral_wall_fan(); + let mut block = BlockId::warped_button(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn dead_horn_coral_wall_fan_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::dead_horn_coral_wall_fan(); + fn crimson_door_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::crimson_door(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + let hinge = map.get("hinge")?; + let hinge = Hinge::from_str(hinge).ok()?; + block.set_hinge(hinge); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn tube_coral_wall_fan_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::tube_coral_wall_fan(); + fn warped_door_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::warped_door(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + let hinge = map.get("hinge")?; + let hinge = Hinge::from_str(hinge).ok()?; + block.set_hinge(hinge); + let open = map.get("open")?; + let open = bool::from_str(open).ok()?; + block.set_open(open); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + Some(block) + } + fn crimson_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::crimson_sign(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn brain_coral_wall_fan_from_identifier_and_properties( + fn warped_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::warped_sign(); + let rotation = map.get("rotation")?; + let rotation = { + let x = i32::from_str(rotation).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_rotation(rotation); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn crimson_wall_sign_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::brain_coral_wall_fan(); + let mut block = BlockId::crimson_wall_sign(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -26991,10 +33076,10 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn bubble_coral_wall_fan_from_identifier_and_properties( + fn warped_wall_sign_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::bubble_coral_wall_fan(); + let mut block = BlockId::warped_wall_sign(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -27003,169 +33088,159 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn fire_coral_wall_fan_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::fire_coral_wall_fan(); + fn structure_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::structure_block(); + let structure_block_mode = map.get("mode")?; + let structure_block_mode = StructureBlockMode::from_str(structure_block_mode).ok()?; + block.set_structure_block_mode(structure_block_mode); + Some(block) + } + fn jigsaw_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::jigsaw(); + let orientation = map.get("orientation")?; + let orientation = Orientation::from_str(orientation).ok()?; + block.set_orientation(orientation); + Some(block) + } + fn composter_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::composter(); + let level_0_8 = map.get("level")?; + let level_0_8 = { + let x = i32::from_str(level_0_8).ok()?; + if !(0i32..=8i32).contains(&x) { + return None; + } + x + }; + block.set_level_0_8(level_0_8); + Some(block) + } + fn target_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::target(); + let power = map.get("power")?; + let power = { + let x = i32::from_str(power).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_power(power); + Some(block) + } + fn bee_nest_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::bee_nest(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let honey_level = map.get("honey_level")?; + let honey_level = { + let x = i32::from_str(honey_level).ok()?; + if !(0i32..=5i32).contains(&x) { + return None; + } + x + }; + block.set_honey_level(honey_level); Some(block) } - fn horn_coral_wall_fan_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::horn_coral_wall_fan(); + fn beehive_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::beehive(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn sea_pickle_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::sea_pickle(); - let pickles = map.get("pickles")?; - let pickles = { - let x = i32::from_str(pickles).ok()?; - if !(1i32..=4i32).contains(&x) { + let honey_level = map.get("honey_level")?; + let honey_level = { + let x = i32::from_str(honey_level).ok()?; + if !(0i32..=5i32).contains(&x) { return None; } x }; - block.set_pickles(pickles); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn blue_ice_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::blue_ice(); + block.set_honey_level(honey_level); Some(block) } - fn conduit_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::conduit(); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn honey_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::honey_block(); Some(block) } - fn bamboo_sapling_from_identifier_and_properties( + fn honeycomb_block_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::bamboo_sapling(); + let mut block = BlockId::honeycomb_block(); Some(block) } - fn bamboo_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::bamboo(); - let age_0_1 = map.get("age")?; - let age_0_1 = { - let x = i32::from_str(age_0_1).ok()?; - if !(0i32..=1i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_1(age_0_1); - let leaves = map.get("leaves")?; - let leaves = Leaves::from_str(leaves).ok()?; - block.set_leaves(leaves); - let stage = map.get("stage")?; - let stage = { - let x = i32::from_str(stage).ok()?; - if !(0i32..=1i32).contains(&x) { - return None; - } - x - }; - block.set_stage(stage); + fn netherite_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::netherite_block(); Some(block) } - fn potted_bamboo_from_identifier_and_properties( + fn ancient_debris_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_bamboo(); + let mut block = BlockId::ancient_debris(); Some(block) } - fn void_air_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::void_air(); + fn crying_obsidian_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::crying_obsidian(); Some(block) } - fn cave_air_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::cave_air(); + fn respawn_anchor_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::respawn_anchor(); + let charges = map.get("charges")?; + let charges = { + let x = i32::from_str(charges).ok()?; + if !(0i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_charges(charges); Some(block) } - fn bubble_column_from_identifier_and_properties( + fn potted_crimson_fungus_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::bubble_column(); - let drag = map.get("drag")?; - let drag = bool::from_str(drag).ok()?; - block.set_drag(drag); + let mut block = BlockId::potted_crimson_fungus(); Some(block) } - fn polished_granite_stairs_from_identifier_and_properties( + fn potted_warped_fungus_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_granite_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::potted_warped_fungus(); Some(block) } - fn smooth_red_sandstone_stairs_from_identifier_and_properties( + fn potted_crimson_roots_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::smooth_red_sandstone_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::potted_crimson_roots(); Some(block) } - fn mossy_stone_brick_stairs_from_identifier_and_properties( + fn potted_warped_roots_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::mossy_stone_brick_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::potted_warped_roots(); Some(block) } - fn polished_diorite_stairs_from_identifier_and_properties( + fn lodestone_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lodestone(); + Some(block) + } + fn blackstone_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::blackstone(); + Some(block) + } + fn blackstone_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_diorite_stairs(); + let mut block = BlockId::blackstone_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -27180,134 +33255,82 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn mossy_cobblestone_stairs_from_identifier_and_properties( + fn blackstone_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::mossy_cobblestone_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); + let mut block = BlockId::blackstone_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn end_stone_brick_stairs_from_identifier_and_properties( + fn blackstone_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::end_stone_brick_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); + let mut block = BlockId::blackstone_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn stone_stairs_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::stone_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn polished_blackstone_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::polished_blackstone(); Some(block) } - fn smooth_sandstone_stairs_from_identifier_and_properties( + fn polished_blackstone_bricks_from_identifier_and_properties( map: &BTreeMap, - ) -> Option { - let mut block = BlockId::smooth_sandstone_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + ) -> Option { + let mut block = BlockId::polished_blackstone_bricks(); Some(block) } - fn smooth_quartz_stairs_from_identifier_and_properties( + fn cracked_polished_blackstone_bricks_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::smooth_quartz_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::cracked_polished_blackstone_bricks(); Some(block) } - fn granite_stairs_from_identifier_and_properties( + fn chiseled_polished_blackstone_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::granite_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::chiseled_polished_blackstone(); Some(block) } - fn andesite_stairs_from_identifier_and_properties( + fn polished_blackstone_brick_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::andesite_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); + let mut block = BlockId::polished_blackstone_brick_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn red_nether_brick_stairs_from_identifier_and_properties( + fn polished_blackstone_brick_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_nether_brick_stairs(); + let mut block = BlockId::polished_blackstone_brick_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -27322,28 +33345,40 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn polished_andesite_stairs_from_identifier_and_properties( + fn polished_blackstone_brick_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_andesite_stairs(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let stairs_shape = map.get("shape")?; - let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; - block.set_stairs_shape(stairs_shape); + let mut block = BlockId::polished_blackstone_brick_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn diorite_stairs_from_identifier_and_properties( + fn gilded_blackstone_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::diorite_stairs(); + let mut block = BlockId::gilded_blackstone(); + Some(block) + } + fn polished_blackstone_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::polished_blackstone_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -27358,22 +33393,10 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn polished_granite_slab_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::polished_granite_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn smooth_red_sandstone_slab_from_identifier_and_properties( + fn polished_blackstone_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::smooth_red_sandstone_slab(); + let mut block = BlockId::polished_blackstone_slab(); let slab_kind = map.get("type")?; let slab_kind = SlabKind::from_str(slab_kind).ok()?; block.set_slab_kind(slab_kind); @@ -27382,936 +33405,879 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn mossy_stone_brick_slab_from_identifier_and_properties( + fn polished_blackstone_pressure_plate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::mossy_stone_brick_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::polished_blackstone_pressure_plate(); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn polished_diorite_slab_from_identifier_and_properties( + fn polished_blackstone_button_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_diorite_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::polished_blackstone_button(); + let face = map.get("face")?; + let face = Face::from_str(face).ok()?; + block.set_face(face); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); Some(block) } - fn mossy_cobblestone_slab_from_identifier_and_properties( + fn polished_blackstone_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::mossy_cobblestone_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); + let mut block = BlockId::polished_blackstone_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn end_stone_brick_slab_from_identifier_and_properties( + fn chiseled_nether_bricks_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::end_stone_brick_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::chiseled_nether_bricks(); Some(block) } - fn smooth_sandstone_slab_from_identifier_and_properties( + fn cracked_nether_bricks_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::smooth_sandstone_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::cracked_nether_bricks(); Some(block) } - fn smooth_quartz_slab_from_identifier_and_properties( + fn quartz_bricks_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::smooth_quartz_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::quartz_bricks(); Some(block) } - fn granite_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::granite_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); + fn candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn andesite_slab_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::andesite_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); + fn white_candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::white_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn red_nether_brick_slab_from_identifier_and_properties( + fn orange_candle_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::red_nether_brick_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); + let mut block = BlockId::orange_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn polished_andesite_slab_from_identifier_and_properties( + fn magenta_candle_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_andesite_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn diorite_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::diorite_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); + let mut block = BlockId::magenta_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn brick_wall_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::brick_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + fn light_blue_candle_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::light_blue_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn prismarine_wall_from_identifier_and_properties( + fn yellow_candle_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::prismarine_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + let mut block = BlockId::yellow_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn red_sandstone_wall_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::red_sandstone_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + fn lime_candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::lime_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn mossy_stone_brick_wall_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::mossy_stone_brick_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + fn pink_candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::pink_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn granite_wall_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::granite_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + fn gray_candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::gray_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn stone_brick_wall_from_identifier_and_properties( + fn light_gray_candle_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stone_brick_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + let mut block = BlockId::light_gray_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn nether_brick_wall_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::nether_brick_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + fn cyan_candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cyan_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn andesite_wall_from_identifier_and_properties( + fn purple_candle_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::andesite_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + let mut block = BlockId::purple_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn red_nether_brick_wall_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::red_nether_brick_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + fn blue_candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::blue_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn sandstone_wall_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::sandstone_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + fn brown_candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::brown_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn end_stone_brick_wall_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::end_stone_brick_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + fn green_candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::green_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn diorite_wall_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::diorite_wall(); - let east_nlt = map.get("east")?; - let east_nlt = EastNlt::from_str(east_nlt).ok()?; - block.set_east_nlt(east_nlt); - let north_nlt = map.get("north")?; - let north_nlt = NorthNlt::from_str(north_nlt).ok()?; - block.set_north_nlt(north_nlt); - let south_nlt = map.get("south")?; - let south_nlt = SouthNlt::from_str(south_nlt).ok()?; - block.set_south_nlt(south_nlt); - let up = map.get("up")?; - let up = bool::from_str(up).ok()?; - block.set_up(up); + fn red_candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::red_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { + return None; + } + x + }; + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_nlt = map.get("west")?; - let west_nlt = WestNlt::from_str(west_nlt).ok()?; - block.set_west_nlt(west_nlt); Some(block) } - fn scaffolding_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::scaffolding(); - let bottom = map.get("bottom")?; - let bottom = bool::from_str(bottom).ok()?; - block.set_bottom(bottom); - let distance_0_7 = map.get("distance")?; - let distance_0_7 = { - let x = i32::from_str(distance_0_7).ok()?; - if !(0i32..=7i32).contains(&x) { + fn black_candle_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::black_candle(); + let candles = map.get("candles")?; + let candles = { + let x = i32::from_str(candles).ok()?; + if !(1i32..=4i32).contains(&x) { return None; } x }; - block.set_distance_0_7(distance_0_7); + block.set_candles(candles); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn loom_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::loom(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - Some(block) - } - fn barrel_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::barrel(); - let facing_cubic = map.get("facing")?; - let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; - block.set_facing_cubic(facing_cubic); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); + fn candle_cake_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn smoker_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::smoker(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + fn white_candle_cake_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::white_candle_cake(); let lit = map.get("lit")?; let lit = bool::from_str(lit).ok()?; block.set_lit(lit); Some(block) } - fn blast_furnace_from_identifier_and_properties( + fn orange_candle_cake_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::blast_furnace(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::orange_candle_cake(); let lit = map.get("lit")?; let lit = bool::from_str(lit).ok()?; block.set_lit(lit); Some(block) } - fn cartography_table_from_identifier_and_properties( + fn magenta_candle_cake_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cartography_table(); + let mut block = BlockId::magenta_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn fletching_table_from_identifier_and_properties( + fn light_blue_candle_cake_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::fletching_table(); + let mut block = BlockId::light_blue_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn grindstone_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::grindstone(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + fn yellow_candle_cake_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::yellow_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn lectern_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lectern(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let has_book = map.get("has_book")?; - let has_book = bool::from_str(has_book).ok()?; - block.set_has_book(has_book); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn lime_candle_cake_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::lime_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn smithing_table_from_identifier_and_properties( + fn pink_candle_cake_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::smithing_table(); + let mut block = BlockId::pink_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn stonecutter_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::stonecutter(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + fn gray_candle_cake_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::gray_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn bell_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::bell(); - let attachment = map.get("attachment")?; - let attachment = Attachment::from_str(attachment).ok()?; - block.set_attachment(attachment); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + fn light_gray_candle_cake_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::light_gray_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn lantern_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lantern(); - let hanging = map.get("hanging")?; - let hanging = bool::from_str(hanging).ok()?; - block.set_hanging(hanging); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn cyan_candle_cake_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::cyan_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn soul_lantern_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::soul_lantern(); - let hanging = map.get("hanging")?; - let hanging = bool::from_str(hanging).ok()?; - block.set_hanging(hanging); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + fn purple_candle_cake_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::purple_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn campfire_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::campfire(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + fn blue_candle_cake_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::blue_candle_cake(); let lit = map.get("lit")?; let lit = bool::from_str(lit).ok()?; block.set_lit(lit); - let signal_fire = map.get("signal_fire")?; - let signal_fire = bool::from_str(signal_fire).ok()?; - block.set_signal_fire(signal_fire); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); Some(block) } - fn soul_campfire_from_identifier_and_properties( + fn brown_candle_cake_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::soul_campfire(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::brown_candle_cake(); let lit = map.get("lit")?; let lit = bool::from_str(lit).ok()?; block.set_lit(lit); - let signal_fire = map.get("signal_fire")?; - let signal_fire = bool::from_str(signal_fire).ok()?; - block.set_signal_fire(signal_fire); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); Some(block) } - fn sweet_berry_bush_from_identifier_and_properties( + fn green_candle_cake_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::sweet_berry_bush(); - let age_0_3 = map.get("age")?; - let age_0_3 = { - let x = i32::from_str(age_0_3).ok()?; - if !(0i32..=3i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_3(age_0_3); + let mut block = BlockId::green_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn warped_stem_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::warped_stem(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + fn red_candle_cake_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::red_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); Some(block) } - fn stripped_warped_stem_from_identifier_and_properties( + fn black_candle_cake_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_warped_stem(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::black_candle_cake(); + let lit = map.get("lit")?; + let lit = bool::from_str(lit).ok()?; + block.set_lit(lit); + Some(block) + } + fn amethyst_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::amethyst_block(); Some(block) } - fn warped_hyphae_from_identifier_and_properties( + fn budding_amethyst_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_hyphae(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::budding_amethyst(); Some(block) } - fn stripped_warped_hyphae_from_identifier_and_properties( + fn amethyst_cluster_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_warped_hyphae(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::amethyst_cluster(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn warped_nylium_from_identifier_and_properties( + fn large_amethyst_bud_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_nylium(); + let mut block = BlockId::large_amethyst_bud(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn warped_fungus_from_identifier_and_properties( + fn medium_amethyst_bud_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_fungus(); + let mut block = BlockId::medium_amethyst_bud(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn warped_wart_block_from_identifier_and_properties( + fn small_amethyst_bud_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_wart_block(); + let mut block = BlockId::small_amethyst_bud(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn warped_roots_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::warped_roots(); + fn tuff_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::tuff(); Some(block) } - fn nether_sprouts_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::nether_sprouts(); + fn calcite_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::calcite(); Some(block) } - fn crimson_stem_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::crimson_stem(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + fn tinted_glass_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::tinted_glass(); Some(block) } - fn stripped_crimson_stem_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::stripped_crimson_stem(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + fn powder_snow_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::powder_snow(); Some(block) } - fn crimson_hyphae_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::crimson_hyphae(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + fn sculk_sensor_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::sculk_sensor(); + let power = map.get("power")?; + let power = { + let x = i32::from_str(power).ok()?; + if !(0i32..=15i32).contains(&x) { + return None; + } + x + }; + block.set_power(power); + let sculk_sensor_phase = map.get("sculk_sensor_phase")?; + let sculk_sensor_phase = SculkSensorPhase::from_str(sculk_sensor_phase).ok()?; + block.set_sculk_sensor_phase(sculk_sensor_phase); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn stripped_crimson_hyphae_from_identifier_and_properties( + fn oxidized_copper_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::stripped_crimson_hyphae(); - let axis_xyz = map.get("axis")?; - let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; - block.set_axis_xyz(axis_xyz); + let mut block = BlockId::oxidized_copper(); Some(block) } - fn crimson_nylium_from_identifier_and_properties( + fn weathered_copper_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crimson_nylium(); + let mut block = BlockId::weathered_copper(); Some(block) } - fn crimson_fungus_from_identifier_and_properties( + fn exposed_copper_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crimson_fungus(); + let mut block = BlockId::exposed_copper(); Some(block) } - fn shroomlight_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::shroomlight(); + fn copper_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::copper_block(); Some(block) } - fn weeping_vines_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::weeping_vines(); - let age_0_25 = map.get("age")?; - let age_0_25 = { - let x = i32::from_str(age_0_25).ok()?; - if !(0i32..=25i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_25(age_0_25); + fn copper_ore_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::copper_ore(); Some(block) } - fn weeping_vines_plant_from_identifier_and_properties( + fn deepslate_copper_ore_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::weeping_vines_plant(); + let mut block = BlockId::deepslate_copper_ore(); Some(block) } - fn twisting_vines_from_identifier_and_properties( + fn oxidized_cut_copper_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::twisting_vines(); - let age_0_25 = map.get("age")?; - let age_0_25 = { - let x = i32::from_str(age_0_25).ok()?; - if !(0i32..=25i32).contains(&x) { - return None; - } - x - }; - block.set_age_0_25(age_0_25); + let mut block = BlockId::oxidized_cut_copper(); Some(block) } - fn twisting_vines_plant_from_identifier_and_properties( + fn weathered_cut_copper_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::twisting_vines_plant(); + let mut block = BlockId::weathered_cut_copper(); Some(block) } - fn crimson_roots_from_identifier_and_properties( + fn exposed_cut_copper_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crimson_roots(); + let mut block = BlockId::exposed_cut_copper(); Some(block) } - fn crimson_planks_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::crimson_planks(); + fn cut_copper_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cut_copper(); Some(block) } - fn warped_planks_from_identifier_and_properties( + fn oxidized_cut_copper_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_planks(); + let mut block = BlockId::oxidized_cut_copper_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn crimson_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::crimson_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); + fn weathered_cut_copper_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::weathered_cut_copper_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn warped_slab_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::warped_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); + fn exposed_cut_copper_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::exposed_cut_copper_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn crimson_pressure_plate_from_identifier_and_properties( + fn cut_copper_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crimson_pressure_plate(); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::cut_copper_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn warped_pressure_plate_from_identifier_and_properties( + fn oxidized_cut_copper_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_pressure_plate(); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::oxidized_cut_copper_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn crimson_fence_from_identifier_and_properties( + fn weathered_cut_copper_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crimson_fence(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); + let mut block = BlockId::weathered_cut_copper_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); Some(block) } - fn warped_fence_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::warped_fence(); - let east_connected = map.get("east")?; - let east_connected = bool::from_str(east_connected).ok()?; - block.set_east_connected(east_connected); - let north_connected = map.get("north")?; - let north_connected = bool::from_str(north_connected).ok()?; - block.set_north_connected(north_connected); - let south_connected = map.get("south")?; - let south_connected = bool::from_str(south_connected).ok()?; - block.set_south_connected(south_connected); + fn exposed_cut_copper_slab_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::exposed_cut_copper_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); - let west_connected = map.get("west")?; - let west_connected = bool::from_str(west_connected).ok()?; - block.set_west_connected(west_connected); Some(block) } - fn crimson_trapdoor_from_identifier_and_properties( + fn cut_copper_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crimson_trapdoor(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::cut_copper_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn warped_trapdoor_from_identifier_and_properties( + fn waxed_copper_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::waxed_copper_block(); + Some(block) + } + fn waxed_weathered_copper_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::waxed_weathered_copper(); + Some(block) + } + fn waxed_exposed_copper_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_trapdoor(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_top_bottom = map.get("half")?; - let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; - block.set_half_top_bottom(half_top_bottom); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::waxed_exposed_copper(); Some(block) } - fn crimson_fence_gate_from_identifier_and_properties( + fn waxed_oxidized_copper_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crimson_fence_gate(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let in_wall = map.get("in_wall")?; - let in_wall = bool::from_str(in_wall).ok()?; - block.set_in_wall(in_wall); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::waxed_oxidized_copper(); Some(block) } - fn warped_fence_gate_from_identifier_and_properties( + fn waxed_oxidized_cut_copper_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_fence_gate(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let in_wall = map.get("in_wall")?; - let in_wall = bool::from_str(in_wall).ok()?; - block.set_in_wall(in_wall); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let mut block = BlockId::waxed_oxidized_cut_copper(); Some(block) } - fn crimson_stairs_from_identifier_and_properties( + fn waxed_weathered_cut_copper_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crimson_stairs(); + let mut block = BlockId::waxed_weathered_cut_copper(); + Some(block) + } + fn waxed_exposed_cut_copper_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::waxed_exposed_cut_copper(); + Some(block) + } + fn waxed_cut_copper_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::waxed_cut_copper(); + Some(block) + } + fn waxed_oxidized_cut_copper_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::waxed_oxidized_cut_copper_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -28326,10 +34292,10 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn warped_stairs_from_identifier_and_properties( + fn waxed_weathered_cut_copper_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_stairs(); + let mut block = BlockId::waxed_weathered_cut_copper_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -28344,283 +34310,245 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn crimson_button_from_identifier_and_properties( + fn waxed_exposed_cut_copper_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crimson_button(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); + let mut block = BlockId::waxed_exposed_cut_copper_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn warped_button_from_identifier_and_properties( + fn waxed_cut_copper_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_button(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - Some(block) - } - fn crimson_door_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::crimson_door(); + let mut block = BlockId::waxed_cut_copper_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); - let hinge = map.get("hinge")?; - let hinge = Hinge::from_str(hinge).ok()?; - block.set_hinge(hinge); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - Some(block) - } - fn warped_door_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::warped_door(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let half_upper_lower = map.get("half")?; - let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; - block.set_half_upper_lower(half_upper_lower); - let hinge = map.get("hinge")?; - let hinge = Hinge::from_str(hinge).ok()?; - block.set_hinge(hinge); - let open = map.get("open")?; - let open = bool::from_str(open).ok()?; - block.set_open(open); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - Some(block) - } - fn crimson_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::crimson_sign(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn warped_sign_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::warped_sign(); - let rotation = map.get("rotation")?; - let rotation = { - let x = i32::from_str(rotation).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_rotation(rotation); + fn waxed_oxidized_cut_copper_slab_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::waxed_oxidized_cut_copper_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn crimson_wall_sign_from_identifier_and_properties( + fn waxed_weathered_cut_copper_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crimson_wall_sign(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::waxed_weathered_cut_copper_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn warped_wall_sign_from_identifier_and_properties( + fn waxed_exposed_cut_copper_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::warped_wall_sign(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); + let mut block = BlockId::waxed_exposed_cut_copper_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); let waterlogged = map.get("waterlogged")?; let waterlogged = bool::from_str(waterlogged).ok()?; block.set_waterlogged(waterlogged); Some(block) } - fn structure_block_from_identifier_and_properties( + fn waxed_cut_copper_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::structure_block(); - let structure_block_mode = map.get("mode")?; - let structure_block_mode = StructureBlockMode::from_str(structure_block_mode).ok()?; - block.set_structure_block_mode(structure_block_mode); - Some(block) - } - fn jigsaw_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::jigsaw(); - let orientation = map.get("orientation")?; - let orientation = Orientation::from_str(orientation).ok()?; - block.set_orientation(orientation); - Some(block) - } - fn composter_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::composter(); - let level_0_8 = map.get("level")?; - let level_0_8 = { - let x = i32::from_str(level_0_8).ok()?; - if !(0i32..=8i32).contains(&x) { - return None; - } - x - }; - block.set_level_0_8(level_0_8); - Some(block) - } - fn target_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::target(); - let power = map.get("power")?; - let power = { - let x = i32::from_str(power).ok()?; - if !(0i32..=15i32).contains(&x) { - return None; - } - x - }; - block.set_power(power); - Some(block) - } - fn bee_nest_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::bee_nest(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let honey_level = map.get("honey_level")?; - let honey_level = { - let x = i32::from_str(honey_level).ok()?; - if !(0i32..=5i32).contains(&x) { - return None; - } - x - }; - block.set_honey_level(honey_level); - Some(block) - } - fn beehive_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::beehive(); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let honey_level = map.get("honey_level")?; - let honey_level = { - let x = i32::from_str(honey_level).ok()?; - if !(0i32..=5i32).contains(&x) { - return None; - } - x - }; - block.set_honey_level(honey_level); - Some(block) - } - fn honey_block_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::honey_block(); + let mut block = BlockId::waxed_cut_copper_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn honeycomb_block_from_identifier_and_properties( + fn lightning_rod_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::honeycomb_block(); + let mut block = BlockId::lightning_rod(); + let facing_cubic = map.get("facing")?; + let facing_cubic = FacingCubic::from_str(facing_cubic).ok()?; + block.set_facing_cubic(facing_cubic); + let powered = map.get("powered")?; + let powered = bool::from_str(powered).ok()?; + block.set_powered(powered); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn netherite_block_from_identifier_and_properties( + fn pointed_dripstone_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::netherite_block(); + let mut block = BlockId::pointed_dripstone(); + let thickness = map.get("thickness")?; + let thickness = Thickness::from_str(thickness).ok()?; + block.set_thickness(thickness); + let vertical_direction = map.get("vertical_direction")?; + let vertical_direction = VerticalDirection::from_str(vertical_direction).ok()?; + block.set_vertical_direction(vertical_direction); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn ancient_debris_from_identifier_and_properties( + fn dripstone_block_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::ancient_debris(); + let mut block = BlockId::dripstone_block(); Some(block) } - fn crying_obsidian_from_identifier_and_properties( + fn cave_vines_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::cave_vines(); + let age_0_25 = map.get("age")?; + let age_0_25 = { + let x = i32::from_str(age_0_25).ok()?; + if !(0i32..=25i32).contains(&x) { + return None; + } + x + }; + block.set_age_0_25(age_0_25); + let berries = map.get("berries")?; + let berries = bool::from_str(berries).ok()?; + block.set_berries(berries); + Some(block) + } + fn cave_vines_plant_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::crying_obsidian(); + let mut block = BlockId::cave_vines_plant(); + let berries = map.get("berries")?; + let berries = bool::from_str(berries).ok()?; + block.set_berries(berries); Some(block) } - fn respawn_anchor_from_identifier_and_properties( + fn spore_blossom_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::respawn_anchor(); - let charges = map.get("charges")?; - let charges = { - let x = i32::from_str(charges).ok()?; - if !(0i32..=4i32).contains(&x) { - return None; - } - x - }; - block.set_charges(charges); + let mut block = BlockId::spore_blossom(); Some(block) } - fn potted_crimson_fungus_from_identifier_and_properties( + fn azalea_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::azalea(); + Some(block) + } + fn flowering_azalea_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_crimson_fungus(); + let mut block = BlockId::flowering_azalea(); Some(block) } - fn potted_warped_fungus_from_identifier_and_properties( + fn moss_carpet_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::moss_carpet(); + Some(block) + } + fn moss_block_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::moss_block(); + Some(block) + } + fn big_dripleaf_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::big_dripleaf(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let tilt = map.get("tilt")?; + let tilt = Tilt::from_str(tilt).ok()?; + block.set_tilt(tilt); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn big_dripleaf_stem_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_warped_fungus(); + let mut block = BlockId::big_dripleaf_stem(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn potted_crimson_roots_from_identifier_and_properties( + fn small_dripleaf_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_crimson_roots(); + let mut block = BlockId::small_dripleaf(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_upper_lower = map.get("half")?; + let half_upper_lower = HalfUpperLower::from_str(half_upper_lower).ok()?; + block.set_half_upper_lower(half_upper_lower); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn potted_warped_roots_from_identifier_and_properties( + fn hanging_roots_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::potted_warped_roots(); + let mut block = BlockId::hanging_roots(); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn lodestone_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::lodestone(); + fn rooted_dirt_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::rooted_dirt(); Some(block) } - fn blackstone_from_identifier_and_properties(map: &BTreeMap) -> Option { - let mut block = BlockId::blackstone(); + fn deepslate_from_identifier_and_properties(map: &BTreeMap) -> Option { + let mut block = BlockId::deepslate(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); Some(block) } - fn blackstone_stairs_from_identifier_and_properties( + fn cobbled_deepslate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::blackstone_stairs(); + let mut block = BlockId::cobbled_deepslate(); + Some(block) + } + fn cobbled_deepslate_stairs_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::cobbled_deepslate_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -28635,10 +34563,22 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn blackstone_wall_from_identifier_and_properties( + fn cobbled_deepslate_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::blackstone_wall(); + let mut block = BlockId::cobbled_deepslate_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn cobbled_deepslate_wall_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::cobbled_deepslate_wall(); let east_nlt = map.get("east")?; let east_nlt = EastNlt::from_str(east_nlt).ok()?; block.set_east_nlt(east_nlt); @@ -28659,58 +34599,76 @@ impl BlockId { block.set_west_nlt(west_nlt); Some(block) } - fn blackstone_slab_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::blackstone_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); - Some(block) - } - fn polished_blackstone_from_identifier_and_properties( + fn polished_deepslate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_blackstone(); + let mut block = BlockId::polished_deepslate(); Some(block) } - fn polished_blackstone_bricks_from_identifier_and_properties( + fn polished_deepslate_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_blackstone_bricks(); + let mut block = BlockId::polished_deepslate_stairs(); + let facing_cardinal = map.get("facing")?; + let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; + block.set_facing_cardinal(facing_cardinal); + let half_top_bottom = map.get("half")?; + let half_top_bottom = HalfTopBottom::from_str(half_top_bottom).ok()?; + block.set_half_top_bottom(half_top_bottom); + let stairs_shape = map.get("shape")?; + let stairs_shape = StairsShape::from_str(stairs_shape).ok()?; + block.set_stairs_shape(stairs_shape); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn cracked_polished_blackstone_bricks_from_identifier_and_properties( + fn polished_deepslate_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cracked_polished_blackstone_bricks(); + let mut block = BlockId::polished_deepslate_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); Some(block) } - fn chiseled_polished_blackstone_from_identifier_and_properties( + fn polished_deepslate_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::chiseled_polished_blackstone(); + let mut block = BlockId::polished_deepslate_wall(); + let east_nlt = map.get("east")?; + let east_nlt = EastNlt::from_str(east_nlt).ok()?; + block.set_east_nlt(east_nlt); + let north_nlt = map.get("north")?; + let north_nlt = NorthNlt::from_str(north_nlt).ok()?; + block.set_north_nlt(north_nlt); + let south_nlt = map.get("south")?; + let south_nlt = SouthNlt::from_str(south_nlt).ok()?; + block.set_south_nlt(south_nlt); + let up = map.get("up")?; + let up = bool::from_str(up).ok()?; + block.set_up(up); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + let west_nlt = map.get("west")?; + let west_nlt = WestNlt::from_str(west_nlt).ok()?; + block.set_west_nlt(west_nlt); Some(block) } - fn polished_blackstone_brick_slab_from_identifier_and_properties( + fn deepslate_tiles_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_blackstone_brick_slab(); - let slab_kind = map.get("type")?; - let slab_kind = SlabKind::from_str(slab_kind).ok()?; - block.set_slab_kind(slab_kind); - let waterlogged = map.get("waterlogged")?; - let waterlogged = bool::from_str(waterlogged).ok()?; - block.set_waterlogged(waterlogged); + let mut block = BlockId::deepslate_tiles(); Some(block) } - fn polished_blackstone_brick_stairs_from_identifier_and_properties( + fn deepslate_tile_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_blackstone_brick_stairs(); + let mut block = BlockId::deepslate_tile_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -28725,10 +34683,22 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn polished_blackstone_brick_wall_from_identifier_and_properties( + fn deepslate_tile_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_blackstone_brick_wall(); + let mut block = BlockId::deepslate_tile_slab(); + let slab_kind = map.get("type")?; + let slab_kind = SlabKind::from_str(slab_kind).ok()?; + block.set_slab_kind(slab_kind); + let waterlogged = map.get("waterlogged")?; + let waterlogged = bool::from_str(waterlogged).ok()?; + block.set_waterlogged(waterlogged); + Some(block) + } + fn deepslate_tile_wall_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::deepslate_tile_wall(); let east_nlt = map.get("east")?; let east_nlt = EastNlt::from_str(east_nlt).ok()?; block.set_east_nlt(east_nlt); @@ -28749,16 +34719,16 @@ impl BlockId { block.set_west_nlt(west_nlt); Some(block) } - fn gilded_blackstone_from_identifier_and_properties( + fn deepslate_bricks_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::gilded_blackstone(); + let mut block = BlockId::deepslate_bricks(); Some(block) } - fn polished_blackstone_stairs_from_identifier_and_properties( + fn deepslate_brick_stairs_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_blackstone_stairs(); + let mut block = BlockId::deepslate_brick_stairs(); let facing_cardinal = map.get("facing")?; let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; block.set_facing_cardinal(facing_cardinal); @@ -28773,10 +34743,10 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn polished_blackstone_slab_from_identifier_and_properties( + fn deepslate_brick_slab_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_blackstone_slab(); + let mut block = BlockId::deepslate_brick_slab(); let slab_kind = map.get("type")?; let slab_kind = SlabKind::from_str(slab_kind).ok()?; block.set_slab_kind(slab_kind); @@ -28785,34 +34755,10 @@ impl BlockId { block.set_waterlogged(waterlogged); Some(block) } - fn polished_blackstone_pressure_plate_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::polished_blackstone_pressure_plate(); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - Some(block) - } - fn polished_blackstone_button_from_identifier_and_properties( - map: &BTreeMap, - ) -> Option { - let mut block = BlockId::polished_blackstone_button(); - let face = map.get("face")?; - let face = Face::from_str(face).ok()?; - block.set_face(face); - let facing_cardinal = map.get("facing")?; - let facing_cardinal = FacingCardinal::from_str(facing_cardinal).ok()?; - block.set_facing_cardinal(facing_cardinal); - let powered = map.get("powered")?; - let powered = bool::from_str(powered).ok()?; - block.set_powered(powered); - Some(block) - } - fn polished_blackstone_wall_from_identifier_and_properties( + fn deepslate_brick_wall_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::polished_blackstone_wall(); + let mut block = BlockId::deepslate_brick_wall(); let east_nlt = map.get("east")?; let east_nlt = EastNlt::from_str(east_nlt).ok()?; block.set_east_nlt(east_nlt); @@ -28833,22 +34779,67 @@ impl BlockId { block.set_west_nlt(west_nlt); Some(block) } - fn chiseled_nether_bricks_from_identifier_and_properties( + fn chiseled_deepslate_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::chiseled_nether_bricks(); + let mut block = BlockId::chiseled_deepslate(); Some(block) } - fn cracked_nether_bricks_from_identifier_and_properties( + fn cracked_deepslate_bricks_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::cracked_nether_bricks(); + let mut block = BlockId::cracked_deepslate_bricks(); Some(block) } - fn quartz_bricks_from_identifier_and_properties( + fn cracked_deepslate_tiles_from_identifier_and_properties( map: &BTreeMap, ) -> Option { - let mut block = BlockId::quartz_bricks(); + let mut block = BlockId::cracked_deepslate_tiles(); + Some(block) + } + fn infested_deepslate_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::infested_deepslate(); + let axis_xyz = map.get("axis")?; + let axis_xyz = AxisXyz::from_str(axis_xyz).ok()?; + block.set_axis_xyz(axis_xyz); + Some(block) + } + fn smooth_basalt_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::smooth_basalt(); + Some(block) + } + fn raw_iron_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::raw_iron_block(); + Some(block) + } + fn raw_copper_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::raw_copper_block(); + Some(block) + } + fn raw_gold_block_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::raw_gold_block(); + Some(block) + } + fn potted_azalea_bush_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_azalea_bush(); + Some(block) + } + fn potted_flowering_azalea_bush_from_identifier_and_properties( + map: &BTreeMap, + ) -> Option { + let mut block = BlockId::potted_flowering_azalea_bush(); Some(block) } #[doc = "Attempts to convert a block identifier to a block with default property values."] @@ -28886,8 +34877,11 @@ impl BlockId { "minecraft:red_sand" => Some(Self::red_sand()), "minecraft:gravel" => Some(Self::gravel()), "minecraft:gold_ore" => Some(Self::gold_ore()), + "minecraft:deepslate_gold_ore" => Some(Self::deepslate_gold_ore()), "minecraft:iron_ore" => Some(Self::iron_ore()), + "minecraft:deepslate_iron_ore" => Some(Self::deepslate_iron_ore()), "minecraft:coal_ore" => Some(Self::coal_ore()), + "minecraft:deepslate_coal_ore" => Some(Self::deepslate_coal_ore()), "minecraft:nether_gold_ore" => Some(Self::nether_gold_ore()), "minecraft:oak_log" => Some(Self::oak_log()), "minecraft:spruce_log" => Some(Self::spruce_log()), @@ -28919,10 +34913,13 @@ impl BlockId { "minecraft:jungle_leaves" => Some(Self::jungle_leaves()), "minecraft:acacia_leaves" => Some(Self::acacia_leaves()), "minecraft:dark_oak_leaves" => Some(Self::dark_oak_leaves()), + "minecraft:azalea_leaves" => Some(Self::azalea_leaves()), + "minecraft:flowering_azalea_leaves" => Some(Self::flowering_azalea_leaves()), "minecraft:sponge" => Some(Self::sponge()), "minecraft:wet_sponge" => Some(Self::wet_sponge()), "minecraft:glass" => Some(Self::glass()), "minecraft:lapis_ore" => Some(Self::lapis_ore()), + "minecraft:deepslate_lapis_ore" => Some(Self::deepslate_lapis_ore()), "minecraft:lapis_block" => Some(Self::lapis_block()), "minecraft:dispenser" => Some(Self::dispenser()), "minecraft:sandstone" => Some(Self::sandstone()), @@ -29004,6 +35001,7 @@ impl BlockId { "minecraft:chest" => Some(Self::chest()), "minecraft:redstone_wire" => Some(Self::redstone_wire()), "minecraft:diamond_ore" => Some(Self::diamond_ore()), + "minecraft:deepslate_diamond_ore" => Some(Self::deepslate_diamond_ore()), "minecraft:diamond_block" => Some(Self::diamond_block()), "minecraft:crafting_table" => Some(Self::crafting_table()), "minecraft:wheat" => Some(Self::wheat()), @@ -29035,6 +35033,7 @@ impl BlockId { "minecraft:acacia_pressure_plate" => Some(Self::acacia_pressure_plate()), "minecraft:dark_oak_pressure_plate" => Some(Self::dark_oak_pressure_plate()), "minecraft:redstone_ore" => Some(Self::redstone_ore()), + "minecraft:deepslate_redstone_ore" => Some(Self::deepslate_redstone_ore()), "minecraft:redstone_torch" => Some(Self::redstone_torch()), "minecraft:redstone_wall_torch" => Some(Self::redstone_wall_torch()), "minecraft:stone_button" => Some(Self::stone_button()), @@ -29108,6 +35107,7 @@ impl BlockId { "minecraft:pumpkin_stem" => Some(Self::pumpkin_stem()), "minecraft:melon_stem" => Some(Self::melon_stem()), "minecraft:vine" => Some(Self::vine()), + "minecraft:glow_lichen" => Some(Self::glow_lichen()), "minecraft:oak_fence_gate" => Some(Self::oak_fence_gate()), "minecraft:brick_stairs" => Some(Self::brick_stairs()), "minecraft:stone_brick_stairs" => Some(Self::stone_brick_stairs()), @@ -29120,6 +35120,9 @@ impl BlockId { "minecraft:enchanting_table" => Some(Self::enchanting_table()), "minecraft:brewing_stand" => Some(Self::brewing_stand()), "minecraft:cauldron" => Some(Self::cauldron()), + "minecraft:water_cauldron" => Some(Self::water_cauldron()), + "minecraft:lava_cauldron" => Some(Self::lava_cauldron()), + "minecraft:powder_snow_cauldron" => Some(Self::powder_snow_cauldron()), "minecraft:end_portal" => Some(Self::end_portal()), "minecraft:end_portal_frame" => Some(Self::end_portal_frame()), "minecraft:end_stone" => Some(Self::end_stone()), @@ -29128,6 +35131,7 @@ impl BlockId { "minecraft:cocoa" => Some(Self::cocoa()), "minecraft:sandstone_stairs" => Some(Self::sandstone_stairs()), "minecraft:emerald_ore" => Some(Self::emerald_ore()), + "minecraft:deepslate_emerald_ore" => Some(Self::deepslate_emerald_ore()), "minecraft:ender_chest" => Some(Self::ender_chest()), "minecraft:tripwire_hook" => Some(Self::tripwire_hook()), "minecraft:tripwire" => Some(Self::tripwire()), @@ -29245,6 +35249,7 @@ impl BlockId { "minecraft:dark_oak_stairs" => Some(Self::dark_oak_stairs()), "minecraft:slime_block" => Some(Self::slime_block()), "minecraft:barrier" => Some(Self::barrier()), + "minecraft:light" => Some(Self::light()), "minecraft:iron_trapdoor" => Some(Self::iron_trapdoor()), "minecraft:prismarine" => Some(Self::prismarine()), "minecraft:prismarine_bricks" => Some(Self::prismarine_bricks()), @@ -29364,7 +35369,7 @@ impl BlockId { "minecraft:purpur_stairs" => Some(Self::purpur_stairs()), "minecraft:end_stone_bricks" => Some(Self::end_stone_bricks()), "minecraft:beetroots" => Some(Self::beetroots()), - "minecraft:grass_path" => Some(Self::grass_path()), + "minecraft:dirt_path" => Some(Self::dirt_path()), "minecraft:end_gateway" => Some(Self::end_gateway()), "minecraft:repeating_command_block" => Some(Self::repeating_command_block()), "minecraft:chain_command_block" => Some(Self::chain_command_block()), @@ -29639,6 +35644,139 @@ impl BlockId { "minecraft:chiseled_nether_bricks" => Some(Self::chiseled_nether_bricks()), "minecraft:cracked_nether_bricks" => Some(Self::cracked_nether_bricks()), "minecraft:quartz_bricks" => Some(Self::quartz_bricks()), + "minecraft:candle" => Some(Self::candle()), + "minecraft:white_candle" => Some(Self::white_candle()), + "minecraft:orange_candle" => Some(Self::orange_candle()), + "minecraft:magenta_candle" => Some(Self::magenta_candle()), + "minecraft:light_blue_candle" => Some(Self::light_blue_candle()), + "minecraft:yellow_candle" => Some(Self::yellow_candle()), + "minecraft:lime_candle" => Some(Self::lime_candle()), + "minecraft:pink_candle" => Some(Self::pink_candle()), + "minecraft:gray_candle" => Some(Self::gray_candle()), + "minecraft:light_gray_candle" => Some(Self::light_gray_candle()), + "minecraft:cyan_candle" => Some(Self::cyan_candle()), + "minecraft:purple_candle" => Some(Self::purple_candle()), + "minecraft:blue_candle" => Some(Self::blue_candle()), + "minecraft:brown_candle" => Some(Self::brown_candle()), + "minecraft:green_candle" => Some(Self::green_candle()), + "minecraft:red_candle" => Some(Self::red_candle()), + "minecraft:black_candle" => Some(Self::black_candle()), + "minecraft:candle_cake" => Some(Self::candle_cake()), + "minecraft:white_candle_cake" => Some(Self::white_candle_cake()), + "minecraft:orange_candle_cake" => Some(Self::orange_candle_cake()), + "minecraft:magenta_candle_cake" => Some(Self::magenta_candle_cake()), + "minecraft:light_blue_candle_cake" => Some(Self::light_blue_candle_cake()), + "minecraft:yellow_candle_cake" => Some(Self::yellow_candle_cake()), + "minecraft:lime_candle_cake" => Some(Self::lime_candle_cake()), + "minecraft:pink_candle_cake" => Some(Self::pink_candle_cake()), + "minecraft:gray_candle_cake" => Some(Self::gray_candle_cake()), + "minecraft:light_gray_candle_cake" => Some(Self::light_gray_candle_cake()), + "minecraft:cyan_candle_cake" => Some(Self::cyan_candle_cake()), + "minecraft:purple_candle_cake" => Some(Self::purple_candle_cake()), + "minecraft:blue_candle_cake" => Some(Self::blue_candle_cake()), + "minecraft:brown_candle_cake" => Some(Self::brown_candle_cake()), + "minecraft:green_candle_cake" => Some(Self::green_candle_cake()), + "minecraft:red_candle_cake" => Some(Self::red_candle_cake()), + "minecraft:black_candle_cake" => Some(Self::black_candle_cake()), + "minecraft:amethyst_block" => Some(Self::amethyst_block()), + "minecraft:budding_amethyst" => Some(Self::budding_amethyst()), + "minecraft:amethyst_cluster" => Some(Self::amethyst_cluster()), + "minecraft:large_amethyst_bud" => Some(Self::large_amethyst_bud()), + "minecraft:medium_amethyst_bud" => Some(Self::medium_amethyst_bud()), + "minecraft:small_amethyst_bud" => Some(Self::small_amethyst_bud()), + "minecraft:tuff" => Some(Self::tuff()), + "minecraft:calcite" => Some(Self::calcite()), + "minecraft:tinted_glass" => Some(Self::tinted_glass()), + "minecraft:powder_snow" => Some(Self::powder_snow()), + "minecraft:sculk_sensor" => Some(Self::sculk_sensor()), + "minecraft:oxidized_copper" => Some(Self::oxidized_copper()), + "minecraft:weathered_copper" => Some(Self::weathered_copper()), + "minecraft:exposed_copper" => Some(Self::exposed_copper()), + "minecraft:copper_block" => Some(Self::copper_block()), + "minecraft:copper_ore" => Some(Self::copper_ore()), + "minecraft:deepslate_copper_ore" => Some(Self::deepslate_copper_ore()), + "minecraft:oxidized_cut_copper" => Some(Self::oxidized_cut_copper()), + "minecraft:weathered_cut_copper" => Some(Self::weathered_cut_copper()), + "minecraft:exposed_cut_copper" => Some(Self::exposed_cut_copper()), + "minecraft:cut_copper" => Some(Self::cut_copper()), + "minecraft:oxidized_cut_copper_stairs" => Some(Self::oxidized_cut_copper_stairs()), + "minecraft:weathered_cut_copper_stairs" => Some(Self::weathered_cut_copper_stairs()), + "minecraft:exposed_cut_copper_stairs" => Some(Self::exposed_cut_copper_stairs()), + "minecraft:cut_copper_stairs" => Some(Self::cut_copper_stairs()), + "minecraft:oxidized_cut_copper_slab" => Some(Self::oxidized_cut_copper_slab()), + "minecraft:weathered_cut_copper_slab" => Some(Self::weathered_cut_copper_slab()), + "minecraft:exposed_cut_copper_slab" => Some(Self::exposed_cut_copper_slab()), + "minecraft:cut_copper_slab" => Some(Self::cut_copper_slab()), + "minecraft:waxed_copper_block" => Some(Self::waxed_copper_block()), + "minecraft:waxed_weathered_copper" => Some(Self::waxed_weathered_copper()), + "minecraft:waxed_exposed_copper" => Some(Self::waxed_exposed_copper()), + "minecraft:waxed_oxidized_copper" => Some(Self::waxed_oxidized_copper()), + "minecraft:waxed_oxidized_cut_copper" => Some(Self::waxed_oxidized_cut_copper()), + "minecraft:waxed_weathered_cut_copper" => Some(Self::waxed_weathered_cut_copper()), + "minecraft:waxed_exposed_cut_copper" => Some(Self::waxed_exposed_cut_copper()), + "minecraft:waxed_cut_copper" => Some(Self::waxed_cut_copper()), + "minecraft:waxed_oxidized_cut_copper_stairs" => { + Some(Self::waxed_oxidized_cut_copper_stairs()) + } + "minecraft:waxed_weathered_cut_copper_stairs" => { + Some(Self::waxed_weathered_cut_copper_stairs()) + } + "minecraft:waxed_exposed_cut_copper_stairs" => { + Some(Self::waxed_exposed_cut_copper_stairs()) + } + "minecraft:waxed_cut_copper_stairs" => Some(Self::waxed_cut_copper_stairs()), + "minecraft:waxed_oxidized_cut_copper_slab" => { + Some(Self::waxed_oxidized_cut_copper_slab()) + } + "minecraft:waxed_weathered_cut_copper_slab" => { + Some(Self::waxed_weathered_cut_copper_slab()) + } + "minecraft:waxed_exposed_cut_copper_slab" => { + Some(Self::waxed_exposed_cut_copper_slab()) + } + "minecraft:waxed_cut_copper_slab" => Some(Self::waxed_cut_copper_slab()), + "minecraft:lightning_rod" => Some(Self::lightning_rod()), + "minecraft:pointed_dripstone" => Some(Self::pointed_dripstone()), + "minecraft:dripstone_block" => Some(Self::dripstone_block()), + "minecraft:cave_vines" => Some(Self::cave_vines()), + "minecraft:cave_vines_plant" => Some(Self::cave_vines_plant()), + "minecraft:spore_blossom" => Some(Self::spore_blossom()), + "minecraft:azalea" => Some(Self::azalea()), + "minecraft:flowering_azalea" => Some(Self::flowering_azalea()), + "minecraft:moss_carpet" => Some(Self::moss_carpet()), + "minecraft:moss_block" => Some(Self::moss_block()), + "minecraft:big_dripleaf" => Some(Self::big_dripleaf()), + "minecraft:big_dripleaf_stem" => Some(Self::big_dripleaf_stem()), + "minecraft:small_dripleaf" => Some(Self::small_dripleaf()), + "minecraft:hanging_roots" => Some(Self::hanging_roots()), + "minecraft:rooted_dirt" => Some(Self::rooted_dirt()), + "minecraft:deepslate" => Some(Self::deepslate()), + "minecraft:cobbled_deepslate" => Some(Self::cobbled_deepslate()), + "minecraft:cobbled_deepslate_stairs" => Some(Self::cobbled_deepslate_stairs()), + "minecraft:cobbled_deepslate_slab" => Some(Self::cobbled_deepslate_slab()), + "minecraft:cobbled_deepslate_wall" => Some(Self::cobbled_deepslate_wall()), + "minecraft:polished_deepslate" => Some(Self::polished_deepslate()), + "minecraft:polished_deepslate_stairs" => Some(Self::polished_deepslate_stairs()), + "minecraft:polished_deepslate_slab" => Some(Self::polished_deepslate_slab()), + "minecraft:polished_deepslate_wall" => Some(Self::polished_deepslate_wall()), + "minecraft:deepslate_tiles" => Some(Self::deepslate_tiles()), + "minecraft:deepslate_tile_stairs" => Some(Self::deepslate_tile_stairs()), + "minecraft:deepslate_tile_slab" => Some(Self::deepslate_tile_slab()), + "minecraft:deepslate_tile_wall" => Some(Self::deepslate_tile_wall()), + "minecraft:deepslate_bricks" => Some(Self::deepslate_bricks()), + "minecraft:deepslate_brick_stairs" => Some(Self::deepslate_brick_stairs()), + "minecraft:deepslate_brick_slab" => Some(Self::deepslate_brick_slab()), + "minecraft:deepslate_brick_wall" => Some(Self::deepslate_brick_wall()), + "minecraft:chiseled_deepslate" => Some(Self::chiseled_deepslate()), + "minecraft:cracked_deepslate_bricks" => Some(Self::cracked_deepslate_bricks()), + "minecraft:cracked_deepslate_tiles" => Some(Self::cracked_deepslate_tiles()), + "minecraft:infested_deepslate" => Some(Self::infested_deepslate()), + "minecraft:smooth_basalt" => Some(Self::smooth_basalt()), + "minecraft:raw_iron_block" => Some(Self::raw_iron_block()), + "minecraft:raw_copper_block" => Some(Self::raw_copper_block()), + "minecraft:raw_gold_block" => Some(Self::raw_gold_block()), + "minecraft:potted_azalea_bush" => Some(Self::potted_azalea_bush()), + "minecraft:potted_flowering_azalea_bush" => Some(Self::potted_flowering_azalea_bush()), _ => None, } } diff --git a/feather/blocks/src/generated/mod.rs b/libcraft/blocks/src/generated/mod.rs similarity index 100% rename from feather/blocks/src/generated/mod.rs rename to libcraft/blocks/src/generated/mod.rs diff --git a/feather/blocks/src/generated/properties.rs b/libcraft/blocks/src/generated/properties.rs similarity index 83% rename from feather/blocks/src/generated/properties.rs rename to libcraft/blocks/src/generated/properties.rs index 2f3838a73..5852778f7 100644 --- a/feather/blocks/src/generated/properties.rs +++ b/libcraft/blocks/src/generated/properties.rs @@ -1,4 +1,5 @@ -use crate::{BlockId, BlockKind}; +// This file is @generated. Please do not edit. +use crate::*; impl BlockId { #[doc = "Determines whether or not a block has the `age_0_1` property."] pub fn has_age_0_1(self) -> bool { @@ -24,7 +25,10 @@ impl BlockId { #[doc = "Determines whether or not a block has the `age_0_25` property."] pub fn has_age_0_25(self) -> bool { match self.kind() { - BlockKind::Kelp | BlockKind::WeepingVines | BlockKind::TwistingVines => true, + BlockKind::Kelp + | BlockKind::WeepingVines + | BlockKind::TwistingVines + | BlockKind::CaveVines => true, _ => false, } } @@ -111,7 +115,9 @@ impl BlockId { | BlockKind::CrimsonStem | BlockKind::StrippedCrimsonStem | BlockKind::CrimsonHyphae - | BlockKind::StrippedCrimsonHyphae => true, + | BlockKind::StrippedCrimsonHyphae + | BlockKind::Deepslate + | BlockKind::InfestedDeepslate => true, _ => false, } } @@ -122,6 +128,13 @@ impl BlockId { _ => false, } } + #[doc = "Determines whether or not a block has the `berries` property."] + pub fn has_berries(self) -> bool { + match self.kind() { + BlockKind::CaveVines | BlockKind::CaveVinesPlant => true, + _ => false, + } + } #[doc = "Determines whether or not a block has the `bites` property."] pub fn has_bites(self) -> bool { match self.kind() { @@ -136,10 +149,26 @@ impl BlockId { _ => false, } } - #[doc = "Determines whether or not a block has the `cauldron_level` property."] - pub fn has_cauldron_level(self) -> bool { + #[doc = "Determines whether or not a block has the `candles` property."] + pub fn has_candles(self) -> bool { match self.kind() { - BlockKind::Cauldron => true, + BlockKind::Candle + | BlockKind::WhiteCandle + | BlockKind::OrangeCandle + | BlockKind::MagentaCandle + | BlockKind::LightBlueCandle + | BlockKind::YellowCandle + | BlockKind::LimeCandle + | BlockKind::PinkCandle + | BlockKind::GrayCandle + | BlockKind::LightGrayCandle + | BlockKind::CyanCandle + | BlockKind::PurpleCandle + | BlockKind::BlueCandle + | BlockKind::BrownCandle + | BlockKind::GreenCandle + | BlockKind::RedCandle + | BlockKind::BlackCandle => true, _ => false, } } @@ -202,7 +231,9 @@ impl BlockId { | BlockKind::BirchLeaves | BlockKind::JungleLeaves | BlockKind::AcaciaLeaves - | BlockKind::DarkOakLeaves => true, + | BlockKind::DarkOakLeaves + | BlockKind::AzaleaLeaves + | BlockKind::FloweringAzaleaLeaves => true, _ => false, } } @@ -212,6 +243,7 @@ impl BlockId { BlockKind::BrownMushroomBlock | BlockKind::RedMushroomBlock | BlockKind::MushroomStem + | BlockKind::GlowLichen | BlockKind::ChorusPlant => true, _ => false, } @@ -234,6 +266,7 @@ impl BlockId { | BlockKind::IronBars | BlockKind::GlassPane | BlockKind::Vine + | BlockKind::GlowLichen | BlockKind::NetherBrickFence | BlockKind::Tripwire | BlockKind::WhiteStainedGlassPane @@ -282,7 +315,11 @@ impl BlockId { | BlockKind::DioriteWall | BlockKind::BlackstoneWall | BlockKind::PolishedBlackstoneBrickWall - | BlockKind::PolishedBlackstoneWall => true, + | BlockKind::PolishedBlackstoneWall + | BlockKind::CobbledDeepslateWall + | BlockKind::PolishedDeepslateWall + | BlockKind::DeepslateTileWall + | BlockKind::DeepslateBrickWall => true, _ => false, } } @@ -517,7 +554,22 @@ impl BlockId { | BlockKind::BlackstoneStairs | BlockKind::PolishedBlackstoneBrickStairs | BlockKind::PolishedBlackstoneStairs - | BlockKind::PolishedBlackstoneButton => true, + | BlockKind::PolishedBlackstoneButton + | BlockKind::OxidizedCutCopperStairs + | BlockKind::WeatheredCutCopperStairs + | BlockKind::ExposedCutCopperStairs + | BlockKind::CutCopperStairs + | BlockKind::WaxedOxidizedCutCopperStairs + | BlockKind::WaxedWeatheredCutCopperStairs + | BlockKind::WaxedExposedCutCopperStairs + | BlockKind::WaxedCutCopperStairs + | BlockKind::BigDripleaf + | BlockKind::BigDripleafStem + | BlockKind::SmallDripleaf + | BlockKind::CobbledDeepslateStairs + | BlockKind::PolishedDeepslateStairs + | BlockKind::DeepslateTileStairs + | BlockKind::DeepslateBrickStairs => true, _ => false, } } @@ -559,7 +611,12 @@ impl BlockId { | BlockKind::GreenShulkerBox | BlockKind::RedShulkerBox | BlockKind::BlackShulkerBox - | BlockKind::Barrel => true, + | BlockKind::Barrel + | BlockKind::AmethystCluster + | BlockKind::LargeAmethystBud + | BlockKind::MediumAmethystBud + | BlockKind::SmallAmethystBud + | BlockKind::LightningRod => true, _ => false, } } @@ -610,7 +667,19 @@ impl BlockId { | BlockKind::WarpedStairs | BlockKind::BlackstoneStairs | BlockKind::PolishedBlackstoneBrickStairs - | BlockKind::PolishedBlackstoneStairs => true, + | BlockKind::PolishedBlackstoneStairs + | BlockKind::OxidizedCutCopperStairs + | BlockKind::WeatheredCutCopperStairs + | BlockKind::ExposedCutCopperStairs + | BlockKind::CutCopperStairs + | BlockKind::WaxedOxidizedCutCopperStairs + | BlockKind::WaxedWeatheredCutCopperStairs + | BlockKind::WaxedExposedCutCopperStairs + | BlockKind::WaxedCutCopperStairs + | BlockKind::CobbledDeepslateStairs + | BlockKind::PolishedDeepslateStairs + | BlockKind::DeepslateTileStairs + | BlockKind::DeepslateBrickStairs => true, _ => false, } } @@ -632,7 +701,8 @@ impl BlockId { | BlockKind::AcaciaDoor | BlockKind::DarkOakDoor | BlockKind::CrimsonDoor - | BlockKind::WarpedDoor => true, + | BlockKind::WarpedDoor + | BlockKind::SmallDripleaf => true, _ => false, } } @@ -756,18 +826,60 @@ impl BlockId { _ => false, } } + #[doc = "Determines whether or not a block has the `level_1_3` property."] + pub fn has_level_1_3(self) -> bool { + match self.kind() { + BlockKind::WaterCauldron | BlockKind::PowderSnowCauldron => true, + _ => false, + } + } #[doc = "Determines whether or not a block has the `lit` property."] pub fn has_lit(self) -> bool { match self.kind() { BlockKind::Furnace | BlockKind::RedstoneOre + | BlockKind::DeepslateRedstoneOre | BlockKind::RedstoneTorch | BlockKind::RedstoneWallTorch | BlockKind::RedstoneLamp | BlockKind::Smoker | BlockKind::BlastFurnace | BlockKind::Campfire - | BlockKind::SoulCampfire => true, + | BlockKind::SoulCampfire + | BlockKind::Candle + | BlockKind::WhiteCandle + | BlockKind::OrangeCandle + | BlockKind::MagentaCandle + | BlockKind::LightBlueCandle + | BlockKind::YellowCandle + | BlockKind::LimeCandle + | BlockKind::PinkCandle + | BlockKind::GrayCandle + | BlockKind::LightGrayCandle + | BlockKind::CyanCandle + | BlockKind::PurpleCandle + | BlockKind::BlueCandle + | BlockKind::BrownCandle + | BlockKind::GreenCandle + | BlockKind::RedCandle + | BlockKind::BlackCandle + | BlockKind::CandleCake + | BlockKind::WhiteCandleCake + | BlockKind::OrangeCandleCake + | BlockKind::MagentaCandleCake + | BlockKind::LightBlueCandleCake + | BlockKind::YellowCandleCake + | BlockKind::LimeCandleCake + | BlockKind::PinkCandleCake + | BlockKind::GrayCandleCake + | BlockKind::LightGrayCandleCake + | BlockKind::CyanCandleCake + | BlockKind::PurpleCandleCake + | BlockKind::BlueCandleCake + | BlockKind::BrownCandleCake + | BlockKind::GreenCandleCake + | BlockKind::RedCandleCake + | BlockKind::BlackCandleCake => true, _ => false, } } @@ -796,6 +908,7 @@ impl BlockId { | BlockKind::IronBars | BlockKind::GlassPane | BlockKind::Vine + | BlockKind::GlowLichen | BlockKind::NetherBrickFence | BlockKind::Tripwire | BlockKind::WhiteStainedGlassPane @@ -844,7 +957,11 @@ impl BlockId { | BlockKind::DioriteWall | BlockKind::BlackstoneWall | BlockKind::PolishedBlackstoneBrickWall - | BlockKind::PolishedBlackstoneWall => true, + | BlockKind::PolishedBlackstoneWall + | BlockKind::CobbledDeepslateWall + | BlockKind::PolishedDeepslateWall + | BlockKind::DeepslateTileWall + | BlockKind::DeepslateBrickWall => true, _ => false, } } @@ -954,7 +1071,9 @@ impl BlockId { | BlockKind::BirchLeaves | BlockKind::JungleLeaves | BlockKind::AcaciaLeaves - | BlockKind::DarkOakLeaves => true, + | BlockKind::DarkOakLeaves + | BlockKind::AzaleaLeaves + | BlockKind::FloweringAzaleaLeaves => true, _ => false, } } @@ -979,7 +1098,8 @@ impl BlockId { | BlockKind::LightWeightedPressurePlate | BlockKind::HeavyWeightedPressurePlate | BlockKind::DaylightDetector - | BlockKind::Target => true, + | BlockKind::Target + | BlockKind::SculkSensor => true, _ => false, } } @@ -1043,7 +1163,8 @@ impl BlockId { | BlockKind::CrimsonDoor | BlockKind::WarpedDoor | BlockKind::PolishedBlackstonePressurePlate - | BlockKind::PolishedBlackstoneButton => true, + | BlockKind::PolishedBlackstoneButton + | BlockKind::LightningRod => true, _ => false, } } @@ -1097,6 +1218,13 @@ impl BlockId { _ => false, } } + #[doc = "Determines whether or not a block has the `sculk_sensor_phase` property."] + pub fn has_sculk_sensor_phase(self) -> bool { + match self.kind() { + BlockKind::SculkSensor => true, + _ => false, + } + } #[doc = "Determines whether or not a block has the `short` property."] pub fn has_short(self) -> bool { match self.kind() { @@ -1153,7 +1281,19 @@ impl BlockId { | BlockKind::WarpedSlab | BlockKind::BlackstoneSlab | BlockKind::PolishedBlackstoneBrickSlab - | BlockKind::PolishedBlackstoneSlab => true, + | BlockKind::PolishedBlackstoneSlab + | BlockKind::OxidizedCutCopperSlab + | BlockKind::WeatheredCutCopperSlab + | BlockKind::ExposedCutCopperSlab + | BlockKind::CutCopperSlab + | BlockKind::WaxedOxidizedCutCopperSlab + | BlockKind::WaxedWeatheredCutCopperSlab + | BlockKind::WaxedExposedCutCopperSlab + | BlockKind::WaxedCutCopperSlab + | BlockKind::CobbledDeepslateSlab + | BlockKind::PolishedDeepslateSlab + | BlockKind::DeepslateTileSlab + | BlockKind::DeepslateBrickSlab => true, _ => false, } } @@ -1175,6 +1315,7 @@ impl BlockId { | BlockKind::IronBars | BlockKind::GlassPane | BlockKind::Vine + | BlockKind::GlowLichen | BlockKind::NetherBrickFence | BlockKind::Tripwire | BlockKind::WhiteStainedGlassPane @@ -1223,7 +1364,11 @@ impl BlockId { | BlockKind::DioriteWall | BlockKind::BlackstoneWall | BlockKind::PolishedBlackstoneBrickWall - | BlockKind::PolishedBlackstoneWall => true, + | BlockKind::PolishedBlackstoneWall + | BlockKind::CobbledDeepslateWall + | BlockKind::PolishedDeepslateWall + | BlockKind::DeepslateTileWall + | BlockKind::DeepslateBrickWall => true, _ => false, } } @@ -1285,7 +1430,19 @@ impl BlockId { | BlockKind::WarpedStairs | BlockKind::BlackstoneStairs | BlockKind::PolishedBlackstoneBrickStairs - | BlockKind::PolishedBlackstoneStairs => true, + | BlockKind::PolishedBlackstoneStairs + | BlockKind::OxidizedCutCopperStairs + | BlockKind::WeatheredCutCopperStairs + | BlockKind::ExposedCutCopperStairs + | BlockKind::CutCopperStairs + | BlockKind::WaxedOxidizedCutCopperStairs + | BlockKind::WaxedWeatheredCutCopperStairs + | BlockKind::WaxedExposedCutCopperStairs + | BlockKind::WaxedCutCopperStairs + | BlockKind::CobbledDeepslateStairs + | BlockKind::PolishedDeepslateStairs + | BlockKind::DeepslateTileStairs + | BlockKind::DeepslateBrickStairs => true, _ => false, } } @@ -1296,6 +1453,20 @@ impl BlockId { _ => false, } } + #[doc = "Determines whether or not a block has the `thickness` property."] + pub fn has_thickness(self) -> bool { + match self.kind() { + BlockKind::PointedDripstone => true, + _ => false, + } + } + #[doc = "Determines whether or not a block has the `tilt` property."] + pub fn has_tilt(self) -> bool { + match self.kind() { + BlockKind::BigDripleaf => true, + _ => false, + } + } #[doc = "Determines whether or not a block has the `triggered` property."] pub fn has_triggered(self) -> bool { match self.kind() { @@ -1318,6 +1489,7 @@ impl BlockId { | BlockKind::RedMushroomBlock | BlockKind::MushroomStem | BlockKind::Vine + | BlockKind::GlowLichen | BlockKind::CobblestoneWall | BlockKind::MossyCobblestoneWall | BlockKind::ChorusPlant @@ -1335,21 +1507,34 @@ impl BlockId { | BlockKind::DioriteWall | BlockKind::BlackstoneWall | BlockKind::PolishedBlackstoneBrickWall - | BlockKind::PolishedBlackstoneWall => true, + | BlockKind::PolishedBlackstoneWall + | BlockKind::CobbledDeepslateWall + | BlockKind::PolishedDeepslateWall + | BlockKind::DeepslateTileWall + | BlockKind::DeepslateBrickWall => true, + _ => false, + } + } + #[doc = "Determines whether or not a block has the `vertical_direction` property."] + pub fn has_vertical_direction(self) -> bool { + match self.kind() { + BlockKind::PointedDripstone => true, _ => false, } } #[doc = "Determines whether or not a block has the `water_level` property."] pub fn has_water_level(self) -> bool { match self.kind() { - BlockKind::Water | BlockKind::Lava => true, + BlockKind::Water | BlockKind::Lava | BlockKind::Light => true, _ => false, } } #[doc = "Determines whether or not a block has the `waterlogged` property."] pub fn has_waterlogged(self) -> bool { match self.kind() { - BlockKind::OakStairs + BlockKind::PoweredRail + | BlockKind::DetectorRail + | BlockKind::OakStairs | BlockKind::Chest | BlockKind::OakSign | BlockKind::SpruceSign @@ -1358,6 +1543,7 @@ impl BlockId { | BlockKind::JungleSign | BlockKind::DarkOakSign | BlockKind::Ladder + | BlockKind::Rail | BlockKind::CobblestoneStairs | BlockKind::OakWallSign | BlockKind::SpruceWallSign @@ -1375,6 +1561,7 @@ impl BlockId { | BlockKind::IronBars | BlockKind::Chain | BlockKind::GlassPane + | BlockKind::GlowLichen | BlockKind::BrickStairs | BlockKind::StoneBrickStairs | BlockKind::NetherBrickFence @@ -1388,6 +1575,7 @@ impl BlockId { | BlockKind::MossyCobblestoneWall | BlockKind::TrappedChest | BlockKind::QuartzStairs + | BlockKind::ActivatorRail | BlockKind::WhiteStainedGlassPane | BlockKind::OrangeStainedGlassPane | BlockKind::MagentaStainedGlassPane @@ -1406,6 +1594,7 @@ impl BlockId { | BlockKind::BlackStainedGlassPane | BlockKind::AcaciaStairs | BlockKind::DarkOakStairs + | BlockKind::Light | BlockKind::IronTrapdoor | BlockKind::PrismarineStairs | BlockKind::PrismarineBrickStairs @@ -1535,7 +1724,63 @@ impl BlockId { | BlockKind::PolishedBlackstoneBrickWall | BlockKind::PolishedBlackstoneStairs | BlockKind::PolishedBlackstoneSlab - | BlockKind::PolishedBlackstoneWall => true, + | BlockKind::PolishedBlackstoneWall + | BlockKind::Candle + | BlockKind::WhiteCandle + | BlockKind::OrangeCandle + | BlockKind::MagentaCandle + | BlockKind::LightBlueCandle + | BlockKind::YellowCandle + | BlockKind::LimeCandle + | BlockKind::PinkCandle + | BlockKind::GrayCandle + | BlockKind::LightGrayCandle + | BlockKind::CyanCandle + | BlockKind::PurpleCandle + | BlockKind::BlueCandle + | BlockKind::BrownCandle + | BlockKind::GreenCandle + | BlockKind::RedCandle + | BlockKind::BlackCandle + | BlockKind::AmethystCluster + | BlockKind::LargeAmethystBud + | BlockKind::MediumAmethystBud + | BlockKind::SmallAmethystBud + | BlockKind::SculkSensor + | BlockKind::OxidizedCutCopperStairs + | BlockKind::WeatheredCutCopperStairs + | BlockKind::ExposedCutCopperStairs + | BlockKind::CutCopperStairs + | BlockKind::OxidizedCutCopperSlab + | BlockKind::WeatheredCutCopperSlab + | BlockKind::ExposedCutCopperSlab + | BlockKind::CutCopperSlab + | BlockKind::WaxedOxidizedCutCopperStairs + | BlockKind::WaxedWeatheredCutCopperStairs + | BlockKind::WaxedExposedCutCopperStairs + | BlockKind::WaxedCutCopperStairs + | BlockKind::WaxedOxidizedCutCopperSlab + | BlockKind::WaxedWeatheredCutCopperSlab + | BlockKind::WaxedExposedCutCopperSlab + | BlockKind::WaxedCutCopperSlab + | BlockKind::LightningRod + | BlockKind::PointedDripstone + | BlockKind::BigDripleaf + | BlockKind::BigDripleafStem + | BlockKind::SmallDripleaf + | BlockKind::HangingRoots + | BlockKind::CobbledDeepslateStairs + | BlockKind::CobbledDeepslateSlab + | BlockKind::CobbledDeepslateWall + | BlockKind::PolishedDeepslateStairs + | BlockKind::PolishedDeepslateSlab + | BlockKind::PolishedDeepslateWall + | BlockKind::DeepslateTileStairs + | BlockKind::DeepslateTileSlab + | BlockKind::DeepslateTileWall + | BlockKind::DeepslateBrickStairs + | BlockKind::DeepslateBrickSlab + | BlockKind::DeepslateBrickWall => true, _ => false, } } @@ -1550,6 +1795,7 @@ impl BlockId { | BlockKind::IronBars | BlockKind::GlassPane | BlockKind::Vine + | BlockKind::GlowLichen | BlockKind::NetherBrickFence | BlockKind::Tripwire | BlockKind::WhiteStainedGlassPane @@ -1598,7 +1844,11 @@ impl BlockId { | BlockKind::DioriteWall | BlockKind::BlackstoneWall | BlockKind::PolishedBlackstoneBrickWall - | BlockKind::PolishedBlackstoneWall => true, + | BlockKind::PolishedBlackstoneWall + | BlockKind::CobbledDeepslateWall + | BlockKind::PolishedDeepslateWall + | BlockKind::DeepslateTileWall + | BlockKind::DeepslateBrickWall => true, _ => false, } } diff --git a/feather/blocks/src/generated/table.dat b/libcraft/blocks/src/generated/table.dat similarity index 73% rename from feather/blocks/src/generated/table.dat rename to libcraft/blocks/src/generated/table.dat index 9033f810e8fa9fe1aeef5536cadaf705b6a06b78..9f0a65dedd8cda32e4690bd96cfee0f10972a257 100644 GIT binary patch delta 3320 zcmZu!QEZgQ5%%n^?YrY-|5qLA6;5asTtroxp1=W;`r!l?b&Ve`snsIaQZET=qsVog z79|$Cii>MeH?mS6hrG}tatI4UVx|Aj8Lx%>;2_lS5S3GfDz~yCOGU&FR^#@eGRY-$ zX7~TkXSJYzZ+B*PcXsBRZ`Tj*JL{ju*$CIq--iE$%M3z>EEe6`yVSV?l;g z`ZyQmwU%nglT|Rfmqa<4Tx|B_njIeu7b{PP${Q_faJBL@c(Mziz4+$iKN#!%qMU!H z!iy^h;$`$qOKKYClgl8Osq?mfblhNKusCqF6eq!|hR)eU+BcS6*a)iIh8DJ%Rh0g$uFEDiar>a%v#QZ~+?3tI{vHP(!D9!jm~rm7T&l z*SctaZ?;YZ0_h88nO!0C`e9skI8dkkc~Rp>H`j}=v7RP05WXWXZ}Vg;Q;V|@QnFQ? zH+DbZ<=L|fLG;MqYmxHG#nHfDlDxdFAU{;IX8^Z2gE46z=gv#%MxF<0^fl?T`MtSch zjwaFYAO@}D+pyG#;IX5`GvI>GJOe2N)CrO~YJO{j%B1mZkZJiWTnc+q*mE5T>wCvx zmDR9%x>0X@A7(Jw26bNS9BA1O!x##G$_t3(F;3ynSTz5c6-&3;F-IZl2vzwN`Z(|g z%#e@8WO6o;y0u-pK_dn_r~=e_9)|E&XWs+|&b1R)GI+HCX_riN}nkCN}gnsO9NOwK`8Wv)SIK}JcHRH+#R!oYQ?(r}z~akcD%qqEmx z9izBR77kgYYQ0{vb=1sMUDIwhd>0gAv8vo6OW8^($dejtb+plw1E|cgVKgM<|23k9 z?y!)~{FHZMnHriS`JWKZIo8F^de7Ao{)$aF3Q#+bHI=jkM*_Lab4QZIs?3uA4Ca96$V-&*ILAW#rLKl_t`nwZ?S=3ju$%y zy1Jj;-Gu94BbFT%ce2@>rimNw_2hV%f?zI$deW@Y34*=9qr}hHcn!8k5ZpVFa7TZ6 zmtB!|y|>up5Idz@CQcS))y9EtlYkrB$jgvU53^37V5e374iic~;hjo;$u}@J#;-mM znGLFc`JA(3BH);)t*W$%*CsI|#X> zG>v|IbcH=YLg(R+59{g|K52>+-Y@&96Zcr1ud7H{U zVo4J??Y_u*5g&)qN#tzO$}Ng1R8W2&g|*wnJ2yG*Cg_O>Ke6d9o-qAYzQokJ3%m4= z9sD_@7hxU*dhZV24v;N>5I$hRehe_-oy`fXcKp29b{g-c?Nchl1!g`8y<|d1OVAf zYyCCOP5DgdPI zBxv^4ZQpF_nF^{98`SwVKHmtE@c4;Of(T^)E%;GA`AHHd)ht4v3O7pi*-NaDBSnv@ ze2x{3!;tFzjK@{9ig8O-vFAL-SJ48&XmK}YGV_Rqrn6NJ${A*R3sPDpUHt-0(_C09 z?N0INCQD>2wUnOl6GC->Fm&5P`#R)?qf%c`#rkw2ExRmEkwd;o)NYPjBJblayPFz# z1N~$8CZX^Dj0>@Em?ZUK#9l-4!)C!QIPn>e78g#VuYRNwNDCRA4v94WF@jImZKCcT xn?y{-#WGQ~d7>9n1ABG<4lxQhTamNrU0+-s3O>q}7aL?ot}9c#3!ivh?7tp~Sv3Fv delta 2419 zcmZ8jQEZe&5N3AwFL&35+=W6e<|G?a%}E;k#o7>Z4}YLR9%^%v##CwSfd~zddVxMP z+StRi5wL;&Ty+Vl<{pUfP|ckOY)vlBX`0Z7f(5EpsYw%)hKH&RX|#sgIJ^7b9r&{U z%-rtm%s2DR-qN47Gv5cvBa#b^`(+lOfoNqnA%wf3FNO1nvV1hO>eJ@!EZ@(I>$SY* zOSix5%O_u2G)Fct5&Q|5DEe3;1Sccd56 zhuRkNhu)|&_v~U~{$F&tcz9G9nCZu&zGM*)j&kN z-kOrQWI&0w5+_JHbEYnzITKMwa-pqMPIr(=lUF0nher!aR_?n3GIfLWn|)9HKdl_k zs&LiDv(;kcH|W&<_K|#IVOA}ZRoc*KnYdHSW5)0%Qvml;Xf#+5p!~ zBzu^Mzk-(H({QzvF2=L+BItPB&_j`Egs@CC!h?XmXPl}Nc8*VIK_B%1z3o>y)|vY3 zA_B82s-+;3Z-XtC4nSC`j!L&3p*jM!BJ~bLMdAoVa(oaZnvR=L4>Gyq1k717+ymDP zG_MoMKY$Ux4kO@~EDaCLU3)Cq{27dzyx#+Xc}L{X6=*jhKZ8m36O6QxOqn8oP11=4 z8^K!!6qpR&gsdeerl8YYwH;*p9f*OLA7c@XnJCuP1+415DuVn2e31p~v1d4X*~cYi^9+G&Z%`QKrJ$l?;TQq-f;SuWM6g^1)D>~ML| z`({;LyOqK|Nf9OzYYiA|?z=l5}dhzSJ&R ztRuCWT|O`3&(r!GPf;%jjz;m0a2uuPdYDP3ANwN6?A6}x@alw zacGVYn~H8`sypV)mNlZ3Wz&RMOJs~!%d zAJUQhfth%9#vIInA#Iz`zi$J%_cECy-K~Lw}V)^ zMZ+RPX;ft1rL{6~pBy)UAn+ ztf*S*U2e?Pd{Z7LxJ)EAmRUN3B@62S&mBib9-szhl{QNs;Ar(&&0s=hlk39iw46-NL3oA_Xd4a(X|*F6lhLDqWI1!gQCop?$hw zInMP6_g-ZjMezZqN0IvGcpZqLL5BAZFy!U{N~rpTeU9Njshd z8IhW9BHgN8;uRkD6M+Wbjd?bz+R+VlNo=?=E61ly4Kec)m1~7VEG`l!S>)3ytJSnE zPQPx2SkmPqx9kU{kUOK%ATlA# z#_eIHIT9CqA4{CN3=&(lTuAk|LngU3W1(c{hx+iD!tu$~f~Bdq%>OH-63Qd~{{Sjy BTK)h4 diff --git a/feather/blocks/src/generated/table.rs b/libcraft/blocks/src/generated/table.rs similarity index 83% rename from feather/blocks/src/generated/table.rs rename to libcraft/blocks/src/generated/table.rs index ea078a60b..6800fef5a 100644 --- a/feather/blocks/src/generated/table.rs +++ b/libcraft/blocks/src/generated/table.rs @@ -1,4 +1,5 @@ -use crate::BlockKind; +// This file is @generated. Please do not edit. +use crate::*; use serde::Deserialize; use std::convert::TryFrom; use std::str::FromStr; @@ -15,9 +16,10 @@ pub struct BlockTable { attachment: Vec<(u16, u16)>, axis_xyz: Vec<(u16, u16)>, axis_xz: Vec<(u16, u16)>, + berries: Vec<(u16, u16)>, bites: Vec<(u16, u16)>, bottom: Vec<(u16, u16)>, - cauldron_level: Vec<(u16, u16)>, + candles: Vec<(u16, u16)>, charges: Vec<(u16, u16)>, chest_kind: Vec<(u16, u16)>, comparator_mode: Vec<(u16, u16)>, @@ -56,6 +58,7 @@ pub struct BlockTable { layers: Vec<(u16, u16)>, leaves: Vec<(u16, u16)>, level_0_8: Vec<(u16, u16)>, + level_1_3: Vec<(u16, u16)>, lit: Vec<(u16, u16)>, locked: Vec<(u16, u16)>, moisture: Vec<(u16, u16)>, @@ -75,6 +78,7 @@ pub struct BlockTable { powered_rail_shape: Vec<(u16, u16)>, rail_shape: Vec<(u16, u16)>, rotation: Vec<(u16, u16)>, + sculk_sensor_phase: Vec<(u16, u16)>, short: Vec<(u16, u16)>, signal_fire: Vec<(u16, u16)>, slab_kind: Vec<(u16, u16)>, @@ -85,9 +89,12 @@ pub struct BlockTable { stage: Vec<(u16, u16)>, stairs_shape: Vec<(u16, u16)>, structure_block_mode: Vec<(u16, u16)>, + thickness: Vec<(u16, u16)>, + tilt: Vec<(u16, u16)>, triggered: Vec<(u16, u16)>, unstable: Vec<(u16, u16)>, up: Vec<(u16, u16)>, + vertical_direction: Vec<(u16, u16)>, water_level: Vec<(u16, u16)>, waterlogged: Vec<(u16, u16)>, west_connected: Vec<(u16, u16)>, @@ -101,7 +108,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `age_0_1` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -110,7 +117,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -120,7 +127,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `age_0_15` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -129,7 +136,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -139,7 +146,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `age_0_2` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -148,7 +155,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -158,7 +165,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `age_0_25` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -167,7 +174,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -177,7 +184,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `age_0_3` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -186,7 +193,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -196,7 +203,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `age_0_5` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -205,7 +212,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -215,7 +222,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `age_0_7` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -224,7 +231,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -234,7 +241,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `attached` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -243,7 +250,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -253,7 +260,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(Attachment::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `attachment` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -262,7 +269,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -272,7 +279,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(AxisXyz::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `axis_xyz` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -281,7 +288,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -291,7 +298,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(AxisXz::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `axis_xz` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -300,7 +307,26 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; + let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; + Some(new as u16) + } + #[doc = "Retrieves the `berries` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] + pub fn berries(&self, kind: BlockKind, state: u16) -> Option { + let (offset_coefficient, stride) = self.berries[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let x = n_dimensional_index(state, offset_coefficient, stride); + Some(if x == 0 { false } else { true }) + } + #[doc = "Updates the state value for the given block kind such that its `berries` value is updated. Returns the new state,\n or `None` if the block does not have this property."] + pub fn set_berries(&self, kind: BlockKind, state: u16, value: bool) -> Option { + let (offset_coefficient, stride) = self.berries[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -310,7 +336,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `bites` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -319,7 +345,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -329,7 +355,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `bottom` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -338,27 +364,27 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } - #[doc = "Retrieves the `cauldron_level` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] - pub fn cauldron_level(&self, kind: BlockKind, state: u16) -> Option { - let (offset_coefficient, stride) = self.cauldron_level[kind as u16 as usize]; + #[doc = "Retrieves the `candles` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] + pub fn candles(&self, kind: BlockKind, state: u16) -> Option { + let (offset_coefficient, stride) = self.candles[kind as u16 as usize]; if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); - Some({ x as i32 + 0i32 }) + let x = n_dimensional_index(state, offset_coefficient, stride); + Some({ x as i32 + 1i32 }) } - #[doc = "Updates the state value for the given block kind such that its `cauldron_level` value is updated. Returns the new state,\n or `None` if the block does not have this property."] - pub fn set_cauldron_level(&self, kind: BlockKind, state: u16, value: i32) -> Option { - let (offset_coefficient, stride) = self.cauldron_level[kind as u16 as usize]; + #[doc = "Updates the state value for the given block kind such that its `candles` value is updated. Returns the new state,\n or `None` if the block does not have this property."] + pub fn set_candles(&self, kind: BlockKind, state: u16, value: i32) -> Option { + let (offset_coefficient, stride) = self.candles[kind as u16 as usize]; if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; - let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; + let new = ({ value as u16 - 1u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } #[doc = "Retrieves the `charges` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] @@ -367,7 +393,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `charges` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -376,7 +402,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -386,7 +412,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(ChestKind::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `chest_kind` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -395,7 +421,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -405,7 +431,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(ComparatorMode::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `comparator_mode` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -419,7 +445,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -429,7 +455,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `conditional` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -438,7 +464,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -448,7 +474,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 1i32 }) } #[doc = "Updates the state value for the given block kind such that its `delay` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -457,7 +483,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 1u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -467,7 +493,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `disarmed` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -476,7 +502,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -486,7 +512,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `distance_0_7` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -495,7 +521,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -505,7 +531,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 1i32 }) } #[doc = "Updates the state value for the given block kind such that its `distance_1_7` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -514,7 +540,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 1u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -524,7 +550,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `down` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -533,7 +559,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -543,7 +569,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `drag` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -552,7 +578,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -562,7 +588,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `east_connected` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -571,7 +597,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -581,7 +607,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(EastNlt::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `east_nlt` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -590,7 +616,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -600,7 +626,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(EastWire::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `east_wire` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -609,7 +635,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -619,7 +645,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 1i32 }) } #[doc = "Updates the state value for the given block kind such that its `eggs` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -628,7 +654,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 1u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -638,7 +664,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `enabled` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -647,7 +673,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -657,7 +683,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `extended` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -666,7 +692,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -676,7 +702,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `eye` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -685,7 +711,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -695,7 +721,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(Face::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `face` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -704,7 +730,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -714,7 +740,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(FacingCardinal::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `facing_cardinal` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -728,7 +754,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -742,7 +768,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(FacingCardinalAndDown::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `facing_cardinal_and_down` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -756,7 +782,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -766,7 +792,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(FacingCubic::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `facing_cubic` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -775,7 +801,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -785,7 +811,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(HalfTopBottom::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `half_top_bottom` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -799,7 +825,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -809,7 +835,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(HalfUpperLower::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `half_upper_lower` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -823,7 +849,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -833,7 +859,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `hanging` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -842,7 +868,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -852,7 +878,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `has_book` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -861,7 +887,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -871,7 +897,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `has_bottle_0` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -880,7 +906,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -890,7 +916,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `has_bottle_1` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -899,7 +925,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -909,7 +935,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `has_bottle_2` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -918,7 +944,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -928,7 +954,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `has_record` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -937,7 +963,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -947,7 +973,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `hatch` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -956,7 +982,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -966,7 +992,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(Hinge::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `hinge` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -975,7 +1001,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -985,7 +1011,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `honey_level` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -994,7 +1020,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1004,7 +1030,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `in_wall` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1013,7 +1039,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1023,7 +1049,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(Instrument::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `instrument` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1032,7 +1058,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1042,7 +1068,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `inverted` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1051,7 +1077,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1061,7 +1087,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 1i32 }) } #[doc = "Updates the state value for the given block kind such that its `layers` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1070,7 +1096,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 1u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1080,7 +1106,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(Leaves::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `leaves` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1089,7 +1115,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1099,7 +1125,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `level_0_8` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1108,17 +1134,36 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } + #[doc = "Retrieves the `level_1_3` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] + pub fn level_1_3(&self, kind: BlockKind, state: u16) -> Option { + let (offset_coefficient, stride) = self.level_1_3[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let x = n_dimensional_index(state, offset_coefficient, stride); + Some({ x as i32 + 1i32 }) + } + #[doc = "Updates the state value for the given block kind such that its `level_1_3` value is updated. Returns the new state,\n or `None` if the block does not have this property."] + pub fn set_level_1_3(&self, kind: BlockKind, state: u16, value: i32) -> Option { + let (offset_coefficient, stride) = self.level_1_3[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; + let new = ({ value as u16 - 1u16 } as i32 - old) * stride as i32 + state as i32; + Some(new as u16) + } #[doc = "Retrieves the `lit` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] pub fn lit(&self, kind: BlockKind, state: u16) -> Option { let (offset_coefficient, stride) = self.lit[kind as u16 as usize]; if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `lit` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1127,7 +1172,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1137,7 +1182,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `locked` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1146,7 +1191,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1156,7 +1201,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `moisture` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1165,7 +1210,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1175,7 +1220,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `north_connected` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1184,7 +1229,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1194,7 +1239,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(NorthNlt::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `north_nlt` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1203,7 +1248,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1213,7 +1258,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(NorthWire::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `north_wire` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1222,7 +1267,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1232,7 +1277,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `note` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1241,7 +1286,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1251,7 +1296,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `occupied` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1260,7 +1305,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1270,7 +1315,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `open` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1279,7 +1324,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1289,7 +1334,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(Orientation::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `orientation` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1298,7 +1343,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1308,7 +1353,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(Part::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `part` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1317,7 +1362,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1327,7 +1372,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `persistent` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1336,7 +1381,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1346,7 +1391,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 1i32 }) } #[doc = "Updates the state value for the given block kind such that its `pickles` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1355,7 +1400,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 1u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1365,7 +1410,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(PistonKind::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `piston_kind` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1374,7 +1419,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1384,7 +1429,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `power` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1393,7 +1438,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1403,7 +1448,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `powered` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1412,7 +1457,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1422,7 +1467,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(PoweredRailShape::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `powered_rail_shape` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1436,7 +1481,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1446,7 +1491,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(RailShape::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `rail_shape` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1455,7 +1500,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1465,7 +1510,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `rotation` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1474,17 +1519,41 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } + #[doc = "Retrieves the `sculk_sensor_phase` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] + pub fn sculk_sensor_phase(&self, kind: BlockKind, state: u16) -> Option { + let (offset_coefficient, stride) = self.sculk_sensor_phase[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let x = n_dimensional_index(state, offset_coefficient, stride); + Some(SculkSensorPhase::try_from(x).expect("invalid block state")) + } + #[doc = "Updates the state value for the given block kind such that its `sculk_sensor_phase` value is updated. Returns the new state,\n or `None` if the block does not have this property."] + pub fn set_sculk_sensor_phase( + &self, + kind: BlockKind, + state: u16, + value: SculkSensorPhase, + ) -> Option { + let (offset_coefficient, stride) = self.sculk_sensor_phase[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; + let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; + Some(new as u16) + } #[doc = "Retrieves the `short` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] pub fn short(&self, kind: BlockKind, state: u16) -> Option { let (offset_coefficient, stride) = self.short[kind as u16 as usize]; if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `short` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1493,7 +1562,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1503,7 +1572,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `signal_fire` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1512,7 +1581,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1522,7 +1591,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(SlabKind::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `slab_kind` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1531,7 +1600,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1541,7 +1610,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `snowy` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1550,7 +1619,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1560,7 +1629,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `south_connected` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1569,7 +1638,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1579,7 +1648,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(SouthNlt::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `south_nlt` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1588,7 +1657,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1598,7 +1667,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(SouthWire::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `south_wire` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1607,7 +1676,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1617,7 +1686,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `stage` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1626,7 +1695,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1636,7 +1705,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(StairsShape::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `stairs_shape` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1645,7 +1714,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1655,7 +1724,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(StructureBlockMode::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `structure_block_mode` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1669,7 +1738,45 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; + let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; + Some(new as u16) + } + #[doc = "Retrieves the `thickness` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] + pub fn thickness(&self, kind: BlockKind, state: u16) -> Option { + let (offset_coefficient, stride) = self.thickness[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let x = n_dimensional_index(state, offset_coefficient, stride); + Some(Thickness::try_from(x).expect("invalid block state")) + } + #[doc = "Updates the state value for the given block kind such that its `thickness` value is updated. Returns the new state,\n or `None` if the block does not have this property."] + pub fn set_thickness(&self, kind: BlockKind, state: u16, value: Thickness) -> Option { + let (offset_coefficient, stride) = self.thickness[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; + let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; + Some(new as u16) + } + #[doc = "Retrieves the `tilt` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] + pub fn tilt(&self, kind: BlockKind, state: u16) -> Option { + let (offset_coefficient, stride) = self.tilt[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let x = n_dimensional_index(state, offset_coefficient, stride); + Some(Tilt::try_from(x).expect("invalid block state")) + } + #[doc = "Updates the state value for the given block kind such that its `tilt` value is updated. Returns the new state,\n or `None` if the block does not have this property."] + pub fn set_tilt(&self, kind: BlockKind, state: u16, value: Tilt) -> Option { + let (offset_coefficient, stride) = self.tilt[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1679,7 +1786,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `triggered` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1688,7 +1795,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1698,7 +1805,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `unstable` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1707,7 +1814,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1717,7 +1824,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `up` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1726,7 +1833,31 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; + let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; + Some(new as u16) + } + #[doc = "Retrieves the `vertical_direction` value for the given block kind with the given state value.\n Returns the value of the property, or `None` if it does not exist."] + pub fn vertical_direction(&self, kind: BlockKind, state: u16) -> Option { + let (offset_coefficient, stride) = self.vertical_direction[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let x = n_dimensional_index(state, offset_coefficient, stride); + Some(VerticalDirection::try_from(x).expect("invalid block state")) + } + #[doc = "Updates the state value for the given block kind such that its `vertical_direction` value is updated. Returns the new state,\n or `None` if the block does not have this property."] + pub fn set_vertical_direction( + &self, + kind: BlockKind, + state: u16, + value: VerticalDirection, + ) -> Option { + let (offset_coefficient, stride) = self.vertical_direction[kind as u16 as usize]; + if offset_coefficient == 0 { + return None; + } + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1736,7 +1867,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some({ x as i32 + 0i32 }) } #[doc = "Updates the state value for the given block kind such that its `water_level` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1745,7 +1876,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 - 0u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1755,7 +1886,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `waterlogged` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1764,7 +1895,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1774,7 +1905,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(if x == 0 { false } else { true }) } #[doc = "Updates the state value for the given block kind such that its `west_connected` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1783,7 +1914,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1793,7 +1924,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(WestNlt::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `west_nlt` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1802,7 +1933,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -1812,7 +1943,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let x = crate::n_dimensional_index(state, offset_coefficient, stride); + let x = n_dimensional_index(state, offset_coefficient, stride); Some(WestWire::try_from(x).expect("invalid block state")) } #[doc = "Updates the state value for the given block kind such that its `west_wire` value is updated. Returns the new state,\n or `None` if the block does not have this property."] @@ -1821,7 +1952,7 @@ impl BlockTable { if offset_coefficient == 0 { return None; } - let old = crate::n_dimensional_index(state, offset_coefficient, stride) as i32; + let old = n_dimensional_index(state, offset_coefficient, stride) as i32; let new = ({ value as u16 } as i32 - old) * stride as i32 + state as i32; Some(new as u16) } @@ -2881,6 +3012,47 @@ impl RailShape { } #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] #[repr(u16)] +pub enum SculkSensorPhase { + Inactive, + Active, + Cooldown, +} +impl TryFrom for SculkSensorPhase { + type Error = anyhow::Error; + fn try_from(value: u16) -> anyhow::Result { + match value { + 0u16 => Ok(SculkSensorPhase::Inactive), + 1u16 => Ok(SculkSensorPhase::Active), + 2u16 => Ok(SculkSensorPhase::Cooldown), + x => Err(anyhow::anyhow!("invalid value {} for SculkSensorPhase", x)), + } + } +} +impl FromStr for SculkSensorPhase { + type Err = anyhow::Error; + fn from_str(s: &str) -> anyhow::Result { + match s { + "inactive" => Ok(SculkSensorPhase::Inactive), + "active" => Ok(SculkSensorPhase::Active), + "cooldown" => Ok(SculkSensorPhase::Cooldown), + _ => Err(anyhow::anyhow!( + "invalid value for {}", + stringify!(SculkSensorPhase) + )), + } + } +} +impl SculkSensorPhase { + pub fn as_str(self) -> &'static str { + match self { + SculkSensorPhase::Inactive => "inactive", + SculkSensorPhase::Active => "active", + SculkSensorPhase::Cooldown => "cooldown", + } + } +} +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] +#[repr(u16)] pub enum SlabKind { Top, Bottom, @@ -3101,6 +3273,134 @@ impl StructureBlockMode { } #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] #[repr(u16)] +pub enum Thickness { + TipMerge, + Tip, + Frustum, + Middle, + Base, +} +impl TryFrom for Thickness { + type Error = anyhow::Error; + fn try_from(value: u16) -> anyhow::Result { + match value { + 0u16 => Ok(Thickness::TipMerge), + 1u16 => Ok(Thickness::Tip), + 2u16 => Ok(Thickness::Frustum), + 3u16 => Ok(Thickness::Middle), + 4u16 => Ok(Thickness::Base), + x => Err(anyhow::anyhow!("invalid value {} for Thickness", x)), + } + } +} +impl FromStr for Thickness { + type Err = anyhow::Error; + fn from_str(s: &str) -> anyhow::Result { + match s { + "tip_merge" => Ok(Thickness::TipMerge), + "tip" => Ok(Thickness::Tip), + "frustum" => Ok(Thickness::Frustum), + "middle" => Ok(Thickness::Middle), + "base" => Ok(Thickness::Base), + _ => Err(anyhow::anyhow!( + "invalid value for {}", + stringify!(Thickness) + )), + } + } +} +impl Thickness { + pub fn as_str(self) -> &'static str { + match self { + Thickness::TipMerge => "tip_merge", + Thickness::Tip => "tip", + Thickness::Frustum => "frustum", + Thickness::Middle => "middle", + Thickness::Base => "base", + } + } +} +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] +#[repr(u16)] +pub enum Tilt { + None, + Unstable, + Partial, + Full, +} +impl TryFrom for Tilt { + type Error = anyhow::Error; + fn try_from(value: u16) -> anyhow::Result { + match value { + 0u16 => Ok(Tilt::None), + 1u16 => Ok(Tilt::Unstable), + 2u16 => Ok(Tilt::Partial), + 3u16 => Ok(Tilt::Full), + x => Err(anyhow::anyhow!("invalid value {} for Tilt", x)), + } + } +} +impl FromStr for Tilt { + type Err = anyhow::Error; + fn from_str(s: &str) -> anyhow::Result { + match s { + "none" => Ok(Tilt::None), + "unstable" => Ok(Tilt::Unstable), + "partial" => Ok(Tilt::Partial), + "full" => Ok(Tilt::Full), + _ => Err(anyhow::anyhow!("invalid value for {}", stringify!(Tilt))), + } + } +} +impl Tilt { + pub fn as_str(self) -> &'static str { + match self { + Tilt::None => "none", + Tilt::Unstable => "unstable", + Tilt::Partial => "partial", + Tilt::Full => "full", + } + } +} +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] +#[repr(u16)] +pub enum VerticalDirection { + Up, + Down, +} +impl TryFrom for VerticalDirection { + type Error = anyhow::Error; + fn try_from(value: u16) -> anyhow::Result { + match value { + 0u16 => Ok(VerticalDirection::Up), + 1u16 => Ok(VerticalDirection::Down), + x => Err(anyhow::anyhow!("invalid value {} for VerticalDirection", x)), + } + } +} +impl FromStr for VerticalDirection { + type Err = anyhow::Error; + fn from_str(s: &str) -> anyhow::Result { + match s { + "up" => Ok(VerticalDirection::Up), + "down" => Ok(VerticalDirection::Down), + _ => Err(anyhow::anyhow!( + "invalid value for {}", + stringify!(VerticalDirection) + )), + } + } +} +impl VerticalDirection { + pub fn as_str(self) -> &'static str { + match self { + VerticalDirection::Up => "up", + VerticalDirection::Down => "down", + } + } +} +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] +#[repr(u16)] pub enum WestNlt { None, Low, diff --git a/libcraft/blocks/src/generated/vanilla_ids.dat b/libcraft/blocks/src/generated/vanilla_ids.dat new file mode 100644 index 0000000000000000000000000000000000000000..95c095002c6d322a5f97c9d1697f240717d05420 GIT binary patch literal 47876 zcmX`zb9^1m*8uSK&e~RL+fHrUw(T}eZQHhO+qP|6@AG+o&D=kl@0pxAot>TCyOWzX z9!LKFh5ql$e}5(jg~Fh4C<2OvqM&F5`&W-a0BmKUIQV@5;bE%?B|*th3X}?^LFurf zftb)1VnaKK3+*93bby4=5fTF{CPL(Y$B-CFf+R(fA<2;xNJ=CXk{U^aq(#yp>5&Xb zMkEu=%Zy|}vLe}#>_`qICz1=vjpRY{BKeT~NC6}kDF`bUf+`GE1ga=hF{t8DC7?<| zm4Ygb{5zdU8Kf*y4o2mX3P?p5RYEEwRbW&VsfJXCQ4ORfQVT}4kvd3S7}Z1SBMo5G z5NU)ohEWrwDbfr^&5;&JOBl66S|e>>)D~%nw1-g#q$AP^MxBu^NLLtjL%Jh9VAK=o zh4h9|AEYnR4@UiwIAj2f;*o*KAQ%lsh9E;>Gz=MzjDXQdWE3(QMq`k%$T%2{M z5%J#|n2bz9rXo|2>Bux>CNcw=jm$#kB6E=W$UK;{5LtjMMiwDUktN7-WErv&S%IuZ zRv~MVH85vAvJTmZY(O?6n~<%@7GyiJ4cUq8Kz1X$V9s7-53(QGha5x>Acv7d$Wi17 zavV8^oJ3B*oYTlD;5uBhQeR$P45(@(Ov2yg}Y0?~sqk2jnyI3Fdr7z98R`Z^%#N2l5;F zh5SYSAn1R$2OP!z`|`gR0YySlP&5>PVo?5HUk+ta0p(E%6;TD1Q4Lj51Jz-s31vaq zXw1K*?xGIrqaGTf0UCowXks)GniNffCP$N@DbW;YYBUv^7EObuN7JDh(F|y2G!vQ? z&4Ok}v!OZB9B6Jd7n&E%gXTx`p|NNIv=CYlErJ$Ci=jo)5@>O>6j~B3gO*0ip=Hqu zXnC{}S`n>+Rz|C#RnZz~b+i^*6Rm^RM(d$<(FSOJv=Q16ZGtvNo1sn77HD&{71|PQ zgSJN7p>5F)XnV91+7a!7c1F9QUC|zBceEGU6YYccM*E?C(Kxg}8jlV@2cZMeA?RRq z7&;UkfeuGUp(D{T=xB5tIu@OPjz=e<6VWN?WON!j6`g@jM`xik(K+aBbRIevU4YI< z7oiK$CFo*w8M+i*fi6c^p)1if=xTHwx)$Alu17ba8__N3W^^0672SbuM|Yt+(LLyH zbRW7GJ%H{<51|LqBj{oD7vfgVRsp(oKZ=xOvEdKSHao<}dC7tt%|W%L?)6}^F8 zM{l7w(L3mE^d5Q_eSqFaAE6J?C+K7J8Tu4`fj&oHp)b)l=xg*H`WF3wzDGZyAJH%9 zXY?ET75#yJM}MI|(Ld;K6v6(Y7=~g5hGP^)VgREt7Gp3T<1i5uFd36D6;m)B(=Zb= zFdMTl7jrNl^RN&Luox`D5@U(5q*xLxIhG7diKW0&W2vyTSQ;!nmJZ8^Wxz6HnXs%_ z7A!lK4a?&(0c<~Z2s?-!!46}`u%p-s>^OD`JBgjaPGje=v)BdfJa!4Yh+V-hW7n{&*bVGD zb_=_S-N9~S_prOz1MEKb2z!V^b%ddx^clUSsdDx7Y{lJ@yIvh<(96 zW8bi^*bnSG_6z%o{lR`?2>utta1PJO!Q_Plcz&)8Ogxba+NQ1D+YrglEOG z;MwtPcuqVAo*U1F=f(5j`SE;sEM5RFgcrn%;DzyGcu~9rUK}rlm&D89rSWojS-b*X z9)^HVdU##D0bU<(gg3;S;EnNScvHLu-W+d*x5V4v zt?_nvTf76_9`A&A#Jk{~@osomya(PL?}hio`{2Ftet2Iz4)2f0;{)(P_&|IJJ{TW{ z55-5|!|_r0NPG-F8Xt#`#V6q7@k#hZd%I_(S{&{uqCTKgD0*&+%9IOZ*M~8h?ks#XsQh@lW_i{0sgW z|Av3Xf8gKoU-(b_5B?iRh`%^SpaenS1VxYpAZUUm7=kA_LL>x2CL}^76hbF7!XymB zCM?1w9Kt6&A|wJLhKPv7L?R+7k%UN2BqLH1DTvfWDk3eBhDcAOBQg>hh|EMLA}f)F z$WCMIsuMMcszf!ISDUCq)Ff&V^@#>VU7{Y*m}o*YBpMOTi55gtq8ZF< zO|&6e60L~#LotQz)CFT*c zi8;hVVi7T)SU@Z#mJy4IB`|L#v5HtutRU7B>xk9F8e$`{iC9l;Ahr_Qh|R?aNoM~P#^Vd4nPJ4u`(juR({v&1>#G;xNwNL(V$6Bmf9 z#5LkFaRuhxByJJci5tXS;vR9ExI;W79ufD62gFn28S$8S0`p!HuZZWw3*s&Dj(APH zAwCkHi1)+?;w$lu_)L6(c|VC?#CPHc@s~iz-^3pRCkYZIF_I<$Ns<(qunstqCmE6@ zB~m5@QY1A}Clyj9Ez%|p(u8>)>5~rWk`Wn024qMkA(N7c$i!p{G9{UeOb+wXkZH+O zWNI=4nUPFKrYEzIS;fWS)Xh~HYA&njmc(YQ?dowoUBAvB&(2> z$!cU(vIbe5tVPx&>yWj{gr~0dWCyY%*@^5-b|G7mt;p778?r6gj!bx>>k8EksykE< zsGelPUauF~8&;1e2aEfDA|YXOZFrClX2t#IO-APFmfb0oE$@rBFB=W$qD2* zaw0jNoI*|_r;?M&8RRr_COMs)L(U@SlC$C8HVo5P>Y}zLoI-d6i7qT7MBOY#NzoP0(;C7+Ow$w%Zv@&S3Dyhq+8?~u32TjWjh z26>&lMp~3f8I(?Glu9X-Oi7eT2^3Fp6iYD_plFJsNQ$6v3Zqa8q5hJ8$lv5I@+bL& z{7!x&b5Pl-Y*bb%3zeD5L}jEhQ0b|3R9Y$xm6}RLrKD0&$*E*iQYs0Rm`X&&P!SbU z0p(L3Dnu2e zVyOaDekvc8m&!xsrgBj^sqR!asw>rn>P&T_I#L~|_EbBnE!BoQII2I@kLpYHp?XujsGd|0YAdyc+DvVtHc}g?_0&3QEwzSP zO|7CMC`Gx=dZ7E>ah$ z^VB)&EOmxDO`W1nQYWb6)G_KPb%Z)h9ik3W2dMqjK58$uhuTf;qIOa{sO{7?>MQky z`b>SIK2jg3_tZP;E%k2%P16)j(gcmu7>&{h{g?Vf{ic3VKdB$o zcj_CJgU(K8qqEXk=*)B`IwPHdPEV(!)6!|^)O0F3C7ps!PA8+2(n;vVbRs&2j_8mM zXrK0Imv(5Iu1;5@tI}2I%5){VB3*$lPnV<1(q-tP7>3GXV` zpsv#u{@p8X(l_Ya^ey@>eTTkJ-=iPW59r7ABl;=*gnmvxqhHc5=-2cs`Yrv2eow!n zKhhuQ&-5qyEB%H3PJg3+(m&|m^e_4^{f9;Y0&su<5)gm}6kq@V9AJR}cpw20C_n}p zP=Nt-U;z_2zy=<0K>&OZfe<7DF(3&@43dGQAO%PcQh}5p;T<{+NDVT9j35Wd4)TG# zARR~xvVhDW7sv?;fczi>NDs1stRN4_4GMx-Ad~+)z(SxfC<2OtVxTxE0ZM{Wpfo50 z%7SvBJg5LFf=Zw=r~;~jYM?r(0cwI;pf;!j>VkTpK4<_Mf<~Y*XabsoW}rD}0a}7q zpfzX%+JbhVJ?H>Bf=-|_=mNTeZlF8p0eXU7pf~6P`htF-KZpYZKs*=-27$p~2p9^6 zf#F~T7zsv!(O?W13&w%*U;>y3CV|Od3YZF}f$3ldm!l-Cz&c3-*Ei-~c!X z4uQkq2sjFkf#cu=I0;UH)8Gs^3(kS_-~zY^E`iJ73b+ccf$QJ~xCw57+u#nk3+{pY z-~o6D9)ZW;33v*gf#=`_cnMyC*We9!3*LeE-~;#wK7r5R3-}7Yf$!i4_z8Z2-{24U z3lIinFa~D`hGZy)W&p!5EWUc zCNYzQNy;Q+k~1loluRlnHIs%(%cNt{GZ~nSOeQ8XlZDC3WMi^3IhdSGE+#jVhsn$2 zWAZZvm{_JDQ-~?d6k&=o#hBtu38o}diYd*MVahV)nDR^orXo{`smxSisxsA>>P!u$ zCR2;4&D3G)GWD4HOarDN(}-!zG+~-D&6ws)3#KL0ifPTXVcIh7nD$HurX$md>CALt zx-#9E?o1D+C)11R&GcdVGX0qTOdKHZq%-&CC{NE3=K+&g@`zGP{`F%pPVhvya)&9AFMIhnU065#}g! zj5*GnU`{fpnA6M|<}7oLInP{RE;5&x%ghz#Dszpw&fH*bGPju9%pK+~bC0>tJYXI& zkC?~I6Xq%NjCszyU|uq>nAgl3<}LG%dCz=cJ~E$}&&(I*EAx%{&ir70GQXJL%pc}2 zgRm%zu{cYxBulY03s{C_S&rpdffZSam05*VS&h|MgEd);wONOCS&#MEfDPG*jbRh9 ziPH`Wwr`im955BXKS!E z*;;IEwhmjDt;g198?X)8Mr>oY3EPxy#x`eLur1kEY-_d++m>y|wr4xA9obH7XSNI5 zmF>oMXM3~MAjJCYs6j%LTOW7%=+ zcyoyE>(=dg3xdF*_40lSc0#4cu+uuIux>~eMmyOLeS zu4dP;YuR<|dUgZ5k=?{@X1B0g*=_80b_ctY-No)^_pp1}ee8br0DF)<#2#jkut(Wr z>~Z!4dy+lHo@URmXW4V?dG-Q(k-fxTX0NbU*=y`|_6B>Cy~W;U@342-d+dGo0sD}B z#6D)9uus`%>~r=7`;vXdzGmOBZ`pV3d-enSk^RJeX1}ms*>CK3_6Pfu{l)%f|FC~q zghM%u!#RQ@If|n>z%d-laU9PHoXAO>%qg78X`Id(oXJ_7%{iRQd7RG$T*yUS43~&Y z%q8KHa>=;lTna8Fmx@cxrQyA3V<1}-C)iObAo;j(hsxa?dGE+?0Z%gyEC@^bmO z{9FMpmMh2=;tF#`xT0J!t~ghME6J7ON^@nnvRpZ?JXe9M$W`Jhb5*#iTs5vbSA(m` z)#7S%b-21*J+402fNRJ#;u>>JxTah)t~u9&Yst0ZT61lGq{=DEN(V8hnvgId-r-%|<9$BhLq6hT_(XhS zJ_(@4|QG zyYb!m9(+%}7vG!j!}sO;@%{NYegGfO599~&gZUx+P<|LcoFBoDKc8Q~FXR{Ti}@w|Qhph~oL|AOl z`8E7nejUG_-@tF=H}RYKE&Nt~8^4|3!SCdE@w@pw{9b+^zn?$AALI}5hxsG?QT`Zz zoIk;z@wfRq{9XPYf1iKAKja_r zkNGG3Q~nwMoPWW;gE!T;oc@xS>${9hgs zPyrKgfe=W65@-PkjKB(aBoYz} zNra?AG9kH;LP#m35>g9kgtS6BA-#}6$S7nIG7DLRtU@*+yO2Z3DdZAz3weaRLOvnC zP(X+k3JQgU!a@R1hi(3D3rrpejREfvPHif6vR+ zgz7>Kp{7tvs4dhH>caMVLVclu&`@Y3G!~i&O<{X;p_$N9Xd$!~S_y51HbTt5I_-sa zLPw#4&{^mtbQQV?-Gy#KPoamSAx;=5#0!IkLBddBh%j6jCX5tD z2&08ju+CUvj4)mpCrlJ32$O|L!c<|3FkP4?%oJt_vxQm0Tw#tdUzjH>6cz}Jg+;cRuUN|RQ6fOvtg-gO!;fiowxF*~bZV0!9 zTf$x8j&NVNCp;7$2#i@>qUF;_I6nluh#a?1xv5(ka>?aNoE4NrMN;|Ev^#RifhF6;yQ7oxIx@3ZW6bOTg2_+ zHgTu8L)JS-j(kBUdcw$JA760^M9{2HjF>0o__^1>II^1KnO~2i;NX0Nq*Y1l?8Y0_U^4 z)J^Is^^kf?y`;WUA2^@=rGC-?DNY(F#Y=;wLDEoZh%{UpCXJLvNTa1u(pYJXG+r7f zO_U}`lchS|zQP)<|n%k9DxedTE2SQQ9PJmbOS+rESu7X@|5^+9mCl_DFlBeeehmNc*Lj ze^=lG>ArMNx+~q0ZcDeMo6-&Gx^zvtDqWE-OP8dJ(go?fbWS=eosmvUr=*k83F)|W zOgbtZkq%3Tq=Rr251}4GJ%)NBCH$7rQ|X!X97Zpsm(nYk^;$~!S@0X_t@KWM55MyP zj{T$b31)qkzDQrCZ!rEY{g8f2za;wKvHh0*NPi_nMrBOK<%D%i%alyYgv`mT%*a5N zWKkAmUe;t)R%BVWWK%X|UG`*Gc4S+QwCr;$_3spOP$ z206W)PEIRlku%GgHRS4YHMy!>MQ$uNk{ikm z>3kH@U0a zMII=}%LC*%xxd^`?ko3^N6I7Q;qowfs60d-EDw?=$`j=A@;G^{JVqWZkAmZvDbJ9n z%hTkk@)UWpJV{tDArwtf6-AL1Nf8x6;gy8->nX0{D7IoLreY|%l0-?YBvN9ONC}ld@s%`6 zY9*DDQc0mCSCT17l`KkTC6kg-$)KcH(kW?`JW6gQmy%P-p=4LGDOr`mN+G475~~zY z@+@Mlu}YDp%hn&DMghcN@b;zQcDPQeCO0R8^`d zjg>}9L#2UIU#X|mRq80Ml~zhirG?U5X{Iz)nkb!>PD)3mgVJ7Ur?getD7}?lN>8PS z(p~AMbXB@21C@AXfD)(lSNbV^l|ITyWrQ+Z8Kw+XhA4xTLCQpBf-+tir;Js`D5I58 za2zw08On5Jnle?HqD)pMDGQYa%6w&>GFO?S%vNS8E0q<>a%GvaR9T`dRu(B6l?}>z zWu3BCS);60Rw+A`9m;lPo3d5eqHI<+DF>AU%6?^^vRB!o>{fOuCzTV*apjnDR5_v? zRt_l_l?%#w<(zU>Iis9bPALi3^ChUuP*nwUk;?Euj`yi>XD`B5Gl^kXlfU zRST&3)qHARHIJHG&86m4bEw(XY-(0Di<()@q-InzsOi;oYFagonp#bzrc_g?$<<_P zQZRrbDe7c(k~&eHppI9^sbkeK>S%S8I#L~> z4p)b%L)9VbV0Dl>P>ojysBvn4wV&Eo?W6Wqd#OFu9%^^Bo7z?FqIOn0sU6i0YJ0Vv z+E#6&wpLrIE!7rkbG4b;RBfU*RvW1e)dp&PwVoP-{O`3}-KFkScc|OdZR%Eai@I6e zq;6CRNS;x>{YOu2fg3%hhG-Qgw;CSY4zpR2Qi8)p_b%b&g8?tFu?#qwZJt zsRz{qu=YdsfqGxPr`}cXsJGQy>P_{AdR@JyURAHCm(@$^MfHMuUOlItRnMrW)l=$8 z^@Ms{J*FO2kEn;$Lu$hMe55A4yFON*s87{rFn+GSP+zLA)P$$V*XkSft@=)VuYOQJ zs-Ix{XZ4HvRsE)ZSAVEK)n9OgzUFDJ=4iHNX{Kgqx~6HWrf9MzX`&`*yvAv)#%MsJ zHA*8jLc=voLp4PEtNu}ct8xF1ewH>a_FXmMJ9t)JFc>!bD7dTBki9$I&;o7Pq9qIK3fX&to= zT6?XX)>dnywboi`EwvU}bFG=yRBNI&)*5LIwFX*!t)5m_tE1J{YH2mK8d`O&npRb- zqE*%^X%)2!T6wLUR#q#cmDWmWCAAV-ajlqER4bwt)(U9_wOFlymS4-K<<;_NxwTwc zPA!L)UCX9r)v{=rwM<$@ErXU`OQ)sP(rBr*R9Z?cg_c}PrX|&qXobG13zY;BdcQd^-d*OqBZwI$kOZIiZ9+n}x2)@f_CHQH)zm$p;e zp>5Z;X)I{trglfWt=-e^Y7eyg+9U0u_C$NEJ=30QFSO^{EA6HB zMtiNj)81+ywD;O4?W6WZ`>cJ_zG^?T@7gczr}jttts(kf4bxGb&~cs8Nge34&gzWL z>ztl2PEi+hS(kKGS9D$1bW=BUTeoyqcXVI(^iU7<7(LPx>xuNFdJ;Xko=i`vr_fXD zsr0mZ8a=(9PS2=k&@=0q^sIUoJ-ePw&#C9obL+YEym}rzzn)Kz)eGo_^n!X3y|7+P zFRGW&i|eKIl6o1vv|dgxt5?v=>y`A1dKJC0UQMs6*U+o$we*^L9lf@mup6qU*VPlQ zrut9~^n~*kr}x+U>3#J+dT+g#-c#?Pch|e=UG*+{XT6i&QSYF)*W2lB^)`BIy_Mcl zZ=pBWo9RvUCVFGNk=_u_N4!2jAEXb|hvRAll5u(RDFg%U7w}T)aU54^?CYSeStn-U!*V8m*|W2W%^Qmg}z*0rLWZ2=&SX0 z`dWR1zFyy?Z`8NwoAqt_R(*%QUEihe)c5GS^?mwY{eZq-KcpYjkLZW>WBO73gnnE< zrJvN#=%@8_`dK~UK5|~apkLH4!I`+MC)`19>$miq`VIZMeoeosUx68S^n`uDUHzVZ zAGSY$?GN=w`eWGs1Xg^hztUgpZ}g}7GyS>#0%p90dI!(b2mQUy|GSnx>Ywz_`WOAH z{!Ra`|ImNxzx3bwA2`>D@mI$T)F2GppbXLg25qngWAFxNh=yRuhGeLQV(5lun1*54 zhGn>hWB7(=ghpV*7?F|KNMs~6k{HR2WJXFOg^}7wWu!II80n34Mn)rpk=e*(WHquF z*^O*QP9ukr+sI|)HS!qwjeJI|QNSo<6f}w$g^glHQKN)W+$d#~G|CvIjdDg=BVoOj zhpJ#C%yK28qEW@DY*aI<8a0gSM#9dqk@)TndyL)2E@P*$!`NEMulI!yfZ!;AB@k&C*!N}#rSS~GkzLBjNisD{;w%)Dj+Grw8Tj5Q0Jh0LO65wo~i z%q(e^FiV@I%(7+~v%Fc(tY}s+E1Q+fs%90lx>?PvY1S}no3+fkW*xJ>S}Yl{JDZ)%u4WgryV=d`Y4$LCo4w4wW*@V^ z+0Ptc#+d`ncyq8h$Q)`8F^8MO;5bK`Bh1m}D08ei#vE^sGbfr8%*o~?bE-MToNi7t zXPPt2+2$;Bt~tk?Z_YCpnhVUu<|1>cxx`#ng`6o<{|T_dBi+!9y3pxC(P64Df6s(#yoGH zGcTGK%**B_^Qw8pyl!4I6YdiC%=_j8^P&03d~Dt@Z<@Ev+vXkfu9?<2&=c z`N4c`zA@jLFU*(bEAy%O%zSSCGJl(Y%#vDesHIzmWm<}*TAC$Vk|kT5#an_EVy&R;tio1) ztAG`2<+1Ww`K$_7MXQok)+%R}w@O*1tuj_|tAth3s$RC0dT2^hVnpNGZVO6%O zSXHeSR!ggu)zoTcHMbgBjjbkDeXD`h(CT7!wYpgytxi^FtDV)}>R`3D+E{I^IBS3v zZ}qkMS^ceER&T41)!pi0^|VG=qpdO4aBGA$(i&n7wT4*(twGjcYnnCPnqf`0rdU(0 z3D!hwk~P*EXN|WOS&OYD)_iM$wa}Vl&9&xPGp$+HY-^ph-r8WTw$@l{trgZvYn8Rs zT4pV`c3HcvJ=S(>hqcq%Vr{jySsSfQ)@JLNb=*2(9kz~GN38?aLFwzno6`eA*xzF1$a57tNPll9hmXT7%wo3tq#wJ{sF|5$(j`)7qe ztzXt}OSTnTwFO(WC7ZQ5o408j*o^JlfgRe8?b@Dg+LmqGnyuT0ozhNar?!*X$?X(& zVmpbQ)Q;>JJCU8R9<$on?Cf?XJF}g|PH$(hGumnFw01f>)-Grlvh&&b?E-dgJCB{$ z&SB@YbJ=C=vUWMUq+QA`Z5OkP+a>J6b`iU%UBj+v*RreH)$HnaCA+d+#V&7Guq)b4 z?51`zyP@64Zfw`H>)Q?N+IAhguHC`zXm_&P+U@N2b}PHJ-NtTix3F8m#>x8v*q_9T0GmpnwY|n(Zm+Oc+Dq)E_A+~+y~ti{ zZ?m`CJM7K&7JI9`!QN=h)-fthU588X|z4ktPr@hPGZJ)Ex+ZXK9 z_8I%EeZoFzpR$kI$L!m%6@Gl4(edeZ~Kq^*ZyJuw13%O?Qiz? z|2`}h9MNGM*5Mq=p&j7h4&jiF?KqC>7>?;!j_PQR?nsX8C{9u*nUmZ}PT*v8GC7%@bWVCFgOl1xSkc<4^&^Meo+0P;-CgV#X}8*8U!^MY6#R&C*f&qm^0iN;f!=f zIisC1&REz!&Kd7aa3(sFoXO49J-pj*f->=tp0y2ae$ZV9)fTgojB z`;~Fay5-#RuwMnYqFc$W>{fBBy4Bq3ZVk7lTg$EO)^Y2)_1yZfUjw(H+sJJU`!#W! zy3O3?ZVR`i+sbY2wsG6K?cDZm2e+f!$?XjLb#c48-Q4c5Uk|sZ+sp0k_Hp~V{oMX; zoIAjccL%zI+`;Y;cPQ*P%pLBIa7V&^qukN%7Vga3{Kx+{x|~cd9$ho$k(X zXTpB7+}Z9NcP@Tx+@&yH<}Prue--x z>#lJ(yPMpd?hbdqyU$(ku5-7#Tio65F882&0FLjFd)PhV9(9ko$K4a|N%xd{+CAf* zb|SxNy4T$6?hW^*d&|A;-f{1`_uTvL1NR}!d+a`PpS#c8*X}F# zz5C96>OOH_x-ZlN?{c?G>9USY48SJW%v757ScCA~6UX|J4D)~n!^_bPc6y((U1ubNlY ztKn7mYI!xiI$mwBo>$jv;MMmUc@4cLUSqGB*VJp_HTPP1Exk5gYp-dJyfH{P4%P4uRClf7x)R5&lwp=LnMgqj648)^>JT&Q_a^Pv_%ErePG zwHRs%)KaKrUc$;b<{kBpc!#}1-a+qxx8K|6?e+F}yS-iBPH%^|-P`7E^|pAMy-nUm zZ-ckqTj#Cy)_AMERo+T(g|{5mdFDO!o_LSFN8Us4fp_1#=iT-0c(=V<-c9d@cip?@ zUG=Vbm%U5gMel-l-aF@=_0D*wy;I&v?}T?8)&V~4Q$FbvKJH^a>LdPN?~nJ}`{n)g zet6%#Z{An$i}%_4eiToHp z@{gF^Q-z*{K|eMzoK8kFYlN0%lc*f(tatw zB&;*cALo9$`~CdBejmTL-^=gm_wc*>-Tbb87r(RL$?xcQ@Z0~* zKfxdGkMqa+WBk$nD1W3s!XFOn9P^L*NBqP7A^)I%z~Arh^Y{9D{N4U8f2Y60-|lbo zxB6TB&Hg5Tqrbsl@2~UM`fL2v{wjZ^zrtS*>pb(H`cM4F{v-dP|G>ZR-}CSKcl_J_ zE&rx}!@urd^RN0>{LB6&|Du1vKkuLO&-!Ql)BY*{q<_Lc4(ot`4yb?(hyV|;01c4f zum8vY?f>$B`ak^d{x|=t|Hc38fAT;2AN=?JJO8c!#((X<@?ZKd{O7Pv${VnNZM zNKiN^6ch|%g91VRAYYI-$P?raas@eq96|OVTaY!#5@ZfC1sQ`3LHZzFkTysYqz+QS zIxT|cL9?J~&?IOaGzuC94TAbXy`XMTC#W6N3Tg&5g6cuFplVPhs2o%ZDh3sT@-UcuqoIW zYza08+k&mZj$nJRE7%$A33dnjg1y0kV1IBZI2arW4hP4Aqrr*bcyKB>8Jr1D2j_yb z!G+*_a4EPLTnR1**Mh6Tjo^B4E4Ufl32q1Xg1fY)~zp%L1l6}q7l`k@zwVGzcIQJ6SP6ebOmgvrBXVahN? zm^w@qrVZ1C>BDqk#xO&eIm{Gh4YP#V!)#&BFh`g>%oXMh^Mv`sd|_-@AS@IX42y(? z!(w64utZoqOn3(`2~{dgSc7H4(qXxAKVYRSoSRTZXa7|6ZNKj$wzeeb_E+8@35shrPm{VUMtT z*e&cDb_qL&@!^0lF6yTZNUo^XG-FFY6?2oHyc!lU7l z@OXGEJQu;g#@ucrCmc-Ux4px5B&Oo$!8mFMJq2 z2p@-!!l&Vr@Ok(wd>Ot7Ux%;4x8a-cefTc?7=8#pho8c);g|4x_$~Yy{s@1Ezu-9k zhJQjdLLxlEA~GT(I-(*b0udLnkr45b6p4`%$&nVRkrC;U6`7F}*^w8yQ4sl26opZu zC?-l0C61CsNuv}|@+ei5GD;Jrj?zVGqYP2{C{vU%$`WOcvPD^=98vZtSCli#6XlNb zMR}tFQU0i46dM(e3PnYuB2n?ESX4495tWWgMP;KhQNnzdkIF?AqY6>ws8UolsuER? zszo)U8d2@2R#Z2t6V;FEMGd0{QRApl)HG@mHIJG_Eu$7u>!?-KHfj^KkJ?2YqYhE$ zs8iH6>JoL2x!uCy2o1wNqZH3wfwH;~))J~{fP`jb_ zK<$Ov2elvS0MtRKLr{mIj{F}_=NKkC)2-ocW466Jwv$T5nQhy)ZQHhO+qP}nwsqd? zI^U#!-OtmjS5}hMnd+YER4n0te8*zPBR&y38S$yu>4?w7&PIGLc0S?@v5T>||Gn=o z#V*IL#IDA!#jeM0#BRoJ#cs#$#O}uK#qP%*#2!X*k7AEwPhwAF&tlJGFJdoauVSxb zZ(?s_?_%#`A7US)xKFXqu`jW&v2U^Ou^+LYv0t&@u|KiDv462dNMa-jlCa&RNHQcj zk^)JIq(V|7X^^x?IwU=k0m+EOA(@cOQCt=zE0PV#j^sdcBDs*1YNLTtoAT*O0sBtSwW9w~qn zjN%F*g^?miQKT4B94Ud6L`os0kupeGq#RNnsen|B;wmAPkt#@4q#9Bkse#l)Y9Y0e zI!Ill9#S7^fHaKa8X=95CP-7H8PXhSfwV+gA+3=%NL!>G(jMu6bd2IUA)S#fNLQpA z(jDo6^hA0gy^%ghU!)(>9~poQjN%3%gOMS~P-GY~92tR(L`ET_kuk_vWE?UcnSe}; z;wB-JktxVjWEwIZnSsniW+AhYImldO9x@+UfGmvS79op~CCE}_8L}K%fviMUA*+!! z$Xa9_vL4xhY>eVIA)Apc$W~+_m1UyOBM}USuD#A31;=jN%R)*} z0C^bcN62I33Gy`3&yeTH3*=>_Um>rNH^|#azeC<5ACQlc{)Bu+z93&C{SEn!{6Kz2 z`WNyW`Gfq8^gkpKnix%jCe)u4O@<~%Q$#u?nhH&gripY~G##2A%@FB~XdIde&5R~o zow7ufHKJ^2!u2@^njOuB=0x+LxzT)RUNna0M^O|(aTG&Ilt5{eLRpkSd6Yv%R6u1^ zLRC~jbyPzEYM>A`Q5&^T7j;k{_0SLv&;n>YS_mzO7C{T6#n7T?3A8v`3N4A2K})0M z(6VR+v^-h~t%z1ZE2GuWs%Q z|Mw%pG+1gZ6_yf9fhEV1VOg-uSSBnE%ZO#b(qrkcJXmfl7nT#tfn~?CVOg<+dT^qbfR)F}VP&y0SZS;lRuij%RmZAfRk12q zSA@U+E^>BCDsCKjy1!YVok8dSSPF_)&XmewZqzCZLro@FRUll z1M7};!@6Q!u+CAQS=dZ$1~wg=hE2t$V3V;)*hFjsHXa*?jm5@bqp?xgNNfZ)92xcEl`e41IJiD-+*bZzvwhh~gZNWBUo3M@825ddH4qJ<@!B%6d zu$9;fY&o_JTZ%2g7GsOBh1ddYJ~j`Vi_O7iM|o~xH?bSob?h2;6}y66#x7wOu?yIF z>>PF$JA<9ZPGKjp6WDR=7?`&K z`;2|UK4KrR_t-n^E%pX`jlIHNVlS}g*fZ=Y_5^#3J;EMh53u{#J?t)a2fH2R$%E&{ zbKyDh9C&s-8=e)_&@9~ z_6Pfo#V7jzM-0!8=fm^jIF8{cj^H#-;UrGrJkH@P&fqdG;UX^JI?#hc)b@m6?CyanDIZ-=+V+u*J7 zPIyPW1Ku9*hIhrg;GOYacu%|s-W~6U_r?3*z41Z#Kzsn+A0LJf#fRX7@lp6ld;~rm zABT^{$Ka#!N%%y30zMv}hEK((;FIxL_)L5TK0T^q9zGYJgU`kn;S2Ev_g(M--2((ci}tn9r$*9AHEmggYU)<;Ro>p z_bar_*97C(cZ#xLO)@eBBQ{2G20zk*-JZ{aub8~F98j(hlB z{0@E_e}q58AK>@#XZTb63H}&=g}=mK;Lq`Q_*?u9{u=*;f5boF@9}T=SNse98UKa< z#DC!5@qhSV{15&cPf8>q5)+Atltc<5IgyM=OQa!E6RC)dLh5+7WGuHbiTp715GtK{O|t5lx9EL}Q{6(J-oQ zA+d;9Oe`Um63d8$5y^5QX`=sstRPkrtB8cL$Qoibv5r_vY#`PXn~06X7Gg88jo3=; zAhr{`h@He9VmGmm*h?HB_7jJQgTxWyFma4HN}M2$6Q_ui#2Ml=agI1kTp-R9mxznR z72+~+jkrqOAg&X)h?~S6;x=)QxJx`B?h}uQhr|=&G4YIeO1vPR6R(Ju#2ex@@s4;) zd?4NvpNNmd7veMVjrdCZAifj7h@VmYzlnsg*&pIB@$bLe8z=19f45Ej-<~BQ6Tah5 zO{O8!lIh6wWCk)RnT$+MrXW+2siNnzk=e-{WKJ>{nVZZ=#*vxG%w!faE19s3JY-%n zADKVO9E%8v2qhDaC`RHW5&2}a6`G_-mSjktCCf!#d9ngok*q{k zCaXkVRk9jcovcCDBx^-pZL$tom#jzDCmTdwL$VRsm~28eC7VTFbFu~5l59n`Cfh__ zTe2P5p6oz&Bs)c3XR-^~mFz}#CwoL*PqG);o9sjOCHqBQe{ujhkQ_t~CWl1cP;wYK zoE$-pBu7QwXmSiWmK;ZpCnrSSL~;^2nVdpSC8tGaZaO)GoJr1#^lWktIhULl>G|XW zav`}W(u>I@kZZ|xkzP-3AUBemBE6a1LT)9uMS45AgWO5( ziu7)B54o4z7wP@v0rDVuDAI??Bji!?Sfr1WC&-iJsYstD&yZ)ybCEtzULY@$mm+C-Hhl~M7JZl6Vcs>?nQJzq6ZN@jObBBk0W{#(bI^YMf5zP7ZJUT z=v73oBYG3j+lbyp^gf~w5q*s4Q$(L5`V!ICh`y1z|91`fPW~W&lE28`Y*cnC2bGh` zMdhaQPQW7;`jOv=YDhJq8dJ@v zrc?{6dE~dET2gJO)>J#HE!BZ)ANifAj#L+_Gu4giO7)<+M}9A=C)J1QP4%PtQUj>| zkw1tUNDZL|Q^TmC)Cg*L#zld5$Euj`u%c!N)3Tk=O0V|`Uvzl5Jxoe`{TuZH^)>9j(jnpP; zGqr`W$F@jmAXP*r>;>qsTK1jExKFBw`t#pH2mh!fbYeOg zos>>NC#O@6uSD-7?mFTK;6}mcIjjl=8plj2$ z=(=>BsLuLyJ-Q*?fNo4TqMOo9=;m}Yx+UF$ZcVqM+tO|5_H;YCBi(`SOn0KY(p~88 zbT_&u-GlB;_oDmKedzvlKYAcNfF4W_qKDE$=;8D*dL%u99!-y;$I@fy@$@))B0Yhg zOi!Yx(o^W^^fY=VJ%gT2&!XqjbLjc>JbEF$fL=^5qLdL_MrUQMr}*V1dE zI@if1(Tdf#iV4?FsYezOj;%blb(rVGBTN&OiWfL3zMD6#^hvjFu9prOkO4r zlb^}QAWV$G7?dFxoS_(!VHld>7?u$jo{<=lQ5c!g7?m*?oiQ1}SPWzw#%4UmWdg=$ z;+c>s$P{1-GliI+B5B#j!XxpGt-Ib z%5-76Gu@b;Ob@0v(~IfL^kMol{g{Ew0A?^Vh#ATZVTLoqn32o~W;8R38Ow}e#xvuX ziOd9MGBb&p%1mLVGt-!v%nW8WGmDwa%!%rp&&*>MG7Ff+%pztfvxHgBEMrzOE11>H zDrPOShFQ<7V>U7yn9a;4W-GIW+0JZZb}~Dd-OMg#FSCc)&+KCkG6$H$%pv9|bA&n0 z9Ai#0Cz#XBDdsG5hB?oiV=gimn9Iy1<|=cAxz1c;ZZbER+srNIE^~*u&)j1kG7p%? z%p>M0^MrZMJY!xmFPPWNE9NcpCaUv2^N#t*d|*B^pO~-A7v?+jjrqy^V16^dn7_=Q z{}xC2$0T7Bv&q<`Yzj6xn~F`zreRaF>DaVv1~xq#$7WobvJKeAY$LWQ+k|b-He*||E!fs_}P z*v@Pxwkz9(?ap>%d$K*)-fS>ze1JA@t14r52MBiPaGD0VD6 zCaQBhJC2>mPGBdqlh~>36m~j0jh)HPU}v+l*tzT+c0N0gUC1tA7qg4lrR)-RIlGKq z$*y2mv#Z#(>>74GyN=z+ZeTaFo7k=F7Ir(kjor!aV0W{-*uCr?c0aq1J;)wl53`5Z zqwEp(ID3pe$(~?Ov!~dz>>2hvdyc)xUSKb?m)NW974|xNjlId^Jr&`-A<> z{$l^KfBsuC=O3GdOUxzXl5#1y|8c3 zCzpfE&E?|qa(TG?Ts{urVjRYy9Kqon#gQDt(HzIIoWSv%#ED$Oc~>}@(>RqgIGr;& zz*!vR9M0xE&gBBm=i<4LE65e#3Uh_HqFfQKI9H4-$(7(rbEUYlTp6xBSB|U5Rp2Uf zmAI;06|Op0jjPGk;A(TVxVl^&u0B_fYsfX=8gq@frd$)QIoFJ9$+h5GbFH|xTpO-E z*N*GRb>KR4ow%-C7p^AbGZ53JZ>SkfLqKh;+Aqt zxaHh3ZY8&ZTg|QF)^cmO_1rpcBe#Lu%x&Vfa$C6V+%|3}w}acw?c(-wd$|4FKJFlQ zfIG|`;*N4hxZ~V0?j(1DJI$Tq&T?m>I?r?GxQpBc?lO0YyUJbRu5;J8o7@fVHg}7= z%iZDbbN9H1+ym}0_lSGSJ>i~n&$yS|3+^@dihIkw;ofuaxR2Zi?lbp^`^tUczH{HW zpWF}bH}{MC%l-LpA*Fv@5_DaJ~f|?Ps?ZE)AMnBMm{s2iO&&%iG^Yi)mgirnmALB6|0;_#Bb);@$2~w{Azv;zm{LYujE(pd-;9*ets9f zo8QB4=XdZs`7Qibej9(1KgFNskMYO(6Z~QR2!E76z#rrf@mKk4{B`~kf0@6+pXV>| z7x^>%S^gaVkblHK=I`+)75|!l!$0R=@Gto%{8RoJ z|C9g4|K`8(-}xW>XZ{QSmH)thE25(`O$Km1?*AD>ysB4iaZ z3UNXvA)Sz3$RMN^(gloW~xMTKHQO`(=hTc{>f7itKVg(^Z-p@L9Rs3bHMnhDK?MnYquiBMl?AT$)} z2z7;eLPw#K&{=3Fv==%Et%Wv1TcL%}QfMXg75WMNgk|{VUe&{m?z8^ z76`M2Il^3FhA>l@C9Dlb_u(MZNhe8hp<`L zB5V~l2pfe>!cpOva9lVf92SlU`-KC-L1B-uSJ)?96fOyug>%Ar;ev2lI3t`DP6#K3 zQ^H;0o^W5dCEOP72-k%h!cF0da82l6&?r=g-60y;hXSX z_#}K5z6kGy55h;`jqp}@CnOP*ipj)(|1I2>So|&g5&jB4grCAMA%mDvj1$v}>BRJ6 zDlxT~MoccI5L1e|#XMqOF^8B_%q3dH{(Gz{q5^d2DfoO_QEGd=}ON+(C;$jK0uvkPa zDi#n6iiO0gVl}b4SV^obRuRjK6~u~S8L_NbPHZSP5*v&4#QI_bv9?%8tSiKViU2c*i7sx_7Z!G-Nf!<53#e@MeHhe5Ic&U#G&Faakw~0 z94rnI`-=m_fnp!Auh>tVC{7Y5i{r%c;skNDI7S>Rju1zRqr|!5JaN7_OPnpv5vPkY z#F^q0ajG~?Tq&*+SBuNU<>Cr)vA9HBDlQNgii^ap;x=)+xJleBZV}gu8^n#`8gZ?- zPCO_c5)X^}#Qov{akscf+$-)7cZ$2jv*J1Nym(4HEuImNizmdB;t}zvcuc%0-V$$% z*Tn1M4e_#gMZ79r5HE_C#HZpj@wxa&d@Mc@?~4z_hvFUau6R%UD1H(@i|@qu;s^1y z_(psyz7SuEuf&9Y{44(ZZ^^!2;&1Vf_+9)V{uIB6U&U|#-NrYqluk-1rIJ!h$)w~` z3MsLaL`o`UmvTrsr7TibDVr20Ws)*W>7@)(MhTN}iI8FvBB4@VDW8;I$|dEN@<@^- zONzuxf+R|e#7dk*N|Z!Pj^s+71SLzdB|`#|DXEes=~7Xtm{eRUBo&s5Nbynusi5Rb zffPy=rAks|shm_^svwn?%1C9U5>iR2lvG!$C)Jl~NwuXqQgx|@R8y)VRh6nqEu~gc zYpI#kTxuaTmYPUSr3O+%sgcxG>LzuUI!T?SE>e4`gVa%KBej*T= z(nM*Jv{YIqEteKai=`#fd})ESP?{snmF7tsrA^XiX`QrQ+90i#)<|om71By+m9$sd zC+(MZNxP*z(spTwv{Tw5ZI!l3C#6%;Y3Z1BTsk2gmX1hAr32DI>5z0)x+YzhE=iZA zE7E!Cf^<4o%C zdLliQo=HEYU(#>soAh1!A$^vij6A~~^~ME)cFmHtVY zE#S^YB`OZR?aWSWJJy*=auuxIpth(ZaJHrUCtqMGA|1gBo~%LIbJRxd$KPFvMoEZE0>ka z$>rrza%s7YTwE?8mz0ahMdf00O}Um_TdpQomutwCrdyTe*eYQf?*pmHWy4WO<4_UY;ONl*hBVN{7`-* zf0e(<-{nv8XZef#Uj86|l;6m2<#%!tC8?53`S;%vo{5#;@*nxH{6qdJ|B^E(8I?FC zt&&bjucT5^D`}MEN(v>Vl3U56c6;9!mKnaz2#Z^4TS1iR=90e$*0+o_VDW$YhOewCE zPzozWl%h%jrJzzssj5^{sw@hN+YGQQctO`G*D_Qb(FeF z4W*`1OKGdLQ`#%7l-5ccrMc2VX{j_(nkvndo=PvJx6)1NuJlkkD_xYXN(ZH*(n(3^ z$DztFWw$$^>P!GDaDzj8H}@qm;SIJY~Kz zOPQ_AQKl<1l$pvDWvVhwS*fg2Rx8Vt<;n_Wv9d&2sw_|zDvOk@$~I-YvPs#jY*E%L z8N#9Ww)|N*{keOb}GA+v&uQ;ymCr8t(;MgD<_nb$`R$L za!k3Y+){2U*OcqZ4dt?OMY*b6P%bK$l&8uw<+<`md8|B9?kf+Jhsqu0u5wTLsC-gB zEAN!|$_M4O@hg1R|z$yA}XrpRr9I&)m&Zq>jsZh04TQyXmnyRX5s;(AQi>bxcLTX{Ph#IdJ zPz$QQ8mOUKQLUs_R?Dg7)e359wTxO;EuofFOR06$dTM>OmReh_qgGdIs5R9pYE`wG z+EQ($wpN>|&D9oaW3`FeRBfO(R2!*X)oyBcwUgRe?V`3WD`8R}$p ziaJ%DpiWdLsY}&m>T-3Fx>#MJ&Q}+x3)MO5Ty>thQQf3&R@bTP)eY)ub&a}KU7@a2 zSE+l|ed>O7m%3Zsqi$Dss5{jy>Q;4|n$V9Y)l=$e^_Y5GJ)s^}kElo01L{Hbka|_U zre0Sssh8C&>Us5odQm;2o>kAO57kHNWA&bTUwxq7R_~~H)f?(f^_KcpeW$)xU#YLv zH|lfsh5Ax`qCQohsXx_U>TmU%`d$5@epbJzU)2xlNA;7MLQAQo(voV)wB%YMEwPqF z`=kC<|EZa^ELv7AqZX%S($Z<^wG3KnEsd5|%df>WM9ZV))$(aMwOm?mEt{5I%b{@^ zuL&BhF&e888mUnls$m+gnHtnAP1g(!Xo{w4nkH(JCTj(?LRw)h)Z(=Qny2|%pxK(E zxmsDRoK{{drIpsoXvMV>T1l;lR#Ypd)zoTfwY6$mb*+Y0S*xN|)hcKewMtr3t(n$b zYos;SnrQX423kX{j#gKzr*+giX`QupT6?X7)>><$wbfc^Ewxr!U#*|kU+bmy*7|7O zwH{het&7%G>!yv=Mrot9VcKwQgf>_kq7BssXaluD+Ei_tHeH*fP1dGpV zRvV`+)D~%rwRzfnZGkpho1@LuW@t0DS=w4{owi?;+$Cjt^LvdYCp7}+Al4k zA2a9~^*BAPo=#7%r_xjFY4qfJ3O%KsThF8C)pO`M^;~*ZJ)53g&!lJ8v*?sg>x_=; zgih*+j_R16PtUK%bWPWFLzi_$S9L)bbxCJ+PUrPN5A}H6)ji$UE#1}~9q6VG^^$ri zy|i9TFRqu+3+qMnqIvy`A%dKJCAUO}&@m(k1W<@APnBfYU+Pp_{x z&}-{;^tyTty{2AEZ>zV{+v~0L)_NPgx!yu=sW;J^>do|?dM~}V-c9eW_s~1*UG%Pc z2fd@-Ngt{Y(}(MW^uhWNy}v#{AE@`y`|ADliTWgcvOZ29uTRiN>tpn>`UribK1!df z&(r7Yv-H{e9DTYzL!YTn(WmOu^p*N5eYL(!U#_pv7wb#(rTPMWp}t7ps&CV`>znk= z`WAh?zCqupuhG})>-2;AA^otvPv5T}(0A*5^u78HeW$)lKdYb9&+Di3)A||xxPC%E zsUOjg>c{k(`Yrvoeoeow-_S4XSM;m;1^uFaNq?$8)1T{)^vC)W{l5M{f2iNl@9OvT zkNPM5v;IzhuYb^A>u>b8`V0M~{!0I=|NC$G?qB+E{g3`#|DpfXzvy4}Z~rark=96O zq%=|)sf}btawCP2*hpd|HL@EyjGRUmBdd|kh%+)7nT_;D1|y?^8Mr|hF#|DBBd?Lq z$ZzB_avOOJ$&d}j;0?hL4aQ&%&L9oSpbf`x4bOmvW!Q#c0K+s?Lo;-vs8P%)ZWJ;K z8%2zGqkvJ+@QuI-jf8%zXjC#P8|94hMg^m^QN}21lrTyfrHr~pJ)^!+%cyPCF{&Fi zjG9IjqpDHOXlb-ES{u!b=0*#nvC+h6YBVq!8jXyuMmM9o(aGp+bTQf+9gL1f8>6k! z&KPJ6G6oy{jQ+*|qqot==xg*adK$fqvBo%KyfMlcZHzI78zYR7#t>tuG0d20%ra&h z(~RlH3}dn}#h7YLFeVz4jHSjhW4W=&SZpjY<{Jx)g~l9Xt})NpXlybz8|#eq#s*`x zvBp?ytT0v@tBk$IK4ZVJ%h+w~F}52!jGe|7W2>>vIBA?RP8-LJ)*aml!BTrtiY7mSO>8RM*R&Uk1%G9DZEjQhp|}gBUU0Z2dr6kq@cCV;>KIxqkL3Q&OtL?8hf6anOEtw9^m7PJ5@K`YP~^aK4tFVGwG0o_3l&=Yh4T|qZ6 z5{v?)!7wl!i~xhd5HJ)B00Y4wkkF4)!89-(Oaha^6fho4029F&Fcyph3&A3=7|a9n z!2&QF%mH)33@{VS0&BrKupX=etHBzu9IOB!3A&{oB?OS32+je0(ZeZa39

ouWF|I$gFoOe_yK-`Um$~-(Tp?Gn(55+W-2qanZ`_RrZ7{Qxy?Lg zUNeW8)68XNHM5!7%}i!yGmA-?w8@ybNtmRGn5c=F`ON%g%+yTXG)&o4Ow|-j(UeTq z?Dr zY*sPLn-$E8W*M`rSb7n+OAt>!j!ySd5SY;G~vn;XoH<{ERYxz0Rj9x@M``^^330du#x z$J}e~Fn5}}%(Lb>^SpV=JZ+vakDDjVljafgsCmpx=*OGpE%UZ{&Ae{jFfW@|%&X=F z^P+jld}=;3pPP@&$L16BzWKm>Xx=gJn)l3)<|p&B`ObWAelTB~Z_Kym3-hJ<%KU5o zGZVpI=5OMR7$zckZ7$$*9VRo1U=7d>bR+tUO z!AvkSOb;`_j1Yr3Bw!385QTYRKA0cog1KQHC_x!2kcR>kAp=>+K@w7sh7NS02O+ee z4GjpO300^;9TtVfU~yOo7KTM&JS+eULLUY&gcV^WSQ(as;3;Sx9>E`ST+95@%wgB#%{xEZd4>){5t z8m@tB;R?7Cu7Z2vKDZz5g1g}!xE=0*JK+|%6>ftk;VF0;9)ri>33wPDfk)v1cn}_f zSK&2y9bST$;T3ouUVsHg0JBl z_#D1~FX0pT6h4DL;V<|beuLlP5BM2=fnVVV_z`}BDXf%MDl4g#%t~%0vJzWKtUvHC z{0B2zS*)y9Mk~(BWTmsxTN$j>RvIgRR=zj#ekDv(?UOZ*{O*TWzeiRtu}8)ynE?^|Sh0y{z6=AFI37 z!|G{uvASB_tdZ6zYqT}Y8g7lS23td{q1FIvpf$*vYE84ITa&EG))Z^JHNl!_jj_gB z$UaFdTzb29$QbWr`7}O zq4mi6YJIc5Tc51Y))(u&^}+gRy|La}@2n(tQahRb&q`z`wtriHtiRR|>!L#ckH|NJ^Q2m z$^LA=v)|hv?AP`i`>p-Lerdn5|JwiTM9we!xBbWdZvU`<+F$Ii_BT6?lh#S+q;yg_ zshwm_awmn8*h%6fb+S7-oSaS;C##dqiE}bJnVs}b1}CF~Ik-bOF$Zx_C$E#w$?xQH zayxk($&nq!;T^#d9mZiD&LJJjp&iF@9nXP|<=Bql0LOGxM{{(is8h@-?i6wgJ4Kv$ zr+`z?@twd4or+E+r?OMdDeqKpN;_qovQ7!7q*KbN>(q1VJGGqJP93MZQ^Tq0RB@_0 z)tr`2E2p*7%xUhla2h*JoTg3#r=iox>FRWIx;vem&Q2Gnz0<+z=(KU#I_;c+&LC&7 z)6ePe3~+ioeVo2d52vTo%Ngs8bH+QPoYBr0XSg%M8R-mhhC0KXna(U{wlmF{?#yr| zJ5!vg&ID(oGs!{zH&b}6v&LEPtaCOx8=TF~CTFX&#o6v`b9OpAoZZeYXRb5HneWVV z7CH-@#m*vUsk6jc?ksawIxC#j&MGJ2w+4Hhz0N*ozmqUy_@HyZIqV#Ajygx2BJ5QXa&NJt^^TK)Q#QksI-a2ob*Ul^Fqw~Re@4R!qI$xa6&L`)m^TYY> ze2X&viuU5S^T+w?{ELoGVmFbS)J@_hcaym(-4t$WH#P2;9_)43Vl3~nYj&duUx zcC)!z-5hRqH$tXSxy9U~ZV|VzTgWZw7I5REJmuW7ZW*_(+`4WZx3*i$t?AZqtGmtIrfw6rvD?UP=r(ZcNA)## zTevOVR&K&?Lt49S+_sTw=eBn{M5?3P$?Y7eE^b%1o11Xfx<}L_qMi};il}$=`aW)7 zw_l|Cy93;Tks9O(N4sO(vFTxqAW|JEX&;G?h1FMyUJbdu5s78>)iG3 z26v;o$=&R3akskL-0kiTcc;6{-Ruq+S-mV?W-pT$=VkOVc@*h}R7bN{-3+~4jm_ow^A{qBBqzq()C`2W2J^Llx_ z++Hp(r)^Hb+IelgHePS9m)Fzl;dS@Ad0o9O-e7N#H_#j4_4oRDeZ4;3Xm6A^(i`Co_l9{x zy&>LYZ<06Bo8XQ2#(87CFQ(d-J@x-W+eW zx5``Tt?-t6%e(hm$%c~;cfS}d0V|L-eK>MchEcF z?f3S1d%Zp0Y44PG(mUZD_l|i-y(8Xb?~-@XyWpMo&Ut6OGhV{ny{q08@49!*yXoEV zZhN=9yWSn|zIV@i=soZrdyl-Q-V^V+_so0gz3^Upue`V38}GgM&im+n@IHH=yszFD z@4NTS`|17getW;Xzuq4&k^j$2;wSc#`APj0esVvRpVCj`r}oqNY5fd-dOyz3=x6pb z`C0uees({bpVQCb=k{~?dHpzQJ?T}KcP;_Cw<1Jea>fn!RLL+7k$N- zea%;W!`FS&2fpP)-|=nV^IbpieLvn0{epf0zp!7(FX|WZi~Gg=l70!lv|q|E>zDD% z`{n$Keg(g>U&*iPSMjU+)%==%4ZpTu%dhL#@$38b{Dyu5zp>xQZ|XPkoBPfDmVOJr zwcpBb>$maS`|bRWeh0s^-^ow7pI=wMi{IVv=J)h__`UsJeqX`(Hi`cwSr{xpB4Kf|Bx&+_N`bNu=K zJb$6Tz+dby@)P=cxxdU`>M!wE`>Xtw{tAD+zs_IlukkngoBWOb27kN1&EM*8@pt>X z{GI*|f4{%a-|O%35BrDwgZ=^kxPQz)>L2k>`=|Vq{t5rQf6hPapYbpIm;8(V1^>E# z&A;kj@o)RL{G0v_|Gt0Ezw6)eAN!B|hyH`8j_3X}|Ed4Pf9=2WU-~cn_x?Not^daV z?0@n<`XBu7{x|=t|Hc39|MGwOKm0_&KmV`)$4?d{4Uz{p4pagQD1!`afdSC`1umTu3fgN~(8w7zL#0OzeFenfd4hltiiUvi3;z6;X zWKbd~9h3^n24#ZsLAjt}P$8%sR0^sFRf6h4wV-BDBd8tJ3hD-Rg8D(dpkdG;XdE;O z62>`AgC;@qpjpr|Xc4pyT19@_piR&|Xcu%0Is~1APC>#*p-a#;=oWMj62?(If}TOI zpm)$G=o|D4`UeAofx)0)aF9CD|38KVLxW+#@L)tRG8h$%4#ortqo1+CxL|xRA($9U z3ML0rf~mo@V0thkm>J9pW(RYEgpQpX%nRlR3xb8gqF`~bBv=|O3zi2ff|bFlV0Ex2 zSR1Sh)(0Dcjlrg1bFd|P-PT}Ruszrj>A2cpN+no(3<1=fSJsW$-3=9lQ(P1|Nd=!KdJ3@Fn;hd<(t? zKZ5VUui$6!C-@!w3;qU)!$e`yFiDs^OctgLQ-rC*RAJgMO_)AR7iJ7Igqgy)FiV&@ z%ob)1bA;K$Tw%^IPnbK*7v>FPVg3*ekq{5DkPL~C4ylk0nUD{;Pz;4I;gcc^t4}&laozM-vuv}O^tPqwC%Y9#6~jtl<*-@UJZup*4x5Bc!v`wi^C=1{BS|IFq{+44d;b3 z!&%|%aNYm)bWTB*G+P+$vE5_a?lCIu%o-a#wr$(CZQHhO+xE=85C5sR6+6F**i}(0 zYiFE?Q(fOpV4pcu&1&-b3$^_t^X9efNHNpS>^MSMP)O(fj1R z_1<~!y=WjhhylVt6c82s@&0=Myr14L@3)r-BnC-9e2@Sn1aUxI5D&xzu|RB)7Ni5| zK`M|Mqyfo63Xl>c1<61-$O&?R+#nms4sw9ZAPdL}GJuRA6DSHIKrv7V6b3~=eoz1u z1bIMSkPmnO00_#0a-cjY1xkZ5pg1T2N&*cGus{F_6rg|s4iLbAfa;(Is0pfos-POE z2r7ZfzyTjr0F6Ln&;&$+2B0CR3+jRTpcbeN>VS5jJ?H>hgEpWoXaQP+R-h?p2AYG= zWZDUI1YJO9&<%72A(y)c)FYst0rd*5?E`v)exNTH0Q!TFhl9XCFa!(+!@y850t^SE zz(_C#j0WStSTF&M2a~`=Fa=Bo)4)_P155|Az)Ua)%m(woT(AJl2aCW$ummgy%fM2w z0xSosz)G+NtOo1ATCf4E2b;h~umx-e+rU<^18fJoz)r9S><0V5UT^^H2Zz8xa0DC% z$G}l=0vrdYz)5fhoCfE>S#SZI2O$q{f!p8?xDIZBo8St#3a){R;1akDo`L7!1$Yde zfT!RAcnBVWyWk$U4?cm<;0t&UK7fzl4R{OQftTPFcn$u6Fc<~?27ka`@B{n=zra`U z4SfIqU)9Hl31Dm(2gZdlU`!YbMupK}beIyRf~jFROb%1PBrqvV1{1=!1OQ!%m~xKv@jhk2n)f&Fdxhh3&7kk56la5z??7_ECb8Ja5V0&*yzgalH^AcP2FSRQ&1z{;=+tO_f@im(#2&_N$6sG))NVI*t->%h9O9;^v# z!P>AItPX3yR;XH&F0d=?06W4?uq|u{+rvR{ zFdPE=!vSz0>;wD4ey}I(1$)DBa6FsEqnoA!dLJqd2VH(xB8R9ZHKbp!6sc%80U{%qSbmigKXrC>P3!@}S%( zAIgggp!}#1Du{}p!YBe2Ma5AuR1%dyrBNwV7L`HeQ8@&VhY*5@AdDEINFa_BlE@&9 z9I~ha@=+yJ5miBzQ8iQ*)j-uzEmRZLLA6mmR2M~}`lumlfEuGls3~fKLOVxu)C{#m zEl_LJ3Wd(EZBZK(nn2p4cBmujfI6d2s4MD%x}$EWC+dNEqh6>l>Vx{DerO;XfCi&M zXeb(jLS~Lf6VOC728~7I&`2~2jYh-Ja5MtVMsv_yGy}~>0BuHF&{nhoZA6>UTC@(WN2}0kv`;@&|!20T}L<2O>_laMc2?pbO~KX=g@g{0X;@f z&{OmPJw%VtU33rKN4L;zbO*ghAJ9ki2E9e^&`b0Ry++T_bMylJMt{&>^aK4wztC6o z4Sh$S&}Z}o#l~@PTpR<(#IbNx91Tau|42OM%3a7^TaDH3>=f-((UYrBx#JO-*oDFBkC2=WS8W+RGaS2=m z7sU~{ATERpV}dDW7-EDmE{{D7a2Z?{m%|lsMO+D6?68j&*4SW<1(vuDu8Zs8nz$CO zjjQ46xCX9_tKh1*Ic|Yl;wHE$ZiXA;Mz}Gqk0Wsd+!=SlU2zB85qH9EaXZ`|x5BM) z8{8iczyom~+!y!5J#jDG8+XIqaSuEikHKT{2s{#x!b9;eJRA?ggYghN9nZis@f182 zPs0=OBs>|9!{hM;ycjRROYs7{5HG@W@jN^q&%(3u9K0THz#H)zycVy+EAcA48ZX1k z@d~^f@4LQD7x4{z9bdy&@f~~{-@-S8+yi_c-@|wD6Z{xI!VmEa{2V{S zPw^Z48o$CXgWL!F9>2qH@fZ9Vf5IQ}5Bwc}!(Z_q{2TwmKZ9Hp5=Q>vzc>boPNI>h zBo2v9Vv(360f|rIk+>w(UlNj-Bq9k(auQCGk)$LwNkvkU6eK-KN79lsK`t}NL^6^L zBsv;0}z2 zO6HK+WEPnjE|Bx&963v_ zkjvx}xkzr1>*N}_O74)`CWCa2*vB~3w7(^SEFTAGHYr|D=$ znt^7fnP^s;g=VMOg7us<2hB}$(Y!Pd%}?{ug0uiFObZ2_6bYzkKoJ2IqmloedP~sa zv=l8#%h1xa94$*dTAo4*D5i)~N+_p{N-C(Pidt%@PaUmDE6~cc60J(B(CV}rtx0Rp z+O!s}OY6}3v>t6hBWWYrkT#)>X*1fCwxG>vE83E_p{;2<+Lm^p?P(|4k#?b-X*b%H z_MqKqFWQs#p}lE8+LsQX{plb&kPe}P=`cE!j-bQoC_0jkp`+05nV`^(8Y8aT}oHb<#ZKYN!QTT zbRAtwH_-KT6WvI+(9Luk-AZ@R?Q|F2N%zp*bRXSI577Pe5Isnb(8Kf?JxWi|+}}AN$=3x^d7xSAJF^s5q(IX(8u%{eM(=@ z=kyhQN#D@d^c{U0^!b6lr=RFY`h|X`-{@ERgMO#K=ui5G{-*!vUmAslv1lwRi@~C^ zSS%)s!(y{|EG|pH;^A z){r$}jaf6+l(k^ZSu56(wPCGUJJyzUVC`8a){%8#omn^5mGxlVSufU;^;T)(4zYvm2s_M;gN_F0qU33cJj%v8(I` zyUuR0o9qs|&F-VE5T0_K-bckAvDX_LRL~&)F;XGN`>_uh~2HmVIFFgW4zd zk$qvG**Er;g?6*=0sRQ*XF$IK`W?`pfc^&bFL;hoco>hyqw*L$I*-L;@;E#;kH_Qk z1Ux=Z#1rx)JTXtklk(&|oTua|cxs-Cr{!sQdY+DF-i?Wk#FIf`8K|l@8H|{F20lR;k)@hzLy{1 z`}rY$kRRcP`7wT!pWw&&DSncl;ivgIewJV0=lLamkze7L`89r(-{9BzEq;^V;kWrc zewRPs_xU6KkU!y%`7{2Mzu?dLEB=zd;jj5S{x<0I1Aosy@sIoq|IEMfulxu9&VTWr z{15-l|M9;(iUI9{Oc6)K7V$(}kwC;3i9|w?L?jl;L{gDlgo~6Sg-9(@ ziL@e(NH5Zfj3R@`EHa6#B8$i_vWc7`hsZ5*iM%3@$S?AVf}(&ZEDDLDqKGIaB18#M zT$BLYB1JRNR5THdMJv%#v=GfjJJD9O5v@h|f8XQ| zqP^%OI*Kl$v*;$eiXNi7=p}lJKBBkiC;Ey3qQ4j<28xiUgGI!DR}K|J#Bec8j1(ip zXfaBR6=TGBF-}Yr6U1aONlX<}#B?!D%oH=kY%xpB6?4RVF;6TM3&divNGugg#B#Ar ztQ0H6YOzYJ6>G$Lu}*9h8^mU@No*Bc#CEYwgr>NiVn@)$u7Gw2v?rjw0qql+{_FOD z*e?!=gW`xdERKnz;)FOZPKlG^j5saMiL>H@I4>@Vi{gs7EUt;G;)b{`Zi$=Xj<_xE ziMt~7>&F9eUpx{I#S`&ZJQGhv=&bQVJQuITOYug$7VpGc@j<*7pTtM;MSK?D#Mj_1 zeu(cucRxk6|GN7nev3ar{jUh^4q@`2h$^GV=rWp&DPzdkGM0=hY(>&f~uQr4DrWL;T9)|9nmRas3|mn~&0*;+P}&1DPOST>POWdqqz zHj-UsH`!fwlAUE2*7P(b!lPBdVd0HNm z$K?rmSRRo_gUm0qP%sZ|=4 zT%}McRUVaB5NYy|!RCQH7RbO>fom6MlPPJDZRBP2nwN))tOVvvCRsB?d)l2nOeN=bV zL-kZ$R9DqajZ~x5Xf;d?S0mJ5HAD?n1Jpn@NKIAK)O0mTO;%IXcr`&yRAbawHBNQ1jIywNNcli`6oDhI<;19Q0vtuwNY(R zo7Fb8RqasQ)h@MD?NPhcKDAdJQ2W&(bx<8qht)B4RGm=A)hTsSol&RNIdxWDQ0LVp zbx~bWm(?|ORozh6)h%^X-BGvIJ#|+-Q1{g%^-w)gkJU5vRJ~BoRmiGW>ZN+4UaNQN ztqNK7L;Y00)K~RQeOI5SQ{h zPNWm-csjmLpkwPeI<8KyGw6&ujZUl6>6AK^POZara-Blw)_HVZokQo;xpY>YO=s7c zbY`7J7t_Uc30*`N)e*X&E~E?Vd^*1_prJ+@>+;&uK$p>Fbva#9m(r!R)lU0bX|0Xs zT4rkd%Rx|Xi3tLf^xhOVru=&HJcuBa>NCc3F^rW@);y0NaWBXt8^N7vQ$bO+s0 zchYTjJKbKl(yetH-CVcOEp;E=SNGFBbuZmpchlW<58YXJ(OvZjJyMU-L-jB{To2NN z^$^`(56}bk6g^c>(-ZY1Jz0;_$qeO#Z=C-ohDSKre&^(}o{U(?t14SiW((O2~g z{ZhZuPxUkXTtCu}^%H$xKhO{L7yVU#(;xLG{aL@$@AU`$TEEe6brciTL^FT&KOJU% z>EHT~{;q%MpE`j_XcC#YCZ36JVwu<`j)`t!n3yKDNn_HQ6egufWs;e2liVaWNla3c z-Q+MiO%{{YWHT8}CX?BuGwDqRQ`i(SMNI)y&=fLxO+J&~nX0CSscveS znx>AaZR(l2CeqY54NU{n*fcUtO%v1HG&3zt3)9-PGHp#8)84c*9Zd(**>o~pO&8PM zbTd6o57XQ9GJQ=S)8F(n1I++4*bFiutA?5(X1Ezb&&)Kl%xp8wOgA&kYO}_yH7m?Yv&t+r%gl1K$SgKX%yzTG z>@-`^1w$ezVK$Hhau@bHQ9RXUti1&YU!- z%xQDX95*M-ZF9%mH8;#nbIV*c*UWWu$y_#9%yaX?yfjbDQ}fI`G>^<fNPo5g0e8Ei(I$)>gGYH8!`8H|Z5!Lxwy-U2 zE8EmIv(0TI+t@a--E9xs({{04Z8zJ|cCwvqJKNrNu!HRoJJb%a1MMK&*Y>mhZ7Wrb?HoJT&agA>EIZXsv(xP)JK0XL%k2ug(k`(} z?J~R2F0za5JUibmu$%1`yVY*68|@~$)~>Vb?JB$4uCe>=0ejHyv3u=4yVLHnyX`i+ z-R`ib?HPO4p0FqFDSOl&v&Zcrd)OYaA*;^WkX0A#d3(uTv{&q9d(B?8H|%wL%igqi z>}`9`-n9?xef!8hv`_3~`^-MIFYI&s%D%L3>}&hZzO^6hd;7_Lv|sFJ`^|o}KkRq= z%l@=~>~H(e{aw`(E}IKkRnQf3g&=1SIU)k#awY$!WD5vU4-LKIO&L^jydR%!>+vZ9B`Fg6<5_&a1~u8XPtAtQ%*bM z>bpqSz}0beT|HOR)pE66HCNr$aIIWx*Tyw>EnG|2#5HxzTtnB$HFn)xch|#pc3oUo z*THpkom^Yj&b4=g++a7v^>+i@K-b6hb^TmV*UR;GR!Hsrf+*miljdY{jP&dpC zceC7VH^)tPGu%u!#Z7h7+(b9YO?J!Na<{@Qc1zq+x4++MfC?R2}`R=3SzeKQ}@h0cfZ_k_s4yAKip6E#eH?(+(-AxeRi?@*nS*8x*x-j=|}OS`qBKq z?wzlq<}Z{Rod8~OG8`hKJzvZ`f3tpaN8ht6Pa{I-6(px!>94gqxxs8c|l1M1@c E51!=I`2YX_ literal 0 HcmV?d00001 diff --git a/libcraft/blocks/src/lib.rs b/libcraft/blocks/src/lib.rs index 39fcb6c2b..61ff03f83 100644 --- a/libcraft/blocks/src/lib.rs +++ b/libcraft/blocks/src/lib.rs @@ -1,10 +1,237 @@ +use num_traits::FromPrimitive; +use std::convert::TryFrom; +use thiserror::Error; + mod block; -mod block_data; -pub mod data; -mod registry; +pub mod categories; +mod directions; +#[allow(warnings)] +#[allow(clippy::all)] +mod generated; mod simplified_block; +mod wall_blocks; pub use block::BlockKind; -pub use block_data::*; -pub use registry::BlockState; +use serde::{Deserialize, Serialize}; pub use simplified_block::SimplifiedBlockKind; + +static BLOCK_TABLE: Lazy = Lazy::new(|| { + let bytes = include_bytes!("generated/table.dat"); + bincode::deserialize(bytes).expect("failed to deserialize generated block table (bincode)") +}); + +static VANILLA_ID_TABLE: Lazy>> = Lazy::new(|| { + let bytes = include_bytes!("generated/vanilla_ids.dat"); + bincode::deserialize(bytes).expect("failed to deserialize generated vanilla ID table (bincode)") +}); + +pub const HIGHEST_ID: usize = 20341; + +static FROM_VANILLA_ID_TABLE: Lazy> = Lazy::new(|| { + let mut res = vec![BlockId::default(); u16::MAX as usize]; + + for (kind_id, ids) in VANILLA_ID_TABLE.iter().enumerate() { + let kind = BlockKind::from_u16(kind_id as u16).expect("invalid block kind ID"); + + for (state, id) in ids.iter().enumerate() { + res[*id as usize] = BlockId { + state: state as u16, + kind, + }; + } + } + + debug_assert!((1..=HIGHEST_ID).all(|id| res[id as usize] != BlockId::default())); + // Verify distinction + if cfg!(debug_assertions) { + let mut known_blocks = HashSet::with_capacity(HIGHEST_ID as usize); + assert!((1..=HIGHEST_ID).all(|id| known_blocks.insert(res[id as usize]))); + } + + res +}); + +/// Can be called at startup to pre-initialize the global block table. +pub fn init() { + Lazy::force(&FROM_VANILLA_ID_TABLE); + Lazy::force(&BLOCK_TABLE); +} + +use once_cell::sync::Lazy; + +pub use crate::generated::table::*; + +use crate::generated::table::BlockTable; +use std::collections::HashSet; + +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Serialize, Deserialize)] +pub struct BlockId { + kind: BlockKind, + state: u16, +} + +impl Default for BlockId { + fn default() -> Self { + BlockId { + kind: BlockKind::Air, + state: 0, + } + } +} + +impl BlockId { + /// Returns the kind of this block. + #[inline] + pub fn kind(self) -> BlockKind { + self.kind + } + + /// Returns the simplified kind of this block. + /// This is an arbitrary manual mapping that aims to condense the different + /// vanilla block kinds which have only minor differences (e.g. different colored beds) + /// and is mainly intended to make `match`ing on the block type easier. + /// This mapping in no way stable right now. + #[inline] + pub fn simplified_kind(self) -> SimplifiedBlockKind { + self.kind.simplified_kind() + } + + /// Returns the vanilla state ID for this block. + #[inline] + pub fn vanilla_id(self) -> u16 { + VANILLA_ID_TABLE[self.kind as u16 as usize][self.state as usize] + } + + /* + /// Returns the vanilla fluid ID for this block in case it is a fluid. + /// The fluid ID is used in the Tags packet. + pub fn vanilla_fluid_id(self) -> Option { + if self.is_fluid() { + match (self.kind(), self.water_level().unwrap()) { + // could be swapped? + (BlockKind::Water, 0) => Some(2), // stationary water + (BlockKind::Water, _) => Some(1), // flowing water + // tested those + (BlockKind::Lava, 0) => Some(4), // stationary lava + (BlockKind::Lava, _) => Some(3), // flowing lava + _ => unreachable!(), + } + } else { + None + } + } + */ + + /// Returns the block corresponding to the given vanilla ID. + #[inline] + pub fn from_vanilla_id(id: u16) -> Option { + FROM_VANILLA_ID_TABLE.get(id as usize).copied() + } +} + +impl From for u32 { + fn from(id: BlockId) -> Self { + ((id.kind as u32) << 16) | id.state as u32 + } +} + +#[derive(Debug, Error)] +pub enum BlockIdFromU32Error { + #[error("invalid block kind ID {0}")] + InvalidKind(u16), + #[error("invalid block state ID {0} for kind {1:?}")] + InvalidState(u16, BlockKind), +} + +impl TryFrom for BlockId { + type Error = BlockIdFromU32Error; + + fn try_from(value: u32) -> Result { + let kind_id = (value >> 16) as u16; + let kind = BlockKind::from_u16(kind_id).ok_or(BlockIdFromU32Error::InvalidKind(kind_id))?; + + let state = (value | ((1 << 16) - 1)) as u16; + + // TODO: verify state + Ok(BlockId { kind, state }) + } +} + +// This is where the magic happens. +pub(crate) fn n_dimensional_index(state: u16, offset_coefficient: u16, stride: u16) -> u16 { + (state % offset_coefficient) / stride +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn instrument() { + let mut block = BlockId { + kind: BlockKind::NoteBlock, + state: 0, + }; + assert!(block.instrument().is_some()); + + block.set_instrument(Instrument::Basedrum); + assert_eq!(block.instrument(), Some(Instrument::Basedrum)); + } + + #[test] + fn highest_id() { + assert_eq!( + HIGHEST_ID, + *VANILLA_ID_TABLE.last().unwrap().last().unwrap() + ) + } + + #[test] + fn vanilla_ids() { + let block = BlockId::rose_bush().with_half_upper_lower(HalfUpperLower::Lower); + + assert_eq!(block.vanilla_id(), 8140); // will have to be changed whenever we update to a newer MC version + assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), block); + + let block = + BlockId::structure_block().with_structure_block_mode(StructureBlockMode::Corner); + + assert_eq!(block.vanilla_id(), 15991); + assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), block); + + let mut block = BlockId::redstone_wire(); + block.set_power(2); + block.set_south_wire(SouthWire::Side); + block.set_west_wire(WestWire::Side); + block.set_east_wire(EastWire::Side); + block.set_north_wire(NorthWire::Up); + + assert_eq!(block.power(), Some(2)); + assert_eq!(block.south_wire(), Some(SouthWire::Side)); + assert_eq!(block.west_wire(), Some(WestWire::Side)); + assert_eq!(block.east_wire(), Some(EastWire::Side)); + assert_eq!(block.north_wire(), Some(NorthWire::Up)); + + assert_eq!(block.vanilla_id(), 2568); + assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), block); + } + + #[test] + fn vanilla_ids_roundtrip() { + for id in 0..8598 { + assert_eq!(BlockId::from_vanilla_id(id).vanilla_id(), id); + + if id != 0 { + assert_ne!(BlockId::from_vanilla_id(id), BlockId::air()); + } + } + } + + #[test] + fn property_starting_at_1() { + let block = BlockId::snow().with_layers(1); + + assert_eq!(block.layers(), Some(1)); + assert_eq!(block.to_properties_map()["layers"], "1"); + } +} diff --git a/libcraft/blocks/src/registry.rs b/libcraft/blocks/src/registry.rs deleted file mode 100644 index 106e57c74..000000000 --- a/libcraft/blocks/src/registry.rs +++ /dev/null @@ -1,158 +0,0 @@ -use crate::data::{RawBlockProperties, RawBlockState, RawBlockStateProperties, ValidProperties}; -use crate::{BlockData, BlockKind}; - -use ahash::AHashMap; -use bytemuck::{Pod, Zeroable}; -use once_cell::sync::Lazy; -use serde::{Deserialize, Serialize}; - -use std::io::Cursor; - -/// A block state. -/// -/// A block state is composed of: -/// * A _kind_, represented by the [`BlockKind`](crate::BlockKind) -/// enum. Each block kind corresponds to a Minecraft block, like "red wool" -/// or "chest." -/// * _Data_, or properties, represented by structs implementing the [`BlockData`](crate::BlockData) -/// trait. For example, a chest has a "type" property in its block data -/// that determines whether the chest is single or double. -#[derive( - Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, Serialize, Deserialize, Zeroable, Pod, -)] -#[repr(transparent)] -pub struct BlockState { - id: u16, -} - -impl BlockState { - /// Gets this block as a struct implementing the [`BlockData`](crate::BlockData) - /// interface. - /// - /// If this block is not an instance of `T`, then returns `None`. - /// - /// # Warning - /// The returned `BlockData` is not linked with this `BlockState` instance. - /// You need to call [`BlockState::set_data`] to apply any changes made to the block data. - pub fn data_as(self) -> Option { - T::from_raw(&self.raw().properties, self.get_valid_properties()) - } - - /// Applies the given `BlockData` to this block state. - /// - /// All property values in `data` override existing properties - /// in `self`. - pub fn set_data(&mut self, data: T) { - let mut raw = self.raw().properties.clone(); - data.apply(&mut raw); - if let Some(new_block) = Self::from_raw(&raw) { - *self = new_block; - } - } - - /// Returns whether this is the default block state for - /// the block kind. - pub fn is_default(self) -> bool { - self.raw().default - } - - /// Gets the ID of this block state. - /// - /// Block state IDs are not stable between Minecraft versions. - pub fn id(self) -> u16 { - self.id - } - - /// Creates a block state from an ID. - /// Returns `None` if the ID is invalid. - /// - /// Block state IDs are not stable between Minecraft versions. - pub fn from_id(id: u16) -> Option { - let _state = REGISTRY.raw_state(id)?; - Some(Self { id }) - } - - /// Determines whether this block state is valid. - pub fn is_valid(self) -> bool { - REGISTRY.raw_state(self.id).is_some() - } - - pub fn get_valid_properties(&self) -> &'static ValidProperties { - REGISTRY.valid_properties.get(&self.raw().kind).unwrap() - } - - /// Gets the raw block state for this block state. - pub(crate) fn raw(&self) -> &RawBlockState { - REGISTRY.raw_state(self.id).expect("bad block") - } - - /// Creates a block state from its raw properties. - pub(crate) fn from_raw(raw: &RawBlockStateProperties) -> Option { - let id = REGISTRY.id_for_state(raw)?; - Some(Self { id }) - } -} - -static REGISTRY: Lazy = Lazy::new(BlockRegistry::new); - -struct BlockRegistry { - states: Vec, - id_mapping: AHashMap, - valid_properties: AHashMap, -} - -impl BlockRegistry { - fn new() -> Self { - const STATE_DATA: &[u8] = include_bytes!("../assets/raw_block_states.bc.gz"); - let state_reader = flate2::bufread::GzDecoder::new(Cursor::new(STATE_DATA)); - let states: Vec = - bincode::deserialize_from(state_reader).expect("malformed block state data"); - - const PROPERTY_DATA: &[u8] = include_bytes!("../assets/raw_block_properties.bc.gz"); - let property_reader = flate2::bufread::GzDecoder::new(Cursor::new(PROPERTY_DATA)); - let properties: Vec = - bincode::deserialize_from(property_reader).expect("malformed block properties"); - - // Ensure that indexes match IDs. - #[cfg(debug_assertions)] - { - for (index, state) in states.iter().enumerate() { - assert_eq!(index, state.id as usize); - } - } - - let id_mapping = states - .iter() - .map(|state| (state.properties.clone(), state.id)) - .collect(); - - let valid_properties = properties - .iter() - .map(|properties| (properties.kind, properties.valid_properties.clone())) - .collect(); - - Self { - states, - id_mapping, - valid_properties, - } - } - - fn raw_state(&self, id: u16) -> Option<&RawBlockState> { - self.states.get(id as usize) - } - - fn id_for_state(&self, state: &RawBlockStateProperties) -> Option { - self.id_mapping.get(state).copied() - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn block_registry_creates_successfully() { - let _ = BlockRegistry::new(); - } -} diff --git a/libcraft/blocks/src/simplified_block.rs b/libcraft/blocks/src/simplified_block.rs index 2ad8b9c8d..8eb713c23 100644 --- a/libcraft/blocks/src/simplified_block.rs +++ b/libcraft/blocks/src/simplified_block.rs @@ -2,1145 +2,1854 @@ use crate::BlockKind; #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub enum SimplifiedBlockKind { + ActivatorRail, Air, - Planks, - Sapling, - Log, - Leaves, - Bed, - Wool, - Flower, - WoodenPressurePlate, - StainedGlass, - WoodenTrapdoor, - WoodenButton, + AmethystBlock, + AmethystCluster, + AncientDebris, + Andesite, + AndesiteWall, Anvil, - GlazedTeracotta, - Teracotta, - StainedGlassPane, - Carpet, - WallBanner, + AttachedMelonStem, + AttachedPumpkinStem, + Azalea, + Bamboo, Banner, - Slab, - Stairs, - FenceGate, - Fence, - WoodenDoor, - ShulkerBox, + Barrel, + Barrier, + Basalt, + Beacon, + Bed, + Bedrock, + BeeNest, + Beehive, + Beetroots, + Bell, + BigDripleaf, + BigDripleafStem, + BlackCandle, + BlackCandleCake, + Blackstone, + BlackstoneWall, + BlastFurnace, + BlueCandle, + BlueCandleCake, + BlueIce, + BoneBlock, + Bookshelf, + BrewingStand, + BrickWall, + Bricks, + BrownCandle, + BrownCandleCake, + BrownMushroomBlock, + BubbleColumn, + BuddingAmethyst, + Cactus, + Cake, + Calcite, + Campfire, + Candle, + CandleCake, + Carpet, + Carrots, + CartographyTable, + CarvedPumpkin, + Cauldron, + CaveVines, + CaveVinesPlant, + Chain, + ChainCommandBlock, + Chest, + ChiseledDeepslate, + ChiseledNetherBricks, + ChiseledPolishedBlackstone, + ChiseledQuartzBlock, + ChiseledRedSandstone, + ChiseledSandstone, + ChiseledStoneBricks, + ChorusFlower, + ChorusPlant, + Clay, + CoalBlock, + CoalOre, + CoarseDirt, + CobbledDeepslate, + CobbledDeepslateWall, + Cobblestone, + CobblestoneWall, + Cobweb, + Cocoa, + CommandBlock, + Comparator, + Composter, Concrete, ConcretePowder, + Conduit, + CopperBlock, + CopperOre, Coral, CoralBlock, CoralFan, CoralWallFan, - Mushroom, - WallSign, - Sign, - Stone, - Granite, - PolishedGranite, + Cornflower, + CrackedDeepslateBricks, + CrackedDeepslateTiles, + CrackedNetherBricks, + CrackedPolishedBlackstoneBricks, + CrackedStoneBricks, + CraftingTable, + CreeperHead, + CreeperWallHead, + CrimsonButton, + CrimsonDoor, + CrimsonFungus, + CrimsonHyphae, + CrimsonNylium, + CrimsonPressurePlate, + CrimsonRoots, + CrimsonStem, + CrimsonTrapdoor, + CryingObsidian, + CutCopper, + CutRedSandstone, + CutSandstone, + CyanCandle, + CyanCandleCake, + DarkPrismarine, + DaylightDetector, + DeadBush, + Deepslate, + DeepslateBrickWall, + DeepslateBricks, + DeepslateCoalOre, + DeepslateCopperOre, + DeepslateDiamondOre, + DeepslateEmeraldOre, + DeepslateGoldOre, + DeepslateIronOre, + DeepslateLapisOre, + DeepslateRedstoneOre, + DeepslateTileWall, + DeepslateTiles, + DetectorRail, + DiamondBlock, + DiamondOre, Diorite, - PolishedDiorite, - Andesite, - PolishedAndesite, - GrassBlock, + DioriteWall, Dirt, - CoarseDirt, - Podzol, - Cobblestone, - Bedrock, - Water, - Lava, - Sand, - RedSand, - Gravel, - GoldOre, - IronOre, - CoalOre, - NetherGoldOre, - Sponge, - WetSponge, - Glass, - LapisOre, - LapisBlock, + DirtPath, Dispenser, - Sandstone, - ChiseledSandstone, - CutSandstone, - NoteBlock, - PoweredRail, - DetectorRail, - StickyPiston, - Cobweb, - Grass, + DragonEgg, + DragonHead, + DragonWallHead, + DriedKelpBlock, + DripstoneBlock, + Dropper, + EmeraldBlock, + EmeraldOre, + EnchantingTable, + EndGateway, + EndPortal, + EndPortalFrame, + EndRod, + EndStone, + EndStoneBrickWall, + EndStoneBricks, + EnderChest, + ExposedCopper, + ExposedCutCopper, + Farmland, + Fence, + FenceGate, Fern, - DeadBush, - Seagrass, - TallSeagrass, - Piston, - PistonHead, - MovingPiston, - Cornflower, - WitherRose, - LilyOfTheValley, - GoldBlock, - IronBlock, - Bricks, - Tnt, - Bookshelf, - MossyCobblestone, - Obsidian, - Torch, - WallTorch, Fire, - SoulFire, - Spawner, - Chest, - RedstoneWire, - DiamondOre, - DiamondBlock, - CraftingTable, - Wheat, - Farmland, + FletchingTable, + Flower, + FlowerPot, + FloweringAzalea, + FrostedIce, Furnace, - Ladder, - Rail, - Lever, - StonePressurePlate, - IronDoor, - RedstoneOre, - RedstoneTorch, - RedstoneWallTorch, - StoneButton, - Snow, - Ice, - SnowBlock, - Cactus, - Clay, - SugarCane, - Jukebox, - Pumpkin, - Netherrack, - SoulSand, - SoulSoil, - Basalt, - PolishedBasalt, - SoulTorch, - SoulWallTorch, + GildedBlackstone, + Glass, + GlassPane, + GlazedTeracotta, + GlowLichen, Glowstone, - NetherPortal, - CarvedPumpkin, - JackOLantern, - Cake, - Repeater, - StoneBricks, - MossyStoneBricks, - CrackedStoneBricks, - ChiseledStoneBricks, - InfestedStone, + GoldBlock, + GoldOre, + Granite, + GraniteWall, + Grass, + GrassBlock, + Gravel, + GrayCandle, + GrayCandleCake, + GreenCandle, + GreenCandleCake, + Grindstone, + HangingRoots, + HayBlock, + HeavyWeightedPressurePlate, + HoneyBlock, + HoneycombBlock, + Hopper, + Ice, + InfestedChiseledStoneBricks, InfestedCobblestone, - InfestedStoneBricks, - InfestedMossyStoneBricks, InfestedCrackedStoneBricks, - InfestedChiseledStoneBricks, - BrownMushroomBlock, - RedMushroomBlock, - MushroomStem, + InfestedDeepslate, + InfestedMossyStoneBricks, + InfestedStone, + InfestedStoneBricks, IronBars, - Chain, - GlassPane, + IronBlock, + IronDoor, + IronOre, + IronTrapdoor, + JackOLantern, + Jigsaw, + Jukebox, + Kelp, + KelpPlant, + Ladder, + Lantern, + LapisBlock, + LapisOre, + LargeAmethystBud, + LargeFern, + Lava, + LavaCauldron, + Leaves, + Lectern, + Lever, + Light, + LightBlueCandle, + LightBlueCandleCake, + LightGrayCandle, + LightGrayCandleCake, + LightWeightedPressurePlate, + LightningRod, + Lilac, + LilyOfTheValley, + LilyPad, + LimeCandle, + LimeCandleCake, + Lodestone, + Log, + Loom, + MagentaCandle, + MagentaCandleCake, + MagmaBlock, + MediumAmethystBud, Melon, - AttachedPumpkinStem, - AttachedMelonStem, - PumpkinStem, MelonStem, - Vine, + MossBlock, + MossyCobblestone, + MossyCobblestoneWall, + MossyStoneBrickWall, + MossyStoneBricks, + MovingPiston, + Mushroom, + MushroomStem, Mycelium, - LilyPad, + NetherBrickWall, NetherBricks, + NetherGoldOre, + NetherPortal, + NetherQuartzOre, + NetherSprouts, NetherWart, - EnchantingTable, - BrewingStand, - Cauldron, - EndPortal, - EndPortalFrame, - EndStone, - DragonEgg, - RedstoneLamp, - Cocoa, - EmeraldOre, - EnderChest, - TripwireHook, - Tripwire, - EmeraldBlock, - CommandBlock, - Beacon, - CobblestoneWall, - MossyCobblestoneWall, - FlowerPot, - PottedFern, - PottedDandelion, - PottedPoppy, + NetherWartBlock, + NetheriteBlock, + Netherrack, + NoteBlock, + Observer, + Obsidian, + OrangeCandle, + OrangeCandleCake, + OxidizedCopper, + OxidizedCutCopper, + PackedIce, + Peony, + PinkCandle, + PinkCandleCake, + Piston, + PistonHead, + Planks, + PlayerHead, + PlayerWallHead, + Podzol, + PointedDripstone, + PolishedAndesite, + PolishedBasalt, + PolishedBlackstone, + PolishedBlackstoneBrickWall, + PolishedBlackstoneBricks, + PolishedBlackstoneButton, + PolishedBlackstonePressurePlate, + PolishedBlackstoneWall, + PolishedDeepslate, + PolishedDeepslateWall, + PolishedDiorite, + PolishedGranite, + Potatoes, PottedAllium, + PottedAzaleaBush, + PottedBamboo, + PottedCactus, PottedCornflower, + PottedCrimsonFungus, + PottedCrimsonRoots, + PottedDandelion, + PottedDeadBush, + PottedFern, + PottedFloweringAzaleaBush, PottedLilyOfTheValley, + PottedPoppy, + PottedWarpedFungus, + PottedWarpedRoots, PottedWitherRose, - PottedDeadBush, - PottedCactus, - Carrots, - Potatoes, - SkeletonSkull, - SkeletonWallSkull, - WitherSkeletonSkull, - WitherSkeletonWallSkull, - ZombieHead, - ZombieWallHead, - PlayerHead, - PlayerWallHead, - CreeperHead, - CreeperWallHead, - DragonHead, - DragonWallHead, - TrappedChest, - LightWeightedPressurePlate, - HeavyWeightedPressurePlate, - Comparator, - DaylightDetector, - RedstoneBlock, - NetherQuartzOre, - Hopper, - QuartzBlock, - ChiseledQuartzBlock, - QuartzPillar, - ActivatorRail, - Dropper, - SlimeBlock, - Barrier, - IronTrapdoor, + PowderSnow, + PowderSnowCauldron, + PoweredRail, Prismarine, PrismarineBricks, - DarkPrismarine, - SeaLantern, - HayBlock, - CoalBlock, - PackedIce, - Sunflower, - Lilac, - RoseBush, - Peony, - TallGrass, - LargeFern, - RedSandstone, - ChiseledRedSandstone, - CutRedSandstone, - SmoothStone, - SmoothSandstone, - SmoothQuartz, - SmoothRedSandstone, - EndRod, - ChorusPlant, - ChorusFlower, + PrismarineWall, + Pumpkin, + PumpkinStem, + PurpleCandle, + PurpleCandleCake, PurpurBlock, PurpurPillar, - EndStoneBricks, - Beetroots, - GrassPath, - EndGateway, - RepeatingCommandBlock, - ChainCommandBlock, - FrostedIce, - MagmaBlock, - NetherWartBlock, + QuartzBlock, + QuartzBricks, + QuartzPillar, + Rail, + RawCopperBlock, + RawGoldBlock, + RawIronBlock, + RedCandle, + RedCandleCake, + RedMushroomBlock, + RedNetherBrickWall, RedNetherBricks, - BoneBlock, - StructureVoid, - Observer, - Kelp, - KelpPlant, - DriedKelpBlock, - TurtleEgg, - SeaPickle, - BlueIce, - Conduit, - Bamboo, - PottedBamboo, - BubbleColumn, - BrickWall, - PrismarineWall, + RedSand, + RedSandstone, RedSandstoneWall, - MossyStoneBrickWall, - GraniteWall, - StoneBrickWall, - NetherBrickWall, - AndesiteWall, - RedNetherBrickWall, + RedstoneBlock, + RedstoneLamp, + RedstoneOre, + RedstoneTorch, + RedstoneWallTorch, + RedstoneWire, + Repeater, + RepeatingCommandBlock, + RespawnAnchor, + RootedDirt, + RoseBush, + Sand, + Sandstone, SandstoneWall, - EndStoneBrickWall, - DioriteWall, + Sapling, Scaffolding, - Loom, - Barrel, - Smoker, - BlastFurnace, - CartographyTable, - FletchingTable, - Grindstone, - Lectern, + SculkSensor, + SeaLantern, + SeaPickle, + Seagrass, + Shroomlight, + ShulkerBox, + Sign, + SkeletonSkull, + SkeletonWallSkull, + Slab, + SlimeBlock, + SmallAmethystBud, + SmallDripleaf, SmithingTable, - Stonecutter, - Bell, - Lantern, - SoulLantern, - Campfire, + Smoker, + SmoothBasalt, + SmoothQuartz, + SmoothRedSandstone, + SmoothSandstone, + SmoothStone, + Snow, + SnowBlock, SoulCampfire, - SweetBerryBush, - WarpedStem, - StrippedWarpedStem, - WarpedHyphae, - StrippedWarpedHyphae, - WarpedNylium, - WarpedFungus, - WarpedWartBlock, - WarpedRoots, - NetherSprouts, - CrimsonStem, - StrippedCrimsonStem, - CrimsonHyphae, - StrippedCrimsonHyphae, - CrimsonNylium, - CrimsonFungus, - Shroomlight, - WeepingVines, - WeepingVinesPlant, + SoulFire, + SoulLantern, + SoulSand, + SoulSoil, + SoulTorch, + SoulWallTorch, + Spawner, + Sponge, + SporeBlossom, + StainedGlass, + StainedGlassPane, + Stairs, + StickyPiston, + Stone, + StoneBrickWall, + StoneBricks, + StoneButton, + StonePressurePlate, + Stonecutter, + StrippedCrimsonHyphae, + StrippedCrimsonStem, + StrippedWarpedHyphae, + StrippedWarpedStem, + StructureBlock, + StructureVoid, + SugarCane, + Sunflower, + SweetBerryBush, + TallGrass, + TallSeagrass, + Target, + Teracotta, + TintedGlass, + Tnt, + Torch, + TrappedChest, + Tripwire, + TripwireHook, + Tuff, + TurtleEgg, TwistingVines, TwistingVinesPlant, - CrimsonRoots, - CrimsonPressurePlate, - WarpedPressurePlate, - CrimsonTrapdoor, - WarpedTrapdoor, - CrimsonButton, + Vine, + WallBanner, + WallSign, + WallTorch, WarpedButton, - CrimsonDoor, WarpedDoor, - StructureBlock, - Jigsaw, - Composter, - Target, - BeeNest, - Beehive, - HoneyBlock, - HoneycombBlock, - NetheriteBlock, - AncientDebris, - CryingObsidian, - RespawnAnchor, - PottedCrimsonFungus, - PottedWarpedFungus, - PottedCrimsonRoots, - PottedWarpedRoots, - Lodestone, - Blackstone, - BlackstoneWall, - PolishedBlackstone, - PolishedBlackstoneBricks, - CrackedPolishedBlackstoneBricks, - ChiseledPolishedBlackstone, - PolishedBlackstoneBrickWall, - GildedBlackstone, - PolishedBlackstonePressurePlate, - PolishedBlackstoneButton, - PolishedBlackstoneWall, - ChiseledNetherBricks, - CrackedNetherBricks, - QuartzBricks, + WarpedFungus, + WarpedHyphae, + WarpedNylium, + WarpedPressurePlate, + WarpedRoots, + WarpedStem, + WarpedTrapdoor, + WarpedWartBlock, + Water, + WaterCauldron, + WaxedCopperBlock, + WaxedCutCopper, + WaxedExposedCopper, + WaxedExposedCutCopper, + WaxedOxidizedCopper, + WaxedOxidizedCutCopper, + WaxedWeatheredCopper, + WaxedWeatheredCutCopper, + WeatheredCopper, + WeatheredCutCopper, + WeepingVines, + WeepingVinesPlant, + WetSponge, + Wheat, + WhiteCandle, + WhiteCandleCake, + WitherRose, + WitherSkeletonSkull, + WitherSkeletonWallSkull, + WoodenButton, + WoodenDoor, + WoodenPressurePlate, + WoodenTrapdoor, + Wool, + YellowCandle, + YellowCandleCake, + ZombieHead, + ZombieWallHead, +} +impl SimplifiedBlockKind { + #[inline] + pub fn values() -> &'static [SimplifiedBlockKind] { + use SimplifiedBlockKind::*; + &[ + ActivatorRail, + Air, + AmethystBlock, + AmethystCluster, + AncientDebris, + Andesite, + AndesiteWall, + Anvil, + AttachedMelonStem, + AttachedPumpkinStem, + Azalea, + Bamboo, + Banner, + Barrel, + Barrier, + Basalt, + Beacon, + Bed, + Bedrock, + BeeNest, + Beehive, + Beetroots, + Bell, + BigDripleaf, + BigDripleafStem, + BlackCandle, + BlackCandleCake, + Blackstone, + BlackstoneWall, + BlastFurnace, + BlueCandle, + BlueCandleCake, + BlueIce, + BoneBlock, + Bookshelf, + BrewingStand, + BrickWall, + Bricks, + BrownCandle, + BrownCandleCake, + BrownMushroomBlock, + BubbleColumn, + BuddingAmethyst, + Cactus, + Cake, + Calcite, + Campfire, + Candle, + CandleCake, + Carpet, + Carrots, + CartographyTable, + CarvedPumpkin, + Cauldron, + CaveVines, + CaveVinesPlant, + Chain, + ChainCommandBlock, + Chest, + ChiseledDeepslate, + ChiseledNetherBricks, + ChiseledPolishedBlackstone, + ChiseledQuartzBlock, + ChiseledRedSandstone, + ChiseledSandstone, + ChiseledStoneBricks, + ChorusFlower, + ChorusPlant, + Clay, + CoalBlock, + CoalOre, + CoarseDirt, + CobbledDeepslate, + CobbledDeepslateWall, + Cobblestone, + CobblestoneWall, + Cobweb, + Cocoa, + CommandBlock, + Comparator, + Composter, + Concrete, + ConcretePowder, + Conduit, + CopperBlock, + CopperOre, + Coral, + CoralBlock, + CoralFan, + CoralWallFan, + Cornflower, + CrackedDeepslateBricks, + CrackedDeepslateTiles, + CrackedNetherBricks, + CrackedPolishedBlackstoneBricks, + CrackedStoneBricks, + CraftingTable, + CreeperHead, + CreeperWallHead, + CrimsonButton, + CrimsonDoor, + CrimsonFungus, + CrimsonHyphae, + CrimsonNylium, + CrimsonPressurePlate, + CrimsonRoots, + CrimsonStem, + CrimsonTrapdoor, + CryingObsidian, + CutCopper, + CutRedSandstone, + CutSandstone, + CyanCandle, + CyanCandleCake, + DarkPrismarine, + DaylightDetector, + DeadBush, + Deepslate, + DeepslateBrickWall, + DeepslateBricks, + DeepslateCoalOre, + DeepslateCopperOre, + DeepslateDiamondOre, + DeepslateEmeraldOre, + DeepslateGoldOre, + DeepslateIronOre, + DeepslateLapisOre, + DeepslateRedstoneOre, + DeepslateTileWall, + DeepslateTiles, + DetectorRail, + DiamondBlock, + DiamondOre, + Diorite, + DioriteWall, + Dirt, + DirtPath, + Dispenser, + DragonEgg, + DragonHead, + DragonWallHead, + DriedKelpBlock, + DripstoneBlock, + Dropper, + EmeraldBlock, + EmeraldOre, + EnchantingTable, + EndGateway, + EndPortal, + EndPortalFrame, + EndRod, + EndStone, + EndStoneBrickWall, + EndStoneBricks, + EnderChest, + ExposedCopper, + ExposedCutCopper, + Farmland, + Fence, + FenceGate, + Fern, + Fire, + FletchingTable, + Flower, + FlowerPot, + FloweringAzalea, + FrostedIce, + Furnace, + GildedBlackstone, + Glass, + GlassPane, + GlazedTeracotta, + GlowLichen, + Glowstone, + GoldBlock, + GoldOre, + Granite, + GraniteWall, + Grass, + GrassBlock, + Gravel, + GrayCandle, + GrayCandleCake, + GreenCandle, + GreenCandleCake, + Grindstone, + HangingRoots, + HayBlock, + HeavyWeightedPressurePlate, + HoneyBlock, + HoneycombBlock, + Hopper, + Ice, + InfestedChiseledStoneBricks, + InfestedCobblestone, + InfestedCrackedStoneBricks, + InfestedDeepslate, + InfestedMossyStoneBricks, + InfestedStone, + InfestedStoneBricks, + IronBars, + IronBlock, + IronDoor, + IronOre, + IronTrapdoor, + JackOLantern, + Jigsaw, + Jukebox, + Kelp, + KelpPlant, + Ladder, + Lantern, + LapisBlock, + LapisOre, + LargeAmethystBud, + LargeFern, + Lava, + LavaCauldron, + Leaves, + Lectern, + Lever, + Light, + LightBlueCandle, + LightBlueCandleCake, + LightGrayCandle, + LightGrayCandleCake, + LightWeightedPressurePlate, + LightningRod, + Lilac, + LilyOfTheValley, + LilyPad, + LimeCandle, + LimeCandleCake, + Lodestone, + Log, + Loom, + MagentaCandle, + MagentaCandleCake, + MagmaBlock, + MediumAmethystBud, + Melon, + MelonStem, + MossBlock, + MossyCobblestone, + MossyCobblestoneWall, + MossyStoneBrickWall, + MossyStoneBricks, + MovingPiston, + Mushroom, + MushroomStem, + Mycelium, + NetherBrickWall, + NetherBricks, + NetherGoldOre, + NetherPortal, + NetherQuartzOre, + NetherSprouts, + NetherWart, + NetherWartBlock, + NetheriteBlock, + Netherrack, + NoteBlock, + Observer, + Obsidian, + OrangeCandle, + OrangeCandleCake, + OxidizedCopper, + OxidizedCutCopper, + PackedIce, + Peony, + PinkCandle, + PinkCandleCake, + Piston, + PistonHead, + Planks, + PlayerHead, + PlayerWallHead, + Podzol, + PointedDripstone, + PolishedAndesite, + PolishedBasalt, + PolishedBlackstone, + PolishedBlackstoneBrickWall, + PolishedBlackstoneBricks, + PolishedBlackstoneButton, + PolishedBlackstonePressurePlate, + PolishedBlackstoneWall, + PolishedDeepslate, + PolishedDeepslateWall, + PolishedDiorite, + PolishedGranite, + Potatoes, + PottedAllium, + PottedAzaleaBush, + PottedBamboo, + PottedCactus, + PottedCornflower, + PottedCrimsonFungus, + PottedCrimsonRoots, + PottedDandelion, + PottedDeadBush, + PottedFern, + PottedFloweringAzaleaBush, + PottedLilyOfTheValley, + PottedPoppy, + PottedWarpedFungus, + PottedWarpedRoots, + PottedWitherRose, + PowderSnow, + PowderSnowCauldron, + PoweredRail, + Prismarine, + PrismarineBricks, + PrismarineWall, + Pumpkin, + PumpkinStem, + PurpleCandle, + PurpleCandleCake, + PurpurBlock, + PurpurPillar, + QuartzBlock, + QuartzBricks, + QuartzPillar, + Rail, + RawCopperBlock, + RawGoldBlock, + RawIronBlock, + RedCandle, + RedCandleCake, + RedMushroomBlock, + RedNetherBrickWall, + RedNetherBricks, + RedSand, + RedSandstone, + RedSandstoneWall, + RedstoneBlock, + RedstoneLamp, + RedstoneOre, + RedstoneTorch, + RedstoneWallTorch, + RedstoneWire, + Repeater, + RepeatingCommandBlock, + RespawnAnchor, + RootedDirt, + RoseBush, + Sand, + Sandstone, + SandstoneWall, + Sapling, + Scaffolding, + SculkSensor, + SeaLantern, + SeaPickle, + Seagrass, + Shroomlight, + ShulkerBox, + Sign, + SkeletonSkull, + SkeletonWallSkull, + Slab, + SlimeBlock, + SmallAmethystBud, + SmallDripleaf, + SmithingTable, + Smoker, + SmoothBasalt, + SmoothQuartz, + SmoothRedSandstone, + SmoothSandstone, + SmoothStone, + Snow, + SnowBlock, + SoulCampfire, + SoulFire, + SoulLantern, + SoulSand, + SoulSoil, + SoulTorch, + SoulWallTorch, + Spawner, + Sponge, + SporeBlossom, + StainedGlass, + StainedGlassPane, + Stairs, + StickyPiston, + Stone, + StoneBrickWall, + StoneBricks, + StoneButton, + StonePressurePlate, + Stonecutter, + StrippedCrimsonHyphae, + StrippedCrimsonStem, + StrippedWarpedHyphae, + StrippedWarpedStem, + StructureBlock, + StructureVoid, + SugarCane, + Sunflower, + SweetBerryBush, + TallGrass, + TallSeagrass, + Target, + Teracotta, + TintedGlass, + Tnt, + Torch, + TrappedChest, + Tripwire, + TripwireHook, + Tuff, + TurtleEgg, + TwistingVines, + TwistingVinesPlant, + Vine, + WallBanner, + WallSign, + WallTorch, + WarpedButton, + WarpedDoor, + WarpedFungus, + WarpedHyphae, + WarpedNylium, + WarpedPressurePlate, + WarpedRoots, + WarpedStem, + WarpedTrapdoor, + WarpedWartBlock, + Water, + WaterCauldron, + WaxedCopperBlock, + WaxedCutCopper, + WaxedExposedCopper, + WaxedExposedCutCopper, + WaxedOxidizedCopper, + WaxedOxidizedCutCopper, + WaxedWeatheredCopper, + WaxedWeatheredCutCopper, + WeatheredCopper, + WeatheredCutCopper, + WeepingVines, + WeepingVinesPlant, + WetSponge, + Wheat, + WhiteCandle, + WhiteCandleCake, + WitherRose, + WitherSkeletonSkull, + WitherSkeletonWallSkull, + WoodenButton, + WoodenDoor, + WoodenPressurePlate, + WoodenTrapdoor, + Wool, + YellowCandle, + YellowCandleCake, + ZombieHead, + ZombieWallHead, + ] + } } - -#[allow(warnings)] -#[allow(clippy::all)] impl BlockKind { - /// Returns the `simplified_kind` property of this `BlockKind`. + #[doc = "Returns the `simplified_kind` property of this `BlockKind`."] + #[inline] pub fn simplified_kind(&self) -> SimplifiedBlockKind { match self { - BlockKind::Air => SimplifiedBlockKind::Air, - BlockKind::Stone => SimplifiedBlockKind::Stone, - BlockKind::Granite => SimplifiedBlockKind::Granite, - BlockKind::PolishedGranite => SimplifiedBlockKind::PolishedGranite, - BlockKind::Diorite => SimplifiedBlockKind::Diorite, - BlockKind::PolishedDiorite => SimplifiedBlockKind::PolishedDiorite, - BlockKind::Andesite => SimplifiedBlockKind::Andesite, - BlockKind::PolishedAndesite => SimplifiedBlockKind::PolishedAndesite, - BlockKind::GrassBlock => SimplifiedBlockKind::GrassBlock, - BlockKind::Dirt => SimplifiedBlockKind::Dirt, - BlockKind::CoarseDirt => SimplifiedBlockKind::CoarseDirt, - BlockKind::Podzol => SimplifiedBlockKind::Podzol, - BlockKind::Cobblestone => SimplifiedBlockKind::Cobblestone, - BlockKind::OakPlanks => SimplifiedBlockKind::Planks, - BlockKind::SprucePlanks => SimplifiedBlockKind::Planks, - BlockKind::BirchPlanks => SimplifiedBlockKind::Planks, - BlockKind::JunglePlanks => SimplifiedBlockKind::Planks, - BlockKind::AcaciaPlanks => SimplifiedBlockKind::Planks, - BlockKind::DarkOakPlanks => SimplifiedBlockKind::Planks, - BlockKind::OakSapling => SimplifiedBlockKind::Sapling, - BlockKind::SpruceSapling => SimplifiedBlockKind::Sapling, - BlockKind::BirchSapling => SimplifiedBlockKind::Sapling, - BlockKind::JungleSapling => SimplifiedBlockKind::Sapling, - BlockKind::AcaciaSapling => SimplifiedBlockKind::Sapling, - BlockKind::DarkOakSapling => SimplifiedBlockKind::Sapling, - BlockKind::Bedrock => SimplifiedBlockKind::Bedrock, - BlockKind::Water => SimplifiedBlockKind::Water, - BlockKind::Lava => SimplifiedBlockKind::Lava, - BlockKind::Sand => SimplifiedBlockKind::Sand, - BlockKind::RedSand => SimplifiedBlockKind::RedSand, - BlockKind::Gravel => SimplifiedBlockKind::Gravel, - BlockKind::GoldOre => SimplifiedBlockKind::GoldOre, - BlockKind::IronOre => SimplifiedBlockKind::IronOre, - BlockKind::CoalOre => SimplifiedBlockKind::CoalOre, - BlockKind::NetherGoldOre => SimplifiedBlockKind::NetherGoldOre, - BlockKind::OakLog => SimplifiedBlockKind::Log, - BlockKind::SpruceLog => SimplifiedBlockKind::Log, + BlockKind::SmoothQuartz => SimplifiedBlockKind::SmoothQuartz, + BlockKind::LimeTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::CutSandstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::ZombieWallHead => SimplifiedBlockKind::ZombieWallHead, + BlockKind::BlueOrchid => SimplifiedBlockKind::Flower, + BlockKind::OakFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::WaxedCutCopper => SimplifiedBlockKind::WaxedCutCopper, + BlockKind::PistonHead => SimplifiedBlockKind::PistonHead, + BlockKind::DarkPrismarineStairs => SimplifiedBlockKind::Stairs, BlockKind::BirchLog => SimplifiedBlockKind::Log, - BlockKind::JungleLog => SimplifiedBlockKind::Log, - BlockKind::AcaciaLog => SimplifiedBlockKind::Log, - BlockKind::DarkOakLog => SimplifiedBlockKind::Log, - BlockKind::StrippedSpruceLog => SimplifiedBlockKind::Log, + BlockKind::LightBlueBanner => SimplifiedBlockKind::Banner, + BlockKind::Bamboo => SimplifiedBlockKind::Bamboo, + BlockKind::CaveAir => SimplifiedBlockKind::Air, + BlockKind::GoldOre => SimplifiedBlockKind::GoldOre, + BlockKind::SmoothBasalt => SimplifiedBlockKind::SmoothBasalt, + BlockKind::DeadBubbleCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::Shroomlight => SimplifiedBlockKind::Shroomlight, + BlockKind::BrainCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::SmoothSandstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::OxeyeDaisy => SimplifiedBlockKind::Flower, + BlockKind::Cocoa => SimplifiedBlockKind::Cocoa, + BlockKind::AcaciaLeaves => SimplifiedBlockKind::Leaves, + BlockKind::PolishedBlackstoneBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::YellowBed => SimplifiedBlockKind::Bed, + BlockKind::MagentaCandleCake => SimplifiedBlockKind::MagentaCandleCake, + BlockKind::Chain => SimplifiedBlockKind::Chain, + BlockKind::WaxedOxidizedCutCopper => SimplifiedBlockKind::WaxedOxidizedCutCopper, + BlockKind::MagentaGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::WeatheredCutCopper => SimplifiedBlockKind::WeatheredCutCopper, + BlockKind::NetherBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::Lantern => SimplifiedBlockKind::Lantern, + BlockKind::DarkOakFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::RedNetherBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::BrownBanner => SimplifiedBlockKind::Banner, + BlockKind::BrickSlab => SimplifiedBlockKind::Slab, + BlockKind::WitherSkeletonSkull => SimplifiedBlockKind::WitherSkeletonSkull, + BlockKind::MagentaStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::SeaPickle => SimplifiedBlockKind::SeaPickle, + BlockKind::RepeatingCommandBlock => SimplifiedBlockKind::RepeatingCommandBlock, + BlockKind::WarpedHyphae => SimplifiedBlockKind::WarpedHyphae, + BlockKind::MagentaStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::MagentaWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::WarpedWartBlock => SimplifiedBlockKind::WarpedWartBlock, + BlockKind::MushroomStem => SimplifiedBlockKind::MushroomStem, + BlockKind::SoulLantern => SimplifiedBlockKind::SoulLantern, + BlockKind::InfestedCobblestone => SimplifiedBlockKind::InfestedCobblestone, + BlockKind::GlassPane => SimplifiedBlockKind::GlassPane, + BlockKind::BirchLeaves => SimplifiedBlockKind::Leaves, + BlockKind::LightGrayTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::StrippedCrimsonHyphae => SimplifiedBlockKind::StrippedCrimsonHyphae, + BlockKind::PottedLilyOfTheValley => SimplifiedBlockKind::PottedLilyOfTheValley, BlockKind::StrippedBirchLog => SimplifiedBlockKind::Log, - BlockKind::StrippedJungleLog => SimplifiedBlockKind::Log, - BlockKind::StrippedAcaciaLog => SimplifiedBlockKind::Log, - BlockKind::StrippedDarkOakLog => SimplifiedBlockKind::Log, - BlockKind::StrippedOakLog => SimplifiedBlockKind::Log, - BlockKind::OakWood => SimplifiedBlockKind::Log, - BlockKind::SpruceWood => SimplifiedBlockKind::Log, - BlockKind::BirchWood => SimplifiedBlockKind::Log, - BlockKind::JungleWood => SimplifiedBlockKind::Log, - BlockKind::AcaciaWood => SimplifiedBlockKind::Log, + BlockKind::LightGrayStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::StrippedWarpedHyphae => SimplifiedBlockKind::StrippedWarpedHyphae, + BlockKind::Stone => SimplifiedBlockKind::Stone, + BlockKind::CommandBlock => SimplifiedBlockKind::CommandBlock, + BlockKind::LapisBlock => SimplifiedBlockKind::LapisBlock, + BlockKind::PottedBirchSapling => SimplifiedBlockKind::Sapling, + BlockKind::WarpedPlanks => SimplifiedBlockKind::Planks, + BlockKind::AcaciaPlanks => SimplifiedBlockKind::Planks, + BlockKind::SpruceTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::RedstoneOre => SimplifiedBlockKind::RedstoneOre, + BlockKind::LimeConcrete => SimplifiedBlockKind::Concrete, + BlockKind::OrangeTulip => SimplifiedBlockKind::Flower, + BlockKind::CrackedDeepslateBricks => SimplifiedBlockKind::CrackedDeepslateBricks, + BlockKind::PottedWitherRose => SimplifiedBlockKind::PottedWitherRose, + BlockKind::DeadBubbleCoral => SimplifiedBlockKind::Coral, + BlockKind::JungleFence => SimplifiedBlockKind::Fence, + BlockKind::SpruceWallSign => SimplifiedBlockKind::WallSign, + BlockKind::WhiteCandleCake => SimplifiedBlockKind::WhiteCandleCake, + BlockKind::JunglePressurePlate => SimplifiedBlockKind::WoodenPressurePlate, + BlockKind::FrostedIce => SimplifiedBlockKind::FrostedIce, + BlockKind::Smoker => SimplifiedBlockKind::Smoker, + BlockKind::Target => SimplifiedBlockKind::Target, + BlockKind::ChiseledRedSandstone => SimplifiedBlockKind::ChiseledRedSandstone, + BlockKind::GreenConcrete => SimplifiedBlockKind::Concrete, + BlockKind::CrackedStoneBricks => SimplifiedBlockKind::CrackedStoneBricks, + BlockKind::GrayTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::PoweredRail => SimplifiedBlockKind::PoweredRail, + BlockKind::DarkPrismarineSlab => SimplifiedBlockKind::Slab, + BlockKind::RedstoneWallTorch => SimplifiedBlockKind::RedstoneWallTorch, + BlockKind::Kelp => SimplifiedBlockKind::Kelp, + BlockKind::DaylightDetector => SimplifiedBlockKind::DaylightDetector, + BlockKind::GrayConcrete => SimplifiedBlockKind::Concrete, + BlockKind::BlackCandle => SimplifiedBlockKind::BlackCandle, + BlockKind::Furnace => SimplifiedBlockKind::Furnace, + BlockKind::PolishedBlackstone => SimplifiedBlockKind::PolishedBlackstone, + BlockKind::DriedKelpBlock => SimplifiedBlockKind::DriedKelpBlock, BlockKind::DarkOakWood => SimplifiedBlockKind::Log, - BlockKind::StrippedOakWood => SimplifiedBlockKind::Log, - BlockKind::StrippedSpruceWood => SimplifiedBlockKind::Log, - BlockKind::StrippedBirchWood => SimplifiedBlockKind::Log, - BlockKind::StrippedJungleWood => SimplifiedBlockKind::Log, - BlockKind::StrippedAcaciaWood => SimplifiedBlockKind::Log, - BlockKind::StrippedDarkOakWood => SimplifiedBlockKind::Log, - BlockKind::OakLeaves => SimplifiedBlockKind::Leaves, + BlockKind::WaxedWeatheredCutCopper => SimplifiedBlockKind::WaxedWeatheredCutCopper, + BlockKind::MagentaShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::JungleSapling => SimplifiedBlockKind::Sapling, + BlockKind::BlackShulkerBox => SimplifiedBlockKind::ShulkerBox, BlockKind::SpruceLeaves => SimplifiedBlockKind::Leaves, - BlockKind::BirchLeaves => SimplifiedBlockKind::Leaves, - BlockKind::JungleLeaves => SimplifiedBlockKind::Leaves, - BlockKind::AcaciaLeaves => SimplifiedBlockKind::Leaves, - BlockKind::DarkOakLeaves => SimplifiedBlockKind::Leaves, - BlockKind::Sponge => SimplifiedBlockKind::Sponge, - BlockKind::WetSponge => SimplifiedBlockKind::WetSponge, - BlockKind::Glass => SimplifiedBlockKind::Glass, - BlockKind::LapisOre => SimplifiedBlockKind::LapisOre, - BlockKind::LapisBlock => SimplifiedBlockKind::LapisBlock, - BlockKind::Dispenser => SimplifiedBlockKind::Dispenser, - BlockKind::Sandstone => SimplifiedBlockKind::Sandstone, - BlockKind::ChiseledSandstone => SimplifiedBlockKind::ChiseledSandstone, - BlockKind::CutSandstone => SimplifiedBlockKind::CutSandstone, - BlockKind::NoteBlock => SimplifiedBlockKind::NoteBlock, - BlockKind::WhiteBed => SimplifiedBlockKind::Bed, - BlockKind::OrangeBed => SimplifiedBlockKind::Bed, - BlockKind::MagentaBed => SimplifiedBlockKind::Bed, - BlockKind::LightBlueBed => SimplifiedBlockKind::Bed, - BlockKind::YellowBed => SimplifiedBlockKind::Bed, - BlockKind::LimeBed => SimplifiedBlockKind::Bed, - BlockKind::PinkBed => SimplifiedBlockKind::Bed, - BlockKind::GrayBed => SimplifiedBlockKind::Bed, - BlockKind::LightGrayBed => SimplifiedBlockKind::Bed, - BlockKind::CyanBed => SimplifiedBlockKind::Bed, + BlockKind::DeadHornCoralFan => SimplifiedBlockKind::CoralFan, BlockKind::PurpleBed => SimplifiedBlockKind::Bed, + BlockKind::PolishedGraniteStairs => SimplifiedBlockKind::Stairs, + BlockKind::TubeCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::OrangeGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, BlockKind::BlueBed => SimplifiedBlockKind::Bed, - BlockKind::BrownBed => SimplifiedBlockKind::Bed, - BlockKind::GreenBed => SimplifiedBlockKind::Bed, - BlockKind::RedBed => SimplifiedBlockKind::Bed, - BlockKind::BlackBed => SimplifiedBlockKind::Bed, - BlockKind::PoweredRail => SimplifiedBlockKind::PoweredRail, - BlockKind::DetectorRail => SimplifiedBlockKind::DetectorRail, - BlockKind::StickyPiston => SimplifiedBlockKind::StickyPiston, - BlockKind::Cobweb => SimplifiedBlockKind::Cobweb, - BlockKind::Grass => SimplifiedBlockKind::Grass, - BlockKind::Fern => SimplifiedBlockKind::Fern, - BlockKind::DeadBush => SimplifiedBlockKind::DeadBush, - BlockKind::Seagrass => SimplifiedBlockKind::Seagrass, - BlockKind::TallSeagrass => SimplifiedBlockKind::TallSeagrass, - BlockKind::Piston => SimplifiedBlockKind::Piston, - BlockKind::PistonHead => SimplifiedBlockKind::PistonHead, - BlockKind::WhiteWool => SimplifiedBlockKind::Wool, - BlockKind::OrangeWool => SimplifiedBlockKind::Wool, - BlockKind::MagentaWool => SimplifiedBlockKind::Wool, - BlockKind::LightBlueWool => SimplifiedBlockKind::Wool, - BlockKind::YellowWool => SimplifiedBlockKind::Wool, - BlockKind::LimeWool => SimplifiedBlockKind::Wool, - BlockKind::PinkWool => SimplifiedBlockKind::Wool, - BlockKind::GrayWool => SimplifiedBlockKind::Wool, - BlockKind::LightGrayWool => SimplifiedBlockKind::Wool, - BlockKind::CyanWool => SimplifiedBlockKind::Wool, - BlockKind::PurpleWool => SimplifiedBlockKind::Wool, - BlockKind::BlueWool => SimplifiedBlockKind::Wool, - BlockKind::BrownWool => SimplifiedBlockKind::Wool, - BlockKind::GreenWool => SimplifiedBlockKind::Wool, - BlockKind::RedWool => SimplifiedBlockKind::Wool, - BlockKind::BlackWool => SimplifiedBlockKind::Wool, - BlockKind::MovingPiston => SimplifiedBlockKind::MovingPiston, - BlockKind::Dandelion => SimplifiedBlockKind::Flower, - BlockKind::Poppy => SimplifiedBlockKind::Flower, - BlockKind::BlueOrchid => SimplifiedBlockKind::Flower, - BlockKind::Allium => SimplifiedBlockKind::Flower, - BlockKind::AzureBluet => SimplifiedBlockKind::Flower, - BlockKind::RedTulip => SimplifiedBlockKind::Flower, - BlockKind::OrangeTulip => SimplifiedBlockKind::Flower, - BlockKind::WhiteTulip => SimplifiedBlockKind::Flower, - BlockKind::PinkTulip => SimplifiedBlockKind::Flower, - BlockKind::OxeyeDaisy => SimplifiedBlockKind::Flower, - BlockKind::Cornflower => SimplifiedBlockKind::Cornflower, + BlockKind::PetrifiedOakSlab => SimplifiedBlockKind::Slab, + BlockKind::SoulSand => SimplifiedBlockKind::SoulSand, + BlockKind::BirchPlanks => SimplifiedBlockKind::Planks, + BlockKind::AcaciaWood => SimplifiedBlockKind::Log, + BlockKind::FlowerPot => SimplifiedBlockKind::FlowerPot, + BlockKind::Campfire => SimplifiedBlockKind::Campfire, + BlockKind::NetherBricks => SimplifiedBlockKind::NetherBricks, + BlockKind::JungleSlab => SimplifiedBlockKind::Slab, + BlockKind::OrangeCandle => SimplifiedBlockKind::OrangeCandle, + BlockKind::BirchSapling => SimplifiedBlockKind::Sapling, + BlockKind::DarkPrismarine => SimplifiedBlockKind::DarkPrismarine, + BlockKind::GrayCandle => SimplifiedBlockKind::GrayCandle, + BlockKind::WeepingVinesPlant => SimplifiedBlockKind::WeepingVinesPlant, + BlockKind::CrimsonFence => SimplifiedBlockKind::Fence, + BlockKind::AttachedPumpkinStem => SimplifiedBlockKind::AttachedPumpkinStem, + BlockKind::PottedFloweringAzaleaBush => SimplifiedBlockKind::PottedFloweringAzaleaBush, + BlockKind::YellowCandleCake => SimplifiedBlockKind::YellowCandleCake, + BlockKind::BlackWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::Sponge => SimplifiedBlockKind::Sponge, + BlockKind::SmoothSandstoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::PottedDandelion => SimplifiedBlockKind::PottedDandelion, + BlockKind::PottedAllium => SimplifiedBlockKind::PottedAllium, + BlockKind::JungleWood => SimplifiedBlockKind::Log, + BlockKind::PottedRedTulip => SimplifiedBlockKind::Flower, + BlockKind::PottedSpruceSapling => SimplifiedBlockKind::Sapling, + BlockKind::Beetroots => SimplifiedBlockKind::Beetroots, + BlockKind::KelpPlant => SimplifiedBlockKind::KelpPlant, + BlockKind::WarpedStem => SimplifiedBlockKind::WarpedStem, + BlockKind::MossyStoneBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::PurpleBanner => SimplifiedBlockKind::Banner, + BlockKind::LightningRod => SimplifiedBlockKind::LightningRod, + BlockKind::Conduit => SimplifiedBlockKind::Conduit, + BlockKind::HornCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::Beehive => SimplifiedBlockKind::Beehive, + BlockKind::PolishedAndesite => SimplifiedBlockKind::PolishedAndesite, + BlockKind::Calcite => SimplifiedBlockKind::Calcite, + BlockKind::PinkGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::Sand => SimplifiedBlockKind::Sand, + BlockKind::Clay => SimplifiedBlockKind::Clay, + BlockKind::DirtPath => SimplifiedBlockKind::DirtPath, + BlockKind::MagentaCandle => SimplifiedBlockKind::MagentaCandle, + BlockKind::PinkBed => SimplifiedBlockKind::Bed, + BlockKind::SmallAmethystBud => SimplifiedBlockKind::SmallAmethystBud, BlockKind::WitherRose => SimplifiedBlockKind::WitherRose, - BlockKind::LilyOfTheValley => SimplifiedBlockKind::LilyOfTheValley, - BlockKind::BrownMushroom => SimplifiedBlockKind::Mushroom, - BlockKind::RedMushroom => SimplifiedBlockKind::Mushroom, - BlockKind::GoldBlock => SimplifiedBlockKind::GoldBlock, - BlockKind::IronBlock => SimplifiedBlockKind::IronBlock, - BlockKind::Bricks => SimplifiedBlockKind::Bricks, - BlockKind::Tnt => SimplifiedBlockKind::Tnt, - BlockKind::Bookshelf => SimplifiedBlockKind::Bookshelf, - BlockKind::MossyCobblestone => SimplifiedBlockKind::MossyCobblestone, - BlockKind::Obsidian => SimplifiedBlockKind::Obsidian, - BlockKind::Torch => SimplifiedBlockKind::Torch, - BlockKind::WallTorch => SimplifiedBlockKind::WallTorch, - BlockKind::Fire => SimplifiedBlockKind::Fire, - BlockKind::SoulFire => SimplifiedBlockKind::SoulFire, - BlockKind::Spawner => SimplifiedBlockKind::Spawner, - BlockKind::OakStairs => SimplifiedBlockKind::Stairs, - BlockKind::Chest => SimplifiedBlockKind::Chest, - BlockKind::RedstoneWire => SimplifiedBlockKind::RedstoneWire, - BlockKind::DiamondOre => SimplifiedBlockKind::DiamondOre, - BlockKind::DiamondBlock => SimplifiedBlockKind::DiamondBlock, - BlockKind::CraftingTable => SimplifiedBlockKind::CraftingTable, - BlockKind::Wheat => SimplifiedBlockKind::Wheat, - BlockKind::Farmland => SimplifiedBlockKind::Farmland, - BlockKind::Furnace => SimplifiedBlockKind::Furnace, - BlockKind::OakSign => SimplifiedBlockKind::Sign, - BlockKind::SpruceSign => SimplifiedBlockKind::Sign, - BlockKind::BirchSign => SimplifiedBlockKind::Sign, - BlockKind::AcaciaSign => SimplifiedBlockKind::Sign, - BlockKind::JungleSign => SimplifiedBlockKind::Sign, - BlockKind::DarkOakSign => SimplifiedBlockKind::Sign, - BlockKind::OakDoor => SimplifiedBlockKind::WoodenDoor, - BlockKind::Ladder => SimplifiedBlockKind::Ladder, - BlockKind::Rail => SimplifiedBlockKind::Rail, - BlockKind::CobblestoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::OakWallSign => SimplifiedBlockKind::WallSign, - BlockKind::SpruceWallSign => SimplifiedBlockKind::WallSign, - BlockKind::BirchWallSign => SimplifiedBlockKind::WallSign, - BlockKind::AcaciaWallSign => SimplifiedBlockKind::WallSign, + BlockKind::StoneBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::RedSandstoneWall => SimplifiedBlockKind::RedSandstoneWall, + BlockKind::WhiteTulip => SimplifiedBlockKind::Flower, + BlockKind::BlackBed => SimplifiedBlockKind::Bed, BlockKind::JungleWallSign => SimplifiedBlockKind::WallSign, - BlockKind::DarkOakWallSign => SimplifiedBlockKind::WallSign, - BlockKind::Lever => SimplifiedBlockKind::Lever, - BlockKind::StonePressurePlate => SimplifiedBlockKind::StonePressurePlate, - BlockKind::IronDoor => SimplifiedBlockKind::IronDoor, - BlockKind::OakPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::SprucePressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::BirchPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::JunglePressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::AcaciaPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::DarkOakPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::RedstoneOre => SimplifiedBlockKind::RedstoneOre, - BlockKind::RedstoneTorch => SimplifiedBlockKind::RedstoneTorch, - BlockKind::RedstoneWallTorch => SimplifiedBlockKind::RedstoneWallTorch, - BlockKind::StoneButton => SimplifiedBlockKind::StoneButton, - BlockKind::Snow => SimplifiedBlockKind::Snow, - BlockKind::Ice => SimplifiedBlockKind::Ice, - BlockKind::SnowBlock => SimplifiedBlockKind::SnowBlock, - BlockKind::Cactus => SimplifiedBlockKind::Cactus, - BlockKind::Clay => SimplifiedBlockKind::Clay, - BlockKind::SugarCane => SimplifiedBlockKind::SugarCane, - BlockKind::Jukebox => SimplifiedBlockKind::Jukebox, - BlockKind::OakFence => SimplifiedBlockKind::Fence, - BlockKind::Pumpkin => SimplifiedBlockKind::Pumpkin, - BlockKind::Netherrack => SimplifiedBlockKind::Netherrack, - BlockKind::SoulSand => SimplifiedBlockKind::SoulSand, - BlockKind::SoulSoil => SimplifiedBlockKind::SoulSoil, - BlockKind::Basalt => SimplifiedBlockKind::Basalt, - BlockKind::PolishedBasalt => SimplifiedBlockKind::PolishedBasalt, - BlockKind::SoulTorch => SimplifiedBlockKind::SoulTorch, - BlockKind::SoulWallTorch => SimplifiedBlockKind::SoulWallTorch, - BlockKind::Glowstone => SimplifiedBlockKind::Glowstone, - BlockKind::NetherPortal => SimplifiedBlockKind::NetherPortal, - BlockKind::CarvedPumpkin => SimplifiedBlockKind::CarvedPumpkin, - BlockKind::JackOLantern => SimplifiedBlockKind::JackOLantern, - BlockKind::Cake => SimplifiedBlockKind::Cake, - BlockKind::Repeater => SimplifiedBlockKind::Repeater, - BlockKind::WhiteStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::OrangeStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::MagentaStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::LightBlueStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::YellowStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::LimeStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::PinkStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::RawIronBlock => SimplifiedBlockKind::RawIronBlock, BlockKind::PinkStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::GrayStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::LightGrayStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::CyanStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::PurpleStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::BlueStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::BrownStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::GreenStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::RedStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::BlackStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::OakTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::SpruceTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::BirchTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::JungleTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::AcaciaTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::DarkOakTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::StoneBricks => SimplifiedBlockKind::StoneBricks, - BlockKind::MossyStoneBricks => SimplifiedBlockKind::MossyStoneBricks, - BlockKind::CrackedStoneBricks => SimplifiedBlockKind::CrackedStoneBricks, - BlockKind::ChiseledStoneBricks => SimplifiedBlockKind::ChiseledStoneBricks, - BlockKind::InfestedStone => SimplifiedBlockKind::InfestedStone, - BlockKind::InfestedCobblestone => SimplifiedBlockKind::InfestedCobblestone, - BlockKind::InfestedStoneBricks => SimplifiedBlockKind::InfestedStoneBricks, - BlockKind::InfestedMossyStoneBricks => SimplifiedBlockKind::InfestedMossyStoneBricks, - BlockKind::InfestedCrackedStoneBricks => { - SimplifiedBlockKind::InfestedCrackedStoneBricks + BlockKind::DeepslateTileWall => SimplifiedBlockKind::DeepslateTileWall, + BlockKind::InfestedDeepslate => SimplifiedBlockKind::InfestedDeepslate, + BlockKind::GreenCandleCake => SimplifiedBlockKind::GreenCandleCake, + BlockKind::PottedRedMushroom => SimplifiedBlockKind::Mushroom, + BlockKind::GrayGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::RawGoldBlock => SimplifiedBlockKind::RawGoldBlock, + BlockKind::LightGrayCandle => SimplifiedBlockKind::LightGrayCandle, + BlockKind::RedSandstone => SimplifiedBlockKind::RedSandstone, + BlockKind::OrangeTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::WhiteStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::Tnt => SimplifiedBlockKind::Tnt, + BlockKind::CrimsonDoor => SimplifiedBlockKind::CrimsonDoor, + BlockKind::SugarCane => SimplifiedBlockKind::SugarCane, + BlockKind::BlackstoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::EndGateway => SimplifiedBlockKind::EndGateway, + BlockKind::LightGrayBanner => SimplifiedBlockKind::Banner, + BlockKind::Cobblestone => SimplifiedBlockKind::Cobblestone, + BlockKind::WarpedWallSign => SimplifiedBlockKind::WallSign, + BlockKind::PottedDeadBush => SimplifiedBlockKind::PottedDeadBush, + BlockKind::RedstoneLamp => SimplifiedBlockKind::RedstoneLamp, + BlockKind::PinkCandleCake => SimplifiedBlockKind::PinkCandleCake, + BlockKind::SoulCampfire => SimplifiedBlockKind::SoulCampfire, + BlockKind::GreenBed => SimplifiedBlockKind::Bed, + BlockKind::WaxedExposedCopper => SimplifiedBlockKind::WaxedExposedCopper, + BlockKind::SeaLantern => SimplifiedBlockKind::SeaLantern, + BlockKind::PinkWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::Granite => SimplifiedBlockKind::Granite, + BlockKind::DeadBush => SimplifiedBlockKind::DeadBush, + BlockKind::Wheat => SimplifiedBlockKind::Wheat, + BlockKind::Candle => SimplifiedBlockKind::Candle, + BlockKind::HeavyWeightedPressurePlate => { + SimplifiedBlockKind::HeavyWeightedPressurePlate } + BlockKind::Glass => SimplifiedBlockKind::Glass, + BlockKind::BlackStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::CyanShulkerBox => SimplifiedBlockKind::ShulkerBox, BlockKind::InfestedChiseledStoneBricks => { SimplifiedBlockKind::InfestedChiseledStoneBricks } - BlockKind::BrownMushroomBlock => SimplifiedBlockKind::BrownMushroomBlock, - BlockKind::RedMushroomBlock => SimplifiedBlockKind::RedMushroomBlock, - BlockKind::MushroomStem => SimplifiedBlockKind::MushroomStem, - BlockKind::IronBars => SimplifiedBlockKind::IronBars, - BlockKind::Chain => SimplifiedBlockKind::Chain, - BlockKind::GlassPane => SimplifiedBlockKind::GlassPane, - BlockKind::Melon => SimplifiedBlockKind::Melon, - BlockKind::AttachedPumpkinStem => SimplifiedBlockKind::AttachedPumpkinStem, - BlockKind::AttachedMelonStem => SimplifiedBlockKind::AttachedMelonStem, - BlockKind::PumpkinStem => SimplifiedBlockKind::PumpkinStem, - BlockKind::MelonStem => SimplifiedBlockKind::MelonStem, - BlockKind::Vine => SimplifiedBlockKind::Vine, - BlockKind::OakFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::BrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::StoneBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::Mycelium => SimplifiedBlockKind::Mycelium, - BlockKind::LilyPad => SimplifiedBlockKind::LilyPad, - BlockKind::NetherBricks => SimplifiedBlockKind::NetherBricks, - BlockKind::NetherBrickFence => SimplifiedBlockKind::Fence, - BlockKind::NetherBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::NetherWart => SimplifiedBlockKind::NetherWart, - BlockKind::EnchantingTable => SimplifiedBlockKind::EnchantingTable, - BlockKind::BrewingStand => SimplifiedBlockKind::BrewingStand, - BlockKind::Cauldron => SimplifiedBlockKind::Cauldron, - BlockKind::EndPortal => SimplifiedBlockKind::EndPortal, - BlockKind::EndPortalFrame => SimplifiedBlockKind::EndPortalFrame, - BlockKind::EndStone => SimplifiedBlockKind::EndStone, - BlockKind::DragonEgg => SimplifiedBlockKind::DragonEgg, - BlockKind::RedstoneLamp => SimplifiedBlockKind::RedstoneLamp, - BlockKind::Cocoa => SimplifiedBlockKind::Cocoa, - BlockKind::SandstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::EmeraldOre => SimplifiedBlockKind::EmeraldOre, - BlockKind::EnderChest => SimplifiedBlockKind::EnderChest, - BlockKind::TripwireHook => SimplifiedBlockKind::TripwireHook, - BlockKind::Tripwire => SimplifiedBlockKind::Tripwire, - BlockKind::EmeraldBlock => SimplifiedBlockKind::EmeraldBlock, - BlockKind::SpruceStairs => SimplifiedBlockKind::Stairs, - BlockKind::BirchStairs => SimplifiedBlockKind::Stairs, - BlockKind::JungleStairs => SimplifiedBlockKind::Stairs, - BlockKind::CommandBlock => SimplifiedBlockKind::CommandBlock, - BlockKind::Beacon => SimplifiedBlockKind::Beacon, - BlockKind::CobblestoneWall => SimplifiedBlockKind::CobblestoneWall, - BlockKind::MossyCobblestoneWall => SimplifiedBlockKind::MossyCobblestoneWall, - BlockKind::FlowerPot => SimplifiedBlockKind::FlowerPot, - BlockKind::PottedOakSapling => SimplifiedBlockKind::Sapling, - BlockKind::PottedSpruceSapling => SimplifiedBlockKind::Sapling, - BlockKind::PottedBirchSapling => SimplifiedBlockKind::Sapling, - BlockKind::PottedJungleSapling => SimplifiedBlockKind::Sapling, - BlockKind::PottedAcaciaSapling => SimplifiedBlockKind::Sapling, - BlockKind::PottedDarkOakSapling => SimplifiedBlockKind::Sapling, - BlockKind::PottedFern => SimplifiedBlockKind::PottedFern, - BlockKind::PottedDandelion => SimplifiedBlockKind::PottedDandelion, - BlockKind::PottedPoppy => SimplifiedBlockKind::PottedPoppy, - BlockKind::PottedBlueOrchid => SimplifiedBlockKind::Flower, - BlockKind::PottedAllium => SimplifiedBlockKind::PottedAllium, - BlockKind::PottedAzureBluet => SimplifiedBlockKind::Flower, - BlockKind::PottedRedTulip => SimplifiedBlockKind::Flower, - BlockKind::PottedOrangeTulip => SimplifiedBlockKind::Flower, - BlockKind::PottedWhiteTulip => SimplifiedBlockKind::Flower, - BlockKind::PottedPinkTulip => SimplifiedBlockKind::Flower, - BlockKind::PottedOxeyeDaisy => SimplifiedBlockKind::Flower, - BlockKind::PottedCornflower => SimplifiedBlockKind::PottedCornflower, - BlockKind::PottedLilyOfTheValley => SimplifiedBlockKind::PottedLilyOfTheValley, - BlockKind::PottedWitherRose => SimplifiedBlockKind::PottedWitherRose, - BlockKind::PottedRedMushroom => SimplifiedBlockKind::Mushroom, - BlockKind::PottedBrownMushroom => SimplifiedBlockKind::Mushroom, - BlockKind::PottedDeadBush => SimplifiedBlockKind::PottedDeadBush, - BlockKind::PottedCactus => SimplifiedBlockKind::PottedCactus, - BlockKind::Carrots => SimplifiedBlockKind::Carrots, - BlockKind::Potatoes => SimplifiedBlockKind::Potatoes, - BlockKind::OakButton => SimplifiedBlockKind::WoodenButton, - BlockKind::SpruceButton => SimplifiedBlockKind::WoodenButton, + BlockKind::RedSand => SimplifiedBlockKind::RedSand, + BlockKind::CrimsonHyphae => SimplifiedBlockKind::CrimsonHyphae, + BlockKind::DeepslateCoalOre => SimplifiedBlockKind::DeepslateCoalOre, + BlockKind::PinkConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::FireCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::Jigsaw => SimplifiedBlockKind::Jigsaw, + BlockKind::BlackStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::DioriteWall => SimplifiedBlockKind::DioriteWall, BlockKind::BirchButton => SimplifiedBlockKind::WoodenButton, - BlockKind::JungleButton => SimplifiedBlockKind::WoodenButton, - BlockKind::AcaciaButton => SimplifiedBlockKind::WoodenButton, - BlockKind::DarkOakButton => SimplifiedBlockKind::WoodenButton, - BlockKind::SkeletonSkull => SimplifiedBlockKind::SkeletonSkull, - BlockKind::SkeletonWallSkull => SimplifiedBlockKind::SkeletonWallSkull, - BlockKind::WitherSkeletonSkull => SimplifiedBlockKind::WitherSkeletonSkull, - BlockKind::WitherSkeletonWallSkull => SimplifiedBlockKind::WitherSkeletonWallSkull, - BlockKind::ZombieHead => SimplifiedBlockKind::ZombieHead, - BlockKind::ZombieWallHead => SimplifiedBlockKind::ZombieWallHead, - BlockKind::PlayerHead => SimplifiedBlockKind::PlayerHead, - BlockKind::PlayerWallHead => SimplifiedBlockKind::PlayerWallHead, - BlockKind::CreeperHead => SimplifiedBlockKind::CreeperHead, - BlockKind::CreeperWallHead => SimplifiedBlockKind::CreeperWallHead, - BlockKind::DragonHead => SimplifiedBlockKind::DragonHead, - BlockKind::DragonWallHead => SimplifiedBlockKind::DragonWallHead, - BlockKind::Anvil => SimplifiedBlockKind::Anvil, - BlockKind::ChippedAnvil => SimplifiedBlockKind::Anvil, - BlockKind::DamagedAnvil => SimplifiedBlockKind::Anvil, - BlockKind::TrappedChest => SimplifiedBlockKind::TrappedChest, - BlockKind::LightWeightedPressurePlate => { - SimplifiedBlockKind::LightWeightedPressurePlate - } - BlockKind::HeavyWeightedPressurePlate => { - SimplifiedBlockKind::HeavyWeightedPressurePlate - } - BlockKind::Comparator => SimplifiedBlockKind::Comparator, - BlockKind::DaylightDetector => SimplifiedBlockKind::DaylightDetector, - BlockKind::RedstoneBlock => SimplifiedBlockKind::RedstoneBlock, - BlockKind::NetherQuartzOre => SimplifiedBlockKind::NetherQuartzOre, - BlockKind::Hopper => SimplifiedBlockKind::Hopper, - BlockKind::QuartzBlock => SimplifiedBlockKind::QuartzBlock, - BlockKind::ChiseledQuartzBlock => SimplifiedBlockKind::ChiseledQuartzBlock, - BlockKind::QuartzPillar => SimplifiedBlockKind::QuartzPillar, + BlockKind::RedNetherBricks => SimplifiedBlockKind::RedNetherBricks, + BlockKind::Sandstone => SimplifiedBlockKind::Sandstone, + BlockKind::AndesiteSlab => SimplifiedBlockKind::Slab, + BlockKind::OakTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::BrownMushroom => SimplifiedBlockKind::Mushroom, + BlockKind::CyanGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::WarpedRoots => SimplifiedBlockKind::WarpedRoots, + BlockKind::IronOre => SimplifiedBlockKind::IronOre, + BlockKind::PottedPoppy => SimplifiedBlockKind::PottedPoppy, + BlockKind::CrimsonRoots => SimplifiedBlockKind::CrimsonRoots, + BlockKind::OakSapling => SimplifiedBlockKind::Sapling, + BlockKind::DeadBrainCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::PurpurSlab => SimplifiedBlockKind::Slab, + BlockKind::RedShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::Piston => SimplifiedBlockKind::Piston, + BlockKind::InfestedStone => SimplifiedBlockKind::InfestedStone, BlockKind::QuartzStairs => SimplifiedBlockKind::Stairs, - BlockKind::ActivatorRail => SimplifiedBlockKind::ActivatorRail, - BlockKind::Dropper => SimplifiedBlockKind::Dropper, - BlockKind::WhiteTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::OrangeTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::MagentaTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::LightBlueTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::YellowTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::LimeTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::PinkTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::GrayTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::LightGrayTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::CyanTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::PurpleTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::BlueTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::BrownTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::GreenTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::RedTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::BlackTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::WhiteStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::OrangeStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::MagentaStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::LightBlueStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::YellowStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::LimeStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::PinkStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::GrayStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::LightGrayStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::CyanStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::DeadTubeCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::WhiteWool => SimplifiedBlockKind::Wool, + BlockKind::StoneBricks => SimplifiedBlockKind::StoneBricks, + BlockKind::HoneyBlock => SimplifiedBlockKind::HoneyBlock, + BlockKind::PurpleCarpet => SimplifiedBlockKind::Carpet, + BlockKind::IronDoor => SimplifiedBlockKind::IronDoor, + BlockKind::StrippedAcaciaWood => SimplifiedBlockKind::Log, + BlockKind::BrickWall => SimplifiedBlockKind::BrickWall, + BlockKind::PolishedBlackstoneBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::TubeCoral => SimplifiedBlockKind::Coral, BlockKind::PurpleStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::BlueStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::BrownStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::GreenStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::RedStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::BlackStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::AcaciaStairs => SimplifiedBlockKind::Stairs, - BlockKind::DarkOakStairs => SimplifiedBlockKind::Stairs, - BlockKind::SlimeBlock => SimplifiedBlockKind::SlimeBlock, - BlockKind::Barrier => SimplifiedBlockKind::Barrier, - BlockKind::IronTrapdoor => SimplifiedBlockKind::IronTrapdoor, + BlockKind::DeadFireCoral => SimplifiedBlockKind::Coral, + BlockKind::LavaCauldron => SimplifiedBlockKind::LavaCauldron, + BlockKind::WarpedSlab => SimplifiedBlockKind::Slab, + BlockKind::BubbleCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::LimeBed => SimplifiedBlockKind::Bed, + BlockKind::QuartzBricks => SimplifiedBlockKind::QuartzBricks, + BlockKind::CutRedSandstoneSlab => SimplifiedBlockKind::Slab, BlockKind::Prismarine => SimplifiedBlockKind::Prismarine, - BlockKind::PrismarineBricks => SimplifiedBlockKind::PrismarineBricks, - BlockKind::DarkPrismarine => SimplifiedBlockKind::DarkPrismarine, - BlockKind::PrismarineStairs => SimplifiedBlockKind::Stairs, BlockKind::PrismarineBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::DarkPrismarineStairs => SimplifiedBlockKind::Stairs, - BlockKind::PrismarineSlab => SimplifiedBlockKind::Slab, - BlockKind::PrismarineBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::DarkPrismarineSlab => SimplifiedBlockKind::Slab, - BlockKind::SeaLantern => SimplifiedBlockKind::SeaLantern, - BlockKind::HayBlock => SimplifiedBlockKind::HayBlock, - BlockKind::WhiteCarpet => SimplifiedBlockKind::Carpet, + BlockKind::SprucePlanks => SimplifiedBlockKind::Planks, + BlockKind::JackOLantern => SimplifiedBlockKind::JackOLantern, + BlockKind::BlueCandleCake => SimplifiedBlockKind::BlueCandleCake, + BlockKind::StoneBrickWall => SimplifiedBlockKind::StoneBrickWall, + BlockKind::GrayShulkerBox => SimplifiedBlockKind::ShulkerBox, BlockKind::OrangeCarpet => SimplifiedBlockKind::Carpet, - BlockKind::MagentaCarpet => SimplifiedBlockKind::Carpet, - BlockKind::LightBlueCarpet => SimplifiedBlockKind::Carpet, - BlockKind::YellowCarpet => SimplifiedBlockKind::Carpet, - BlockKind::LimeCarpet => SimplifiedBlockKind::Carpet, - BlockKind::PinkCarpet => SimplifiedBlockKind::Carpet, - BlockKind::GrayCarpet => SimplifiedBlockKind::Carpet, + BlockKind::LargeAmethystBud => SimplifiedBlockKind::LargeAmethystBud, + BlockKind::OakButton => SimplifiedBlockKind::WoodenButton, + BlockKind::OakWallSign => SimplifiedBlockKind::WallSign, + BlockKind::EmeraldOre => SimplifiedBlockKind::EmeraldOre, + BlockKind::SmoothQuartzStairs => SimplifiedBlockKind::Stairs, + BlockKind::CutCopper => SimplifiedBlockKind::CutCopper, + BlockKind::BubbleCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::PinkShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::DiamondBlock => SimplifiedBlockKind::DiamondBlock, + BlockKind::PurpurStairs => SimplifiedBlockKind::Stairs, + BlockKind::OrangeStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::CrimsonPlanks => SimplifiedBlockKind::Planks, + BlockKind::EndPortal => SimplifiedBlockKind::EndPortal, + BlockKind::OxidizedCutCopper => SimplifiedBlockKind::OxidizedCutCopper, + BlockKind::CyanConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::DeepslateBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::MelonStem => SimplifiedBlockKind::MelonStem, BlockKind::LightGrayCarpet => SimplifiedBlockKind::Carpet, - BlockKind::CyanCarpet => SimplifiedBlockKind::Carpet, - BlockKind::PurpleCarpet => SimplifiedBlockKind::Carpet, - BlockKind::BlueCarpet => SimplifiedBlockKind::Carpet, - BlockKind::BrownCarpet => SimplifiedBlockKind::Carpet, - BlockKind::GreenCarpet => SimplifiedBlockKind::Carpet, - BlockKind::RedCarpet => SimplifiedBlockKind::Carpet, - BlockKind::BlackCarpet => SimplifiedBlockKind::Carpet, - BlockKind::Terracotta => SimplifiedBlockKind::Teracotta, - BlockKind::CoalBlock => SimplifiedBlockKind::CoalBlock, - BlockKind::PackedIce => SimplifiedBlockKind::PackedIce, - BlockKind::Sunflower => SimplifiedBlockKind::Sunflower, - BlockKind::Lilac => SimplifiedBlockKind::Lilac, - BlockKind::RoseBush => SimplifiedBlockKind::RoseBush, - BlockKind::Peony => SimplifiedBlockKind::Peony, - BlockKind::TallGrass => SimplifiedBlockKind::TallGrass, - BlockKind::LargeFern => SimplifiedBlockKind::LargeFern, - BlockKind::WhiteBanner => SimplifiedBlockKind::Banner, - BlockKind::OrangeBanner => SimplifiedBlockKind::Banner, - BlockKind::MagentaBanner => SimplifiedBlockKind::Banner, - BlockKind::LightBlueBanner => SimplifiedBlockKind::Banner, + BlockKind::ZombieHead => SimplifiedBlockKind::ZombieHead, + BlockKind::BirchWood => SimplifiedBlockKind::Log, + BlockKind::PurpleConcrete => SimplifiedBlockKind::Concrete, + BlockKind::Torch => SimplifiedBlockKind::Torch, + BlockKind::Grass => SimplifiedBlockKind::Grass, + BlockKind::FireCoral => SimplifiedBlockKind::Coral, + BlockKind::StrippedWarpedStem => SimplifiedBlockKind::StrippedWarpedStem, + BlockKind::CrackedDeepslateTiles => SimplifiedBlockKind::CrackedDeepslateTiles, + BlockKind::CaveVines => SimplifiedBlockKind::CaveVines, + BlockKind::DarkOakPlanks => SimplifiedBlockKind::Planks, + BlockKind::ShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::PurpurBlock => SimplifiedBlockKind::PurpurBlock, + BlockKind::DeadBubbleCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::Dropper => SimplifiedBlockKind::Dropper, + BlockKind::MagentaCarpet => SimplifiedBlockKind::Carpet, + BlockKind::GreenGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, BlockKind::YellowBanner => SimplifiedBlockKind::Banner, - BlockKind::LimeBanner => SimplifiedBlockKind::Banner, - BlockKind::PinkBanner => SimplifiedBlockKind::Banner, - BlockKind::GrayBanner => SimplifiedBlockKind::Banner, - BlockKind::LightGrayBanner => SimplifiedBlockKind::Banner, - BlockKind::CyanBanner => SimplifiedBlockKind::Banner, - BlockKind::PurpleBanner => SimplifiedBlockKind::Banner, - BlockKind::BlueBanner => SimplifiedBlockKind::Banner, - BlockKind::BrownBanner => SimplifiedBlockKind::Banner, - BlockKind::GreenBanner => SimplifiedBlockKind::Banner, - BlockKind::RedBanner => SimplifiedBlockKind::Banner, - BlockKind::BlackBanner => SimplifiedBlockKind::Banner, - BlockKind::WhiteWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::OrangeWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::MagentaWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::LightBlueWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::YellowWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::LimeWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::PinkWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::GrayWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::LightGrayWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::CyanWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::PurpleWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::BlueWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::BrownWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::GreenWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::RedWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::BlackWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::RedSandstone => SimplifiedBlockKind::RedSandstone, - BlockKind::ChiseledRedSandstone => SimplifiedBlockKind::ChiseledRedSandstone, - BlockKind::CutRedSandstone => SimplifiedBlockKind::CutRedSandstone, - BlockKind::RedSandstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::OakSlab => SimplifiedBlockKind::Slab, - BlockKind::SpruceSlab => SimplifiedBlockKind::Slab, - BlockKind::BirchSlab => SimplifiedBlockKind::Slab, - BlockKind::JungleSlab => SimplifiedBlockKind::Slab, - BlockKind::AcaciaSlab => SimplifiedBlockKind::Slab, - BlockKind::DarkOakSlab => SimplifiedBlockKind::Slab, - BlockKind::StoneSlab => SimplifiedBlockKind::Slab, - BlockKind::SmoothStoneSlab => SimplifiedBlockKind::Slab, - BlockKind::SandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::CutSandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::PetrifiedOakSlab => SimplifiedBlockKind::Slab, - BlockKind::CobblestoneSlab => SimplifiedBlockKind::Slab, - BlockKind::BrickSlab => SimplifiedBlockKind::Slab, - BlockKind::StoneBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::NetherBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::QuartzSlab => SimplifiedBlockKind::Slab, - BlockKind::RedSandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::CutRedSandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::PurpurSlab => SimplifiedBlockKind::Slab, + BlockKind::OrangeWool => SimplifiedBlockKind::Wool, + BlockKind::PurpurPillar => SimplifiedBlockKind::PurpurPillar, BlockKind::SmoothStone => SimplifiedBlockKind::SmoothStone, - BlockKind::SmoothSandstone => SimplifiedBlockKind::SmoothSandstone, - BlockKind::SmoothQuartz => SimplifiedBlockKind::SmoothQuartz, - BlockKind::SmoothRedSandstone => SimplifiedBlockKind::SmoothRedSandstone, - BlockKind::SpruceFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::BirchFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::JungleFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::AcaciaFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::DarkOakFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::SpruceFence => SimplifiedBlockKind::Fence, - BlockKind::BirchFence => SimplifiedBlockKind::Fence, - BlockKind::JungleFence => SimplifiedBlockKind::Fence, - BlockKind::AcaciaFence => SimplifiedBlockKind::Fence, - BlockKind::DarkOakFence => SimplifiedBlockKind::Fence, - BlockKind::SpruceDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::YellowStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::Snow => SimplifiedBlockKind::Snow, + BlockKind::OakLog => SimplifiedBlockKind::Log, + BlockKind::Stonecutter => SimplifiedBlockKind::Stonecutter, + BlockKind::Barrel => SimplifiedBlockKind::Barrel, + BlockKind::StoneBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::HornCoral => SimplifiedBlockKind::Coral, + BlockKind::RedCandle => SimplifiedBlockKind::RedCandle, + BlockKind::BlastFurnace => SimplifiedBlockKind::BlastFurnace, + BlockKind::Diorite => SimplifiedBlockKind::Diorite, + BlockKind::YellowStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::LightGrayStainedGlass => SimplifiedBlockKind::StainedGlass, BlockKind::BirchDoor => SimplifiedBlockKind::WoodenDoor, - BlockKind::JungleDoor => SimplifiedBlockKind::WoodenDoor, - BlockKind::AcaciaDoor => SimplifiedBlockKind::WoodenDoor, - BlockKind::DarkOakDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::RedCandleCake => SimplifiedBlockKind::RedCandleCake, + BlockKind::PottedWhiteTulip => SimplifiedBlockKind::Flower, + BlockKind::OakSlab => SimplifiedBlockKind::Slab, + BlockKind::NetherBrickWall => SimplifiedBlockKind::NetherBrickWall, + BlockKind::StrippedJungleWood => SimplifiedBlockKind::Log, + BlockKind::Repeater => SimplifiedBlockKind::Repeater, + BlockKind::GoldBlock => SimplifiedBlockKind::GoldBlock, + BlockKind::WarpedSign => SimplifiedBlockKind::Sign, + BlockKind::NetherPortal => SimplifiedBlockKind::NetherPortal, + BlockKind::CobblestoneWall => SimplifiedBlockKind::CobblestoneWall, + BlockKind::CreeperHead => SimplifiedBlockKind::CreeperHead, BlockKind::EndRod => SimplifiedBlockKind::EndRod, - BlockKind::ChorusPlant => SimplifiedBlockKind::ChorusPlant, - BlockKind::ChorusFlower => SimplifiedBlockKind::ChorusFlower, - BlockKind::PurpurBlock => SimplifiedBlockKind::PurpurBlock, - BlockKind::PurpurPillar => SimplifiedBlockKind::PurpurPillar, - BlockKind::PurpurStairs => SimplifiedBlockKind::Stairs, - BlockKind::EndStoneBricks => SimplifiedBlockKind::EndStoneBricks, - BlockKind::Beetroots => SimplifiedBlockKind::Beetroots, - BlockKind::GrassPath => SimplifiedBlockKind::GrassPath, - BlockKind::EndGateway => SimplifiedBlockKind::EndGateway, - BlockKind::RepeatingCommandBlock => SimplifiedBlockKind::RepeatingCommandBlock, - BlockKind::ChainCommandBlock => SimplifiedBlockKind::ChainCommandBlock, - BlockKind::FrostedIce => SimplifiedBlockKind::FrostedIce, - BlockKind::MagmaBlock => SimplifiedBlockKind::MagmaBlock, - BlockKind::NetherWartBlock => SimplifiedBlockKind::NetherWartBlock, - BlockKind::RedNetherBricks => SimplifiedBlockKind::RedNetherBricks, - BlockKind::BoneBlock => SimplifiedBlockKind::BoneBlock, - BlockKind::StructureVoid => SimplifiedBlockKind::StructureVoid, - BlockKind::Observer => SimplifiedBlockKind::Observer, - BlockKind::ShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::WhiteShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::OrangeShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::MagentaShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::LightBlueShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::YellowShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::LimeShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::PinkShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::GrayShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::LightGrayShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::CyanShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::PurpleShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::BlueShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::BrownShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::GreenShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::RedShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::BlackShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::WhiteGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::OrangeGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::MagentaGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::LightBlueGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::YellowGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::LimeGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::PinkGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::GrayGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::LightGrayGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::CyanGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::PurpleGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::BlueGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::BrownGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::GreenGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::RedGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::BlackGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::WhiteConcrete => SimplifiedBlockKind::Concrete, + BlockKind::WhiteWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::PinkWool => SimplifiedBlockKind::Wool, + BlockKind::WhiteStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, BlockKind::OrangeConcrete => SimplifiedBlockKind::Concrete, - BlockKind::MagentaConcrete => SimplifiedBlockKind::Concrete, - BlockKind::LightBlueConcrete => SimplifiedBlockKind::Concrete, + BlockKind::PottedBrownMushroom => SimplifiedBlockKind::Mushroom, + BlockKind::SpruceFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::SprucePressurePlate => SimplifiedBlockKind::WoodenPressurePlate, + BlockKind::BambooSapling => SimplifiedBlockKind::Sapling, + BlockKind::GrayCandleCake => SimplifiedBlockKind::GrayCandleCake, + BlockKind::RedstoneBlock => SimplifiedBlockKind::RedstoneBlock, + BlockKind::PolishedDiorite => SimplifiedBlockKind::PolishedDiorite, + BlockKind::BeeNest => SimplifiedBlockKind::BeeNest, + BlockKind::Blackstone => SimplifiedBlockKind::Blackstone, + BlockKind::JungleStairs => SimplifiedBlockKind::Stairs, + BlockKind::MossyCobblestoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::CopperBlock => SimplifiedBlockKind::CopperBlock, + BlockKind::CyanCandle => SimplifiedBlockKind::CyanCandle, + BlockKind::PurpleGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::ExposedCopper => SimplifiedBlockKind::ExposedCopper, + BlockKind::WeatheredCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::Scaffolding => SimplifiedBlockKind::Scaffolding, + BlockKind::BirchSlab => SimplifiedBlockKind::Slab, + BlockKind::PottedBamboo => SimplifiedBlockKind::PottedBamboo, + BlockKind::CrimsonButton => SimplifiedBlockKind::CrimsonButton, BlockKind::YellowConcrete => SimplifiedBlockKind::Concrete, - BlockKind::LimeConcrete => SimplifiedBlockKind::Concrete, - BlockKind::PinkConcrete => SimplifiedBlockKind::Concrete, - BlockKind::GrayConcrete => SimplifiedBlockKind::Concrete, - BlockKind::LightGrayConcrete => SimplifiedBlockKind::Concrete, - BlockKind::CyanConcrete => SimplifiedBlockKind::Concrete, - BlockKind::PurpleConcrete => SimplifiedBlockKind::Concrete, - BlockKind::BlueConcrete => SimplifiedBlockKind::Concrete, - BlockKind::BrownConcrete => SimplifiedBlockKind::Concrete, - BlockKind::GreenConcrete => SimplifiedBlockKind::Concrete, - BlockKind::RedConcrete => SimplifiedBlockKind::Concrete, - BlockKind::BlackConcrete => SimplifiedBlockKind::Concrete, - BlockKind::WhiteConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::OrangeConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::RedWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::RedstoneTorch => SimplifiedBlockKind::RedstoneTorch, + BlockKind::DeepslateRedstoneOre => SimplifiedBlockKind::DeepslateRedstoneOre, + BlockKind::SpruceWood => SimplifiedBlockKind::Log, + BlockKind::AcaciaSlab => SimplifiedBlockKind::Slab, + BlockKind::JungleLog => SimplifiedBlockKind::Log, + BlockKind::LightBlueStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::Gravel => SimplifiedBlockKind::Gravel, + BlockKind::EndStone => SimplifiedBlockKind::EndStone, + BlockKind::BirchWallSign => SimplifiedBlockKind::WallSign, + BlockKind::QuartzPillar => SimplifiedBlockKind::QuartzPillar, + BlockKind::RootedDirt => SimplifiedBlockKind::RootedDirt, + BlockKind::MediumAmethystBud => SimplifiedBlockKind::MediumAmethystBud, + BlockKind::SandstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::WhiteCandle => SimplifiedBlockKind::WhiteCandle, + BlockKind::BirchFence => SimplifiedBlockKind::Fence, + BlockKind::MossBlock => SimplifiedBlockKind::MossBlock, + BlockKind::PurpleCandle => SimplifiedBlockKind::PurpleCandle, + BlockKind::EndPortalFrame => SimplifiedBlockKind::EndPortalFrame, + BlockKind::OrangeBed => SimplifiedBlockKind::Bed, + BlockKind::DeepslateGoldOre => SimplifiedBlockKind::DeepslateGoldOre, + BlockKind::LimeBanner => SimplifiedBlockKind::Banner, + BlockKind::DeepslateBricks => SimplifiedBlockKind::DeepslateBricks, + BlockKind::LilyOfTheValley => SimplifiedBlockKind::LilyOfTheValley, + BlockKind::CrackedPolishedBlackstoneBricks => { + SimplifiedBlockKind::CrackedPolishedBlackstoneBricks + } + BlockKind::StrippedSpruceWood => SimplifiedBlockKind::Log, + BlockKind::RedBanner => SimplifiedBlockKind::Banner, BlockKind::MagentaConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::LightBlueConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::YellowConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::LimeConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::PinkConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::GrayConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::LightGrayConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::CyanConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::PurpleConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::BlueConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::BrownConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::GreenConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::RedConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::BlackConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::Kelp => SimplifiedBlockKind::Kelp, - BlockKind::KelpPlant => SimplifiedBlockKind::KelpPlant, - BlockKind::DriedKelpBlock => SimplifiedBlockKind::DriedKelpBlock, - BlockKind::TurtleEgg => SimplifiedBlockKind::TurtleEgg, - BlockKind::DeadTubeCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::DeadBrainCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::DeadBubbleCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::DeadFireCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::DeadHornCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::TubeCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::BrainCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::BubbleCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::FireCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::HornCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::DeadTubeCoral => SimplifiedBlockKind::Coral, - BlockKind::DeadBrainCoral => SimplifiedBlockKind::Coral, - BlockKind::DeadBubbleCoral => SimplifiedBlockKind::Coral, - BlockKind::DeadFireCoral => SimplifiedBlockKind::Coral, - BlockKind::DeadHornCoral => SimplifiedBlockKind::Coral, - BlockKind::TubeCoral => SimplifiedBlockKind::Coral, - BlockKind::BrainCoral => SimplifiedBlockKind::Coral, - BlockKind::BubbleCoral => SimplifiedBlockKind::Coral, - BlockKind::FireCoral => SimplifiedBlockKind::Coral, - BlockKind::HornCoral => SimplifiedBlockKind::Coral, - BlockKind::DeadTubeCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::DeadBrainCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::DeadBubbleCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::DeadFireCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::DeadHornCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::TubeCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::BrainCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::BubbleCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::FireCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::HornCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::DeadTubeCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::DeadBrainCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::DeadBubbleCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::DeadFireCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::DeadHornCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::TubeCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::SpruceFence => SimplifiedBlockKind::Fence, + BlockKind::Composter => SimplifiedBlockKind::Composter, BlockKind::BrainCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::BubbleCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::FireCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::HornCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::SeaPickle => SimplifiedBlockKind::SeaPickle, - BlockKind::BlueIce => SimplifiedBlockKind::BlueIce, - BlockKind::Conduit => SimplifiedBlockKind::Conduit, - BlockKind::BambooSapling => SimplifiedBlockKind::Sapling, - BlockKind::Bamboo => SimplifiedBlockKind::Bamboo, - BlockKind::PottedBamboo => SimplifiedBlockKind::PottedBamboo, - BlockKind::VoidAir => SimplifiedBlockKind::Air, - BlockKind::CaveAir => SimplifiedBlockKind::Air, - BlockKind::BubbleColumn => SimplifiedBlockKind::BubbleColumn, - BlockKind::PolishedGraniteStairs => SimplifiedBlockKind::Stairs, - BlockKind::SmoothRedSandstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::MossyStoneBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::PolishedDioriteStairs => SimplifiedBlockKind::Stairs, - BlockKind::MossyCobblestoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::EndStoneBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::StoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::SmoothSandstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::SmoothQuartzStairs => SimplifiedBlockKind::Stairs, - BlockKind::GraniteStairs => SimplifiedBlockKind::Stairs, - BlockKind::AndesiteStairs => SimplifiedBlockKind::Stairs, + BlockKind::Rail => SimplifiedBlockKind::Rail, + BlockKind::PottedAzureBluet => SimplifiedBlockKind::Flower, + BlockKind::JungleFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::Lectern => SimplifiedBlockKind::Lectern, + BlockKind::LightGrayConcrete => SimplifiedBlockKind::Concrete, + BlockKind::Lodestone => SimplifiedBlockKind::Lodestone, + BlockKind::LightGrayBed => SimplifiedBlockKind::Bed, + BlockKind::ExposedCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::DarkOakTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, BlockKind::RedNetherBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::PolishedAndesiteStairs => SimplifiedBlockKind::Stairs, - BlockKind::DioriteStairs => SimplifiedBlockKind::Stairs, - BlockKind::PolishedGraniteSlab => SimplifiedBlockKind::Slab, - BlockKind::SmoothRedSandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::MossyStoneBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::PolishedDioriteSlab => SimplifiedBlockKind::Slab, - BlockKind::MossyCobblestoneSlab => SimplifiedBlockKind::Slab, - BlockKind::EndStoneBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::SmoothSandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::SmoothQuartzSlab => SimplifiedBlockKind::Slab, - BlockKind::GraniteSlab => SimplifiedBlockKind::Slab, - BlockKind::AndesiteSlab => SimplifiedBlockKind::Slab, - BlockKind::RedNetherBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::PolishedAndesiteSlab => SimplifiedBlockKind::Slab, - BlockKind::DioriteSlab => SimplifiedBlockKind::Slab, - BlockKind::BrickWall => SimplifiedBlockKind::BrickWall, - BlockKind::PrismarineWall => SimplifiedBlockKind::PrismarineWall, - BlockKind::RedSandstoneWall => SimplifiedBlockKind::RedSandstoneWall, - BlockKind::MossyStoneBrickWall => SimplifiedBlockKind::MossyStoneBrickWall, - BlockKind::GraniteWall => SimplifiedBlockKind::GraniteWall, - BlockKind::StoneBrickWall => SimplifiedBlockKind::StoneBrickWall, - BlockKind::NetherBrickWall => SimplifiedBlockKind::NetherBrickWall, - BlockKind::AndesiteWall => SimplifiedBlockKind::AndesiteWall, - BlockKind::RedNetherBrickWall => SimplifiedBlockKind::RedNetherBrickWall, - BlockKind::SandstoneWall => SimplifiedBlockKind::SandstoneWall, - BlockKind::EndStoneBrickWall => SimplifiedBlockKind::EndStoneBrickWall, - BlockKind::DioriteWall => SimplifiedBlockKind::DioriteWall, - BlockKind::Scaffolding => SimplifiedBlockKind::Scaffolding, - BlockKind::Loom => SimplifiedBlockKind::Loom, - BlockKind::Barrel => SimplifiedBlockKind::Barrel, - BlockKind::Smoker => SimplifiedBlockKind::Smoker, - BlockKind::BlastFurnace => SimplifiedBlockKind::BlastFurnace, - BlockKind::CartographyTable => SimplifiedBlockKind::CartographyTable, - BlockKind::FletchingTable => SimplifiedBlockKind::FletchingTable, - BlockKind::Grindstone => SimplifiedBlockKind::Grindstone, - BlockKind::Lectern => SimplifiedBlockKind::Lectern, - BlockKind::SmithingTable => SimplifiedBlockKind::SmithingTable, - BlockKind::Stonecutter => SimplifiedBlockKind::Stonecutter, - BlockKind::Bell => SimplifiedBlockKind::Bell, - BlockKind::Lantern => SimplifiedBlockKind::Lantern, - BlockKind::SoulLantern => SimplifiedBlockKind::SoulLantern, - BlockKind::Campfire => SimplifiedBlockKind::Campfire, - BlockKind::SoulCampfire => SimplifiedBlockKind::SoulCampfire, - BlockKind::SweetBerryBush => SimplifiedBlockKind::SweetBerryBush, - BlockKind::WarpedStem => SimplifiedBlockKind::WarpedStem, - BlockKind::StrippedWarpedStem => SimplifiedBlockKind::StrippedWarpedStem, - BlockKind::WarpedHyphae => SimplifiedBlockKind::WarpedHyphae, - BlockKind::StrippedWarpedHyphae => SimplifiedBlockKind::StrippedWarpedHyphae, - BlockKind::WarpedNylium => SimplifiedBlockKind::WarpedNylium, - BlockKind::WarpedFungus => SimplifiedBlockKind::WarpedFungus, - BlockKind::WarpedWartBlock => SimplifiedBlockKind::WarpedWartBlock, - BlockKind::WarpedRoots => SimplifiedBlockKind::WarpedRoots, - BlockKind::NetherSprouts => SimplifiedBlockKind::NetherSprouts, - BlockKind::CrimsonStem => SimplifiedBlockKind::CrimsonStem, - BlockKind::StrippedCrimsonStem => SimplifiedBlockKind::StrippedCrimsonStem, - BlockKind::CrimsonHyphae => SimplifiedBlockKind::CrimsonHyphae, - BlockKind::StrippedCrimsonHyphae => SimplifiedBlockKind::StrippedCrimsonHyphae, - BlockKind::CrimsonNylium => SimplifiedBlockKind::CrimsonNylium, - BlockKind::CrimsonFungus => SimplifiedBlockKind::CrimsonFungus, - BlockKind::Shroomlight => SimplifiedBlockKind::Shroomlight, - BlockKind::WeepingVines => SimplifiedBlockKind::WeepingVines, - BlockKind::WeepingVinesPlant => SimplifiedBlockKind::WeepingVinesPlant, - BlockKind::TwistingVines => SimplifiedBlockKind::TwistingVines, - BlockKind::TwistingVinesPlant => SimplifiedBlockKind::TwistingVinesPlant, - BlockKind::CrimsonRoots => SimplifiedBlockKind::CrimsonRoots, - BlockKind::CrimsonPlanks => SimplifiedBlockKind::Planks, - BlockKind::WarpedPlanks => SimplifiedBlockKind::Planks, - BlockKind::CrimsonSlab => SimplifiedBlockKind::Slab, - BlockKind::WarpedSlab => SimplifiedBlockKind::Slab, - BlockKind::CrimsonPressurePlate => SimplifiedBlockKind::CrimsonPressurePlate, - BlockKind::WarpedPressurePlate => SimplifiedBlockKind::WarpedPressurePlate, - BlockKind::CrimsonFence => SimplifiedBlockKind::Fence, - BlockKind::WarpedFence => SimplifiedBlockKind::Fence, - BlockKind::CrimsonTrapdoor => SimplifiedBlockKind::CrimsonTrapdoor, - BlockKind::WarpedTrapdoor => SimplifiedBlockKind::WarpedTrapdoor, - BlockKind::CrimsonFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::WarpedFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::CrimsonStairs => SimplifiedBlockKind::Stairs, - BlockKind::WarpedStairs => SimplifiedBlockKind::Stairs, - BlockKind::CrimsonButton => SimplifiedBlockKind::CrimsonButton, - BlockKind::WarpedButton => SimplifiedBlockKind::WarpedButton, - BlockKind::CrimsonDoor => SimplifiedBlockKind::CrimsonDoor, - BlockKind::WarpedDoor => SimplifiedBlockKind::WarpedDoor, - BlockKind::CrimsonSign => SimplifiedBlockKind::Sign, - BlockKind::WarpedSign => SimplifiedBlockKind::Sign, - BlockKind::CrimsonWallSign => SimplifiedBlockKind::WallSign, - BlockKind::WarpedWallSign => SimplifiedBlockKind::WallSign, - BlockKind::StructureBlock => SimplifiedBlockKind::StructureBlock, - BlockKind::Jigsaw => SimplifiedBlockKind::Jigsaw, - BlockKind::Composter => SimplifiedBlockKind::Composter, - BlockKind::Target => SimplifiedBlockKind::Target, - BlockKind::BeeNest => SimplifiedBlockKind::BeeNest, - BlockKind::Beehive => SimplifiedBlockKind::Beehive, - BlockKind::HoneyBlock => SimplifiedBlockKind::HoneyBlock, - BlockKind::HoneycombBlock => SimplifiedBlockKind::HoneycombBlock, - BlockKind::NetheriteBlock => SimplifiedBlockKind::NetheriteBlock, - BlockKind::AncientDebris => SimplifiedBlockKind::AncientDebris, + BlockKind::DiamondOre => SimplifiedBlockKind::DiamondOre, + BlockKind::YellowCarpet => SimplifiedBlockKind::Carpet, + BlockKind::ChippedAnvil => SimplifiedBlockKind::Anvil, + BlockKind::GreenStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::CyanStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::NetherBrickFence => SimplifiedBlockKind::Fence, + BlockKind::BlackConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::PinkCandle => SimplifiedBlockKind::PinkCandle, BlockKind::CryingObsidian => SimplifiedBlockKind::CryingObsidian, - BlockKind::RespawnAnchor => SimplifiedBlockKind::RespawnAnchor, - BlockKind::PottedCrimsonFungus => SimplifiedBlockKind::PottedCrimsonFungus, - BlockKind::PottedWarpedFungus => SimplifiedBlockKind::PottedWarpedFungus, - BlockKind::PottedCrimsonRoots => SimplifiedBlockKind::PottedCrimsonRoots, - BlockKind::PottedWarpedRoots => SimplifiedBlockKind::PottedWarpedRoots, - BlockKind::Lodestone => SimplifiedBlockKind::Lodestone, - BlockKind::Blackstone => SimplifiedBlockKind::Blackstone, - BlockKind::BlackstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::BlackstoneWall => SimplifiedBlockKind::BlackstoneWall, - BlockKind::BlackstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::PolishedBlackstone => SimplifiedBlockKind::PolishedBlackstone, - BlockKind::PolishedBlackstoneBricks => SimplifiedBlockKind::PolishedBlackstoneBricks, - BlockKind::CrackedPolishedBlackstoneBricks => { - SimplifiedBlockKind::CrackedPolishedBlackstoneBricks - } + BlockKind::LightBlueCandle => SimplifiedBlockKind::LightBlueCandle, + BlockKind::NetherGoldOre => SimplifiedBlockKind::NetherGoldOre, + BlockKind::BrownCarpet => SimplifiedBlockKind::Carpet, + BlockKind::PinkConcrete => SimplifiedBlockKind::Concrete, + BlockKind::PolishedGranite => SimplifiedBlockKind::PolishedGranite, + BlockKind::GreenWool => SimplifiedBlockKind::Wool, + BlockKind::DeepslateEmeraldOre => SimplifiedBlockKind::DeepslateEmeraldOre, + BlockKind::SkeletonSkull => SimplifiedBlockKind::SkeletonSkull, BlockKind::ChiseledPolishedBlackstone => { SimplifiedBlockKind::ChiseledPolishedBlackstone } - BlockKind::PolishedBlackstoneBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::PolishedBlackstoneBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::IronTrapdoor => SimplifiedBlockKind::IronTrapdoor, + BlockKind::EmeraldBlock => SimplifiedBlockKind::EmeraldBlock, + BlockKind::BlueCandle => SimplifiedBlockKind::BlueCandle, + BlockKind::SoulSoil => SimplifiedBlockKind::SoulSoil, + BlockKind::MossyStoneBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::PolishedDeepslateWall => SimplifiedBlockKind::PolishedDeepslateWall, + BlockKind::Dispenser => SimplifiedBlockKind::Dispenser, + BlockKind::Farmland => SimplifiedBlockKind::Farmland, + BlockKind::Peony => SimplifiedBlockKind::Peony, + BlockKind::PowderSnowCauldron => SimplifiedBlockKind::PowderSnowCauldron, + BlockKind::DeepslateLapisOre => SimplifiedBlockKind::DeepslateLapisOre, + BlockKind::CyanWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::CobblestoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::NetherQuartzOre => SimplifiedBlockKind::NetherQuartzOre, + BlockKind::PottedDarkOakSapling => SimplifiedBlockKind::Sapling, + BlockKind::RedStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::InfestedStoneBricks => SimplifiedBlockKind::InfestedStoneBricks, + BlockKind::LightBlueShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::Mycelium => SimplifiedBlockKind::Mycelium, + BlockKind::HayBlock => SimplifiedBlockKind::HayBlock, + BlockKind::FireCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::MossCarpet => SimplifiedBlockKind::Carpet, + BlockKind::WhiteBanner => SimplifiedBlockKind::Banner, + BlockKind::RedCarpet => SimplifiedBlockKind::Carpet, + BlockKind::BrownWool => SimplifiedBlockKind::Wool, + BlockKind::SmoothQuartzSlab => SimplifiedBlockKind::Slab, + BlockKind::RoseBush => SimplifiedBlockKind::RoseBush, + BlockKind::GildedBlackstone => SimplifiedBlockKind::GildedBlackstone, + BlockKind::CrimsonStem => SimplifiedBlockKind::CrimsonStem, + BlockKind::InfestedCrackedStoneBricks => { + SimplifiedBlockKind::InfestedCrackedStoneBricks + } + BlockKind::JunglePlanks => SimplifiedBlockKind::Planks, + BlockKind::BlackCandleCake => SimplifiedBlockKind::BlackCandleCake, + BlockKind::MossyCobblestoneSlab => SimplifiedBlockKind::Slab, + BlockKind::YellowCandle => SimplifiedBlockKind::YellowCandle, + BlockKind::PurpleStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::Seagrass => SimplifiedBlockKind::Seagrass, + BlockKind::WaxedCopperBlock => SimplifiedBlockKind::WaxedCopperBlock, + BlockKind::ChiseledQuartzBlock => SimplifiedBlockKind::ChiseledQuartzBlock, + BlockKind::PrismarineSlab => SimplifiedBlockKind::Slab, + BlockKind::PurpleWool => SimplifiedBlockKind::Wool, + BlockKind::PottedBlueOrchid => SimplifiedBlockKind::Flower, + BlockKind::QuartzSlab => SimplifiedBlockKind::Slab, + BlockKind::Basalt => SimplifiedBlockKind::Basalt, + BlockKind::YellowWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::Light => SimplifiedBlockKind::Light, + BlockKind::SnowBlock => SimplifiedBlockKind::SnowBlock, + BlockKind::Lilac => SimplifiedBlockKind::Lilac, + BlockKind::OrangeCandleCake => SimplifiedBlockKind::OrangeCandleCake, + BlockKind::DeadHornCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::StructureBlock => SimplifiedBlockKind::StructureBlock, + BlockKind::TubeCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::WaxedExposedCutCopper => SimplifiedBlockKind::WaxedExposedCutCopper, + BlockKind::BirchPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, + BlockKind::LightGrayWool => SimplifiedBlockKind::Wool, + BlockKind::Podzol => SimplifiedBlockKind::Podzol, + BlockKind::PlayerHead => SimplifiedBlockKind::PlayerHead, + BlockKind::Cobweb => SimplifiedBlockKind::Cobweb, + BlockKind::YellowGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::OakPlanks => SimplifiedBlockKind::Planks, + BlockKind::BlueBanner => SimplifiedBlockKind::Banner, + BlockKind::DeepslateBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::LimeStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::LightBlueGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::BrainCoral => SimplifiedBlockKind::Coral, + BlockKind::SpruceLog => SimplifiedBlockKind::Log, + BlockKind::YellowConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::Allium => SimplifiedBlockKind::Flower, + BlockKind::CrimsonFungus => SimplifiedBlockKind::CrimsonFungus, BlockKind::PolishedBlackstoneBrickWall => { SimplifiedBlockKind::PolishedBlackstoneBrickWall } - BlockKind::GildedBlackstone => SimplifiedBlockKind::GildedBlackstone, - BlockKind::PolishedBlackstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::PolishedBlackstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::PolishedBlackstonePressurePlate => { - SimplifiedBlockKind::PolishedBlackstonePressurePlate - } - BlockKind::PolishedBlackstoneButton => SimplifiedBlockKind::PolishedBlackstoneButton, - BlockKind::PolishedBlackstoneWall => SimplifiedBlockKind::PolishedBlackstoneWall, - BlockKind::ChiseledNetherBricks => SimplifiedBlockKind::ChiseledNetherBricks, + BlockKind::CyanStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::DeadFireCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::AncientDebris => SimplifiedBlockKind::AncientDebris, + BlockKind::PottedCornflower => SimplifiedBlockKind::PottedCornflower, + BlockKind::RedSandstoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::PackedIce => SimplifiedBlockKind::PackedIce, + BlockKind::PottedCrimsonRoots => SimplifiedBlockKind::PottedCrimsonRoots, + BlockKind::SkeletonWallSkull => SimplifiedBlockKind::SkeletonWallSkull, + BlockKind::Barrier => SimplifiedBlockKind::Barrier, + BlockKind::CutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::Bedrock => SimplifiedBlockKind::Bedrock, + BlockKind::Azalea => SimplifiedBlockKind::Azalea, + BlockKind::SpruceButton => SimplifiedBlockKind::WoodenButton, + BlockKind::StructureVoid => SimplifiedBlockKind::StructureVoid, + BlockKind::LightGrayCandleCake => SimplifiedBlockKind::LightGrayCandleCake, + BlockKind::NetherWart => SimplifiedBlockKind::NetherWart, + BlockKind::StrippedCrimsonStem => SimplifiedBlockKind::StrippedCrimsonStem, + BlockKind::WallTorch => SimplifiedBlockKind::WallTorch, + BlockKind::GlowLichen => SimplifiedBlockKind::GlowLichen, + BlockKind::BlackTerracotta => SimplifiedBlockKind::Teracotta, BlockKind::CrackedNetherBricks => SimplifiedBlockKind::CrackedNetherBricks, - BlockKind::QuartzBricks => SimplifiedBlockKind::QuartzBricks, + BlockKind::WarpedFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::PolishedBlackstoneWall => SimplifiedBlockKind::PolishedBlackstoneWall, + BlockKind::BirchSign => SimplifiedBlockKind::Sign, + BlockKind::PottedCactus => SimplifiedBlockKind::PottedCactus, + BlockKind::BlueShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::CoarseDirt => SimplifiedBlockKind::CoarseDirt, + BlockKind::TwistingVinesPlant => SimplifiedBlockKind::TwistingVinesPlant, + BlockKind::TallSeagrass => SimplifiedBlockKind::TallSeagrass, + BlockKind::WaxedOxidizedCopper => SimplifiedBlockKind::WaxedOxidizedCopper, + BlockKind::BlackBanner => SimplifiedBlockKind::Banner, + BlockKind::SoulTorch => SimplifiedBlockKind::SoulTorch, + BlockKind::CobbledDeepslateSlab => SimplifiedBlockKind::Slab, + BlockKind::WarpedDoor => SimplifiedBlockKind::WarpedDoor, + BlockKind::ChiseledDeepslate => SimplifiedBlockKind::ChiseledDeepslate, + BlockKind::BuddingAmethyst => SimplifiedBlockKind::BuddingAmethyst, + BlockKind::Lava => SimplifiedBlockKind::Lava, + BlockKind::Potatoes => SimplifiedBlockKind::Potatoes, + BlockKind::AzureBluet => SimplifiedBlockKind::Flower, + BlockKind::RedConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::RedGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::Netherrack => SimplifiedBlockKind::Netherrack, + BlockKind::BlackWool => SimplifiedBlockKind::Wool, + BlockKind::WaxedWeatheredCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::RespawnAnchor => SimplifiedBlockKind::RespawnAnchor, + BlockKind::Andesite => SimplifiedBlockKind::Andesite, + BlockKind::BrewingStand => SimplifiedBlockKind::BrewingStand, + BlockKind::YellowShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::GreenConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::LimeWool => SimplifiedBlockKind::Wool, + BlockKind::Bricks => SimplifiedBlockKind::Bricks, + BlockKind::RedSandstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::MossyStoneBricks => SimplifiedBlockKind::MossyStoneBricks, + BlockKind::DeadFireCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::DarkOakDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::OakFence => SimplifiedBlockKind::Fence, + BlockKind::Sunflower => SimplifiedBlockKind::Sunflower, + BlockKind::GrayStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::BlueWool => SimplifiedBlockKind::Wool, + BlockKind::ChiseledSandstone => SimplifiedBlockKind::ChiseledSandstone, + BlockKind::AcaciaLog => SimplifiedBlockKind::Log, + BlockKind::GraniteStairs => SimplifiedBlockKind::Stairs, + BlockKind::CyanCandleCake => SimplifiedBlockKind::CyanCandleCake, + BlockKind::OrangeShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::MossyCobblestoneWall => SimplifiedBlockKind::MossyCobblestoneWall, + BlockKind::BlueIce => SimplifiedBlockKind::BlueIce, + BlockKind::DeepslateBrickWall => SimplifiedBlockKind::DeepslateBrickWall, + BlockKind::FloweringAzaleaLeaves => SimplifiedBlockKind::Leaves, + BlockKind::OakStairs => SimplifiedBlockKind::Stairs, + BlockKind::PinkTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::TubeCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::GrassBlock => SimplifiedBlockKind::GrassBlock, + BlockKind::AzaleaLeaves => SimplifiedBlockKind::Leaves, + BlockKind::Melon => SimplifiedBlockKind::Melon, + BlockKind::WhiteConcrete => SimplifiedBlockKind::Concrete, + BlockKind::PurpleTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::SculkSensor => SimplifiedBlockKind::SculkSensor, + BlockKind::CyanWool => SimplifiedBlockKind::Wool, + BlockKind::WarpedTrapdoor => SimplifiedBlockKind::WarpedTrapdoor, + BlockKind::SporeBlossom => SimplifiedBlockKind::SporeBlossom, + BlockKind::Bookshelf => SimplifiedBlockKind::Bookshelf, + BlockKind::PottedFern => SimplifiedBlockKind::PottedFern, + BlockKind::EndStoneBrickWall => SimplifiedBlockKind::EndStoneBrickWall, + BlockKind::FletchingTable => SimplifiedBlockKind::FletchingTable, + BlockKind::BlueStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::BrownCandle => SimplifiedBlockKind::BrownCandle, + BlockKind::Carrots => SimplifiedBlockKind::Carrots, + BlockKind::LightBlueWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::StrippedDarkOakLog => SimplifiedBlockKind::Log, + BlockKind::Hopper => SimplifiedBlockKind::Hopper, + BlockKind::PolishedDioriteSlab => SimplifiedBlockKind::Slab, + BlockKind::TripwireHook => SimplifiedBlockKind::TripwireHook, + BlockKind::AcaciaDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::NetheriteBlock => SimplifiedBlockKind::NetheriteBlock, + BlockKind::WitherSkeletonWallSkull => SimplifiedBlockKind::WitherSkeletonWallSkull, + BlockKind::AcaciaFence => SimplifiedBlockKind::Fence, + BlockKind::DeepslateIronOre => SimplifiedBlockKind::DeepslateIronOre, + BlockKind::Dandelion => SimplifiedBlockKind::Flower, + BlockKind::BrownBed => SimplifiedBlockKind::Bed, + BlockKind::BrownMushroomBlock => SimplifiedBlockKind::BrownMushroomBlock, + BlockKind::DeadBubbleCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::BlueConcrete => SimplifiedBlockKind::Concrete, + BlockKind::Fern => SimplifiedBlockKind::Fern, + BlockKind::GreenBanner => SimplifiedBlockKind::Banner, + BlockKind::JungleTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::PolishedBlackstoneButton => SimplifiedBlockKind::PolishedBlackstoneButton, + BlockKind::InfestedMossyStoneBricks => SimplifiedBlockKind::InfestedMossyStoneBricks, + BlockKind::WeatheredCopper => SimplifiedBlockKind::WeatheredCopper, + BlockKind::GrayConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::StoneSlab => SimplifiedBlockKind::Slab, + BlockKind::AmethystBlock => SimplifiedBlockKind::AmethystBlock, + BlockKind::SandstoneWall => SimplifiedBlockKind::SandstoneWall, + BlockKind::LightBlueBed => SimplifiedBlockKind::Bed, + BlockKind::EnchantingTable => SimplifiedBlockKind::EnchantingTable, + BlockKind::DioriteStairs => SimplifiedBlockKind::Stairs, + BlockKind::CoalBlock => SimplifiedBlockKind::CoalBlock, + BlockKind::HangingRoots => SimplifiedBlockKind::HangingRoots, + BlockKind::Spawner => SimplifiedBlockKind::Spawner, + BlockKind::LightBlueConcrete => SimplifiedBlockKind::Concrete, + BlockKind::WhiteCarpet => SimplifiedBlockKind::Carpet, + BlockKind::LimeCandleCake => SimplifiedBlockKind::LimeCandleCake, + BlockKind::JungleButton => SimplifiedBlockKind::WoodenButton, + BlockKind::PottedWarpedRoots => SimplifiedBlockKind::PottedWarpedRoots, + BlockKind::PolishedAndesiteStairs => SimplifiedBlockKind::Stairs, + BlockKind::WarpedFungus => SimplifiedBlockKind::WarpedFungus, + BlockKind::Beacon => SimplifiedBlockKind::Beacon, + BlockKind::LightGrayConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::PinkTulip => SimplifiedBlockKind::Flower, + BlockKind::NetherSprouts => SimplifiedBlockKind::NetherSprouts, + BlockKind::MossyStoneBrickWall => SimplifiedBlockKind::MossyStoneBrickWall, + BlockKind::LightBlueCarpet => SimplifiedBlockKind::Carpet, + BlockKind::PointedDripstone => SimplifiedBlockKind::PointedDripstone, + BlockKind::RedMushroomBlock => SimplifiedBlockKind::RedMushroomBlock, + BlockKind::CyanTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::PottedJungleSapling => SimplifiedBlockKind::Sapling, + BlockKind::WaxedCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::BoneBlock => SimplifiedBlockKind::BoneBlock, + BlockKind::CaveVinesPlant => SimplifiedBlockKind::CaveVinesPlant, + BlockKind::NetherWartBlock => SimplifiedBlockKind::NetherWartBlock, + BlockKind::WaterCauldron => SimplifiedBlockKind::WaterCauldron, + BlockKind::BrownGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::FireCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::Lever => SimplifiedBlockKind::Lever, + BlockKind::BlackstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::PurpleCandleCake => SimplifiedBlockKind::PurpleCandleCake, + BlockKind::AcaciaWallSign => SimplifiedBlockKind::WallSign, + BlockKind::LightBlueCandleCake => SimplifiedBlockKind::LightBlueCandleCake, + BlockKind::DripstoneBlock => SimplifiedBlockKind::DripstoneBlock, + BlockKind::AmethystCluster => SimplifiedBlockKind::AmethystCluster, + BlockKind::DeadFireCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::DarkOakButton => SimplifiedBlockKind::WoodenButton, + BlockKind::DeadTubeCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::FloweringAzalea => SimplifiedBlockKind::FloweringAzalea, + BlockKind::LimeGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::Bell => SimplifiedBlockKind::Bell, + BlockKind::AttachedMelonStem => SimplifiedBlockKind::AttachedMelonStem, + BlockKind::AcaciaButton => SimplifiedBlockKind::WoodenButton, + BlockKind::BrownConcrete => SimplifiedBlockKind::Concrete, + BlockKind::CraftingTable => SimplifiedBlockKind::CraftingTable, + BlockKind::DarkOakFence => SimplifiedBlockKind::Fence, + BlockKind::Observer => SimplifiedBlockKind::Observer, + BlockKind::RedBed => SimplifiedBlockKind::Bed, + BlockKind::YellowTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::LargeFern => SimplifiedBlockKind::LargeFern, + BlockKind::ChorusFlower => SimplifiedBlockKind::ChorusFlower, + BlockKind::SmoothRedSandstoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::DarkOakSapling => SimplifiedBlockKind::Sapling, + BlockKind::StrippedDarkOakWood => SimplifiedBlockKind::Log, + BlockKind::PolishedDeepslate => SimplifiedBlockKind::PolishedDeepslate, + BlockKind::WarpedButton => SimplifiedBlockKind::WarpedButton, + BlockKind::DarkOakSign => SimplifiedBlockKind::Sign, + BlockKind::LightGrayWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::StrippedOakLog => SimplifiedBlockKind::Log, + BlockKind::GreenTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::StickyPiston => SimplifiedBlockKind::StickyPiston, + BlockKind::CreeperWallHead => SimplifiedBlockKind::CreeperWallHead, + BlockKind::LightGrayGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::DamagedAnvil => SimplifiedBlockKind::Anvil, + BlockKind::PolishedDioriteStairs => SimplifiedBlockKind::Stairs, + BlockKind::NoteBlock => SimplifiedBlockKind::NoteBlock, + BlockKind::GreenShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::PottedOrangeTulip => SimplifiedBlockKind::Flower, + BlockKind::BubbleColumn => SimplifiedBlockKind::BubbleColumn, + BlockKind::CobbledDeepslateWall => SimplifiedBlockKind::CobbledDeepslateWall, + BlockKind::WeatheredCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::AcaciaTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::LapisOre => SimplifiedBlockKind::LapisOre, + BlockKind::DeepslateTileSlab => SimplifiedBlockKind::Slab, + BlockKind::BlackGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::WhiteGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::DarkOakLeaves => SimplifiedBlockKind::Leaves, + BlockKind::WaxedCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::MagmaBlock => SimplifiedBlockKind::MagmaBlock, + BlockKind::SpruceSign => SimplifiedBlockKind::Sign, + BlockKind::SmoothStoneSlab => SimplifiedBlockKind::Slab, + BlockKind::OakPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, + BlockKind::DarkOakLog => SimplifiedBlockKind::Log, + BlockKind::WaxedOxidizedCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::LightBlueWool => SimplifiedBlockKind::Wool, + BlockKind::OrangeBanner => SimplifiedBlockKind::Banner, + BlockKind::SmoothRedSandstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::PrismarineWall => SimplifiedBlockKind::PrismarineWall, + BlockKind::NetherBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::GraniteSlab => SimplifiedBlockKind::Slab, + BlockKind::Water => SimplifiedBlockKind::Water, + BlockKind::PolishedBasalt => SimplifiedBlockKind::PolishedBasalt, + BlockKind::ChiseledNetherBricks => SimplifiedBlockKind::ChiseledNetherBricks, + BlockKind::CobbledDeepslate => SimplifiedBlockKind::CobbledDeepslate, + BlockKind::LilyPad => SimplifiedBlockKind::LilyPad, + BlockKind::SmallDripleaf => SimplifiedBlockKind::SmallDripleaf, + BlockKind::WhiteShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::BrownWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::Comparator => SimplifiedBlockKind::Comparator, + BlockKind::CrimsonStairs => SimplifiedBlockKind::Stairs, + BlockKind::WetSponge => SimplifiedBlockKind::WetSponge, + BlockKind::PolishedAndesiteSlab => SimplifiedBlockKind::Slab, + BlockKind::PlayerWallHead => SimplifiedBlockKind::PlayerWallHead, + BlockKind::SpruceStairs => SimplifiedBlockKind::Stairs, + BlockKind::OxidizedCopper => SimplifiedBlockKind::OxidizedCopper, + BlockKind::CrimsonNylium => SimplifiedBlockKind::CrimsonNylium, + BlockKind::OrangeConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::PrismarineBricks => SimplifiedBlockKind::PrismarineBricks, + BlockKind::LimeConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::MagentaBed => SimplifiedBlockKind::Bed, + BlockKind::AcaciaPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, + BlockKind::RedStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::DeepslateTiles => SimplifiedBlockKind::DeepslateTiles, + BlockKind::GrayCarpet => SimplifiedBlockKind::Carpet, + BlockKind::DeadHornCoral => SimplifiedBlockKind::Coral, + BlockKind::DioriteSlab => SimplifiedBlockKind::Slab, + BlockKind::BirchTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::RedNetherBrickWall => SimplifiedBlockKind::RedNetherBrickWall, + BlockKind::Tuff => SimplifiedBlockKind::Tuff, + BlockKind::OxidizedCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::CutRedSandstone => SimplifiedBlockKind::CutRedSandstone, + BlockKind::WarpedStairs => SimplifiedBlockKind::Stairs, + BlockKind::LightBlueStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::EndStoneBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::MagentaWool => SimplifiedBlockKind::Wool, + BlockKind::SmoothRedSandstone => SimplifiedBlockKind::SmoothRedSandstone, + BlockKind::GreenCarpet => SimplifiedBlockKind::Carpet, + BlockKind::SweetBerryBush => SimplifiedBlockKind::SweetBerryBush, + BlockKind::Ladder => SimplifiedBlockKind::Ladder, + BlockKind::CrimsonFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::WhiteBed => SimplifiedBlockKind::Bed, + BlockKind::Fire => SimplifiedBlockKind::Fire, + BlockKind::GrayWool => SimplifiedBlockKind::Wool, + BlockKind::TurtleEgg => SimplifiedBlockKind::TurtleEgg, + BlockKind::EndStoneBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::Air => SimplifiedBlockKind::Air, + BlockKind::BlackstoneWall => SimplifiedBlockKind::BlackstoneWall, + BlockKind::Deepslate => SimplifiedBlockKind::Deepslate, + BlockKind::PottedPinkTulip => SimplifiedBlockKind::Flower, + BlockKind::SlimeBlock => SimplifiedBlockKind::SlimeBlock, + BlockKind::ExposedCutCopper => SimplifiedBlockKind::ExposedCutCopper, + BlockKind::WaxedWeatheredCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::CrimsonPressurePlate => SimplifiedBlockKind::CrimsonPressurePlate, + BlockKind::GrayWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::Cactus => SimplifiedBlockKind::Cactus, + BlockKind::PolishedDeepslateSlab => SimplifiedBlockKind::Slab, + BlockKind::HornCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::StrippedOakWood => SimplifiedBlockKind::Log, + BlockKind::DragonHead => SimplifiedBlockKind::DragonHead, + BlockKind::DarkOakPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, + BlockKind::QuartzBlock => SimplifiedBlockKind::QuartzBlock, + BlockKind::SpruceDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::TallGrass => SimplifiedBlockKind::TallGrass, + BlockKind::MagentaConcrete => SimplifiedBlockKind::Concrete, + BlockKind::WhiteConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::GrayBed => SimplifiedBlockKind::Bed, + BlockKind::OakDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::DeepslateTileStairs => SimplifiedBlockKind::Stairs, + BlockKind::OakSign => SimplifiedBlockKind::Sign, + BlockKind::LimeWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::Loom => SimplifiedBlockKind::Loom, + BlockKind::StrippedSpruceLog => SimplifiedBlockKind::Log, + BlockKind::BlackCarpet => SimplifiedBlockKind::Carpet, + BlockKind::SmoothSandstone => SimplifiedBlockKind::SmoothSandstone, + BlockKind::PolishedBlackstonePressurePlate => { + SimplifiedBlockKind::PolishedBlackstonePressurePlate + } + BlockKind::HoneycombBlock => SimplifiedBlockKind::HoneycombBlock, + BlockKind::PinkBanner => SimplifiedBlockKind::Banner, + BlockKind::Poppy => SimplifiedBlockKind::Flower, + BlockKind::PolishedGraniteSlab => SimplifiedBlockKind::Slab, + BlockKind::DarkOakStairs => SimplifiedBlockKind::Stairs, + BlockKind::PrismarineStairs => SimplifiedBlockKind::Stairs, + BlockKind::DarkOakSlab => SimplifiedBlockKind::Slab, + BlockKind::WaxedOxidizedCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::DarkOakWallSign => SimplifiedBlockKind::WallSign, + BlockKind::BlueWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::PurpleWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::BlueStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::RedTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::BrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::RedstoneWire => SimplifiedBlockKind::RedstoneWire, + BlockKind::PottedOakSapling => SimplifiedBlockKind::Sapling, + BlockKind::BrownConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::WarpedNylium => SimplifiedBlockKind::WarpedNylium, + BlockKind::Cake => SimplifiedBlockKind::Cake, + BlockKind::GrayBanner => SimplifiedBlockKind::Banner, + BlockKind::RedMushroom => SimplifiedBlockKind::Mushroom, + BlockKind::YellowWool => SimplifiedBlockKind::Wool, + BlockKind::CrimsonWallSign => SimplifiedBlockKind::WallSign, + BlockKind::Tripwire => SimplifiedBlockKind::Tripwire, + BlockKind::StonePressurePlate => SimplifiedBlockKind::StonePressurePlate, + BlockKind::MagentaBanner => SimplifiedBlockKind::Banner, + BlockKind::WarpedFence => SimplifiedBlockKind::Fence, + BlockKind::OxidizedCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::BlueCarpet => SimplifiedBlockKind::Carpet, + BlockKind::PottedCrimsonFungus => SimplifiedBlockKind::PottedCrimsonFungus, + BlockKind::RedTulip => SimplifiedBlockKind::Flower, + BlockKind::BlueTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::JungleLeaves => SimplifiedBlockKind::Leaves, + BlockKind::BlackConcrete => SimplifiedBlockKind::Concrete, + BlockKind::Dirt => SimplifiedBlockKind::Dirt, + BlockKind::AcaciaStairs => SimplifiedBlockKind::Stairs, + BlockKind::BirchStairs => SimplifiedBlockKind::Stairs, + BlockKind::PinkCarpet => SimplifiedBlockKind::Carpet, + BlockKind::ChorusPlant => SimplifiedBlockKind::ChorusPlant, + BlockKind::BrownCandleCake => SimplifiedBlockKind::BrownCandleCake, + BlockKind::DeepslateCopperOre => SimplifiedBlockKind::DeepslateCopperOre, + BlockKind::WaxedExposedCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::PottedAcaciaSapling => SimplifiedBlockKind::Sapling, + BlockKind::OrangeWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::HornCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::DetectorRail => SimplifiedBlockKind::DetectorRail, + BlockKind::IronBlock => SimplifiedBlockKind::IronBlock, + BlockKind::LightBlueTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::GrayStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::LightBlueConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::TrappedChest => SimplifiedBlockKind::TrappedChest, + BlockKind::CrimsonSign => SimplifiedBlockKind::Sign, + BlockKind::CandleCake => SimplifiedBlockKind::CandleCake, + BlockKind::PurpleConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::StoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::PolishedBlackstoneBricks => SimplifiedBlockKind::PolishedBlackstoneBricks, + BlockKind::Cauldron => SimplifiedBlockKind::Cauldron, + BlockKind::RedConcrete => SimplifiedBlockKind::Concrete, + BlockKind::BrownStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::CyanCarpet => SimplifiedBlockKind::Carpet, + BlockKind::WeepingVines => SimplifiedBlockKind::WeepingVines, + BlockKind::DragonWallHead => SimplifiedBlockKind::DragonWallHead, + BlockKind::CrimsonSlab => SimplifiedBlockKind::Slab, + BlockKind::LimeShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::RawCopperBlock => SimplifiedBlockKind::RawCopperBlock, + BlockKind::PottedWarpedFungus => SimplifiedBlockKind::PottedWarpedFungus, + BlockKind::DeadBrainCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::WaxedExposedCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::ExposedCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::Pumpkin => SimplifiedBlockKind::Pumpkin, + BlockKind::PumpkinStem => SimplifiedBlockKind::PumpkinStem, + BlockKind::JungleDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::GreenWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::DeadTubeCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::Obsidian => SimplifiedBlockKind::Obsidian, + BlockKind::AcaciaSapling => SimplifiedBlockKind::Sapling, + BlockKind::SandstoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::RedWool => SimplifiedBlockKind::Wool, + BlockKind::BrainCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::Terracotta => SimplifiedBlockKind::Teracotta, + BlockKind::Vine => SimplifiedBlockKind::Vine, + BlockKind::CrimsonTrapdoor => SimplifiedBlockKind::CrimsonTrapdoor, + BlockKind::IronBars => SimplifiedBlockKind::IronBars, + BlockKind::AcaciaFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::CartographyTable => SimplifiedBlockKind::CartographyTable, + BlockKind::BubbleCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::CutSandstone => SimplifiedBlockKind::CutSandstone, + BlockKind::StrippedBirchWood => SimplifiedBlockKind::Log, + BlockKind::DeadHornCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::DeadBrainCoral => SimplifiedBlockKind::Coral, + BlockKind::Glowstone => SimplifiedBlockKind::Glowstone, + BlockKind::StrippedAcaciaLog => SimplifiedBlockKind::Log, + BlockKind::AndesiteStairs => SimplifiedBlockKind::Stairs, + BlockKind::WarpedPressurePlate => SimplifiedBlockKind::WarpedPressurePlate, + BlockKind::PolishedBlackstoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::LimeCarpet => SimplifiedBlockKind::Carpet, + BlockKind::LimeCandle => SimplifiedBlockKind::LimeCandle, + BlockKind::TintedGlass => SimplifiedBlockKind::TintedGlass, + BlockKind::BrownTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::EndStoneBricks => SimplifiedBlockKind::EndStoneBricks, + BlockKind::Ice => SimplifiedBlockKind::Ice, + BlockKind::WaxedWeatheredCopper => SimplifiedBlockKind::WaxedWeatheredCopper, + BlockKind::OakLeaves => SimplifiedBlockKind::Leaves, + BlockKind::PowderSnow => SimplifiedBlockKind::PowderSnow, + BlockKind::OrangeStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::SpruceSlab => SimplifiedBlockKind::Slab, + BlockKind::AcaciaSign => SimplifiedBlockKind::Sign, + BlockKind::CyanBanner => SimplifiedBlockKind::Banner, + BlockKind::LimeStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::SoulWallTorch => SimplifiedBlockKind::SoulWallTorch, + BlockKind::OakWood => SimplifiedBlockKind::Log, + BlockKind::ActivatorRail => SimplifiedBlockKind::ActivatorRail, + BlockKind::DeadBrainCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::PurpleShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::SpruceSapling => SimplifiedBlockKind::Sapling, + BlockKind::JungleSign => SimplifiedBlockKind::Sign, + BlockKind::CyanBed => SimplifiedBlockKind::Bed, + BlockKind::EnderChest => SimplifiedBlockKind::EnderChest, + BlockKind::Chest => SimplifiedBlockKind::Chest, + BlockKind::PrismarineBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::PottedOxeyeDaisy => SimplifiedBlockKind::Flower, + BlockKind::Anvil => SimplifiedBlockKind::Anvil, + BlockKind::SoulFire => SimplifiedBlockKind::SoulFire, + BlockKind::CobbledDeepslateStairs => SimplifiedBlockKind::Stairs, + BlockKind::GraniteWall => SimplifiedBlockKind::GraniteWall, + BlockKind::DeadTubeCoral => SimplifiedBlockKind::Coral, + BlockKind::BubbleCoral => SimplifiedBlockKind::Coral, + BlockKind::Jukebox => SimplifiedBlockKind::Jukebox, + BlockKind::CyanConcrete => SimplifiedBlockKind::Concrete, + BlockKind::TwistingVines => SimplifiedBlockKind::TwistingVines, + BlockKind::MossyCobblestone => SimplifiedBlockKind::MossyCobblestone, + BlockKind::BrownShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::LightGrayShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::StrippedJungleLog => SimplifiedBlockKind::Log, + BlockKind::DeepslateDiamondOre => SimplifiedBlockKind::DeepslateDiamondOre, + BlockKind::LightWeightedPressurePlate => { + SimplifiedBlockKind::LightWeightedPressurePlate + } + BlockKind::BlueGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::Grindstone => SimplifiedBlockKind::Grindstone, + BlockKind::DragonEgg => SimplifiedBlockKind::DragonEgg, + BlockKind::Cornflower => SimplifiedBlockKind::Cornflower, + BlockKind::CobblestoneSlab => SimplifiedBlockKind::Slab, + BlockKind::PottedAzaleaBush => SimplifiedBlockKind::PottedAzaleaBush, + BlockKind::CutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::MovingPiston => SimplifiedBlockKind::MovingPiston, + BlockKind::CarvedPumpkin => SimplifiedBlockKind::CarvedPumpkin, + BlockKind::BlueConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::CoalOre => SimplifiedBlockKind::CoalOre, + BlockKind::CopperOre => SimplifiedBlockKind::CopperOre, + BlockKind::PolishedBlackstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::WhiteTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::BigDripleaf => SimplifiedBlockKind::BigDripleaf, + BlockKind::ChainCommandBlock => SimplifiedBlockKind::ChainCommandBlock, + BlockKind::BrownStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::BirchFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::PolishedDeepslateStairs => SimplifiedBlockKind::Stairs, + BlockKind::BigDripleafStem => SimplifiedBlockKind::BigDripleafStem, + BlockKind::GreenStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::GreenCandle => SimplifiedBlockKind::GreenCandle, + BlockKind::StoneButton => SimplifiedBlockKind::StoneButton, + BlockKind::VoidAir => SimplifiedBlockKind::Air, + BlockKind::ChiseledStoneBricks => SimplifiedBlockKind::ChiseledStoneBricks, + BlockKind::SmithingTable => SimplifiedBlockKind::SmithingTable, + BlockKind::MagentaTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::AndesiteWall => SimplifiedBlockKind::AndesiteWall, } } } diff --git a/feather/blocks/src/wall_blocks.rs b/libcraft/blocks/src/wall_blocks.rs similarity index 100% rename from feather/blocks/src/wall_blocks.rs rename to libcraft/blocks/src/wall_blocks.rs diff --git a/libcraft/blocks/tests/blocks.rs b/libcraft/blocks/tests/blocks.rs deleted file mode 100644 index b9ff9108f..000000000 --- a/libcraft/blocks/tests/blocks.rs +++ /dev/null @@ -1,53 +0,0 @@ -use std::time::Instant; - -use libcraft_blocks::{Ageable, BlockState}; - -#[test] -fn update_block_data() { - let start = Instant::now(); - - let mut block = BlockState::from_id(1485).unwrap(); - let mut fire = block.data_as::().unwrap(); - assert_eq!(fire.age(), 1); - fire.set_age(3); - block.set_data(fire); - assert_eq!(block.data_as::().unwrap().age(), 3); - - println!("{:?}", start.elapsed()); -} - -#[test] -fn set_only_valid_values() { - let mut block = BlockState::from_id(1485).unwrap(); - let mut fire = block.data_as::().unwrap(); - assert_eq!(fire.age(), 1); - fire.set_age(20); - block.set_data(fire); - fire = block.data_as::().unwrap(); - assert_eq!(fire.age(), 1); - fire.set_age(15); - block.set_data(fire); - assert_eq!(block.data_as::().unwrap().age(), 15); -} - -#[test] -fn block_data_valid_properties() { - let block = BlockState::from_id(1485).unwrap(); - let fire = block.data_as::().unwrap(); - assert_eq!( - fire.valid_age(), - vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] - ) -} - -#[test] -fn block_state_valid_properties() { - let block = BlockState::from_id(1485).unwrap(); - - assert_eq!( - block.get_valid_properties().age, - vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] - ); - assert_eq!(block.get_valid_properties().up, vec![true, false]); - assert_eq!(block.get_valid_properties().waterlogged, Vec::new()) -} diff --git a/libcraft/core/src/biome.rs b/libcraft/core/src/biome.rs index 2b81c3bc5..d03e4744c 100644 --- a/libcraft/core/src/biome.rs +++ b/libcraft/core/src/biome.rs @@ -1,783 +1 @@ // This file is @generated. Please do not edit. - -#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] -pub enum Biome { - Ocean, - Plains, - Desert, - Mountains, - Forest, - Taiga, - Swamp, - River, - NetherWastes, - TheEnd, - FrozenOcean, - FrozenRiver, - SnowyTundra, - SnowyMountains, - MushroomFields, - MushroomFieldShore, - Beach, - DesertHills, - WoodedHills, - TaigaHills, - MountainEdge, - Jungle, - JungleHills, - JungleEdge, - DeepOcean, - StoneShore, - SnowyBeach, - BirchForest, - BirchForestHills, - DarkForest, - SnowyTaiga, - SnowyTaigaHills, - GiantTreeTaiga, - GiantTreeTaigaHills, - WoodedMountains, - Savanna, - SavannaPlateau, - Badlands, - WoodedBadlandsPlateau, - BadlandsPlateau, - SmallEndIslands, - EndMidlands, - EndHighlands, - EndBarrens, - WarmOcean, - LukewarmOcean, - ColdOcean, - DeepWarmOcean, - DeepLukewarmOcean, - DeepColdOcean, - DeepFrozenOcean, - TheVoid, - SunflowerPlains, - DesertLakes, - GravellyMountains, - FlowerForest, - TaigaMountains, - SwampHills, - IceSpikes, - ModifiedJungle, - ModifiedJungleEdge, - TallBirchForest, - TallBirchHills, - DarkForestHills, - SnowyTaigaMountains, - GiantSpruceTaiga, - GiantSpruceTaigaHills, - ModifiedGravellyMountains, - ShatteredSavanna, - ShatteredSavannaPlateau, - ErodedBadlands, - ModifiedWoodedBadlandsPlateau, - ModifiedBadlandsPlateau, - BambooJungle, - BambooJungleHills, - SoulSandValley, - CrimsonForest, - WarpedForest, - BasaltDeltas, -} - -#[allow(warnings)] -#[allow(clippy::all)] -impl Biome { - /// Returns the `id` property of this `Biome`. - pub fn id(&self) -> u32 { - match self { - Biome::Ocean => 0, - Biome::Plains => 1, - Biome::Desert => 2, - Biome::Mountains => 3, - Biome::Forest => 4, - Biome::Taiga => 5, - Biome::Swamp => 6, - Biome::River => 7, - Biome::NetherWastes => 8, - Biome::TheEnd => 9, - Biome::FrozenOcean => 10, - Biome::FrozenRiver => 11, - Biome::SnowyTundra => 12, - Biome::SnowyMountains => 13, - Biome::MushroomFields => 14, - Biome::MushroomFieldShore => 15, - Biome::Beach => 16, - Biome::DesertHills => 17, - Biome::WoodedHills => 18, - Biome::TaigaHills => 19, - Biome::MountainEdge => 20, - Biome::Jungle => 21, - Biome::JungleHills => 22, - Biome::JungleEdge => 23, - Biome::DeepOcean => 24, - Biome::StoneShore => 25, - Biome::SnowyBeach => 26, - Biome::BirchForest => 27, - Biome::BirchForestHills => 28, - Biome::DarkForest => 29, - Biome::SnowyTaiga => 30, - Biome::SnowyTaigaHills => 31, - Biome::GiantTreeTaiga => 32, - Biome::GiantTreeTaigaHills => 33, - Biome::WoodedMountains => 34, - Biome::Savanna => 35, - Biome::SavannaPlateau => 36, - Biome::Badlands => 37, - Biome::WoodedBadlandsPlateau => 38, - Biome::BadlandsPlateau => 39, - Biome::SmallEndIslands => 40, - Biome::EndMidlands => 41, - Biome::EndHighlands => 42, - Biome::EndBarrens => 43, - Biome::WarmOcean => 44, - Biome::LukewarmOcean => 45, - Biome::ColdOcean => 46, - Biome::DeepWarmOcean => 47, - Biome::DeepLukewarmOcean => 48, - Biome::DeepColdOcean => 49, - Biome::DeepFrozenOcean => 50, - Biome::TheVoid => 127, - Biome::SunflowerPlains => 129, - Biome::DesertLakes => 130, - Biome::GravellyMountains => 131, - Biome::FlowerForest => 132, - Biome::TaigaMountains => 133, - Biome::SwampHills => 134, - Biome::IceSpikes => 140, - Biome::ModifiedJungle => 149, - Biome::ModifiedJungleEdge => 151, - Biome::TallBirchForest => 155, - Biome::TallBirchHills => 156, - Biome::DarkForestHills => 157, - Biome::SnowyTaigaMountains => 158, - Biome::GiantSpruceTaiga => 160, - Biome::GiantSpruceTaigaHills => 161, - Biome::ModifiedGravellyMountains => 162, - Biome::ShatteredSavanna => 163, - Biome::ShatteredSavannaPlateau => 164, - Biome::ErodedBadlands => 165, - Biome::ModifiedWoodedBadlandsPlateau => 166, - Biome::ModifiedBadlandsPlateau => 167, - Biome::BambooJungle => 168, - Biome::BambooJungleHills => 169, - Biome::SoulSandValley => 170, - Biome::CrimsonForest => 171, - Biome::WarpedForest => 172, - Biome::BasaltDeltas => 173, - } - } - - /// Gets a `Biome` by its `id`. - pub fn from_id(id: u32) -> Option { - match id { - 0 => Some(Biome::Ocean), - 1 => Some(Biome::Plains), - 2 => Some(Biome::Desert), - 3 => Some(Biome::Mountains), - 4 => Some(Biome::Forest), - 5 => Some(Biome::Taiga), - 6 => Some(Biome::Swamp), - 7 => Some(Biome::River), - 8 => Some(Biome::NetherWastes), - 9 => Some(Biome::TheEnd), - 10 => Some(Biome::FrozenOcean), - 11 => Some(Biome::FrozenRiver), - 12 => Some(Biome::SnowyTundra), - 13 => Some(Biome::SnowyMountains), - 14 => Some(Biome::MushroomFields), - 15 => Some(Biome::MushroomFieldShore), - 16 => Some(Biome::Beach), - 17 => Some(Biome::DesertHills), - 18 => Some(Biome::WoodedHills), - 19 => Some(Biome::TaigaHills), - 20 => Some(Biome::MountainEdge), - 21 => Some(Biome::Jungle), - 22 => Some(Biome::JungleHills), - 23 => Some(Biome::JungleEdge), - 24 => Some(Biome::DeepOcean), - 25 => Some(Biome::StoneShore), - 26 => Some(Biome::SnowyBeach), - 27 => Some(Biome::BirchForest), - 28 => Some(Biome::BirchForestHills), - 29 => Some(Biome::DarkForest), - 30 => Some(Biome::SnowyTaiga), - 31 => Some(Biome::SnowyTaigaHills), - 32 => Some(Biome::GiantTreeTaiga), - 33 => Some(Biome::GiantTreeTaigaHills), - 34 => Some(Biome::WoodedMountains), - 35 => Some(Biome::Savanna), - 36 => Some(Biome::SavannaPlateau), - 37 => Some(Biome::Badlands), - 38 => Some(Biome::WoodedBadlandsPlateau), - 39 => Some(Biome::BadlandsPlateau), - 40 => Some(Biome::SmallEndIslands), - 41 => Some(Biome::EndMidlands), - 42 => Some(Biome::EndHighlands), - 43 => Some(Biome::EndBarrens), - 44 => Some(Biome::WarmOcean), - 45 => Some(Biome::LukewarmOcean), - 46 => Some(Biome::ColdOcean), - 47 => Some(Biome::DeepWarmOcean), - 48 => Some(Biome::DeepLukewarmOcean), - 49 => Some(Biome::DeepColdOcean), - 50 => Some(Biome::DeepFrozenOcean), - 127 => Some(Biome::TheVoid), - 129 => Some(Biome::SunflowerPlains), - 130 => Some(Biome::DesertLakes), - 131 => Some(Biome::GravellyMountains), - 132 => Some(Biome::FlowerForest), - 133 => Some(Biome::TaigaMountains), - 134 => Some(Biome::SwampHills), - 140 => Some(Biome::IceSpikes), - 149 => Some(Biome::ModifiedJungle), - 151 => Some(Biome::ModifiedJungleEdge), - 155 => Some(Biome::TallBirchForest), - 156 => Some(Biome::TallBirchHills), - 157 => Some(Biome::DarkForestHills), - 158 => Some(Biome::SnowyTaigaMountains), - 160 => Some(Biome::GiantSpruceTaiga), - 161 => Some(Biome::GiantSpruceTaigaHills), - 162 => Some(Biome::ModifiedGravellyMountains), - 163 => Some(Biome::ShatteredSavanna), - 164 => Some(Biome::ShatteredSavannaPlateau), - 165 => Some(Biome::ErodedBadlands), - 166 => Some(Biome::ModifiedWoodedBadlandsPlateau), - 167 => Some(Biome::ModifiedBadlandsPlateau), - 168 => Some(Biome::BambooJungle), - 169 => Some(Biome::BambooJungleHills), - 170 => Some(Biome::SoulSandValley), - 171 => Some(Biome::CrimsonForest), - 172 => Some(Biome::WarpedForest), - 173 => Some(Biome::BasaltDeltas), - _ => None, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl Biome { - /// Returns the `name` property of this `Biome`. - pub fn name(&self) -> &'static str { - match self { - Biome::Ocean => "ocean", - Biome::Plains => "plains", - Biome::Desert => "desert", - Biome::Mountains => "mountains", - Biome::Forest => "forest", - Biome::Taiga => "taiga", - Biome::Swamp => "swamp", - Biome::River => "river", - Biome::NetherWastes => "nether_wastes", - Biome::TheEnd => "the_end", - Biome::FrozenOcean => "frozen_ocean", - Biome::FrozenRiver => "frozen_river", - Biome::SnowyTundra => "snowy_tundra", - Biome::SnowyMountains => "snowy_mountains", - Biome::MushroomFields => "mushroom_fields", - Biome::MushroomFieldShore => "mushroom_field_shore", - Biome::Beach => "beach", - Biome::DesertHills => "desert_hills", - Biome::WoodedHills => "wooded_hills", - Biome::TaigaHills => "taiga_hills", - Biome::MountainEdge => "mountain_edge", - Biome::Jungle => "jungle", - Biome::JungleHills => "jungle_hills", - Biome::JungleEdge => "jungle_edge", - Biome::DeepOcean => "deep_ocean", - Biome::StoneShore => "stone_shore", - Biome::SnowyBeach => "snowy_beach", - Biome::BirchForest => "birch_forest", - Biome::BirchForestHills => "birch_forest_hills", - Biome::DarkForest => "dark_forest", - Biome::SnowyTaiga => "snowy_taiga", - Biome::SnowyTaigaHills => "snowy_taiga_hills", - Biome::GiantTreeTaiga => "giant_tree_taiga", - Biome::GiantTreeTaigaHills => "giant_tree_taiga_hills", - Biome::WoodedMountains => "wooded_mountains", - Biome::Savanna => "savanna", - Biome::SavannaPlateau => "savanna_plateau", - Biome::Badlands => "badlands", - Biome::WoodedBadlandsPlateau => "wooded_badlands_plateau", - Biome::BadlandsPlateau => "badlands_plateau", - Biome::SmallEndIslands => "small_end_islands", - Biome::EndMidlands => "end_midlands", - Biome::EndHighlands => "end_highlands", - Biome::EndBarrens => "end_barrens", - Biome::WarmOcean => "warm_ocean", - Biome::LukewarmOcean => "lukewarm_ocean", - Biome::ColdOcean => "cold_ocean", - Biome::DeepWarmOcean => "deep_warm_ocean", - Biome::DeepLukewarmOcean => "deep_lukewarm_ocean", - Biome::DeepColdOcean => "deep_cold_ocean", - Biome::DeepFrozenOcean => "deep_frozen_ocean", - Biome::TheVoid => "the_void", - Biome::SunflowerPlains => "sunflower_plains", - Biome::DesertLakes => "desert_lakes", - Biome::GravellyMountains => "gravelly_mountains", - Biome::FlowerForest => "flower_forest", - Biome::TaigaMountains => "taiga_mountains", - Biome::SwampHills => "swamp_hills", - Biome::IceSpikes => "ice_spikes", - Biome::ModifiedJungle => "modified_jungle", - Biome::ModifiedJungleEdge => "modified_jungle_edge", - Biome::TallBirchForest => "tall_birch_forest", - Biome::TallBirchHills => "tall_birch_hills", - Biome::DarkForestHills => "dark_forest_hills", - Biome::SnowyTaigaMountains => "snowy_taiga_mountains", - Biome::GiantSpruceTaiga => "giant_spruce_taiga", - Biome::GiantSpruceTaigaHills => "giant_spruce_taiga_hills", - Biome::ModifiedGravellyMountains => "modified_gravelly_mountains", - Biome::ShatteredSavanna => "shattered_savanna", - Biome::ShatteredSavannaPlateau => "shattered_savanna_plateau", - Biome::ErodedBadlands => "eroded_badlands", - Biome::ModifiedWoodedBadlandsPlateau => "modified_wooded_badlands_plateau", - Biome::ModifiedBadlandsPlateau => "modified_badlands_plateau", - Biome::BambooJungle => "bamboo_jungle", - Biome::BambooJungleHills => "bamboo_jungle_hills", - Biome::SoulSandValley => "soul_sand_valley", - Biome::CrimsonForest => "crimson_forest", - Biome::WarpedForest => "warped_forest", - Biome::BasaltDeltas => "basalt_deltas", - } - } - - /// Gets a `Biome` by its `name`. - pub fn from_name(name: &str) -> Option { - match name { - "ocean" => Some(Biome::Ocean), - "plains" => Some(Biome::Plains), - "desert" => Some(Biome::Desert), - "mountains" => Some(Biome::Mountains), - "forest" => Some(Biome::Forest), - "taiga" => Some(Biome::Taiga), - "swamp" => Some(Biome::Swamp), - "river" => Some(Biome::River), - "nether_wastes" => Some(Biome::NetherWastes), - "the_end" => Some(Biome::TheEnd), - "frozen_ocean" => Some(Biome::FrozenOcean), - "frozen_river" => Some(Biome::FrozenRiver), - "snowy_tundra" => Some(Biome::SnowyTundra), - "snowy_mountains" => Some(Biome::SnowyMountains), - "mushroom_fields" => Some(Biome::MushroomFields), - "mushroom_field_shore" => Some(Biome::MushroomFieldShore), - "beach" => Some(Biome::Beach), - "desert_hills" => Some(Biome::DesertHills), - "wooded_hills" => Some(Biome::WoodedHills), - "taiga_hills" => Some(Biome::TaigaHills), - "mountain_edge" => Some(Biome::MountainEdge), - "jungle" => Some(Biome::Jungle), - "jungle_hills" => Some(Biome::JungleHills), - "jungle_edge" => Some(Biome::JungleEdge), - "deep_ocean" => Some(Biome::DeepOcean), - "stone_shore" => Some(Biome::StoneShore), - "snowy_beach" => Some(Biome::SnowyBeach), - "birch_forest" => Some(Biome::BirchForest), - "birch_forest_hills" => Some(Biome::BirchForestHills), - "dark_forest" => Some(Biome::DarkForest), - "snowy_taiga" => Some(Biome::SnowyTaiga), - "snowy_taiga_hills" => Some(Biome::SnowyTaigaHills), - "giant_tree_taiga" => Some(Biome::GiantTreeTaiga), - "giant_tree_taiga_hills" => Some(Biome::GiantTreeTaigaHills), - "wooded_mountains" => Some(Biome::WoodedMountains), - "savanna" => Some(Biome::Savanna), - "savanna_plateau" => Some(Biome::SavannaPlateau), - "badlands" => Some(Biome::Badlands), - "wooded_badlands_plateau" => Some(Biome::WoodedBadlandsPlateau), - "badlands_plateau" => Some(Biome::BadlandsPlateau), - "small_end_islands" => Some(Biome::SmallEndIslands), - "end_midlands" => Some(Biome::EndMidlands), - "end_highlands" => Some(Biome::EndHighlands), - "end_barrens" => Some(Biome::EndBarrens), - "warm_ocean" => Some(Biome::WarmOcean), - "lukewarm_ocean" => Some(Biome::LukewarmOcean), - "cold_ocean" => Some(Biome::ColdOcean), - "deep_warm_ocean" => Some(Biome::DeepWarmOcean), - "deep_lukewarm_ocean" => Some(Biome::DeepLukewarmOcean), - "deep_cold_ocean" => Some(Biome::DeepColdOcean), - "deep_frozen_ocean" => Some(Biome::DeepFrozenOcean), - "the_void" => Some(Biome::TheVoid), - "sunflower_plains" => Some(Biome::SunflowerPlains), - "desert_lakes" => Some(Biome::DesertLakes), - "gravelly_mountains" => Some(Biome::GravellyMountains), - "flower_forest" => Some(Biome::FlowerForest), - "taiga_mountains" => Some(Biome::TaigaMountains), - "swamp_hills" => Some(Biome::SwampHills), - "ice_spikes" => Some(Biome::IceSpikes), - "modified_jungle" => Some(Biome::ModifiedJungle), - "modified_jungle_edge" => Some(Biome::ModifiedJungleEdge), - "tall_birch_forest" => Some(Biome::TallBirchForest), - "tall_birch_hills" => Some(Biome::TallBirchHills), - "dark_forest_hills" => Some(Biome::DarkForestHills), - "snowy_taiga_mountains" => Some(Biome::SnowyTaigaMountains), - "giant_spruce_taiga" => Some(Biome::GiantSpruceTaiga), - "giant_spruce_taiga_hills" => Some(Biome::GiantSpruceTaigaHills), - "modified_gravelly_mountains" => Some(Biome::ModifiedGravellyMountains), - "shattered_savanna" => Some(Biome::ShatteredSavanna), - "shattered_savanna_plateau" => Some(Biome::ShatteredSavannaPlateau), - "eroded_badlands" => Some(Biome::ErodedBadlands), - "modified_wooded_badlands_plateau" => Some(Biome::ModifiedWoodedBadlandsPlateau), - "modified_badlands_plateau" => Some(Biome::ModifiedBadlandsPlateau), - "bamboo_jungle" => Some(Biome::BambooJungle), - "bamboo_jungle_hills" => Some(Biome::BambooJungleHills), - "soul_sand_valley" => Some(Biome::SoulSandValley), - "crimson_forest" => Some(Biome::CrimsonForest), - "warped_forest" => Some(Biome::WarpedForest), - "basalt_deltas" => Some(Biome::BasaltDeltas), - _ => None, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl Biome { - /// Returns the `display_name` property of this `Biome`. - pub fn display_name(&self) -> &'static str { - match self { - Biome::Ocean => "Ocean", - Biome::Plains => "Plains", - Biome::Desert => "Desert", - Biome::Mountains => "Mountains", - Biome::Forest => "Forest", - Biome::Taiga => "Taiga", - Biome::Swamp => "Swamp", - Biome::River => "River", - Biome::NetherWastes => "Nether Wastes", - Biome::TheEnd => "The End", - Biome::FrozenOcean => "Frozen Ocean", - Biome::FrozenRiver => "Frozen River", - Biome::SnowyTundra => "Snowy Tundra", - Biome::SnowyMountains => "Snowy Mountains", - Biome::MushroomFields => "Mushroom Fields", - Biome::MushroomFieldShore => "Mushroom Fields Shore", - Biome::Beach => "Beach", - Biome::DesertHills => "Desert Hills", - Biome::WoodedHills => "Wooded Hills", - Biome::TaigaHills => "Taiga Hills", - Biome::MountainEdge => "Mountain Edge", - Biome::Jungle => "Jungle", - Biome::JungleHills => "Jungle Hills", - Biome::JungleEdge => "Jungle Edge", - Biome::DeepOcean => "Deep Ocean", - Biome::StoneShore => "Stone Shore", - Biome::SnowyBeach => "Snowy Beach", - Biome::BirchForest => "Birch Forest", - Biome::BirchForestHills => "Birch Forest Hills", - Biome::DarkForest => "Dark Forest", - Biome::SnowyTaiga => "Snowy Taiga", - Biome::SnowyTaigaHills => "Snowy Taiga Hills", - Biome::GiantTreeTaiga => "Giant Tree Taiga", - Biome::GiantTreeTaigaHills => "Giant Tree Taiga Hills", - Biome::WoodedMountains => "Wooded Mountains", - Biome::Savanna => "Savanna", - Biome::SavannaPlateau => "Savanna Plateau", - Biome::Badlands => "Badlands", - Biome::WoodedBadlandsPlateau => "Wooded Badlands Plateau", - Biome::BadlandsPlateau => "Badlands Plateau", - Biome::SmallEndIslands => "Small End Islands", - Biome::EndMidlands => "End Midlands", - Biome::EndHighlands => "End Highlands", - Biome::EndBarrens => "End Barrens", - Biome::WarmOcean => "Warm Ocean", - Biome::LukewarmOcean => "Lukewarm Ocean", - Biome::ColdOcean => "Cold Ocean", - Biome::DeepWarmOcean => "Deep Warm Ocean", - Biome::DeepLukewarmOcean => "Deep Lukewarm Ocean", - Biome::DeepColdOcean => "Deep Cold Ocean", - Biome::DeepFrozenOcean => "Deep Frozen Ocean", - Biome::TheVoid => "the_void", - Biome::SunflowerPlains => "Sunflower Plains", - Biome::DesertLakes => "Desert Lakes", - Biome::GravellyMountains => "Gravelly Mountains", - Biome::FlowerForest => "Flower Forest", - Biome::TaigaMountains => "Taiga Mountains", - Biome::SwampHills => "Swamp Hills", - Biome::IceSpikes => "Ice Spikes", - Biome::ModifiedJungle => "Modified Jungle", - Biome::ModifiedJungleEdge => "Modified Jungle Edge", - Biome::TallBirchForest => "Tall Birch Forest", - Biome::TallBirchHills => "Tall Birch Hills", - Biome::DarkForestHills => "Dark Forest Hills", - Biome::SnowyTaigaMountains => "Snowy Taiga Mountains", - Biome::GiantSpruceTaiga => "Giant Spruce Taiga", - Biome::GiantSpruceTaigaHills => "Giant Spruce Taiga Hills", - Biome::ModifiedGravellyMountains => "Gravelly Mountains+", - Biome::ShatteredSavanna => "Shattered Savanna", - Biome::ShatteredSavannaPlateau => "Shattered Savanna Plateau", - Biome::ErodedBadlands => "Eroded Badlands", - Biome::ModifiedWoodedBadlandsPlateau => "Modified Wooded Badlands Plateau", - Biome::ModifiedBadlandsPlateau => "Modified Badlands Plateau", - Biome::BambooJungle => "Bamboo Jungle", - Biome::BambooJungleHills => "Bamboo Jungle Hills", - Biome::SoulSandValley => "Soul Sand Valley", - Biome::CrimsonForest => "Crimson Forest", - Biome::WarpedForest => "Warped Forest", - Biome::BasaltDeltas => "Basalt Deltas", - } - } - - /// Gets a `Biome` by its `display_name`. - pub fn from_display_name(display_name: &str) -> Option { - match display_name { - "Ocean" => Some(Biome::Ocean), - "Plains" => Some(Biome::Plains), - "Desert" => Some(Biome::Desert), - "Mountains" => Some(Biome::Mountains), - "Forest" => Some(Biome::Forest), - "Taiga" => Some(Biome::Taiga), - "Swamp" => Some(Biome::Swamp), - "River" => Some(Biome::River), - "Nether Wastes" => Some(Biome::NetherWastes), - "The End" => Some(Biome::TheEnd), - "Frozen Ocean" => Some(Biome::FrozenOcean), - "Frozen River" => Some(Biome::FrozenRiver), - "Snowy Tundra" => Some(Biome::SnowyTundra), - "Snowy Mountains" => Some(Biome::SnowyMountains), - "Mushroom Fields" => Some(Biome::MushroomFields), - "Mushroom Fields Shore" => Some(Biome::MushroomFieldShore), - "Beach" => Some(Biome::Beach), - "Desert Hills" => Some(Biome::DesertHills), - "Wooded Hills" => Some(Biome::WoodedHills), - "Taiga Hills" => Some(Biome::TaigaHills), - "Mountain Edge" => Some(Biome::MountainEdge), - "Jungle" => Some(Biome::Jungle), - "Jungle Hills" => Some(Biome::JungleHills), - "Jungle Edge" => Some(Biome::JungleEdge), - "Deep Ocean" => Some(Biome::DeepOcean), - "Stone Shore" => Some(Biome::StoneShore), - "Snowy Beach" => Some(Biome::SnowyBeach), - "Birch Forest" => Some(Biome::BirchForest), - "Birch Forest Hills" => Some(Biome::BirchForestHills), - "Dark Forest" => Some(Biome::DarkForest), - "Snowy Taiga" => Some(Biome::SnowyTaiga), - "Snowy Taiga Hills" => Some(Biome::SnowyTaigaHills), - "Giant Tree Taiga" => Some(Biome::GiantTreeTaiga), - "Giant Tree Taiga Hills" => Some(Biome::GiantTreeTaigaHills), - "Wooded Mountains" => Some(Biome::WoodedMountains), - "Savanna" => Some(Biome::Savanna), - "Savanna Plateau" => Some(Biome::SavannaPlateau), - "Badlands" => Some(Biome::Badlands), - "Wooded Badlands Plateau" => Some(Biome::WoodedBadlandsPlateau), - "Badlands Plateau" => Some(Biome::BadlandsPlateau), - "Small End Islands" => Some(Biome::SmallEndIslands), - "End Midlands" => Some(Biome::EndMidlands), - "End Highlands" => Some(Biome::EndHighlands), - "End Barrens" => Some(Biome::EndBarrens), - "Warm Ocean" => Some(Biome::WarmOcean), - "Lukewarm Ocean" => Some(Biome::LukewarmOcean), - "Cold Ocean" => Some(Biome::ColdOcean), - "Deep Warm Ocean" => Some(Biome::DeepWarmOcean), - "Deep Lukewarm Ocean" => Some(Biome::DeepLukewarmOcean), - "Deep Cold Ocean" => Some(Biome::DeepColdOcean), - "Deep Frozen Ocean" => Some(Biome::DeepFrozenOcean), - "the_void" => Some(Biome::TheVoid), - "Sunflower Plains" => Some(Biome::SunflowerPlains), - "Desert Lakes" => Some(Biome::DesertLakes), - "Gravelly Mountains" => Some(Biome::GravellyMountains), - "Flower Forest" => Some(Biome::FlowerForest), - "Taiga Mountains" => Some(Biome::TaigaMountains), - "Swamp Hills" => Some(Biome::SwampHills), - "Ice Spikes" => Some(Biome::IceSpikes), - "Modified Jungle" => Some(Biome::ModifiedJungle), - "Modified Jungle Edge" => Some(Biome::ModifiedJungleEdge), - "Tall Birch Forest" => Some(Biome::TallBirchForest), - "Tall Birch Hills" => Some(Biome::TallBirchHills), - "Dark Forest Hills" => Some(Biome::DarkForestHills), - "Snowy Taiga Mountains" => Some(Biome::SnowyTaigaMountains), - "Giant Spruce Taiga" => Some(Biome::GiantSpruceTaiga), - "Giant Spruce Taiga Hills" => Some(Biome::GiantSpruceTaigaHills), - "Gravelly Mountains+" => Some(Biome::ModifiedGravellyMountains), - "Shattered Savanna" => Some(Biome::ShatteredSavanna), - "Shattered Savanna Plateau" => Some(Biome::ShatteredSavannaPlateau), - "Eroded Badlands" => Some(Biome::ErodedBadlands), - "Modified Wooded Badlands Plateau" => Some(Biome::ModifiedWoodedBadlandsPlateau), - "Modified Badlands Plateau" => Some(Biome::ModifiedBadlandsPlateau), - "Bamboo Jungle" => Some(Biome::BambooJungle), - "Bamboo Jungle Hills" => Some(Biome::BambooJungleHills), - "Soul Sand Valley" => Some(Biome::SoulSandValley), - "Crimson Forest" => Some(Biome::CrimsonForest), - "Warped Forest" => Some(Biome::WarpedForest), - "Basalt Deltas" => Some(Biome::BasaltDeltas), - _ => None, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl Biome { - /// Returns the `rainfall` property of this `Biome`. - pub fn rainfall(&self) -> f32 { - match self { - Biome::Ocean => 0.5 as f32, - Biome::Plains => 0.4 as f32, - Biome::Desert => 0 as f32, - Biome::Mountains => 0.3 as f32, - Biome::Forest => 0.8 as f32, - Biome::Taiga => 0.8 as f32, - Biome::Swamp => 0.9 as f32, - Biome::River => 0.5 as f32, - Biome::NetherWastes => 0 as f32, - Biome::TheEnd => 0.5 as f32, - Biome::FrozenOcean => 0.5 as f32, - Biome::FrozenRiver => 0.5 as f32, - Biome::SnowyTundra => 0.5 as f32, - Biome::SnowyMountains => 0.5 as f32, - Biome::MushroomFields => 1 as f32, - Biome::MushroomFieldShore => 1 as f32, - Biome::Beach => 0.4 as f32, - Biome::DesertHills => 0 as f32, - Biome::WoodedHills => 0.8 as f32, - Biome::TaigaHills => 0.8 as f32, - Biome::MountainEdge => 0.3 as f32, - Biome::Jungle => 0.9 as f32, - Biome::JungleHills => 0.9 as f32, - Biome::JungleEdge => 0.8 as f32, - Biome::DeepOcean => 0.5 as f32, - Biome::StoneShore => 0.3 as f32, - Biome::SnowyBeach => 0.3 as f32, - Biome::BirchForest => 0.6 as f32, - Biome::BirchForestHills => 0.6 as f32, - Biome::DarkForest => 0.8 as f32, - Biome::SnowyTaiga => 0.4 as f32, - Biome::SnowyTaigaHills => 0.4 as f32, - Biome::GiantTreeTaiga => 0.8 as f32, - Biome::GiantTreeTaigaHills => 0.8 as f32, - Biome::WoodedMountains => 0.3 as f32, - Biome::Savanna => 0 as f32, - Biome::SavannaPlateau => 0 as f32, - Biome::Badlands => 0 as f32, - Biome::WoodedBadlandsPlateau => 0 as f32, - Biome::BadlandsPlateau => 0 as f32, - Biome::SmallEndIslands => 0.5 as f32, - Biome::EndMidlands => 0.5 as f32, - Biome::EndHighlands => 0.5 as f32, - Biome::EndBarrens => 0.5 as f32, - Biome::WarmOcean => 0.5 as f32, - Biome::LukewarmOcean => 0.5 as f32, - Biome::ColdOcean => 0.5 as f32, - Biome::DeepWarmOcean => 0.5 as f32, - Biome::DeepLukewarmOcean => 0.5 as f32, - Biome::DeepColdOcean => 0.5 as f32, - Biome::DeepFrozenOcean => 0.5 as f32, - Biome::TheVoid => 0.5 as f32, - Biome::SunflowerPlains => 0.4 as f32, - Biome::DesertLakes => 0 as f32, - Biome::GravellyMountains => 0.3 as f32, - Biome::FlowerForest => 0.8 as f32, - Biome::TaigaMountains => 0.8 as f32, - Biome::SwampHills => 0.9 as f32, - Biome::IceSpikes => 0.5 as f32, - Biome::ModifiedJungle => 0.9 as f32, - Biome::ModifiedJungleEdge => 0.8 as f32, - Biome::TallBirchForest => 0.6 as f32, - Biome::TallBirchHills => 0.6 as f32, - Biome::DarkForestHills => 0.8 as f32, - Biome::SnowyTaigaMountains => 0.4 as f32, - Biome::GiantSpruceTaiga => 0.8 as f32, - Biome::GiantSpruceTaigaHills => 0.8 as f32, - Biome::ModifiedGravellyMountains => 0.3 as f32, - Biome::ShatteredSavanna => 0 as f32, - Biome::ShatteredSavannaPlateau => 0 as f32, - Biome::ErodedBadlands => 0 as f32, - Biome::ModifiedWoodedBadlandsPlateau => 0 as f32, - Biome::ModifiedBadlandsPlateau => 0 as f32, - Biome::BambooJungle => 0.9 as f32, - Biome::BambooJungleHills => 0.9 as f32, - Biome::SoulSandValley => 0 as f32, - Biome::CrimsonForest => 0 as f32, - Biome::WarpedForest => 0 as f32, - Biome::BasaltDeltas => 0 as f32, - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl Biome { - /// Returns the `temperature` property of this `Biome`. - pub fn temperature(&self) -> f32 { - match self { - Biome::Ocean => 0.5 as f32, - Biome::Plains => 0.8 as f32, - Biome::Desert => 2 as f32, - Biome::Mountains => 0.2 as f32, - Biome::Forest => 0.7 as f32, - Biome::Taiga => 0.25 as f32, - Biome::Swamp => 0.8 as f32, - Biome::River => 0.5 as f32, - Biome::NetherWastes => 2 as f32, - Biome::TheEnd => 0.5 as f32, - Biome::FrozenOcean => 0 as f32, - Biome::FrozenRiver => 0 as f32, - Biome::SnowyTundra => 0 as f32, - Biome::SnowyMountains => 0 as f32, - Biome::MushroomFields => 0.9 as f32, - Biome::MushroomFieldShore => 0.9 as f32, - Biome::Beach => 0.8 as f32, - Biome::DesertHills => 2 as f32, - Biome::WoodedHills => 0.7 as f32, - Biome::TaigaHills => 0.25 as f32, - Biome::MountainEdge => 0.2 as f32, - Biome::Jungle => 0.95 as f32, - Biome::JungleHills => 0.95 as f32, - Biome::JungleEdge => 0.95 as f32, - Biome::DeepOcean => 0.5 as f32, - Biome::StoneShore => 0.2 as f32, - Biome::SnowyBeach => 0.05 as f32, - Biome::BirchForest => 0.6 as f32, - Biome::BirchForestHills => 0.6 as f32, - Biome::DarkForest => 0.7 as f32, - Biome::SnowyTaiga => -0.5 as f32, - Biome::SnowyTaigaHills => -0.5 as f32, - Biome::GiantTreeTaiga => 0.3 as f32, - Biome::GiantTreeTaigaHills => 0.3 as f32, - Biome::WoodedMountains => 0.2 as f32, - Biome::Savanna => 1.2 as f32, - Biome::SavannaPlateau => 1 as f32, - Biome::Badlands => 2 as f32, - Biome::WoodedBadlandsPlateau => 2 as f32, - Biome::BadlandsPlateau => 2 as f32, - Biome::SmallEndIslands => 0.5 as f32, - Biome::EndMidlands => 0.5 as f32, - Biome::EndHighlands => 0.5 as f32, - Biome::EndBarrens => 0.5 as f32, - Biome::WarmOcean => 0.5 as f32, - Biome::LukewarmOcean => 0.5 as f32, - Biome::ColdOcean => 0.5 as f32, - Biome::DeepWarmOcean => 0.5 as f32, - Biome::DeepLukewarmOcean => 0.5 as f32, - Biome::DeepColdOcean => 0.5 as f32, - Biome::DeepFrozenOcean => 0.5 as f32, - Biome::TheVoid => 0.5 as f32, - Biome::SunflowerPlains => 0.8 as f32, - Biome::DesertLakes => 2 as f32, - Biome::GravellyMountains => 0.2 as f32, - Biome::FlowerForest => 0.7 as f32, - Biome::TaigaMountains => 0.25 as f32, - Biome::SwampHills => 0.8 as f32, - Biome::IceSpikes => 0 as f32, - Biome::ModifiedJungle => 0.95 as f32, - Biome::ModifiedJungleEdge => 0.95 as f32, - Biome::TallBirchForest => 0.6 as f32, - Biome::TallBirchHills => 0.6 as f32, - Biome::DarkForestHills => 0.7 as f32, - Biome::SnowyTaigaMountains => -0.5 as f32, - Biome::GiantSpruceTaiga => 0.25 as f32, - Biome::GiantSpruceTaigaHills => 0.25 as f32, - Biome::ModifiedGravellyMountains => 0.2 as f32, - Biome::ShatteredSavanna => 1.1 as f32, - Biome::ShatteredSavannaPlateau => 1 as f32, - Biome::ErodedBadlands => 2 as f32, - Biome::ModifiedWoodedBadlandsPlateau => 2 as f32, - Biome::ModifiedBadlandsPlateau => 2 as f32, - Biome::BambooJungle => 0.95 as f32, - Biome::BambooJungleHills => 0.95 as f32, - Biome::SoulSandValley => 2 as f32, - Biome::CrimsonForest => 2 as f32, - Biome::WarpedForest => 2 as f32, - Biome::BasaltDeltas => 2 as f32, - } - } -} diff --git a/libcraft/core/src/dimension.rs b/libcraft/core/src/dimension.rs deleted file mode 100644 index 4b9a4d035..000000000 --- a/libcraft/core/src/dimension.rs +++ /dev/null @@ -1,70 +0,0 @@ -use serde::{Deserialize, Serialize}; -use std::convert::TryFrom; - -#[derive(Debug, Clone, Eq, PartialEq, Serialize, Deserialize)] -#[serde(try_from = "String", into = "&'static str")] -pub enum Dimension { - Overworld, - TheNether, - TheEnd, -} - -impl Dimension { - pub fn id(&self) -> i32 { - match self { - Self::Overworld => 0, - Self::TheNether => -1, - Self::TheEnd => 1, - } - } - - pub fn from_id(id: i32) -> Option { - match id { - 0 => Some(Self::Overworld), - -1 => Some(Self::TheNether), - 1 => Some(Self::TheEnd), - _ => None, - } - } - - pub fn namespaced_id(&self) -> &'static str { - match self { - Self::Overworld => "minecraft:overworld", - Self::TheNether => "minecraft:the_nether", - Self::TheEnd => "minecraft:the_end", - } - } - - pub fn from_namespaced_id(id: &str) -> Option { - match id { - "minecraft:overworld" => Some(Self::Overworld), - "minecraft:the_nether" => Some(Self::TheNether), - "minecraft:the_end" => Some(Self::TheEnd), - _ => None, - } - } -} - -impl TryFrom for Dimension { - type Error = &'static str; - - fn try_from(namespaced_value: String) -> Result { - if let Some(val) = Self::from_namespaced_id(namespaced_value.as_str()) { - Ok(val) - } else { - Err("Unknown dimension namespaced_id.") - } - } -} - -impl From for &'static str { - fn from(value: Dimension) -> Self { - value.namespaced_id() - } -} - -impl From for i32 { - fn from(value: Dimension) -> Self { - value.id() - } -} diff --git a/libcraft/core/src/entity.rs b/libcraft/core/src/entity.rs index 0f16ee4ce..365b5436f 100644 --- a/libcraft/core/src/entity.rs +++ b/libcraft/core/src/entity.rs @@ -1,10 +1,22 @@ // This file is @generated. Please do not edit. - -#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +#[derive( + Copy, + Clone, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + serde :: Serialize, + serde :: Deserialize, +)] +#[serde(try_from = "String", into = "&'static str")] pub enum EntityKind { AreaEffectCloud, ArmorStand, Arrow, + Axolotl, Bat, Bee, Blaze, @@ -33,6 +45,9 @@ pub enum EntityKind { Fox, Ghast, Giant, + GlowItemFrame, + GlowSquid, + Goat, Guardian, Hoglin, Horse, @@ -47,6 +62,7 @@ pub enum EntityKind { Llama, LlamaSpit, MagmaCube, + Marker, Minecart, ChestMinecart, CommandBlockMinecart, @@ -111,1373 +127,1116 @@ pub enum EntityKind { Player, FishingBobber, } - -#[allow(warnings)] -#[allow(clippy::all)] impl EntityKind { - /// Returns the `id` property of this `EntityKind`. + #[inline] + pub fn values() -> &'static [EntityKind] { + use EntityKind::*; + &[ + AreaEffectCloud, + ArmorStand, + Arrow, + Axolotl, + Bat, + Bee, + Blaze, + Boat, + Cat, + CaveSpider, + Chicken, + Cod, + Cow, + Creeper, + Dolphin, + Donkey, + DragonFireball, + Drowned, + ElderGuardian, + EndCrystal, + EnderDragon, + Enderman, + Endermite, + Evoker, + EvokerFangs, + ExperienceOrb, + EyeOfEnder, + FallingBlock, + FireworkRocket, + Fox, + Ghast, + Giant, + GlowItemFrame, + GlowSquid, + Goat, + Guardian, + Hoglin, + Horse, + Husk, + Illusioner, + IronGolem, + Item, + ItemFrame, + Fireball, + LeashKnot, + LightningBolt, + Llama, + LlamaSpit, + MagmaCube, + Marker, + Minecart, + ChestMinecart, + CommandBlockMinecart, + FurnaceMinecart, + HopperMinecart, + SpawnerMinecart, + TntMinecart, + Mule, + Mooshroom, + Ocelot, + Painting, + Panda, + Parrot, + Phantom, + Pig, + Piglin, + PiglinBrute, + Pillager, + PolarBear, + Tnt, + Pufferfish, + Rabbit, + Ravager, + Salmon, + Sheep, + Shulker, + ShulkerBullet, + Silverfish, + Skeleton, + SkeletonHorse, + Slime, + SmallFireball, + SnowGolem, + Snowball, + SpectralArrow, + Spider, + Squid, + Stray, + Strider, + Egg, + EnderPearl, + ExperienceBottle, + Potion, + Trident, + TraderLlama, + TropicalFish, + Turtle, + Vex, + Villager, + Vindicator, + WanderingTrader, + Witch, + Wither, + WitherSkeleton, + WitherSkull, + Wolf, + Zoglin, + Zombie, + ZombieHorse, + ZombieVillager, + ZombifiedPiglin, + Player, + FishingBobber, + ] + } +} +impl EntityKind { + #[doc = "Returns the `id` property of this `EntityKind`."] + #[inline] pub fn id(&self) -> u32 { match self { + EntityKind::Spider => 85, + EntityKind::ZombieHorse => 108, + EntityKind::Egg => 89, + EntityKind::SkeletonHorse => 79, + EntityKind::Turtle => 96, + EntityKind::Bee => 5, + EntityKind::MagmaCube => 48, + EntityKind::Giant => 31, + EntityKind::FireworkRocket => 28, + EntityKind::Strider => 88, + EntityKind::EnderPearl => 90, + EntityKind::Pig => 64, + EntityKind::Cow => 12, + EntityKind::Wolf => 105, + EntityKind::Boat => 7, + EntityKind::Parrot => 62, + EntityKind::TropicalFish => 95, + EntityKind::SpectralArrow => 84, + EntityKind::Painting => 60, + EntityKind::FurnaceMinecart => 53, + EntityKind::Phantom => 63, + EntityKind::Rabbit => 71, + EntityKind::LightningBolt => 45, + EntityKind::Horse => 37, + EntityKind::Minecart => 50, + EntityKind::SpawnerMinecart => 55, + EntityKind::Cod => 11, + EntityKind::Slime => 80, + EntityKind::EnderDragon => 20, + EntityKind::ChestMinecart => 51, + EntityKind::FallingBlock => 27, + EntityKind::Shulker => 75, + EntityKind::Squid => 86, + EntityKind::Husk => 38, + EntityKind::GlowItemFrame => 32, + EntityKind::Endermite => 22, + EntityKind::Creeper => 13, + EntityKind::Goat => 34, + EntityKind::Fireball => 43, + EntityKind::Cat => 8, + EntityKind::SmallFireball => 81, + EntityKind::WanderingTrader => 100, + EntityKind::TntMinecart => 56, + EntityKind::Player => 111, + EntityKind::Tnt => 69, + EntityKind::CaveSpider => 9, + EntityKind::Ghast => 30, + EntityKind::Ocelot => 59, + EntityKind::ExperienceBottle => 91, + EntityKind::ShulkerBullet => 76, + EntityKind::Donkey => 15, + EntityKind::Stray => 87, + EntityKind::Illusioner => 39, + EntityKind::IronGolem => 40, + EntityKind::TraderLlama => 94, + EntityKind::PolarBear => 68, + EntityKind::ExperienceOrb => 25, + EntityKind::WitherSkeleton => 103, + EntityKind::CommandBlockMinecart => 52, + EntityKind::Ravager => 72, + EntityKind::Blaze => 6, + EntityKind::ElderGuardian => 18, + EntityKind::ItemFrame => 42, + EntityKind::Enderman => 21, + EntityKind::Villager => 98, + EntityKind::EndCrystal => 19, + EntityKind::EyeOfEnder => 26, + EntityKind::Witch => 101, + EntityKind::Trident => 93, + EntityKind::Marker => 49, + EntityKind::Evoker => 23, + EntityKind::Fox => 29, + EntityKind::Mule => 57, + EntityKind::Skeleton => 78, + EntityKind::Drowned => 17, + EntityKind::Sheep => 74, + EntityKind::EvokerFangs => 24, + EntityKind::Arrow => 2, + EntityKind::Bat => 4, + EntityKind::Zombie => 107, + EntityKind::Llama => 46, + EntityKind::SnowGolem => 82, + EntityKind::LeashKnot => 44, + EntityKind::Potion => 92, + EntityKind::Zoglin => 106, + EntityKind::Guardian => 35, + EntityKind::Salmon => 73, + EntityKind::WitherSkull => 104, + EntityKind::Vindicator => 99, + EntityKind::Silverfish => 77, + EntityKind::Vex => 97, + EntityKind::HopperMinecart => 54, EntityKind::AreaEffectCloud => 0, + EntityKind::Chicken => 10, + EntityKind::DragonFireball => 16, + EntityKind::Wither => 102, + EntityKind::Pufferfish => 70, + EntityKind::PiglinBrute => 66, + EntityKind::Pillager => 67, + EntityKind::Snowball => 83, + EntityKind::ZombieVillager => 109, + EntityKind::Dolphin => 14, + EntityKind::ZombifiedPiglin => 110, + EntityKind::Axolotl => 3, + EntityKind::LlamaSpit => 47, + EntityKind::Panda => 61, + EntityKind::Piglin => 65, + EntityKind::Item => 41, EntityKind::ArmorStand => 1, - EntityKind::Arrow => 2, - EntityKind::Bat => 3, - EntityKind::Bee => 4, - EntityKind::Blaze => 5, - EntityKind::Boat => 6, - EntityKind::Cat => 7, - EntityKind::CaveSpider => 8, - EntityKind::Chicken => 9, - EntityKind::Cod => 10, - EntityKind::Cow => 11, - EntityKind::Creeper => 12, - EntityKind::Dolphin => 13, - EntityKind::Donkey => 14, - EntityKind::DragonFireball => 15, - EntityKind::Drowned => 16, - EntityKind::ElderGuardian => 17, - EntityKind::EndCrystal => 18, - EntityKind::EnderDragon => 19, - EntityKind::Enderman => 20, - EntityKind::Endermite => 21, - EntityKind::Evoker => 22, - EntityKind::EvokerFangs => 23, - EntityKind::ExperienceOrb => 24, - EntityKind::EyeOfEnder => 25, - EntityKind::FallingBlock => 26, - EntityKind::FireworkRocket => 27, - EntityKind::Fox => 28, - EntityKind::Ghast => 29, - EntityKind::Giant => 30, - EntityKind::Guardian => 31, - EntityKind::Hoglin => 32, - EntityKind::Horse => 33, - EntityKind::Husk => 34, - EntityKind::Illusioner => 35, - EntityKind::IronGolem => 36, - EntityKind::Item => 37, - EntityKind::ItemFrame => 38, - EntityKind::Fireball => 39, - EntityKind::LeashKnot => 40, - EntityKind::LightningBolt => 41, - EntityKind::Llama => 42, - EntityKind::LlamaSpit => 43, - EntityKind::MagmaCube => 44, - EntityKind::Minecart => 45, - EntityKind::ChestMinecart => 46, - EntityKind::CommandBlockMinecart => 47, - EntityKind::FurnaceMinecart => 48, - EntityKind::HopperMinecart => 49, - EntityKind::SpawnerMinecart => 50, - EntityKind::TntMinecart => 51, - EntityKind::Mule => 52, - EntityKind::Mooshroom => 53, - EntityKind::Ocelot => 54, - EntityKind::Painting => 55, - EntityKind::Panda => 56, - EntityKind::Parrot => 57, - EntityKind::Phantom => 58, - EntityKind::Pig => 59, - EntityKind::Piglin => 60, - EntityKind::PiglinBrute => 61, - EntityKind::Pillager => 62, - EntityKind::PolarBear => 63, - EntityKind::Tnt => 64, - EntityKind::Pufferfish => 65, - EntityKind::Rabbit => 66, - EntityKind::Ravager => 67, - EntityKind::Salmon => 68, - EntityKind::Sheep => 69, - EntityKind::Shulker => 70, - EntityKind::ShulkerBullet => 71, - EntityKind::Silverfish => 72, - EntityKind::Skeleton => 73, - EntityKind::SkeletonHorse => 74, - EntityKind::Slime => 75, - EntityKind::SmallFireball => 76, - EntityKind::SnowGolem => 77, - EntityKind::Snowball => 78, - EntityKind::SpectralArrow => 79, - EntityKind::Spider => 80, - EntityKind::Squid => 81, - EntityKind::Stray => 82, - EntityKind::Strider => 83, - EntityKind::Egg => 84, - EntityKind::EnderPearl => 85, - EntityKind::ExperienceBottle => 86, - EntityKind::Potion => 87, - EntityKind::Trident => 88, - EntityKind::TraderLlama => 89, - EntityKind::TropicalFish => 90, - EntityKind::Turtle => 91, - EntityKind::Vex => 92, - EntityKind::Villager => 93, - EntityKind::Vindicator => 94, - EntityKind::WanderingTrader => 95, - EntityKind::Witch => 96, - EntityKind::Wither => 97, - EntityKind::WitherSkeleton => 98, - EntityKind::WitherSkull => 99, - EntityKind::Wolf => 100, - EntityKind::Zoglin => 101, - EntityKind::Zombie => 102, - EntityKind::ZombieHorse => 103, - EntityKind::ZombieVillager => 104, - EntityKind::ZombifiedPiglin => 105, - EntityKind::Player => 106, - EntityKind::FishingBobber => 107, + EntityKind::GlowSquid => 33, + EntityKind::Hoglin => 36, + EntityKind::Mooshroom => 58, + EntityKind::FishingBobber => 112, } } - - /// Gets a `EntityKind` by its `id`. + #[doc = "Gets a `EntityKind` by its `id`."] + #[inline] pub fn from_id(id: u32) -> Option { match id { + 85 => Some(EntityKind::Spider), + 108 => Some(EntityKind::ZombieHorse), + 89 => Some(EntityKind::Egg), + 79 => Some(EntityKind::SkeletonHorse), + 96 => Some(EntityKind::Turtle), + 5 => Some(EntityKind::Bee), + 48 => Some(EntityKind::MagmaCube), + 31 => Some(EntityKind::Giant), + 28 => Some(EntityKind::FireworkRocket), + 88 => Some(EntityKind::Strider), + 90 => Some(EntityKind::EnderPearl), + 64 => Some(EntityKind::Pig), + 12 => Some(EntityKind::Cow), + 105 => Some(EntityKind::Wolf), + 7 => Some(EntityKind::Boat), + 62 => Some(EntityKind::Parrot), + 95 => Some(EntityKind::TropicalFish), + 84 => Some(EntityKind::SpectralArrow), + 60 => Some(EntityKind::Painting), + 53 => Some(EntityKind::FurnaceMinecart), + 63 => Some(EntityKind::Phantom), + 71 => Some(EntityKind::Rabbit), + 45 => Some(EntityKind::LightningBolt), + 37 => Some(EntityKind::Horse), + 50 => Some(EntityKind::Minecart), + 55 => Some(EntityKind::SpawnerMinecart), + 11 => Some(EntityKind::Cod), + 80 => Some(EntityKind::Slime), + 20 => Some(EntityKind::EnderDragon), + 51 => Some(EntityKind::ChestMinecart), + 27 => Some(EntityKind::FallingBlock), + 75 => Some(EntityKind::Shulker), + 86 => Some(EntityKind::Squid), + 38 => Some(EntityKind::Husk), + 32 => Some(EntityKind::GlowItemFrame), + 22 => Some(EntityKind::Endermite), + 13 => Some(EntityKind::Creeper), + 34 => Some(EntityKind::Goat), + 43 => Some(EntityKind::Fireball), + 8 => Some(EntityKind::Cat), + 81 => Some(EntityKind::SmallFireball), + 100 => Some(EntityKind::WanderingTrader), + 56 => Some(EntityKind::TntMinecart), + 111 => Some(EntityKind::Player), + 69 => Some(EntityKind::Tnt), + 9 => Some(EntityKind::CaveSpider), + 30 => Some(EntityKind::Ghast), + 59 => Some(EntityKind::Ocelot), + 91 => Some(EntityKind::ExperienceBottle), + 76 => Some(EntityKind::ShulkerBullet), + 15 => Some(EntityKind::Donkey), + 87 => Some(EntityKind::Stray), + 39 => Some(EntityKind::Illusioner), + 40 => Some(EntityKind::IronGolem), + 94 => Some(EntityKind::TraderLlama), + 68 => Some(EntityKind::PolarBear), + 25 => Some(EntityKind::ExperienceOrb), + 103 => Some(EntityKind::WitherSkeleton), + 52 => Some(EntityKind::CommandBlockMinecart), + 72 => Some(EntityKind::Ravager), + 6 => Some(EntityKind::Blaze), + 18 => Some(EntityKind::ElderGuardian), + 42 => Some(EntityKind::ItemFrame), + 21 => Some(EntityKind::Enderman), + 98 => Some(EntityKind::Villager), + 19 => Some(EntityKind::EndCrystal), + 26 => Some(EntityKind::EyeOfEnder), + 101 => Some(EntityKind::Witch), + 93 => Some(EntityKind::Trident), + 49 => Some(EntityKind::Marker), + 23 => Some(EntityKind::Evoker), + 29 => Some(EntityKind::Fox), + 57 => Some(EntityKind::Mule), + 78 => Some(EntityKind::Skeleton), + 17 => Some(EntityKind::Drowned), + 74 => Some(EntityKind::Sheep), + 24 => Some(EntityKind::EvokerFangs), + 2 => Some(EntityKind::Arrow), + 4 => Some(EntityKind::Bat), + 107 => Some(EntityKind::Zombie), + 46 => Some(EntityKind::Llama), + 82 => Some(EntityKind::SnowGolem), + 44 => Some(EntityKind::LeashKnot), + 92 => Some(EntityKind::Potion), + 106 => Some(EntityKind::Zoglin), + 35 => Some(EntityKind::Guardian), + 73 => Some(EntityKind::Salmon), + 104 => Some(EntityKind::WitherSkull), + 99 => Some(EntityKind::Vindicator), + 77 => Some(EntityKind::Silverfish), + 97 => Some(EntityKind::Vex), + 54 => Some(EntityKind::HopperMinecart), 0 => Some(EntityKind::AreaEffectCloud), + 10 => Some(EntityKind::Chicken), + 16 => Some(EntityKind::DragonFireball), + 102 => Some(EntityKind::Wither), + 70 => Some(EntityKind::Pufferfish), + 66 => Some(EntityKind::PiglinBrute), + 67 => Some(EntityKind::Pillager), + 83 => Some(EntityKind::Snowball), + 109 => Some(EntityKind::ZombieVillager), + 14 => Some(EntityKind::Dolphin), + 110 => Some(EntityKind::ZombifiedPiglin), + 3 => Some(EntityKind::Axolotl), + 47 => Some(EntityKind::LlamaSpit), + 61 => Some(EntityKind::Panda), + 65 => Some(EntityKind::Piglin), + 41 => Some(EntityKind::Item), 1 => Some(EntityKind::ArmorStand), - 2 => Some(EntityKind::Arrow), - 3 => Some(EntityKind::Bat), - 4 => Some(EntityKind::Bee), - 5 => Some(EntityKind::Blaze), - 6 => Some(EntityKind::Boat), - 7 => Some(EntityKind::Cat), - 8 => Some(EntityKind::CaveSpider), - 9 => Some(EntityKind::Chicken), - 10 => Some(EntityKind::Cod), - 11 => Some(EntityKind::Cow), - 12 => Some(EntityKind::Creeper), - 13 => Some(EntityKind::Dolphin), - 14 => Some(EntityKind::Donkey), - 15 => Some(EntityKind::DragonFireball), - 16 => Some(EntityKind::Drowned), - 17 => Some(EntityKind::ElderGuardian), - 18 => Some(EntityKind::EndCrystal), - 19 => Some(EntityKind::EnderDragon), - 20 => Some(EntityKind::Enderman), - 21 => Some(EntityKind::Endermite), - 22 => Some(EntityKind::Evoker), - 23 => Some(EntityKind::EvokerFangs), - 24 => Some(EntityKind::ExperienceOrb), - 25 => Some(EntityKind::EyeOfEnder), - 26 => Some(EntityKind::FallingBlock), - 27 => Some(EntityKind::FireworkRocket), - 28 => Some(EntityKind::Fox), - 29 => Some(EntityKind::Ghast), - 30 => Some(EntityKind::Giant), - 31 => Some(EntityKind::Guardian), - 32 => Some(EntityKind::Hoglin), - 33 => Some(EntityKind::Horse), - 34 => Some(EntityKind::Husk), - 35 => Some(EntityKind::Illusioner), - 36 => Some(EntityKind::IronGolem), - 37 => Some(EntityKind::Item), - 38 => Some(EntityKind::ItemFrame), - 39 => Some(EntityKind::Fireball), - 40 => Some(EntityKind::LeashKnot), - 41 => Some(EntityKind::LightningBolt), - 42 => Some(EntityKind::Llama), - 43 => Some(EntityKind::LlamaSpit), - 44 => Some(EntityKind::MagmaCube), - 45 => Some(EntityKind::Minecart), - 46 => Some(EntityKind::ChestMinecart), - 47 => Some(EntityKind::CommandBlockMinecart), - 48 => Some(EntityKind::FurnaceMinecart), - 49 => Some(EntityKind::HopperMinecart), - 50 => Some(EntityKind::SpawnerMinecart), - 51 => Some(EntityKind::TntMinecart), - 52 => Some(EntityKind::Mule), - 53 => Some(EntityKind::Mooshroom), - 54 => Some(EntityKind::Ocelot), - 55 => Some(EntityKind::Painting), - 56 => Some(EntityKind::Panda), - 57 => Some(EntityKind::Parrot), - 58 => Some(EntityKind::Phantom), - 59 => Some(EntityKind::Pig), - 60 => Some(EntityKind::Piglin), - 61 => Some(EntityKind::PiglinBrute), - 62 => Some(EntityKind::Pillager), - 63 => Some(EntityKind::PolarBear), - 64 => Some(EntityKind::Tnt), - 65 => Some(EntityKind::Pufferfish), - 66 => Some(EntityKind::Rabbit), - 67 => Some(EntityKind::Ravager), - 68 => Some(EntityKind::Salmon), - 69 => Some(EntityKind::Sheep), - 70 => Some(EntityKind::Shulker), - 71 => Some(EntityKind::ShulkerBullet), - 72 => Some(EntityKind::Silverfish), - 73 => Some(EntityKind::Skeleton), - 74 => Some(EntityKind::SkeletonHorse), - 75 => Some(EntityKind::Slime), - 76 => Some(EntityKind::SmallFireball), - 77 => Some(EntityKind::SnowGolem), - 78 => Some(EntityKind::Snowball), - 79 => Some(EntityKind::SpectralArrow), - 80 => Some(EntityKind::Spider), - 81 => Some(EntityKind::Squid), - 82 => Some(EntityKind::Stray), - 83 => Some(EntityKind::Strider), - 84 => Some(EntityKind::Egg), - 85 => Some(EntityKind::EnderPearl), - 86 => Some(EntityKind::ExperienceBottle), - 87 => Some(EntityKind::Potion), - 88 => Some(EntityKind::Trident), - 89 => Some(EntityKind::TraderLlama), - 90 => Some(EntityKind::TropicalFish), - 91 => Some(EntityKind::Turtle), - 92 => Some(EntityKind::Vex), - 93 => Some(EntityKind::Villager), - 94 => Some(EntityKind::Vindicator), - 95 => Some(EntityKind::WanderingTrader), - 96 => Some(EntityKind::Witch), - 97 => Some(EntityKind::Wither), - 98 => Some(EntityKind::WitherSkeleton), - 99 => Some(EntityKind::WitherSkull), - 100 => Some(EntityKind::Wolf), - 101 => Some(EntityKind::Zoglin), - 102 => Some(EntityKind::Zombie), - 103 => Some(EntityKind::ZombieHorse), - 104 => Some(EntityKind::ZombieVillager), - 105 => Some(EntityKind::ZombifiedPiglin), - 106 => Some(EntityKind::Player), - 107 => Some(EntityKind::FishingBobber), + 33 => Some(EntityKind::GlowSquid), + 36 => Some(EntityKind::Hoglin), + 58 => Some(EntityKind::Mooshroom), + 112 => Some(EntityKind::FishingBobber), _ => None, } } } -#[allow(warnings)] -#[allow(clippy::all)] impl EntityKind { - /// Returns the `internal_id` property of this `EntityKind`. - pub fn internal_id(&self) -> u32 { + #[doc = "Returns the `width` property of this `EntityKind`."] + #[inline] + pub fn width(&self) -> f32 { match self { - EntityKind::AreaEffectCloud => 0, - EntityKind::ArmorStand => 1, - EntityKind::Arrow => 2, - EntityKind::Bat => 3, - EntityKind::Bee => 4, - EntityKind::Blaze => 5, - EntityKind::Boat => 6, - EntityKind::Cat => 7, - EntityKind::CaveSpider => 8, - EntityKind::Chicken => 9, - EntityKind::Cod => 10, - EntityKind::Cow => 11, - EntityKind::Creeper => 12, - EntityKind::Dolphin => 13, - EntityKind::Donkey => 14, - EntityKind::DragonFireball => 15, - EntityKind::Drowned => 16, - EntityKind::ElderGuardian => 17, - EntityKind::EndCrystal => 18, - EntityKind::EnderDragon => 19, - EntityKind::Enderman => 20, - EntityKind::Endermite => 21, - EntityKind::Evoker => 22, - EntityKind::EvokerFangs => 23, - EntityKind::ExperienceOrb => 24, - EntityKind::EyeOfEnder => 25, - EntityKind::FallingBlock => 26, - EntityKind::FireworkRocket => 27, - EntityKind::Fox => 28, - EntityKind::Ghast => 29, - EntityKind::Giant => 30, - EntityKind::Guardian => 31, - EntityKind::Hoglin => 32, - EntityKind::Horse => 33, - EntityKind::Husk => 34, - EntityKind::Illusioner => 35, - EntityKind::IronGolem => 36, - EntityKind::Item => 37, - EntityKind::ItemFrame => 38, - EntityKind::Fireball => 39, - EntityKind::LeashKnot => 40, - EntityKind::LightningBolt => 41, - EntityKind::Llama => 42, - EntityKind::LlamaSpit => 43, - EntityKind::MagmaCube => 44, - EntityKind::Minecart => 45, - EntityKind::ChestMinecart => 46, - EntityKind::CommandBlockMinecart => 47, - EntityKind::FurnaceMinecart => 48, - EntityKind::HopperMinecart => 49, - EntityKind::SpawnerMinecart => 50, - EntityKind::TntMinecart => 51, - EntityKind::Mule => 52, - EntityKind::Mooshroom => 53, - EntityKind::Ocelot => 54, - EntityKind::Painting => 55, - EntityKind::Panda => 56, - EntityKind::Parrot => 57, - EntityKind::Phantom => 58, - EntityKind::Pig => 59, - EntityKind::Piglin => 60, - EntityKind::PiglinBrute => 61, - EntityKind::Pillager => 62, - EntityKind::PolarBear => 63, - EntityKind::Tnt => 64, - EntityKind::Pufferfish => 65, - EntityKind::Rabbit => 66, - EntityKind::Ravager => 67, - EntityKind::Salmon => 68, - EntityKind::Sheep => 69, - EntityKind::Shulker => 70, - EntityKind::ShulkerBullet => 71, - EntityKind::Silverfish => 72, - EntityKind::Skeleton => 73, - EntityKind::SkeletonHorse => 74, - EntityKind::Slime => 75, - EntityKind::SmallFireball => 76, - EntityKind::SnowGolem => 77, - EntityKind::Snowball => 78, - EntityKind::SpectralArrow => 79, - EntityKind::Spider => 80, - EntityKind::Squid => 81, - EntityKind::Stray => 82, - EntityKind::Strider => 83, - EntityKind::Egg => 84, - EntityKind::EnderPearl => 85, - EntityKind::ExperienceBottle => 86, - EntityKind::Potion => 87, - EntityKind::Trident => 88, - EntityKind::TraderLlama => 89, - EntityKind::TropicalFish => 90, - EntityKind::Turtle => 91, - EntityKind::Vex => 92, - EntityKind::Villager => 93, - EntityKind::Vindicator => 94, - EntityKind::WanderingTrader => 95, - EntityKind::Witch => 96, - EntityKind::Wither => 97, - EntityKind::WitherSkeleton => 98, - EntityKind::WitherSkull => 99, - EntityKind::Wolf => 100, - EntityKind::Zoglin => 101, - EntityKind::Zombie => 102, - EntityKind::ZombieHorse => 103, - EntityKind::ZombieVillager => 104, - EntityKind::ZombifiedPiglin => 105, - EntityKind::Player => 106, - EntityKind::FishingBobber => 107, + EntityKind::TropicalFish => 0.5f32, + EntityKind::Bat => 0.5f32, + EntityKind::Sheep => 0.9f32, + EntityKind::Goat => 0.9f32, + EntityKind::TraderLlama => 0.9f32, + EntityKind::Zoglin => 1.39648f32, + EntityKind::Bee => 0.7f32, + EntityKind::Enderman => 0.6f32, + EntityKind::LeashKnot => 0.375f32, + EntityKind::CaveSpider => 0.7f32, + EntityKind::LightningBolt => 0f32, + EntityKind::EndCrystal => 2f32, + EntityKind::Skeleton => 0.6f32, + EntityKind::Husk => 0.6f32, + EntityKind::Painting => 0.5f32, + EntityKind::Boat => 1.375f32, + EntityKind::Phantom => 0.9f32, + EntityKind::Axolotl => 0.75f32, + EntityKind::Mooshroom => 0.9f32, + EntityKind::GlowItemFrame => 0.5f32, + EntityKind::Piglin => 0.6f32, + EntityKind::Tnt => 0.98f32, + EntityKind::Squid => 0.8f32, + EntityKind::Fireball => 1f32, + EntityKind::EvokerFangs => 0.5f32, + EntityKind::SmallFireball => 0.3125f32, + EntityKind::Horse => 1.39648f32, + EntityKind::Pufferfish => 0.7f32, + EntityKind::SpectralArrow => 0.5f32, + EntityKind::Donkey => 1.39648f32, + EntityKind::Player => 0.6f32, + EntityKind::Hoglin => 1.39648f32, + EntityKind::PolarBear => 1.4f32, + EntityKind::Drowned => 0.6f32, + EntityKind::Evoker => 0.6f32, + EntityKind::DragonFireball => 1f32, + EntityKind::Creeper => 0.6f32, + EntityKind::EyeOfEnder => 0.25f32, + EntityKind::Strider => 0.9f32, + EntityKind::Shulker => 1f32, + EntityKind::FishingBobber => 0.25f32, + EntityKind::Slime => 2.04f32, + EntityKind::Egg => 0.25f32, + EntityKind::Potion => 0.25f32, + EntityKind::Turtle => 1.2f32, + EntityKind::ZombieHorse => 1.39648f32, + EntityKind::ElderGuardian => 1.9975f32, + EntityKind::Vindicator => 0.6f32, + EntityKind::SpawnerMinecart => 0.98f32, + EntityKind::Stray => 0.6f32, + EntityKind::ExperienceBottle => 0.25f32, + EntityKind::Parrot => 0.5f32, + EntityKind::Pig => 0.9f32, + EntityKind::WitherSkull => 0.3125f32, + EntityKind::GlowSquid => 0.8f32, + EntityKind::Ocelot => 0.6f32, + EntityKind::Ghast => 4f32, + EntityKind::Cow => 0.9f32, + EntityKind::EnderDragon => 16f32, + EntityKind::Pillager => 0.6f32, + EntityKind::SnowGolem => 0.7f32, + EntityKind::Trident => 0.5f32, + EntityKind::SkeletonHorse => 1.39648f32, + EntityKind::Illusioner => 0.6f32, + EntityKind::Blaze => 0.6f32, + EntityKind::Wolf => 0.6f32, + EntityKind::Guardian => 0.85f32, + EntityKind::Spider => 1.4f32, + EntityKind::Dolphin => 0.9f32, + EntityKind::CommandBlockMinecart => 0.98f32, + EntityKind::Panda => 1.3f32, + EntityKind::Rabbit => 0.4f32, + EntityKind::WitherSkeleton => 0.7f32, + EntityKind::ArmorStand => 0.5f32, + EntityKind::FireworkRocket => 0.25f32, + EntityKind::Item => 0.25f32, + EntityKind::ChestMinecart => 0.98f32, + EntityKind::IronGolem => 1.4f32, + EntityKind::AreaEffectCloud => 6f32, + EntityKind::LlamaSpit => 0.25f32, + EntityKind::Minecart => 0.98f32, + EntityKind::Ravager => 1.95f32, + EntityKind::EnderPearl => 0.25f32, + EntityKind::HopperMinecart => 0.98f32, + EntityKind::Marker => 0f32, + EntityKind::FallingBlock => 0.98f32, + EntityKind::ZombifiedPiglin => 0.6f32, + EntityKind::FurnaceMinecart => 0.98f32, + EntityKind::Cod => 0.5f32, + EntityKind::TntMinecart => 0.98f32, + EntityKind::Mule => 1.39648f32, + EntityKind::ShulkerBullet => 0.3125f32, + EntityKind::ExperienceOrb => 0.5f32, + EntityKind::Vex => 0.4f32, + EntityKind::Chicken => 0.4f32, + EntityKind::ItemFrame => 0.5f32, + EntityKind::Salmon => 0.7f32, + EntityKind::Wither => 0.9f32, + EntityKind::Endermite => 0.4f32, + EntityKind::Villager => 0.6f32, + EntityKind::MagmaCube => 2.04f32, + EntityKind::Snowball => 0.25f32, + EntityKind::WanderingTrader => 0.6f32, + EntityKind::Arrow => 0.5f32, + EntityKind::Fox => 0.6f32, + EntityKind::Witch => 0.6f32, + EntityKind::Giant => 3.6f32, + EntityKind::Zombie => 0.6f32, + EntityKind::ZombieVillager => 0.6f32, + EntityKind::Llama => 0.9f32, + EntityKind::PiglinBrute => 0.6f32, + EntityKind::Silverfish => 0.4f32, + EntityKind::Cat => 0.6f32, } } - - /// Gets a `EntityKind` by its `internal_id`. - pub fn from_internal_id(internal_id: u32) -> Option { - match internal_id { - 0 => Some(EntityKind::AreaEffectCloud), - 1 => Some(EntityKind::ArmorStand), - 2 => Some(EntityKind::Arrow), - 3 => Some(EntityKind::Bat), - 4 => Some(EntityKind::Bee), - 5 => Some(EntityKind::Blaze), - 6 => Some(EntityKind::Boat), - 7 => Some(EntityKind::Cat), - 8 => Some(EntityKind::CaveSpider), - 9 => Some(EntityKind::Chicken), - 10 => Some(EntityKind::Cod), - 11 => Some(EntityKind::Cow), - 12 => Some(EntityKind::Creeper), - 13 => Some(EntityKind::Dolphin), - 14 => Some(EntityKind::Donkey), - 15 => Some(EntityKind::DragonFireball), - 16 => Some(EntityKind::Drowned), - 17 => Some(EntityKind::ElderGuardian), - 18 => Some(EntityKind::EndCrystal), - 19 => Some(EntityKind::EnderDragon), - 20 => Some(EntityKind::Enderman), - 21 => Some(EntityKind::Endermite), - 22 => Some(EntityKind::Evoker), - 23 => Some(EntityKind::EvokerFangs), - 24 => Some(EntityKind::ExperienceOrb), - 25 => Some(EntityKind::EyeOfEnder), - 26 => Some(EntityKind::FallingBlock), - 27 => Some(EntityKind::FireworkRocket), - 28 => Some(EntityKind::Fox), - 29 => Some(EntityKind::Ghast), - 30 => Some(EntityKind::Giant), - 31 => Some(EntityKind::Guardian), - 32 => Some(EntityKind::Hoglin), - 33 => Some(EntityKind::Horse), - 34 => Some(EntityKind::Husk), - 35 => Some(EntityKind::Illusioner), - 36 => Some(EntityKind::IronGolem), - 37 => Some(EntityKind::Item), - 38 => Some(EntityKind::ItemFrame), - 39 => Some(EntityKind::Fireball), - 40 => Some(EntityKind::LeashKnot), - 41 => Some(EntityKind::LightningBolt), - 42 => Some(EntityKind::Llama), - 43 => Some(EntityKind::LlamaSpit), - 44 => Some(EntityKind::MagmaCube), - 45 => Some(EntityKind::Minecart), - 46 => Some(EntityKind::ChestMinecart), - 47 => Some(EntityKind::CommandBlockMinecart), - 48 => Some(EntityKind::FurnaceMinecart), - 49 => Some(EntityKind::HopperMinecart), - 50 => Some(EntityKind::SpawnerMinecart), - 51 => Some(EntityKind::TntMinecart), - 52 => Some(EntityKind::Mule), - 53 => Some(EntityKind::Mooshroom), - 54 => Some(EntityKind::Ocelot), - 55 => Some(EntityKind::Painting), - 56 => Some(EntityKind::Panda), - 57 => Some(EntityKind::Parrot), - 58 => Some(EntityKind::Phantom), - 59 => Some(EntityKind::Pig), - 60 => Some(EntityKind::Piglin), - 61 => Some(EntityKind::PiglinBrute), - 62 => Some(EntityKind::Pillager), - 63 => Some(EntityKind::PolarBear), - 64 => Some(EntityKind::Tnt), - 65 => Some(EntityKind::Pufferfish), - 66 => Some(EntityKind::Rabbit), - 67 => Some(EntityKind::Ravager), - 68 => Some(EntityKind::Salmon), - 69 => Some(EntityKind::Sheep), - 70 => Some(EntityKind::Shulker), - 71 => Some(EntityKind::ShulkerBullet), - 72 => Some(EntityKind::Silverfish), - 73 => Some(EntityKind::Skeleton), - 74 => Some(EntityKind::SkeletonHorse), - 75 => Some(EntityKind::Slime), - 76 => Some(EntityKind::SmallFireball), - 77 => Some(EntityKind::SnowGolem), - 78 => Some(EntityKind::Snowball), - 79 => Some(EntityKind::SpectralArrow), - 80 => Some(EntityKind::Spider), - 81 => Some(EntityKind::Squid), - 82 => Some(EntityKind::Stray), - 83 => Some(EntityKind::Strider), - 84 => Some(EntityKind::Egg), - 85 => Some(EntityKind::EnderPearl), - 86 => Some(EntityKind::ExperienceBottle), - 87 => Some(EntityKind::Potion), - 88 => Some(EntityKind::Trident), - 89 => Some(EntityKind::TraderLlama), - 90 => Some(EntityKind::TropicalFish), - 91 => Some(EntityKind::Turtle), - 92 => Some(EntityKind::Vex), - 93 => Some(EntityKind::Villager), - 94 => Some(EntityKind::Vindicator), - 95 => Some(EntityKind::WanderingTrader), - 96 => Some(EntityKind::Witch), - 97 => Some(EntityKind::Wither), - 98 => Some(EntityKind::WitherSkeleton), - 99 => Some(EntityKind::WitherSkull), - 100 => Some(EntityKind::Wolf), - 101 => Some(EntityKind::Zoglin), - 102 => Some(EntityKind::Zombie), - 103 => Some(EntityKind::ZombieHorse), - 104 => Some(EntityKind::ZombieVillager), - 105 => Some(EntityKind::ZombifiedPiglin), - 106 => Some(EntityKind::Player), - 107 => Some(EntityKind::FishingBobber), - _ => None, +} +impl EntityKind { + #[doc = "Returns the `height` property of this `EntityKind`."] + #[inline] + pub fn height(&self) -> f32 { + match self { + EntityKind::Villager => 1.95f32, + EntityKind::EvokerFangs => 0.8f32, + EntityKind::Arrow => 0.5f32, + EntityKind::Shulker => 1f32, + EntityKind::Guardian => 0.85f32, + EntityKind::SpectralArrow => 0.5f32, + EntityKind::Wither => 3.5f32, + EntityKind::ZombieHorse => 1.6f32, + EntityKind::Parrot => 0.9f32, + EntityKind::Stray => 1.99f32, + EntityKind::Zoglin => 1.4f32, + EntityKind::FallingBlock => 0.98f32, + EntityKind::Snowball => 0.25f32, + EntityKind::Mule => 1.6f32, + EntityKind::Spider => 0.9f32, + EntityKind::TraderLlama => 1.87f32, + EntityKind::Panda => 1.25f32, + EntityKind::Giant => 12f32, + EntityKind::Horse => 1.6f32, + EntityKind::ItemFrame => 0.5f32, + EntityKind::SpawnerMinecart => 0.7f32, + EntityKind::Cod => 0.3f32, + EntityKind::GlowSquid => 0.8f32, + EntityKind::ChestMinecart => 0.7f32, + EntityKind::Slime => 2.04f32, + EntityKind::TntMinecart => 0.7f32, + EntityKind::Bee => 0.6f32, + EntityKind::Dolphin => 0.6f32, + EntityKind::Mooshroom => 1.4f32, + EntityKind::Vex => 0.8f32, + EntityKind::Witch => 1.95f32, + EntityKind::ExperienceBottle => 0.25f32, + EntityKind::Rabbit => 0.5f32, + EntityKind::Player => 1.8f32, + EntityKind::WitherSkeleton => 2.4f32, + EntityKind::Endermite => 0.3f32, + EntityKind::Illusioner => 1.95f32, + EntityKind::Tnt => 0.98f32, + EntityKind::SmallFireball => 0.3125f32, + EntityKind::Cat => 0.7f32, + EntityKind::SkeletonHorse => 1.6f32, + EntityKind::LightningBolt => 0f32, + EntityKind::EnderPearl => 0.25f32, + EntityKind::SnowGolem => 1.9f32, + EntityKind::Phantom => 0.5f32, + EntityKind::EyeOfEnder => 0.25f32, + EntityKind::LlamaSpit => 0.25f32, + EntityKind::Squid => 0.8f32, + EntityKind::Piglin => 1.95f32, + EntityKind::Ocelot => 0.7f32, + EntityKind::Fireball => 1f32, + EntityKind::CommandBlockMinecart => 0.7f32, + EntityKind::Item => 0.25f32, + EntityKind::EnderDragon => 8f32, + EntityKind::Enderman => 2.9f32, + EntityKind::Husk => 1.95f32, + EntityKind::Zombie => 1.95f32, + EntityKind::FireworkRocket => 0.25f32, + EntityKind::ZombifiedPiglin => 1.95f32, + EntityKind::ShulkerBullet => 0.3125f32, + EntityKind::CaveSpider => 0.5f32, + EntityKind::Sheep => 1.3f32, + EntityKind::Skeleton => 1.99f32, + EntityKind::HopperMinecart => 0.7f32, + EntityKind::Egg => 0.25f32, + EntityKind::Trident => 0.5f32, + EntityKind::Goat => 1.3f32, + EntityKind::EndCrystal => 2f32, + EntityKind::Chicken => 0.7f32, + EntityKind::LeashKnot => 0.5f32, + EntityKind::Vindicator => 1.95f32, + EntityKind::Minecart => 0.7f32, + EntityKind::ZombieVillager => 1.95f32, + EntityKind::MagmaCube => 2.04f32, + EntityKind::Hoglin => 1.4f32, + EntityKind::DragonFireball => 1f32, + EntityKind::ElderGuardian => 1.9975f32, + EntityKind::Ravager => 2.2f32, + EntityKind::Silverfish => 0.3f32, + EntityKind::Cow => 1.4f32, + EntityKind::FurnaceMinecart => 0.7f32, + EntityKind::WanderingTrader => 1.95f32, + EntityKind::Creeper => 1.7f32, + EntityKind::Pillager => 1.95f32, + EntityKind::Evoker => 1.95f32, + EntityKind::WitherSkull => 0.3125f32, + EntityKind::Pig => 0.9f32, + EntityKind::AreaEffectCloud => 0.5f32, + EntityKind::PolarBear => 1.4f32, + EntityKind::Axolotl => 0.42f32, + EntityKind::Boat => 0.5625f32, + EntityKind::Marker => 0f32, + EntityKind::Pufferfish => 0.7f32, + EntityKind::GlowItemFrame => 0.5f32, + EntityKind::Potion => 0.25f32, + EntityKind::Llama => 1.87f32, + EntityKind::Wolf => 0.85f32, + EntityKind::IronGolem => 2.7f32, + EntityKind::Painting => 0.5f32, + EntityKind::Bat => 0.9f32, + EntityKind::Blaze => 1.8f32, + EntityKind::Turtle => 0.4f32, + EntityKind::Ghast => 4f32, + EntityKind::Fox => 0.7f32, + EntityKind::ArmorStand => 1.975f32, + EntityKind::Drowned => 1.95f32, + EntityKind::Salmon => 0.4f32, + EntityKind::FishingBobber => 0.25f32, + EntityKind::PiglinBrute => 1.95f32, + EntityKind::Donkey => 1.5f32, + EntityKind::Strider => 1.7f32, + EntityKind::ExperienceOrb => 0.5f32, + EntityKind::TropicalFish => 0.4f32, } } } -#[allow(warnings)] -#[allow(clippy::all)] impl EntityKind { - /// Returns the `name` property of this `EntityKind`. + #[doc = "Returns the `name` property of this `EntityKind`."] + #[inline] pub fn name(&self) -> &'static str { match self { - EntityKind::AreaEffectCloud => "area_effect_cloud", - EntityKind::ArmorStand => "armor_stand", - EntityKind::Arrow => "arrow", - EntityKind::Bat => "bat", - EntityKind::Bee => "bee", - EntityKind::Blaze => "blaze", - EntityKind::Boat => "boat", - EntityKind::Cat => "cat", - EntityKind::CaveSpider => "cave_spider", - EntityKind::Chicken => "chicken", - EntityKind::Cod => "cod", - EntityKind::Cow => "cow", - EntityKind::Creeper => "creeper", - EntityKind::Dolphin => "dolphin", - EntityKind::Donkey => "donkey", - EntityKind::DragonFireball => "dragon_fireball", - EntityKind::Drowned => "drowned", - EntityKind::ElderGuardian => "elder_guardian", + EntityKind::Turtle => "turtle", + EntityKind::Spider => "spider", EntityKind::EndCrystal => "end_crystal", - EntityKind::EnderDragon => "ender_dragon", - EntityKind::Enderman => "enderman", - EntityKind::Endermite => "endermite", - EntityKind::Evoker => "evoker", - EntityKind::EvokerFangs => "evoker_fangs", + EntityKind::WitherSkull => "wither_skull", + EntityKind::ItemFrame => "item_frame", + EntityKind::Ghast => "ghast", + EntityKind::Phantom => "phantom", EntityKind::ExperienceOrb => "experience_orb", + EntityKind::Pillager => "pillager", EntityKind::EyeOfEnder => "eye_of_ender", - EntityKind::FallingBlock => "falling_block", - EntityKind::FireworkRocket => "firework_rocket", - EntityKind::Fox => "fox", - EntityKind::Ghast => "ghast", - EntityKind::Giant => "giant", - EntityKind::Guardian => "guardian", + EntityKind::Cow => "cow", + EntityKind::CaveSpider => "cave_spider", + EntityKind::Salmon => "salmon", + EntityKind::PolarBear => "polar_bear", + EntityKind::Panda => "panda", EntityKind::Hoglin => "hoglin", - EntityKind::Horse => "horse", - EntityKind::Husk => "husk", + EntityKind::PiglinBrute => "piglin_brute", + EntityKind::Player => "player", + EntityKind::Evoker => "evoker", + EntityKind::Drowned => "drowned", + EntityKind::Cod => "cod", + EntityKind::GlowItemFrame => "glow_item_frame", EntityKind::Illusioner => "illusioner", + EntityKind::Slime => "slime", + EntityKind::Chicken => "chicken", + EntityKind::Donkey => "donkey", + EntityKind::Snowball => "snowball", + EntityKind::ArmorStand => "armor_stand", + EntityKind::GlowSquid => "glow_squid", + EntityKind::Witch => "witch", + EntityKind::SnowGolem => "snow_golem", + EntityKind::Painting => "painting", EntityKind::IronGolem => "iron_golem", - EntityKind::Item => "item", - EntityKind::ItemFrame => "item_frame", - EntityKind::Fireball => "fireball", - EntityKind::LeashKnot => "leash_knot", - EntityKind::LightningBolt => "lightning_bolt", + EntityKind::Rabbit => "rabbit", + EntityKind::Arrow => "arrow", + EntityKind::Husk => "husk", + EntityKind::Vindicator => "vindicator", + EntityKind::Zombie => "zombie", + EntityKind::Parrot => "parrot", + EntityKind::Squid => "squid", + EntityKind::Enderman => "enderman", + EntityKind::FurnaceMinecart => "furnace_minecart", + EntityKind::Ocelot => "ocelot", + EntityKind::SkeletonHorse => "skeleton_horse", + EntityKind::Sheep => "sheep", + EntityKind::TntMinecart => "tnt_minecart", + EntityKind::Axolotl => "axolotl", + EntityKind::Fox => "fox", + EntityKind::Bee => "bee", + EntityKind::ElderGuardian => "elder_guardian", + EntityKind::TropicalFish => "tropical_fish", + EntityKind::Dolphin => "dolphin", + EntityKind::Wolf => "wolf", + EntityKind::Egg => "egg", + EntityKind::Vex => "vex", EntityKind::Llama => "llama", - EntityKind::LlamaSpit => "llama_spit", - EntityKind::MagmaCube => "magma_cube", EntityKind::Minecart => "minecart", + EntityKind::Silverfish => "silverfish", + EntityKind::Tnt => "tnt", + EntityKind::ShulkerBullet => "shulker_bullet", + EntityKind::Boat => "boat", + EntityKind::FallingBlock => "falling_block", + EntityKind::Guardian => "guardian", + EntityKind::Potion => "potion", + EntityKind::TraderLlama => "trader_llama", EntityKind::ChestMinecart => "chest_minecart", - EntityKind::CommandBlockMinecart => "command_block_minecart", - EntityKind::FurnaceMinecart => "furnace_minecart", - EntityKind::HopperMinecart => "hopper_minecart", - EntityKind::SpawnerMinecart => "spawner_minecart", - EntityKind::TntMinecart => "tnt_minecart", - EntityKind::Mule => "mule", + EntityKind::Horse => "horse", + EntityKind::Stray => "stray", + EntityKind::FireworkRocket => "firework_rocket", + EntityKind::SpectralArrow => "spectral_arrow", + EntityKind::EnderDragon => "ender_dragon", + EntityKind::LightningBolt => "lightning_bolt", + EntityKind::Fireball => "fireball", + EntityKind::Goat => "goat", EntityKind::Mooshroom => "mooshroom", - EntityKind::Ocelot => "ocelot", - EntityKind::Painting => "painting", - EntityKind::Panda => "panda", - EntityKind::Parrot => "parrot", - EntityKind::Phantom => "phantom", + EntityKind::ZombifiedPiglin => "zombified_piglin", + EntityKind::Marker => "marker", EntityKind::Pig => "pig", + EntityKind::ZombieVillager => "zombie_villager", + EntityKind::FishingBobber => "fishing_bobber", + EntityKind::Zoglin => "zoglin", + EntityKind::Endermite => "endermite", EntityKind::Piglin => "piglin", - EntityKind::PiglinBrute => "piglin_brute", - EntityKind::Pillager => "pillager", - EntityKind::PolarBear => "polar_bear", - EntityKind::Tnt => "tnt", - EntityKind::Pufferfish => "pufferfish", - EntityKind::Rabbit => "rabbit", - EntityKind::Ravager => "ravager", - EntityKind::Salmon => "salmon", - EntityKind::Sheep => "sheep", - EntityKind::Shulker => "shulker", - EntityKind::ShulkerBullet => "shulker_bullet", - EntityKind::Silverfish => "silverfish", - EntityKind::Skeleton => "skeleton", - EntityKind::SkeletonHorse => "skeleton_horse", - EntityKind::Slime => "slime", EntityKind::SmallFireball => "small_fireball", - EntityKind::SnowGolem => "snow_golem", - EntityKind::Snowball => "snowball", - EntityKind::SpectralArrow => "spectral_arrow", - EntityKind::Spider => "spider", - EntityKind::Squid => "squid", - EntityKind::Stray => "stray", - EntityKind::Strider => "strider", - EntityKind::Egg => "egg", - EntityKind::EnderPearl => "ender_pearl", - EntityKind::ExperienceBottle => "experience_bottle", - EntityKind::Potion => "potion", - EntityKind::Trident => "trident", - EntityKind::TraderLlama => "trader_llama", - EntityKind::TropicalFish => "tropical_fish", - EntityKind::Turtle => "turtle", - EntityKind::Vex => "vex", - EntityKind::Villager => "villager", - EntityKind::Vindicator => "vindicator", + EntityKind::ZombieHorse => "zombie_horse", + EntityKind::Skeleton => "skeleton", EntityKind::WanderingTrader => "wandering_trader", - EntityKind::Witch => "witch", + EntityKind::CommandBlockMinecart => "command_block_minecart", EntityKind::Wither => "wither", + EntityKind::MagmaCube => "magma_cube", + EntityKind::Cat => "cat", + EntityKind::Item => "item", + EntityKind::AreaEffectCloud => "area_effect_cloud", EntityKind::WitherSkeleton => "wither_skeleton", - EntityKind::WitherSkull => "wither_skull", - EntityKind::Wolf => "wolf", - EntityKind::Zoglin => "zoglin", - EntityKind::Zombie => "zombie", - EntityKind::ZombieHorse => "zombie_horse", - EntityKind::ZombieVillager => "zombie_villager", - EntityKind::ZombifiedPiglin => "zombified_piglin", - EntityKind::Player => "player", - EntityKind::FishingBobber => "fishing_bobber", + EntityKind::Mule => "mule", + EntityKind::SpawnerMinecart => "spawner_minecart", + EntityKind::Giant => "giant", + EntityKind::LeashKnot => "leash_knot", + EntityKind::Ravager => "ravager", + EntityKind::LlamaSpit => "llama_spit", + EntityKind::EnderPearl => "ender_pearl", + EntityKind::Strider => "strider", + EntityKind::Shulker => "shulker", + EntityKind::Villager => "villager", + EntityKind::HopperMinecart => "hopper_minecart", + EntityKind::Bat => "bat", + EntityKind::Blaze => "blaze", + EntityKind::Pufferfish => "pufferfish", + EntityKind::ExperienceBottle => "experience_bottle", + EntityKind::Creeper => "creeper", + EntityKind::Trident => "trident", + EntityKind::DragonFireball => "dragon_fireball", + EntityKind::EvokerFangs => "evoker_fangs", } } - - /// Gets a `EntityKind` by its `name`. + #[doc = "Gets a `EntityKind` by its `name`."] + #[inline] pub fn from_name(name: &str) -> Option { match name { - "area_effect_cloud" => Some(EntityKind::AreaEffectCloud), - "armor_stand" => Some(EntityKind::ArmorStand), - "arrow" => Some(EntityKind::Arrow), - "bat" => Some(EntityKind::Bat), - "bee" => Some(EntityKind::Bee), - "blaze" => Some(EntityKind::Blaze), - "boat" => Some(EntityKind::Boat), - "cat" => Some(EntityKind::Cat), - "cave_spider" => Some(EntityKind::CaveSpider), - "chicken" => Some(EntityKind::Chicken), - "cod" => Some(EntityKind::Cod), - "cow" => Some(EntityKind::Cow), - "creeper" => Some(EntityKind::Creeper), - "dolphin" => Some(EntityKind::Dolphin), - "donkey" => Some(EntityKind::Donkey), - "dragon_fireball" => Some(EntityKind::DragonFireball), - "drowned" => Some(EntityKind::Drowned), - "elder_guardian" => Some(EntityKind::ElderGuardian), + "turtle" => Some(EntityKind::Turtle), + "spider" => Some(EntityKind::Spider), "end_crystal" => Some(EntityKind::EndCrystal), - "ender_dragon" => Some(EntityKind::EnderDragon), - "enderman" => Some(EntityKind::Enderman), - "endermite" => Some(EntityKind::Endermite), - "evoker" => Some(EntityKind::Evoker), - "evoker_fangs" => Some(EntityKind::EvokerFangs), + "wither_skull" => Some(EntityKind::WitherSkull), + "item_frame" => Some(EntityKind::ItemFrame), + "ghast" => Some(EntityKind::Ghast), + "phantom" => Some(EntityKind::Phantom), "experience_orb" => Some(EntityKind::ExperienceOrb), + "pillager" => Some(EntityKind::Pillager), "eye_of_ender" => Some(EntityKind::EyeOfEnder), - "falling_block" => Some(EntityKind::FallingBlock), - "firework_rocket" => Some(EntityKind::FireworkRocket), - "fox" => Some(EntityKind::Fox), - "ghast" => Some(EntityKind::Ghast), - "giant" => Some(EntityKind::Giant), - "guardian" => Some(EntityKind::Guardian), + "cow" => Some(EntityKind::Cow), + "cave_spider" => Some(EntityKind::CaveSpider), + "salmon" => Some(EntityKind::Salmon), + "polar_bear" => Some(EntityKind::PolarBear), + "panda" => Some(EntityKind::Panda), "hoglin" => Some(EntityKind::Hoglin), - "horse" => Some(EntityKind::Horse), - "husk" => Some(EntityKind::Husk), + "piglin_brute" => Some(EntityKind::PiglinBrute), + "player" => Some(EntityKind::Player), + "evoker" => Some(EntityKind::Evoker), + "drowned" => Some(EntityKind::Drowned), + "cod" => Some(EntityKind::Cod), + "glow_item_frame" => Some(EntityKind::GlowItemFrame), "illusioner" => Some(EntityKind::Illusioner), + "slime" => Some(EntityKind::Slime), + "chicken" => Some(EntityKind::Chicken), + "donkey" => Some(EntityKind::Donkey), + "snowball" => Some(EntityKind::Snowball), + "armor_stand" => Some(EntityKind::ArmorStand), + "glow_squid" => Some(EntityKind::GlowSquid), + "witch" => Some(EntityKind::Witch), + "snow_golem" => Some(EntityKind::SnowGolem), + "painting" => Some(EntityKind::Painting), "iron_golem" => Some(EntityKind::IronGolem), - "item" => Some(EntityKind::Item), - "item_frame" => Some(EntityKind::ItemFrame), - "fireball" => Some(EntityKind::Fireball), - "leash_knot" => Some(EntityKind::LeashKnot), - "lightning_bolt" => Some(EntityKind::LightningBolt), + "rabbit" => Some(EntityKind::Rabbit), + "arrow" => Some(EntityKind::Arrow), + "husk" => Some(EntityKind::Husk), + "vindicator" => Some(EntityKind::Vindicator), + "zombie" => Some(EntityKind::Zombie), + "parrot" => Some(EntityKind::Parrot), + "squid" => Some(EntityKind::Squid), + "enderman" => Some(EntityKind::Enderman), + "furnace_minecart" => Some(EntityKind::FurnaceMinecart), + "ocelot" => Some(EntityKind::Ocelot), + "skeleton_horse" => Some(EntityKind::SkeletonHorse), + "sheep" => Some(EntityKind::Sheep), + "tnt_minecart" => Some(EntityKind::TntMinecart), + "axolotl" => Some(EntityKind::Axolotl), + "fox" => Some(EntityKind::Fox), + "bee" => Some(EntityKind::Bee), + "elder_guardian" => Some(EntityKind::ElderGuardian), + "tropical_fish" => Some(EntityKind::TropicalFish), + "dolphin" => Some(EntityKind::Dolphin), + "wolf" => Some(EntityKind::Wolf), + "egg" => Some(EntityKind::Egg), + "vex" => Some(EntityKind::Vex), "llama" => Some(EntityKind::Llama), - "llama_spit" => Some(EntityKind::LlamaSpit), - "magma_cube" => Some(EntityKind::MagmaCube), "minecart" => Some(EntityKind::Minecart), + "silverfish" => Some(EntityKind::Silverfish), + "tnt" => Some(EntityKind::Tnt), + "shulker_bullet" => Some(EntityKind::ShulkerBullet), + "boat" => Some(EntityKind::Boat), + "falling_block" => Some(EntityKind::FallingBlock), + "guardian" => Some(EntityKind::Guardian), + "potion" => Some(EntityKind::Potion), + "trader_llama" => Some(EntityKind::TraderLlama), "chest_minecart" => Some(EntityKind::ChestMinecart), - "command_block_minecart" => Some(EntityKind::CommandBlockMinecart), - "furnace_minecart" => Some(EntityKind::FurnaceMinecart), - "hopper_minecart" => Some(EntityKind::HopperMinecart), - "spawner_minecart" => Some(EntityKind::SpawnerMinecart), - "tnt_minecart" => Some(EntityKind::TntMinecart), - "mule" => Some(EntityKind::Mule), + "horse" => Some(EntityKind::Horse), + "stray" => Some(EntityKind::Stray), + "firework_rocket" => Some(EntityKind::FireworkRocket), + "spectral_arrow" => Some(EntityKind::SpectralArrow), + "ender_dragon" => Some(EntityKind::EnderDragon), + "lightning_bolt" => Some(EntityKind::LightningBolt), + "fireball" => Some(EntityKind::Fireball), + "goat" => Some(EntityKind::Goat), "mooshroom" => Some(EntityKind::Mooshroom), - "ocelot" => Some(EntityKind::Ocelot), - "painting" => Some(EntityKind::Painting), - "panda" => Some(EntityKind::Panda), - "parrot" => Some(EntityKind::Parrot), - "phantom" => Some(EntityKind::Phantom), + "zombified_piglin" => Some(EntityKind::ZombifiedPiglin), + "marker" => Some(EntityKind::Marker), "pig" => Some(EntityKind::Pig), + "zombie_villager" => Some(EntityKind::ZombieVillager), + "fishing_bobber" => Some(EntityKind::FishingBobber), + "zoglin" => Some(EntityKind::Zoglin), + "endermite" => Some(EntityKind::Endermite), "piglin" => Some(EntityKind::Piglin), - "piglin_brute" => Some(EntityKind::PiglinBrute), - "pillager" => Some(EntityKind::Pillager), - "polar_bear" => Some(EntityKind::PolarBear), - "tnt" => Some(EntityKind::Tnt), - "pufferfish" => Some(EntityKind::Pufferfish), - "rabbit" => Some(EntityKind::Rabbit), - "ravager" => Some(EntityKind::Ravager), - "salmon" => Some(EntityKind::Salmon), - "sheep" => Some(EntityKind::Sheep), - "shulker" => Some(EntityKind::Shulker), - "shulker_bullet" => Some(EntityKind::ShulkerBullet), - "silverfish" => Some(EntityKind::Silverfish), - "skeleton" => Some(EntityKind::Skeleton), - "skeleton_horse" => Some(EntityKind::SkeletonHorse), - "slime" => Some(EntityKind::Slime), "small_fireball" => Some(EntityKind::SmallFireball), - "snow_golem" => Some(EntityKind::SnowGolem), - "snowball" => Some(EntityKind::Snowball), - "spectral_arrow" => Some(EntityKind::SpectralArrow), - "spider" => Some(EntityKind::Spider), - "squid" => Some(EntityKind::Squid), - "stray" => Some(EntityKind::Stray), - "strider" => Some(EntityKind::Strider), - "egg" => Some(EntityKind::Egg), - "ender_pearl" => Some(EntityKind::EnderPearl), - "experience_bottle" => Some(EntityKind::ExperienceBottle), - "potion" => Some(EntityKind::Potion), - "trident" => Some(EntityKind::Trident), - "trader_llama" => Some(EntityKind::TraderLlama), - "tropical_fish" => Some(EntityKind::TropicalFish), - "turtle" => Some(EntityKind::Turtle), - "vex" => Some(EntityKind::Vex), - "villager" => Some(EntityKind::Villager), - "vindicator" => Some(EntityKind::Vindicator), + "zombie_horse" => Some(EntityKind::ZombieHorse), + "skeleton" => Some(EntityKind::Skeleton), "wandering_trader" => Some(EntityKind::WanderingTrader), - "witch" => Some(EntityKind::Witch), + "command_block_minecart" => Some(EntityKind::CommandBlockMinecart), "wither" => Some(EntityKind::Wither), + "magma_cube" => Some(EntityKind::MagmaCube), + "cat" => Some(EntityKind::Cat), + "item" => Some(EntityKind::Item), + "area_effect_cloud" => Some(EntityKind::AreaEffectCloud), "wither_skeleton" => Some(EntityKind::WitherSkeleton), - "wither_skull" => Some(EntityKind::WitherSkull), - "wolf" => Some(EntityKind::Wolf), - "zoglin" => Some(EntityKind::Zoglin), - "zombie" => Some(EntityKind::Zombie), - "zombie_horse" => Some(EntityKind::ZombieHorse), - "zombie_villager" => Some(EntityKind::ZombieVillager), - "zombified_piglin" => Some(EntityKind::ZombifiedPiglin), - "player" => Some(EntityKind::Player), - "fishing_bobber" => Some(EntityKind::FishingBobber), + "mule" => Some(EntityKind::Mule), + "spawner_minecart" => Some(EntityKind::SpawnerMinecart), + "giant" => Some(EntityKind::Giant), + "leash_knot" => Some(EntityKind::LeashKnot), + "ravager" => Some(EntityKind::Ravager), + "llama_spit" => Some(EntityKind::LlamaSpit), + "ender_pearl" => Some(EntityKind::EnderPearl), + "strider" => Some(EntityKind::Strider), + "shulker" => Some(EntityKind::Shulker), + "villager" => Some(EntityKind::Villager), + "hopper_minecart" => Some(EntityKind::HopperMinecart), + "bat" => Some(EntityKind::Bat), + "blaze" => Some(EntityKind::Blaze), + "pufferfish" => Some(EntityKind::Pufferfish), + "experience_bottle" => Some(EntityKind::ExperienceBottle), + "creeper" => Some(EntityKind::Creeper), + "trident" => Some(EntityKind::Trident), + "dragon_fireball" => Some(EntityKind::DragonFireball), + "evoker_fangs" => Some(EntityKind::EvokerFangs), _ => None, } } } -#[allow(warnings)] -#[allow(clippy::all)] impl EntityKind { - /// Returns the `display_name` property of this `EntityKind`. - pub fn display_name(&self) -> &'static str { + #[doc = "Returns the `namespaced_id` property of this `EntityKind`."] + #[inline] + pub fn namespaced_id(&self) -> &'static str { match self { - EntityKind::AreaEffectCloud => "Area Effect Cloud", - EntityKind::ArmorStand => "Armor Stand", - EntityKind::Arrow => "Arrow", - EntityKind::Bat => "Bat", - EntityKind::Bee => "Bee", - EntityKind::Blaze => "Blaze", - EntityKind::Boat => "Boat", - EntityKind::Cat => "Cat", - EntityKind::CaveSpider => "Cave Spider", - EntityKind::Chicken => "Chicken", - EntityKind::Cod => "Cod", - EntityKind::Cow => "Cow", - EntityKind::Creeper => "Creeper", - EntityKind::Dolphin => "Dolphin", - EntityKind::Donkey => "Donkey", - EntityKind::DragonFireball => "Dragon Fireball", - EntityKind::Drowned => "Drowned", - EntityKind::ElderGuardian => "Elder Guardian", - EntityKind::EndCrystal => "End Crystal", - EntityKind::EnderDragon => "Ender Dragon", - EntityKind::Enderman => "Enderman", - EntityKind::Endermite => "Endermite", - EntityKind::Evoker => "Evoker", - EntityKind::EvokerFangs => "Evoker Fangs", - EntityKind::ExperienceOrb => "Experience Orb", - EntityKind::EyeOfEnder => "Eye of Ender", - EntityKind::FallingBlock => "Falling Block", - EntityKind::FireworkRocket => "Firework Rocket", - EntityKind::Fox => "Fox", - EntityKind::Ghast => "Ghast", - EntityKind::Giant => "Giant", - EntityKind::Guardian => "Guardian", - EntityKind::Hoglin => "Hoglin", - EntityKind::Horse => "Horse", - EntityKind::Husk => "Husk", - EntityKind::Illusioner => "Illusioner", - EntityKind::IronGolem => "Iron Golem", - EntityKind::Item => "Item", - EntityKind::ItemFrame => "Item Frame", - EntityKind::Fireball => "Fireball", - EntityKind::LeashKnot => "Leash Knot", - EntityKind::LightningBolt => "Lightning Bolt", - EntityKind::Llama => "Llama", - EntityKind::LlamaSpit => "Llama Spit", - EntityKind::MagmaCube => "Magma Cube", - EntityKind::Minecart => "Minecart", - EntityKind::ChestMinecart => "Minecart with Chest", - EntityKind::CommandBlockMinecart => "Minecart with Command Block", - EntityKind::FurnaceMinecart => "Minecart with Furnace", - EntityKind::HopperMinecart => "Minecart with Hopper", - EntityKind::SpawnerMinecart => "Minecart with Spawner", - EntityKind::TntMinecart => "Minecart with TNT", - EntityKind::Mule => "Mule", - EntityKind::Mooshroom => "Mooshroom", - EntityKind::Ocelot => "Ocelot", - EntityKind::Painting => "Painting", - EntityKind::Panda => "Panda", - EntityKind::Parrot => "Parrot", - EntityKind::Phantom => "Phantom", - EntityKind::Pig => "Pig", - EntityKind::Piglin => "Piglin", - EntityKind::PiglinBrute => "Piglin Brute", - EntityKind::Pillager => "Pillager", - EntityKind::PolarBear => "Polar Bear", - EntityKind::Tnt => "Primed TNT", - EntityKind::Pufferfish => "Pufferfish", - EntityKind::Rabbit => "Rabbit", - EntityKind::Ravager => "Ravager", - EntityKind::Salmon => "Salmon", - EntityKind::Sheep => "Sheep", - EntityKind::Shulker => "Shulker", - EntityKind::ShulkerBullet => "Shulker Bullet", - EntityKind::Silverfish => "Silverfish", - EntityKind::Skeleton => "Skeleton", - EntityKind::SkeletonHorse => "Skeleton Horse", - EntityKind::Slime => "Slime", - EntityKind::SmallFireball => "Small Fireball", - EntityKind::SnowGolem => "Snow Golem", - EntityKind::Snowball => "Snowball", - EntityKind::SpectralArrow => "Spectral Arrow", - EntityKind::Spider => "Spider", - EntityKind::Squid => "Squid", - EntityKind::Stray => "Stray", - EntityKind::Strider => "Strider", - EntityKind::Egg => "Thrown Egg", - EntityKind::EnderPearl => "Thrown Ender Pearl", - EntityKind::ExperienceBottle => "Thrown Bottle o' Enchanting", - EntityKind::Potion => "Potion", - EntityKind::Trident => "Trident", - EntityKind::TraderLlama => "Trader Llama", - EntityKind::TropicalFish => "Tropical Fish", - EntityKind::Turtle => "Turtle", - EntityKind::Vex => "Vex", - EntityKind::Villager => "Villager", - EntityKind::Vindicator => "Vindicator", - EntityKind::WanderingTrader => "Wandering Trader", - EntityKind::Witch => "Witch", - EntityKind::Wither => "Wither", - EntityKind::WitherSkeleton => "Wither Skeleton", - EntityKind::WitherSkull => "Wither Skull", - EntityKind::Wolf => "Wolf", - EntityKind::Zoglin => "Zoglin", - EntityKind::Zombie => "Zombie", - EntityKind::ZombieHorse => "Zombie Horse", - EntityKind::ZombieVillager => "Zombie Villager", - EntityKind::ZombifiedPiglin => "Zombified Piglin", - EntityKind::Player => "Player", - EntityKind::FishingBobber => "Fishing Bobber", + EntityKind::Boat => "minecraft:boat", + EntityKind::FurnaceMinecart => "minecraft:furnace_minecart", + EntityKind::FishingBobber => "minecraft:fishing_bobber", + EntityKind::Bat => "minecraft:bat", + EntityKind::Pig => "minecraft:pig", + EntityKind::Rabbit => "minecraft:rabbit", + EntityKind::DragonFireball => "minecraft:dragon_fireball", + EntityKind::Marker => "minecraft:marker", + EntityKind::Horse => "minecraft:horse", + EntityKind::SnowGolem => "minecraft:snow_golem", + EntityKind::GlowItemFrame => "minecraft:glow_item_frame", + EntityKind::Evoker => "minecraft:evoker", + EntityKind::Bee => "minecraft:bee", + EntityKind::Drowned => "minecraft:drowned", + EntityKind::SmallFireball => "minecraft:small_fireball", + EntityKind::Slime => "minecraft:slime", + EntityKind::Skeleton => "minecraft:skeleton", + EntityKind::ExperienceBottle => "minecraft:experience_bottle", + EntityKind::HopperMinecart => "minecraft:hopper_minecart", + EntityKind::Tnt => "minecraft:tnt", + EntityKind::TraderLlama => "minecraft:trader_llama", + EntityKind::ZombieHorse => "minecraft:zombie_horse", + EntityKind::TropicalFish => "minecraft:tropical_fish", + EntityKind::Arrow => "minecraft:arrow", + EntityKind::Potion => "minecraft:potion", + EntityKind::ZombieVillager => "minecraft:zombie_villager", + EntityKind::Endermite => "minecraft:endermite", + EntityKind::CommandBlockMinecart => "minecraft:command_block_minecart", + EntityKind::ExperienceOrb => "minecraft:experience_orb", + EntityKind::Pufferfish => "minecraft:pufferfish", + EntityKind::ShulkerBullet => "minecraft:shulker_bullet", + EntityKind::Strider => "minecraft:strider", + EntityKind::WitherSkeleton => "minecraft:wither_skeleton", + EntityKind::Husk => "minecraft:husk", + EntityKind::Panda => "minecraft:panda", + EntityKind::Cod => "minecraft:cod", + EntityKind::Donkey => "minecraft:donkey", + EntityKind::Illusioner => "minecraft:illusioner", + EntityKind::Chicken => "minecraft:chicken", + EntityKind::EvokerFangs => "minecraft:evoker_fangs", + EntityKind::IronGolem => "minecraft:iron_golem", + EntityKind::Squid => "minecraft:squid", + EntityKind::Mule => "minecraft:mule", + EntityKind::ZombifiedPiglin => "minecraft:zombified_piglin", + EntityKind::Player => "minecraft:player", + EntityKind::Snowball => "minecraft:snowball", + EntityKind::EndCrystal => "minecraft:end_crystal", + EntityKind::Fireball => "minecraft:fireball", + EntityKind::Zoglin => "minecraft:zoglin", + EntityKind::Creeper => "minecraft:creeper", + EntityKind::EnderPearl => "minecraft:ender_pearl", + EntityKind::MagmaCube => "minecraft:magma_cube", + EntityKind::Fox => "minecraft:fox", + EntityKind::Vex => "minecraft:vex", + EntityKind::Zombie => "minecraft:zombie", + EntityKind::Painting => "minecraft:painting", + EntityKind::Spider => "minecraft:spider", + EntityKind::Phantom => "minecraft:phantom", + EntityKind::Cat => "minecraft:cat", + EntityKind::FallingBlock => "minecraft:falling_block", + EntityKind::CaveSpider => "minecraft:cave_spider", + EntityKind::Wolf => "minecraft:wolf", + EntityKind::LeashKnot => "minecraft:leash_knot", + EntityKind::Ocelot => "minecraft:ocelot", + EntityKind::AreaEffectCloud => "minecraft:area_effect_cloud", + EntityKind::PolarBear => "minecraft:polar_bear", + EntityKind::GlowSquid => "minecraft:glow_squid", + EntityKind::ArmorStand => "minecraft:armor_stand", + EntityKind::EyeOfEnder => "minecraft:eye_of_ender", + EntityKind::Axolotl => "minecraft:axolotl", + EntityKind::SpawnerMinecart => "minecraft:spawner_minecart", + EntityKind::TntMinecart => "minecraft:tnt_minecart", + EntityKind::Ravager => "minecraft:ravager", + EntityKind::Dolphin => "minecraft:dolphin", + EntityKind::Piglin => "minecraft:piglin", + EntityKind::Stray => "minecraft:stray", + EntityKind::PiglinBrute => "minecraft:piglin_brute", + EntityKind::Ghast => "minecraft:ghast", + EntityKind::Wither => "minecraft:wither", + EntityKind::SpectralArrow => "minecraft:spectral_arrow", + EntityKind::Silverfish => "minecraft:silverfish", + EntityKind::FireworkRocket => "minecraft:firework_rocket", + EntityKind::Turtle => "minecraft:turtle", + EntityKind::Cow => "minecraft:cow", + EntityKind::Pillager => "minecraft:pillager", + EntityKind::Llama => "minecraft:llama", + EntityKind::Mooshroom => "minecraft:mooshroom", + EntityKind::SkeletonHorse => "minecraft:skeleton_horse", + EntityKind::WanderingTrader => "minecraft:wandering_trader", + EntityKind::ElderGuardian => "minecraft:elder_guardian", + EntityKind::Villager => "minecraft:villager", + EntityKind::WitherSkull => "minecraft:wither_skull", + EntityKind::Blaze => "minecraft:blaze", + EntityKind::Goat => "minecraft:goat", + EntityKind::ChestMinecart => "minecraft:chest_minecart", + EntityKind::Sheep => "minecraft:sheep", + EntityKind::Enderman => "minecraft:enderman", + EntityKind::Egg => "minecraft:egg", + EntityKind::LlamaSpit => "minecraft:llama_spit", + EntityKind::Minecart => "minecraft:minecart", + EntityKind::Trident => "minecraft:trident", + EntityKind::Parrot => "minecraft:parrot", + EntityKind::Shulker => "minecraft:shulker", + EntityKind::Vindicator => "minecraft:vindicator", + EntityKind::ItemFrame => "minecraft:item_frame", + EntityKind::LightningBolt => "minecraft:lightning_bolt", + EntityKind::Giant => "minecraft:giant", + EntityKind::EnderDragon => "minecraft:ender_dragon", + EntityKind::Hoglin => "minecraft:hoglin", + EntityKind::Salmon => "minecraft:salmon", + EntityKind::Witch => "minecraft:witch", + EntityKind::Item => "minecraft:item", + EntityKind::Guardian => "minecraft:guardian", } } - - /// Gets a `EntityKind` by its `display_name`. - pub fn from_display_name(display_name: &str) -> Option { - match display_name { - "Area Effect Cloud" => Some(EntityKind::AreaEffectCloud), - "Armor Stand" => Some(EntityKind::ArmorStand), - "Arrow" => Some(EntityKind::Arrow), - "Bat" => Some(EntityKind::Bat), - "Bee" => Some(EntityKind::Bee), - "Blaze" => Some(EntityKind::Blaze), - "Boat" => Some(EntityKind::Boat), - "Cat" => Some(EntityKind::Cat), - "Cave Spider" => Some(EntityKind::CaveSpider), - "Chicken" => Some(EntityKind::Chicken), - "Cod" => Some(EntityKind::Cod), - "Cow" => Some(EntityKind::Cow), - "Creeper" => Some(EntityKind::Creeper), - "Dolphin" => Some(EntityKind::Dolphin), - "Donkey" => Some(EntityKind::Donkey), - "Dragon Fireball" => Some(EntityKind::DragonFireball), - "Drowned" => Some(EntityKind::Drowned), - "Elder Guardian" => Some(EntityKind::ElderGuardian), - "End Crystal" => Some(EntityKind::EndCrystal), - "Ender Dragon" => Some(EntityKind::EnderDragon), - "Enderman" => Some(EntityKind::Enderman), - "Endermite" => Some(EntityKind::Endermite), - "Evoker" => Some(EntityKind::Evoker), - "Evoker Fangs" => Some(EntityKind::EvokerFangs), - "Experience Orb" => Some(EntityKind::ExperienceOrb), - "Eye of Ender" => Some(EntityKind::EyeOfEnder), - "Falling Block" => Some(EntityKind::FallingBlock), - "Firework Rocket" => Some(EntityKind::FireworkRocket), - "Fox" => Some(EntityKind::Fox), - "Ghast" => Some(EntityKind::Ghast), - "Giant" => Some(EntityKind::Giant), - "Guardian" => Some(EntityKind::Guardian), - "Hoglin" => Some(EntityKind::Hoglin), - "Horse" => Some(EntityKind::Horse), - "Husk" => Some(EntityKind::Husk), - "Illusioner" => Some(EntityKind::Illusioner), - "Iron Golem" => Some(EntityKind::IronGolem), - "Item" => Some(EntityKind::Item), - "Item Frame" => Some(EntityKind::ItemFrame), - "Fireball" => Some(EntityKind::Fireball), - "Leash Knot" => Some(EntityKind::LeashKnot), - "Lightning Bolt" => Some(EntityKind::LightningBolt), - "Llama" => Some(EntityKind::Llama), - "Llama Spit" => Some(EntityKind::LlamaSpit), - "Magma Cube" => Some(EntityKind::MagmaCube), - "Minecart" => Some(EntityKind::Minecart), - "Minecart with Chest" => Some(EntityKind::ChestMinecart), - "Minecart with Command Block" => Some(EntityKind::CommandBlockMinecart), - "Minecart with Furnace" => Some(EntityKind::FurnaceMinecart), - "Minecart with Hopper" => Some(EntityKind::HopperMinecart), - "Minecart with Spawner" => Some(EntityKind::SpawnerMinecart), - "Minecart with TNT" => Some(EntityKind::TntMinecart), - "Mule" => Some(EntityKind::Mule), - "Mooshroom" => Some(EntityKind::Mooshroom), - "Ocelot" => Some(EntityKind::Ocelot), - "Painting" => Some(EntityKind::Painting), - "Panda" => Some(EntityKind::Panda), - "Parrot" => Some(EntityKind::Parrot), - "Phantom" => Some(EntityKind::Phantom), - "Pig" => Some(EntityKind::Pig), - "Piglin" => Some(EntityKind::Piglin), - "Piglin Brute" => Some(EntityKind::PiglinBrute), - "Pillager" => Some(EntityKind::Pillager), - "Polar Bear" => Some(EntityKind::PolarBear), - "Primed TNT" => Some(EntityKind::Tnt), - "Pufferfish" => Some(EntityKind::Pufferfish), - "Rabbit" => Some(EntityKind::Rabbit), - "Ravager" => Some(EntityKind::Ravager), - "Salmon" => Some(EntityKind::Salmon), - "Sheep" => Some(EntityKind::Sheep), - "Shulker" => Some(EntityKind::Shulker), - "Shulker Bullet" => Some(EntityKind::ShulkerBullet), - "Silverfish" => Some(EntityKind::Silverfish), - "Skeleton" => Some(EntityKind::Skeleton), - "Skeleton Horse" => Some(EntityKind::SkeletonHorse), - "Slime" => Some(EntityKind::Slime), - "Small Fireball" => Some(EntityKind::SmallFireball), - "Snow Golem" => Some(EntityKind::SnowGolem), - "Snowball" => Some(EntityKind::Snowball), - "Spectral Arrow" => Some(EntityKind::SpectralArrow), - "Spider" => Some(EntityKind::Spider), - "Squid" => Some(EntityKind::Squid), - "Stray" => Some(EntityKind::Stray), - "Strider" => Some(EntityKind::Strider), - "Thrown Egg" => Some(EntityKind::Egg), - "Thrown Ender Pearl" => Some(EntityKind::EnderPearl), - "Thrown Bottle o' Enchanting" => Some(EntityKind::ExperienceBottle), - "Potion" => Some(EntityKind::Potion), - "Trident" => Some(EntityKind::Trident), - "Trader Llama" => Some(EntityKind::TraderLlama), - "Tropical Fish" => Some(EntityKind::TropicalFish), - "Turtle" => Some(EntityKind::Turtle), - "Vex" => Some(EntityKind::Vex), - "Villager" => Some(EntityKind::Villager), - "Vindicator" => Some(EntityKind::Vindicator), - "Wandering Trader" => Some(EntityKind::WanderingTrader), - "Witch" => Some(EntityKind::Witch), - "Wither" => Some(EntityKind::Wither), - "Wither Skeleton" => Some(EntityKind::WitherSkeleton), - "Wither Skull" => Some(EntityKind::WitherSkull), - "Wolf" => Some(EntityKind::Wolf), - "Zoglin" => Some(EntityKind::Zoglin), - "Zombie" => Some(EntityKind::Zombie), - "Zombie Horse" => Some(EntityKind::ZombieHorse), - "Zombie Villager" => Some(EntityKind::ZombieVillager), - "Zombified Piglin" => Some(EntityKind::ZombifiedPiglin), - "Player" => Some(EntityKind::Player), - "Fishing Bobber" => Some(EntityKind::FishingBobber), + #[doc = "Gets a `EntityKind` by its `namespaced_id`."] + #[inline] + pub fn from_namespaced_id(namespaced_id: &str) -> Option { + match namespaced_id { + "minecraft:boat" => Some(EntityKind::Boat), + "minecraft:furnace_minecart" => Some(EntityKind::FurnaceMinecart), + "minecraft:fishing_bobber" => Some(EntityKind::FishingBobber), + "minecraft:bat" => Some(EntityKind::Bat), + "minecraft:pig" => Some(EntityKind::Pig), + "minecraft:rabbit" => Some(EntityKind::Rabbit), + "minecraft:dragon_fireball" => Some(EntityKind::DragonFireball), + "minecraft:marker" => Some(EntityKind::Marker), + "minecraft:horse" => Some(EntityKind::Horse), + "minecraft:snow_golem" => Some(EntityKind::SnowGolem), + "minecraft:glow_item_frame" => Some(EntityKind::GlowItemFrame), + "minecraft:evoker" => Some(EntityKind::Evoker), + "minecraft:bee" => Some(EntityKind::Bee), + "minecraft:drowned" => Some(EntityKind::Drowned), + "minecraft:small_fireball" => Some(EntityKind::SmallFireball), + "minecraft:slime" => Some(EntityKind::Slime), + "minecraft:skeleton" => Some(EntityKind::Skeleton), + "minecraft:experience_bottle" => Some(EntityKind::ExperienceBottle), + "minecraft:hopper_minecart" => Some(EntityKind::HopperMinecart), + "minecraft:tnt" => Some(EntityKind::Tnt), + "minecraft:trader_llama" => Some(EntityKind::TraderLlama), + "minecraft:zombie_horse" => Some(EntityKind::ZombieHorse), + "minecraft:tropical_fish" => Some(EntityKind::TropicalFish), + "minecraft:arrow" => Some(EntityKind::Arrow), + "minecraft:potion" => Some(EntityKind::Potion), + "minecraft:zombie_villager" => Some(EntityKind::ZombieVillager), + "minecraft:endermite" => Some(EntityKind::Endermite), + "minecraft:command_block_minecart" => Some(EntityKind::CommandBlockMinecart), + "minecraft:experience_orb" => Some(EntityKind::ExperienceOrb), + "minecraft:pufferfish" => Some(EntityKind::Pufferfish), + "minecraft:shulker_bullet" => Some(EntityKind::ShulkerBullet), + "minecraft:strider" => Some(EntityKind::Strider), + "minecraft:wither_skeleton" => Some(EntityKind::WitherSkeleton), + "minecraft:husk" => Some(EntityKind::Husk), + "minecraft:panda" => Some(EntityKind::Panda), + "minecraft:cod" => Some(EntityKind::Cod), + "minecraft:donkey" => Some(EntityKind::Donkey), + "minecraft:illusioner" => Some(EntityKind::Illusioner), + "minecraft:chicken" => Some(EntityKind::Chicken), + "minecraft:evoker_fangs" => Some(EntityKind::EvokerFangs), + "minecraft:iron_golem" => Some(EntityKind::IronGolem), + "minecraft:squid" => Some(EntityKind::Squid), + "minecraft:mule" => Some(EntityKind::Mule), + "minecraft:zombified_piglin" => Some(EntityKind::ZombifiedPiglin), + "minecraft:player" => Some(EntityKind::Player), + "minecraft:snowball" => Some(EntityKind::Snowball), + "minecraft:end_crystal" => Some(EntityKind::EndCrystal), + "minecraft:fireball" => Some(EntityKind::Fireball), + "minecraft:zoglin" => Some(EntityKind::Zoglin), + "minecraft:creeper" => Some(EntityKind::Creeper), + "minecraft:ender_pearl" => Some(EntityKind::EnderPearl), + "minecraft:magma_cube" => Some(EntityKind::MagmaCube), + "minecraft:fox" => Some(EntityKind::Fox), + "minecraft:vex" => Some(EntityKind::Vex), + "minecraft:zombie" => Some(EntityKind::Zombie), + "minecraft:painting" => Some(EntityKind::Painting), + "minecraft:spider" => Some(EntityKind::Spider), + "minecraft:phantom" => Some(EntityKind::Phantom), + "minecraft:cat" => Some(EntityKind::Cat), + "minecraft:falling_block" => Some(EntityKind::FallingBlock), + "minecraft:cave_spider" => Some(EntityKind::CaveSpider), + "minecraft:wolf" => Some(EntityKind::Wolf), + "minecraft:leash_knot" => Some(EntityKind::LeashKnot), + "minecraft:ocelot" => Some(EntityKind::Ocelot), + "minecraft:area_effect_cloud" => Some(EntityKind::AreaEffectCloud), + "minecraft:polar_bear" => Some(EntityKind::PolarBear), + "minecraft:glow_squid" => Some(EntityKind::GlowSquid), + "minecraft:armor_stand" => Some(EntityKind::ArmorStand), + "minecraft:eye_of_ender" => Some(EntityKind::EyeOfEnder), + "minecraft:axolotl" => Some(EntityKind::Axolotl), + "minecraft:spawner_minecart" => Some(EntityKind::SpawnerMinecart), + "minecraft:tnt_minecart" => Some(EntityKind::TntMinecart), + "minecraft:ravager" => Some(EntityKind::Ravager), + "minecraft:dolphin" => Some(EntityKind::Dolphin), + "minecraft:piglin" => Some(EntityKind::Piglin), + "minecraft:stray" => Some(EntityKind::Stray), + "minecraft:piglin_brute" => Some(EntityKind::PiglinBrute), + "minecraft:ghast" => Some(EntityKind::Ghast), + "minecraft:wither" => Some(EntityKind::Wither), + "minecraft:spectral_arrow" => Some(EntityKind::SpectralArrow), + "minecraft:silverfish" => Some(EntityKind::Silverfish), + "minecraft:firework_rocket" => Some(EntityKind::FireworkRocket), + "minecraft:turtle" => Some(EntityKind::Turtle), + "minecraft:cow" => Some(EntityKind::Cow), + "minecraft:pillager" => Some(EntityKind::Pillager), + "minecraft:llama" => Some(EntityKind::Llama), + "minecraft:mooshroom" => Some(EntityKind::Mooshroom), + "minecraft:skeleton_horse" => Some(EntityKind::SkeletonHorse), + "minecraft:wandering_trader" => Some(EntityKind::WanderingTrader), + "minecraft:elder_guardian" => Some(EntityKind::ElderGuardian), + "minecraft:villager" => Some(EntityKind::Villager), + "minecraft:wither_skull" => Some(EntityKind::WitherSkull), + "minecraft:blaze" => Some(EntityKind::Blaze), + "minecraft:goat" => Some(EntityKind::Goat), + "minecraft:chest_minecart" => Some(EntityKind::ChestMinecart), + "minecraft:sheep" => Some(EntityKind::Sheep), + "minecraft:enderman" => Some(EntityKind::Enderman), + "minecraft:egg" => Some(EntityKind::Egg), + "minecraft:llama_spit" => Some(EntityKind::LlamaSpit), + "minecraft:minecart" => Some(EntityKind::Minecart), + "minecraft:trident" => Some(EntityKind::Trident), + "minecraft:parrot" => Some(EntityKind::Parrot), + "minecraft:shulker" => Some(EntityKind::Shulker), + "minecraft:vindicator" => Some(EntityKind::Vindicator), + "minecraft:item_frame" => Some(EntityKind::ItemFrame), + "minecraft:lightning_bolt" => Some(EntityKind::LightningBolt), + "minecraft:giant" => Some(EntityKind::Giant), + "minecraft:ender_dragon" => Some(EntityKind::EnderDragon), + "minecraft:hoglin" => Some(EntityKind::Hoglin), + "minecraft:salmon" => Some(EntityKind::Salmon), + "minecraft:witch" => Some(EntityKind::Witch), + "minecraft:item" => Some(EntityKind::Item), + "minecraft:guardian" => Some(EntityKind::Guardian), _ => None, } } } -#[allow(warnings)] -#[allow(clippy::all)] -impl EntityKind { - /// Returns the `bounding_box` property of this `EntityKind`. - pub fn bounding_box(&self) -> vek::Aabb { - match self { - EntityKind::AreaEffectCloud => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(6 as f64, 0.5 as f64, 6 as f64), - }, - EntityKind::ArmorStand => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 1.975 as f64, 0.5 as f64), - }, - EntityKind::Arrow => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.5 as f64, 0.5 as f64), - }, - EntityKind::Bat => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.9 as f64, 0.5 as f64), - }, - EntityKind::Bee => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.7 as f64, 0.6 as f64, 0.7 as f64), - }, - EntityKind::Blaze => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.8 as f64, 0.6 as f64), - }, - EntityKind::Boat => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.375 as f64, 0.5625 as f64, 1.375 as f64), - }, - EntityKind::Cat => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 0.7 as f64, 0.6 as f64), - }, - EntityKind::CaveSpider => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.7 as f64, 0.5 as f64, 0.7 as f64), - }, - EntityKind::Chicken => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.4 as f64, 0.7 as f64, 0.4 as f64), - }, - EntityKind::Cod => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.3 as f64, 0.5 as f64), - }, - EntityKind::Cow => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.9 as f64, 1.4 as f64, 0.9 as f64), - }, - EntityKind::Creeper => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.7 as f64, 0.6 as f64), - }, - EntityKind::Dolphin => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.9 as f64, 0.6 as f64, 0.9 as f64), - }, - EntityKind::Donkey => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.39648 as f64, 1.5 as f64, 1.39648 as f64), - }, - EntityKind::DragonFireball => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1 as f64, 1 as f64, 1 as f64), - }, - EntityKind::Drowned => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::ElderGuardian => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.9975 as f64, 1.9975 as f64, 1.9975 as f64), - }, - EntityKind::EndCrystal => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(2 as f64, 2 as f64, 2 as f64), - }, - EntityKind::EnderDragon => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(16 as f64, 8 as f64, 16 as f64), - }, - EntityKind::Enderman => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 2.9 as f64, 0.6 as f64), - }, - EntityKind::Endermite => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.4 as f64, 0.3 as f64, 0.4 as f64), - }, - EntityKind::Evoker => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::EvokerFangs => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.8 as f64, 0.5 as f64), - }, - EntityKind::ExperienceOrb => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.5 as f64, 0.5 as f64), - }, - EntityKind::EyeOfEnder => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.25 as f64, 0.25 as f64, 0.25 as f64), - }, - EntityKind::FallingBlock => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.98 as f64, 0.98 as f64, 0.98 as f64), - }, - EntityKind::FireworkRocket => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.25 as f64, 0.25 as f64, 0.25 as f64), - }, - EntityKind::Fox => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 0.7 as f64, 0.6 as f64), - }, - EntityKind::Ghast => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(4 as f64, 4 as f64, 4 as f64), - }, - EntityKind::Giant => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(3.6 as f64, 12 as f64, 3.6 as f64), - }, - EntityKind::Guardian => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.85 as f64, 0.85 as f64, 0.85 as f64), - }, - EntityKind::Hoglin => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.39648 as f64, 1.4 as f64, 1.39648 as f64), - }, - EntityKind::Horse => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.39648 as f64, 1.6 as f64, 1.39648 as f64), - }, - EntityKind::Husk => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::Illusioner => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::IronGolem => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.4 as f64, 2.7 as f64, 1.4 as f64), - }, - EntityKind::Item => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.25 as f64, 0.25 as f64, 0.25 as f64), - }, - EntityKind::ItemFrame => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.5 as f64, 0.5 as f64), - }, - EntityKind::Fireball => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1 as f64, 1 as f64, 1 as f64), - }, - EntityKind::LeashKnot => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.5 as f64, 0.5 as f64), - }, - EntityKind::LightningBolt => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0 as f64, 0 as f64, 0 as f64), - }, - EntityKind::Llama => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.9 as f64, 1.87 as f64, 0.9 as f64), - }, - EntityKind::LlamaSpit => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.25 as f64, 0.25 as f64, 0.25 as f64), - }, - EntityKind::MagmaCube => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(2.04 as f64, 2.04 as f64, 2.04 as f64), - }, - EntityKind::Minecart => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.98 as f64, 0.7 as f64, 0.98 as f64), - }, - EntityKind::ChestMinecart => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.98 as f64, 0.7 as f64, 0.98 as f64), - }, - EntityKind::CommandBlockMinecart => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.98 as f64, 0.7 as f64, 0.98 as f64), - }, - EntityKind::FurnaceMinecart => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.98 as f64, 0.7 as f64, 0.98 as f64), - }, - EntityKind::HopperMinecart => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.98 as f64, 0.7 as f64, 0.98 as f64), - }, - EntityKind::SpawnerMinecart => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.98 as f64, 0.7 as f64, 0.98 as f64), - }, - EntityKind::TntMinecart => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.98 as f64, 0.7 as f64, 0.98 as f64), - }, - EntityKind::Mule => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.39648 as f64, 1.6 as f64, 1.39648 as f64), - }, - EntityKind::Mooshroom => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.9 as f64, 1.4 as f64, 0.9 as f64), - }, - EntityKind::Ocelot => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 0.7 as f64, 0.6 as f64), - }, - EntityKind::Painting => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.5 as f64, 0.5 as f64), - }, - EntityKind::Panda => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.3 as f64, 1.25 as f64, 1.3 as f64), - }, - EntityKind::Parrot => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.9 as f64, 0.5 as f64), - }, - EntityKind::Phantom => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.9 as f64, 0.5 as f64, 0.9 as f64), - }, - EntityKind::Pig => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.9 as f64, 0.9 as f64, 0.9 as f64), - }, - EntityKind::Piglin => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::PiglinBrute => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::Pillager => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::PolarBear => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.4 as f64, 1.4 as f64, 1.4 as f64), - }, - EntityKind::Tnt => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.98 as f64, 0.98 as f64, 0.98 as f64), - }, - EntityKind::Pufferfish => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.7 as f64, 0.7 as f64, 0.7 as f64), - }, - EntityKind::Rabbit => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.4 as f64, 0.5 as f64, 0.4 as f64), - }, - EntityKind::Ravager => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.95 as f64, 2.2 as f64, 1.95 as f64), - }, - EntityKind::Salmon => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.7 as f64, 0.4 as f64, 0.7 as f64), - }, - EntityKind::Sheep => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.9 as f64, 1.3 as f64, 0.9 as f64), - }, - EntityKind::Shulker => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1 as f64, 1 as f64, 1 as f64), - }, - EntityKind::ShulkerBullet => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.3125 as f64, 0.3125 as f64, 0.3125 as f64), - }, - EntityKind::Silverfish => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.4 as f64, 0.3 as f64, 0.4 as f64), - }, - EntityKind::Skeleton => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.99 as f64, 0.6 as f64), - }, - EntityKind::SkeletonHorse => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.39648 as f64, 1.6 as f64, 1.39648 as f64), - }, - EntityKind::Slime => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(2.04 as f64, 2.04 as f64, 2.04 as f64), - }, - EntityKind::SmallFireball => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.3125 as f64, 0.3125 as f64, 0.3125 as f64), - }, - EntityKind::SnowGolem => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.7 as f64, 1.9 as f64, 0.7 as f64), - }, - EntityKind::Snowball => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.25 as f64, 0.25 as f64, 0.25 as f64), - }, - EntityKind::SpectralArrow => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.5 as f64, 0.5 as f64), - }, - EntityKind::Spider => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.4 as f64, 0.9 as f64, 1.4 as f64), - }, - EntityKind::Squid => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.8 as f64, 0.8 as f64, 0.8 as f64), - }, - EntityKind::Stray => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.99 as f64, 0.6 as f64), - }, - EntityKind::Strider => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.9 as f64, 1.7 as f64, 0.9 as f64), - }, - EntityKind::Egg => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.25 as f64, 0.25 as f64, 0.25 as f64), - }, - EntityKind::EnderPearl => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.25 as f64, 0.25 as f64, 0.25 as f64), - }, - EntityKind::ExperienceBottle => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.25 as f64, 0.25 as f64, 0.25 as f64), - }, - EntityKind::Potion => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.25 as f64, 0.25 as f64, 0.25 as f64), - }, - EntityKind::Trident => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.5 as f64, 0.5 as f64), - }, - EntityKind::TraderLlama => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.9 as f64, 1.87 as f64, 0.9 as f64), - }, - EntityKind::TropicalFish => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.5 as f64, 0.4 as f64, 0.5 as f64), - }, - EntityKind::Turtle => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.2 as f64, 0.4 as f64, 1.2 as f64), - }, - EntityKind::Vex => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.4 as f64, 0.8 as f64, 0.4 as f64), - }, - EntityKind::Villager => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::Vindicator => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::WanderingTrader => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::Witch => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::Wither => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.9 as f64, 3.5 as f64, 0.9 as f64), - }, - EntityKind::WitherSkeleton => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.7 as f64, 2.4 as f64, 0.7 as f64), - }, - EntityKind::WitherSkull => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.3125 as f64, 0.3125 as f64, 0.3125 as f64), - }, - EntityKind::Wolf => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 0.85 as f64, 0.6 as f64), - }, - EntityKind::Zoglin => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.39648 as f64, 1.4 as f64, 1.39648 as f64), - }, - EntityKind::Zombie => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::ZombieHorse => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(1.39648 as f64, 1.6 as f64, 1.39648 as f64), - }, - EntityKind::ZombieVillager => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::ZombifiedPiglin => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.95 as f64, 0.6 as f64), - }, - EntityKind::Player => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.6 as f64, 1.8 as f64, 0.6 as f64), - }, - EntityKind::FishingBobber => vek::Aabb { - min: vek::Vec3::zero(), - max: vek::Vec3::new(0.25 as f64, 0.25 as f64, 0.25 as f64), - }, +use std::convert::TryFrom; +use std::str::FromStr; +impl TryFrom for EntityKind { + type Error = &'static str; + fn try_from(value: String) -> Result { + if let Some(kind) = EntityKind::from_name(value.as_str()) { + Ok(kind) + } else { + Err("Unknown entity kind") + } + } +} +impl From for &'static str { + fn from(i: EntityKind) -> Self { + i.name() + } +} +impl FromStr for EntityKind { + type Err = &'static str; + fn from_str(s: &str) -> Result { + if let Some(kind) = EntityKind::from_name(s) { + Ok(kind) + } else { + Err("Unknown entity kind") } } } diff --git a/libcraft/core/src/lib.rs b/libcraft/core/src/lib.rs index cd3d042c1..1ab5b181e 100644 --- a/libcraft/core/src/lib.rs +++ b/libcraft/core/src/lib.rs @@ -3,7 +3,6 @@ mod biome; pub mod block; mod consts; -mod dimension; mod entity; mod gamemode; mod gamerules; @@ -11,9 +10,7 @@ mod interaction; mod player; mod positions; -pub use biome::Biome; pub use consts::*; -pub use dimension::Dimension; pub use entity::EntityKind; pub use gamemode::Gamemode; pub use gamerules::GameRules; diff --git a/libcraft/generators/Cargo.toml b/libcraft/generators/Cargo.toml deleted file mode 100644 index e657503f0..000000000 --- a/libcraft/generators/Cargo.toml +++ /dev/null @@ -1,14 +0,0 @@ -[package] -name = "libcraft-generators" -version = "0.1.0" -authors = ["Kalle Kankaanpää"] -edition = "2018" - -[dependencies] -libcraft-blocks = { path = "../blocks" } - -anyhow = "1" -bincode = "1" -flate2 = "1" -serde_json = "1" -serde = "1" \ No newline at end of file diff --git a/libcraft/generators/generate.ps1 b/libcraft/generators/generate.ps1 deleted file mode 100644 index 0320e8c90..000000000 --- a/libcraft/generators/generate.ps1 +++ /dev/null @@ -1,11 +0,0 @@ -$generators = Get-ChildItem "python" -Filter *.py - -Write-Host "Running python generators" -foreach ($generator in $generators) { - python python/$generator -} - -Write-Host "Running rust generators" -cargo run --package libcraft-generators --bin libcraft-generators - -cargo fmt \ No newline at end of file diff --git a/libcraft/generators/generate.sh b/libcraft/generators/generate.sh deleted file mode 100755 index df5eb10a2..000000000 --- a/libcraft/generators/generate.sh +++ /dev/null @@ -1,12 +0,0 @@ -generators=$(find python/ -type f -name "*.py") - -echo "Running python generators" -for generator in ${generators[@]}; do - echo "Running $generator" - python3 $generator -done - -echo "Running rust generators" -cargo run --package libcraft-generators --bin libcraft-generators - -cargo fmt \ No newline at end of file diff --git a/libcraft/generators/python/.pep8 b/libcraft/generators/python/.pep8 deleted file mode 100644 index cdedc3786..000000000 --- a/libcraft/generators/python/.pep8 +++ /dev/null @@ -1,2 +0,0 @@ -[pycodestyle] -max_line_length = 120 \ No newline at end of file diff --git a/libcraft/generators/python/biome.py b/libcraft/generators/python/biome.py deleted file mode 100644 index 6d4ae6884..000000000 --- a/libcraft/generators/python/biome.py +++ /dev/null @@ -1,29 +0,0 @@ -"""Generation of the Biome enum. Uses minecraft-data/biomes.json.""" -from common import load_minecraft_json, camel_case, generate_enum, generate_enum_property, output - -variants = [] -ids = {} -names = {} -display_names = {} -rainfalls = {} -temperatures = {} - -for biome in load_minecraft_json("biomes.json"): - variant = camel_case(biome['name']) - variants.append(variant) - ids[variant] = biome['id'] - names[variant] = biome['name'] - display_names[variant] = biome['displayName'] - rainfalls[variant] = biome['rainfall'] - temperatures[variant] = biome['temperature'] - - -output_data = generate_enum("Biome", variants) -output_data += generate_enum_property("Biome", "id", "u32", ids, True) -output_data += generate_enum_property("Biome", "name", "&str", names, True, "&'static str") -output_data += generate_enum_property("Biome", "display_name", "&str", display_names, True, "&'static str") -output_data += generate_enum_property("Biome", "rainfall", "f32", rainfalls) -output_data += generate_enum_property("Biome", "temperature", "f32", temperatures) - -output("core/src/biome.rs", output_data) - diff --git a/libcraft/generators/python/block.py b/libcraft/generators/python/block.py deleted file mode 100644 index 042ea03f7..000000000 --- a/libcraft/generators/python/block.py +++ /dev/null @@ -1,96 +0,0 @@ -from common import load_minecraft_json, camel_case, generate_enum, generate_enum_property, output - - -# build item ID => item kind index -item_kinds_by_id = {} -for item in load_minecraft_json("items.json"): - item_kinds_by_id[item['id']] = camel_case(item['name']) - -# Build material name => dig multipliers index -material_dig_multipliers = {} -for name, material in load_minecraft_json("materials.json").items(): - dig_multipliers = {} - for item_id, multiplier in material.items(): - dig_multipliers[item_kinds_by_id[int(item_id)]] = float(multiplier) - material_dig_multipliers[name] = dig_multipliers - -# Build material dig multipliers constants -material_constants = "" -material_constant_refs = {} -for name, dig_multipliers in material_dig_multipliers.items(): - dm = "" - for item, multiplier in dig_multipliers.items(): - dm += f"(libcraft_items::Item::{item}, {multiplier}_f32)," - constant = f"DIG_MULTIPLIERS_{name}" - material_constants += f"#[allow(dead_code, non_upper_case_globals)] const {constant}: &[(libcraft_items::Item, f32)] = &[{dm}];" - material_constant_refs[name] = constant - -blocks = [] -ids = {} -names = {} -display_names = {} -hardnesses = {} -diggables = {} -harvest_tools = {} -transparents = {} -light_emissions = {} -light_filters = {} -dig_multipliers = {} -solids = {} - -for block in load_minecraft_json("blocks.json"): - variant = camel_case(block['name']) - blocks.append(variant) - ids[variant] = block['id'] - names[variant] = block['name'] - display_names[variant] = block['displayName'] - hardnesses[variant] = block['hardness'] - if hardnesses[variant] is None: - hardnesses[variant] = 0 - diggables[variant] = block['diggable'] - transparents[variant] = block['transparent'] - light_emissions[variant] = block['emitLight'] - light_filters[variant] = block['filterLight'] - - solids[variant] = block['boundingBox'] == 'block' - - # Dig multipliers - material = block.get('material') - if material_constant_refs.get(material) is not None: - constant = material_constant_refs[material] - dig_multipliers[variant] = f"{constant}" - else: - dig_multipliers[variant] = "&[]" - - # Harvest tools - ht = "" - for tool_id in block.get('harvestTools', {}): - kind = item_kinds_by_id[int(tool_id)] - ht += f"libcraft_items::Item::{kind}," - - if len(ht) == 0: - harvest_tools[variant] = 'None' - else: - harvest_tools[variant] = f""" - const TOOLS: &[libcraft_items::Item] = &[{ht}]; - Some(TOOLS) - """ - -output_data = "#[derive(num_derive::FromPrimitive, num_derive::ToPrimitive, serde::Serialize, serde::Deserialize)]" + \ - generate_enum("BlockKind", blocks) -output_data += generate_enum_property("BlockKind", "id", "u32", ids, True) -output_data += generate_enum_property("BlockKind", "name", "&str", names, True, "&'static str") -output_data += generate_enum_property("BlockKind", "display_name", "&str", display_names, True, "&'static str") -output_data += generate_enum_property("BlockKind", "hardness", "f32", hardnesses) -output_data += generate_enum_property("BlockKind", "diggable", "bool", diggables) -output_data += generate_enum_property("BlockKind", "transparent", "bool", transparents) -output_data += generate_enum_property("BlockKind", "light_emission", "u8", light_emissions) -output_data += generate_enum_property("BlockKind", "light_filter", "u8", light_filters) -output_data += generate_enum_property("BlockKind", "solid", "bool", solids) -output_data += material_constants -output_data += generate_enum_property("BlockKind", "dig_multipliers", - "&'static [(libcraft_items::Item, f32)]", dig_multipliers) -output_data += generate_enum_property("BlockKind", "harvest_tools", - "Option<&'static [libcraft_items::Item]>", harvest_tools) - -output("blocks/src/block.rs", output_data) diff --git a/libcraft/generators/python/common.py b/libcraft/generators/python/common.py deleted file mode 100644 index 0a941583a..000000000 --- a/libcraft/generators/python/common.py +++ /dev/null @@ -1,164 +0,0 @@ -"""Common code shared by most code generators.""" - -from subprocess import run -from json import load -from re import split -from pathlib import Path - -from typing import List - -LIBCRAFT_ROOT = Path(__file__).parents[1] / ".." -PRISMARINEJS_BASE_PATH = Path(__file__).parents[1] / ".." / ".." / "minecraft-data" / "data" / "pc" -LIBCRAFT_DATA_BASE_PATH = Path(__file__).parents[1] / "libcraft-data" - - -def rustfmt(file_path): - """ Runs rustfmt on a file""" - run(["rustfmt", file_path]) - - -def load_minecraft_json(name: str, version="1.16.1") -> dict: - """ - Loads a JSON file from the minecraft-data sub repository. - - Parameters: - name (str): Name of the file to load - version (str): String matching the targe minecraft version, defaults to 1.16.1 - - Returns: - A dict containing JSON content - """ - file = open(PRISMARINEJS_BASE_PATH / version / name) - return load(file) - - -def load_feather_json(name: str) -> dict: - """ - Loads a JSON file from the feather directory - - Parameters: - name (str): Name of the file to load - - Returns: - A dict containing JSON contents - """ - file = open(LIBCRAFT_DATA_BASE_PATH / name) - return load(file) - - -def output(path: str, content: str): - """ - Writes the contents to a file in provided path, then runs rustfmt. - - Parameters: - path: Path to destination file, relative to libcraft root - content: Contents to be written in the file - """ - - path = LIBCRAFT_ROOT / path - if not path.parent.exists(): - return print(f"Couldn't write to file.\nPath {path.parent} does not exist") - f = open(path, "w") - f.write("// This file is @generated. Please do not edit.\n") - f.write(content) - f.close() - print(f"Generated {path.name}") - - rustfmt(path) - - -def generate_enum_property( - enum: str, # Identifier of the enum (e.g. "Biome") - property_name: str, # Name of the property - type_: str, # The property type (e.g. u32, &str - mapping: dict, # Dictionary mapping from enum variant name => property value expression - # Whether to generate the reverse mapping (property value => Some(Self)) - reverse=False, - return_type=None, - # Property type that should be returned. This is used when the type has a lifetime, such as &'static str - # Whether to bind enum fields using Enum::Variant { .. } - needs_bindings=False, -) -> str: - """ - Generates lookup functions for an enum. - - Generates two function for an enum, one which maps the enum value to some - property value and one which does the reverse (returning an Option) - """ - if return_type is None: - return_type = type_ - - self_to_prop = "" - prop_to_self = "" - - # Add quotes to strings - if type_ == "&str": - for key, property_value in mapping.items(): - mapping[key] = f'"{property_value}"' - - # If floats are needed, convert integers to floats - if type_ == "f32" or type_ == "f64": - for key, property_value in mapping.items(): - mapping[key] = f'{property_value} as {type_}' - - # Bools are lowercase in Rust - if type_ == "bool": - for key, property_value in mapping.items(): - mapping[key] = str(property_value).lower() - - for variant, property_value in mapping.items(): - fields = "" - if needs_bindings: - fields = "{ .. }" - self_to_prop += f"{enum}::{variant} {fields} => {{ {property_value} }}," - prop_to_self += f"{property_value} => Some({enum}::{variant})," - - result = f""" - #[allow(warnings)] - #[allow(clippy::all)] - impl {enum} {{ - /// Returns the `{property_name}` property of this `{enum}`. - pub fn {property_name}(&self) -> {return_type} {{ - match self {{ - {self_to_prop} - }} - }} - """ - - if reverse: - result += f""" - /// Gets a `{enum}` by its `{property_name}`. - pub fn from_{property_name}({property_name}: {type_}) -> Option {{ - match {property_name} {{ - {prop_to_self} - _ => None, - }} - }} - """ - - # closing brace - result += "}" - - return result - - -def generate_enum(name: str, variants: List[str], derives: List[str] = [], prelude: str = "") -> str: - """Generates an enum definition with the provided variants and extra derives.""" - body = ','.join(variants) + ',' - extra_derives = "" if len(derives) == 0 else ',' + ','.join(derives) - output = f""" - #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord{extra_derives})]""" - if len(prelude) != 0: - output += f""" - {prelude}""" - output += f""" - pub enum {name} {{ - {body} - }} - """ - return output - - -def camel_case(string: str) -> str: - """Converts a string to UpperCamelCase.""" - return ''.join(a.capitalize() for a in split('([^a-zA-Z0-9])', string) if a.isalnum()) diff --git a/libcraft/generators/python/entity.py b/libcraft/generators/python/entity.py deleted file mode 100644 index e30c8b4e4..000000000 --- a/libcraft/generators/python/entity.py +++ /dev/null @@ -1,29 +0,0 @@ -from common import load_minecraft_json, camel_case, generate_enum, generate_enum_property, output - -entities = [] -ids = {} -internal_ids = {} -names = {} -display_names = {} -bboxes = {} - -for entity in load_minecraft_json("entities.json","1.16.2"): - variant = camel_case(entity['name']) - entities.append(variant) - ids[variant] = entity['id'] - internal_ids[variant] = entity['internalId'] - names[variant] = entity['name'] - display_names[variant] = entity['displayName'] - - width = entity['width'] - height = entity['height'] - bboxes[variant] = f"vek::Aabb {{ min: vek::Vec3::zero(), max: vek::Vec3::new({width} as f64, {height} as f64, {width} as f64), }}" - -output_data = generate_enum("EntityKind", entities) -output_data += generate_enum_property("EntityKind", "id", "u32", ids, True) -output_data += generate_enum_property("EntityKind", "internal_id", "u32", internal_ids, True) -output_data += generate_enum_property("EntityKind", "name", "&str", names, True, "&'static str") -output_data += generate_enum_property("EntityKind", "display_name", "&str", display_names, True, "&'static str") -output_data += generate_enum_property("EntityKind", "bounding_box", "vek::Aabb", bboxes) - -output("core/src/entity.rs", output_data) diff --git a/libcraft/generators/python/inventory.py b/libcraft/generators/python/inventory.py deleted file mode 100644 index e7f3e4712..000000000 --- a/libcraft/generators/python/inventory.py +++ /dev/null @@ -1,157 +0,0 @@ -from pathlib import Path -import common -import collections - -data = common.load_feather_json("inventory.json") - -# Areas -areas = [] -for area in data['areas']: - areas.append(common.camel_case(area)) - -# Windows -windows = [] -names = {} -inventories = {} -area_offsets = collections.OrderedDict() - -for name, window in data['windows'].items(): - variant = common.camel_case(name) - windows.append(variant) - - names[variant] = name - inventories[variant] = window['inventories'] - - ao = collections.OrderedDict() - slot_counter = 0 - for inventory_and_area, number_of_slots in window['slots'].items(): - parts = inventory_and_area.split(":") - inventory = parts[0] - area_in_inventory = parts[1] - ao[(inventory, area_in_inventory)] = (slot_counter, number_of_slots) - slot_counter += number_of_slots - area_offsets[variant] = ao - -output = common.generate_enum("Area", areas) - -window = "#[derive(Debug, Clone)] pub enum Window {" -index_to_slot = "#[allow(unused_comparisons)] pub fn index_to_slot(&self, index: usize) -> Option<(&crate::Inventory, Area, usize)> { match self {" -slot_to_index = "pub fn slot_to_index(&self, inventory: &crate::Inventory, area: Area, slot: usize) -> Option { match self {" - -for variant in windows: - window += f"{variant} {{" - for inventory in inventories[variant]: - window += f"{inventory}: crate::Inventory," - window += "}," - - match_pattern = f"Window::{variant} {{" - for inventory in inventories[variant]: - match_pattern += f"{inventory}," - match_pattern += "}" - - index_to_slot += f"{match_pattern} => {{" - first = True - for (inventory, area_in_inventory), (slot_offset, number_of_slots) in area_offsets[variant].items(): - if not first: - index_to_slot += "else" - first = False - - area_in_inventory = common.camel_case(area_in_inventory) - max_slot = slot_offset + number_of_slots - slot_offset_operation = "" - if slot_offset != 0: - slot_offset_operation += f" - {slot_offset}" - index_to_slot += f""" - if ({slot_offset}..{max_slot}).contains(&index) {{ - let area = Area::{area_in_inventory}; - let slot = index{slot_offset_operation}; - Some(({inventory}, area, slot)) - }} - """ - index_to_slot += "else { None } }," - - slot_to_index += f"{match_pattern} => {{" - first = True - for (inventory, area_in_inventory), (slot_offset, number_of_slots) in area_offsets[variant].items(): - if not first: - slot_to_index += "else " - first = False - - area_in_inventory = common.camel_case(area_in_inventory) - if slot_offset == 0: - slot_to_index += f"if area == Area::{area_in_inventory} && {inventory}.ptr_eq(inventory) {{ Some(slot) }}" - else: - slot_to_index += f"if area == Area::{area_in_inventory} && {inventory}.ptr_eq(inventory) {{ Some(slot + {slot_offset}) }}" - - slot_to_index += "else { None } }," - - -window += "}" -index_to_slot += "} }" -slot_to_index += "} }" - -output += window -output += f"impl Window {{ {index_to_slot} {slot_to_index} }}" -output += common.generate_enum_property("Window", "name", "&str", names, False, "&'static str", True) - -# Inventories -inventories = [] -for name, areas in data['inventories'].items(): - variant = common.camel_case(name) - inv = { - 'name': name, - 'variant': variant, - 'areas': areas, - } - inventories.append(inv) - - -output += "#[derive(Debug, Clone)] pub enum InventoryBacking {" -for inventory in inventories: - variant = inventory['variant'] - output += f"{variant} {{" - for area_name, area_size in inventory['areas'].items(): - output += f"{area_name}: [T; {area_size}]," - output += "}," -output += "}" - -get_area_fn = "pub fn area_slice(&self, area: Area) -> Option<&[T]> { match self {" -get_areas_fn = "pub fn areas(&self) -> &'static [Area] { match self {" -constructor_fns = "" -inventory_constructor_fns = "" - -for inventory in inventories: - name = inventory['name'] - variant = inventory['variant'] - areas = inventory['areas'] - match_arm = f"InventoryBacking::{variant} {{" - for area in areas: - match_arm += f"{area}," - match_arm += "}" - - get_area_fn += f"{match_arm} => match area {{" - for area in areas: - area_variant = common.camel_case(area) - get_area_fn += f"Area::{area_variant} => Some({area}.as_ref())," - get_area_fn += "_ => None }," - - get_areas_fn += f"\nInventoryBacking::{variant} {{ .. }} => {{static AREAS: [Area; {len(areas)}] = [" - for area in areas: - get_areas_fn += f"Area::{common.camel_case(area)}," - get_areas_fn += f"];\n &AREAS }}," - - constructor_fn = f"pub fn {name}() -> Self where T: Default {{ InventoryBacking::{variant} {{" - for area in areas: - constructor_fn += f"{area}: Default::default()," - - constructor_fn += "} }\n" - constructor_fns += constructor_fn - - inventory_constructor_fns += f"pub fn {name}() -> Self {{ Self {{ backing: std::sync::Arc::new(InventoryBacking::{name}()) }} }}" - -get_area_fn += "} }" -get_areas_fn += "} }" -output += f"impl InventoryBacking {{ {get_area_fn} {get_areas_fn} {constructor_fns} }}" -output += f"impl crate::Inventory {{ {inventory_constructor_fns} }}" - -common.output("inventory/src/inventory.rs", output) diff --git a/libcraft/generators/python/item.py b/libcraft/generators/python/item.py deleted file mode 100644 index 78d7ff2ab..000000000 --- a/libcraft/generators/python/item.py +++ /dev/null @@ -1,74 +0,0 @@ -from common import load_minecraft_json, camel_case, generate_enum, generate_enum_property, output - -items = [] -ids = {} -names = {} -display_names = {} -stack_sizes = {} -durabilities = {} - -for item in load_minecraft_json("items.json", "1.16.2"): - variant = camel_case(item['name']) - items.append(variant) - ids[variant] = item['id'] - names[variant] = item['name'] - display_names[variant] = item['displayName'] - stack_sizes[variant] = item['stackSize'] - - durability = item.get('durability') - if durability is None: - durabilities[variant] = "None" - else: - durabilities[variant] = f"Some({durability})" - -output_data = "use serde::{Serialize, Deserialize};" - -output_data += generate_enum("Item", items, derives=["Serialize", "Deserialize"], - prelude="#[serde(try_from = \"String\", into = \"&'static str\")]") -output_data += generate_enum_property("Item", "id", "u32", ids, True) -output_data += generate_enum_property("Item", "name", "&str", names, True, "&'static str") -output_data += generate_enum_property("Item", "display_name", "&str", display_names, False, "&'static str") -output_data += generate_enum_property("Item", "stack_size", "u32", stack_sizes) -output_data += generate_enum_property("Item", "durability", "Option", durabilities) - -output_data += f""" - use std::convert::TryFrom; - - impl TryFrom for Item {{ - type Error = &'static str; - - fn try_from(value: String) -> Result {{ - if let Some(item) = Item::from_name(value.as_str()) {{ - Ok(item) - }} else {{ - Err("Unknown item name.") - }} - }} - }} -""" - -output_data += f""" - impl From for &'static str {{ - fn from(i: Item) -> Self {{ - i.name() - }} - }} -""" - -output_data += f""" - use std::str::FromStr; - - impl FromStr for Item {{ - type Err = &'static str; - - fn from_str(s: &str) -> Result {{ - if let Some(item) = Item::from_name(s) {{ - Ok(item) - }} else {{ - Err("Unknown item name.") - }} - }} - }} -""" - -output("items/src/item.rs", output_data) diff --git a/libcraft/generators/python/particle.py b/libcraft/generators/python/particle.py deleted file mode 100644 index 2bb3dd775..000000000 --- a/libcraft/generators/python/particle.py +++ /dev/null @@ -1,51 +0,0 @@ -# This file cannot be generated anymore, since the current particle.rs in libcraft/crates/particles has a -# is an enum that has the particle data built into it. - -# I made an attempt on incorporating this into the generator, but ultimately gave up since it's not future-proof -# at all - -from common import load_minecraft_json, output, generate_enum, generate_enum_property, camel_case - -def main (): - particles = [] - ids = {} - names = {} - - types = load_minecraft_json("protocol.json", "1.16")["types"]["particleData"][1]['fields'] - print(types) - - for particle in load_minecraft_json("particles.json", "1.16"): - variant = camel_case(particle['name']) - id = str(particle['id']) - if id in types.keys(): - data = types[id] - print(data[1]) - particles.append(generate_particle_data(variant, data[1])) - else: - particles.append(variant) - ids[variant] = id - names[variant] = particle['name'] - - output_data = generate_enum("Particle", particles) - output_data += generate_enum_property("Particle", "id", "u32", ids, True) - output_data += generate_enum_property("Particle", "name", "&str", names, True, "&'static str") - output("core/src/particle.rs", output_data) - -def generate_particle_data (name: str, data: dict): - - if (len(data) == 1): - feather_type = "f32" - if data[0]['name'] == 'blockState': - feather_type = "BlockId" - return name + f"({feather_type})" - else: - enum_item = f"{name}{{" - for i in range(0, len(data)): - enum_item += f"{data[i]['name']}:{data[i]['type']}" - if i < len(data): - enum_item += "," - - return enum_item + "}" - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/libcraft/generators/python/simplified_block.py b/libcraft/generators/python/simplified_block.py deleted file mode 100644 index 170db4e46..000000000 --- a/libcraft/generators/python/simplified_block.py +++ /dev/null @@ -1,35 +0,0 @@ -from common import load_minecraft_json, load_feather_json, camel_case, generate_enum, generate_enum_property, output -from re import compile - -blocks = load_minecraft_json("blocks.json") -simplified_block = load_feather_json("simplified_block.json") - -regexes = {} -for name, regex in simplified_block['regexes'].items(): - regexes[name] = compile(regex) - -variants = [] -mapping = {} -for name in regexes: - variants.append(camel_case(name)) - -for block in blocks: - name = block['name'] - block_variant = camel_case(name) - - # Detect which SimplifiedBlockKind matches this block. - found = False - for simplified, regex in regexes.items(): - if regex.match(name) is not None: - mapping[block_variant] = "SimplifiedBlockKind::" + camel_case(simplified) - found = True - break - - if not found: - # Default to block variant - variants.append(block_variant) - mapping[block_variant] = "SimplifiedBlockKind::" + block_variant - -output_data = "use crate::BlockKind;" + generate_enum("SimplifiedBlockKind", variants) -output_data += generate_enum_property("BlockKind", "simplified_kind", "SimplifiedBlockKind", mapping) -output("blocks/src/simplified_block.rs", output_data) diff --git a/libcraft/generators/src/common.rs b/libcraft/generators/src/common.rs deleted file mode 100644 index 248a227f8..000000000 --- a/libcraft/generators/src/common.rs +++ /dev/null @@ -1,38 +0,0 @@ -use std::fs::{read_to_string, write}; -use std::io::Write; - -use libcraft_blocks::data::BlockReport; -use libcraft_blocks::BlockKind; - -use anyhow::{anyhow, Context, Result}; -use flate2::Compression; -use serde::Serialize; - -pub fn load_block_report(path: &str) -> Result { - println!("Reading BlockReport from blocks.json"); - let block_report = read_to_string(path).context("blocks report `blocks.json` not found")?; - serde_json::from_str::(&block_report).map_err(|err| err.into()) -} - -/// Writes data to file provided in compressed binary format (.bc.gz) -pub fn compress_and_write(data: Vec, path: &str) -> Result<()> { - println!("Writing {} entries to {}", data.len(), path); - let encoded = bincode::serialize(&data)?; - - let mut writer = flate2::write::GzEncoder::new(Vec::new(), Compression::best()); - writer.write_all(&encoded)?; - write( - [env!("CARGO_MANIFEST_DIR"), "/../../", path].concat(), - &writer.finish()?, - )?; - - Ok(()) -} - -pub fn state_name_to_block_kind(name: &str) -> Result { - name.split(':') - .last() - .map(BlockKind::from_name) - .flatten() - .ok_or_else(|| anyhow!("Could not convert state name to BlockKind")) -} diff --git a/libcraft/generators/src/generators.rs b/libcraft/generators/src/generators.rs deleted file mode 100644 index 15c7abc22..000000000 --- a/libcraft/generators/src/generators.rs +++ /dev/null @@ -1,30 +0,0 @@ -use crate::common::{compress_and_write, state_name_to_block_kind}; -use libcraft_blocks::data::BlockReport; - -pub fn generate_block_states(block_report: &BlockReport, path: &str) -> anyhow::Result<()> { - let mut raw_block_states = Vec::new(); - - for (name, entry) in &block_report.blocks { - let kind = state_name_to_block_kind(name)?; - for state in &entry.states { - raw_block_states.push(state.to_raw_state(kind)); - } - } - - raw_block_states.sort_unstable_by_key(|state| state.id); - - compress_and_write(raw_block_states, path) -} - -pub fn generate_block_properties(block_report: &BlockReport, path: &str) -> anyhow::Result<()> { - let mut raw_block_properties = Vec::new(); - - for (name, entry) in &block_report.blocks { - let kind = state_name_to_block_kind(name)?; - raw_block_properties.push(entry.to_raw_properties(kind)) - } - - raw_block_properties.sort_unstable_by_key(|properties| properties.kind); - - compress_and_write(raw_block_properties, path) -} diff --git a/libcraft/generators/src/main.rs b/libcraft/generators/src/main.rs deleted file mode 100644 index 8dc3c9373..000000000 --- a/libcraft/generators/src/main.rs +++ /dev/null @@ -1,18 +0,0 @@ -mod common; -mod generators; - -use common::load_block_report; -use generators::{generate_block_properties, generate_block_states}; - -fn main() -> anyhow::Result<()> { - let block_report = load_block_report("blocks.json")?; - println!("Generating raw block states"); - generate_block_states(&block_report, "crates/blocks/assets/raw_block_states.bc.gz")?; - println!("Generating raw block properties"); - generate_block_properties( - &block_report, - "crates/blocks/assets/raw_block_properties.bc.gz", - )?; - - Ok(()) -} diff --git a/libcraft/inventory/src/inventory.rs b/libcraft/inventory/src/inventory.rs index 975d6030a..f32107484 100644 --- a/libcraft/inventory/src/inventory.rs +++ b/libcraft/inventory/src/inventory.rs @@ -1,5 +1,4 @@ // This file is @generated. Please do not edit. - #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub enum Area { Storage, @@ -42,629 +41,580 @@ pub enum Area { StonecutterInput, StonecutterOutput, } +impl Area { + #[inline] + pub fn values() -> &'static [Area] { + use Area::*; + &[ + Storage, + CraftingOutput, + CraftingInput, + Helmet, + Chestplate, + Leggings, + Boots, + Hotbar, + Offhand, + FurnaceIngredient, + FurnaceFuel, + FurnaceOutput, + EnchantmentItem, + EnchantmentLapis, + BrewingBottle, + BrewingIngredient, + BrewingBlazePowder, + VillagerInput, + VillagerOutput, + BeaconPayment, + AnvilInput1, + AnvilInput2, + AnvilOutput, + Saddle, + HorseArmor, + LlamaCarpet, + CartographyMap, + CartographyPaper, + CartographyOutput, + GrindstoneInput1, + GrindstoneInput2, + GrindstoneOutput, + LecternBook, + LoomBanner, + LoomDye, + LoomPattern, + LoomOutput, + StonecutterInput, + StonecutterOutput, + ] + } +} #[derive(Debug, Clone)] pub enum Window { - Player { + Generic9X3 { + block: crate::Inventory, player: crate::Inventory, }, - Generic9x1 { - block: crate::Inventory, + Generic9X6 { + left_chest: crate::Inventory, + right_chest: crate::Inventory, player: crate::Inventory, }, - Generic9x2 { - block: crate::Inventory, + Hopper { + hopper: crate::Inventory, player: crate::Inventory, }, - Generic9x3 { - block: crate::Inventory, + Grindstone { + grindstone: crate::Inventory, player: crate::Inventory, }, - Generic9x4 { - block: crate::Inventory, + Furnace { + furnace: crate::Inventory, player: crate::Inventory, }, - Generic9x5 { + Generic3X3 { block: crate::Inventory, player: crate::Inventory, }, - Generic9x6 { - left_chest: crate::Inventory, - right_chest: crate::Inventory, + Smoker { + smoker: crate::Inventory, player: crate::Inventory, }, - Generic3x3 { - block: crate::Inventory, + Anvil { + anvil: crate::Inventory, player: crate::Inventory, }, - Crafting { - crafting_table: crate::Inventory, + Lectern { + lectern: crate::Inventory, player: crate::Inventory, }, - Furnace { - furnace: crate::Inventory, + Generic9X4 { + block: crate::Inventory, player: crate::Inventory, }, - BlastFurnace { - blast_furnace: crate::Inventory, + ShulkerBox { + shulker_box: crate::Inventory, player: crate::Inventory, }, - Smoker { - smoker: crate::Inventory, + BrewingStand { + brewing_stand: crate::Inventory, player: crate::Inventory, }, - Enchantment { - enchantment_table: crate::Inventory, + Generic9X5 { + block: crate::Inventory, player: crate::Inventory, }, - BrewingStand { - brewing_stand: crate::Inventory, + Generic9X2 { + block: crate::Inventory, player: crate::Inventory, }, - Beacon { - beacon: crate::Inventory, + Stonecutter { + stonecutter: crate::Inventory, player: crate::Inventory, }, - Anvil { - anvil: crate::Inventory, + Crafting { + crafting_table: crate::Inventory, player: crate::Inventory, }, - Hopper { - hopper: crate::Inventory, + Player { player: crate::Inventory, }, - ShulkerBox { - shulker_box: crate::Inventory, + BlastFurnace { + blast_furnace: crate::Inventory, player: crate::Inventory, }, - Cartography { - cartography_table: crate::Inventory, + Loom { + loom: crate::Inventory, player: crate::Inventory, }, - Grindstone { - grindstone: crate::Inventory, + Generic9X1 { + block: crate::Inventory, player: crate::Inventory, }, - Lectern { - lectern: crate::Inventory, + Enchantment { + enchantment_table: crate::Inventory, player: crate::Inventory, }, - Loom { - loom: crate::Inventory, + Cartography { + cartography_table: crate::Inventory, player: crate::Inventory, }, - Stonecutter { - stonecutter: crate::Inventory, + Beacon { + beacon: crate::Inventory, player: crate::Inventory, }, } impl Window { - #[allow(unused_comparisons)] pub fn index_to_slot(&self, index: usize) -> Option<(&crate::Inventory, Area, usize)> { - match self { - Window::Player { player } => { - if (0..1).contains(&index) { - let area = Area::CraftingOutput; - let slot = index; - Some((player, area, slot)) - } else if (1..5).contains(&index) { - let area = Area::CraftingInput; - let slot = index - 1; - Some((player, area, slot)) - } else if (5..6).contains(&index) { - let area = Area::Helmet; - let slot = index - 5; - Some((player, area, slot)) - } else if (6..7).contains(&index) { - let area = Area::Chestplate; - let slot = index - 6; - Some((player, area, slot)) - } else if (7..8).contains(&index) { - let area = Area::Leggings; - let slot = index - 7; - Some((player, area, slot)) - } else if (8..9).contains(&index) { - let area = Area::Boots; - let slot = index - 8; - Some((player, area, slot)) - } else if (9..36).contains(&index) { - let area = Area::Storage; - let slot = index - 9; - Some((player, area, slot)) - } else if (36..45).contains(&index) { - let area = Area::Hotbar; - let slot = index - 36; - Some((player, area, slot)) - } else if (45..46).contains(&index) { - let area = Area::Offhand; - let slot = index - 45; - Some((player, area, slot)) - } else { - None - } - } - Window::Generic9x1 { block, player } => { - if (0..9).contains(&index) { - let area = Area::Storage; - let slot = index; - Some((block, area, slot)) - } else if (9..36).contains(&index) { - let area = Area::Storage; - let slot = index - 9; - Some((player, area, slot)) - } else if (36..45).contains(&index) { - let area = Area::Hotbar; - let slot = index - 36; - Some((player, area, slot)) - } else { - None - } - } - Window::Generic9x2 { block, player } => { - if (0..18).contains(&index) { - let area = Area::Storage; - let slot = index; - Some((block, area, slot)) - } else if (18..45).contains(&index) { - let area = Area::Storage; - let slot = index - 18; - Some((player, area, slot)) - } else if (45..54).contains(&index) { - let area = Area::Hotbar; - let slot = index - 45; - Some((player, area, slot)) - } else { - None - } - } - Window::Generic9x3 { block, player } => { - if (0..27).contains(&index) { - let area = Area::Storage; - let slot = index; - Some((block, area, slot)) - } else if (27..54).contains(&index) { - let area = Area::Storage; - let slot = index - 27; - Some((player, area, slot)) - } else if (54..63).contains(&index) { - let area = Area::Hotbar; - let slot = index - 54; - Some((player, area, slot)) - } else { - None - } - } - Window::Generic9x4 { block, player } => { - if (0..36).contains(&index) { - let area = Area::Storage; - let slot = index; - Some((block, area, slot)) - } else if (36..63).contains(&index) { - let area = Area::Storage; - let slot = index - 36; - Some((player, area, slot)) - } else if (63..72).contains(&index) { - let area = Area::Hotbar; - let slot = index - 63; - Some((player, area, slot)) - } else { - None - } - } - Window::Generic9x5 { block, player } => { - if (0..45).contains(&index) { - let area = Area::Storage; - let slot = index; - Some((block, area, slot)) - } else if (45..72).contains(&index) { - let area = Area::Storage; - let slot = index - 45; - Some((player, area, slot)) - } else if (72..81).contains(&index) { - let area = Area::Hotbar; - let slot = index - 72; - Some((player, area, slot)) - } else { - None - } - } - Window::Generic9x6 { - left_chest, - right_chest, - player, - } => { - if (0..27).contains(&index) { - let area = Area::Storage; - let slot = index; - Some((left_chest, area, slot)) - } else if (27..54).contains(&index) { - let area = Area::Storage; - let slot = index - 27; - Some((right_chest, area, slot)) - } else if (54..81).contains(&index) { - let area = Area::Storage; - let slot = index - 54; - Some((player, area, slot)) - } else if (81..90).contains(&index) { - let area = Area::Hotbar; - let slot = index - 81; - Some((player, area, slot)) - } else { - None - } - } - Window::Generic3x3 { block, player } => { - if (0..9).contains(&index) { - let area = Area::Storage; - let slot = index; - Some((block, area, slot)) - } else if (9..36).contains(&index) { - let area = Area::Storage; - let slot = index - 9; - Some((player, area, slot)) - } else if (36..45).contains(&index) { - let area = Area::Hotbar; - let slot = index - 36; - Some((player, area, slot)) - } else { - None - } - } - Window::Crafting { - crafting_table, - player, - } => { - if (0..1).contains(&index) { - let area = Area::CraftingOutput; - let slot = index; - Some((crafting_table, area, slot)) - } else if (1..10).contains(&index) { - let area = Area::CraftingInput; - let slot = index - 1; - Some((crafting_table, area, slot)) - } else if (10..37).contains(&index) { - let area = Area::Storage; - let slot = index - 10; - Some((player, area, slot)) - } else if (37..46).contains(&index) { - let area = Area::Hotbar; - let slot = index - 37; - Some((player, area, slot)) - } else { - None - } - } - Window::Furnace { furnace, player } => { - if (0..1).contains(&index) { - let area = Area::FurnaceIngredient; - let slot = index; - Some((furnace, area, slot)) - } else if (1..2).contains(&index) { - let area = Area::FurnaceFuel; - let slot = index - 1; - Some((furnace, area, slot)) - } else if (2..3).contains(&index) { - let area = Area::FurnaceOutput; - let slot = index - 2; - Some((furnace, area, slot)) - } else if (3..30).contains(&index) { - let area = Area::Storage; - let slot = index - 3; - Some((player, area, slot)) - } else if (30..39).contains(&index) { - let area = Area::Hotbar; - let slot = index - 30; - Some((player, area, slot)) - } else { - None - } - } - Window::BlastFurnace { - blast_furnace, - player, - } => { - if (0..1).contains(&index) { - let area = Area::FurnaceIngredient; - let slot = index; - Some((blast_furnace, area, slot)) - } else if (1..2).contains(&index) { - let area = Area::FurnaceFuel; - let slot = index - 1; - Some((blast_furnace, area, slot)) - } else if (2..3).contains(&index) { - let area = Area::FurnaceOutput; - let slot = index - 2; - Some((blast_furnace, area, slot)) - } else if (3..30).contains(&index) { - let area = Area::Storage; - let slot = index - 3; - Some((player, area, slot)) - } else if (30..39).contains(&index) { - let area = Area::Hotbar; - let slot = index - 30; - Some((player, area, slot)) - } else { - None - } - } - Window::Smoker { smoker, player } => { - if (0..1).contains(&index) { - let area = Area::FurnaceIngredient; - let slot = index; - Some((smoker, area, slot)) - } else if (1..2).contains(&index) { - let area = Area::FurnaceFuel; - let slot = index - 1; - Some((smoker, area, slot)) - } else if (2..3).contains(&index) { - let area = Area::FurnaceOutput; - let slot = index - 2; - Some((smoker, area, slot)) - } else if (3..30).contains(&index) { - let area = Area::Storage; - let slot = index - 3; - Some((player, area, slot)) - } else if (30..39).contains(&index) { - let area = Area::Hotbar; - let slot = index - 30; - Some((player, area, slot)) - } else { - None - } - } - Window::Enchantment { - enchantment_table, - player, - } => { - if (0..1).contains(&index) { - let area = Area::EnchantmentItem; - let slot = index; - Some((enchantment_table, area, slot)) - } else if (1..2).contains(&index) { - let area = Area::EnchantmentLapis; - let slot = index - 1; - Some((enchantment_table, area, slot)) - } else if (2..29).contains(&index) { - let area = Area::Storage; - let slot = index - 2; - Some((player, area, slot)) - } else if (29..38).contains(&index) { - let area = Area::Hotbar; - let slot = index - 29; - Some((player, area, slot)) - } else { - None - } - } - Window::BrewingStand { - brewing_stand, - player, - } => { - if (0..3).contains(&index) { - let area = Area::BrewingBottle; - let slot = index; - Some((brewing_stand, area, slot)) - } else if (3..4).contains(&index) { - let area = Area::BrewingIngredient; - let slot = index - 3; - Some((brewing_stand, area, slot)) - } else if (4..5).contains(&index) { - let area = Area::BrewingBlazePowder; - let slot = index - 4; - Some((brewing_stand, area, slot)) - } else if (5..32).contains(&index) { - let area = Area::Storage; - let slot = index - 5; - Some((player, area, slot)) - } else if (32..41).contains(&index) { - let area = Area::Hotbar; - let slot = index - 32; - Some((player, area, slot)) - } else { - None - } - } - Window::Beacon { beacon, player } => { - if (0..1).contains(&index) { - let area = Area::BeaconPayment; - let slot = index; - Some((beacon, area, slot)) - } else if (1..28).contains(&index) { - let area = Area::Storage; - let slot = index - 1; - Some((player, area, slot)) - } else if (28..37).contains(&index) { - let area = Area::Hotbar; - let slot = index - 28; - Some((player, area, slot)) - } else { - None - } - } - Window::Anvil { anvil, player } => { - if (0..1).contains(&index) { - let area = Area::AnvilInput1; - let slot = index; - Some((anvil, area, slot)) - } else if (1..2).contains(&index) { - let area = Area::AnvilInput2; - let slot = index - 1; - Some((anvil, area, slot)) - } else if (2..3).contains(&index) { - let area = Area::AnvilOutput; - let slot = index - 2; - Some((anvil, area, slot)) - } else if (3..30).contains(&index) { - let area = Area::Storage; - let slot = index - 3; - Some((player, area, slot)) - } else if (30..39).contains(&index) { - let area = Area::Hotbar; - let slot = index - 30; - Some((player, area, slot)) - } else { - None - } - } - Window::Hopper { hopper, player } => { - if (0..4).contains(&index) { - let area = Area::Storage; - let slot = index; - Some((hopper, area, slot)) - } else if (4..31).contains(&index) { - let area = Area::Storage; - let slot = index - 4; - Some((player, area, slot)) - } else if (31..40).contains(&index) { - let area = Area::Hotbar; - let slot = index - 31; - Some((player, area, slot)) - } else { - None - } - } - Window::ShulkerBox { - shulker_box, - player, - } => { - if (0..27).contains(&index) { - let area = Area::Storage; - let slot = index; - Some((shulker_box, area, slot)) - } else if (27..54).contains(&index) { - let area = Area::Storage; - let slot = index - 27; - Some((player, area, slot)) - } else if (54..63).contains(&index) { - let area = Area::Hotbar; - let slot = index - 54; - Some((player, area, slot)) - } else { - None - } - } - Window::Cartography { - cartography_table, - player, - } => { - if (0..1).contains(&index) { - let area = Area::CartographyMap; - let slot = index; - Some((cartography_table, area, slot)) - } else if (1..2).contains(&index) { - let area = Area::CartographyPaper; - let slot = index - 1; - Some((cartography_table, area, slot)) - } else if (2..3).contains(&index) { - let area = Area::CartographyOutput; - let slot = index - 2; - Some((cartography_table, area, slot)) - } else if (3..30).contains(&index) { - let area = Area::Storage; - let slot = index - 3; - Some((player, area, slot)) - } else if (30..39).contains(&index) { - let area = Area::Hotbar; - let slot = index - 30; - Some((player, area, slot)) - } else { - None - } - } - Window::Grindstone { grindstone, player } => { - if (0..1).contains(&index) { - let area = Area::GrindstoneInput1; - let slot = index; - Some((grindstone, area, slot)) - } else if (1..2).contains(&index) { - let area = Area::GrindstoneInput2; - let slot = index - 1; - Some((grindstone, area, slot)) - } else if (2..3).contains(&index) { - let area = Area::GrindstoneOutput; - let slot = index - 2; - Some((grindstone, area, slot)) - } else if (3..30).contains(&index) { - let area = Area::Storage; - let slot = index - 3; - Some((player, area, slot)) - } else if (30..39).contains(&index) { - let area = Area::Hotbar; - let slot = index - 30; - Some((player, area, slot)) - } else { - None - } - } - Window::Lectern { lectern, player } => { - if (0..1).contains(&index) { - let area = Area::LecternBook; - let slot = index; - Some((lectern, area, slot)) - } else if (1..28).contains(&index) { - let area = Area::Storage; - let slot = index - 1; - Some((player, area, slot)) - } else if (28..37).contains(&index) { - let area = Area::Hotbar; - let slot = index - 28; - Some((player, area, slot)) - } else { - None - } - } - Window::Loom { loom, player } => { - if (0..1).contains(&index) { - let area = Area::LoomBanner; - let slot = index; - Some((loom, area, slot)) - } else if (1..2).contains(&index) { - let area = Area::LoomDye; - let slot = index - 1; - Some((loom, area, slot)) - } else if (2..3).contains(&index) { - let area = Area::LoomPattern; - let slot = index - 2; - Some((loom, area, slot)) - } else if (3..4).contains(&index) { - let area = Area::LoomOutput; - let slot = index - 3; - Some((loom, area, slot)) - } else if (4..31).contains(&index) { - let area = Area::Storage; - let slot = index - 4; - Some((player, area, slot)) - } else if (31..40).contains(&index) { - let area = Area::Hotbar; - let slot = index - 31; - Some((player, area, slot)) - } else { - None - } - } - Window::Stonecutter { - stonecutter, - player, - } => { - if (0..1).contains(&index) { - let area = Area::StonecutterInput; - let slot = index; - Some((stonecutter, area, slot)) - } else if (1..2).contains(&index) { - let area = Area::StonecutterOutput; - let slot = index - 1; - Some((stonecutter, area, slot)) - } else if (2..29).contains(&index) { - let area = Area::Storage; - let slot = index - 2; - Some((player, area, slot)) - } else if (29..38).contains(&index) { - let area = Area::Hotbar; - let slot = index - 29; - Some((player, area, slot)) - } else { - None - } + match (self, index) { + (Window::Generic9X3 { block, player }, 0usize..=26usize) => { + Some((block, Area::Storage, index - 0usize)) + } + (Window::Generic9X3 { block, player }, 27usize..=53usize) => { + Some((player, Area::Storage, index - 27usize)) + } + (Window::Generic9X3 { block, player }, 54usize..=62usize) => { + Some((player, Area::Hotbar, index - 54usize)) + } + ( + Window::Generic9X6 { + left_chest, + right_chest, + player, + }, + 0usize..=26usize, + ) => Some((left_chest, Area::Storage, index - 0usize)), + ( + Window::Generic9X6 { + left_chest, + right_chest, + player, + }, + 27usize..=53usize, + ) => Some((right_chest, Area::Storage, index - 27usize)), + ( + Window::Generic9X6 { + left_chest, + right_chest, + player, + }, + 54usize..=80usize, + ) => Some((player, Area::Storage, index - 54usize)), + ( + Window::Generic9X6 { + left_chest, + right_chest, + player, + }, + 81usize..=89usize, + ) => Some((player, Area::Hotbar, index - 81usize)), + (Window::Hopper { hopper, player }, 0usize..=3usize) => { + Some((hopper, Area::Storage, index - 0usize)) + } + (Window::Hopper { hopper, player }, 4usize..=30usize) => { + Some((player, Area::Storage, index - 4usize)) + } + (Window::Hopper { hopper, player }, 31usize..=39usize) => { + Some((player, Area::Hotbar, index - 31usize)) + } + (Window::Grindstone { grindstone, player }, 0usize..=0usize) => { + Some((grindstone, Area::GrindstoneInput1, index - 0usize)) + } + (Window::Grindstone { grindstone, player }, 1usize..=1usize) => { + Some((grindstone, Area::GrindstoneInput2, index - 1usize)) + } + (Window::Grindstone { grindstone, player }, 2usize..=2usize) => { + Some((grindstone, Area::GrindstoneOutput, index - 2usize)) + } + (Window::Grindstone { grindstone, player }, 3usize..=29usize) => { + Some((player, Area::Storage, index - 3usize)) + } + (Window::Grindstone { grindstone, player }, 30usize..=38usize) => { + Some((player, Area::Hotbar, index - 30usize)) + } + (Window::Furnace { furnace, player }, 0usize..=0usize) => { + Some((furnace, Area::FurnaceIngredient, index - 0usize)) + } + (Window::Furnace { furnace, player }, 1usize..=1usize) => { + Some((furnace, Area::FurnaceFuel, index - 1usize)) + } + (Window::Furnace { furnace, player }, 2usize..=2usize) => { + Some((furnace, Area::FurnaceOutput, index - 2usize)) + } + (Window::Furnace { furnace, player }, 3usize..=29usize) => { + Some((player, Area::Storage, index - 3usize)) + } + (Window::Furnace { furnace, player }, 30usize..=38usize) => { + Some((player, Area::Hotbar, index - 30usize)) + } + (Window::Generic3X3 { block, player }, 0usize..=8usize) => { + Some((block, Area::Storage, index - 0usize)) + } + (Window::Generic3X3 { block, player }, 9usize..=35usize) => { + Some((player, Area::Storage, index - 9usize)) + } + (Window::Generic3X3 { block, player }, 36usize..=44usize) => { + Some((player, Area::Hotbar, index - 36usize)) + } + (Window::Smoker { smoker, player }, 0usize..=0usize) => { + Some((smoker, Area::FurnaceIngredient, index - 0usize)) + } + (Window::Smoker { smoker, player }, 1usize..=1usize) => { + Some((smoker, Area::FurnaceFuel, index - 1usize)) + } + (Window::Smoker { smoker, player }, 2usize..=2usize) => { + Some((smoker, Area::FurnaceOutput, index - 2usize)) + } + (Window::Smoker { smoker, player }, 3usize..=29usize) => { + Some((player, Area::Storage, index - 3usize)) + } + (Window::Smoker { smoker, player }, 30usize..=38usize) => { + Some((player, Area::Hotbar, index - 30usize)) + } + (Window::Anvil { anvil, player }, 0usize..=0usize) => { + Some((anvil, Area::AnvilInput1, index - 0usize)) + } + (Window::Anvil { anvil, player }, 1usize..=1usize) => { + Some((anvil, Area::AnvilInput2, index - 1usize)) + } + (Window::Anvil { anvil, player }, 2usize..=2usize) => { + Some((anvil, Area::AnvilOutput, index - 2usize)) + } + (Window::Anvil { anvil, player }, 3usize..=29usize) => { + Some((player, Area::Storage, index - 3usize)) + } + (Window::Anvil { anvil, player }, 30usize..=38usize) => { + Some((player, Area::Hotbar, index - 30usize)) + } + (Window::Lectern { lectern, player }, 0usize..=0usize) => { + Some((lectern, Area::LecternBook, index - 0usize)) + } + (Window::Lectern { lectern, player }, 1usize..=27usize) => { + Some((player, Area::Storage, index - 1usize)) + } + (Window::Lectern { lectern, player }, 28usize..=36usize) => { + Some((player, Area::Hotbar, index - 28usize)) + } + (Window::Generic9X4 { block, player }, 0usize..=35usize) => { + Some((block, Area::Storage, index - 0usize)) + } + (Window::Generic9X4 { block, player }, 36usize..=62usize) => { + Some((player, Area::Storage, index - 36usize)) + } + (Window::Generic9X4 { block, player }, 63usize..=71usize) => { + Some((player, Area::Hotbar, index - 63usize)) + } + ( + Window::ShulkerBox { + shulker_box, + player, + }, + 0usize..=26usize, + ) => Some((shulker_box, Area::Storage, index - 0usize)), + ( + Window::ShulkerBox { + shulker_box, + player, + }, + 27usize..=53usize, + ) => Some((player, Area::Storage, index - 27usize)), + ( + Window::ShulkerBox { + shulker_box, + player, + }, + 54usize..=62usize, + ) => Some((player, Area::Hotbar, index - 54usize)), + ( + Window::BrewingStand { + brewing_stand, + player, + }, + 0usize..=2usize, + ) => Some((brewing_stand, Area::BrewingBottle, index - 0usize)), + ( + Window::BrewingStand { + brewing_stand, + player, + }, + 3usize..=3usize, + ) => Some((brewing_stand, Area::BrewingIngredient, index - 3usize)), + ( + Window::BrewingStand { + brewing_stand, + player, + }, + 4usize..=4usize, + ) => Some((brewing_stand, Area::BrewingBlazePowder, index - 4usize)), + ( + Window::BrewingStand { + brewing_stand, + player, + }, + 5usize..=31usize, + ) => Some((player, Area::Storage, index - 5usize)), + ( + Window::BrewingStand { + brewing_stand, + player, + }, + 32usize..=40usize, + ) => Some((player, Area::Hotbar, index - 32usize)), + (Window::Generic9X5 { block, player }, 0usize..=44usize) => { + Some((block, Area::Storage, index - 0usize)) + } + (Window::Generic9X5 { block, player }, 45usize..=71usize) => { + Some((player, Area::Storage, index - 45usize)) + } + (Window::Generic9X5 { block, player }, 72usize..=80usize) => { + Some((player, Area::Hotbar, index - 72usize)) + } + (Window::Generic9X2 { block, player }, 0usize..=17usize) => { + Some((block, Area::Storage, index - 0usize)) + } + (Window::Generic9X2 { block, player }, 18usize..=44usize) => { + Some((player, Area::Storage, index - 18usize)) + } + (Window::Generic9X2 { block, player }, 45usize..=53usize) => { + Some((player, Area::Hotbar, index - 45usize)) + } + ( + Window::Stonecutter { + stonecutter, + player, + }, + 0usize..=0usize, + ) => Some((stonecutter, Area::StonecutterInput, index - 0usize)), + ( + Window::Stonecutter { + stonecutter, + player, + }, + 1usize..=1usize, + ) => Some((stonecutter, Area::StonecutterOutput, index - 1usize)), + ( + Window::Stonecutter { + stonecutter, + player, + }, + 2usize..=28usize, + ) => Some((player, Area::Storage, index - 2usize)), + ( + Window::Stonecutter { + stonecutter, + player, + }, + 29usize..=37usize, + ) => Some((player, Area::Hotbar, index - 29usize)), + ( + Window::Crafting { + crafting_table, + player, + }, + 0usize..=0usize, + ) => Some((crafting_table, Area::CraftingOutput, index - 0usize)), + ( + Window::Crafting { + crafting_table, + player, + }, + 1usize..=9usize, + ) => Some((crafting_table, Area::CraftingInput, index - 1usize)), + ( + Window::Crafting { + crafting_table, + player, + }, + 10usize..=36usize, + ) => Some((player, Area::Storage, index - 10usize)), + ( + Window::Crafting { + crafting_table, + player, + }, + 37usize..=45usize, + ) => Some((player, Area::Hotbar, index - 37usize)), + (Window::Player { player }, 0usize..=0usize) => { + Some((player, Area::CraftingOutput, index - 0usize)) + } + (Window::Player { player }, 1usize..=4usize) => { + Some((player, Area::CraftingInput, index - 1usize)) + } + (Window::Player { player }, 5usize..=5usize) => { + Some((player, Area::Helmet, index - 5usize)) + } + (Window::Player { player }, 6usize..=6usize) => { + Some((player, Area::Chestplate, index - 6usize)) + } + (Window::Player { player }, 7usize..=7usize) => { + Some((player, Area::Leggings, index - 7usize)) + } + (Window::Player { player }, 8usize..=8usize) => { + Some((player, Area::Boots, index - 8usize)) + } + (Window::Player { player }, 9usize..=35usize) => { + Some((player, Area::Storage, index - 9usize)) } + (Window::Player { player }, 36usize..=44usize) => { + Some((player, Area::Hotbar, index - 36usize)) + } + (Window::Player { player }, 45usize..=45usize) => { + Some((player, Area::Offhand, index - 45usize)) + } + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + 0usize..=0usize, + ) => Some((blast_furnace, Area::FurnaceIngredient, index - 0usize)), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + 1usize..=1usize, + ) => Some((blast_furnace, Area::FurnaceFuel, index - 1usize)), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + 2usize..=2usize, + ) => Some((blast_furnace, Area::FurnaceOutput, index - 2usize)), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + 3usize..=29usize, + ) => Some((player, Area::Storage, index - 3usize)), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + 30usize..=38usize, + ) => Some((player, Area::Hotbar, index - 30usize)), + (Window::Loom { loom, player }, 0usize..=0usize) => { + Some((loom, Area::LoomBanner, index - 0usize)) + } + (Window::Loom { loom, player }, 1usize..=1usize) => { + Some((loom, Area::LoomDye, index - 1usize)) + } + (Window::Loom { loom, player }, 2usize..=2usize) => { + Some((loom, Area::LoomPattern, index - 2usize)) + } + (Window::Loom { loom, player }, 3usize..=3usize) => { + Some((loom, Area::LoomOutput, index - 3usize)) + } + (Window::Loom { loom, player }, 4usize..=30usize) => { + Some((player, Area::Storage, index - 4usize)) + } + (Window::Loom { loom, player }, 31usize..=39usize) => { + Some((player, Area::Hotbar, index - 31usize)) + } + (Window::Generic9X1 { block, player }, 0usize..=8usize) => { + Some((block, Area::Storage, index - 0usize)) + } + (Window::Generic9X1 { block, player }, 9usize..=35usize) => { + Some((player, Area::Storage, index - 9usize)) + } + (Window::Generic9X1 { block, player }, 36usize..=44usize) => { + Some((player, Area::Hotbar, index - 36usize)) + } + ( + Window::Enchantment { + enchantment_table, + player, + }, + 0usize..=0usize, + ) => Some((enchantment_table, Area::EnchantmentItem, index - 0usize)), + ( + Window::Enchantment { + enchantment_table, + player, + }, + 1usize..=1usize, + ) => Some((enchantment_table, Area::EnchantmentLapis, index - 1usize)), + ( + Window::Enchantment { + enchantment_table, + player, + }, + 2usize..=28usize, + ) => Some((player, Area::Storage, index - 2usize)), + ( + Window::Enchantment { + enchantment_table, + player, + }, + 29usize..=37usize, + ) => Some((player, Area::Hotbar, index - 29usize)), + ( + Window::Cartography { + cartography_table, + player, + }, + 0usize..=0usize, + ) => Some((cartography_table, Area::CartographyMap, index - 0usize)), + ( + Window::Cartography { + cartography_table, + player, + }, + 1usize..=1usize, + ) => Some((cartography_table, Area::CartographyPaper, index - 1usize)), + ( + Window::Cartography { + cartography_table, + player, + }, + 2usize..=2usize, + ) => Some((cartography_table, Area::CartographyOutput, index - 2usize)), + ( + Window::Cartography { + cartography_table, + player, + }, + 3usize..=29usize, + ) => Some((player, Area::Storage, index - 3usize)), + ( + Window::Cartography { + cartography_table, + player, + }, + 30usize..=38usize, + ) => Some((player, Area::Hotbar, index - 30usize)), + (Window::Beacon { beacon, player }, 0usize..=0usize) => { + Some((beacon, Area::BeaconPayment, index - 0usize)) + } + (Window::Beacon { beacon, player }, 1usize..=27usize) => { + Some((player, Area::Storage, index - 1usize)) + } + (Window::Beacon { beacon, player }, 28usize..=36usize) => { + Some((player, Area::Hotbar, index - 28usize)) + } + _ => None, } } pub fn slot_to_index( @@ -673,481 +623,497 @@ impl Window { area: Area, slot: usize, ) -> Option { - match self { - Window::Player { player } => { - if area == Area::CraftingOutput && player.ptr_eq(inventory) { - Some(slot) - } else if area == Area::CraftingInput && player.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::Helmet && player.ptr_eq(inventory) { - Some(slot + 5) - } else if area == Area::Chestplate && player.ptr_eq(inventory) { - Some(slot + 6) - } else if area == Area::Leggings && player.ptr_eq(inventory) { - Some(slot + 7) - } else if area == Area::Boots && player.ptr_eq(inventory) { - Some(slot + 8) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 9) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 36) - } else if area == Area::Offhand && player.ptr_eq(inventory) { - Some(slot + 45) - } else { - None - } - } - Window::Generic9x1 { block, player } => { - if area == Area::Storage && block.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 9) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 36) - } else { - None - } - } - Window::Generic9x2 { block, player } => { - if area == Area::Storage && block.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 18) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 45) - } else { - None - } - } - Window::Generic9x3 { block, player } => { - if area == Area::Storage && block.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 27) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 54) - } else { - None - } - } - Window::Generic9x4 { block, player } => { - if area == Area::Storage && block.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 36) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 63) - } else { - None - } - } - Window::Generic9x5 { block, player } => { - if area == Area::Storage && block.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 45) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 72) - } else { - None - } - } - Window::Generic9x6 { - left_chest, - right_chest, - player, - } => { - if area == Area::Storage && left_chest.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && right_chest.ptr_eq(inventory) { - Some(slot + 27) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 54) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 81) - } else { - None - } - } - Window::Generic3x3 { block, player } => { - if area == Area::Storage && block.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 9) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 36) - } else { - None - } - } - Window::Crafting { - crafting_table, - player, - } => { - if area == Area::CraftingOutput && crafting_table.ptr_eq(inventory) { - Some(slot) - } else if area == Area::CraftingInput && crafting_table.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 10) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 37) - } else { - None - } - } - Window::Furnace { furnace, player } => { - if area == Area::FurnaceIngredient && furnace.ptr_eq(inventory) { - Some(slot) - } else if area == Area::FurnaceFuel && furnace.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::FurnaceOutput && furnace.ptr_eq(inventory) { - Some(slot + 2) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 3) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 30) - } else { - None - } - } - Window::BlastFurnace { - blast_furnace, - player, - } => { - if area == Area::FurnaceIngredient && blast_furnace.ptr_eq(inventory) { - Some(slot) - } else if area == Area::FurnaceFuel && blast_furnace.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::FurnaceOutput && blast_furnace.ptr_eq(inventory) { - Some(slot + 2) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 3) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 30) - } else { - None - } - } - Window::Smoker { smoker, player } => { - if area == Area::FurnaceIngredient && smoker.ptr_eq(inventory) { - Some(slot) - } else if area == Area::FurnaceFuel && smoker.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::FurnaceOutput && smoker.ptr_eq(inventory) { - Some(slot + 2) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 3) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 30) - } else { - None - } - } - Window::Enchantment { - enchantment_table, - player, - } => { - if area == Area::EnchantmentItem && enchantment_table.ptr_eq(inventory) { - Some(slot) - } else if area == Area::EnchantmentLapis && enchantment_table.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 2) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 29) - } else { - None - } - } - Window::BrewingStand { - brewing_stand, - player, - } => { - if area == Area::BrewingBottle && brewing_stand.ptr_eq(inventory) { - Some(slot) - } else if area == Area::BrewingIngredient && brewing_stand.ptr_eq(inventory) { - Some(slot + 3) - } else if area == Area::BrewingBlazePowder && brewing_stand.ptr_eq(inventory) { - Some(slot + 4) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 5) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 32) - } else { - None - } - } - Window::Beacon { beacon, player } => { - if area == Area::BeaconPayment && beacon.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 28) - } else { - None - } - } - Window::Anvil { anvil, player } => { - if area == Area::AnvilInput1 && anvil.ptr_eq(inventory) { - Some(slot) - } else if area == Area::AnvilInput2 && anvil.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::AnvilOutput && anvil.ptr_eq(inventory) { - Some(slot + 2) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 3) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 30) - } else { - None - } - } - Window::Hopper { hopper, player } => { - if area == Area::Storage && hopper.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 4) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 31) - } else { - None - } - } - Window::ShulkerBox { - shulker_box, - player, - } => { - if area == Area::Storage && shulker_box.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 27) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 54) - } else { - None - } - } - Window::Cartography { - cartography_table, - player, - } => { - if area == Area::CartographyMap && cartography_table.ptr_eq(inventory) { - Some(slot) - } else if area == Area::CartographyPaper && cartography_table.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::CartographyOutput && cartography_table.ptr_eq(inventory) { - Some(slot + 2) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 3) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 30) - } else { - None - } - } - Window::Grindstone { grindstone, player } => { - if area == Area::GrindstoneInput1 && grindstone.ptr_eq(inventory) { - Some(slot) - } else if area == Area::GrindstoneInput2 && grindstone.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::GrindstoneOutput && grindstone.ptr_eq(inventory) { - Some(slot + 2) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 3) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 30) - } else { - None - } - } - Window::Lectern { lectern, player } => { - if area == Area::LecternBook && lectern.ptr_eq(inventory) { - Some(slot) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 28) - } else { - None - } - } - Window::Loom { loom, player } => { - if area == Area::LoomBanner && loom.ptr_eq(inventory) { - Some(slot) - } else if area == Area::LoomDye && loom.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::LoomPattern && loom.ptr_eq(inventory) { - Some(slot + 2) - } else if area == Area::LoomOutput && loom.ptr_eq(inventory) { - Some(slot + 3) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 4) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 31) - } else { - None - } - } - Window::Stonecutter { - stonecutter, - player, - } => { - if area == Area::StonecutterInput && stonecutter.ptr_eq(inventory) { - Some(slot) - } else if area == Area::StonecutterOutput && stonecutter.ptr_eq(inventory) { - Some(slot + 1) - } else if area == Area::Storage && player.ptr_eq(inventory) { - Some(slot + 2) - } else if area == Area::Hotbar && player.ptr_eq(inventory) { - Some(slot + 29) - } else { - None - } + match (self, area) { + (Window::Generic9X3 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { + Some(slot + 0usize) } - } - } -} -#[allow(warnings)] -#[allow(clippy::all)] -impl Window { - /// Returns the `name` property of this `Window`. - pub fn name(&self) -> &'static str { - match self { - Window::Player { .. } => "player", - Window::Generic9x1 { .. } => "generic_9x1", - Window::Generic9x2 { .. } => "generic_9x2", - Window::Generic9x3 { .. } => "generic_9x3", - Window::Generic9x4 { .. } => "generic_9x4", - Window::Generic9x5 { .. } => "generic_9x5", - Window::Generic9x6 { .. } => "generic_9x6", - Window::Generic3x3 { .. } => "generic_3x3", - Window::Crafting { .. } => "crafting", - Window::Furnace { .. } => "furnace", - Window::BlastFurnace { .. } => "blast_furnace", - Window::Smoker { .. } => "smoker", - Window::Enchantment { .. } => "enchantment", - Window::BrewingStand { .. } => "brewing_stand", - Window::Beacon { .. } => "beacon", - Window::Anvil { .. } => "anvil", - Window::Hopper { .. } => "hopper", - Window::ShulkerBox { .. } => "shulker_box", - Window::Cartography { .. } => "cartography", - Window::Grindstone { .. } => "grindstone", - Window::Lectern { .. } => "lectern", - Window::Loom { .. } => "loom", - Window::Stonecutter { .. } => "stonecutter", + (Window::Generic9X3 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 27usize) + } + (Window::Generic9X3 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 54usize) + } + ( + Window::Generic9X6 { + left_chest, + right_chest, + player, + }, + Area::Storage, + ) if left_chest.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::Generic9X6 { + left_chest, + right_chest, + player, + }, + Area::Storage, + ) if right_chest.ptr_eq(inventory) => Some(slot + 27usize), + ( + Window::Generic9X6 { + left_chest, + right_chest, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 54usize), + ( + Window::Generic9X6 { + left_chest, + right_chest, + player, + }, + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 81usize), + (Window::Hopper { hopper, player }, Area::Storage) if hopper.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Hopper { hopper, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 4usize) + } + (Window::Hopper { hopper, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 31usize) + } + (Window::Grindstone { grindstone, player }, Area::GrindstoneInput1) + if grindstone.ptr_eq(inventory) => + { + Some(slot + 0usize) + } + (Window::Grindstone { grindstone, player }, Area::GrindstoneInput2) + if grindstone.ptr_eq(inventory) => + { + Some(slot + 1usize) + } + (Window::Grindstone { grindstone, player }, Area::GrindstoneOutput) + if grindstone.ptr_eq(inventory) => + { + Some(slot + 2usize) + } + (Window::Grindstone { grindstone, player }, Area::Storage) + if player.ptr_eq(inventory) => + { + Some(slot + 3usize) + } + (Window::Grindstone { grindstone, player }, Area::Hotbar) + if player.ptr_eq(inventory) => + { + Some(slot + 30usize) + } + (Window::Furnace { furnace, player }, Area::FurnaceIngredient) + if furnace.ptr_eq(inventory) => + { + Some(slot + 0usize) + } + (Window::Furnace { furnace, player }, Area::FurnaceFuel) + if furnace.ptr_eq(inventory) => + { + Some(slot + 1usize) + } + (Window::Furnace { furnace, player }, Area::FurnaceOutput) + if furnace.ptr_eq(inventory) => + { + Some(slot + 2usize) + } + (Window::Furnace { furnace, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 3usize) + } + (Window::Furnace { furnace, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 30usize) + } + (Window::Generic3X3 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Generic3X3 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 9usize) + } + (Window::Generic3X3 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 36usize) + } + (Window::Smoker { smoker, player }, Area::FurnaceIngredient) + if smoker.ptr_eq(inventory) => + { + Some(slot + 0usize) + } + (Window::Smoker { smoker, player }, Area::FurnaceFuel) if smoker.ptr_eq(inventory) => { + Some(slot + 1usize) + } + (Window::Smoker { smoker, player }, Area::FurnaceOutput) + if smoker.ptr_eq(inventory) => + { + Some(slot + 2usize) + } + (Window::Smoker { smoker, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 3usize) + } + (Window::Smoker { smoker, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 30usize) + } + (Window::Anvil { anvil, player }, Area::AnvilInput1) if anvil.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Anvil { anvil, player }, Area::AnvilInput2) if anvil.ptr_eq(inventory) => { + Some(slot + 1usize) + } + (Window::Anvil { anvil, player }, Area::AnvilOutput) if anvil.ptr_eq(inventory) => { + Some(slot + 2usize) + } + (Window::Anvil { anvil, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 3usize) + } + (Window::Anvil { anvil, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 30usize) + } + (Window::Lectern { lectern, player }, Area::LecternBook) + if lectern.ptr_eq(inventory) => + { + Some(slot + 0usize) + } + (Window::Lectern { lectern, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 1usize) + } + (Window::Lectern { lectern, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 28usize) + } + (Window::Generic9X4 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Generic9X4 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 36usize) + } + (Window::Generic9X4 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 63usize) + } + ( + Window::ShulkerBox { + shulker_box, + player, + }, + Area::Storage, + ) if shulker_box.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::ShulkerBox { + shulker_box, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 27usize), + ( + Window::ShulkerBox { + shulker_box, + player, + }, + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 54usize), + ( + Window::BrewingStand { + brewing_stand, + player, + }, + Area::BrewingBottle, + ) if brewing_stand.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::BrewingStand { + brewing_stand, + player, + }, + Area::BrewingIngredient, + ) if brewing_stand.ptr_eq(inventory) => Some(slot + 3usize), + ( + Window::BrewingStand { + brewing_stand, + player, + }, + Area::BrewingBlazePowder, + ) if brewing_stand.ptr_eq(inventory) => Some(slot + 4usize), + ( + Window::BrewingStand { + brewing_stand, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 5usize), + ( + Window::BrewingStand { + brewing_stand, + player, + }, + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 32usize), + (Window::Generic9X5 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Generic9X5 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 45usize) + } + (Window::Generic9X5 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 72usize) + } + (Window::Generic9X2 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Generic9X2 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 18usize) + } + (Window::Generic9X2 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 45usize) + } + ( + Window::Stonecutter { + stonecutter, + player, + }, + Area::StonecutterInput, + ) if stonecutter.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::Stonecutter { + stonecutter, + player, + }, + Area::StonecutterOutput, + ) if stonecutter.ptr_eq(inventory) => Some(slot + 1usize), + ( + Window::Stonecutter { + stonecutter, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 2usize), + ( + Window::Stonecutter { + stonecutter, + player, + }, + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 29usize), + ( + Window::Crafting { + crafting_table, + player, + }, + Area::CraftingOutput, + ) if crafting_table.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::Crafting { + crafting_table, + player, + }, + Area::CraftingInput, + ) if crafting_table.ptr_eq(inventory) => Some(slot + 1usize), + ( + Window::Crafting { + crafting_table, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 10usize), + ( + Window::Crafting { + crafting_table, + player, + }, + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 37usize), + (Window::Player { player }, Area::CraftingOutput) if player.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Player { player }, Area::CraftingInput) if player.ptr_eq(inventory) => { + Some(slot + 1usize) + } + (Window::Player { player }, Area::Helmet) if player.ptr_eq(inventory) => { + Some(slot + 5usize) + } + (Window::Player { player }, Area::Chestplate) if player.ptr_eq(inventory) => { + Some(slot + 6usize) + } + (Window::Player { player }, Area::Leggings) if player.ptr_eq(inventory) => { + Some(slot + 7usize) + } + (Window::Player { player }, Area::Boots) if player.ptr_eq(inventory) => { + Some(slot + 8usize) + } + (Window::Player { player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 9usize) + } + (Window::Player { player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 36usize) + } + (Window::Player { player }, Area::Offhand) if player.ptr_eq(inventory) => { + Some(slot + 45usize) + } + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + Area::FurnaceIngredient, + ) if blast_furnace.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + Area::FurnaceFuel, + ) if blast_furnace.ptr_eq(inventory) => Some(slot + 1usize), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + Area::FurnaceOutput, + ) if blast_furnace.ptr_eq(inventory) => Some(slot + 2usize), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 3usize), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 30usize), + (Window::Loom { loom, player }, Area::LoomBanner) if loom.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Loom { loom, player }, Area::LoomDye) if loom.ptr_eq(inventory) => { + Some(slot + 1usize) + } + (Window::Loom { loom, player }, Area::LoomPattern) if loom.ptr_eq(inventory) => { + Some(slot + 2usize) + } + (Window::Loom { loom, player }, Area::LoomOutput) if loom.ptr_eq(inventory) => { + Some(slot + 3usize) + } + (Window::Loom { loom, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 4usize) + } + (Window::Loom { loom, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 31usize) + } + (Window::Generic9X1 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Generic9X1 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 9usize) + } + (Window::Generic9X1 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 36usize) + } + ( + Window::Enchantment { + enchantment_table, + player, + }, + Area::EnchantmentItem, + ) if enchantment_table.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::Enchantment { + enchantment_table, + player, + }, + Area::EnchantmentLapis, + ) if enchantment_table.ptr_eq(inventory) => Some(slot + 1usize), + ( + Window::Enchantment { + enchantment_table, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 2usize), + ( + Window::Enchantment { + enchantment_table, + player, + }, + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 29usize), + ( + Window::Cartography { + cartography_table, + player, + }, + Area::CartographyMap, + ) if cartography_table.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::Cartography { + cartography_table, + player, + }, + Area::CartographyPaper, + ) if cartography_table.ptr_eq(inventory) => Some(slot + 1usize), + ( + Window::Cartography { + cartography_table, + player, + }, + Area::CartographyOutput, + ) if cartography_table.ptr_eq(inventory) => Some(slot + 2usize), + ( + Window::Cartography { + cartography_table, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 3usize), + ( + Window::Cartography { + cartography_table, + player, + }, + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 30usize), + (Window::Beacon { beacon, player }, Area::BeaconPayment) + if beacon.ptr_eq(inventory) => + { + Some(slot + 0usize) + } + (Window::Beacon { beacon, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 1usize) + } + (Window::Beacon { beacon, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 28usize) + } + _ => None, } } } #[derive(Debug, Clone)] pub enum InventoryBacking { + CraftingTable { + crafting_input: [T; 9usize], + crafting_output: [T; 1usize], + }, Player { - crafting_input: [T; 4], - crafting_output: [T; 1], - helmet: [T; 1], - chestplate: [T; 1], - leggings: [T; 1], - boots: [T; 1], - storage: [T; 27], - hotbar: [T; 9], - offhand: [T; 1], + crafting_input: [T; 4usize], + crafting_output: [T; 1usize], + helmet: [T; 1usize], + chestplate: [T; 1usize], + leggings: [T; 1usize], + boots: [T; 1usize], + storage: [T; 27usize], + hotbar: [T; 9usize], + offhand: [T; 1usize], }, Chest { - storage: [T; 27], - }, - CraftingTable { - crafting_input: [T; 9], - crafting_output: [T; 1], + storage: [T; 27usize], }, Furnace { - furnace_ingredient: [T; 1], - furnace_fuel: [T; 1], - furnace_output: [T; 1], + furnace_ingredient: [T; 1usize], + furnace_fuel: [T; 1usize], + furnace_output: [T; 1usize], }, } impl InventoryBacking { - pub fn area_slice(&self, area: Area) -> Option<&[T]> { - match self { - InventoryBacking::Player { - crafting_input, - crafting_output, - helmet, - chestplate, - leggings, - boots, - storage, - hotbar, - offhand, - } => match area { - Area::CraftingInput => Some(crafting_input.as_ref()), - Area::CraftingOutput => Some(crafting_output.as_ref()), - Area::Helmet => Some(helmet.as_ref()), - Area::Chestplate => Some(chestplate.as_ref()), - Area::Leggings => Some(leggings.as_ref()), - Area::Boots => Some(boots.as_ref()), - Area::Storage => Some(storage.as_ref()), - Area::Hotbar => Some(hotbar.as_ref()), - Area::Offhand => Some(offhand.as_ref()), - _ => None, - }, - InventoryBacking::Chest { storage } => match area { - Area::Storage => Some(storage.as_ref()), - _ => None, - }, - InventoryBacking::CraftingTable { - crafting_input, - crafting_output, - } => match area { - Area::CraftingInput => Some(crafting_input.as_ref()), - Area::CraftingOutput => Some(crafting_output.as_ref()), - _ => None, - }, - InventoryBacking::Furnace { - furnace_ingredient, - furnace_fuel, - furnace_output, - } => match area { - Area::FurnaceIngredient => Some(furnace_ingredient.as_ref()), - Area::FurnaceFuel => Some(furnace_fuel.as_ref()), - Area::FurnaceOutput => Some(furnace_output.as_ref()), - _ => None, - }, - } - } - pub fn areas(&self) -> &'static [Area] { - match self { - InventoryBacking::Player { .. } => { - static AREAS: [Area; 9] = [ - Area::CraftingInput, - Area::CraftingOutput, - Area::Helmet, - Area::Chestplate, - Area::Leggings, - Area::Boots, - Area::Storage, - Area::Hotbar, - Area::Offhand, - ]; - &AREAS - } - InventoryBacking::Chest { .. } => { - static AREAS: [Area; 1] = [Area::Storage]; - &AREAS - } - InventoryBacking::CraftingTable { .. } => { - static AREAS: [Area; 2] = [Area::CraftingInput, Area::CraftingOutput]; - &AREAS - } - InventoryBacking::Furnace { .. } => { - static AREAS: [Area; 3] = [ - Area::FurnaceIngredient, - Area::FurnaceFuel, - Area::FurnaceOutput, - ]; - &AREAS - } + pub fn crafting_table() -> Self + where + T: Default, + { + InventoryBacking::CraftingTable { + crafting_input: Default::default(), + crafting_output: Default::default(), } } pub fn player() -> Self @@ -1174,15 +1140,6 @@ impl InventoryBacking { storage: Default::default(), } } - pub fn crafting_table() -> Self - where - T: Default, - { - InventoryBacking::CraftingTable { - crafting_input: Default::default(), - crafting_output: Default::default(), - } - } pub fn furnace() -> Self where T: Default, @@ -1193,8 +1150,205 @@ impl InventoryBacking { furnace_output: Default::default(), } } + pub fn area_slice(&self, area: Area) -> Option<&[T]> { + match (self, area) { + ( + InventoryBacking::CraftingTable { + crafting_input, + crafting_output, + }, + Area::CraftingInput, + ) => Some(crafting_input), + ( + InventoryBacking::CraftingTable { + crafting_input, + crafting_output, + }, + Area::CraftingOutput, + ) => Some(crafting_output), + ( + InventoryBacking::Player { + crafting_input, + crafting_output, + helmet, + chestplate, + leggings, + boots, + storage, + hotbar, + offhand, + }, + Area::CraftingInput, + ) => Some(crafting_input), + ( + InventoryBacking::Player { + crafting_input, + crafting_output, + helmet, + chestplate, + leggings, + boots, + storage, + hotbar, + offhand, + }, + Area::CraftingOutput, + ) => Some(crafting_output), + ( + InventoryBacking::Player { + crafting_input, + crafting_output, + helmet, + chestplate, + leggings, + boots, + storage, + hotbar, + offhand, + }, + Area::Helmet, + ) => Some(helmet), + ( + InventoryBacking::Player { + crafting_input, + crafting_output, + helmet, + chestplate, + leggings, + boots, + storage, + hotbar, + offhand, + }, + Area::Chestplate, + ) => Some(chestplate), + ( + InventoryBacking::Player { + crafting_input, + crafting_output, + helmet, + chestplate, + leggings, + boots, + storage, + hotbar, + offhand, + }, + Area::Leggings, + ) => Some(leggings), + ( + InventoryBacking::Player { + crafting_input, + crafting_output, + helmet, + chestplate, + leggings, + boots, + storage, + hotbar, + offhand, + }, + Area::Boots, + ) => Some(boots), + ( + InventoryBacking::Player { + crafting_input, + crafting_output, + helmet, + chestplate, + leggings, + boots, + storage, + hotbar, + offhand, + }, + Area::Storage, + ) => Some(storage), + ( + InventoryBacking::Player { + crafting_input, + crafting_output, + helmet, + chestplate, + leggings, + boots, + storage, + hotbar, + offhand, + }, + Area::Hotbar, + ) => Some(hotbar), + ( + InventoryBacking::Player { + crafting_input, + crafting_output, + helmet, + chestplate, + leggings, + boots, + storage, + hotbar, + offhand, + }, + Area::Offhand, + ) => Some(offhand), + (InventoryBacking::Chest { storage }, Area::Storage) => Some(storage), + ( + InventoryBacking::Furnace { + furnace_ingredient, + furnace_fuel, + furnace_output, + }, + Area::FurnaceIngredient, + ) => Some(furnace_ingredient), + ( + InventoryBacking::Furnace { + furnace_ingredient, + furnace_fuel, + furnace_output, + }, + Area::FurnaceFuel, + ) => Some(furnace_fuel), + ( + InventoryBacking::Furnace { + furnace_ingredient, + furnace_fuel, + furnace_output, + }, + Area::FurnaceOutput, + ) => Some(furnace_output), + _ => None, + } + } + pub fn areas(&self) -> &'static [Area] { + match self { + InventoryBacking::CraftingTable { .. } => &[Area::CraftingInput, Area::CraftingOutput], + InventoryBacking::Player { .. } => &[ + Area::CraftingInput, + Area::CraftingOutput, + Area::Helmet, + Area::Chestplate, + Area::Leggings, + Area::Boots, + Area::Storage, + Area::Hotbar, + Area::Offhand, + ], + InventoryBacking::Chest { .. } => &[Area::Storage], + InventoryBacking::Furnace { .. } => &[ + Area::FurnaceIngredient, + Area::FurnaceFuel, + Area::FurnaceOutput, + ], + } + } } impl crate::Inventory { + pub fn crafting_table() -> Self { + Self { + backing: std::sync::Arc::new(InventoryBacking::crafting_table()), + } + } pub fn player() -> Self { Self { backing: std::sync::Arc::new(InventoryBacking::player()), @@ -1205,11 +1359,6 @@ impl crate::Inventory { backing: std::sync::Arc::new(InventoryBacking::chest()), } } - pub fn crafting_table() -> Self { - Self { - backing: std::sync::Arc::new(InventoryBacking::crafting_table()), - } - } pub fn furnace() -> Self { Self { backing: std::sync::Arc::new(InventoryBacking::furnace()), diff --git a/libcraft/inventory/src/lib.rs b/libcraft/inventory/src/lib.rs index a2abc3cb6..0c771cdd1 100644 --- a/libcraft/inventory/src/lib.rs +++ b/libcraft/inventory/src/lib.rs @@ -1,3 +1,5 @@ +#![allow(unused_variables)] +#![allow(clippy::identity_op)] mod inventory; use parking_lot::{Mutex, MutexGuard}; diff --git a/libcraft/items/Cargo.toml b/libcraft/items/Cargo.toml index ea9e1fd38..4774360c4 100644 --- a/libcraft/items/Cargo.toml +++ b/libcraft/items/Cargo.toml @@ -2,7 +2,7 @@ name = "libcraft-items" version = "0.1.0" authors = ["Kalle Kankaanpää", "Pau Machetti "] -edition = "2018" +edition = "2021" [dependencies] serde = { version = "1", features = ["derive"] } diff --git a/libcraft/items/src/item.rs b/libcraft/items/src/item.rs index c29fd8b62..fc4a09ee7 100644 --- a/libcraft/items/src/item.rs +++ b/libcraft/items/src/item.rs @@ -1,9 +1,18 @@ // This file is @generated. Please do not edit. -use serde::{Deserialize, Serialize}; -#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Serialize, Deserialize)] +#[derive( + Copy, + Clone, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + serde :: Serialize, + serde :: Deserialize, +)] #[serde(try_from = "String", into = "&'static str")] pub enum Item { - Air, Stone, Granite, PolishedGranite, @@ -11,10 +20,17 @@ pub enum Item { PolishedDiorite, Andesite, PolishedAndesite, + Deepslate, + CobbledDeepslate, + PolishedDeepslate, + Calcite, + Tuff, + DripstoneBlock, GrassBlock, Dirt, CoarseDirt, Podzol, + RootedDirt, CrimsonNylium, WarpedNylium, Cobblestone, @@ -36,10 +52,67 @@ pub enum Item { Sand, RedSand, Gravel, - GoldOre, - IronOre, CoalOre, + DeepslateCoalOre, + IronOre, + DeepslateIronOre, + CopperOre, + DeepslateCopperOre, + GoldOre, + DeepslateGoldOre, + RedstoneOre, + DeepslateRedstoneOre, + EmeraldOre, + DeepslateEmeraldOre, + LapisOre, + DeepslateLapisOre, + DiamondOre, + DeepslateDiamondOre, NetherGoldOre, + NetherQuartzOre, + AncientDebris, + CoalBlock, + RawIronBlock, + RawCopperBlock, + RawGoldBlock, + AmethystBlock, + BuddingAmethyst, + IronBlock, + CopperBlock, + GoldBlock, + DiamondBlock, + NetheriteBlock, + ExposedCopper, + WeatheredCopper, + OxidizedCopper, + CutCopper, + ExposedCutCopper, + WeatheredCutCopper, + OxidizedCutCopper, + CutCopperStairs, + ExposedCutCopperStairs, + WeatheredCutCopperStairs, + OxidizedCutCopperStairs, + CutCopperSlab, + ExposedCutCopperSlab, + WeatheredCutCopperSlab, + OxidizedCutCopperSlab, + WaxedCopperBlock, + WaxedExposedCopper, + WaxedWeatheredCopper, + WaxedOxidizedCopper, + WaxedCutCopper, + WaxedExposedCutCopper, + WaxedWeatheredCutCopper, + WaxedOxidizedCutCopper, + WaxedCutCopperStairs, + WaxedExposedCutCopperStairs, + WaxedWeatheredCutCopperStairs, + WaxedOxidizedCutCopperStairs, + WaxedCutCopperSlab, + WaxedExposedCutCopperSlab, + WaxedWeatheredCutCopperSlab, + WaxedOxidizedCutCopperSlab, OakLog, SpruceLog, BirchLog, @@ -78,26 +151,24 @@ pub enum Item { JungleLeaves, AcaciaLeaves, DarkOakLeaves, + AzaleaLeaves, + FloweringAzaleaLeaves, Sponge, WetSponge, Glass, - LapisOre, + TintedGlass, LapisBlock, - Dispenser, Sandstone, ChiseledSandstone, CutSandstone, - NoteBlock, - PoweredRail, - DetectorRail, - StickyPiston, Cobweb, Grass, Fern, + Azalea, + FloweringAzalea, DeadBush, Seagrass, SeaPickle, - Piston, WhiteWool, OrangeWool, MagentaWool, @@ -127,6 +198,7 @@ pub enum Item { Cornflower, LilyOfTheValley, WitherRose, + SporeBlossom, BrownMushroom, RedMushroom, CrimsonFungus, @@ -138,9 +210,12 @@ pub enum Item { TwistingVines, SugarCane, Kelp, + MossCarpet, + MossBlock, + HangingRoots, + BigDripleaf, + SmallDripleaf, Bamboo, - GoldBlock, - IronBlock, OakSlab, SpruceSlab, BirchSlab, @@ -170,7 +245,6 @@ pub enum Item { SmoothSandstone, SmoothStone, Bricks, - Tnt, Bookshelf, MossyCobblestone, Obsidian, @@ -184,27 +258,11 @@ pub enum Item { Spawner, OakStairs, Chest, - DiamondOre, - DiamondBlock, CraftingTable, Farmland, Furnace, Ladder, - Rail, CobblestoneStairs, - Lever, - StonePressurePlate, - OakPressurePlate, - SprucePressurePlate, - BirchPressurePlate, - JunglePressurePlate, - AcaciaPressurePlate, - DarkOakPressurePlate, - CrimsonPressurePlate, - WarpedPressurePlate, - PolishedBlackstonePressurePlate, - RedstoneOre, - RedstoneTorch, Snow, Ice, SnowBlock, @@ -221,32 +279,31 @@ pub enum Item { WarpedFence, Pumpkin, CarvedPumpkin, + JackOLantern, Netherrack, SoulSand, SoulSoil, Basalt, PolishedBasalt, + SmoothBasalt, SoulTorch, Glowstone, - JackOLantern, - OakTrapdoor, - SpruceTrapdoor, - BirchTrapdoor, - JungleTrapdoor, - AcaciaTrapdoor, - DarkOakTrapdoor, - CrimsonTrapdoor, - WarpedTrapdoor, InfestedStone, InfestedCobblestone, InfestedStoneBricks, InfestedMossyStoneBricks, InfestedCrackedStoneBricks, InfestedChiseledStoneBricks, + InfestedDeepslate, StoneBricks, MossyStoneBricks, CrackedStoneBricks, ChiseledStoneBricks, + DeepslateBricks, + CrackedDeepslateBricks, + DeepslateTiles, + CrackedDeepslateTiles, + ChiseledDeepslate, BrownMushroomBlock, RedMushroomBlock, MushroomStem, @@ -255,14 +312,7 @@ pub enum Item { GlassPane, Melon, Vine, - OakFenceGate, - SpruceFenceGate, - BirchFenceGate, - JungleFenceGate, - AcaciaFenceGate, - DarkOakFenceGate, - CrimsonFenceGate, - WarpedFenceGate, + GlowLichen, BrickStairs, StoneBrickStairs, Mycelium, @@ -277,11 +327,8 @@ pub enum Item { EndStone, EndStoneBricks, DragonEgg, - RedstoneLamp, SandstoneStairs, - EmeraldOre, EnderChest, - TripwireHook, EmeraldBlock, SpruceStairs, BirchStairs, @@ -307,33 +354,18 @@ pub enum Item { BlackstoneWall, PolishedBlackstoneWall, PolishedBlackstoneBrickWall, - StoneButton, - OakButton, - SpruceButton, - BirchButton, - JungleButton, - AcaciaButton, - DarkOakButton, - CrimsonButton, - WarpedButton, - PolishedBlackstoneButton, + CobbledDeepslateWall, + PolishedDeepslateWall, + DeepslateBrickWall, + DeepslateTileWall, Anvil, ChippedAnvil, DamagedAnvil, - TrappedChest, - LightWeightedPressurePlate, - HeavyWeightedPressurePlate, - DaylightDetector, - RedstoneBlock, - NetherQuartzOre, - Hopper, ChiseledQuartzBlock, QuartzBlock, QuartzBricks, QuartzPillar, QuartzStairs, - ActivatorRail, - Dropper, WhiteTerracotta, OrangeTerracotta, MagentaTerracotta, @@ -351,7 +383,7 @@ pub enum Item { RedTerracotta, BlackTerracotta, Barrier, - IronTrapdoor, + Light, HayBlock, WhiteCarpet, OrangeCarpet, @@ -370,12 +402,10 @@ pub enum Item { RedCarpet, BlackCarpet, Terracotta, - CoalBlock, PackedIce, AcaciaStairs, DarkOakStairs, - SlimeBlock, - GrassPath, + DirtPath, Sunflower, Lilac, RoseBush, @@ -433,7 +463,6 @@ pub enum Item { RedNetherBricks, BoneBlock, StructureVoid, - Observer, ShulkerBox, WhiteShulkerBox, OrangeShulkerBox, @@ -546,6 +575,10 @@ pub enum Item { RedNetherBrickStairs, PolishedAndesiteStairs, DioriteStairs, + CobbledDeepslateStairs, + PolishedDeepslateStairs, + DeepslateBrickStairs, + DeepslateTileStairs, PolishedGraniteSlab, SmoothRedSandstoneSlab, MossyStoneBrickSlab, @@ -559,7 +592,57 @@ pub enum Item { RedNetherBrickSlab, PolishedAndesiteSlab, DioriteSlab, + CobbledDeepslateSlab, + PolishedDeepslateSlab, + DeepslateBrickSlab, + DeepslateTileSlab, Scaffolding, + Redstone, + RedstoneTorch, + RedstoneBlock, + Repeater, + Comparator, + Piston, + StickyPiston, + SlimeBlock, + HoneyBlock, + Observer, + Hopper, + Dispenser, + Dropper, + Lectern, + Target, + Lever, + LightningRod, + DaylightDetector, + SculkSensor, + TripwireHook, + TrappedChest, + Tnt, + RedstoneLamp, + NoteBlock, + StoneButton, + PolishedBlackstoneButton, + OakButton, + SpruceButton, + BirchButton, + JungleButton, + AcaciaButton, + DarkOakButton, + CrimsonButton, + WarpedButton, + StonePressurePlate, + PolishedBlackstonePressurePlate, + LightWeightedPressurePlate, + HeavyWeightedPressurePlate, + OakPressurePlate, + SprucePressurePlate, + BirchPressurePlate, + JunglePressurePlate, + AcaciaPressurePlate, + DarkOakPressurePlate, + CrimsonPressurePlate, + WarpedPressurePlate, IronDoor, OakDoor, SpruceDoor, @@ -569,8 +652,42 @@ pub enum Item { DarkOakDoor, CrimsonDoor, WarpedDoor, - Repeater, - Comparator, + IronTrapdoor, + OakTrapdoor, + SpruceTrapdoor, + BirchTrapdoor, + JungleTrapdoor, + AcaciaTrapdoor, + DarkOakTrapdoor, + CrimsonTrapdoor, + WarpedTrapdoor, + OakFenceGate, + SpruceFenceGate, + BirchFenceGate, + JungleFenceGate, + AcaciaFenceGate, + DarkOakFenceGate, + CrimsonFenceGate, + WarpedFenceGate, + PoweredRail, + DetectorRail, + Rail, + ActivatorRail, + Saddle, + Minecart, + ChestMinecart, + FurnaceMinecart, + TntMinecart, + HopperMinecart, + CarrotOnAStick, + WarpedFungusOnAStick, + Elytra, + OakBoat, + SpruceBoat, + BirchBoat, + JungleBoat, + AcaciaBoat, + DarkOakBoat, StructureBlock, Jigsaw, TurtleHelmet, @@ -582,7 +699,15 @@ pub enum Item { Coal, Charcoal, Diamond, + Emerald, + LapisLazuli, + Quartz, + AmethystShard, + RawIron, IronIngot, + RawCopper, + CopperIngot, + RawGold, GoldIngot, NetheriteIngot, NetheriteScrap, @@ -666,29 +791,27 @@ pub enum Item { Bucket, WaterBucket, LavaBucket, - Minecart, - Saddle, - Redstone, + PowderSnowBucket, Snowball, - OakBoat, Leather, MilkBucket, PufferfishBucket, SalmonBucket, CodBucket, TropicalFishBucket, + AxolotlBucket, Brick, ClayBall, DriedKelpBlock, Paper, Book, SlimeBall, - ChestMinecart, - FurnaceMinecart, Egg, Compass, + Bundle, FishingRod, Clock, + Spyglass, GlowstoneDust, Cod, Salmon, @@ -697,8 +820,8 @@ pub enum Item { CookedCod, CookedSalmon, InkSac, + GlowInkSac, CocoaBeans, - LapisLazuli, WhiteDye, OrangeDye, MagentaDye, @@ -762,6 +885,7 @@ pub enum Item { Cauldron, EnderEye, GlisteringMelonSlice, + AxolotlSpawnEgg, BatSpawnEgg, BeeSpawnEgg, BlazeSpawnEgg, @@ -780,6 +904,8 @@ pub enum Item { EvokerSpawnEgg, FoxSpawnEgg, GhastSpawnEgg, + GlowSquidSpawnEgg, + GoatSpawnEgg, GuardianSpawnEgg, HoglinSpawnEgg, HorseSpawnEgg, @@ -830,8 +956,8 @@ pub enum Item { FireCharge, WritableBook, WrittenBook, - Emerald, ItemFrame, + GlowItemFrame, FlowerPot, Carrot, Potato, @@ -845,17 +971,12 @@ pub enum Item { ZombieHead, CreeperHead, DragonHead, - CarrotOnAStick, - WarpedFungusOnAStick, NetherStar, PumpkinPie, FireworkRocket, FireworkStar, EnchantedBook, NetherBrick, - Quartz, - TntMinecart, - HopperMinecart, PrismarineShard, PrismarineCrystals, Rabbit, @@ -901,12 +1022,6 @@ pub enum Item { TippedArrow, LingeringPotion, Shield, - Elytra, - SpruceBoat, - BirchBoat, - JungleBoat, - AcaciaBoat, - DarkOakBoat, TotemOfUndying, ShulkerShell, IronNugget, @@ -924,6 +1039,7 @@ pub enum Item { MusicDiscWard, MusicDisc11, MusicDiscWait, + MusicDiscOtherside, MusicDiscPigstep, Trident, PhantomMembrane, @@ -945,13 +1061,13 @@ pub enum Item { CartographyTable, FletchingTable, Grindstone, - Lectern, SmithingTable, Stonecutter, Bell, Lantern, SoulLantern, SweetBerries, + GlowBerries, Campfire, SoulCampfire, Shroomlight, @@ -959,12 +1075,8 @@ pub enum Item { BeeNest, Beehive, HoneyBottle, - HoneyBlock, HoneycombBlock, Lodestone, - NetheriteBlock, - AncientDebris, - Target, CryingObsidian, Blackstone, BlackstoneSlab, @@ -979,6929 +1091,13340 @@ pub enum Item { PolishedBlackstoneBrickStairs, CrackedPolishedBlackstoneBricks, RespawnAnchor, + Candle, + WhiteCandle, + OrangeCandle, + MagentaCandle, + LightBlueCandle, + YellowCandle, + LimeCandle, + PinkCandle, + GrayCandle, + LightGrayCandle, + CyanCandle, + PurpleCandle, + BlueCandle, + BrownCandle, + GreenCandle, + RedCandle, + BlackCandle, + SmallAmethystBud, + MediumAmethystBud, + LargeAmethystBud, + AmethystCluster, + PointedDripstone, +} +impl Item { + #[inline] + pub fn values() -> &'static [Item] { + use Item::*; + &[ + Stone, + Granite, + PolishedGranite, + Diorite, + PolishedDiorite, + Andesite, + PolishedAndesite, + Deepslate, + CobbledDeepslate, + PolishedDeepslate, + Calcite, + Tuff, + DripstoneBlock, + GrassBlock, + Dirt, + CoarseDirt, + Podzol, + RootedDirt, + CrimsonNylium, + WarpedNylium, + Cobblestone, + OakPlanks, + SprucePlanks, + BirchPlanks, + JunglePlanks, + AcaciaPlanks, + DarkOakPlanks, + CrimsonPlanks, + WarpedPlanks, + OakSapling, + SpruceSapling, + BirchSapling, + JungleSapling, + AcaciaSapling, + DarkOakSapling, + Bedrock, + Sand, + RedSand, + Gravel, + CoalOre, + DeepslateCoalOre, + IronOre, + DeepslateIronOre, + CopperOre, + DeepslateCopperOre, + GoldOre, + DeepslateGoldOre, + RedstoneOre, + DeepslateRedstoneOre, + EmeraldOre, + DeepslateEmeraldOre, + LapisOre, + DeepslateLapisOre, + DiamondOre, + DeepslateDiamondOre, + NetherGoldOre, + NetherQuartzOre, + AncientDebris, + CoalBlock, + RawIronBlock, + RawCopperBlock, + RawGoldBlock, + AmethystBlock, + BuddingAmethyst, + IronBlock, + CopperBlock, + GoldBlock, + DiamondBlock, + NetheriteBlock, + ExposedCopper, + WeatheredCopper, + OxidizedCopper, + CutCopper, + ExposedCutCopper, + WeatheredCutCopper, + OxidizedCutCopper, + CutCopperStairs, + ExposedCutCopperStairs, + WeatheredCutCopperStairs, + OxidizedCutCopperStairs, + CutCopperSlab, + ExposedCutCopperSlab, + WeatheredCutCopperSlab, + OxidizedCutCopperSlab, + WaxedCopperBlock, + WaxedExposedCopper, + WaxedWeatheredCopper, + WaxedOxidizedCopper, + WaxedCutCopper, + WaxedExposedCutCopper, + WaxedWeatheredCutCopper, + WaxedOxidizedCutCopper, + WaxedCutCopperStairs, + WaxedExposedCutCopperStairs, + WaxedWeatheredCutCopperStairs, + WaxedOxidizedCutCopperStairs, + WaxedCutCopperSlab, + WaxedExposedCutCopperSlab, + WaxedWeatheredCutCopperSlab, + WaxedOxidizedCutCopperSlab, + OakLog, + SpruceLog, + BirchLog, + JungleLog, + AcaciaLog, + DarkOakLog, + CrimsonStem, + WarpedStem, + StrippedOakLog, + StrippedSpruceLog, + StrippedBirchLog, + StrippedJungleLog, + StrippedAcaciaLog, + StrippedDarkOakLog, + StrippedCrimsonStem, + StrippedWarpedStem, + StrippedOakWood, + StrippedSpruceWood, + StrippedBirchWood, + StrippedJungleWood, + StrippedAcaciaWood, + StrippedDarkOakWood, + StrippedCrimsonHyphae, + StrippedWarpedHyphae, + OakWood, + SpruceWood, + BirchWood, + JungleWood, + AcaciaWood, + DarkOakWood, + CrimsonHyphae, + WarpedHyphae, + OakLeaves, + SpruceLeaves, + BirchLeaves, + JungleLeaves, + AcaciaLeaves, + DarkOakLeaves, + AzaleaLeaves, + FloweringAzaleaLeaves, + Sponge, + WetSponge, + Glass, + TintedGlass, + LapisBlock, + Sandstone, + ChiseledSandstone, + CutSandstone, + Cobweb, + Grass, + Fern, + Azalea, + FloweringAzalea, + DeadBush, + Seagrass, + SeaPickle, + WhiteWool, + OrangeWool, + MagentaWool, + LightBlueWool, + YellowWool, + LimeWool, + PinkWool, + GrayWool, + LightGrayWool, + CyanWool, + PurpleWool, + BlueWool, + BrownWool, + GreenWool, + RedWool, + BlackWool, + Dandelion, + Poppy, + BlueOrchid, + Allium, + AzureBluet, + RedTulip, + OrangeTulip, + WhiteTulip, + PinkTulip, + OxeyeDaisy, + Cornflower, + LilyOfTheValley, + WitherRose, + SporeBlossom, + BrownMushroom, + RedMushroom, + CrimsonFungus, + WarpedFungus, + CrimsonRoots, + WarpedRoots, + NetherSprouts, + WeepingVines, + TwistingVines, + SugarCane, + Kelp, + MossCarpet, + MossBlock, + HangingRoots, + BigDripleaf, + SmallDripleaf, + Bamboo, + OakSlab, + SpruceSlab, + BirchSlab, + JungleSlab, + AcaciaSlab, + DarkOakSlab, + CrimsonSlab, + WarpedSlab, + StoneSlab, + SmoothStoneSlab, + SandstoneSlab, + CutSandstoneSlab, + PetrifiedOakSlab, + CobblestoneSlab, + BrickSlab, + StoneBrickSlab, + NetherBrickSlab, + QuartzSlab, + RedSandstoneSlab, + CutRedSandstoneSlab, + PurpurSlab, + PrismarineSlab, + PrismarineBrickSlab, + DarkPrismarineSlab, + SmoothQuartz, + SmoothRedSandstone, + SmoothSandstone, + SmoothStone, + Bricks, + Bookshelf, + MossyCobblestone, + Obsidian, + Torch, + EndRod, + ChorusPlant, + ChorusFlower, + PurpurBlock, + PurpurPillar, + PurpurStairs, + Spawner, + OakStairs, + Chest, + CraftingTable, + Farmland, + Furnace, + Ladder, + CobblestoneStairs, + Snow, + Ice, + SnowBlock, + Cactus, + Clay, + Jukebox, + OakFence, + SpruceFence, + BirchFence, + JungleFence, + AcaciaFence, + DarkOakFence, + CrimsonFence, + WarpedFence, + Pumpkin, + CarvedPumpkin, + JackOLantern, + Netherrack, + SoulSand, + SoulSoil, + Basalt, + PolishedBasalt, + SmoothBasalt, + SoulTorch, + Glowstone, + InfestedStone, + InfestedCobblestone, + InfestedStoneBricks, + InfestedMossyStoneBricks, + InfestedCrackedStoneBricks, + InfestedChiseledStoneBricks, + InfestedDeepslate, + StoneBricks, + MossyStoneBricks, + CrackedStoneBricks, + ChiseledStoneBricks, + DeepslateBricks, + CrackedDeepslateBricks, + DeepslateTiles, + CrackedDeepslateTiles, + ChiseledDeepslate, + BrownMushroomBlock, + RedMushroomBlock, + MushroomStem, + IronBars, + Chain, + GlassPane, + Melon, + Vine, + GlowLichen, + BrickStairs, + StoneBrickStairs, + Mycelium, + LilyPad, + NetherBricks, + CrackedNetherBricks, + ChiseledNetherBricks, + NetherBrickFence, + NetherBrickStairs, + EnchantingTable, + EndPortalFrame, + EndStone, + EndStoneBricks, + DragonEgg, + SandstoneStairs, + EnderChest, + EmeraldBlock, + SpruceStairs, + BirchStairs, + JungleStairs, + CrimsonStairs, + WarpedStairs, + CommandBlock, + Beacon, + CobblestoneWall, + MossyCobblestoneWall, + BrickWall, + PrismarineWall, + RedSandstoneWall, + MossyStoneBrickWall, + GraniteWall, + StoneBrickWall, + NetherBrickWall, + AndesiteWall, + RedNetherBrickWall, + SandstoneWall, + EndStoneBrickWall, + DioriteWall, + BlackstoneWall, + PolishedBlackstoneWall, + PolishedBlackstoneBrickWall, + CobbledDeepslateWall, + PolishedDeepslateWall, + DeepslateBrickWall, + DeepslateTileWall, + Anvil, + ChippedAnvil, + DamagedAnvil, + ChiseledQuartzBlock, + QuartzBlock, + QuartzBricks, + QuartzPillar, + QuartzStairs, + WhiteTerracotta, + OrangeTerracotta, + MagentaTerracotta, + LightBlueTerracotta, + YellowTerracotta, + LimeTerracotta, + PinkTerracotta, + GrayTerracotta, + LightGrayTerracotta, + CyanTerracotta, + PurpleTerracotta, + BlueTerracotta, + BrownTerracotta, + GreenTerracotta, + RedTerracotta, + BlackTerracotta, + Barrier, + Light, + HayBlock, + WhiteCarpet, + OrangeCarpet, + MagentaCarpet, + LightBlueCarpet, + YellowCarpet, + LimeCarpet, + PinkCarpet, + GrayCarpet, + LightGrayCarpet, + CyanCarpet, + PurpleCarpet, + BlueCarpet, + BrownCarpet, + GreenCarpet, + RedCarpet, + BlackCarpet, + Terracotta, + PackedIce, + AcaciaStairs, + DarkOakStairs, + DirtPath, + Sunflower, + Lilac, + RoseBush, + Peony, + TallGrass, + LargeFern, + WhiteStainedGlass, + OrangeStainedGlass, + MagentaStainedGlass, + LightBlueStainedGlass, + YellowStainedGlass, + LimeStainedGlass, + PinkStainedGlass, + GrayStainedGlass, + LightGrayStainedGlass, + CyanStainedGlass, + PurpleStainedGlass, + BlueStainedGlass, + BrownStainedGlass, + GreenStainedGlass, + RedStainedGlass, + BlackStainedGlass, + WhiteStainedGlassPane, + OrangeStainedGlassPane, + MagentaStainedGlassPane, + LightBlueStainedGlassPane, + YellowStainedGlassPane, + LimeStainedGlassPane, + PinkStainedGlassPane, + GrayStainedGlassPane, + LightGrayStainedGlassPane, + CyanStainedGlassPane, + PurpleStainedGlassPane, + BlueStainedGlassPane, + BrownStainedGlassPane, + GreenStainedGlassPane, + RedStainedGlassPane, + BlackStainedGlassPane, + Prismarine, + PrismarineBricks, + DarkPrismarine, + PrismarineStairs, + PrismarineBrickStairs, + DarkPrismarineStairs, + SeaLantern, + RedSandstone, + ChiseledRedSandstone, + CutRedSandstone, + RedSandstoneStairs, + RepeatingCommandBlock, + ChainCommandBlock, + MagmaBlock, + NetherWartBlock, + WarpedWartBlock, + RedNetherBricks, + BoneBlock, + StructureVoid, + ShulkerBox, + WhiteShulkerBox, + OrangeShulkerBox, + MagentaShulkerBox, + LightBlueShulkerBox, + YellowShulkerBox, + LimeShulkerBox, + PinkShulkerBox, + GrayShulkerBox, + LightGrayShulkerBox, + CyanShulkerBox, + PurpleShulkerBox, + BlueShulkerBox, + BrownShulkerBox, + GreenShulkerBox, + RedShulkerBox, + BlackShulkerBox, + WhiteGlazedTerracotta, + OrangeGlazedTerracotta, + MagentaGlazedTerracotta, + LightBlueGlazedTerracotta, + YellowGlazedTerracotta, + LimeGlazedTerracotta, + PinkGlazedTerracotta, + GrayGlazedTerracotta, + LightGrayGlazedTerracotta, + CyanGlazedTerracotta, + PurpleGlazedTerracotta, + BlueGlazedTerracotta, + BrownGlazedTerracotta, + GreenGlazedTerracotta, + RedGlazedTerracotta, + BlackGlazedTerracotta, + WhiteConcrete, + OrangeConcrete, + MagentaConcrete, + LightBlueConcrete, + YellowConcrete, + LimeConcrete, + PinkConcrete, + GrayConcrete, + LightGrayConcrete, + CyanConcrete, + PurpleConcrete, + BlueConcrete, + BrownConcrete, + GreenConcrete, + RedConcrete, + BlackConcrete, + WhiteConcretePowder, + OrangeConcretePowder, + MagentaConcretePowder, + LightBlueConcretePowder, + YellowConcretePowder, + LimeConcretePowder, + PinkConcretePowder, + GrayConcretePowder, + LightGrayConcretePowder, + CyanConcretePowder, + PurpleConcretePowder, + BlueConcretePowder, + BrownConcretePowder, + GreenConcretePowder, + RedConcretePowder, + BlackConcretePowder, + TurtleEgg, + DeadTubeCoralBlock, + DeadBrainCoralBlock, + DeadBubbleCoralBlock, + DeadFireCoralBlock, + DeadHornCoralBlock, + TubeCoralBlock, + BrainCoralBlock, + BubbleCoralBlock, + FireCoralBlock, + HornCoralBlock, + TubeCoral, + BrainCoral, + BubbleCoral, + FireCoral, + HornCoral, + DeadBrainCoral, + DeadBubbleCoral, + DeadFireCoral, + DeadHornCoral, + DeadTubeCoral, + TubeCoralFan, + BrainCoralFan, + BubbleCoralFan, + FireCoralFan, + HornCoralFan, + DeadTubeCoralFan, + DeadBrainCoralFan, + DeadBubbleCoralFan, + DeadFireCoralFan, + DeadHornCoralFan, + BlueIce, + Conduit, + PolishedGraniteStairs, + SmoothRedSandstoneStairs, + MossyStoneBrickStairs, + PolishedDioriteStairs, + MossyCobblestoneStairs, + EndStoneBrickStairs, + StoneStairs, + SmoothSandstoneStairs, + SmoothQuartzStairs, + GraniteStairs, + AndesiteStairs, + RedNetherBrickStairs, + PolishedAndesiteStairs, + DioriteStairs, + CobbledDeepslateStairs, + PolishedDeepslateStairs, + DeepslateBrickStairs, + DeepslateTileStairs, + PolishedGraniteSlab, + SmoothRedSandstoneSlab, + MossyStoneBrickSlab, + PolishedDioriteSlab, + MossyCobblestoneSlab, + EndStoneBrickSlab, + SmoothSandstoneSlab, + SmoothQuartzSlab, + GraniteSlab, + AndesiteSlab, + RedNetherBrickSlab, + PolishedAndesiteSlab, + DioriteSlab, + CobbledDeepslateSlab, + PolishedDeepslateSlab, + DeepslateBrickSlab, + DeepslateTileSlab, + Scaffolding, + Redstone, + RedstoneTorch, + RedstoneBlock, + Repeater, + Comparator, + Piston, + StickyPiston, + SlimeBlock, + HoneyBlock, + Observer, + Hopper, + Dispenser, + Dropper, + Lectern, + Target, + Lever, + LightningRod, + DaylightDetector, + SculkSensor, + TripwireHook, + TrappedChest, + Tnt, + RedstoneLamp, + NoteBlock, + StoneButton, + PolishedBlackstoneButton, + OakButton, + SpruceButton, + BirchButton, + JungleButton, + AcaciaButton, + DarkOakButton, + CrimsonButton, + WarpedButton, + StonePressurePlate, + PolishedBlackstonePressurePlate, + LightWeightedPressurePlate, + HeavyWeightedPressurePlate, + OakPressurePlate, + SprucePressurePlate, + BirchPressurePlate, + JunglePressurePlate, + AcaciaPressurePlate, + DarkOakPressurePlate, + CrimsonPressurePlate, + WarpedPressurePlate, + IronDoor, + OakDoor, + SpruceDoor, + BirchDoor, + JungleDoor, + AcaciaDoor, + DarkOakDoor, + CrimsonDoor, + WarpedDoor, + IronTrapdoor, + OakTrapdoor, + SpruceTrapdoor, + BirchTrapdoor, + JungleTrapdoor, + AcaciaTrapdoor, + DarkOakTrapdoor, + CrimsonTrapdoor, + WarpedTrapdoor, + OakFenceGate, + SpruceFenceGate, + BirchFenceGate, + JungleFenceGate, + AcaciaFenceGate, + DarkOakFenceGate, + CrimsonFenceGate, + WarpedFenceGate, + PoweredRail, + DetectorRail, + Rail, + ActivatorRail, + Saddle, + Minecart, + ChestMinecart, + FurnaceMinecart, + TntMinecart, + HopperMinecart, + CarrotOnAStick, + WarpedFungusOnAStick, + Elytra, + OakBoat, + SpruceBoat, + BirchBoat, + JungleBoat, + AcaciaBoat, + DarkOakBoat, + StructureBlock, + Jigsaw, + TurtleHelmet, + Scute, + FlintAndSteel, + Apple, + Bow, + Arrow, + Coal, + Charcoal, + Diamond, + Emerald, + LapisLazuli, + Quartz, + AmethystShard, + RawIron, + IronIngot, + RawCopper, + CopperIngot, + RawGold, + GoldIngot, + NetheriteIngot, + NetheriteScrap, + WoodenSword, + WoodenShovel, + WoodenPickaxe, + WoodenAxe, + WoodenHoe, + StoneSword, + StoneShovel, + StonePickaxe, + StoneAxe, + StoneHoe, + GoldenSword, + GoldenShovel, + GoldenPickaxe, + GoldenAxe, + GoldenHoe, + IronSword, + IronShovel, + IronPickaxe, + IronAxe, + IronHoe, + DiamondSword, + DiamondShovel, + DiamondPickaxe, + DiamondAxe, + DiamondHoe, + NetheriteSword, + NetheriteShovel, + NetheritePickaxe, + NetheriteAxe, + NetheriteHoe, + Stick, + Bowl, + MushroomStew, + String, + Feather, + Gunpowder, + WheatSeeds, + Wheat, + Bread, + LeatherHelmet, + LeatherChestplate, + LeatherLeggings, + LeatherBoots, + ChainmailHelmet, + ChainmailChestplate, + ChainmailLeggings, + ChainmailBoots, + IronHelmet, + IronChestplate, + IronLeggings, + IronBoots, + DiamondHelmet, + DiamondChestplate, + DiamondLeggings, + DiamondBoots, + GoldenHelmet, + GoldenChestplate, + GoldenLeggings, + GoldenBoots, + NetheriteHelmet, + NetheriteChestplate, + NetheriteLeggings, + NetheriteBoots, + Flint, + Porkchop, + CookedPorkchop, + Painting, + GoldenApple, + EnchantedGoldenApple, + OakSign, + SpruceSign, + BirchSign, + JungleSign, + AcaciaSign, + DarkOakSign, + CrimsonSign, + WarpedSign, + Bucket, + WaterBucket, + LavaBucket, + PowderSnowBucket, + Snowball, + Leather, + MilkBucket, + PufferfishBucket, + SalmonBucket, + CodBucket, + TropicalFishBucket, + AxolotlBucket, + Brick, + ClayBall, + DriedKelpBlock, + Paper, + Book, + SlimeBall, + Egg, + Compass, + Bundle, + FishingRod, + Clock, + Spyglass, + GlowstoneDust, + Cod, + Salmon, + TropicalFish, + Pufferfish, + CookedCod, + CookedSalmon, + InkSac, + GlowInkSac, + CocoaBeans, + WhiteDye, + OrangeDye, + MagentaDye, + LightBlueDye, + YellowDye, + LimeDye, + PinkDye, + GrayDye, + LightGrayDye, + CyanDye, + PurpleDye, + BlueDye, + BrownDye, + GreenDye, + RedDye, + BlackDye, + BoneMeal, + Bone, + Sugar, + Cake, + WhiteBed, + OrangeBed, + MagentaBed, + LightBlueBed, + YellowBed, + LimeBed, + PinkBed, + GrayBed, + LightGrayBed, + CyanBed, + PurpleBed, + BlueBed, + BrownBed, + GreenBed, + RedBed, + BlackBed, + Cookie, + FilledMap, + Shears, + MelonSlice, + DriedKelp, + PumpkinSeeds, + MelonSeeds, + Beef, + CookedBeef, + Chicken, + CookedChicken, + RottenFlesh, + EnderPearl, + BlazeRod, + GhastTear, + GoldNugget, + NetherWart, + Potion, + GlassBottle, + SpiderEye, + FermentedSpiderEye, + BlazePowder, + MagmaCream, + BrewingStand, + Cauldron, + EnderEye, + GlisteringMelonSlice, + AxolotlSpawnEgg, + BatSpawnEgg, + BeeSpawnEgg, + BlazeSpawnEgg, + CatSpawnEgg, + CaveSpiderSpawnEgg, + ChickenSpawnEgg, + CodSpawnEgg, + CowSpawnEgg, + CreeperSpawnEgg, + DolphinSpawnEgg, + DonkeySpawnEgg, + DrownedSpawnEgg, + ElderGuardianSpawnEgg, + EndermanSpawnEgg, + EndermiteSpawnEgg, + EvokerSpawnEgg, + FoxSpawnEgg, + GhastSpawnEgg, + GlowSquidSpawnEgg, + GoatSpawnEgg, + GuardianSpawnEgg, + HoglinSpawnEgg, + HorseSpawnEgg, + HuskSpawnEgg, + LlamaSpawnEgg, + MagmaCubeSpawnEgg, + MooshroomSpawnEgg, + MuleSpawnEgg, + OcelotSpawnEgg, + PandaSpawnEgg, + ParrotSpawnEgg, + PhantomSpawnEgg, + PigSpawnEgg, + PiglinSpawnEgg, + PiglinBruteSpawnEgg, + PillagerSpawnEgg, + PolarBearSpawnEgg, + PufferfishSpawnEgg, + RabbitSpawnEgg, + RavagerSpawnEgg, + SalmonSpawnEgg, + SheepSpawnEgg, + ShulkerSpawnEgg, + SilverfishSpawnEgg, + SkeletonSpawnEgg, + SkeletonHorseSpawnEgg, + SlimeSpawnEgg, + SpiderSpawnEgg, + SquidSpawnEgg, + StraySpawnEgg, + StriderSpawnEgg, + TraderLlamaSpawnEgg, + TropicalFishSpawnEgg, + TurtleSpawnEgg, + VexSpawnEgg, + VillagerSpawnEgg, + VindicatorSpawnEgg, + WanderingTraderSpawnEgg, + WitchSpawnEgg, + WitherSkeletonSpawnEgg, + WolfSpawnEgg, + ZoglinSpawnEgg, + ZombieSpawnEgg, + ZombieHorseSpawnEgg, + ZombieVillagerSpawnEgg, + ZombifiedPiglinSpawnEgg, + ExperienceBottle, + FireCharge, + WritableBook, + WrittenBook, + ItemFrame, + GlowItemFrame, + FlowerPot, + Carrot, + Potato, + BakedPotato, + PoisonousPotato, + Map, + GoldenCarrot, + SkeletonSkull, + WitherSkeletonSkull, + PlayerHead, + ZombieHead, + CreeperHead, + DragonHead, + NetherStar, + PumpkinPie, + FireworkRocket, + FireworkStar, + EnchantedBook, + NetherBrick, + PrismarineShard, + PrismarineCrystals, + Rabbit, + CookedRabbit, + RabbitStew, + RabbitFoot, + RabbitHide, + ArmorStand, + IronHorseArmor, + GoldenHorseArmor, + DiamondHorseArmor, + LeatherHorseArmor, + Lead, + NameTag, + CommandBlockMinecart, + Mutton, + CookedMutton, + WhiteBanner, + OrangeBanner, + MagentaBanner, + LightBlueBanner, + YellowBanner, + LimeBanner, + PinkBanner, + GrayBanner, + LightGrayBanner, + CyanBanner, + PurpleBanner, + BlueBanner, + BrownBanner, + GreenBanner, + RedBanner, + BlackBanner, + EndCrystal, + ChorusFruit, + PoppedChorusFruit, + Beetroot, + BeetrootSeeds, + BeetrootSoup, + DragonBreath, + SplashPotion, + SpectralArrow, + TippedArrow, + LingeringPotion, + Shield, + TotemOfUndying, + ShulkerShell, + IronNugget, + KnowledgeBook, + DebugStick, + MusicDisc13, + MusicDiscCat, + MusicDiscBlocks, + MusicDiscChirp, + MusicDiscFar, + MusicDiscMall, + MusicDiscMellohi, + MusicDiscStal, + MusicDiscStrad, + MusicDiscWard, + MusicDisc11, + MusicDiscWait, + MusicDiscOtherside, + MusicDiscPigstep, + Trident, + PhantomMembrane, + NautilusShell, + HeartOfTheSea, + Crossbow, + SuspiciousStew, + Loom, + FlowerBannerPattern, + CreeperBannerPattern, + SkullBannerPattern, + MojangBannerPattern, + GlobeBannerPattern, + PiglinBannerPattern, + Composter, + Barrel, + Smoker, + BlastFurnace, + CartographyTable, + FletchingTable, + Grindstone, + SmithingTable, + Stonecutter, + Bell, + Lantern, + SoulLantern, + SweetBerries, + GlowBerries, + Campfire, + SoulCampfire, + Shroomlight, + Honeycomb, + BeeNest, + Beehive, + HoneyBottle, + HoneycombBlock, + Lodestone, + CryingObsidian, + Blackstone, + BlackstoneSlab, + BlackstoneStairs, + GildedBlackstone, + PolishedBlackstone, + PolishedBlackstoneSlab, + PolishedBlackstoneStairs, + ChiseledPolishedBlackstone, + PolishedBlackstoneBricks, + PolishedBlackstoneBrickSlab, + PolishedBlackstoneBrickStairs, + CrackedPolishedBlackstoneBricks, + RespawnAnchor, + Candle, + WhiteCandle, + OrangeCandle, + MagentaCandle, + LightBlueCandle, + YellowCandle, + LimeCandle, + PinkCandle, + GrayCandle, + LightGrayCandle, + CyanCandle, + PurpleCandle, + BlueCandle, + BrownCandle, + GreenCandle, + RedCandle, + BlackCandle, + SmallAmethystBud, + MediumAmethystBud, + LargeAmethystBud, + AmethystCluster, + PointedDripstone, + ] + } } - -#[allow(warnings)] -#[allow(clippy::all)] impl Item { - /// Returns the `id` property of this `Item`. + #[doc = "Returns the `id` property of this `Item`."] + #[inline] pub fn id(&self) -> u32 { match self { - Item::Air => 0, - Item::Stone => 1, - Item::Granite => 2, - Item::PolishedGranite => 3, - Item::Diorite => 4, - Item::PolishedDiorite => 5, + Item::CraftingTable => 246, + Item::PinkTerracotta => 360, + Item::BirchFence => 259, + Item::OrangeTerracotta => 355, + Item::Spyglass => 799, + Item::LingeringPotion => 1008, + Item::BlackBanner => 997, + Item::BlueStainedGlass => 411, + Item::StoneHoe => 708, + Item::CyanTerracotta => 363, + Item::WeepingVines => 194, + Item::LightGrayWool => 165, + Item::Crossbow => 1033, + Item::SprucePressurePlate => 624, + Item::StoneSword => 704, + Item::JackOLantern => 267, + Item::CowSpawnEgg => 881, + Item::HornCoral => 531, + Item::MagentaCarpet => 375, + Item::PurpleCandle => 1090, + Item::SpruceStairs => 318, + Item::StrippedSpruceLog => 110, + Item::NetheriteHelmet => 758, + Item::EnderEye => 871, + Item::Beetroot => 1001, + Item::BlueTerracotta => 365, + Item::WaxedOxidizedCutCopperStairs => 96, + Item::DarkOakDoor => 637, + Item::MossyCobblestoneSlab => 571, + Item::CyanShulkerBox => 461, + Item::Observer => 594, + Item::IronBlock => 65, + Item::CyanDye => 819, + Item::Grindstone => 1048, + Item::GildedBlackstone => 1069, + Item::NetheriteBlock => 69, + Item::HornCoralBlock => 526, + Item::Shroomlight => 1058, + Item::CopperOre => 44, + Item::CobblestoneWall => 325, + Item::Campfire => 1056, + Item::PolishedBlackstoneWall => 340, + Item::OxeyeDaisy => 182, + Item::OakFenceGate => 649, + Item::PufferfishBucket => 783, + Item::YellowStainedGlassPane => 420, + Item::SeaLantern => 438, + Item::WarpedStairs => 322, + Item::LimeGlazedTerracotta => 473, + Item::RabbitFoot => 970, + Item::GoldenAxe => 712, Item::Andesite => 6, + Item::GlowSquidSpawnEgg => 892, + Item::NoteBlock => 608, + Item::OrangeShulkerBox => 453, + Item::DarkOakTrapdoor => 646, + Item::DriedKelpBlock => 790, + Item::DeadHornCoralBlock => 521, + Item::CrimsonSlab => 210, + Item::GreenStainedGlassPane => 429, + Item::BrownTerracotta => 366, + Item::Bricks => 232, + Item::IronSword => 714, + Item::FlowerBannerPattern => 1036, + Item::Bell => 1051, + Item::AmethystCluster => 1099, + Item::RedstoneOre => 48, + Item::PolishedDiorite => 5, + Item::CrackedStoneBricks => 285, + Item::MushroomStew => 731, + Item::LightBlueCandle => 1083, + Item::OakSlab => 204, + Item::Clay => 255, + Item::BirchPlanks => 24, + Item::BuddingAmethyst => 64, + Item::StoneButton => 609, + Item::SlimeBlock => 592, + Item::DeepslateCoalOre => 41, + Item::CutSandstoneSlab => 215, + Item::RedDye => 824, + Item::OakLeaves => 133, + Item::WhiteBed => 830, + Item::MusicDiscPigstep => 1028, + Item::WitherSkeletonSpawnEgg => 933, + Item::MagentaDye => 812, + Item::Vine => 299, + Item::StrippedCrimsonHyphae => 123, + Item::SmoothSandstoneStairs => 556, + Item::SpruceButton => 612, + Item::ClayBall => 789, + Item::MushroomStem => 294, + Item::HangingRoots => 200, + Item::LimeTerracotta => 359, + Item::BrewingStand => 869, + Item::Loom => 1035, + Item::WaxedExposedCutCopperStairs => 94, + Item::PolishedBlackstoneBricks => 1074, + Item::BrownStainedGlassPane => 428, + Item::AmethystBlock => 63, + Item::DragonHead => 958, + Item::OrangeDye => 811, + Item::SmallDripleaf => 202, + Item::ChorusPlant => 238, + Item::PolishedDeepslateSlab => 581, + Item::Bone => 827, + Item::CookedMutton => 981, + Item::WarpedStem => 108, + Item::BrownMushroom => 187, + Item::Pumpkin => 265, + Item::WaxedCopperBlock => 85, + Item::TurtleEgg => 516, + Item::Azalea => 152, + Item::LightBlueBed => 833, + Item::Honeycomb => 1059, + Item::CatSpawnEgg => 877, + Item::MossyCobblestoneWall => 326, + Item::CobblestoneSlab => 217, + Item::Obsidian => 235, + Item::GrayStainedGlass => 407, + Item::PolishedAndesiteSlab => 578, + Item::CrimsonTrapdoor => 647, + Item::GoldenHorseArmor => 974, + Item::SpruceDoor => 633, + Item::IronPickaxe => 716, + Item::CrimsonButton => 617, + Item::BirchFenceGate => 651, + Item::Mycelium => 303, + Item::CreeperHead => 957, + Item::BlackTerracotta => 369, + Item::HoglinSpawnEgg => 895, + Item::InfestedStone => 276, + Item::FermentedSpiderEye => 866, + Item::TrappedChest => 605, + Item::VindicatorSpawnEgg => 930, + Item::RawCopper => 693, + Item::NetheriteAxe => 727, + Item::LimeWool => 162, + Item::PinkWool => 163, + Item::OakPlanks => 22, + Item::WeatheredCutCopperStairs => 79, + Item::Wheat => 736, + Item::GreenStainedGlass => 413, + Item::DamagedAnvil => 348, + Item::CreeperBannerPattern => 1037, + Item::PolishedBlackstoneStairs => 1072, + Item::BlackstoneSlab => 1067, + Item::Podzol => 17, + Item::SoulSand => 269, + Item::GreenShulkerBox => 465, + Item::PolishedBlackstonePressurePlate => 620, + Item::SpruceLog => 102, + Item::WarpedRoots => 192, + Item::RedBanner => 996, + Item::Salmon => 802, + Item::OrangeCandle => 1081, + Item::IronTrapdoor => 640, + Item::IronAxe => 717, + Item::PhantomMembrane => 1030, + Item::LimeBanner => 987, + Item::PurpleBed => 840, + Item::Bowl => 730, + Item::RedBed => 844, Item::PolishedAndesite => 7, - Item::GrassBlock => 8, - Item::Dirt => 9, - Item::CoarseDirt => 10, - Item::Podzol => 11, - Item::CrimsonNylium => 12, - Item::WarpedNylium => 13, - Item::Cobblestone => 14, - Item::OakPlanks => 15, - Item::SprucePlanks => 16, - Item::BirchPlanks => 17, - Item::JunglePlanks => 18, - Item::AcaciaPlanks => 19, - Item::DarkOakPlanks => 20, - Item::CrimsonPlanks => 21, - Item::WarpedPlanks => 22, - Item::OakSapling => 23, - Item::SpruceSapling => 24, - Item::BirchSapling => 25, - Item::JungleSapling => 26, - Item::AcaciaSapling => 27, - Item::DarkOakSapling => 28, - Item::Bedrock => 29, - Item::Sand => 30, - Item::RedSand => 31, - Item::Gravel => 32, - Item::GoldOre => 33, - Item::IronOre => 34, - Item::CoalOre => 35, - Item::NetherGoldOre => 36, - Item::OakLog => 37, - Item::SpruceLog => 38, - Item::BirchLog => 39, - Item::JungleLog => 40, - Item::AcaciaLog => 41, - Item::DarkOakLog => 42, - Item::CrimsonStem => 43, - Item::WarpedStem => 44, - Item::StrippedOakLog => 45, - Item::StrippedSpruceLog => 46, - Item::StrippedBirchLog => 47, - Item::StrippedJungleLog => 48, - Item::StrippedAcaciaLog => 49, - Item::StrippedDarkOakLog => 50, - Item::StrippedCrimsonStem => 51, - Item::StrippedWarpedStem => 52, - Item::StrippedOakWood => 53, - Item::StrippedSpruceWood => 54, - Item::StrippedBirchWood => 55, - Item::StrippedJungleWood => 56, - Item::StrippedAcaciaWood => 57, - Item::StrippedDarkOakWood => 58, - Item::StrippedCrimsonHyphae => 59, - Item::StrippedWarpedHyphae => 60, - Item::OakWood => 61, - Item::SpruceWood => 62, - Item::BirchWood => 63, - Item::JungleWood => 64, - Item::AcaciaWood => 65, - Item::DarkOakWood => 66, - Item::CrimsonHyphae => 67, - Item::WarpedHyphae => 68, - Item::OakLeaves => 69, - Item::SpruceLeaves => 70, - Item::BirchLeaves => 71, - Item::JungleLeaves => 72, - Item::AcaciaLeaves => 73, - Item::DarkOakLeaves => 74, - Item::Sponge => 75, - Item::WetSponge => 76, - Item::Glass => 77, - Item::LapisOre => 78, - Item::LapisBlock => 79, - Item::Dispenser => 80, - Item::Sandstone => 81, - Item::ChiseledSandstone => 82, - Item::CutSandstone => 83, - Item::NoteBlock => 84, - Item::PoweredRail => 85, - Item::DetectorRail => 86, - Item::StickyPiston => 87, - Item::Cobweb => 88, - Item::Grass => 89, - Item::Fern => 90, - Item::DeadBush => 91, - Item::Seagrass => 92, - Item::SeaPickle => 93, - Item::Piston => 94, - Item::WhiteWool => 95, - Item::OrangeWool => 96, - Item::MagentaWool => 97, - Item::LightBlueWool => 98, - Item::YellowWool => 99, - Item::LimeWool => 100, - Item::PinkWool => 101, - Item::GrayWool => 102, - Item::LightGrayWool => 103, - Item::CyanWool => 104, - Item::PurpleWool => 105, - Item::BlueWool => 106, - Item::BrownWool => 107, - Item::GreenWool => 108, - Item::RedWool => 109, - Item::BlackWool => 110, - Item::Dandelion => 111, - Item::Poppy => 112, - Item::BlueOrchid => 113, - Item::Allium => 114, - Item::AzureBluet => 115, - Item::RedTulip => 116, - Item::OrangeTulip => 117, - Item::WhiteTulip => 118, - Item::PinkTulip => 119, - Item::OxeyeDaisy => 120, - Item::Cornflower => 121, - Item::LilyOfTheValley => 122, - Item::WitherRose => 123, - Item::BrownMushroom => 124, - Item::RedMushroom => 125, - Item::CrimsonFungus => 126, - Item::WarpedFungus => 127, - Item::CrimsonRoots => 128, - Item::WarpedRoots => 129, - Item::NetherSprouts => 130, - Item::WeepingVines => 131, - Item::TwistingVines => 132, - Item::SugarCane => 133, - Item::Kelp => 134, - Item::Bamboo => 135, - Item::GoldBlock => 136, - Item::IronBlock => 137, - Item::OakSlab => 138, - Item::SpruceSlab => 139, - Item::BirchSlab => 140, - Item::JungleSlab => 141, - Item::AcaciaSlab => 142, - Item::DarkOakSlab => 143, - Item::CrimsonSlab => 144, - Item::WarpedSlab => 145, - Item::StoneSlab => 146, - Item::SmoothStoneSlab => 147, - Item::SandstoneSlab => 148, - Item::CutSandstoneSlab => 149, - Item::PetrifiedOakSlab => 150, - Item::CobblestoneSlab => 151, - Item::BrickSlab => 152, - Item::StoneBrickSlab => 153, - Item::NetherBrickSlab => 154, - Item::QuartzSlab => 155, - Item::RedSandstoneSlab => 156, - Item::CutRedSandstoneSlab => 157, - Item::PurpurSlab => 158, - Item::PrismarineSlab => 159, - Item::PrismarineBrickSlab => 160, - Item::DarkPrismarineSlab => 161, - Item::SmoothQuartz => 162, - Item::SmoothRedSandstone => 163, - Item::SmoothSandstone => 164, - Item::SmoothStone => 165, - Item::Bricks => 166, - Item::Tnt => 167, - Item::Bookshelf => 168, - Item::MossyCobblestone => 169, - Item::Obsidian => 170, - Item::Torch => 171, - Item::EndRod => 172, - Item::ChorusPlant => 173, - Item::ChorusFlower => 174, - Item::PurpurBlock => 175, - Item::PurpurPillar => 176, - Item::PurpurStairs => 177, - Item::Spawner => 178, - Item::OakStairs => 179, - Item::Chest => 180, - Item::DiamondOre => 181, - Item::DiamondBlock => 182, - Item::CraftingTable => 183, - Item::Farmland => 184, - Item::Furnace => 185, - Item::Ladder => 186, - Item::Rail => 187, - Item::CobblestoneStairs => 188, - Item::Lever => 189, - Item::StonePressurePlate => 190, - Item::OakPressurePlate => 191, - Item::SprucePressurePlate => 192, - Item::BirchPressurePlate => 193, - Item::JunglePressurePlate => 194, - Item::AcaciaPressurePlate => 195, - Item::DarkOakPressurePlate => 196, - Item::CrimsonPressurePlate => 197, - Item::WarpedPressurePlate => 198, - Item::PolishedBlackstonePressurePlate => 199, - Item::RedstoneOre => 200, - Item::RedstoneTorch => 201, - Item::Snow => 202, - Item::Ice => 203, - Item::SnowBlock => 204, - Item::Cactus => 205, - Item::Clay => 206, - Item::Jukebox => 207, - Item::OakFence => 208, - Item::SpruceFence => 209, - Item::BirchFence => 210, - Item::JungleFence => 211, - Item::AcaciaFence => 212, - Item::DarkOakFence => 213, - Item::CrimsonFence => 214, - Item::WarpedFence => 215, - Item::Pumpkin => 216, - Item::CarvedPumpkin => 217, - Item::Netherrack => 218, - Item::SoulSand => 219, - Item::SoulSoil => 220, - Item::Basalt => 221, - Item::PolishedBasalt => 222, - Item::SoulTorch => 223, - Item::Glowstone => 224, - Item::JackOLantern => 225, - Item::OakTrapdoor => 226, - Item::SpruceTrapdoor => 227, - Item::BirchTrapdoor => 228, - Item::JungleTrapdoor => 229, - Item::AcaciaTrapdoor => 230, - Item::DarkOakTrapdoor => 231, - Item::CrimsonTrapdoor => 232, - Item::WarpedTrapdoor => 233, - Item::InfestedStone => 234, - Item::InfestedCobblestone => 235, - Item::InfestedStoneBricks => 236, - Item::InfestedMossyStoneBricks => 237, - Item::InfestedCrackedStoneBricks => 238, - Item::InfestedChiseledStoneBricks => 239, - Item::StoneBricks => 240, - Item::MossyStoneBricks => 241, - Item::CrackedStoneBricks => 242, - Item::ChiseledStoneBricks => 243, - Item::BrownMushroomBlock => 244, - Item::RedMushroomBlock => 245, - Item::MushroomStem => 246, - Item::IronBars => 247, - Item::Chain => 248, - Item::GlassPane => 249, - Item::Melon => 250, - Item::Vine => 251, - Item::OakFenceGate => 252, - Item::SpruceFenceGate => 253, - Item::BirchFenceGate => 254, - Item::JungleFenceGate => 255, - Item::AcaciaFenceGate => 256, - Item::DarkOakFenceGate => 257, - Item::CrimsonFenceGate => 258, - Item::WarpedFenceGate => 259, - Item::BrickStairs => 260, - Item::StoneBrickStairs => 261, - Item::Mycelium => 262, - Item::LilyPad => 263, - Item::NetherBricks => 264, - Item::CrackedNetherBricks => 265, - Item::ChiseledNetherBricks => 266, - Item::NetherBrickFence => 267, - Item::NetherBrickStairs => 268, - Item::EnchantingTable => 269, - Item::EndPortalFrame => 270, - Item::EndStone => 271, - Item::EndStoneBricks => 272, - Item::DragonEgg => 273, - Item::RedstoneLamp => 274, - Item::SandstoneStairs => 275, - Item::EmeraldOre => 276, - Item::EnderChest => 277, - Item::TripwireHook => 278, - Item::EmeraldBlock => 279, - Item::SpruceStairs => 280, - Item::BirchStairs => 281, - Item::JungleStairs => 282, - Item::CrimsonStairs => 283, - Item::WarpedStairs => 284, - Item::CommandBlock => 285, - Item::Beacon => 286, - Item::CobblestoneWall => 287, - Item::MossyCobblestoneWall => 288, - Item::BrickWall => 289, - Item::PrismarineWall => 290, - Item::RedSandstoneWall => 291, - Item::MossyStoneBrickWall => 292, - Item::GraniteWall => 293, - Item::StoneBrickWall => 294, - Item::NetherBrickWall => 295, - Item::AndesiteWall => 296, - Item::RedNetherBrickWall => 297, - Item::SandstoneWall => 298, - Item::EndStoneBrickWall => 299, - Item::DioriteWall => 300, - Item::BlackstoneWall => 301, - Item::PolishedBlackstoneWall => 302, - Item::PolishedBlackstoneBrickWall => 303, - Item::StoneButton => 304, - Item::OakButton => 305, - Item::SpruceButton => 306, - Item::BirchButton => 307, - Item::JungleButton => 308, - Item::AcaciaButton => 309, - Item::DarkOakButton => 310, - Item::CrimsonButton => 311, - Item::WarpedButton => 312, - Item::PolishedBlackstoneButton => 313, - Item::Anvil => 314, - Item::ChippedAnvil => 315, - Item::DamagedAnvil => 316, - Item::TrappedChest => 317, - Item::LightWeightedPressurePlate => 318, - Item::HeavyWeightedPressurePlate => 319, - Item::DaylightDetector => 320, - Item::RedstoneBlock => 321, - Item::NetherQuartzOre => 322, - Item::Hopper => 323, - Item::ChiseledQuartzBlock => 324, - Item::QuartzBlock => 325, - Item::QuartzBricks => 326, - Item::QuartzPillar => 327, - Item::QuartzStairs => 328, - Item::ActivatorRail => 329, - Item::Dropper => 330, - Item::WhiteTerracotta => 331, - Item::OrangeTerracotta => 332, - Item::MagentaTerracotta => 333, - Item::LightBlueTerracotta => 334, - Item::YellowTerracotta => 335, - Item::LimeTerracotta => 336, - Item::PinkTerracotta => 337, - Item::GrayTerracotta => 338, - Item::LightGrayTerracotta => 339, - Item::CyanTerracotta => 340, - Item::PurpleTerracotta => 341, - Item::BlueTerracotta => 342, - Item::BrownTerracotta => 343, - Item::GreenTerracotta => 344, - Item::RedTerracotta => 345, - Item::BlackTerracotta => 346, - Item::Barrier => 347, - Item::IronTrapdoor => 348, - Item::HayBlock => 349, - Item::WhiteCarpet => 350, - Item::OrangeCarpet => 351, - Item::MagentaCarpet => 352, - Item::LightBlueCarpet => 353, - Item::YellowCarpet => 354, - Item::LimeCarpet => 355, - Item::PinkCarpet => 356, - Item::GrayCarpet => 357, - Item::LightGrayCarpet => 358, - Item::CyanCarpet => 359, - Item::PurpleCarpet => 360, - Item::BlueCarpet => 361, - Item::BrownCarpet => 362, - Item::GreenCarpet => 363, - Item::RedCarpet => 364, - Item::BlackCarpet => 365, - Item::Terracotta => 366, - Item::CoalBlock => 367, - Item::PackedIce => 368, - Item::AcaciaStairs => 369, - Item::DarkOakStairs => 370, - Item::SlimeBlock => 371, - Item::GrassPath => 372, - Item::Sunflower => 373, - Item::Lilac => 374, - Item::RoseBush => 375, - Item::Peony => 376, - Item::TallGrass => 377, - Item::LargeFern => 378, - Item::WhiteStainedGlass => 379, - Item::OrangeStainedGlass => 380, - Item::MagentaStainedGlass => 381, - Item::LightBlueStainedGlass => 382, - Item::YellowStainedGlass => 383, - Item::LimeStainedGlass => 384, - Item::PinkStainedGlass => 385, - Item::GrayStainedGlass => 386, - Item::LightGrayStainedGlass => 387, - Item::CyanStainedGlass => 388, - Item::PurpleStainedGlass => 389, - Item::BlueStainedGlass => 390, - Item::BrownStainedGlass => 391, - Item::GreenStainedGlass => 392, - Item::RedStainedGlass => 393, - Item::BlackStainedGlass => 394, - Item::WhiteStainedGlassPane => 395, - Item::OrangeStainedGlassPane => 396, - Item::MagentaStainedGlassPane => 397, - Item::LightBlueStainedGlassPane => 398, - Item::YellowStainedGlassPane => 399, - Item::LimeStainedGlassPane => 400, - Item::PinkStainedGlassPane => 401, - Item::GrayStainedGlassPane => 402, - Item::LightGrayStainedGlassPane => 403, - Item::CyanStainedGlassPane => 404, - Item::PurpleStainedGlassPane => 405, - Item::BlueStainedGlassPane => 406, - Item::BrownStainedGlassPane => 407, - Item::GreenStainedGlassPane => 408, - Item::RedStainedGlassPane => 409, - Item::BlackStainedGlassPane => 410, - Item::Prismarine => 411, - Item::PrismarineBricks => 412, - Item::DarkPrismarine => 413, - Item::PrismarineStairs => 414, - Item::PrismarineBrickStairs => 415, - Item::DarkPrismarineStairs => 416, - Item::SeaLantern => 417, - Item::RedSandstone => 418, - Item::ChiseledRedSandstone => 419, - Item::CutRedSandstone => 420, - Item::RedSandstoneStairs => 421, - Item::RepeatingCommandBlock => 422, - Item::ChainCommandBlock => 423, - Item::MagmaBlock => 424, - Item::NetherWartBlock => 425, - Item::WarpedWartBlock => 426, - Item::RedNetherBricks => 427, - Item::BoneBlock => 428, - Item::StructureVoid => 429, - Item::Observer => 430, - Item::ShulkerBox => 431, - Item::WhiteShulkerBox => 432, - Item::OrangeShulkerBox => 433, - Item::MagentaShulkerBox => 434, - Item::LightBlueShulkerBox => 435, - Item::YellowShulkerBox => 436, - Item::LimeShulkerBox => 437, - Item::PinkShulkerBox => 438, - Item::GrayShulkerBox => 439, - Item::LightGrayShulkerBox => 440, - Item::CyanShulkerBox => 441, - Item::PurpleShulkerBox => 442, - Item::BlueShulkerBox => 443, - Item::BrownShulkerBox => 444, - Item::GreenShulkerBox => 445, - Item::RedShulkerBox => 446, - Item::BlackShulkerBox => 447, - Item::WhiteGlazedTerracotta => 448, - Item::OrangeGlazedTerracotta => 449, - Item::MagentaGlazedTerracotta => 450, - Item::LightBlueGlazedTerracotta => 451, - Item::YellowGlazedTerracotta => 452, - Item::LimeGlazedTerracotta => 453, - Item::PinkGlazedTerracotta => 454, - Item::GrayGlazedTerracotta => 455, - Item::LightGrayGlazedTerracotta => 456, - Item::CyanGlazedTerracotta => 457, - Item::PurpleGlazedTerracotta => 458, - Item::BlueGlazedTerracotta => 459, - Item::BrownGlazedTerracotta => 460, - Item::GreenGlazedTerracotta => 461, - Item::RedGlazedTerracotta => 462, - Item::BlackGlazedTerracotta => 463, - Item::WhiteConcrete => 464, - Item::OrangeConcrete => 465, - Item::MagentaConcrete => 466, - Item::LightBlueConcrete => 467, - Item::YellowConcrete => 468, - Item::LimeConcrete => 469, - Item::PinkConcrete => 470, - Item::GrayConcrete => 471, - Item::LightGrayConcrete => 472, - Item::CyanConcrete => 473, - Item::PurpleConcrete => 474, - Item::BlueConcrete => 475, - Item::BrownConcrete => 476, - Item::GreenConcrete => 477, - Item::RedConcrete => 478, - Item::BlackConcrete => 479, - Item::WhiteConcretePowder => 480, - Item::OrangeConcretePowder => 481, - Item::MagentaConcretePowder => 482, - Item::LightBlueConcretePowder => 483, - Item::YellowConcretePowder => 484, - Item::LimeConcretePowder => 485, - Item::PinkConcretePowder => 486, - Item::GrayConcretePowder => 487, - Item::LightGrayConcretePowder => 488, - Item::CyanConcretePowder => 489, - Item::PurpleConcretePowder => 490, - Item::BlueConcretePowder => 491, - Item::BrownConcretePowder => 492, - Item::GreenConcretePowder => 493, - Item::RedConcretePowder => 494, - Item::BlackConcretePowder => 495, - Item::TurtleEgg => 496, - Item::DeadTubeCoralBlock => 497, - Item::DeadBrainCoralBlock => 498, - Item::DeadBubbleCoralBlock => 499, - Item::DeadFireCoralBlock => 500, - Item::DeadHornCoralBlock => 501, - Item::TubeCoralBlock => 502, - Item::BrainCoralBlock => 503, - Item::BubbleCoralBlock => 504, - Item::FireCoralBlock => 505, - Item::HornCoralBlock => 506, - Item::TubeCoral => 507, - Item::BrainCoral => 508, - Item::BubbleCoral => 509, - Item::FireCoral => 510, - Item::HornCoral => 511, - Item::DeadBrainCoral => 512, - Item::DeadBubbleCoral => 513, - Item::DeadFireCoral => 514, - Item::DeadHornCoral => 515, - Item::DeadTubeCoral => 516, - Item::TubeCoralFan => 517, - Item::BrainCoralFan => 518, - Item::BubbleCoralFan => 519, - Item::FireCoralFan => 520, - Item::HornCoralFan => 521, - Item::DeadTubeCoralFan => 522, - Item::DeadBrainCoralFan => 523, - Item::DeadBubbleCoralFan => 524, - Item::DeadFireCoralFan => 525, - Item::DeadHornCoralFan => 526, - Item::BlueIce => 527, - Item::Conduit => 528, - Item::PolishedGraniteStairs => 529, - Item::SmoothRedSandstoneStairs => 530, - Item::MossyStoneBrickStairs => 531, - Item::PolishedDioriteStairs => 532, - Item::MossyCobblestoneStairs => 533, - Item::EndStoneBrickStairs => 534, - Item::StoneStairs => 535, - Item::SmoothSandstoneStairs => 536, - Item::SmoothQuartzStairs => 537, - Item::GraniteStairs => 538, - Item::AndesiteStairs => 539, - Item::RedNetherBrickStairs => 540, - Item::PolishedAndesiteStairs => 541, - Item::DioriteStairs => 542, - Item::PolishedGraniteSlab => 543, - Item::SmoothRedSandstoneSlab => 544, - Item::MossyStoneBrickSlab => 545, - Item::PolishedDioriteSlab => 546, - Item::MossyCobblestoneSlab => 547, - Item::EndStoneBrickSlab => 548, - Item::SmoothSandstoneSlab => 549, - Item::SmoothQuartzSlab => 550, - Item::GraniteSlab => 551, - Item::AndesiteSlab => 552, - Item::RedNetherBrickSlab => 553, - Item::PolishedAndesiteSlab => 554, - Item::DioriteSlab => 555, - Item::Scaffolding => 556, - Item::IronDoor => 557, - Item::OakDoor => 558, - Item::SpruceDoor => 559, - Item::BirchDoor => 560, - Item::JungleDoor => 561, - Item::AcaciaDoor => 562, - Item::DarkOakDoor => 563, - Item::CrimsonDoor => 564, - Item::WarpedDoor => 565, - Item::Repeater => 566, - Item::Comparator => 567, - Item::StructureBlock => 568, - Item::Jigsaw => 569, - Item::TurtleHelmet => 570, - Item::Scute => 571, - Item::FlintAndSteel => 572, - Item::Apple => 573, - Item::Bow => 574, - Item::Arrow => 575, - Item::Coal => 576, - Item::Charcoal => 577, - Item::Diamond => 578, - Item::IronIngot => 579, - Item::GoldIngot => 580, - Item::NetheriteIngot => 581, - Item::NetheriteScrap => 582, - Item::WoodenSword => 583, - Item::WoodenShovel => 584, - Item::WoodenPickaxe => 585, - Item::WoodenAxe => 586, - Item::WoodenHoe => 587, - Item::StoneSword => 588, - Item::StoneShovel => 589, - Item::StonePickaxe => 590, - Item::StoneAxe => 591, - Item::StoneHoe => 592, - Item::GoldenSword => 593, - Item::GoldenShovel => 594, - Item::GoldenPickaxe => 595, - Item::GoldenAxe => 596, - Item::GoldenHoe => 597, - Item::IronSword => 598, - Item::IronShovel => 599, - Item::IronPickaxe => 600, - Item::IronAxe => 601, - Item::IronHoe => 602, - Item::DiamondSword => 603, - Item::DiamondShovel => 604, - Item::DiamondPickaxe => 605, - Item::DiamondAxe => 606, - Item::DiamondHoe => 607, - Item::NetheriteSword => 608, - Item::NetheriteShovel => 609, - Item::NetheritePickaxe => 610, - Item::NetheriteAxe => 611, - Item::NetheriteHoe => 612, - Item::Stick => 613, - Item::Bowl => 614, - Item::MushroomStew => 615, - Item::String => 616, - Item::Feather => 617, - Item::Gunpowder => 618, - Item::WheatSeeds => 619, - Item::Wheat => 620, - Item::Bread => 621, - Item::LeatherHelmet => 622, - Item::LeatherChestplate => 623, - Item::LeatherLeggings => 624, - Item::LeatherBoots => 625, - Item::ChainmailHelmet => 626, - Item::ChainmailChestplate => 627, - Item::ChainmailLeggings => 628, - Item::ChainmailBoots => 629, - Item::IronHelmet => 630, - Item::IronChestplate => 631, - Item::IronLeggings => 632, - Item::IronBoots => 633, - Item::DiamondHelmet => 634, - Item::DiamondChestplate => 635, - Item::DiamondLeggings => 636, - Item::DiamondBoots => 637, - Item::GoldenHelmet => 638, - Item::GoldenChestplate => 639, - Item::GoldenLeggings => 640, - Item::GoldenBoots => 641, - Item::NetheriteHelmet => 642, - Item::NetheriteChestplate => 643, - Item::NetheriteLeggings => 644, - Item::NetheriteBoots => 645, - Item::Flint => 646, - Item::Porkchop => 647, - Item::CookedPorkchop => 648, - Item::Painting => 649, - Item::GoldenApple => 650, - Item::EnchantedGoldenApple => 651, - Item::OakSign => 652, - Item::SpruceSign => 653, - Item::BirchSign => 654, - Item::JungleSign => 655, - Item::AcaciaSign => 656, - Item::DarkOakSign => 657, - Item::CrimsonSign => 658, - Item::WarpedSign => 659, - Item::Bucket => 660, - Item::WaterBucket => 661, - Item::LavaBucket => 662, - Item::Minecart => 663, - Item::Saddle => 664, - Item::Redstone => 665, - Item::Snowball => 666, - Item::OakBoat => 667, - Item::Leather => 668, - Item::MilkBucket => 669, - Item::PufferfishBucket => 670, - Item::SalmonBucket => 671, - Item::CodBucket => 672, - Item::TropicalFishBucket => 673, - Item::Brick => 674, - Item::ClayBall => 675, - Item::DriedKelpBlock => 676, - Item::Paper => 677, - Item::Book => 678, - Item::SlimeBall => 679, - Item::ChestMinecart => 680, - Item::FurnaceMinecart => 681, - Item::Egg => 682, - Item::Compass => 683, - Item::FishingRod => 684, - Item::Clock => 685, - Item::GlowstoneDust => 686, - Item::Cod => 687, - Item::Salmon => 688, - Item::TropicalFish => 689, - Item::Pufferfish => 690, - Item::CookedCod => 691, - Item::CookedSalmon => 692, - Item::InkSac => 693, - Item::CocoaBeans => 694, - Item::LapisLazuli => 695, - Item::WhiteDye => 696, - Item::OrangeDye => 697, - Item::MagentaDye => 698, - Item::LightBlueDye => 699, - Item::YellowDye => 700, - Item::LimeDye => 701, - Item::PinkDye => 702, - Item::GrayDye => 703, - Item::LightGrayDye => 704, - Item::CyanDye => 705, - Item::PurpleDye => 706, - Item::BlueDye => 707, - Item::BrownDye => 708, - Item::GreenDye => 709, - Item::RedDye => 710, - Item::BlackDye => 711, - Item::BoneMeal => 712, - Item::Bone => 713, - Item::Sugar => 714, - Item::Cake => 715, - Item::WhiteBed => 716, - Item::OrangeBed => 717, - Item::MagentaBed => 718, - Item::LightBlueBed => 719, - Item::YellowBed => 720, - Item::LimeBed => 721, - Item::PinkBed => 722, - Item::GrayBed => 723, - Item::LightGrayBed => 724, - Item::CyanBed => 725, - Item::PurpleBed => 726, - Item::BlueBed => 727, - Item::BrownBed => 728, - Item::GreenBed => 729, - Item::RedBed => 730, - Item::BlackBed => 731, - Item::Cookie => 732, - Item::FilledMap => 733, - Item::Shears => 734, - Item::MelonSlice => 735, - Item::DriedKelp => 736, - Item::PumpkinSeeds => 737, - Item::MelonSeeds => 738, - Item::Beef => 739, - Item::CookedBeef => 740, - Item::Chicken => 741, - Item::CookedChicken => 742, - Item::RottenFlesh => 743, - Item::EnderPearl => 744, - Item::BlazeRod => 745, - Item::GhastTear => 746, - Item::GoldNugget => 747, - Item::NetherWart => 748, - Item::Potion => 749, - Item::GlassBottle => 750, - Item::SpiderEye => 751, - Item::FermentedSpiderEye => 752, - Item::BlazePowder => 753, - Item::MagmaCream => 754, - Item::BrewingStand => 755, - Item::Cauldron => 756, - Item::EnderEye => 757, - Item::GlisteringMelonSlice => 758, - Item::BatSpawnEgg => 759, - Item::BeeSpawnEgg => 760, - Item::BlazeSpawnEgg => 761, - Item::CatSpawnEgg => 762, - Item::CaveSpiderSpawnEgg => 763, - Item::ChickenSpawnEgg => 764, - Item::CodSpawnEgg => 765, - Item::CowSpawnEgg => 766, - Item::CreeperSpawnEgg => 767, - Item::DolphinSpawnEgg => 768, - Item::DonkeySpawnEgg => 769, - Item::DrownedSpawnEgg => 770, - Item::ElderGuardianSpawnEgg => 771, - Item::EndermanSpawnEgg => 772, - Item::EndermiteSpawnEgg => 773, - Item::EvokerSpawnEgg => 774, - Item::FoxSpawnEgg => 775, - Item::GhastSpawnEgg => 776, - Item::GuardianSpawnEgg => 777, - Item::HoglinSpawnEgg => 778, - Item::HorseSpawnEgg => 779, - Item::HuskSpawnEgg => 780, - Item::LlamaSpawnEgg => 781, - Item::MagmaCubeSpawnEgg => 782, - Item::MooshroomSpawnEgg => 783, - Item::MuleSpawnEgg => 784, - Item::OcelotSpawnEgg => 785, - Item::PandaSpawnEgg => 786, - Item::ParrotSpawnEgg => 787, - Item::PhantomSpawnEgg => 788, - Item::PigSpawnEgg => 789, - Item::PiglinSpawnEgg => 790, - Item::PiglinBruteSpawnEgg => 791, - Item::PillagerSpawnEgg => 792, - Item::PolarBearSpawnEgg => 793, - Item::PufferfishSpawnEgg => 794, - Item::RabbitSpawnEgg => 795, - Item::RavagerSpawnEgg => 796, - Item::SalmonSpawnEgg => 797, - Item::SheepSpawnEgg => 798, - Item::ShulkerSpawnEgg => 799, - Item::SilverfishSpawnEgg => 800, - Item::SkeletonSpawnEgg => 801, - Item::SkeletonHorseSpawnEgg => 802, - Item::SlimeSpawnEgg => 803, - Item::SpiderSpawnEgg => 804, - Item::SquidSpawnEgg => 805, - Item::StraySpawnEgg => 806, - Item::StriderSpawnEgg => 807, - Item::TraderLlamaSpawnEgg => 808, - Item::TropicalFishSpawnEgg => 809, - Item::TurtleSpawnEgg => 810, - Item::VexSpawnEgg => 811, - Item::VillagerSpawnEgg => 812, - Item::VindicatorSpawnEgg => 813, - Item::WanderingTraderSpawnEgg => 814, - Item::WitchSpawnEgg => 815, - Item::WitherSkeletonSpawnEgg => 816, - Item::WolfSpawnEgg => 817, - Item::ZoglinSpawnEgg => 818, - Item::ZombieSpawnEgg => 819, - Item::ZombieHorseSpawnEgg => 820, - Item::ZombieVillagerSpawnEgg => 821, - Item::ZombifiedPiglinSpawnEgg => 822, - Item::ExperienceBottle => 823, - Item::FireCharge => 824, - Item::WritableBook => 825, - Item::WrittenBook => 826, - Item::Emerald => 827, - Item::ItemFrame => 828, - Item::FlowerPot => 829, - Item::Carrot => 830, - Item::Potato => 831, - Item::BakedPotato => 832, - Item::PoisonousPotato => 833, - Item::Map => 834, - Item::GoldenCarrot => 835, - Item::SkeletonSkull => 836, - Item::WitherSkeletonSkull => 837, - Item::PlayerHead => 838, - Item::ZombieHead => 839, - Item::CreeperHead => 840, - Item::DragonHead => 841, - Item::CarrotOnAStick => 842, - Item::WarpedFungusOnAStick => 843, - Item::NetherStar => 844, - Item::PumpkinPie => 845, - Item::FireworkRocket => 846, - Item::FireworkStar => 847, - Item::EnchantedBook => 848, - Item::NetherBrick => 849, - Item::Quartz => 850, - Item::TntMinecart => 851, - Item::HopperMinecart => 852, - Item::PrismarineShard => 853, - Item::PrismarineCrystals => 854, - Item::Rabbit => 855, - Item::CookedRabbit => 856, - Item::RabbitStew => 857, - Item::RabbitFoot => 858, - Item::RabbitHide => 859, - Item::ArmorStand => 860, - Item::IronHorseArmor => 861, - Item::GoldenHorseArmor => 862, - Item::DiamondHorseArmor => 863, - Item::LeatherHorseArmor => 864, - Item::Lead => 865, - Item::NameTag => 866, - Item::CommandBlockMinecart => 867, - Item::Mutton => 868, - Item::CookedMutton => 869, - Item::WhiteBanner => 870, - Item::OrangeBanner => 871, - Item::MagentaBanner => 872, - Item::LightBlueBanner => 873, - Item::YellowBanner => 874, - Item::LimeBanner => 875, - Item::PinkBanner => 876, - Item::GrayBanner => 877, - Item::LightGrayBanner => 878, - Item::CyanBanner => 879, - Item::PurpleBanner => 880, - Item::BlueBanner => 881, - Item::BrownBanner => 882, - Item::GreenBanner => 883, - Item::RedBanner => 884, - Item::BlackBanner => 885, - Item::EndCrystal => 886, - Item::ChorusFruit => 887, - Item::PoppedChorusFruit => 888, - Item::Beetroot => 889, - Item::BeetrootSeeds => 890, - Item::BeetrootSoup => 891, - Item::DragonBreath => 892, - Item::SplashPotion => 893, - Item::SpectralArrow => 894, - Item::TippedArrow => 895, - Item::LingeringPotion => 896, - Item::Shield => 897, - Item::Elytra => 898, - Item::SpruceBoat => 899, - Item::BirchBoat => 900, - Item::JungleBoat => 901, - Item::AcaciaBoat => 902, - Item::DarkOakBoat => 903, - Item::TotemOfUndying => 904, - Item::ShulkerShell => 905, - Item::IronNugget => 906, - Item::KnowledgeBook => 907, - Item::DebugStick => 908, - Item::MusicDisc13 => 909, - Item::MusicDiscCat => 910, - Item::MusicDiscBlocks => 911, - Item::MusicDiscChirp => 912, - Item::MusicDiscFar => 913, - Item::MusicDiscMall => 914, - Item::MusicDiscMellohi => 915, - Item::MusicDiscStal => 916, - Item::MusicDiscStrad => 917, - Item::MusicDiscWard => 918, - Item::MusicDisc11 => 919, - Item::MusicDiscWait => 920, - Item::MusicDiscPigstep => 921, - Item::Trident => 922, - Item::PhantomMembrane => 923, - Item::NautilusShell => 924, - Item::HeartOfTheSea => 925, - Item::Crossbow => 926, - Item::SuspiciousStew => 927, - Item::Loom => 928, - Item::FlowerBannerPattern => 929, - Item::CreeperBannerPattern => 930, - Item::SkullBannerPattern => 931, - Item::MojangBannerPattern => 932, - Item::GlobeBannerPattern => 933, - Item::PiglinBannerPattern => 934, - Item::Composter => 935, - Item::Barrel => 936, - Item::Smoker => 937, - Item::BlastFurnace => 938, - Item::CartographyTable => 939, - Item::FletchingTable => 940, - Item::Grindstone => 941, - Item::Lectern => 942, - Item::SmithingTable => 943, - Item::Stonecutter => 944, - Item::Bell => 945, - Item::Lantern => 946, - Item::SoulLantern => 947, - Item::SweetBerries => 948, - Item::Campfire => 949, - Item::SoulCampfire => 950, - Item::Shroomlight => 951, - Item::Honeycomb => 952, - Item::BeeNest => 953, - Item::Beehive => 954, - Item::HoneyBottle => 955, - Item::HoneyBlock => 956, - Item::HoneycombBlock => 957, - Item::Lodestone => 958, - Item::NetheriteBlock => 959, - Item::AncientDebris => 960, - Item::Target => 961, - Item::CryingObsidian => 962, - Item::Blackstone => 963, - Item::BlackstoneSlab => 964, - Item::BlackstoneStairs => 965, - Item::GildedBlackstone => 966, - Item::PolishedBlackstone => 967, - Item::PolishedBlackstoneSlab => 968, - Item::PolishedBlackstoneStairs => 969, - Item::ChiseledPolishedBlackstone => 970, - Item::PolishedBlackstoneBricks => 971, - Item::PolishedBlackstoneBrickSlab => 972, - Item::PolishedBlackstoneBrickStairs => 973, - Item::CrackedPolishedBlackstoneBricks => 974, - Item::RespawnAnchor => 975, + Item::BirchStairs => 319, + Item::BrownCarpet => 385, + Item::CrimsonStairs => 321, + Item::Chain => 296, + Item::PrismarineBrickStairs => 436, + Item::DeepslateCopperOre => 45, + Item::ShulkerBox => 451, + Item::BoneBlock => 449, + Item::Leather => 781, + Item::WarpedWartBlock => 447, + Item::MagentaConcrete => 486, + Item::WritableBook => 942, + Item::ChiseledQuartzBlock => 349, + Item::ChiseledSandstone => 147, + Item::OrangeCarpet => 374, + Item::DeepslateGoldOre => 47, + Item::RedstoneLamp => 607, + Item::WarpedButton => 618, + Item::DirtPath => 393, + Item::BirchTrapdoor => 643, + Item::WarpedFungusOnAStick => 668, + Item::BrickSlab => 218, + Item::GlowstoneDust => 800, + Item::YellowBanner => 986, + Item::SplashPotion => 1005, + Item::LapisBlock => 145, + Item::Lodestone => 1064, + Item::Cornflower => 183, + Item::PointedDripstone => 1100, + Item::WhiteStainedGlassPane => 416, + Item::HayBlock => 372, + Item::GoldenChestplate => 755, + Item::BirchLog => 103, + Item::Chicken => 855, + Item::StrippedCrimsonStem => 115, + Item::OrangeStainedGlassPane => 417, + Item::GrayWool => 164, + Item::CyanGlazedTerracotta => 477, + Item::RepeatingCommandBlock => 443, + Item::BlueIce => 547, + Item::FireCharge => 941, + Item::Candle => 1079, + Item::ExposedCutCopperSlab => 82, + Item::MooshroomSpawnEgg => 900, + Item::BakedPotato => 949, + Item::RedShulkerBox => 466, + Item::Hopper => 595, + Item::OrangeConcrete => 485, + Item::StoneShovel => 705, + Item::OakPressurePlate => 623, + Item::EndStone => 312, + Item::BrickStairs => 301, + Item::DeadBrainCoral => 532, + Item::ElderGuardianSpawnEgg => 886, + Item::Light => 371, + Item::WarpedFence => 264, + Item::QuartzSlab => 221, + Item::Gunpowder => 734, + Item::Bow => 682, + Item::BrownDye => 822, + Item::Cod => 801, + Item::RedNetherBrickSlab => 577, + Item::MagentaBed => 832, + Item::AcaciaLog => 105, + Item::GrayBed => 837, + Item::InfestedStoneBricks => 278, + Item::LightGrayStainedGlass => 408, + Item::TubeCoralBlock => 522, + Item::InkSac => 807, + Item::MusicDisc11 => 1025, + Item::SandstoneSlab => 214, + Item::BeeNest => 1060, + Item::LightBlueStainedGlass => 403, + Item::OakSign => 768, + Item::ChiseledPolishedBlackstone => 1073, + Item::PrismarineSlab => 225, + Item::DarkOakLeaves => 138, + Item::NetherBrickStairs => 309, + Item::ZombieHead => 956, + Item::GraniteWall => 331, + Item::DeadTubeCoral => 536, + Item::SpruceSlab => 205, + Item::PolishedDioriteStairs => 552, + Item::GuardianSpawnEgg => 894, + Item::WolfSpawnEgg => 934, + Item::SquidSpawnEgg => 922, + Item::PurpleTerracotta => 364, + Item::TropicalFish => 803, + Item::FireworkRocket => 961, + Item::BlueShulkerBox => 463, + Item::SlimeSpawnEgg => 920, + Item::DarkOakSlab => 209, + Item::GoldenHelmet => 754, + Item::YellowDye => 814, + Item::StoneBricks => 283, + Item::DeadHornCoralFan => 546, + Item::FlowerPot => 946, + Item::GoldNugget => 861, + Item::MediumAmethystBud => 1097, + Item::TntMinecart => 665, + Item::StrippedWarpedStem => 116, + Item::Chest => 245, + Item::SculkSensor => 603, + Item::PolishedBlackstoneBrickSlab => 1075, + Item::Cobweb => 149, + Item::DeadFireCoralBlock => 520, + Item::BlazePowder => 867, + Item::JungleButton => 614, + Item::SkeletonSkull => 953, + Item::LimeDye => 815, + Item::PigSpawnEgg => 906, + Item::Diorite => 4, + Item::PoweredRail => 657, + Item::YellowWool => 161, + Item::RabbitSpawnEgg => 912, + Item::LightBlueStainedGlassPane => 419, + Item::LavaBucket => 778, + Item::AcaciaLeaves => 137, + Item::Beacon => 324, + Item::DeadBubbleCoral => 533, + Item::DarkOakPlanks => 27, + Item::RoseBush => 396, + Item::Porkchop => 763, + Item::HopperMinecart => 666, + Item::JungleDoor => 635, + Item::WaterBucket => 777, + Item::Beef => 853, + Item::SkeletonSpawnEgg => 918, + Item::OxidizedCopper => 72, + Item::MusicDisc13 => 1015, + Item::PrismarineCrystals => 966, + Item::NetherQuartzOre => 57, + Item::WhiteStainedGlass => 400, + Item::AxolotlSpawnEgg => 873, + Item::Lilac => 395, + Item::BoneMeal => 826, + Item::BrownMushroomBlock => 292, + Item::GoldenCarrot => 952, + Item::QuartzPillar => 352, + Item::IronNugget => 1012, + Item::Potion => 863, + Item::GraniteStairs => 558, + Item::PurpleConcrete => 494, + Item::NameTag => 978, + Item::DeepslateTiles => 289, + Item::DarkOakBoat => 675, + Item::CommandBlock => 323, + Item::MusicDiscBlocks => 1017, + Item::StructureBlock => 676, + Item::Conduit => 548, + Item::GoldenPickaxe => 711, + Item::DiamondChestplate => 751, + Item::JungleSlab => 207, + Item::YellowConcrete => 488, + Item::Redstone => 585, + Item::IronIngot => 692, + Item::CodBucket => 785, + Item::FishingRod => 797, + Item::GreenDye => 823, + Item::ChainmailBoots => 745, + Item::Minecart => 662, + Item::Terracotta => 389, + Item::NetherGoldOre => 56, + Item::BirchLeaves => 135, + Item::LightGrayStainedGlassPane => 424, + Item::DarkOakButton => 616, + Item::LightBlueDye => 813, + Item::MusicDiscMellohi => 1021, + Item::CobbledDeepslateSlab => 580, + Item::CrackedPolishedBlackstoneBricks => 1077, + Item::WitchSpawnEgg => 932, + Item::DeadTubeCoralFan => 542, + Item::WhiteCandle => 1080, + Item::WeatheredCutCopperSlab => 83, + Item::GlowItemFrame => 945, + Item::DeepslateBricks => 287, + Item::RespawnAnchor => 1078, + Item::StrippedJungleLog => 112, + Item::SeaPickle => 156, + Item::DeepslateEmeraldOre => 51, + Item::RedCarpet => 387, + Item::PrismarineBricks => 433, + Item::MossCarpet => 198, + Item::NetheriteHoe => 728, + Item::GoldBlock => 67, + Item::InfestedCrackedStoneBricks => 280, + Item::RawGoldBlock => 62, + Item::JungleSign => 771, + Item::EnchantedBook => 963, + Item::BlueBed => 841, + Item::EndCrystal => 998, + Item::SandstoneWall => 336, + Item::ChiseledStoneBricks => 286, + Item::Torch => 236, + Item::OakBoat => 670, + Item::SoulCampfire => 1057, + Item::Poppy => 174, + Item::BlueGlazedTerracotta => 479, + Item::BeetrootSeeds => 1002, + Item::WeatheredCopper => 71, + Item::WaxedExposedCutCopperSlab => 98, + Item::NetherBrickSlab => 220, + Item::NetherSprouts => 193, + Item::BlackGlazedTerracotta => 483, + Item::HoneyBlock => 593, + Item::OrangeBanner => 983, + Item::HornCoralFan => 541, + Item::MagentaCandle => 1082, + Item::AzaleaLeaves => 139, + Item::FlintAndSteel => 680, + Item::GrayStainedGlassPane => 423, + Item::JungleSapling => 33, + Item::WaxedWeatheredCutCopperStairs => 95, + Item::EvokerSpawnEgg => 889, + Item::SkeletonHorseSpawnEgg => 919, + Item::MagentaWool => 159, + Item::WarpedDoor => 639, + Item::FireCoralFan => 540, + Item::Lectern => 598, + Item::Shield => 1009, + Item::Comparator => 589, + Item::DeepslateTileWall => 345, + Item::PolishedGraniteStairs => 549, + Item::DarkOakLog => 106, + Item::SmoothSandstoneSlab => 573, + Item::Glowstone => 275, + Item::RedstoneTorch => 586, + Item::Scute => 679, + Item::GraniteSlab => 575, + Item::Mutton => 980, + Item::BatSpawnEgg => 874, + Item::MagentaStainedGlassPane => 418, + Item::BlackWool => 172, + Item::Pufferfish => 804, + Item::GlowInkSac => 808, + Item::TubeCoralFan => 537, + Item::DaylightDetector => 602, + Item::ChestMinecart => 663, + Item::ParrotSpawnEgg => 904, + Item::ItemFrame => 944, + Item::SugarCane => 196, + Item::RedMushroom => 188, + Item::LightBlueCarpet => 376, + Item::PetrifiedOakSlab => 216, + Item::CopperIngot => 694, + Item::StonePickaxe => 706, + Item::ChiseledRedSandstone => 440, + Item::PrismarineBrickSlab => 226, + Item::StrippedOakWood => 117, + Item::PolishedDeepslateStairs => 564, + Item::AxolotlBucket => 787, + Item::SmoothSandstone => 230, + Item::DioriteStairs => 562, + Item::JungleFence => 260, + Item::CutCopperStairs => 77, + Item::StrippedOakLog => 109, + Item::Charcoal => 685, + Item::IronHelmet => 746, + Item::PolishedDioriteSlab => 570, + Item::MelonSlice => 849, + Item::WaxedExposedCutCopper => 90, + Item::CutRedSandstoneSlab => 223, + Item::Apple => 681, + Item::WaxedOxidizedCutCopperSlab => 100, + Item::CoalBlock => 59, + Item::MossBlock => 199, + Item::BrainCoralFan => 538, + Item::ExposedCutCopper => 74, + Item::AcaciaBoat => 674, + Item::TippedArrow => 1007, + Item::BrickWall => 327, + Item::SandstoneStairs => 315, + Item::NetheriteScrap => 698, + Item::SmoothQuartzStairs => 557, + Item::OakSapling => 30, + Item::Ice => 252, + Item::AcaciaButton => 615, + Item::YellowConcretePowder => 504, + Item::GrayConcretePowder => 507, + Item::Basalt => 271, + Item::AncientDebris => 58, + Item::EndStoneBrickWall => 337, + Item::PinkConcrete => 490, + Item::BlackConcretePowder => 515, + Item::DeepslateBrickWall => 344, + Item::LightGrayTerracotta => 362, + Item::Cake => 829, + Item::MusicDiscWard => 1024, + Item::StrippedJungleWood => 120, + Item::RedTulip => 178, + Item::Peony => 397, + Item::Emerald => 687, + Item::PinkTulip => 181, + Item::CreeperSpawnEgg => 882, + Item::Egg => 794, + Item::StoneBrickSlab => 219, + Item::Spawner => 243, + Item::BlueStainedGlassPane => 427, + Item::MagentaShulkerBox => 454, + Item::Diamond => 686, + Item::CrimsonFence => 263, + Item::JungleLeaves => 136, + Item::StrippedWarpedHyphae => 124, + Item::WaxedCutCopperSlab => 97, + Item::PolishedGranite => 3, + Item::Snow => 251, + Item::BlueConcrete => 495, + Item::OakButton => 611, + Item::AndesiteStairs => 559, + Item::OrangeGlazedTerracotta => 469, + Item::Compass => 795, + Item::MagmaCream => 868, + Item::RedSand => 38, + Item::NetheriteBoots => 761, + Item::Farmland => 247, + Item::AcaciaStairs => 391, + Item::SmoothQuartzSlab => 574, + Item::WarpedPlanks => 29, + Item::FloweringAzalea => 153, + Item::LeatherHorseArmor => 976, + Item::DarkOakSapling => 35, + Item::YellowGlazedTerracotta => 472, + Item::BirchSlab => 206, + Item::GoldenShovel => 710, + Item::CarvedPumpkin => 266, + Item::JungleTrapdoor => 644, + Item::WoodenHoe => 703, + Item::CobbledDeepslateWall => 342, + Item::PumpkinSeeds => 851, + Item::InfestedMossyStoneBricks => 279, + Item::PiglinSpawnEgg => 907, + Item::CyanBanner => 991, + Item::CookedBeef => 854, + Item::DiamondBlock => 68, + Item::StructureVoid => 450, + Item::WarpedNylium => 20, + Item::DarkPrismarine => 434, + Item::WaxedOxidizedCopper => 88, + Item::JunglePressurePlate => 626, + Item::NetheriteLeggings => 760, + Item::StraySpawnEgg => 923, + Item::DarkOakSign => 773, + Item::Carrot => 947, + Item::Lantern => 1052, + Item::DiamondHelmet => 750, + Item::Brick => 788, + Item::PolishedBlackstoneBrickStairs => 1076, + Item::Granite => 2, + Item::GrayGlazedTerracotta => 475, + Item::CyanStainedGlass => 409, + Item::LightGrayShulkerBox => 460, + Item::Sand => 37, + Item::RedConcrete => 498, + Item::ZombieHorseSpawnEgg => 937, + Item::StrippedAcaciaWood => 121, + Item::GrayTerracotta => 361, + Item::DarkPrismarineStairs => 437, + Item::SpectralArrow => 1006, + Item::Seagrass => 155, + Item::Anvil => 346, + Item::DeadHornCoral => 535, + Item::DiamondSword => 719, + Item::BlueConcretePowder => 511, + Item::MossyStoneBricks => 284, + Item::MilkBucket => 782, + Item::DeadBubbleCoralBlock => 519, + Item::ExposedCutCopperStairs => 78, + Item::DeepslateRedstoneOre => 49, + Item::YellowTerracotta => 358, + Item::BirchSign => 770, + Item::Deepslate => 8, + Item::RawIronBlock => 60, + Item::CrimsonPressurePlate => 629, + Item::AcaciaDoor => 636, + Item::MagentaConcretePowder => 502, + Item::ZombieSpawnEgg => 936, + Item::WitherSkeletonSkull => 954, + Item::BlackShulkerBox => 467, + Item::RedMushroomBlock => 293, + Item::SuspiciousStew => 1034, + Item::YellowShulkerBox => 456, + Item::LightWeightedPressurePlate => 621, + Item::ChainmailLeggings => 744, + Item::CrimsonFenceGate => 655, + Item::GrayConcrete => 491, + Item::DeepslateBrickStairs => 565, + Item::PurpleStainedGlassPane => 426, + Item::DarkOakWood => 130, + Item::Painting => 765, + Item::SmoothRedSandstoneSlab => 568, + Item::CookedSalmon => 806, + Item::Map => 951, + Item::Dandelion => 173, + Item::ShulkerShell => 1011, + Item::MusicDiscWait => 1026, + Item::LightGrayDye => 818, + Item::GhastTear => 860, + Item::ChainmailHelmet => 742, + Item::Bread => 737, + Item::PoisonousPotato => 950, + Item::IronShovel => 715, + Item::EndermiteSpawnEgg => 888, + Item::LightGrayGlazedTerracotta => 476, + Item::NetherBrickWall => 333, + Item::GrayDye => 817, + Item::Elytra => 669, + Item::Snowball => 780, + Item::Melon => 298, + Item::ZoglinSpawnEgg => 935, + Item::BrownWool => 169, + Item::WitherRose => 185, + Item::TallGrass => 398, + Item::Rabbit => 967, + Item::PolishedBlackstoneButton => 610, + Item::WeatheredCutCopper => 75, + Item::EndRod => 237, + Item::Calcite => 11, + Item::BirchButton => 613, + Item::ShulkerSpawnEgg => 916, + Item::DarkPrismarineSlab => 227, + Item::TropicalFishSpawnEgg => 926, + Item::DiamondShovel => 720, + Item::HorseSpawnEgg => 896, + Item::GreenWool => 170, + Item::OrangeTulip => 179, + Item::CobblestoneStairs => 250, + Item::LimeStainedGlass => 405, + Item::BrownConcrete => 496, + Item::BrownGlazedTerracotta => 480, + Item::TraderLlamaSpawnEgg => 925, + Item::PurpleGlazedTerracotta => 478, + Item::RedNetherBrickStairs => 560, + Item::BirchPressurePlate => 625, + Item::WarpedFenceGate => 656, + Item::DiamondPickaxe => 721, + Item::MossyStoneBrickWall => 330, + Item::CookedChicken => 856, + Item::MagmaCubeSpawnEgg => 899, + Item::NetherBrick => 964, + Item::LightningRod => 601, + Item::BlastFurnace => 1045, + Item::PurpleDye => 820, + Item::ChorusFruit => 999, + Item::DioriteWall => 338, + Item::TotemOfUndying => 1010, + Item::PurpurSlab => 224, + Item::BrownConcretePowder => 512, + Item::BlueCandle => 1091, + Item::WarpedSlab => 211, + Item::PinkConcretePowder => 506, + Item::GoldenHoe => 713, + Item::SlimeBall => 793, + Item::PurpleConcretePowder => 510, + Item::Jigsaw => 677, + Item::CookedCod => 805, + Item::AndesiteWall => 334, + Item::PolishedDeepslateWall => 343, + Item::Grass => 150, + Item::AcaciaWood => 129, + Item::RedWool => 171, + Item::SalmonBucket => 784, + Item::NetherStar => 959, + Item::Sandstone => 146, + Item::GhastSpawnEgg => 891, + Item::StoneSlab => 212, + Item::QuartzBlock => 350, + Item::Furnace => 248, + Item::Clock => 798, + Item::DragonEgg => 314, + Item::Scaffolding => 584, + Item::PiglinBannerPattern => 1041, + Item::HoneyBottle => 1062, + Item::PurpleShulkerBox => 462, + Item::StonePressurePlate => 619, + Item::OakStairs => 244, + Item::SpruceTrapdoor => 642, + Item::PolishedBlackstoneSlab => 1071, + Item::OrangeWool => 158, + Item::SoulSoil => 270, + Item::DeepslateIronOre => 43, + Item::Barrier => 370, + Item::LlamaSpawnEgg => 898, + Item::HuskSpawnEgg => 897, + Item::CommandBlockMinecart => 979, + Item::LightBlueConcrete => 487, + Item::CocoaBeans => 809, + Item::WrittenBook => 943, + Item::HoneycombBlock => 1063, + Item::BubbleCoralBlock => 524, + Item::DeadFireCoral => 534, + Item::LimeConcretePowder => 505, + Item::WaxedCutCopperStairs => 93, + Item::RedstoneBlock => 587, + Item::WarpedPressurePlate => 630, + Item::RedSandstoneStairs => 442, + Item::StoneBrickWall => 332, + Item::LightGrayBed => 838, + Item::MossyCobblestone => 234, + Item::FoxSpawnEgg => 890, + Item::AcaciaFenceGate => 653, + Item::WarpedSign => 775, + Item::Bundle => 796, + Item::SmoothRedSandstone => 229, + Item::ChiseledNetherBricks => 307, + Item::OxidizedCutCopper => 76, + Item::Bookshelf => 233, + Item::NetheriteSword => 724, + Item::AcaciaSign => 772, + Item::Arrow => 683, + Item::OrangeBed => 831, + Item::SilverfishSpawnEgg => 917, + Item::SoulLantern => 1053, + Item::PinkCandle => 1086, + Item::DriedKelp => 850, + Item::SpruceSign => 769, + Item::PurpleCarpet => 383, + Item::EndStoneBrickSlab => 572, + Item::BirchSapling => 32, + Item::Sunflower => 394, + Item::Book => 792, + Item::CrimsonFungus => 189, + Item::RabbitHide => 971, + Item::EndStoneBrickStairs => 554, + Item::StoneStairs => 555, + Item::Piston => 590, + Item::WhiteWool => 157, + Item::SnowBlock => 253, + Item::AzureBluet => 177, + Item::ExposedCopper => 70, + Item::CutCopper => 73, + Item::GreenCandle => 1093, + Item::ChainCommandBlock => 444, + Item::YellowStainedGlass => 404, + Item::GreenTerracotta => 367, + Item::LapisLazuli => 688, + Item::NetheriteIngot => 697, + Item::PufferfishSpawnEgg => 911, + Item::RedTerracotta => 368, + Item::InfestedDeepslate => 282, + Item::PackedIce => 390, + Item::InfestedCobblestone => 277, + Item::AcaciaPlanks => 26, + Item::WoodenPickaxe => 701, + Item::StrippedAcaciaLog => 113, + Item::HeavyWeightedPressurePlate => 622, + Item::MossyCobblestoneStairs => 553, + Item::Bamboo => 203, + Item::FloweringAzaleaLeaves => 140, + Item::CrimsonSign => 774, + Item::MusicDiscChirp => 1018, + Item::IronLeggings => 748, + Item::LightBlueGlazedTerracotta => 471, + Item::BlackStainedGlassPane => 431, + Item::PinkBed => 836, + Item::NautilusShell => 1031, + Item::EnchantingTable => 310, + Item::PurpurBlock => 240, + Item::PlayerHead => 955, + Item::WhiteTulip => 180, + Item::IronBars => 295, + Item::StoneAxe => 707, + Item::EnchantedGoldenApple => 767, + Item::DeadBubbleCoralFan => 544, + Item::BlackCarpet => 388, + Item::WaxedWeatheredCutCopperSlab => 99, + Item::BlueDye => 821, + Item::SmoothBasalt => 273, + Item::CoarseDirt => 16, + Item::Repeater => 588, + Item::TwistingVines => 195, + Item::PinkCarpet => 379, + Item::RedSandstone => 439, + Item::OakWood => 125, + Item::SpruceSapling => 31, + Item::CrimsonNylium => 19, + Item::JungleBoat => 673, + Item::WheatSeeds => 735, + Item::CartographyTable => 1046, + Item::DetectorRail => 658, + Item::AmethystShard => 690, + Item::IronHoe => 718, + Item::JunglePlanks => 25, + Item::RedSandstoneSlab => 222, + Item::YellowCarpet => 377, + Item::NetherWartBlock => 446, + Item::Jukebox => 256, + Item::WoodenShovel => 700, + Item::CookedPorkchop => 764, + Item::JungleWood => 128, + Item::NetherBricks => 305, + Item::SpiderEye => 865, + Item::SmallAmethystBud => 1096, + Item::Potato => 948, + Item::Barrel => 1043, + Item::Cactus => 254, + Item::WarpedHyphae => 132, + Item::ZombieVillagerSpawnEgg => 938, + Item::Flint => 762, + Item::WaxedWeatheredCopper => 87, + Item::IronChestplate => 747, + Item::LeatherHelmet => 738, + Item::LightBlueBanner => 985, + Item::SpruceFenceGate => 650, + Item::DeepslateTileStairs => 566, + Item::FireworkStar => 962, + Item::TubeCoral => 527, + Item::ChippedAnvil => 347, + Item::StrippedDarkOakWood => 122, + Item::PurpurStairs => 242, + Item::BlueCarpet => 384, + Item::CyanStainedGlassPane => 425, + Item::PinkShulkerBox => 458, + Item::EnderPearl => 858, + Item::BlazeRod => 859, + Item::DeadTubeCoralBlock => 517, + Item::Tuff => 12, + Item::IronHorseArmor => 973, + Item::PinkGlazedTerracotta => 474, + Item::ActivatorRail => 660, + Item::WhiteGlazedTerracotta => 468, + Item::BigDripleaf => 201, + Item::MusicDiscStal => 1022, + Item::RedSandstoneWall => 329, + Item::EmeraldOre => 50, + Item::GoldenSword => 709, + Item::LeatherBoots => 741, + Item::AcaciaSapling => 34, + Item::EmeraldBlock => 317, + Item::FireCoral => 530, + Item::PinkDye => 816, + Item::BrownBed => 842, + Item::PrismarineShard => 965, + Item::DebugStick => 1014, + Item::DiamondHoe => 723, + Item::CyanConcrete => 493, + Item::WhiteTerracotta => 354, + Item::Glass => 143, + Item::PinkBanner => 988, + Item::Blackstone => 1066, + Item::MusicDiscOtherside => 1027, + Item::CobbledDeepslate => 9, + Item::RabbitStew => 969, + Item::LightGrayBanner => 990, + Item::StrippedDarkOakLog => 114, + Item::PrismarineWall => 328, + Item::SoulTorch => 274, + Item::Lever => 600, + Item::BlueBanner => 993, + Item::PurpurPillar => 241, + Item::PiglinBruteSpawnEgg => 908, + Item::CrimsonHyphae => 131, + Item::DrownedSpawnEgg => 885, + Item::CyanCarpet => 382, + Item::NetherWart => 862, + Item::WhiteShulkerBox => 452, + Item::Cookie => 846, + Item::BlazeSpawnEgg => 876, + Item::GreenCarpet => 386, + Item::OakTrapdoor => 641, + Item::GlobeBannerPattern => 1040, + Item::DeadBush => 154, + Item::PinkStainedGlass => 406, + Item::RawIron => 691, + Item::BlueOrchid => 175, + Item::Saddle => 661, + Item::WoodenSword => 699, + Item::MusicDiscFar => 1019, + Item::WanderingTraderSpawnEgg => 931, + Item::PurpleWool => 167, + Item::LimeCandle => 1085, + Item::DeepslateLapisOre => 53, + Item::AcaciaPressurePlate => 627, + Item::CyanBed => 839, + Item::BrainCoral => 528, + Item::QuartzBricks => 351, + Item::MagentaTerracotta => 356, + Item::PowderSnowBucket => 779, + Item::GlisteringMelonSlice => 872, + Item::PurpleBanner => 992, + Item::GrayShulkerBox => 459, + Item::Allium => 176, + Item::BlackstoneWall => 339, + Item::IronBoots => 749, + Item::PoppedChorusFruit => 1000, + Item::MagentaStainedGlass => 402, + Item::Smoker => 1044, + Item::PandaSpawnEgg => 903, + Item::InfestedChiseledStoneBricks => 281, + Item::CobbledDeepslateStairs => 563, + Item::PolishedBlackstoneBrickWall => 341, + Item::NetheritePickaxe => 726, + Item::LightGrayConcretePowder => 508, + Item::CaveSpiderSpawnEgg => 878, + Item::PolishedBlackstone => 1070, + Item::LimeConcrete => 489, + Item::Cobblestone => 21, + Item::CoalOre => 40, + Item::Stone => 1, + Item::BirchWood => 127, + Item::PinkStainedGlassPane => 422, + Item::RedConcretePowder => 514, + Item::Stick => 729, + Item::BlackConcrete => 499, + Item::RootedDirt => 18, + Item::CyanConcretePowder => 509, + Item::CodSpawnEgg => 880, + Item::SalmonSpawnEgg => 914, + Item::EndPortalFrame => 311, + Item::SmithingTable => 1049, + Item::SpruceFence => 258, + Item::GrayCarpet => 380, + Item::CarrotOnAStick => 667, + Item::BubbleCoralFan => 539, + Item::PolishedAndesiteStairs => 561, + Item::Quartz => 689, + Item::StoneBrickStairs => 302, + Item::AndesiteSlab => 576, + Item::WhiteDye => 810, + Item::YellowBed => 834, + Item::CryingObsidian => 1065, + Item::MelonSeeds => 852, + Item::Target => 599, + Item::RawCopperBlock => 61, + Item::GoldenApple => 766, + Item::SmoothStone => 231, + Item::OakFence => 257, + Item::OakLog => 101, + Item::VillagerSpawnEgg => 929, + Item::MusicDiscStrad => 1023, + Item::SpruceLeaves => 134, + Item::WhiteConcretePowder => 500, + Item::BrownShulkerBox => 464, + Item::JungleFenceGate => 652, + Item::GreenBed => 843, + Item::RavagerSpawnEgg => 913, + Item::Fern => 151, + Item::WarpedFungus => 190, + Item::GlowLichen => 300, + Item::GreenGlazedTerracotta => 481, + Item::OrangeConcretePowder => 501, + Item::SpruceBoat => 671, + Item::Trident => 1029, + Item::AcaciaFence => 261, + Item::CrackedNetherBricks => 306, + Item::FilledMap => 847, + Item::PolishedGraniteSlab => 567, + Item::Lead => 977, + Item::EndStoneBricks => 313, + Item::CrackedDeepslateBricks => 288, + Item::BlackBed => 845, + Item::BubbleCoral => 529, + Item::FletchingTable => 1047, + Item::DeadBrainCoralBlock => 518, + Item::SkullBannerPattern => 1038, + Item::Paper => 791, + Item::GlowBerries => 1055, + Item::WaxedOxidizedCutCopper => 92, + Item::LightBlueConcretePowder => 503, + Item::BeetrootSoup => 1003, + Item::QuartzStairs => 353, + Item::ChainmailChestplate => 743, + Item::PolishedDeepslate => 10, + Item::OxidizedCutCopperSlab => 84, + Item::LimeStainedGlassPane => 421, + Item::MusicDiscCat => 1016, + Item::DarkOakFenceGate => 654, + Item::DeepslateTileSlab => 583, + Item::WoodenAxe => 702, + Item::DiamondBoots => 753, + Item::LightGrayCandle => 1088, + Item::WetSponge => 142, + Item::GrayCandle => 1087, + Item::LargeAmethystBud => 1098, + Item::AcaciaSlab => 208, + Item::Composter => 1042, + Item::LightGrayConcrete => 492, + Item::MuleSpawnEgg => 901, + Item::DiamondAxe => 722, + Item::LeatherChestplate => 739, + Item::YellowCandle => 1084, + Item::WhiteCarpet => 373, + Item::NetheriteShovel => 725, + Item::OakDoor => 632, + Item::LimeBed => 835, + Item::LilyOfTheValley => 184, + Item::TintedGlass => 144, + Item::Rail => 659, + Item::LimeShulkerBox => 457, + Item::LilyPad => 304, + Item::MusicDiscMall => 1020, + Item::RedGlazedTerracotta => 482, + Item::CrimsonPlanks => 28, + Item::Dropper => 597, + Item::Cauldron => 870, + Item::MojangBannerPattern => 1039, + Item::CyanWool => 166, + Item::Coal => 684, + Item::IronOre => 42, + Item::WaxedCutCopper => 89, + Item::LargeFern => 399, + Item::RedNetherBrickWall => 335, + Item::WarpedTrapdoor => 648, + Item::SmoothQuartz => 228, + Item::RedNetherBricks => 448, + Item::Dirt => 15, + Item::DeepslateDiamondOre => 55, + Item::DeadFireCoralFan => 545, + Item::WaxedExposedCopper => 86, + Item::DarkOakPressurePlate => 628, + Item::BlueWool => 168, + Item::BeeSpawnEgg => 875, + Item::SpiderSpawnEgg => 921, + Item::RawGold => 695, + Item::CrimsonStem => 107, + Item::TripwireHook => 604, + Item::ArmorStand => 972, + Item::RedStainedGlassPane => 430, + Item::GreenBanner => 995, + Item::RedStainedGlass => 414, + Item::TurtleHelmet => 678, + Item::SpruceWood => 126, + Item::CutRedSandstone => 441, + Item::DiamondOre => 54, + Item::LightBlueWool => 160, + Item::BrownStainedGlass => 412, + Item::GrayBanner => 989, + Item::HeartOfTheSea => 1032, + Item::ChorusFlower => 239, + Item::Sugar => 828, + Item::GrassBlock => 14, + Item::BirchBoat => 672, + Item::CookedRabbit => 968, + Item::StrippedSpruceWood => 118, + Item::DeepslateBrickSlab => 582, + Item::EndermanSpawnEgg => 887, + Item::MagentaGlazedTerracotta => 470, + Item::FurnaceMinecart => 664, + Item::ZombifiedPiglinSpawnEgg => 939, + Item::SweetBerries => 1054, + Item::String => 732, + Item::GoldenLeggings => 756, + Item::MagentaBanner => 984, + Item::OxidizedCutCopperStairs => 80, + Item::GoldIngot => 696, + Item::RottenFlesh => 857, + Item::Bedrock => 36, + Item::AcaciaTrapdoor => 645, + Item::EnderChest => 316, + Item::PurpleStainedGlass => 410, + Item::DonkeySpawnEgg => 884, + Item::Stonecutter => 1050, + Item::CutSandstone => 148, + Item::GlassBottle => 864, + Item::SprucePlanks => 23, + Item::GreenConcretePowder => 513, + Item::DiamondLeggings => 752, + Item::BlackCandle => 1095, + Item::OrangeStainedGlass => 401, + Item::DragonBreath => 1004, + Item::Shears => 848, + Item::StrippedBirchLog => 111, + Item::Prismarine => 432, + Item::BlackStainedGlass => 415, + Item::WaxedWeatheredCutCopper => 91, + Item::CrimsonDoor => 638, + Item::BlackstoneStairs => 1068, + Item::PumpkinPie => 960, + Item::IronDoor => 631, + Item::PhantomSpawnEgg => 905, + Item::DiamondHorseArmor => 975, + Item::Kelp => 197, + Item::LeatherLeggings => 740, + Item::VexSpawnEgg => 928, + Item::LightBlueShulkerBox => 455, + Item::StickyPiston => 591, + Item::StrippedBirchWood => 119, + Item::WhiteConcrete => 484, + Item::MossyStoneBrickStairs => 551, + Item::CopperBlock => 66, + Item::Ladder => 249, + Item::CrimsonRoots => 191, + Item::FireCoralBlock => 525, + Item::Feather => 733, + Item::NetheriteChestplate => 759, + Item::OcelotSpawnEgg => 902, + Item::NetherBrickFence => 308, + Item::LightBlueTerracotta => 357, + Item::SporeBlossom => 186, + Item::SmoothStoneSlab => 213, + Item::KnowledgeBook => 1013, + Item::Beehive => 1061, + Item::LapisOre => 52, + Item::JungleLog => 104, + Item::GoatSpawnEgg => 893, + Item::RedCandle => 1094, + Item::ChiseledDeepslate => 291, + Item::LightGrayCarpet => 381, + Item::DolphinSpawnEgg => 883, + Item::DioriteSlab => 579, + Item::Sponge => 141, + Item::ExperienceBottle => 940, + Item::Tnt => 606, + Item::Dispenser => 596, + Item::Netherrack => 268, + Item::PolishedBasalt => 272, + Item::GoldOre => 46, + Item::CyanCandle => 1089, + Item::LimeCarpet => 378, + Item::GlassPane => 297, + Item::PillagerSpawnEgg => 909, + Item::Bucket => 776, + Item::BlackDye => 825, + Item::JungleStairs => 320, + Item::WhiteBanner => 982, + Item::BrownBanner => 994, + Item::PolarBearSpawnEgg => 910, + Item::ChickenSpawnEgg => 879, + Item::BirchDoor => 634, + Item::DeadBrainCoralFan => 543, + Item::StriderSpawnEgg => 924, + Item::MagmaBlock => 445, + Item::DarkOakFence => 262, + Item::DarkOakStairs => 392, + Item::MossyStoneBrickSlab => 569, + Item::CutCopperSlab => 81, + Item::BrainCoralBlock => 523, + Item::TropicalFishBucket => 786, + Item::PrismarineStairs => 435, + Item::CrackedDeepslateTiles => 290, + Item::DripstoneBlock => 13, + Item::GoldenBoots => 757, + Item::BrownCandle => 1092, + Item::TurtleSpawnEgg => 927, + Item::SmoothRedSandstoneStairs => 550, + Item::SheepSpawnEgg => 915, + Item::GreenConcrete => 497, + Item::Gravel => 39, } } - - /// Gets a `Item` by its `id`. + #[doc = "Gets a `Item` by its `id`."] + #[inline] pub fn from_id(id: u32) -> Option { match id { - 0 => Some(Item::Air), - 1 => Some(Item::Stone), - 2 => Some(Item::Granite), - 3 => Some(Item::PolishedGranite), - 4 => Some(Item::Diorite), - 5 => Some(Item::PolishedDiorite), + 246 => Some(Item::CraftingTable), + 360 => Some(Item::PinkTerracotta), + 259 => Some(Item::BirchFence), + 355 => Some(Item::OrangeTerracotta), + 799 => Some(Item::Spyglass), + 1008 => Some(Item::LingeringPotion), + 997 => Some(Item::BlackBanner), + 411 => Some(Item::BlueStainedGlass), + 708 => Some(Item::StoneHoe), + 363 => Some(Item::CyanTerracotta), + 194 => Some(Item::WeepingVines), + 165 => Some(Item::LightGrayWool), + 1033 => Some(Item::Crossbow), + 624 => Some(Item::SprucePressurePlate), + 704 => Some(Item::StoneSword), + 267 => Some(Item::JackOLantern), + 881 => Some(Item::CowSpawnEgg), + 531 => Some(Item::HornCoral), + 375 => Some(Item::MagentaCarpet), + 1090 => Some(Item::PurpleCandle), + 318 => Some(Item::SpruceStairs), + 110 => Some(Item::StrippedSpruceLog), + 758 => Some(Item::NetheriteHelmet), + 871 => Some(Item::EnderEye), + 1001 => Some(Item::Beetroot), + 365 => Some(Item::BlueTerracotta), + 96 => Some(Item::WaxedOxidizedCutCopperStairs), + 637 => Some(Item::DarkOakDoor), + 571 => Some(Item::MossyCobblestoneSlab), + 461 => Some(Item::CyanShulkerBox), + 594 => Some(Item::Observer), + 65 => Some(Item::IronBlock), + 819 => Some(Item::CyanDye), + 1048 => Some(Item::Grindstone), + 1069 => Some(Item::GildedBlackstone), + 69 => Some(Item::NetheriteBlock), + 526 => Some(Item::HornCoralBlock), + 1058 => Some(Item::Shroomlight), + 44 => Some(Item::CopperOre), + 325 => Some(Item::CobblestoneWall), + 1056 => Some(Item::Campfire), + 340 => Some(Item::PolishedBlackstoneWall), + 182 => Some(Item::OxeyeDaisy), + 649 => Some(Item::OakFenceGate), + 783 => Some(Item::PufferfishBucket), + 420 => Some(Item::YellowStainedGlassPane), + 438 => Some(Item::SeaLantern), + 322 => Some(Item::WarpedStairs), + 473 => Some(Item::LimeGlazedTerracotta), + 970 => Some(Item::RabbitFoot), + 712 => Some(Item::GoldenAxe), 6 => Some(Item::Andesite), + 892 => Some(Item::GlowSquidSpawnEgg), + 608 => Some(Item::NoteBlock), + 453 => Some(Item::OrangeShulkerBox), + 646 => Some(Item::DarkOakTrapdoor), + 790 => Some(Item::DriedKelpBlock), + 521 => Some(Item::DeadHornCoralBlock), + 210 => Some(Item::CrimsonSlab), + 429 => Some(Item::GreenStainedGlassPane), + 366 => Some(Item::BrownTerracotta), + 232 => Some(Item::Bricks), + 714 => Some(Item::IronSword), + 1036 => Some(Item::FlowerBannerPattern), + 1051 => Some(Item::Bell), + 1099 => Some(Item::AmethystCluster), + 48 => Some(Item::RedstoneOre), + 5 => Some(Item::PolishedDiorite), + 285 => Some(Item::CrackedStoneBricks), + 731 => Some(Item::MushroomStew), + 1083 => Some(Item::LightBlueCandle), + 204 => Some(Item::OakSlab), + 255 => Some(Item::Clay), + 24 => Some(Item::BirchPlanks), + 64 => Some(Item::BuddingAmethyst), + 609 => Some(Item::StoneButton), + 592 => Some(Item::SlimeBlock), + 41 => Some(Item::DeepslateCoalOre), + 215 => Some(Item::CutSandstoneSlab), + 824 => Some(Item::RedDye), + 133 => Some(Item::OakLeaves), + 830 => Some(Item::WhiteBed), + 1028 => Some(Item::MusicDiscPigstep), + 933 => Some(Item::WitherSkeletonSpawnEgg), + 812 => Some(Item::MagentaDye), + 299 => Some(Item::Vine), + 123 => Some(Item::StrippedCrimsonHyphae), + 556 => Some(Item::SmoothSandstoneStairs), + 612 => Some(Item::SpruceButton), + 789 => Some(Item::ClayBall), + 294 => Some(Item::MushroomStem), + 200 => Some(Item::HangingRoots), + 359 => Some(Item::LimeTerracotta), + 869 => Some(Item::BrewingStand), + 1035 => Some(Item::Loom), + 94 => Some(Item::WaxedExposedCutCopperStairs), + 1074 => Some(Item::PolishedBlackstoneBricks), + 428 => Some(Item::BrownStainedGlassPane), + 63 => Some(Item::AmethystBlock), + 958 => Some(Item::DragonHead), + 811 => Some(Item::OrangeDye), + 202 => Some(Item::SmallDripleaf), + 238 => Some(Item::ChorusPlant), + 581 => Some(Item::PolishedDeepslateSlab), + 827 => Some(Item::Bone), + 981 => Some(Item::CookedMutton), + 108 => Some(Item::WarpedStem), + 187 => Some(Item::BrownMushroom), + 265 => Some(Item::Pumpkin), + 85 => Some(Item::WaxedCopperBlock), + 516 => Some(Item::TurtleEgg), + 152 => Some(Item::Azalea), + 833 => Some(Item::LightBlueBed), + 1059 => Some(Item::Honeycomb), + 877 => Some(Item::CatSpawnEgg), + 326 => Some(Item::MossyCobblestoneWall), + 217 => Some(Item::CobblestoneSlab), + 235 => Some(Item::Obsidian), + 407 => Some(Item::GrayStainedGlass), + 578 => Some(Item::PolishedAndesiteSlab), + 647 => Some(Item::CrimsonTrapdoor), + 974 => Some(Item::GoldenHorseArmor), + 633 => Some(Item::SpruceDoor), + 716 => Some(Item::IronPickaxe), + 617 => Some(Item::CrimsonButton), + 651 => Some(Item::BirchFenceGate), + 303 => Some(Item::Mycelium), + 957 => Some(Item::CreeperHead), + 369 => Some(Item::BlackTerracotta), + 895 => Some(Item::HoglinSpawnEgg), + 276 => Some(Item::InfestedStone), + 866 => Some(Item::FermentedSpiderEye), + 605 => Some(Item::TrappedChest), + 930 => Some(Item::VindicatorSpawnEgg), + 693 => Some(Item::RawCopper), + 727 => Some(Item::NetheriteAxe), + 162 => Some(Item::LimeWool), + 163 => Some(Item::PinkWool), + 22 => Some(Item::OakPlanks), + 79 => Some(Item::WeatheredCutCopperStairs), + 736 => Some(Item::Wheat), + 413 => Some(Item::GreenStainedGlass), + 348 => Some(Item::DamagedAnvil), + 1037 => Some(Item::CreeperBannerPattern), + 1072 => Some(Item::PolishedBlackstoneStairs), + 1067 => Some(Item::BlackstoneSlab), + 17 => Some(Item::Podzol), + 269 => Some(Item::SoulSand), + 465 => Some(Item::GreenShulkerBox), + 620 => Some(Item::PolishedBlackstonePressurePlate), + 102 => Some(Item::SpruceLog), + 192 => Some(Item::WarpedRoots), + 996 => Some(Item::RedBanner), + 802 => Some(Item::Salmon), + 1081 => Some(Item::OrangeCandle), + 640 => Some(Item::IronTrapdoor), + 717 => Some(Item::IronAxe), + 1030 => Some(Item::PhantomMembrane), + 987 => Some(Item::LimeBanner), + 840 => Some(Item::PurpleBed), + 730 => Some(Item::Bowl), + 844 => Some(Item::RedBed), 7 => Some(Item::PolishedAndesite), - 8 => Some(Item::GrassBlock), - 9 => Some(Item::Dirt), - 10 => Some(Item::CoarseDirt), - 11 => Some(Item::Podzol), - 12 => Some(Item::CrimsonNylium), - 13 => Some(Item::WarpedNylium), - 14 => Some(Item::Cobblestone), - 15 => Some(Item::OakPlanks), - 16 => Some(Item::SprucePlanks), - 17 => Some(Item::BirchPlanks), - 18 => Some(Item::JunglePlanks), - 19 => Some(Item::AcaciaPlanks), - 20 => Some(Item::DarkOakPlanks), - 21 => Some(Item::CrimsonPlanks), - 22 => Some(Item::WarpedPlanks), - 23 => Some(Item::OakSapling), - 24 => Some(Item::SpruceSapling), - 25 => Some(Item::BirchSapling), - 26 => Some(Item::JungleSapling), - 27 => Some(Item::AcaciaSapling), - 28 => Some(Item::DarkOakSapling), - 29 => Some(Item::Bedrock), - 30 => Some(Item::Sand), - 31 => Some(Item::RedSand), - 32 => Some(Item::Gravel), - 33 => Some(Item::GoldOre), - 34 => Some(Item::IronOre), - 35 => Some(Item::CoalOre), - 36 => Some(Item::NetherGoldOre), - 37 => Some(Item::OakLog), - 38 => Some(Item::SpruceLog), - 39 => Some(Item::BirchLog), - 40 => Some(Item::JungleLog), - 41 => Some(Item::AcaciaLog), - 42 => Some(Item::DarkOakLog), - 43 => Some(Item::CrimsonStem), - 44 => Some(Item::WarpedStem), - 45 => Some(Item::StrippedOakLog), - 46 => Some(Item::StrippedSpruceLog), - 47 => Some(Item::StrippedBirchLog), - 48 => Some(Item::StrippedJungleLog), - 49 => Some(Item::StrippedAcaciaLog), - 50 => Some(Item::StrippedDarkOakLog), - 51 => Some(Item::StrippedCrimsonStem), - 52 => Some(Item::StrippedWarpedStem), - 53 => Some(Item::StrippedOakWood), - 54 => Some(Item::StrippedSpruceWood), - 55 => Some(Item::StrippedBirchWood), - 56 => Some(Item::StrippedJungleWood), - 57 => Some(Item::StrippedAcaciaWood), - 58 => Some(Item::StrippedDarkOakWood), - 59 => Some(Item::StrippedCrimsonHyphae), - 60 => Some(Item::StrippedWarpedHyphae), - 61 => Some(Item::OakWood), - 62 => Some(Item::SpruceWood), - 63 => Some(Item::BirchWood), - 64 => Some(Item::JungleWood), - 65 => Some(Item::AcaciaWood), - 66 => Some(Item::DarkOakWood), - 67 => Some(Item::CrimsonHyphae), - 68 => Some(Item::WarpedHyphae), - 69 => Some(Item::OakLeaves), - 70 => Some(Item::SpruceLeaves), - 71 => Some(Item::BirchLeaves), - 72 => Some(Item::JungleLeaves), - 73 => Some(Item::AcaciaLeaves), - 74 => Some(Item::DarkOakLeaves), - 75 => Some(Item::Sponge), - 76 => Some(Item::WetSponge), - 77 => Some(Item::Glass), - 78 => Some(Item::LapisOre), - 79 => Some(Item::LapisBlock), - 80 => Some(Item::Dispenser), - 81 => Some(Item::Sandstone), - 82 => Some(Item::ChiseledSandstone), - 83 => Some(Item::CutSandstone), - 84 => Some(Item::NoteBlock), - 85 => Some(Item::PoweredRail), - 86 => Some(Item::DetectorRail), - 87 => Some(Item::StickyPiston), - 88 => Some(Item::Cobweb), - 89 => Some(Item::Grass), - 90 => Some(Item::Fern), - 91 => Some(Item::DeadBush), - 92 => Some(Item::Seagrass), - 93 => Some(Item::SeaPickle), - 94 => Some(Item::Piston), - 95 => Some(Item::WhiteWool), - 96 => Some(Item::OrangeWool), - 97 => Some(Item::MagentaWool), - 98 => Some(Item::LightBlueWool), - 99 => Some(Item::YellowWool), - 100 => Some(Item::LimeWool), - 101 => Some(Item::PinkWool), - 102 => Some(Item::GrayWool), - 103 => Some(Item::LightGrayWool), - 104 => Some(Item::CyanWool), - 105 => Some(Item::PurpleWool), - 106 => Some(Item::BlueWool), - 107 => Some(Item::BrownWool), - 108 => Some(Item::GreenWool), - 109 => Some(Item::RedWool), - 110 => Some(Item::BlackWool), - 111 => Some(Item::Dandelion), - 112 => Some(Item::Poppy), - 113 => Some(Item::BlueOrchid), - 114 => Some(Item::Allium), - 115 => Some(Item::AzureBluet), - 116 => Some(Item::RedTulip), - 117 => Some(Item::OrangeTulip), - 118 => Some(Item::WhiteTulip), - 119 => Some(Item::PinkTulip), - 120 => Some(Item::OxeyeDaisy), - 121 => Some(Item::Cornflower), - 122 => Some(Item::LilyOfTheValley), - 123 => Some(Item::WitherRose), - 124 => Some(Item::BrownMushroom), - 125 => Some(Item::RedMushroom), - 126 => Some(Item::CrimsonFungus), - 127 => Some(Item::WarpedFungus), - 128 => Some(Item::CrimsonRoots), - 129 => Some(Item::WarpedRoots), - 130 => Some(Item::NetherSprouts), - 131 => Some(Item::WeepingVines), - 132 => Some(Item::TwistingVines), - 133 => Some(Item::SugarCane), - 134 => Some(Item::Kelp), - 135 => Some(Item::Bamboo), - 136 => Some(Item::GoldBlock), - 137 => Some(Item::IronBlock), - 138 => Some(Item::OakSlab), - 139 => Some(Item::SpruceSlab), - 140 => Some(Item::BirchSlab), - 141 => Some(Item::JungleSlab), - 142 => Some(Item::AcaciaSlab), - 143 => Some(Item::DarkOakSlab), - 144 => Some(Item::CrimsonSlab), - 145 => Some(Item::WarpedSlab), - 146 => Some(Item::StoneSlab), - 147 => Some(Item::SmoothStoneSlab), - 148 => Some(Item::SandstoneSlab), - 149 => Some(Item::CutSandstoneSlab), - 150 => Some(Item::PetrifiedOakSlab), - 151 => Some(Item::CobblestoneSlab), - 152 => Some(Item::BrickSlab), - 153 => Some(Item::StoneBrickSlab), - 154 => Some(Item::NetherBrickSlab), - 155 => Some(Item::QuartzSlab), - 156 => Some(Item::RedSandstoneSlab), - 157 => Some(Item::CutRedSandstoneSlab), - 158 => Some(Item::PurpurSlab), - 159 => Some(Item::PrismarineSlab), - 160 => Some(Item::PrismarineBrickSlab), - 161 => Some(Item::DarkPrismarineSlab), - 162 => Some(Item::SmoothQuartz), - 163 => Some(Item::SmoothRedSandstone), - 164 => Some(Item::SmoothSandstone), - 165 => Some(Item::SmoothStone), - 166 => Some(Item::Bricks), - 167 => Some(Item::Tnt), - 168 => Some(Item::Bookshelf), - 169 => Some(Item::MossyCobblestone), - 170 => Some(Item::Obsidian), - 171 => Some(Item::Torch), - 172 => Some(Item::EndRod), - 173 => Some(Item::ChorusPlant), - 174 => Some(Item::ChorusFlower), - 175 => Some(Item::PurpurBlock), - 176 => Some(Item::PurpurPillar), - 177 => Some(Item::PurpurStairs), - 178 => Some(Item::Spawner), - 179 => Some(Item::OakStairs), - 180 => Some(Item::Chest), - 181 => Some(Item::DiamondOre), - 182 => Some(Item::DiamondBlock), - 183 => Some(Item::CraftingTable), - 184 => Some(Item::Farmland), - 185 => Some(Item::Furnace), - 186 => Some(Item::Ladder), - 187 => Some(Item::Rail), - 188 => Some(Item::CobblestoneStairs), - 189 => Some(Item::Lever), - 190 => Some(Item::StonePressurePlate), - 191 => Some(Item::OakPressurePlate), - 192 => Some(Item::SprucePressurePlate), - 193 => Some(Item::BirchPressurePlate), - 194 => Some(Item::JunglePressurePlate), - 195 => Some(Item::AcaciaPressurePlate), - 196 => Some(Item::DarkOakPressurePlate), - 197 => Some(Item::CrimsonPressurePlate), - 198 => Some(Item::WarpedPressurePlate), - 199 => Some(Item::PolishedBlackstonePressurePlate), - 200 => Some(Item::RedstoneOre), - 201 => Some(Item::RedstoneTorch), - 202 => Some(Item::Snow), - 203 => Some(Item::Ice), - 204 => Some(Item::SnowBlock), - 205 => Some(Item::Cactus), - 206 => Some(Item::Clay), - 207 => Some(Item::Jukebox), - 208 => Some(Item::OakFence), - 209 => Some(Item::SpruceFence), - 210 => Some(Item::BirchFence), - 211 => Some(Item::JungleFence), - 212 => Some(Item::AcaciaFence), - 213 => Some(Item::DarkOakFence), - 214 => Some(Item::CrimsonFence), - 215 => Some(Item::WarpedFence), - 216 => Some(Item::Pumpkin), - 217 => Some(Item::CarvedPumpkin), - 218 => Some(Item::Netherrack), - 219 => Some(Item::SoulSand), - 220 => Some(Item::SoulSoil), - 221 => Some(Item::Basalt), - 222 => Some(Item::PolishedBasalt), - 223 => Some(Item::SoulTorch), - 224 => Some(Item::Glowstone), - 225 => Some(Item::JackOLantern), - 226 => Some(Item::OakTrapdoor), - 227 => Some(Item::SpruceTrapdoor), - 228 => Some(Item::BirchTrapdoor), - 229 => Some(Item::JungleTrapdoor), - 230 => Some(Item::AcaciaTrapdoor), - 231 => Some(Item::DarkOakTrapdoor), - 232 => Some(Item::CrimsonTrapdoor), - 233 => Some(Item::WarpedTrapdoor), - 234 => Some(Item::InfestedStone), - 235 => Some(Item::InfestedCobblestone), - 236 => Some(Item::InfestedStoneBricks), - 237 => Some(Item::InfestedMossyStoneBricks), - 238 => Some(Item::InfestedCrackedStoneBricks), - 239 => Some(Item::InfestedChiseledStoneBricks), - 240 => Some(Item::StoneBricks), - 241 => Some(Item::MossyStoneBricks), - 242 => Some(Item::CrackedStoneBricks), - 243 => Some(Item::ChiseledStoneBricks), - 244 => Some(Item::BrownMushroomBlock), - 245 => Some(Item::RedMushroomBlock), - 246 => Some(Item::MushroomStem), - 247 => Some(Item::IronBars), - 248 => Some(Item::Chain), - 249 => Some(Item::GlassPane), - 250 => Some(Item::Melon), - 251 => Some(Item::Vine), - 252 => Some(Item::OakFenceGate), - 253 => Some(Item::SpruceFenceGate), - 254 => Some(Item::BirchFenceGate), - 255 => Some(Item::JungleFenceGate), - 256 => Some(Item::AcaciaFenceGate), - 257 => Some(Item::DarkOakFenceGate), - 258 => Some(Item::CrimsonFenceGate), - 259 => Some(Item::WarpedFenceGate), - 260 => Some(Item::BrickStairs), - 261 => Some(Item::StoneBrickStairs), - 262 => Some(Item::Mycelium), - 263 => Some(Item::LilyPad), - 264 => Some(Item::NetherBricks), - 265 => Some(Item::CrackedNetherBricks), - 266 => Some(Item::ChiseledNetherBricks), - 267 => Some(Item::NetherBrickFence), - 268 => Some(Item::NetherBrickStairs), - 269 => Some(Item::EnchantingTable), - 270 => Some(Item::EndPortalFrame), - 271 => Some(Item::EndStone), - 272 => Some(Item::EndStoneBricks), - 273 => Some(Item::DragonEgg), - 274 => Some(Item::RedstoneLamp), - 275 => Some(Item::SandstoneStairs), - 276 => Some(Item::EmeraldOre), - 277 => Some(Item::EnderChest), - 278 => Some(Item::TripwireHook), - 279 => Some(Item::EmeraldBlock), - 280 => Some(Item::SpruceStairs), - 281 => Some(Item::BirchStairs), - 282 => Some(Item::JungleStairs), - 283 => Some(Item::CrimsonStairs), - 284 => Some(Item::WarpedStairs), - 285 => Some(Item::CommandBlock), - 286 => Some(Item::Beacon), - 287 => Some(Item::CobblestoneWall), - 288 => Some(Item::MossyCobblestoneWall), - 289 => Some(Item::BrickWall), - 290 => Some(Item::PrismarineWall), - 291 => Some(Item::RedSandstoneWall), - 292 => Some(Item::MossyStoneBrickWall), - 293 => Some(Item::GraniteWall), - 294 => Some(Item::StoneBrickWall), - 295 => Some(Item::NetherBrickWall), - 296 => Some(Item::AndesiteWall), - 297 => Some(Item::RedNetherBrickWall), - 298 => Some(Item::SandstoneWall), - 299 => Some(Item::EndStoneBrickWall), - 300 => Some(Item::DioriteWall), - 301 => Some(Item::BlackstoneWall), - 302 => Some(Item::PolishedBlackstoneWall), - 303 => Some(Item::PolishedBlackstoneBrickWall), - 304 => Some(Item::StoneButton), - 305 => Some(Item::OakButton), - 306 => Some(Item::SpruceButton), - 307 => Some(Item::BirchButton), - 308 => Some(Item::JungleButton), - 309 => Some(Item::AcaciaButton), - 310 => Some(Item::DarkOakButton), - 311 => Some(Item::CrimsonButton), - 312 => Some(Item::WarpedButton), - 313 => Some(Item::PolishedBlackstoneButton), - 314 => Some(Item::Anvil), - 315 => Some(Item::ChippedAnvil), - 316 => Some(Item::DamagedAnvil), - 317 => Some(Item::TrappedChest), - 318 => Some(Item::LightWeightedPressurePlate), - 319 => Some(Item::HeavyWeightedPressurePlate), - 320 => Some(Item::DaylightDetector), - 321 => Some(Item::RedstoneBlock), - 322 => Some(Item::NetherQuartzOre), - 323 => Some(Item::Hopper), - 324 => Some(Item::ChiseledQuartzBlock), - 325 => Some(Item::QuartzBlock), - 326 => Some(Item::QuartzBricks), - 327 => Some(Item::QuartzPillar), - 328 => Some(Item::QuartzStairs), - 329 => Some(Item::ActivatorRail), - 330 => Some(Item::Dropper), - 331 => Some(Item::WhiteTerracotta), - 332 => Some(Item::OrangeTerracotta), - 333 => Some(Item::MagentaTerracotta), - 334 => Some(Item::LightBlueTerracotta), - 335 => Some(Item::YellowTerracotta), - 336 => Some(Item::LimeTerracotta), - 337 => Some(Item::PinkTerracotta), - 338 => Some(Item::GrayTerracotta), - 339 => Some(Item::LightGrayTerracotta), - 340 => Some(Item::CyanTerracotta), - 341 => Some(Item::PurpleTerracotta), - 342 => Some(Item::BlueTerracotta), - 343 => Some(Item::BrownTerracotta), - 344 => Some(Item::GreenTerracotta), - 345 => Some(Item::RedTerracotta), - 346 => Some(Item::BlackTerracotta), - 347 => Some(Item::Barrier), - 348 => Some(Item::IronTrapdoor), - 349 => Some(Item::HayBlock), - 350 => Some(Item::WhiteCarpet), - 351 => Some(Item::OrangeCarpet), - 352 => Some(Item::MagentaCarpet), - 353 => Some(Item::LightBlueCarpet), - 354 => Some(Item::YellowCarpet), - 355 => Some(Item::LimeCarpet), - 356 => Some(Item::PinkCarpet), - 357 => Some(Item::GrayCarpet), - 358 => Some(Item::LightGrayCarpet), - 359 => Some(Item::CyanCarpet), - 360 => Some(Item::PurpleCarpet), - 361 => Some(Item::BlueCarpet), - 362 => Some(Item::BrownCarpet), - 363 => Some(Item::GreenCarpet), - 364 => Some(Item::RedCarpet), - 365 => Some(Item::BlackCarpet), - 366 => Some(Item::Terracotta), - 367 => Some(Item::CoalBlock), - 368 => Some(Item::PackedIce), - 369 => Some(Item::AcaciaStairs), - 370 => Some(Item::DarkOakStairs), - 371 => Some(Item::SlimeBlock), - 372 => Some(Item::GrassPath), - 373 => Some(Item::Sunflower), - 374 => Some(Item::Lilac), - 375 => Some(Item::RoseBush), - 376 => Some(Item::Peony), - 377 => Some(Item::TallGrass), - 378 => Some(Item::LargeFern), - 379 => Some(Item::WhiteStainedGlass), - 380 => Some(Item::OrangeStainedGlass), - 381 => Some(Item::MagentaStainedGlass), - 382 => Some(Item::LightBlueStainedGlass), - 383 => Some(Item::YellowStainedGlass), - 384 => Some(Item::LimeStainedGlass), - 385 => Some(Item::PinkStainedGlass), - 386 => Some(Item::GrayStainedGlass), - 387 => Some(Item::LightGrayStainedGlass), - 388 => Some(Item::CyanStainedGlass), - 389 => Some(Item::PurpleStainedGlass), - 390 => Some(Item::BlueStainedGlass), - 391 => Some(Item::BrownStainedGlass), - 392 => Some(Item::GreenStainedGlass), - 393 => Some(Item::RedStainedGlass), - 394 => Some(Item::BlackStainedGlass), - 395 => Some(Item::WhiteStainedGlassPane), - 396 => Some(Item::OrangeStainedGlassPane), - 397 => Some(Item::MagentaStainedGlassPane), - 398 => Some(Item::LightBlueStainedGlassPane), - 399 => Some(Item::YellowStainedGlassPane), - 400 => Some(Item::LimeStainedGlassPane), - 401 => Some(Item::PinkStainedGlassPane), - 402 => Some(Item::GrayStainedGlassPane), - 403 => Some(Item::LightGrayStainedGlassPane), - 404 => Some(Item::CyanStainedGlassPane), - 405 => Some(Item::PurpleStainedGlassPane), - 406 => Some(Item::BlueStainedGlassPane), - 407 => Some(Item::BrownStainedGlassPane), - 408 => Some(Item::GreenStainedGlassPane), - 409 => Some(Item::RedStainedGlassPane), - 410 => Some(Item::BlackStainedGlassPane), - 411 => Some(Item::Prismarine), - 412 => Some(Item::PrismarineBricks), - 413 => Some(Item::DarkPrismarine), - 414 => Some(Item::PrismarineStairs), - 415 => Some(Item::PrismarineBrickStairs), - 416 => Some(Item::DarkPrismarineStairs), - 417 => Some(Item::SeaLantern), - 418 => Some(Item::RedSandstone), - 419 => Some(Item::ChiseledRedSandstone), - 420 => Some(Item::CutRedSandstone), - 421 => Some(Item::RedSandstoneStairs), - 422 => Some(Item::RepeatingCommandBlock), - 423 => Some(Item::ChainCommandBlock), - 424 => Some(Item::MagmaBlock), - 425 => Some(Item::NetherWartBlock), - 426 => Some(Item::WarpedWartBlock), - 427 => Some(Item::RedNetherBricks), - 428 => Some(Item::BoneBlock), - 429 => Some(Item::StructureVoid), - 430 => Some(Item::Observer), - 431 => Some(Item::ShulkerBox), - 432 => Some(Item::WhiteShulkerBox), - 433 => Some(Item::OrangeShulkerBox), - 434 => Some(Item::MagentaShulkerBox), - 435 => Some(Item::LightBlueShulkerBox), - 436 => Some(Item::YellowShulkerBox), - 437 => Some(Item::LimeShulkerBox), - 438 => Some(Item::PinkShulkerBox), - 439 => Some(Item::GrayShulkerBox), - 440 => Some(Item::LightGrayShulkerBox), - 441 => Some(Item::CyanShulkerBox), - 442 => Some(Item::PurpleShulkerBox), - 443 => Some(Item::BlueShulkerBox), - 444 => Some(Item::BrownShulkerBox), - 445 => Some(Item::GreenShulkerBox), - 446 => Some(Item::RedShulkerBox), - 447 => Some(Item::BlackShulkerBox), - 448 => Some(Item::WhiteGlazedTerracotta), - 449 => Some(Item::OrangeGlazedTerracotta), - 450 => Some(Item::MagentaGlazedTerracotta), - 451 => Some(Item::LightBlueGlazedTerracotta), - 452 => Some(Item::YellowGlazedTerracotta), - 453 => Some(Item::LimeGlazedTerracotta), - 454 => Some(Item::PinkGlazedTerracotta), - 455 => Some(Item::GrayGlazedTerracotta), - 456 => Some(Item::LightGrayGlazedTerracotta), - 457 => Some(Item::CyanGlazedTerracotta), - 458 => Some(Item::PurpleGlazedTerracotta), - 459 => Some(Item::BlueGlazedTerracotta), - 460 => Some(Item::BrownGlazedTerracotta), - 461 => Some(Item::GreenGlazedTerracotta), - 462 => Some(Item::RedGlazedTerracotta), - 463 => Some(Item::BlackGlazedTerracotta), - 464 => Some(Item::WhiteConcrete), - 465 => Some(Item::OrangeConcrete), - 466 => Some(Item::MagentaConcrete), - 467 => Some(Item::LightBlueConcrete), - 468 => Some(Item::YellowConcrete), - 469 => Some(Item::LimeConcrete), - 470 => Some(Item::PinkConcrete), - 471 => Some(Item::GrayConcrete), - 472 => Some(Item::LightGrayConcrete), - 473 => Some(Item::CyanConcrete), - 474 => Some(Item::PurpleConcrete), - 475 => Some(Item::BlueConcrete), - 476 => Some(Item::BrownConcrete), - 477 => Some(Item::GreenConcrete), - 478 => Some(Item::RedConcrete), - 479 => Some(Item::BlackConcrete), - 480 => Some(Item::WhiteConcretePowder), - 481 => Some(Item::OrangeConcretePowder), - 482 => Some(Item::MagentaConcretePowder), - 483 => Some(Item::LightBlueConcretePowder), - 484 => Some(Item::YellowConcretePowder), - 485 => Some(Item::LimeConcretePowder), - 486 => Some(Item::PinkConcretePowder), - 487 => Some(Item::GrayConcretePowder), - 488 => Some(Item::LightGrayConcretePowder), - 489 => Some(Item::CyanConcretePowder), - 490 => Some(Item::PurpleConcretePowder), - 491 => Some(Item::BlueConcretePowder), - 492 => Some(Item::BrownConcretePowder), - 493 => Some(Item::GreenConcretePowder), - 494 => Some(Item::RedConcretePowder), - 495 => Some(Item::BlackConcretePowder), - 496 => Some(Item::TurtleEgg), - 497 => Some(Item::DeadTubeCoralBlock), - 498 => Some(Item::DeadBrainCoralBlock), - 499 => Some(Item::DeadBubbleCoralBlock), - 500 => Some(Item::DeadFireCoralBlock), - 501 => Some(Item::DeadHornCoralBlock), - 502 => Some(Item::TubeCoralBlock), - 503 => Some(Item::BrainCoralBlock), - 504 => Some(Item::BubbleCoralBlock), - 505 => Some(Item::FireCoralBlock), - 506 => Some(Item::HornCoralBlock), - 507 => Some(Item::TubeCoral), - 508 => Some(Item::BrainCoral), - 509 => Some(Item::BubbleCoral), - 510 => Some(Item::FireCoral), - 511 => Some(Item::HornCoral), - 512 => Some(Item::DeadBrainCoral), - 513 => Some(Item::DeadBubbleCoral), - 514 => Some(Item::DeadFireCoral), - 515 => Some(Item::DeadHornCoral), - 516 => Some(Item::DeadTubeCoral), - 517 => Some(Item::TubeCoralFan), - 518 => Some(Item::BrainCoralFan), - 519 => Some(Item::BubbleCoralFan), - 520 => Some(Item::FireCoralFan), - 521 => Some(Item::HornCoralFan), - 522 => Some(Item::DeadTubeCoralFan), - 523 => Some(Item::DeadBrainCoralFan), - 524 => Some(Item::DeadBubbleCoralFan), - 525 => Some(Item::DeadFireCoralFan), - 526 => Some(Item::DeadHornCoralFan), - 527 => Some(Item::BlueIce), - 528 => Some(Item::Conduit), - 529 => Some(Item::PolishedGraniteStairs), - 530 => Some(Item::SmoothRedSandstoneStairs), - 531 => Some(Item::MossyStoneBrickStairs), - 532 => Some(Item::PolishedDioriteStairs), - 533 => Some(Item::MossyCobblestoneStairs), - 534 => Some(Item::EndStoneBrickStairs), - 535 => Some(Item::StoneStairs), - 536 => Some(Item::SmoothSandstoneStairs), - 537 => Some(Item::SmoothQuartzStairs), - 538 => Some(Item::GraniteStairs), - 539 => Some(Item::AndesiteStairs), - 540 => Some(Item::RedNetherBrickStairs), - 541 => Some(Item::PolishedAndesiteStairs), - 542 => Some(Item::DioriteStairs), - 543 => Some(Item::PolishedGraniteSlab), - 544 => Some(Item::SmoothRedSandstoneSlab), - 545 => Some(Item::MossyStoneBrickSlab), - 546 => Some(Item::PolishedDioriteSlab), - 547 => Some(Item::MossyCobblestoneSlab), - 548 => Some(Item::EndStoneBrickSlab), - 549 => Some(Item::SmoothSandstoneSlab), - 550 => Some(Item::SmoothQuartzSlab), - 551 => Some(Item::GraniteSlab), - 552 => Some(Item::AndesiteSlab), - 553 => Some(Item::RedNetherBrickSlab), - 554 => Some(Item::PolishedAndesiteSlab), - 555 => Some(Item::DioriteSlab), - 556 => Some(Item::Scaffolding), - 557 => Some(Item::IronDoor), - 558 => Some(Item::OakDoor), - 559 => Some(Item::SpruceDoor), - 560 => Some(Item::BirchDoor), - 561 => Some(Item::JungleDoor), - 562 => Some(Item::AcaciaDoor), - 563 => Some(Item::DarkOakDoor), - 564 => Some(Item::CrimsonDoor), - 565 => Some(Item::WarpedDoor), - 566 => Some(Item::Repeater), - 567 => Some(Item::Comparator), - 568 => Some(Item::StructureBlock), - 569 => Some(Item::Jigsaw), - 570 => Some(Item::TurtleHelmet), - 571 => Some(Item::Scute), - 572 => Some(Item::FlintAndSteel), - 573 => Some(Item::Apple), - 574 => Some(Item::Bow), - 575 => Some(Item::Arrow), - 576 => Some(Item::Coal), - 577 => Some(Item::Charcoal), - 578 => Some(Item::Diamond), - 579 => Some(Item::IronIngot), - 580 => Some(Item::GoldIngot), - 581 => Some(Item::NetheriteIngot), - 582 => Some(Item::NetheriteScrap), - 583 => Some(Item::WoodenSword), - 584 => Some(Item::WoodenShovel), - 585 => Some(Item::WoodenPickaxe), - 586 => Some(Item::WoodenAxe), - 587 => Some(Item::WoodenHoe), - 588 => Some(Item::StoneSword), - 589 => Some(Item::StoneShovel), - 590 => Some(Item::StonePickaxe), - 591 => Some(Item::StoneAxe), - 592 => Some(Item::StoneHoe), - 593 => Some(Item::GoldenSword), - 594 => Some(Item::GoldenShovel), - 595 => Some(Item::GoldenPickaxe), - 596 => Some(Item::GoldenAxe), - 597 => Some(Item::GoldenHoe), - 598 => Some(Item::IronSword), - 599 => Some(Item::IronShovel), - 600 => Some(Item::IronPickaxe), - 601 => Some(Item::IronAxe), - 602 => Some(Item::IronHoe), - 603 => Some(Item::DiamondSword), - 604 => Some(Item::DiamondShovel), - 605 => Some(Item::DiamondPickaxe), - 606 => Some(Item::DiamondAxe), - 607 => Some(Item::DiamondHoe), - 608 => Some(Item::NetheriteSword), - 609 => Some(Item::NetheriteShovel), - 610 => Some(Item::NetheritePickaxe), - 611 => Some(Item::NetheriteAxe), - 612 => Some(Item::NetheriteHoe), - 613 => Some(Item::Stick), - 614 => Some(Item::Bowl), - 615 => Some(Item::MushroomStew), - 616 => Some(Item::String), - 617 => Some(Item::Feather), - 618 => Some(Item::Gunpowder), - 619 => Some(Item::WheatSeeds), - 620 => Some(Item::Wheat), - 621 => Some(Item::Bread), - 622 => Some(Item::LeatherHelmet), - 623 => Some(Item::LeatherChestplate), - 624 => Some(Item::LeatherLeggings), - 625 => Some(Item::LeatherBoots), - 626 => Some(Item::ChainmailHelmet), - 627 => Some(Item::ChainmailChestplate), - 628 => Some(Item::ChainmailLeggings), - 629 => Some(Item::ChainmailBoots), - 630 => Some(Item::IronHelmet), - 631 => Some(Item::IronChestplate), - 632 => Some(Item::IronLeggings), - 633 => Some(Item::IronBoots), - 634 => Some(Item::DiamondHelmet), - 635 => Some(Item::DiamondChestplate), - 636 => Some(Item::DiamondLeggings), - 637 => Some(Item::DiamondBoots), - 638 => Some(Item::GoldenHelmet), - 639 => Some(Item::GoldenChestplate), - 640 => Some(Item::GoldenLeggings), - 641 => Some(Item::GoldenBoots), - 642 => Some(Item::NetheriteHelmet), - 643 => Some(Item::NetheriteChestplate), - 644 => Some(Item::NetheriteLeggings), - 645 => Some(Item::NetheriteBoots), - 646 => Some(Item::Flint), - 647 => Some(Item::Porkchop), - 648 => Some(Item::CookedPorkchop), - 649 => Some(Item::Painting), - 650 => Some(Item::GoldenApple), - 651 => Some(Item::EnchantedGoldenApple), - 652 => Some(Item::OakSign), - 653 => Some(Item::SpruceSign), - 654 => Some(Item::BirchSign), - 655 => Some(Item::JungleSign), - 656 => Some(Item::AcaciaSign), - 657 => Some(Item::DarkOakSign), - 658 => Some(Item::CrimsonSign), - 659 => Some(Item::WarpedSign), - 660 => Some(Item::Bucket), - 661 => Some(Item::WaterBucket), - 662 => Some(Item::LavaBucket), - 663 => Some(Item::Minecart), - 664 => Some(Item::Saddle), - 665 => Some(Item::Redstone), - 666 => Some(Item::Snowball), - 667 => Some(Item::OakBoat), - 668 => Some(Item::Leather), - 669 => Some(Item::MilkBucket), - 670 => Some(Item::PufferfishBucket), - 671 => Some(Item::SalmonBucket), - 672 => Some(Item::CodBucket), - 673 => Some(Item::TropicalFishBucket), - 674 => Some(Item::Brick), - 675 => Some(Item::ClayBall), - 676 => Some(Item::DriedKelpBlock), - 677 => Some(Item::Paper), - 678 => Some(Item::Book), - 679 => Some(Item::SlimeBall), - 680 => Some(Item::ChestMinecart), - 681 => Some(Item::FurnaceMinecart), - 682 => Some(Item::Egg), - 683 => Some(Item::Compass), - 684 => Some(Item::FishingRod), - 685 => Some(Item::Clock), - 686 => Some(Item::GlowstoneDust), - 687 => Some(Item::Cod), - 688 => Some(Item::Salmon), - 689 => Some(Item::TropicalFish), - 690 => Some(Item::Pufferfish), - 691 => Some(Item::CookedCod), - 692 => Some(Item::CookedSalmon), - 693 => Some(Item::InkSac), - 694 => Some(Item::CocoaBeans), - 695 => Some(Item::LapisLazuli), - 696 => Some(Item::WhiteDye), - 697 => Some(Item::OrangeDye), - 698 => Some(Item::MagentaDye), - 699 => Some(Item::LightBlueDye), - 700 => Some(Item::YellowDye), - 701 => Some(Item::LimeDye), - 702 => Some(Item::PinkDye), - 703 => Some(Item::GrayDye), - 704 => Some(Item::LightGrayDye), - 705 => Some(Item::CyanDye), - 706 => Some(Item::PurpleDye), - 707 => Some(Item::BlueDye), - 708 => Some(Item::BrownDye), - 709 => Some(Item::GreenDye), - 710 => Some(Item::RedDye), - 711 => Some(Item::BlackDye), - 712 => Some(Item::BoneMeal), - 713 => Some(Item::Bone), - 714 => Some(Item::Sugar), - 715 => Some(Item::Cake), - 716 => Some(Item::WhiteBed), - 717 => Some(Item::OrangeBed), - 718 => Some(Item::MagentaBed), - 719 => Some(Item::LightBlueBed), - 720 => Some(Item::YellowBed), - 721 => Some(Item::LimeBed), - 722 => Some(Item::PinkBed), - 723 => Some(Item::GrayBed), - 724 => Some(Item::LightGrayBed), - 725 => Some(Item::CyanBed), - 726 => Some(Item::PurpleBed), - 727 => Some(Item::BlueBed), - 728 => Some(Item::BrownBed), - 729 => Some(Item::GreenBed), - 730 => Some(Item::RedBed), - 731 => Some(Item::BlackBed), - 732 => Some(Item::Cookie), - 733 => Some(Item::FilledMap), - 734 => Some(Item::Shears), - 735 => Some(Item::MelonSlice), - 736 => Some(Item::DriedKelp), - 737 => Some(Item::PumpkinSeeds), - 738 => Some(Item::MelonSeeds), - 739 => Some(Item::Beef), - 740 => Some(Item::CookedBeef), - 741 => Some(Item::Chicken), - 742 => Some(Item::CookedChicken), - 743 => Some(Item::RottenFlesh), - 744 => Some(Item::EnderPearl), - 745 => Some(Item::BlazeRod), - 746 => Some(Item::GhastTear), - 747 => Some(Item::GoldNugget), - 748 => Some(Item::NetherWart), - 749 => Some(Item::Potion), - 750 => Some(Item::GlassBottle), - 751 => Some(Item::SpiderEye), - 752 => Some(Item::FermentedSpiderEye), - 753 => Some(Item::BlazePowder), - 754 => Some(Item::MagmaCream), - 755 => Some(Item::BrewingStand), - 756 => Some(Item::Cauldron), - 757 => Some(Item::EnderEye), - 758 => Some(Item::GlisteringMelonSlice), - 759 => Some(Item::BatSpawnEgg), - 760 => Some(Item::BeeSpawnEgg), - 761 => Some(Item::BlazeSpawnEgg), - 762 => Some(Item::CatSpawnEgg), - 763 => Some(Item::CaveSpiderSpawnEgg), - 764 => Some(Item::ChickenSpawnEgg), - 765 => Some(Item::CodSpawnEgg), - 766 => Some(Item::CowSpawnEgg), - 767 => Some(Item::CreeperSpawnEgg), - 768 => Some(Item::DolphinSpawnEgg), - 769 => Some(Item::DonkeySpawnEgg), - 770 => Some(Item::DrownedSpawnEgg), - 771 => Some(Item::ElderGuardianSpawnEgg), - 772 => Some(Item::EndermanSpawnEgg), - 773 => Some(Item::EndermiteSpawnEgg), - 774 => Some(Item::EvokerSpawnEgg), - 775 => Some(Item::FoxSpawnEgg), - 776 => Some(Item::GhastSpawnEgg), - 777 => Some(Item::GuardianSpawnEgg), - 778 => Some(Item::HoglinSpawnEgg), - 779 => Some(Item::HorseSpawnEgg), - 780 => Some(Item::HuskSpawnEgg), - 781 => Some(Item::LlamaSpawnEgg), - 782 => Some(Item::MagmaCubeSpawnEgg), - 783 => Some(Item::MooshroomSpawnEgg), - 784 => Some(Item::MuleSpawnEgg), - 785 => Some(Item::OcelotSpawnEgg), - 786 => Some(Item::PandaSpawnEgg), - 787 => Some(Item::ParrotSpawnEgg), - 788 => Some(Item::PhantomSpawnEgg), - 789 => Some(Item::PigSpawnEgg), - 790 => Some(Item::PiglinSpawnEgg), - 791 => Some(Item::PiglinBruteSpawnEgg), - 792 => Some(Item::PillagerSpawnEgg), - 793 => Some(Item::PolarBearSpawnEgg), - 794 => Some(Item::PufferfishSpawnEgg), - 795 => Some(Item::RabbitSpawnEgg), - 796 => Some(Item::RavagerSpawnEgg), - 797 => Some(Item::SalmonSpawnEgg), - 798 => Some(Item::SheepSpawnEgg), - 799 => Some(Item::ShulkerSpawnEgg), - 800 => Some(Item::SilverfishSpawnEgg), - 801 => Some(Item::SkeletonSpawnEgg), - 802 => Some(Item::SkeletonHorseSpawnEgg), - 803 => Some(Item::SlimeSpawnEgg), - 804 => Some(Item::SpiderSpawnEgg), - 805 => Some(Item::SquidSpawnEgg), - 806 => Some(Item::StraySpawnEgg), - 807 => Some(Item::StriderSpawnEgg), - 808 => Some(Item::TraderLlamaSpawnEgg), - 809 => Some(Item::TropicalFishSpawnEgg), - 810 => Some(Item::TurtleSpawnEgg), - 811 => Some(Item::VexSpawnEgg), - 812 => Some(Item::VillagerSpawnEgg), - 813 => Some(Item::VindicatorSpawnEgg), - 814 => Some(Item::WanderingTraderSpawnEgg), - 815 => Some(Item::WitchSpawnEgg), - 816 => Some(Item::WitherSkeletonSpawnEgg), - 817 => Some(Item::WolfSpawnEgg), - 818 => Some(Item::ZoglinSpawnEgg), - 819 => Some(Item::ZombieSpawnEgg), - 820 => Some(Item::ZombieHorseSpawnEgg), - 821 => Some(Item::ZombieVillagerSpawnEgg), - 822 => Some(Item::ZombifiedPiglinSpawnEgg), - 823 => Some(Item::ExperienceBottle), - 824 => Some(Item::FireCharge), - 825 => Some(Item::WritableBook), - 826 => Some(Item::WrittenBook), - 827 => Some(Item::Emerald), - 828 => Some(Item::ItemFrame), - 829 => Some(Item::FlowerPot), - 830 => Some(Item::Carrot), - 831 => Some(Item::Potato), - 832 => Some(Item::BakedPotato), - 833 => Some(Item::PoisonousPotato), - 834 => Some(Item::Map), - 835 => Some(Item::GoldenCarrot), - 836 => Some(Item::SkeletonSkull), - 837 => Some(Item::WitherSkeletonSkull), - 838 => Some(Item::PlayerHead), - 839 => Some(Item::ZombieHead), - 840 => Some(Item::CreeperHead), - 841 => Some(Item::DragonHead), - 842 => Some(Item::CarrotOnAStick), - 843 => Some(Item::WarpedFungusOnAStick), - 844 => Some(Item::NetherStar), - 845 => Some(Item::PumpkinPie), - 846 => Some(Item::FireworkRocket), - 847 => Some(Item::FireworkStar), - 848 => Some(Item::EnchantedBook), - 849 => Some(Item::NetherBrick), - 850 => Some(Item::Quartz), - 851 => Some(Item::TntMinecart), - 852 => Some(Item::HopperMinecart), - 853 => Some(Item::PrismarineShard), - 854 => Some(Item::PrismarineCrystals), - 855 => Some(Item::Rabbit), - 856 => Some(Item::CookedRabbit), - 857 => Some(Item::RabbitStew), - 858 => Some(Item::RabbitFoot), - 859 => Some(Item::RabbitHide), - 860 => Some(Item::ArmorStand), - 861 => Some(Item::IronHorseArmor), - 862 => Some(Item::GoldenHorseArmor), - 863 => Some(Item::DiamondHorseArmor), - 864 => Some(Item::LeatherHorseArmor), - 865 => Some(Item::Lead), - 866 => Some(Item::NameTag), - 867 => Some(Item::CommandBlockMinecart), - 868 => Some(Item::Mutton), - 869 => Some(Item::CookedMutton), - 870 => Some(Item::WhiteBanner), - 871 => Some(Item::OrangeBanner), - 872 => Some(Item::MagentaBanner), - 873 => Some(Item::LightBlueBanner), - 874 => Some(Item::YellowBanner), - 875 => Some(Item::LimeBanner), - 876 => Some(Item::PinkBanner), - 877 => Some(Item::GrayBanner), - 878 => Some(Item::LightGrayBanner), - 879 => Some(Item::CyanBanner), - 880 => Some(Item::PurpleBanner), - 881 => Some(Item::BlueBanner), - 882 => Some(Item::BrownBanner), - 883 => Some(Item::GreenBanner), - 884 => Some(Item::RedBanner), - 885 => Some(Item::BlackBanner), - 886 => Some(Item::EndCrystal), - 887 => Some(Item::ChorusFruit), - 888 => Some(Item::PoppedChorusFruit), - 889 => Some(Item::Beetroot), - 890 => Some(Item::BeetrootSeeds), - 891 => Some(Item::BeetrootSoup), - 892 => Some(Item::DragonBreath), - 893 => Some(Item::SplashPotion), - 894 => Some(Item::SpectralArrow), - 895 => Some(Item::TippedArrow), - 896 => Some(Item::LingeringPotion), - 897 => Some(Item::Shield), - 898 => Some(Item::Elytra), - 899 => Some(Item::SpruceBoat), - 900 => Some(Item::BirchBoat), - 901 => Some(Item::JungleBoat), - 902 => Some(Item::AcaciaBoat), - 903 => Some(Item::DarkOakBoat), - 904 => Some(Item::TotemOfUndying), - 905 => Some(Item::ShulkerShell), - 906 => Some(Item::IronNugget), - 907 => Some(Item::KnowledgeBook), - 908 => Some(Item::DebugStick), - 909 => Some(Item::MusicDisc13), - 910 => Some(Item::MusicDiscCat), - 911 => Some(Item::MusicDiscBlocks), - 912 => Some(Item::MusicDiscChirp), - 913 => Some(Item::MusicDiscFar), - 914 => Some(Item::MusicDiscMall), - 915 => Some(Item::MusicDiscMellohi), - 916 => Some(Item::MusicDiscStal), - 917 => Some(Item::MusicDiscStrad), - 918 => Some(Item::MusicDiscWard), - 919 => Some(Item::MusicDisc11), - 920 => Some(Item::MusicDiscWait), - 921 => Some(Item::MusicDiscPigstep), - 922 => Some(Item::Trident), - 923 => Some(Item::PhantomMembrane), - 924 => Some(Item::NautilusShell), - 925 => Some(Item::HeartOfTheSea), - 926 => Some(Item::Crossbow), - 927 => Some(Item::SuspiciousStew), - 928 => Some(Item::Loom), - 929 => Some(Item::FlowerBannerPattern), - 930 => Some(Item::CreeperBannerPattern), - 931 => Some(Item::SkullBannerPattern), - 932 => Some(Item::MojangBannerPattern), - 933 => Some(Item::GlobeBannerPattern), - 934 => Some(Item::PiglinBannerPattern), - 935 => Some(Item::Composter), - 936 => Some(Item::Barrel), - 937 => Some(Item::Smoker), - 938 => Some(Item::BlastFurnace), - 939 => Some(Item::CartographyTable), - 940 => Some(Item::FletchingTable), - 941 => Some(Item::Grindstone), - 942 => Some(Item::Lectern), - 943 => Some(Item::SmithingTable), - 944 => Some(Item::Stonecutter), - 945 => Some(Item::Bell), - 946 => Some(Item::Lantern), - 947 => Some(Item::SoulLantern), - 948 => Some(Item::SweetBerries), - 949 => Some(Item::Campfire), - 950 => Some(Item::SoulCampfire), - 951 => Some(Item::Shroomlight), - 952 => Some(Item::Honeycomb), - 953 => Some(Item::BeeNest), - 954 => Some(Item::Beehive), - 955 => Some(Item::HoneyBottle), - 956 => Some(Item::HoneyBlock), - 957 => Some(Item::HoneycombBlock), - 958 => Some(Item::Lodestone), - 959 => Some(Item::NetheriteBlock), - 960 => Some(Item::AncientDebris), - 961 => Some(Item::Target), - 962 => Some(Item::CryingObsidian), - 963 => Some(Item::Blackstone), - 964 => Some(Item::BlackstoneSlab), - 965 => Some(Item::BlackstoneStairs), - 966 => Some(Item::GildedBlackstone), - 967 => Some(Item::PolishedBlackstone), - 968 => Some(Item::PolishedBlackstoneSlab), - 969 => Some(Item::PolishedBlackstoneStairs), - 970 => Some(Item::ChiseledPolishedBlackstone), - 971 => Some(Item::PolishedBlackstoneBricks), - 972 => Some(Item::PolishedBlackstoneBrickSlab), - 973 => Some(Item::PolishedBlackstoneBrickStairs), - 974 => Some(Item::CrackedPolishedBlackstoneBricks), - 975 => Some(Item::RespawnAnchor), + 319 => Some(Item::BirchStairs), + 385 => Some(Item::BrownCarpet), + 321 => Some(Item::CrimsonStairs), + 296 => Some(Item::Chain), + 436 => Some(Item::PrismarineBrickStairs), + 45 => Some(Item::DeepslateCopperOre), + 451 => Some(Item::ShulkerBox), + 449 => Some(Item::BoneBlock), + 781 => Some(Item::Leather), + 447 => Some(Item::WarpedWartBlock), + 486 => Some(Item::MagentaConcrete), + 942 => Some(Item::WritableBook), + 349 => Some(Item::ChiseledQuartzBlock), + 147 => Some(Item::ChiseledSandstone), + 374 => Some(Item::OrangeCarpet), + 47 => Some(Item::DeepslateGoldOre), + 607 => Some(Item::RedstoneLamp), + 618 => Some(Item::WarpedButton), + 393 => Some(Item::DirtPath), + 643 => Some(Item::BirchTrapdoor), + 668 => Some(Item::WarpedFungusOnAStick), + 218 => Some(Item::BrickSlab), + 800 => Some(Item::GlowstoneDust), + 986 => Some(Item::YellowBanner), + 1005 => Some(Item::SplashPotion), + 145 => Some(Item::LapisBlock), + 1064 => Some(Item::Lodestone), + 183 => Some(Item::Cornflower), + 1100 => Some(Item::PointedDripstone), + 416 => Some(Item::WhiteStainedGlassPane), + 372 => Some(Item::HayBlock), + 755 => Some(Item::GoldenChestplate), + 103 => Some(Item::BirchLog), + 855 => Some(Item::Chicken), + 115 => Some(Item::StrippedCrimsonStem), + 417 => Some(Item::OrangeStainedGlassPane), + 164 => Some(Item::GrayWool), + 477 => Some(Item::CyanGlazedTerracotta), + 443 => Some(Item::RepeatingCommandBlock), + 547 => Some(Item::BlueIce), + 941 => Some(Item::FireCharge), + 1079 => Some(Item::Candle), + 82 => Some(Item::ExposedCutCopperSlab), + 900 => Some(Item::MooshroomSpawnEgg), + 949 => Some(Item::BakedPotato), + 466 => Some(Item::RedShulkerBox), + 595 => Some(Item::Hopper), + 485 => Some(Item::OrangeConcrete), + 705 => Some(Item::StoneShovel), + 623 => Some(Item::OakPressurePlate), + 312 => Some(Item::EndStone), + 301 => Some(Item::BrickStairs), + 532 => Some(Item::DeadBrainCoral), + 886 => Some(Item::ElderGuardianSpawnEgg), + 371 => Some(Item::Light), + 264 => Some(Item::WarpedFence), + 221 => Some(Item::QuartzSlab), + 734 => Some(Item::Gunpowder), + 682 => Some(Item::Bow), + 822 => Some(Item::BrownDye), + 801 => Some(Item::Cod), + 577 => Some(Item::RedNetherBrickSlab), + 832 => Some(Item::MagentaBed), + 105 => Some(Item::AcaciaLog), + 837 => Some(Item::GrayBed), + 278 => Some(Item::InfestedStoneBricks), + 408 => Some(Item::LightGrayStainedGlass), + 522 => Some(Item::TubeCoralBlock), + 807 => Some(Item::InkSac), + 1025 => Some(Item::MusicDisc11), + 214 => Some(Item::SandstoneSlab), + 1060 => Some(Item::BeeNest), + 403 => Some(Item::LightBlueStainedGlass), + 768 => Some(Item::OakSign), + 1073 => Some(Item::ChiseledPolishedBlackstone), + 225 => Some(Item::PrismarineSlab), + 138 => Some(Item::DarkOakLeaves), + 309 => Some(Item::NetherBrickStairs), + 956 => Some(Item::ZombieHead), + 331 => Some(Item::GraniteWall), + 536 => Some(Item::DeadTubeCoral), + 205 => Some(Item::SpruceSlab), + 552 => Some(Item::PolishedDioriteStairs), + 894 => Some(Item::GuardianSpawnEgg), + 934 => Some(Item::WolfSpawnEgg), + 922 => Some(Item::SquidSpawnEgg), + 364 => Some(Item::PurpleTerracotta), + 803 => Some(Item::TropicalFish), + 961 => Some(Item::FireworkRocket), + 463 => Some(Item::BlueShulkerBox), + 920 => Some(Item::SlimeSpawnEgg), + 209 => Some(Item::DarkOakSlab), + 754 => Some(Item::GoldenHelmet), + 814 => Some(Item::YellowDye), + 283 => Some(Item::StoneBricks), + 546 => Some(Item::DeadHornCoralFan), + 946 => Some(Item::FlowerPot), + 861 => Some(Item::GoldNugget), + 1097 => Some(Item::MediumAmethystBud), + 665 => Some(Item::TntMinecart), + 116 => Some(Item::StrippedWarpedStem), + 245 => Some(Item::Chest), + 603 => Some(Item::SculkSensor), + 1075 => Some(Item::PolishedBlackstoneBrickSlab), + 149 => Some(Item::Cobweb), + 520 => Some(Item::DeadFireCoralBlock), + 867 => Some(Item::BlazePowder), + 614 => Some(Item::JungleButton), + 953 => Some(Item::SkeletonSkull), + 815 => Some(Item::LimeDye), + 906 => Some(Item::PigSpawnEgg), + 4 => Some(Item::Diorite), + 657 => Some(Item::PoweredRail), + 161 => Some(Item::YellowWool), + 912 => Some(Item::RabbitSpawnEgg), + 419 => Some(Item::LightBlueStainedGlassPane), + 778 => Some(Item::LavaBucket), + 137 => Some(Item::AcaciaLeaves), + 324 => Some(Item::Beacon), + 533 => Some(Item::DeadBubbleCoral), + 27 => Some(Item::DarkOakPlanks), + 396 => Some(Item::RoseBush), + 763 => Some(Item::Porkchop), + 666 => Some(Item::HopperMinecart), + 635 => Some(Item::JungleDoor), + 777 => Some(Item::WaterBucket), + 853 => Some(Item::Beef), + 918 => Some(Item::SkeletonSpawnEgg), + 72 => Some(Item::OxidizedCopper), + 1015 => Some(Item::MusicDisc13), + 966 => Some(Item::PrismarineCrystals), + 57 => Some(Item::NetherQuartzOre), + 400 => Some(Item::WhiteStainedGlass), + 873 => Some(Item::AxolotlSpawnEgg), + 395 => Some(Item::Lilac), + 826 => Some(Item::BoneMeal), + 292 => Some(Item::BrownMushroomBlock), + 952 => Some(Item::GoldenCarrot), + 352 => Some(Item::QuartzPillar), + 1012 => Some(Item::IronNugget), + 863 => Some(Item::Potion), + 558 => Some(Item::GraniteStairs), + 494 => Some(Item::PurpleConcrete), + 978 => Some(Item::NameTag), + 289 => Some(Item::DeepslateTiles), + 675 => Some(Item::DarkOakBoat), + 323 => Some(Item::CommandBlock), + 1017 => Some(Item::MusicDiscBlocks), + 676 => Some(Item::StructureBlock), + 548 => Some(Item::Conduit), + 711 => Some(Item::GoldenPickaxe), + 751 => Some(Item::DiamondChestplate), + 207 => Some(Item::JungleSlab), + 488 => Some(Item::YellowConcrete), + 585 => Some(Item::Redstone), + 692 => Some(Item::IronIngot), + 785 => Some(Item::CodBucket), + 797 => Some(Item::FishingRod), + 823 => Some(Item::GreenDye), + 745 => Some(Item::ChainmailBoots), + 662 => Some(Item::Minecart), + 389 => Some(Item::Terracotta), + 56 => Some(Item::NetherGoldOre), + 135 => Some(Item::BirchLeaves), + 424 => Some(Item::LightGrayStainedGlassPane), + 616 => Some(Item::DarkOakButton), + 813 => Some(Item::LightBlueDye), + 1021 => Some(Item::MusicDiscMellohi), + 580 => Some(Item::CobbledDeepslateSlab), + 1077 => Some(Item::CrackedPolishedBlackstoneBricks), + 932 => Some(Item::WitchSpawnEgg), + 542 => Some(Item::DeadTubeCoralFan), + 1080 => Some(Item::WhiteCandle), + 83 => Some(Item::WeatheredCutCopperSlab), + 945 => Some(Item::GlowItemFrame), + 287 => Some(Item::DeepslateBricks), + 1078 => Some(Item::RespawnAnchor), + 112 => Some(Item::StrippedJungleLog), + 156 => Some(Item::SeaPickle), + 51 => Some(Item::DeepslateEmeraldOre), + 387 => Some(Item::RedCarpet), + 433 => Some(Item::PrismarineBricks), + 198 => Some(Item::MossCarpet), + 728 => Some(Item::NetheriteHoe), + 67 => Some(Item::GoldBlock), + 280 => Some(Item::InfestedCrackedStoneBricks), + 62 => Some(Item::RawGoldBlock), + 771 => Some(Item::JungleSign), + 963 => Some(Item::EnchantedBook), + 841 => Some(Item::BlueBed), + 998 => Some(Item::EndCrystal), + 336 => Some(Item::SandstoneWall), + 286 => Some(Item::ChiseledStoneBricks), + 236 => Some(Item::Torch), + 670 => Some(Item::OakBoat), + 1057 => Some(Item::SoulCampfire), + 174 => Some(Item::Poppy), + 479 => Some(Item::BlueGlazedTerracotta), + 1002 => Some(Item::BeetrootSeeds), + 71 => Some(Item::WeatheredCopper), + 98 => Some(Item::WaxedExposedCutCopperSlab), + 220 => Some(Item::NetherBrickSlab), + 193 => Some(Item::NetherSprouts), + 483 => Some(Item::BlackGlazedTerracotta), + 593 => Some(Item::HoneyBlock), + 983 => Some(Item::OrangeBanner), + 541 => Some(Item::HornCoralFan), + 1082 => Some(Item::MagentaCandle), + 139 => Some(Item::AzaleaLeaves), + 680 => Some(Item::FlintAndSteel), + 423 => Some(Item::GrayStainedGlassPane), + 33 => Some(Item::JungleSapling), + 95 => Some(Item::WaxedWeatheredCutCopperStairs), + 889 => Some(Item::EvokerSpawnEgg), + 919 => Some(Item::SkeletonHorseSpawnEgg), + 159 => Some(Item::MagentaWool), + 639 => Some(Item::WarpedDoor), + 540 => Some(Item::FireCoralFan), + 598 => Some(Item::Lectern), + 1009 => Some(Item::Shield), + 589 => Some(Item::Comparator), + 345 => Some(Item::DeepslateTileWall), + 549 => Some(Item::PolishedGraniteStairs), + 106 => Some(Item::DarkOakLog), + 573 => Some(Item::SmoothSandstoneSlab), + 275 => Some(Item::Glowstone), + 586 => Some(Item::RedstoneTorch), + 679 => Some(Item::Scute), + 575 => Some(Item::GraniteSlab), + 980 => Some(Item::Mutton), + 874 => Some(Item::BatSpawnEgg), + 418 => Some(Item::MagentaStainedGlassPane), + 172 => Some(Item::BlackWool), + 804 => Some(Item::Pufferfish), + 808 => Some(Item::GlowInkSac), + 537 => Some(Item::TubeCoralFan), + 602 => Some(Item::DaylightDetector), + 663 => Some(Item::ChestMinecart), + 904 => Some(Item::ParrotSpawnEgg), + 944 => Some(Item::ItemFrame), + 196 => Some(Item::SugarCane), + 188 => Some(Item::RedMushroom), + 376 => Some(Item::LightBlueCarpet), + 216 => Some(Item::PetrifiedOakSlab), + 694 => Some(Item::CopperIngot), + 706 => Some(Item::StonePickaxe), + 440 => Some(Item::ChiseledRedSandstone), + 226 => Some(Item::PrismarineBrickSlab), + 117 => Some(Item::StrippedOakWood), + 564 => Some(Item::PolishedDeepslateStairs), + 787 => Some(Item::AxolotlBucket), + 230 => Some(Item::SmoothSandstone), + 562 => Some(Item::DioriteStairs), + 260 => Some(Item::JungleFence), + 77 => Some(Item::CutCopperStairs), + 109 => Some(Item::StrippedOakLog), + 685 => Some(Item::Charcoal), + 746 => Some(Item::IronHelmet), + 570 => Some(Item::PolishedDioriteSlab), + 849 => Some(Item::MelonSlice), + 90 => Some(Item::WaxedExposedCutCopper), + 223 => Some(Item::CutRedSandstoneSlab), + 681 => Some(Item::Apple), + 100 => Some(Item::WaxedOxidizedCutCopperSlab), + 59 => Some(Item::CoalBlock), + 199 => Some(Item::MossBlock), + 538 => Some(Item::BrainCoralFan), + 74 => Some(Item::ExposedCutCopper), + 674 => Some(Item::AcaciaBoat), + 1007 => Some(Item::TippedArrow), + 327 => Some(Item::BrickWall), + 315 => Some(Item::SandstoneStairs), + 698 => Some(Item::NetheriteScrap), + 557 => Some(Item::SmoothQuartzStairs), + 30 => Some(Item::OakSapling), + 252 => Some(Item::Ice), + 615 => Some(Item::AcaciaButton), + 504 => Some(Item::YellowConcretePowder), + 507 => Some(Item::GrayConcretePowder), + 271 => Some(Item::Basalt), + 58 => Some(Item::AncientDebris), + 337 => Some(Item::EndStoneBrickWall), + 490 => Some(Item::PinkConcrete), + 515 => Some(Item::BlackConcretePowder), + 344 => Some(Item::DeepslateBrickWall), + 362 => Some(Item::LightGrayTerracotta), + 829 => Some(Item::Cake), + 1024 => Some(Item::MusicDiscWard), + 120 => Some(Item::StrippedJungleWood), + 178 => Some(Item::RedTulip), + 397 => Some(Item::Peony), + 687 => Some(Item::Emerald), + 181 => Some(Item::PinkTulip), + 882 => Some(Item::CreeperSpawnEgg), + 794 => Some(Item::Egg), + 219 => Some(Item::StoneBrickSlab), + 243 => Some(Item::Spawner), + 427 => Some(Item::BlueStainedGlassPane), + 454 => Some(Item::MagentaShulkerBox), + 686 => Some(Item::Diamond), + 263 => Some(Item::CrimsonFence), + 136 => Some(Item::JungleLeaves), + 124 => Some(Item::StrippedWarpedHyphae), + 97 => Some(Item::WaxedCutCopperSlab), + 3 => Some(Item::PolishedGranite), + 251 => Some(Item::Snow), + 495 => Some(Item::BlueConcrete), + 611 => Some(Item::OakButton), + 559 => Some(Item::AndesiteStairs), + 469 => Some(Item::OrangeGlazedTerracotta), + 795 => Some(Item::Compass), + 868 => Some(Item::MagmaCream), + 38 => Some(Item::RedSand), + 761 => Some(Item::NetheriteBoots), + 247 => Some(Item::Farmland), + 391 => Some(Item::AcaciaStairs), + 574 => Some(Item::SmoothQuartzSlab), + 29 => Some(Item::WarpedPlanks), + 153 => Some(Item::FloweringAzalea), + 976 => Some(Item::LeatherHorseArmor), + 35 => Some(Item::DarkOakSapling), + 472 => Some(Item::YellowGlazedTerracotta), + 206 => Some(Item::BirchSlab), + 710 => Some(Item::GoldenShovel), + 266 => Some(Item::CarvedPumpkin), + 644 => Some(Item::JungleTrapdoor), + 703 => Some(Item::WoodenHoe), + 342 => Some(Item::CobbledDeepslateWall), + 851 => Some(Item::PumpkinSeeds), + 279 => Some(Item::InfestedMossyStoneBricks), + 907 => Some(Item::PiglinSpawnEgg), + 991 => Some(Item::CyanBanner), + 854 => Some(Item::CookedBeef), + 68 => Some(Item::DiamondBlock), + 450 => Some(Item::StructureVoid), + 20 => Some(Item::WarpedNylium), + 434 => Some(Item::DarkPrismarine), + 88 => Some(Item::WaxedOxidizedCopper), + 626 => Some(Item::JunglePressurePlate), + 760 => Some(Item::NetheriteLeggings), + 923 => Some(Item::StraySpawnEgg), + 773 => Some(Item::DarkOakSign), + 947 => Some(Item::Carrot), + 1052 => Some(Item::Lantern), + 750 => Some(Item::DiamondHelmet), + 788 => Some(Item::Brick), + 1076 => Some(Item::PolishedBlackstoneBrickStairs), + 2 => Some(Item::Granite), + 475 => Some(Item::GrayGlazedTerracotta), + 409 => Some(Item::CyanStainedGlass), + 460 => Some(Item::LightGrayShulkerBox), + 37 => Some(Item::Sand), + 498 => Some(Item::RedConcrete), + 937 => Some(Item::ZombieHorseSpawnEgg), + 121 => Some(Item::StrippedAcaciaWood), + 361 => Some(Item::GrayTerracotta), + 437 => Some(Item::DarkPrismarineStairs), + 1006 => Some(Item::SpectralArrow), + 155 => Some(Item::Seagrass), + 346 => Some(Item::Anvil), + 535 => Some(Item::DeadHornCoral), + 719 => Some(Item::DiamondSword), + 511 => Some(Item::BlueConcretePowder), + 284 => Some(Item::MossyStoneBricks), + 782 => Some(Item::MilkBucket), + 519 => Some(Item::DeadBubbleCoralBlock), + 78 => Some(Item::ExposedCutCopperStairs), + 49 => Some(Item::DeepslateRedstoneOre), + 358 => Some(Item::YellowTerracotta), + 770 => Some(Item::BirchSign), + 8 => Some(Item::Deepslate), + 60 => Some(Item::RawIronBlock), + 629 => Some(Item::CrimsonPressurePlate), + 636 => Some(Item::AcaciaDoor), + 502 => Some(Item::MagentaConcretePowder), + 936 => Some(Item::ZombieSpawnEgg), + 954 => Some(Item::WitherSkeletonSkull), + 467 => Some(Item::BlackShulkerBox), + 293 => Some(Item::RedMushroomBlock), + 1034 => Some(Item::SuspiciousStew), + 456 => Some(Item::YellowShulkerBox), + 621 => Some(Item::LightWeightedPressurePlate), + 744 => Some(Item::ChainmailLeggings), + 655 => Some(Item::CrimsonFenceGate), + 491 => Some(Item::GrayConcrete), + 565 => Some(Item::DeepslateBrickStairs), + 426 => Some(Item::PurpleStainedGlassPane), + 130 => Some(Item::DarkOakWood), + 765 => Some(Item::Painting), + 568 => Some(Item::SmoothRedSandstoneSlab), + 806 => Some(Item::CookedSalmon), + 951 => Some(Item::Map), + 173 => Some(Item::Dandelion), + 1011 => Some(Item::ShulkerShell), + 1026 => Some(Item::MusicDiscWait), + 818 => Some(Item::LightGrayDye), + 860 => Some(Item::GhastTear), + 742 => Some(Item::ChainmailHelmet), + 737 => Some(Item::Bread), + 950 => Some(Item::PoisonousPotato), + 715 => Some(Item::IronShovel), + 888 => Some(Item::EndermiteSpawnEgg), + 476 => Some(Item::LightGrayGlazedTerracotta), + 333 => Some(Item::NetherBrickWall), + 817 => Some(Item::GrayDye), + 669 => Some(Item::Elytra), + 780 => Some(Item::Snowball), + 298 => Some(Item::Melon), + 935 => Some(Item::ZoglinSpawnEgg), + 169 => Some(Item::BrownWool), + 185 => Some(Item::WitherRose), + 398 => Some(Item::TallGrass), + 967 => Some(Item::Rabbit), + 610 => Some(Item::PolishedBlackstoneButton), + 75 => Some(Item::WeatheredCutCopper), + 237 => Some(Item::EndRod), + 11 => Some(Item::Calcite), + 613 => Some(Item::BirchButton), + 916 => Some(Item::ShulkerSpawnEgg), + 227 => Some(Item::DarkPrismarineSlab), + 926 => Some(Item::TropicalFishSpawnEgg), + 720 => Some(Item::DiamondShovel), + 896 => Some(Item::HorseSpawnEgg), + 170 => Some(Item::GreenWool), + 179 => Some(Item::OrangeTulip), + 250 => Some(Item::CobblestoneStairs), + 405 => Some(Item::LimeStainedGlass), + 496 => Some(Item::BrownConcrete), + 480 => Some(Item::BrownGlazedTerracotta), + 925 => Some(Item::TraderLlamaSpawnEgg), + 478 => Some(Item::PurpleGlazedTerracotta), + 560 => Some(Item::RedNetherBrickStairs), + 625 => Some(Item::BirchPressurePlate), + 656 => Some(Item::WarpedFenceGate), + 721 => Some(Item::DiamondPickaxe), + 330 => Some(Item::MossyStoneBrickWall), + 856 => Some(Item::CookedChicken), + 899 => Some(Item::MagmaCubeSpawnEgg), + 964 => Some(Item::NetherBrick), + 601 => Some(Item::LightningRod), + 1045 => Some(Item::BlastFurnace), + 820 => Some(Item::PurpleDye), + 999 => Some(Item::ChorusFruit), + 338 => Some(Item::DioriteWall), + 1010 => Some(Item::TotemOfUndying), + 224 => Some(Item::PurpurSlab), + 512 => Some(Item::BrownConcretePowder), + 1091 => Some(Item::BlueCandle), + 211 => Some(Item::WarpedSlab), + 506 => Some(Item::PinkConcretePowder), + 713 => Some(Item::GoldenHoe), + 793 => Some(Item::SlimeBall), + 510 => Some(Item::PurpleConcretePowder), + 677 => Some(Item::Jigsaw), + 805 => Some(Item::CookedCod), + 334 => Some(Item::AndesiteWall), + 343 => Some(Item::PolishedDeepslateWall), + 150 => Some(Item::Grass), + 129 => Some(Item::AcaciaWood), + 171 => Some(Item::RedWool), + 784 => Some(Item::SalmonBucket), + 959 => Some(Item::NetherStar), + 146 => Some(Item::Sandstone), + 891 => Some(Item::GhastSpawnEgg), + 212 => Some(Item::StoneSlab), + 350 => Some(Item::QuartzBlock), + 248 => Some(Item::Furnace), + 798 => Some(Item::Clock), + 314 => Some(Item::DragonEgg), + 584 => Some(Item::Scaffolding), + 1041 => Some(Item::PiglinBannerPattern), + 1062 => Some(Item::HoneyBottle), + 462 => Some(Item::PurpleShulkerBox), + 619 => Some(Item::StonePressurePlate), + 244 => Some(Item::OakStairs), + 642 => Some(Item::SpruceTrapdoor), + 1071 => Some(Item::PolishedBlackstoneSlab), + 158 => Some(Item::OrangeWool), + 270 => Some(Item::SoulSoil), + 43 => Some(Item::DeepslateIronOre), + 370 => Some(Item::Barrier), + 898 => Some(Item::LlamaSpawnEgg), + 897 => Some(Item::HuskSpawnEgg), + 979 => Some(Item::CommandBlockMinecart), + 487 => Some(Item::LightBlueConcrete), + 809 => Some(Item::CocoaBeans), + 943 => Some(Item::WrittenBook), + 1063 => Some(Item::HoneycombBlock), + 524 => Some(Item::BubbleCoralBlock), + 534 => Some(Item::DeadFireCoral), + 505 => Some(Item::LimeConcretePowder), + 93 => Some(Item::WaxedCutCopperStairs), + 587 => Some(Item::RedstoneBlock), + 630 => Some(Item::WarpedPressurePlate), + 442 => Some(Item::RedSandstoneStairs), + 332 => Some(Item::StoneBrickWall), + 838 => Some(Item::LightGrayBed), + 234 => Some(Item::MossyCobblestone), + 890 => Some(Item::FoxSpawnEgg), + 653 => Some(Item::AcaciaFenceGate), + 775 => Some(Item::WarpedSign), + 796 => Some(Item::Bundle), + 229 => Some(Item::SmoothRedSandstone), + 307 => Some(Item::ChiseledNetherBricks), + 76 => Some(Item::OxidizedCutCopper), + 233 => Some(Item::Bookshelf), + 724 => Some(Item::NetheriteSword), + 772 => Some(Item::AcaciaSign), + 683 => Some(Item::Arrow), + 831 => Some(Item::OrangeBed), + 917 => Some(Item::SilverfishSpawnEgg), + 1053 => Some(Item::SoulLantern), + 1086 => Some(Item::PinkCandle), + 850 => Some(Item::DriedKelp), + 769 => Some(Item::SpruceSign), + 383 => Some(Item::PurpleCarpet), + 572 => Some(Item::EndStoneBrickSlab), + 32 => Some(Item::BirchSapling), + 394 => Some(Item::Sunflower), + 792 => Some(Item::Book), + 189 => Some(Item::CrimsonFungus), + 971 => Some(Item::RabbitHide), + 554 => Some(Item::EndStoneBrickStairs), + 555 => Some(Item::StoneStairs), + 590 => Some(Item::Piston), + 157 => Some(Item::WhiteWool), + 253 => Some(Item::SnowBlock), + 177 => Some(Item::AzureBluet), + 70 => Some(Item::ExposedCopper), + 73 => Some(Item::CutCopper), + 1093 => Some(Item::GreenCandle), + 444 => Some(Item::ChainCommandBlock), + 404 => Some(Item::YellowStainedGlass), + 367 => Some(Item::GreenTerracotta), + 688 => Some(Item::LapisLazuli), + 697 => Some(Item::NetheriteIngot), + 911 => Some(Item::PufferfishSpawnEgg), + 368 => Some(Item::RedTerracotta), + 282 => Some(Item::InfestedDeepslate), + 390 => Some(Item::PackedIce), + 277 => Some(Item::InfestedCobblestone), + 26 => Some(Item::AcaciaPlanks), + 701 => Some(Item::WoodenPickaxe), + 113 => Some(Item::StrippedAcaciaLog), + 622 => Some(Item::HeavyWeightedPressurePlate), + 553 => Some(Item::MossyCobblestoneStairs), + 203 => Some(Item::Bamboo), + 140 => Some(Item::FloweringAzaleaLeaves), + 774 => Some(Item::CrimsonSign), + 1018 => Some(Item::MusicDiscChirp), + 748 => Some(Item::IronLeggings), + 471 => Some(Item::LightBlueGlazedTerracotta), + 431 => Some(Item::BlackStainedGlassPane), + 836 => Some(Item::PinkBed), + 1031 => Some(Item::NautilusShell), + 310 => Some(Item::EnchantingTable), + 240 => Some(Item::PurpurBlock), + 955 => Some(Item::PlayerHead), + 180 => Some(Item::WhiteTulip), + 295 => Some(Item::IronBars), + 707 => Some(Item::StoneAxe), + 767 => Some(Item::EnchantedGoldenApple), + 544 => Some(Item::DeadBubbleCoralFan), + 388 => Some(Item::BlackCarpet), + 99 => Some(Item::WaxedWeatheredCutCopperSlab), + 821 => Some(Item::BlueDye), + 273 => Some(Item::SmoothBasalt), + 16 => Some(Item::CoarseDirt), + 588 => Some(Item::Repeater), + 195 => Some(Item::TwistingVines), + 379 => Some(Item::PinkCarpet), + 439 => Some(Item::RedSandstone), + 125 => Some(Item::OakWood), + 31 => Some(Item::SpruceSapling), + 19 => Some(Item::CrimsonNylium), + 673 => Some(Item::JungleBoat), + 735 => Some(Item::WheatSeeds), + 1046 => Some(Item::CartographyTable), + 658 => Some(Item::DetectorRail), + 690 => Some(Item::AmethystShard), + 718 => Some(Item::IronHoe), + 25 => Some(Item::JunglePlanks), + 222 => Some(Item::RedSandstoneSlab), + 377 => Some(Item::YellowCarpet), + 446 => Some(Item::NetherWartBlock), + 256 => Some(Item::Jukebox), + 700 => Some(Item::WoodenShovel), + 764 => Some(Item::CookedPorkchop), + 128 => Some(Item::JungleWood), + 305 => Some(Item::NetherBricks), + 865 => Some(Item::SpiderEye), + 1096 => Some(Item::SmallAmethystBud), + 948 => Some(Item::Potato), + 1043 => Some(Item::Barrel), + 254 => Some(Item::Cactus), + 132 => Some(Item::WarpedHyphae), + 938 => Some(Item::ZombieVillagerSpawnEgg), + 762 => Some(Item::Flint), + 87 => Some(Item::WaxedWeatheredCopper), + 747 => Some(Item::IronChestplate), + 738 => Some(Item::LeatherHelmet), + 985 => Some(Item::LightBlueBanner), + 650 => Some(Item::SpruceFenceGate), + 566 => Some(Item::DeepslateTileStairs), + 962 => Some(Item::FireworkStar), + 527 => Some(Item::TubeCoral), + 347 => Some(Item::ChippedAnvil), + 122 => Some(Item::StrippedDarkOakWood), + 242 => Some(Item::PurpurStairs), + 384 => Some(Item::BlueCarpet), + 425 => Some(Item::CyanStainedGlassPane), + 458 => Some(Item::PinkShulkerBox), + 858 => Some(Item::EnderPearl), + 859 => Some(Item::BlazeRod), + 517 => Some(Item::DeadTubeCoralBlock), + 12 => Some(Item::Tuff), + 973 => Some(Item::IronHorseArmor), + 474 => Some(Item::PinkGlazedTerracotta), + 660 => Some(Item::ActivatorRail), + 468 => Some(Item::WhiteGlazedTerracotta), + 201 => Some(Item::BigDripleaf), + 1022 => Some(Item::MusicDiscStal), + 329 => Some(Item::RedSandstoneWall), + 50 => Some(Item::EmeraldOre), + 709 => Some(Item::GoldenSword), + 741 => Some(Item::LeatherBoots), + 34 => Some(Item::AcaciaSapling), + 317 => Some(Item::EmeraldBlock), + 530 => Some(Item::FireCoral), + 816 => Some(Item::PinkDye), + 842 => Some(Item::BrownBed), + 965 => Some(Item::PrismarineShard), + 1014 => Some(Item::DebugStick), + 723 => Some(Item::DiamondHoe), + 493 => Some(Item::CyanConcrete), + 354 => Some(Item::WhiteTerracotta), + 143 => Some(Item::Glass), + 988 => Some(Item::PinkBanner), + 1066 => Some(Item::Blackstone), + 1027 => Some(Item::MusicDiscOtherside), + 9 => Some(Item::CobbledDeepslate), + 969 => Some(Item::RabbitStew), + 990 => Some(Item::LightGrayBanner), + 114 => Some(Item::StrippedDarkOakLog), + 328 => Some(Item::PrismarineWall), + 274 => Some(Item::SoulTorch), + 600 => Some(Item::Lever), + 993 => Some(Item::BlueBanner), + 241 => Some(Item::PurpurPillar), + 908 => Some(Item::PiglinBruteSpawnEgg), + 131 => Some(Item::CrimsonHyphae), + 885 => Some(Item::DrownedSpawnEgg), + 382 => Some(Item::CyanCarpet), + 862 => Some(Item::NetherWart), + 452 => Some(Item::WhiteShulkerBox), + 846 => Some(Item::Cookie), + 876 => Some(Item::BlazeSpawnEgg), + 386 => Some(Item::GreenCarpet), + 641 => Some(Item::OakTrapdoor), + 1040 => Some(Item::GlobeBannerPattern), + 154 => Some(Item::DeadBush), + 406 => Some(Item::PinkStainedGlass), + 691 => Some(Item::RawIron), + 175 => Some(Item::BlueOrchid), + 661 => Some(Item::Saddle), + 699 => Some(Item::WoodenSword), + 1019 => Some(Item::MusicDiscFar), + 931 => Some(Item::WanderingTraderSpawnEgg), + 167 => Some(Item::PurpleWool), + 1085 => Some(Item::LimeCandle), + 53 => Some(Item::DeepslateLapisOre), + 627 => Some(Item::AcaciaPressurePlate), + 839 => Some(Item::CyanBed), + 528 => Some(Item::BrainCoral), + 351 => Some(Item::QuartzBricks), + 356 => Some(Item::MagentaTerracotta), + 779 => Some(Item::PowderSnowBucket), + 872 => Some(Item::GlisteringMelonSlice), + 992 => Some(Item::PurpleBanner), + 459 => Some(Item::GrayShulkerBox), + 176 => Some(Item::Allium), + 339 => Some(Item::BlackstoneWall), + 749 => Some(Item::IronBoots), + 1000 => Some(Item::PoppedChorusFruit), + 402 => Some(Item::MagentaStainedGlass), + 1044 => Some(Item::Smoker), + 903 => Some(Item::PandaSpawnEgg), + 281 => Some(Item::InfestedChiseledStoneBricks), + 563 => Some(Item::CobbledDeepslateStairs), + 341 => Some(Item::PolishedBlackstoneBrickWall), + 726 => Some(Item::NetheritePickaxe), + 508 => Some(Item::LightGrayConcretePowder), + 878 => Some(Item::CaveSpiderSpawnEgg), + 1070 => Some(Item::PolishedBlackstone), + 489 => Some(Item::LimeConcrete), + 21 => Some(Item::Cobblestone), + 40 => Some(Item::CoalOre), + 1 => Some(Item::Stone), + 127 => Some(Item::BirchWood), + 422 => Some(Item::PinkStainedGlassPane), + 514 => Some(Item::RedConcretePowder), + 729 => Some(Item::Stick), + 499 => Some(Item::BlackConcrete), + 18 => Some(Item::RootedDirt), + 509 => Some(Item::CyanConcretePowder), + 880 => Some(Item::CodSpawnEgg), + 914 => Some(Item::SalmonSpawnEgg), + 311 => Some(Item::EndPortalFrame), + 1049 => Some(Item::SmithingTable), + 258 => Some(Item::SpruceFence), + 380 => Some(Item::GrayCarpet), + 667 => Some(Item::CarrotOnAStick), + 539 => Some(Item::BubbleCoralFan), + 561 => Some(Item::PolishedAndesiteStairs), + 689 => Some(Item::Quartz), + 302 => Some(Item::StoneBrickStairs), + 576 => Some(Item::AndesiteSlab), + 810 => Some(Item::WhiteDye), + 834 => Some(Item::YellowBed), + 1065 => Some(Item::CryingObsidian), + 852 => Some(Item::MelonSeeds), + 599 => Some(Item::Target), + 61 => Some(Item::RawCopperBlock), + 766 => Some(Item::GoldenApple), + 231 => Some(Item::SmoothStone), + 257 => Some(Item::OakFence), + 101 => Some(Item::OakLog), + 929 => Some(Item::VillagerSpawnEgg), + 1023 => Some(Item::MusicDiscStrad), + 134 => Some(Item::SpruceLeaves), + 500 => Some(Item::WhiteConcretePowder), + 464 => Some(Item::BrownShulkerBox), + 652 => Some(Item::JungleFenceGate), + 843 => Some(Item::GreenBed), + 913 => Some(Item::RavagerSpawnEgg), + 151 => Some(Item::Fern), + 190 => Some(Item::WarpedFungus), + 300 => Some(Item::GlowLichen), + 481 => Some(Item::GreenGlazedTerracotta), + 501 => Some(Item::OrangeConcretePowder), + 671 => Some(Item::SpruceBoat), + 1029 => Some(Item::Trident), + 261 => Some(Item::AcaciaFence), + 306 => Some(Item::CrackedNetherBricks), + 847 => Some(Item::FilledMap), + 567 => Some(Item::PolishedGraniteSlab), + 977 => Some(Item::Lead), + 313 => Some(Item::EndStoneBricks), + 288 => Some(Item::CrackedDeepslateBricks), + 845 => Some(Item::BlackBed), + 529 => Some(Item::BubbleCoral), + 1047 => Some(Item::FletchingTable), + 518 => Some(Item::DeadBrainCoralBlock), + 1038 => Some(Item::SkullBannerPattern), + 791 => Some(Item::Paper), + 1055 => Some(Item::GlowBerries), + 92 => Some(Item::WaxedOxidizedCutCopper), + 503 => Some(Item::LightBlueConcretePowder), + 1003 => Some(Item::BeetrootSoup), + 353 => Some(Item::QuartzStairs), + 743 => Some(Item::ChainmailChestplate), + 10 => Some(Item::PolishedDeepslate), + 84 => Some(Item::OxidizedCutCopperSlab), + 421 => Some(Item::LimeStainedGlassPane), + 1016 => Some(Item::MusicDiscCat), + 654 => Some(Item::DarkOakFenceGate), + 583 => Some(Item::DeepslateTileSlab), + 702 => Some(Item::WoodenAxe), + 753 => Some(Item::DiamondBoots), + 1088 => Some(Item::LightGrayCandle), + 142 => Some(Item::WetSponge), + 1087 => Some(Item::GrayCandle), + 1098 => Some(Item::LargeAmethystBud), + 208 => Some(Item::AcaciaSlab), + 1042 => Some(Item::Composter), + 492 => Some(Item::LightGrayConcrete), + 901 => Some(Item::MuleSpawnEgg), + 722 => Some(Item::DiamondAxe), + 739 => Some(Item::LeatherChestplate), + 1084 => Some(Item::YellowCandle), + 373 => Some(Item::WhiteCarpet), + 725 => Some(Item::NetheriteShovel), + 632 => Some(Item::OakDoor), + 835 => Some(Item::LimeBed), + 184 => Some(Item::LilyOfTheValley), + 144 => Some(Item::TintedGlass), + 659 => Some(Item::Rail), + 457 => Some(Item::LimeShulkerBox), + 304 => Some(Item::LilyPad), + 1020 => Some(Item::MusicDiscMall), + 482 => Some(Item::RedGlazedTerracotta), + 28 => Some(Item::CrimsonPlanks), + 597 => Some(Item::Dropper), + 870 => Some(Item::Cauldron), + 1039 => Some(Item::MojangBannerPattern), + 166 => Some(Item::CyanWool), + 684 => Some(Item::Coal), + 42 => Some(Item::IronOre), + 89 => Some(Item::WaxedCutCopper), + 399 => Some(Item::LargeFern), + 335 => Some(Item::RedNetherBrickWall), + 648 => Some(Item::WarpedTrapdoor), + 228 => Some(Item::SmoothQuartz), + 448 => Some(Item::RedNetherBricks), + 15 => Some(Item::Dirt), + 55 => Some(Item::DeepslateDiamondOre), + 545 => Some(Item::DeadFireCoralFan), + 86 => Some(Item::WaxedExposedCopper), + 628 => Some(Item::DarkOakPressurePlate), + 168 => Some(Item::BlueWool), + 875 => Some(Item::BeeSpawnEgg), + 921 => Some(Item::SpiderSpawnEgg), + 695 => Some(Item::RawGold), + 107 => Some(Item::CrimsonStem), + 604 => Some(Item::TripwireHook), + 972 => Some(Item::ArmorStand), + 430 => Some(Item::RedStainedGlassPane), + 995 => Some(Item::GreenBanner), + 414 => Some(Item::RedStainedGlass), + 678 => Some(Item::TurtleHelmet), + 126 => Some(Item::SpruceWood), + 441 => Some(Item::CutRedSandstone), + 54 => Some(Item::DiamondOre), + 160 => Some(Item::LightBlueWool), + 412 => Some(Item::BrownStainedGlass), + 989 => Some(Item::GrayBanner), + 1032 => Some(Item::HeartOfTheSea), + 239 => Some(Item::ChorusFlower), + 828 => Some(Item::Sugar), + 14 => Some(Item::GrassBlock), + 672 => Some(Item::BirchBoat), + 968 => Some(Item::CookedRabbit), + 118 => Some(Item::StrippedSpruceWood), + 582 => Some(Item::DeepslateBrickSlab), + 887 => Some(Item::EndermanSpawnEgg), + 470 => Some(Item::MagentaGlazedTerracotta), + 664 => Some(Item::FurnaceMinecart), + 939 => Some(Item::ZombifiedPiglinSpawnEgg), + 1054 => Some(Item::SweetBerries), + 732 => Some(Item::String), + 756 => Some(Item::GoldenLeggings), + 984 => Some(Item::MagentaBanner), + 80 => Some(Item::OxidizedCutCopperStairs), + 696 => Some(Item::GoldIngot), + 857 => Some(Item::RottenFlesh), + 36 => Some(Item::Bedrock), + 645 => Some(Item::AcaciaTrapdoor), + 316 => Some(Item::EnderChest), + 410 => Some(Item::PurpleStainedGlass), + 884 => Some(Item::DonkeySpawnEgg), + 1050 => Some(Item::Stonecutter), + 148 => Some(Item::CutSandstone), + 864 => Some(Item::GlassBottle), + 23 => Some(Item::SprucePlanks), + 513 => Some(Item::GreenConcretePowder), + 752 => Some(Item::DiamondLeggings), + 1095 => Some(Item::BlackCandle), + 401 => Some(Item::OrangeStainedGlass), + 1004 => Some(Item::DragonBreath), + 848 => Some(Item::Shears), + 111 => Some(Item::StrippedBirchLog), + 432 => Some(Item::Prismarine), + 415 => Some(Item::BlackStainedGlass), + 91 => Some(Item::WaxedWeatheredCutCopper), + 638 => Some(Item::CrimsonDoor), + 1068 => Some(Item::BlackstoneStairs), + 960 => Some(Item::PumpkinPie), + 631 => Some(Item::IronDoor), + 905 => Some(Item::PhantomSpawnEgg), + 975 => Some(Item::DiamondHorseArmor), + 197 => Some(Item::Kelp), + 740 => Some(Item::LeatherLeggings), + 928 => Some(Item::VexSpawnEgg), + 455 => Some(Item::LightBlueShulkerBox), + 591 => Some(Item::StickyPiston), + 119 => Some(Item::StrippedBirchWood), + 484 => Some(Item::WhiteConcrete), + 551 => Some(Item::MossyStoneBrickStairs), + 66 => Some(Item::CopperBlock), + 249 => Some(Item::Ladder), + 191 => Some(Item::CrimsonRoots), + 525 => Some(Item::FireCoralBlock), + 733 => Some(Item::Feather), + 759 => Some(Item::NetheriteChestplate), + 902 => Some(Item::OcelotSpawnEgg), + 308 => Some(Item::NetherBrickFence), + 357 => Some(Item::LightBlueTerracotta), + 186 => Some(Item::SporeBlossom), + 213 => Some(Item::SmoothStoneSlab), + 1013 => Some(Item::KnowledgeBook), + 1061 => Some(Item::Beehive), + 52 => Some(Item::LapisOre), + 104 => Some(Item::JungleLog), + 893 => Some(Item::GoatSpawnEgg), + 1094 => Some(Item::RedCandle), + 291 => Some(Item::ChiseledDeepslate), + 381 => Some(Item::LightGrayCarpet), + 883 => Some(Item::DolphinSpawnEgg), + 579 => Some(Item::DioriteSlab), + 141 => Some(Item::Sponge), + 940 => Some(Item::ExperienceBottle), + 606 => Some(Item::Tnt), + 596 => Some(Item::Dispenser), + 268 => Some(Item::Netherrack), + 272 => Some(Item::PolishedBasalt), + 46 => Some(Item::GoldOre), + 1089 => Some(Item::CyanCandle), + 378 => Some(Item::LimeCarpet), + 297 => Some(Item::GlassPane), + 909 => Some(Item::PillagerSpawnEgg), + 776 => Some(Item::Bucket), + 825 => Some(Item::BlackDye), + 320 => Some(Item::JungleStairs), + 982 => Some(Item::WhiteBanner), + 994 => Some(Item::BrownBanner), + 910 => Some(Item::PolarBearSpawnEgg), + 879 => Some(Item::ChickenSpawnEgg), + 634 => Some(Item::BirchDoor), + 543 => Some(Item::DeadBrainCoralFan), + 924 => Some(Item::StriderSpawnEgg), + 445 => Some(Item::MagmaBlock), + 262 => Some(Item::DarkOakFence), + 392 => Some(Item::DarkOakStairs), + 569 => Some(Item::MossyStoneBrickSlab), + 81 => Some(Item::CutCopperSlab), + 523 => Some(Item::BrainCoralBlock), + 786 => Some(Item::TropicalFishBucket), + 435 => Some(Item::PrismarineStairs), + 290 => Some(Item::CrackedDeepslateTiles), + 13 => Some(Item::DripstoneBlock), + 757 => Some(Item::GoldenBoots), + 1092 => Some(Item::BrownCandle), + 927 => Some(Item::TurtleSpawnEgg), + 550 => Some(Item::SmoothRedSandstoneStairs), + 915 => Some(Item::SheepSpawnEgg), + 497 => Some(Item::GreenConcrete), + 39 => Some(Item::Gravel), _ => None, } } } -#[allow(warnings)] -#[allow(clippy::all)] impl Item { - /// Returns the `name` property of this `Item`. + #[doc = "Returns the `name` property of this `Item`."] + #[inline] pub fn name(&self) -> &'static str { match self { - Item::Air => "air", - Item::Stone => "stone", - Item::Granite => "granite", - Item::PolishedGranite => "polished_granite", - Item::Diorite => "diorite", - Item::PolishedDiorite => "polished_diorite", - Item::Andesite => "andesite", - Item::PolishedAndesite => "polished_andesite", - Item::GrassBlock => "grass_block", - Item::Dirt => "dirt", - Item::CoarseDirt => "coarse_dirt", - Item::Podzol => "podzol", - Item::CrimsonNylium => "crimson_nylium", - Item::WarpedNylium => "warped_nylium", - Item::Cobblestone => "cobblestone", - Item::OakPlanks => "oak_planks", - Item::SprucePlanks => "spruce_planks", - Item::BirchPlanks => "birch_planks", - Item::JunglePlanks => "jungle_planks", - Item::AcaciaPlanks => "acacia_planks", - Item::DarkOakPlanks => "dark_oak_planks", - Item::CrimsonPlanks => "crimson_planks", - Item::WarpedPlanks => "warped_planks", - Item::OakSapling => "oak_sapling", - Item::SpruceSapling => "spruce_sapling", - Item::BirchSapling => "birch_sapling", - Item::JungleSapling => "jungle_sapling", - Item::AcaciaSapling => "acacia_sapling", - Item::DarkOakSapling => "dark_oak_sapling", - Item::Bedrock => "bedrock", - Item::Sand => "sand", - Item::RedSand => "red_sand", - Item::Gravel => "gravel", - Item::GoldOre => "gold_ore", - Item::IronOre => "iron_ore", - Item::CoalOre => "coal_ore", - Item::NetherGoldOre => "nether_gold_ore", - Item::OakLog => "oak_log", - Item::SpruceLog => "spruce_log", + Item::AncientDebris => "ancient_debris", + Item::ShulkerShell => "shulker_shell", + Item::QuartzBlock => "quartz_block", + Item::CrackedNetherBricks => "cracked_nether_bricks", + Item::Saddle => "saddle", + Item::GoldenAxe => "golden_axe", + Item::ExperienceBottle => "experience_bottle", + Item::PolishedBasalt => "polished_basalt", + Item::String => "string", + Item::OrangeStainedGlass => "orange_stained_glass", + Item::PhantomSpawnEgg => "phantom_spawn_egg", + Item::RabbitFoot => "rabbit_foot", + Item::LightBlueStainedGlassPane => "light_blue_stained_glass_pane", + Item::DarkOakTrapdoor => "dark_oak_trapdoor", + Item::NetherBrickSlab => "nether_brick_slab", + Item::StrippedBirchWood => "stripped_birch_wood", + Item::RawIronBlock => "raw_iron_block", + Item::PolishedBlackstoneWall => "polished_blackstone_wall", + Item::WarpedSign => "warped_sign", + Item::DiamondOre => "diamond_ore", + Item::WarpedFence => "warped_fence", + Item::PolishedAndesiteStairs => "polished_andesite_stairs", + Item::NetheriteSword => "netherite_sword", + Item::PurpleConcrete => "purple_concrete", + Item::StructureVoid => "structure_void", + Item::OakButton => "oak_button", + Item::Scute => "scute", + Item::CobbledDeepslateStairs => "cobbled_deepslate_stairs", + Item::Bedrock => "bedrock", + Item::MediumAmethystBud => "medium_amethyst_bud", + Item::NetherBrickStairs => "nether_brick_stairs", + Item::GreenBed => "green_bed", + Item::SmoothQuartzStairs => "smooth_quartz_stairs", + Item::LimeGlazedTerracotta => "lime_glazed_terracotta", + Item::SalmonBucket => "salmon_bucket", + Item::BlazePowder => "blaze_powder", + Item::PiglinBannerPattern => "piglin_banner_pattern", + Item::SmoothQuartz => "smooth_quartz", + Item::DriedKelp => "dried_kelp", + Item::CoalOre => "coal_ore", + Item::DarkOakPlanks => "dark_oak_planks", + Item::OrangeGlazedTerracotta => "orange_glazed_terracotta", + Item::PurpleStainedGlassPane => "purple_stained_glass_pane", + Item::DirtPath => "dirt_path", + Item::DeadFireCoralBlock => "dead_fire_coral_block", + Item::GoldenHorseArmor => "golden_horse_armor", + Item::Painting => "painting", + Item::BlackConcrete => "black_concrete", + Item::DaylightDetector => "daylight_detector", + Item::NetheritePickaxe => "netherite_pickaxe", + Item::MooshroomSpawnEgg => "mooshroom_spawn_egg", + Item::WaxedOxidizedCopper => "waxed_oxidized_copper", + Item::GlowItemFrame => "glow_item_frame", + Item::OakLog => "oak_log", + Item::Anvil => "anvil", + Item::NetheriteAxe => "netherite_axe", + Item::GoldenHelmet => "golden_helmet", + Item::Stonecutter => "stonecutter", + Item::ChiseledStoneBricks => "chiseled_stone_bricks", + Item::MossyCobblestone => "mossy_cobblestone", + Item::GrayConcretePowder => "gray_concrete_powder", + Item::DeepslateBrickSlab => "deepslate_brick_slab", + Item::Mycelium => "mycelium", + Item::MushroomStem => "mushroom_stem", + Item::GraniteWall => "granite_wall", + Item::PinkBanner => "pink_banner", + Item::ZombifiedPiglinSpawnEgg => "zombified_piglin_spawn_egg", + Item::MusicDiscWait => "music_disc_wait", + Item::BirchPlanks => "birch_planks", + Item::AcaciaWood => "acacia_wood", + Item::DeepslateTileSlab => "deepslate_tile_slab", + Item::YellowShulkerBox => "yellow_shulker_box", + Item::LeatherLeggings => "leather_leggings", + Item::DragonHead => "dragon_head", + Item::DarkPrismarine => "dark_prismarine", + Item::Azalea => "azalea", + Item::HoneycombBlock => "honeycomb_block", + Item::GreenTerracotta => "green_terracotta", + Item::Dispenser => "dispenser", + Item::AndesiteWall => "andesite_wall", + Item::BlackStainedGlassPane => "black_stained_glass_pane", + Item::PinkShulkerBox => "pink_shulker_box", + Item::BubbleCoralBlock => "bubble_coral_block", + Item::CrimsonNylium => "crimson_nylium", + Item::CyanStainedGlass => "cyan_stained_glass", + Item::PrismarineBrickSlab => "prismarine_brick_slab", + Item::LargeAmethystBud => "large_amethyst_bud", + Item::FermentedSpiderEye => "fermented_spider_eye", + Item::BubbleCoral => "bubble_coral", + Item::PillagerSpawnEgg => "pillager_spawn_egg", + Item::GoldenBoots => "golden_boots", + Item::BlueBed => "blue_bed", + Item::PetrifiedOakSlab => "petrified_oak_slab", + Item::MagentaCandle => "magenta_candle", + Item::SlimeBall => "slime_ball", + Item::TropicalFishBucket => "tropical_fish_bucket", + Item::GraniteStairs => "granite_stairs", + Item::PurpleCandle => "purple_candle", + Item::WhiteWool => "white_wool", + Item::Blackstone => "blackstone", + Item::Poppy => "poppy", + Item::BirchWood => "birch_wood", + Item::Netherrack => "netherrack", + Item::Glass => "glass", + Item::MagentaConcretePowder => "magenta_concrete_powder", + Item::YellowBanner => "yellow_banner", + Item::BrownBanner => "brown_banner", + Item::StraySpawnEgg => "stray_spawn_egg", + Item::PolishedBlackstoneBricks => "polished_blackstone_bricks", + Item::OxidizedCutCopper => "oxidized_cut_copper", + Item::HornCoral => "horn_coral", + Item::WeatheredCutCopperSlab => "weathered_cut_copper_slab", + Item::SmallAmethystBud => "small_amethyst_bud", + Item::CopperIngot => "copper_ingot", + Item::Target => "target", + Item::NetherSprouts => "nether_sprouts", + Item::PandaSpawnEgg => "panda_spawn_egg", + Item::BlazeRod => "blaze_rod", Item::BirchLog => "birch_log", - Item::JungleLog => "jungle_log", + Item::PurpleTerracotta => "purple_terracotta", + Item::CyanGlazedTerracotta => "cyan_glazed_terracotta", + Item::StrippedCrimsonHyphae => "stripped_crimson_hyphae", + Item::AcaciaButton => "acacia_button", Item::AcaciaLog => "acacia_log", - Item::DarkOakLog => "dark_oak_log", - Item::CrimsonStem => "crimson_stem", - Item::WarpedStem => "warped_stem", - Item::StrippedOakLog => "stripped_oak_log", - Item::StrippedSpruceLog => "stripped_spruce_log", - Item::StrippedBirchLog => "stripped_birch_log", - Item::StrippedJungleLog => "stripped_jungle_log", - Item::StrippedAcaciaLog => "stripped_acacia_log", + Item::WaxedExposedCutCopperStairs => "waxed_exposed_cut_copper_stairs", + Item::MusicDiscFar => "music_disc_far", + Item::LavaBucket => "lava_bucket", + Item::WaxedWeatheredCutCopperSlab => "waxed_weathered_cut_copper_slab", + Item::ChiseledSandstone => "chiseled_sandstone", + Item::InfestedStoneBricks => "infested_stone_bricks", + Item::OxeyeDaisy => "oxeye_daisy", + Item::Cactus => "cactus", + Item::JungleSign => "jungle_sign", + Item::WaxedOxidizedCutCopper => "waxed_oxidized_cut_copper", + Item::FloweringAzaleaLeaves => "flowering_azalea_leaves", + Item::SmoothStoneSlab => "smooth_stone_slab", + Item::StrippedDarkOakWood => "stripped_dark_oak_wood", + Item::SoulCampfire => "soul_campfire", + Item::MagentaConcrete => "magenta_concrete", + Item::PolishedDioriteStairs => "polished_diorite_stairs", + Item::OakPressurePlate => "oak_pressure_plate", + Item::PrismarineShard => "prismarine_shard", + Item::MojangBannerPattern => "mojang_banner_pattern", + Item::OrangeCarpet => "orange_carpet", Item::StrippedDarkOakLog => "stripped_dark_oak_log", - Item::StrippedCrimsonStem => "stripped_crimson_stem", - Item::StrippedWarpedStem => "stripped_warped_stem", - Item::StrippedOakWood => "stripped_oak_wood", - Item::StrippedSpruceWood => "stripped_spruce_wood", - Item::StrippedBirchWood => "stripped_birch_wood", - Item::StrippedJungleWood => "stripped_jungle_wood", + Item::SlimeBlock => "slime_block", + Item::StonePickaxe => "stone_pickaxe", + Item::HeartOfTheSea => "heart_of_the_sea", + Item::Quartz => "quartz", + Item::SoulSoil => "soul_soil", + Item::Cauldron => "cauldron", + Item::RepeatingCommandBlock => "repeating_command_block", + Item::WoodenPickaxe => "wooden_pickaxe", + Item::GlowLichen => "glow_lichen", + Item::SpruceDoor => "spruce_door", + Item::MusicDiscWard => "music_disc_ward", + Item::SoulTorch => "soul_torch", + Item::GoldenPickaxe => "golden_pickaxe", + Item::LimeCarpet => "lime_carpet", + Item::AndesiteSlab => "andesite_slab", + Item::Composter => "composter", + Item::WeatheredCutCopper => "weathered_cut_copper", + Item::LimeShulkerBox => "lime_shulker_box", Item::StrippedAcaciaWood => "stripped_acacia_wood", - Item::StrippedDarkOakWood => "stripped_dark_oak_wood", - Item::StrippedCrimsonHyphae => "stripped_crimson_hyphae", - Item::StrippedWarpedHyphae => "stripped_warped_hyphae", - Item::OakWood => "oak_wood", - Item::SpruceWood => "spruce_wood", - Item::BirchWood => "birch_wood", - Item::JungleWood => "jungle_wood", - Item::AcaciaWood => "acacia_wood", - Item::DarkOakWood => "dark_oak_wood", - Item::CrimsonHyphae => "crimson_hyphae", - Item::WarpedHyphae => "warped_hyphae", - Item::OakLeaves => "oak_leaves", + Item::Sponge => "sponge", + Item::StrippedSpruceWood => "stripped_spruce_wood", + Item::Snow => "snow", + Item::YellowTerracotta => "yellow_terracotta", + Item::AcaciaBoat => "acacia_boat", + Item::StriderSpawnEgg => "strider_spawn_egg", + Item::LightGrayCandle => "light_gray_candle", + Item::IronBoots => "iron_boots", + Item::TurtleEgg => "turtle_egg", + Item::MossyStoneBrickStairs => "mossy_stone_brick_stairs", + Item::WaxedCutCopperSlab => "waxed_cut_copper_slab", + Item::PolishedGraniteStairs => "polished_granite_stairs", + Item::InfestedChiseledStoneBricks => "infested_chiseled_stone_bricks", + Item::OxidizedCopper => "oxidized_copper", + Item::CrackedStoneBricks => "cracked_stone_bricks", + Item::Scaffolding => "scaffolding", + Item::CodBucket => "cod_bucket", + Item::HuskSpawnEgg => "husk_spawn_egg", + Item::StrippedBirchLog => "stripped_birch_log", + Item::LimeConcretePowder => "lime_concrete_powder", + Item::CreeperSpawnEgg => "creeper_spawn_egg", + Item::GoatSpawnEgg => "goat_spawn_egg", Item::SpruceLeaves => "spruce_leaves", - Item::BirchLeaves => "birch_leaves", + Item::Sugar => "sugar", + Item::CodSpawnEgg => "cod_spawn_egg", + Item::RabbitHide => "rabbit_hide", + Item::MusicDiscOtherside => "music_disc_otherside", + Item::CyanCandle => "cyan_candle", + Item::DarkPrismarineSlab => "dark_prismarine_slab", + Item::SkullBannerPattern => "skull_banner_pattern", + Item::Bricks => "bricks", + Item::Shield => "shield", + Item::LlamaSpawnEgg => "llama_spawn_egg", + Item::GrassBlock => "grass_block", + Item::Book => "book", + Item::Bell => "bell", + Item::RedNetherBrickWall => "red_nether_brick_wall", + Item::BlackBed => "black_bed", Item::JungleLeaves => "jungle_leaves", - Item::AcaciaLeaves => "acacia_leaves", + Item::DeadFireCoralFan => "dead_fire_coral_fan", + Item::TropicalFish => "tropical_fish", + Item::BoneMeal => "bone_meal", + Item::OrangeBed => "orange_bed", + Item::Chest => "chest", + Item::RedCarpet => "red_carpet", + Item::LightBlueConcrete => "light_blue_concrete", + Item::WeepingVines => "weeping_vines", + Item::Crossbow => "crossbow", + Item::TintedGlass => "tinted_glass", + Item::LimeBanner => "lime_banner", + Item::CrimsonButton => "crimson_button", + Item::PrismarineBricks => "prismarine_bricks", + Item::StoneHoe => "stone_hoe", + Item::BlackConcretePowder => "black_concrete_powder", + Item::Porkchop => "porkchop", + Item::WeatheredCutCopperStairs => "weathered_cut_copper_stairs", + Item::PurpleCarpet => "purple_carpet", + Item::FireCharge => "fire_charge", + Item::MossyStoneBrickWall => "mossy_stone_brick_wall", + Item::MagentaStainedGlassPane => "magenta_stained_glass_pane", + Item::RedConcretePowder => "red_concrete_powder", + Item::AcaciaSign => "acacia_sign", + Item::LightGrayWool => "light_gray_wool", + Item::PurpurBlock => "purpur_block", + Item::GoldenSword => "golden_sword", + Item::PurpleDye => "purple_dye", + Item::NetherBricks => "nether_bricks", + Item::LightBlueBed => "light_blue_bed", Item::DarkOakLeaves => "dark_oak_leaves", - Item::Sponge => "sponge", - Item::WetSponge => "wet_sponge", - Item::Glass => "glass", - Item::LapisOre => "lapis_ore", - Item::LapisBlock => "lapis_block", - Item::Dispenser => "dispenser", - Item::Sandstone => "sandstone", - Item::ChiseledSandstone => "chiseled_sandstone", - Item::CutSandstone => "cut_sandstone", - Item::NoteBlock => "note_block", - Item::PoweredRail => "powered_rail", + Item::ZombieSpawnEgg => "zombie_spawn_egg", + Item::MusicDiscMellohi => "music_disc_mellohi", Item::DetectorRail => "detector_rail", - Item::StickyPiston => "sticky_piston", - Item::Cobweb => "cobweb", - Item::Grass => "grass", - Item::Fern => "fern", - Item::DeadBush => "dead_bush", - Item::Seagrass => "seagrass", - Item::SeaPickle => "sea_pickle", - Item::Piston => "piston", - Item::WhiteWool => "white_wool", - Item::OrangeWool => "orange_wool", - Item::MagentaWool => "magenta_wool", - Item::LightBlueWool => "light_blue_wool", - Item::YellowWool => "yellow_wool", - Item::LimeWool => "lime_wool", - Item::PinkWool => "pink_wool", - Item::GrayWool => "gray_wool", - Item::LightGrayWool => "light_gray_wool", - Item::CyanWool => "cyan_wool", - Item::PurpleWool => "purple_wool", - Item::BlueWool => "blue_wool", - Item::BrownWool => "brown_wool", - Item::GreenWool => "green_wool", - Item::RedWool => "red_wool", - Item::BlackWool => "black_wool", + Item::WhiteBed => "white_bed", + Item::Minecart => "minecart", + Item::CartographyTable => "cartography_table", + Item::DeepslateIronOre => "deepslate_iron_ore", + Item::DarkOakPressurePlate => "dark_oak_pressure_plate", + Item::CrackedDeepslateBricks => "cracked_deepslate_bricks", + Item::BlackStainedGlass => "black_stained_glass", + Item::IronChestplate => "iron_chestplate", + Item::Chicken => "chicken", + Item::SmoothRedSandstoneStairs => "smooth_red_sandstone_stairs", + Item::WarpedFungus => "warped_fungus", + Item::MusicDisc13 => "music_disc_13", + Item::DeepslateBrickStairs => "deepslate_brick_stairs", + Item::TallGrass => "tall_grass", + Item::MagentaDye => "magenta_dye", Item::Dandelion => "dandelion", - Item::Poppy => "poppy", + Item::WrittenBook => "written_book", + Item::JungleFence => "jungle_fence", + Item::OakPlanks => "oak_planks", + Item::GlassBottle => "glass_bottle", + Item::LightBlueGlazedTerracotta => "light_blue_glazed_terracotta", + Item::RedstoneTorch => "redstone_torch", + Item::RedMushroomBlock => "red_mushroom_block", + Item::DeadBubbleCoralBlock => "dead_bubble_coral_block", + Item::Bookshelf => "bookshelf", + Item::DiamondHoe => "diamond_hoe", + Item::DeepslateBrickWall => "deepslate_brick_wall", + Item::Light => "light", + Item::WaterBucket => "water_bucket", + Item::DeepslateEmeraldOre => "deepslate_emerald_ore", + Item::DeadBubbleCoralFan => "dead_bubble_coral_fan", + Item::GuardianSpawnEgg => "guardian_spawn_egg", + Item::MuleSpawnEgg => "mule_spawn_egg", + Item::RawCopperBlock => "raw_copper_block", + Item::JungleWood => "jungle_wood", + Item::RedStainedGlass => "red_stained_glass", + Item::DeadBubbleCoral => "dead_bubble_coral", + Item::Potato => "potato", + Item::Compass => "compass", + Item::PinkDye => "pink_dye", + Item::Observer => "observer", + Item::MagentaGlazedTerracotta => "magenta_glazed_terracotta", + Item::DeadBush => "dead_bush", + Item::PolishedBlackstoneSlab => "polished_blackstone_slab", + Item::VindicatorSpawnEgg => "vindicator_spawn_egg", + Item::ChainmailLeggings => "chainmail_leggings", + Item::DarkOakDoor => "dark_oak_door", Item::BlueOrchid => "blue_orchid", - Item::Allium => "allium", - Item::AzureBluet => "azure_bluet", - Item::RedTulip => "red_tulip", - Item::OrangeTulip => "orange_tulip", - Item::WhiteTulip => "white_tulip", - Item::PinkTulip => "pink_tulip", - Item::OxeyeDaisy => "oxeye_daisy", - Item::Cornflower => "cornflower", - Item::LilyOfTheValley => "lily_of_the_valley", - Item::WitherRose => "wither_rose", - Item::BrownMushroom => "brown_mushroom", - Item::RedMushroom => "red_mushroom", - Item::CrimsonFungus => "crimson_fungus", - Item::WarpedFungus => "warped_fungus", - Item::CrimsonRoots => "crimson_roots", - Item::WarpedRoots => "warped_roots", - Item::NetherSprouts => "nether_sprouts", - Item::WeepingVines => "weeping_vines", - Item::TwistingVines => "twisting_vines", - Item::SugarCane => "sugar_cane", - Item::Kelp => "kelp", - Item::Bamboo => "bamboo", - Item::GoldBlock => "gold_block", + Item::BrownMushroomBlock => "brown_mushroom_block", + Item::RedSandstoneWall => "red_sandstone_wall", + Item::WhiteStainedGlass => "white_stained_glass", + Item::Beetroot => "beetroot", + Item::Rail => "rail", + Item::PhantomMembrane => "phantom_membrane", + Item::WhiteShulkerBox => "white_shulker_box", + Item::BlueBanner => "blue_banner", + Item::Farmland => "farmland", + Item::RedNetherBrickSlab => "red_nether_brick_slab", + Item::PolishedAndesiteSlab => "polished_andesite_slab", + Item::BlueStainedGlass => "blue_stained_glass", + Item::DragonBreath => "dragon_breath", + Item::WritableBook => "writable_book", + Item::GreenGlazedTerracotta => "green_glazed_terracotta", + Item::DeepslateRedstoneOre => "deepslate_redstone_ore", + Item::Prismarine => "prismarine", + Item::PurpleBed => "purple_bed", + Item::BlastFurnace => "blast_furnace", + Item::BrickSlab => "brick_slab", + Item::GreenStainedGlassPane => "green_stained_glass_pane", + Item::ChiseledRedSandstone => "chiseled_red_sandstone", + Item::MossyCobblestoneSlab => "mossy_cobblestone_slab", + Item::BlackDye => "black_dye", + Item::DeepslateBricks => "deepslate_bricks", + Item::HeavyWeightedPressurePlate => "heavy_weighted_pressure_plate", + Item::BeetrootSeeds => "beetroot_seeds", + Item::PolishedGraniteSlab => "polished_granite_slab", + Item::Bow => "bow", + Item::LightGrayGlazedTerracotta => "light_gray_glazed_terracotta", + Item::TripwireHook => "tripwire_hook", + Item::IronNugget => "iron_nugget", + Item::Granite => "granite", Item::IronBlock => "iron_block", - Item::OakSlab => "oak_slab", - Item::SpruceSlab => "spruce_slab", - Item::BirchSlab => "birch_slab", - Item::JungleSlab => "jungle_slab", - Item::AcaciaSlab => "acacia_slab", - Item::DarkOakSlab => "dark_oak_slab", - Item::CrimsonSlab => "crimson_slab", Item::WarpedSlab => "warped_slab", - Item::StoneSlab => "stone_slab", - Item::SmoothStoneSlab => "smooth_stone_slab", - Item::SandstoneSlab => "sandstone_slab", - Item::CutSandstoneSlab => "cut_sandstone_slab", - Item::PetrifiedOakSlab => "petrified_oak_slab", - Item::CobblestoneSlab => "cobblestone_slab", - Item::BrickSlab => "brick_slab", - Item::StoneBrickSlab => "stone_brick_slab", - Item::NetherBrickSlab => "nether_brick_slab", - Item::QuartzSlab => "quartz_slab", - Item::RedSandstoneSlab => "red_sandstone_slab", + Item::SmallDripleaf => "small_dripleaf", + Item::PolishedDeepslate => "polished_deepslate", + Item::RedWool => "red_wool", + Item::OakBoat => "oak_boat", + Item::WhiteCarpet => "white_carpet", + Item::OrangeDye => "orange_dye", + Item::SmoothQuartzSlab => "smooth_quartz_slab", + Item::CowSpawnEgg => "cow_spawn_egg", + Item::SeaLantern => "sea_lantern", + Item::LightWeightedPressurePlate => "light_weighted_pressure_plate", + Item::RoseBush => "rose_bush", + Item::PinkBed => "pink_bed", + Item::CookedMutton => "cooked_mutton", + Item::DeepslateLapisOre => "deepslate_lapis_ore", + Item::Seagrass => "seagrass", + Item::PolishedBlackstoneButton => "polished_blackstone_button", + Item::CocoaBeans => "cocoa_beans", + Item::ExposedCopper => "exposed_copper", + Item::PolishedDeepslateStairs => "polished_deepslate_stairs", + Item::GoldenApple => "golden_apple", + Item::Clock => "clock", + Item::PurpleStainedGlass => "purple_stained_glass", + Item::KnowledgeBook => "knowledge_book", + Item::Coal => "coal", + Item::EmeraldBlock => "emerald_block", + Item::PowderSnowBucket => "powder_snow_bucket", + Item::LightBlueBanner => "light_blue_banner", + Item::CutCopper => "cut_copper", + Item::CrimsonPlanks => "crimson_planks", + Item::JungleFenceGate => "jungle_fence_gate", + Item::Candle => "candle", + Item::PolishedBlackstoneStairs => "polished_blackstone_stairs", + Item::HornCoralFan => "horn_coral_fan", + Item::WeatheredCopper => "weathered_copper", + Item::WarpedPlanks => "warped_planks", + Item::EndStoneBrickWall => "end_stone_brick_wall", + Item::JungleButton => "jungle_button", + Item::DeepslateTiles => "deepslate_tiles", + Item::Ice => "ice", Item::CutRedSandstoneSlab => "cut_red_sandstone_slab", - Item::PurpurSlab => "purpur_slab", - Item::PrismarineSlab => "prismarine_slab", - Item::PrismarineBrickSlab => "prismarine_brick_slab", - Item::DarkPrismarineSlab => "dark_prismarine_slab", - Item::SmoothQuartz => "smooth_quartz", - Item::SmoothRedSandstone => "smooth_red_sandstone", - Item::SmoothSandstone => "smooth_sandstone", - Item::SmoothStone => "smooth_stone", - Item::Bricks => "bricks", + Item::LimeCandle => "lime_candle", + Item::SoulLantern => "soul_lantern", Item::Tnt => "tnt", - Item::Bookshelf => "bookshelf", - Item::MossyCobblestone => "mossy_cobblestone", - Item::Obsidian => "obsidian", - Item::Torch => "torch", - Item::EndRod => "end_rod", - Item::ChorusPlant => "chorus_plant", - Item::ChorusFlower => "chorus_flower", - Item::PurpurBlock => "purpur_block", - Item::PurpurPillar => "purpur_pillar", - Item::PurpurStairs => "purpur_stairs", - Item::Spawner => "spawner", - Item::OakStairs => "oak_stairs", - Item::Chest => "chest", - Item::DiamondOre => "diamond_ore", - Item::DiamondBlock => "diamond_block", - Item::CraftingTable => "crafting_table", - Item::Farmland => "farmland", - Item::Furnace => "furnace", - Item::Ladder => "ladder", - Item::Rail => "rail", - Item::CobblestoneStairs => "cobblestone_stairs", - Item::Lever => "lever", - Item::StonePressurePlate => "stone_pressure_plate", - Item::OakPressurePlate => "oak_pressure_plate", - Item::SprucePressurePlate => "spruce_pressure_plate", - Item::BirchPressurePlate => "birch_pressure_plate", - Item::JunglePressurePlate => "jungle_pressure_plate", - Item::AcaciaPressurePlate => "acacia_pressure_plate", - Item::DarkOakPressurePlate => "dark_oak_pressure_plate", - Item::CrimsonPressurePlate => "crimson_pressure_plate", - Item::WarpedPressurePlate => "warped_pressure_plate", + Item::AcaciaPlanks => "acacia_planks", + Item::WheatSeeds => "wheat_seeds", + Item::StoneStairs => "stone_stairs", + Item::MagmaCubeSpawnEgg => "magma_cube_spawn_egg", + Item::LimeTerracotta => "lime_terracotta", + Item::LightGrayBed => "light_gray_bed", + Item::MushroomStew => "mushroom_stew", + Item::RedSandstone => "red_sandstone", + Item::SpectralArrow => "spectral_arrow", + Item::MusicDiscStrad => "music_disc_strad", + Item::Emerald => "emerald", + Item::GlassPane => "glass_pane", Item::PolishedBlackstonePressurePlate => "polished_blackstone_pressure_plate", - Item::RedstoneOre => "redstone_ore", - Item::RedstoneTorch => "redstone_torch", - Item::Snow => "snow", - Item::Ice => "ice", - Item::SnowBlock => "snow_block", - Item::Cactus => "cactus", - Item::Clay => "clay", - Item::Jukebox => "jukebox", - Item::OakFence => "oak_fence", - Item::SpruceFence => "spruce_fence", - Item::BirchFence => "birch_fence", - Item::JungleFence => "jungle_fence", - Item::AcaciaFence => "acacia_fence", - Item::DarkOakFence => "dark_oak_fence", - Item::CrimsonFence => "crimson_fence", - Item::WarpedFence => "warped_fence", - Item::Pumpkin => "pumpkin", - Item::CarvedPumpkin => "carved_pumpkin", - Item::Netherrack => "netherrack", - Item::SoulSand => "soul_sand", - Item::SoulSoil => "soul_soil", - Item::Basalt => "basalt", - Item::PolishedBasalt => "polished_basalt", - Item::SoulTorch => "soul_torch", - Item::Glowstone => "glowstone", - Item::JackOLantern => "jack_o_lantern", - Item::OakTrapdoor => "oak_trapdoor", - Item::SpruceTrapdoor => "spruce_trapdoor", - Item::BirchTrapdoor => "birch_trapdoor", - Item::JungleTrapdoor => "jungle_trapdoor", - Item::AcaciaTrapdoor => "acacia_trapdoor", - Item::DarkOakTrapdoor => "dark_oak_trapdoor", - Item::CrimsonTrapdoor => "crimson_trapdoor", - Item::WarpedTrapdoor => "warped_trapdoor", - Item::InfestedStone => "infested_stone", - Item::InfestedCobblestone => "infested_cobblestone", - Item::InfestedStoneBricks => "infested_stone_bricks", - Item::InfestedMossyStoneBricks => "infested_mossy_stone_bricks", - Item::InfestedCrackedStoneBricks => "infested_cracked_stone_bricks", - Item::InfestedChiseledStoneBricks => "infested_chiseled_stone_bricks", + Item::Stick => "stick", + Item::LightGrayShulkerBox => "light_gray_shulker_box", Item::StoneBricks => "stone_bricks", - Item::MossyStoneBricks => "mossy_stone_bricks", - Item::CrackedStoneBricks => "cracked_stone_bricks", - Item::ChiseledStoneBricks => "chiseled_stone_bricks", - Item::BrownMushroomBlock => "brown_mushroom_block", - Item::RedMushroomBlock => "red_mushroom_block", - Item::MushroomStem => "mushroom_stem", - Item::IronBars => "iron_bars", - Item::Chain => "chain", - Item::GlassPane => "glass_pane", - Item::Melon => "melon", Item::Vine => "vine", - Item::OakFenceGate => "oak_fence_gate", - Item::SpruceFenceGate => "spruce_fence_gate", - Item::BirchFenceGate => "birch_fence_gate", - Item::JungleFenceGate => "jungle_fence_gate", - Item::AcaciaFenceGate => "acacia_fence_gate", - Item::DarkOakFenceGate => "dark_oak_fence_gate", - Item::CrimsonFenceGate => "crimson_fence_gate", - Item::WarpedFenceGate => "warped_fence_gate", - Item::BrickStairs => "brick_stairs", - Item::StoneBrickStairs => "stone_brick_stairs", - Item::Mycelium => "mycelium", + Item::Comparator => "comparator", + Item::EndCrystal => "end_crystal", + Item::DeepslateCoalOre => "deepslate_coal_ore", + Item::Smoker => "smoker", + Item::DeepslateDiamondOre => "deepslate_diamond_ore", + Item::LimeStainedGlass => "lime_stained_glass", + Item::Melon => "melon", + Item::IronAxe => "iron_axe", + Item::WaxedOxidizedCutCopperStairs => "waxed_oxidized_cut_copper_stairs", + Item::RedNetherBrickStairs => "red_nether_brick_stairs", + Item::LapisLazuli => "lapis_lazuli", + Item::BlackstoneStairs => "blackstone_stairs", + Item::OcelotSpawnEgg => "ocelot_spawn_egg", + Item::RedConcrete => "red_concrete", + Item::DripstoneBlock => "dripstone_block", + Item::InfestedDeepslate => "infested_deepslate", + Item::ShulkerSpawnEgg => "shulker_spawn_egg", + Item::JungleSapling => "jungle_sapling", + Item::SpiderEye => "spider_eye", + Item::YellowCandle => "yellow_candle", + Item::Deepslate => "deepslate", + Item::Fern => "fern", + Item::BrownConcretePowder => "brown_concrete_powder", + Item::DeepslateTileStairs => "deepslate_tile_stairs", + Item::Cookie => "cookie", + Item::EnchantedBook => "enchanted_book", + Item::CutSandstone => "cut_sandstone", Item::LilyPad => "lily_pad", - Item::NetherBricks => "nether_bricks", - Item::CrackedNetherBricks => "cracked_nether_bricks", - Item::ChiseledNetherBricks => "chiseled_nether_bricks", - Item::NetherBrickFence => "nether_brick_fence", - Item::NetherBrickStairs => "nether_brick_stairs", - Item::EnchantingTable => "enchanting_table", - Item::EndPortalFrame => "end_portal_frame", + Item::Cornflower => "cornflower", + Item::NetherBrickWall => "nether_brick_wall", + Item::Loom => "loom", + Item::JungleBoat => "jungle_boat", + Item::YellowDye => "yellow_dye", + Item::OakFence => "oak_fence", + Item::FlintAndSteel => "flint_and_steel", + Item::GreenStainedGlass => "green_stained_glass", + Item::Lodestone => "lodestone", + Item::SporeBlossom => "spore_blossom", + Item::YellowGlazedTerracotta => "yellow_glazed_terracotta", + Item::PolishedBlackstoneBrickWall => "polished_blackstone_brick_wall", + Item::DiamondBoots => "diamond_boots", + Item::HangingRoots => "hanging_roots", + Item::BlueIce => "blue_ice", + Item::MilkBucket => "milk_bucket", + Item::DiamondBlock => "diamond_block", + Item::ZombieVillagerSpawnEgg => "zombie_villager_spawn_egg", + Item::GoldenCarrot => "golden_carrot", + Item::Pufferfish => "pufferfish", + Item::LightGrayConcretePowder => "light_gray_concrete_powder", + Item::OrangeTerracotta => "orange_terracotta", + Item::DeepslateGoldOre => "deepslate_gold_ore", + Item::PrismarineBrickStairs => "prismarine_brick_stairs", + Item::BirchSign => "birch_sign", + Item::MelonSlice => "melon_slice", + Item::CookedChicken => "cooked_chicken", + Item::PolarBearSpawnEgg => "polar_bear_spawn_egg", + Item::BrownCandle => "brown_candle", + Item::BirchFence => "birch_fence", Item::EndStone => "end_stone", - Item::EndStoneBricks => "end_stone_bricks", - Item::DragonEgg => "dragon_egg", - Item::RedstoneLamp => "redstone_lamp", - Item::SandstoneStairs => "sandstone_stairs", - Item::EmeraldOre => "emerald_ore", - Item::EnderChest => "ender_chest", - Item::TripwireHook => "tripwire_hook", - Item::EmeraldBlock => "emerald_block", - Item::SpruceStairs => "spruce_stairs", + Item::CyanBed => "cyan_bed", + Item::OrangeStainedGlassPane => "orange_stained_glass_pane", + Item::DeadTubeCoral => "dead_tube_coral", + Item::WarpedDoor => "warped_door", Item::BirchStairs => "birch_stairs", - Item::JungleStairs => "jungle_stairs", - Item::CrimsonStairs => "crimson_stairs", - Item::WarpedStairs => "warped_stairs", - Item::CommandBlock => "command_block", - Item::Beacon => "beacon", - Item::CobblestoneWall => "cobblestone_wall", - Item::MossyCobblestoneWall => "mossy_cobblestone_wall", - Item::BrickWall => "brick_wall", - Item::PrismarineWall => "prismarine_wall", - Item::RedSandstoneWall => "red_sandstone_wall", - Item::MossyStoneBrickWall => "mossy_stone_brick_wall", - Item::GraniteWall => "granite_wall", - Item::StoneBrickWall => "stone_brick_wall", - Item::NetherBrickWall => "nether_brick_wall", - Item::AndesiteWall => "andesite_wall", - Item::RedNetherBrickWall => "red_nether_brick_wall", + Item::EndStoneBrickStairs => "end_stone_brick_stairs", + Item::Gunpowder => "gunpowder", + Item::BeetrootSoup => "beetroot_soup", + Item::GreenDye => "green_dye", + Item::LightBlueCandle => "light_blue_candle", + Item::Apple => "apple", + Item::SkeletonSkull => "skeleton_skull", + Item::BrainCoralFan => "brain_coral_fan", + Item::LightGrayCarpet => "light_gray_carpet", + Item::SprucePlanks => "spruce_planks", + Item::Snowball => "snowball", + Item::Piston => "piston", + Item::SpruceSign => "spruce_sign", + Item::LightGrayConcrete => "light_gray_concrete", + Item::StoneAxe => "stone_axe", + Item::MusicDiscChirp => "music_disc_chirp", + Item::EnderPearl => "ender_pearl", + Item::GoldNugget => "gold_nugget", + Item::WaxedExposedCopper => "waxed_exposed_copper", + Item::GoldenShovel => "golden_shovel", + Item::TwistingVines => "twisting_vines", + Item::PiglinBruteSpawnEgg => "piglin_brute_spawn_egg", + Item::Lever => "lever", + Item::PumpkinSeeds => "pumpkin_seeds", + Item::BlueDye => "blue_dye", + Item::Peony => "peony", + Item::Cake => "cake", + Item::OrangeBanner => "orange_banner", + Item::MusicDiscCat => "music_disc_cat", + Item::SmoothStone => "smooth_stone", + Item::BrainCoral => "brain_coral", + Item::OakDoor => "oak_door", + Item::TubeCoral => "tube_coral", + Item::FurnaceMinecart => "furnace_minecart", + Item::Leather => "leather", + Item::NautilusShell => "nautilus_shell", + Item::Kelp => "kelp", Item::SandstoneWall => "sandstone_wall", - Item::EndStoneBrickWall => "end_stone_brick_wall", - Item::DioriteWall => "diorite_wall", - Item::BlackstoneWall => "blackstone_wall", - Item::PolishedBlackstoneWall => "polished_blackstone_wall", - Item::PolishedBlackstoneBrickWall => "polished_blackstone_brick_wall", - Item::StoneButton => "stone_button", - Item::OakButton => "oak_button", - Item::SpruceButton => "spruce_button", - Item::BirchButton => "birch_button", - Item::JungleButton => "jungle_button", - Item::AcaciaButton => "acacia_button", - Item::DarkOakButton => "dark_oak_button", - Item::CrimsonButton => "crimson_button", - Item::WarpedButton => "warped_button", - Item::PolishedBlackstoneButton => "polished_blackstone_button", - Item::Anvil => "anvil", - Item::ChippedAnvil => "chipped_anvil", - Item::DamagedAnvil => "damaged_anvil", - Item::TrappedChest => "trapped_chest", - Item::LightWeightedPressurePlate => "light_weighted_pressure_plate", - Item::HeavyWeightedPressurePlate => "heavy_weighted_pressure_plate", - Item::DaylightDetector => "daylight_detector", + Item::RawGold => "raw_gold", + Item::PumpkinPie => "pumpkin_pie", + Item::AcaciaSapling => "acacia_sapling", + Item::GrayCarpet => "gray_carpet", Item::RedstoneBlock => "redstone_block", - Item::NetherQuartzOre => "nether_quartz_ore", - Item::Hopper => "hopper", - Item::ChiseledQuartzBlock => "chiseled_quartz_block", - Item::QuartzBlock => "quartz_block", - Item::QuartzBricks => "quartz_bricks", - Item::QuartzPillar => "quartz_pillar", - Item::QuartzStairs => "quartz_stairs", - Item::ActivatorRail => "activator_rail", - Item::Dropper => "dropper", - Item::WhiteTerracotta => "white_terracotta", - Item::OrangeTerracotta => "orange_terracotta", - Item::MagentaTerracotta => "magenta_terracotta", + Item::MossyStoneBrickSlab => "mossy_stone_brick_slab", + Item::PoweredRail => "powered_rail", + Item::LightGrayStainedGlass => "light_gray_stained_glass", + Item::NetheriteChestplate => "netherite_chestplate", Item::LightBlueTerracotta => "light_blue_terracotta", - Item::YellowTerracotta => "yellow_terracotta", - Item::LimeTerracotta => "lime_terracotta", - Item::PinkTerracotta => "pink_terracotta", + Item::BakedPotato => "baked_potato", + Item::PurpleConcretePowder => "purple_concrete_powder", + Item::Stone => "stone", + Item::SmithingTable => "smithing_table", + Item::TrappedChest => "trapped_chest", Item::GrayTerracotta => "gray_terracotta", - Item::LightGrayTerracotta => "light_gray_terracotta", - Item::CyanTerracotta => "cyan_terracotta", - Item::PurpleTerracotta => "purple_terracotta", - Item::BlueTerracotta => "blue_terracotta", - Item::BrownTerracotta => "brown_terracotta", - Item::GreenTerracotta => "green_terracotta", - Item::RedTerracotta => "red_terracotta", - Item::BlackTerracotta => "black_terracotta", - Item::Barrier => "barrier", - Item::IronTrapdoor => "iron_trapdoor", - Item::HayBlock => "hay_block", - Item::WhiteCarpet => "white_carpet", - Item::OrangeCarpet => "orange_carpet", - Item::MagentaCarpet => "magenta_carpet", - Item::LightBlueCarpet => "light_blue_carpet", - Item::YellowCarpet => "yellow_carpet", - Item::LimeCarpet => "lime_carpet", - Item::PinkCarpet => "pink_carpet", - Item::GrayCarpet => "gray_carpet", - Item::LightGrayCarpet => "light_gray_carpet", - Item::CyanCarpet => "cyan_carpet", - Item::PurpleCarpet => "purple_carpet", - Item::BlueCarpet => "blue_carpet", - Item::BrownCarpet => "brown_carpet", - Item::GreenCarpet => "green_carpet", - Item::RedCarpet => "red_carpet", + Item::WaxedOxidizedCutCopperSlab => "waxed_oxidized_cut_copper_slab", + Item::GildedBlackstone => "gilded_blackstone", + Item::TropicalFishSpawnEgg => "tropical_fish_spawn_egg", + Item::AcaciaLeaves => "acacia_leaves", Item::BlackCarpet => "black_carpet", - Item::Terracotta => "terracotta", - Item::CoalBlock => "coal_block", - Item::PackedIce => "packed_ice", - Item::AcaciaStairs => "acacia_stairs", - Item::DarkOakStairs => "dark_oak_stairs", - Item::SlimeBlock => "slime_block", - Item::GrassPath => "grass_path", - Item::Sunflower => "sunflower", - Item::Lilac => "lilac", - Item::RoseBush => "rose_bush", - Item::Peony => "peony", - Item::TallGrass => "tall_grass", - Item::LargeFern => "large_fern", - Item::WhiteStainedGlass => "white_stained_glass", - Item::OrangeStainedGlass => "orange_stained_glass", - Item::MagentaStainedGlass => "magenta_stained_glass", - Item::LightBlueStainedGlass => "light_blue_stained_glass", - Item::YellowStainedGlass => "yellow_stained_glass", - Item::LimeStainedGlass => "lime_stained_glass", - Item::PinkStainedGlass => "pink_stained_glass", - Item::GrayStainedGlass => "gray_stained_glass", - Item::LightGrayStainedGlass => "light_gray_stained_glass", - Item::CyanStainedGlass => "cyan_stained_glass", - Item::PurpleStainedGlass => "purple_stained_glass", - Item::BlueStainedGlass => "blue_stained_glass", - Item::BrownStainedGlass => "brown_stained_glass", - Item::GreenStainedGlass => "green_stained_glass", - Item::RedStainedGlass => "red_stained_glass", - Item::BlackStainedGlass => "black_stained_glass", - Item::WhiteStainedGlassPane => "white_stained_glass_pane", - Item::OrangeStainedGlassPane => "orange_stained_glass_pane", - Item::MagentaStainedGlassPane => "magenta_stained_glass_pane", - Item::LightBlueStainedGlassPane => "light_blue_stained_glass_pane", - Item::YellowStainedGlassPane => "yellow_stained_glass_pane", - Item::LimeStainedGlassPane => "lime_stained_glass_pane", - Item::PinkStainedGlassPane => "pink_stained_glass_pane", - Item::GrayStainedGlassPane => "gray_stained_glass_pane", - Item::LightGrayStainedGlassPane => "light_gray_stained_glass_pane", - Item::CyanStainedGlassPane => "cyan_stained_glass_pane", - Item::PurpleStainedGlassPane => "purple_stained_glass_pane", + Item::GoldIngot => "gold_ingot", + Item::CommandBlockMinecart => "command_block_minecart", + Item::BubbleCoralFan => "bubble_coral_fan", + Item::MusicDisc11 => "music_disc_11", + Item::PurpleBanner => "purple_banner", + Item::PolishedBlackstone => "polished_blackstone", + Item::RedGlazedTerracotta => "red_glazed_terracotta", Item::BlueStainedGlassPane => "blue_stained_glass_pane", - Item::BrownStainedGlassPane => "brown_stained_glass_pane", - Item::GreenStainedGlassPane => "green_stained_glass_pane", - Item::RedStainedGlassPane => "red_stained_glass_pane", - Item::BlackStainedGlassPane => "black_stained_glass_pane", - Item::Prismarine => "prismarine", - Item::PrismarineBricks => "prismarine_bricks", - Item::DarkPrismarine => "dark_prismarine", - Item::PrismarineStairs => "prismarine_stairs", - Item::PrismarineBrickStairs => "prismarine_brick_stairs", - Item::DarkPrismarineStairs => "dark_prismarine_stairs", - Item::SeaLantern => "sea_lantern", - Item::RedSandstone => "red_sandstone", - Item::ChiseledRedSandstone => "chiseled_red_sandstone", - Item::CutRedSandstone => "cut_red_sandstone", - Item::RedSandstoneStairs => "red_sandstone_stairs", - Item::RepeatingCommandBlock => "repeating_command_block", - Item::ChainCommandBlock => "chain_command_block", Item::MagmaBlock => "magma_block", - Item::NetherWartBlock => "nether_wart_block", + Item::Podzol => "podzol", + Item::StickyPiston => "sticky_piston", + Item::GhastTear => "ghast_tear", + Item::BigDripleaf => "big_dripleaf", + Item::BlueCarpet => "blue_carpet", + Item::CyanStainedGlassPane => "cyan_stained_glass_pane", + Item::YellowConcretePowder => "yellow_concrete_powder", + Item::DiamondChestplate => "diamond_chestplate", + Item::ZombieHorseSpawnEgg => "zombie_horse_spawn_egg", + Item::WarpedFenceGate => "warped_fence_gate", + Item::SweetBerries => "sweet_berries", + Item::StrippedSpruceLog => "stripped_spruce_log", + Item::CoalBlock => "coal_block", + Item::RedSandstoneSlab => "red_sandstone_slab", + Item::DarkOakBoat => "dark_oak_boat", + Item::Bundle => "bundle", + Item::NetheriteIngot => "netherite_ingot", + Item::CrimsonStairs => "crimson_stairs", + Item::WhiteConcretePowder => "white_concrete_powder", + Item::PufferfishBucket => "pufferfish_bucket", + Item::CobblestoneStairs => "cobblestone_stairs", Item::WarpedWartBlock => "warped_wart_block", - Item::RedNetherBricks => "red_nether_bricks", - Item::BoneBlock => "bone_block", - Item::StructureVoid => "structure_void", - Item::Observer => "observer", + Item::ChickenSpawnEgg => "chicken_spawn_egg", + Item::OrangeTulip => "orange_tulip", + Item::Glowstone => "glowstone", + Item::Chain => "chain", + Item::BirchTrapdoor => "birch_trapdoor", + Item::MagmaCream => "magma_cream", + Item::AxolotlSpawnEgg => "axolotl_spawn_egg", + Item::StoneButton => "stone_button", + Item::CopperBlock => "copper_block", + Item::SculkSensor => "sculk_sensor", + Item::OakStairs => "oak_stairs", + Item::BirchDoor => "birch_door", + Item::PinkCarpet => "pink_carpet", + Item::StrippedWarpedHyphae => "stripped_warped_hyphae", + Item::BirchSapling => "birch_sapling", + Item::PinkConcretePowder => "pink_concrete_powder", + Item::JungleStairs => "jungle_stairs", + Item::BlueConcretePowder => "blue_concrete_powder", + Item::PolishedBlackstoneBrickSlab => "polished_blackstone_brick_slab", + Item::FlowerPot => "flower_pot", + Item::Jigsaw => "jigsaw", + Item::LightGrayBanner => "light_gray_banner", + Item::ZoglinSpawnEgg => "zoglin_spawn_egg", + Item::CreeperBannerPattern => "creeper_banner_pattern", + Item::LapisBlock => "lapis_block", + Item::AmethystShard => "amethyst_shard", + Item::PufferfishSpawnEgg => "pufferfish_spawn_egg", + Item::PurpurPillar => "purpur_pillar", + Item::Furnace => "furnace", + Item::OakWood => "oak_wood", + Item::CutSandstoneSlab => "cut_sandstone_slab", + Item::BlueShulkerBox => "blue_shulker_box", + Item::RottenFlesh => "rotten_flesh", + Item::WaxedWeatheredCutCopperStairs => "waxed_weathered_cut_copper_stairs", + Item::SpruceLog => "spruce_log", + Item::NetheriteLeggings => "netherite_leggings", Item::ShulkerBox => "shulker_box", - Item::WhiteShulkerBox => "white_shulker_box", + Item::JunglePressurePlate => "jungle_pressure_plate", + Item::DiamondSword => "diamond_sword", + Item::RedMushroom => "red_mushroom", + Item::HopperMinecart => "hopper_minecart", + Item::WanderingTraderSpawnEgg => "wandering_trader_spawn_egg", + Item::Map => "map", + Item::EndermanSpawnEgg => "enderman_spawn_egg", + Item::Shears => "shears", + Item::RedSand => "red_sand", + Item::WhiteTulip => "white_tulip", + Item::BrownStainedGlass => "brown_stained_glass", + Item::LeatherChestplate => "leather_chestplate", + Item::CraftingTable => "crafting_table", + Item::DarkOakSign => "dark_oak_sign", + Item::Campfire => "campfire", + Item::DonkeySpawnEgg => "donkey_spawn_egg", + Item::Trident => "trident", + Item::FireCoralFan => "fire_coral_fan", + Item::GrayCandle => "gray_candle", + Item::BrownConcrete => "brown_concrete", + Item::NetheriteShovel => "netherite_shovel", + Item::PrismarineStairs => "prismarine_stairs", + Item::AmethystCluster => "amethyst_cluster", + Item::InfestedCrackedStoneBricks => "infested_cracked_stone_bricks", + Item::MossyStoneBricks => "mossy_stone_bricks", + Item::BrewingStand => "brewing_stand", + Item::SmoothSandstone => "smooth_sandstone", + Item::RawGoldBlock => "raw_gold_block", + Item::BrownStainedGlassPane => "brown_stained_glass_pane", + Item::GreenCarpet => "green_carpet", + Item::StoneShovel => "stone_shovel", + Item::CrackedPolishedBlackstoneBricks => "cracked_polished_blackstone_bricks", + Item::YellowConcrete => "yellow_concrete", + Item::MagentaWool => "magenta_wool", + Item::WhiteStainedGlassPane => "white_stained_glass_pane", + Item::Sandstone => "sandstone", + Item::GreenWool => "green_wool", + Item::SlimeSpawnEgg => "slime_spawn_egg", + Item::SmoothSandstoneSlab => "smooth_sandstone_slab", + Item::EnchantingTable => "enchanting_table", + Item::FireworkRocket => "firework_rocket", + Item::SmoothRedSandstoneSlab => "smooth_red_sandstone_slab", + Item::Bucket => "bucket", + Item::WaxedCutCopperStairs => "waxed_cut_copper_stairs", + Item::ChainmailChestplate => "chainmail_chestplate", + Item::EndPortalFrame => "end_portal_frame", + Item::WhiteConcrete => "white_concrete", + Item::CrimsonTrapdoor => "crimson_trapdoor", + Item::IronOre => "iron_ore", + Item::RedstoneLamp => "redstone_lamp", + Item::RedNetherBricks => "red_nether_bricks", + Item::VexSpawnEgg => "vex_spawn_egg", + Item::PrismarineSlab => "prismarine_slab", + Item::EndStoneBricks => "end_stone_bricks", + Item::FoxSpawnEgg => "fox_spawn_egg", + Item::Basalt => "basalt", Item::OrangeShulkerBox => "orange_shulker_box", - Item::MagentaShulkerBox => "magenta_shulker_box", - Item::LightBlueShulkerBox => "light_blue_shulker_box", - Item::YellowShulkerBox => "yellow_shulker_box", - Item::LimeShulkerBox => "lime_shulker_box", - Item::PinkShulkerBox => "pink_shulker_box", - Item::GrayShulkerBox => "gray_shulker_box", - Item::LightGrayShulkerBox => "light_gray_shulker_box", - Item::CyanShulkerBox => "cyan_shulker_box", - Item::PurpleShulkerBox => "purple_shulker_box", - Item::BlueShulkerBox => "blue_shulker_box", - Item::BrownShulkerBox => "brown_shulker_box", - Item::GreenShulkerBox => "green_shulker_box", - Item::RedShulkerBox => "red_shulker_box", + Item::Charcoal => "charcoal", Item::BlackShulkerBox => "black_shulker_box", - Item::WhiteGlazedTerracotta => "white_glazed_terracotta", - Item::OrangeGlazedTerracotta => "orange_glazed_terracotta", - Item::MagentaGlazedTerracotta => "magenta_glazed_terracotta", - Item::LightBlueGlazedTerracotta => "light_blue_glazed_terracotta", - Item::YellowGlazedTerracotta => "yellow_glazed_terracotta", - Item::LimeGlazedTerracotta => "lime_glazed_terracotta", - Item::PinkGlazedTerracotta => "pink_glazed_terracotta", - Item::GrayGlazedTerracotta => "gray_glazed_terracotta", - Item::LightGrayGlazedTerracotta => "light_gray_glazed_terracotta", - Item::CyanGlazedTerracotta => "cyan_glazed_terracotta", - Item::PurpleGlazedTerracotta => "purple_glazed_terracotta", - Item::BlueGlazedTerracotta => "blue_glazed_terracotta", - Item::BrownGlazedTerracotta => "brown_glazed_terracotta", - Item::GreenGlazedTerracotta => "green_glazed_terracotta", - Item::RedGlazedTerracotta => "red_glazed_terracotta", - Item::BlackGlazedTerracotta => "black_glazed_terracotta", - Item::WhiteConcrete => "white_concrete", - Item::OrangeConcrete => "orange_concrete", - Item::MagentaConcrete => "magenta_concrete", - Item::LightBlueConcrete => "light_blue_concrete", - Item::YellowConcrete => "yellow_concrete", - Item::LimeConcrete => "lime_concrete", - Item::PinkConcrete => "pink_concrete", - Item::GrayConcrete => "gray_concrete", - Item::LightGrayConcrete => "light_gray_concrete", - Item::CyanConcrete => "cyan_concrete", - Item::PurpleConcrete => "purple_concrete", - Item::BlueConcrete => "blue_concrete", - Item::BrownConcrete => "brown_concrete", - Item::GreenConcrete => "green_concrete", - Item::RedConcrete => "red_concrete", - Item::BlackConcrete => "black_concrete", - Item::WhiteConcretePowder => "white_concrete_powder", - Item::OrangeConcretePowder => "orange_concrete_powder", - Item::MagentaConcretePowder => "magenta_concrete_powder", - Item::LightBlueConcretePowder => "light_blue_concrete_powder", - Item::YellowConcretePowder => "yellow_concrete_powder", - Item::LimeConcretePowder => "lime_concrete_powder", - Item::PinkConcretePowder => "pink_concrete_powder", - Item::GrayConcretePowder => "gray_concrete_powder", - Item::LightGrayConcretePowder => "light_gray_concrete_powder", - Item::CyanConcretePowder => "cyan_concrete_powder", - Item::PurpleConcretePowder => "purple_concrete_powder", - Item::BlueConcretePowder => "blue_concrete_powder", - Item::BrownConcretePowder => "brown_concrete_powder", - Item::GreenConcretePowder => "green_concrete_powder", - Item::RedConcretePowder => "red_concrete_powder", - Item::BlackConcretePowder => "black_concrete_powder", - Item::TurtleEgg => "turtle_egg", - Item::DeadTubeCoralBlock => "dead_tube_coral_block", - Item::DeadBrainCoralBlock => "dead_brain_coral_block", - Item::DeadBubbleCoralBlock => "dead_bubble_coral_block", - Item::DeadFireCoralBlock => "dead_fire_coral_block", + Item::GrayBed => "gray_bed", + Item::Calcite => "calcite", + Item::PrismarineCrystals => "prismarine_crystals", + Item::WarpedHyphae => "warped_hyphae", + Item::CrimsonFence => "crimson_fence", + Item::LightBlueCarpet => "light_blue_carpet", + Item::LightBlueDye => "light_blue_dye", + Item::BlueWool => "blue_wool", + Item::NetherWartBlock => "nether_wart_block", + Item::RedCandle => "red_candle", + Item::SpruceFenceGate => "spruce_fence_gate", + Item::LeatherHorseArmor => "leather_horse_armor", + Item::HoneyBottle => "honey_bottle", + Item::PinkStainedGlassPane => "pink_stained_glass_pane", + Item::InfestedStone => "infested_stone", + Item::DolphinSpawnEgg => "dolphin_spawn_egg", + Item::DarkOakStairs => "dark_oak_stairs", + Item::DamagedAnvil => "damaged_anvil", + Item::Sunflower => "sunflower", + Item::GlowInkSac => "glow_ink_sac", + Item::AcaciaSlab => "acacia_slab", + Item::WhiteCandle => "white_candle", + Item::OrangeCandle => "orange_candle", + Item::WarpedTrapdoor => "warped_trapdoor", + Item::StrippedJungleWood => "stripped_jungle_wood", Item::DeadHornCoralBlock => "dead_horn_coral_block", - Item::TubeCoralBlock => "tube_coral_block", - Item::BrainCoralBlock => "brain_coral_block", - Item::BubbleCoralBlock => "bubble_coral_block", - Item::FireCoralBlock => "fire_coral_block", - Item::HornCoralBlock => "horn_coral_block", - Item::TubeCoral => "tube_coral", - Item::BrainCoral => "brain_coral", - Item::BubbleCoral => "bubble_coral", - Item::FireCoral => "fire_coral", - Item::HornCoral => "horn_coral", + Item::SpruceSapling => "spruce_sapling", + Item::BeeNest => "bee_nest", + Item::ChippedAnvil => "chipped_anvil", Item::DeadBrainCoral => "dead_brain_coral", - Item::DeadBubbleCoral => "dead_bubble_coral", - Item::DeadFireCoral => "dead_fire_coral", - Item::DeadHornCoral => "dead_horn_coral", - Item::DeadTubeCoral => "dead_tube_coral", - Item::TubeCoralFan => "tube_coral_fan", - Item::BrainCoralFan => "brain_coral_fan", - Item::BubbleCoralFan => "bubble_coral_fan", - Item::FireCoralFan => "fire_coral_fan", - Item::HornCoralFan => "horn_coral_fan", + Item::SpruceBoat => "spruce_boat", + Item::IronSword => "iron_sword", + Item::IronHelmet => "iron_helmet", Item::DeadTubeCoralFan => "dead_tube_coral_fan", - Item::DeadBrainCoralFan => "dead_brain_coral_fan", - Item::DeadBubbleCoralFan => "dead_bubble_coral_fan", - Item::DeadFireCoralFan => "dead_fire_coral_fan", - Item::DeadHornCoralFan => "dead_horn_coral_fan", - Item::BlueIce => "blue_ice", - Item::Conduit => "conduit", - Item::PolishedGraniteStairs => "polished_granite_stairs", - Item::SmoothRedSandstoneStairs => "smooth_red_sandstone_stairs", - Item::MossyStoneBrickStairs => "mossy_stone_brick_stairs", - Item::PolishedDioriteStairs => "polished_diorite_stairs", - Item::MossyCobblestoneStairs => "mossy_cobblestone_stairs", - Item::EndStoneBrickStairs => "end_stone_brick_stairs", - Item::StoneStairs => "stone_stairs", - Item::SmoothSandstoneStairs => "smooth_sandstone_stairs", - Item::SmoothQuartzStairs => "smooth_quartz_stairs", - Item::GraniteStairs => "granite_stairs", - Item::AndesiteStairs => "andesite_stairs", - Item::RedNetherBrickStairs => "red_nether_brick_stairs", - Item::PolishedAndesiteStairs => "polished_andesite_stairs", - Item::DioriteStairs => "diorite_stairs", - Item::PolishedGraniteSlab => "polished_granite_slab", - Item::SmoothRedSandstoneSlab => "smooth_red_sandstone_slab", - Item::MossyStoneBrickSlab => "mossy_stone_brick_slab", - Item::PolishedDioriteSlab => "polished_diorite_slab", - Item::MossyCobblestoneSlab => "mossy_cobblestone_slab", - Item::EndStoneBrickSlab => "end_stone_brick_slab", - Item::SmoothSandstoneSlab => "smooth_sandstone_slab", - Item::SmoothQuartzSlab => "smooth_quartz_slab", - Item::GraniteSlab => "granite_slab", - Item::AndesiteSlab => "andesite_slab", - Item::RedNetherBrickSlab => "red_nether_brick_slab", - Item::PolishedAndesiteSlab => "polished_andesite_slab", - Item::DioriteSlab => "diorite_slab", - Item::Scaffolding => "scaffolding", - Item::IronDoor => "iron_door", - Item::OakDoor => "oak_door", - Item::SpruceDoor => "spruce_door", - Item::BirchDoor => "birch_door", + Item::FletchingTable => "fletching_table", + Item::CookedSalmon => "cooked_salmon", + Item::DarkPrismarineStairs => "dark_prismarine_stairs", + Item::Brick => "brick", + Item::AxolotlBucket => "axolotl_bucket", + Item::BrownMushroom => "brown_mushroom", + Item::FishingRod => "fishing_rod", + Item::DioriteWall => "diorite_wall", + Item::Honeycomb => "honeycomb", + Item::RedStainedGlassPane => "red_stained_glass_pane", + Item::RabbitSpawnEgg => "rabbit_spawn_egg", + Item::WitherSkeletonSkull => "wither_skeleton_skull", + Item::WarpedFungusOnAStick => "warped_fungus_on_a_stick", + Item::IronBars => "iron_bars", + Item::HornCoralBlock => "horn_coral_block", + Item::IronShovel => "iron_shovel", + Item::AcaciaStairs => "acacia_stairs", + Item::SpruceStairs => "spruce_stairs", + Item::TubeCoralBlock => "tube_coral_block", + Item::Dropper => "dropper", + Item::CyanCarpet => "cyan_carpet", + Item::OakSign => "oak_sign", + Item::Jukebox => "jukebox", + Item::FireworkStar => "firework_star", + Item::Rabbit => "rabbit", + Item::MusicDiscStal => "music_disc_stal", + Item::PolishedBlackstoneBrickStairs => "polished_blackstone_brick_stairs", + Item::SpruceFence => "spruce_fence", + Item::StoneSword => "stone_sword", + Item::MagentaTerracotta => "magenta_terracotta", + Item::JackOLantern => "jack_o_lantern", + Item::WoodenHoe => "wooden_hoe", + Item::DiamondAxe => "diamond_axe", + Item::RedBed => "red_bed", + Item::Dirt => "dirt", + Item::PurpurSlab => "purpur_slab", + Item::PolishedDeepslateSlab => "polished_deepslate_slab", Item::JungleDoor => "jungle_door", - Item::AcaciaDoor => "acacia_door", - Item::DarkOakDoor => "dark_oak_door", - Item::CrimsonDoor => "crimson_door", - Item::WarpedDoor => "warped_door", - Item::Repeater => "repeater", - Item::Comparator => "comparator", - Item::StructureBlock => "structure_block", - Item::Jigsaw => "jigsaw", - Item::TurtleHelmet => "turtle_helmet", - Item::Scute => "scute", - Item::FlintAndSteel => "flint_and_steel", - Item::Apple => "apple", - Item::Bow => "bow", - Item::Arrow => "arrow", - Item::Coal => "coal", - Item::Charcoal => "charcoal", - Item::Diamond => "diamond", - Item::IronIngot => "iron_ingot", - Item::GoldIngot => "gold_ingot", - Item::NetheriteIngot => "netherite_ingot", - Item::NetheriteScrap => "netherite_scrap", - Item::WoodenSword => "wooden_sword", - Item::WoodenShovel => "wooden_shovel", - Item::WoodenPickaxe => "wooden_pickaxe", + Item::PoisonousPotato => "poisonous_potato", + Item::DeadHornCoralFan => "dead_horn_coral_fan", + Item::HorseSpawnEgg => "horse_spawn_egg", + Item::TraderLlamaSpawnEgg => "trader_llama_spawn_egg", + Item::CobblestoneSlab => "cobblestone_slab", + Item::WitherRose => "wither_rose", + Item::StrippedOakWood => "stripped_oak_wood", + Item::GlobeBannerPattern => "globe_banner_pattern", + Item::GrayDye => "gray_dye", + Item::ChiseledQuartzBlock => "chiseled_quartz_block", + Item::DeadBrainCoralBlock => "dead_brain_coral_block", + Item::AzureBluet => "azure_bluet", + Item::EmeraldOre => "emerald_ore", + Item::InfestedCobblestone => "infested_cobblestone", + Item::WhiteDye => "white_dye", + Item::CookedCod => "cooked_cod", + Item::DarkOakSapling => "dark_oak_sapling", + Item::LightGrayStainedGlassPane => "light_gray_stained_glass_pane", + Item::PinkGlazedTerracotta => "pink_glazed_terracotta", + Item::DioriteSlab => "diorite_slab", + Item::OrangeConcrete => "orange_concrete", + Item::EnchantedGoldenApple => "enchanted_golden_apple", + Item::BoneBlock => "bone_block", + Item::Hopper => "hopper", + Item::SpruceWood => "spruce_wood", + Item::SeaPickle => "sea_pickle", + Item::EnderChest => "ender_chest", + Item::DiamondLeggings => "diamond_leggings", + Item::CobbledDeepslateWall => "cobbled_deepslate_wall", + Item::CyanConcrete => "cyan_concrete", + Item::BrickWall => "brick_wall", + Item::LimeBed => "lime_bed", + Item::SkeletonHorseSpawnEgg => "skeleton_horse_spawn_egg", + Item::CobbledDeepslateSlab => "cobbled_deepslate_slab", + Item::WhiteGlazedTerracotta => "white_glazed_terracotta", + Item::SplashPotion => "splash_potion", + Item::Bone => "bone", + Item::AcaciaPressurePlate => "acacia_pressure_plate", + Item::GrayShulkerBox => "gray_shulker_box", + Item::LightBlueConcretePowder => "light_blue_concrete_powder", + Item::WarpedPressurePlate => "warped_pressure_plate", + Item::Andesite => "andesite", + Item::TntMinecart => "tnt_minecart", + Item::BlueTerracotta => "blue_terracotta", Item::WoodenAxe => "wooden_axe", - Item::WoodenHoe => "wooden_hoe", - Item::StoneSword => "stone_sword", - Item::StoneShovel => "stone_shovel", - Item::StonePickaxe => "stone_pickaxe", - Item::StoneAxe => "stone_axe", - Item::StoneHoe => "stone_hoe", - Item::GoldenSword => "golden_sword", - Item::GoldenShovel => "golden_shovel", - Item::GoldenPickaxe => "golden_pickaxe", - Item::GoldenAxe => "golden_axe", + Item::ExposedCutCopperStairs => "exposed_cut_copper_stairs", + Item::SpruceTrapdoor => "spruce_trapdoor", + Item::Potion => "potion", + Item::CoarseDirt => "coarse_dirt", + Item::DeepslateTileWall => "deepslate_tile_wall", + Item::BrownWool => "brown_wool", + Item::SmoothSandstoneStairs => "smooth_sandstone_stairs", + Item::Lantern => "lantern", + Item::BrownTerracotta => "brown_terracotta", + Item::CatSpawnEgg => "cat_spawn_egg", + Item::WaxedExposedCutCopperSlab => "waxed_exposed_cut_copper_slab", + Item::PinkCandle => "pink_candle", + Item::ExposedCutCopper => "exposed_cut_copper", + Item::GlowBerries => "glow_berries", + Item::SnowBlock => "snow_block", + Item::StoneSlab => "stone_slab", + Item::DriedKelpBlock => "dried_kelp_block", + Item::CrimsonFungus => "crimson_fungus", + Item::OxidizedCutCopperSlab => "oxidized_cut_copper_slab", + Item::WaxedExposedCutCopper => "waxed_exposed_cut_copper", + Item::LargeFern => "large_fern", + Item::GoldBlock => "gold_block", + Item::Repeater => "repeater", Item::GoldenHoe => "golden_hoe", - Item::IronSword => "iron_sword", - Item::IronShovel => "iron_shovel", - Item::IronPickaxe => "iron_pickaxe", - Item::IronAxe => "iron_axe", - Item::IronHoe => "iron_hoe", - Item::DiamondSword => "diamond_sword", - Item::DiamondShovel => "diamond_shovel", - Item::DiamondPickaxe => "diamond_pickaxe", - Item::DiamondAxe => "diamond_axe", - Item::DiamondHoe => "diamond_hoe", - Item::NetheriteSword => "netherite_sword", - Item::NetheriteShovel => "netherite_shovel", - Item::NetheritePickaxe => "netherite_pickaxe", - Item::NetheriteAxe => "netherite_axe", - Item::NetheriteHoe => "netherite_hoe", - Item::Stick => "stick", - Item::Bowl => "bowl", - Item::MushroomStew => "mushroom_stew", - Item::String => "string", - Item::Feather => "feather", - Item::Gunpowder => "gunpowder", - Item::WheatSeeds => "wheat_seeds", - Item::Wheat => "wheat", - Item::Bread => "bread", + Item::BlackWool => "black_wool", + Item::NetherQuartzOre => "nether_quartz_ore", + Item::WarpedButton => "warped_button", + Item::BirchFenceGate => "birch_fence_gate", + Item::Elytra => "elytra", + Item::LingeringPotion => "lingering_potion", Item::LeatherHelmet => "leather_helmet", - Item::LeatherChestplate => "leather_chestplate", - Item::LeatherLeggings => "leather_leggings", - Item::LeatherBoots => "leather_boots", + Item::Barrier => "barrier", + Item::BrownDye => "brown_dye", + Item::PolishedDioriteSlab => "polished_diorite_slab", + Item::ActivatorRail => "activator_rail", + Item::DrownedSpawnEgg => "drowned_spawn_egg", + Item::DarkOakLog => "dark_oak_log", + Item::GlowSquidSpawnEgg => "glow_squid_spawn_egg", + Item::GreenCandle => "green_candle", + Item::Tuff => "tuff", + Item::ChainCommandBlock => "chain_command_block", + Item::BlazeSpawnEgg => "blaze_spawn_egg", + Item::DioriteStairs => "diorite_stairs", + Item::Pumpkin => "pumpkin", + Item::BlackstoneWall => "blackstone_wall", + Item::HoglinSpawnEgg => "hoglin_spawn_egg", Item::ChainmailHelmet => "chainmail_helmet", - Item::ChainmailChestplate => "chainmail_chestplate", - Item::ChainmailLeggings => "chainmail_leggings", - Item::ChainmailBoots => "chainmail_boots", - Item::IronHelmet => "iron_helmet", - Item::IronChestplate => "iron_chestplate", - Item::IronLeggings => "iron_leggings", - Item::IronBoots => "iron_boots", - Item::DiamondHelmet => "diamond_helmet", - Item::DiamondChestplate => "diamond_chestplate", - Item::DiamondLeggings => "diamond_leggings", - Item::DiamondBoots => "diamond_boots", - Item::GoldenHelmet => "golden_helmet", + Item::DarkOakButton => "dark_oak_button", + Item::YellowWool => "yellow_wool", Item::GoldenChestplate => "golden_chestplate", - Item::GoldenLeggings => "golden_leggings", - Item::GoldenBoots => "golden_boots", - Item::NetheriteHelmet => "netherite_helmet", - Item::NetheriteChestplate => "netherite_chestplate", - Item::NetheriteLeggings => "netherite_leggings", - Item::NetheriteBoots => "netherite_boots", - Item::Flint => "flint", - Item::Porkchop => "porkchop", - Item::CookedPorkchop => "cooked_porkchop", - Item::Painting => "painting", - Item::GoldenApple => "golden_apple", - Item::EnchantedGoldenApple => "enchanted_golden_apple", - Item::OakSign => "oak_sign", - Item::SpruceSign => "spruce_sign", - Item::BirchSign => "birch_sign", - Item::JungleSign => "jungle_sign", - Item::AcaciaSign => "acacia_sign", - Item::DarkOakSign => "dark_oak_sign", - Item::CrimsonSign => "crimson_sign", - Item::WarpedSign => "warped_sign", - Item::Bucket => "bucket", - Item::WaterBucket => "water_bucket", - Item::LavaBucket => "lava_bucket", - Item::Minecart => "minecart", - Item::Saddle => "saddle", - Item::Redstone => "redstone", - Item::Snowball => "snowball", - Item::OakBoat => "oak_boat", - Item::Leather => "leather", - Item::MilkBucket => "milk_bucket", - Item::PufferfishBucket => "pufferfish_bucket", - Item::SalmonBucket => "salmon_bucket", - Item::CodBucket => "cod_bucket", - Item::TropicalFishBucket => "tropical_fish_bucket", - Item::Brick => "brick", - Item::ClayBall => "clay_ball", - Item::DriedKelpBlock => "dried_kelp_block", - Item::Paper => "paper", - Item::Book => "book", - Item::SlimeBall => "slime_ball", - Item::ChestMinecart => "chest_minecart", - Item::FurnaceMinecart => "furnace_minecart", - Item::Egg => "egg", - Item::Compass => "compass", - Item::FishingRod => "fishing_rod", - Item::Clock => "clock", - Item::GlowstoneDust => "glowstone_dust", + Item::QuartzSlab => "quartz_slab", Item::Cod => "cod", - Item::Salmon => "salmon", - Item::TropicalFish => "tropical_fish", - Item::Pufferfish => "pufferfish", - Item::CookedCod => "cooked_cod", - Item::CookedSalmon => "cooked_salmon", Item::InkSac => "ink_sac", - Item::CocoaBeans => "cocoa_beans", - Item::LapisLazuli => "lapis_lazuli", - Item::WhiteDye => "white_dye", - Item::OrangeDye => "orange_dye", - Item::MagentaDye => "magenta_dye", - Item::LightBlueDye => "light_blue_dye", - Item::YellowDye => "yellow_dye", - Item::LimeDye => "lime_dye", - Item::PinkDye => "pink_dye", - Item::GrayDye => "gray_dye", - Item::LightGrayDye => "light_gray_dye", - Item::CyanDye => "cyan_dye", - Item::PurpleDye => "purple_dye", - Item::BlueDye => "blue_dye", - Item::BrownDye => "brown_dye", - Item::GreenDye => "green_dye", - Item::RedDye => "red_dye", - Item::BlackDye => "black_dye", - Item::BoneMeal => "bone_meal", - Item::Bone => "bone", - Item::Sugar => "sugar", - Item::Cake => "cake", - Item::WhiteBed => "white_bed", - Item::OrangeBed => "orange_bed", + Item::CrimsonDoor => "crimson_door", + Item::Arrow => "arrow", + Item::PigSpawnEgg => "pig_spawn_egg", + Item::CyanTerracotta => "cyan_terracotta", + Item::NetherStar => "nether_star", + Item::OakSapling => "oak_sapling", + Item::HoneyBlock => "honey_block", + Item::CutRedSandstone => "cut_red_sandstone", + Item::Paper => "paper", + Item::ExposedCutCopperSlab => "exposed_cut_copper_slab", + Item::SuspiciousStew => "suspicious_stew", + Item::FlowerBannerPattern => "flower_banner_pattern", + Item::RawIron => "raw_iron", + Item::BlackGlazedTerracotta => "black_glazed_terracotta", + Item::SheepSpawnEgg => "sheep_spawn_egg", + Item::BlackBanner => "black_banner", + Item::Spyglass => "spyglass", + Item::PinkTulip => "pink_tulip", + Item::PinkWool => "pink_wool", + Item::NetheriteScrap => "netherite_scrap", + Item::DiamondHorseArmor => "diamond_horse_armor", + Item::ChiseledPolishedBlackstone => "chiseled_polished_blackstone", + Item::LimeConcrete => "lime_concrete", + Item::ChiseledNetherBricks => "chiseled_nether_bricks", + Item::PolishedDeepslateWall => "polished_deepslate_wall", + Item::GraniteSlab => "granite_slab", + Item::LightningRod => "lightning_rod", Item::MagentaBed => "magenta_bed", - Item::LightBlueBed => "light_blue_bed", - Item::YellowBed => "yellow_bed", - Item::LimeBed => "lime_bed", - Item::PinkBed => "pink_bed", - Item::GrayBed => "gray_bed", - Item::LightGrayBed => "light_gray_bed", - Item::CyanBed => "cyan_bed", - Item::PurpleBed => "purple_bed", - Item::BlueBed => "blue_bed", - Item::BrownBed => "brown_bed", - Item::GreenBed => "green_bed", - Item::RedBed => "red_bed", - Item::BlackBed => "black_bed", - Item::Cookie => "cookie", - Item::FilledMap => "filled_map", - Item::Shears => "shears", - Item::MelonSlice => "melon_slice", - Item::DriedKelp => "dried_kelp", - Item::PumpkinSeeds => "pumpkin_seeds", - Item::MelonSeeds => "melon_seeds", + Item::QuartzBricks => "quartz_bricks", + Item::SoulSand => "soul_sand", + Item::RedSandstoneStairs => "red_sandstone_stairs", + Item::LimeStainedGlassPane => "lime_stained_glass_pane", + Item::BlackCandle => "black_candle", + Item::WaxedWeatheredCutCopper => "waxed_weathered_cut_copper", + Item::RawCopper => "raw_copper", + Item::DeepslateCopperOre => "deepslate_copper_ore", + Item::GrayGlazedTerracotta => "gray_glazed_terracotta", + Item::Cobblestone => "cobblestone", + Item::GreenBanner => "green_banner", + Item::LilyOfTheValley => "lily_of_the_valley", + Item::FloweringAzalea => "flowering_azalea", + Item::PolishedAndesite => "polished_andesite", + Item::WetSponge => "wet_sponge", + Item::Grindstone => "grindstone", + Item::Wheat => "wheat", Item::Beef => "beef", - Item::CookedBeef => "cooked_beef", - Item::Chicken => "chicken", - Item::CookedChicken => "cooked_chicken", - Item::RottenFlesh => "rotten_flesh", - Item::EnderPearl => "ender_pearl", - Item::BlazeRod => "blaze_rod", - Item::GhastTear => "ghast_tear", - Item::GoldNugget => "gold_nugget", - Item::NetherWart => "nether_wart", - Item::Potion => "potion", - Item::GlassBottle => "glass_bottle", - Item::SpiderEye => "spider_eye", - Item::FermentedSpiderEye => "fermented_spider_eye", - Item::BlazePowder => "blaze_powder", - Item::MagmaCream => "magma_cream", - Item::BrewingStand => "brewing_stand", - Item::Cauldron => "cauldron", + Item::WoodenSword => "wooden_sword", + Item::LightGrayTerracotta => "light_gray_terracotta", + Item::Diorite => "diorite", + Item::NetherBrick => "nether_brick", + Item::BirchButton => "birch_button", + Item::AcaciaFenceGate => "acacia_fence_gate", + Item::WolfSpawnEgg => "wolf_spawn_egg", + Item::CrimsonPressurePlate => "crimson_pressure_plate", + Item::CobblestoneWall => "cobblestone_wall", + Item::LightBlueStainedGlass => "light_blue_stained_glass", + Item::BrownShulkerBox => "brown_shulker_box", + Item::WaxedWeatheredCopper => "waxed_weathered_copper", + Item::Conduit => "conduit", + Item::DiamondPickaxe => "diamond_pickaxe", + Item::EndStoneBrickSlab => "end_stone_brick_slab", + Item::IronLeggings => "iron_leggings", + Item::Flint => "flint", + Item::WarpedNylium => "warped_nylium", + Item::BrownCarpet => "brown_carpet", + Item::StrippedWarpedStem => "stripped_warped_stem", + Item::WhiteBanner => "white_banner", + Item::WhiteTerracotta => "white_terracotta", + Item::CreeperHead => "creeper_head", + Item::RedShulkerBox => "red_shulker_box", + Item::WoodenShovel => "wooden_shovel", + Item::AndesiteStairs => "andesite_stairs", + Item::JungleSlab => "jungle_slab", + Item::SpiderSpawnEgg => "spider_spawn_egg", + Item::MossyCobblestoneStairs => "mossy_cobblestone_stairs", + Item::QuartzPillar => "quartz_pillar", + Item::AcaciaFence => "acacia_fence", + Item::BrainCoralBlock => "brain_coral_block", + Item::CyanBanner => "cyan_banner", + Item::BirchSlab => "birch_slab", + Item::CrimsonSlab => "crimson_slab", + Item::AmethystBlock => "amethyst_block", + Item::StoneBrickStairs => "stone_brick_stairs", + Item::CrackedDeepslateTiles => "cracked_deepslate_tiles", + Item::RedTulip => "red_tulip", + Item::Allium => "allium", + Item::GreenConcretePowder => "green_concrete_powder", + Item::MusicDiscBlocks => "music_disc_blocks", + Item::Salmon => "salmon", + Item::RedTerracotta => "red_terracotta", + Item::SandstoneStairs => "sandstone_stairs", + Item::GhastSpawnEgg => "ghast_spawn_egg", + Item::GrayStainedGlassPane => "gray_stained_glass_pane", Item::EnderEye => "ender_eye", - Item::GlisteringMelonSlice => "glistering_melon_slice", + Item::CookedRabbit => "cooked_rabbit", + Item::Beehive => "beehive", + Item::NetheriteHelmet => "netherite_helmet", + Item::TurtleSpawnEgg => "turtle_spawn_egg", + Item::LeatherBoots => "leather_boots", + Item::CrimsonStem => "crimson_stem", + Item::TubeCoralFan => "tube_coral_fan", + Item::EndermiteSpawnEgg => "endermite_spawn_egg", + Item::WitherSkeletonSpawnEgg => "wither_skeleton_spawn_egg", + Item::PurpleShulkerBox => "purple_shulker_box", + Item::NetheriteBlock => "netherite_block", + Item::SprucePressurePlate => "spruce_pressure_plate", + Item::CyanConcretePowder => "cyan_concrete_powder", + Item::Egg => "egg", + Item::PinkStainedGlass => "pink_stained_glass", + Item::RedBanner => "red_banner", + Item::JunglePlanks => "jungle_planks", + Item::RespawnAnchor => "respawn_anchor", Item::BatSpawnEgg => "bat_spawn_egg", - Item::BeeSpawnEgg => "bee_spawn_egg", - Item::BlazeSpawnEgg => "blaze_spawn_egg", - Item::CatSpawnEgg => "cat_spawn_egg", + Item::PointedDripstone => "pointed_dripstone", + Item::Gravel => "gravel", + Item::Bowl => "bowl", Item::CaveSpiderSpawnEgg => "cave_spider_spawn_egg", - Item::ChickenSpawnEgg => "chicken_spawn_egg", - Item::CodSpawnEgg => "cod_spawn_egg", - Item::CowSpawnEgg => "cow_spawn_egg", - Item::CreeperSpawnEgg => "creeper_spawn_egg", - Item::DolphinSpawnEgg => "dolphin_spawn_egg", - Item::DonkeySpawnEgg => "donkey_spawn_egg", - Item::DrownedSpawnEgg => "drowned_spawn_egg", - Item::ElderGuardianSpawnEgg => "elder_guardian_spawn_egg", - Item::EndermanSpawnEgg => "enderman_spawn_egg", - Item::EndermiteSpawnEgg => "endermite_spawn_egg", - Item::EvokerSpawnEgg => "evoker_spawn_egg", - Item::FoxSpawnEgg => "fox_spawn_egg", - Item::GhastSpawnEgg => "ghast_spawn_egg", - Item::GuardianSpawnEgg => "guardian_spawn_egg", - Item::HoglinSpawnEgg => "hoglin_spawn_egg", - Item::HorseSpawnEgg => "horse_spawn_egg", - Item::HuskSpawnEgg => "husk_spawn_egg", - Item::LlamaSpawnEgg => "llama_spawn_egg", - Item::MagmaCubeSpawnEgg => "magma_cube_spawn_egg", - Item::MooshroomSpawnEgg => "mooshroom_spawn_egg", - Item::MuleSpawnEgg => "mule_spawn_egg", - Item::OcelotSpawnEgg => "ocelot_spawn_egg", - Item::PandaSpawnEgg => "panda_spawn_egg", - Item::ParrotSpawnEgg => "parrot_spawn_egg", - Item::PhantomSpawnEgg => "phantom_spawn_egg", - Item::PigSpawnEgg => "pig_spawn_egg", - Item::PiglinSpawnEgg => "piglin_spawn_egg", - Item::PiglinBruteSpawnEgg => "piglin_brute_spawn_egg", - Item::PillagerSpawnEgg => "pillager_spawn_egg", - Item::PolarBearSpawnEgg => "polar_bear_spawn_egg", - Item::PufferfishSpawnEgg => "pufferfish_spawn_egg", - Item::RabbitSpawnEgg => "rabbit_spawn_egg", + Item::QuartzStairs => "quartz_stairs", + Item::SpruceButton => "spruce_button", + Item::CarvedPumpkin => "carved_pumpkin", + Item::LightBlueShulkerBox => "light_blue_shulker_box", + Item::BeeSpawnEgg => "bee_spawn_egg", + Item::OakFenceGate => "oak_fence_gate", + Item::NetherBrickFence => "nether_brick_fence", + Item::IronHorseArmor => "iron_horse_armor", + Item::DeadHornCoral => "dead_horn_coral", + Item::PolishedDiorite => "polished_diorite", Item::RavagerSpawnEgg => "ravager_spawn_egg", + Item::EndRod => "end_rod", + Item::MagentaStainedGlass => "magenta_stained_glass", + Item::ChorusPlant => "chorus_plant", + Item::OrangeConcretePowder => "orange_concrete_powder", + Item::DragonEgg => "dragon_egg", + Item::GreenConcrete => "green_concrete", + Item::StrippedAcaciaLog => "stripped_acacia_log", + Item::Diamond => "diamond", + Item::Ladder => "ladder", + Item::PrismarineWall => "prismarine_wall", + Item::MossBlock => "moss_block", + Item::OakLeaves => "oak_leaves", + Item::CookedPorkchop => "cooked_porkchop", + Item::YellowStainedGlassPane => "yellow_stained_glass_pane", Item::SalmonSpawnEgg => "salmon_spawn_egg", - Item::SheepSpawnEgg => "sheep_spawn_egg", - Item::ShulkerSpawnEgg => "shulker_spawn_egg", - Item::SilverfishSpawnEgg => "silverfish_spawn_egg", - Item::SkeletonSpawnEgg => "skeleton_spawn_egg", - Item::SkeletonHorseSpawnEgg => "skeleton_horse_spawn_egg", - Item::SlimeSpawnEgg => "slime_spawn_egg", - Item::SpiderSpawnEgg => "spider_spawn_egg", - Item::SquidSpawnEgg => "squid_spawn_egg", - Item::StraySpawnEgg => "stray_spawn_egg", - Item::StriderSpawnEgg => "strider_spawn_egg", - Item::TraderLlamaSpawnEgg => "trader_llama_spawn_egg", - Item::TropicalFishSpawnEgg => "tropical_fish_spawn_egg", - Item::TurtleSpawnEgg => "turtle_spawn_egg", - Item::VexSpawnEgg => "vex_spawn_egg", - Item::VillagerSpawnEgg => "villager_spawn_egg", - Item::VindicatorSpawnEgg => "vindicator_spawn_egg", - Item::WanderingTraderSpawnEgg => "wandering_trader_spawn_egg", + Item::ChainmailBoots => "chainmail_boots", Item::WitchSpawnEgg => "witch_spawn_egg", - Item::WitherSkeletonSpawnEgg => "wither_skeleton_spawn_egg", - Item::WolfSpawnEgg => "wolf_spawn_egg", - Item::ZoglinSpawnEgg => "zoglin_spawn_egg", - Item::ZombieSpawnEgg => "zombie_spawn_egg", - Item::ZombieHorseSpawnEgg => "zombie_horse_spawn_egg", - Item::ZombieVillagerSpawnEgg => "zombie_villager_spawn_egg", - Item::ZombifiedPiglinSpawnEgg => "zombified_piglin_spawn_egg", - Item::ExperienceBottle => "experience_bottle", - Item::FireCharge => "fire_charge", - Item::WritableBook => "writable_book", - Item::WrittenBook => "written_book", - Item::Emerald => "emerald", - Item::ItemFrame => "item_frame", - Item::FlowerPot => "flower_pot", - Item::Carrot => "carrot", - Item::Potato => "potato", - Item::BakedPotato => "baked_potato", - Item::PoisonousPotato => "poisonous_potato", - Item::Map => "map", - Item::GoldenCarrot => "golden_carrot", - Item::SkeletonSkull => "skeleton_skull", - Item::WitherSkeletonSkull => "wither_skeleton_skull", - Item::PlayerHead => "player_head", - Item::ZombieHead => "zombie_head", - Item::CreeperHead => "creeper_head", - Item::DragonHead => "dragon_head", - Item::CarrotOnAStick => "carrot_on_a_stick", - Item::WarpedFungusOnAStick => "warped_fungus_on_a_stick", - Item::NetherStar => "nether_star", - Item::PumpkinPie => "pumpkin_pie", - Item::FireworkRocket => "firework_rocket", - Item::FireworkStar => "firework_star", - Item::EnchantedBook => "enchanted_book", - Item::NetherBrick => "nether_brick", - Item::Quartz => "quartz", - Item::TntMinecart => "tnt_minecart", - Item::HopperMinecart => "hopper_minecart", - Item::PrismarineShard => "prismarine_shard", - Item::PrismarineCrystals => "prismarine_crystals", - Item::Rabbit => "rabbit", - Item::CookedRabbit => "cooked_rabbit", - Item::RabbitStew => "rabbit_stew", - Item::RabbitFoot => "rabbit_foot", - Item::RabbitHide => "rabbit_hide", - Item::ArmorStand => "armor_stand", - Item::IronHorseArmor => "iron_horse_armor", - Item::GoldenHorseArmor => "golden_horse_armor", - Item::DiamondHorseArmor => "diamond_horse_armor", - Item::LeatherHorseArmor => "leather_horse_armor", - Item::Lead => "lead", - Item::NameTag => "name_tag", - Item::CommandBlockMinecart => "command_block_minecart", + Item::OxidizedCutCopperStairs => "oxidized_cut_copper_stairs", + Item::LapisOre => "lapis_ore", + Item::SmoothRedSandstone => "smooth_red_sandstone", + Item::JungleTrapdoor => "jungle_trapdoor", + Item::Shroomlight => "shroomlight", + Item::BlackstoneSlab => "blackstone_slab", Item::Mutton => "mutton", - Item::CookedMutton => "cooked_mutton", - Item::WhiteBanner => "white_banner", - Item::OrangeBanner => "orange_banner", - Item::MagentaBanner => "magenta_banner", - Item::LightBlueBanner => "light_blue_banner", - Item::YellowBanner => "yellow_banner", - Item::LimeBanner => "lime_banner", - Item::PinkBanner => "pink_banner", - Item::GrayBanner => "gray_banner", - Item::LightGrayBanner => "light_gray_banner", - Item::CyanBanner => "cyan_banner", - Item::PurpleBanner => "purple_banner", - Item::BlueBanner => "blue_banner", - Item::BrownBanner => "brown_banner", - Item::GreenBanner => "green_banner", - Item::RedBanner => "red_banner", - Item::BlackBanner => "black_banner", - Item::EndCrystal => "end_crystal", + Item::StrippedOakLog => "stripped_oak_log", + Item::YellowStainedGlass => "yellow_stained_glass", + Item::CryingObsidian => "crying_obsidian", + Item::SpruceSlab => "spruce_slab", + Item::GrayConcrete => "gray_concrete", Item::ChorusFruit => "chorus_fruit", + Item::SilverfishSpawnEgg => "silverfish_spawn_egg", + Item::CyanShulkerBox => "cyan_shulker_box", + Item::BlackTerracotta => "black_terracotta", + Item::RedstoneOre => "redstone_ore", + Item::RedDye => "red_dye", + Item::SmoothBasalt => "smooth_basalt", + Item::PurpleGlazedTerracotta => "purple_glazed_terracotta", Item::PoppedChorusFruit => "popped_chorus_fruit", - Item::Beetroot => "beetroot", - Item::BeetrootSeeds => "beetroot_seeds", - Item::BeetrootSoup => "beetroot_soup", - Item::DragonBreath => "dragon_breath", - Item::SplashPotion => "splash_potion", - Item::SpectralArrow => "spectral_arrow", - Item::TippedArrow => "tipped_arrow", - Item::LingeringPotion => "lingering_potion", - Item::Shield => "shield", - Item::Elytra => "elytra", - Item::SpruceBoat => "spruce_boat", - Item::BirchBoat => "birch_boat", - Item::JungleBoat => "jungle_boat", - Item::AcaciaBoat => "acacia_boat", - Item::DarkOakBoat => "dark_oak_boat", - Item::TotemOfUndying => "totem_of_undying", - Item::ShulkerShell => "shulker_shell", - Item::IronNugget => "iron_nugget", - Item::KnowledgeBook => "knowledge_book", Item::DebugStick => "debug_stick", - Item::MusicDisc13 => "music_disc_13", - Item::MusicDiscCat => "music_disc_cat", - Item::MusicDiscBlocks => "music_disc_blocks", - Item::MusicDiscChirp => "music_disc_chirp", - Item::MusicDiscFar => "music_disc_far", - Item::MusicDiscMall => "music_disc_mall", - Item::MusicDiscMellohi => "music_disc_mellohi", - Item::MusicDiscStal => "music_disc_stal", - Item::MusicDiscStrad => "music_disc_strad", - Item::MusicDiscWard => "music_disc_ward", - Item::MusicDisc11 => "music_disc_11", - Item::MusicDiscWait => "music_disc_wait", + Item::WaxedCopperBlock => "waxed_copper_block", + Item::WarpedRoots => "warped_roots", + Item::DiamondHelmet => "diamond_helmet", + Item::BirchPressurePlate => "birch_pressure_plate", + Item::PinkConcrete => "pink_concrete", + Item::ChestMinecart => "chest_minecart", + Item::Torch => "torch", + Item::AcaciaDoor => "acacia_door", + Item::DiamondShovel => "diamond_shovel", + Item::Bamboo => "bamboo", + Item::IronTrapdoor => "iron_trapdoor", + Item::DarkOakSlab => "dark_oak_slab", + Item::BrownBed => "brown_bed", + Item::RootedDirt => "rooted_dirt", + Item::AcaciaTrapdoor => "acacia_trapdoor", + Item::Carrot => "carrot", + Item::CobbledDeepslate => "cobbled_deepslate", + Item::CrimsonRoots => "crimson_roots", + Item::GoldenLeggings => "golden_leggings", + Item::Grass => "grass", Item::MusicDiscPigstep => "music_disc_pigstep", - Item::Trident => "trident", - Item::PhantomMembrane => "phantom_membrane", - Item::NautilusShell => "nautilus_shell", - Item::HeartOfTheSea => "heart_of_the_sea", - Item::Crossbow => "crossbow", - Item::SuspiciousStew => "suspicious_stew", - Item::Loom => "loom", - Item::FlowerBannerPattern => "flower_banner_pattern", - Item::CreeperBannerPattern => "creeper_banner_pattern", - Item::SkullBannerPattern => "skull_banner_pattern", - Item::MojangBannerPattern => "mojang_banner_pattern", - Item::GlobeBannerPattern => "globe_banner_pattern", - Item::PiglinBannerPattern => "piglin_banner_pattern", - Item::Composter => "composter", - Item::Barrel => "barrel", - Item::Smoker => "smoker", - Item::BlastFurnace => "blast_furnace", - Item::CartographyTable => "cartography_table", - Item::FletchingTable => "fletching_table", - Item::Grindstone => "grindstone", + Item::CommandBlock => "command_block", + Item::CutCopperSlab => "cut_copper_slab", + Item::PinkTerracotta => "pink_terracotta", + Item::LimeWool => "lime_wool", + Item::FireCoral => "fire_coral", + Item::BirchBoat => "birch_boat", + Item::LightGrayDye => "light_gray_dye", + Item::Obsidian => "obsidian", + Item::Spawner => "spawner", + Item::GreenShulkerBox => "green_shulker_box", + Item::FilledMap => "filled_map", + Item::BlueCandle => "blue_candle", + Item::JungleLog => "jungle_log", + Item::SkeletonSpawnEgg => "skeleton_spawn_egg", + Item::SquidSpawnEgg => "squid_spawn_egg", + Item::BlueGlazedTerracotta => "blue_glazed_terracotta", + Item::MagentaShulkerBox => "magenta_shulker_box", + Item::NetherGoldOre => "nether_gold_ore", + Item::StonePressurePlate => "stone_pressure_plate", + Item::ItemFrame => "item_frame", Item::Lectern => "lectern", - Item::SmithingTable => "smithing_table", - Item::Stonecutter => "stonecutter", - Item::Bell => "bell", - Item::Lantern => "lantern", - Item::SoulLantern => "soul_lantern", - Item::SweetBerries => "sweet_berries", - Item::Campfire => "campfire", - Item::SoulCampfire => "soul_campfire", - Item::Shroomlight => "shroomlight", - Item::Honeycomb => "honeycomb", - Item::BeeNest => "bee_nest", - Item::Beehive => "beehive", - Item::HoneyBottle => "honey_bottle", - Item::HoneyBlock => "honey_block", - Item::HoneycombBlock => "honeycomb_block", - Item::Lodestone => "lodestone", - Item::NetheriteBlock => "netherite_block", - Item::AncientDebris => "ancient_debris", - Item::Target => "target", - Item::CryingObsidian => "crying_obsidian", - Item::Blackstone => "blackstone", - Item::BlackstoneSlab => "blackstone_slab", - Item::BlackstoneStairs => "blackstone_stairs", - Item::GildedBlackstone => "gilded_blackstone", - Item::PolishedBlackstone => "polished_blackstone", - Item::PolishedBlackstoneSlab => "polished_blackstone_slab", - Item::PolishedBlackstoneStairs => "polished_blackstone_stairs", - Item::ChiseledPolishedBlackstone => "chiseled_polished_blackstone", - Item::PolishedBlackstoneBricks => "polished_blackstone_bricks", - Item::PolishedBlackstoneBrickSlab => "polished_blackstone_brick_slab", - Item::PolishedBlackstoneBrickStairs => "polished_blackstone_brick_stairs", - Item::CrackedPolishedBlackstoneBricks => "cracked_polished_blackstone_bricks", - Item::RespawnAnchor => "respawn_anchor", + Item::NetheriteHoe => "netherite_hoe", + Item::DarkOakFence => "dark_oak_fence", + Item::WarpedStairs => "warped_stairs", + Item::TippedArrow => "tipped_arrow", + Item::CrimsonHyphae => "crimson_hyphae", + Item::ChorusFlower => "chorus_flower", + Item::SandstoneSlab => "sandstone_slab", + Item::BrownGlazedTerracotta => "brown_glazed_terracotta", + Item::DeadFireCoral => "dead_fire_coral", + Item::GoldOre => "gold_ore", + Item::StrippedCrimsonStem => "stripped_crimson_stem", + Item::StoneBrickWall => "stone_brick_wall", + Item::DeadTubeCoralBlock => "dead_tube_coral_block", + Item::NetheriteBoots => "netherite_boots", + Item::CopperOre => "copper_ore", + Item::DeadBrainCoralFan => "dead_brain_coral_fan", + Item::YellowCarpet => "yellow_carpet", + Item::VillagerSpawnEgg => "villager_spawn_egg", + Item::ArmorStand => "armor_stand", + Item::GrayBanner => "gray_banner", + Item::NoteBlock => "note_block", + Item::MagentaBanner => "magenta_banner", + Item::GlisteringMelonSlice => "glistering_melon_slice", + Item::EvokerSpawnEgg => "evoker_spawn_egg", + Item::HayBlock => "hay_block", + Item::BlueConcrete => "blue_concrete", + Item::CookedBeef => "cooked_beef", + Item::RabbitStew => "rabbit_stew", + Item::PackedIce => "packed_ice", + Item::BirchLeaves => "birch_leaves", + Item::MossCarpet => "moss_carpet", + Item::GrayWool => "gray_wool", + Item::MossyCobblestoneWall => "mossy_cobblestone_wall", + Item::Lilac => "lilac", + Item::StoneBrickSlab => "stone_brick_slab", + Item::CarrotOnAStick => "carrot_on_a_stick", + Item::CrimsonFenceGate => "crimson_fence_gate", + Item::InfestedMossyStoneBricks => "infested_mossy_stone_bricks", + Item::Cobweb => "cobweb", + Item::TurtleHelmet => "turtle_helmet", + Item::OakSlab => "oak_slab", + Item::PolishedGranite => "polished_granite", + Item::Clay => "clay", + Item::OrangeWool => "orange_wool", + Item::Sand => "sand", + Item::FireCoralBlock => "fire_coral_block", + Item::Barrel => "barrel", + Item::Lead => "lead", + Item::CutCopperStairs => "cut_copper_stairs", + Item::WaxedCutCopper => "waxed_cut_copper", + Item::WarpedStem => "warped_stem", + Item::LightBlueWool => "light_blue_wool", + Item::DarkOakWood => "dark_oak_wood", + Item::SugarCane => "sugar_cane", + Item::CyanDye => "cyan_dye", + Item::ZombieHead => "zombie_head", + Item::NetherWart => "nether_wart", + Item::Feather => "feather", + Item::IronPickaxe => "iron_pickaxe", + Item::TotemOfUndying => "totem_of_undying", + Item::NameTag => "name_tag", + Item::GlowstoneDust => "glowstone_dust", + Item::MelonSeeds => "melon_seeds", + Item::StrippedJungleLog => "stripped_jungle_log", + Item::BrickStairs => "brick_stairs", + Item::PurpleWool => "purple_wool", + Item::MagentaCarpet => "magenta_carpet", + Item::IronDoor => "iron_door", + Item::CyanWool => "cyan_wool", + Item::Terracotta => "terracotta", + Item::Bread => "bread", + Item::ClayBall => "clay_ball", + Item::MusicDiscMall => "music_disc_mall", + Item::BuddingAmethyst => "budding_amethyst", + Item::CrimsonSign => "crimson_sign", + Item::LimeDye => "lime_dye", + Item::PurpurStairs => "purpur_stairs", + Item::StructureBlock => "structure_block", + Item::PlayerHead => "player_head", + Item::OakTrapdoor => "oak_trapdoor", + Item::ParrotSpawnEgg => "parrot_spawn_egg", + Item::AzaleaLeaves => "azalea_leaves", + Item::YellowBed => "yellow_bed", + Item::IronIngot => "iron_ingot", + Item::Redstone => "redstone", + Item::Beacon => "beacon", + Item::ChiseledDeepslate => "chiseled_deepslate", + Item::GrayStainedGlass => "gray_stained_glass", + Item::IronHoe => "iron_hoe", + Item::PiglinSpawnEgg => "piglin_spawn_egg", + Item::ElderGuardianSpawnEgg => "elder_guardian_spawn_egg", + Item::DarkOakFenceGate => "dark_oak_fence_gate", } } - - /// Gets a `Item` by its `name`. + #[doc = "Gets a `Item` by its `name`."] + #[inline] pub fn from_name(name: &str) -> Option { match name { - "air" => Some(Item::Air), - "stone" => Some(Item::Stone), - "granite" => Some(Item::Granite), - "polished_granite" => Some(Item::PolishedGranite), - "diorite" => Some(Item::Diorite), - "polished_diorite" => Some(Item::PolishedDiorite), - "andesite" => Some(Item::Andesite), - "polished_andesite" => Some(Item::PolishedAndesite), - "grass_block" => Some(Item::GrassBlock), - "dirt" => Some(Item::Dirt), - "coarse_dirt" => Some(Item::CoarseDirt), - "podzol" => Some(Item::Podzol), - "crimson_nylium" => Some(Item::CrimsonNylium), - "warped_nylium" => Some(Item::WarpedNylium), - "cobblestone" => Some(Item::Cobblestone), - "oak_planks" => Some(Item::OakPlanks), - "spruce_planks" => Some(Item::SprucePlanks), - "birch_planks" => Some(Item::BirchPlanks), - "jungle_planks" => Some(Item::JunglePlanks), - "acacia_planks" => Some(Item::AcaciaPlanks), - "dark_oak_planks" => Some(Item::DarkOakPlanks), - "crimson_planks" => Some(Item::CrimsonPlanks), - "warped_planks" => Some(Item::WarpedPlanks), - "oak_sapling" => Some(Item::OakSapling), - "spruce_sapling" => Some(Item::SpruceSapling), - "birch_sapling" => Some(Item::BirchSapling), - "jungle_sapling" => Some(Item::JungleSapling), - "acacia_sapling" => Some(Item::AcaciaSapling), - "dark_oak_sapling" => Some(Item::DarkOakSapling), + "ancient_debris" => Some(Item::AncientDebris), + "shulker_shell" => Some(Item::ShulkerShell), + "quartz_block" => Some(Item::QuartzBlock), + "cracked_nether_bricks" => Some(Item::CrackedNetherBricks), + "saddle" => Some(Item::Saddle), + "golden_axe" => Some(Item::GoldenAxe), + "experience_bottle" => Some(Item::ExperienceBottle), + "polished_basalt" => Some(Item::PolishedBasalt), + "string" => Some(Item::String), + "orange_stained_glass" => Some(Item::OrangeStainedGlass), + "phantom_spawn_egg" => Some(Item::PhantomSpawnEgg), + "rabbit_foot" => Some(Item::RabbitFoot), + "light_blue_stained_glass_pane" => Some(Item::LightBlueStainedGlassPane), + "dark_oak_trapdoor" => Some(Item::DarkOakTrapdoor), + "nether_brick_slab" => Some(Item::NetherBrickSlab), + "stripped_birch_wood" => Some(Item::StrippedBirchWood), + "raw_iron_block" => Some(Item::RawIronBlock), + "polished_blackstone_wall" => Some(Item::PolishedBlackstoneWall), + "warped_sign" => Some(Item::WarpedSign), + "diamond_ore" => Some(Item::DiamondOre), + "warped_fence" => Some(Item::WarpedFence), + "polished_andesite_stairs" => Some(Item::PolishedAndesiteStairs), + "netherite_sword" => Some(Item::NetheriteSword), + "purple_concrete" => Some(Item::PurpleConcrete), + "structure_void" => Some(Item::StructureVoid), + "oak_button" => Some(Item::OakButton), + "scute" => Some(Item::Scute), + "cobbled_deepslate_stairs" => Some(Item::CobbledDeepslateStairs), "bedrock" => Some(Item::Bedrock), - "sand" => Some(Item::Sand), - "red_sand" => Some(Item::RedSand), - "gravel" => Some(Item::Gravel), - "gold_ore" => Some(Item::GoldOre), - "iron_ore" => Some(Item::IronOre), + "medium_amethyst_bud" => Some(Item::MediumAmethystBud), + "nether_brick_stairs" => Some(Item::NetherBrickStairs), + "green_bed" => Some(Item::GreenBed), + "smooth_quartz_stairs" => Some(Item::SmoothQuartzStairs), + "lime_glazed_terracotta" => Some(Item::LimeGlazedTerracotta), + "salmon_bucket" => Some(Item::SalmonBucket), + "blaze_powder" => Some(Item::BlazePowder), + "piglin_banner_pattern" => Some(Item::PiglinBannerPattern), + "smooth_quartz" => Some(Item::SmoothQuartz), + "dried_kelp" => Some(Item::DriedKelp), "coal_ore" => Some(Item::CoalOre), - "nether_gold_ore" => Some(Item::NetherGoldOre), + "dark_oak_planks" => Some(Item::DarkOakPlanks), + "orange_glazed_terracotta" => Some(Item::OrangeGlazedTerracotta), + "purple_stained_glass_pane" => Some(Item::PurpleStainedGlassPane), + "dirt_path" => Some(Item::DirtPath), + "dead_fire_coral_block" => Some(Item::DeadFireCoralBlock), + "golden_horse_armor" => Some(Item::GoldenHorseArmor), + "painting" => Some(Item::Painting), + "black_concrete" => Some(Item::BlackConcrete), + "daylight_detector" => Some(Item::DaylightDetector), + "netherite_pickaxe" => Some(Item::NetheritePickaxe), + "mooshroom_spawn_egg" => Some(Item::MooshroomSpawnEgg), + "waxed_oxidized_copper" => Some(Item::WaxedOxidizedCopper), + "glow_item_frame" => Some(Item::GlowItemFrame), "oak_log" => Some(Item::OakLog), - "spruce_log" => Some(Item::SpruceLog), - "birch_log" => Some(Item::BirchLog), - "jungle_log" => Some(Item::JungleLog), - "acacia_log" => Some(Item::AcaciaLog), - "dark_oak_log" => Some(Item::DarkOakLog), - "crimson_stem" => Some(Item::CrimsonStem), - "warped_stem" => Some(Item::WarpedStem), - "stripped_oak_log" => Some(Item::StrippedOakLog), - "stripped_spruce_log" => Some(Item::StrippedSpruceLog), - "stripped_birch_log" => Some(Item::StrippedBirchLog), - "stripped_jungle_log" => Some(Item::StrippedJungleLog), - "stripped_acacia_log" => Some(Item::StrippedAcaciaLog), - "stripped_dark_oak_log" => Some(Item::StrippedDarkOakLog), - "stripped_crimson_stem" => Some(Item::StrippedCrimsonStem), - "stripped_warped_stem" => Some(Item::StrippedWarpedStem), - "stripped_oak_wood" => Some(Item::StrippedOakWood), - "stripped_spruce_wood" => Some(Item::StrippedSpruceWood), - "stripped_birch_wood" => Some(Item::StrippedBirchWood), - "stripped_jungle_wood" => Some(Item::StrippedJungleWood), - "stripped_acacia_wood" => Some(Item::StrippedAcaciaWood), - "stripped_dark_oak_wood" => Some(Item::StrippedDarkOakWood), - "stripped_crimson_hyphae" => Some(Item::StrippedCrimsonHyphae), - "stripped_warped_hyphae" => Some(Item::StrippedWarpedHyphae), - "oak_wood" => Some(Item::OakWood), - "spruce_wood" => Some(Item::SpruceWood), - "birch_wood" => Some(Item::BirchWood), - "jungle_wood" => Some(Item::JungleWood), + "anvil" => Some(Item::Anvil), + "netherite_axe" => Some(Item::NetheriteAxe), + "golden_helmet" => Some(Item::GoldenHelmet), + "stonecutter" => Some(Item::Stonecutter), + "chiseled_stone_bricks" => Some(Item::ChiseledStoneBricks), + "mossy_cobblestone" => Some(Item::MossyCobblestone), + "gray_concrete_powder" => Some(Item::GrayConcretePowder), + "deepslate_brick_slab" => Some(Item::DeepslateBrickSlab), + "mycelium" => Some(Item::Mycelium), + "mushroom_stem" => Some(Item::MushroomStem), + "granite_wall" => Some(Item::GraniteWall), + "pink_banner" => Some(Item::PinkBanner), + "zombified_piglin_spawn_egg" => Some(Item::ZombifiedPiglinSpawnEgg), + "music_disc_wait" => Some(Item::MusicDiscWait), + "birch_planks" => Some(Item::BirchPlanks), "acacia_wood" => Some(Item::AcaciaWood), - "dark_oak_wood" => Some(Item::DarkOakWood), - "crimson_hyphae" => Some(Item::CrimsonHyphae), - "warped_hyphae" => Some(Item::WarpedHyphae), - "oak_leaves" => Some(Item::OakLeaves), - "spruce_leaves" => Some(Item::SpruceLeaves), - "birch_leaves" => Some(Item::BirchLeaves), - "jungle_leaves" => Some(Item::JungleLeaves), - "acacia_leaves" => Some(Item::AcaciaLeaves), - "dark_oak_leaves" => Some(Item::DarkOakLeaves), - "sponge" => Some(Item::Sponge), - "wet_sponge" => Some(Item::WetSponge), - "glass" => Some(Item::Glass), - "lapis_ore" => Some(Item::LapisOre), - "lapis_block" => Some(Item::LapisBlock), + "deepslate_tile_slab" => Some(Item::DeepslateTileSlab), + "yellow_shulker_box" => Some(Item::YellowShulkerBox), + "leather_leggings" => Some(Item::LeatherLeggings), + "dragon_head" => Some(Item::DragonHead), + "dark_prismarine" => Some(Item::DarkPrismarine), + "azalea" => Some(Item::Azalea), + "honeycomb_block" => Some(Item::HoneycombBlock), + "green_terracotta" => Some(Item::GreenTerracotta), "dispenser" => Some(Item::Dispenser), - "sandstone" => Some(Item::Sandstone), - "chiseled_sandstone" => Some(Item::ChiseledSandstone), - "cut_sandstone" => Some(Item::CutSandstone), - "note_block" => Some(Item::NoteBlock), - "powered_rail" => Some(Item::PoweredRail), - "detector_rail" => Some(Item::DetectorRail), - "sticky_piston" => Some(Item::StickyPiston), - "cobweb" => Some(Item::Cobweb), - "grass" => Some(Item::Grass), - "fern" => Some(Item::Fern), - "dead_bush" => Some(Item::DeadBush), - "seagrass" => Some(Item::Seagrass), - "sea_pickle" => Some(Item::SeaPickle), - "piston" => Some(Item::Piston), - "white_wool" => Some(Item::WhiteWool), - "orange_wool" => Some(Item::OrangeWool), - "magenta_wool" => Some(Item::MagentaWool), - "light_blue_wool" => Some(Item::LightBlueWool), - "yellow_wool" => Some(Item::YellowWool), - "lime_wool" => Some(Item::LimeWool), - "pink_wool" => Some(Item::PinkWool), - "gray_wool" => Some(Item::GrayWool), - "light_gray_wool" => Some(Item::LightGrayWool), - "cyan_wool" => Some(Item::CyanWool), - "purple_wool" => Some(Item::PurpleWool), - "blue_wool" => Some(Item::BlueWool), - "brown_wool" => Some(Item::BrownWool), - "green_wool" => Some(Item::GreenWool), - "red_wool" => Some(Item::RedWool), - "black_wool" => Some(Item::BlackWool), - "dandelion" => Some(Item::Dandelion), - "poppy" => Some(Item::Poppy), - "blue_orchid" => Some(Item::BlueOrchid), - "allium" => Some(Item::Allium), - "azure_bluet" => Some(Item::AzureBluet), - "red_tulip" => Some(Item::RedTulip), - "orange_tulip" => Some(Item::OrangeTulip), - "white_tulip" => Some(Item::WhiteTulip), - "pink_tulip" => Some(Item::PinkTulip), - "oxeye_daisy" => Some(Item::OxeyeDaisy), - "cornflower" => Some(Item::Cornflower), - "lily_of_the_valley" => Some(Item::LilyOfTheValley), - "wither_rose" => Some(Item::WitherRose), - "brown_mushroom" => Some(Item::BrownMushroom), - "red_mushroom" => Some(Item::RedMushroom), - "crimson_fungus" => Some(Item::CrimsonFungus), - "warped_fungus" => Some(Item::WarpedFungus), - "crimson_roots" => Some(Item::CrimsonRoots), - "warped_roots" => Some(Item::WarpedRoots), - "nether_sprouts" => Some(Item::NetherSprouts), - "weeping_vines" => Some(Item::WeepingVines), - "twisting_vines" => Some(Item::TwistingVines), - "sugar_cane" => Some(Item::SugarCane), - "kelp" => Some(Item::Kelp), - "bamboo" => Some(Item::Bamboo), - "gold_block" => Some(Item::GoldBlock), - "iron_block" => Some(Item::IronBlock), - "oak_slab" => Some(Item::OakSlab), - "spruce_slab" => Some(Item::SpruceSlab), - "birch_slab" => Some(Item::BirchSlab), - "jungle_slab" => Some(Item::JungleSlab), - "acacia_slab" => Some(Item::AcaciaSlab), - "dark_oak_slab" => Some(Item::DarkOakSlab), - "crimson_slab" => Some(Item::CrimsonSlab), - "warped_slab" => Some(Item::WarpedSlab), - "stone_slab" => Some(Item::StoneSlab), - "smooth_stone_slab" => Some(Item::SmoothStoneSlab), - "sandstone_slab" => Some(Item::SandstoneSlab), - "cut_sandstone_slab" => Some(Item::CutSandstoneSlab), - "petrified_oak_slab" => Some(Item::PetrifiedOakSlab), - "cobblestone_slab" => Some(Item::CobblestoneSlab), - "brick_slab" => Some(Item::BrickSlab), - "stone_brick_slab" => Some(Item::StoneBrickSlab), - "nether_brick_slab" => Some(Item::NetherBrickSlab), - "quartz_slab" => Some(Item::QuartzSlab), - "red_sandstone_slab" => Some(Item::RedSandstoneSlab), - "cut_red_sandstone_slab" => Some(Item::CutRedSandstoneSlab), - "purpur_slab" => Some(Item::PurpurSlab), - "prismarine_slab" => Some(Item::PrismarineSlab), + "andesite_wall" => Some(Item::AndesiteWall), + "black_stained_glass_pane" => Some(Item::BlackStainedGlassPane), + "pink_shulker_box" => Some(Item::PinkShulkerBox), + "bubble_coral_block" => Some(Item::BubbleCoralBlock), + "crimson_nylium" => Some(Item::CrimsonNylium), + "cyan_stained_glass" => Some(Item::CyanStainedGlass), "prismarine_brick_slab" => Some(Item::PrismarineBrickSlab), - "dark_prismarine_slab" => Some(Item::DarkPrismarineSlab), - "smooth_quartz" => Some(Item::SmoothQuartz), - "smooth_red_sandstone" => Some(Item::SmoothRedSandstone), - "smooth_sandstone" => Some(Item::SmoothSandstone), - "smooth_stone" => Some(Item::SmoothStone), - "bricks" => Some(Item::Bricks), - "tnt" => Some(Item::Tnt), - "bookshelf" => Some(Item::Bookshelf), - "mossy_cobblestone" => Some(Item::MossyCobblestone), - "obsidian" => Some(Item::Obsidian), - "torch" => Some(Item::Torch), - "end_rod" => Some(Item::EndRod), - "chorus_plant" => Some(Item::ChorusPlant), - "chorus_flower" => Some(Item::ChorusFlower), - "purpur_block" => Some(Item::PurpurBlock), - "purpur_pillar" => Some(Item::PurpurPillar), - "purpur_stairs" => Some(Item::PurpurStairs), - "spawner" => Some(Item::Spawner), - "oak_stairs" => Some(Item::OakStairs), - "chest" => Some(Item::Chest), - "diamond_ore" => Some(Item::DiamondOre), - "diamond_block" => Some(Item::DiamondBlock), - "crafting_table" => Some(Item::CraftingTable), - "farmland" => Some(Item::Farmland), - "furnace" => Some(Item::Furnace), - "ladder" => Some(Item::Ladder), - "rail" => Some(Item::Rail), - "cobblestone_stairs" => Some(Item::CobblestoneStairs), - "lever" => Some(Item::Lever), - "stone_pressure_plate" => Some(Item::StonePressurePlate), - "oak_pressure_plate" => Some(Item::OakPressurePlate), - "spruce_pressure_plate" => Some(Item::SprucePressurePlate), - "birch_pressure_plate" => Some(Item::BirchPressurePlate), - "jungle_pressure_plate" => Some(Item::JunglePressurePlate), - "acacia_pressure_plate" => Some(Item::AcaciaPressurePlate), - "dark_oak_pressure_plate" => Some(Item::DarkOakPressurePlate), - "crimson_pressure_plate" => Some(Item::CrimsonPressurePlate), - "warped_pressure_plate" => Some(Item::WarpedPressurePlate), - "polished_blackstone_pressure_plate" => Some(Item::PolishedBlackstonePressurePlate), - "redstone_ore" => Some(Item::RedstoneOre), - "redstone_torch" => Some(Item::RedstoneTorch), - "snow" => Some(Item::Snow), - "ice" => Some(Item::Ice), - "snow_block" => Some(Item::SnowBlock), - "cactus" => Some(Item::Cactus), - "clay" => Some(Item::Clay), - "jukebox" => Some(Item::Jukebox), - "oak_fence" => Some(Item::OakFence), - "spruce_fence" => Some(Item::SpruceFence), - "birch_fence" => Some(Item::BirchFence), - "jungle_fence" => Some(Item::JungleFence), - "acacia_fence" => Some(Item::AcaciaFence), - "dark_oak_fence" => Some(Item::DarkOakFence), - "crimson_fence" => Some(Item::CrimsonFence), - "warped_fence" => Some(Item::WarpedFence), - "pumpkin" => Some(Item::Pumpkin), - "carved_pumpkin" => Some(Item::CarvedPumpkin), + "large_amethyst_bud" => Some(Item::LargeAmethystBud), + "fermented_spider_eye" => Some(Item::FermentedSpiderEye), + "bubble_coral" => Some(Item::BubbleCoral), + "pillager_spawn_egg" => Some(Item::PillagerSpawnEgg), + "golden_boots" => Some(Item::GoldenBoots), + "blue_bed" => Some(Item::BlueBed), + "petrified_oak_slab" => Some(Item::PetrifiedOakSlab), + "magenta_candle" => Some(Item::MagentaCandle), + "slime_ball" => Some(Item::SlimeBall), + "tropical_fish_bucket" => Some(Item::TropicalFishBucket), + "granite_stairs" => Some(Item::GraniteStairs), + "purple_candle" => Some(Item::PurpleCandle), + "white_wool" => Some(Item::WhiteWool), + "blackstone" => Some(Item::Blackstone), + "poppy" => Some(Item::Poppy), + "birch_wood" => Some(Item::BirchWood), "netherrack" => Some(Item::Netherrack), - "soul_sand" => Some(Item::SoulSand), + "glass" => Some(Item::Glass), + "magenta_concrete_powder" => Some(Item::MagentaConcretePowder), + "yellow_banner" => Some(Item::YellowBanner), + "brown_banner" => Some(Item::BrownBanner), + "stray_spawn_egg" => Some(Item::StraySpawnEgg), + "polished_blackstone_bricks" => Some(Item::PolishedBlackstoneBricks), + "oxidized_cut_copper" => Some(Item::OxidizedCutCopper), + "horn_coral" => Some(Item::HornCoral), + "weathered_cut_copper_slab" => Some(Item::WeatheredCutCopperSlab), + "small_amethyst_bud" => Some(Item::SmallAmethystBud), + "copper_ingot" => Some(Item::CopperIngot), + "target" => Some(Item::Target), + "nether_sprouts" => Some(Item::NetherSprouts), + "panda_spawn_egg" => Some(Item::PandaSpawnEgg), + "blaze_rod" => Some(Item::BlazeRod), + "birch_log" => Some(Item::BirchLog), + "purple_terracotta" => Some(Item::PurpleTerracotta), + "cyan_glazed_terracotta" => Some(Item::CyanGlazedTerracotta), + "stripped_crimson_hyphae" => Some(Item::StrippedCrimsonHyphae), + "acacia_button" => Some(Item::AcaciaButton), + "acacia_log" => Some(Item::AcaciaLog), + "waxed_exposed_cut_copper_stairs" => Some(Item::WaxedExposedCutCopperStairs), + "music_disc_far" => Some(Item::MusicDiscFar), + "lava_bucket" => Some(Item::LavaBucket), + "waxed_weathered_cut_copper_slab" => Some(Item::WaxedWeatheredCutCopperSlab), + "chiseled_sandstone" => Some(Item::ChiseledSandstone), + "infested_stone_bricks" => Some(Item::InfestedStoneBricks), + "oxeye_daisy" => Some(Item::OxeyeDaisy), + "cactus" => Some(Item::Cactus), + "jungle_sign" => Some(Item::JungleSign), + "waxed_oxidized_cut_copper" => Some(Item::WaxedOxidizedCutCopper), + "flowering_azalea_leaves" => Some(Item::FloweringAzaleaLeaves), + "smooth_stone_slab" => Some(Item::SmoothStoneSlab), + "stripped_dark_oak_wood" => Some(Item::StrippedDarkOakWood), + "soul_campfire" => Some(Item::SoulCampfire), + "magenta_concrete" => Some(Item::MagentaConcrete), + "polished_diorite_stairs" => Some(Item::PolishedDioriteStairs), + "oak_pressure_plate" => Some(Item::OakPressurePlate), + "prismarine_shard" => Some(Item::PrismarineShard), + "mojang_banner_pattern" => Some(Item::MojangBannerPattern), + "orange_carpet" => Some(Item::OrangeCarpet), + "stripped_dark_oak_log" => Some(Item::StrippedDarkOakLog), + "slime_block" => Some(Item::SlimeBlock), + "stone_pickaxe" => Some(Item::StonePickaxe), + "heart_of_the_sea" => Some(Item::HeartOfTheSea), + "quartz" => Some(Item::Quartz), "soul_soil" => Some(Item::SoulSoil), - "basalt" => Some(Item::Basalt), - "polished_basalt" => Some(Item::PolishedBasalt), + "cauldron" => Some(Item::Cauldron), + "repeating_command_block" => Some(Item::RepeatingCommandBlock), + "wooden_pickaxe" => Some(Item::WoodenPickaxe), + "glow_lichen" => Some(Item::GlowLichen), + "spruce_door" => Some(Item::SpruceDoor), + "music_disc_ward" => Some(Item::MusicDiscWard), "soul_torch" => Some(Item::SoulTorch), - "glowstone" => Some(Item::Glowstone), - "jack_o_lantern" => Some(Item::JackOLantern), - "oak_trapdoor" => Some(Item::OakTrapdoor), - "spruce_trapdoor" => Some(Item::SpruceTrapdoor), - "birch_trapdoor" => Some(Item::BirchTrapdoor), - "jungle_trapdoor" => Some(Item::JungleTrapdoor), - "acacia_trapdoor" => Some(Item::AcaciaTrapdoor), - "dark_oak_trapdoor" => Some(Item::DarkOakTrapdoor), - "crimson_trapdoor" => Some(Item::CrimsonTrapdoor), - "warped_trapdoor" => Some(Item::WarpedTrapdoor), - "infested_stone" => Some(Item::InfestedStone), - "infested_cobblestone" => Some(Item::InfestedCobblestone), - "infested_stone_bricks" => Some(Item::InfestedStoneBricks), - "infested_mossy_stone_bricks" => Some(Item::InfestedMossyStoneBricks), - "infested_cracked_stone_bricks" => Some(Item::InfestedCrackedStoneBricks), + "golden_pickaxe" => Some(Item::GoldenPickaxe), + "lime_carpet" => Some(Item::LimeCarpet), + "andesite_slab" => Some(Item::AndesiteSlab), + "composter" => Some(Item::Composter), + "weathered_cut_copper" => Some(Item::WeatheredCutCopper), + "lime_shulker_box" => Some(Item::LimeShulkerBox), + "stripped_acacia_wood" => Some(Item::StrippedAcaciaWood), + "sponge" => Some(Item::Sponge), + "stripped_spruce_wood" => Some(Item::StrippedSpruceWood), + "snow" => Some(Item::Snow), + "yellow_terracotta" => Some(Item::YellowTerracotta), + "acacia_boat" => Some(Item::AcaciaBoat), + "strider_spawn_egg" => Some(Item::StriderSpawnEgg), + "light_gray_candle" => Some(Item::LightGrayCandle), + "iron_boots" => Some(Item::IronBoots), + "turtle_egg" => Some(Item::TurtleEgg), + "mossy_stone_brick_stairs" => Some(Item::MossyStoneBrickStairs), + "waxed_cut_copper_slab" => Some(Item::WaxedCutCopperSlab), + "polished_granite_stairs" => Some(Item::PolishedGraniteStairs), "infested_chiseled_stone_bricks" => Some(Item::InfestedChiseledStoneBricks), - "stone_bricks" => Some(Item::StoneBricks), - "mossy_stone_bricks" => Some(Item::MossyStoneBricks), + "oxidized_copper" => Some(Item::OxidizedCopper), "cracked_stone_bricks" => Some(Item::CrackedStoneBricks), - "chiseled_stone_bricks" => Some(Item::ChiseledStoneBricks), - "brown_mushroom_block" => Some(Item::BrownMushroomBlock), - "red_mushroom_block" => Some(Item::RedMushroomBlock), - "mushroom_stem" => Some(Item::MushroomStem), - "iron_bars" => Some(Item::IronBars), - "chain" => Some(Item::Chain), - "glass_pane" => Some(Item::GlassPane), - "melon" => Some(Item::Melon), - "vine" => Some(Item::Vine), - "oak_fence_gate" => Some(Item::OakFenceGate), - "spruce_fence_gate" => Some(Item::SpruceFenceGate), - "birch_fence_gate" => Some(Item::BirchFenceGate), - "jungle_fence_gate" => Some(Item::JungleFenceGate), - "acacia_fence_gate" => Some(Item::AcaciaFenceGate), - "dark_oak_fence_gate" => Some(Item::DarkOakFenceGate), - "crimson_fence_gate" => Some(Item::CrimsonFenceGate), - "warped_fence_gate" => Some(Item::WarpedFenceGate), - "brick_stairs" => Some(Item::BrickStairs), - "stone_brick_stairs" => Some(Item::StoneBrickStairs), - "mycelium" => Some(Item::Mycelium), - "lily_pad" => Some(Item::LilyPad), - "nether_bricks" => Some(Item::NetherBricks), - "cracked_nether_bricks" => Some(Item::CrackedNetherBricks), - "chiseled_nether_bricks" => Some(Item::ChiseledNetherBricks), - "nether_brick_fence" => Some(Item::NetherBrickFence), - "nether_brick_stairs" => Some(Item::NetherBrickStairs), - "enchanting_table" => Some(Item::EnchantingTable), - "end_portal_frame" => Some(Item::EndPortalFrame), - "end_stone" => Some(Item::EndStone), - "end_stone_bricks" => Some(Item::EndStoneBricks), - "dragon_egg" => Some(Item::DragonEgg), - "redstone_lamp" => Some(Item::RedstoneLamp), - "sandstone_stairs" => Some(Item::SandstoneStairs), - "emerald_ore" => Some(Item::EmeraldOre), - "ender_chest" => Some(Item::EnderChest), - "tripwire_hook" => Some(Item::TripwireHook), - "emerald_block" => Some(Item::EmeraldBlock), - "spruce_stairs" => Some(Item::SpruceStairs), - "birch_stairs" => Some(Item::BirchStairs), - "jungle_stairs" => Some(Item::JungleStairs), - "crimson_stairs" => Some(Item::CrimsonStairs), - "warped_stairs" => Some(Item::WarpedStairs), - "command_block" => Some(Item::CommandBlock), - "beacon" => Some(Item::Beacon), - "cobblestone_wall" => Some(Item::CobblestoneWall), - "mossy_cobblestone_wall" => Some(Item::MossyCobblestoneWall), - "brick_wall" => Some(Item::BrickWall), - "prismarine_wall" => Some(Item::PrismarineWall), - "red_sandstone_wall" => Some(Item::RedSandstoneWall), - "mossy_stone_brick_wall" => Some(Item::MossyStoneBrickWall), - "granite_wall" => Some(Item::GraniteWall), - "stone_brick_wall" => Some(Item::StoneBrickWall), - "nether_brick_wall" => Some(Item::NetherBrickWall), - "andesite_wall" => Some(Item::AndesiteWall), + "scaffolding" => Some(Item::Scaffolding), + "cod_bucket" => Some(Item::CodBucket), + "husk_spawn_egg" => Some(Item::HuskSpawnEgg), + "stripped_birch_log" => Some(Item::StrippedBirchLog), + "lime_concrete_powder" => Some(Item::LimeConcretePowder), + "creeper_spawn_egg" => Some(Item::CreeperSpawnEgg), + "goat_spawn_egg" => Some(Item::GoatSpawnEgg), + "spruce_leaves" => Some(Item::SpruceLeaves), + "sugar" => Some(Item::Sugar), + "cod_spawn_egg" => Some(Item::CodSpawnEgg), + "rabbit_hide" => Some(Item::RabbitHide), + "music_disc_otherside" => Some(Item::MusicDiscOtherside), + "cyan_candle" => Some(Item::CyanCandle), + "dark_prismarine_slab" => Some(Item::DarkPrismarineSlab), + "skull_banner_pattern" => Some(Item::SkullBannerPattern), + "bricks" => Some(Item::Bricks), + "shield" => Some(Item::Shield), + "llama_spawn_egg" => Some(Item::LlamaSpawnEgg), + "grass_block" => Some(Item::GrassBlock), + "book" => Some(Item::Book), + "bell" => Some(Item::Bell), "red_nether_brick_wall" => Some(Item::RedNetherBrickWall), - "sandstone_wall" => Some(Item::SandstoneWall), - "end_stone_brick_wall" => Some(Item::EndStoneBrickWall), - "diorite_wall" => Some(Item::DioriteWall), - "blackstone_wall" => Some(Item::BlackstoneWall), - "polished_blackstone_wall" => Some(Item::PolishedBlackstoneWall), - "polished_blackstone_brick_wall" => Some(Item::PolishedBlackstoneBrickWall), - "stone_button" => Some(Item::StoneButton), - "oak_button" => Some(Item::OakButton), - "spruce_button" => Some(Item::SpruceButton), - "birch_button" => Some(Item::BirchButton), - "jungle_button" => Some(Item::JungleButton), - "acacia_button" => Some(Item::AcaciaButton), - "dark_oak_button" => Some(Item::DarkOakButton), + "black_bed" => Some(Item::BlackBed), + "jungle_leaves" => Some(Item::JungleLeaves), + "dead_fire_coral_fan" => Some(Item::DeadFireCoralFan), + "tropical_fish" => Some(Item::TropicalFish), + "bone_meal" => Some(Item::BoneMeal), + "orange_bed" => Some(Item::OrangeBed), + "chest" => Some(Item::Chest), + "red_carpet" => Some(Item::RedCarpet), + "light_blue_concrete" => Some(Item::LightBlueConcrete), + "weeping_vines" => Some(Item::WeepingVines), + "crossbow" => Some(Item::Crossbow), + "tinted_glass" => Some(Item::TintedGlass), + "lime_banner" => Some(Item::LimeBanner), "crimson_button" => Some(Item::CrimsonButton), - "warped_button" => Some(Item::WarpedButton), - "polished_blackstone_button" => Some(Item::PolishedBlackstoneButton), - "anvil" => Some(Item::Anvil), - "chipped_anvil" => Some(Item::ChippedAnvil), - "damaged_anvil" => Some(Item::DamagedAnvil), - "trapped_chest" => Some(Item::TrappedChest), - "light_weighted_pressure_plate" => Some(Item::LightWeightedPressurePlate), - "heavy_weighted_pressure_plate" => Some(Item::HeavyWeightedPressurePlate), - "daylight_detector" => Some(Item::DaylightDetector), - "redstone_block" => Some(Item::RedstoneBlock), - "nether_quartz_ore" => Some(Item::NetherQuartzOre), - "hopper" => Some(Item::Hopper), - "chiseled_quartz_block" => Some(Item::ChiseledQuartzBlock), - "quartz_block" => Some(Item::QuartzBlock), - "quartz_bricks" => Some(Item::QuartzBricks), - "quartz_pillar" => Some(Item::QuartzPillar), - "quartz_stairs" => Some(Item::QuartzStairs), - "activator_rail" => Some(Item::ActivatorRail), - "dropper" => Some(Item::Dropper), - "white_terracotta" => Some(Item::WhiteTerracotta), - "orange_terracotta" => Some(Item::OrangeTerracotta), - "magenta_terracotta" => Some(Item::MagentaTerracotta), - "light_blue_terracotta" => Some(Item::LightBlueTerracotta), - "yellow_terracotta" => Some(Item::YellowTerracotta), - "lime_terracotta" => Some(Item::LimeTerracotta), - "pink_terracotta" => Some(Item::PinkTerracotta), - "gray_terracotta" => Some(Item::GrayTerracotta), - "light_gray_terracotta" => Some(Item::LightGrayTerracotta), - "cyan_terracotta" => Some(Item::CyanTerracotta), - "purple_terracotta" => Some(Item::PurpleTerracotta), - "blue_terracotta" => Some(Item::BlueTerracotta), - "brown_terracotta" => Some(Item::BrownTerracotta), - "green_terracotta" => Some(Item::GreenTerracotta), - "red_terracotta" => Some(Item::RedTerracotta), - "black_terracotta" => Some(Item::BlackTerracotta), - "barrier" => Some(Item::Barrier), - "iron_trapdoor" => Some(Item::IronTrapdoor), - "hay_block" => Some(Item::HayBlock), - "white_carpet" => Some(Item::WhiteCarpet), - "orange_carpet" => Some(Item::OrangeCarpet), - "magenta_carpet" => Some(Item::MagentaCarpet), - "light_blue_carpet" => Some(Item::LightBlueCarpet), - "yellow_carpet" => Some(Item::YellowCarpet), - "lime_carpet" => Some(Item::LimeCarpet), - "pink_carpet" => Some(Item::PinkCarpet), - "gray_carpet" => Some(Item::GrayCarpet), - "light_gray_carpet" => Some(Item::LightGrayCarpet), - "cyan_carpet" => Some(Item::CyanCarpet), + "prismarine_bricks" => Some(Item::PrismarineBricks), + "stone_hoe" => Some(Item::StoneHoe), + "black_concrete_powder" => Some(Item::BlackConcretePowder), + "porkchop" => Some(Item::Porkchop), + "weathered_cut_copper_stairs" => Some(Item::WeatheredCutCopperStairs), "purple_carpet" => Some(Item::PurpleCarpet), - "blue_carpet" => Some(Item::BlueCarpet), - "brown_carpet" => Some(Item::BrownCarpet), - "green_carpet" => Some(Item::GreenCarpet), - "red_carpet" => Some(Item::RedCarpet), - "black_carpet" => Some(Item::BlackCarpet), - "terracotta" => Some(Item::Terracotta), - "coal_block" => Some(Item::CoalBlock), - "packed_ice" => Some(Item::PackedIce), - "acacia_stairs" => Some(Item::AcaciaStairs), - "dark_oak_stairs" => Some(Item::DarkOakStairs), - "slime_block" => Some(Item::SlimeBlock), - "grass_path" => Some(Item::GrassPath), - "sunflower" => Some(Item::Sunflower), - "lilac" => Some(Item::Lilac), - "rose_bush" => Some(Item::RoseBush), - "peony" => Some(Item::Peony), + "fire_charge" => Some(Item::FireCharge), + "mossy_stone_brick_wall" => Some(Item::MossyStoneBrickWall), + "magenta_stained_glass_pane" => Some(Item::MagentaStainedGlassPane), + "red_concrete_powder" => Some(Item::RedConcretePowder), + "acacia_sign" => Some(Item::AcaciaSign), + "light_gray_wool" => Some(Item::LightGrayWool), + "purpur_block" => Some(Item::PurpurBlock), + "golden_sword" => Some(Item::GoldenSword), + "purple_dye" => Some(Item::PurpleDye), + "nether_bricks" => Some(Item::NetherBricks), + "light_blue_bed" => Some(Item::LightBlueBed), + "dark_oak_leaves" => Some(Item::DarkOakLeaves), + "zombie_spawn_egg" => Some(Item::ZombieSpawnEgg), + "music_disc_mellohi" => Some(Item::MusicDiscMellohi), + "detector_rail" => Some(Item::DetectorRail), + "white_bed" => Some(Item::WhiteBed), + "minecart" => Some(Item::Minecart), + "cartography_table" => Some(Item::CartographyTable), + "deepslate_iron_ore" => Some(Item::DeepslateIronOre), + "dark_oak_pressure_plate" => Some(Item::DarkOakPressurePlate), + "cracked_deepslate_bricks" => Some(Item::CrackedDeepslateBricks), + "black_stained_glass" => Some(Item::BlackStainedGlass), + "iron_chestplate" => Some(Item::IronChestplate), + "chicken" => Some(Item::Chicken), + "smooth_red_sandstone_stairs" => Some(Item::SmoothRedSandstoneStairs), + "warped_fungus" => Some(Item::WarpedFungus), + "music_disc_13" => Some(Item::MusicDisc13), + "deepslate_brick_stairs" => Some(Item::DeepslateBrickStairs), "tall_grass" => Some(Item::TallGrass), - "large_fern" => Some(Item::LargeFern), + "magenta_dye" => Some(Item::MagentaDye), + "dandelion" => Some(Item::Dandelion), + "written_book" => Some(Item::WrittenBook), + "jungle_fence" => Some(Item::JungleFence), + "oak_planks" => Some(Item::OakPlanks), + "glass_bottle" => Some(Item::GlassBottle), + "light_blue_glazed_terracotta" => Some(Item::LightBlueGlazedTerracotta), + "redstone_torch" => Some(Item::RedstoneTorch), + "red_mushroom_block" => Some(Item::RedMushroomBlock), + "dead_bubble_coral_block" => Some(Item::DeadBubbleCoralBlock), + "bookshelf" => Some(Item::Bookshelf), + "diamond_hoe" => Some(Item::DiamondHoe), + "deepslate_brick_wall" => Some(Item::DeepslateBrickWall), + "light" => Some(Item::Light), + "water_bucket" => Some(Item::WaterBucket), + "deepslate_emerald_ore" => Some(Item::DeepslateEmeraldOre), + "dead_bubble_coral_fan" => Some(Item::DeadBubbleCoralFan), + "guardian_spawn_egg" => Some(Item::GuardianSpawnEgg), + "mule_spawn_egg" => Some(Item::MuleSpawnEgg), + "raw_copper_block" => Some(Item::RawCopperBlock), + "jungle_wood" => Some(Item::JungleWood), + "red_stained_glass" => Some(Item::RedStainedGlass), + "dead_bubble_coral" => Some(Item::DeadBubbleCoral), + "potato" => Some(Item::Potato), + "compass" => Some(Item::Compass), + "pink_dye" => Some(Item::PinkDye), + "observer" => Some(Item::Observer), + "magenta_glazed_terracotta" => Some(Item::MagentaGlazedTerracotta), + "dead_bush" => Some(Item::DeadBush), + "polished_blackstone_slab" => Some(Item::PolishedBlackstoneSlab), + "vindicator_spawn_egg" => Some(Item::VindicatorSpawnEgg), + "chainmail_leggings" => Some(Item::ChainmailLeggings), + "dark_oak_door" => Some(Item::DarkOakDoor), + "blue_orchid" => Some(Item::BlueOrchid), + "brown_mushroom_block" => Some(Item::BrownMushroomBlock), + "red_sandstone_wall" => Some(Item::RedSandstoneWall), "white_stained_glass" => Some(Item::WhiteStainedGlass), - "orange_stained_glass" => Some(Item::OrangeStainedGlass), - "magenta_stained_glass" => Some(Item::MagentaStainedGlass), - "light_blue_stained_glass" => Some(Item::LightBlueStainedGlass), - "yellow_stained_glass" => Some(Item::YellowStainedGlass), - "lime_stained_glass" => Some(Item::LimeStainedGlass), - "pink_stained_glass" => Some(Item::PinkStainedGlass), - "gray_stained_glass" => Some(Item::GrayStainedGlass), - "light_gray_stained_glass" => Some(Item::LightGrayStainedGlass), - "cyan_stained_glass" => Some(Item::CyanStainedGlass), - "purple_stained_glass" => Some(Item::PurpleStainedGlass), + "beetroot" => Some(Item::Beetroot), + "rail" => Some(Item::Rail), + "phantom_membrane" => Some(Item::PhantomMembrane), + "white_shulker_box" => Some(Item::WhiteShulkerBox), + "blue_banner" => Some(Item::BlueBanner), + "farmland" => Some(Item::Farmland), + "red_nether_brick_slab" => Some(Item::RedNetherBrickSlab), + "polished_andesite_slab" => Some(Item::PolishedAndesiteSlab), "blue_stained_glass" => Some(Item::BlueStainedGlass), - "brown_stained_glass" => Some(Item::BrownStainedGlass), - "green_stained_glass" => Some(Item::GreenStainedGlass), - "red_stained_glass" => Some(Item::RedStainedGlass), - "black_stained_glass" => Some(Item::BlackStainedGlass), - "white_stained_glass_pane" => Some(Item::WhiteStainedGlassPane), - "orange_stained_glass_pane" => Some(Item::OrangeStainedGlassPane), - "magenta_stained_glass_pane" => Some(Item::MagentaStainedGlassPane), - "light_blue_stained_glass_pane" => Some(Item::LightBlueStainedGlassPane), - "yellow_stained_glass_pane" => Some(Item::YellowStainedGlassPane), - "lime_stained_glass_pane" => Some(Item::LimeStainedGlassPane), - "pink_stained_glass_pane" => Some(Item::PinkStainedGlassPane), - "gray_stained_glass_pane" => Some(Item::GrayStainedGlassPane), - "light_gray_stained_glass_pane" => Some(Item::LightGrayStainedGlassPane), - "cyan_stained_glass_pane" => Some(Item::CyanStainedGlassPane), - "purple_stained_glass_pane" => Some(Item::PurpleStainedGlassPane), - "blue_stained_glass_pane" => Some(Item::BlueStainedGlassPane), - "brown_stained_glass_pane" => Some(Item::BrownStainedGlassPane), - "green_stained_glass_pane" => Some(Item::GreenStainedGlassPane), - "red_stained_glass_pane" => Some(Item::RedStainedGlassPane), - "black_stained_glass_pane" => Some(Item::BlackStainedGlassPane), + "dragon_breath" => Some(Item::DragonBreath), + "writable_book" => Some(Item::WritableBook), + "green_glazed_terracotta" => Some(Item::GreenGlazedTerracotta), + "deepslate_redstone_ore" => Some(Item::DeepslateRedstoneOre), "prismarine" => Some(Item::Prismarine), - "prismarine_bricks" => Some(Item::PrismarineBricks), - "dark_prismarine" => Some(Item::DarkPrismarine), - "prismarine_stairs" => Some(Item::PrismarineStairs), - "prismarine_brick_stairs" => Some(Item::PrismarineBrickStairs), - "dark_prismarine_stairs" => Some(Item::DarkPrismarineStairs), - "sea_lantern" => Some(Item::SeaLantern), - "red_sandstone" => Some(Item::RedSandstone), + "purple_bed" => Some(Item::PurpleBed), + "blast_furnace" => Some(Item::BlastFurnace), + "brick_slab" => Some(Item::BrickSlab), + "green_stained_glass_pane" => Some(Item::GreenStainedGlassPane), "chiseled_red_sandstone" => Some(Item::ChiseledRedSandstone), - "cut_red_sandstone" => Some(Item::CutRedSandstone), - "red_sandstone_stairs" => Some(Item::RedSandstoneStairs), - "repeating_command_block" => Some(Item::RepeatingCommandBlock), - "chain_command_block" => Some(Item::ChainCommandBlock), - "magma_block" => Some(Item::MagmaBlock), - "nether_wart_block" => Some(Item::NetherWartBlock), - "warped_wart_block" => Some(Item::WarpedWartBlock), - "red_nether_bricks" => Some(Item::RedNetherBricks), - "bone_block" => Some(Item::BoneBlock), - "structure_void" => Some(Item::StructureVoid), - "observer" => Some(Item::Observer), - "shulker_box" => Some(Item::ShulkerBox), - "white_shulker_box" => Some(Item::WhiteShulkerBox), - "orange_shulker_box" => Some(Item::OrangeShulkerBox), - "magenta_shulker_box" => Some(Item::MagentaShulkerBox), - "light_blue_shulker_box" => Some(Item::LightBlueShulkerBox), - "yellow_shulker_box" => Some(Item::YellowShulkerBox), - "lime_shulker_box" => Some(Item::LimeShulkerBox), - "pink_shulker_box" => Some(Item::PinkShulkerBox), - "gray_shulker_box" => Some(Item::GrayShulkerBox), - "light_gray_shulker_box" => Some(Item::LightGrayShulkerBox), - "cyan_shulker_box" => Some(Item::CyanShulkerBox), - "purple_shulker_box" => Some(Item::PurpleShulkerBox), - "blue_shulker_box" => Some(Item::BlueShulkerBox), - "brown_shulker_box" => Some(Item::BrownShulkerBox), - "green_shulker_box" => Some(Item::GreenShulkerBox), - "red_shulker_box" => Some(Item::RedShulkerBox), - "black_shulker_box" => Some(Item::BlackShulkerBox), - "white_glazed_terracotta" => Some(Item::WhiteGlazedTerracotta), - "orange_glazed_terracotta" => Some(Item::OrangeGlazedTerracotta), - "magenta_glazed_terracotta" => Some(Item::MagentaGlazedTerracotta), - "light_blue_glazed_terracotta" => Some(Item::LightBlueGlazedTerracotta), - "yellow_glazed_terracotta" => Some(Item::YellowGlazedTerracotta), - "lime_glazed_terracotta" => Some(Item::LimeGlazedTerracotta), - "pink_glazed_terracotta" => Some(Item::PinkGlazedTerracotta), - "gray_glazed_terracotta" => Some(Item::GrayGlazedTerracotta), + "mossy_cobblestone_slab" => Some(Item::MossyCobblestoneSlab), + "black_dye" => Some(Item::BlackDye), + "deepslate_bricks" => Some(Item::DeepslateBricks), + "heavy_weighted_pressure_plate" => Some(Item::HeavyWeightedPressurePlate), + "beetroot_seeds" => Some(Item::BeetrootSeeds), + "polished_granite_slab" => Some(Item::PolishedGraniteSlab), + "bow" => Some(Item::Bow), "light_gray_glazed_terracotta" => Some(Item::LightGrayGlazedTerracotta), - "cyan_glazed_terracotta" => Some(Item::CyanGlazedTerracotta), - "purple_glazed_terracotta" => Some(Item::PurpleGlazedTerracotta), - "blue_glazed_terracotta" => Some(Item::BlueGlazedTerracotta), - "brown_glazed_terracotta" => Some(Item::BrownGlazedTerracotta), - "green_glazed_terracotta" => Some(Item::GreenGlazedTerracotta), - "red_glazed_terracotta" => Some(Item::RedGlazedTerracotta), - "black_glazed_terracotta" => Some(Item::BlackGlazedTerracotta), - "white_concrete" => Some(Item::WhiteConcrete), - "orange_concrete" => Some(Item::OrangeConcrete), - "magenta_concrete" => Some(Item::MagentaConcrete), - "light_blue_concrete" => Some(Item::LightBlueConcrete), - "yellow_concrete" => Some(Item::YellowConcrete), - "lime_concrete" => Some(Item::LimeConcrete), - "pink_concrete" => Some(Item::PinkConcrete), - "gray_concrete" => Some(Item::GrayConcrete), - "light_gray_concrete" => Some(Item::LightGrayConcrete), - "cyan_concrete" => Some(Item::CyanConcrete), - "purple_concrete" => Some(Item::PurpleConcrete), - "blue_concrete" => Some(Item::BlueConcrete), - "brown_concrete" => Some(Item::BrownConcrete), - "green_concrete" => Some(Item::GreenConcrete), - "red_concrete" => Some(Item::RedConcrete), - "black_concrete" => Some(Item::BlackConcrete), - "white_concrete_powder" => Some(Item::WhiteConcretePowder), - "orange_concrete_powder" => Some(Item::OrangeConcretePowder), - "magenta_concrete_powder" => Some(Item::MagentaConcretePowder), - "light_blue_concrete_powder" => Some(Item::LightBlueConcretePowder), - "yellow_concrete_powder" => Some(Item::YellowConcretePowder), - "lime_concrete_powder" => Some(Item::LimeConcretePowder), - "pink_concrete_powder" => Some(Item::PinkConcretePowder), - "gray_concrete_powder" => Some(Item::GrayConcretePowder), - "light_gray_concrete_powder" => Some(Item::LightGrayConcretePowder), - "cyan_concrete_powder" => Some(Item::CyanConcretePowder), - "purple_concrete_powder" => Some(Item::PurpleConcretePowder), - "blue_concrete_powder" => Some(Item::BlueConcretePowder), - "brown_concrete_powder" => Some(Item::BrownConcretePowder), - "green_concrete_powder" => Some(Item::GreenConcretePowder), - "red_concrete_powder" => Some(Item::RedConcretePowder), - "black_concrete_powder" => Some(Item::BlackConcretePowder), - "turtle_egg" => Some(Item::TurtleEgg), - "dead_tube_coral_block" => Some(Item::DeadTubeCoralBlock), - "dead_brain_coral_block" => Some(Item::DeadBrainCoralBlock), - "dead_bubble_coral_block" => Some(Item::DeadBubbleCoralBlock), - "dead_fire_coral_block" => Some(Item::DeadFireCoralBlock), - "dead_horn_coral_block" => Some(Item::DeadHornCoralBlock), - "tube_coral_block" => Some(Item::TubeCoralBlock), - "brain_coral_block" => Some(Item::BrainCoralBlock), - "bubble_coral_block" => Some(Item::BubbleCoralBlock), - "fire_coral_block" => Some(Item::FireCoralBlock), - "horn_coral_block" => Some(Item::HornCoralBlock), - "tube_coral" => Some(Item::TubeCoral), - "brain_coral" => Some(Item::BrainCoral), - "bubble_coral" => Some(Item::BubbleCoral), - "fire_coral" => Some(Item::FireCoral), - "horn_coral" => Some(Item::HornCoral), - "dead_brain_coral" => Some(Item::DeadBrainCoral), - "dead_bubble_coral" => Some(Item::DeadBubbleCoral), - "dead_fire_coral" => Some(Item::DeadFireCoral), - "dead_horn_coral" => Some(Item::DeadHornCoral), - "dead_tube_coral" => Some(Item::DeadTubeCoral), - "tube_coral_fan" => Some(Item::TubeCoralFan), - "brain_coral_fan" => Some(Item::BrainCoralFan), - "bubble_coral_fan" => Some(Item::BubbleCoralFan), - "fire_coral_fan" => Some(Item::FireCoralFan), - "horn_coral_fan" => Some(Item::HornCoralFan), - "dead_tube_coral_fan" => Some(Item::DeadTubeCoralFan), - "dead_brain_coral_fan" => Some(Item::DeadBrainCoralFan), - "dead_bubble_coral_fan" => Some(Item::DeadBubbleCoralFan), - "dead_fire_coral_fan" => Some(Item::DeadFireCoralFan), - "dead_horn_coral_fan" => Some(Item::DeadHornCoralFan), - "blue_ice" => Some(Item::BlueIce), - "conduit" => Some(Item::Conduit), - "polished_granite_stairs" => Some(Item::PolishedGraniteStairs), - "smooth_red_sandstone_stairs" => Some(Item::SmoothRedSandstoneStairs), - "mossy_stone_brick_stairs" => Some(Item::MossyStoneBrickStairs), - "polished_diorite_stairs" => Some(Item::PolishedDioriteStairs), - "mossy_cobblestone_stairs" => Some(Item::MossyCobblestoneStairs), - "end_stone_brick_stairs" => Some(Item::EndStoneBrickStairs), + "tripwire_hook" => Some(Item::TripwireHook), + "iron_nugget" => Some(Item::IronNugget), + "granite" => Some(Item::Granite), + "iron_block" => Some(Item::IronBlock), + "warped_slab" => Some(Item::WarpedSlab), + "small_dripleaf" => Some(Item::SmallDripleaf), + "polished_deepslate" => Some(Item::PolishedDeepslate), + "red_wool" => Some(Item::RedWool), + "oak_boat" => Some(Item::OakBoat), + "white_carpet" => Some(Item::WhiteCarpet), + "orange_dye" => Some(Item::OrangeDye), + "smooth_quartz_slab" => Some(Item::SmoothQuartzSlab), + "cow_spawn_egg" => Some(Item::CowSpawnEgg), + "sea_lantern" => Some(Item::SeaLantern), + "light_weighted_pressure_plate" => Some(Item::LightWeightedPressurePlate), + "rose_bush" => Some(Item::RoseBush), + "pink_bed" => Some(Item::PinkBed), + "cooked_mutton" => Some(Item::CookedMutton), + "deepslate_lapis_ore" => Some(Item::DeepslateLapisOre), + "seagrass" => Some(Item::Seagrass), + "polished_blackstone_button" => Some(Item::PolishedBlackstoneButton), + "cocoa_beans" => Some(Item::CocoaBeans), + "exposed_copper" => Some(Item::ExposedCopper), + "polished_deepslate_stairs" => Some(Item::PolishedDeepslateStairs), + "golden_apple" => Some(Item::GoldenApple), + "clock" => Some(Item::Clock), + "purple_stained_glass" => Some(Item::PurpleStainedGlass), + "knowledge_book" => Some(Item::KnowledgeBook), + "coal" => Some(Item::Coal), + "emerald_block" => Some(Item::EmeraldBlock), + "powder_snow_bucket" => Some(Item::PowderSnowBucket), + "light_blue_banner" => Some(Item::LightBlueBanner), + "cut_copper" => Some(Item::CutCopper), + "crimson_planks" => Some(Item::CrimsonPlanks), + "jungle_fence_gate" => Some(Item::JungleFenceGate), + "candle" => Some(Item::Candle), + "polished_blackstone_stairs" => Some(Item::PolishedBlackstoneStairs), + "horn_coral_fan" => Some(Item::HornCoralFan), + "weathered_copper" => Some(Item::WeatheredCopper), + "warped_planks" => Some(Item::WarpedPlanks), + "end_stone_brick_wall" => Some(Item::EndStoneBrickWall), + "jungle_button" => Some(Item::JungleButton), + "deepslate_tiles" => Some(Item::DeepslateTiles), + "ice" => Some(Item::Ice), + "cut_red_sandstone_slab" => Some(Item::CutRedSandstoneSlab), + "lime_candle" => Some(Item::LimeCandle), + "soul_lantern" => Some(Item::SoulLantern), + "tnt" => Some(Item::Tnt), + "acacia_planks" => Some(Item::AcaciaPlanks), + "wheat_seeds" => Some(Item::WheatSeeds), "stone_stairs" => Some(Item::StoneStairs), - "smooth_sandstone_stairs" => Some(Item::SmoothSandstoneStairs), - "smooth_quartz_stairs" => Some(Item::SmoothQuartzStairs), - "granite_stairs" => Some(Item::GraniteStairs), - "andesite_stairs" => Some(Item::AndesiteStairs), - "red_nether_brick_stairs" => Some(Item::RedNetherBrickStairs), - "polished_andesite_stairs" => Some(Item::PolishedAndesiteStairs), - "diorite_stairs" => Some(Item::DioriteStairs), - "polished_granite_slab" => Some(Item::PolishedGraniteSlab), - "smooth_red_sandstone_slab" => Some(Item::SmoothRedSandstoneSlab), - "mossy_stone_brick_slab" => Some(Item::MossyStoneBrickSlab), - "polished_diorite_slab" => Some(Item::PolishedDioriteSlab), - "mossy_cobblestone_slab" => Some(Item::MossyCobblestoneSlab), - "end_stone_brick_slab" => Some(Item::EndStoneBrickSlab), - "smooth_sandstone_slab" => Some(Item::SmoothSandstoneSlab), - "smooth_quartz_slab" => Some(Item::SmoothQuartzSlab), - "granite_slab" => Some(Item::GraniteSlab), - "andesite_slab" => Some(Item::AndesiteSlab), - "red_nether_brick_slab" => Some(Item::RedNetherBrickSlab), - "polished_andesite_slab" => Some(Item::PolishedAndesiteSlab), - "diorite_slab" => Some(Item::DioriteSlab), - "scaffolding" => Some(Item::Scaffolding), - "iron_door" => Some(Item::IronDoor), - "oak_door" => Some(Item::OakDoor), - "spruce_door" => Some(Item::SpruceDoor), - "birch_door" => Some(Item::BirchDoor), - "jungle_door" => Some(Item::JungleDoor), - "acacia_door" => Some(Item::AcaciaDoor), - "dark_oak_door" => Some(Item::DarkOakDoor), - "crimson_door" => Some(Item::CrimsonDoor), - "warped_door" => Some(Item::WarpedDoor), - "repeater" => Some(Item::Repeater), + "magma_cube_spawn_egg" => Some(Item::MagmaCubeSpawnEgg), + "lime_terracotta" => Some(Item::LimeTerracotta), + "light_gray_bed" => Some(Item::LightGrayBed), + "mushroom_stew" => Some(Item::MushroomStew), + "red_sandstone" => Some(Item::RedSandstone), + "spectral_arrow" => Some(Item::SpectralArrow), + "music_disc_strad" => Some(Item::MusicDiscStrad), + "emerald" => Some(Item::Emerald), + "glass_pane" => Some(Item::GlassPane), + "polished_blackstone_pressure_plate" => Some(Item::PolishedBlackstonePressurePlate), + "stick" => Some(Item::Stick), + "light_gray_shulker_box" => Some(Item::LightGrayShulkerBox), + "stone_bricks" => Some(Item::StoneBricks), + "vine" => Some(Item::Vine), "comparator" => Some(Item::Comparator), - "structure_block" => Some(Item::StructureBlock), - "jigsaw" => Some(Item::Jigsaw), - "turtle_helmet" => Some(Item::TurtleHelmet), - "scute" => Some(Item::Scute), + "end_crystal" => Some(Item::EndCrystal), + "deepslate_coal_ore" => Some(Item::DeepslateCoalOre), + "smoker" => Some(Item::Smoker), + "deepslate_diamond_ore" => Some(Item::DeepslateDiamondOre), + "lime_stained_glass" => Some(Item::LimeStainedGlass), + "melon" => Some(Item::Melon), + "iron_axe" => Some(Item::IronAxe), + "waxed_oxidized_cut_copper_stairs" => Some(Item::WaxedOxidizedCutCopperStairs), + "red_nether_brick_stairs" => Some(Item::RedNetherBrickStairs), + "lapis_lazuli" => Some(Item::LapisLazuli), + "blackstone_stairs" => Some(Item::BlackstoneStairs), + "ocelot_spawn_egg" => Some(Item::OcelotSpawnEgg), + "red_concrete" => Some(Item::RedConcrete), + "dripstone_block" => Some(Item::DripstoneBlock), + "infested_deepslate" => Some(Item::InfestedDeepslate), + "shulker_spawn_egg" => Some(Item::ShulkerSpawnEgg), + "jungle_sapling" => Some(Item::JungleSapling), + "spider_eye" => Some(Item::SpiderEye), + "yellow_candle" => Some(Item::YellowCandle), + "deepslate" => Some(Item::Deepslate), + "fern" => Some(Item::Fern), + "brown_concrete_powder" => Some(Item::BrownConcretePowder), + "deepslate_tile_stairs" => Some(Item::DeepslateTileStairs), + "cookie" => Some(Item::Cookie), + "enchanted_book" => Some(Item::EnchantedBook), + "cut_sandstone" => Some(Item::CutSandstone), + "lily_pad" => Some(Item::LilyPad), + "cornflower" => Some(Item::Cornflower), + "nether_brick_wall" => Some(Item::NetherBrickWall), + "loom" => Some(Item::Loom), + "jungle_boat" => Some(Item::JungleBoat), + "yellow_dye" => Some(Item::YellowDye), + "oak_fence" => Some(Item::OakFence), "flint_and_steel" => Some(Item::FlintAndSteel), + "green_stained_glass" => Some(Item::GreenStainedGlass), + "lodestone" => Some(Item::Lodestone), + "spore_blossom" => Some(Item::SporeBlossom), + "yellow_glazed_terracotta" => Some(Item::YellowGlazedTerracotta), + "polished_blackstone_brick_wall" => Some(Item::PolishedBlackstoneBrickWall), + "diamond_boots" => Some(Item::DiamondBoots), + "hanging_roots" => Some(Item::HangingRoots), + "blue_ice" => Some(Item::BlueIce), + "milk_bucket" => Some(Item::MilkBucket), + "diamond_block" => Some(Item::DiamondBlock), + "zombie_villager_spawn_egg" => Some(Item::ZombieVillagerSpawnEgg), + "golden_carrot" => Some(Item::GoldenCarrot), + "pufferfish" => Some(Item::Pufferfish), + "light_gray_concrete_powder" => Some(Item::LightGrayConcretePowder), + "orange_terracotta" => Some(Item::OrangeTerracotta), + "deepslate_gold_ore" => Some(Item::DeepslateGoldOre), + "prismarine_brick_stairs" => Some(Item::PrismarineBrickStairs), + "birch_sign" => Some(Item::BirchSign), + "melon_slice" => Some(Item::MelonSlice), + "cooked_chicken" => Some(Item::CookedChicken), + "polar_bear_spawn_egg" => Some(Item::PolarBearSpawnEgg), + "brown_candle" => Some(Item::BrownCandle), + "birch_fence" => Some(Item::BirchFence), + "end_stone" => Some(Item::EndStone), + "cyan_bed" => Some(Item::CyanBed), + "orange_stained_glass_pane" => Some(Item::OrangeStainedGlassPane), + "dead_tube_coral" => Some(Item::DeadTubeCoral), + "warped_door" => Some(Item::WarpedDoor), + "birch_stairs" => Some(Item::BirchStairs), + "end_stone_brick_stairs" => Some(Item::EndStoneBrickStairs), + "gunpowder" => Some(Item::Gunpowder), + "beetroot_soup" => Some(Item::BeetrootSoup), + "green_dye" => Some(Item::GreenDye), + "light_blue_candle" => Some(Item::LightBlueCandle), "apple" => Some(Item::Apple), - "bow" => Some(Item::Bow), - "arrow" => Some(Item::Arrow), - "coal" => Some(Item::Coal), - "charcoal" => Some(Item::Charcoal), - "diamond" => Some(Item::Diamond), - "iron_ingot" => Some(Item::IronIngot), - "gold_ingot" => Some(Item::GoldIngot), - "netherite_ingot" => Some(Item::NetheriteIngot), - "netherite_scrap" => Some(Item::NetheriteScrap), - "wooden_sword" => Some(Item::WoodenSword), - "wooden_shovel" => Some(Item::WoodenShovel), - "wooden_pickaxe" => Some(Item::WoodenPickaxe), - "wooden_axe" => Some(Item::WoodenAxe), - "wooden_hoe" => Some(Item::WoodenHoe), - "stone_sword" => Some(Item::StoneSword), - "stone_shovel" => Some(Item::StoneShovel), - "stone_pickaxe" => Some(Item::StonePickaxe), + "skeleton_skull" => Some(Item::SkeletonSkull), + "brain_coral_fan" => Some(Item::BrainCoralFan), + "light_gray_carpet" => Some(Item::LightGrayCarpet), + "spruce_planks" => Some(Item::SprucePlanks), + "snowball" => Some(Item::Snowball), + "piston" => Some(Item::Piston), + "spruce_sign" => Some(Item::SpruceSign), + "light_gray_concrete" => Some(Item::LightGrayConcrete), "stone_axe" => Some(Item::StoneAxe), - "stone_hoe" => Some(Item::StoneHoe), - "golden_sword" => Some(Item::GoldenSword), + "music_disc_chirp" => Some(Item::MusicDiscChirp), + "ender_pearl" => Some(Item::EnderPearl), + "gold_nugget" => Some(Item::GoldNugget), + "waxed_exposed_copper" => Some(Item::WaxedExposedCopper), "golden_shovel" => Some(Item::GoldenShovel), - "golden_pickaxe" => Some(Item::GoldenPickaxe), - "golden_axe" => Some(Item::GoldenAxe), - "golden_hoe" => Some(Item::GoldenHoe), - "iron_sword" => Some(Item::IronSword), - "iron_shovel" => Some(Item::IronShovel), - "iron_pickaxe" => Some(Item::IronPickaxe), - "iron_axe" => Some(Item::IronAxe), - "iron_hoe" => Some(Item::IronHoe), - "diamond_sword" => Some(Item::DiamondSword), - "diamond_shovel" => Some(Item::DiamondShovel), - "diamond_pickaxe" => Some(Item::DiamondPickaxe), - "diamond_axe" => Some(Item::DiamondAxe), - "diamond_hoe" => Some(Item::DiamondHoe), - "netherite_sword" => Some(Item::NetheriteSword), - "netherite_shovel" => Some(Item::NetheriteShovel), - "netherite_pickaxe" => Some(Item::NetheritePickaxe), - "netherite_axe" => Some(Item::NetheriteAxe), - "netherite_hoe" => Some(Item::NetheriteHoe), - "stick" => Some(Item::Stick), - "bowl" => Some(Item::Bowl), - "mushroom_stew" => Some(Item::MushroomStew), - "string" => Some(Item::String), - "feather" => Some(Item::Feather), - "gunpowder" => Some(Item::Gunpowder), - "wheat_seeds" => Some(Item::WheatSeeds), - "wheat" => Some(Item::Wheat), - "bread" => Some(Item::Bread), - "leather_helmet" => Some(Item::LeatherHelmet), - "leather_chestplate" => Some(Item::LeatherChestplate), - "leather_leggings" => Some(Item::LeatherLeggings), - "leather_boots" => Some(Item::LeatherBoots), - "chainmail_helmet" => Some(Item::ChainmailHelmet), - "chainmail_chestplate" => Some(Item::ChainmailChestplate), - "chainmail_leggings" => Some(Item::ChainmailLeggings), - "chainmail_boots" => Some(Item::ChainmailBoots), - "iron_helmet" => Some(Item::IronHelmet), - "iron_chestplate" => Some(Item::IronChestplate), - "iron_leggings" => Some(Item::IronLeggings), - "iron_boots" => Some(Item::IronBoots), - "diamond_helmet" => Some(Item::DiamondHelmet), - "diamond_chestplate" => Some(Item::DiamondChestplate), - "diamond_leggings" => Some(Item::DiamondLeggings), - "diamond_boots" => Some(Item::DiamondBoots), - "golden_helmet" => Some(Item::GoldenHelmet), - "golden_chestplate" => Some(Item::GoldenChestplate), - "golden_leggings" => Some(Item::GoldenLeggings), - "golden_boots" => Some(Item::GoldenBoots), - "netherite_helmet" => Some(Item::NetheriteHelmet), + "twisting_vines" => Some(Item::TwistingVines), + "piglin_brute_spawn_egg" => Some(Item::PiglinBruteSpawnEgg), + "lever" => Some(Item::Lever), + "pumpkin_seeds" => Some(Item::PumpkinSeeds), + "blue_dye" => Some(Item::BlueDye), + "peony" => Some(Item::Peony), + "cake" => Some(Item::Cake), + "orange_banner" => Some(Item::OrangeBanner), + "music_disc_cat" => Some(Item::MusicDiscCat), + "smooth_stone" => Some(Item::SmoothStone), + "brain_coral" => Some(Item::BrainCoral), + "oak_door" => Some(Item::OakDoor), + "tube_coral" => Some(Item::TubeCoral), + "furnace_minecart" => Some(Item::FurnaceMinecart), + "leather" => Some(Item::Leather), + "nautilus_shell" => Some(Item::NautilusShell), + "kelp" => Some(Item::Kelp), + "sandstone_wall" => Some(Item::SandstoneWall), + "raw_gold" => Some(Item::RawGold), + "pumpkin_pie" => Some(Item::PumpkinPie), + "acacia_sapling" => Some(Item::AcaciaSapling), + "gray_carpet" => Some(Item::GrayCarpet), + "redstone_block" => Some(Item::RedstoneBlock), + "mossy_stone_brick_slab" => Some(Item::MossyStoneBrickSlab), + "powered_rail" => Some(Item::PoweredRail), + "light_gray_stained_glass" => Some(Item::LightGrayStainedGlass), "netherite_chestplate" => Some(Item::NetheriteChestplate), + "light_blue_terracotta" => Some(Item::LightBlueTerracotta), + "baked_potato" => Some(Item::BakedPotato), + "purple_concrete_powder" => Some(Item::PurpleConcretePowder), + "stone" => Some(Item::Stone), + "smithing_table" => Some(Item::SmithingTable), + "trapped_chest" => Some(Item::TrappedChest), + "gray_terracotta" => Some(Item::GrayTerracotta), + "waxed_oxidized_cut_copper_slab" => Some(Item::WaxedOxidizedCutCopperSlab), + "gilded_blackstone" => Some(Item::GildedBlackstone), + "tropical_fish_spawn_egg" => Some(Item::TropicalFishSpawnEgg), + "acacia_leaves" => Some(Item::AcaciaLeaves), + "black_carpet" => Some(Item::BlackCarpet), + "gold_ingot" => Some(Item::GoldIngot), + "command_block_minecart" => Some(Item::CommandBlockMinecart), + "bubble_coral_fan" => Some(Item::BubbleCoralFan), + "music_disc_11" => Some(Item::MusicDisc11), + "purple_banner" => Some(Item::PurpleBanner), + "polished_blackstone" => Some(Item::PolishedBlackstone), + "red_glazed_terracotta" => Some(Item::RedGlazedTerracotta), + "blue_stained_glass_pane" => Some(Item::BlueStainedGlassPane), + "magma_block" => Some(Item::MagmaBlock), + "podzol" => Some(Item::Podzol), + "sticky_piston" => Some(Item::StickyPiston), + "ghast_tear" => Some(Item::GhastTear), + "big_dripleaf" => Some(Item::BigDripleaf), + "blue_carpet" => Some(Item::BlueCarpet), + "cyan_stained_glass_pane" => Some(Item::CyanStainedGlassPane), + "yellow_concrete_powder" => Some(Item::YellowConcretePowder), + "diamond_chestplate" => Some(Item::DiamondChestplate), + "zombie_horse_spawn_egg" => Some(Item::ZombieHorseSpawnEgg), + "warped_fence_gate" => Some(Item::WarpedFenceGate), + "sweet_berries" => Some(Item::SweetBerries), + "stripped_spruce_log" => Some(Item::StrippedSpruceLog), + "coal_block" => Some(Item::CoalBlock), + "red_sandstone_slab" => Some(Item::RedSandstoneSlab), + "dark_oak_boat" => Some(Item::DarkOakBoat), + "bundle" => Some(Item::Bundle), + "netherite_ingot" => Some(Item::NetheriteIngot), + "crimson_stairs" => Some(Item::CrimsonStairs), + "white_concrete_powder" => Some(Item::WhiteConcretePowder), + "pufferfish_bucket" => Some(Item::PufferfishBucket), + "cobblestone_stairs" => Some(Item::CobblestoneStairs), + "warped_wart_block" => Some(Item::WarpedWartBlock), + "chicken_spawn_egg" => Some(Item::ChickenSpawnEgg), + "orange_tulip" => Some(Item::OrangeTulip), + "glowstone" => Some(Item::Glowstone), + "chain" => Some(Item::Chain), + "birch_trapdoor" => Some(Item::BirchTrapdoor), + "magma_cream" => Some(Item::MagmaCream), + "axolotl_spawn_egg" => Some(Item::AxolotlSpawnEgg), + "stone_button" => Some(Item::StoneButton), + "copper_block" => Some(Item::CopperBlock), + "sculk_sensor" => Some(Item::SculkSensor), + "oak_stairs" => Some(Item::OakStairs), + "birch_door" => Some(Item::BirchDoor), + "pink_carpet" => Some(Item::PinkCarpet), + "stripped_warped_hyphae" => Some(Item::StrippedWarpedHyphae), + "birch_sapling" => Some(Item::BirchSapling), + "pink_concrete_powder" => Some(Item::PinkConcretePowder), + "jungle_stairs" => Some(Item::JungleStairs), + "blue_concrete_powder" => Some(Item::BlueConcretePowder), + "polished_blackstone_brick_slab" => Some(Item::PolishedBlackstoneBrickSlab), + "flower_pot" => Some(Item::FlowerPot), + "jigsaw" => Some(Item::Jigsaw), + "light_gray_banner" => Some(Item::LightGrayBanner), + "zoglin_spawn_egg" => Some(Item::ZoglinSpawnEgg), + "creeper_banner_pattern" => Some(Item::CreeperBannerPattern), + "lapis_block" => Some(Item::LapisBlock), + "amethyst_shard" => Some(Item::AmethystShard), + "pufferfish_spawn_egg" => Some(Item::PufferfishSpawnEgg), + "purpur_pillar" => Some(Item::PurpurPillar), + "furnace" => Some(Item::Furnace), + "oak_wood" => Some(Item::OakWood), + "cut_sandstone_slab" => Some(Item::CutSandstoneSlab), + "blue_shulker_box" => Some(Item::BlueShulkerBox), + "rotten_flesh" => Some(Item::RottenFlesh), + "waxed_weathered_cut_copper_stairs" => Some(Item::WaxedWeatheredCutCopperStairs), + "spruce_log" => Some(Item::SpruceLog), "netherite_leggings" => Some(Item::NetheriteLeggings), - "netherite_boots" => Some(Item::NetheriteBoots), - "flint" => Some(Item::Flint), - "porkchop" => Some(Item::Porkchop), - "cooked_porkchop" => Some(Item::CookedPorkchop), - "painting" => Some(Item::Painting), - "golden_apple" => Some(Item::GoldenApple), - "enchanted_golden_apple" => Some(Item::EnchantedGoldenApple), - "oak_sign" => Some(Item::OakSign), - "spruce_sign" => Some(Item::SpruceSign), - "birch_sign" => Some(Item::BirchSign), - "jungle_sign" => Some(Item::JungleSign), - "acacia_sign" => Some(Item::AcaciaSign), + "shulker_box" => Some(Item::ShulkerBox), + "jungle_pressure_plate" => Some(Item::JunglePressurePlate), + "diamond_sword" => Some(Item::DiamondSword), + "red_mushroom" => Some(Item::RedMushroom), + "hopper_minecart" => Some(Item::HopperMinecart), + "wandering_trader_spawn_egg" => Some(Item::WanderingTraderSpawnEgg), + "map" => Some(Item::Map), + "enderman_spawn_egg" => Some(Item::EndermanSpawnEgg), + "shears" => Some(Item::Shears), + "red_sand" => Some(Item::RedSand), + "white_tulip" => Some(Item::WhiteTulip), + "brown_stained_glass" => Some(Item::BrownStainedGlass), + "leather_chestplate" => Some(Item::LeatherChestplate), + "crafting_table" => Some(Item::CraftingTable), "dark_oak_sign" => Some(Item::DarkOakSign), - "crimson_sign" => Some(Item::CrimsonSign), - "warped_sign" => Some(Item::WarpedSign), + "campfire" => Some(Item::Campfire), + "donkey_spawn_egg" => Some(Item::DonkeySpawnEgg), + "trident" => Some(Item::Trident), + "fire_coral_fan" => Some(Item::FireCoralFan), + "gray_candle" => Some(Item::GrayCandle), + "brown_concrete" => Some(Item::BrownConcrete), + "netherite_shovel" => Some(Item::NetheriteShovel), + "prismarine_stairs" => Some(Item::PrismarineStairs), + "amethyst_cluster" => Some(Item::AmethystCluster), + "infested_cracked_stone_bricks" => Some(Item::InfestedCrackedStoneBricks), + "mossy_stone_bricks" => Some(Item::MossyStoneBricks), + "brewing_stand" => Some(Item::BrewingStand), + "smooth_sandstone" => Some(Item::SmoothSandstone), + "raw_gold_block" => Some(Item::RawGoldBlock), + "brown_stained_glass_pane" => Some(Item::BrownStainedGlassPane), + "green_carpet" => Some(Item::GreenCarpet), + "stone_shovel" => Some(Item::StoneShovel), + "cracked_polished_blackstone_bricks" => Some(Item::CrackedPolishedBlackstoneBricks), + "yellow_concrete" => Some(Item::YellowConcrete), + "magenta_wool" => Some(Item::MagentaWool), + "white_stained_glass_pane" => Some(Item::WhiteStainedGlassPane), + "sandstone" => Some(Item::Sandstone), + "green_wool" => Some(Item::GreenWool), + "slime_spawn_egg" => Some(Item::SlimeSpawnEgg), + "smooth_sandstone_slab" => Some(Item::SmoothSandstoneSlab), + "enchanting_table" => Some(Item::EnchantingTable), + "firework_rocket" => Some(Item::FireworkRocket), + "smooth_red_sandstone_slab" => Some(Item::SmoothRedSandstoneSlab), "bucket" => Some(Item::Bucket), - "water_bucket" => Some(Item::WaterBucket), - "lava_bucket" => Some(Item::LavaBucket), - "minecart" => Some(Item::Minecart), - "saddle" => Some(Item::Saddle), - "redstone" => Some(Item::Redstone), - "snowball" => Some(Item::Snowball), - "oak_boat" => Some(Item::OakBoat), - "leather" => Some(Item::Leather), - "milk_bucket" => Some(Item::MilkBucket), - "pufferfish_bucket" => Some(Item::PufferfishBucket), - "salmon_bucket" => Some(Item::SalmonBucket), - "cod_bucket" => Some(Item::CodBucket), - "tropical_fish_bucket" => Some(Item::TropicalFishBucket), + "waxed_cut_copper_stairs" => Some(Item::WaxedCutCopperStairs), + "chainmail_chestplate" => Some(Item::ChainmailChestplate), + "end_portal_frame" => Some(Item::EndPortalFrame), + "white_concrete" => Some(Item::WhiteConcrete), + "crimson_trapdoor" => Some(Item::CrimsonTrapdoor), + "iron_ore" => Some(Item::IronOre), + "redstone_lamp" => Some(Item::RedstoneLamp), + "red_nether_bricks" => Some(Item::RedNetherBricks), + "vex_spawn_egg" => Some(Item::VexSpawnEgg), + "prismarine_slab" => Some(Item::PrismarineSlab), + "end_stone_bricks" => Some(Item::EndStoneBricks), + "fox_spawn_egg" => Some(Item::FoxSpawnEgg), + "basalt" => Some(Item::Basalt), + "orange_shulker_box" => Some(Item::OrangeShulkerBox), + "charcoal" => Some(Item::Charcoal), + "black_shulker_box" => Some(Item::BlackShulkerBox), + "gray_bed" => Some(Item::GrayBed), + "calcite" => Some(Item::Calcite), + "prismarine_crystals" => Some(Item::PrismarineCrystals), + "warped_hyphae" => Some(Item::WarpedHyphae), + "crimson_fence" => Some(Item::CrimsonFence), + "light_blue_carpet" => Some(Item::LightBlueCarpet), + "light_blue_dye" => Some(Item::LightBlueDye), + "blue_wool" => Some(Item::BlueWool), + "nether_wart_block" => Some(Item::NetherWartBlock), + "red_candle" => Some(Item::RedCandle), + "spruce_fence_gate" => Some(Item::SpruceFenceGate), + "leather_horse_armor" => Some(Item::LeatherHorseArmor), + "honey_bottle" => Some(Item::HoneyBottle), + "pink_stained_glass_pane" => Some(Item::PinkStainedGlassPane), + "infested_stone" => Some(Item::InfestedStone), + "dolphin_spawn_egg" => Some(Item::DolphinSpawnEgg), + "dark_oak_stairs" => Some(Item::DarkOakStairs), + "damaged_anvil" => Some(Item::DamagedAnvil), + "sunflower" => Some(Item::Sunflower), + "glow_ink_sac" => Some(Item::GlowInkSac), + "acacia_slab" => Some(Item::AcaciaSlab), + "white_candle" => Some(Item::WhiteCandle), + "orange_candle" => Some(Item::OrangeCandle), + "warped_trapdoor" => Some(Item::WarpedTrapdoor), + "stripped_jungle_wood" => Some(Item::StrippedJungleWood), + "dead_horn_coral_block" => Some(Item::DeadHornCoralBlock), + "spruce_sapling" => Some(Item::SpruceSapling), + "bee_nest" => Some(Item::BeeNest), + "chipped_anvil" => Some(Item::ChippedAnvil), + "dead_brain_coral" => Some(Item::DeadBrainCoral), + "spruce_boat" => Some(Item::SpruceBoat), + "iron_sword" => Some(Item::IronSword), + "iron_helmet" => Some(Item::IronHelmet), + "dead_tube_coral_fan" => Some(Item::DeadTubeCoralFan), + "fletching_table" => Some(Item::FletchingTable), + "cooked_salmon" => Some(Item::CookedSalmon), + "dark_prismarine_stairs" => Some(Item::DarkPrismarineStairs), "brick" => Some(Item::Brick), - "clay_ball" => Some(Item::ClayBall), - "dried_kelp_block" => Some(Item::DriedKelpBlock), - "paper" => Some(Item::Paper), - "book" => Some(Item::Book), - "slime_ball" => Some(Item::SlimeBall), - "chest_minecart" => Some(Item::ChestMinecart), - "furnace_minecart" => Some(Item::FurnaceMinecart), - "egg" => Some(Item::Egg), - "compass" => Some(Item::Compass), + "axolotl_bucket" => Some(Item::AxolotlBucket), + "brown_mushroom" => Some(Item::BrownMushroom), "fishing_rod" => Some(Item::FishingRod), - "clock" => Some(Item::Clock), - "glowstone_dust" => Some(Item::GlowstoneDust), - "cod" => Some(Item::Cod), - "salmon" => Some(Item::Salmon), - "tropical_fish" => Some(Item::TropicalFish), - "pufferfish" => Some(Item::Pufferfish), - "cooked_cod" => Some(Item::CookedCod), - "cooked_salmon" => Some(Item::CookedSalmon), - "ink_sac" => Some(Item::InkSac), - "cocoa_beans" => Some(Item::CocoaBeans), - "lapis_lazuli" => Some(Item::LapisLazuli), - "white_dye" => Some(Item::WhiteDye), - "orange_dye" => Some(Item::OrangeDye), - "magenta_dye" => Some(Item::MagentaDye), - "light_blue_dye" => Some(Item::LightBlueDye), - "yellow_dye" => Some(Item::YellowDye), - "lime_dye" => Some(Item::LimeDye), - "pink_dye" => Some(Item::PinkDye), - "gray_dye" => Some(Item::GrayDye), - "light_gray_dye" => Some(Item::LightGrayDye), - "cyan_dye" => Some(Item::CyanDye), - "purple_dye" => Some(Item::PurpleDye), - "blue_dye" => Some(Item::BlueDye), - "brown_dye" => Some(Item::BrownDye), - "green_dye" => Some(Item::GreenDye), - "red_dye" => Some(Item::RedDye), - "black_dye" => Some(Item::BlackDye), - "bone_meal" => Some(Item::BoneMeal), - "bone" => Some(Item::Bone), - "sugar" => Some(Item::Sugar), - "cake" => Some(Item::Cake), - "white_bed" => Some(Item::WhiteBed), - "orange_bed" => Some(Item::OrangeBed), - "magenta_bed" => Some(Item::MagentaBed), - "light_blue_bed" => Some(Item::LightBlueBed), - "yellow_bed" => Some(Item::YellowBed), - "lime_bed" => Some(Item::LimeBed), - "pink_bed" => Some(Item::PinkBed), - "gray_bed" => Some(Item::GrayBed), - "light_gray_bed" => Some(Item::LightGrayBed), - "cyan_bed" => Some(Item::CyanBed), - "purple_bed" => Some(Item::PurpleBed), - "blue_bed" => Some(Item::BlueBed), - "brown_bed" => Some(Item::BrownBed), - "green_bed" => Some(Item::GreenBed), + "diorite_wall" => Some(Item::DioriteWall), + "honeycomb" => Some(Item::Honeycomb), + "red_stained_glass_pane" => Some(Item::RedStainedGlassPane), + "rabbit_spawn_egg" => Some(Item::RabbitSpawnEgg), + "wither_skeleton_skull" => Some(Item::WitherSkeletonSkull), + "warped_fungus_on_a_stick" => Some(Item::WarpedFungusOnAStick), + "iron_bars" => Some(Item::IronBars), + "horn_coral_block" => Some(Item::HornCoralBlock), + "iron_shovel" => Some(Item::IronShovel), + "acacia_stairs" => Some(Item::AcaciaStairs), + "spruce_stairs" => Some(Item::SpruceStairs), + "tube_coral_block" => Some(Item::TubeCoralBlock), + "dropper" => Some(Item::Dropper), + "cyan_carpet" => Some(Item::CyanCarpet), + "oak_sign" => Some(Item::OakSign), + "jukebox" => Some(Item::Jukebox), + "firework_star" => Some(Item::FireworkStar), + "rabbit" => Some(Item::Rabbit), + "music_disc_stal" => Some(Item::MusicDiscStal), + "polished_blackstone_brick_stairs" => Some(Item::PolishedBlackstoneBrickStairs), + "spruce_fence" => Some(Item::SpruceFence), + "stone_sword" => Some(Item::StoneSword), + "magenta_terracotta" => Some(Item::MagentaTerracotta), + "jack_o_lantern" => Some(Item::JackOLantern), + "wooden_hoe" => Some(Item::WoodenHoe), + "diamond_axe" => Some(Item::DiamondAxe), "red_bed" => Some(Item::RedBed), - "black_bed" => Some(Item::BlackBed), - "cookie" => Some(Item::Cookie), - "filled_map" => Some(Item::FilledMap), - "shears" => Some(Item::Shears), - "melon_slice" => Some(Item::MelonSlice), - "dried_kelp" => Some(Item::DriedKelp), - "pumpkin_seeds" => Some(Item::PumpkinSeeds), - "melon_seeds" => Some(Item::MelonSeeds), - "beef" => Some(Item::Beef), - "cooked_beef" => Some(Item::CookedBeef), - "chicken" => Some(Item::Chicken), - "cooked_chicken" => Some(Item::CookedChicken), - "rotten_flesh" => Some(Item::RottenFlesh), - "ender_pearl" => Some(Item::EnderPearl), - "blaze_rod" => Some(Item::BlazeRod), - "ghast_tear" => Some(Item::GhastTear), - "gold_nugget" => Some(Item::GoldNugget), - "nether_wart" => Some(Item::NetherWart), + "dirt" => Some(Item::Dirt), + "purpur_slab" => Some(Item::PurpurSlab), + "polished_deepslate_slab" => Some(Item::PolishedDeepslateSlab), + "jungle_door" => Some(Item::JungleDoor), + "poisonous_potato" => Some(Item::PoisonousPotato), + "dead_horn_coral_fan" => Some(Item::DeadHornCoralFan), + "horse_spawn_egg" => Some(Item::HorseSpawnEgg), + "trader_llama_spawn_egg" => Some(Item::TraderLlamaSpawnEgg), + "cobblestone_slab" => Some(Item::CobblestoneSlab), + "wither_rose" => Some(Item::WitherRose), + "stripped_oak_wood" => Some(Item::StrippedOakWood), + "globe_banner_pattern" => Some(Item::GlobeBannerPattern), + "gray_dye" => Some(Item::GrayDye), + "chiseled_quartz_block" => Some(Item::ChiseledQuartzBlock), + "dead_brain_coral_block" => Some(Item::DeadBrainCoralBlock), + "azure_bluet" => Some(Item::AzureBluet), + "emerald_ore" => Some(Item::EmeraldOre), + "infested_cobblestone" => Some(Item::InfestedCobblestone), + "white_dye" => Some(Item::WhiteDye), + "cooked_cod" => Some(Item::CookedCod), + "dark_oak_sapling" => Some(Item::DarkOakSapling), + "light_gray_stained_glass_pane" => Some(Item::LightGrayStainedGlassPane), + "pink_glazed_terracotta" => Some(Item::PinkGlazedTerracotta), + "diorite_slab" => Some(Item::DioriteSlab), + "orange_concrete" => Some(Item::OrangeConcrete), + "enchanted_golden_apple" => Some(Item::EnchantedGoldenApple), + "bone_block" => Some(Item::BoneBlock), + "hopper" => Some(Item::Hopper), + "spruce_wood" => Some(Item::SpruceWood), + "sea_pickle" => Some(Item::SeaPickle), + "ender_chest" => Some(Item::EnderChest), + "diamond_leggings" => Some(Item::DiamondLeggings), + "cobbled_deepslate_wall" => Some(Item::CobbledDeepslateWall), + "cyan_concrete" => Some(Item::CyanConcrete), + "brick_wall" => Some(Item::BrickWall), + "lime_bed" => Some(Item::LimeBed), + "skeleton_horse_spawn_egg" => Some(Item::SkeletonHorseSpawnEgg), + "cobbled_deepslate_slab" => Some(Item::CobbledDeepslateSlab), + "white_glazed_terracotta" => Some(Item::WhiteGlazedTerracotta), + "splash_potion" => Some(Item::SplashPotion), + "bone" => Some(Item::Bone), + "acacia_pressure_plate" => Some(Item::AcaciaPressurePlate), + "gray_shulker_box" => Some(Item::GrayShulkerBox), + "light_blue_concrete_powder" => Some(Item::LightBlueConcretePowder), + "warped_pressure_plate" => Some(Item::WarpedPressurePlate), + "andesite" => Some(Item::Andesite), + "tnt_minecart" => Some(Item::TntMinecart), + "blue_terracotta" => Some(Item::BlueTerracotta), + "wooden_axe" => Some(Item::WoodenAxe), + "exposed_cut_copper_stairs" => Some(Item::ExposedCutCopperStairs), + "spruce_trapdoor" => Some(Item::SpruceTrapdoor), "potion" => Some(Item::Potion), - "glass_bottle" => Some(Item::GlassBottle), - "spider_eye" => Some(Item::SpiderEye), - "fermented_spider_eye" => Some(Item::FermentedSpiderEye), - "blaze_powder" => Some(Item::BlazePowder), - "magma_cream" => Some(Item::MagmaCream), - "brewing_stand" => Some(Item::BrewingStand), - "cauldron" => Some(Item::Cauldron), - "ender_eye" => Some(Item::EnderEye), - "glistering_melon_slice" => Some(Item::GlisteringMelonSlice), - "bat_spawn_egg" => Some(Item::BatSpawnEgg), - "bee_spawn_egg" => Some(Item::BeeSpawnEgg), - "blaze_spawn_egg" => Some(Item::BlazeSpawnEgg), + "coarse_dirt" => Some(Item::CoarseDirt), + "deepslate_tile_wall" => Some(Item::DeepslateTileWall), + "brown_wool" => Some(Item::BrownWool), + "smooth_sandstone_stairs" => Some(Item::SmoothSandstoneStairs), + "lantern" => Some(Item::Lantern), + "brown_terracotta" => Some(Item::BrownTerracotta), "cat_spawn_egg" => Some(Item::CatSpawnEgg), - "cave_spider_spawn_egg" => Some(Item::CaveSpiderSpawnEgg), - "chicken_spawn_egg" => Some(Item::ChickenSpawnEgg), - "cod_spawn_egg" => Some(Item::CodSpawnEgg), - "cow_spawn_egg" => Some(Item::CowSpawnEgg), - "creeper_spawn_egg" => Some(Item::CreeperSpawnEgg), - "dolphin_spawn_egg" => Some(Item::DolphinSpawnEgg), - "donkey_spawn_egg" => Some(Item::DonkeySpawnEgg), + "waxed_exposed_cut_copper_slab" => Some(Item::WaxedExposedCutCopperSlab), + "pink_candle" => Some(Item::PinkCandle), + "exposed_cut_copper" => Some(Item::ExposedCutCopper), + "glow_berries" => Some(Item::GlowBerries), + "snow_block" => Some(Item::SnowBlock), + "stone_slab" => Some(Item::StoneSlab), + "dried_kelp_block" => Some(Item::DriedKelpBlock), + "crimson_fungus" => Some(Item::CrimsonFungus), + "oxidized_cut_copper_slab" => Some(Item::OxidizedCutCopperSlab), + "waxed_exposed_cut_copper" => Some(Item::WaxedExposedCutCopper), + "large_fern" => Some(Item::LargeFern), + "gold_block" => Some(Item::GoldBlock), + "repeater" => Some(Item::Repeater), + "golden_hoe" => Some(Item::GoldenHoe), + "black_wool" => Some(Item::BlackWool), + "nether_quartz_ore" => Some(Item::NetherQuartzOre), + "warped_button" => Some(Item::WarpedButton), + "birch_fence_gate" => Some(Item::BirchFenceGate), + "elytra" => Some(Item::Elytra), + "lingering_potion" => Some(Item::LingeringPotion), + "leather_helmet" => Some(Item::LeatherHelmet), + "barrier" => Some(Item::Barrier), + "brown_dye" => Some(Item::BrownDye), + "polished_diorite_slab" => Some(Item::PolishedDioriteSlab), + "activator_rail" => Some(Item::ActivatorRail), "drowned_spawn_egg" => Some(Item::DrownedSpawnEgg), - "elder_guardian_spawn_egg" => Some(Item::ElderGuardianSpawnEgg), - "enderman_spawn_egg" => Some(Item::EndermanSpawnEgg), - "endermite_spawn_egg" => Some(Item::EndermiteSpawnEgg), - "evoker_spawn_egg" => Some(Item::EvokerSpawnEgg), - "fox_spawn_egg" => Some(Item::FoxSpawnEgg), - "ghast_spawn_egg" => Some(Item::GhastSpawnEgg), - "guardian_spawn_egg" => Some(Item::GuardianSpawnEgg), + "dark_oak_log" => Some(Item::DarkOakLog), + "glow_squid_spawn_egg" => Some(Item::GlowSquidSpawnEgg), + "green_candle" => Some(Item::GreenCandle), + "tuff" => Some(Item::Tuff), + "chain_command_block" => Some(Item::ChainCommandBlock), + "blaze_spawn_egg" => Some(Item::BlazeSpawnEgg), + "diorite_stairs" => Some(Item::DioriteStairs), + "pumpkin" => Some(Item::Pumpkin), + "blackstone_wall" => Some(Item::BlackstoneWall), "hoglin_spawn_egg" => Some(Item::HoglinSpawnEgg), - "horse_spawn_egg" => Some(Item::HorseSpawnEgg), - "husk_spawn_egg" => Some(Item::HuskSpawnEgg), - "llama_spawn_egg" => Some(Item::LlamaSpawnEgg), - "magma_cube_spawn_egg" => Some(Item::MagmaCubeSpawnEgg), - "mooshroom_spawn_egg" => Some(Item::MooshroomSpawnEgg), - "mule_spawn_egg" => Some(Item::MuleSpawnEgg), - "ocelot_spawn_egg" => Some(Item::OcelotSpawnEgg), - "panda_spawn_egg" => Some(Item::PandaSpawnEgg), - "parrot_spawn_egg" => Some(Item::ParrotSpawnEgg), - "phantom_spawn_egg" => Some(Item::PhantomSpawnEgg), + "chainmail_helmet" => Some(Item::ChainmailHelmet), + "dark_oak_button" => Some(Item::DarkOakButton), + "yellow_wool" => Some(Item::YellowWool), + "golden_chestplate" => Some(Item::GoldenChestplate), + "quartz_slab" => Some(Item::QuartzSlab), + "cod" => Some(Item::Cod), + "ink_sac" => Some(Item::InkSac), + "crimson_door" => Some(Item::CrimsonDoor), + "arrow" => Some(Item::Arrow), "pig_spawn_egg" => Some(Item::PigSpawnEgg), - "piglin_spawn_egg" => Some(Item::PiglinSpawnEgg), - "piglin_brute_spawn_egg" => Some(Item::PiglinBruteSpawnEgg), - "pillager_spawn_egg" => Some(Item::PillagerSpawnEgg), - "polar_bear_spawn_egg" => Some(Item::PolarBearSpawnEgg), - "pufferfish_spawn_egg" => Some(Item::PufferfishSpawnEgg), - "rabbit_spawn_egg" => Some(Item::RabbitSpawnEgg), - "ravager_spawn_egg" => Some(Item::RavagerSpawnEgg), - "salmon_spawn_egg" => Some(Item::SalmonSpawnEgg), + "cyan_terracotta" => Some(Item::CyanTerracotta), + "nether_star" => Some(Item::NetherStar), + "oak_sapling" => Some(Item::OakSapling), + "honey_block" => Some(Item::HoneyBlock), + "cut_red_sandstone" => Some(Item::CutRedSandstone), + "paper" => Some(Item::Paper), + "exposed_cut_copper_slab" => Some(Item::ExposedCutCopperSlab), + "suspicious_stew" => Some(Item::SuspiciousStew), + "flower_banner_pattern" => Some(Item::FlowerBannerPattern), + "raw_iron" => Some(Item::RawIron), + "black_glazed_terracotta" => Some(Item::BlackGlazedTerracotta), "sheep_spawn_egg" => Some(Item::SheepSpawnEgg), - "shulker_spawn_egg" => Some(Item::ShulkerSpawnEgg), - "silverfish_spawn_egg" => Some(Item::SilverfishSpawnEgg), - "skeleton_spawn_egg" => Some(Item::SkeletonSpawnEgg), - "skeleton_horse_spawn_egg" => Some(Item::SkeletonHorseSpawnEgg), - "slime_spawn_egg" => Some(Item::SlimeSpawnEgg), - "spider_spawn_egg" => Some(Item::SpiderSpawnEgg), - "squid_spawn_egg" => Some(Item::SquidSpawnEgg), - "stray_spawn_egg" => Some(Item::StraySpawnEgg), - "strider_spawn_egg" => Some(Item::StriderSpawnEgg), - "trader_llama_spawn_egg" => Some(Item::TraderLlamaSpawnEgg), - "tropical_fish_spawn_egg" => Some(Item::TropicalFishSpawnEgg), - "turtle_spawn_egg" => Some(Item::TurtleSpawnEgg), - "vex_spawn_egg" => Some(Item::VexSpawnEgg), - "villager_spawn_egg" => Some(Item::VillagerSpawnEgg), - "vindicator_spawn_egg" => Some(Item::VindicatorSpawnEgg), - "wandering_trader_spawn_egg" => Some(Item::WanderingTraderSpawnEgg), - "witch_spawn_egg" => Some(Item::WitchSpawnEgg), - "wither_skeleton_spawn_egg" => Some(Item::WitherSkeletonSpawnEgg), + "black_banner" => Some(Item::BlackBanner), + "spyglass" => Some(Item::Spyglass), + "pink_tulip" => Some(Item::PinkTulip), + "pink_wool" => Some(Item::PinkWool), + "netherite_scrap" => Some(Item::NetheriteScrap), + "diamond_horse_armor" => Some(Item::DiamondHorseArmor), + "chiseled_polished_blackstone" => Some(Item::ChiseledPolishedBlackstone), + "lime_concrete" => Some(Item::LimeConcrete), + "chiseled_nether_bricks" => Some(Item::ChiseledNetherBricks), + "polished_deepslate_wall" => Some(Item::PolishedDeepslateWall), + "granite_slab" => Some(Item::GraniteSlab), + "lightning_rod" => Some(Item::LightningRod), + "magenta_bed" => Some(Item::MagentaBed), + "quartz_bricks" => Some(Item::QuartzBricks), + "soul_sand" => Some(Item::SoulSand), + "red_sandstone_stairs" => Some(Item::RedSandstoneStairs), + "lime_stained_glass_pane" => Some(Item::LimeStainedGlassPane), + "black_candle" => Some(Item::BlackCandle), + "waxed_weathered_cut_copper" => Some(Item::WaxedWeatheredCutCopper), + "raw_copper" => Some(Item::RawCopper), + "deepslate_copper_ore" => Some(Item::DeepslateCopperOre), + "gray_glazed_terracotta" => Some(Item::GrayGlazedTerracotta), + "cobblestone" => Some(Item::Cobblestone), + "green_banner" => Some(Item::GreenBanner), + "lily_of_the_valley" => Some(Item::LilyOfTheValley), + "flowering_azalea" => Some(Item::FloweringAzalea), + "polished_andesite" => Some(Item::PolishedAndesite), + "wet_sponge" => Some(Item::WetSponge), + "grindstone" => Some(Item::Grindstone), + "wheat" => Some(Item::Wheat), + "beef" => Some(Item::Beef), + "wooden_sword" => Some(Item::WoodenSword), + "light_gray_terracotta" => Some(Item::LightGrayTerracotta), + "diorite" => Some(Item::Diorite), + "nether_brick" => Some(Item::NetherBrick), + "birch_button" => Some(Item::BirchButton), + "acacia_fence_gate" => Some(Item::AcaciaFenceGate), "wolf_spawn_egg" => Some(Item::WolfSpawnEgg), - "zoglin_spawn_egg" => Some(Item::ZoglinSpawnEgg), - "zombie_spawn_egg" => Some(Item::ZombieSpawnEgg), - "zombie_horse_spawn_egg" => Some(Item::ZombieHorseSpawnEgg), - "zombie_villager_spawn_egg" => Some(Item::ZombieVillagerSpawnEgg), - "zombified_piglin_spawn_egg" => Some(Item::ZombifiedPiglinSpawnEgg), - "experience_bottle" => Some(Item::ExperienceBottle), - "fire_charge" => Some(Item::FireCharge), - "writable_book" => Some(Item::WritableBook), - "written_book" => Some(Item::WrittenBook), - "emerald" => Some(Item::Emerald), - "item_frame" => Some(Item::ItemFrame), - "flower_pot" => Some(Item::FlowerPot), - "carrot" => Some(Item::Carrot), - "potato" => Some(Item::Potato), - "baked_potato" => Some(Item::BakedPotato), - "poisonous_potato" => Some(Item::PoisonousPotato), - "map" => Some(Item::Map), - "golden_carrot" => Some(Item::GoldenCarrot), - "skeleton_skull" => Some(Item::SkeletonSkull), - "wither_skeleton_skull" => Some(Item::WitherSkeletonSkull), - "player_head" => Some(Item::PlayerHead), - "zombie_head" => Some(Item::ZombieHead), + "crimson_pressure_plate" => Some(Item::CrimsonPressurePlate), + "cobblestone_wall" => Some(Item::CobblestoneWall), + "light_blue_stained_glass" => Some(Item::LightBlueStainedGlass), + "brown_shulker_box" => Some(Item::BrownShulkerBox), + "waxed_weathered_copper" => Some(Item::WaxedWeatheredCopper), + "conduit" => Some(Item::Conduit), + "diamond_pickaxe" => Some(Item::DiamondPickaxe), + "end_stone_brick_slab" => Some(Item::EndStoneBrickSlab), + "iron_leggings" => Some(Item::IronLeggings), + "flint" => Some(Item::Flint), + "warped_nylium" => Some(Item::WarpedNylium), + "brown_carpet" => Some(Item::BrownCarpet), + "stripped_warped_stem" => Some(Item::StrippedWarpedStem), + "white_banner" => Some(Item::WhiteBanner), + "white_terracotta" => Some(Item::WhiteTerracotta), "creeper_head" => Some(Item::CreeperHead), - "dragon_head" => Some(Item::DragonHead), - "carrot_on_a_stick" => Some(Item::CarrotOnAStick), - "warped_fungus_on_a_stick" => Some(Item::WarpedFungusOnAStick), - "nether_star" => Some(Item::NetherStar), - "pumpkin_pie" => Some(Item::PumpkinPie), - "firework_rocket" => Some(Item::FireworkRocket), - "firework_star" => Some(Item::FireworkStar), - "enchanted_book" => Some(Item::EnchantedBook), - "nether_brick" => Some(Item::NetherBrick), - "quartz" => Some(Item::Quartz), - "tnt_minecart" => Some(Item::TntMinecart), - "hopper_minecart" => Some(Item::HopperMinecart), - "prismarine_shard" => Some(Item::PrismarineShard), - "prismarine_crystals" => Some(Item::PrismarineCrystals), - "rabbit" => Some(Item::Rabbit), + "red_shulker_box" => Some(Item::RedShulkerBox), + "wooden_shovel" => Some(Item::WoodenShovel), + "andesite_stairs" => Some(Item::AndesiteStairs), + "jungle_slab" => Some(Item::JungleSlab), + "spider_spawn_egg" => Some(Item::SpiderSpawnEgg), + "mossy_cobblestone_stairs" => Some(Item::MossyCobblestoneStairs), + "quartz_pillar" => Some(Item::QuartzPillar), + "acacia_fence" => Some(Item::AcaciaFence), + "brain_coral_block" => Some(Item::BrainCoralBlock), + "cyan_banner" => Some(Item::CyanBanner), + "birch_slab" => Some(Item::BirchSlab), + "crimson_slab" => Some(Item::CrimsonSlab), + "amethyst_block" => Some(Item::AmethystBlock), + "stone_brick_stairs" => Some(Item::StoneBrickStairs), + "cracked_deepslate_tiles" => Some(Item::CrackedDeepslateTiles), + "red_tulip" => Some(Item::RedTulip), + "allium" => Some(Item::Allium), + "green_concrete_powder" => Some(Item::GreenConcretePowder), + "music_disc_blocks" => Some(Item::MusicDiscBlocks), + "salmon" => Some(Item::Salmon), + "red_terracotta" => Some(Item::RedTerracotta), + "sandstone_stairs" => Some(Item::SandstoneStairs), + "ghast_spawn_egg" => Some(Item::GhastSpawnEgg), + "gray_stained_glass_pane" => Some(Item::GrayStainedGlassPane), + "ender_eye" => Some(Item::EnderEye), "cooked_rabbit" => Some(Item::CookedRabbit), - "rabbit_stew" => Some(Item::RabbitStew), - "rabbit_foot" => Some(Item::RabbitFoot), - "rabbit_hide" => Some(Item::RabbitHide), - "armor_stand" => Some(Item::ArmorStand), + "beehive" => Some(Item::Beehive), + "netherite_helmet" => Some(Item::NetheriteHelmet), + "turtle_spawn_egg" => Some(Item::TurtleSpawnEgg), + "leather_boots" => Some(Item::LeatherBoots), + "crimson_stem" => Some(Item::CrimsonStem), + "tube_coral_fan" => Some(Item::TubeCoralFan), + "endermite_spawn_egg" => Some(Item::EndermiteSpawnEgg), + "wither_skeleton_spawn_egg" => Some(Item::WitherSkeletonSpawnEgg), + "purple_shulker_box" => Some(Item::PurpleShulkerBox), + "netherite_block" => Some(Item::NetheriteBlock), + "spruce_pressure_plate" => Some(Item::SprucePressurePlate), + "cyan_concrete_powder" => Some(Item::CyanConcretePowder), + "egg" => Some(Item::Egg), + "pink_stained_glass" => Some(Item::PinkStainedGlass), + "red_banner" => Some(Item::RedBanner), + "jungle_planks" => Some(Item::JunglePlanks), + "respawn_anchor" => Some(Item::RespawnAnchor), + "bat_spawn_egg" => Some(Item::BatSpawnEgg), + "pointed_dripstone" => Some(Item::PointedDripstone), + "gravel" => Some(Item::Gravel), + "bowl" => Some(Item::Bowl), + "cave_spider_spawn_egg" => Some(Item::CaveSpiderSpawnEgg), + "quartz_stairs" => Some(Item::QuartzStairs), + "spruce_button" => Some(Item::SpruceButton), + "carved_pumpkin" => Some(Item::CarvedPumpkin), + "light_blue_shulker_box" => Some(Item::LightBlueShulkerBox), + "bee_spawn_egg" => Some(Item::BeeSpawnEgg), + "oak_fence_gate" => Some(Item::OakFenceGate), + "nether_brick_fence" => Some(Item::NetherBrickFence), "iron_horse_armor" => Some(Item::IronHorseArmor), - "golden_horse_armor" => Some(Item::GoldenHorseArmor), - "diamond_horse_armor" => Some(Item::DiamondHorseArmor), - "leather_horse_armor" => Some(Item::LeatherHorseArmor), - "lead" => Some(Item::Lead), - "name_tag" => Some(Item::NameTag), - "command_block_minecart" => Some(Item::CommandBlockMinecart), + "dead_horn_coral" => Some(Item::DeadHornCoral), + "polished_diorite" => Some(Item::PolishedDiorite), + "ravager_spawn_egg" => Some(Item::RavagerSpawnEgg), + "end_rod" => Some(Item::EndRod), + "magenta_stained_glass" => Some(Item::MagentaStainedGlass), + "chorus_plant" => Some(Item::ChorusPlant), + "orange_concrete_powder" => Some(Item::OrangeConcretePowder), + "dragon_egg" => Some(Item::DragonEgg), + "green_concrete" => Some(Item::GreenConcrete), + "stripped_acacia_log" => Some(Item::StrippedAcaciaLog), + "diamond" => Some(Item::Diamond), + "ladder" => Some(Item::Ladder), + "prismarine_wall" => Some(Item::PrismarineWall), + "moss_block" => Some(Item::MossBlock), + "oak_leaves" => Some(Item::OakLeaves), + "cooked_porkchop" => Some(Item::CookedPorkchop), + "yellow_stained_glass_pane" => Some(Item::YellowStainedGlassPane), + "salmon_spawn_egg" => Some(Item::SalmonSpawnEgg), + "chainmail_boots" => Some(Item::ChainmailBoots), + "witch_spawn_egg" => Some(Item::WitchSpawnEgg), + "oxidized_cut_copper_stairs" => Some(Item::OxidizedCutCopperStairs), + "lapis_ore" => Some(Item::LapisOre), + "smooth_red_sandstone" => Some(Item::SmoothRedSandstone), + "jungle_trapdoor" => Some(Item::JungleTrapdoor), + "shroomlight" => Some(Item::Shroomlight), + "blackstone_slab" => Some(Item::BlackstoneSlab), "mutton" => Some(Item::Mutton), - "cooked_mutton" => Some(Item::CookedMutton), - "white_banner" => Some(Item::WhiteBanner), - "orange_banner" => Some(Item::OrangeBanner), - "magenta_banner" => Some(Item::MagentaBanner), - "light_blue_banner" => Some(Item::LightBlueBanner), - "yellow_banner" => Some(Item::YellowBanner), - "lime_banner" => Some(Item::LimeBanner), - "pink_banner" => Some(Item::PinkBanner), - "gray_banner" => Some(Item::GrayBanner), - "light_gray_banner" => Some(Item::LightGrayBanner), - "cyan_banner" => Some(Item::CyanBanner), - "purple_banner" => Some(Item::PurpleBanner), - "blue_banner" => Some(Item::BlueBanner), - "brown_banner" => Some(Item::BrownBanner), - "green_banner" => Some(Item::GreenBanner), - "red_banner" => Some(Item::RedBanner), - "black_banner" => Some(Item::BlackBanner), - "end_crystal" => Some(Item::EndCrystal), + "stripped_oak_log" => Some(Item::StrippedOakLog), + "yellow_stained_glass" => Some(Item::YellowStainedGlass), + "crying_obsidian" => Some(Item::CryingObsidian), + "spruce_slab" => Some(Item::SpruceSlab), + "gray_concrete" => Some(Item::GrayConcrete), "chorus_fruit" => Some(Item::ChorusFruit), + "silverfish_spawn_egg" => Some(Item::SilverfishSpawnEgg), + "cyan_shulker_box" => Some(Item::CyanShulkerBox), + "black_terracotta" => Some(Item::BlackTerracotta), + "redstone_ore" => Some(Item::RedstoneOre), + "red_dye" => Some(Item::RedDye), + "smooth_basalt" => Some(Item::SmoothBasalt), + "purple_glazed_terracotta" => Some(Item::PurpleGlazedTerracotta), "popped_chorus_fruit" => Some(Item::PoppedChorusFruit), - "beetroot" => Some(Item::Beetroot), - "beetroot_seeds" => Some(Item::BeetrootSeeds), - "beetroot_soup" => Some(Item::BeetrootSoup), - "dragon_breath" => Some(Item::DragonBreath), - "splash_potion" => Some(Item::SplashPotion), - "spectral_arrow" => Some(Item::SpectralArrow), - "tipped_arrow" => Some(Item::TippedArrow), - "lingering_potion" => Some(Item::LingeringPotion), - "shield" => Some(Item::Shield), - "elytra" => Some(Item::Elytra), - "spruce_boat" => Some(Item::SpruceBoat), - "birch_boat" => Some(Item::BirchBoat), - "jungle_boat" => Some(Item::JungleBoat), - "acacia_boat" => Some(Item::AcaciaBoat), - "dark_oak_boat" => Some(Item::DarkOakBoat), - "totem_of_undying" => Some(Item::TotemOfUndying), - "shulker_shell" => Some(Item::ShulkerShell), - "iron_nugget" => Some(Item::IronNugget), - "knowledge_book" => Some(Item::KnowledgeBook), "debug_stick" => Some(Item::DebugStick), - "music_disc_13" => Some(Item::MusicDisc13), - "music_disc_cat" => Some(Item::MusicDiscCat), - "music_disc_blocks" => Some(Item::MusicDiscBlocks), - "music_disc_chirp" => Some(Item::MusicDiscChirp), - "music_disc_far" => Some(Item::MusicDiscFar), - "music_disc_mall" => Some(Item::MusicDiscMall), - "music_disc_mellohi" => Some(Item::MusicDiscMellohi), - "music_disc_stal" => Some(Item::MusicDiscStal), - "music_disc_strad" => Some(Item::MusicDiscStrad), - "music_disc_ward" => Some(Item::MusicDiscWard), - "music_disc_11" => Some(Item::MusicDisc11), - "music_disc_wait" => Some(Item::MusicDiscWait), + "waxed_copper_block" => Some(Item::WaxedCopperBlock), + "warped_roots" => Some(Item::WarpedRoots), + "diamond_helmet" => Some(Item::DiamondHelmet), + "birch_pressure_plate" => Some(Item::BirchPressurePlate), + "pink_concrete" => Some(Item::PinkConcrete), + "chest_minecart" => Some(Item::ChestMinecart), + "torch" => Some(Item::Torch), + "acacia_door" => Some(Item::AcaciaDoor), + "diamond_shovel" => Some(Item::DiamondShovel), + "bamboo" => Some(Item::Bamboo), + "iron_trapdoor" => Some(Item::IronTrapdoor), + "dark_oak_slab" => Some(Item::DarkOakSlab), + "brown_bed" => Some(Item::BrownBed), + "rooted_dirt" => Some(Item::RootedDirt), + "acacia_trapdoor" => Some(Item::AcaciaTrapdoor), + "carrot" => Some(Item::Carrot), + "cobbled_deepslate" => Some(Item::CobbledDeepslate), + "crimson_roots" => Some(Item::CrimsonRoots), + "golden_leggings" => Some(Item::GoldenLeggings), + "grass" => Some(Item::Grass), "music_disc_pigstep" => Some(Item::MusicDiscPigstep), - "trident" => Some(Item::Trident), - "phantom_membrane" => Some(Item::PhantomMembrane), - "nautilus_shell" => Some(Item::NautilusShell), - "heart_of_the_sea" => Some(Item::HeartOfTheSea), - "crossbow" => Some(Item::Crossbow), - "suspicious_stew" => Some(Item::SuspiciousStew), - "loom" => Some(Item::Loom), - "flower_banner_pattern" => Some(Item::FlowerBannerPattern), - "creeper_banner_pattern" => Some(Item::CreeperBannerPattern), - "skull_banner_pattern" => Some(Item::SkullBannerPattern), - "mojang_banner_pattern" => Some(Item::MojangBannerPattern), - "globe_banner_pattern" => Some(Item::GlobeBannerPattern), - "piglin_banner_pattern" => Some(Item::PiglinBannerPattern), - "composter" => Some(Item::Composter), - "barrel" => Some(Item::Barrel), - "smoker" => Some(Item::Smoker), - "blast_furnace" => Some(Item::BlastFurnace), - "cartography_table" => Some(Item::CartographyTable), - "fletching_table" => Some(Item::FletchingTable), - "grindstone" => Some(Item::Grindstone), + "command_block" => Some(Item::CommandBlock), + "cut_copper_slab" => Some(Item::CutCopperSlab), + "pink_terracotta" => Some(Item::PinkTerracotta), + "lime_wool" => Some(Item::LimeWool), + "fire_coral" => Some(Item::FireCoral), + "birch_boat" => Some(Item::BirchBoat), + "light_gray_dye" => Some(Item::LightGrayDye), + "obsidian" => Some(Item::Obsidian), + "spawner" => Some(Item::Spawner), + "green_shulker_box" => Some(Item::GreenShulkerBox), + "filled_map" => Some(Item::FilledMap), + "blue_candle" => Some(Item::BlueCandle), + "jungle_log" => Some(Item::JungleLog), + "skeleton_spawn_egg" => Some(Item::SkeletonSpawnEgg), + "squid_spawn_egg" => Some(Item::SquidSpawnEgg), + "blue_glazed_terracotta" => Some(Item::BlueGlazedTerracotta), + "magenta_shulker_box" => Some(Item::MagentaShulkerBox), + "nether_gold_ore" => Some(Item::NetherGoldOre), + "stone_pressure_plate" => Some(Item::StonePressurePlate), + "item_frame" => Some(Item::ItemFrame), "lectern" => Some(Item::Lectern), - "smithing_table" => Some(Item::SmithingTable), - "stonecutter" => Some(Item::Stonecutter), - "bell" => Some(Item::Bell), - "lantern" => Some(Item::Lantern), - "soul_lantern" => Some(Item::SoulLantern), - "sweet_berries" => Some(Item::SweetBerries), - "campfire" => Some(Item::Campfire), - "soul_campfire" => Some(Item::SoulCampfire), - "shroomlight" => Some(Item::Shroomlight), - "honeycomb" => Some(Item::Honeycomb), - "bee_nest" => Some(Item::BeeNest), - "beehive" => Some(Item::Beehive), - "honey_bottle" => Some(Item::HoneyBottle), - "honey_block" => Some(Item::HoneyBlock), - "honeycomb_block" => Some(Item::HoneycombBlock), - "lodestone" => Some(Item::Lodestone), - "netherite_block" => Some(Item::NetheriteBlock), - "ancient_debris" => Some(Item::AncientDebris), - "target" => Some(Item::Target), - "crying_obsidian" => Some(Item::CryingObsidian), - "blackstone" => Some(Item::Blackstone), - "blackstone_slab" => Some(Item::BlackstoneSlab), - "blackstone_stairs" => Some(Item::BlackstoneStairs), - "gilded_blackstone" => Some(Item::GildedBlackstone), - "polished_blackstone" => Some(Item::PolishedBlackstone), - "polished_blackstone_slab" => Some(Item::PolishedBlackstoneSlab), - "polished_blackstone_stairs" => Some(Item::PolishedBlackstoneStairs), - "chiseled_polished_blackstone" => Some(Item::ChiseledPolishedBlackstone), - "polished_blackstone_bricks" => Some(Item::PolishedBlackstoneBricks), - "polished_blackstone_brick_slab" => Some(Item::PolishedBlackstoneBrickSlab), - "polished_blackstone_brick_stairs" => Some(Item::PolishedBlackstoneBrickStairs), - "cracked_polished_blackstone_bricks" => Some(Item::CrackedPolishedBlackstoneBricks), - "respawn_anchor" => Some(Item::RespawnAnchor), + "netherite_hoe" => Some(Item::NetheriteHoe), + "dark_oak_fence" => Some(Item::DarkOakFence), + "warped_stairs" => Some(Item::WarpedStairs), + "tipped_arrow" => Some(Item::TippedArrow), + "crimson_hyphae" => Some(Item::CrimsonHyphae), + "chorus_flower" => Some(Item::ChorusFlower), + "sandstone_slab" => Some(Item::SandstoneSlab), + "brown_glazed_terracotta" => Some(Item::BrownGlazedTerracotta), + "dead_fire_coral" => Some(Item::DeadFireCoral), + "gold_ore" => Some(Item::GoldOre), + "stripped_crimson_stem" => Some(Item::StrippedCrimsonStem), + "stone_brick_wall" => Some(Item::StoneBrickWall), + "dead_tube_coral_block" => Some(Item::DeadTubeCoralBlock), + "netherite_boots" => Some(Item::NetheriteBoots), + "copper_ore" => Some(Item::CopperOre), + "dead_brain_coral_fan" => Some(Item::DeadBrainCoralFan), + "yellow_carpet" => Some(Item::YellowCarpet), + "villager_spawn_egg" => Some(Item::VillagerSpawnEgg), + "armor_stand" => Some(Item::ArmorStand), + "gray_banner" => Some(Item::GrayBanner), + "note_block" => Some(Item::NoteBlock), + "magenta_banner" => Some(Item::MagentaBanner), + "glistering_melon_slice" => Some(Item::GlisteringMelonSlice), + "evoker_spawn_egg" => Some(Item::EvokerSpawnEgg), + "hay_block" => Some(Item::HayBlock), + "blue_concrete" => Some(Item::BlueConcrete), + "cooked_beef" => Some(Item::CookedBeef), + "rabbit_stew" => Some(Item::RabbitStew), + "packed_ice" => Some(Item::PackedIce), + "birch_leaves" => Some(Item::BirchLeaves), + "moss_carpet" => Some(Item::MossCarpet), + "gray_wool" => Some(Item::GrayWool), + "mossy_cobblestone_wall" => Some(Item::MossyCobblestoneWall), + "lilac" => Some(Item::Lilac), + "stone_brick_slab" => Some(Item::StoneBrickSlab), + "carrot_on_a_stick" => Some(Item::CarrotOnAStick), + "crimson_fence_gate" => Some(Item::CrimsonFenceGate), + "infested_mossy_stone_bricks" => Some(Item::InfestedMossyStoneBricks), + "cobweb" => Some(Item::Cobweb), + "turtle_helmet" => Some(Item::TurtleHelmet), + "oak_slab" => Some(Item::OakSlab), + "polished_granite" => Some(Item::PolishedGranite), + "clay" => Some(Item::Clay), + "orange_wool" => Some(Item::OrangeWool), + "sand" => Some(Item::Sand), + "fire_coral_block" => Some(Item::FireCoralBlock), + "barrel" => Some(Item::Barrel), + "lead" => Some(Item::Lead), + "cut_copper_stairs" => Some(Item::CutCopperStairs), + "waxed_cut_copper" => Some(Item::WaxedCutCopper), + "warped_stem" => Some(Item::WarpedStem), + "light_blue_wool" => Some(Item::LightBlueWool), + "dark_oak_wood" => Some(Item::DarkOakWood), + "sugar_cane" => Some(Item::SugarCane), + "cyan_dye" => Some(Item::CyanDye), + "zombie_head" => Some(Item::ZombieHead), + "nether_wart" => Some(Item::NetherWart), + "feather" => Some(Item::Feather), + "iron_pickaxe" => Some(Item::IronPickaxe), + "totem_of_undying" => Some(Item::TotemOfUndying), + "name_tag" => Some(Item::NameTag), + "glowstone_dust" => Some(Item::GlowstoneDust), + "melon_seeds" => Some(Item::MelonSeeds), + "stripped_jungle_log" => Some(Item::StrippedJungleLog), + "brick_stairs" => Some(Item::BrickStairs), + "purple_wool" => Some(Item::PurpleWool), + "magenta_carpet" => Some(Item::MagentaCarpet), + "iron_door" => Some(Item::IronDoor), + "cyan_wool" => Some(Item::CyanWool), + "terracotta" => Some(Item::Terracotta), + "bread" => Some(Item::Bread), + "clay_ball" => Some(Item::ClayBall), + "music_disc_mall" => Some(Item::MusicDiscMall), + "budding_amethyst" => Some(Item::BuddingAmethyst), + "crimson_sign" => Some(Item::CrimsonSign), + "lime_dye" => Some(Item::LimeDye), + "purpur_stairs" => Some(Item::PurpurStairs), + "structure_block" => Some(Item::StructureBlock), + "player_head" => Some(Item::PlayerHead), + "oak_trapdoor" => Some(Item::OakTrapdoor), + "parrot_spawn_egg" => Some(Item::ParrotSpawnEgg), + "azalea_leaves" => Some(Item::AzaleaLeaves), + "yellow_bed" => Some(Item::YellowBed), + "iron_ingot" => Some(Item::IronIngot), + "redstone" => Some(Item::Redstone), + "beacon" => Some(Item::Beacon), + "chiseled_deepslate" => Some(Item::ChiseledDeepslate), + "gray_stained_glass" => Some(Item::GrayStainedGlass), + "iron_hoe" => Some(Item::IronHoe), + "piglin_spawn_egg" => Some(Item::PiglinSpawnEgg), + "elder_guardian_spawn_egg" => Some(Item::ElderGuardianSpawnEgg), + "dark_oak_fence_gate" => Some(Item::DarkOakFenceGate), _ => None, } } } -#[allow(warnings)] -#[allow(clippy::all)] impl Item { - /// Returns the `display_name` property of this `Item`. - pub fn display_name(&self) -> &'static str { + #[doc = "Returns the `namespaced_id` property of this `Item`."] + #[inline] + pub fn namespaced_id(&self) -> &'static str { match self { - Item::Air => "Air", - Item::Stone => "Stone", - Item::Granite => "Granite", - Item::PolishedGranite => "Polished Granite", - Item::Diorite => "Diorite", - Item::PolishedDiorite => "Polished Diorite", - Item::Andesite => "Andesite", - Item::PolishedAndesite => "Polished Andesite", - Item::GrassBlock => "Grass Block", - Item::Dirt => "Dirt", - Item::CoarseDirt => "Coarse Dirt", - Item::Podzol => "Podzol", - Item::CrimsonNylium => "Crimson Nylium", - Item::WarpedNylium => "Warped Nylium", - Item::Cobblestone => "Cobblestone", - Item::OakPlanks => "Oak Planks", - Item::SprucePlanks => "Spruce Planks", - Item::BirchPlanks => "Birch Planks", - Item::JunglePlanks => "Jungle Planks", - Item::AcaciaPlanks => "Acacia Planks", - Item::DarkOakPlanks => "Dark Oak Planks", - Item::CrimsonPlanks => "Crimson Planks", - Item::WarpedPlanks => "Warped Planks", - Item::OakSapling => "Oak Sapling", - Item::SpruceSapling => "Spruce Sapling", - Item::BirchSapling => "Birch Sapling", - Item::JungleSapling => "Jungle Sapling", - Item::AcaciaSapling => "Acacia Sapling", - Item::DarkOakSapling => "Dark Oak Sapling", - Item::Bedrock => "Bedrock", - Item::Sand => "Sand", - Item::RedSand => "Red Sand", - Item::Gravel => "Gravel", - Item::GoldOre => "Gold Ore", - Item::IronOre => "Iron Ore", - Item::CoalOre => "Coal Ore", - Item::NetherGoldOre => "Nether Gold Ore", - Item::OakLog => "Oak Log", - Item::SpruceLog => "Spruce Log", - Item::BirchLog => "Birch Log", - Item::JungleLog => "Jungle Log", - Item::AcaciaLog => "Acacia Log", - Item::DarkOakLog => "Dark Oak Log", - Item::CrimsonStem => "Crimson Stem", - Item::WarpedStem => "Warped Stem", - Item::StrippedOakLog => "Stripped Oak Log", - Item::StrippedSpruceLog => "Stripped Spruce Log", - Item::StrippedBirchLog => "Stripped Birch Log", - Item::StrippedJungleLog => "Stripped Jungle Log", - Item::StrippedAcaciaLog => "Stripped Acacia Log", - Item::StrippedDarkOakLog => "Stripped Dark Oak Log", - Item::StrippedCrimsonStem => "Stripped Crimson Stem", - Item::StrippedWarpedStem => "Stripped Warped Stem", - Item::StrippedOakWood => "Stripped Oak Wood", - Item::StrippedSpruceWood => "Stripped Spruce Wood", - Item::StrippedBirchWood => "Stripped Birch Wood", - Item::StrippedJungleWood => "Stripped Jungle Wood", - Item::StrippedAcaciaWood => "Stripped Acacia Wood", - Item::StrippedDarkOakWood => "Stripped Dark Oak Wood", - Item::StrippedCrimsonHyphae => "Stripped Crimson Hyphae", - Item::StrippedWarpedHyphae => "Stripped Warped Hyphae", - Item::OakWood => "Oak Wood", - Item::SpruceWood => "Spruce Wood", - Item::BirchWood => "Birch Wood", - Item::JungleWood => "Jungle Wood", - Item::AcaciaWood => "Acacia Wood", - Item::DarkOakWood => "Dark Oak Wood", - Item::CrimsonHyphae => "Crimson Hyphae", - Item::WarpedHyphae => "Warped Hyphae", - Item::OakLeaves => "Oak Leaves", - Item::SpruceLeaves => "Spruce Leaves", - Item::BirchLeaves => "Birch Leaves", - Item::JungleLeaves => "Jungle Leaves", - Item::AcaciaLeaves => "Acacia Leaves", - Item::DarkOakLeaves => "Dark Oak Leaves", - Item::Sponge => "Sponge", - Item::WetSponge => "Wet Sponge", - Item::Glass => "Glass", - Item::LapisOre => "Lapis Lazuli Ore", - Item::LapisBlock => "Lapis Lazuli Block", - Item::Dispenser => "Dispenser", - Item::Sandstone => "Sandstone", - Item::ChiseledSandstone => "Chiseled Sandstone", - Item::CutSandstone => "Cut Sandstone", - Item::NoteBlock => "Note Block", - Item::PoweredRail => "Powered Rail", - Item::DetectorRail => "Detector Rail", - Item::StickyPiston => "Sticky Piston", - Item::Cobweb => "Cobweb", - Item::Grass => "Grass", - Item::Fern => "Fern", - Item::DeadBush => "Dead Bush", - Item::Seagrass => "Seagrass", - Item::SeaPickle => "Sea Pickle", - Item::Piston => "Piston", - Item::WhiteWool => "White Wool", - Item::OrangeWool => "Orange Wool", - Item::MagentaWool => "Magenta Wool", - Item::LightBlueWool => "Light Blue Wool", - Item::YellowWool => "Yellow Wool", - Item::LimeWool => "Lime Wool", - Item::PinkWool => "Pink Wool", - Item::GrayWool => "Gray Wool", - Item::LightGrayWool => "Light Gray Wool", - Item::CyanWool => "Cyan Wool", - Item::PurpleWool => "Purple Wool", - Item::BlueWool => "Blue Wool", - Item::BrownWool => "Brown Wool", - Item::GreenWool => "Green Wool", - Item::RedWool => "Red Wool", - Item::BlackWool => "Black Wool", - Item::Dandelion => "Dandelion", - Item::Poppy => "Poppy", - Item::BlueOrchid => "Blue Orchid", - Item::Allium => "Allium", - Item::AzureBluet => "Azure Bluet", - Item::RedTulip => "Red Tulip", - Item::OrangeTulip => "Orange Tulip", - Item::WhiteTulip => "White Tulip", - Item::PinkTulip => "Pink Tulip", - Item::OxeyeDaisy => "Oxeye Daisy", - Item::Cornflower => "Cornflower", - Item::LilyOfTheValley => "Lily of the Valley", - Item::WitherRose => "Wither Rose", - Item::BrownMushroom => "Brown Mushroom", - Item::RedMushroom => "Red Mushroom", - Item::CrimsonFungus => "Crimson Fungus", - Item::WarpedFungus => "Warped Fungus", - Item::CrimsonRoots => "Crimson Roots", - Item::WarpedRoots => "Warped Roots", - Item::NetherSprouts => "Nether Sprouts", - Item::WeepingVines => "Weeping Vines", - Item::TwistingVines => "Twisting Vines", - Item::SugarCane => "Sugar Cane", - Item::Kelp => "Kelp", - Item::Bamboo => "Bamboo", - Item::GoldBlock => "Block of Gold", - Item::IronBlock => "Block of Iron", - Item::OakSlab => "Oak Slab", - Item::SpruceSlab => "Spruce Slab", - Item::BirchSlab => "Birch Slab", - Item::JungleSlab => "Jungle Slab", - Item::AcaciaSlab => "Acacia Slab", - Item::DarkOakSlab => "Dark Oak Slab", - Item::CrimsonSlab => "Crimson Slab", - Item::WarpedSlab => "Warped Slab", - Item::StoneSlab => "Stone Slab", - Item::SmoothStoneSlab => "Smooth Stone Slab", - Item::SandstoneSlab => "Sandstone Slab", - Item::CutSandstoneSlab => "Cut Sandstone Slab", - Item::PetrifiedOakSlab => "Petrified Oak Slab", - Item::CobblestoneSlab => "Cobblestone Slab", - Item::BrickSlab => "Brick Slab", - Item::StoneBrickSlab => "Stone Brick Slab", - Item::NetherBrickSlab => "Nether Brick Slab", - Item::QuartzSlab => "Quartz Slab", - Item::RedSandstoneSlab => "Red Sandstone Slab", - Item::CutRedSandstoneSlab => "Cut Red Sandstone Slab", - Item::PurpurSlab => "Purpur Slab", - Item::PrismarineSlab => "Prismarine Slab", - Item::PrismarineBrickSlab => "Prismarine Brick Slab", - Item::DarkPrismarineSlab => "Dark Prismarine Slab", - Item::SmoothQuartz => "Smooth Quartz Block", - Item::SmoothRedSandstone => "Smooth Red Sandstone", - Item::SmoothSandstone => "Smooth Sandstone", - Item::SmoothStone => "Smooth Stone", - Item::Bricks => "Bricks", - Item::Tnt => "TNT", - Item::Bookshelf => "Bookshelf", - Item::MossyCobblestone => "Mossy Cobblestone", - Item::Obsidian => "Obsidian", - Item::Torch => "Torch", - Item::EndRod => "End Rod", - Item::ChorusPlant => "Chorus Plant", - Item::ChorusFlower => "Chorus Flower", - Item::PurpurBlock => "Purpur Block", - Item::PurpurPillar => "Purpur Pillar", - Item::PurpurStairs => "Purpur Stairs", - Item::Spawner => "Spawner", - Item::OakStairs => "Oak Stairs", - Item::Chest => "Chest", - Item::DiamondOre => "Diamond Ore", - Item::DiamondBlock => "Block of Diamond", - Item::CraftingTable => "Crafting Table", - Item::Farmland => "Farmland", - Item::Furnace => "Furnace", - Item::Ladder => "Ladder", - Item::Rail => "Rail", - Item::CobblestoneStairs => "Cobblestone Stairs", - Item::Lever => "Lever", - Item::StonePressurePlate => "Stone Pressure Plate", - Item::OakPressurePlate => "Oak Pressure Plate", - Item::SprucePressurePlate => "Spruce Pressure Plate", - Item::BirchPressurePlate => "Birch Pressure Plate", - Item::JunglePressurePlate => "Jungle Pressure Plate", - Item::AcaciaPressurePlate => "Acacia Pressure Plate", - Item::DarkOakPressurePlate => "Dark Oak Pressure Plate", - Item::CrimsonPressurePlate => "Crimson Pressure Plate", - Item::WarpedPressurePlate => "Warped Pressure Plate", - Item::PolishedBlackstonePressurePlate => "Polished Blackstone Pressure Plate", - Item::RedstoneOre => "Redstone Ore", - Item::RedstoneTorch => "Redstone Torch", - Item::Snow => "Snow", - Item::Ice => "Ice", - Item::SnowBlock => "Snow Block", - Item::Cactus => "Cactus", - Item::Clay => "Clay", - Item::Jukebox => "Jukebox", - Item::OakFence => "Oak Fence", - Item::SpruceFence => "Spruce Fence", - Item::BirchFence => "Birch Fence", - Item::JungleFence => "Jungle Fence", - Item::AcaciaFence => "Acacia Fence", - Item::DarkOakFence => "Dark Oak Fence", - Item::CrimsonFence => "Crimson Fence", - Item::WarpedFence => "Warped Fence", - Item::Pumpkin => "Pumpkin", - Item::CarvedPumpkin => "Carved Pumpkin", - Item::Netherrack => "Netherrack", - Item::SoulSand => "Soul Sand", - Item::SoulSoil => "Soul Soil", - Item::Basalt => "Basalt", - Item::PolishedBasalt => "Polished Basalt", - Item::SoulTorch => "Soul Torch", - Item::Glowstone => "Glowstone", - Item::JackOLantern => "Jack o'Lantern", - Item::OakTrapdoor => "Oak Trapdoor", - Item::SpruceTrapdoor => "Spruce Trapdoor", - Item::BirchTrapdoor => "Birch Trapdoor", - Item::JungleTrapdoor => "Jungle Trapdoor", - Item::AcaciaTrapdoor => "Acacia Trapdoor", - Item::DarkOakTrapdoor => "Dark Oak Trapdoor", - Item::CrimsonTrapdoor => "Crimson Trapdoor", - Item::WarpedTrapdoor => "Warped Trapdoor", - Item::InfestedStone => "Infested Stone", - Item::InfestedCobblestone => "Infested Cobblestone", - Item::InfestedStoneBricks => "Infested Stone Bricks", - Item::InfestedMossyStoneBricks => "Infested Mossy Stone Bricks", - Item::InfestedCrackedStoneBricks => "Infested Cracked Stone Bricks", - Item::InfestedChiseledStoneBricks => "Infested Chiseled Stone Bricks", - Item::StoneBricks => "Stone Bricks", - Item::MossyStoneBricks => "Mossy Stone Bricks", - Item::CrackedStoneBricks => "Cracked Stone Bricks", - Item::ChiseledStoneBricks => "Chiseled Stone Bricks", - Item::BrownMushroomBlock => "Brown Mushroom Block", - Item::RedMushroomBlock => "Red Mushroom Block", - Item::MushroomStem => "Mushroom Stem", - Item::IronBars => "Iron Bars", - Item::Chain => "Chain", - Item::GlassPane => "Glass Pane", - Item::Melon => "Melon", - Item::Vine => "Vines", - Item::OakFenceGate => "Oak Fence Gate", - Item::SpruceFenceGate => "Spruce Fence Gate", - Item::BirchFenceGate => "Birch Fence Gate", - Item::JungleFenceGate => "Jungle Fence Gate", - Item::AcaciaFenceGate => "Acacia Fence Gate", - Item::DarkOakFenceGate => "Dark Oak Fence Gate", - Item::CrimsonFenceGate => "Crimson Fence Gate", - Item::WarpedFenceGate => "Warped Fence Gate", - Item::BrickStairs => "Brick Stairs", - Item::StoneBrickStairs => "Stone Brick Stairs", - Item::Mycelium => "Mycelium", - Item::LilyPad => "Lily Pad", - Item::NetherBricks => "Nether Bricks", - Item::CrackedNetherBricks => "Cracked Nether Bricks", - Item::ChiseledNetherBricks => "Chiseled Nether Bricks", - Item::NetherBrickFence => "Nether Brick Fence", - Item::NetherBrickStairs => "Nether Brick Stairs", - Item::EnchantingTable => "Enchanting Table", - Item::EndPortalFrame => "End Portal Frame", - Item::EndStone => "End Stone", - Item::EndStoneBricks => "End Stone Bricks", - Item::DragonEgg => "Dragon Egg", - Item::RedstoneLamp => "Redstone Lamp", - Item::SandstoneStairs => "Sandstone Stairs", - Item::EmeraldOre => "Emerald Ore", - Item::EnderChest => "Ender Chest", - Item::TripwireHook => "Tripwire Hook", - Item::EmeraldBlock => "Block of Emerald", - Item::SpruceStairs => "Spruce Stairs", - Item::BirchStairs => "Birch Stairs", - Item::JungleStairs => "Jungle Stairs", - Item::CrimsonStairs => "Crimson Stairs", - Item::WarpedStairs => "Warped Stairs", - Item::CommandBlock => "Command Block", - Item::Beacon => "Beacon", - Item::CobblestoneWall => "Cobblestone Wall", - Item::MossyCobblestoneWall => "Mossy Cobblestone Wall", - Item::BrickWall => "Brick Wall", - Item::PrismarineWall => "Prismarine Wall", - Item::RedSandstoneWall => "Red Sandstone Wall", - Item::MossyStoneBrickWall => "Mossy Stone Brick Wall", - Item::GraniteWall => "Granite Wall", - Item::StoneBrickWall => "Stone Brick Wall", - Item::NetherBrickWall => "Nether Brick Wall", - Item::AndesiteWall => "Andesite Wall", - Item::RedNetherBrickWall => "Red Nether Brick Wall", - Item::SandstoneWall => "Sandstone Wall", - Item::EndStoneBrickWall => "End Stone Brick Wall", - Item::DioriteWall => "Diorite Wall", - Item::BlackstoneWall => "Blackstone Wall", - Item::PolishedBlackstoneWall => "Polished Blackstone Wall", - Item::PolishedBlackstoneBrickWall => "Polished Blackstone Brick Wall", - Item::StoneButton => "Stone Button", - Item::OakButton => "Oak Button", - Item::SpruceButton => "Spruce Button", - Item::BirchButton => "Birch Button", - Item::JungleButton => "Jungle Button", - Item::AcaciaButton => "Acacia Button", - Item::DarkOakButton => "Dark Oak Button", - Item::CrimsonButton => "Crimson Button", - Item::WarpedButton => "Warped Button", - Item::PolishedBlackstoneButton => "Polished Blackstone Button", - Item::Anvil => "Anvil", - Item::ChippedAnvil => "Chipped Anvil", - Item::DamagedAnvil => "Damaged Anvil", - Item::TrappedChest => "Trapped Chest", - Item::LightWeightedPressurePlate => "Light Weighted Pressure Plate", - Item::HeavyWeightedPressurePlate => "Heavy Weighted Pressure Plate", - Item::DaylightDetector => "Daylight Detector", - Item::RedstoneBlock => "Block of Redstone", - Item::NetherQuartzOre => "Nether Quartz Ore", - Item::Hopper => "Hopper", - Item::ChiseledQuartzBlock => "Chiseled Quartz Block", - Item::QuartzBlock => "Block of Quartz", - Item::QuartzBricks => "Quartz Bricks", - Item::QuartzPillar => "Quartz Pillar", - Item::QuartzStairs => "Quartz Stairs", - Item::ActivatorRail => "Activator Rail", - Item::Dropper => "Dropper", - Item::WhiteTerracotta => "White Terracotta", - Item::OrangeTerracotta => "Orange Terracotta", - Item::MagentaTerracotta => "Magenta Terracotta", - Item::LightBlueTerracotta => "Light Blue Terracotta", - Item::YellowTerracotta => "Yellow Terracotta", - Item::LimeTerracotta => "Lime Terracotta", - Item::PinkTerracotta => "Pink Terracotta", - Item::GrayTerracotta => "Gray Terracotta", - Item::LightGrayTerracotta => "Light Gray Terracotta", - Item::CyanTerracotta => "Cyan Terracotta", - Item::PurpleTerracotta => "Purple Terracotta", - Item::BlueTerracotta => "Blue Terracotta", - Item::BrownTerracotta => "Brown Terracotta", - Item::GreenTerracotta => "Green Terracotta", - Item::RedTerracotta => "Red Terracotta", - Item::BlackTerracotta => "Black Terracotta", - Item::Barrier => "Barrier", - Item::IronTrapdoor => "Iron Trapdoor", - Item::HayBlock => "Hay Bale", - Item::WhiteCarpet => "White Carpet", - Item::OrangeCarpet => "Orange Carpet", - Item::MagentaCarpet => "Magenta Carpet", - Item::LightBlueCarpet => "Light Blue Carpet", - Item::YellowCarpet => "Yellow Carpet", - Item::LimeCarpet => "Lime Carpet", - Item::PinkCarpet => "Pink Carpet", - Item::GrayCarpet => "Gray Carpet", - Item::LightGrayCarpet => "Light Gray Carpet", - Item::CyanCarpet => "Cyan Carpet", - Item::PurpleCarpet => "Purple Carpet", - Item::BlueCarpet => "Blue Carpet", - Item::BrownCarpet => "Brown Carpet", - Item::GreenCarpet => "Green Carpet", - Item::RedCarpet => "Red Carpet", - Item::BlackCarpet => "Black Carpet", - Item::Terracotta => "Terracotta", - Item::CoalBlock => "Block of Coal", - Item::PackedIce => "Packed Ice", - Item::AcaciaStairs => "Acacia Stairs", - Item::DarkOakStairs => "Dark Oak Stairs", - Item::SlimeBlock => "Slime Block", - Item::GrassPath => "Grass Path", - Item::Sunflower => "Sunflower", - Item::Lilac => "Lilac", - Item::RoseBush => "Rose Bush", - Item::Peony => "Peony", - Item::TallGrass => "Tall Grass", - Item::LargeFern => "Large Fern", - Item::WhiteStainedGlass => "White Stained Glass", - Item::OrangeStainedGlass => "Orange Stained Glass", - Item::MagentaStainedGlass => "Magenta Stained Glass", - Item::LightBlueStainedGlass => "Light Blue Stained Glass", - Item::YellowStainedGlass => "Yellow Stained Glass", - Item::LimeStainedGlass => "Lime Stained Glass", - Item::PinkStainedGlass => "Pink Stained Glass", - Item::GrayStainedGlass => "Gray Stained Glass", - Item::LightGrayStainedGlass => "Light Gray Stained Glass", - Item::CyanStainedGlass => "Cyan Stained Glass", - Item::PurpleStainedGlass => "Purple Stained Glass", - Item::BlueStainedGlass => "Blue Stained Glass", - Item::BrownStainedGlass => "Brown Stained Glass", - Item::GreenStainedGlass => "Green Stained Glass", - Item::RedStainedGlass => "Red Stained Glass", - Item::BlackStainedGlass => "Black Stained Glass", - Item::WhiteStainedGlassPane => "White Stained Glass Pane", - Item::OrangeStainedGlassPane => "Orange Stained Glass Pane", - Item::MagentaStainedGlassPane => "Magenta Stained Glass Pane", - Item::LightBlueStainedGlassPane => "Light Blue Stained Glass Pane", - Item::YellowStainedGlassPane => "Yellow Stained Glass Pane", - Item::LimeStainedGlassPane => "Lime Stained Glass Pane", - Item::PinkStainedGlassPane => "Pink Stained Glass Pane", - Item::GrayStainedGlassPane => "Gray Stained Glass Pane", - Item::LightGrayStainedGlassPane => "Light Gray Stained Glass Pane", - Item::CyanStainedGlassPane => "Cyan Stained Glass Pane", - Item::PurpleStainedGlassPane => "Purple Stained Glass Pane", - Item::BlueStainedGlassPane => "Blue Stained Glass Pane", - Item::BrownStainedGlassPane => "Brown Stained Glass Pane", - Item::GreenStainedGlassPane => "Green Stained Glass Pane", - Item::RedStainedGlassPane => "Red Stained Glass Pane", - Item::BlackStainedGlassPane => "Black Stained Glass Pane", - Item::Prismarine => "Prismarine", - Item::PrismarineBricks => "Prismarine Bricks", - Item::DarkPrismarine => "Dark Prismarine", - Item::PrismarineStairs => "Prismarine Stairs", - Item::PrismarineBrickStairs => "Prismarine Brick Stairs", - Item::DarkPrismarineStairs => "Dark Prismarine Stairs", - Item::SeaLantern => "Sea Lantern", - Item::RedSandstone => "Red Sandstone", - Item::ChiseledRedSandstone => "Chiseled Red Sandstone", - Item::CutRedSandstone => "Cut Red Sandstone", - Item::RedSandstoneStairs => "Red Sandstone Stairs", - Item::RepeatingCommandBlock => "Repeating Command Block", - Item::ChainCommandBlock => "Chain Command Block", - Item::MagmaBlock => "Magma Block", - Item::NetherWartBlock => "Nether Wart Block", - Item::WarpedWartBlock => "Warped Wart Block", - Item::RedNetherBricks => "Red Nether Bricks", - Item::BoneBlock => "Bone Block", - Item::StructureVoid => "Structure Void", - Item::Observer => "Observer", - Item::ShulkerBox => "Shulker Box", - Item::WhiteShulkerBox => "White Shulker Box", - Item::OrangeShulkerBox => "Orange Shulker Box", - Item::MagentaShulkerBox => "Magenta Shulker Box", - Item::LightBlueShulkerBox => "Light Blue Shulker Box", - Item::YellowShulkerBox => "Yellow Shulker Box", - Item::LimeShulkerBox => "Lime Shulker Box", - Item::PinkShulkerBox => "Pink Shulker Box", - Item::GrayShulkerBox => "Gray Shulker Box", - Item::LightGrayShulkerBox => "Light Gray Shulker Box", - Item::CyanShulkerBox => "Cyan Shulker Box", - Item::PurpleShulkerBox => "Purple Shulker Box", - Item::BlueShulkerBox => "Blue Shulker Box", - Item::BrownShulkerBox => "Brown Shulker Box", - Item::GreenShulkerBox => "Green Shulker Box", - Item::RedShulkerBox => "Red Shulker Box", - Item::BlackShulkerBox => "Black Shulker Box", - Item::WhiteGlazedTerracotta => "White Glazed Terracotta", - Item::OrangeGlazedTerracotta => "Orange Glazed Terracotta", - Item::MagentaGlazedTerracotta => "Magenta Glazed Terracotta", - Item::LightBlueGlazedTerracotta => "Light Blue Glazed Terracotta", - Item::YellowGlazedTerracotta => "Yellow Glazed Terracotta", - Item::LimeGlazedTerracotta => "Lime Glazed Terracotta", - Item::PinkGlazedTerracotta => "Pink Glazed Terracotta", - Item::GrayGlazedTerracotta => "Gray Glazed Terracotta", - Item::LightGrayGlazedTerracotta => "Light Gray Glazed Terracotta", - Item::CyanGlazedTerracotta => "Cyan Glazed Terracotta", - Item::PurpleGlazedTerracotta => "Purple Glazed Terracotta", - Item::BlueGlazedTerracotta => "Blue Glazed Terracotta", - Item::BrownGlazedTerracotta => "Brown Glazed Terracotta", - Item::GreenGlazedTerracotta => "Green Glazed Terracotta", - Item::RedGlazedTerracotta => "Red Glazed Terracotta", - Item::BlackGlazedTerracotta => "Black Glazed Terracotta", - Item::WhiteConcrete => "White Concrete", - Item::OrangeConcrete => "Orange Concrete", - Item::MagentaConcrete => "Magenta Concrete", - Item::LightBlueConcrete => "Light Blue Concrete", - Item::YellowConcrete => "Yellow Concrete", - Item::LimeConcrete => "Lime Concrete", - Item::PinkConcrete => "Pink Concrete", - Item::GrayConcrete => "Gray Concrete", - Item::LightGrayConcrete => "Light Gray Concrete", - Item::CyanConcrete => "Cyan Concrete", - Item::PurpleConcrete => "Purple Concrete", - Item::BlueConcrete => "Blue Concrete", - Item::BrownConcrete => "Brown Concrete", - Item::GreenConcrete => "Green Concrete", - Item::RedConcrete => "Red Concrete", - Item::BlackConcrete => "Black Concrete", - Item::WhiteConcretePowder => "White Concrete Powder", - Item::OrangeConcretePowder => "Orange Concrete Powder", - Item::MagentaConcretePowder => "Magenta Concrete Powder", - Item::LightBlueConcretePowder => "Light Blue Concrete Powder", - Item::YellowConcretePowder => "Yellow Concrete Powder", - Item::LimeConcretePowder => "Lime Concrete Powder", - Item::PinkConcretePowder => "Pink Concrete Powder", - Item::GrayConcretePowder => "Gray Concrete Powder", - Item::LightGrayConcretePowder => "Light Gray Concrete Powder", - Item::CyanConcretePowder => "Cyan Concrete Powder", - Item::PurpleConcretePowder => "Purple Concrete Powder", - Item::BlueConcretePowder => "Blue Concrete Powder", - Item::BrownConcretePowder => "Brown Concrete Powder", - Item::GreenConcretePowder => "Green Concrete Powder", - Item::RedConcretePowder => "Red Concrete Powder", - Item::BlackConcretePowder => "Black Concrete Powder", - Item::TurtleEgg => "Turtle Egg", - Item::DeadTubeCoralBlock => "Dead Tube Coral Block", - Item::DeadBrainCoralBlock => "Dead Brain Coral Block", - Item::DeadBubbleCoralBlock => "Dead Bubble Coral Block", - Item::DeadFireCoralBlock => "Dead Fire Coral Block", - Item::DeadHornCoralBlock => "Dead Horn Coral Block", - Item::TubeCoralBlock => "Tube Coral Block", - Item::BrainCoralBlock => "Brain Coral Block", - Item::BubbleCoralBlock => "Bubble Coral Block", - Item::FireCoralBlock => "Fire Coral Block", - Item::HornCoralBlock => "Horn Coral Block", - Item::TubeCoral => "Tube Coral", - Item::BrainCoral => "Brain Coral", - Item::BubbleCoral => "Bubble Coral", - Item::FireCoral => "Fire Coral", - Item::HornCoral => "Horn Coral", - Item::DeadBrainCoral => "Dead Brain Coral", - Item::DeadBubbleCoral => "Dead Bubble Coral", - Item::DeadFireCoral => "Dead Fire Coral", - Item::DeadHornCoral => "Dead Horn Coral", - Item::DeadTubeCoral => "Dead Tube Coral", - Item::TubeCoralFan => "Tube Coral Fan", - Item::BrainCoralFan => "Brain Coral Fan", - Item::BubbleCoralFan => "Bubble Coral Fan", - Item::FireCoralFan => "Fire Coral Fan", - Item::HornCoralFan => "Horn Coral Fan", - Item::DeadTubeCoralFan => "Dead Tube Coral Fan", - Item::DeadBrainCoralFan => "Dead Brain Coral Fan", - Item::DeadBubbleCoralFan => "Dead Bubble Coral Fan", - Item::DeadFireCoralFan => "Dead Fire Coral Fan", - Item::DeadHornCoralFan => "Dead Horn Coral Fan", - Item::BlueIce => "Blue Ice", - Item::Conduit => "Conduit", - Item::PolishedGraniteStairs => "Polished Granite Stairs", - Item::SmoothRedSandstoneStairs => "Smooth Red Sandstone Stairs", - Item::MossyStoneBrickStairs => "Mossy Stone Brick Stairs", - Item::PolishedDioriteStairs => "Polished Diorite Stairs", - Item::MossyCobblestoneStairs => "Mossy Cobblestone Stairs", - Item::EndStoneBrickStairs => "End Stone Brick Stairs", - Item::StoneStairs => "Stone Stairs", - Item::SmoothSandstoneStairs => "Smooth Sandstone Stairs", - Item::SmoothQuartzStairs => "Smooth Quartz Stairs", - Item::GraniteStairs => "Granite Stairs", - Item::AndesiteStairs => "Andesite Stairs", - Item::RedNetherBrickStairs => "Red Nether Brick Stairs", - Item::PolishedAndesiteStairs => "Polished Andesite Stairs", - Item::DioriteStairs => "Diorite Stairs", - Item::PolishedGraniteSlab => "Polished Granite Slab", - Item::SmoothRedSandstoneSlab => "Smooth Red Sandstone Slab", - Item::MossyStoneBrickSlab => "Mossy Stone Brick Slab", - Item::PolishedDioriteSlab => "Polished Diorite Slab", - Item::MossyCobblestoneSlab => "Mossy Cobblestone Slab", - Item::EndStoneBrickSlab => "End Stone Brick Slab", - Item::SmoothSandstoneSlab => "Smooth Sandstone Slab", - Item::SmoothQuartzSlab => "Smooth Quartz Slab", - Item::GraniteSlab => "Granite Slab", - Item::AndesiteSlab => "Andesite Slab", - Item::RedNetherBrickSlab => "Red Nether Brick Slab", - Item::PolishedAndesiteSlab => "Polished Andesite Slab", - Item::DioriteSlab => "Diorite Slab", - Item::Scaffolding => "Scaffolding", - Item::IronDoor => "Iron Door", - Item::OakDoor => "Oak Door", - Item::SpruceDoor => "Spruce Door", - Item::BirchDoor => "Birch Door", - Item::JungleDoor => "Jungle Door", - Item::AcaciaDoor => "Acacia Door", - Item::DarkOakDoor => "Dark Oak Door", - Item::CrimsonDoor => "Crimson Door", - Item::WarpedDoor => "Warped Door", - Item::Repeater => "Redstone Repeater", - Item::Comparator => "Redstone Comparator", - Item::StructureBlock => "Structure Block", - Item::Jigsaw => "Jigsaw Block", - Item::TurtleHelmet => "Turtle Shell", - Item::Scute => "Scute", - Item::FlintAndSteel => "Flint and Steel", - Item::Apple => "Apple", - Item::Bow => "Bow", - Item::Arrow => "Arrow", - Item::Coal => "Coal", - Item::Charcoal => "Charcoal", - Item::Diamond => "Diamond", - Item::IronIngot => "Iron Ingot", - Item::GoldIngot => "Gold Ingot", - Item::NetheriteIngot => "Netherite Ingot", - Item::NetheriteScrap => "Netherite Scrap", - Item::WoodenSword => "Wooden Sword", - Item::WoodenShovel => "Wooden Shovel", - Item::WoodenPickaxe => "Wooden Pickaxe", - Item::WoodenAxe => "Wooden Axe", - Item::WoodenHoe => "Wooden Hoe", - Item::StoneSword => "Stone Sword", - Item::StoneShovel => "Stone Shovel", - Item::StonePickaxe => "Stone Pickaxe", - Item::StoneAxe => "Stone Axe", - Item::StoneHoe => "Stone Hoe", - Item::GoldenSword => "Golden Sword", - Item::GoldenShovel => "Golden Shovel", - Item::GoldenPickaxe => "Golden Pickaxe", - Item::GoldenAxe => "Golden Axe", - Item::GoldenHoe => "Golden Hoe", - Item::IronSword => "Iron Sword", - Item::IronShovel => "Iron Shovel", - Item::IronPickaxe => "Iron Pickaxe", - Item::IronAxe => "Iron Axe", - Item::IronHoe => "Iron Hoe", - Item::DiamondSword => "Diamond Sword", - Item::DiamondShovel => "Diamond Shovel", - Item::DiamondPickaxe => "Diamond Pickaxe", - Item::DiamondAxe => "Diamond Axe", - Item::DiamondHoe => "Diamond Hoe", - Item::NetheriteSword => "Netherite Sword", - Item::NetheriteShovel => "Netherite Shovel", - Item::NetheritePickaxe => "Netherite Pickaxe", - Item::NetheriteAxe => "Netherite Axe", - Item::NetheriteHoe => "Netherite Hoe", - Item::Stick => "Stick", - Item::Bowl => "Bowl", - Item::MushroomStew => "Mushroom Stew", - Item::String => "String", - Item::Feather => "Feather", - Item::Gunpowder => "Gunpowder", - Item::WheatSeeds => "Wheat Seeds", - Item::Wheat => "Wheat", - Item::Bread => "Bread", - Item::LeatherHelmet => "Leather Cap", - Item::LeatherChestplate => "Leather Tunic", - Item::LeatherLeggings => "Leather Pants", - Item::LeatherBoots => "Leather Boots", - Item::ChainmailHelmet => "Chainmail Helmet", - Item::ChainmailChestplate => "Chainmail Chestplate", - Item::ChainmailLeggings => "Chainmail Leggings", - Item::ChainmailBoots => "Chainmail Boots", - Item::IronHelmet => "Iron Helmet", - Item::IronChestplate => "Iron Chestplate", - Item::IronLeggings => "Iron Leggings", - Item::IronBoots => "Iron Boots", - Item::DiamondHelmet => "Diamond Helmet", - Item::DiamondChestplate => "Diamond Chestplate", - Item::DiamondLeggings => "Diamond Leggings", - Item::DiamondBoots => "Diamond Boots", - Item::GoldenHelmet => "Golden Helmet", - Item::GoldenChestplate => "Golden Chestplate", - Item::GoldenLeggings => "Golden Leggings", - Item::GoldenBoots => "Golden Boots", - Item::NetheriteHelmet => "Netherite Helmet", - Item::NetheriteChestplate => "Netherite Chestplate", - Item::NetheriteLeggings => "Netherite Leggings", - Item::NetheriteBoots => "Netherite Boots", - Item::Flint => "Flint", - Item::Porkchop => "Raw Porkchop", - Item::CookedPorkchop => "Cooked Porkchop", - Item::Painting => "Painting", - Item::GoldenApple => "Golden Apple", - Item::EnchantedGoldenApple => "Enchanted Golden Apple", - Item::OakSign => "Oak Sign", - Item::SpruceSign => "Spruce Sign", - Item::BirchSign => "Birch Sign", - Item::JungleSign => "Jungle Sign", - Item::AcaciaSign => "Acacia Sign", - Item::DarkOakSign => "Dark Oak Sign", - Item::CrimsonSign => "Crimson Sign", - Item::WarpedSign => "Warped Sign", - Item::Bucket => "Bucket", - Item::WaterBucket => "Water Bucket", - Item::LavaBucket => "Lava Bucket", - Item::Minecart => "Minecart", - Item::Saddle => "Saddle", - Item::Redstone => "Redstone Dust", - Item::Snowball => "Snowball", - Item::OakBoat => "Oak Boat", - Item::Leather => "Leather", - Item::MilkBucket => "Milk Bucket", - Item::PufferfishBucket => "Bucket of Pufferfish", - Item::SalmonBucket => "Bucket of Salmon", - Item::CodBucket => "Bucket of Cod", - Item::TropicalFishBucket => "Bucket of Tropical Fish", - Item::Brick => "Brick", - Item::ClayBall => "Clay Ball", - Item::DriedKelpBlock => "Dried Kelp Block", - Item::Paper => "Paper", - Item::Book => "Book", - Item::SlimeBall => "Slimeball", - Item::ChestMinecart => "Minecart with Chest", - Item::FurnaceMinecart => "Minecart with Furnace", - Item::Egg => "Egg", - Item::Compass => "Compass", - Item::FishingRod => "Fishing Rod", - Item::Clock => "Clock", - Item::GlowstoneDust => "Glowstone Dust", - Item::Cod => "Raw Cod", - Item::Salmon => "Raw Salmon", - Item::TropicalFish => "Tropical Fish", - Item::Pufferfish => "Pufferfish", - Item::CookedCod => "Cooked Cod", - Item::CookedSalmon => "Cooked Salmon", - Item::InkSac => "Ink Sac", - Item::CocoaBeans => "Cocoa Beans", - Item::LapisLazuli => "Lapis Lazuli", - Item::WhiteDye => "White Dye", - Item::OrangeDye => "Orange Dye", - Item::MagentaDye => "Magenta Dye", - Item::LightBlueDye => "Light Blue Dye", - Item::YellowDye => "Yellow Dye", - Item::LimeDye => "Lime Dye", - Item::PinkDye => "Pink Dye", - Item::GrayDye => "Gray Dye", - Item::LightGrayDye => "Light Gray Dye", - Item::CyanDye => "Cyan Dye", - Item::PurpleDye => "Purple Dye", - Item::BlueDye => "Blue Dye", - Item::BrownDye => "Brown Dye", - Item::GreenDye => "Green Dye", - Item::RedDye => "Red Dye", - Item::BlackDye => "Black Dye", - Item::BoneMeal => "Bone Meal", - Item::Bone => "Bone", - Item::Sugar => "Sugar", - Item::Cake => "Cake", - Item::WhiteBed => "White Bed", - Item::OrangeBed => "Orange Bed", - Item::MagentaBed => "Magenta Bed", - Item::LightBlueBed => "Light Blue Bed", - Item::YellowBed => "Yellow Bed", - Item::LimeBed => "Lime Bed", - Item::PinkBed => "Pink Bed", - Item::GrayBed => "Gray Bed", - Item::LightGrayBed => "Light Gray Bed", - Item::CyanBed => "Cyan Bed", - Item::PurpleBed => "Purple Bed", - Item::BlueBed => "Blue Bed", - Item::BrownBed => "Brown Bed", - Item::GreenBed => "Green Bed", - Item::RedBed => "Red Bed", - Item::BlackBed => "Black Bed", - Item::Cookie => "Cookie", - Item::FilledMap => "Map", - Item::Shears => "Shears", - Item::MelonSlice => "Melon Slice", - Item::DriedKelp => "Dried Kelp", - Item::PumpkinSeeds => "Pumpkin Seeds", - Item::MelonSeeds => "Melon Seeds", - Item::Beef => "Raw Beef", - Item::CookedBeef => "Steak", - Item::Chicken => "Raw Chicken", - Item::CookedChicken => "Cooked Chicken", - Item::RottenFlesh => "Rotten Flesh", - Item::EnderPearl => "Ender Pearl", - Item::BlazeRod => "Blaze Rod", - Item::GhastTear => "Ghast Tear", - Item::GoldNugget => "Gold Nugget", - Item::NetherWart => "Nether Wart", - Item::Potion => "Potion", - Item::GlassBottle => "Glass Bottle", - Item::SpiderEye => "Spider Eye", - Item::FermentedSpiderEye => "Fermented Spider Eye", - Item::BlazePowder => "Blaze Powder", - Item::MagmaCream => "Magma Cream", - Item::BrewingStand => "Brewing Stand", - Item::Cauldron => "Cauldron", - Item::EnderEye => "Eye of Ender", - Item::GlisteringMelonSlice => "Glistering Melon Slice", - Item::BatSpawnEgg => "Bat Spawn Egg", - Item::BeeSpawnEgg => "Bee Spawn Egg", - Item::BlazeSpawnEgg => "Blaze Spawn Egg", - Item::CatSpawnEgg => "Cat Spawn Egg", - Item::CaveSpiderSpawnEgg => "Cave Spider Spawn Egg", - Item::ChickenSpawnEgg => "Chicken Spawn Egg", - Item::CodSpawnEgg => "Cod Spawn Egg", - Item::CowSpawnEgg => "Cow Spawn Egg", - Item::CreeperSpawnEgg => "Creeper Spawn Egg", - Item::DolphinSpawnEgg => "Dolphin Spawn Egg", - Item::DonkeySpawnEgg => "Donkey Spawn Egg", - Item::DrownedSpawnEgg => "Drowned Spawn Egg", - Item::ElderGuardianSpawnEgg => "Elder Guardian Spawn Egg", - Item::EndermanSpawnEgg => "Enderman Spawn Egg", - Item::EndermiteSpawnEgg => "Endermite Spawn Egg", - Item::EvokerSpawnEgg => "Evoker Spawn Egg", - Item::FoxSpawnEgg => "Fox Spawn Egg", - Item::GhastSpawnEgg => "Ghast Spawn Egg", - Item::GuardianSpawnEgg => "Guardian Spawn Egg", - Item::HoglinSpawnEgg => "Hoglin Spawn Egg", - Item::HorseSpawnEgg => "Horse Spawn Egg", - Item::HuskSpawnEgg => "Husk Spawn Egg", - Item::LlamaSpawnEgg => "Llama Spawn Egg", - Item::MagmaCubeSpawnEgg => "Magma Cube Spawn Egg", - Item::MooshroomSpawnEgg => "Mooshroom Spawn Egg", - Item::MuleSpawnEgg => "Mule Spawn Egg", - Item::OcelotSpawnEgg => "Ocelot Spawn Egg", - Item::PandaSpawnEgg => "Panda Spawn Egg", - Item::ParrotSpawnEgg => "Parrot Spawn Egg", - Item::PhantomSpawnEgg => "Phantom Spawn Egg", - Item::PigSpawnEgg => "Pig Spawn Egg", - Item::PiglinSpawnEgg => "Piglin Spawn Egg", - Item::PiglinBruteSpawnEgg => "Piglin Brute Spawn Egg", - Item::PillagerSpawnEgg => "Pillager Spawn Egg", - Item::PolarBearSpawnEgg => "Polar Bear Spawn Egg", - Item::PufferfishSpawnEgg => "Pufferfish Spawn Egg", - Item::RabbitSpawnEgg => "Rabbit Spawn Egg", - Item::RavagerSpawnEgg => "Ravager Spawn Egg", - Item::SalmonSpawnEgg => "Salmon Spawn Egg", - Item::SheepSpawnEgg => "Sheep Spawn Egg", - Item::ShulkerSpawnEgg => "Shulker Spawn Egg", - Item::SilverfishSpawnEgg => "Silverfish Spawn Egg", - Item::SkeletonSpawnEgg => "Skeleton Spawn Egg", - Item::SkeletonHorseSpawnEgg => "Skeleton Horse Spawn Egg", - Item::SlimeSpawnEgg => "Slime Spawn Egg", - Item::SpiderSpawnEgg => "Spider Spawn Egg", - Item::SquidSpawnEgg => "Squid Spawn Egg", - Item::StraySpawnEgg => "Stray Spawn Egg", - Item::StriderSpawnEgg => "Strider Spawn Egg", - Item::TraderLlamaSpawnEgg => "Trader Llama Spawn Egg", - Item::TropicalFishSpawnEgg => "Tropical Fish Spawn Egg", - Item::TurtleSpawnEgg => "Turtle Spawn Egg", - Item::VexSpawnEgg => "Vex Spawn Egg", - Item::VillagerSpawnEgg => "Villager Spawn Egg", - Item::VindicatorSpawnEgg => "Vindicator Spawn Egg", - Item::WanderingTraderSpawnEgg => "Wandering Trader Spawn Egg", - Item::WitchSpawnEgg => "Witch Spawn Egg", - Item::WitherSkeletonSpawnEgg => "Wither Skeleton Spawn Egg", - Item::WolfSpawnEgg => "Wolf Spawn Egg", - Item::ZoglinSpawnEgg => "Zoglin Spawn Egg", - Item::ZombieSpawnEgg => "Zombie Spawn Egg", - Item::ZombieHorseSpawnEgg => "Zombie Horse Spawn Egg", - Item::ZombieVillagerSpawnEgg => "Zombie Villager Spawn Egg", - Item::ZombifiedPiglinSpawnEgg => "Zombified Piglin Spawn Egg", - Item::ExperienceBottle => "Bottle o' Enchanting", - Item::FireCharge => "Fire Charge", - Item::WritableBook => "Book and Quill", - Item::WrittenBook => "Written Book", - Item::Emerald => "Emerald", - Item::ItemFrame => "Item Frame", - Item::FlowerPot => "Flower Pot", - Item::Carrot => "Carrot", - Item::Potato => "Potato", - Item::BakedPotato => "Baked Potato", - Item::PoisonousPotato => "Poisonous Potato", - Item::Map => "Empty Map", - Item::GoldenCarrot => "Golden Carrot", - Item::SkeletonSkull => "Skeleton Skull", - Item::WitherSkeletonSkull => "Wither Skeleton Skull", - Item::PlayerHead => "Player Head", - Item::ZombieHead => "Zombie Head", - Item::CreeperHead => "Creeper Head", - Item::DragonHead => "Dragon Head", - Item::CarrotOnAStick => "Carrot on a Stick", - Item::WarpedFungusOnAStick => "Warped Fungus on a Stick", - Item::NetherStar => "Nether Star", - Item::PumpkinPie => "Pumpkin Pie", - Item::FireworkRocket => "Firework Rocket", - Item::FireworkStar => "Firework Star", - Item::EnchantedBook => "Enchanted Book", - Item::NetherBrick => "Nether Brick", - Item::Quartz => "Nether Quartz", - Item::TntMinecart => "Minecart with TNT", - Item::HopperMinecart => "Minecart with Hopper", - Item::PrismarineShard => "Prismarine Shard", - Item::PrismarineCrystals => "Prismarine Crystals", - Item::Rabbit => "Raw Rabbit", - Item::CookedRabbit => "Cooked Rabbit", - Item::RabbitStew => "Rabbit Stew", - Item::RabbitFoot => "Rabbit's Foot", - Item::RabbitHide => "Rabbit Hide", - Item::ArmorStand => "Armor Stand", - Item::IronHorseArmor => "Iron Horse Armor", - Item::GoldenHorseArmor => "Golden Horse Armor", - Item::DiamondHorseArmor => "Diamond Horse Armor", - Item::LeatherHorseArmor => "Leather Horse Armor", - Item::Lead => "Lead", - Item::NameTag => "Name Tag", - Item::CommandBlockMinecart => "Minecart with Command Block", - Item::Mutton => "Raw Mutton", - Item::CookedMutton => "Cooked Mutton", - Item::WhiteBanner => "White Banner", - Item::OrangeBanner => "Orange Banner", - Item::MagentaBanner => "Magenta Banner", - Item::LightBlueBanner => "Light Blue Banner", - Item::YellowBanner => "Yellow Banner", - Item::LimeBanner => "Lime Banner", - Item::PinkBanner => "Pink Banner", - Item::GrayBanner => "Gray Banner", - Item::LightGrayBanner => "Light Gray Banner", - Item::CyanBanner => "Cyan Banner", - Item::PurpleBanner => "Purple Banner", - Item::BlueBanner => "Blue Banner", - Item::BrownBanner => "Brown Banner", - Item::GreenBanner => "Green Banner", - Item::RedBanner => "Red Banner", - Item::BlackBanner => "Black Banner", - Item::EndCrystal => "End Crystal", - Item::ChorusFruit => "Chorus Fruit", - Item::PoppedChorusFruit => "Popped Chorus Fruit", - Item::Beetroot => "Beetroot", - Item::BeetrootSeeds => "Beetroot Seeds", - Item::BeetrootSoup => "Beetroot Soup", - Item::DragonBreath => "Dragon's Breath", - Item::SplashPotion => "Splash Potion", - Item::SpectralArrow => "Spectral Arrow", - Item::TippedArrow => "Tipped Arrow", - Item::LingeringPotion => "Lingering Potion", - Item::Shield => "Shield", - Item::Elytra => "Elytra", - Item::SpruceBoat => "Spruce Boat", - Item::BirchBoat => "Birch Boat", - Item::JungleBoat => "Jungle Boat", - Item::AcaciaBoat => "Acacia Boat", - Item::DarkOakBoat => "Dark Oak Boat", - Item::TotemOfUndying => "Totem of Undying", - Item::ShulkerShell => "Shulker Shell", - Item::IronNugget => "Iron Nugget", - Item::KnowledgeBook => "Knowledge Book", - Item::DebugStick => "Debug Stick", - Item::MusicDisc13 => "13 Disc", - Item::MusicDiscCat => "Cat Disc", - Item::MusicDiscBlocks => "Blocks Disc", - Item::MusicDiscChirp => "Chirp Disc", - Item::MusicDiscFar => "Far Disc", - Item::MusicDiscMall => "Mall Disc", - Item::MusicDiscMellohi => "Mellohi Disc", - Item::MusicDiscStal => "Stal Disc", - Item::MusicDiscStrad => "Strad Disc", - Item::MusicDiscWard => "Ward Disc", - Item::MusicDisc11 => "11 Disc", - Item::MusicDiscWait => "Wait Disc", - Item::MusicDiscPigstep => "Music Disc", - Item::Trident => "Trident", - Item::PhantomMembrane => "Phantom Membrane", - Item::NautilusShell => "Nautilus Shell", - Item::HeartOfTheSea => "Heart of the Sea", - Item::Crossbow => "Crossbow", - Item::SuspiciousStew => "Suspicious Stew", - Item::Loom => "Loom", - Item::FlowerBannerPattern => "Banner Pattern", - Item::CreeperBannerPattern => "Banner Pattern", - Item::SkullBannerPattern => "Banner Pattern", - Item::MojangBannerPattern => "Banner Pattern", - Item::GlobeBannerPattern => "Banner Pattern", - Item::PiglinBannerPattern => "Banner Pattern", - Item::Composter => "Composter", - Item::Barrel => "Barrel", - Item::Smoker => "Smoker", - Item::BlastFurnace => "Blast Furnace", - Item::CartographyTable => "Cartography Table", - Item::FletchingTable => "Fletching Table", - Item::Grindstone => "Grindstone", - Item::Lectern => "Lectern", - Item::SmithingTable => "Smithing Table", - Item::Stonecutter => "Stonecutter", - Item::Bell => "Bell", - Item::Lantern => "Lantern", - Item::SoulLantern => "Soul Lantern", - Item::SweetBerries => "Sweet Berries", - Item::Campfire => "Campfire", - Item::SoulCampfire => "Soul Campfire", - Item::Shroomlight => "Shroomlight", - Item::Honeycomb => "Honeycomb", - Item::BeeNest => "Bee Nest", - Item::Beehive => "Beehive", - Item::HoneyBottle => "Honey Bottle", - Item::HoneyBlock => "Honey Block", - Item::HoneycombBlock => "Honeycomb Block", - Item::Lodestone => "Lodestone", - Item::NetheriteBlock => "Block of Netherite", - Item::AncientDebris => "Ancient Debris", - Item::Target => "Target", - Item::CryingObsidian => "Crying Obsidian", - Item::Blackstone => "Blackstone", - Item::BlackstoneSlab => "Blackstone Slab", - Item::BlackstoneStairs => "Blackstone Stairs", - Item::GildedBlackstone => "Gilded Blackstone", - Item::PolishedBlackstone => "Polished Blackstone", - Item::PolishedBlackstoneSlab => "Polished Blackstone Slab", - Item::PolishedBlackstoneStairs => "Polished Blackstone Stairs", - Item::ChiseledPolishedBlackstone => "Chiseled Polished Blackstone", - Item::PolishedBlackstoneBricks => "Polished Blackstone Bricks", - Item::PolishedBlackstoneBrickSlab => "Polished Blackstone Brick Slab", - Item::PolishedBlackstoneBrickStairs => "Polished Blackstone Brick Stairs", - Item::CrackedPolishedBlackstoneBricks => "Cracked Polished Blackstone Bricks", - Item::RespawnAnchor => "Respawn Anchor", + Item::DeepslateIronOre => "minecraft:deepslate_iron_ore", + Item::IronHoe => "minecraft:iron_hoe", + Item::GoldenBoots => "minecraft:golden_boots", + Item::BoneBlock => "minecraft:bone_block", + Item::BirchPressurePlate => "minecraft:birch_pressure_plate", + Item::CraftingTable => "minecraft:crafting_table", + Item::IronHorseArmor => "minecraft:iron_horse_armor", + Item::NetherStar => "minecraft:nether_star", + Item::NetherQuartzOre => "minecraft:nether_quartz_ore", + Item::WoodenSword => "minecraft:wooden_sword", + Item::ZombieHead => "minecraft:zombie_head", + Item::RavagerSpawnEgg => "minecraft:ravager_spawn_egg", + Item::ChorusFlower => "minecraft:chorus_flower", + Item::PiglinBannerPattern => "minecraft:piglin_banner_pattern", + Item::BrownCandle => "minecraft:brown_candle", + Item::Map => "minecraft:map", + Item::BirchTrapdoor => "minecraft:birch_trapdoor", + Item::VexSpawnEgg => "minecraft:vex_spawn_egg", + Item::ActivatorRail => "minecraft:activator_rail", + Item::JunglePlanks => "minecraft:jungle_planks", + Item::NetherSprouts => "minecraft:nether_sprouts", + Item::CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", + Item::MossyStoneBrickStairs => "minecraft:mossy_stone_brick_stairs", + Item::LeatherChestplate => "minecraft:leather_chestplate", + Item::YellowStainedGlassPane => "minecraft:yellow_stained_glass_pane", + Item::GrayConcrete => "minecraft:gray_concrete", + Item::CyanCandle => "minecraft:cyan_candle", + Item::WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", + Item::BlackConcrete => "minecraft:black_concrete", + Item::DeadBrainCoral => "minecraft:dead_brain_coral", + Item::Honeycomb => "minecraft:honeycomb", + Item::Jukebox => "minecraft:jukebox", + Item::Farmland => "minecraft:farmland", + Item::WhiteTerracotta => "minecraft:white_terracotta", + Item::GoldenChestplate => "minecraft:golden_chestplate", + Item::CrackedPolishedBlackstoneBricks => "minecraft:cracked_polished_blackstone_bricks", + Item::Lectern => "minecraft:lectern", + Item::RedCarpet => "minecraft:red_carpet", + Item::PrismarineBrickSlab => "minecraft:prismarine_brick_slab", + Item::EndStoneBrickWall => "minecraft:end_stone_brick_wall", + Item::SoulSoil => "minecraft:soul_soil", + Item::PinkCarpet => "minecraft:pink_carpet", + Item::Charcoal => "minecraft:charcoal", + Item::Bone => "minecraft:bone", + Item::WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", + Item::MossyCobblestoneSlab => "minecraft:mossy_cobblestone_slab", + Item::BrewingStand => "minecraft:brewing_stand", + Item::RedTerracotta => "minecraft:red_terracotta", + Item::Elytra => "minecraft:elytra", + Item::TropicalFish => "minecraft:tropical_fish", + Item::ChainmailHelmet => "minecraft:chainmail_helmet", + Item::Jigsaw => "minecraft:jigsaw", + Item::OrangeShulkerBox => "minecraft:orange_shulker_box", + Item::DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", + Item::DeepslateLapisOre => "minecraft:deepslate_lapis_ore", + Item::OrangeStainedGlassPane => "minecraft:orange_stained_glass_pane", + Item::CarvedPumpkin => "minecraft:carved_pumpkin", + Item::WhiteShulkerBox => "minecraft:white_shulker_box", + Item::MossyCobblestoneStairs => "minecraft:mossy_cobblestone_stairs", + Item::DeepslateTiles => "minecraft:deepslate_tiles", + Item::MelonSeeds => "minecraft:melon_seeds", + Item::LimeCandle => "minecraft:lime_candle", + Item::EnderPearl => "minecraft:ender_pearl", + Item::Shroomlight => "minecraft:shroomlight", + Item::WhiteWool => "minecraft:white_wool", + Item::Sandstone => "minecraft:sandstone", + Item::WhiteCandle => "minecraft:white_candle", + Item::SalmonBucket => "minecraft:salmon_bucket", + Item::AcaciaLeaves => "minecraft:acacia_leaves", + Item::OakLog => "minecraft:oak_log", + Item::Beef => "minecraft:beef", + Item::MusicDiscBlocks => "minecraft:music_disc_blocks", + Item::AndesiteStairs => "minecraft:andesite_stairs", + Item::EndRod => "minecraft:end_rod", + Item::EndStoneBricks => "minecraft:end_stone_bricks", + Item::CrimsonDoor => "minecraft:crimson_door", + Item::Stonecutter => "minecraft:stonecutter", + Item::WaterBucket => "minecraft:water_bucket", + Item::Poppy => "minecraft:poppy", + Item::StoneBrickWall => "minecraft:stone_brick_wall", + Item::BlackBed => "minecraft:black_bed", + Item::Prismarine => "minecraft:prismarine", + Item::ExposedCutCopper => "minecraft:exposed_cut_copper", + Item::PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", + Item::Arrow => "minecraft:arrow", + Item::GreenStainedGlassPane => "minecraft:green_stained_glass_pane", + Item::BlueBed => "minecraft:blue_bed", + Item::StrippedWarpedStem => "minecraft:stripped_warped_stem", + Item::PolishedBlackstone => "minecraft:polished_blackstone", + Item::BirchSlab => "minecraft:birch_slab", + Item::WhiteConcretePowder => "minecraft:white_concrete_powder", + Item::Loom => "minecraft:loom", + Item::LilyOfTheValley => "minecraft:lily_of_the_valley", + Item::DioriteWall => "minecraft:diorite_wall", + Item::BlackGlazedTerracotta => "minecraft:black_glazed_terracotta", + Item::RoseBush => "minecraft:rose_bush", + Item::GreenShulkerBox => "minecraft:green_shulker_box", + Item::BlazeRod => "minecraft:blaze_rod", + Item::Clock => "minecraft:clock", + Item::SpruceLeaves => "minecraft:spruce_leaves", + Item::LightGrayDye => "minecraft:light_gray_dye", + Item::Mutton => "minecraft:mutton", + Item::MusicDisc11 => "minecraft:music_disc_11", + Item::RedMushroomBlock => "minecraft:red_mushroom_block", + Item::BrownWool => "minecraft:brown_wool", + Item::CutCopper => "minecraft:cut_copper", + Item::CartographyTable => "minecraft:cartography_table", + Item::LilyPad => "minecraft:lily_pad", + Item::GreenCarpet => "minecraft:green_carpet", + Item::LightWeightedPressurePlate => "minecraft:light_weighted_pressure_plate", + Item::DarkOakSapling => "minecraft:dark_oak_sapling", + Item::MagentaShulkerBox => "minecraft:magenta_shulker_box", + Item::LeatherBoots => "minecraft:leather_boots", + Item::DeepslateBricks => "minecraft:deepslate_bricks", + Item::AmethystShard => "minecraft:amethyst_shard", + Item::JungleSign => "minecraft:jungle_sign", + Item::Cake => "minecraft:cake", + Item::NetheriteBlock => "minecraft:netherite_block", + Item::LightGrayConcrete => "minecraft:light_gray_concrete", + Item::DarkOakWood => "minecraft:dark_oak_wood", + Item::IronTrapdoor => "minecraft:iron_trapdoor", + Item::DeadTubeCoralBlock => "minecraft:dead_tube_coral_block", + Item::PinkCandle => "minecraft:pink_candle", + Item::ExposedCopper => "minecraft:exposed_copper", + Item::DarkOakPlanks => "minecraft:dark_oak_planks", + Item::CrackedNetherBricks => "minecraft:cracked_nether_bricks", + Item::DebugStick => "minecraft:debug_stick", + Item::PolishedDeepslateWall => "minecraft:polished_deepslate_wall", + Item::PowderSnowBucket => "minecraft:powder_snow_bucket", + Item::CyanBed => "minecraft:cyan_bed", + Item::CatSpawnEgg => "minecraft:cat_spawn_egg", + Item::FloweringAzalea => "minecraft:flowering_azalea", + Item::Cod => "minecraft:cod", + Item::MusicDiscChirp => "minecraft:music_disc_chirp", + Item::LightBlueTerracotta => "minecraft:light_blue_terracotta", + Item::PinkBanner => "minecraft:pink_banner", + Item::LightBlueDye => "minecraft:light_blue_dye", + Item::PurpleDye => "minecraft:purple_dye", + Item::CommandBlock => "minecraft:command_block", + Item::DirtPath => "minecraft:dirt_path", + Item::StoneButton => "minecraft:stone_button", + Item::StoneBricks => "minecraft:stone_bricks", + Item::MushroomStem => "minecraft:mushroom_stem", + Item::SmoothSandstone => "minecraft:smooth_sandstone", + Item::StriderSpawnEgg => "minecraft:strider_spawn_egg", + Item::GlassBottle => "minecraft:glass_bottle", + Item::SkeletonSkull => "minecraft:skeleton_skull", + Item::RottenFlesh => "minecraft:rotten_flesh", + Item::BubbleCoralBlock => "minecraft:bubble_coral_block", + Item::SoulCampfire => "minecraft:soul_campfire", + Item::RedstoneOre => "minecraft:redstone_ore", + Item::YellowGlazedTerracotta => "minecraft:yellow_glazed_terracotta", + Item::FireCoralBlock => "minecraft:fire_coral_block", + Item::ChorusPlant => "minecraft:chorus_plant", + Item::BlueConcrete => "minecraft:blue_concrete", + Item::RawCopper => "minecraft:raw_copper", + Item::Blackstone => "minecraft:blackstone", + Item::PurpleCandle => "minecraft:purple_candle", + Item::Rabbit => "minecraft:rabbit", + Item::WaxedExposedCopper => "minecraft:waxed_exposed_copper", + Item::IronPickaxe => "minecraft:iron_pickaxe", + Item::GraniteWall => "minecraft:granite_wall", + Item::ZombieVillagerSpawnEgg => "minecraft:zombie_villager_spawn_egg", + Item::DetectorRail => "minecraft:detector_rail", + Item::MusicDiscOtherside => "minecraft:music_disc_otherside", + Item::SpruceStairs => "minecraft:spruce_stairs", + Item::NetherBrickStairs => "minecraft:nether_brick_stairs", + Item::PurpleConcrete => "minecraft:purple_concrete", + Item::ChiseledSandstone => "minecraft:chiseled_sandstone", + Item::PurpleWool => "minecraft:purple_wool", + Item::Paper => "minecraft:paper", + Item::RedNetherBrickWall => "minecraft:red_nether_brick_wall", + Item::JungleButton => "minecraft:jungle_button", + Item::ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", + Item::GlowInkSac => "minecraft:glow_ink_sac", + Item::MagentaStainedGlassPane => "minecraft:magenta_stained_glass_pane", + Item::Furnace => "minecraft:furnace", + Item::BrownMushroom => "minecraft:brown_mushroom", + Item::Sponge => "minecraft:sponge", + Item::StonePressurePlate => "minecraft:stone_pressure_plate", + Item::NetheriteSword => "minecraft:netherite_sword", + Item::Pumpkin => "minecraft:pumpkin", + Item::ArmorStand => "minecraft:armor_stand", + Item::BatSpawnEgg => "minecraft:bat_spawn_egg", + Item::DarkOakSlab => "minecraft:dark_oak_slab", + Item::LeatherLeggings => "minecraft:leather_leggings", + Item::HorseSpawnEgg => "minecraft:horse_spawn_egg", + Item::Bread => "minecraft:bread", + Item::WaxedCopperBlock => "minecraft:waxed_copper_block", + Item::WaxedCutCopper => "minecraft:waxed_cut_copper", + Item::WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", + Item::WeepingVines => "minecraft:weeping_vines", + Item::EnchantingTable => "minecraft:enchanting_table", + Item::CyanConcrete => "minecraft:cyan_concrete", + Item::OcelotSpawnEgg => "minecraft:ocelot_spawn_egg", + Item::Beetroot => "minecraft:beetroot", + Item::PinkConcretePowder => "minecraft:pink_concrete_powder", + Item::NetheriteBoots => "minecraft:netherite_boots", + Item::GoldenShovel => "minecraft:golden_shovel", + Item::AzureBluet => "minecraft:azure_bluet", + Item::PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", + Item::WarpedTrapdoor => "minecraft:warped_trapdoor", + Item::BlueCandle => "minecraft:blue_candle", + Item::Potion => "minecraft:potion", + Item::MediumAmethystBud => "minecraft:medium_amethyst_bud", + Item::BlueGlazedTerracotta => "minecraft:blue_glazed_terracotta", + Item::Feather => "minecraft:feather", + Item::Gunpowder => "minecraft:gunpowder", + Item::AcaciaSign => "minecraft:acacia_sign", + Item::GhastSpawnEgg => "minecraft:ghast_spawn_egg", + Item::TropicalFishSpawnEgg => "minecraft:tropical_fish_spawn_egg", + Item::PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", + Item::OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", + Item::DarkOakFenceGate => "minecraft:dark_oak_fence_gate", + Item::LightBlueGlazedTerracotta => "minecraft:light_blue_glazed_terracotta", + Item::BlackShulkerBox => "minecraft:black_shulker_box", + Item::GoatSpawnEgg => "minecraft:goat_spawn_egg", + Item::BrickWall => "minecraft:brick_wall", + Item::Leather => "minecraft:leather", + Item::CopperOre => "minecraft:copper_ore", + Item::PurpleBed => "minecraft:purple_bed", + Item::LlamaSpawnEgg => "minecraft:llama_spawn_egg", + Item::LingeringPotion => "minecraft:lingering_potion", + Item::SuspiciousStew => "minecraft:suspicious_stew", + Item::YellowTerracotta => "minecraft:yellow_terracotta", + Item::ChickenSpawnEgg => "minecraft:chicken_spawn_egg", + Item::StrippedCrimsonStem => "minecraft:stripped_crimson_stem", + Item::WhiteStainedGlassPane => "minecraft:white_stained_glass_pane", + Item::AndesiteSlab => "minecraft:andesite_slab", + Item::DiamondLeggings => "minecraft:diamond_leggings", + Item::Carrot => "minecraft:carrot", + Item::WarpedStem => "minecraft:warped_stem", + Item::WarpedStairs => "minecraft:warped_stairs", + Item::LightBlueStainedGlass => "minecraft:light_blue_stained_glass", + Item::OakSign => "minecraft:oak_sign", + Item::FletchingTable => "minecraft:fletching_table", + Item::GreenGlazedTerracotta => "minecraft:green_glazed_terracotta", + Item::GrayCandle => "minecraft:gray_candle", + Item::MojangBannerPattern => "minecraft:mojang_banner_pattern", + Item::DripstoneBlock => "minecraft:dripstone_block", + Item::WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", + Item::WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", + Item::CrimsonNylium => "minecraft:crimson_nylium", + Item::RepeatingCommandBlock => "minecraft:repeating_command_block", + Item::OakButton => "minecraft:oak_button", + Item::OrangeTulip => "minecraft:orange_tulip", + Item::LightBlueConcretePowder => "minecraft:light_blue_concrete_powder", + Item::Sand => "minecraft:sand", + Item::CopperBlock => "minecraft:copper_block", + Item::GoldIngot => "minecraft:gold_ingot", + Item::Apple => "minecraft:apple", + Item::BlackCandle => "minecraft:black_candle", + Item::CyanShulkerBox => "minecraft:cyan_shulker_box", + Item::BirchDoor => "minecraft:birch_door", + Item::StoneSword => "minecraft:stone_sword", + Item::JungleSlab => "minecraft:jungle_slab", + Item::PurpleConcretePowder => "minecraft:purple_concrete_powder", + Item::LightGrayConcretePowder => "minecraft:light_gray_concrete_powder", + Item::SpiderSpawnEgg => "minecraft:spider_spawn_egg", + Item::LargeAmethystBud => "minecraft:large_amethyst_bud", + Item::PinkBed => "minecraft:pink_bed", + Item::JungleTrapdoor => "minecraft:jungle_trapdoor", + Item::CaveSpiderSpawnEgg => "minecraft:cave_spider_spawn_egg", + Item::NetherBrickFence => "minecraft:nether_brick_fence", + Item::PigSpawnEgg => "minecraft:pig_spawn_egg", + Item::BirchWood => "minecraft:birch_wood", + Item::JungleStairs => "minecraft:jungle_stairs", + Item::Beehive => "minecraft:beehive", + Item::RedSandstoneStairs => "minecraft:red_sandstone_stairs", + Item::VillagerSpawnEgg => "minecraft:villager_spawn_egg", + Item::CutSandstoneSlab => "minecraft:cut_sandstone_slab", + Item::WarpedFungus => "minecraft:warped_fungus", + Item::SlimeSpawnEgg => "minecraft:slime_spawn_egg", + Item::SpruceWood => "minecraft:spruce_wood", + Item::Deepslate => "minecraft:deepslate", + Item::YellowShulkerBox => "minecraft:yellow_shulker_box", + Item::DarkPrismarineStairs => "minecraft:dark_prismarine_stairs", + Item::HopperMinecart => "minecraft:hopper_minecart", + Item::DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block", + Item::RawCopperBlock => "minecraft:raw_copper_block", + Item::Flint => "minecraft:flint", + Item::SmoothQuartzSlab => "minecraft:smooth_quartz_slab", + Item::StructureBlock => "minecraft:structure_block", + Item::IronSword => "minecraft:iron_sword", + Item::Compass => "minecraft:compass", + Item::GoldenHoe => "minecraft:golden_hoe", + Item::Peony => "minecraft:peony", + Item::NetheriteChestplate => "minecraft:netherite_chestplate", + Item::IronBlock => "minecraft:iron_block", + Item::CrimsonTrapdoor => "minecraft:crimson_trapdoor", + Item::GlobeBannerPattern => "minecraft:globe_banner_pattern", + Item::LightGrayTerracotta => "minecraft:light_gray_terracotta", + Item::MossyStoneBricks => "minecraft:mossy_stone_bricks", + Item::LightGrayBed => "minecraft:light_gray_bed", + Item::StickyPiston => "minecraft:sticky_piston", + Item::CyanStainedGlassPane => "minecraft:cyan_stained_glass_pane", + Item::PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", + Item::SprucePressurePlate => "minecraft:spruce_pressure_plate", + Item::CookedSalmon => "minecraft:cooked_salmon", + Item::Granite => "minecraft:granite", + Item::RedMushroom => "minecraft:red_mushroom", + Item::EndStone => "minecraft:end_stone", + Item::NetherBrick => "minecraft:nether_brick", + Item::CrimsonButton => "minecraft:crimson_button", + Item::DriedKelp => "minecraft:dried_kelp", + Item::SugarCane => "minecraft:sugar_cane", + Item::FireCoralFan => "minecraft:fire_coral_fan", + Item::BlueShulkerBox => "minecraft:blue_shulker_box", + Item::CreeperHead => "minecraft:creeper_head", + Item::SmithingTable => "minecraft:smithing_table", + Item::Azalea => "minecraft:azalea", + Item::FermentedSpiderEye => "minecraft:fermented_spider_eye", + Item::BirchBoat => "minecraft:birch_boat", + Item::DeepslateTileWall => "minecraft:deepslate_tile_wall", + Item::StoneHoe => "minecraft:stone_hoe", + Item::GrayStainedGlassPane => "minecraft:gray_stained_glass_pane", + Item::DiamondHelmet => "minecraft:diamond_helmet", + Item::DeadBrainCoralBlock => "minecraft:dead_brain_coral_block", + Item::CutSandstone => "minecraft:cut_sandstone", + Item::SlimeBall => "minecraft:slime_ball", + Item::GildedBlackstone => "minecraft:gilded_blackstone", + Item::WitchSpawnEgg => "minecraft:witch_spawn_egg", + Item::BlackstoneWall => "minecraft:blackstone_wall", + Item::FireCoral => "minecraft:fire_coral", + Item::Redstone => "minecraft:redstone", + Item::WrittenBook => "minecraft:written_book", + Item::WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", + Item::GraniteSlab => "minecraft:granite_slab", + Item::Scaffolding => "minecraft:scaffolding", + Item::LimeDye => "minecraft:lime_dye", + Item::PolishedBlackstoneButton => "minecraft:polished_blackstone_button", + Item::DeadBubbleCoralFan => "minecraft:dead_bubble_coral_fan", + Item::Glowstone => "minecraft:glowstone", + Item::HornCoral => "minecraft:horn_coral", + Item::SquidSpawnEgg => "minecraft:squid_spawn_egg", + Item::YellowCarpet => "minecraft:yellow_carpet", + Item::LapisLazuli => "minecraft:lapis_lazuli", + Item::WarpedWartBlock => "minecraft:warped_wart_block", + Item::SmoothQuartz => "minecraft:smooth_quartz", + Item::CobbledDeepslate => "minecraft:cobbled_deepslate", + Item::TripwireHook => "minecraft:tripwire_hook", + Item::Dropper => "minecraft:dropper", + Item::MagentaGlazedTerracotta => "minecraft:magenta_glazed_terracotta", + Item::SoulSand => "minecraft:soul_sand", + Item::Potato => "minecraft:potato", + Item::MagmaCream => "minecraft:magma_cream", + Item::CowSpawnEgg => "minecraft:cow_spawn_egg", + Item::TrappedChest => "minecraft:trapped_chest", + Item::JungleFenceGate => "minecraft:jungle_fence_gate", + Item::GoldenApple => "minecraft:golden_apple", + Item::DarkOakFence => "minecraft:dark_oak_fence", + Item::DeadHornCoral => "minecraft:dead_horn_coral", + Item::DarkOakLeaves => "minecraft:dark_oak_leaves", + Item::DeadFireCoral => "minecraft:dead_fire_coral", + Item::IronShovel => "minecraft:iron_shovel", + Item::EnchantedBook => "minecraft:enchanted_book", + Item::WhiteTulip => "minecraft:white_tulip", + Item::AcaciaButton => "minecraft:acacia_button", + Item::Emerald => "minecraft:emerald", + Item::SandstoneSlab => "minecraft:sandstone_slab", + Item::IronDoor => "minecraft:iron_door", + Item::RawIron => "minecraft:raw_iron", + Item::LapisBlock => "minecraft:lapis_block", + Item::BigDripleaf => "minecraft:big_dripleaf", + Item::BlueConcretePowder => "minecraft:blue_concrete_powder", + Item::Barrel => "minecraft:barrel", + Item::MagentaStainedGlass => "minecraft:magenta_stained_glass", + Item::BrownConcrete => "minecraft:brown_concrete", + Item::PinkTulip => "minecraft:pink_tulip", + Item::GrayBanner => "minecraft:gray_banner", + Item::Bedrock => "minecraft:bedrock", + Item::DeadFireCoralBlock => "minecraft:dead_fire_coral_block", + Item::Anvil => "minecraft:anvil", + Item::StonePickaxe => "minecraft:stone_pickaxe", + Item::LeatherHelmet => "minecraft:leather_helmet", + Item::Porkchop => "minecraft:porkchop", + Item::StoneBrickSlab => "minecraft:stone_brick_slab", + Item::OrangeCandle => "minecraft:orange_candle", + Item::BlueWool => "minecraft:blue_wool", + Item::MossCarpet => "minecraft:moss_carpet", + Item::SilverfishSpawnEgg => "minecraft:silverfish_spawn_egg", + Item::SpectralArrow => "minecraft:spectral_arrow", + Item::CookedRabbit => "minecraft:cooked_rabbit", + Item::IronChestplate => "minecraft:iron_chestplate", + Item::GrayConcretePowder => "minecraft:gray_concrete_powder", + Item::WarpedPlanks => "minecraft:warped_planks", + Item::DeadTubeCoral => "minecraft:dead_tube_coral", + Item::DrownedSpawnEgg => "minecraft:drowned_spawn_egg", + Item::SplashPotion => "minecraft:splash_potion", + Item::WoodenShovel => "minecraft:wooden_shovel", + Item::WarpedRoots => "minecraft:warped_roots", + Item::QuartzPillar => "minecraft:quartz_pillar", + Item::GlisteringMelonSlice => "minecraft:glistering_melon_slice", + Item::CrimsonStairs => "minecraft:crimson_stairs", + Item::Obsidian => "minecraft:obsidian", + Item::RedCandle => "minecraft:red_candle", + Item::SoulTorch => "minecraft:soul_torch", + Item::GhastTear => "minecraft:ghast_tear", + Item::Diamond => "minecraft:diamond", + Item::EndStoneBrickSlab => "minecraft:end_stone_brick_slab", + Item::GrayGlazedTerracotta => "minecraft:gray_glazed_terracotta", + Item::OakTrapdoor => "minecraft:oak_trapdoor", + Item::LimeBanner => "minecraft:lime_banner", + Item::DarkOakTrapdoor => "minecraft:dark_oak_trapdoor", + Item::OakSapling => "minecraft:oak_sapling", + Item::PufferfishBucket => "minecraft:pufferfish_bucket", + Item::Clay => "minecraft:clay", + Item::CyanConcretePowder => "minecraft:cyan_concrete_powder", + Item::Gravel => "minecraft:gravel", + Item::YellowStainedGlass => "minecraft:yellow_stained_glass", + Item::GrayWool => "minecraft:gray_wool", + Item::BlueIce => "minecraft:blue_ice", + Item::StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", + Item::Fern => "minecraft:fern", + Item::MilkBucket => "minecraft:milk_bucket", + Item::BrainCoralBlock => "minecraft:brain_coral_block", + Item::OrangeBanner => "minecraft:orange_banner", + Item::FilledMap => "minecraft:filled_map", + Item::RedNetherBrickSlab => "minecraft:red_nether_brick_slab", + Item::PolishedGraniteStairs => "minecraft:polished_granite_stairs", + Item::ChainmailBoots => "minecraft:chainmail_boots", + Item::OakDoor => "minecraft:oak_door", + Item::SheepSpawnEgg => "minecraft:sheep_spawn_egg", + Item::OakWood => "minecraft:oak_wood", + Item::Shield => "minecraft:shield", + Item::BlastFurnace => "minecraft:blast_furnace", + Item::RedStainedGlassPane => "minecraft:red_stained_glass_pane", + Item::Spyglass => "minecraft:spyglass", + Item::WanderingTraderSpawnEgg => "minecraft:wandering_trader_spawn_egg", + Item::Repeater => "minecraft:repeater", + Item::Ladder => "minecraft:ladder", + Item::HornCoralFan => "minecraft:horn_coral_fan", + Item::WhiteConcrete => "minecraft:white_concrete", + Item::SprucePlanks => "minecraft:spruce_planks", + Item::PurpurPillar => "minecraft:purpur_pillar", + Item::BlackstoneSlab => "minecraft:blackstone_slab", + Item::DarkOakDoor => "minecraft:dark_oak_door", + Item::Seagrass => "minecraft:seagrass", + Item::DeepslateBrickSlab => "minecraft:deepslate_brick_slab", + Item::CutCopperStairs => "minecraft:cut_copper_stairs", + Item::StoneStairs => "minecraft:stone_stairs", + Item::DioriteSlab => "minecraft:diorite_slab", + Item::PolishedBlackstoneBrickStairs => "minecraft:polished_blackstone_brick_stairs", + Item::AndesiteWall => "minecraft:andesite_wall", + Item::PinkDye => "minecraft:pink_dye", + Item::PhantomSpawnEgg => "minecraft:phantom_spawn_egg", + Item::LimeStainedGlass => "minecraft:lime_stained_glass", + Item::SkeletonHorseSpawnEgg => "minecraft:skeleton_horse_spawn_egg", + Item::SpruceFenceGate => "minecraft:spruce_fence_gate", + Item::Bamboo => "minecraft:bamboo", + Item::DarkOakStairs => "minecraft:dark_oak_stairs", + Item::LightBlueBanner => "minecraft:light_blue_banner", + Item::Conduit => "minecraft:conduit", + Item::PurpleCarpet => "minecraft:purple_carpet", + Item::Cornflower => "minecraft:cornflower", + Item::WheatSeeds => "minecraft:wheat_seeds", + Item::MusicDiscMellohi => "minecraft:music_disc_mellohi", + Item::Smoker => "minecraft:smoker", + Item::MossyCobblestone => "minecraft:mossy_cobblestone", + Item::WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", + Item::Netherrack => "minecraft:netherrack", + Item::BrownTerracotta => "minecraft:brown_terracotta", + Item::Piston => "minecraft:piston", + Item::ChorusFruit => "minecraft:chorus_fruit", + Item::RedstoneLamp => "minecraft:redstone_lamp", + Item::AcaciaPressurePlate => "minecraft:acacia_pressure_plate", + Item::PurpleBanner => "minecraft:purple_banner", + Item::LightBlueCarpet => "minecraft:light_blue_carpet", + Item::CyanWool => "minecraft:cyan_wool", + Item::CocoaBeans => "minecraft:cocoa_beans", + Item::BrownStainedGlassPane => "minecraft:brown_stained_glass_pane", + Item::CodSpawnEgg => "minecraft:cod_spawn_egg", + Item::CrimsonFence => "minecraft:crimson_fence", + Item::LeatherHorseArmor => "minecraft:leather_horse_armor", + Item::Andesite => "minecraft:andesite", + Item::OakSlab => "minecraft:oak_slab", + Item::WitherSkeletonSkull => "minecraft:wither_skeleton_skull", + Item::HayBlock => "minecraft:hay_block", + Item::BrownGlazedTerracotta => "minecraft:brown_glazed_terracotta", + Item::PinkWool => "minecraft:pink_wool", + Item::InkSac => "minecraft:ink_sac", + Item::AcaciaPlanks => "minecraft:acacia_planks", + Item::EndPortalFrame => "minecraft:end_portal_frame", + Item::Cookie => "minecraft:cookie", + Item::CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", + Item::FireworkStar => "minecraft:firework_star", + Item::LightBlueCandle => "minecraft:light_blue_candle", + Item::NetherGoldOre => "minecraft:nether_gold_ore", + Item::CutRedSandstone => "minecraft:cut_red_sandstone", + Item::CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", + Item::CrimsonFenceGate => "minecraft:crimson_fence_gate", + Item::DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", + Item::JungleBoat => "minecraft:jungle_boat", + Item::StructureVoid => "minecraft:structure_void", + Item::PinkGlazedTerracotta => "minecraft:pink_glazed_terracotta", + Item::DioriteStairs => "minecraft:diorite_stairs", + Item::WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", + Item::MagentaCarpet => "minecraft:magenta_carpet", + Item::WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", + Item::PurpleStainedGlass => "minecraft:purple_stained_glass", + Item::LimeShulkerBox => "minecraft:lime_shulker_box", + Item::BlackConcretePowder => "minecraft:black_concrete_powder", + Item::Rail => "minecraft:rail", + Item::DriedKelpBlock => "minecraft:dried_kelp_block", + Item::AcaciaLog => "minecraft:acacia_log", + Item::ChiseledQuartzBlock => "minecraft:chiseled_quartz_block", + Item::PiglinBruteSpawnEgg => "minecraft:piglin_brute_spawn_egg", + Item::DeepslateCoalOre => "minecraft:deepslate_coal_ore", + Item::PlayerHead => "minecraft:player_head", + Item::ChiseledStoneBricks => "minecraft:chiseled_stone_bricks", + Item::AcaciaSapling => "minecraft:acacia_sapling", + Item::BrownCarpet => "minecraft:brown_carpet", + Item::CobblestoneStairs => "minecraft:cobblestone_stairs", + Item::Beacon => "minecraft:beacon", + Item::CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", + Item::InfestedCobblestone => "minecraft:infested_cobblestone", + Item::WarpedPressurePlate => "minecraft:warped_pressure_plate", + Item::NetheritePickaxe => "minecraft:netherite_pickaxe", + Item::EndermiteSpawnEgg => "minecraft:endermite_spawn_egg", + Item::OakFence => "minecraft:oak_fence", + Item::BrownBed => "minecraft:brown_bed", + Item::StrippedWarpedHyphae => "minecraft:stripped_warped_hyphae", + Item::WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", + Item::RedNetherBricks => "minecraft:red_nether_bricks", + Item::RedWool => "minecraft:red_wool", + Item::PolishedAndesiteSlab => "minecraft:polished_andesite_slab", + Item::NetherWart => "minecraft:nether_wart", + Item::YellowWool => "minecraft:yellow_wool", + Item::BlackCarpet => "minecraft:black_carpet", + Item::EmeraldBlock => "minecraft:emerald_block", + Item::LightGrayWool => "minecraft:light_gray_wool", + Item::InfestedDeepslate => "minecraft:infested_deepslate", + Item::SmoothSandstoneSlab => "minecraft:smooth_sandstone_slab", + Item::AcaciaTrapdoor => "minecraft:acacia_trapdoor", + Item::BrownDye => "minecraft:brown_dye", + Item::EmeraldOre => "minecraft:emerald_ore", + Item::NautilusShell => "minecraft:nautilus_shell", + Item::Tuff => "minecraft:tuff", + Item::Chest => "minecraft:chest", + Item::Snow => "minecraft:snow", + Item::TwistingVines => "minecraft:twisting_vines", + Item::GrayDye => "minecraft:gray_dye", + Item::SmoothRedSandstone => "minecraft:smooth_red_sandstone", + Item::RootedDirt => "minecraft:rooted_dirt", + Item::RawIronBlock => "minecraft:raw_iron_block", + Item::Painting => "minecraft:painting", + Item::ShulkerSpawnEgg => "minecraft:shulker_spawn_egg", + Item::FlintAndSteel => "minecraft:flint_and_steel", + Item::OrangeStainedGlass => "minecraft:orange_stained_glass", + Item::AmethystBlock => "minecraft:amethyst_block", + Item::ChiseledRedSandstone => "minecraft:chiseled_red_sandstone", + Item::LimeConcrete => "minecraft:lime_concrete", + Item::SpruceTrapdoor => "minecraft:spruce_trapdoor", + Item::AncientDebris => "minecraft:ancient_debris", + Item::LightGrayStainedGlassPane => "minecraft:light_gray_stained_glass_pane", + Item::RedstoneBlock => "minecraft:redstone_block", + Item::PiglinSpawnEgg => "minecraft:piglin_spawn_egg", + Item::NameTag => "minecraft:name_tag", + Item::SmoothRedSandstoneSlab => "minecraft:smooth_red_sandstone_slab", + Item::WarpedSign => "minecraft:warped_sign", + Item::Crossbow => "minecraft:crossbow", + Item::AxolotlSpawnEgg => "minecraft:axolotl_spawn_egg", + Item::NetheriteHelmet => "minecraft:netherite_helmet", + Item::GoldenAxe => "minecraft:golden_axe", + Item::MusicDiscCat => "minecraft:music_disc_cat", + Item::Diorite => "minecraft:diorite", + Item::WarpedSlab => "minecraft:warped_slab", + Item::NetherBrickSlab => "minecraft:nether_brick_slab", + Item::SmoothSandstoneStairs => "minecraft:smooth_sandstone_stairs", + Item::NetheriteIngot => "minecraft:netherite_ingot", + Item::HangingRoots => "minecraft:hanging_roots", + Item::DeadHornCoralBlock => "minecraft:dead_horn_coral_block", + Item::ZoglinSpawnEgg => "minecraft:zoglin_spawn_egg", + Item::DiamondBlock => "minecraft:diamond_block", + Item::StrippedBirchWood => "minecraft:stripped_birch_wood", + Item::OrangeGlazedTerracotta => "minecraft:orange_glazed_terracotta", + Item::NetheriteLeggings => "minecraft:netherite_leggings", + Item::DiamondShovel => "minecraft:diamond_shovel", + Item::Trident => "minecraft:trident", + Item::BirchFence => "minecraft:birch_fence", + Item::WetSponge => "minecraft:wet_sponge", + Item::RabbitHide => "minecraft:rabbit_hide", + Item::InfestedStoneBricks => "minecraft:infested_stone_bricks", + Item::MagentaTerracotta => "minecraft:magenta_terracotta", + Item::WeatheredCopper => "minecraft:weathered_copper", + Item::GrayCarpet => "minecraft:gray_carpet", + Item::JungleLeaves => "minecraft:jungle_leaves", + Item::BlueOrchid => "minecraft:blue_orchid", + Item::Spawner => "minecraft:spawner", + Item::CyanGlazedTerracotta => "minecraft:cyan_glazed_terracotta", + Item::CookedPorkchop => "minecraft:cooked_porkchop", + Item::HuskSpawnEgg => "minecraft:husk_spawn_egg", + Item::SkeletonSpawnEgg => "minecraft:skeleton_spawn_egg", + Item::GoldenHorseArmor => "minecraft:golden_horse_armor", + Item::OrangeWool => "minecraft:orange_wool", + Item::HeartOfTheSea => "minecraft:heart_of_the_sea", + Item::SpruceLog => "minecraft:spruce_log", + Item::CobblestoneSlab => "minecraft:cobblestone_slab", + Item::BoneMeal => "minecraft:bone_meal", + Item::NetheriteScrap => "minecraft:netherite_scrap", + Item::MusicDiscWait => "minecraft:music_disc_wait", + Item::LimeWool => "minecraft:lime_wool", + Item::RawGoldBlock => "minecraft:raw_gold_block", + Item::LightBlueStainedGlassPane => "minecraft:light_blue_stained_glass_pane", + Item::OakPressurePlate => "minecraft:oak_pressure_plate", + Item::WoodenPickaxe => "minecraft:wooden_pickaxe", + Item::EnchantedGoldenApple => "minecraft:enchanted_golden_apple", + Item::SweetBerries => "minecraft:sweet_berries", + Item::RedDye => "minecraft:red_dye", + Item::PrismarineBrickStairs => "minecraft:prismarine_brick_stairs", + Item::CutRedSandstoneSlab => "minecraft:cut_red_sandstone_slab", + Item::GoldBlock => "minecraft:gold_block", + Item::IronHelmet => "minecraft:iron_helmet", + Item::GlowLichen => "minecraft:glow_lichen", + Item::MossyStoneBrickWall => "minecraft:mossy_stone_brick_wall", + Item::StrippedBirchLog => "minecraft:stripped_birch_log", + Item::ChainmailChestplate => "minecraft:chainmail_chestplate", + Item::PumpkinSeeds => "minecraft:pumpkin_seeds", + Item::IronAxe => "minecraft:iron_axe", + Item::CutCopperSlab => "minecraft:cut_copper_slab", + Item::BakedPotato => "minecraft:baked_potato", + Item::DiamondSword => "minecraft:diamond_sword", + Item::BubbleCoral => "minecraft:bubble_coral", + Item::RedNetherBrickStairs => "minecraft:red_nether_brick_stairs", + Item::WoodenHoe => "minecraft:wooden_hoe", + Item::Lantern => "minecraft:lantern", + Item::DragonEgg => "minecraft:dragon_egg", + Item::ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", + Item::MagentaConcrete => "minecraft:magenta_concrete", + Item::AxolotlBucket => "minecraft:axolotl_bucket", + Item::MuleSpawnEgg => "minecraft:mule_spawn_egg", + Item::PumpkinPie => "minecraft:pumpkin_pie", + Item::InfestedStone => "minecraft:infested_stone", + Item::MagmaCubeSpawnEgg => "minecraft:magma_cube_spawn_egg", + Item::TubeCoralBlock => "minecraft:tube_coral_block", + Item::BlueBanner => "minecraft:blue_banner", + Item::CoalBlock => "minecraft:coal_block", + Item::StrippedAcaciaWood => "minecraft:stripped_acacia_wood", + Item::BeetrootSoup => "minecraft:beetroot_soup", + Item::Barrier => "minecraft:barrier", + Item::EndCrystal => "minecraft:end_crystal", + Item::Mycelium => "minecraft:mycelium", + Item::SporeBlossom => "minecraft:spore_blossom", + Item::Wheat => "minecraft:wheat", + Item::PrismarineStairs => "minecraft:prismarine_stairs", + Item::PurpleTerracotta => "minecraft:purple_terracotta", + Item::TropicalFishBucket => "minecraft:tropical_fish_bucket", + Item::Lever => "minecraft:lever", + Item::OrangeDye => "minecraft:orange_dye", + Item::GreenBed => "minecraft:green_bed", + Item::PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", + Item::RedConcretePowder => "minecraft:red_concrete_powder", + Item::MusicDiscStal => "minecraft:music_disc_stal", + Item::CrimsonHyphae => "minecraft:crimson_hyphae", + Item::FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", + Item::PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", + Item::PolishedDioriteStairs => "minecraft:polished_diorite_stairs", + Item::BlackStainedGlass => "minecraft:black_stained_glass", + Item::GreenWool => "minecraft:green_wool", + Item::AcaciaStairs => "minecraft:acacia_stairs", + Item::Chain => "minecraft:chain", + Item::LightBlueWool => "minecraft:light_blue_wool", + Item::BlackStainedGlassPane => "minecraft:black_stained_glass_pane", + Item::Candle => "minecraft:candle", + Item::ChippedAnvil => "minecraft:chipped_anvil", + Item::LavaBucket => "minecraft:lava_bucket", + Item::SalmonSpawnEgg => "minecraft:salmon_spawn_egg", + Item::Stick => "minecraft:stick", + Item::Dirt => "minecraft:dirt", + Item::CyanStainedGlass => "minecraft:cyan_stained_glass", + Item::StrippedJungleWood => "minecraft:stripped_jungle_wood", + Item::CrimsonRoots => "minecraft:crimson_roots", + Item::SeaLantern => "minecraft:sea_lantern", + Item::HeavyWeightedPressurePlate => "minecraft:heavy_weighted_pressure_plate", + Item::WhiteDye => "minecraft:white_dye", + Item::GreenDye => "minecraft:green_dye", + Item::JungleWood => "minecraft:jungle_wood", + Item::BeeNest => "minecraft:bee_nest", + Item::DarkPrismarine => "minecraft:dark_prismarine", + Item::DarkPrismarineSlab => "minecraft:dark_prismarine_slab", + Item::ChainmailLeggings => "minecraft:chainmail_leggings", + Item::TntMinecart => "minecraft:tnt_minecart", + Item::DarkOakBoat => "minecraft:dark_oak_boat", + Item::IronBars => "minecraft:iron_bars", + Item::Lilac => "minecraft:lilac", + Item::CyanBanner => "minecraft:cyan_banner", + Item::YellowConcrete => "minecraft:yellow_concrete", + Item::LightGrayStainedGlass => "minecraft:light_gray_stained_glass", + Item::Cobblestone => "minecraft:cobblestone", + Item::GrassBlock => "minecraft:grass_block", + Item::WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", + Item::GrayStainedGlass => "minecraft:gray_stained_glass", + Item::BlackWool => "minecraft:black_wool", + Item::BlazeSpawnEgg => "minecraft:blaze_spawn_egg", + Item::BirchSign => "minecraft:birch_sign", + Item::InfestedCrackedStoneBricks => "minecraft:infested_cracked_stone_bricks", + Item::MusicDiscStrad => "minecraft:music_disc_strad", + Item::BrownMushroomBlock => "minecraft:brown_mushroom_block", + Item::BrownStainedGlass => "minecraft:brown_stained_glass", + Item::BeetrootSeeds => "minecraft:beetroot_seeds", + Item::StrippedOakLog => "minecraft:stripped_oak_log", + Item::PurpurStairs => "minecraft:purpur_stairs", + Item::GlowstoneDust => "minecraft:glowstone_dust", + Item::SmoothQuartzStairs => "minecraft:smooth_quartz_stairs", + Item::Stone => "minecraft:stone", + Item::SandstoneWall => "minecraft:sandstone_wall", + Item::TurtleSpawnEgg => "minecraft:turtle_spawn_egg", + Item::DarkOakLog => "minecraft:dark_oak_log", + Item::ClayBall => "minecraft:clay_ball", + Item::CrimsonSlab => "minecraft:crimson_slab", + Item::WarpedDoor => "minecraft:warped_door", + Item::StoneShovel => "minecraft:stone_shovel", + Item::ShulkerBox => "minecraft:shulker_box", + Item::Egg => "minecraft:egg", + Item::MossBlock => "minecraft:moss_block", + Item::WhiteGlazedTerracotta => "minecraft:white_glazed_terracotta", + Item::EndStoneBrickStairs => "minecraft:end_stone_brick_stairs", + Item::PoisonousPotato => "minecraft:poisonous_potato", + Item::RedTulip => "minecraft:red_tulip", + Item::PolishedBasalt => "minecraft:polished_basalt", + Item::BlackstoneStairs => "minecraft:blackstone_stairs", + Item::SnowBlock => "minecraft:snow_block", + Item::Ice => "minecraft:ice", + Item::WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", + Item::DiamondHorseArmor => "minecraft:diamond_horse_armor", + Item::BirchLog => "minecraft:birch_log", + Item::InfestedMossyStoneBricks => "minecraft:infested_mossy_stone_bricks", + Item::OrangeTerracotta => "minecraft:orange_terracotta", + Item::PinkTerracotta => "minecraft:pink_terracotta", + Item::Composter => "minecraft:composter", + Item::IronLeggings => "minecraft:iron_leggings", + Item::MagentaWool => "minecraft:magenta_wool", + Item::GoldenHelmet => "minecraft:golden_helmet", + Item::LimeBed => "minecraft:lime_bed", + Item::ChainCommandBlock => "minecraft:chain_command_block", + Item::Podzol => "minecraft:podzol", + Item::Hopper => "minecraft:hopper", + Item::CopperIngot => "minecraft:copper_ingot", + Item::SlimeBlock => "minecraft:slime_block", + Item::TraderLlamaSpawnEgg => "minecraft:trader_llama_spawn_egg", + Item::LightBlueConcrete => "minecraft:light_blue_concrete", + Item::GlowSquidSpawnEgg => "minecraft:glow_squid_spawn_egg", + Item::PolishedDiorite => "minecraft:polished_diorite", + Item::Melon => "minecraft:melon", + Item::WhiteBed => "minecraft:white_bed", + Item::PetrifiedOakSlab => "minecraft:petrified_oak_slab", + Item::CrimsonSign => "minecraft:crimson_sign", + Item::PrismarineSlab => "minecraft:prismarine_slab", + Item::LightGrayBanner => "minecraft:light_gray_banner", + Item::CrimsonFungus => "minecraft:crimson_fungus", + Item::RabbitSpawnEgg => "minecraft:rabbit_spawn_egg", + Item::RedBanner => "minecraft:red_banner", + Item::PoppedChorusFruit => "minecraft:popped_chorus_fruit", + Item::LimeCarpet => "minecraft:lime_carpet", + Item::IronNugget => "minecraft:iron_nugget", + Item::StrippedCrimsonHyphae => "minecraft:stripped_crimson_hyphae", + Item::Dandelion => "minecraft:dandelion", + Item::CreeperBannerPattern => "minecraft:creeper_banner_pattern", + Item::IronBoots => "minecraft:iron_boots", + Item::OxidizedCutCopper => "minecraft:oxidized_cut_copper", + Item::GoldenSword => "minecraft:golden_sword", + Item::DiamondPickaxe => "minecraft:diamond_pickaxe", + Item::Target => "minecraft:target", + Item::Terracotta => "minecraft:terracotta", + Item::GreenBanner => "minecraft:green_banner", + Item::DolphinSpawnEgg => "minecraft:dolphin_spawn_egg", + Item::RedSand => "minecraft:red_sand", + Item::BrickStairs => "minecraft:brick_stairs", + Item::FireworkRocket => "minecraft:firework_rocket", + Item::RedShulkerBox => "minecraft:red_shulker_box", + Item::PointedDripstone => "minecraft:pointed_dripstone", + Item::LightGrayCarpet => "minecraft:light_gray_carpet", + Item::JungleFence => "minecraft:jungle_fence", + Item::CoalOre => "minecraft:coal_ore", + Item::JungleDoor => "minecraft:jungle_door", + Item::LightningRod => "minecraft:lightning_rod", + Item::GoldenCarrot => "minecraft:golden_carrot", + Item::Grindstone => "minecraft:grindstone", + Item::RedSandstoneSlab => "minecraft:red_sandstone_slab", + Item::DeadBrainCoralFan => "minecraft:dead_brain_coral_fan", + Item::OrangeConcretePowder => "minecraft:orange_concrete_powder", + Item::WarpedButton => "minecraft:warped_button", + Item::DeadTubeCoralFan => "minecraft:dead_tube_coral_fan", + Item::PolishedBlackstonePressurePlate => "minecraft:polished_blackstone_pressure_plate", + Item::GreenTerracotta => "minecraft:green_terracotta", + Item::TubeCoral => "minecraft:tube_coral", + Item::JungleLog => "minecraft:jungle_log", + Item::WarpedNylium => "minecraft:warped_nylium", + Item::GuardianSpawnEgg => "minecraft:guardian_spawn_egg", + Item::BrickSlab => "minecraft:brick_slab", + Item::StrippedOakWood => "minecraft:stripped_oak_wood", + Item::SculkSensor => "minecraft:sculk_sensor", + Item::BirchStairs => "minecraft:birch_stairs", + Item::MooshroomSpawnEgg => "minecraft:mooshroom_spawn_egg", + Item::FlowerBannerPattern => "minecraft:flower_banner_pattern", + Item::CryingObsidian => "minecraft:crying_obsidian", + Item::QuartzBlock => "minecraft:quartz_block", + Item::CyanTerracotta => "minecraft:cyan_terracotta", + Item::Observer => "minecraft:observer", + Item::InfestedChiseledStoneBricks => "minecraft:infested_chiseled_stone_bricks", + Item::WoodenAxe => "minecraft:wooden_axe", + Item::YellowCandle => "minecraft:yellow_candle", + Item::WritableBook => "minecraft:writable_book", + Item::CreeperSpawnEgg => "minecraft:creeper_spawn_egg", + Item::NetherBricks => "minecraft:nether_bricks", + Item::BlackTerracotta => "minecraft:black_terracotta", + Item::DeadBubbleCoral => "minecraft:dead_bubble_coral", + Item::CrimsonPressurePlate => "minecraft:crimson_pressure_plate", + Item::GoldOre => "minecraft:gold_ore", + Item::DeadHornCoralFan => "minecraft:dead_horn_coral_fan", + Item::FurnaceMinecart => "minecraft:furnace_minecart", + Item::Shears => "minecraft:shears", + Item::SmoothStoneSlab => "minecraft:smooth_stone_slab", + Item::WitherRose => "minecraft:wither_rose", + Item::DeepslateBrickWall => "minecraft:deepslate_brick_wall", + Item::PurpleGlazedTerracotta => "minecraft:purple_glazed_terracotta", + Item::JackOLantern => "minecraft:jack_o_lantern", + Item::HornCoralBlock => "minecraft:horn_coral_block", + Item::SpruceFence => "minecraft:spruce_fence", + Item::LightGrayGlazedTerracotta => "minecraft:light_gray_glazed_terracotta", + Item::GlowBerries => "minecraft:glow_berries", + Item::CodBucket => "minecraft:cod_bucket", + Item::Sunflower => "minecraft:sunflower", + Item::OrangeCarpet => "minecraft:orange_carpet", + Item::BlueCarpet => "minecraft:blue_carpet", + Item::SeaPickle => "minecraft:sea_pickle", + Item::PinkShulkerBox => "minecraft:pink_shulker_box", + Item::RedGlazedTerracotta => "minecraft:red_glazed_terracotta", + Item::BrainCoral => "minecraft:brain_coral", + Item::DragonHead => "minecraft:dragon_head", + Item::MagentaCandle => "minecraft:magenta_candle", + Item::DeepslateGoldOre => "minecraft:deepslate_gold_ore", + Item::StrippedSpruceLog => "minecraft:stripped_spruce_log", + Item::DonkeySpawnEgg => "minecraft:donkey_spawn_egg", + Item::LimeConcretePowder => "minecraft:lime_concrete_powder", + Item::PrismarineBricks => "minecraft:prismarine_bricks", + Item::BrownBanner => "minecraft:brown_banner", + Item::WhiteStainedGlass => "minecraft:white_stained_glass", + Item::BlueStainedGlass => "minecraft:blue_stained_glass", + Item::DiamondHoe => "minecraft:diamond_hoe", + Item::SpruceSign => "minecraft:spruce_sign", + Item::Lodestone => "minecraft:lodestone", + Item::Sugar => "minecraft:sugar", + Item::SmoothRedSandstoneStairs => "minecraft:smooth_red_sandstone_stairs", + Item::LightBlueShulkerBox => "minecraft:light_blue_shulker_box", + Item::CyanDye => "minecraft:cyan_dye", + Item::WeatheredCutCopper => "minecraft:weathered_cut_copper", + Item::SpruceBoat => "minecraft:spruce_boat", + Item::SandstoneStairs => "minecraft:sandstone_stairs", + Item::MagmaBlock => "minecraft:magma_block", + Item::LightGrayShulkerBox => "minecraft:light_gray_shulker_box", + Item::PrismarineWall => "minecraft:prismarine_wall", + Item::TubeCoralFan => "minecraft:tube_coral_fan", + Item::Coal => "minecraft:coal", + Item::ItemFrame => "minecraft:item_frame", + Item::YellowBanner => "minecraft:yellow_banner", + Item::SmallAmethystBud => "minecraft:small_amethyst_bud", + Item::BrownShulkerBox => "minecraft:brown_shulker_box", + Item::IronOre => "minecraft:iron_ore", + Item::SoulLantern => "minecraft:soul_lantern", + Item::GoldenPickaxe => "minecraft:golden_pickaxe", + Item::QuartzSlab => "minecraft:quartz_slab", + Item::LimeTerracotta => "minecraft:lime_terracotta", + Item::BrainCoralFan => "minecraft:brain_coral_fan", + Item::StrippedJungleLog => "minecraft:stripped_jungle_log", + Item::TurtleHelmet => "minecraft:turtle_helmet", + Item::PurpurSlab => "minecraft:purpur_slab", + Item::MagentaBed => "minecraft:magenta_bed", + Item::WarpedHyphae => "minecraft:warped_hyphae", + Item::HoneycombBlock => "minecraft:honeycomb_block", + Item::PurpleStainedGlassPane => "minecraft:purple_stained_glass_pane", + Item::DiamondOre => "minecraft:diamond_ore", + Item::Calcite => "minecraft:calcite", + Item::OakBoat => "minecraft:oak_boat", + Item::HoglinSpawnEgg => "minecraft:hoglin_spawn_egg", + Item::RespawnAnchor => "minecraft:respawn_anchor", + Item::MagentaBanner => "minecraft:magenta_banner", + Item::ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", + Item::BuddingAmethyst => "minecraft:budding_amethyst", + Item::Glass => "minecraft:glass", + Item::IronIngot => "minecraft:iron_ingot", + Item::DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", + Item::AcaciaDoor => "minecraft:acacia_door", + Item::GrayBed => "minecraft:gray_bed", + Item::LargeFern => "minecraft:large_fern", + Item::RedStainedGlass => "minecraft:red_stained_glass", + Item::Brick => "minecraft:brick", + Item::OakLeaves => "minecraft:oak_leaves", + Item::ElderGuardianSpawnEgg => "minecraft:elder_guardian_spawn_egg", + Item::GoldenLeggings => "minecraft:golden_leggings", + Item::PinkStainedGlass => "minecraft:pink_stained_glass", + Item::RedSandstoneWall => "minecraft:red_sandstone_wall", + Item::GlowItemFrame => "minecraft:glow_item_frame", + Item::Bell => "minecraft:bell", + Item::CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", + Item::WolfSpawnEgg => "minecraft:wolf_spawn_egg", + Item::KnowledgeBook => "minecraft:knowledge_book", + Item::CookedMutton => "minecraft:cooked_mutton", + Item::SmoothStone => "minecraft:smooth_stone", + Item::LimeGlazedTerracotta => "minecraft:lime_glazed_terracotta", + Item::NetheriteHoe => "minecraft:netherite_hoe", + Item::OakPlanks => "minecraft:oak_planks", + Item::MagentaDye => "minecraft:magenta_dye", + Item::CrackedStoneBricks => "minecraft:cracked_stone_bricks", + Item::CookedBeef => "minecraft:cooked_beef", + Item::CoarseDirt => "minecraft:coarse_dirt", + Item::EnderChest => "minecraft:ender_chest", + Item::ZombieSpawnEgg => "minecraft:zombie_spawn_egg", + Item::WarpedFenceGate => "minecraft:warped_fence_gate", + Item::Bucket => "minecraft:bucket", + Item::BlueDye => "minecraft:blue_dye", + Item::Cactus => "minecraft:cactus", + Item::Lead => "minecraft:lead", + Item::MushroomStew => "minecraft:mushroom_stew", + Item::LightBlueBed => "minecraft:light_blue_bed", + Item::BeeSpawnEgg => "minecraft:bee_spawn_egg", + Item::OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", + Item::Kelp => "minecraft:kelp", + Item::GreenConcretePowder => "minecraft:green_concrete_powder", + Item::RedstoneTorch => "minecraft:redstone_torch", + Item::Snowball => "minecraft:snowball", + Item::SpruceSapling => "minecraft:spruce_sapling", + Item::GreenCandle => "minecraft:green_candle", + Item::OxidizedCopper => "minecraft:oxidized_copper", + Item::StrippedAcaciaLog => "minecraft:stripped_acacia_log", + Item::ZombieHorseSpawnEgg => "minecraft:zombie_horse_spawn_egg", + Item::AcaciaSlab => "minecraft:acacia_slab", + Item::SpruceDoor => "minecraft:spruce_door", + Item::DarkOakSign => "minecraft:dark_oak_sign", + Item::GreenConcrete => "minecraft:green_concrete", + Item::Salmon => "minecraft:salmon", + Item::DeadFireCoralFan => "minecraft:dead_fire_coral_fan", + Item::BlueStainedGlassPane => "minecraft:blue_stained_glass_pane", + Item::OakFenceGate => "minecraft:oak_fence_gate", + Item::Minecart => "minecraft:minecart", + Item::FishingRod => "minecraft:fishing_rod", + Item::VindicatorSpawnEgg => "minecraft:vindicator_spawn_egg", + Item::Cauldron => "minecraft:cauldron", + Item::SpruceButton => "minecraft:spruce_button", + Item::Dispenser => "minecraft:dispenser", + Item::StrippedSpruceWood => "minecraft:stripped_spruce_wood", + Item::YellowBed => "minecraft:yellow_bed", + Item::NetherBrickWall => "minecraft:nether_brick_wall", + Item::JungleSapling => "minecraft:jungle_sapling", + Item::DamagedAnvil => "minecraft:damaged_anvil", + Item::Quartz => "minecraft:quartz", + Item::BrownConcretePowder => "minecraft:brown_concrete_powder", + Item::TallGrass => "minecraft:tall_grass", + Item::PolishedAndesiteStairs => "minecraft:polished_andesite_stairs", + Item::RawGold => "minecraft:raw_gold", + Item::Cobweb => "minecraft:cobweb", + Item::BirchLeaves => "minecraft:birch_leaves", + Item::NetherWartBlock => "minecraft:nether_wart_block", + Item::GreenStainedGlass => "minecraft:green_stained_glass", + Item::Bow => "minecraft:bow", + Item::CrimsonPlanks => "minecraft:crimson_planks", + Item::DeepslateCopperOre => "minecraft:deepslate_copper_ore", + Item::FlowerPot => "minecraft:flower_pot", + Item::WhiteCarpet => "minecraft:white_carpet", + Item::Allium => "minecraft:allium", + Item::StrippedDarkOakWood => "minecraft:stripped_dark_oak_wood", + Item::Basalt => "minecraft:basalt", + Item::PolishedAndesite => "minecraft:polished_andesite", + Item::Saddle => "minecraft:saddle", + Item::Bowl => "minecraft:bowl", + Item::EnderEye => "minecraft:ender_eye", + Item::DaylightDetector => "minecraft:daylight_detector", + Item::Grass => "minecraft:grass", + Item::MossyCobblestoneWall => "minecraft:mossy_cobblestone_wall", + Item::YellowDye => "minecraft:yellow_dye", + Item::EndermanSpawnEgg => "minecraft:enderman_spawn_egg", + Item::ParrotSpawnEgg => "minecraft:parrot_spawn_egg", + Item::JunglePressurePlate => "minecraft:jungle_pressure_plate", + Item::WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", + Item::Vine => "minecraft:vine", + Item::PurpurBlock => "minecraft:purpur_block", + Item::RabbitFoot => "minecraft:rabbit_foot", + Item::DiamondChestplate => "minecraft:diamond_chestplate", + Item::Bricks => "minecraft:bricks", + Item::MusicDiscFar => "minecraft:music_disc_far", + Item::OakStairs => "minecraft:oak_stairs", + Item::HoneyBlock => "minecraft:honey_block", + Item::CarrotOnAStick => "minecraft:carrot_on_a_stick", + Item::QuartzStairs => "minecraft:quartz_stairs", + Item::AcaciaFenceGate => "minecraft:acacia_fence_gate", + Item::DeadBush => "minecraft:dead_bush", + Item::CookedChicken => "minecraft:cooked_chicken", + Item::PurpleShulkerBox => "minecraft:purple_shulker_box", + Item::PackedIce => "minecraft:packed_ice", + Item::ChiseledDeepslate => "minecraft:chiseled_deepslate", + Item::PhantomMembrane => "minecraft:phantom_membrane", + Item::SkullBannerPattern => "minecraft:skull_banner_pattern", + Item::WaxedWeatheredCutCopperStairs => "minecraft:waxed_weathered_cut_copper_stairs", + Item::ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", + Item::CyanCarpet => "minecraft:cyan_carpet", + Item::SmoothBasalt => "minecraft:smooth_basalt", + Item::OrangeBed => "minecraft:orange_bed", + Item::PandaSpawnEgg => "minecraft:panda_spawn_egg", + Item::AcaciaBoat => "minecraft:acacia_boat", + Item::AcaciaFence => "minecraft:acacia_fence", + Item::WitherSkeletonSpawnEgg => "minecraft:wither_skeleton_spawn_egg", + Item::Torch => "minecraft:torch", + Item::RabbitStew => "minecraft:rabbit_stew", + Item::NetheriteShovel => "minecraft:netherite_shovel", + Item::Campfire => "minecraft:campfire", + Item::BirchSapling => "minecraft:birch_sapling", + Item::WhiteBanner => "minecraft:white_banner", + Item::WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", + Item::AzaleaLeaves => "minecraft:azalea_leaves", + Item::GraniteStairs => "minecraft:granite_stairs", + Item::GrayShulkerBox => "minecraft:gray_shulker_box", + Item::OxeyeDaisy => "minecraft:oxeye_daisy", + Item::DeepslateTileStairs => "minecraft:deepslate_tile_stairs", + Item::GrayTerracotta => "minecraft:gray_terracotta", + Item::PinkStainedGlassPane => "minecraft:pink_stained_glass_pane", + Item::Bookshelf => "minecraft:bookshelf", + Item::PolishedGraniteSlab => "minecraft:polished_granite_slab", + Item::DeepslateTileSlab => "minecraft:deepslate_tile_slab", + Item::Pufferfish => "minecraft:pufferfish", + Item::DiamondAxe => "minecraft:diamond_axe", + Item::BlueTerracotta => "minecraft:blue_terracotta", + Item::RedConcrete => "minecraft:red_concrete", + Item::CookedCod => "minecraft:cooked_cod", + Item::PillagerSpawnEgg => "minecraft:pillager_spawn_egg", + Item::GoldNugget => "minecraft:gold_nugget", + Item::WarpedFence => "minecraft:warped_fence", + Item::SpiderEye => "minecraft:spider_eye", + Item::PrismarineCrystals => "minecraft:prismarine_crystals", + Item::PolishedGranite => "minecraft:polished_granite", + Item::LimeStainedGlassPane => "minecraft:lime_stained_glass_pane", + Item::BirchFenceGate => "minecraft:birch_fence_gate", + Item::NoteBlock => "minecraft:note_block", + Item::ShulkerShell => "minecraft:shulker_shell", + Item::BlazePowder => "minecraft:blaze_powder", + Item::RedBed => "minecraft:red_bed", + Item::PolishedDeepslate => "minecraft:polished_deepslate", + Item::BirchButton => "minecraft:birch_button", + Item::MusicDiscMall => "minecraft:music_disc_mall", + Item::FoxSpawnEgg => "minecraft:fox_spawn_egg", + Item::TippedArrow => "minecraft:tipped_arrow", + Item::PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", + Item::ZombifiedPiglinSpawnEgg => "minecraft:zombified_piglin_spawn_egg", + Item::SmallDripleaf => "minecraft:small_dripleaf", + Item::PinkConcrete => "minecraft:pink_concrete", + Item::LapisOre => "minecraft:lapis_ore", + Item::BirchPlanks => "minecraft:birch_planks", + Item::MelonSlice => "minecraft:melon_slice", + Item::PolarBearSpawnEgg => "minecraft:polar_bear_spawn_egg", + Item::CommandBlockMinecart => "minecraft:command_block_minecart", + Item::MusicDiscPigstep => "minecraft:music_disc_pigstep", + Item::TintedGlass => "minecraft:tinted_glass", + Item::WarpedFungusOnAStick => "minecraft:warped_fungus_on_a_stick", + Item::DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", + Item::Bundle => "minecraft:bundle", + Item::MusicDiscWard => "minecraft:music_disc_ward", + Item::AmethystCluster => "minecraft:amethyst_cluster", + Item::StoneAxe => "minecraft:stone_axe", + Item::StraySpawnEgg => "minecraft:stray_spawn_egg", + Item::PolishedDioriteSlab => "minecraft:polished_diorite_slab", + Item::MossyStoneBrickSlab => "minecraft:mossy_stone_brick_slab", + Item::BlackBanner => "minecraft:black_banner", + Item::EvokerSpawnEgg => "minecraft:evoker_spawn_egg", + Item::LightGrayCandle => "minecraft:light_gray_candle", + Item::PufferfishSpawnEgg => "minecraft:pufferfish_spawn_egg", + Item::ExperienceBottle => "minecraft:experience_bottle", + Item::BlackDye => "minecraft:black_dye", + Item::PrismarineShard => "minecraft:prismarine_shard", + Item::TurtleEgg => "minecraft:turtle_egg", + Item::SpruceSlab => "minecraft:spruce_slab", + Item::Chicken => "minecraft:chicken", + Item::AcaciaWood => "minecraft:acacia_wood", + Item::FireCharge => "minecraft:fire_charge", + Item::Comparator => "minecraft:comparator", + Item::PoweredRail => "minecraft:powered_rail", + Item::StoneBrickStairs => "minecraft:stone_brick_stairs", + Item::BubbleCoralFan => "minecraft:bubble_coral_fan", + Item::MusicDisc13 => "minecraft:music_disc_13", + Item::QuartzBricks => "minecraft:quartz_bricks", + Item::HoneyBottle => "minecraft:honey_bottle", + Item::YellowConcretePowder => "minecraft:yellow_concrete_powder", + Item::DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", + Item::Book => "minecraft:book", + Item::Tnt => "minecraft:tnt", + Item::Scute => "minecraft:scute", + Item::ChestMinecart => "minecraft:chest_minecart", + Item::NetheriteAxe => "minecraft:netherite_axe", + Item::DarkOakButton => "minecraft:dark_oak_button", + Item::DiamondBoots => "minecraft:diamond_boots", + Item::TotemOfUndying => "minecraft:totem_of_undying", + Item::GlassPane => "minecraft:glass_pane", + Item::PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", + Item::CobblestoneWall => "minecraft:cobblestone_wall", + Item::MagentaConcretePowder => "minecraft:magenta_concrete_powder", + Item::RedSandstone => "minecraft:red_sandstone", + Item::OrangeConcrete => "minecraft:orange_concrete", + Item::Light => "minecraft:light", + Item::StoneSlab => "minecraft:stone_slab", + Item::String => "minecraft:string", + Item::DragonBreath => "minecraft:dragon_breath", + Item::CrimsonStem => "minecraft:crimson_stem", + } + } + #[doc = "Gets a `Item` by its `namespaced_id`."] + #[inline] + pub fn from_namespaced_id(namespaced_id: &str) -> Option { + match namespaced_id { + "minecraft:deepslate_iron_ore" => Some(Item::DeepslateIronOre), + "minecraft:iron_hoe" => Some(Item::IronHoe), + "minecraft:golden_boots" => Some(Item::GoldenBoots), + "minecraft:bone_block" => Some(Item::BoneBlock), + "minecraft:birch_pressure_plate" => Some(Item::BirchPressurePlate), + "minecraft:crafting_table" => Some(Item::CraftingTable), + "minecraft:iron_horse_armor" => Some(Item::IronHorseArmor), + "minecraft:nether_star" => Some(Item::NetherStar), + "minecraft:nether_quartz_ore" => Some(Item::NetherQuartzOre), + "minecraft:wooden_sword" => Some(Item::WoodenSword), + "minecraft:zombie_head" => Some(Item::ZombieHead), + "minecraft:ravager_spawn_egg" => Some(Item::RavagerSpawnEgg), + "minecraft:chorus_flower" => Some(Item::ChorusFlower), + "minecraft:piglin_banner_pattern" => Some(Item::PiglinBannerPattern), + "minecraft:brown_candle" => Some(Item::BrownCandle), + "minecraft:map" => Some(Item::Map), + "minecraft:birch_trapdoor" => Some(Item::BirchTrapdoor), + "minecraft:vex_spawn_egg" => Some(Item::VexSpawnEgg), + "minecraft:activator_rail" => Some(Item::ActivatorRail), + "minecraft:jungle_planks" => Some(Item::JunglePlanks), + "minecraft:nether_sprouts" => Some(Item::NetherSprouts), + "minecraft:cracked_deepslate_tiles" => Some(Item::CrackedDeepslateTiles), + "minecraft:mossy_stone_brick_stairs" => Some(Item::MossyStoneBrickStairs), + "minecraft:leather_chestplate" => Some(Item::LeatherChestplate), + "minecraft:yellow_stained_glass_pane" => Some(Item::YellowStainedGlassPane), + "minecraft:gray_concrete" => Some(Item::GrayConcrete), + "minecraft:cyan_candle" => Some(Item::CyanCandle), + "minecraft:waxed_cut_copper_slab" => Some(Item::WaxedCutCopperSlab), + "minecraft:black_concrete" => Some(Item::BlackConcrete), + "minecraft:dead_brain_coral" => Some(Item::DeadBrainCoral), + "minecraft:honeycomb" => Some(Item::Honeycomb), + "minecraft:jukebox" => Some(Item::Jukebox), + "minecraft:farmland" => Some(Item::Farmland), + "minecraft:white_terracotta" => Some(Item::WhiteTerracotta), + "minecraft:golden_chestplate" => Some(Item::GoldenChestplate), + "minecraft:cracked_polished_blackstone_bricks" => { + Some(Item::CrackedPolishedBlackstoneBricks) + } + "minecraft:lectern" => Some(Item::Lectern), + "minecraft:red_carpet" => Some(Item::RedCarpet), + "minecraft:prismarine_brick_slab" => Some(Item::PrismarineBrickSlab), + "minecraft:end_stone_brick_wall" => Some(Item::EndStoneBrickWall), + "minecraft:soul_soil" => Some(Item::SoulSoil), + "minecraft:pink_carpet" => Some(Item::PinkCarpet), + "minecraft:charcoal" => Some(Item::Charcoal), + "minecraft:bone" => Some(Item::Bone), + "minecraft:waxed_exposed_cut_copper_stairs" => Some(Item::WaxedExposedCutCopperStairs), + "minecraft:mossy_cobblestone_slab" => Some(Item::MossyCobblestoneSlab), + "minecraft:brewing_stand" => Some(Item::BrewingStand), + "minecraft:red_terracotta" => Some(Item::RedTerracotta), + "minecraft:elytra" => Some(Item::Elytra), + "minecraft:tropical_fish" => Some(Item::TropicalFish), + "minecraft:chainmail_helmet" => Some(Item::ChainmailHelmet), + "minecraft:jigsaw" => Some(Item::Jigsaw), + "minecraft:orange_shulker_box" => Some(Item::OrangeShulkerBox), + "minecraft:dark_oak_pressure_plate" => Some(Item::DarkOakPressurePlate), + "minecraft:deepslate_lapis_ore" => Some(Item::DeepslateLapisOre), + "minecraft:orange_stained_glass_pane" => Some(Item::OrangeStainedGlassPane), + "minecraft:carved_pumpkin" => Some(Item::CarvedPumpkin), + "minecraft:white_shulker_box" => Some(Item::WhiteShulkerBox), + "minecraft:mossy_cobblestone_stairs" => Some(Item::MossyCobblestoneStairs), + "minecraft:deepslate_tiles" => Some(Item::DeepslateTiles), + "minecraft:melon_seeds" => Some(Item::MelonSeeds), + "minecraft:lime_candle" => Some(Item::LimeCandle), + "minecraft:ender_pearl" => Some(Item::EnderPearl), + "minecraft:shroomlight" => Some(Item::Shroomlight), + "minecraft:white_wool" => Some(Item::WhiteWool), + "minecraft:sandstone" => Some(Item::Sandstone), + "minecraft:white_candle" => Some(Item::WhiteCandle), + "minecraft:salmon_bucket" => Some(Item::SalmonBucket), + "minecraft:acacia_leaves" => Some(Item::AcaciaLeaves), + "minecraft:oak_log" => Some(Item::OakLog), + "minecraft:beef" => Some(Item::Beef), + "minecraft:music_disc_blocks" => Some(Item::MusicDiscBlocks), + "minecraft:andesite_stairs" => Some(Item::AndesiteStairs), + "minecraft:end_rod" => Some(Item::EndRod), + "minecraft:end_stone_bricks" => Some(Item::EndStoneBricks), + "minecraft:crimson_door" => Some(Item::CrimsonDoor), + "minecraft:stonecutter" => Some(Item::Stonecutter), + "minecraft:water_bucket" => Some(Item::WaterBucket), + "minecraft:poppy" => Some(Item::Poppy), + "minecraft:stone_brick_wall" => Some(Item::StoneBrickWall), + "minecraft:black_bed" => Some(Item::BlackBed), + "minecraft:prismarine" => Some(Item::Prismarine), + "minecraft:exposed_cut_copper" => Some(Item::ExposedCutCopper), + "minecraft:polished_deepslate_slab" => Some(Item::PolishedDeepslateSlab), + "minecraft:arrow" => Some(Item::Arrow), + "minecraft:green_stained_glass_pane" => Some(Item::GreenStainedGlassPane), + "minecraft:blue_bed" => Some(Item::BlueBed), + "minecraft:stripped_warped_stem" => Some(Item::StrippedWarpedStem), + "minecraft:polished_blackstone" => Some(Item::PolishedBlackstone), + "minecraft:birch_slab" => Some(Item::BirchSlab), + "minecraft:white_concrete_powder" => Some(Item::WhiteConcretePowder), + "minecraft:loom" => Some(Item::Loom), + "minecraft:lily_of_the_valley" => Some(Item::LilyOfTheValley), + "minecraft:diorite_wall" => Some(Item::DioriteWall), + "minecraft:black_glazed_terracotta" => Some(Item::BlackGlazedTerracotta), + "minecraft:rose_bush" => Some(Item::RoseBush), + "minecraft:green_shulker_box" => Some(Item::GreenShulkerBox), + "minecraft:blaze_rod" => Some(Item::BlazeRod), + "minecraft:clock" => Some(Item::Clock), + "minecraft:spruce_leaves" => Some(Item::SpruceLeaves), + "minecraft:light_gray_dye" => Some(Item::LightGrayDye), + "minecraft:mutton" => Some(Item::Mutton), + "minecraft:music_disc_11" => Some(Item::MusicDisc11), + "minecraft:red_mushroom_block" => Some(Item::RedMushroomBlock), + "minecraft:brown_wool" => Some(Item::BrownWool), + "minecraft:cut_copper" => Some(Item::CutCopper), + "minecraft:cartography_table" => Some(Item::CartographyTable), + "minecraft:lily_pad" => Some(Item::LilyPad), + "minecraft:green_carpet" => Some(Item::GreenCarpet), + "minecraft:light_weighted_pressure_plate" => Some(Item::LightWeightedPressurePlate), + "minecraft:dark_oak_sapling" => Some(Item::DarkOakSapling), + "minecraft:magenta_shulker_box" => Some(Item::MagentaShulkerBox), + "minecraft:leather_boots" => Some(Item::LeatherBoots), + "minecraft:deepslate_bricks" => Some(Item::DeepslateBricks), + "minecraft:amethyst_shard" => Some(Item::AmethystShard), + "minecraft:jungle_sign" => Some(Item::JungleSign), + "minecraft:cake" => Some(Item::Cake), + "minecraft:netherite_block" => Some(Item::NetheriteBlock), + "minecraft:light_gray_concrete" => Some(Item::LightGrayConcrete), + "minecraft:dark_oak_wood" => Some(Item::DarkOakWood), + "minecraft:iron_trapdoor" => Some(Item::IronTrapdoor), + "minecraft:dead_tube_coral_block" => Some(Item::DeadTubeCoralBlock), + "minecraft:pink_candle" => Some(Item::PinkCandle), + "minecraft:exposed_copper" => Some(Item::ExposedCopper), + "minecraft:dark_oak_planks" => Some(Item::DarkOakPlanks), + "minecraft:cracked_nether_bricks" => Some(Item::CrackedNetherBricks), + "minecraft:debug_stick" => Some(Item::DebugStick), + "minecraft:polished_deepslate_wall" => Some(Item::PolishedDeepslateWall), + "minecraft:powder_snow_bucket" => Some(Item::PowderSnowBucket), + "minecraft:cyan_bed" => Some(Item::CyanBed), + "minecraft:cat_spawn_egg" => Some(Item::CatSpawnEgg), + "minecraft:flowering_azalea" => Some(Item::FloweringAzalea), + "minecraft:cod" => Some(Item::Cod), + "minecraft:music_disc_chirp" => Some(Item::MusicDiscChirp), + "minecraft:light_blue_terracotta" => Some(Item::LightBlueTerracotta), + "minecraft:pink_banner" => Some(Item::PinkBanner), + "minecraft:light_blue_dye" => Some(Item::LightBlueDye), + "minecraft:purple_dye" => Some(Item::PurpleDye), + "minecraft:command_block" => Some(Item::CommandBlock), + "minecraft:dirt_path" => Some(Item::DirtPath), + "minecraft:stone_button" => Some(Item::StoneButton), + "minecraft:stone_bricks" => Some(Item::StoneBricks), + "minecraft:mushroom_stem" => Some(Item::MushroomStem), + "minecraft:smooth_sandstone" => Some(Item::SmoothSandstone), + "minecraft:strider_spawn_egg" => Some(Item::StriderSpawnEgg), + "minecraft:glass_bottle" => Some(Item::GlassBottle), + "minecraft:skeleton_skull" => Some(Item::SkeletonSkull), + "minecraft:rotten_flesh" => Some(Item::RottenFlesh), + "minecraft:bubble_coral_block" => Some(Item::BubbleCoralBlock), + "minecraft:soul_campfire" => Some(Item::SoulCampfire), + "minecraft:redstone_ore" => Some(Item::RedstoneOre), + "minecraft:yellow_glazed_terracotta" => Some(Item::YellowGlazedTerracotta), + "minecraft:fire_coral_block" => Some(Item::FireCoralBlock), + "minecraft:chorus_plant" => Some(Item::ChorusPlant), + "minecraft:blue_concrete" => Some(Item::BlueConcrete), + "minecraft:raw_copper" => Some(Item::RawCopper), + "minecraft:blackstone" => Some(Item::Blackstone), + "minecraft:purple_candle" => Some(Item::PurpleCandle), + "minecraft:rabbit" => Some(Item::Rabbit), + "minecraft:waxed_exposed_copper" => Some(Item::WaxedExposedCopper), + "minecraft:iron_pickaxe" => Some(Item::IronPickaxe), + "minecraft:granite_wall" => Some(Item::GraniteWall), + "minecraft:zombie_villager_spawn_egg" => Some(Item::ZombieVillagerSpawnEgg), + "minecraft:detector_rail" => Some(Item::DetectorRail), + "minecraft:music_disc_otherside" => Some(Item::MusicDiscOtherside), + "minecraft:spruce_stairs" => Some(Item::SpruceStairs), + "minecraft:nether_brick_stairs" => Some(Item::NetherBrickStairs), + "minecraft:purple_concrete" => Some(Item::PurpleConcrete), + "minecraft:chiseled_sandstone" => Some(Item::ChiseledSandstone), + "minecraft:purple_wool" => Some(Item::PurpleWool), + "minecraft:paper" => Some(Item::Paper), + "minecraft:red_nether_brick_wall" => Some(Item::RedNetherBrickWall), + "minecraft:jungle_button" => Some(Item::JungleButton), + "minecraft:chiseled_nether_bricks" => Some(Item::ChiseledNetherBricks), + "minecraft:glow_ink_sac" => Some(Item::GlowInkSac), + "minecraft:magenta_stained_glass_pane" => Some(Item::MagentaStainedGlassPane), + "minecraft:furnace" => Some(Item::Furnace), + "minecraft:brown_mushroom" => Some(Item::BrownMushroom), + "minecraft:sponge" => Some(Item::Sponge), + "minecraft:stone_pressure_plate" => Some(Item::StonePressurePlate), + "minecraft:netherite_sword" => Some(Item::NetheriteSword), + "minecraft:pumpkin" => Some(Item::Pumpkin), + "minecraft:armor_stand" => Some(Item::ArmorStand), + "minecraft:bat_spawn_egg" => Some(Item::BatSpawnEgg), + "minecraft:dark_oak_slab" => Some(Item::DarkOakSlab), + "minecraft:leather_leggings" => Some(Item::LeatherLeggings), + "minecraft:horse_spawn_egg" => Some(Item::HorseSpawnEgg), + "minecraft:bread" => Some(Item::Bread), + "minecraft:waxed_copper_block" => Some(Item::WaxedCopperBlock), + "minecraft:waxed_cut_copper" => Some(Item::WaxedCutCopper), + "minecraft:waxed_weathered_cut_copper_slab" => Some(Item::WaxedWeatheredCutCopperSlab), + "minecraft:weeping_vines" => Some(Item::WeepingVines), + "minecraft:enchanting_table" => Some(Item::EnchantingTable), + "minecraft:cyan_concrete" => Some(Item::CyanConcrete), + "minecraft:ocelot_spawn_egg" => Some(Item::OcelotSpawnEgg), + "minecraft:beetroot" => Some(Item::Beetroot), + "minecraft:pink_concrete_powder" => Some(Item::PinkConcretePowder), + "minecraft:netherite_boots" => Some(Item::NetheriteBoots), + "minecraft:golden_shovel" => Some(Item::GoldenShovel), + "minecraft:azure_bluet" => Some(Item::AzureBluet), + "minecraft:polished_blackstone_brick_wall" => Some(Item::PolishedBlackstoneBrickWall), + "minecraft:warped_trapdoor" => Some(Item::WarpedTrapdoor), + "minecraft:blue_candle" => Some(Item::BlueCandle), + "minecraft:potion" => Some(Item::Potion), + "minecraft:medium_amethyst_bud" => Some(Item::MediumAmethystBud), + "minecraft:blue_glazed_terracotta" => Some(Item::BlueGlazedTerracotta), + "minecraft:feather" => Some(Item::Feather), + "minecraft:gunpowder" => Some(Item::Gunpowder), + "minecraft:acacia_sign" => Some(Item::AcaciaSign), + "minecraft:ghast_spawn_egg" => Some(Item::GhastSpawnEgg), + "minecraft:tropical_fish_spawn_egg" => Some(Item::TropicalFishSpawnEgg), + "minecraft:polished_blackstone_brick_slab" => Some(Item::PolishedBlackstoneBrickSlab), + "minecraft:oxidized_cut_copper_slab" => Some(Item::OxidizedCutCopperSlab), + "minecraft:dark_oak_fence_gate" => Some(Item::DarkOakFenceGate), + "minecraft:light_blue_glazed_terracotta" => Some(Item::LightBlueGlazedTerracotta), + "minecraft:black_shulker_box" => Some(Item::BlackShulkerBox), + "minecraft:goat_spawn_egg" => Some(Item::GoatSpawnEgg), + "minecraft:brick_wall" => Some(Item::BrickWall), + "minecraft:leather" => Some(Item::Leather), + "minecraft:copper_ore" => Some(Item::CopperOre), + "minecraft:purple_bed" => Some(Item::PurpleBed), + "minecraft:llama_spawn_egg" => Some(Item::LlamaSpawnEgg), + "minecraft:lingering_potion" => Some(Item::LingeringPotion), + "minecraft:suspicious_stew" => Some(Item::SuspiciousStew), + "minecraft:yellow_terracotta" => Some(Item::YellowTerracotta), + "minecraft:chicken_spawn_egg" => Some(Item::ChickenSpawnEgg), + "minecraft:stripped_crimson_stem" => Some(Item::StrippedCrimsonStem), + "minecraft:white_stained_glass_pane" => Some(Item::WhiteStainedGlassPane), + "minecraft:andesite_slab" => Some(Item::AndesiteSlab), + "minecraft:diamond_leggings" => Some(Item::DiamondLeggings), + "minecraft:carrot" => Some(Item::Carrot), + "minecraft:warped_stem" => Some(Item::WarpedStem), + "minecraft:warped_stairs" => Some(Item::WarpedStairs), + "minecraft:light_blue_stained_glass" => Some(Item::LightBlueStainedGlass), + "minecraft:oak_sign" => Some(Item::OakSign), + "minecraft:fletching_table" => Some(Item::FletchingTable), + "minecraft:green_glazed_terracotta" => Some(Item::GreenGlazedTerracotta), + "minecraft:gray_candle" => Some(Item::GrayCandle), + "minecraft:mojang_banner_pattern" => Some(Item::MojangBannerPattern), + "minecraft:dripstone_block" => Some(Item::DripstoneBlock), + "minecraft:waxed_weathered_copper" => Some(Item::WaxedWeatheredCopper), + "minecraft:waxed_oxidized_cut_copper" => Some(Item::WaxedOxidizedCutCopper), + "minecraft:crimson_nylium" => Some(Item::CrimsonNylium), + "minecraft:repeating_command_block" => Some(Item::RepeatingCommandBlock), + "minecraft:oak_button" => Some(Item::OakButton), + "minecraft:orange_tulip" => Some(Item::OrangeTulip), + "minecraft:light_blue_concrete_powder" => Some(Item::LightBlueConcretePowder), + "minecraft:sand" => Some(Item::Sand), + "minecraft:copper_block" => Some(Item::CopperBlock), + "minecraft:gold_ingot" => Some(Item::GoldIngot), + "minecraft:apple" => Some(Item::Apple), + "minecraft:black_candle" => Some(Item::BlackCandle), + "minecraft:cyan_shulker_box" => Some(Item::CyanShulkerBox), + "minecraft:birch_door" => Some(Item::BirchDoor), + "minecraft:stone_sword" => Some(Item::StoneSword), + "minecraft:jungle_slab" => Some(Item::JungleSlab), + "minecraft:purple_concrete_powder" => Some(Item::PurpleConcretePowder), + "minecraft:light_gray_concrete_powder" => Some(Item::LightGrayConcretePowder), + "minecraft:spider_spawn_egg" => Some(Item::SpiderSpawnEgg), + "minecraft:large_amethyst_bud" => Some(Item::LargeAmethystBud), + "minecraft:pink_bed" => Some(Item::PinkBed), + "minecraft:jungle_trapdoor" => Some(Item::JungleTrapdoor), + "minecraft:cave_spider_spawn_egg" => Some(Item::CaveSpiderSpawnEgg), + "minecraft:nether_brick_fence" => Some(Item::NetherBrickFence), + "minecraft:pig_spawn_egg" => Some(Item::PigSpawnEgg), + "minecraft:birch_wood" => Some(Item::BirchWood), + "minecraft:jungle_stairs" => Some(Item::JungleStairs), + "minecraft:beehive" => Some(Item::Beehive), + "minecraft:red_sandstone_stairs" => Some(Item::RedSandstoneStairs), + "minecraft:villager_spawn_egg" => Some(Item::VillagerSpawnEgg), + "minecraft:cut_sandstone_slab" => Some(Item::CutSandstoneSlab), + "minecraft:warped_fungus" => Some(Item::WarpedFungus), + "minecraft:slime_spawn_egg" => Some(Item::SlimeSpawnEgg), + "minecraft:spruce_wood" => Some(Item::SpruceWood), + "minecraft:deepslate" => Some(Item::Deepslate), + "minecraft:yellow_shulker_box" => Some(Item::YellowShulkerBox), + "minecraft:dark_prismarine_stairs" => Some(Item::DarkPrismarineStairs), + "minecraft:hopper_minecart" => Some(Item::HopperMinecart), + "minecraft:dead_bubble_coral_block" => Some(Item::DeadBubbleCoralBlock), + "minecraft:raw_copper_block" => Some(Item::RawCopperBlock), + "minecraft:flint" => Some(Item::Flint), + "minecraft:smooth_quartz_slab" => Some(Item::SmoothQuartzSlab), + "minecraft:structure_block" => Some(Item::StructureBlock), + "minecraft:iron_sword" => Some(Item::IronSword), + "minecraft:compass" => Some(Item::Compass), + "minecraft:golden_hoe" => Some(Item::GoldenHoe), + "minecraft:peony" => Some(Item::Peony), + "minecraft:netherite_chestplate" => Some(Item::NetheriteChestplate), + "minecraft:iron_block" => Some(Item::IronBlock), + "minecraft:crimson_trapdoor" => Some(Item::CrimsonTrapdoor), + "minecraft:globe_banner_pattern" => Some(Item::GlobeBannerPattern), + "minecraft:light_gray_terracotta" => Some(Item::LightGrayTerracotta), + "minecraft:mossy_stone_bricks" => Some(Item::MossyStoneBricks), + "minecraft:light_gray_bed" => Some(Item::LightGrayBed), + "minecraft:sticky_piston" => Some(Item::StickyPiston), + "minecraft:cyan_stained_glass_pane" => Some(Item::CyanStainedGlassPane), + "minecraft:polished_deepslate_stairs" => Some(Item::PolishedDeepslateStairs), + "minecraft:spruce_pressure_plate" => Some(Item::SprucePressurePlate), + "minecraft:cooked_salmon" => Some(Item::CookedSalmon), + "minecraft:granite" => Some(Item::Granite), + "minecraft:red_mushroom" => Some(Item::RedMushroom), + "minecraft:end_stone" => Some(Item::EndStone), + "minecraft:nether_brick" => Some(Item::NetherBrick), + "minecraft:crimson_button" => Some(Item::CrimsonButton), + "minecraft:dried_kelp" => Some(Item::DriedKelp), + "minecraft:sugar_cane" => Some(Item::SugarCane), + "minecraft:fire_coral_fan" => Some(Item::FireCoralFan), + "minecraft:blue_shulker_box" => Some(Item::BlueShulkerBox), + "minecraft:creeper_head" => Some(Item::CreeperHead), + "minecraft:smithing_table" => Some(Item::SmithingTable), + "minecraft:azalea" => Some(Item::Azalea), + "minecraft:fermented_spider_eye" => Some(Item::FermentedSpiderEye), + "minecraft:birch_boat" => Some(Item::BirchBoat), + "minecraft:deepslate_tile_wall" => Some(Item::DeepslateTileWall), + "minecraft:stone_hoe" => Some(Item::StoneHoe), + "minecraft:gray_stained_glass_pane" => Some(Item::GrayStainedGlassPane), + "minecraft:diamond_helmet" => Some(Item::DiamondHelmet), + "minecraft:dead_brain_coral_block" => Some(Item::DeadBrainCoralBlock), + "minecraft:cut_sandstone" => Some(Item::CutSandstone), + "minecraft:slime_ball" => Some(Item::SlimeBall), + "minecraft:gilded_blackstone" => Some(Item::GildedBlackstone), + "minecraft:witch_spawn_egg" => Some(Item::WitchSpawnEgg), + "minecraft:blackstone_wall" => Some(Item::BlackstoneWall), + "minecraft:fire_coral" => Some(Item::FireCoral), + "minecraft:redstone" => Some(Item::Redstone), + "minecraft:written_book" => Some(Item::WrittenBook), + "minecraft:waxed_cut_copper_stairs" => Some(Item::WaxedCutCopperStairs), + "minecraft:granite_slab" => Some(Item::GraniteSlab), + "minecraft:scaffolding" => Some(Item::Scaffolding), + "minecraft:lime_dye" => Some(Item::LimeDye), + "minecraft:polished_blackstone_button" => Some(Item::PolishedBlackstoneButton), + "minecraft:dead_bubble_coral_fan" => Some(Item::DeadBubbleCoralFan), + "minecraft:glowstone" => Some(Item::Glowstone), + "minecraft:horn_coral" => Some(Item::HornCoral), + "minecraft:squid_spawn_egg" => Some(Item::SquidSpawnEgg), + "minecraft:yellow_carpet" => Some(Item::YellowCarpet), + "minecraft:lapis_lazuli" => Some(Item::LapisLazuli), + "minecraft:warped_wart_block" => Some(Item::WarpedWartBlock), + "minecraft:smooth_quartz" => Some(Item::SmoothQuartz), + "minecraft:cobbled_deepslate" => Some(Item::CobbledDeepslate), + "minecraft:tripwire_hook" => Some(Item::TripwireHook), + "minecraft:dropper" => Some(Item::Dropper), + "minecraft:magenta_glazed_terracotta" => Some(Item::MagentaGlazedTerracotta), + "minecraft:soul_sand" => Some(Item::SoulSand), + "minecraft:potato" => Some(Item::Potato), + "minecraft:magma_cream" => Some(Item::MagmaCream), + "minecraft:cow_spawn_egg" => Some(Item::CowSpawnEgg), + "minecraft:trapped_chest" => Some(Item::TrappedChest), + "minecraft:jungle_fence_gate" => Some(Item::JungleFenceGate), + "minecraft:golden_apple" => Some(Item::GoldenApple), + "minecraft:dark_oak_fence" => Some(Item::DarkOakFence), + "minecraft:dead_horn_coral" => Some(Item::DeadHornCoral), + "minecraft:dark_oak_leaves" => Some(Item::DarkOakLeaves), + "minecraft:dead_fire_coral" => Some(Item::DeadFireCoral), + "minecraft:iron_shovel" => Some(Item::IronShovel), + "minecraft:enchanted_book" => Some(Item::EnchantedBook), + "minecraft:white_tulip" => Some(Item::WhiteTulip), + "minecraft:acacia_button" => Some(Item::AcaciaButton), + "minecraft:emerald" => Some(Item::Emerald), + "minecraft:sandstone_slab" => Some(Item::SandstoneSlab), + "minecraft:iron_door" => Some(Item::IronDoor), + "minecraft:raw_iron" => Some(Item::RawIron), + "minecraft:lapis_block" => Some(Item::LapisBlock), + "minecraft:big_dripleaf" => Some(Item::BigDripleaf), + "minecraft:blue_concrete_powder" => Some(Item::BlueConcretePowder), + "minecraft:barrel" => Some(Item::Barrel), + "minecraft:magenta_stained_glass" => Some(Item::MagentaStainedGlass), + "minecraft:brown_concrete" => Some(Item::BrownConcrete), + "minecraft:pink_tulip" => Some(Item::PinkTulip), + "minecraft:gray_banner" => Some(Item::GrayBanner), + "minecraft:bedrock" => Some(Item::Bedrock), + "minecraft:dead_fire_coral_block" => Some(Item::DeadFireCoralBlock), + "minecraft:anvil" => Some(Item::Anvil), + "minecraft:stone_pickaxe" => Some(Item::StonePickaxe), + "minecraft:leather_helmet" => Some(Item::LeatherHelmet), + "minecraft:porkchop" => Some(Item::Porkchop), + "minecraft:stone_brick_slab" => Some(Item::StoneBrickSlab), + "minecraft:orange_candle" => Some(Item::OrangeCandle), + "minecraft:blue_wool" => Some(Item::BlueWool), + "minecraft:moss_carpet" => Some(Item::MossCarpet), + "minecraft:silverfish_spawn_egg" => Some(Item::SilverfishSpawnEgg), + "minecraft:spectral_arrow" => Some(Item::SpectralArrow), + "minecraft:cooked_rabbit" => Some(Item::CookedRabbit), + "minecraft:iron_chestplate" => Some(Item::IronChestplate), + "minecraft:gray_concrete_powder" => Some(Item::GrayConcretePowder), + "minecraft:warped_planks" => Some(Item::WarpedPlanks), + "minecraft:dead_tube_coral" => Some(Item::DeadTubeCoral), + "minecraft:drowned_spawn_egg" => Some(Item::DrownedSpawnEgg), + "minecraft:splash_potion" => Some(Item::SplashPotion), + "minecraft:wooden_shovel" => Some(Item::WoodenShovel), + "minecraft:warped_roots" => Some(Item::WarpedRoots), + "minecraft:quartz_pillar" => Some(Item::QuartzPillar), + "minecraft:glistering_melon_slice" => Some(Item::GlisteringMelonSlice), + "minecraft:crimson_stairs" => Some(Item::CrimsonStairs), + "minecraft:obsidian" => Some(Item::Obsidian), + "minecraft:red_candle" => Some(Item::RedCandle), + "minecraft:soul_torch" => Some(Item::SoulTorch), + "minecraft:ghast_tear" => Some(Item::GhastTear), + "minecraft:diamond" => Some(Item::Diamond), + "minecraft:end_stone_brick_slab" => Some(Item::EndStoneBrickSlab), + "minecraft:gray_glazed_terracotta" => Some(Item::GrayGlazedTerracotta), + "minecraft:oak_trapdoor" => Some(Item::OakTrapdoor), + "minecraft:lime_banner" => Some(Item::LimeBanner), + "minecraft:dark_oak_trapdoor" => Some(Item::DarkOakTrapdoor), + "minecraft:oak_sapling" => Some(Item::OakSapling), + "minecraft:pufferfish_bucket" => Some(Item::PufferfishBucket), + "minecraft:clay" => Some(Item::Clay), + "minecraft:cyan_concrete_powder" => Some(Item::CyanConcretePowder), + "minecraft:gravel" => Some(Item::Gravel), + "minecraft:yellow_stained_glass" => Some(Item::YellowStainedGlass), + "minecraft:gray_wool" => Some(Item::GrayWool), + "minecraft:blue_ice" => Some(Item::BlueIce), + "minecraft:stripped_dark_oak_log" => Some(Item::StrippedDarkOakLog), + "minecraft:fern" => Some(Item::Fern), + "minecraft:milk_bucket" => Some(Item::MilkBucket), + "minecraft:brain_coral_block" => Some(Item::BrainCoralBlock), + "minecraft:orange_banner" => Some(Item::OrangeBanner), + "minecraft:filled_map" => Some(Item::FilledMap), + "minecraft:red_nether_brick_slab" => Some(Item::RedNetherBrickSlab), + "minecraft:polished_granite_stairs" => Some(Item::PolishedGraniteStairs), + "minecraft:chainmail_boots" => Some(Item::ChainmailBoots), + "minecraft:oak_door" => Some(Item::OakDoor), + "minecraft:sheep_spawn_egg" => Some(Item::SheepSpawnEgg), + "minecraft:oak_wood" => Some(Item::OakWood), + "minecraft:shield" => Some(Item::Shield), + "minecraft:blast_furnace" => Some(Item::BlastFurnace), + "minecraft:red_stained_glass_pane" => Some(Item::RedStainedGlassPane), + "minecraft:spyglass" => Some(Item::Spyglass), + "minecraft:wandering_trader_spawn_egg" => Some(Item::WanderingTraderSpawnEgg), + "minecraft:repeater" => Some(Item::Repeater), + "minecraft:ladder" => Some(Item::Ladder), + "minecraft:horn_coral_fan" => Some(Item::HornCoralFan), + "minecraft:white_concrete" => Some(Item::WhiteConcrete), + "minecraft:spruce_planks" => Some(Item::SprucePlanks), + "minecraft:purpur_pillar" => Some(Item::PurpurPillar), + "minecraft:blackstone_slab" => Some(Item::BlackstoneSlab), + "minecraft:dark_oak_door" => Some(Item::DarkOakDoor), + "minecraft:seagrass" => Some(Item::Seagrass), + "minecraft:deepslate_brick_slab" => Some(Item::DeepslateBrickSlab), + "minecraft:cut_copper_stairs" => Some(Item::CutCopperStairs), + "minecraft:stone_stairs" => Some(Item::StoneStairs), + "minecraft:diorite_slab" => Some(Item::DioriteSlab), + "minecraft:polished_blackstone_brick_stairs" => { + Some(Item::PolishedBlackstoneBrickStairs) + } + "minecraft:andesite_wall" => Some(Item::AndesiteWall), + "minecraft:pink_dye" => Some(Item::PinkDye), + "minecraft:phantom_spawn_egg" => Some(Item::PhantomSpawnEgg), + "minecraft:lime_stained_glass" => Some(Item::LimeStainedGlass), + "minecraft:skeleton_horse_spawn_egg" => Some(Item::SkeletonHorseSpawnEgg), + "minecraft:spruce_fence_gate" => Some(Item::SpruceFenceGate), + "minecraft:bamboo" => Some(Item::Bamboo), + "minecraft:dark_oak_stairs" => Some(Item::DarkOakStairs), + "minecraft:light_blue_banner" => Some(Item::LightBlueBanner), + "minecraft:conduit" => Some(Item::Conduit), + "minecraft:purple_carpet" => Some(Item::PurpleCarpet), + "minecraft:cornflower" => Some(Item::Cornflower), + "minecraft:wheat_seeds" => Some(Item::WheatSeeds), + "minecraft:music_disc_mellohi" => Some(Item::MusicDiscMellohi), + "minecraft:smoker" => Some(Item::Smoker), + "minecraft:mossy_cobblestone" => Some(Item::MossyCobblestone), + "minecraft:waxed_weathered_cut_copper" => Some(Item::WaxedWeatheredCutCopper), + "minecraft:netherrack" => Some(Item::Netherrack), + "minecraft:brown_terracotta" => Some(Item::BrownTerracotta), + "minecraft:piston" => Some(Item::Piston), + "minecraft:chorus_fruit" => Some(Item::ChorusFruit), + "minecraft:redstone_lamp" => Some(Item::RedstoneLamp), + "minecraft:acacia_pressure_plate" => Some(Item::AcaciaPressurePlate), + "minecraft:purple_banner" => Some(Item::PurpleBanner), + "minecraft:light_blue_carpet" => Some(Item::LightBlueCarpet), + "minecraft:cyan_wool" => Some(Item::CyanWool), + "minecraft:cocoa_beans" => Some(Item::CocoaBeans), + "minecraft:brown_stained_glass_pane" => Some(Item::BrownStainedGlassPane), + "minecraft:cod_spawn_egg" => Some(Item::CodSpawnEgg), + "minecraft:crimson_fence" => Some(Item::CrimsonFence), + "minecraft:leather_horse_armor" => Some(Item::LeatherHorseArmor), + "minecraft:andesite" => Some(Item::Andesite), + "minecraft:oak_slab" => Some(Item::OakSlab), + "minecraft:wither_skeleton_skull" => Some(Item::WitherSkeletonSkull), + "minecraft:hay_block" => Some(Item::HayBlock), + "minecraft:brown_glazed_terracotta" => Some(Item::BrownGlazedTerracotta), + "minecraft:pink_wool" => Some(Item::PinkWool), + "minecraft:ink_sac" => Some(Item::InkSac), + "minecraft:acacia_planks" => Some(Item::AcaciaPlanks), + "minecraft:end_portal_frame" => Some(Item::EndPortalFrame), + "minecraft:cookie" => Some(Item::Cookie), + "minecraft:cracked_deepslate_bricks" => Some(Item::CrackedDeepslateBricks), + "minecraft:firework_star" => Some(Item::FireworkStar), + "minecraft:light_blue_candle" => Some(Item::LightBlueCandle), + "minecraft:nether_gold_ore" => Some(Item::NetherGoldOre), + "minecraft:cut_red_sandstone" => Some(Item::CutRedSandstone), + "minecraft:cobbled_deepslate_slab" => Some(Item::CobbledDeepslateSlab), + "minecraft:crimson_fence_gate" => Some(Item::CrimsonFenceGate), + "minecraft:deepslate_brick_stairs" => Some(Item::DeepslateBrickStairs), + "minecraft:jungle_boat" => Some(Item::JungleBoat), + "minecraft:structure_void" => Some(Item::StructureVoid), + "minecraft:pink_glazed_terracotta" => Some(Item::PinkGlazedTerracotta), + "minecraft:diorite_stairs" => Some(Item::DioriteStairs), + "minecraft:weathered_cut_copper_slab" => Some(Item::WeatheredCutCopperSlab), + "minecraft:magenta_carpet" => Some(Item::MagentaCarpet), + "minecraft:waxed_oxidized_cut_copper_slab" => Some(Item::WaxedOxidizedCutCopperSlab), + "minecraft:purple_stained_glass" => Some(Item::PurpleStainedGlass), + "minecraft:lime_shulker_box" => Some(Item::LimeShulkerBox), + "minecraft:black_concrete_powder" => Some(Item::BlackConcretePowder), + "minecraft:rail" => Some(Item::Rail), + "minecraft:dried_kelp_block" => Some(Item::DriedKelpBlock), + "minecraft:acacia_log" => Some(Item::AcaciaLog), + "minecraft:chiseled_quartz_block" => Some(Item::ChiseledQuartzBlock), + "minecraft:piglin_brute_spawn_egg" => Some(Item::PiglinBruteSpawnEgg), + "minecraft:deepslate_coal_ore" => Some(Item::DeepslateCoalOre), + "minecraft:player_head" => Some(Item::PlayerHead), + "minecraft:chiseled_stone_bricks" => Some(Item::ChiseledStoneBricks), + "minecraft:acacia_sapling" => Some(Item::AcaciaSapling), + "minecraft:brown_carpet" => Some(Item::BrownCarpet), + "minecraft:cobblestone_stairs" => Some(Item::CobblestoneStairs), + "minecraft:beacon" => Some(Item::Beacon), + "minecraft:cobbled_deepslate_wall" => Some(Item::CobbledDeepslateWall), + "minecraft:infested_cobblestone" => Some(Item::InfestedCobblestone), + "minecraft:warped_pressure_plate" => Some(Item::WarpedPressurePlate), + "minecraft:netherite_pickaxe" => Some(Item::NetheritePickaxe), + "minecraft:endermite_spawn_egg" => Some(Item::EndermiteSpawnEgg), + "minecraft:oak_fence" => Some(Item::OakFence), + "minecraft:brown_bed" => Some(Item::BrownBed), + "minecraft:stripped_warped_hyphae" => Some(Item::StrippedWarpedHyphae), + "minecraft:waxed_exposed_cut_copper" => Some(Item::WaxedExposedCutCopper), + "minecraft:red_nether_bricks" => Some(Item::RedNetherBricks), + "minecraft:red_wool" => Some(Item::RedWool), + "minecraft:polished_andesite_slab" => Some(Item::PolishedAndesiteSlab), + "minecraft:nether_wart" => Some(Item::NetherWart), + "minecraft:yellow_wool" => Some(Item::YellowWool), + "minecraft:black_carpet" => Some(Item::BlackCarpet), + "minecraft:emerald_block" => Some(Item::EmeraldBlock), + "minecraft:light_gray_wool" => Some(Item::LightGrayWool), + "minecraft:infested_deepslate" => Some(Item::InfestedDeepslate), + "minecraft:smooth_sandstone_slab" => Some(Item::SmoothSandstoneSlab), + "minecraft:acacia_trapdoor" => Some(Item::AcaciaTrapdoor), + "minecraft:brown_dye" => Some(Item::BrownDye), + "minecraft:emerald_ore" => Some(Item::EmeraldOre), + "minecraft:nautilus_shell" => Some(Item::NautilusShell), + "minecraft:tuff" => Some(Item::Tuff), + "minecraft:chest" => Some(Item::Chest), + "minecraft:snow" => Some(Item::Snow), + "minecraft:twisting_vines" => Some(Item::TwistingVines), + "minecraft:gray_dye" => Some(Item::GrayDye), + "minecraft:smooth_red_sandstone" => Some(Item::SmoothRedSandstone), + "minecraft:rooted_dirt" => Some(Item::RootedDirt), + "minecraft:raw_iron_block" => Some(Item::RawIronBlock), + "minecraft:painting" => Some(Item::Painting), + "minecraft:shulker_spawn_egg" => Some(Item::ShulkerSpawnEgg), + "minecraft:flint_and_steel" => Some(Item::FlintAndSteel), + "minecraft:orange_stained_glass" => Some(Item::OrangeStainedGlass), + "minecraft:amethyst_block" => Some(Item::AmethystBlock), + "minecraft:chiseled_red_sandstone" => Some(Item::ChiseledRedSandstone), + "minecraft:lime_concrete" => Some(Item::LimeConcrete), + "minecraft:spruce_trapdoor" => Some(Item::SpruceTrapdoor), + "minecraft:ancient_debris" => Some(Item::AncientDebris), + "minecraft:light_gray_stained_glass_pane" => Some(Item::LightGrayStainedGlassPane), + "minecraft:redstone_block" => Some(Item::RedstoneBlock), + "minecraft:piglin_spawn_egg" => Some(Item::PiglinSpawnEgg), + "minecraft:name_tag" => Some(Item::NameTag), + "minecraft:smooth_red_sandstone_slab" => Some(Item::SmoothRedSandstoneSlab), + "minecraft:warped_sign" => Some(Item::WarpedSign), + "minecraft:crossbow" => Some(Item::Crossbow), + "minecraft:axolotl_spawn_egg" => Some(Item::AxolotlSpawnEgg), + "minecraft:netherite_helmet" => Some(Item::NetheriteHelmet), + "minecraft:golden_axe" => Some(Item::GoldenAxe), + "minecraft:music_disc_cat" => Some(Item::MusicDiscCat), + "minecraft:diorite" => Some(Item::Diorite), + "minecraft:warped_slab" => Some(Item::WarpedSlab), + "minecraft:nether_brick_slab" => Some(Item::NetherBrickSlab), + "minecraft:smooth_sandstone_stairs" => Some(Item::SmoothSandstoneStairs), + "minecraft:netherite_ingot" => Some(Item::NetheriteIngot), + "minecraft:hanging_roots" => Some(Item::HangingRoots), + "minecraft:dead_horn_coral_block" => Some(Item::DeadHornCoralBlock), + "minecraft:zoglin_spawn_egg" => Some(Item::ZoglinSpawnEgg), + "minecraft:diamond_block" => Some(Item::DiamondBlock), + "minecraft:stripped_birch_wood" => Some(Item::StrippedBirchWood), + "minecraft:orange_glazed_terracotta" => Some(Item::OrangeGlazedTerracotta), + "minecraft:netherite_leggings" => Some(Item::NetheriteLeggings), + "minecraft:diamond_shovel" => Some(Item::DiamondShovel), + "minecraft:trident" => Some(Item::Trident), + "minecraft:birch_fence" => Some(Item::BirchFence), + "minecraft:wet_sponge" => Some(Item::WetSponge), + "minecraft:rabbit_hide" => Some(Item::RabbitHide), + "minecraft:infested_stone_bricks" => Some(Item::InfestedStoneBricks), + "minecraft:magenta_terracotta" => Some(Item::MagentaTerracotta), + "minecraft:weathered_copper" => Some(Item::WeatheredCopper), + "minecraft:gray_carpet" => Some(Item::GrayCarpet), + "minecraft:jungle_leaves" => Some(Item::JungleLeaves), + "minecraft:blue_orchid" => Some(Item::BlueOrchid), + "minecraft:spawner" => Some(Item::Spawner), + "minecraft:cyan_glazed_terracotta" => Some(Item::CyanGlazedTerracotta), + "minecraft:cooked_porkchop" => Some(Item::CookedPorkchop), + "minecraft:husk_spawn_egg" => Some(Item::HuskSpawnEgg), + "minecraft:skeleton_spawn_egg" => Some(Item::SkeletonSpawnEgg), + "minecraft:golden_horse_armor" => Some(Item::GoldenHorseArmor), + "minecraft:orange_wool" => Some(Item::OrangeWool), + "minecraft:heart_of_the_sea" => Some(Item::HeartOfTheSea), + "minecraft:spruce_log" => Some(Item::SpruceLog), + "minecraft:cobblestone_slab" => Some(Item::CobblestoneSlab), + "minecraft:bone_meal" => Some(Item::BoneMeal), + "minecraft:netherite_scrap" => Some(Item::NetheriteScrap), + "minecraft:music_disc_wait" => Some(Item::MusicDiscWait), + "minecraft:lime_wool" => Some(Item::LimeWool), + "minecraft:raw_gold_block" => Some(Item::RawGoldBlock), + "minecraft:light_blue_stained_glass_pane" => Some(Item::LightBlueStainedGlassPane), + "minecraft:oak_pressure_plate" => Some(Item::OakPressurePlate), + "minecraft:wooden_pickaxe" => Some(Item::WoodenPickaxe), + "minecraft:enchanted_golden_apple" => Some(Item::EnchantedGoldenApple), + "minecraft:sweet_berries" => Some(Item::SweetBerries), + "minecraft:red_dye" => Some(Item::RedDye), + "minecraft:prismarine_brick_stairs" => Some(Item::PrismarineBrickStairs), + "minecraft:cut_red_sandstone_slab" => Some(Item::CutRedSandstoneSlab), + "minecraft:gold_block" => Some(Item::GoldBlock), + "minecraft:iron_helmet" => Some(Item::IronHelmet), + "minecraft:glow_lichen" => Some(Item::GlowLichen), + "minecraft:mossy_stone_brick_wall" => Some(Item::MossyStoneBrickWall), + "minecraft:stripped_birch_log" => Some(Item::StrippedBirchLog), + "minecraft:chainmail_chestplate" => Some(Item::ChainmailChestplate), + "minecraft:pumpkin_seeds" => Some(Item::PumpkinSeeds), + "minecraft:iron_axe" => Some(Item::IronAxe), + "minecraft:cut_copper_slab" => Some(Item::CutCopperSlab), + "minecraft:baked_potato" => Some(Item::BakedPotato), + "minecraft:diamond_sword" => Some(Item::DiamondSword), + "minecraft:bubble_coral" => Some(Item::BubbleCoral), + "minecraft:red_nether_brick_stairs" => Some(Item::RedNetherBrickStairs), + "minecraft:wooden_hoe" => Some(Item::WoodenHoe), + "minecraft:lantern" => Some(Item::Lantern), + "minecraft:dragon_egg" => Some(Item::DragonEgg), + "minecraft:exposed_cut_copper_slab" => Some(Item::ExposedCutCopperSlab), + "minecraft:magenta_concrete" => Some(Item::MagentaConcrete), + "minecraft:axolotl_bucket" => Some(Item::AxolotlBucket), + "minecraft:mule_spawn_egg" => Some(Item::MuleSpawnEgg), + "minecraft:pumpkin_pie" => Some(Item::PumpkinPie), + "minecraft:infested_stone" => Some(Item::InfestedStone), + "minecraft:magma_cube_spawn_egg" => Some(Item::MagmaCubeSpawnEgg), + "minecraft:tube_coral_block" => Some(Item::TubeCoralBlock), + "minecraft:blue_banner" => Some(Item::BlueBanner), + "minecraft:coal_block" => Some(Item::CoalBlock), + "minecraft:stripped_acacia_wood" => Some(Item::StrippedAcaciaWood), + "minecraft:beetroot_soup" => Some(Item::BeetrootSoup), + "minecraft:barrier" => Some(Item::Barrier), + "minecraft:end_crystal" => Some(Item::EndCrystal), + "minecraft:mycelium" => Some(Item::Mycelium), + "minecraft:spore_blossom" => Some(Item::SporeBlossom), + "minecraft:wheat" => Some(Item::Wheat), + "minecraft:prismarine_stairs" => Some(Item::PrismarineStairs), + "minecraft:purple_terracotta" => Some(Item::PurpleTerracotta), + "minecraft:tropical_fish_bucket" => Some(Item::TropicalFishBucket), + "minecraft:lever" => Some(Item::Lever), + "minecraft:orange_dye" => Some(Item::OrangeDye), + "minecraft:green_bed" => Some(Item::GreenBed), + "minecraft:polished_blackstone_bricks" => Some(Item::PolishedBlackstoneBricks), + "minecraft:red_concrete_powder" => Some(Item::RedConcretePowder), + "minecraft:music_disc_stal" => Some(Item::MusicDiscStal), + "minecraft:crimson_hyphae" => Some(Item::CrimsonHyphae), + "minecraft:flowering_azalea_leaves" => Some(Item::FloweringAzaleaLeaves), + "minecraft:polished_blackstone_wall" => Some(Item::PolishedBlackstoneWall), + "minecraft:polished_diorite_stairs" => Some(Item::PolishedDioriteStairs), + "minecraft:black_stained_glass" => Some(Item::BlackStainedGlass), + "minecraft:green_wool" => Some(Item::GreenWool), + "minecraft:acacia_stairs" => Some(Item::AcaciaStairs), + "minecraft:chain" => Some(Item::Chain), + "minecraft:light_blue_wool" => Some(Item::LightBlueWool), + "minecraft:black_stained_glass_pane" => Some(Item::BlackStainedGlassPane), + "minecraft:candle" => Some(Item::Candle), + "minecraft:chipped_anvil" => Some(Item::ChippedAnvil), + "minecraft:lava_bucket" => Some(Item::LavaBucket), + "minecraft:salmon_spawn_egg" => Some(Item::SalmonSpawnEgg), + "minecraft:stick" => Some(Item::Stick), + "minecraft:dirt" => Some(Item::Dirt), + "minecraft:cyan_stained_glass" => Some(Item::CyanStainedGlass), + "minecraft:stripped_jungle_wood" => Some(Item::StrippedJungleWood), + "minecraft:crimson_roots" => Some(Item::CrimsonRoots), + "minecraft:sea_lantern" => Some(Item::SeaLantern), + "minecraft:heavy_weighted_pressure_plate" => Some(Item::HeavyWeightedPressurePlate), + "minecraft:white_dye" => Some(Item::WhiteDye), + "minecraft:green_dye" => Some(Item::GreenDye), + "minecraft:jungle_wood" => Some(Item::JungleWood), + "minecraft:bee_nest" => Some(Item::BeeNest), + "minecraft:dark_prismarine" => Some(Item::DarkPrismarine), + "minecraft:dark_prismarine_slab" => Some(Item::DarkPrismarineSlab), + "minecraft:chainmail_leggings" => Some(Item::ChainmailLeggings), + "minecraft:tnt_minecart" => Some(Item::TntMinecart), + "minecraft:dark_oak_boat" => Some(Item::DarkOakBoat), + "minecraft:iron_bars" => Some(Item::IronBars), + "minecraft:lilac" => Some(Item::Lilac), + "minecraft:cyan_banner" => Some(Item::CyanBanner), + "minecraft:yellow_concrete" => Some(Item::YellowConcrete), + "minecraft:light_gray_stained_glass" => Some(Item::LightGrayStainedGlass), + "minecraft:cobblestone" => Some(Item::Cobblestone), + "minecraft:grass_block" => Some(Item::GrassBlock), + "minecraft:waxed_oxidized_cut_copper_stairs" => { + Some(Item::WaxedOxidizedCutCopperStairs) + } + "minecraft:gray_stained_glass" => Some(Item::GrayStainedGlass), + "minecraft:black_wool" => Some(Item::BlackWool), + "minecraft:blaze_spawn_egg" => Some(Item::BlazeSpawnEgg), + "minecraft:birch_sign" => Some(Item::BirchSign), + "minecraft:infested_cracked_stone_bricks" => Some(Item::InfestedCrackedStoneBricks), + "minecraft:music_disc_strad" => Some(Item::MusicDiscStrad), + "minecraft:brown_mushroom_block" => Some(Item::BrownMushroomBlock), + "minecraft:brown_stained_glass" => Some(Item::BrownStainedGlass), + "minecraft:beetroot_seeds" => Some(Item::BeetrootSeeds), + "minecraft:stripped_oak_log" => Some(Item::StrippedOakLog), + "minecraft:purpur_stairs" => Some(Item::PurpurStairs), + "minecraft:glowstone_dust" => Some(Item::GlowstoneDust), + "minecraft:smooth_quartz_stairs" => Some(Item::SmoothQuartzStairs), + "minecraft:stone" => Some(Item::Stone), + "minecraft:sandstone_wall" => Some(Item::SandstoneWall), + "minecraft:turtle_spawn_egg" => Some(Item::TurtleSpawnEgg), + "minecraft:dark_oak_log" => Some(Item::DarkOakLog), + "minecraft:clay_ball" => Some(Item::ClayBall), + "minecraft:crimson_slab" => Some(Item::CrimsonSlab), + "minecraft:warped_door" => Some(Item::WarpedDoor), + "minecraft:stone_shovel" => Some(Item::StoneShovel), + "minecraft:shulker_box" => Some(Item::ShulkerBox), + "minecraft:egg" => Some(Item::Egg), + "minecraft:moss_block" => Some(Item::MossBlock), + "minecraft:white_glazed_terracotta" => Some(Item::WhiteGlazedTerracotta), + "minecraft:end_stone_brick_stairs" => Some(Item::EndStoneBrickStairs), + "minecraft:poisonous_potato" => Some(Item::PoisonousPotato), + "minecraft:red_tulip" => Some(Item::RedTulip), + "minecraft:polished_basalt" => Some(Item::PolishedBasalt), + "minecraft:blackstone_stairs" => Some(Item::BlackstoneStairs), + "minecraft:snow_block" => Some(Item::SnowBlock), + "minecraft:ice" => Some(Item::Ice), + "minecraft:weathered_cut_copper_stairs" => Some(Item::WeatheredCutCopperStairs), + "minecraft:diamond_horse_armor" => Some(Item::DiamondHorseArmor), + "minecraft:birch_log" => Some(Item::BirchLog), + "minecraft:infested_mossy_stone_bricks" => Some(Item::InfestedMossyStoneBricks), + "minecraft:orange_terracotta" => Some(Item::OrangeTerracotta), + "minecraft:pink_terracotta" => Some(Item::PinkTerracotta), + "minecraft:composter" => Some(Item::Composter), + "minecraft:iron_leggings" => Some(Item::IronLeggings), + "minecraft:magenta_wool" => Some(Item::MagentaWool), + "minecraft:golden_helmet" => Some(Item::GoldenHelmet), + "minecraft:lime_bed" => Some(Item::LimeBed), + "minecraft:chain_command_block" => Some(Item::ChainCommandBlock), + "minecraft:podzol" => Some(Item::Podzol), + "minecraft:hopper" => Some(Item::Hopper), + "minecraft:copper_ingot" => Some(Item::CopperIngot), + "minecraft:slime_block" => Some(Item::SlimeBlock), + "minecraft:trader_llama_spawn_egg" => Some(Item::TraderLlamaSpawnEgg), + "minecraft:light_blue_concrete" => Some(Item::LightBlueConcrete), + "minecraft:glow_squid_spawn_egg" => Some(Item::GlowSquidSpawnEgg), + "minecraft:polished_diorite" => Some(Item::PolishedDiorite), + "minecraft:melon" => Some(Item::Melon), + "minecraft:white_bed" => Some(Item::WhiteBed), + "minecraft:petrified_oak_slab" => Some(Item::PetrifiedOakSlab), + "minecraft:crimson_sign" => Some(Item::CrimsonSign), + "minecraft:prismarine_slab" => Some(Item::PrismarineSlab), + "minecraft:light_gray_banner" => Some(Item::LightGrayBanner), + "minecraft:crimson_fungus" => Some(Item::CrimsonFungus), + "minecraft:rabbit_spawn_egg" => Some(Item::RabbitSpawnEgg), + "minecraft:red_banner" => Some(Item::RedBanner), + "minecraft:popped_chorus_fruit" => Some(Item::PoppedChorusFruit), + "minecraft:lime_carpet" => Some(Item::LimeCarpet), + "minecraft:iron_nugget" => Some(Item::IronNugget), + "minecraft:stripped_crimson_hyphae" => Some(Item::StrippedCrimsonHyphae), + "minecraft:dandelion" => Some(Item::Dandelion), + "minecraft:creeper_banner_pattern" => Some(Item::CreeperBannerPattern), + "minecraft:iron_boots" => Some(Item::IronBoots), + "minecraft:oxidized_cut_copper" => Some(Item::OxidizedCutCopper), + "minecraft:golden_sword" => Some(Item::GoldenSword), + "minecraft:diamond_pickaxe" => Some(Item::DiamondPickaxe), + "minecraft:target" => Some(Item::Target), + "minecraft:terracotta" => Some(Item::Terracotta), + "minecraft:green_banner" => Some(Item::GreenBanner), + "minecraft:dolphin_spawn_egg" => Some(Item::DolphinSpawnEgg), + "minecraft:red_sand" => Some(Item::RedSand), + "minecraft:brick_stairs" => Some(Item::BrickStairs), + "minecraft:firework_rocket" => Some(Item::FireworkRocket), + "minecraft:red_shulker_box" => Some(Item::RedShulkerBox), + "minecraft:pointed_dripstone" => Some(Item::PointedDripstone), + "minecraft:light_gray_carpet" => Some(Item::LightGrayCarpet), + "minecraft:jungle_fence" => Some(Item::JungleFence), + "minecraft:coal_ore" => Some(Item::CoalOre), + "minecraft:jungle_door" => Some(Item::JungleDoor), + "minecraft:lightning_rod" => Some(Item::LightningRod), + "minecraft:golden_carrot" => Some(Item::GoldenCarrot), + "minecraft:grindstone" => Some(Item::Grindstone), + "minecraft:red_sandstone_slab" => Some(Item::RedSandstoneSlab), + "minecraft:dead_brain_coral_fan" => Some(Item::DeadBrainCoralFan), + "minecraft:orange_concrete_powder" => Some(Item::OrangeConcretePowder), + "minecraft:warped_button" => Some(Item::WarpedButton), + "minecraft:dead_tube_coral_fan" => Some(Item::DeadTubeCoralFan), + "minecraft:polished_blackstone_pressure_plate" => { + Some(Item::PolishedBlackstonePressurePlate) + } + "minecraft:green_terracotta" => Some(Item::GreenTerracotta), + "minecraft:tube_coral" => Some(Item::TubeCoral), + "minecraft:jungle_log" => Some(Item::JungleLog), + "minecraft:warped_nylium" => Some(Item::WarpedNylium), + "minecraft:guardian_spawn_egg" => Some(Item::GuardianSpawnEgg), + "minecraft:brick_slab" => Some(Item::BrickSlab), + "minecraft:stripped_oak_wood" => Some(Item::StrippedOakWood), + "minecraft:sculk_sensor" => Some(Item::SculkSensor), + "minecraft:birch_stairs" => Some(Item::BirchStairs), + "minecraft:mooshroom_spawn_egg" => Some(Item::MooshroomSpawnEgg), + "minecraft:flower_banner_pattern" => Some(Item::FlowerBannerPattern), + "minecraft:crying_obsidian" => Some(Item::CryingObsidian), + "minecraft:quartz_block" => Some(Item::QuartzBlock), + "minecraft:cyan_terracotta" => Some(Item::CyanTerracotta), + "minecraft:observer" => Some(Item::Observer), + "minecraft:infested_chiseled_stone_bricks" => Some(Item::InfestedChiseledStoneBricks), + "minecraft:wooden_axe" => Some(Item::WoodenAxe), + "minecraft:yellow_candle" => Some(Item::YellowCandle), + "minecraft:writable_book" => Some(Item::WritableBook), + "minecraft:creeper_spawn_egg" => Some(Item::CreeperSpawnEgg), + "minecraft:nether_bricks" => Some(Item::NetherBricks), + "minecraft:black_terracotta" => Some(Item::BlackTerracotta), + "minecraft:dead_bubble_coral" => Some(Item::DeadBubbleCoral), + "minecraft:crimson_pressure_plate" => Some(Item::CrimsonPressurePlate), + "minecraft:gold_ore" => Some(Item::GoldOre), + "minecraft:dead_horn_coral_fan" => Some(Item::DeadHornCoralFan), + "minecraft:furnace_minecart" => Some(Item::FurnaceMinecart), + "minecraft:shears" => Some(Item::Shears), + "minecraft:smooth_stone_slab" => Some(Item::SmoothStoneSlab), + "minecraft:wither_rose" => Some(Item::WitherRose), + "minecraft:deepslate_brick_wall" => Some(Item::DeepslateBrickWall), + "minecraft:purple_glazed_terracotta" => Some(Item::PurpleGlazedTerracotta), + "minecraft:jack_o_lantern" => Some(Item::JackOLantern), + "minecraft:horn_coral_block" => Some(Item::HornCoralBlock), + "minecraft:spruce_fence" => Some(Item::SpruceFence), + "minecraft:light_gray_glazed_terracotta" => Some(Item::LightGrayGlazedTerracotta), + "minecraft:glow_berries" => Some(Item::GlowBerries), + "minecraft:cod_bucket" => Some(Item::CodBucket), + "minecraft:sunflower" => Some(Item::Sunflower), + "minecraft:orange_carpet" => Some(Item::OrangeCarpet), + "minecraft:blue_carpet" => Some(Item::BlueCarpet), + "minecraft:sea_pickle" => Some(Item::SeaPickle), + "minecraft:pink_shulker_box" => Some(Item::PinkShulkerBox), + "minecraft:red_glazed_terracotta" => Some(Item::RedGlazedTerracotta), + "minecraft:brain_coral" => Some(Item::BrainCoral), + "minecraft:dragon_head" => Some(Item::DragonHead), + "minecraft:magenta_candle" => Some(Item::MagentaCandle), + "minecraft:deepslate_gold_ore" => Some(Item::DeepslateGoldOre), + "minecraft:stripped_spruce_log" => Some(Item::StrippedSpruceLog), + "minecraft:donkey_spawn_egg" => Some(Item::DonkeySpawnEgg), + "minecraft:lime_concrete_powder" => Some(Item::LimeConcretePowder), + "minecraft:prismarine_bricks" => Some(Item::PrismarineBricks), + "minecraft:brown_banner" => Some(Item::BrownBanner), + "minecraft:white_stained_glass" => Some(Item::WhiteStainedGlass), + "minecraft:blue_stained_glass" => Some(Item::BlueStainedGlass), + "minecraft:diamond_hoe" => Some(Item::DiamondHoe), + "minecraft:spruce_sign" => Some(Item::SpruceSign), + "minecraft:lodestone" => Some(Item::Lodestone), + "minecraft:sugar" => Some(Item::Sugar), + "minecraft:smooth_red_sandstone_stairs" => Some(Item::SmoothRedSandstoneStairs), + "minecraft:light_blue_shulker_box" => Some(Item::LightBlueShulkerBox), + "minecraft:cyan_dye" => Some(Item::CyanDye), + "minecraft:weathered_cut_copper" => Some(Item::WeatheredCutCopper), + "minecraft:spruce_boat" => Some(Item::SpruceBoat), + "minecraft:sandstone_stairs" => Some(Item::SandstoneStairs), + "minecraft:magma_block" => Some(Item::MagmaBlock), + "minecraft:light_gray_shulker_box" => Some(Item::LightGrayShulkerBox), + "minecraft:prismarine_wall" => Some(Item::PrismarineWall), + "minecraft:tube_coral_fan" => Some(Item::TubeCoralFan), + "minecraft:coal" => Some(Item::Coal), + "minecraft:item_frame" => Some(Item::ItemFrame), + "minecraft:yellow_banner" => Some(Item::YellowBanner), + "minecraft:small_amethyst_bud" => Some(Item::SmallAmethystBud), + "minecraft:brown_shulker_box" => Some(Item::BrownShulkerBox), + "minecraft:iron_ore" => Some(Item::IronOre), + "minecraft:soul_lantern" => Some(Item::SoulLantern), + "minecraft:golden_pickaxe" => Some(Item::GoldenPickaxe), + "minecraft:quartz_slab" => Some(Item::QuartzSlab), + "minecraft:lime_terracotta" => Some(Item::LimeTerracotta), + "minecraft:brain_coral_fan" => Some(Item::BrainCoralFan), + "minecraft:stripped_jungle_log" => Some(Item::StrippedJungleLog), + "minecraft:turtle_helmet" => Some(Item::TurtleHelmet), + "minecraft:purpur_slab" => Some(Item::PurpurSlab), + "minecraft:magenta_bed" => Some(Item::MagentaBed), + "minecraft:warped_hyphae" => Some(Item::WarpedHyphae), + "minecraft:honeycomb_block" => Some(Item::HoneycombBlock), + "minecraft:purple_stained_glass_pane" => Some(Item::PurpleStainedGlassPane), + "minecraft:diamond_ore" => Some(Item::DiamondOre), + "minecraft:calcite" => Some(Item::Calcite), + "minecraft:oak_boat" => Some(Item::OakBoat), + "minecraft:hoglin_spawn_egg" => Some(Item::HoglinSpawnEgg), + "minecraft:respawn_anchor" => Some(Item::RespawnAnchor), + "minecraft:magenta_banner" => Some(Item::MagentaBanner), + "minecraft:chiseled_polished_blackstone" => Some(Item::ChiseledPolishedBlackstone), + "minecraft:budding_amethyst" => Some(Item::BuddingAmethyst), + "minecraft:glass" => Some(Item::Glass), + "minecraft:iron_ingot" => Some(Item::IronIngot), + "minecraft:deepslate_diamond_ore" => Some(Item::DeepslateDiamondOre), + "minecraft:acacia_door" => Some(Item::AcaciaDoor), + "minecraft:gray_bed" => Some(Item::GrayBed), + "minecraft:large_fern" => Some(Item::LargeFern), + "minecraft:red_stained_glass" => Some(Item::RedStainedGlass), + "minecraft:brick" => Some(Item::Brick), + "minecraft:oak_leaves" => Some(Item::OakLeaves), + "minecraft:elder_guardian_spawn_egg" => Some(Item::ElderGuardianSpawnEgg), + "minecraft:golden_leggings" => Some(Item::GoldenLeggings), + "minecraft:pink_stained_glass" => Some(Item::PinkStainedGlass), + "minecraft:red_sandstone_wall" => Some(Item::RedSandstoneWall), + "minecraft:glow_item_frame" => Some(Item::GlowItemFrame), + "minecraft:bell" => Some(Item::Bell), + "minecraft:cobbled_deepslate_stairs" => Some(Item::CobbledDeepslateStairs), + "minecraft:wolf_spawn_egg" => Some(Item::WolfSpawnEgg), + "minecraft:knowledge_book" => Some(Item::KnowledgeBook), + "minecraft:cooked_mutton" => Some(Item::CookedMutton), + "minecraft:smooth_stone" => Some(Item::SmoothStone), + "minecraft:lime_glazed_terracotta" => Some(Item::LimeGlazedTerracotta), + "minecraft:netherite_hoe" => Some(Item::NetheriteHoe), + "minecraft:oak_planks" => Some(Item::OakPlanks), + "minecraft:magenta_dye" => Some(Item::MagentaDye), + "minecraft:cracked_stone_bricks" => Some(Item::CrackedStoneBricks), + "minecraft:cooked_beef" => Some(Item::CookedBeef), + "minecraft:coarse_dirt" => Some(Item::CoarseDirt), + "minecraft:ender_chest" => Some(Item::EnderChest), + "minecraft:zombie_spawn_egg" => Some(Item::ZombieSpawnEgg), + "minecraft:warped_fence_gate" => Some(Item::WarpedFenceGate), + "minecraft:bucket" => Some(Item::Bucket), + "minecraft:blue_dye" => Some(Item::BlueDye), + "minecraft:cactus" => Some(Item::Cactus), + "minecraft:lead" => Some(Item::Lead), + "minecraft:mushroom_stew" => Some(Item::MushroomStew), + "minecraft:light_blue_bed" => Some(Item::LightBlueBed), + "minecraft:bee_spawn_egg" => Some(Item::BeeSpawnEgg), + "minecraft:oxidized_cut_copper_stairs" => Some(Item::OxidizedCutCopperStairs), + "minecraft:kelp" => Some(Item::Kelp), + "minecraft:green_concrete_powder" => Some(Item::GreenConcretePowder), + "minecraft:redstone_torch" => Some(Item::RedstoneTorch), + "minecraft:snowball" => Some(Item::Snowball), + "minecraft:spruce_sapling" => Some(Item::SpruceSapling), + "minecraft:green_candle" => Some(Item::GreenCandle), + "minecraft:oxidized_copper" => Some(Item::OxidizedCopper), + "minecraft:stripped_acacia_log" => Some(Item::StrippedAcaciaLog), + "minecraft:zombie_horse_spawn_egg" => Some(Item::ZombieHorseSpawnEgg), + "minecraft:acacia_slab" => Some(Item::AcaciaSlab), + "minecraft:spruce_door" => Some(Item::SpruceDoor), + "minecraft:dark_oak_sign" => Some(Item::DarkOakSign), + "minecraft:green_concrete" => Some(Item::GreenConcrete), + "minecraft:salmon" => Some(Item::Salmon), + "minecraft:dead_fire_coral_fan" => Some(Item::DeadFireCoralFan), + "minecraft:blue_stained_glass_pane" => Some(Item::BlueStainedGlassPane), + "minecraft:oak_fence_gate" => Some(Item::OakFenceGate), + "minecraft:minecart" => Some(Item::Minecart), + "minecraft:fishing_rod" => Some(Item::FishingRod), + "minecraft:vindicator_spawn_egg" => Some(Item::VindicatorSpawnEgg), + "minecraft:cauldron" => Some(Item::Cauldron), + "minecraft:spruce_button" => Some(Item::SpruceButton), + "minecraft:dispenser" => Some(Item::Dispenser), + "minecraft:stripped_spruce_wood" => Some(Item::StrippedSpruceWood), + "minecraft:yellow_bed" => Some(Item::YellowBed), + "minecraft:nether_brick_wall" => Some(Item::NetherBrickWall), + "minecraft:jungle_sapling" => Some(Item::JungleSapling), + "minecraft:damaged_anvil" => Some(Item::DamagedAnvil), + "minecraft:quartz" => Some(Item::Quartz), + "minecraft:brown_concrete_powder" => Some(Item::BrownConcretePowder), + "minecraft:tall_grass" => Some(Item::TallGrass), + "minecraft:polished_andesite_stairs" => Some(Item::PolishedAndesiteStairs), + "minecraft:raw_gold" => Some(Item::RawGold), + "minecraft:cobweb" => Some(Item::Cobweb), + "minecraft:birch_leaves" => Some(Item::BirchLeaves), + "minecraft:nether_wart_block" => Some(Item::NetherWartBlock), + "minecraft:green_stained_glass" => Some(Item::GreenStainedGlass), + "minecraft:bow" => Some(Item::Bow), + "minecraft:crimson_planks" => Some(Item::CrimsonPlanks), + "minecraft:deepslate_copper_ore" => Some(Item::DeepslateCopperOre), + "minecraft:flower_pot" => Some(Item::FlowerPot), + "minecraft:white_carpet" => Some(Item::WhiteCarpet), + "minecraft:allium" => Some(Item::Allium), + "minecraft:stripped_dark_oak_wood" => Some(Item::StrippedDarkOakWood), + "minecraft:basalt" => Some(Item::Basalt), + "minecraft:polished_andesite" => Some(Item::PolishedAndesite), + "minecraft:saddle" => Some(Item::Saddle), + "minecraft:bowl" => Some(Item::Bowl), + "minecraft:ender_eye" => Some(Item::EnderEye), + "minecraft:daylight_detector" => Some(Item::DaylightDetector), + "minecraft:grass" => Some(Item::Grass), + "minecraft:mossy_cobblestone_wall" => Some(Item::MossyCobblestoneWall), + "minecraft:yellow_dye" => Some(Item::YellowDye), + "minecraft:enderman_spawn_egg" => Some(Item::EndermanSpawnEgg), + "minecraft:parrot_spawn_egg" => Some(Item::ParrotSpawnEgg), + "minecraft:jungle_pressure_plate" => Some(Item::JunglePressurePlate), + "minecraft:waxed_exposed_cut_copper_slab" => Some(Item::WaxedExposedCutCopperSlab), + "minecraft:vine" => Some(Item::Vine), + "minecraft:purpur_block" => Some(Item::PurpurBlock), + "minecraft:rabbit_foot" => Some(Item::RabbitFoot), + "minecraft:diamond_chestplate" => Some(Item::DiamondChestplate), + "minecraft:bricks" => Some(Item::Bricks), + "minecraft:music_disc_far" => Some(Item::MusicDiscFar), + "minecraft:oak_stairs" => Some(Item::OakStairs), + "minecraft:honey_block" => Some(Item::HoneyBlock), + "minecraft:carrot_on_a_stick" => Some(Item::CarrotOnAStick), + "minecraft:quartz_stairs" => Some(Item::QuartzStairs), + "minecraft:acacia_fence_gate" => Some(Item::AcaciaFenceGate), + "minecraft:dead_bush" => Some(Item::DeadBush), + "minecraft:cooked_chicken" => Some(Item::CookedChicken), + "minecraft:purple_shulker_box" => Some(Item::PurpleShulkerBox), + "minecraft:packed_ice" => Some(Item::PackedIce), + "minecraft:chiseled_deepslate" => Some(Item::ChiseledDeepslate), + "minecraft:phantom_membrane" => Some(Item::PhantomMembrane), + "minecraft:skull_banner_pattern" => Some(Item::SkullBannerPattern), + "minecraft:waxed_weathered_cut_copper_stairs" => { + Some(Item::WaxedWeatheredCutCopperStairs) + } + "minecraft:exposed_cut_copper_stairs" => Some(Item::ExposedCutCopperStairs), + "minecraft:cyan_carpet" => Some(Item::CyanCarpet), + "minecraft:smooth_basalt" => Some(Item::SmoothBasalt), + "minecraft:orange_bed" => Some(Item::OrangeBed), + "minecraft:panda_spawn_egg" => Some(Item::PandaSpawnEgg), + "minecraft:acacia_boat" => Some(Item::AcaciaBoat), + "minecraft:acacia_fence" => Some(Item::AcaciaFence), + "minecraft:wither_skeleton_spawn_egg" => Some(Item::WitherSkeletonSpawnEgg), + "minecraft:torch" => Some(Item::Torch), + "minecraft:rabbit_stew" => Some(Item::RabbitStew), + "minecraft:netherite_shovel" => Some(Item::NetheriteShovel), + "minecraft:campfire" => Some(Item::Campfire), + "minecraft:birch_sapling" => Some(Item::BirchSapling), + "minecraft:white_banner" => Some(Item::WhiteBanner), + "minecraft:waxed_oxidized_copper" => Some(Item::WaxedOxidizedCopper), + "minecraft:azalea_leaves" => Some(Item::AzaleaLeaves), + "minecraft:granite_stairs" => Some(Item::GraniteStairs), + "minecraft:gray_shulker_box" => Some(Item::GrayShulkerBox), + "minecraft:oxeye_daisy" => Some(Item::OxeyeDaisy), + "minecraft:deepslate_tile_stairs" => Some(Item::DeepslateTileStairs), + "minecraft:gray_terracotta" => Some(Item::GrayTerracotta), + "minecraft:pink_stained_glass_pane" => Some(Item::PinkStainedGlassPane), + "minecraft:bookshelf" => Some(Item::Bookshelf), + "minecraft:polished_granite_slab" => Some(Item::PolishedGraniteSlab), + "minecraft:deepslate_tile_slab" => Some(Item::DeepslateTileSlab), + "minecraft:pufferfish" => Some(Item::Pufferfish), + "minecraft:diamond_axe" => Some(Item::DiamondAxe), + "minecraft:blue_terracotta" => Some(Item::BlueTerracotta), + "minecraft:red_concrete" => Some(Item::RedConcrete), + "minecraft:cooked_cod" => Some(Item::CookedCod), + "minecraft:pillager_spawn_egg" => Some(Item::PillagerSpawnEgg), + "minecraft:gold_nugget" => Some(Item::GoldNugget), + "minecraft:warped_fence" => Some(Item::WarpedFence), + "minecraft:spider_eye" => Some(Item::SpiderEye), + "minecraft:prismarine_crystals" => Some(Item::PrismarineCrystals), + "minecraft:polished_granite" => Some(Item::PolishedGranite), + "minecraft:lime_stained_glass_pane" => Some(Item::LimeStainedGlassPane), + "minecraft:birch_fence_gate" => Some(Item::BirchFenceGate), + "minecraft:note_block" => Some(Item::NoteBlock), + "minecraft:shulker_shell" => Some(Item::ShulkerShell), + "minecraft:blaze_powder" => Some(Item::BlazePowder), + "minecraft:red_bed" => Some(Item::RedBed), + "minecraft:polished_deepslate" => Some(Item::PolishedDeepslate), + "minecraft:birch_button" => Some(Item::BirchButton), + "minecraft:music_disc_mall" => Some(Item::MusicDiscMall), + "minecraft:fox_spawn_egg" => Some(Item::FoxSpawnEgg), + "minecraft:tipped_arrow" => Some(Item::TippedArrow), + "minecraft:polished_blackstone_stairs" => Some(Item::PolishedBlackstoneStairs), + "minecraft:zombified_piglin_spawn_egg" => Some(Item::ZombifiedPiglinSpawnEgg), + "minecraft:small_dripleaf" => Some(Item::SmallDripleaf), + "minecraft:pink_concrete" => Some(Item::PinkConcrete), + "minecraft:lapis_ore" => Some(Item::LapisOre), + "minecraft:birch_planks" => Some(Item::BirchPlanks), + "minecraft:melon_slice" => Some(Item::MelonSlice), + "minecraft:polar_bear_spawn_egg" => Some(Item::PolarBearSpawnEgg), + "minecraft:command_block_minecart" => Some(Item::CommandBlockMinecart), + "minecraft:music_disc_pigstep" => Some(Item::MusicDiscPigstep), + "minecraft:tinted_glass" => Some(Item::TintedGlass), + "minecraft:warped_fungus_on_a_stick" => Some(Item::WarpedFungusOnAStick), + "minecraft:deepslate_redstone_ore" => Some(Item::DeepslateRedstoneOre), + "minecraft:bundle" => Some(Item::Bundle), + "minecraft:music_disc_ward" => Some(Item::MusicDiscWard), + "minecraft:amethyst_cluster" => Some(Item::AmethystCluster), + "minecraft:stone_axe" => Some(Item::StoneAxe), + "minecraft:stray_spawn_egg" => Some(Item::StraySpawnEgg), + "minecraft:polished_diorite_slab" => Some(Item::PolishedDioriteSlab), + "minecraft:mossy_stone_brick_slab" => Some(Item::MossyStoneBrickSlab), + "minecraft:black_banner" => Some(Item::BlackBanner), + "minecraft:evoker_spawn_egg" => Some(Item::EvokerSpawnEgg), + "minecraft:light_gray_candle" => Some(Item::LightGrayCandle), + "minecraft:pufferfish_spawn_egg" => Some(Item::PufferfishSpawnEgg), + "minecraft:experience_bottle" => Some(Item::ExperienceBottle), + "minecraft:black_dye" => Some(Item::BlackDye), + "minecraft:prismarine_shard" => Some(Item::PrismarineShard), + "minecraft:turtle_egg" => Some(Item::TurtleEgg), + "minecraft:spruce_slab" => Some(Item::SpruceSlab), + "minecraft:chicken" => Some(Item::Chicken), + "minecraft:acacia_wood" => Some(Item::AcaciaWood), + "minecraft:fire_charge" => Some(Item::FireCharge), + "minecraft:comparator" => Some(Item::Comparator), + "minecraft:powered_rail" => Some(Item::PoweredRail), + "minecraft:stone_brick_stairs" => Some(Item::StoneBrickStairs), + "minecraft:bubble_coral_fan" => Some(Item::BubbleCoralFan), + "minecraft:music_disc_13" => Some(Item::MusicDisc13), + "minecraft:quartz_bricks" => Some(Item::QuartzBricks), + "minecraft:honey_bottle" => Some(Item::HoneyBottle), + "minecraft:yellow_concrete_powder" => Some(Item::YellowConcretePowder), + "minecraft:deepslate_emerald_ore" => Some(Item::DeepslateEmeraldOre), + "minecraft:book" => Some(Item::Book), + "minecraft:tnt" => Some(Item::Tnt), + "minecraft:scute" => Some(Item::Scute), + "minecraft:chest_minecart" => Some(Item::ChestMinecart), + "minecraft:netherite_axe" => Some(Item::NetheriteAxe), + "minecraft:dark_oak_button" => Some(Item::DarkOakButton), + "minecraft:diamond_boots" => Some(Item::DiamondBoots), + "minecraft:totem_of_undying" => Some(Item::TotemOfUndying), + "minecraft:glass_pane" => Some(Item::GlassPane), + "minecraft:polished_blackstone_slab" => Some(Item::PolishedBlackstoneSlab), + "minecraft:cobblestone_wall" => Some(Item::CobblestoneWall), + "minecraft:magenta_concrete_powder" => Some(Item::MagentaConcretePowder), + "minecraft:red_sandstone" => Some(Item::RedSandstone), + "minecraft:orange_concrete" => Some(Item::OrangeConcrete), + "minecraft:light" => Some(Item::Light), + "minecraft:stone_slab" => Some(Item::StoneSlab), + "minecraft:string" => Some(Item::String), + "minecraft:dragon_breath" => Some(Item::DragonBreath), + "minecraft:crimson_stem" => Some(Item::CrimsonStem), + _ => None, } } } -#[allow(warnings)] -#[allow(clippy::all)] impl Item { - /// Returns the `stack_size` property of this `Item`. + #[doc = "Returns the `stack_size` property of this `Item`."] + #[inline] pub fn stack_size(&self) -> u32 { match self { - Item::Air => 0, - Item::Stone => 64, - Item::Granite => 64, - Item::PolishedGranite => 64, - Item::Diorite => 64, - Item::PolishedDiorite => 64, - Item::Andesite => 64, - Item::PolishedAndesite => 64, - Item::GrassBlock => 64, - Item::Dirt => 64, - Item::CoarseDirt => 64, - Item::Podzol => 64, - Item::CrimsonNylium => 64, - Item::WarpedNylium => 64, - Item::Cobblestone => 64, - Item::OakPlanks => 64, - Item::SprucePlanks => 64, - Item::BirchPlanks => 64, - Item::JunglePlanks => 64, - Item::AcaciaPlanks => 64, - Item::DarkOakPlanks => 64, - Item::CrimsonPlanks => 64, - Item::WarpedPlanks => 64, - Item::OakSapling => 64, - Item::SpruceSapling => 64, - Item::BirchSapling => 64, - Item::JungleSapling => 64, + Item::WhiteStainedGlassPane => 64, + Item::LightGrayShulkerBox => 1, + Item::NetherWart => 64, + Item::Chest => 64, + Item::Cactus => 64, + Item::MelonSeeds => 64, + Item::SpectralArrow => 64, + Item::Kelp => 64, + Item::OrangeConcretePowder => 64, + Item::PurpleConcrete => 64, + Item::DiamondHelmet => 1, + Item::Chicken => 64, + Item::PinkBanner => 16, + Item::DebugStick => 1, + Item::SpruceButton => 64, + Item::PinkTulip => 64, + Item::EndStone => 64, + Item::LightBlueConcrete => 64, + Item::Clock => 64, + Item::NetherBrickFence => 64, + Item::DeadFireCoralFan => 64, + Item::ChainmailLeggings => 1, Item::AcaciaSapling => 64, - Item::DarkOakSapling => 64, - Item::Bedrock => 64, - Item::Sand => 64, - Item::RedSand => 64, - Item::Gravel => 64, - Item::GoldOre => 64, - Item::IronOre => 64, - Item::CoalOre => 64, - Item::NetherGoldOre => 64, - Item::OakLog => 64, - Item::SpruceLog => 64, - Item::BirchLog => 64, - Item::JungleLog => 64, - Item::AcaciaLog => 64, - Item::DarkOakLog => 64, - Item::CrimsonStem => 64, - Item::WarpedStem => 64, - Item::StrippedOakLog => 64, - Item::StrippedSpruceLog => 64, - Item::StrippedBirchLog => 64, - Item::StrippedJungleLog => 64, - Item::StrippedAcaciaLog => 64, - Item::StrippedDarkOakLog => 64, - Item::StrippedCrimsonStem => 64, - Item::StrippedWarpedStem => 64, - Item::StrippedOakWood => 64, - Item::StrippedSpruceWood => 64, - Item::StrippedBirchWood => 64, - Item::StrippedJungleWood => 64, - Item::StrippedAcaciaWood => 64, - Item::StrippedDarkOakWood => 64, - Item::StrippedCrimsonHyphae => 64, - Item::StrippedWarpedHyphae => 64, - Item::OakWood => 64, - Item::SpruceWood => 64, - Item::BirchWood => 64, - Item::JungleWood => 64, - Item::AcaciaWood => 64, - Item::DarkOakWood => 64, - Item::CrimsonHyphae => 64, - Item::WarpedHyphae => 64, - Item::OakLeaves => 64, - Item::SpruceLeaves => 64, - Item::BirchLeaves => 64, - Item::JungleLeaves => 64, - Item::AcaciaLeaves => 64, - Item::DarkOakLeaves => 64, - Item::Sponge => 64, - Item::WetSponge => 64, - Item::Glass => 64, - Item::LapisOre => 64, - Item::LapisBlock => 64, - Item::Dispenser => 64, - Item::Sandstone => 64, - Item::ChiseledSandstone => 64, - Item::CutSandstone => 64, - Item::NoteBlock => 64, - Item::PoweredRail => 64, - Item::DetectorRail => 64, - Item::StickyPiston => 64, - Item::Cobweb => 64, - Item::Grass => 64, - Item::Fern => 64, - Item::DeadBush => 64, - Item::Seagrass => 64, - Item::SeaPickle => 64, - Item::Piston => 64, - Item::WhiteWool => 64, + Item::MossyCobblestoneSlab => 64, + Item::ExposedCutCopperSlab => 64, Item::OrangeWool => 64, - Item::MagentaWool => 64, - Item::LightBlueWool => 64, - Item::YellowWool => 64, - Item::LimeWool => 64, - Item::PinkWool => 64, - Item::GrayWool => 64, - Item::LightGrayWool => 64, - Item::CyanWool => 64, - Item::PurpleWool => 64, - Item::BlueWool => 64, - Item::BrownWool => 64, - Item::GreenWool => 64, - Item::RedWool => 64, - Item::BlackWool => 64, - Item::Dandelion => 64, - Item::Poppy => 64, - Item::BlueOrchid => 64, - Item::Allium => 64, - Item::AzureBluet => 64, - Item::RedTulip => 64, - Item::OrangeTulip => 64, - Item::WhiteTulip => 64, - Item::PinkTulip => 64, - Item::OxeyeDaisy => 64, - Item::Cornflower => 64, - Item::LilyOfTheValley => 64, - Item::WitherRose => 64, - Item::BrownMushroom => 64, - Item::RedMushroom => 64, - Item::CrimsonFungus => 64, - Item::WarpedFungus => 64, - Item::CrimsonRoots => 64, - Item::WarpedRoots => 64, Item::NetherSprouts => 64, - Item::WeepingVines => 64, - Item::TwistingVines => 64, - Item::SugarCane => 64, - Item::Kelp => 64, - Item::Bamboo => 64, - Item::GoldBlock => 64, - Item::IronBlock => 64, - Item::OakSlab => 64, - Item::SpruceSlab => 64, - Item::BirchSlab => 64, - Item::JungleSlab => 64, - Item::AcaciaSlab => 64, - Item::DarkOakSlab => 64, - Item::CrimsonSlab => 64, - Item::WarpedSlab => 64, - Item::StoneSlab => 64, - Item::SmoothStoneSlab => 64, - Item::SandstoneSlab => 64, - Item::CutSandstoneSlab => 64, - Item::PetrifiedOakSlab => 64, - Item::CobblestoneSlab => 64, - Item::BrickSlab => 64, - Item::StoneBrickSlab => 64, - Item::NetherBrickSlab => 64, - Item::QuartzSlab => 64, - Item::RedSandstoneSlab => 64, - Item::CutRedSandstoneSlab => 64, - Item::PurpurSlab => 64, - Item::PrismarineSlab => 64, - Item::PrismarineBrickSlab => 64, - Item::DarkPrismarineSlab => 64, - Item::SmoothQuartz => 64, - Item::SmoothRedSandstone => 64, - Item::SmoothSandstone => 64, - Item::SmoothStone => 64, - Item::Bricks => 64, - Item::Tnt => 64, - Item::Bookshelf => 64, - Item::MossyCobblestone => 64, - Item::Obsidian => 64, - Item::Torch => 64, - Item::EndRod => 64, - Item::ChorusPlant => 64, - Item::ChorusFlower => 64, - Item::PurpurBlock => 64, - Item::PurpurPillar => 64, - Item::PurpurStairs => 64, - Item::Spawner => 64, + Item::MossyStoneBrickStairs => 64, + Item::IronHoe => 1, + Item::TurtleSpawnEgg => 64, + Item::IronSword => 1, + Item::OrangeCandle => 64, + Item::Jigsaw => 64, + Item::MagentaBed => 1, + Item::StrippedWarpedStem => 64, + Item::GrayWool => 64, + Item::WhiteShulkerBox => 1, + Item::CreeperSpawnEgg => 64, + Item::Cake => 1, + Item::PolishedGranite => 64, + Item::PurpleCarpet => 64, + Item::Minecart => 1, + Item::DeepslateCoalOre => 64, Item::OakStairs => 64, - Item::Chest => 64, - Item::DiamondOre => 64, + Item::ZombifiedPiglinSpawnEgg => 64, + Item::DarkOakBoat => 1, + Item::RepeatingCommandBlock => 64, + Item::Sunflower => 64, + Item::MagmaBlock => 64, + Item::PowderSnowBucket => 1, + Item::FishingRod => 1, + Item::GlowstoneDust => 64, + Item::ZoglinSpawnEgg => 64, + Item::Lantern => 64, + Item::DeepslateTileWall => 64, + Item::PhantomMembrane => 64, + Item::QuartzPillar => 64, + Item::GrayTerracotta => 64, Item::DiamondBlock => 64, - Item::CraftingTable => 64, - Item::Farmland => 64, - Item::Furnace => 64, - Item::Ladder => 64, - Item::Rail => 64, - Item::CobblestoneStairs => 64, - Item::Lever => 64, - Item::StonePressurePlate => 64, - Item::OakPressurePlate => 64, - Item::SprucePressurePlate => 64, - Item::BirchPressurePlate => 64, - Item::JunglePressurePlate => 64, - Item::AcaciaPressurePlate => 64, - Item::DarkOakPressurePlate => 64, - Item::CrimsonPressurePlate => 64, - Item::WarpedPressurePlate => 64, - Item::PolishedBlackstonePressurePlate => 64, - Item::RedstoneOre => 64, - Item::RedstoneTorch => 64, - Item::Snow => 64, - Item::Ice => 64, - Item::SnowBlock => 64, - Item::Cactus => 64, - Item::Clay => 64, - Item::Jukebox => 64, - Item::OakFence => 64, - Item::SpruceFence => 64, - Item::BirchFence => 64, - Item::JungleFence => 64, - Item::AcaciaFence => 64, - Item::DarkOakFence => 64, - Item::CrimsonFence => 64, - Item::WarpedFence => 64, - Item::Pumpkin => 64, - Item::CarvedPumpkin => 64, - Item::Netherrack => 64, - Item::SoulSand => 64, - Item::SoulSoil => 64, - Item::Basalt => 64, - Item::PolishedBasalt => 64, - Item::SoulTorch => 64, - Item::Glowstone => 64, - Item::JackOLantern => 64, - Item::OakTrapdoor => 64, - Item::SpruceTrapdoor => 64, - Item::BirchTrapdoor => 64, - Item::JungleTrapdoor => 64, - Item::AcaciaTrapdoor => 64, - Item::DarkOakTrapdoor => 64, - Item::CrimsonTrapdoor => 64, - Item::WarpedTrapdoor => 64, - Item::InfestedStone => 64, - Item::InfestedCobblestone => 64, - Item::InfestedStoneBricks => 64, - Item::InfestedMossyStoneBricks => 64, - Item::InfestedCrackedStoneBricks => 64, - Item::InfestedChiseledStoneBricks => 64, - Item::StoneBricks => 64, - Item::MossyStoneBricks => 64, - Item::CrackedStoneBricks => 64, - Item::ChiseledStoneBricks => 64, - Item::BrownMushroomBlock => 64, - Item::RedMushroomBlock => 64, - Item::MushroomStem => 64, - Item::IronBars => 64, - Item::Chain => 64, - Item::GlassPane => 64, - Item::Melon => 64, - Item::Vine => 64, - Item::OakFenceGate => 64, - Item::SpruceFenceGate => 64, - Item::BirchFenceGate => 64, - Item::JungleFenceGate => 64, - Item::AcaciaFenceGate => 64, - Item::DarkOakFenceGate => 64, + Item::CarrotOnAStick => 1, + Item::MagentaConcrete => 64, + Item::Potato => 64, + Item::Bow => 1, + Item::StoneShovel => 1, + Item::PolishedBlackstoneBrickStairs => 64, + Item::CutSandstoneSlab => 64, + Item::BrownBed => 1, + Item::GreenConcretePowder => 64, + Item::GreenTerracotta => 64, + Item::LightGrayCandle => 64, + Item::LingeringPotion => 1, + Item::SpruceSlab => 64, + Item::LeatherHorseArmor => 1, + Item::RedSand => 64, Item::CrimsonFenceGate => 64, + Item::CyanDye => 64, + Item::BlazeRod => 64, + Item::WeatheredCutCopper => 64, + Item::Seagrass => 64, + Item::SmoothQuartzStairs => 64, + Item::RawGold => 64, + Item::CookedPorkchop => 64, + Item::ChorusFlower => 64, + Item::SkeletonSpawnEgg => 64, + Item::KnowledgeBook => 1, + Item::StoneBricks => 64, + Item::RawIronBlock => 64, + Item::GoldenShovel => 1, + Item::RedSandstoneSlab => 64, + Item::GreenCarpet => 64, + Item::DeepslateCopperOre => 64, + Item::JungleBoat => 1, + Item::TropicalFish => 64, + Item::EnderPearl => 16, + Item::SmoothSandstoneStairs => 64, + Item::WaxedExposedCopper => 64, + Item::DeadBubbleCoralFan => 64, + Item::LightBlueCandle => 64, + Item::Beacon => 64, + Item::PinkTerracotta => 64, + Item::DarkOakLeaves => 64, + Item::LightBlueShulkerBox => 1, + Item::RawGoldBlock => 64, + Item::PolishedBlackstoneStairs => 64, + Item::LightBlueStainedGlassPane => 64, + Item::DeadFireCoral => 64, + Item::DiamondChestplate => 1, + Item::AcaciaBoat => 1, + Item::Emerald => 64, + Item::RespawnAnchor => 64, + Item::IronDoor => 64, + Item::ZombieSpawnEgg => 64, + Item::MusicDiscBlocks => 1, + Item::Andesite => 64, + Item::Campfire => 64, + Item::GrayStainedGlass => 64, + Item::Saddle => 1, + Item::VindicatorSpawnEgg => 64, + Item::LapisBlock => 64, + Item::SlimeBlock => 64, + Item::DarkOakSign => 16, + Item::PolishedDioriteStairs => 64, + Item::BirchSign => 16, + Item::Stonecutter => 64, + Item::VexSpawnEgg => 64, + Item::CutCopper => 64, + Item::InfestedMossyStoneBricks => 64, + Item::LightBlueStainedGlass => 64, + Item::SpruceDoor => 64, Item::WarpedFenceGate => 64, - Item::BrickStairs => 64, - Item::StoneBrickStairs => 64, + Item::LeatherHelmet => 1, + Item::ElderGuardianSpawnEgg => 64, + Item::PolishedGraniteSlab => 64, + Item::MossCarpet => 64, + Item::CrackedPolishedBlackstoneBricks => 64, + Item::LimeWool => 64, + Item::RedMushroomBlock => 64, + Item::EndermanSpawnEgg => 64, + Item::Candle => 64, + Item::OxeyeDaisy => 64, + Item::JungleLeaves => 64, + Item::Bedrock => 64, + Item::MagentaDye => 64, + Item::BuddingAmethyst => 64, + Item::OxidizedCopper => 64, + Item::PinkCarpet => 64, + Item::CreeperHead => 64, + Item::Cauldron => 64, + Item::Sandstone => 64, + Item::SmoothBasalt => 64, + Item::Calcite => 64, + Item::BlackWool => 64, + Item::IronPickaxe => 1, + Item::PoweredRail => 64, + Item::Egg => 16, + Item::BirchTrapdoor => 64, + Item::StrippedAcaciaWood => 64, + Item::LightBlueGlazedTerracotta => 64, + Item::LightBlueCarpet => 64, + Item::Coal => 64, Item::Mycelium => 64, - Item::LilyPad => 64, - Item::NetherBricks => 64, - Item::CrackedNetherBricks => 64, - Item::ChiseledNetherBricks => 64, - Item::NetherBrickFence => 64, - Item::NetherBrickStairs => 64, - Item::EnchantingTable => 64, - Item::EndPortalFrame => 64, - Item::EndStone => 64, - Item::EndStoneBricks => 64, + Item::MusicDisc11 => 1, + Item::HopperMinecart => 1, + Item::DolphinSpawnEgg => 64, + Item::SoulSoil => 64, + Item::NetherBrickSlab => 64, + Item::PolishedDiorite => 64, + Item::SoulTorch => 64, + Item::RedGlazedTerracotta => 64, + Item::Glowstone => 64, + Item::RawIron => 64, + Item::JungleSlab => 64, + Item::IronNugget => 64, + Item::CrimsonFence => 64, + Item::CyanBed => 1, + Item::BirchLog => 64, + Item::LightGrayGlazedTerracotta => 64, + Item::CobbledDeepslateWall => 64, + Item::PinkStainedGlassPane => 64, + Item::SmallAmethystBud => 64, + Item::AmethystCluster => 64, + Item::DarkOakButton => 64, + Item::SkeletonSkull => 64, + Item::RedSandstone => 64, + Item::SplashPotion => 1, + Item::PurpurPillar => 64, + Item::ChiseledDeepslate => 64, + Item::Porkchop => 64, + Item::GlowInkSac => 64, + Item::Clay => 64, + Item::Carrot => 64, + Item::BrownBanner => 16, + Item::Loom => 64, + Item::LapisOre => 64, + Item::SprucePlanks => 64, + Item::LightGrayConcrete => 64, + Item::Salmon => 64, + Item::MooshroomSpawnEgg => 64, + Item::WhiteDye => 64, + Item::ShulkerShell => 64, + Item::BrownCandle => 64, + Item::PolishedBlackstone => 64, + Item::GlobeBannerPattern => 1, + Item::PolishedGraniteStairs => 64, + Item::YellowGlazedTerracotta => 64, + Item::DiamondOre => 64, + Item::DarkPrismarineStairs => 64, Item::DragonEgg => 64, - Item::RedstoneLamp => 64, - Item::SandstoneStairs => 64, - Item::EmeraldOre => 64, - Item::EnderChest => 64, - Item::TripwireHook => 64, - Item::EmeraldBlock => 64, - Item::SpruceStairs => 64, - Item::BirchStairs => 64, + Item::AcaciaTrapdoor => 64, + Item::NetheritePickaxe => 1, Item::JungleStairs => 64, - Item::CrimsonStairs => 64, - Item::WarpedStairs => 64, - Item::CommandBlock => 64, - Item::Beacon => 64, - Item::CobblestoneWall => 64, - Item::MossyCobblestoneWall => 64, - Item::BrickWall => 64, - Item::PrismarineWall => 64, - Item::RedSandstoneWall => 64, - Item::MossyStoneBrickWall => 64, - Item::GraniteWall => 64, - Item::StoneBrickWall => 64, - Item::NetherBrickWall => 64, - Item::AndesiteWall => 64, - Item::RedNetherBrickWall => 64, - Item::SandstoneWall => 64, - Item::EndStoneBrickWall => 64, - Item::DioriteWall => 64, - Item::BlackstoneWall => 64, - Item::PolishedBlackstoneWall => 64, - Item::PolishedBlackstoneBrickWall => 64, - Item::StoneButton => 64, - Item::OakButton => 64, - Item::SpruceButton => 64, - Item::BirchButton => 64, - Item::JungleButton => 64, - Item::AcaciaButton => 64, - Item::DarkOakButton => 64, - Item::CrimsonButton => 64, - Item::WarpedButton => 64, - Item::PolishedBlackstoneButton => 64, - Item::Anvil => 64, + Item::Honeycomb => 64, Item::ChippedAnvil => 64, - Item::DamagedAnvil => 64, - Item::TrappedChest => 64, - Item::LightWeightedPressurePlate => 64, - Item::HeavyWeightedPressurePlate => 64, - Item::DaylightDetector => 64, + Item::WaxedOxidizedCutCopper => 64, + Item::FermentedSpiderEye => 64, + Item::BlazeSpawnEgg => 64, + Item::OrangeBed => 1, + Item::Shroomlight => 64, + Item::OakSapling => 64, + Item::CutCopperSlab => 64, + Item::HangingRoots => 64, + Item::DeadBrainCoralBlock => 64, + Item::DeadBubbleCoralBlock => 64, + Item::OakButton => 64, + Item::OakTrapdoor => 64, + Item::RedSandstoneWall => 64, + Item::DonkeySpawnEgg => 64, + Item::OrangeBanner => 16, + Item::PurpurBlock => 64, + Item::RootedDirt => 64, + Item::DeadTubeCoral => 64, Item::RedstoneBlock => 64, - Item::NetherQuartzOre => 64, - Item::Hopper => 64, - Item::ChiseledQuartzBlock => 64, - Item::QuartzBlock => 64, - Item::QuartzBricks => 64, - Item::QuartzPillar => 64, - Item::QuartzStairs => 64, - Item::ActivatorRail => 64, - Item::Dropper => 64, - Item::WhiteTerracotta => 64, + Item::OrangeShulkerBox => 1, + Item::BlueWool => 64, + Item::String => 64, + Item::JunglePlanks => 64, + Item::FloweringAzalea => 64, Item::OrangeTerracotta => 64, - Item::MagentaTerracotta => 64, + Item::MusicDiscWait => 1, + Item::CrimsonPlanks => 64, + Item::BrownStainedGlass => 64, + Item::Cod => 64, + Item::Repeater => 64, + Item::CowSpawnEgg => 64, + Item::GreenShulkerBox => 1, + Item::WaxedWeatheredCutCopperSlab => 64, + Item::BlazePowder => 64, + Item::CrackedDeepslateTiles => 64, + Item::PrismarineWall => 64, + Item::BlackGlazedTerracotta => 64, + Item::CyanCandle => 64, + Item::HuskSpawnEgg => 64, + Item::YellowStainedGlass => 64, + Item::Beetroot => 64, + Item::Apple => 64, + Item::CommandBlockMinecart => 1, + Item::SeaPickle => 64, + Item::Shield => 1, + Item::CrimsonFungus => 64, + Item::InfestedStone => 64, + Item::LimeCarpet => 64, + Item::CrimsonPressurePlate => 64, + Item::BrownMushroom => 64, + Item::Grindstone => 64, + Item::Conduit => 64, + Item::BrownConcrete => 64, + Item::StrippedAcaciaLog => 64, + Item::LilyPad => 64, + Item::MagentaStainedGlassPane => 64, + Item::PolishedBasalt => 64, + Item::MojangBannerPattern => 1, + Item::HornCoralBlock => 64, + Item::Netherrack => 64, + Item::WanderingTraderSpawnEgg => 64, Item::LightBlueTerracotta => 64, - Item::YellowTerracotta => 64, - Item::LimeTerracotta => 64, - Item::PinkTerracotta => 64, - Item::GrayTerracotta => 64, - Item::LightGrayTerracotta => 64, - Item::CyanTerracotta => 64, - Item::PurpleTerracotta => 64, + Item::Barrel => 64, + Item::DeepslateBricks => 64, + Item::CyanStainedGlass => 64, + Item::YellowStainedGlassPane => 64, + Item::StructureVoid => 64, + Item::SkeletonHorseSpawnEgg => 64, + Item::EndStoneBricks => 64, + Item::CobblestoneStairs => 64, + Item::DeepslateEmeraldOre => 64, Item::BlueTerracotta => 64, - Item::BrownTerracotta => 64, - Item::GreenTerracotta => 64, - Item::RedTerracotta => 64, - Item::BlackTerracotta => 64, - Item::Barrier => 64, - Item::IronTrapdoor => 64, - Item::HayBlock => 64, - Item::WhiteCarpet => 64, - Item::OrangeCarpet => 64, - Item::MagentaCarpet => 64, - Item::LightBlueCarpet => 64, - Item::YellowCarpet => 64, - Item::LimeCarpet => 64, - Item::PinkCarpet => 64, - Item::GrayCarpet => 64, - Item::LightGrayCarpet => 64, - Item::CyanCarpet => 64, - Item::PurpleCarpet => 64, - Item::BlueCarpet => 64, - Item::BrownCarpet => 64, - Item::GreenCarpet => 64, - Item::RedCarpet => 64, - Item::BlackCarpet => 64, - Item::Terracotta => 64, - Item::CoalBlock => 64, - Item::PackedIce => 64, - Item::AcaciaStairs => 64, + Item::RedConcretePowder => 64, + Item::SmoothQuartz => 64, + Item::NetherBrickStairs => 64, + Item::Dandelion => 64, + Item::Flint => 64, + Item::InfestedCrackedStoneBricks => 64, + Item::DeadHornCoralFan => 64, + Item::Pufferfish => 64, + Item::MushroomStem => 64, + Item::BrainCoralFan => 64, + Item::SpiderEye => 64, + Item::WarpedDoor => 64, + Item::DeepslateBrickWall => 64, Item::DarkOakStairs => 64, - Item::SlimeBlock => 64, - Item::GrassPath => 64, - Item::Sunflower => 64, - Item::Lilac => 64, - Item::RoseBush => 64, - Item::Peony => 64, - Item::TallGrass => 64, - Item::LargeFern => 64, - Item::WhiteStainedGlass => 64, - Item::OrangeStainedGlass => 64, + Item::ChorusFruit => 64, + Item::BlueConcretePowder => 64, + Item::Obsidian => 64, + Item::SmoothStoneSlab => 64, + Item::Bell => 64, + Item::RedNetherBrickSlab => 64, + Item::OakBoat => 1, + Item::EndStoneBrickSlab => 64, + Item::MagentaShulkerBox => 1, + Item::ShulkerSpawnEgg => 64, + Item::DiamondAxe => 1, + Item::DarkOakFence => 64, + Item::CrackedNetherBricks => 64, + Item::BlastFurnace => 64, + Item::Furnace => 64, + Item::CrackedStoneBricks => 64, + Item::GraniteWall => 64, + Item::ParrotSpawnEgg => 64, + Item::SmoothRedSandstoneStairs => 64, + Item::WaxedExposedCutCopper => 64, + Item::NetherGoldOre => 64, + Item::CrimsonTrapdoor => 64, + Item::BirchBoat => 1, + Item::HorseSpawnEgg => 64, + Item::PandaSpawnEgg => 64, + Item::OxidizedCutCopperSlab => 64, + Item::HoneycombBlock => 64, + Item::BoneBlock => 64, + Item::CookedBeef => 64, + Item::YellowTerracotta => 64, + Item::AncientDebris => 64, + Item::SmoothRedSandstoneSlab => 64, + Item::StoneAxe => 1, + Item::DeepslateTiles => 64, + Item::BlackstoneWall => 64, + Item::StonePickaxe => 1, + Item::EnchantingTable => 64, + Item::SmoothSandstone => 64, + Item::Cobblestone => 64, + Item::ShulkerBox => 1, + Item::WoodenHoe => 1, + Item::Terracotta => 64, + Item::OakLeaves => 64, + Item::AmethystBlock => 64, + Item::Dirt => 64, + Item::InfestedStoneBricks => 64, + Item::AndesiteStairs => 64, + Item::Light => 64, + Item::Lead => 64, + Item::HoneyBottle => 16, + Item::EmeraldBlock => 64, + Item::Diamond => 64, + Item::AzaleaLeaves => 64, + Item::LimeCandle => 64, Item::MagentaStainedGlass => 64, - Item::LightBlueStainedGlass => 64, - Item::YellowStainedGlass => 64, - Item::LimeStainedGlass => 64, - Item::PinkStainedGlass => 64, - Item::GrayStainedGlass => 64, - Item::LightGrayStainedGlass => 64, - Item::CyanStainedGlass => 64, - Item::PurpleStainedGlass => 64, - Item::BlueStainedGlass => 64, - Item::BrownStainedGlass => 64, - Item::GreenStainedGlass => 64, - Item::RedStainedGlass => 64, - Item::BlackStainedGlass => 64, - Item::WhiteStainedGlassPane => 64, - Item::OrangeStainedGlassPane => 64, - Item::MagentaStainedGlassPane => 64, - Item::LightBlueStainedGlassPane => 64, - Item::YellowStainedGlassPane => 64, - Item::LimeStainedGlassPane => 64, - Item::PinkStainedGlassPane => 64, - Item::GrayStainedGlassPane => 64, - Item::LightGrayStainedGlassPane => 64, - Item::CyanStainedGlassPane => 64, - Item::PurpleStainedGlassPane => 64, - Item::BlueStainedGlassPane => 64, - Item::BrownStainedGlassPane => 64, - Item::GreenStainedGlassPane => 64, + Item::PolishedBlackstoneBrickSlab => 64, + Item::BirchWood => 64, + Item::Comparator => 64, + Item::DeepslateDiamondOre => 64, + Item::MossyCobblestoneWall => 64, + Item::Chain => 64, + Item::RavagerSpawnEgg => 64, + Item::CryingObsidian => 64, + Item::YellowCandle => 64, + Item::MushroomStew => 1, + Item::SandstoneStairs => 64, + Item::Lectern => 64, + Item::GoldenSword => 1, + Item::SpruceStairs => 64, + Item::SquidSpawnEgg => 64, + Item::BlackShulkerBox => 1, + Item::WitherSkeletonSkull => 64, + Item::EndRod => 64, + Item::LimeShulkerBox => 1, + Item::DeepslateTileSlab => 64, + Item::MusicDiscPigstep => 1, + Item::WaxedWeatheredCopper => 64, + Item::BlackConcretePowder => 64, + Item::GoldBlock => 64, + Item::AcaciaPlanks => 64, + Item::MusicDiscChirp => 1, + Item::AcaciaSign => 16, + Item::StrippedCrimsonHyphae => 64, + Item::Composter => 64, + Item::PetrifiedOakSlab => 64, + Item::Rail => 64, + Item::WitchSpawnEgg => 64, + Item::CopperBlock => 64, + Item::IronHelmet => 1, + Item::NetheriteLeggings => 1, + Item::Cobweb => 64, + Item::BirchFenceGate => 64, + Item::BubbleCoral => 64, + Item::WhiteTerracotta => 64, + Item::ZombieHead => 64, + Item::NetheriteBoots => 1, + Item::PolishedBlackstoneBricks => 64, + Item::StrippedBirchWood => 64, + Item::HornCoralFan => 64, + Item::RedWool => 64, + Item::Gravel => 64, + Item::RedDye => 64, + Item::WarpedRoots => 64, + Item::StrippedOakWood => 64, + Item::WarpedButton => 64, + Item::NautilusShell => 64, + Item::StructureBlock => 64, + Item::HornCoral => 64, + Item::Sand => 64, + Item::ActivatorRail => 64, + Item::BigDripleaf => 64, + Item::AndesiteSlab => 64, + Item::WhiteConcrete => 64, + Item::QuartzSlab => 64, + Item::ChestMinecart => 1, Item::RedStainedGlassPane => 64, + Item::WaterBucket => 1, + Item::BoneMeal => 64, + Item::RoseBush => 64, + Item::PiglinBannerPattern => 1, + Item::WaxedCutCopper => 64, + Item::WhiteTulip => 64, + Item::WaxedCutCopperStairs => 64, + Item::SugarCane => 64, + Item::WarpedSign => 16, + Item::ChiseledPolishedBlackstone => 64, + Item::GhastSpawnEgg => 64, + Item::Cornflower => 64, + Item::MossyCobblestoneStairs => 64, + Item::LimeConcrete => 64, + Item::Lever => 64, + Item::Feather => 64, + Item::QuartzBlock => 64, + Item::AzureBluet => 64, + Item::WaxedOxidizedCopper => 64, + Item::YellowShulkerBox => 1, + Item::DeepslateTileStairs => 64, + Item::WetSponge => 64, + Item::SculkSensor => 64, + Item::RawCopper => 64, Item::BlackStainedGlassPane => 64, - Item::Prismarine => 64, - Item::PrismarineBricks => 64, - Item::DarkPrismarine => 64, - Item::PrismarineStairs => 64, - Item::PrismarineBrickStairs => 64, - Item::DarkPrismarineStairs => 64, - Item::SeaLantern => 64, - Item::RedSandstone => 64, - Item::ChiseledRedSandstone => 64, + Item::TropicalFishBucket => 1, + Item::Beehive => 64, + Item::WarpedFungusOnAStick => 64, + Item::GraniteSlab => 64, Item::CutRedSandstone => 64, - Item::RedSandstoneStairs => 64, - Item::RepeatingCommandBlock => 64, - Item::ChainCommandBlock => 64, - Item::MagmaBlock => 64, - Item::NetherWartBlock => 64, - Item::WarpedWartBlock => 64, - Item::RedNetherBricks => 64, - Item::BoneBlock => 64, - Item::StructureVoid => 64, - Item::Observer => 64, - Item::ShulkerBox => 1, - Item::WhiteShulkerBox => 1, - Item::OrangeShulkerBox => 1, - Item::MagentaShulkerBox => 1, - Item::LightBlueShulkerBox => 1, - Item::YellowShulkerBox => 1, - Item::LimeShulkerBox => 1, - Item::PinkShulkerBox => 1, - Item::GrayShulkerBox => 1, - Item::LightGrayShulkerBox => 1, - Item::CyanShulkerBox => 1, - Item::PurpleShulkerBox => 1, - Item::BlueShulkerBox => 1, + Item::GreenCandle => 64, + Item::CookedCod => 64, + Item::CobblestoneSlab => 64, + Item::SlimeBall => 64, + Item::WeepingVines => 64, + Item::StrippedSpruceLog => 64, + Item::PurpleCandle => 64, + Item::PolishedDeepslateWall => 64, + Item::Bricks => 64, + Item::BrownTerracotta => 64, + Item::TripwireHook => 64, + Item::MediumAmethystBud => 64, + Item::NetheriteBlock => 64, + Item::PolishedBlackstoneWall => 64, + Item::WaxedOxidizedCutCopperStairs => 64, + Item::BubbleCoralFan => 64, + Item::PurpleDye => 64, + Item::StoneBrickSlab => 64, + Item::Brick => 64, + Item::SkullBannerPattern => 1, + Item::SoulCampfire => 64, + Item::WhiteWool => 64, + Item::FireCoralBlock => 64, + Item::SalmonBucket => 1, + Item::CookedRabbit => 64, + Item::RedNetherBrickWall => 64, + Item::IronBars => 64, Item::BrownShulkerBox => 1, - Item::GreenShulkerBox => 1, - Item::RedShulkerBox => 1, - Item::BlackShulkerBox => 1, - Item::WhiteGlazedTerracotta => 64, - Item::OrangeGlazedTerracotta => 64, - Item::MagentaGlazedTerracotta => 64, - Item::LightBlueGlazedTerracotta => 64, - Item::YellowGlazedTerracotta => 64, - Item::LimeGlazedTerracotta => 64, - Item::PinkGlazedTerracotta => 64, - Item::GrayGlazedTerracotta => 64, - Item::LightGrayGlazedTerracotta => 64, - Item::CyanGlazedTerracotta => 64, - Item::PurpleGlazedTerracotta => 64, - Item::BlueGlazedTerracotta => 64, - Item::BrownGlazedTerracotta => 64, - Item::GreenGlazedTerracotta => 64, - Item::RedGlazedTerracotta => 64, - Item::BlackGlazedTerracotta => 64, - Item::WhiteConcrete => 64, + Item::DeadBrainCoral => 64, + Item::Barrier => 64, + Item::DeepslateBrickStairs => 64, + Item::NetheriteSword => 1, + Item::CyanStainedGlassPane => 64, + Item::LightGrayBanner => 16, + Item::WitherRose => 64, + Item::NetheriteHoe => 1, + Item::DeepslateGoldOre => 64, + Item::BirchPressurePlate => 64, + Item::IronIngot => 64, Item::OrangeConcrete => 64, - Item::MagentaConcrete => 64, - Item::LightBlueConcrete => 64, - Item::YellowConcrete => 64, - Item::LimeConcrete => 64, - Item::PinkConcrete => 64, + Item::ChiseledStoneBricks => 64, Item::GrayConcrete => 64, - Item::LightGrayConcrete => 64, - Item::CyanConcrete => 64, - Item::PurpleConcrete => 64, - Item::BlueConcrete => 64, - Item::BrownConcrete => 64, - Item::GreenConcrete => 64, - Item::RedConcrete => 64, - Item::BlackConcrete => 64, - Item::WhiteConcretePowder => 64, - Item::OrangeConcretePowder => 64, - Item::MagentaConcretePowder => 64, - Item::LightBlueConcretePowder => 64, + Item::SlimeSpawnEgg => 64, + Item::TrappedChest => 64, + Item::SandstoneWall => 64, + Item::BlackBed => 1, + Item::NetherStar => 64, + Item::BrainCoralBlock => 64, + Item::DetectorRail => 64, + Item::YellowBanner => 16, + Item::SmoothSandstoneSlab => 64, + Item::DarkOakSapling => 64, Item::YellowConcretePowder => 64, - Item::LimeConcretePowder => 64, + Item::PolishedAndesiteSlab => 64, + Item::NetheriteIngot => 64, + Item::EmeraldOre => 64, + Item::HeavyWeightedPressurePlate => 64, + Item::DarkOakSlab => 64, Item::PinkConcretePowder => 64, - Item::GrayConcretePowder => 64, - Item::LightGrayConcretePowder => 64, - Item::CyanConcretePowder => 64, - Item::PurpleConcretePowder => 64, - Item::BlueConcretePowder => 64, - Item::BrownConcretePowder => 64, - Item::GreenConcretePowder => 64, - Item::RedConcretePowder => 64, - Item::BlackConcretePowder => 64, - Item::TurtleEgg => 64, - Item::DeadTubeCoralBlock => 64, - Item::DeadBrainCoralBlock => 64, - Item::DeadBubbleCoralBlock => 64, - Item::DeadFireCoralBlock => 64, - Item::DeadHornCoralBlock => 64, - Item::TubeCoralBlock => 64, - Item::BrainCoralBlock => 64, - Item::BubbleCoralBlock => 64, - Item::FireCoralBlock => 64, - Item::HornCoralBlock => 64, - Item::TubeCoral => 64, - Item::BrainCoral => 64, - Item::BubbleCoral => 64, - Item::FireCoral => 64, - Item::HornCoral => 64, - Item::DeadBrainCoral => 64, - Item::DeadBubbleCoral => 64, - Item::DeadFireCoral => 64, - Item::DeadHornCoral => 64, - Item::DeadTubeCoral => 64, - Item::TubeCoralFan => 64, - Item::BrainCoralFan => 64, - Item::BubbleCoralFan => 64, - Item::FireCoralFan => 64, - Item::HornCoralFan => 64, - Item::DeadTubeCoralFan => 64, - Item::DeadBrainCoralFan => 64, - Item::DeadBubbleCoralFan => 64, - Item::DeadFireCoralFan => 64, - Item::DeadHornCoralFan => 64, - Item::BlueIce => 64, - Item::Conduit => 64, - Item::PolishedGraniteStairs => 64, - Item::SmoothRedSandstoneStairs => 64, - Item::MossyStoneBrickStairs => 64, - Item::PolishedDioriteStairs => 64, - Item::MossyCobblestoneStairs => 64, - Item::EndStoneBrickStairs => 64, - Item::StoneStairs => 64, - Item::SmoothSandstoneStairs => 64, - Item::SmoothQuartzStairs => 64, - Item::GraniteStairs => 64, - Item::AndesiteStairs => 64, + Item::CookedChicken => 64, + Item::SilverfishSpawnEgg => 64, + Item::PoppedChorusFruit => 64, + Item::WarpedStem => 64, + Item::NoteBlock => 64, + Item::NetherQuartzOre => 64, + Item::JackOLantern => 64, + Item::BlueStainedGlass => 64, + Item::HayBlock => 64, + Item::ChiseledQuartzBlock => 64, + Item::MagentaGlazedTerracotta => 64, Item::RedNetherBrickStairs => 64, - Item::PolishedAndesiteStairs => 64, - Item::DioriteStairs => 64, - Item::PolishedGraniteSlab => 64, - Item::SmoothRedSandstoneSlab => 64, - Item::MossyStoneBrickSlab => 64, + Item::StoneSword => 1, + Item::NetherBrick => 64, + Item::Snowball => 16, + Item::TurtleEgg => 64, Item::PolishedDioriteSlab => 64, - Item::MossyCobblestoneSlab => 64, - Item::EndStoneBrickSlab => 64, - Item::SmoothSandstoneSlab => 64, + Item::BrownWool => 64, + Item::LimeBanner => 16, + Item::BrickSlab => 64, Item::SmoothQuartzSlab => 64, - Item::GraniteSlab => 64, - Item::AndesiteSlab => 64, - Item::RedNetherBrickSlab => 64, - Item::PolishedAndesiteSlab => 64, - Item::DioriteSlab => 64, - Item::Scaffolding => 64, - Item::IronDoor => 64, - Item::OakDoor => 64, - Item::SpruceDoor => 64, - Item::BirchDoor => 64, - Item::JungleDoor => 64, - Item::AcaciaDoor => 64, - Item::DarkOakDoor => 64, - Item::CrimsonDoor => 64, - Item::WarpedDoor => 64, - Item::Repeater => 64, - Item::Comparator => 64, - Item::StructureBlock => 64, - Item::Jigsaw => 64, - Item::TurtleHelmet => 1, + Item::FireworkRocket => 64, + Item::MossyStoneBrickSlab => 64, + Item::Granite => 64, + Item::ExperienceBottle => 64, + Item::BlackCandle => 64, + Item::GoldenCarrot => 64, + Item::NetheriteShovel => 1, Item::Scute => 64, - Item::FlintAndSteel => 1, - Item::Apple => 64, - Item::Bow => 1, - Item::Arrow => 64, - Item::Coal => 64, - Item::Charcoal => 64, - Item::Diamond => 64, - Item::IronIngot => 64, + Item::CyanTerracotta => 64, + Item::CobbledDeepslate => 64, + Item::EndPortalFrame => 64, + Item::PinkStainedGlass => 64, + Item::GrayStainedGlassPane => 64, Item::GoldIngot => 64, - Item::NetheriteIngot => 64, + Item::IronOre => 64, + Item::QuartzBricks => 64, + Item::StraySpawnEgg => 64, + Item::JungleDoor => 64, + Item::IronLeggings => 1, + Item::RabbitSpawnEgg => 64, + Item::GlowLichen => 64, + Item::DarkOakDoor => 64, + Item::EndStoneBrickStairs => 64, + Item::PurpleBanner => 16, + Item::Fern => 64, + Item::Compass => 64, + Item::OrangeStainedGlass => 64, + Item::OrangeStainedGlassPane => 64, + Item::IronHorseArmor => 1, + Item::MossyStoneBricks => 64, + Item::CyanConcrete => 64, + Item::NameTag => 64, + Item::InfestedCobblestone => 64, + Item::JungleWood => 64, + Item::Peony => 64, + Item::SeaLantern => 64, + Item::MusicDisc13 => 1, + Item::ChickenSpawnEgg => 64, + Item::GoldenHoe => 1, + Item::Diorite => 64, + Item::BrownCarpet => 64, + Item::CrimsonHyphae => 64, Item::NetheriteScrap => 64, - Item::WoodenSword => 1, + Item::DeadHornCoralBlock => 64, + Item::OrangeGlazedTerracotta => 64, + Item::PhantomSpawnEgg => 64, + Item::AcaciaWood => 64, + Item::OakSlab => 64, + Item::AndesiteWall => 64, + Item::LightningRod => 64, + Item::MusicDiscFar => 1, + Item::WolfSpawnEgg => 64, + Item::Piston => 64, + Item::ChiseledNetherBricks => 64, + Item::BlueConcrete => 64, + Item::CookedMutton => 64, Item::WoodenShovel => 1, - Item::WoodenPickaxe => 1, - Item::WoodenAxe => 1, - Item::WoodenHoe => 1, - Item::StoneSword => 1, - Item::StoneShovel => 1, - Item::StonePickaxe => 1, - Item::StoneAxe => 1, - Item::StoneHoe => 1, - Item::GoldenSword => 1, - Item::GoldenShovel => 1, - Item::GoldenPickaxe => 1, - Item::GoldenAxe => 1, - Item::GoldenHoe => 1, - Item::IronSword => 1, + Item::JungleSign => 16, + Item::SweetBerries => 64, + Item::EndermiteSpawnEgg => 64, + Item::TropicalFishSpawnEgg => 64, + Item::SpruceBoat => 1, + Item::MossyCobblestone => 64, + Item::Elytra => 1, + Item::SmithingTable => 64, + Item::DaylightDetector => 64, + Item::RabbitHide => 64, + Item::CrimsonDoor => 64, + Item::BrewingStand => 64, + Item::GoatSpawnEgg => 64, + Item::Vine => 64, + Item::PolishedDeepslateSlab => 64, + Item::DarkPrismarine => 64, + Item::LlamaSpawnEgg => 64, + Item::DeepslateRedstoneOre => 64, + Item::GlassPane => 64, + Item::OrangeCarpet => 64, + Item::PolishedDeepslate => 64, + Item::OrangeTulip => 64, + Item::CrimsonButton => 64, + Item::Arrow => 64, + Item::LimeTerracotta => 64, + Item::MagentaTerracotta => 64, + Item::Spyglass => 1, + Item::Potion => 1, + Item::CutRedSandstoneSlab => 64, + Item::PolishedBlackstoneBrickWall => 64, + Item::DarkOakLog => 64, + Item::LapisLazuli => 64, + Item::BeeSpawnEgg => 64, + Item::RedBanner => 16, + Item::EnderEye => 64, + Item::ExposedCopper => 64, + Item::GuardianSpawnEgg => 64, + Item::PinkCandle => 64, + Item::CutCopperStairs => 64, + Item::CodBucket => 1, + Item::MagmaCubeSpawnEgg => 64, + Item::DragonHead => 64, + Item::IronBlock => 64, + Item::PackedIce => 64, + Item::JungleFence => 64, + Item::CraftingTable => 64, + Item::WhiteGlazedTerracotta => 64, + Item::LightWeightedPressurePlate => 64, Item::IronShovel => 1, - Item::IronPickaxe => 1, - Item::IronAxe => 1, - Item::IronHoe => 1, - Item::DiamondSword => 1, - Item::DiamondShovel => 1, - Item::DiamondPickaxe => 1, - Item::DiamondAxe => 1, - Item::DiamondHoe => 1, - Item::NetheriteSword => 1, - Item::NetheriteShovel => 1, - Item::NetheritePickaxe => 1, - Item::NetheriteAxe => 1, - Item::NetheriteHoe => 1, - Item::Stick => 64, + Item::PrismarineSlab => 64, + Item::DeadBush => 64, + Item::RabbitStew => 1, + Item::Allium => 64, + Item::TwistingVines => 64, + Item::StoneBrickStairs => 64, + Item::PufferfishSpawnEgg => 64, + Item::CatSpawnEgg => 64, + Item::DriedKelp => 64, + Item::TintedGlass => 64, + Item::OxidizedCutCopperStairs => 64, + Item::DeadHornCoral => 64, + Item::FireworkStar => 64, + Item::RedNetherBricks => 64, + Item::SalmonSpawnEgg => 64, + Item::LightBlueDye => 64, + Item::PrismarineShard => 64, + Item::RottenFlesh => 64, + Item::LimeStainedGlass => 64, + Item::CoalOre => 64, + Item::LightGrayWool => 64, + Item::DarkOakPressurePlate => 64, Item::Bowl => 64, - Item::MushroomStew => 1, - Item::String => 64, - Item::Feather => 64, - Item::Gunpowder => 64, + Item::Sugar => 64, + Item::BlueDye => 64, + Item::Blackstone => 64, + Item::Snow => 64, + Item::CobblestoneWall => 64, + Item::AcaciaFence => 64, + Item::WhiteConcretePowder => 64, + Item::PolishedBlackstoneButton => 64, + Item::Rabbit => 64, + Item::MusicDiscCat => 1, + Item::WhiteCandle => 64, + Item::PiglinBruteSpawnEgg => 64, + Item::WaxedWeatheredCutCopper => 64, + Item::CoarseDirt => 64, + Item::DripstoneBlock => 64, + Item::YellowCarpet => 64, + Item::TubeCoralBlock => 64, + Item::WarpedPlanks => 64, + Item::CyanCarpet => 64, + Item::DeadBubbleCoral => 64, + Item::FlintAndSteel => 1, Item::WheatSeeds => 64, - Item::Wheat => 64, - Item::Bread => 64, - Item::LeatherHelmet => 1, - Item::LeatherChestplate => 1, - Item::LeatherLeggings => 1, - Item::LeatherBoots => 1, - Item::ChainmailHelmet => 1, - Item::ChainmailChestplate => 1, - Item::ChainmailLeggings => 1, - Item::ChainmailBoots => 1, - Item::IronHelmet => 1, - Item::IronChestplate => 1, - Item::IronLeggings => 1, - Item::IronBoots => 1, - Item::DiamondHelmet => 1, - Item::DiamondChestplate => 1, - Item::DiamondLeggings => 1, - Item::DiamondBoots => 1, - Item::GoldenHelmet => 1, - Item::GoldenChestplate => 1, - Item::GoldenLeggings => 1, - Item::GoldenBoots => 1, - Item::NetheriteHelmet => 1, - Item::NetheriteChestplate => 1, - Item::NetheriteLeggings => 1, - Item::NetheriteBoots => 1, - Item::Flint => 64, - Item::Porkchop => 64, - Item::CookedPorkchop => 64, - Item::Painting => 64, - Item::GoldenApple => 64, - Item::EnchantedGoldenApple => 64, - Item::OakSign => 16, - Item::SpruceSign => 16, - Item::BirchSign => 16, - Item::JungleSign => 16, - Item::AcaciaSign => 16, - Item::DarkOakSign => 16, - Item::CrimsonSign => 16, - Item::WarpedSign => 16, - Item::Bucket => 16, - Item::WaterBucket => 1, - Item::LavaBucket => 1, - Item::Minecart => 1, - Item::Saddle => 1, + Item::PurpleBed => 1, + Item::Crossbow => 1, Item::Redstone => 64, - Item::Snowball => 16, - Item::OakBoat => 1, + Item::JunglePressurePlate => 64, + Item::EnderChest => 64, Item::Leather => 64, - Item::MilkBucket => 1, - Item::PufferfishBucket => 1, - Item::SalmonBucket => 1, - Item::CodBucket => 1, - Item::TropicalFishBucket => 1, - Item::Brick => 64, - Item::ClayBall => 64, - Item::DriedKelpBlock => 64, - Item::Paper => 64, - Item::Book => 64, - Item::SlimeBall => 64, - Item::ChestMinecart => 1, - Item::FurnaceMinecart => 1, - Item::Egg => 16, - Item::Compass => 64, - Item::FishingRod => 1, - Item::Clock => 64, - Item::GlowstoneDust => 64, - Item::Cod => 64, - Item::Salmon => 64, - Item::TropicalFish => 64, - Item::Pufferfish => 64, - Item::CookedCod => 64, + Item::RedstoneLamp => 64, Item::CookedSalmon => 64, - Item::InkSac => 64, Item::CocoaBeans => 64, - Item::LapisLazuli => 64, - Item::WhiteDye => 64, - Item::OrangeDye => 64, - Item::MagentaDye => 64, - Item::LightBlueDye => 64, - Item::YellowDye => 64, - Item::LimeDye => 64, - Item::PinkDye => 64, - Item::GrayDye => 64, - Item::LightGrayDye => 64, - Item::CyanDye => 64, - Item::PurpleDye => 64, - Item::BlueDye => 64, - Item::BrownDye => 64, - Item::GreenDye => 64, - Item::RedDye => 64, - Item::BlackDye => 64, - Item::BoneMeal => 64, - Item::Bone => 64, - Item::Sugar => 64, - Item::Cake => 1, - Item::WhiteBed => 1, - Item::OrangeBed => 1, - Item::MagentaBed => 1, + Item::MusicDiscWard => 1, + Item::WaxedExposedCutCopperSlab => 64, + Item::PurpleStainedGlass => 64, + Item::SprucePressurePlate => 64, + Item::WaxedCutCopperSlab => 64, + Item::NetherBrickWall => 64, + Item::InkSac => 64, + Item::TraderLlamaSpawnEgg => 64, + Item::BeetrootSeeds => 64, Item::LightBlueBed => 1, - Item::YellowBed => 1, - Item::LimeBed => 1, - Item::PinkBed => 1, - Item::GrayBed => 1, + Item::IronBoots => 1, + Item::NetherWartBlock => 64, + Item::PolishedAndesiteStairs => 64, + Item::GoldenApple => 64, + Item::GrayDye => 64, + Item::PurpleShulkerBox => 1, + Item::ZombieVillagerSpawnEgg => 64, + Item::BirchSapling => 64, + Item::LightGrayCarpet => 64, + Item::GreenStainedGlass => 64, + Item::LeatherBoots => 1, + Item::ChainmailHelmet => 1, + Item::ClayBall => 64, + Item::OakFenceGate => 64, + Item::FlowerBannerPattern => 1, + Item::LargeAmethystBud => 64, + Item::DeepslateBrickSlab => 64, + Item::DeepslateIronOre => 64, + Item::Jukebox => 64, + Item::GoldenPickaxe => 1, + Item::VillagerSpawnEgg => 64, + Item::BlackDye => 64, + Item::Deepslate => 64, Item::LightGrayBed => 1, - Item::CyanBed => 1, - Item::PurpleBed => 1, - Item::BlueBed => 1, - Item::BrownBed => 1, - Item::GreenBed => 1, - Item::RedBed => 1, - Item::BlackBed => 1, - Item::Cookie => 64, - Item::FilledMap => 64, - Item::Shears => 1, - Item::MelonSlice => 64, - Item::DriedKelp => 64, - Item::PumpkinSeeds => 64, - Item::MelonSeeds => 64, - Item::Beef => 64, - Item::CookedBeef => 64, - Item::Chicken => 64, - Item::CookedChicken => 64, - Item::RottenFlesh => 64, - Item::EnderPearl => 16, - Item::BlazeRod => 64, - Item::GhastTear => 64, - Item::GoldNugget => 64, - Item::NetherWart => 64, - Item::Potion => 1, - Item::GlassBottle => 64, - Item::SpiderEye => 64, - Item::FermentedSpiderEye => 64, - Item::BlazePowder => 64, - Item::MagmaCream => 64, - Item::BrewingStand => 64, - Item::Cauldron => 64, - Item::EnderEye => 64, - Item::GlisteringMelonSlice => 64, - Item::BatSpawnEgg => 64, - Item::BeeSpawnEgg => 64, - Item::BlazeSpawnEgg => 64, - Item::CatSpawnEgg => 64, + Item::BlueOrchid => 64, + Item::DeadFireCoralBlock => 64, + Item::WoodenPickaxe => 1, + Item::CrackedDeepslateBricks => 64, + Item::PrismarineStairs => 64, + Item::AcaciaPressurePlate => 64, + Item::LilyOfTheValley => 64, + Item::BlueStainedGlassPane => 64, + Item::SpruceFenceGate => 64, + Item::Painting => 64, + Item::Bundle => 1, Item::CaveSpiderSpawnEgg => 64, - Item::ChickenSpawnEgg => 64, - Item::CodSpawnEgg => 64, - Item::CowSpawnEgg => 64, - Item::CreeperSpawnEgg => 64, - Item::DolphinSpawnEgg => 64, - Item::DonkeySpawnEgg => 64, - Item::DrownedSpawnEgg => 64, - Item::ElderGuardianSpawnEgg => 64, - Item::EndermanSpawnEgg => 64, - Item::EndermiteSpawnEgg => 64, - Item::EvokerSpawnEgg => 64, - Item::FoxSpawnEgg => 64, - Item::GhastSpawnEgg => 64, - Item::GuardianSpawnEgg => 64, - Item::HoglinSpawnEgg => 64, - Item::HorseSpawnEgg => 64, - Item::HuskSpawnEgg => 64, - Item::LlamaSpawnEgg => 64, - Item::MagmaCubeSpawnEgg => 64, - Item::MooshroomSpawnEgg => 64, + Item::DragonBreath => 64, + Item::CyanBanner => 16, + Item::PrismarineBrickStairs => 64, Item::MuleSpawnEgg => 64, - Item::OcelotSpawnEgg => 64, - Item::PandaSpawnEgg => 64, - Item::ParrotSpawnEgg => 64, - Item::PhantomSpawnEgg => 64, - Item::PigSpawnEgg => 64, + Item::DioriteStairs => 64, Item::PiglinSpawnEgg => 64, - Item::PiglinBruteSpawnEgg => 64, - Item::PillagerSpawnEgg => 64, + Item::LightBlueWool => 64, + Item::WoodenSword => 1, + Item::MusicDiscMall => 1, + Item::GrayConcretePowder => 64, + Item::MossBlock => 64, + Item::PrismarineBrickSlab => 64, + Item::MagentaCarpet => 64, + Item::WaxedOxidizedCutCopperSlab => 64, + Item::WrittenBook => 16, + Item::PrismarineCrystals => 64, + Item::StoneButton => 64, + Item::BlueShulkerBox => 1, + Item::MusicDiscOtherside => 1, + Item::SporeBlossom => 64, + Item::DriedKelpBlock => 64, + Item::GlowBerries => 64, + Item::StoneStairs => 64, + Item::Quartz => 64, + Item::StrippedJungleLog => 64, + Item::WaxedWeatheredCutCopperStairs => 64, + Item::PinkGlazedTerracotta => 64, + Item::TippedArrow => 64, + Item::BlueIce => 64, + Item::StickyPiston => 64, + Item::JungleFenceGate => 64, + Item::CarvedPumpkin => 64, + Item::RedConcrete => 64, + Item::RedSandstoneStairs => 64, + Item::DiamondBoots => 1, + Item::OakFence => 64, + Item::Smoker => 64, + Item::CommandBlock => 64, + Item::LightBlueBanner => 16, + Item::DirtPath => 64, + Item::BrownConcretePowder => 64, + Item::TubeCoral => 64, + Item::GlowItemFrame => 64, + Item::PlayerHead => 64, + Item::BrownDye => 64, + Item::HoglinSpawnEgg => 64, + Item::Ice => 64, + Item::StoneHoe => 1, + Item::RawCopperBlock => 64, + Item::SmoothRedSandstone => 64, + Item::PolishedDeepslateStairs => 64, + Item::GreenBanner => 16, + Item::LargeFern => 64, + Item::PurpurStairs => 64, + Item::CyanShulkerBox => 1, Item::PolarBearSpawnEgg => 64, - Item::PufferfishSpawnEgg => 64, - Item::RabbitSpawnEgg => 64, - Item::RavagerSpawnEgg => 64, - Item::SalmonSpawnEgg => 64, - Item::SheepSpawnEgg => 64, - Item::ShulkerSpawnEgg => 64, - Item::SilverfishSpawnEgg => 64, - Item::SkeletonSpawnEgg => 64, - Item::SkeletonHorseSpawnEgg => 64, - Item::SlimeSpawnEgg => 64, - Item::SpiderSpawnEgg => 64, - Item::SquidSpawnEgg => 64, - Item::StraySpawnEgg => 64, - Item::StriderSpawnEgg => 64, - Item::TraderLlamaSpawnEgg => 64, - Item::TropicalFishSpawnEgg => 64, - Item::TurtleSpawnEgg => 64, - Item::VexSpawnEgg => 64, - Item::VillagerSpawnEgg => 64, - Item::VindicatorSpawnEgg => 64, - Item::WanderingTraderSpawnEgg => 64, - Item::WitchSpawnEgg => 64, - Item::WitherSkeletonSpawnEgg => 64, - Item::WolfSpawnEgg => 64, - Item::ZoglinSpawnEgg => 64, - Item::ZombieSpawnEgg => 64, + Item::DeadBrainCoralFan => 64, + Item::BirchPlanks => 64, + Item::YellowConcrete => 64, + Item::IronAxe => 1, + Item::RedTerracotta => 64, + Item::BlueBanner => 16, + Item::CyanGlazedTerracotta => 64, + Item::GrayBed => 1, + Item::Dispenser => 64, + Item::DiamondLeggings => 1, + Item::BirchFence => 64, + Item::Bucket => 16, + Item::PolishedAndesite => 64, + Item::RedstoneOre => 64, + Item::WarpedPressurePlate => 64, + Item::DiamondHoe => 1, + Item::BeeNest => 64, + Item::Anvil => 64, Item::ZombieHorseSpawnEgg => 64, - Item::ZombieVillagerSpawnEgg => 64, - Item::ZombifiedPiglinSpawnEgg => 64, - Item::ExperienceBottle => 64, - Item::FireCharge => 64, - Item::WritableBook => 1, - Item::WrittenBook => 16, - Item::Emerald => 64, - Item::ItemFrame => 64, - Item::FlowerPot => 64, - Item::Carrot => 64, - Item::Potato => 64, + Item::BlueCandle => 64, + Item::BrownStainedGlassPane => 64, + Item::RedStainedGlass => 64, + Item::DrownedSpawnEgg => 64, Item::BakedPotato => 64, - Item::PoisonousPotato => 64, - Item::Map => 64, - Item::GoldenCarrot => 64, - Item::SkeletonSkull => 64, - Item::WitherSkeletonSkull => 64, - Item::PlayerHead => 64, - Item::ZombieHead => 64, - Item::CreeperHead => 64, - Item::DragonHead => 64, - Item::CarrotOnAStick => 1, - Item::WarpedFungusOnAStick => 64, - Item::NetherStar => 64, - Item::PumpkinPie => 64, - Item::FireworkRocket => 64, - Item::FireworkStar => 64, - Item::EnchantedBook => 1, - Item::NetherBrick => 64, - Item::Quartz => 64, - Item::TntMinecart => 1, - Item::HopperMinecart => 1, - Item::PrismarineShard => 64, - Item::PrismarineCrystals => 64, - Item::Rabbit => 64, - Item::CookedRabbit => 64, - Item::RabbitStew => 1, - Item::RabbitFoot => 64, - Item::RabbitHide => 64, - Item::ArmorStand => 16, - Item::IronHorseArmor => 1, - Item::GoldenHorseArmor => 1, - Item::DiamondHorseArmor => 1, - Item::LeatherHorseArmor => 1, - Item::Lead => 64, - Item::NameTag => 64, - Item::CommandBlockMinecart => 1, - Item::Mutton => 64, - Item::CookedMutton => 64, + Item::FletchingTable => 64, + Item::ChainmailBoots => 1, + Item::SpruceLog => 64, + Item::BlackstoneStairs => 64, + Item::AcaciaSlab => 64, + Item::StrippedOakLog => 64, + Item::WaxedCopperBlock => 64, + Item::Bookshelf => 64, + Item::StrippedBirchLog => 64, + Item::PinkShulkerBox => 1, + Item::GlisteringMelonSlice => 64, + Item::Basalt => 64, + Item::GoldenLeggings => 1, + Item::AcaciaLog => 64, + Item::PinkBed => 1, + Item::Glass => 64, + Item::CopperOre => 64, + Item::LimeConcretePowder => 64, + Item::Podzol => 64, + Item::GreenBed => 1, + Item::BlackConcrete => 64, + Item::BirchLeaves => 64, + Item::ChainCommandBlock => 64, + Item::Scaffolding => 64, + Item::DeadTubeCoralBlock => 64, + Item::Bread => 64, + Item::PufferfishBucket => 1, + Item::BirchSlab => 64, + Item::SmoothStone => 64, + Item::LightGrayDye => 64, + Item::PinkConcrete => 64, + Item::QuartzStairs => 64, + Item::MagmaCream => 64, Item::WhiteBanner => 16, - Item::OrangeBanner => 16, - Item::MagentaBanner => 16, - Item::LightBlueBanner => 16, - Item::YellowBanner => 16, - Item::LimeBanner => 16, - Item::PinkBanner => 16, + Item::SuspiciousStew => 1, + Item::EndStoneBrickWall => 64, + Item::Wheat => 64, + Item::MelonSlice => 64, + Item::SpruceFence => 64, + Item::WeatheredCutCopperSlab => 64, + Item::OakDoor => 64, Item::GrayBanner => 16, - Item::LightGrayBanner => 16, - Item::CyanBanner => 16, - Item::PurpleBanner => 16, - Item::BlueBanner => 16, - Item::BrownBanner => 16, - Item::GreenBanner => 16, - Item::RedBanner => 16, - Item::BlackBanner => 16, - Item::EndCrystal => 64, - Item::ChorusFruit => 64, - Item::PoppedChorusFruit => 64, - Item::Beetroot => 64, - Item::BeetrootSeeds => 64, - Item::BeetrootSoup => 1, - Item::DragonBreath => 64, - Item::SplashPotion => 1, - Item::SpectralArrow => 64, - Item::TippedArrow => 64, - Item::LingeringPotion => 1, - Item::Shield => 1, - Item::Elytra => 1, - Item::SpruceBoat => 1, - Item::BirchBoat => 1, - Item::JungleBoat => 1, - Item::AcaciaBoat => 1, - Item::DarkOakBoat => 1, - Item::TotemOfUndying => 1, - Item::ShulkerShell => 64, - Item::IronNugget => 64, - Item::KnowledgeBook => 1, - Item::DebugStick => 1, - Item::MusicDisc13 => 1, - Item::MusicDiscCat => 1, - Item::MusicDiscBlocks => 1, - Item::MusicDiscChirp => 1, - Item::MusicDiscFar => 1, - Item::MusicDiscMall => 1, + Item::BlackstoneSlab => 64, + Item::DarkOakWood => 64, + Item::PigSpawnEgg => 64, + Item::StriderSpawnEgg => 64, + Item::DarkOakFenceGate => 64, + Item::CrimsonStairs => 64, + Item::NetheriteChestplate => 1, + Item::ChorusPlant => 64, + Item::ExposedCutCopperStairs => 64, + Item::MossyStoneBrickWall => 64, + Item::OakWood => 64, + Item::LimeBed => 1, + Item::Charcoal => 64, + Item::Hopper => 64, + Item::NetheriteHelmet => 1, + Item::Cookie => 64, + Item::EnchantedBook => 1, + Item::WhiteCarpet => 64, + Item::Ladder => 64, + Item::LightGrayConcretePowder => 64, + Item::GreenWool => 64, + Item::Shears => 1, + Item::JungleButton => 64, + Item::Gunpowder => 64, + Item::CutSandstone => 64, + Item::CrimsonNylium => 64, + Item::DiamondHorseArmor => 1, Item::MusicDiscMellohi => 1, - Item::MusicDiscStal => 1, + Item::GoldenBoots => 1, + Item::AcaciaFenceGate => 64, + Item::MilkBucket => 1, + Item::BrownGlazedTerracotta => 64, + Item::Stick => 64, + Item::RedCandle => 64, + Item::Grass => 64, + Item::MagentaBanner => 16, + Item::PumpkinSeeds => 64, + Item::GlowSquidSpawnEgg => 64, + Item::CobbledDeepslateStairs => 64, + Item::JungleTrapdoor => 64, Item::MusicDiscStrad => 1, - Item::MusicDiscWard => 1, - Item::MusicDisc11 => 1, - Item::MusicDiscWait => 1, - Item::MusicDiscPigstep => 1, - Item::Trident => 1, - Item::PhantomMembrane => 64, - Item::NautilusShell => 64, - Item::HeartOfTheSea => 64, - Item::Crossbow => 1, - Item::SuspiciousStew => 1, - Item::Loom => 64, - Item::FlowerBannerPattern => 1, + Item::OcelotSpawnEgg => 64, + Item::Map => 64, + Item::GoldenHelmet => 1, + Item::StoneSlab => 64, + Item::Sponge => 64, + Item::PurpleStainedGlassPane => 64, + Item::PurpleConcretePowder => 64, + Item::SpruceSapling => 64, + Item::MusicDiscStal => 1, + Item::BubbleCoralBlock => 64, + Item::GhastTear => 64, + Item::SpruceTrapdoor => 64, + Item::EvokerSpawnEgg => 64, + Item::DiamondPickaxe => 1, + Item::OxidizedCutCopper => 64, + Item::BrickStairs => 64, + Item::AcaciaButton => 64, + Item::AmethystShard => 64, + Item::Paper => 64, + Item::GreenGlazedTerracotta => 64, + Item::GraniteStairs => 64, + Item::Melon => 64, + Item::EnchantedGoldenApple => 64, + Item::NetheriteAxe => 1, + Item::DiamondSword => 1, + Item::GrayCarpet => 64, + Item::SpruceSign => 16, + Item::CrimsonSign => 16, + Item::Beef => 64, + Item::JungleLog => 64, + Item::StrippedDarkOakLog => 64, + Item::EndCrystal => 64, + Item::FoxSpawnEgg => 64, Item::CreeperBannerPattern => 1, - Item::SkullBannerPattern => 1, - Item::MojangBannerPattern => 1, - Item::GlobeBannerPattern => 1, - Item::PiglinBannerPattern => 1, - Item::Composter => 64, - Item::Barrel => 64, - Item::Smoker => 64, - Item::BlastFurnace => 64, + Item::WeatheredCopper => 64, + Item::WeatheredCutCopperStairs => 64, + Item::WarpedFungus => 64, + Item::HeartOfTheSea => 64, + Item::WhiteBed => 1, + Item::BlueGlazedTerracotta => 64, + Item::WitherSkeletonSpawnEgg => 64, + Item::DamagedAnvil => 64, + Item::FurnaceMinecart => 1, + Item::OakSign => 16, + Item::StrippedDarkOakWood => 64, + Item::MagentaConcretePowder => 64, + Item::SpiderSpawnEgg => 64, + Item::FireCoralFan => 64, + Item::PurpleGlazedTerracotta => 64, + Item::ExposedCutCopper => 64, + Item::PolishedBlackstonePressurePlate => 64, + Item::Bone => 64, + Item::OakLog => 64, + Item::BrainCoral => 64, + Item::Trident => 1, + Item::FireCharge => 64, + Item::SoulSand => 64, + Item::GrayShulkerBox => 1, + Item::LightGrayTerracotta => 64, + Item::DarkPrismarineSlab => 64, + Item::GreenStainedGlassPane => 64, + Item::Prismarine => 64, + Item::PrismarineBricks => 64, + Item::GrayGlazedTerracotta => 64, + Item::RedCarpet => 64, + Item::StrippedSpruceWood => 64, + Item::ChiseledRedSandstone => 64, + Item::ChainmailChestplate => 1, + Item::GoldenChestplate => 1, + Item::LavaBucket => 1, + Item::RabbitFoot => 64, Item::CartographyTable => 64, - Item::FletchingTable => 64, - Item::Grindstone => 64, - Item::Lectern => 64, - Item::SmithingTable => 64, - Item::Stonecutter => 64, - Item::Bell => 64, - Item::Lantern => 64, + Item::BirchDoor => 64, + Item::SmallDripleaf => 64, + Item::TntMinecart => 1, + Item::WoodenAxe => 1, + Item::CyanConcretePowder => 64, Item::SoulLantern => 64, - Item::SweetBerries => 64, - Item::Campfire => 64, - Item::SoulCampfire => 64, - Item::Shroomlight => 64, - Item::Honeycomb => 64, - Item::BeeNest => 64, - Item::Beehive => 64, - Item::HoneyBottle => 16, - Item::HoneyBlock => 64, - Item::HoneycombBlock => 64, - Item::Lodestone => 64, - Item::NetheriteBlock => 64, - Item::AncientDebris => 64, + Item::PinkWool => 64, + Item::BrownMushroomBlock => 64, + Item::DeadTubeCoralFan => 64, + Item::OakPressurePlate => 64, + Item::BeetrootSoup => 1, + Item::OakPlanks => 64, + Item::LightGrayStainedGlass => 64, + Item::Observer => 64, + Item::FlowerPot => 64, + Item::RedBed => 1, + Item::BlueBed => 1, + Item::DarkOakPlanks => 64, + Item::DioriteWall => 64, + Item::Poppy => 64, + Item::Spawner => 64, + Item::WarpedTrapdoor => 64, + Item::PinkDye => 64, + Item::BlackTerracotta => 64, + Item::RedShulkerBox => 1, + Item::CrimsonRoots => 64, + Item::Bamboo => 64, + Item::AcaciaDoor => 64, + Item::Tuff => 64, + Item::CrimsonStem => 64, + Item::SnowBlock => 64, + Item::AcaciaStairs => 64, + Item::YellowBed => 1, + Item::TallGrass => 64, + Item::OrangeDye => 64, + Item::StoneBrickWall => 64, + Item::GrassBlock => 64, + Item::PurpleTerracotta => 64, + Item::GreenConcrete => 64, Item::Target => 64, - Item::CryingObsidian => 64, - Item::Blackstone => 64, - Item::BlackstoneSlab => 64, - Item::BlackstoneStairs => 64, + Item::RedstoneTorch => 64, + Item::PurpurSlab => 64, + Item::GreenDye => 64, + Item::HoneyBlock => 64, + Item::PoisonousPotato => 64, + Item::FilledMap => 64, + Item::WarpedStairs => 64, + Item::StrippedWarpedHyphae => 64, + Item::SpruceLeaves => 64, + Item::BlackCarpet => 64, + Item::PolishedBlackstoneSlab => 64, + Item::SheepSpawnEgg => 64, + Item::JungleSapling => 64, + Item::MagentaWool => 64, + Item::WarpedFence => 64, + Item::ArmorStand => 16, + Item::InfestedDeepslate => 64, + Item::GlassBottle => 64, + Item::WhiteStainedGlass => 64, + Item::MagentaCandle => 64, + Item::RedMushroom => 64, + Item::CopperIngot => 64, + Item::DioriteSlab => 64, + Item::TurtleHelmet => 1, + Item::GoldNugget => 64, + Item::StonePressurePlate => 64, + Item::NetherBricks => 64, + Item::Dropper => 64, + Item::Stone => 64, + Item::PointedDripstone => 64, + Item::PurpleWool => 64, + Item::LimeDye => 64, + Item::DeepslateLapisOre => 64, + Item::CrimsonSlab => 64, + Item::GoldOre => 64, + Item::BlackStainedGlass => 64, + Item::Tnt => 64, + Item::WarpedNylium => 64, + Item::IronChestplate => 1, + Item::SandstoneSlab => 64, + Item::IronTrapdoor => 64, + Item::GoldenAxe => 1, + Item::FloweringAzaleaLeaves => 64, + Item::AxolotlSpawnEgg => 64, + Item::AxolotlBucket => 1, + Item::GoldenHorseArmor => 1, + Item::StrippedJungleWood => 64, + Item::LeatherChestplate => 1, + Item::AcaciaLeaves => 64, + Item::InfestedChiseledStoneBricks => 64, + Item::GrayCandle => 64, + Item::Lilac => 64, + Item::LimeGlazedTerracotta => 64, + Item::TubeCoralFan => 64, + Item::CodSpawnEgg => 64, + Item::LimeStainedGlassPane => 64, + Item::RedTulip => 64, + Item::LightGrayStainedGlassPane => 64, + Item::DiamondShovel => 1, + Item::WarpedWartBlock => 64, + Item::YellowDye => 64, + Item::SpruceWood => 64, + Item::CoalBlock => 64, + Item::ChiseledSandstone => 64, + Item::WaxedExposedCutCopperStairs => 64, Item::GildedBlackstone => 64, - Item::PolishedBlackstone => 64, - Item::PolishedBlackstoneSlab => 64, - Item::PolishedBlackstoneStairs => 64, - Item::ChiseledPolishedBlackstone => 64, - Item::PolishedBlackstoneBricks => 64, - Item::PolishedBlackstoneBrickSlab => 64, - Item::PolishedBlackstoneBrickStairs => 64, - Item::CrackedPolishedBlackstoneBricks => 64, - Item::RespawnAnchor => 64, + Item::Torch => 64, + Item::WritableBook => 1, + Item::TotemOfUndying => 1, + Item::WarpedHyphae => 64, + Item::PillagerSpawnEgg => 64, + Item::BirchButton => 64, + Item::CyanWool => 64, + Item::Mutton => 64, + Item::FireCoral => 64, + Item::Lodestone => 64, + Item::WarpedSlab => 64, + Item::BlueCarpet => 64, + Item::Azalea => 64, + Item::BirchStairs => 64, + Item::Pumpkin => 64, + Item::StrippedCrimsonStem => 64, + Item::YellowWool => 64, + Item::CobbledDeepslateSlab => 64, + Item::DarkOakTrapdoor => 64, + Item::BrickWall => 64, + Item::LightBlueConcretePowder => 64, + Item::Farmland => 64, + Item::Book => 64, + Item::BatSpawnEgg => 64, + Item::ItemFrame => 64, + Item::BlackBanner => 16, + Item::LeatherLeggings => 1, + Item::PumpkinPie => 64, } } } -#[allow(warnings)] -#[allow(clippy::all)] impl Item { - /// Returns the `durability` property of this `Item`. - pub fn durability(&self) -> Option { + #[doc = "Returns the `max_durability` property of this `Item`."] + #[inline] + pub fn max_durability(&self) -> Option { match self { - Item::Air => None, - Item::Stone => None, - Item::Granite => None, - Item::PolishedGranite => None, - Item::Diorite => None, - Item::PolishedDiorite => None, - Item::Andesite => None, - Item::PolishedAndesite => None, - Item::GrassBlock => None, - Item::Dirt => None, - Item::CoarseDirt => None, - Item::Podzol => None, - Item::CrimsonNylium => None, - Item::WarpedNylium => None, - Item::Cobblestone => None, - Item::OakPlanks => None, - Item::SprucePlanks => None, - Item::BirchPlanks => None, - Item::JunglePlanks => None, - Item::AcaciaPlanks => None, - Item::DarkOakPlanks => None, - Item::CrimsonPlanks => None, + Item::IronBars => None, + Item::PinkGlazedTerracotta => None, Item::WarpedPlanks => None, - Item::OakSapling => None, - Item::SpruceSapling => None, - Item::BirchSapling => None, - Item::JungleSapling => None, - Item::AcaciaSapling => None, - Item::DarkOakSapling => None, - Item::Bedrock => None, - Item::Sand => None, - Item::RedSand => None, - Item::Gravel => None, - Item::GoldOre => None, - Item::IronOre => None, - Item::CoalOre => None, - Item::NetherGoldOre => None, - Item::OakLog => None, - Item::SpruceLog => None, - Item::BirchLog => None, - Item::JungleLog => None, - Item::AcaciaLog => None, - Item::DarkOakLog => None, - Item::CrimsonStem => None, - Item::WarpedStem => None, + Item::IronNugget => None, + Item::EndStoneBrickSlab => None, + Item::CobbledDeepslateStairs => None, Item::StrippedOakLog => None, - Item::StrippedSpruceLog => None, - Item::StrippedBirchLog => None, - Item::StrippedJungleLog => None, - Item::StrippedAcaciaLog => None, - Item::StrippedDarkOakLog => None, - Item::StrippedCrimsonStem => None, - Item::StrippedWarpedStem => None, - Item::StrippedOakWood => None, - Item::StrippedSpruceWood => None, - Item::StrippedBirchWood => None, - Item::StrippedJungleWood => None, - Item::StrippedAcaciaWood => None, - Item::StrippedDarkOakWood => None, - Item::StrippedCrimsonHyphae => None, - Item::StrippedWarpedHyphae => None, - Item::OakWood => None, - Item::SpruceWood => None, - Item::BirchWood => None, - Item::JungleWood => None, - Item::AcaciaWood => None, - Item::DarkOakWood => None, - Item::CrimsonHyphae => None, - Item::WarpedHyphae => None, - Item::OakLeaves => None, - Item::SpruceLeaves => None, - Item::BirchLeaves => None, - Item::JungleLeaves => None, - Item::AcaciaLeaves => None, - Item::DarkOakLeaves => None, - Item::Sponge => None, - Item::WetSponge => None, - Item::Glass => None, - Item::LapisOre => None, - Item::LapisBlock => None, - Item::Dispenser => None, - Item::Sandstone => None, - Item::ChiseledSandstone => None, - Item::CutSandstone => None, - Item::NoteBlock => None, - Item::PoweredRail => None, - Item::DetectorRail => None, - Item::StickyPiston => None, - Item::Cobweb => None, - Item::Grass => None, - Item::Fern => None, - Item::DeadBush => None, - Item::Seagrass => None, - Item::SeaPickle => None, - Item::Piston => None, - Item::WhiteWool => None, - Item::OrangeWool => None, - Item::MagentaWool => None, - Item::LightBlueWool => None, - Item::YellowWool => None, - Item::LimeWool => None, - Item::PinkWool => None, - Item::GrayWool => None, - Item::LightGrayWool => None, - Item::CyanWool => None, - Item::PurpleWool => None, - Item::BlueWool => None, - Item::BrownWool => None, - Item::GreenWool => None, - Item::RedWool => None, - Item::BlackWool => None, - Item::Dandelion => None, - Item::Poppy => None, - Item::BlueOrchid => None, - Item::Allium => None, - Item::AzureBluet => None, - Item::RedTulip => None, - Item::OrangeTulip => None, - Item::WhiteTulip => None, - Item::PinkTulip => None, - Item::OxeyeDaisy => None, - Item::Cornflower => None, - Item::LilyOfTheValley => None, - Item::WitherRose => None, - Item::BrownMushroom => None, - Item::RedMushroom => None, - Item::CrimsonFungus => None, - Item::WarpedFungus => None, - Item::CrimsonRoots => None, - Item::WarpedRoots => None, - Item::NetherSprouts => None, + Item::PolishedBlackstone => None, + Item::DeepslateBrickStairs => None, + Item::StoneShovel => Some(131), + Item::OakSign => None, + Item::SporeBlossom => None, + Item::SlimeBall => None, Item::WeepingVines => None, - Item::TwistingVines => None, - Item::SugarCane => None, - Item::Kelp => None, - Item::Bamboo => None, - Item::GoldBlock => None, - Item::IronBlock => None, - Item::OakSlab => None, - Item::SpruceSlab => None, - Item::BirchSlab => None, - Item::JungleSlab => None, - Item::AcaciaSlab => None, - Item::DarkOakSlab => None, - Item::CrimsonSlab => None, - Item::WarpedSlab => None, - Item::StoneSlab => None, - Item::SmoothStoneSlab => None, - Item::SandstoneSlab => None, - Item::CutSandstoneSlab => None, - Item::PetrifiedOakSlab => None, - Item::CobblestoneSlab => None, - Item::BrickSlab => None, - Item::StoneBrickSlab => None, - Item::NetherBrickSlab => None, - Item::QuartzSlab => None, + Item::Compass => None, + Item::CodSpawnEgg => None, + Item::QuartzBricks => None, + Item::Map => None, + Item::PiglinBannerPattern => None, + Item::NetheriteShovel => Some(2031), + Item::CyanWool => None, Item::RedSandstoneSlab => None, - Item::CutRedSandstoneSlab => None, - Item::PurpurSlab => None, - Item::PrismarineSlab => None, - Item::PrismarineBrickSlab => None, - Item::DarkPrismarineSlab => None, - Item::SmoothQuartz => None, - Item::SmoothRedSandstone => None, - Item::SmoothSandstone => None, - Item::SmoothStone => None, - Item::Bricks => None, + Item::PinkDye => None, + Item::SplashPotion => None, + Item::PolishedBlackstoneSlab => None, + Item::WaxedWeatheredCopper => None, + Item::BrownTerracotta => None, + Item::PoweredRail => None, + Item::JungleSign => None, Item::Tnt => None, - Item::Bookshelf => None, - Item::MossyCobblestone => None, - Item::Obsidian => None, - Item::Torch => None, - Item::EndRod => None, - Item::ChorusPlant => None, - Item::ChorusFlower => None, - Item::PurpurBlock => None, - Item::PurpurPillar => None, - Item::PurpurStairs => None, - Item::Spawner => None, - Item::OakStairs => None, - Item::Chest => None, - Item::DiamondOre => None, - Item::DiamondBlock => None, - Item::CraftingTable => None, - Item::Farmland => None, - Item::Furnace => None, - Item::Ladder => None, - Item::Rail => None, - Item::CobblestoneStairs => None, - Item::Lever => None, - Item::StonePressurePlate => None, - Item::OakPressurePlate => None, - Item::SprucePressurePlate => None, - Item::BirchPressurePlate => None, - Item::JunglePressurePlate => None, - Item::AcaciaPressurePlate => None, - Item::DarkOakPressurePlate => None, - Item::CrimsonPressurePlate => None, - Item::WarpedPressurePlate => None, - Item::PolishedBlackstonePressurePlate => None, - Item::RedstoneOre => None, - Item::RedstoneTorch => None, - Item::Snow => None, - Item::Ice => None, - Item::SnowBlock => None, - Item::Cactus => None, - Item::Clay => None, - Item::Jukebox => None, - Item::OakFence => None, - Item::SpruceFence => None, - Item::BirchFence => None, - Item::JungleFence => None, - Item::AcaciaFence => None, - Item::DarkOakFence => None, - Item::CrimsonFence => None, - Item::WarpedFence => None, - Item::Pumpkin => None, - Item::CarvedPumpkin => None, - Item::Netherrack => None, - Item::SoulSand => None, - Item::SoulSoil => None, - Item::Basalt => None, - Item::PolishedBasalt => None, - Item::SoulTorch => None, - Item::Glowstone => None, - Item::JackOLantern => None, - Item::OakTrapdoor => None, - Item::SpruceTrapdoor => None, - Item::BirchTrapdoor => None, - Item::JungleTrapdoor => None, - Item::AcaciaTrapdoor => None, - Item::DarkOakTrapdoor => None, - Item::CrimsonTrapdoor => None, - Item::WarpedTrapdoor => None, - Item::InfestedStone => None, - Item::InfestedCobblestone => None, - Item::InfestedStoneBricks => None, - Item::InfestedMossyStoneBricks => None, - Item::InfestedCrackedStoneBricks => None, - Item::InfestedChiseledStoneBricks => None, - Item::StoneBricks => None, + Item::BlackTerracotta => None, + Item::AcaciaDoor => None, + Item::LightGrayBanner => None, + Item::CrimsonStairs => None, Item::MossyStoneBricks => None, - Item::CrackedStoneBricks => None, - Item::ChiseledStoneBricks => None, - Item::BrownMushroomBlock => None, - Item::RedMushroomBlock => None, - Item::MushroomStem => None, - Item::IronBars => None, - Item::Chain => None, - Item::GlassPane => None, - Item::Melon => None, - Item::Vine => None, - Item::OakFenceGate => None, - Item::SpruceFenceGate => None, + Item::SandstoneSlab => None, + Item::InfestedCobblestone => None, + Item::BlackShulkerBox => None, + Item::MagentaBed => None, + Item::Tuff => None, + Item::BlueCarpet => None, Item::BirchFenceGate => None, - Item::JungleFenceGate => None, - Item::AcaciaFenceGate => None, - Item::DarkOakFenceGate => None, - Item::CrimsonFenceGate => None, - Item::WarpedFenceGate => None, - Item::BrickStairs => None, - Item::StoneBrickStairs => None, - Item::Mycelium => None, - Item::LilyPad => None, - Item::NetherBricks => None, - Item::CrackedNetherBricks => None, - Item::ChiseledNetherBricks => None, - Item::NetherBrickFence => None, - Item::NetherBrickStairs => None, - Item::EnchantingTable => None, - Item::EndPortalFrame => None, - Item::EndStone => None, - Item::EndStoneBricks => None, - Item::DragonEgg => None, - Item::RedstoneLamp => None, - Item::SandstoneStairs => None, - Item::EmeraldOre => None, - Item::EnderChest => None, - Item::TripwireHook => None, - Item::EmeraldBlock => None, - Item::SpruceStairs => None, - Item::BirchStairs => None, - Item::JungleStairs => None, - Item::CrimsonStairs => None, - Item::WarpedStairs => None, - Item::CommandBlock => None, - Item::Beacon => None, - Item::CobblestoneWall => None, - Item::MossyCobblestoneWall => None, - Item::BrickWall => None, - Item::PrismarineWall => None, - Item::RedSandstoneWall => None, - Item::MossyStoneBrickWall => None, - Item::GraniteWall => None, - Item::StoneBrickWall => None, - Item::NetherBrickWall => None, + Item::GreenDye => None, + Item::MusicDiscFar => None, + Item::SpruceFenceGate => None, + Item::PinkStainedGlass => None, + Item::JackOLantern => None, + Item::Pumpkin => None, Item::AndesiteWall => None, - Item::RedNetherBrickWall => None, - Item::SandstoneWall => None, - Item::EndStoneBrickWall => None, - Item::DioriteWall => None, + Item::DripstoneBlock => None, + Item::CutCopperSlab => None, + Item::RedCandle => None, + Item::PinkWool => None, + Item::DeadFireCoral => None, Item::BlackstoneWall => None, + Item::EndPortalFrame => None, + Item::RedstoneTorch => None, + Item::BatSpawnEgg => None, + Item::BrownBed => None, + Item::SmoothSandstone => None, + Item::ExposedCutCopperSlab => None, + Item::DarkOakWood => None, + Item::DiamondAxe => Some(1561), + Item::ZombieVillagerSpawnEgg => None, + Item::Comparator => None, + Item::JungleSapling => None, + Item::EndStoneBricks => None, + Item::BlueStainedGlassPane => None, + Item::Cod => None, + Item::BrownDye => None, + Item::DeadFireCoralBlock => None, + Item::Quartz => None, + Item::AcaciaSapling => None, + Item::OakSapling => None, + Item::DeadHornCoralBlock => None, + Item::DiamondPickaxe => Some(1561), + Item::ChainmailLeggings => Some(225), + Item::PurpurStairs => None, + Item::BlackStainedGlass => None, + Item::DiamondHorseArmor => None, + Item::Dispenser => None, + Item::CookedPorkchop => None, + Item::WaxedWeatheredCutCopperSlab => None, + Item::AcaciaSign => None, + Item::Chicken => None, + Item::YellowBanner => None, + Item::LargeAmethystBud => None, + Item::Beehive => None, + Item::SpruceSign => None, + Item::PurpleStainedGlass => None, + Item::WarpedTrapdoor => None, + Item::PolishedGranite => None, Item::PolishedBlackstoneWall => None, - Item::PolishedBlackstoneBrickWall => None, - Item::StoneButton => None, - Item::OakButton => None, - Item::SpruceButton => None, - Item::BirchButton => None, - Item::JungleButton => None, - Item::AcaciaButton => None, - Item::DarkOakButton => None, - Item::CrimsonButton => None, - Item::WarpedButton => None, + Item::WitherSkeletonSpawnEgg => None, + Item::Bricks => None, + Item::BrownShulkerBox => None, Item::PolishedBlackstoneButton => None, - Item::Anvil => None, - Item::ChippedAnvil => None, - Item::DamagedAnvil => None, - Item::TrappedChest => None, - Item::LightWeightedPressurePlate => None, - Item::HeavyWeightedPressurePlate => None, - Item::DaylightDetector => None, - Item::RedstoneBlock => None, - Item::NetherQuartzOre => None, - Item::Hopper => None, - Item::ChiseledQuartzBlock => None, - Item::QuartzBlock => None, - Item::QuartzBricks => None, - Item::QuartzPillar => None, - Item::QuartzStairs => None, - Item::ActivatorRail => None, - Item::Dropper => None, - Item::WhiteTerracotta => None, - Item::OrangeTerracotta => None, - Item::MagentaTerracotta => None, - Item::LightBlueTerracotta => None, + Item::Snow => None, + Item::TurtleHelmet => Some(275), + Item::FilledMap => None, + Item::StoneButton => None, + Item::DeepslateRedstoneOre => None, + Item::AcaciaLeaves => None, + Item::EndRod => None, + Item::BrownGlazedTerracotta => None, + Item::HornCoral => None, + Item::RawCopper => None, + Item::OrangeStainedGlass => None, + Item::RawGold => None, + Item::BlackBed => None, + Item::SalmonSpawnEgg => None, + Item::EnchantingTable => None, + Item::AmethystCluster => None, + Item::SmoothStoneSlab => None, + Item::StoneBrickWall => None, + Item::GreenStainedGlassPane => None, + Item::PolishedAndesiteStairs => None, + Item::CobblestoneStairs => None, + Item::Coal => None, + Item::PhantomMembrane => None, + Item::Lantern => None, + Item::MagmaCubeSpawnEgg => None, + Item::RawIronBlock => None, + Item::GoatSpawnEgg => None, + Item::PrismarineBricks => None, + Item::MossyStoneBrickStairs => None, + Item::CutSandstone => None, + Item::CarrotOnAStick => Some(25), + Item::GoldenShovel => Some(32), + Item::GoldNugget => None, + Item::CreeperBannerPattern => None, + Item::DeepslateGoldOre => None, + Item::OrangeStainedGlassPane => None, + Item::DeadFireCoralFan => None, + Item::PrismarineWall => None, + Item::SmoothRedSandstone => None, + Item::Charcoal => None, + Item::MagmaBlock => None, + Item::DarkOakSign => None, + Item::IronLeggings => Some(225), + Item::SkeletonHorseSpawnEgg => None, + Item::BlueStainedGlass => None, + Item::StrippedSpruceWood => None, + Item::RedSandstone => None, + Item::NetheriteScrap => None, + Item::PolarBearSpawnEgg => None, + Item::FireCoralFan => None, + Item::GoldenCarrot => None, + Item::LeatherChestplate => Some(80), + Item::WaxedCopperBlock => None, + Item::OrangeBed => None, + Item::BlueConcrete => None, + Item::PrismarineBrickSlab => None, + Item::WeatheredCutCopperSlab => None, + Item::DirtPath => None, + Item::BirchBoat => None, + Item::DeepslateBrickWall => None, + Item::SpectralArrow => None, + Item::BeetrootSeeds => None, Item::YellowTerracotta => None, - Item::LimeTerracotta => None, - Item::PinkTerracotta => None, - Item::GrayTerracotta => None, - Item::LightGrayTerracotta => None, - Item::CyanTerracotta => None, - Item::PurpleTerracotta => None, - Item::BlueTerracotta => None, - Item::BrownTerracotta => None, - Item::GreenTerracotta => None, - Item::RedTerracotta => None, - Item::BlackTerracotta => None, - Item::Barrier => None, - Item::IronTrapdoor => None, - Item::HayBlock => None, + Item::WhiteConcrete => None, + Item::OrangeTulip => None, + Item::Scaffolding => None, + Item::BirchDoor => None, + Item::DriedKelpBlock => None, Item::WhiteCarpet => None, - Item::OrangeCarpet => None, - Item::MagentaCarpet => None, - Item::LightBlueCarpet => None, - Item::YellowCarpet => None, - Item::LimeCarpet => None, - Item::PinkCarpet => None, - Item::GrayCarpet => None, - Item::LightGrayCarpet => None, - Item::CyanCarpet => None, + Item::StoneHoe => Some(131), + Item::WetSponge => None, + Item::LimeWool => None, + Item::SmoothStone => None, + Item::BirchStairs => None, + Item::LightGrayStainedGlassPane => None, + Item::RedMushroom => None, + Item::PufferfishSpawnEgg => None, + Item::DiamondChestplate => Some(528), + Item::VindicatorSpawnEgg => None, + Item::CutSandstoneSlab => None, + Item::NetherQuartzOre => None, + Item::SoulSand => None, + Item::MushroomStem => None, + Item::ChippedAnvil => None, + Item::Terracotta => None, + Item::WeatheredCopper => None, + Item::GlowItemFrame => None, + Item::KnowledgeBook => None, + Item::Jukebox => None, + Item::MusicDiscStrad => None, + Item::NetherWart => None, + Item::RootedDirt => None, + Item::EmeraldBlock => None, + Item::HayBlock => None, + Item::LightBlueConcretePowder => None, + Item::ParrotSpawnEgg => None, + Item::DeepslateDiamondOre => None, + Item::PinkStainedGlassPane => None, Item::PurpleCarpet => None, - Item::BlueCarpet => None, - Item::BrownCarpet => None, - Item::GreenCarpet => None, + Item::ChiseledSandstone => None, + Item::MagentaCandle => None, + Item::NetheriteChestplate => Some(592), + Item::WhiteTerracotta => None, + Item::YellowConcrete => None, + Item::CrimsonStem => None, + Item::DarkPrismarine => None, + Item::GoldIngot => None, + Item::EnchantedBook => None, + Item::MagmaCream => None, + Item::SeaPickle => None, + Item::CookedMutton => None, + Item::GoldenLeggings => Some(105), + Item::ChiseledStoneBricks => None, + Item::RabbitSpawnEgg => None, + Item::LimeStainedGlassPane => None, + Item::LeatherBoots => Some(65), + Item::CrimsonNylium => None, + Item::TotemOfUndying => None, + Item::JungleFence => None, + Item::AxolotlBucket => None, + Item::WaxedOxidizedCopper => None, Item::RedCarpet => None, - Item::BlackCarpet => None, - Item::Terracotta => None, - Item::CoalBlock => None, + Item::EvokerSpawnEgg => None, + Item::GrayConcretePowder => None, + Item::JungleButton => None, + Item::AncientDebris => None, + Item::InfestedCrackedStoneBricks => None, + Item::DolphinSpawnEgg => None, + Item::MooshroomSpawnEgg => None, + Item::FireCoralBlock => None, + Item::IronChestplate => Some(240), + Item::AmethystShard => None, + Item::NetheritePickaxe => Some(2031), + Item::HopperMinecart => None, + Item::ShulkerShell => None, + Item::PhantomSpawnEgg => None, + Item::StoneBrickStairs => None, + Item::LimeShulkerBox => None, + Item::PurpleBanner => None, + Item::BrainCoralFan => None, + Item::RedConcretePowder => None, + Item::EndCrystal => None, + Item::CutCopperStairs => None, + Item::RedStainedGlassPane => None, + Item::AcaciaFence => None, + Item::CyanDye => None, + Item::BeeNest => None, + Item::JunglePlanks => None, + Item::Mycelium => None, + Item::GoldenPickaxe => Some(32), + Item::RepeatingCommandBlock => None, + Item::StrippedBirchLog => None, + Item::DeadTubeCoralBlock => None, + Item::LargeFern => None, + Item::LightWeightedPressurePlate => None, + Item::CrimsonTrapdoor => None, + Item::DarkOakSlab => None, + Item::CrackedDeepslateBricks => None, + Item::CobbledDeepslateSlab => None, + Item::StrippedOakWood => None, + Item::NetherWartBlock => None, + Item::Shroomlight => None, + Item::HoglinSpawnEgg => None, + Item::SpiderSpawnEgg => None, + Item::GlassBottle => None, + Item::BubbleCoral => None, + Item::BlackCandle => None, + Item::DeepslateTileSlab => None, + Item::GreenConcretePowder => None, Item::PackedIce => None, - Item::AcaciaStairs => None, - Item::DarkOakStairs => None, + Item::DarkOakLog => None, + Item::NetheriteLeggings => Some(555), + Item::Salmon => None, + Item::WrittenBook => None, + Item::RabbitFoot => None, Item::SlimeBlock => None, - Item::GrassPath => None, - Item::Sunflower => None, - Item::Lilac => None, + Item::IronHelmet => Some(165), + Item::JungleFenceGate => None, + Item::SweetBerries => None, + Item::LightBlueTerracotta => None, + Item::BrickWall => None, + Item::Grass => None, + Item::LightGrayCarpet => None, Item::RoseBush => None, - Item::Peony => None, - Item::TallGrass => None, - Item::LargeFern => None, - Item::WhiteStainedGlass => None, - Item::OrangeStainedGlass => None, - Item::MagentaStainedGlass => None, - Item::LightBlueStainedGlass => None, + Item::ExposedCutCopperStairs => None, + Item::StonePressurePlate => None, + Item::SkullBannerPattern => None, + Item::HoneyBottle => None, + Item::AcaciaStairs => None, + Item::GrayShulkerBox => None, + Item::BlackstoneStairs => None, + Item::BirchSapling => None, Item::YellowStainedGlass => None, + Item::FishingRod => Some(64), + Item::LlamaSpawnEgg => None, + Item::PolishedDeepslateStairs => None, + Item::Peony => None, + Item::Calcite => None, + Item::RedTerracotta => None, + Item::PinkTulip => None, + Item::BrickSlab => None, + Item::WarpedDoor => None, + Item::WaxedOxidizedCutCopper => None, + Item::DebugStick => None, + Item::StoneSword => Some(131), + Item::Emerald => None, + Item::BrownCarpet => None, + Item::LightBlueWool => None, + Item::Barrier => None, + Item::RedstoneLamp => None, + Item::YellowConcretePowder => None, + Item::BubbleCoralBlock => None, + Item::WhiteTulip => None, + Item::BrownMushroom => None, + Item::DarkOakFenceGate => None, + Item::StoneStairs => None, + Item::WaterBucket => None, + Item::SpruceBoat => None, + Item::CatSpawnEgg => None, + Item::BlueBanner => None, + Item::CrimsonPressurePlate => None, + Item::MusicDisc11 => None, + Item::ChainmailBoots => Some(195), + Item::CoalOre => None, Item::LimeStainedGlass => None, - Item::PinkStainedGlass => None, - Item::GrayStainedGlass => None, - Item::LightGrayStainedGlass => None, - Item::CyanStainedGlass => None, - Item::PurpleStainedGlass => None, - Item::BlueStainedGlass => None, - Item::BrownStainedGlass => None, - Item::GreenStainedGlass => None, - Item::RedStainedGlass => None, - Item::BlackStainedGlass => None, - Item::WhiteStainedGlassPane => None, - Item::OrangeStainedGlassPane => None, - Item::MagentaStainedGlassPane => None, - Item::LightBlueStainedGlassPane => None, - Item::YellowStainedGlassPane => None, - Item::LimeStainedGlassPane => None, - Item::PinkStainedGlassPane => None, - Item::GrayStainedGlassPane => None, - Item::LightGrayStainedGlassPane => None, + Item::BirchLeaves => None, + Item::ChainmailHelmet => Some(165), + Item::InfestedStone => None, + Item::HoneyBlock => None, + Item::PinkBanner => None, + Item::TallGrass => None, + Item::RedConcrete => None, + Item::LightGrayConcretePowder => None, + Item::StoneAxe => Some(131), + Item::ExposedCopper => None, + Item::SmoothRedSandstoneSlab => None, + Item::SandstoneWall => None, + Item::EndStoneBrickWall => None, + Item::DiamondShovel => Some(1561), Item::CyanStainedGlassPane => None, - Item::PurpleStainedGlassPane => None, - Item::BlueStainedGlassPane => None, + Item::Scute => None, + Item::SprucePlanks => None, + Item::PurpurBlock => None, + Item::GreenStainedGlass => None, + Item::OakDoor => None, + Item::GrassBlock => None, + Item::BlueShulkerBox => None, + Item::WarpedNylium => None, + Item::Cookie => None, + Item::CopperBlock => None, + Item::DragonHead => None, + Item::OrangeConcretePowder => None, + Item::DeepslateCopperOre => None, + Item::TropicalFishBucket => None, + Item::Cactus => None, + Item::BrownStainedGlass => None, + Item::GrayBed => None, + Item::CreeperHead => None, + Item::DioriteStairs => None, + Item::DeepslateBricks => None, + Item::AcaciaWood => None, Item::BrownStainedGlassPane => None, - Item::GreenStainedGlassPane => None, - Item::RedStainedGlassPane => None, - Item::BlackStainedGlassPane => None, - Item::Prismarine => None, - Item::PrismarineBricks => None, - Item::DarkPrismarine => None, - Item::PrismarineStairs => None, - Item::PrismarineBrickStairs => None, - Item::DarkPrismarineStairs => None, - Item::SeaLantern => None, - Item::RedSandstone => None, - Item::ChiseledRedSandstone => None, + Item::PinkCarpet => None, + Item::CodBucket => None, + Item::ChiseledPolishedBlackstone => None, + Item::DioriteSlab => None, + Item::GoldenHelmet => Some(77), Item::CutRedSandstone => None, - Item::RedSandstoneStairs => None, - Item::RepeatingCommandBlock => None, - Item::ChainCommandBlock => None, - Item::MagmaBlock => None, - Item::NetherWartBlock => None, - Item::WarpedWartBlock => None, + Item::FireCoral => None, + Item::DiamondSword => Some(1561), + Item::DeadBubbleCoral => None, + Item::Bell => None, + Item::BirchButton => None, + Item::Candle => None, + Item::ChorusFlower => None, + Item::Sugar => None, + Item::MelonSeeds => None, + Item::OakPlanks => None, + Item::NetheriteBlock => None, + Item::LightBlueConcrete => None, + Item::DeadBrainCoralFan => None, + Item::Jigsaw => None, + Item::Mutton => None, + Item::WaxedOxidizedCutCopperSlab => None, + Item::Loom => None, + Item::FloweringAzaleaLeaves => None, + Item::WarpedFungus => None, + Item::Barrel => None, + Item::OakWood => None, + Item::BrainCoralBlock => None, + Item::Saddle => None, + Item::LilyOfTheValley => None, + Item::LightGrayDye => None, + Item::SpiderEye => None, + Item::BlueDye => None, + Item::DeepslateTiles => None, + Item::LeatherHorseArmor => None, + Item::CopperOre => None, + Item::IronBlock => None, + Item::GoldenSword => Some(32), + Item::GraniteSlab => None, + Item::WheatSeeds => None, + Item::Bowl => None, Item::RedNetherBricks => None, - Item::BoneBlock => None, - Item::StructureVoid => None, - Item::Observer => None, - Item::ShulkerBox => None, - Item::WhiteShulkerBox => None, - Item::OrangeShulkerBox => None, - Item::MagentaShulkerBox => None, - Item::LightBlueShulkerBox => None, - Item::YellowShulkerBox => None, - Item::LimeShulkerBox => None, - Item::PinkShulkerBox => None, - Item::GrayShulkerBox => None, - Item::LightGrayShulkerBox => None, - Item::CyanShulkerBox => None, - Item::PurpleShulkerBox => None, - Item::BlueShulkerBox => None, - Item::BrownShulkerBox => None, + Item::StrippedSpruceLog => None, + Item::InfestedStoneBricks => None, + Item::DeepslateEmeraldOre => None, Item::GreenShulkerBox => None, - Item::RedShulkerBox => None, - Item::BlackShulkerBox => None, - Item::WhiteGlazedTerracotta => None, - Item::OrangeGlazedTerracotta => None, - Item::MagentaGlazedTerracotta => None, - Item::LightBlueGlazedTerracotta => None, Item::YellowGlazedTerracotta => None, + Item::GlowBerries => None, + Item::WaxedOxidizedCutCopperStairs => None, + Item::OakStairs => None, + Item::MagentaStainedGlassPane => None, + Item::ChainmailChestplate => Some(240), + Item::RedStainedGlass => None, + Item::DiamondHoe => Some(1561), + Item::WaxedWeatheredCutCopper => None, + Item::Paper => None, + Item::GoldenChestplate => Some(112), + Item::BlueTerracotta => None, + Item::OcelotSpawnEgg => None, + Item::LightBlueShulkerBox => None, + Item::DiamondOre => None, + Item::FloweringAzalea => None, + Item::PrismarineBrickStairs => None, + Item::CrimsonSign => None, Item::LimeGlazedTerracotta => None, - Item::PinkGlazedTerracotta => None, - Item::GrayGlazedTerracotta => None, - Item::LightGrayGlazedTerracotta => None, - Item::CyanGlazedTerracotta => None, - Item::PurpleGlazedTerracotta => None, - Item::BlueGlazedTerracotta => None, - Item::BrownGlazedTerracotta => None, - Item::GreenGlazedTerracotta => None, - Item::RedGlazedTerracotta => None, Item::BlackGlazedTerracotta => None, - Item::WhiteConcrete => None, - Item::OrangeConcrete => None, - Item::MagentaConcrete => None, - Item::LightBlueConcrete => None, - Item::YellowConcrete => None, - Item::LimeConcrete => None, - Item::PinkConcrete => None, - Item::GrayConcrete => None, - Item::LightGrayConcrete => None, - Item::CyanConcrete => None, - Item::PurpleConcrete => None, - Item::BlueConcrete => None, - Item::BrownConcrete => None, - Item::GreenConcrete => None, - Item::RedConcrete => None, - Item::BlackConcrete => None, - Item::WhiteConcretePowder => None, - Item::OrangeConcretePowder => None, - Item::MagentaConcretePowder => None, - Item::LightBlueConcretePowder => None, - Item::YellowConcretePowder => None, - Item::LimeConcretePowder => None, + Item::BoneMeal => None, + Item::BirchFence => None, + Item::CobblestoneWall => None, + Item::GraniteWall => None, + Item::Cake => None, + Item::SmoothBasalt => None, + Item::NetheriteIngot => None, + Item::PumpkinSeeds => None, + Item::Redstone => None, + Item::WaxedCutCopperSlab => None, + Item::DarkOakButton => None, + Item::MossCarpet => None, + Item::GreenGlazedTerracotta => None, + Item::BakedPotato => None, + Item::OxidizedCutCopper => None, + Item::CrimsonButton => None, + Item::Painting => None, + Item::SpruceLeaves => None, + Item::SuspiciousStew => None, + Item::GrayWool => None, + Item::CoalBlock => None, + Item::CartographyTable => None, + Item::WarpedFungusOnAStick => Some(100), + Item::StrippedCrimsonHyphae => None, + Item::IronSword => Some(250), + Item::SoulCampfire => None, + Item::AcaciaBoat => None, + Item::SmithingTable => None, + Item::SpruceStairs => None, Item::PinkConcretePowder => None, - Item::GrayConcretePowder => None, - Item::LightGrayConcretePowder => None, - Item::CyanConcretePowder => None, - Item::PurpleConcretePowder => None, - Item::BlueConcretePowder => None, - Item::BrownConcretePowder => None, - Item::GreenConcretePowder => None, - Item::RedConcretePowder => None, + Item::PurpurSlab => None, + Item::Spyglass => None, + Item::Stonecutter => None, + Item::RedSandstoneWall => None, + Item::Bamboo => None, + Item::WhiteBed => None, + Item::NetherBrickSlab => None, Item::BlackConcretePowder => None, - Item::TurtleEgg => None, - Item::DeadTubeCoralBlock => None, - Item::DeadBrainCoralBlock => None, - Item::DeadBubbleCoralBlock => None, - Item::DeadFireCoralBlock => None, - Item::DeadHornCoralBlock => None, - Item::TubeCoralBlock => None, - Item::BrainCoralBlock => None, - Item::BubbleCoralBlock => None, - Item::FireCoralBlock => None, - Item::HornCoralBlock => None, - Item::TubeCoral => None, - Item::BrainCoral => None, - Item::BubbleCoral => None, - Item::FireCoral => None, - Item::HornCoral => None, - Item::DeadBrainCoral => None, - Item::DeadBubbleCoral => None, - Item::DeadFireCoral => None, - Item::DeadHornCoral => None, - Item::DeadTubeCoral => None, - Item::TubeCoralFan => None, - Item::BrainCoralFan => None, - Item::BubbleCoralFan => None, - Item::FireCoralFan => None, - Item::HornCoralFan => None, - Item::DeadTubeCoralFan => None, - Item::DeadBrainCoralFan => None, - Item::DeadBubbleCoralFan => None, - Item::DeadFireCoralFan => None, - Item::DeadHornCoralFan => None, - Item::BlueIce => None, - Item::Conduit => None, - Item::PolishedGraniteStairs => None, - Item::SmoothRedSandstoneStairs => None, - Item::MossyStoneBrickStairs => None, - Item::PolishedDioriteStairs => None, - Item::MossyCobblestoneStairs => None, - Item::EndStoneBrickStairs => None, - Item::StoneStairs => None, - Item::SmoothSandstoneStairs => None, - Item::SmoothQuartzStairs => None, - Item::GraniteStairs => None, - Item::AndesiteStairs => None, - Item::RedNetherBrickStairs => None, - Item::PolishedAndesiteStairs => None, - Item::DioriteStairs => None, - Item::PolishedGraniteSlab => None, - Item::SmoothRedSandstoneSlab => None, - Item::MossyStoneBrickSlab => None, - Item::PolishedDioriteSlab => None, - Item::MossyCobblestoneSlab => None, - Item::EndStoneBrickSlab => None, - Item::SmoothSandstoneSlab => None, - Item::SmoothQuartzSlab => None, - Item::GraniteSlab => None, - Item::AndesiteSlab => None, + Item::MusicDisc13 => None, + Item::OrangeWool => None, + Item::GoldenHorseArmor => None, + Item::BlueGlazedTerracotta => None, Item::RedNetherBrickSlab => None, - Item::PolishedAndesiteSlab => None, - Item::DioriteSlab => None, - Item::Scaffolding => None, - Item::IronDoor => None, - Item::OakDoor => None, - Item::SpruceDoor => None, - Item::BirchDoor => None, + Item::Lodestone => None, + Item::GrayCarpet => None, + Item::CyanShulkerBox => None, + Item::TripwireHook => None, + Item::Seagrass => None, + Item::BirchLog => None, + Item::IronHoe => Some(250), + Item::YellowCarpet => None, + Item::PolishedGraniteSlab => None, + Item::Bow => Some(384), Item::JungleDoor => None, - Item::AcaciaDoor => None, - Item::DarkOakDoor => None, - Item::CrimsonDoor => None, - Item::WarpedDoor => None, - Item::Repeater => None, - Item::Comparator => None, + Item::PinkCandle => None, + Item::CutRedSandstoneSlab => None, + Item::CrimsonPlanks => None, + Item::Azalea => None, Item::StructureBlock => None, - Item::Jigsaw => None, - Item::TurtleHelmet => None, - Item::Scute => None, - Item::FlintAndSteel => None, - Item::Apple => None, - Item::Bow => None, - Item::Arrow => None, - Item::Coal => None, - Item::Charcoal => None, - Item::Diamond => None, - Item::IronIngot => None, - Item::GoldIngot => None, - Item::NetheriteIngot => None, - Item::NetheriteScrap => None, - Item::WoodenSword => None, - Item::WoodenShovel => None, - Item::WoodenPickaxe => None, - Item::WoodenAxe => None, - Item::WoodenHoe => None, - Item::StoneSword => None, - Item::StoneShovel => None, - Item::StonePickaxe => None, - Item::StoneAxe => None, - Item::StoneHoe => None, - Item::GoldenSword => None, - Item::GoldenShovel => None, - Item::GoldenPickaxe => None, - Item::GoldenAxe => None, - Item::GoldenHoe => None, - Item::IronSword => None, - Item::IronShovel => None, - Item::IronPickaxe => None, - Item::IronAxe => None, - Item::IronHoe => None, - Item::DiamondSword => None, - Item::DiamondShovel => None, - Item::DiamondPickaxe => None, - Item::DiamondAxe => None, - Item::DiamondHoe => None, - Item::NetheriteSword => None, - Item::NetheriteShovel => None, - Item::NetheritePickaxe => None, - Item::NetheriteAxe => None, - Item::NetheriteHoe => None, - Item::Stick => None, - Item::Bowl => None, - Item::MushroomStew => None, - Item::String => None, - Item::Feather => None, - Item::Gunpowder => None, - Item::WheatSeeds => None, - Item::Wheat => None, + Item::RedDye => None, + Item::SculkSensor => None, + Item::Allium => None, + Item::DrownedSpawnEgg => None, + Item::SquidSpawnEgg => None, + Item::GoldenHoe => Some(32), + Item::TraderLlamaSpawnEgg => None, + Item::BlackBanner => None, + Item::LilyPad => None, + Item::Smoker => None, + Item::YellowCandle => None, + Item::DeepslateTileWall => None, + Item::DeadTubeCoral => None, + Item::StoneBricks => None, + Item::GrayTerracotta => None, + Item::Clay => None, + Item::SugarCane => None, + Item::YellowStainedGlassPane => None, + Item::Honeycomb => None, + Item::ZombieHead => None, + Item::AzaleaLeaves => None, + Item::Kelp => None, + Item::MagentaGlazedTerracotta => None, + Item::GuardianSpawnEgg => None, + Item::LightBlueBed => None, + Item::CyanConcretePowder => None, + Item::BigDripleaf => None, + Item::TrappedChest => None, + Item::Carrot => None, + Item::CookedChicken => None, + Item::Dandelion => None, + Item::NetheriteSword => Some(2031), + Item::Repeater => None, + Item::JunglePressurePlate => None, + Item::HornCoralFan => None, + Item::SheepSpawnEgg => None, + Item::GlassPane => None, + Item::LimeBed => None, + Item::ShulkerSpawnEgg => None, + Item::MagentaBanner => None, + Item::PrismarineCrystals => None, + Item::DioriteWall => None, + Item::WoodenShovel => Some(59), + Item::WoodenAxe => Some(59), + Item::DiamondBlock => None, + Item::LapisLazuli => None, + Item::Hopper => None, + Item::BoneBlock => None, + Item::NetherBrick => None, + Item::FlowerPot => None, + Item::GrayCandle => None, + Item::Light => None, + Item::Poppy => None, + Item::ZombieSpawnEgg => None, + Item::TubeCoralFan => None, + Item::BirchPlanks => None, + Item::HangingRoots => None, + Item::OxidizedCutCopperSlab => None, + Item::LeatherHelmet => Some(55), + Item::GhastTear => None, + Item::MagentaStainedGlass => None, Item::Bread => None, - Item::LeatherHelmet => None, - Item::LeatherChestplate => None, - Item::LeatherLeggings => None, - Item::LeatherBoots => None, - Item::ChainmailHelmet => None, - Item::ChainmailChestplate => None, - Item::ChainmailLeggings => None, - Item::ChainmailBoots => None, - Item::IronHelmet => None, - Item::IronChestplate => None, - Item::IronLeggings => None, - Item::IronBoots => None, - Item::DiamondHelmet => None, - Item::DiamondChestplate => None, - Item::DiamondLeggings => None, - Item::DiamondBoots => None, - Item::GoldenHelmet => None, - Item::GoldenChestplate => None, - Item::GoldenLeggings => None, - Item::GoldenBoots => None, - Item::NetheriteHelmet => None, - Item::NetheriteChestplate => None, - Item::NetheriteLeggings => None, - Item::NetheriteBoots => None, - Item::Flint => None, - Item::Porkchop => None, - Item::CookedPorkchop => None, - Item::Painting => None, - Item::GoldenApple => None, - Item::EnchantedGoldenApple => None, - Item::OakSign => None, - Item::SpruceSign => None, + Item::PurpurPillar => None, + Item::DeadTubeCoralFan => None, + Item::DaylightDetector => None, + Item::PoppedChorusFruit => None, + Item::NoteBlock => None, + Item::NetheriteHelmet => Some(407), + Item::DarkOakPlanks => None, + Item::MagentaWool => None, + Item::WhiteGlazedTerracotta => None, + Item::DiamondHelmet => Some(363), Item::BirchSign => None, - Item::JungleSign => None, - Item::AcaciaSign => None, - Item::DarkOakSign => None, - Item::CrimsonSign => None, - Item::WarpedSign => None, Item::Bucket => None, - Item::WaterBucket => None, - Item::LavaBucket => None, - Item::Minecart => None, - Item::Saddle => None, - Item::Redstone => None, - Item::Snowball => None, - Item::OakBoat => None, - Item::Leather => None, - Item::MilkBucket => None, + Item::PurpleBed => None, + Item::Piston => None, + Item::BirchPressurePlate => None, + Item::FletchingTable => None, Item::PufferfishBucket => None, - Item::SalmonBucket => None, - Item::CodBucket => None, - Item::TropicalFishBucket => None, - Item::Brick => None, - Item::ClayBall => None, - Item::DriedKelpBlock => None, - Item::Paper => None, - Item::Book => None, - Item::SlimeBall => None, - Item::ChestMinecart => None, - Item::FurnaceMinecart => None, - Item::Egg => None, - Item::Compass => None, - Item::FishingRod => None, - Item::Clock => None, - Item::GlowstoneDust => None, - Item::Cod => None, - Item::Salmon => None, - Item::TropicalFish => None, - Item::Pufferfish => None, - Item::CookedCod => None, - Item::CookedSalmon => None, - Item::InkSac => None, - Item::CocoaBeans => None, - Item::LapisLazuli => None, - Item::WhiteDye => None, - Item::OrangeDye => None, - Item::MagentaDye => None, - Item::LightBlueDye => None, - Item::YellowDye => None, - Item::LimeDye => None, - Item::PinkDye => None, - Item::GrayDye => None, - Item::LightGrayDye => None, - Item::CyanDye => None, + Item::ChainCommandBlock => None, + Item::PigSpawnEgg => None, + Item::GreenCarpet => None, + Item::StrippedCrimsonStem => None, + Item::BlueConcretePowder => None, + Item::MusicDiscChirp => None, + Item::MusicDiscMellohi => None, Item::PurpleDye => None, - Item::BlueDye => None, - Item::BrownDye => None, - Item::GreenDye => None, - Item::RedDye => None, - Item::BlackDye => None, - Item::BoneMeal => None, - Item::Bone => None, - Item::Sugar => None, - Item::Cake => None, - Item::WhiteBed => None, - Item::OrangeBed => None, - Item::MagentaBed => None, - Item::LightBlueBed => None, - Item::YellowBed => None, - Item::LimeBed => None, - Item::PinkBed => None, - Item::GrayBed => None, - Item::LightGrayBed => None, - Item::CyanBed => None, - Item::PurpleBed => None, - Item::BlueBed => None, - Item::BrownBed => None, - Item::GreenBed => None, - Item::RedBed => None, - Item::BlackBed => None, - Item::Cookie => None, - Item::FilledMap => None, - Item::Shears => None, - Item::MelonSlice => None, - Item::DriedKelp => None, - Item::PumpkinSeeds => None, - Item::MelonSeeds => None, - Item::Beef => None, - Item::CookedBeef => None, - Item::Chicken => None, - Item::CookedChicken => None, - Item::RottenFlesh => None, - Item::EnderPearl => None, - Item::BlazeRod => None, - Item::GhastTear => None, - Item::GoldNugget => None, - Item::NetherWart => None, - Item::Potion => None, - Item::GlassBottle => None, - Item::SpiderEye => None, - Item::FermentedSpiderEye => None, - Item::BlazePowder => None, - Item::MagmaCream => None, - Item::BrewingStand => None, - Item::Cauldron => None, - Item::EnderEye => None, - Item::GlisteringMelonSlice => None, - Item::BatSpawnEgg => None, - Item::BeeSpawnEgg => None, + Item::PolishedDeepslateWall => None, + Item::MusicDiscBlocks => None, + Item::BirchWood => None, + Item::OakBoat => None, + Item::MusicDiscPigstep => None, + Item::TntMinecart => None, + Item::Melon => None, + Item::AcaciaButton => None, + Item::MagentaConcretePowder => None, + Item::MagentaConcrete => None, + Item::OrangeGlazedTerracotta => None, + Item::YellowWool => None, Item::BlazeSpawnEgg => None, - Item::CatSpawnEgg => None, - Item::CaveSpiderSpawnEgg => None, - Item::ChickenSpawnEgg => None, - Item::CodSpawnEgg => None, - Item::CowSpawnEgg => None, + Item::PiglinBruteSpawnEgg => None, + Item::PolishedBlackstonePressurePlate => None, + Item::BlackDye => None, + Item::JungleWood => None, + Item::AndesiteStairs => None, + Item::Bookshelf => None, + Item::RedTulip => None, + Item::Elytra => Some(432), + Item::MusicDiscOtherside => None, + Item::Potato => None, + Item::IronDoor => None, + Item::WaxedExposedCutCopper => None, + Item::StrippedAcaciaWood => None, + Item::YellowDye => None, + Item::ClayBall => None, + Item::Sandstone => None, + Item::CobblestoneSlab => None, + Item::CobbledDeepslateWall => None, + Item::CrimsonFenceGate => None, Item::CreeperSpawnEgg => None, - Item::DolphinSpawnEgg => None, - Item::DonkeySpawnEgg => None, - Item::DrownedSpawnEgg => None, - Item::ElderGuardianSpawnEgg => None, - Item::EndermanSpawnEgg => None, - Item::EndermiteSpawnEgg => None, - Item::EvokerSpawnEgg => None, - Item::FoxSpawnEgg => None, Item::GhastSpawnEgg => None, - Item::GuardianSpawnEgg => None, - Item::HoglinSpawnEgg => None, - Item::HorseSpawnEgg => None, - Item::HuskSpawnEgg => None, - Item::LlamaSpawnEgg => None, - Item::MagmaCubeSpawnEgg => None, - Item::MooshroomSpawnEgg => None, - Item::MuleSpawnEgg => None, - Item::OcelotSpawnEgg => None, - Item::PandaSpawnEgg => None, - Item::ParrotSpawnEgg => None, - Item::PhantomSpawnEgg => None, - Item::PigSpawnEgg => None, - Item::PiglinSpawnEgg => None, - Item::PiglinBruteSpawnEgg => None, - Item::PillagerSpawnEgg => None, - Item::PolarBearSpawnEgg => None, - Item::PufferfishSpawnEgg => None, - Item::RabbitSpawnEgg => None, - Item::RavagerSpawnEgg => None, - Item::SalmonSpawnEgg => None, - Item::SheepSpawnEgg => None, - Item::ShulkerSpawnEgg => None, - Item::SilverfishSpawnEgg => None, - Item::SkeletonSpawnEgg => None, - Item::SkeletonHorseSpawnEgg => None, - Item::SlimeSpawnEgg => None, - Item::SpiderSpawnEgg => None, - Item::SquidSpawnEgg => None, - Item::StraySpawnEgg => None, - Item::StriderSpawnEgg => None, - Item::TraderLlamaSpawnEgg => None, - Item::TropicalFishSpawnEgg => None, - Item::TurtleSpawnEgg => None, - Item::VexSpawnEgg => None, - Item::VillagerSpawnEgg => None, - Item::VindicatorSpawnEgg => None, + Item::ItemFrame => None, + Item::Composter => None, + Item::Minecart => None, + Item::CookedRabbit => None, + Item::IronHorseArmor => None, + Item::SandstoneStairs => None, + Item::Diorite => None, + Item::WarpedFence => None, + Item::DarkOakFence => None, + Item::Porkchop => None, + Item::LightBlueCarpet => None, + Item::LightGrayShulkerBox => None, + Item::PurpleConcretePowder => None, + Item::PolishedBlackstoneBrickWall => None, + Item::ExperienceBottle => None, + Item::PoisonousPotato => None, + Item::WoodenPickaxe => Some(59), + Item::StonePickaxe => Some(131), + Item::Spawner => None, + Item::MusicDiscWait => None, + Item::DragonEgg => None, + Item::QuartzStairs => None, + Item::GoldOre => None, + Item::RedNetherBrickWall => None, + Item::GrayStainedGlass => None, + Item::MossyCobblestoneStairs => None, + Item::FoxSpawnEgg => None, + Item::PolishedDeepslate => None, + Item::AmethystBlock => None, + Item::ElderGuardianSpawnEgg => None, + Item::PlayerHead => None, + Item::QuartzSlab => None, + Item::Diamond => None, + Item::GrayDye => None, + Item::CaveSpiderSpawnEgg => None, + Item::NetherBrickStairs => None, + Item::BlueIce => None, + Item::WaxedCutCopper => None, + Item::GlowLichen => None, + Item::Fern => None, + Item::BrownMushroomBlock => None, + Item::IronIngot => None, + Item::LightBlueBanner => None, + Item::StrippedDarkOakWood => None, + Item::PolishedAndesiteSlab => None, + Item::GlisteringMelonSlice => None, + Item::LapisOre => None, + Item::ChickenSpawnEgg => None, + Item::GlowInkSac => None, + Item::Ice => None, + Item::MossyCobblestoneSlab => None, + Item::SalmonBucket => None, + Item::GoldenApple => None, + Item::StraySpawnEgg => None, + Item::BrownCandle => None, + Item::PiglinSpawnEgg => None, + Item::ChestMinecart => None, + Item::PolishedBlackstoneBricks => None, + Item::SnowBlock => None, + Item::GlowSquidSpawnEgg => None, + Item::JungleStairs => None, + Item::PandaSpawnEgg => None, + Item::HeavyWeightedPressurePlate => None, + Item::AcaciaLog => None, + Item::BlueOrchid => None, + Item::CookedCod => None, + Item::NetherSprouts => None, + Item::RespawnAnchor => None, + Item::DeadHornCoral => None, + Item::WarpedRoots => None, + Item::DiamondLeggings => Some(495), + Item::FlintAndSteel => Some(64), + Item::LavaBucket => None, + Item::WeatheredCutCopper => None, + Item::LightBlueCandle => None, + Item::TintedGlass => None, + Item::PolishedAndesite => None, + Item::Arrow => None, + Item::WhiteDye => None, + Item::NautilusShell => None, + Item::SmoothSandstoneSlab => None, + Item::PolishedBlackstoneStairs => None, + Item::PolishedGraniteStairs => None, + Item::ArmorStand => None, + Item::OakFenceGate => None, + Item::GlobeBannerPattern => None, + Item::PolishedDiorite => None, + Item::AcaciaTrapdoor => None, + Item::InfestedChiseledStoneBricks => None, + Item::JungleBoat => None, + Item::SoulTorch => None, Item::WanderingTraderSpawnEgg => None, - Item::WitchSpawnEgg => None, - Item::WitherSkeletonSpawnEgg => None, - Item::WolfSpawnEgg => None, - Item::ZoglinSpawnEgg => None, - Item::ZombieSpawnEgg => None, - Item::ZombieHorseSpawnEgg => None, - Item::ZombieVillagerSpawnEgg => None, - Item::ZombifiedPiglinSpawnEgg => None, - Item::ExperienceBottle => None, - Item::FireCharge => None, + Item::LightBlueGlazedTerracotta => None, + Item::MagentaDye => None, + Item::PumpkinPie => None, + Item::CrackedDeepslateTiles => None, + Item::RedGlazedTerracotta => None, + Item::RawCopperBlock => None, + Item::OxidizedCopper => None, + Item::WoodenSword => Some(59), Item::WritableBook => None, - Item::WrittenBook => None, - Item::Emerald => None, - Item::ItemFrame => None, - Item::FlowerPot => None, - Item::Carrot => None, - Item::Potato => None, - Item::BakedPotato => None, - Item::PoisonousPotato => None, - Item::Map => None, - Item::GoldenCarrot => None, + Item::Deepslate => None, + Item::PrismarineSlab => None, + Item::HoneycombBlock => None, + Item::FireCharge => None, + Item::CarvedPumpkin => None, + Item::DeadBush => None, + Item::LightGrayBed => None, + Item::LightGrayTerracotta => None, + Item::WhiteShulkerBox => None, + Item::DarkPrismarineStairs => None, + Item::Vine => None, + Item::OakFence => None, + Item::WhiteBanner => None, + Item::WarpedSlab => None, + Item::CrackedStoneBricks => None, + Item::WeatheredCutCopperStairs => None, + Item::Prismarine => None, + Item::Observer => None, + Item::MusicDiscStal => None, + Item::PolishedDioriteStairs => None, + Item::YellowBed => None, + Item::Stone => None, + Item::Netherrack => None, + Item::DetectorRail => None, + Item::WarpedHyphae => None, Item::SkeletonSkull => None, + Item::PolishedDeepslateSlab => None, + Item::Chain => None, + Item::GoldenAxe => Some(32), + Item::WarpedPressurePlate => None, + Item::PointedDripstone => None, + Item::RedNetherBrickStairs => None, + Item::TropicalFish => None, + Item::CyanBanner => None, + Item::Crossbow => Some(326), + Item::Sunflower => None, + Item::CommandBlockMinecart => None, + Item::IronShovel => Some(250), + Item::DiamondBoots => Some(429), + Item::PurpleShulkerBox => None, + Item::BlackstoneSlab => None, + Item::PinkShulkerBox => None, + Item::PurpleConcrete => None, + Item::Lilac => None, + Item::JungleLog => None, + Item::SmoothQuartz => None, + Item::Lead => None, + Item::MagentaTerracotta => None, + Item::PolishedBlackstoneBrickStairs => None, Item::WitherSkeletonSkull => None, - Item::PlayerHead => None, - Item::ZombieHead => None, - Item::CreeperHead => None, - Item::DragonHead => None, - Item::CarrotOnAStick => None, - Item::WarpedFungusOnAStick => None, - Item::NetherStar => None, - Item::PumpkinPie => None, + Item::DeepslateTileStairs => None, + Item::WhiteStainedGlass => None, + Item::DeepslateBrickSlab => None, + Item::JungleTrapdoor => None, + Item::EnderEye => None, + Item::SoulLantern => None, + Item::EmeraldOre => None, + Item::CookedSalmon => None, + Item::DarkPrismarineSlab => None, + Item::AxolotlSpawnEgg => None, + Item::CrimsonRoots => None, + Item::Glowstone => None, + Item::WhiteWool => None, + Item::GildedBlackstone => None, + Item::CyanStainedGlass => None, + Item::StriderSpawnEgg => None, + Item::StoneSlab => None, + Item::BeeSpawnEgg => None, + Item::DeadBrainCoralBlock => None, + Item::IronOre => None, + Item::WhiteCandle => None, + Item::BuddingAmethyst => None, + Item::LimeDye => None, + Item::NetheriteBoots => Some(481), + Item::DragonBreath => None, + Item::ExposedCutCopper => None, + Item::SoulSoil => None, + Item::AcaciaSlab => None, + Item::DeadBrainCoral => None, + Item::PolishedBasalt => None, + Item::DeadBubbleCoralFan => None, + Item::IronTrapdoor => None, + Item::LimeCandle => None, + Item::WaxedWeatheredCutCopperStairs => None, + Item::BrewingStand => None, + Item::SilverfishSpawnEgg => None, + Item::BlackCarpet => None, + Item::BlackConcrete => None, Item::FireworkRocket => None, - Item::FireworkStar => None, - Item::EnchantedBook => None, - Item::NetherBrick => None, - Item::Quartz => None, - Item::TntMinecart => None, - Item::HopperMinecart => None, - Item::PrismarineShard => None, - Item::PrismarineCrystals => None, + Item::Anvil => None, + Item::NetheriteAxe => Some(2031), + Item::Rail => None, + Item::StrippedAcaciaLog => None, + Item::RedstoneBlock => None, + Item::LightningRod => None, + Item::GreenConcrete => None, + Item::Potion => None, + Item::DonkeySpawnEgg => None, Item::Rabbit => None, - Item::CookedRabbit => None, - Item::RabbitStew => None, - Item::RabbitFoot => None, - Item::RabbitHide => None, - Item::ArmorStand => None, - Item::IronHorseArmor => None, - Item::GoldenHorseArmor => None, - Item::DiamondHorseArmor => None, - Item::LeatherHorseArmor => None, - Item::Lead => None, - Item::NameTag => None, - Item::CommandBlockMinecart => None, - Item::Mutton => None, - Item::CookedMutton => None, - Item::WhiteBanner => None, - Item::OrangeBanner => None, - Item::MagentaBanner => None, - Item::LightBlueBanner => None, - Item::YellowBanner => None, + Item::OrangeTerracotta => None, + Item::AcaciaPressurePlate => None, + Item::AcaciaPlanks => None, + Item::TropicalFishSpawnEgg => None, + Item::Bundle => None, + Item::EnchantedGoldenApple => None, + Item::TippedArrow => None, + Item::CoarseDirt => None, + Item::DarkOakSapling => None, + Item::YellowShulkerBox => None, + Item::DeepslateCoalOre => None, + Item::WhiteConcretePowder => None, + Item::BubbleCoralFan => None, + Item::GoldenBoots => Some(91), + Item::SkeletonSpawnEgg => None, + Item::EndermiteSpawnEgg => None, + Item::DeepslateLapisOre => None, + Item::Cobblestone => None, + Item::ZoglinSpawnEgg => None, + Item::MusicDiscMall => None, + Item::BlazeRod => None, + Item::SmoothRedSandstoneStairs => None, + Item::OrangeCandle => None, + Item::MossyStoneBrickWall => None, + Item::Granite => None, + Item::PowderSnowBucket => None, + Item::HeartOfTheSea => None, + Item::LightGrayStainedGlass => None, + Item::StrippedWarpedHyphae => None, + Item::LightBlueStainedGlass => None, + Item::SmoothQuartzStairs => None, + Item::Furnace => None, + Item::SpruceSapling => None, + Item::WarpedFenceGate => None, + Item::StrippedBirchWood => None, + Item::Flint => None, + Item::MagentaCarpet => None, + Item::SprucePressurePlate => None, + Item::Farmland => None, + Item::PurpleStainedGlassPane => None, + Item::SpruceSlab => None, + Item::TwistingVines => None, + Item::SpruceTrapdoor => None, + Item::CrimsonSlab => None, + Item::RawIron => None, + Item::EnderPearl => None, + Item::VillagerSpawnEgg => None, + Item::MelonSlice => None, + Item::GrayStainedGlassPane => None, + Item::NetherStar => None, + Item::EndermanSpawnEgg => None, + Item::FermentedSpiderEye => None, + Item::OakTrapdoor => None, + Item::LimeConcretePowder => None, + Item::PurpleCandle => None, + Item::CutCopper => None, + Item::StoneBrickSlab => None, + Item::ChiseledRedSandstone => None, + Item::InfestedDeepslate => None, + Item::MuleSpawnEgg => None, + Item::InkSac => None, + Item::CommandBlock => None, + Item::Shield => Some(336), + Item::HornCoralBlock => None, + Item::OxeyeDaisy => None, + Item::Stick => None, + Item::Cobweb => None, + Item::BlazePowder => None, + Item::DeadHornCoralFan => None, + Item::Wheat => None, + Item::OrangeDye => None, + Item::CrimsonFungus => None, + Item::ShulkerBox => None, + Item::OakLeaves => None, + Item::NetheriteHoe => Some(2031), + Item::BrickStairs => None, + Item::TurtleSpawnEgg => None, + Item::WaxedExposedCutCopperSlab => None, + Item::EndStone => None, + Item::DamagedAnvil => None, + Item::GoldBlock => None, + Item::FlowerBannerPattern => None, + Item::Lectern => None, + Item::WarpedStairs => None, + Item::StrippedWarpedStem => None, Item::LimeBanner => None, - Item::PinkBanner => None, - Item::GrayBanner => None, - Item::LightGrayBanner => None, - Item::CyanBanner => None, - Item::PurpleBanner => None, - Item::BlueBanner => None, - Item::BrownBanner => None, - Item::GreenBanner => None, + Item::DarkOakPressurePlate => None, + Item::CobbledDeepslate => None, + Item::Obsidian => None, + Item::WolfSpawnEgg => None, Item::RedBanner => None, - Item::BlackBanner => None, - Item::EndCrystal => None, - Item::ChorusFruit => None, - Item::PoppedChorusFruit => None, + Item::CookedBeef => None, + Item::StickyPiston => None, + Item::DeepslateIronOre => None, + Item::HuskSpawnEgg => None, Item::Beetroot => None, - Item::BeetrootSeeds => None, - Item::BeetrootSoup => None, - Item::DragonBreath => None, - Item::SplashPotion => None, - Item::SpectralArrow => None, - Item::TippedArrow => None, + Item::GreenBanner => None, + Item::RabbitHide => None, + Item::OakButton => None, + Item::BrownBanner => None, + Item::BlueWool => None, + Item::LightBlueStainedGlassPane => None, + Item::EndStoneBrickStairs => None, Item::LingeringPotion => None, - Item::Shield => None, - Item::Elytra => None, - Item::SpruceBoat => None, - Item::BirchBoat => None, - Item::JungleBoat => None, - Item::AcaciaBoat => None, - Item::DarkOakBoat => None, - Item::TotemOfUndying => None, - Item::ShulkerShell => None, - Item::IronNugget => None, - Item::KnowledgeBook => None, - Item::DebugStick => None, - Item::MusicDisc13 => None, - Item::MusicDiscCat => None, - Item::MusicDiscBlocks => None, - Item::MusicDiscChirp => None, - Item::MusicDiscFar => None, - Item::MusicDiscMall => None, - Item::MusicDiscMellohi => None, - Item::MusicDiscStal => None, - Item::MusicDiscStrad => None, + Item::SmoothQuartzSlab => None, + Item::IronAxe => Some(250), + Item::RedBed => None, + Item::PolishedBlackstoneBrickSlab => None, + Item::CopperIngot => None, + Item::LeatherLeggings => Some(75), + Item::ChiseledNetherBricks => None, + Item::CryingObsidian => None, + Item::WaxedCutCopperStairs => None, + Item::OxidizedCutCopperStairs => None, + Item::RedSand => None, + Item::OrangeBanner => None, + Item::Gravel => None, + Item::StrippedJungleWood => None, + Item::StructureVoid => None, + Item::RabbitStew => None, + Item::GrayBanner => None, + Item::CrimsonHyphae => None, + Item::GrayGlazedTerracotta => None, + Item::BeetrootSoup => None, + Item::TurtleEgg => None, + Item::Bone => None, + Item::SmallDripleaf => None, + Item::ZombieHorseSpawnEgg => None, + Item::GreenCandle => None, + Item::RedstoneOre => None, + Item::Chest => None, + Item::DarkOakStairs => None, + Item::Bedrock => None, + Item::Gunpowder => None, + Item::Brick => None, + Item::CraftingTable => None, + Item::QuartzPillar => None, + Item::TubeCoral => None, + Item::LightGrayWool => None, + Item::SpruceWood => None, + Item::SlimeSpawnEgg => None, + Item::Clock => None, + Item::CrackedNetherBricks => None, + Item::RedMushroomBlock => None, + Item::QuartzBlock => None, + Item::LightGrayCandle => None, + Item::BlackWool => None, + Item::PrismarineShard => None, + Item::CyanConcrete => None, + Item::Torch => None, + Item::Podzol => None, + Item::RedShulkerBox => None, + Item::WitchSpawnEgg => None, + Item::LimeCarpet => None, + Item::GreenBed => None, + Item::Leather => None, + Item::CyanCandle => None, + Item::NetherGoldOre => None, + Item::WarpedSign => None, + Item::MossyCobblestoneWall => None, + Item::SmoothSandstoneStairs => None, + Item::SpruceDoor => None, + Item::NetherBrickFence => None, + Item::LapisBlock => None, + Item::IronPickaxe => Some(250), + Item::PinkTerracotta => None, Item::MusicDiscWard => None, - Item::MusicDisc11 => None, - Item::MusicDiscWait => None, - Item::MusicDiscPigstep => None, - Item::Trident => None, - Item::PhantomMembrane => None, - Item::NautilusShell => None, - Item::HeartOfTheSea => None, - Item::Crossbow => None, - Item::SuspiciousStew => None, - Item::Loom => None, - Item::FlowerBannerPattern => None, - Item::CreeperBannerPattern => None, - Item::SkullBannerPattern => None, - Item::MojangBannerPattern => None, - Item::GlobeBannerPattern => None, - Item::PiglinBannerPattern => None, - Item::Composter => None, - Item::Barrel => None, - Item::Smoker => None, - Item::BlastFurnace => None, - Item::CartographyTable => None, - Item::FletchingTable => None, + Item::CyanBed => None, + Item::Blackstone => None, + Item::RottenFlesh => None, + Item::OrangeCarpet => None, + Item::ChorusFruit => None, + Item::Egg => None, + Item::MusicDiscCat => None, + Item::BrownConcrete => None, + Item::PurpleTerracotta => None, + Item::Andesite => None, + Item::Sand => None, + Item::Beacon => None, + Item::PrismarineStairs => None, + Item::SeaLantern => None, + Item::OrangeShulkerBox => None, + Item::WoodenHoe => Some(59), + Item::LightBlueDye => None, + Item::Conduit => None, + Item::MilkBucket => None, + Item::CowSpawnEgg => None, + Item::NetherBricks => None, + Item::ActivatorRail => None, + Item::DarkOakDoor => None, + Item::BrownConcretePowder => None, + Item::MagentaShulkerBox => None, + Item::DeadBubbleCoralBlock => None, + Item::GraniteStairs => None, + Item::MossyStoneBrickSlab => None, + Item::PillagerSpawnEgg => None, + Item::DarkOakBoat => None, + Item::AndesiteSlab => None, + Item::Cornflower => None, + Item::LightGrayConcrete => None, + Item::FireworkStar => None, Item::Grindstone => None, - Item::Lectern => None, - Item::SmithingTable => None, - Item::Stonecutter => None, - Item::Bell => None, - Item::Lantern => None, - Item::SoulLantern => None, - Item::SweetBerries => None, - Item::Campfire => None, - Item::SoulCampfire => None, - Item::Shroomlight => None, - Item::Honeycomb => None, - Item::BeeNest => None, - Item::Beehive => None, - Item::HoneyBottle => None, - Item::HoneyBlock => None, - Item::HoneycombBlock => None, - Item::Lodestone => None, - Item::NetheriteBlock => None, - Item::AncientDebris => None, Item::Target => None, - Item::CryingObsidian => None, - Item::Blackstone => None, - Item::BlackstoneSlab => None, - Item::BlackstoneStairs => None, - Item::GildedBlackstone => None, - Item::PolishedBlackstone => None, - Item::PolishedBlackstoneSlab => None, - Item::PolishedBlackstoneStairs => None, - Item::ChiseledPolishedBlackstone => None, - Item::PolishedBlackstoneBricks => None, - Item::PolishedBlackstoneBrickSlab => None, - Item::PolishedBlackstoneBrickStairs => None, + Item::Glass => None, + Item::ChorusPlant => None, + Item::BrainCoral => None, + Item::WaxedExposedCopper => None, + Item::Lever => None, + Item::Apple => None, + Item::Trident => Some(250), + Item::PinkBed => None, + Item::BlastFurnace => None, + Item::WaxedExposedCutCopperStairs => None, + Item::ChiseledQuartzBlock => None, + Item::BlueBed => None, + Item::PurpleWool => None, + Item::Basalt => None, + Item::WarpedButton => None, + Item::PurpleGlazedTerracotta => None, + Item::CocoaBeans => None, + Item::Shears => Some(238), + Item::PolishedDioriteSlab => None, + Item::Pufferfish => None, + Item::MossyCobblestone => None, + Item::SmallAmethystBud => None, + Item::NetherBrickWall => None, + Item::CrimsonFence => None, + Item::NameTag => None, + Item::CyanGlazedTerracotta => None, + Item::JungleLeaves => None, + Item::GrayConcrete => None, + Item::OakSlab => None, + Item::TubeCoralBlock => None, + Item::Feather => None, + Item::WarpedWartBlock => None, + Item::EnderChest => None, + Item::PetrifiedOakSlab => None, + Item::String => None, + Item::SpruceButton => None, + Item::SpruceLog => None, + Item::InfestedMossyStoneBricks => None, + Item::LimeConcrete => None, + Item::GlowstoneDust => None, + Item::LightGrayGlazedTerracotta => None, + Item::DriedKelp => None, Item::CrackedPolishedBlackstoneBricks => None, - Item::RespawnAnchor => None, + Item::GreenTerracotta => None, + Item::WitherRose => None, + Item::WhiteStainedGlassPane => None, + Item::Book => None, + Item::MossBlock => None, + Item::LimeTerracotta => None, + Item::CyanCarpet => None, + Item::OrangeConcrete => None, + Item::StrippedJungleLog => None, + Item::BirchSlab => None, + Item::FurnaceMinecart => None, + Item::PinkConcrete => None, + Item::StrippedDarkOakLog => None, + Item::CrimsonDoor => None, + Item::OakLog => None, + Item::AzureBluet => None, + Item::JungleSlab => None, + Item::BrownWool => None, + Item::ZombifiedPiglinSpawnEgg => None, + Item::Dropper => None, + Item::OakPressurePlate => None, + Item::MushroomStew => None, + Item::Sponge => None, + Item::ChiseledDeepslate => None, + Item::RavagerSpawnEgg => None, + Item::VexSpawnEgg => None, + Item::BirchTrapdoor => None, + Item::CyanTerracotta => None, + Item::Campfire => None, + Item::RawGoldBlock => None, + Item::BlackStainedGlassPane => None, + Item::Beef => None, + Item::MojangBannerPattern => None, + Item::SpruceFence => None, + Item::AcaciaFenceGate => None, + Item::HorseSpawnEgg => None, + Item::Dirt => None, + Item::WarpedStem => None, + Item::DarkOakLeaves => None, + Item::Snowball => None, + Item::Cauldron => None, + Item::RedWool => None, + Item::RedSandstoneStairs => None, + Item::IronBoots => Some(195), + Item::MediumAmethystBud => None, + Item::Ladder => None, + Item::DarkOakTrapdoor => None, + Item::GreenWool => None, + Item::BlueCandle => None, + } + } +} +impl Item { + #[doc = "Returns the `fixed_with` property of this `Item`."] + #[inline] + pub fn fixed_with(&self) -> Vec<&str> { + match self { + Item::GuardianSpawnEgg => { + vec![] + } + Item::GreenBed => { + vec![] + } + Item::IronBars => { + vec![] + } + Item::LilyOfTheValley => { + vec![] + } + Item::GlassPane => { + vec![] + } + Item::DarkOakButton => { + vec![] + } + Item::ZoglinSpawnEgg => { + vec![] + } + Item::GoatSpawnEgg => { + vec![] + } + Item::RedstoneOre => { + vec![] + } + Item::OxidizedCutCopper => { + vec![] + } + Item::Kelp => { + vec![] + } + Item::GrayTerracotta => { + vec![] + } + Item::DeadFireCoral => { + vec![] + } + Item::MushroomStew => { + vec![] + } + Item::CyanConcretePowder => { + vec![] + } + Item::TrappedChest => { + vec![] + } + Item::TintedGlass => { + vec![] + } + Item::Gunpowder => { + vec![] + } + Item::WaxedCutCopper => { + vec![] + } + Item::Allium => { + vec![] + } + Item::DeepslateBrickSlab => { + vec![] + } + Item::Scute => { + vec![] + } + Item::Chain => { + vec![] + } + Item::CodBucket => { + vec![] + } + Item::EndRod => { + vec![] + } + Item::IronDoor => { + vec![] + } + Item::DetectorRail => { + vec![] + } + Item::BlazeSpawnEgg => { + vec![] + } + Item::GoldenSword => { + vec![] + } + Item::Saddle => { + vec![] + } + Item::LeatherHelmet => { + vec![] + } + Item::Lead => { + vec![] + } + Item::DeadBrainCoralBlock => { + vec![] + } + Item::Bell => { + vec![] + } + Item::Map => { + vec![] + } + Item::MusicDiscWard => { + vec![] + } + Item::Bamboo => { + vec![] + } + Item::CobblestoneWall => { + vec![] + } + Item::Painting => { + vec![] + } + Item::RedSandstone => { + vec![] + } + Item::CyanBed => { + vec![] + } + Item::DeadHornCoralFan => { + vec![] + } + Item::BrownConcretePowder => { + vec![] + } + Item::NetheriteLeggings => { + vec![] + } + Item::BeetrootSoup => { + vec![] + } + Item::InfestedStoneBricks => { + vec![] + } + Item::GoldenShovel => { + vec![] + } + Item::BuddingAmethyst => { + vec![] + } + Item::LightBlueStainedGlass => { + vec![] + } + Item::EmeraldBlock => { + vec![] + } + Item::CrimsonButton => { + vec![] + } + Item::MusicDisc13 => { + vec![] + } + Item::Barrel => { + vec![] + } + Item::PolishedGraniteStairs => { + vec![] + } + Item::OakStairs => { + vec![] + } + Item::Shield => { + vec![] + } + Item::GrayShulkerBox => { + vec![] + } + Item::PolishedAndesiteStairs => { + vec![] + } + Item::LightGrayWool => { + vec![] + } + Item::Vine => { + vec![] + } + Item::InfestedDeepslate => { + vec![] + } + Item::TropicalFishBucket => { + vec![] + } + Item::SmoothRedSandstoneStairs => { + vec![] + } + Item::StoneHoe => { + vec![] + } + Item::YellowCarpet => { + vec![] + } + Item::BrownMushroom => { + vec![] + } + Item::IronHelmet => { + vec![] + } + Item::LightGrayCarpet => { + vec![] + } + Item::Apple => { + vec![] + } + Item::Wheat => { + vec![] + } + Item::SalmonSpawnEgg => { + vec![] + } + Item::PurpleCandle => { + vec![] + } + Item::StoneBrickStairs => { + vec![] + } + Item::AcaciaFence => { + vec![] + } + Item::Snow => { + vec![] + } + Item::CookedSalmon => { + vec![] + } + Item::AcaciaPlanks => { + vec![] + } + Item::CoalOre => { + vec![] + } + Item::StrippedCrimsonHyphae => { + vec![] + } + Item::CutCopperSlab => { + vec![] + } + Item::LightBlueGlazedTerracotta => { + vec![] + } + Item::GrayCandle => { + vec![] + } + Item::SoulLantern => { + vec![] + } + Item::CrimsonFungus => { + vec![] + } + Item::BlueConcrete => { + vec![] + } + Item::DarkPrismarineSlab => { + vec![] + } + Item::CarrotOnAStick => { + vec![] + } + Item::IronAxe => { + vec![] + } + Item::CobbledDeepslateWall => { + vec![] + } + Item::BlackConcretePowder => { + vec![] + } + Item::LightBlueDye => { + vec![] + } + Item::HopperMinecart => { + vec![] + } + Item::LightGrayStainedGlass => { + vec![] + } + Item::BrownStainedGlass => { + vec![] + } + Item::ChickenSpawnEgg => { + vec![] + } + Item::CyanDye => { + vec![] + } + Item::PinkWool => { + vec![] + } + Item::PinkBed => { + vec![] + } + Item::OrangeShulkerBox => { + vec![] + } + Item::Bucket => { + vec![] + } + Item::Redstone => { + vec![] + } + Item::WhiteCarpet => { + vec![] + } + Item::BrownTerracotta => { + vec![] + } + Item::BirchSign => { + vec![] + } + Item::DarkOakStairs => { + vec![] + } + Item::BirchPlanks => { + vec![] + } + Item::ChainmailBoots => { + vec![] + } + Item::RedstoneTorch => { + vec![] + } + Item::Torch => { + vec![] + } + Item::BlackstoneSlab => { + vec![] + } + Item::WitchSpawnEgg => { + vec![] + } + Item::MusicDiscMall => { + vec![] + } + Item::EndermiteSpawnEgg => { + vec![] + } + Item::Glowstone => { + vec![] + } + Item::WanderingTraderSpawnEgg => { + vec![] + } + Item::Deepslate => { + vec![] + } + Item::WaxedWeatheredCutCopper => { + vec![] + } + Item::AmethystShard => { + vec![] + } + Item::LilyPad => { + vec![] + } + Item::AcaciaDoor => { + vec![] + } + Item::Observer => { + vec![] + } + Item::DarkOakTrapdoor => { + vec![] + } + Item::WrittenBook => { + vec![] + } + Item::RawCopper => { + vec![] + } + Item::Obsidian => { + vec![] + } + Item::CobbledDeepslate => { + vec![] + } + Item::WoodenAxe => { + vec![] + } + Item::Compass => { + vec![] + } + Item::SpruceSapling => { + vec![] + } + Item::MusicDiscWait => { + vec![] + } + Item::PetrifiedOakSlab => { + vec![] + } + Item::PolishedBasalt => { + vec![] + } + Item::CyanGlazedTerracotta => { + vec![] + } + Item::LightBlueConcrete => { + vec![] + } + Item::GoldNugget => { + vec![] + } + Item::WarpedFungus => { + vec![] + } + Item::CrackedStoneBricks => { + vec![] + } + Item::PolishedBlackstoneSlab => { + vec![] + } + Item::FireCoralBlock => { + vec![] + } + Item::LightGrayConcretePowder => { + vec![] + } + Item::QuartzPillar => { + vec![] + } + Item::Beef => { + vec![] + } + Item::ZombieHorseSpawnEgg => { + vec![] + } + Item::IronPickaxe => { + vec![] + } + Item::StrippedBirchLog => { + vec![] + } + Item::BatSpawnEgg => { + vec![] + } + Item::StoneShovel => { + vec![] + } + Item::ChiseledQuartzBlock => { + vec![] + } + Item::SugarCane => { + vec![] + } + Item::DiamondLeggings => { + vec![] + } + Item::Melon => { + vec![] + } + Item::MagentaBed => { + vec![] + } + Item::Stick => { + vec![] + } + Item::VexSpawnEgg => { + vec![] + } + Item::NetherStar => { + vec![] + } + Item::Mycelium => { + vec![] + } + Item::IronNugget => { + vec![] + } + Item::PinkCandle => { + vec![] + } + Item::MagentaBanner => { + vec![] + } + Item::MossyCobblestoneStairs => { + vec![] + } + Item::EnchantedGoldenApple => { + vec![] + } + Item::SnowBlock => { + vec![] + } + Item::FishingRod => { + vec![] + } + Item::RedStainedGlass => { + vec![] + } + Item::LimeStainedGlass => { + vec![] + } + Item::BeeNest => { + vec![] + } + Item::SlimeSpawnEgg => { + vec![] + } + Item::DriedKelp => { + vec![] + } + Item::CryingObsidian => { + vec![] + } + Item::TubeCoral => { + vec![] + } + Item::MelonSeeds => { + vec![] + } + Item::TurtleEgg => { + vec![] + } + Item::RawCopperBlock => { + vec![] + } + Item::Netherrack => { + vec![] + } + Item::PrismarineShard => { + vec![] + } + Item::EndermanSpawnEgg => { + vec![] + } + Item::CutCopper => { + vec![] + } + Item::Charcoal => { + vec![] + } + Item::Cactus => { + vec![] + } + Item::DeadHornCoral => { + vec![] + } + Item::OakSlab => { + vec![] + } + Item::DonkeySpawnEgg => { + vec![] + } + Item::LightWeightedPressurePlate => { + vec![] + } + Item::FilledMap => { + vec![] + } + Item::NautilusShell => { + vec![] + } + Item::WarpedSlab => { + vec![] + } + Item::ParrotSpawnEgg => { + vec![] + } + Item::SquidSpawnEgg => { + vec![] + } + Item::DeepslateRedstoneOre => { + vec![] + } + Item::Bricks => { + vec![] + } + Item::DarkOakSign => { + vec![] + } + Item::CookedChicken => { + vec![] + } + Item::StoneSword => { + vec![] + } + Item::BlueWool => { + vec![] + } + Item::DeadTubeCoralBlock => { + vec![] + } + Item::RedBed => { + vec![] + } + Item::RawIronBlock => { + vec![] + } + Item::SmallAmethystBud => { + vec![] + } + Item::CrimsonRoots => { + vec![] + } + Item::PurpurBlock => { + vec![] + } + Item::Pumpkin => { + vec![] + } + Item::DeadFireCoralFan => { + vec![] + } + Item::MusicDiscPigstep => { + vec![] + } + Item::MusicDiscCat => { + vec![] + } + Item::DeadFireCoralBlock => { + vec![] + } + Item::CatSpawnEgg => { + vec![] + } + Item::HoneyBottle => { + vec![] + } + Item::DripstoneBlock => { + vec![] + } + Item::DeadBubbleCoralFan => { + vec![] + } + Item::CyanConcrete => { + vec![] + } + Item::BirchStairs => { + vec![] + } + Item::MusicDiscMellohi => { + vec![] + } + Item::DarkOakFenceGate => { + vec![] + } + Item::HorseSpawnEgg => { + vec![] + } + Item::PolishedGranite => { + vec![] + } + Item::FloweringAzaleaLeaves => { + vec![] + } + Item::ExposedCutCopperStairs => { + vec![] + } + Item::OrangeTulip => { + vec![] + } + Item::BlueGlazedTerracotta => { + vec![] + } + Item::JungleBoat => { + vec![] + } + Item::StructureVoid => { + vec![] + } + Item::BlueStainedGlass => { + vec![] + } + Item::WitherRose => { + vec![] + } + Item::BeetrootSeeds => { + vec![] + } + Item::PigSpawnEgg => { + vec![] + } + Item::OxeyeDaisy => { + vec![] + } + Item::JungleFenceGate => { + vec![] + } + Item::CookedPorkchop => { + vec![] + } + Item::GoldenApple => { + vec![] + } + Item::AndesiteSlab => { + vec![] + } + Item::GreenConcrete => { + vec![] + } + Item::StrippedJungleLog => { + vec![] + } + Item::StrippedAcaciaWood => { + vec![] + } + Item::OakLog => { + vec![] + } + Item::WeepingVines => { + vec![] + } + Item::LapisOre => { + vec![] + } + Item::PoppedChorusFruit => { + vec![] + } + Item::MossyCobblestoneWall => { + vec![] + } + Item::GreenCandle => { + vec![] + } + Item::Spyglass => { + vec![] + } + Item::BrownGlazedTerracotta => { + vec![] + } + Item::OakButton => { + vec![] + } + Item::LightBlueConcretePowder => { + vec![] + } + Item::Poppy => { + vec![] + } + Item::BirchTrapdoor => { + vec![] + } + Item::WaxedWeatheredCopper => { + vec![] + } + Item::ZombieVillagerSpawnEgg => { + vec![] + } + Item::WritableBook => { + vec![] + } + Item::Cobblestone => { + vec![] + } + Item::Anvil => { + vec![] + } + Item::LimeStainedGlassPane => { + vec![] + } + Item::EndStoneBrickSlab => { + vec![] + } + Item::LightningRod => { + vec![] + } + Item::SpruceLog => { + vec![] + } + Item::JungleDoor => { + vec![] + } + Item::BlackstoneWall => { + vec![] + } + Item::FermentedSpiderEye => { + vec![] + } + Item::WitherSkeletonSpawnEgg => { + vec![] + } + Item::Rabbit => { + vec![] + } + Item::PinkShulkerBox => { + vec![] + } + Item::SmoothQuartzSlab => { + vec![] + } + Item::PrismarineBricks => { + vec![] + } + Item::Andesite => { + vec![] + } + Item::DeepslateTileWall => { + vec![] + } + Item::DiamondPickaxe => { + vec![] + } + Item::GlowBerries => { + vec![] + } + Item::ChiseledSandstone => { + vec![] + } + Item::DeadHornCoralBlock => { + vec![] + } + Item::GreenDye => { + vec![] + } + Item::WaxedCutCopperSlab => { + vec![] + } + Item::Coal => { + vec![] + } + Item::LapisLazuli => { + vec![] + } + Item::CutRedSandstone => { + vec![] + } + Item::ChainCommandBlock => { + vec![] + } + Item::QuartzBlock => { + vec![] + } + Item::RedstoneBlock => { + vec![] + } + Item::WolfSpawnEgg => { + vec![] + } + Item::GrayDye => { + vec![] + } + Item::LimeShulkerBox => { + vec![] + } + Item::LimeBanner => { + vec![] + } + Item::DarkOakFence => { + vec![] + } + Item::Carrot => { + vec![] + } + Item::RedConcrete => { + vec![] + } + Item::FurnaceMinecart => { + vec![] + } + Item::WaxedExposedCutCopper => { + vec![] + } + Item::GraniteSlab => { + vec![] + } + Item::Rail => { + vec![] + } + Item::PhantomSpawnEgg => { + vec![] + } + Item::HeavyWeightedPressurePlate => { + vec![] + } + Item::Bowl => { + vec![] + } + Item::BlueShulkerBox => { + vec![] + } + Item::PrismarineCrystals => { + vec![] + } + Item::EndCrystal => { + vec![] + } + Item::BlackstoneStairs => { + vec![] + } + Item::Sunflower => { + vec![] + } + Item::StrippedOakWood => { + vec![] + } + Item::SmallDripleaf => { + vec![] + } + Item::ChiseledNetherBricks => { + vec![] + } + Item::LightGrayGlazedTerracotta => { + vec![] + } + Item::Dispenser => { + vec![] + } + Item::CyanStainedGlassPane => { + vec![] + } + Item::RedSandstoneStairs => { + vec![] + } + Item::GrayBanner => { + vec![] + } + Item::HoneycombBlock => { + vec![] + } + Item::CrackedPolishedBlackstoneBricks => { + vec![] + } + Item::GoldBlock => { + vec![] + } + Item::PinkStainedGlassPane => { + vec![] + } + Item::ChiseledRedSandstone => { + vec![] + } + Item::CrimsonSlab => { + vec![] + } + Item::SilverfishSpawnEgg => { + vec![] + } + Item::GlisteringMelonSlice => { + vec![] + } + Item::MusicDiscOtherside => { + vec![] + } + Item::DeepslateIronOre => { + vec![] + } + Item::WarpedFence => { + vec![] + } + Item::LightGrayBed => { + vec![] + } + Item::VillagerSpawnEgg => { + vec![] + } + Item::FlintAndSteel => { + vec![] + } + Item::NetherGoldOre => { + vec![] + } + Item::SmoothRedSandstone => { + vec![] + } + Item::WarpedNylium => { + vec![] + } + Item::RabbitSpawnEgg => { + vec![] + } + Item::BubbleCoralBlock => { + vec![] + } + Item::EnchantedBook => { + vec![] + } + Item::CopperIngot => { + vec![] + } + Item::BlueBanner => { + vec![] + } + Item::NetheriteIngot => { + vec![] + } + Item::WarpedButton => { + vec![] + } + Item::PurpleBanner => { + vec![] + } + Item::CyanShulkerBox => { + vec![] + } + Item::GrayWool => { + vec![] + } + Item::SkeletonSkull => { + vec![] + } + Item::ChorusPlant => { + vec![] + } + Item::Honeycomb => { + vec![] + } + Item::SpruceWood => { + vec![] + } + Item::NetherBrickWall => { + vec![] + } + Item::MusicDiscFar => { + vec![] + } + Item::SlimeBall => { + vec![] + } + Item::NetheriteAxe => { + vec![] + } + Item::WheatSeeds => { + vec![] + } + Item::SmoothStoneSlab => { + vec![] + } + Item::CrimsonStem => { + vec![] + } + Item::RedstoneLamp => { + vec![] + } + Item::EvokerSpawnEgg => { + vec![] + } + Item::GoldenHorseArmor => { + vec![] + } + Item::OxidizedCutCopperSlab => { + vec![] + } + Item::BlackWool => { + vec![] + } + Item::PinkBanner => { + vec![] + } + Item::DeadBrainCoral => { + vec![] + } + Item::OakSign => { + vec![] + } + Item::FlowerBannerPattern => { + vec![] + } + Item::NetheriteScrap => { + vec![] + } + Item::GlowLichen => { + vec![] + } + Item::Cod => { + vec![] + } + Item::Ice => { + vec![] + } + Item::OrangeBanner => { + vec![] + } + Item::PinkConcrete => { + vec![] + } + Item::AcaciaSign => { + vec![] + } + Item::DiamondShovel => { + vec![] + } + Item::LightBlueCarpet => { + vec![] + } + Item::PolishedBlackstoneStairs => { + vec![] + } + Item::IronTrapdoor => { + vec![] + } + Item::Prismarine => { + vec![] + } + Item::DeepslateCopperOre => { + vec![] + } + Item::GhastTear => { + vec![] + } + Item::JungleWood => { + vec![] + } + Item::WaxedWeatheredCutCopperSlab => { + vec![] + } + Item::PolishedBlackstoneBrickWall => { + vec![] + } + Item::ShulkerSpawnEgg => { + vec![] + } + Item::String => { + vec![] + } + Item::CartographyTable => { + vec![] + } + Item::MediumAmethystBud => { + vec![] + } + Item::IronShovel => { + vec![] + } + Item::Egg => { + vec![] + } + Item::RepeatingCommandBlock => { + vec![] + } + Item::BrainCoralFan => { + vec![] + } + Item::JungleButton => { + vec![] + } + Item::Book => { + vec![] + } + Item::BlueOrchid => { + vec![] + } + Item::GoldenHelmet => { + vec![] + } + Item::FoxSpawnEgg => { + vec![] + } + Item::MelonSlice => { + vec![] + } + Item::EndStone => { + vec![] + } + Item::WeatheredCutCopper => { + vec![] + } + Item::OrangeConcretePowder => { + vec![] + } + Item::SprucePressurePlate => { + vec![] + } + Item::LimeTerracotta => { + vec![] + } + Item::YellowWool => { + vec![] + } + Item::GreenStainedGlassPane => { + vec![] + } + Item::OrangeTerracotta => { + vec![] + } + Item::RedBanner => { + vec![] + } + Item::SkullBannerPattern => { + vec![] + } + Item::SoulSand => { + vec![] + } + Item::SprucePlanks => { + vec![] + } + Item::OxidizedCopper => { + vec![] + } + Item::HangingRoots => { + vec![] + } + Item::WhiteBed => { + vec![] + } + Item::TraderLlamaSpawnEgg => { + vec![] + } + Item::OakSapling => { + vec![] + } + Item::CyanWool => { + vec![] + } + Item::LingeringPotion => { + vec![] + } + Item::BrickSlab => { + vec![] + } + Item::MooshroomSpawnEgg => { + vec![] + } + Item::GreenConcretePowder => { + vec![] + } + Item::WoodenSword => { + vec![] + } + Item::Lectern => { + vec![] + } + Item::BoneBlock => { + vec![] + } + Item::CobbledDeepslateSlab => { + vec![] + } + Item::CocoaBeans => { + vec![] + } + Item::BlackGlazedTerracotta => { + vec![] + } + Item::CommandBlock => { + vec![] + } + Item::ChainmailChestplate => { + vec![] + } + Item::Diorite => { + vec![] + } + Item::Smoker => { + vec![] + } + Item::GreenStainedGlass => { + vec![] + } + Item::ZombieHead => { + vec![] + } + Item::CookedMutton => { + vec![] + } + Item::GlowstoneDust => { + vec![] + } + Item::ChiseledPolishedBlackstone => { + vec![] + } + Item::SmithingTable => { + vec![] + } + Item::DolphinSpawnEgg => { + vec![] + } + Item::Dirt => { + vec![] + } + Item::NetherBrickSlab => { + vec![] + } + Item::NetheriteHelmet => { + vec![] + } + Item::BirchFenceGate => { + vec![] + } + Item::Loom => { + vec![] + } + Item::RedShulkerBox => { + vec![] + } + Item::DeepslateDiamondOre => { + vec![] + } + Item::JungleLog => { + vec![] + } + Item::OakLeaves => { + vec![] + } + Item::SpruceLeaves => { + vec![] + } + Item::WarpedRoots => { + vec![] + } + Item::CraftingTable => { + vec![] + } + Item::LightBlueStainedGlassPane => { + vec![] + } + Item::LightBlueBed => { + vec![] + } + Item::WaxedExposedCutCopperStairs => { + vec![] + } + Item::WaxedExposedCutCopperSlab => { + vec![] + } + Item::Podzol => { + vec![] + } + Item::AcaciaLog => { + vec![] + } + Item::QuartzStairs => { + vec![] + } + Item::TubeCoralBlock => { + vec![] + } + Item::DaylightDetector => { + vec![] + } + Item::PowderSnowBucket => { + vec![] + } + Item::AmethystCluster => { + vec![] + } + Item::RawGoldBlock => { + vec![] + } + Item::LightBlueWool => { + vec![] + } + Item::CrimsonPressurePlate => { + vec![] + } + Item::MagmaBlock => { + vec![] + } + Item::TotemOfUndying => { + vec![] + } + Item::CommandBlockMinecart => { + vec![] + } + Item::DebugStick => { + vec![] + } + Item::CaveSpiderSpawnEgg => { + vec![] + } + Item::WarpedDoor => { + vec![] + } + Item::NetherBrickFence => { + vec![] + } + Item::DeadBubbleCoralBlock => { + vec![] + } + Item::BlueIce => { + vec![] + } + Item::DeadBrainCoralFan => { + vec![] + } + Item::GoldenHoe => { + vec![] + } + Item::DeadTubeCoral => { + vec![] + } + Item::BeeSpawnEgg => { + vec![] + } + Item::PurpleTerracotta => { + vec![] + } + Item::BrownCarpet => { + vec![] + } + Item::BrickStairs => { + vec![] + } + Item::Barrier => { + vec![] + } + Item::TippedArrow => { + vec![] + } + Item::Bow => { + vec![] + } + Item::GoldenPickaxe => { + vec![] + } + Item::WarpedSign => { + vec![] + } + Item::StrippedBirchWood => { + vec![] + } + Item::DioriteStairs => { + vec![] + } + Item::StrippedAcaciaLog => { + vec![] + } + Item::BirchFence => { + vec![] + } + Item::WarpedFenceGate => { + vec![] + } + Item::InfestedMossyStoneBricks => { + vec![] + } + Item::TntMinecart => { + vec![] + } + Item::Elytra => { + vec![] + } + Item::GoldenBoots => { + vec![] + } + Item::RedNetherBrickSlab => { + vec![] + } + Item::CyanBanner => { + vec![] + } + Item::SpiderSpawnEgg => { + vec![] + } + Item::WaxedWeatheredCutCopperStairs => { + vec![] + } + Item::BubbleCoralFan => { + vec![] + } + Item::Ladder => { + vec![] + } + Item::CarvedPumpkin => { + vec![] + } + Item::IronBoots => { + vec![] + } + Item::ChiseledDeepslate => { + vec![] + } + Item::BirchLeaves => { + vec![] + } + Item::Porkchop => { + vec![] + } + Item::RabbitHide => { + vec![] + } + Item::IronHoe => { + vec![] + } + Item::FireworkRocket => { + vec![] + } + Item::LimeGlazedTerracotta => { + vec![] + } + Item::BoneMeal => { + vec![] + } + Item::DeepslateLapisOre => { + vec![] + } + Item::LimeWool => { + vec![] + } + Item::Bundle => { + vec![] + } + Item::CutRedSandstoneSlab => { + vec![] + } + Item::WeatheredCutCopperStairs => { + vec![] + } + Item::MagentaConcretePowder => { + vec![] + } + Item::BirchPressurePlate => { + vec![] + } + Item::SkeletonSpawnEgg => { + vec![] + } + Item::LargeAmethystBud => { + vec![] + } + Item::GoldIngot => { + vec![] + } + Item::WaxedOxidizedCutCopperSlab => { + vec![] + } + Item::BirchLog => { + vec![] + } + Item::ShulkerBox => { + vec![] + } + Item::BrownStainedGlassPane => { + vec![] + } + Item::BlueTerracotta => { + vec![] + } + Item::GlowInkSac => { + vec![] + } + Item::SmoothBasalt => { + vec![] + } + Item::Repeater => { + vec![] + } + Item::Leather => { + vec![] + } + Item::SmoothQuartzStairs => { + vec![] + } + Item::VindicatorSpawnEgg => { + vec![] + } + Item::PoisonousPotato => { + vec![] + } + Item::StrippedSpruceLog => { + vec![] + } + Item::PrismarineBrickSlab => { + vec![] + } + Item::DarkOakSapling => { + vec![] + } + Item::DioriteWall => { + vec![] + } + Item::MuleSpawnEgg => { + vec![] + } + Item::RabbitFoot => { + vec![] + } + Item::LightGrayBanner => { + vec![] + } + Item::InfestedStone => { + vec![] + } + Item::CutSandstone => { + vec![] + } + Item::MagentaConcrete => { + vec![] + } + Item::Tnt => { + vec![] + } + Item::SandstoneWall => { + vec![] + } + Item::PufferfishBucket => { + vec![] + } + Item::WaxedCopperBlock => { + vec![] + } + Item::Sponge => { + vec![] + } + Item::EnchantingTable => { + vec![] + } + Item::PinkTulip => { + vec![] + } + Item::CreeperSpawnEgg => { + vec![] + } + Item::SheepSpawnEgg => { + vec![] + } + Item::JungleFence => { + vec![] + } + Item::Calcite => { + vec![] + } + Item::DragonEgg => { + vec![] + } + Item::WaxedCutCopperStairs => { + vec![] + } + Item::SoulCampfire => { + vec![] + } + Item::LeatherHorseArmor => { + vec![] + } + Item::YellowTerracotta => { + vec![] + } + Item::TripwireHook => { + vec![] + } + Item::Bedrock => { + vec![] + } + Item::OrangeConcrete => { + vec![] + } + Item::Lantern => { + vec![] + } + Item::StoneBricks => { + vec![] + } + Item::SmoothSandstone => { + vec![] + } + Item::RoseBush => { + vec![] + } + Item::HornCoral => { + vec![] + } + Item::PurpleCarpet => { + vec![] + } + Item::FlowerPot => { + vec![] + } + Item::PolishedBlackstoneWall => { + vec![] + } + Item::JackOLantern => { + vec![] + } + Item::PointedDripstone => { + vec![] + } + Item::StoneStairs => { + vec![] + } + Item::LightGrayTerracotta => { + vec![] + } + Item::StoneBrickWall => { + vec![] + } + Item::GrayCarpet => { + vec![] + } + Item::RootedDirt => { + vec![] + } + Item::YellowConcretePowder => { + vec![] + } + Item::Salmon => { + vec![] + } + Item::StrippedDarkOakWood => { + vec![] + } + Item::MagentaWool => { + vec![] + } + Item::OakDoor => { + vec![] + } + Item::Beetroot => { + vec![] + } + Item::Scaffolding => { + vec![] + } + Item::CrimsonPlanks => { + vec![] + } + Item::AzureBluet => { + vec![] + } + Item::RedTerracotta => { + vec![] + } + Item::StraySpawnEgg => { + vec![] + } + Item::Cookie => { + vec![] + } + Item::DarkOakLeaves => { + vec![] + } + Item::Lilac => { + vec![] + } + Item::CyanCandle => { + vec![] + } + Item::RedCandle => { + vec![] + } + Item::MagentaCarpet => { + vec![] + } + Item::PurpleConcretePowder => { + vec![] + } + Item::StrippedJungleWood => { + vec![] + } + Item::Fern => { + vec![] + } + Item::FloweringAzalea => { + vec![] + } + Item::CrimsonFenceGate => { + vec![] + } + Item::DiamondChestplate => { + vec![] + } + Item::MossyStoneBrickWall => { + vec![] + } + Item::CyanCarpet => { + vec![] + } + Item::WhiteTerracotta => { + vec![] + } + Item::BlueDye => { + vec![] + } + Item::Glass => { + vec![] + } + Item::DamagedAnvil => { + vec![] + } + Item::YellowBanner => { + vec![] + } + Item::LeatherLeggings => { + vec![] + } + Item::OakPlanks => { + vec![] + } + Item::Gravel => { + vec![] + } + Item::Clay => { + vec![] + } + Item::AcaciaLeaves => { + vec![] + } + Item::InfestedChiseledStoneBricks => { + vec![] + } + Item::WhiteStainedGlass => { + vec![] + } + Item::ExposedCutCopperSlab => { + vec![] + } + Item::PrismarineSlab => { + vec![] + } + Item::AndesiteStairs => { + vec![] + } + Item::PinkDye => { + vec![] + } + Item::LargeFern => { + vec![] + } + Item::FireCharge => { + vec![] + } + Item::DeepslateTileSlab => { + vec![] + } + Item::PlayerHead => { + vec![] + } + Item::DiamondHelmet => { + vec![] + } + Item::CreeperBannerPattern => { + vec![] + } + Item::BlastFurnace => { + vec![] + } + Item::GreenGlazedTerracotta => { + vec![] + } + Item::QuartzSlab => { + vec![] + } + Item::LavaBucket => { + vec![] + } + Item::WhiteCandle => { + vec![] + } + Item::JunglePressurePlate => { + vec![] + } + Item::Diamond => { + vec![] + } + Item::MossBlock => { + vec![] + } + Item::DarkOakBoat => { + vec![] + } + Item::GlassBottle => { + vec![] + } + Item::JungleSlab => { + vec![] + } + Item::HornCoralBlock => { + vec![] + } + Item::BlackConcrete => { + vec![] + } + Item::LightBlueCandle => { + vec![] + } + Item::CowSpawnEgg => { + vec![] + } + Item::StonePickaxe => { + vec![] + } + Item::StoneAxe => { + vec![] + } + Item::GoldenAxe => { + vec![] + } + Item::WhiteDye => { + vec![] + } + Item::PillagerSpawnEgg => { + vec![] + } + Item::PrismarineBrickStairs => { + vec![] + } + Item::BrownMushroomBlock => { + vec![] + } + Item::YellowStainedGlassPane => { + vec![] + } + Item::SmoothRedSandstoneSlab => { + vec![] + } + Item::EnderPearl => { + vec![] + } + Item::StoneSlab => { + vec![] + } + Item::FireworkStar => { + vec![] + } + Item::AmethystBlock => { + vec![] + } + Item::NetheriteBlock => { + vec![] + } + Item::CrackedNetherBricks => { + vec![] + } + Item::AcaciaTrapdoor => { + vec![] + } + Item::NetherQuartzOre => { + vec![] + } + Item::BlackBed => { + vec![] + } + Item::CoarseDirt => { + vec![] + } + Item::Dandelion => { + vec![] + } + Item::DiamondSword => { + vec![] + } + Item::PolarBearSpawnEgg => { + vec![] + } + Item::KnowledgeBook => { + vec![] + } + Item::MagmaCream => { + vec![] + } + Item::RedCarpet => { + vec![] + } + Item::ChainmailLeggings => { + vec![] + } + Item::PurpleShulkerBox => { + vec![] + } + Item::GoldenCarrot => { + vec![] + } + Item::Trident => { + vec![] + } + Item::StonePressurePlate => { + vec![] + } + Item::WarpedStem => { + vec![] + } + Item::SporeBlossom => { + vec![] + } + Item::Jukebox => { + vec![] + } + Item::WhiteBanner => { + vec![] + } + Item::BakedPotato => { + vec![] + } + Item::YellowCandle => { + vec![] + } + Item::BubbleCoral => { + vec![] + } + Item::BirchWood => { + vec![] + } + Item::MusicDisc11 => { + vec![] + } + Item::CookedCod => { + vec![] + } + Item::DeepslateCoalOre => { + vec![] + } + Item::MagentaShulkerBox => { + vec![] + } + Item::Paper => { + vec![] + } + Item::CoalBlock => { + vec![] + } + Item::Seagrass => { + vec![] + } + Item::Lever => { + vec![] + } + Item::WoodenPickaxe => { + vec![] + } + Item::Azalea => { + vec![] + } + Item::PolishedAndesiteSlab => { + vec![] + } + Item::StickyPiston => { + vec![] + } + Item::NetheriteShovel => { + vec![] + } + Item::WhiteWool => { + vec![] + } + Item::LeatherBoots => { + vec![] + } + Item::BlueStainedGlassPane => { + vec![] + } + Item::PolishedBlackstone => { + vec![] + } + Item::BlackDye => { + vec![] + } + Item::BlueCandle => { + vec![] + } + Item::MossyStoneBrickSlab => { + vec![] + } + Item::AcaciaFenceGate => { + vec![] + } + Item::Crossbow => { + vec![] + } + Item::AndesiteWall => { + vec![] + } + Item::PinkTerracotta => { + vec![] + } + Item::GreenTerracotta => { + vec![] + } + Item::OakFence => { + vec![] + } + Item::MushroomStem => { + vec![] + } + Item::OrangeGlazedTerracotta => { + vec![] + } + Item::NetheriteSword => { + vec![] + } + Item::JunglePlanks => { + vec![] + } + Item::NetherBrick => { + vec![] + } + Item::FireCoralFan => { + vec![] + } + Item::BirchSlab => { + vec![] + } + Item::GraniteStairs => { + vec![] + } + Item::SpruceTrapdoor => { + vec![] + } + Item::StrippedWarpedStem => { + vec![] + } + Item::SlimeBlock => { + vec![] + } + Item::Piston => { + vec![] + } + Item::BrownConcrete => { + vec![] + } + Item::Target => { + vec![] + } + Item::MagentaGlazedTerracotta => { + vec![] + } + Item::GraniteWall => { + vec![] + } + Item::DiamondOre => { + vec![] + } + Item::Cauldron => { + vec![] + } + Item::DragonBreath => { + vec![] + } + Item::SoulSoil => { + vec![] + } + Item::InfestedCobblestone => { + vec![] + } + Item::MusicDiscStrad => { + vec![] + } + Item::JungleSapling => { + vec![] + } + Item::BirchDoor => { + vec![] + } + Item::InfestedCrackedStoneBricks => { + vec![] + } + Item::BlackStainedGlass => { + vec![] + } + Item::DirtPath => { + vec![] + } + Item::CrimsonSign => { + vec![] + } + Item::Brick => { + vec![] + } + Item::IronLeggings => { + vec![] + } + Item::GhastSpawnEgg => { + vec![] + } + Item::PolishedDiorite => { + vec![] + } + Item::TurtleSpawnEgg => { + vec![] + } + Item::StrippedSpruceWood => { + vec![] + } + Item::ExperienceBottle => { + vec![] + } + Item::OakWood => { + vec![] + } + Item::SkeletonHorseSpawnEgg => { + vec![] + } + Item::WhiteStainedGlassPane => { + vec![] + } + Item::JungleTrapdoor => { + vec![] + } + Item::SpruceFenceGate => { + vec![] + } + Item::Flint => { + vec![] + } + Item::WaxedOxidizedCutCopper => { + vec![] + } + Item::LightBlueShulkerBox => { + vec![] + } + Item::PolishedBlackstoneButton => { + vec![] + } + Item::RedSand => { + vec![] + } + Item::CrimsonNylium => { + vec![] + } + Item::Sandstone => { + vec![] + } + Item::RedMushroomBlock => { + vec![] + } + Item::IronIngot => { + vec![] + } + Item::BigDripleaf => { + vec![] + } + Item::HayBlock => { + vec![] + } + Item::AcaciaPressurePlate => { + vec![] + } + Item::RedTulip => { + vec![] + } + Item::PolishedDeepslateSlab => { + vec![] + } + Item::InkSac => { + vec![] + } + Item::PurpleConcrete => { + vec![] + } + Item::HeartOfTheSea => { + vec![] + } + Item::GlobeBannerPattern => { + vec![] + } + Item::LimeCandle => { + vec![] + } + Item::SmoothQuartz => { + vec![] + } + Item::RedNetherBrickWall => { + vec![] + } + Item::ClayBall => { + vec![] + } + Item::DrownedSpawnEgg => { + vec![] + } + Item::CutCopperStairs => { + vec![] + } + Item::QuartzBricks => { + vec![] + } + Item::CrackedDeepslateBricks => { + vec![] + } + Item::Comparator => { + vec![] + } + Item::Stonecutter => { + vec![] + } + Item::GreenShulkerBox => { + vec![] + } + Item::WarpedWartBlock => { + vec![] + } + Item::WarpedPressurePlate => { + vec![] + } + Item::AzaleaLeaves => { + vec![] + } + Item::LimeCarpet => { + vec![] + } + Item::WarpedTrapdoor => { + vec![] + } + Item::CyanStainedGlass => { + vec![] + } + Item::ElderGuardianSpawnEgg => { + vec![] + } + Item::DarkOakPlanks => { + vec![] + } + Item::RedNetherBrickStairs => { + vec![] + } + Item::GoldOre => { + vec![] + } + Item::BrickWall => { + vec![] + } + Item::IronHorseArmor => { + vec![] + } + Item::ChestMinecart => { + vec![] + } + Item::NetheriteHoe => { + vec![] + } + Item::BlazePowder => { + vec![] + } + Item::Cornflower => { + vec![] + } + Item::DeepslateEmeraldOre => { + vec![] + } + Item::DarkOakLog => { + vec![] + } + Item::YellowGlazedTerracotta => { + vec![] + } + Item::OakBoat => { + vec![] + } + Item::SculkSensor => { + vec![] + } + Item::TurtleHelmet => { + vec![] + } + Item::CobblestoneStairs => { + vec![] + } + Item::DragonHead => { + vec![] + } + Item::OrangeStainedGlassPane => { + vec![] + } + Item::DeadBubbleCoral => { + vec![] + } + Item::ItemFrame => { + vec![] + } + Item::LlamaSpawnEgg => { + vec![] + } + Item::LimeBed => { + vec![] + } + Item::IronBlock => { + vec![] + } + Item::NetheritePickaxe => { + vec![] + } + Item::OrangeDye => { + vec![] + } + Item::PurpleBed => { + vec![] + } + Item::BrewingStand => { + vec![] + } + Item::PinkCarpet => { + vec![] + } + Item::CrimsonHyphae => { + vec![] + } + Item::Hopper => { + vec![] + } + Item::OrangeCandle => { + vec![] + } + Item::ChiseledStoneBricks => { + vec![] + } + Item::DeepslateBrickWall => { + vec![] + } + Item::RedStainedGlassPane => { + vec![] + } + Item::RedDye => { + vec![] + } + Item::MagentaStainedGlassPane => { + vec![] + } + Item::AcaciaBoat => { + vec![] + } + Item::PurpleWool => { + vec![] + } + Item::LightBlueTerracotta => { + vec![] + } + Item::PolishedDeepslateStairs => { + vec![] + } + Item::CopperBlock => { + vec![] + } + Item::AcaciaStairs => { + vec![] + } + Item::PolishedDioriteSlab => { + vec![] + } + Item::AxolotlSpawnEgg => { + vec![] + } + Item::Candle => { + vec![] + } + Item::CrimsonTrapdoor => { + vec![] + } + Item::Sand => { + vec![] + } + Item::LimeConcrete => { + vec![] + } + Item::Bone => { + vec![] + } + Item::TropicalFishSpawnEgg => { + vec![] + } + Item::SoulTorch => { + vec![] + } + Item::BrownCandle => { + vec![] + } + Item::Minecart => { + vec![] + } + Item::YellowShulkerBox => { + vec![] + } + Item::RabbitStew => { + vec![] + } + Item::OakTrapdoor => { + vec![] + } + Item::WaxedOxidizedCutCopperStairs => { + vec![] + } + Item::AcaciaWood => { + vec![] + } + Item::NetheriteChestplate => { + vec![] + } + Item::BlackCandle => { + vec![] + } + Item::CobbledDeepslateStairs => { + vec![] + } + Item::SpiderEye => { + vec![] + } + Item::GrayConcrete => { + vec![] + } + Item::GrayStainedGlass => { + vec![] + } + Item::LightGrayStainedGlassPane => { + vec![] + } + Item::PolishedBlackstonePressurePlate => { + vec![] + } + Item::JungleLeaves => { + vec![] + } + Item::ArmorStand => { + vec![] + } + Item::CrimsonFence => { + vec![] + } + Item::SandstoneSlab => { + vec![] + } + Item::OrangeCarpet => { + vec![] + } + Item::AncientDebris => { + vec![] + } + Item::SmoothSandstoneSlab => { + vec![] + } + Item::WhiteShulkerBox => { + vec![] + } + Item::CrackedDeepslateTiles => { + vec![] + } + Item::PurpleStainedGlassPane => { + vec![] + } + Item::PolishedBlackstoneBricks => { + vec![] + } + Item::TwistingVines => { + vec![] + } + Item::DriedKelpBlock => { + vec![] + } + Item::StrippedOakLog => { + vec![] + } + Item::LightGrayConcrete => { + vec![] + } + Item::Peony => { + vec![] + } + Item::DioriteSlab => { + vec![] + } + Item::SweetBerries => { + vec![] + } + Item::Spawner => { + vec![] + } + Item::ExposedCopper => { + vec![] + } + Item::WhiteConcretePowder => { + vec![] + } + Item::RedConcretePowder => { + vec![] + } + Item::PiglinSpawnEgg => { + vec![] + } + Item::Potato => { + vec![] + } + Item::LapisBlock => { + vec![] + } + Item::YellowBed => { + vec![] + } + Item::Clock => { + vec![] + } + Item::DiamondAxe => { + vec![] + } + Item::PurpurStairs => { + vec![] + } + Item::Light => { + vec![] + } + Item::TropicalFish => { + vec![] + } + Item::PumpkinSeeds => { + vec![] + } + Item::PolishedGraniteSlab => { + vec![] + } + Item::CrimsonDoor => { + vec![] + } + Item::StriderSpawnEgg => { + vec![] + } + Item::OrangeWool => { + vec![] + } + Item::BrainCoral => { + vec![] + } + Item::IronChestplate => { + vec![] + } + Item::LightGrayCandle => { + vec![] + } + Item::NameTag => { + vec![] + } + Item::WarpedStairs => { + vec![] + } + Item::Shroomlight => { + vec![] + } + Item::MossyStoneBrickStairs => { + vec![] + } + Item::DeadTubeCoralFan => { + vec![] + } + Item::MossCarpet => { + vec![] + } + Item::WaterBucket => { + vec![] + } + Item::BlackShulkerBox => { + vec![] + } + Item::MossyCobblestoneSlab => { + vec![] + } + Item::GreenWool => { + vec![] + } + Item::MossyStoneBricks => { + vec![] + } + Item::NoteBlock => { + vec![] + } + Item::MilkBucket => { + vec![] + } + Item::MossyCobblestone => { + vec![] + } + Item::PurpurPillar => { + vec![] + } + Item::Beacon => { + vec![] + } + Item::PolishedAndesite => { + vec![] + } + Item::DeepslateTileStairs => { + vec![] + } + Item::PolishedBlackstoneBrickStairs => { + vec![] + } + Item::MagentaStainedGlass => { + vec![] + } + Item::OrangeBed => { + vec![] + } + Item::Grass => { + vec![] + } + Item::GrayConcretePowder => { + vec![] + } + Item::CookedBeef => { + vec![] + } + Item::WhiteTulip => { + vec![] + } + Item::Cake => { + vec![] + } + Item::Bread => { + vec![] + } + Item::ChorusFruit => { + vec![] + } + Item::RottenFlesh => { + vec![] + } + Item::DarkOakPressurePlate => { + vec![] + } + Item::MagentaCandle => { + vec![] + } + Item::SeaPickle => { + vec![] + } + Item::CrimsonStairs => { + vec![] + } + Item::MagentaDye => { + vec![] + } + Item::GlowItemFrame => { + vec![] + } + Item::BirchSapling => { + vec![] + } + Item::MagentaTerracotta => { + vec![] + } + Item::CyanTerracotta => { + vec![] + } + Item::RedMushroom => { + vec![] + } + Item::PiglinBruteSpawnEgg => { + vec![] + } + Item::RespawnAnchor => { + vec![] + } + Item::ActivatorRail => { + vec![] + } + Item::LimeDye => { + vec![] + } + Item::CodSpawnEgg => { + vec![] + } + Item::WaxedExposedCopper => { + vec![] + } + Item::CobblestoneSlab => { + vec![] + } + Item::PurpleStainedGlass => { + vec![] + } + Item::PackedIce => { + vec![] + } + Item::Arrow => { + vec![] + } + Item::SpruceBoat => { + vec![] + } + Item::EmeraldOre => { + vec![] + } + Item::ExposedCutCopper => { + vec![] + } + Item::Pufferfish => { + vec![] + } + Item::MusicDiscBlocks => { + vec![] + } + Item::BlackCarpet => { + vec![] + } + Item::SandstoneStairs => { + vec![] + } + Item::TubeCoralFan => { + vec![] + } + Item::Jigsaw => { + vec![] + } + Item::StrippedWarpedHyphae => { + vec![] + } + Item::WoodenShovel => { + vec![] + } + Item::CutSandstoneSlab => { + vec![] + } + Item::PufferfishSpawnEgg => { + vec![] + } + Item::SalmonBucket => { + vec![] + } + Item::GrayStainedGlassPane => { + vec![] + } + Item::BirchButton => { + vec![] + } + Item::Grindstone => { + vec![] + } + Item::OakFenceGate => { + vec![] + } + Item::Snowball => { + vec![] + } + Item::StoneBrickSlab => { + vec![] + } + Item::PolishedBlackstoneBrickSlab => { + vec![] + } + Item::BlackTerracotta => { + vec![] + } + Item::Potion => { + vec![] + } + Item::DiamondHoe => { + vec![] + } + Item::IronOre => { + vec![] + } + Item::Mutton => { + vec![] + } + Item::SpectralArrow => { + vec![] + } + Item::GoldenChestplate => { + vec![] + } + Item::PolishedDeepslateWall => { + vec![] + } + Item::RedWool => { + vec![] + } + Item::GreenCarpet => { + vec![] + } + Item::RedSandstoneSlab => { + vec![] + } + Item::WarpedPlanks => { + vec![] + } + Item::AcaciaSapling => { + vec![] + } + Item::Stone => { + vec![] + } + Item::PurpleGlazedTerracotta => { + vec![] + } + Item::Chest => { + vec![] + } + Item::WitherSkeletonSkull => { + vec![] + } + Item::ShulkerShell => { + vec![] + } + Item::Blackstone => { + vec![] + } + Item::BrownShulkerBox => { + vec![] + } + Item::CookedRabbit => { + vec![] + } + Item::CopperOre => { + vec![] + } + Item::Chicken => { + vec![] + } + Item::Tuff => { + vec![] + } + Item::WarpedHyphae => { + vec![] + } + Item::GrayGlazedTerracotta => { + vec![] + } + Item::BrownDye => { + vec![] + } + Item::GlowSquidSpawnEgg => { + vec![] + } + Item::Bookshelf => { + vec![] + } + Item::HoneyBlock => { + vec![] + } + Item::DiamondBoots => { + vec![] + } + Item::PhantomMembrane => { + vec![] + } + Item::Farmland => { + vec![] + } + Item::HornCoralFan => { + vec![] + } + Item::PurpurSlab => { + vec![] + } + Item::BrownBanner => { + vec![] + } + Item::ChippedAnvil => { + vec![] + } + Item::WaxedOxidizedCopper => { + vec![] + } + Item::HuskSpawnEgg => { + vec![] + } + Item::NetherWart => { + vec![] + } + Item::WeatheredCutCopperSlab => { + vec![] + } + Item::PurpleDye => { + vec![] + } + Item::DeepslateBrickStairs => { + vec![] + } + Item::EnderEye => { + vec![] + } + Item::WarpedFungusOnAStick => { + vec![] + } + Item::TallGrass => { + vec![] + } + Item::RavagerSpawnEgg => { + vec![] + } + Item::WetSponge => { + vec![] + } + Item::DeepslateGoldOre => { + vec![] + } + Item::Dropper => { + vec![] + } + Item::NetheriteBoots => { + vec![] + } + Item::Emerald => { + vec![] + } + Item::SpruceSign => { + vec![] + } + Item::Furnace => { + vec![] + } + Item::AcaciaSlab => { + vec![] + } + Item::RedNetherBricks => { + vec![] + } + Item::BrownWool => { + vec![] + } + Item::MojangBannerPattern => { + vec![] + } + Item::SuspiciousStew => { + vec![] + } + Item::OcelotSpawnEgg => { + vec![] + } + Item::BrainCoralBlock => { + vec![] + } + Item::DiamondHorseArmor => { + vec![] + } + Item::Composter => { + vec![] + } + Item::StrippedDarkOakLog => { + vec![] + } + Item::FireCoral => { + vec![] + } + Item::SeaLantern => { + vec![] + } + Item::PolishedDioriteStairs => { + vec![] + } + Item::Campfire => { + vec![] + } + Item::SmoothStone => { + vec![] + } + Item::IronSword => { + vec![] + } + Item::Terracotta => { + vec![] + } + Item::SmoothSandstoneStairs => { + vec![] + } + Item::PrismarineWall => { + vec![] + } + Item::RawIron => { + vec![] + } + Item::YellowDye => { + vec![] + } + Item::BlackBanner => { + vec![] + } + Item::MusicDiscStal => { + vec![] + } + Item::Basalt => { + vec![] + } + Item::BlazeRod => { + vec![] + } + Item::PoweredRail => { + vec![] + } + Item::Lodestone => { + vec![] + } + Item::PolishedDeepslate => { + vec![] + } + Item::JungleSign => { + vec![] + } + Item::StoneButton => { + vec![] + } + Item::NetherBricks => { + vec![] + } + Item::HoglinSpawnEgg => { + vec![] + } + Item::Beehive => { + vec![] + } + Item::JungleStairs => { + vec![] + } + Item::PrismarineStairs => { + vec![] + } + Item::EndStoneBrickStairs => { + vec![] + } + Item::StrippedCrimsonStem => { + vec![] + } + Item::Shears => { + vec![] + } + Item::PumpkinPie => { + vec![] + } + Item::SplashPotion => { + vec![] + } + Item::WeatheredCopper => { + vec![] + } + Item::WhiteConcrete => { + vec![] + } + Item::EndStoneBrickWall => { + vec![] + } + Item::LightGrayDye => { + vec![] + } + Item::BrownBed => { + vec![] + } + Item::DiamondBlock => { + vec![] + } + Item::DarkOakSlab => { + vec![] + } + Item::DeadBush => { + vec![] + } + Item::GrayBed => { + vec![] + } + Item::CreeperHead => { + vec![] + } + Item::BlueCarpet => { + vec![] + } + Item::Cobweb => { + vec![] + } + Item::OxidizedCutCopperStairs => { + vec![] + } + Item::SpruceStairs => { + vec![] + } + Item::EndPortalFrame => { + vec![] + } + Item::DarkOakDoor => { + vec![] + } + Item::LightBlueBanner => { + vec![] + } + Item::NetherBrickStairs => { + vec![] + } + Item::DarkPrismarine => { + vec![] + } + Item::Sugar => { + vec![] + } + Item::YellowConcrete => { + vec![] + } + Item::RawGold => { + vec![] + } + Item::LightGrayShulkerBox => { + vec![] + } + Item::PinkStainedGlass => { + vec![] + } + Item::PinkConcretePowder => { + vec![] + } + Item::AxolotlBucket => { + vec![] + } + Item::MusicDiscChirp => { + vec![] + } + Item::BlackStainedGlassPane => { + vec![] + } + Item::Feather => { + vec![] + } + Item::EnderChest => { + vec![] + } + Item::BlueBed => { + vec![] + } + Item::PandaSpawnEgg => { + vec![] + } + Item::YellowStainedGlass => { + vec![] + } + Item::GoldenLeggings => { + vec![] + } + Item::RedSandstoneWall => { + vec![] + } + Item::NetherWartBlock => { + vec![] + } + Item::NetherSprouts => { + vec![] + } + Item::ChainmailHelmet => { + vec![] + } + Item::ChorusFlower => { + vec![] + } + Item::FletchingTable => { + vec![] + } + Item::ZombifiedPiglinSpawnEgg => { + vec![] + } + Item::ZombieSpawnEgg => { + vec![] + } + Item::SpruceSlab => { + vec![] + } + Item::PiglinBannerPattern => { + vec![] + } + Item::DarkOakWood => { + vec![] + } + Item::GildedBlackstone => { + vec![] + } + Item::EndStoneBricks => { + vec![] + } + Item::BirchBoat => { + vec![] + } + Item::WoodenHoe => { + vec![] + } + Item::SpruceDoor => { + vec![] + } + Item::RedGlazedTerracotta => { + vec![] + } + Item::AcaciaButton => { + vec![] + } + Item::BlueConcretePowder => { + vec![] + } + Item::DeepslateBricks => { + vec![] + } + Item::OrangeStainedGlass => { + vec![] + } + Item::SpruceButton => { + vec![] + } + Item::Conduit => { + vec![] + } + Item::Quartz => { + vec![] + } + Item::LeatherChestplate => { + vec![] + } + Item::LimeConcretePowder => { + vec![] + } + Item::WhiteGlazedTerracotta => { + vec![] + } + Item::SpruceFence => { + vec![] + } + Item::DarkPrismarineStairs => { + vec![] + } + Item::Granite => { + vec![] + } + Item::GrassBlock => { + vec![] + } + Item::OakPressurePlate => { + vec![] + } + Item::StructureBlock => { + vec![] + } + Item::GreenBanner => { + vec![] + } + Item::DeepslateTiles => { + vec![] + } + Item::MagmaCubeSpawnEgg => { + vec![] + } + Item::PinkGlazedTerracotta => { + vec![] + } } } } use std::convert::TryFrom; - +use std::str::FromStr; impl TryFrom for Item { type Error = &'static str; - fn try_from(value: String) -> Result { if let Some(item) = Item::from_name(value.as_str()) { Ok(item) } else { - Err("Unknown item name.") + Err("Unknown item name") } } } - impl From for &'static str { fn from(i: Item) -> Self { i.name() } } - -use std::str::FromStr; - impl FromStr for Item { type Err = &'static str; - fn from_str(s: &str) -> Result { if let Some(item) = Item::from_name(s) { Ok(item) } else { - Err("Unknown item name.") + Err("Unknown item name") } } } diff --git a/libcraft/items/src/item_stack.rs b/libcraft/items/src/item_stack.rs index 146af7243..f25eae4dc 100644 --- a/libcraft/items/src/item_stack.rs +++ b/libcraft/items/src/item_stack.rs @@ -290,7 +290,7 @@ impl ItemStack { match &mut self.meta.clone().unwrap().damage { Some(damage) => { *damage += amount; - if let Some(durability) = self.item.durability() { + if let Some(durability) = self.item.max_durability() { // This unwrap would only fail if our generated file contains an erroneous // default damage value. *damage >= durability.try_into().unwrap() diff --git a/libcraft/particles/src/particle.rs b/libcraft/particles/src/particle.rs index 4e514fd4f..37ef9e75b 100644 --- a/libcraft/particles/src/particle.rs +++ b/libcraft/particles/src/particle.rs @@ -1,9 +1,9 @@ -use libcraft_blocks::BlockState; +use libcraft_blocks::BlockId; use libcraft_items::Item; use ordinalizer::Ordinal; use serde::{Deserialize, Serialize}; -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] +#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)] #[repr(C)] pub struct Particle { pub kind: ParticleKind, @@ -24,7 +24,7 @@ pub enum ParticleKind { AngryVillager, Barrier, /// Block break particles - Block(BlockState), + Block(BlockId), Bubble, Cloud, Crit, @@ -50,7 +50,7 @@ pub enum ParticleKind { EntityEffect, ExplosionEmitter, Explosion, - FallingDust(BlockState), + FallingDust(BlockId), Firework, Fishing, Flame, @@ -189,7 +189,7 @@ impl ParticleKind { 0 => Some(ParticleKind::AmbientEntityEffect), 1 => Some(ParticleKind::AngryVillager), 2 => Some(ParticleKind::Barrier), - 3 => Some(ParticleKind::Block(BlockState::from_id(0).unwrap())), + 3 => Some(ParticleKind::Block(BlockId::default())), 4 => Some(ParticleKind::Bubble), 5 => Some(ParticleKind::Cloud), 6 => Some(ParticleKind::Crit), @@ -214,7 +214,7 @@ impl ParticleKind { 20 => Some(ParticleKind::EntityEffect), 21 => Some(ParticleKind::ExplosionEmitter), 22 => Some(ParticleKind::Explosion), - 23 => Some(ParticleKind::FallingDust(BlockState::from_id(0).unwrap())), + 23 => Some(ParticleKind::FallingDust(BlockId::default())), 24 => Some(ParticleKind::Firework), 25 => Some(ParticleKind::Fishing), 26 => Some(ParticleKind::Flame), diff --git a/minecraft-data b/minecraft-data index a4fde646c..4e3d32bef 160000 --- a/minecraft-data +++ b/minecraft-data @@ -1 +1 @@ -Subproject commit a4fde646c6571e97ec77a57662ca3470718bfa41 +Subproject commit 4e3d32befda6439c34db3921623ede0627b1e418 diff --git a/quill/api/src/game.rs b/quill/api/src/game.rs index 9a72ab982..88fd04c18 100644 --- a/quill/api/src/game.rs +++ b/quill/api/src/game.rs @@ -1,9 +1,7 @@ use std::marker::PhantomData; -use libcraft_blocks::BlockState; -use libcraft_core::{BlockPosition, ChunkPosition, Position, CHUNK_HEIGHT}; +use libcraft_core::{EntityKind, Position}; use libcraft_particles::Particle; -use quill_common::entity_init::EntityInit; use crate::{ query::{Query, QueryIter}, @@ -11,15 +9,6 @@ use crate::{ }; use crate::{Entity, EntityId}; -/// Error returned when getting or setting a block fails. -#[derive(Debug, thiserror::Error)] -pub enum BlockAccessError { - #[error("the block's Y coordinate is outside the range [0, 256)")] - YOutOfBounds, - #[error("the block's chunk is not loaded")] - ChunkNotLoaded, -} - /// Error returned from [`Game::entity`] if the entity /// did not exist. #[derive(Debug, thiserror::Error)] @@ -84,14 +73,14 @@ impl Game { /// * `Velocity` (set to zero) /// * the marker component for this entity #[must_use = "call `finish` on an EntityBuilder to spawn the entity"] - pub fn create_entity_builder(&self, position: Position, entity: EntityInit) -> EntityBuilder { - let entity_init = bincode::serialize(&entity).expect("failed to serialize EntityInit"); + pub fn create_entity_builder(&self, position: Position, entity: EntityKind) -> EntityBuilder { + let entity_kind = bincode::serialize(&entity).expect("failed to serialize EntityKind"); let position: &[u8] = bytemuck::cast_slice(std::slice::from_ref(&position)); let id = unsafe { quill_sys::entity_builder_new( position.as_ptr().into(), - entity_init.as_ptr().into(), - entity_init.len() as u32, + entity_kind.as_ptr().into(), + entity_kind.len() as u32, ) }; EntityBuilder::new(id) @@ -104,7 +93,7 @@ impl Game { /// Iterate over all entities with positions and UUIDs: /// ```no_run /// use quill::{Position, Uuid}; - /// # let game: quill::Game = todo!(); + /// # let mut game: quill::Game = todo!(); /// for (entity, (position, uuid)) in game.query::<(&Position, &Uuid)>() { /// println!("Found an entity with position {:?} and UUID {}", position, uuid); /// } @@ -140,70 +129,6 @@ impl Game { entity_builder.finish(); } - /// Gets the block at `pos`. - /// - /// This function returns an error if the block's - /// chunk is not loaded. Unlike in Bukkit, calling this method - /// will not cause chunks to be loaded. - /// - /// Mutating the returned [`BlockState`](libcraft_blocks::BlockState) - /// will _not_ cause the block to be modified in the world. In other - /// words, the `BlockState` is a copy, not a reference. To update - /// the block, call [`Game::set_block`]. - pub fn block(&self, pos: BlockPosition) -> Result { - check_y_bound(pos)?; - - let result = unsafe { quill_sys::block_get(pos.x, pos.y, pos.z) }; - - result - .get() - .ok_or(BlockAccessError::ChunkNotLoaded) - .map(|block_id| BlockState::from_id(block_id).expect("host gave invalid block ID")) - } - - /// Sets the block at `pos`. - /// - /// This function returns an error if the block's - /// chunk is not loaded. Unlike in Bukkit, calling this method - /// will not cause chunks to be loaded. - pub fn set_block(&self, pos: BlockPosition, block: BlockState) -> Result<(), BlockAccessError> { - check_y_bound(pos)?; - - let was_successful = unsafe { quill_sys::block_set(pos.x, pos.y, pos.z, block.id()) }; - - if was_successful { - Ok(()) - } else { - Err(BlockAccessError::ChunkNotLoaded) - } - } - - /// Efficiently overwrites all blocks in the given chunk section (16x16x16 blocks). - /// - /// All blocks in the chunk section are replaced with `block`. - /// - /// This function returns an error if the block's - /// chunk is not loaded. Unlike in Bukkit, calling this method - /// will not cause chunks to be loaded. - pub fn fill_chunk_section( - &self, - chunk: ChunkPosition, - section_y: u32, - block: BlockState, - ) -> Result<(), BlockAccessError> { - check_section_y(section_y)?; - - let block_id = block.id(); - let was_successful = - unsafe { quill_sys::block_fill_chunk_section(chunk.x, section_y, chunk.z, block_id) }; - - if was_successful { - Ok(()) - } else { - Err(BlockAccessError::ChunkNotLoaded) - } - } - /// Sends a custom packet to an entity. pub fn send_plugin_message(entity: EntityId, channel: &str, data: &[u8]) { let channel_ptr = channel.as_ptr().into(); @@ -219,60 +144,3 @@ impl Game { } } } - -fn check_y_bound(pos: BlockPosition) -> Result<(), BlockAccessError> { - if pos.y < 0 || pos.y >= CHUNK_HEIGHT as i32 { - Err(BlockAccessError::YOutOfBounds) - } else { - Ok(()) - } -} - -fn check_section_y(section_y: u32) -> Result<(), BlockAccessError> { - if section_y >= 16 { - Err(BlockAccessError::YOutOfBounds) - } else { - Ok(()) - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn check_y_bound_in_bounds() { - assert!(check_y_bound(BlockPosition::new(0, 0, 0)).is_ok()); - assert!(check_y_bound(BlockPosition::new(0, 255, 0)).is_ok()); - } - - #[test] - fn check_y_bound_out_of_bounds() { - assert!(matches!( - check_y_bound(BlockPosition::new(0, -1, 0)), - Err(BlockAccessError::YOutOfBounds) - )); - assert!(matches!( - check_y_bound(BlockPosition::new(0, 256, 0)), - Err(BlockAccessError::YOutOfBounds) - )); - } - - #[test] - fn check_section_y_in_bounds() { - assert!(check_section_y(0).is_ok()); - assert!(check_section_y(15).is_ok()); - } - - #[test] - fn check_section_y_out_of_bounds() { - assert!(matches!( - check_section_y(16), - Err(BlockAccessError::YOutOfBounds) - )); - assert!(matches!( - check_section_y(u32::MAX), - Err(BlockAccessError::YOutOfBounds) - )); - } -} diff --git a/quill/api/src/lib.rs b/quill/api/src/lib.rs index 23b3a9418..2dc239580 100644 --- a/quill/api/src/lib.rs +++ b/quill/api/src/lib.rs @@ -13,16 +13,16 @@ pub use game::Game; pub use setup::Setup; #[doc(inline)] -pub use libcraft_blocks::{BlockKind, BlockState}; +pub use libcraft_blocks::{BlockId, BlockKind}; #[doc(inline)] -pub use libcraft_core::{BlockPosition, ChunkPosition, Gamemode, Position}; +pub use libcraft_core::{BlockPosition, ChunkPosition, EntityKind, Gamemode, Position}; #[doc(inline)] pub use libcraft_particles::{Particle, ParticleKind}; #[doc(inline)] pub use libcraft_text::*; #[doc(inline)] -pub use quill_common::{components, entity_init::EntityInit, events, Component}; +pub use quill_common::{components, events, Component}; #[doc(inline)] pub use uuid::Uuid; diff --git a/quill/common/Cargo.toml b/quill/common/Cargo.toml index a01736a76..8f584c2d3 100644 --- a/quill/common/Cargo.toml +++ b/quill/common/Cargo.toml @@ -14,6 +14,7 @@ libcraft-text = { path = "../../libcraft/text" } serde = { version = "1", features = ["derive"] } smartstring = { version = "0.2", features = ["serde"] } uuid = { version = "0.8", features = ["serde"] } +ecs = { path = "../../feather/ecs", package = "feather-ecs" } [dev-dependencies] quill = { path = "../api" } diff --git a/quill/common/src/block.rs b/quill/common/src/block.rs deleted file mode 100644 index b997ff5e8..000000000 --- a/quill/common/src/block.rs +++ /dev/null @@ -1,49 +0,0 @@ -/// Returned from `block_get`. -/// -/// This is an FFI-safe representation of `Option`. -#[repr(transparent)] -pub struct BlockGetResult(u32); - -impl BlockGetResult { - pub fn new(block_id: Option) -> Self { - let tag = block_id.is_some() as u32; - let value = (tag << 16) | block_id.unwrap_or_default() as u32; - Self(value) - } - - /// Gets the ID of the block. - pub fn get(self) -> Option { - if self.0 >> 16 == 0 { - None - } else { - Some(self.0 as u16) - } - } - - pub fn to_u32(&self) -> u32 { - self.0 - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn block_get_result_some() { - let result = BlockGetResult::new(Some(311)); - assert_eq!(result.get(), Some(311)); - } - - #[test] - fn block_get_result_some_all_bits_set() { - let result = BlockGetResult::new(Some(u16::MAX)); - assert_eq!(result.get(), Some(u16::MAX)); - } - - #[test] - fn block_get_result_none() { - let result = BlockGetResult::new(None); - assert_eq!(result.get(), None); - } -} diff --git a/quill/common/src/component.rs b/quill/common/src/component.rs index f113fa29a..f0b55b7b5 100644 --- a/quill/common/src/component.rs +++ b/quill/common/src/component.rs @@ -173,6 +173,11 @@ host_component_enum! { Player = 205, FishingBobber = 206, PiglinBrute = 207, + Axolotl = 208, + GlowItemFrame = 209, + GlowSquid = 210, + Goat = 211, + Marker = 212, // `bincode` components Gamemode = 1000, @@ -198,7 +203,8 @@ host_component_enum! { CanBuild = 1020, Instabreak = 1021, Invulnerable = 1022, - + EntityDimension = 1023, + EntityWorld = 1024, } } diff --git a/quill/common/src/components.rs b/quill/common/src/components.rs index 352c45b69..97d4d688a 100644 --- a/quill/common/src/components.rs +++ b/quill/common/src/components.rs @@ -5,7 +5,7 @@ use std::fmt::Display; -use serde::{Deserialize, Serialize}; +use serde::{Deserialize, Deserializer, Serialize, Serializer}; use smartstring::{LazyCompact, SmartString}; use libcraft_core::Gamemode; @@ -221,6 +221,7 @@ bincode_component_impl!(Sneaking); Copy, Clone, Debug, + Default, PartialEq, Eq, Hash, @@ -284,3 +285,34 @@ impl Sprinting { } } bincode_component_impl!(Sprinting); + +#[derive( + Clone, PartialEq, Debug, derive_more::Deref, derive_more::DerefMut, Serialize, Deserialize, +)] +pub struct EntityDimension(pub String); +bincode_component_impl!(EntityDimension); + +#[derive(Copy, Clone, PartialEq, Debug, derive_more::Deref, derive_more::DerefMut)] +pub struct EntityWorld(pub ecs::Entity); + +impl Serialize for EntityWorld { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + self.0.to_bits().serialize(serializer) + } +} + +impl<'de> Deserialize<'de> for EntityWorld { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + Ok(EntityWorld(ecs::Entity::from_bits(u64::deserialize( + deserializer, + )?))) + } +} + +bincode_component_impl!(EntityWorld); diff --git a/quill/common/src/entities.rs b/quill/common/src/entities.rs index 452be357c..6e9360e25 100644 --- a/quill/common/src/entities.rs +++ b/quill/common/src/entities.rs @@ -1,216 +1,567 @@ -pub mod area_effect_cloud; -pub use area_effect_cloud::AreaEffectCloud; -pub mod armor_stand; -pub use armor_stand::ArmorStand; -pub mod arrow; -pub use arrow::Arrow; -pub mod bat; -pub use bat::Bat; -pub mod bee; -pub use bee::Bee; -pub mod blaze; -pub use blaze::Blaze; -pub mod boat; -pub use boat::Boat; -pub mod cat; -pub use cat::Cat; -pub mod cave_spider; -pub use cave_spider::CaveSpider; -pub mod chicken; -pub use chicken::Chicken; -pub mod cod; -pub use cod::Cod; -pub mod cow; -pub use cow::Cow; -pub mod creeper; -pub use creeper::Creeper; -pub mod dolphin; -pub use dolphin::Dolphin; -pub mod donkey; -pub use donkey::Donkey; -pub mod dragon_fireball; -pub use dragon_fireball::DragonFireball; -pub mod drowned; -pub use drowned::Drowned; -pub mod elder_guardian; -pub use elder_guardian::ElderGuardian; -pub mod end_crystal; -pub use end_crystal::EndCrystal; -pub mod ender_dragon; -pub use ender_dragon::EnderDragon; -pub mod enderman; -pub use enderman::Enderman; -pub mod endermite; -pub use endermite::Endermite; -pub mod evoker; -pub use evoker::Evoker; -pub mod evoker_fangs; -pub use evoker_fangs::EvokerFangs; -pub mod experience_orb; -pub use experience_orb::ExperienceOrb; -pub mod eye_of_ender; -pub use eye_of_ender::EyeOfEnder; -pub mod falling_block; -pub use falling_block::FallingBlock; -pub mod firework_rocket; -pub use firework_rocket::FireworkRocket; -pub mod fox; -pub use fox::Fox; -pub mod ghast; -pub use ghast::Ghast; -pub mod giant; -pub use giant::Giant; -pub mod guardian; -pub use guardian::Guardian; -pub mod hoglin; -pub use hoglin::Hoglin; -pub mod horse; -pub use horse::Horse; -pub mod husk; -pub use husk::Husk; -pub mod illusioner; -pub use illusioner::Illusioner; -pub mod iron_golem; -pub use iron_golem::IronGolem; -pub mod item; -pub use item::Item; -pub mod item_frame; -pub use item_frame::ItemFrame; -pub mod fireball; -pub use fireball::Fireball; -pub mod leash_knot; -pub use leash_knot::LeashKnot; -pub mod lightning_bolt; -pub use lightning_bolt::LightningBolt; -pub mod llama; -pub use llama::Llama; -pub mod llama_spit; -pub use llama_spit::LlamaSpit; -pub mod magma_cube; -pub use magma_cube::MagmaCube; -pub mod minecart; -pub use minecart::Minecart; -pub mod chest_minecart; -pub use chest_minecart::ChestMinecart; -pub mod command_block_minecart; -pub use command_block_minecart::CommandBlockMinecart; -pub mod furnace_minecart; -pub use furnace_minecart::FurnaceMinecart; -pub mod hopper_minecart; -pub use hopper_minecart::HopperMinecart; -pub mod spawner_minecart; -pub use spawner_minecart::SpawnerMinecart; -pub mod tnt_minecart; -pub use tnt_minecart::TntMinecart; -pub mod mule; -pub use mule::Mule; -pub mod mooshroom; -pub use mooshroom::Mooshroom; -pub mod ocelot; -pub use ocelot::Ocelot; -pub mod painting; -pub use painting::Painting; -pub mod panda; -pub use panda::Panda; -pub mod parrot; -pub use parrot::Parrot; -pub mod phantom; -pub use phantom::Phantom; -pub mod pig; -pub use pig::Pig; -pub mod piglin; -pub use piglin::Piglin; -pub mod piglin_brute; -pub use piglin_brute::PiglinBrute; -pub mod pillager; -pub use pillager::Pillager; -pub mod polar_bear; -pub use polar_bear::PolarBear; -pub mod tnt; -pub use tnt::Tnt; -pub mod pufferfish; -pub use pufferfish::Pufferfish; -pub mod rabbit; -pub use rabbit::Rabbit; -pub mod ravager; -pub use ravager::Ravager; -pub mod salmon; -pub use salmon::Salmon; -pub mod sheep; -pub use sheep::Sheep; -pub mod shulker; -pub use shulker::Shulker; -pub mod shulker_bullet; -pub use shulker_bullet::ShulkerBullet; -pub mod silverfish; -pub use silverfish::Silverfish; -pub mod skeleton; -pub use skeleton::Skeleton; -pub mod skeleton_horse; -pub use skeleton_horse::SkeletonHorse; -pub mod slime; -pub use slime::Slime; -pub mod small_fireball; -pub use small_fireball::SmallFireball; -pub mod snow_golem; -pub use snow_golem::SnowGolem; -pub mod snowball; -pub use snowball::Snowball; -pub mod spectral_arrow; -pub use spectral_arrow::SpectralArrow; -pub mod spider; -pub use spider::Spider; -pub mod squid; -pub use squid::Squid; -pub mod stray; -pub use stray::Stray; -pub mod strider; -pub use strider::Strider; -pub mod egg; -pub use egg::Egg; -pub mod ender_pearl; -pub use ender_pearl::EnderPearl; -pub mod experience_bottle; -pub use experience_bottle::ExperienceBottle; -pub mod potion; -pub use potion::Potion; -pub mod trident; -pub use trident::Trident; -pub mod trader_llama; -pub use trader_llama::TraderLlama; -pub mod tropical_fish; -pub use tropical_fish::TropicalFish; -pub mod turtle; -pub use turtle::Turtle; -pub mod vex; -pub use vex::Vex; -pub mod villager; -pub use villager::Villager; -pub mod vindicator; -pub use vindicator::Vindicator; -pub mod wandering_trader; -pub use wandering_trader::WanderingTrader; -pub mod witch; -pub use witch::Witch; -pub mod wither; -pub use wither::Wither; -pub mod wither_skeleton; -pub use wither_skeleton::WitherSkeleton; -pub mod wither_skull; -pub use wither_skull::WitherSkull; -pub mod wolf; -pub use wolf::Wolf; -pub mod zoglin; -pub use zoglin::Zoglin; -pub mod zombie; -pub use zombie::Zombie; -pub mod zombie_horse; -pub use zombie_horse::ZombieHorse; -pub mod zombie_villager; -pub use zombie_villager::ZombieVillager; -pub mod zombified_piglin; -pub use zombified_piglin::ZombifiedPiglin; -pub mod player; -pub use player::Player; -pub mod fishing_bobber; -pub use fishing_bobber::FishingBobber; +// This file is @generated. Please do not edit. +use bytemuck::{Pod, Zeroable}; +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for area_effect_cloud entities."] +pub struct AreaEffectCloud; +pod_component_impl!(AreaEffectCloud); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for armor_stand entities."] +pub struct ArmorStand; +pod_component_impl!(ArmorStand); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for arrow entities."] +pub struct Arrow; +pod_component_impl!(Arrow); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for axolotl entities."] +pub struct Axolotl; +pod_component_impl!(Axolotl); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for bat entities."] +pub struct Bat; +pod_component_impl!(Bat); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for bee entities."] +pub struct Bee; +pod_component_impl!(Bee); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for blaze entities."] +pub struct Blaze; +pod_component_impl!(Blaze); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for boat entities."] +pub struct Boat; +pod_component_impl!(Boat); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for cat entities."] +pub struct Cat; +pod_component_impl!(Cat); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for cave_spider entities."] +pub struct CaveSpider; +pod_component_impl!(CaveSpider); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for chicken entities."] +pub struct Chicken; +pod_component_impl!(Chicken); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for cod entities."] +pub struct Cod; +pod_component_impl!(Cod); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for cow entities."] +pub struct Cow; +pod_component_impl!(Cow); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for creeper entities."] +pub struct Creeper; +pod_component_impl!(Creeper); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for dolphin entities."] +pub struct Dolphin; +pod_component_impl!(Dolphin); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for donkey entities."] +pub struct Donkey; +pod_component_impl!(Donkey); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for dragon_fireball entities."] +pub struct DragonFireball; +pod_component_impl!(DragonFireball); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for drowned entities."] +pub struct Drowned; +pod_component_impl!(Drowned); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for elder_guardian entities."] +pub struct ElderGuardian; +pod_component_impl!(ElderGuardian); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for end_crystal entities."] +pub struct EndCrystal; +pod_component_impl!(EndCrystal); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for ender_dragon entities."] +pub struct EnderDragon; +pod_component_impl!(EnderDragon); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for enderman entities."] +pub struct Enderman; +pod_component_impl!(Enderman); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for endermite entities."] +pub struct Endermite; +pod_component_impl!(Endermite); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for evoker entities."] +pub struct Evoker; +pod_component_impl!(Evoker); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for evoker_fangs entities."] +pub struct EvokerFangs; +pod_component_impl!(EvokerFangs); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for experience_orb entities."] +pub struct ExperienceOrb; +pod_component_impl!(ExperienceOrb); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for eye_of_ender entities."] +pub struct EyeOfEnder; +pod_component_impl!(EyeOfEnder); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for falling_block entities."] +pub struct FallingBlock; +pod_component_impl!(FallingBlock); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for firework_rocket entities."] +pub struct FireworkRocket; +pod_component_impl!(FireworkRocket); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for fox entities."] +pub struct Fox; +pod_component_impl!(Fox); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for ghast entities."] +pub struct Ghast; +pod_component_impl!(Ghast); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for giant entities."] +pub struct Giant; +pod_component_impl!(Giant); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for glow_item_frame entities."] +pub struct GlowItemFrame; +pod_component_impl!(GlowItemFrame); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for glow_squid entities."] +pub struct GlowSquid; +pod_component_impl!(GlowSquid); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for goat entities."] +pub struct Goat; +pod_component_impl!(Goat); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for guardian entities."] +pub struct Guardian; +pod_component_impl!(Guardian); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for hoglin entities."] +pub struct Hoglin; +pod_component_impl!(Hoglin); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for horse entities."] +pub struct Horse; +pod_component_impl!(Horse); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for husk entities."] +pub struct Husk; +pod_component_impl!(Husk); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for illusioner entities."] +pub struct Illusioner; +pod_component_impl!(Illusioner); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for iron_golem entities."] +pub struct IronGolem; +pod_component_impl!(IronGolem); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for item entities."] +pub struct Item; +pod_component_impl!(Item); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for item_frame entities."] +pub struct ItemFrame; +pod_component_impl!(ItemFrame); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for fireball entities."] +pub struct Fireball; +pod_component_impl!(Fireball); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for leash_knot entities."] +pub struct LeashKnot; +pod_component_impl!(LeashKnot); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for lightning_bolt entities."] +pub struct LightningBolt; +pod_component_impl!(LightningBolt); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for llama entities."] +pub struct Llama; +pod_component_impl!(Llama); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for llama_spit entities."] +pub struct LlamaSpit; +pod_component_impl!(LlamaSpit); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for magma_cube entities."] +pub struct MagmaCube; +pod_component_impl!(MagmaCube); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for marker entities."] +pub struct Marker; +pod_component_impl!(Marker); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for minecart entities."] +pub struct Minecart; +pod_component_impl!(Minecart); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for chest_minecart entities."] +pub struct ChestMinecart; +pod_component_impl!(ChestMinecart); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for command_block_minecart entities."] +pub struct CommandBlockMinecart; +pod_component_impl!(CommandBlockMinecart); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for furnace_minecart entities."] +pub struct FurnaceMinecart; +pod_component_impl!(FurnaceMinecart); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for hopper_minecart entities."] +pub struct HopperMinecart; +pod_component_impl!(HopperMinecart); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for spawner_minecart entities."] +pub struct SpawnerMinecart; +pod_component_impl!(SpawnerMinecart); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for tnt_minecart entities."] +pub struct TntMinecart; +pod_component_impl!(TntMinecart); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for mule entities."] +pub struct Mule; +pod_component_impl!(Mule); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for mooshroom entities."] +pub struct Mooshroom; +pod_component_impl!(Mooshroom); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for ocelot entities."] +pub struct Ocelot; +pod_component_impl!(Ocelot); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for painting entities."] +pub struct Painting; +pod_component_impl!(Painting); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for panda entities."] +pub struct Panda; +pod_component_impl!(Panda); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for parrot entities."] +pub struct Parrot; +pod_component_impl!(Parrot); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for phantom entities."] +pub struct Phantom; +pod_component_impl!(Phantom); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for pig entities."] +pub struct Pig; +pod_component_impl!(Pig); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for piglin entities."] +pub struct Piglin; +pod_component_impl!(Piglin); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for piglin_brute entities."] +pub struct PiglinBrute; +pod_component_impl!(PiglinBrute); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for pillager entities."] +pub struct Pillager; +pod_component_impl!(Pillager); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for polar_bear entities."] +pub struct PolarBear; +pod_component_impl!(PolarBear); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for tnt entities."] +pub struct Tnt; +pod_component_impl!(Tnt); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for pufferfish entities."] +pub struct Pufferfish; +pod_component_impl!(Pufferfish); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for rabbit entities."] +pub struct Rabbit; +pod_component_impl!(Rabbit); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for ravager entities."] +pub struct Ravager; +pod_component_impl!(Ravager); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for salmon entities."] +pub struct Salmon; +pod_component_impl!(Salmon); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for sheep entities."] +pub struct Sheep; +pod_component_impl!(Sheep); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for shulker entities."] +pub struct Shulker; +pod_component_impl!(Shulker); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for shulker_bullet entities."] +pub struct ShulkerBullet; +pod_component_impl!(ShulkerBullet); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for silverfish entities."] +pub struct Silverfish; +pod_component_impl!(Silverfish); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for skeleton entities."] +pub struct Skeleton; +pod_component_impl!(Skeleton); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for skeleton_horse entities."] +pub struct SkeletonHorse; +pod_component_impl!(SkeletonHorse); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for slime entities."] +pub struct Slime; +pod_component_impl!(Slime); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for small_fireball entities."] +pub struct SmallFireball; +pod_component_impl!(SmallFireball); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for snow_golem entities."] +pub struct SnowGolem; +pod_component_impl!(SnowGolem); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for snowball entities."] +pub struct Snowball; +pod_component_impl!(Snowball); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for spectral_arrow entities."] +pub struct SpectralArrow; +pod_component_impl!(SpectralArrow); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for spider entities."] +pub struct Spider; +pod_component_impl!(Spider); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for squid entities."] +pub struct Squid; +pod_component_impl!(Squid); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for stray entities."] +pub struct Stray; +pod_component_impl!(Stray); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for strider entities."] +pub struct Strider; +pod_component_impl!(Strider); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for egg entities."] +pub struct Egg; +pod_component_impl!(Egg); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for ender_pearl entities."] +pub struct EnderPearl; +pod_component_impl!(EnderPearl); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for experience_bottle entities."] +pub struct ExperienceBottle; +pod_component_impl!(ExperienceBottle); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for potion entities."] +pub struct Potion; +pod_component_impl!(Potion); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for trident entities."] +pub struct Trident; +pod_component_impl!(Trident); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for trader_llama entities."] +pub struct TraderLlama; +pod_component_impl!(TraderLlama); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for tropical_fish entities."] +pub struct TropicalFish; +pod_component_impl!(TropicalFish); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for turtle entities."] +pub struct Turtle; +pod_component_impl!(Turtle); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for vex entities."] +pub struct Vex; +pod_component_impl!(Vex); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for villager entities."] +pub struct Villager; +pod_component_impl!(Villager); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for vindicator entities."] +pub struct Vindicator; +pod_component_impl!(Vindicator); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for wandering_trader entities."] +pub struct WanderingTrader; +pod_component_impl!(WanderingTrader); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for witch entities."] +pub struct Witch; +pod_component_impl!(Witch); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for wither entities."] +pub struct Wither; +pod_component_impl!(Wither); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for wither_skeleton entities."] +pub struct WitherSkeleton; +pod_component_impl!(WitherSkeleton); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for wither_skull entities."] +pub struct WitherSkull; +pod_component_impl!(WitherSkull); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for wolf entities."] +pub struct Wolf; +pod_component_impl!(Wolf); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for zoglin entities."] +pub struct Zoglin; +pod_component_impl!(Zoglin); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for zombie entities."] +pub struct Zombie; +pod_component_impl!(Zombie); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for zombie_horse entities."] +pub struct ZombieHorse; +pod_component_impl!(ZombieHorse); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for zombie_villager entities."] +pub struct ZombieVillager; +pod_component_impl!(ZombieVillager); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for zombified_piglin entities."] +pub struct ZombifiedPiglin; +pod_component_impl!(ZombifiedPiglin); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for player entities."] +pub struct Player; +pod_component_impl!(Player); +#[derive(Debug, Copy, Clone, Zeroable, Pod)] +#[repr(C)] +#[doc = "A marker component for fishing_bobber entities."] +pub struct FishingBobber; +pod_component_impl!(FishingBobber); diff --git a/quill/common/src/entities/area_effect_cloud.rs b/quill/common/src/entities/area_effect_cloud.rs deleted file mode 100644 index da07f1ab0..000000000 --- a/quill/common/src/entities/area_effect_cloud.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for area effect cloud entities. -/// -/// # Example -/// A system that queries for all area effect clouds: -/// ```no_run -/// use quill::{Game, Position, entities::AreaEffectCloud}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &AreaEffectCloud)>() { -/// println!("Found a area effect cloud with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct AreaEffectCloud; - -pod_component_impl!(AreaEffectCloud); diff --git a/quill/common/src/entities/armor_stand.rs b/quill/common/src/entities/armor_stand.rs deleted file mode 100644 index 53edaf229..000000000 --- a/quill/common/src/entities/armor_stand.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for armor stand entities. -/// -/// # Example -/// A system that queries for all armor stands: -/// ```no_run -/// use quill::{Game, Position, entities::ArmorStand}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &ArmorStand)>() { -/// println!("Found a armor stand with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct ArmorStand; - -pod_component_impl!(ArmorStand); diff --git a/quill/common/src/entities/arrow.rs b/quill/common/src/entities/arrow.rs deleted file mode 100644 index 6267a47c3..000000000 --- a/quill/common/src/entities/arrow.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for arrow entities. -/// -/// # Example -/// A system that queries for all arrows: -/// ```no_run -/// use quill::{Game, Position, entities::Arrow}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Arrow)>() { -/// println!("Found a arrow with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Arrow; - -pod_component_impl!(Arrow); diff --git a/quill/common/src/entities/bat.rs b/quill/common/src/entities/bat.rs deleted file mode 100644 index 82a6f13d5..000000000 --- a/quill/common/src/entities/bat.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for bat entities. -/// -/// # Example -/// A system that queries for all bats: -/// ```no_run -/// use quill::{Game, Position, entities::Bat}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Bat)>() { -/// println!("Found a bat with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Bat; - -pod_component_impl!(Bat); diff --git a/quill/common/src/entities/bee.rs b/quill/common/src/entities/bee.rs deleted file mode 100644 index ee81b1567..000000000 --- a/quill/common/src/entities/bee.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for bee entities. -/// -/// # Example -/// A system that queries for all bees: -/// ```no_run -/// use quill::{Game, Position, entities::Bee}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Bee)>() { -/// println!("Found a bee with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Bee; - -pod_component_impl!(Bee); diff --git a/quill/common/src/entities/blaze.rs b/quill/common/src/entities/blaze.rs deleted file mode 100644 index abf9c986e..000000000 --- a/quill/common/src/entities/blaze.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for blaze entities. -/// -/// # Example -/// A system that queries for all blazes: -/// ```no_run -/// use quill::{Game, Position, entities::Blaze}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Blaze)>() { -/// println!("Found a blaze with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Blaze; - -pod_component_impl!(Blaze); diff --git a/quill/common/src/entities/boat.rs b/quill/common/src/entities/boat.rs deleted file mode 100644 index 21d260449..000000000 --- a/quill/common/src/entities/boat.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for boat entities. -/// -/// # Example -/// A system that queries for all boats: -/// ```no_run -/// use quill::{Game, Position, entities::Boat}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Boat)>() { -/// println!("Found a boat with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Boat; - -pod_component_impl!(Boat); diff --git a/quill/common/src/entities/cat.rs b/quill/common/src/entities/cat.rs deleted file mode 100644 index b8f0721e3..000000000 --- a/quill/common/src/entities/cat.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for cat entities. -/// -/// # Example -/// A system that queries for all cats: -/// ```no_run -/// use quill::{Game, Position, entities::Cat}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Cat)>() { -/// println!("Found a cat with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Cat; - -pod_component_impl!(Cat); diff --git a/quill/common/src/entities/cave_spider.rs b/quill/common/src/entities/cave_spider.rs deleted file mode 100644 index c600f48b3..000000000 --- a/quill/common/src/entities/cave_spider.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for cave spider entities. -/// -/// # Example -/// A system that queries for all cave spiders: -/// ```no_run -/// use quill::{Game, Position, entities::CaveSpider}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &CaveSpider)>() { -/// println!("Found a cave spider with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct CaveSpider; - -pod_component_impl!(CaveSpider); diff --git a/quill/common/src/entities/chest_minecart.rs b/quill/common/src/entities/chest_minecart.rs deleted file mode 100644 index 010a314c7..000000000 --- a/quill/common/src/entities/chest_minecart.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for chest minecart entities. -/// -/// # Example -/// A system that queries for all chest minecarts: -/// ```no_run -/// use quill::{Game, Position, entities::ChestMinecart}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &ChestMinecart)>() { -/// println!("Found a chest minecart with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct ChestMinecart; - -pod_component_impl!(ChestMinecart); diff --git a/quill/common/src/entities/chicken.rs b/quill/common/src/entities/chicken.rs deleted file mode 100644 index 236399d04..000000000 --- a/quill/common/src/entities/chicken.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for chicken entities. -/// -/// # Example -/// A system that queries for all chickens: -/// ```no_run -/// use quill::{Game, Position, entities::Chicken}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Chicken)>() { -/// println!("Found a chicken with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Chicken; - -pod_component_impl!(Chicken); diff --git a/quill/common/src/entities/cod.rs b/quill/common/src/entities/cod.rs deleted file mode 100644 index 528b8d369..000000000 --- a/quill/common/src/entities/cod.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for cod entities. -/// -/// # Example -/// A system that queries for all cods: -/// ```no_run -/// use quill::{Game, Position, entities::Cod}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Cod)>() { -/// println!("Found a cod with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Cod; - -pod_component_impl!(Cod); diff --git a/quill/common/src/entities/command_block_minecart.rs b/quill/common/src/entities/command_block_minecart.rs deleted file mode 100644 index 33c0ca053..000000000 --- a/quill/common/src/entities/command_block_minecart.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for command block minecart entities. -/// -/// # Example -/// A system that queries for all command block minecarts: -/// ```no_run -/// use quill::{Game, Position, entities::CommandBlockMinecart}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &CommandBlockMinecart)>() { -/// println!("Found a command block minecart with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct CommandBlockMinecart; - -pod_component_impl!(CommandBlockMinecart); diff --git a/quill/common/src/entities/cow.rs b/quill/common/src/entities/cow.rs deleted file mode 100644 index adb540b9c..000000000 --- a/quill/common/src/entities/cow.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for cow entities. -/// -/// # Example -/// A system that queries for all cows: -/// ```no_run -/// use quill::{Game, Position, entities::Cow}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Cow)>() { -/// println!("Found a cow with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Cow; - -pod_component_impl!(Cow); diff --git a/quill/common/src/entities/creeper.rs b/quill/common/src/entities/creeper.rs deleted file mode 100644 index 48261737f..000000000 --- a/quill/common/src/entities/creeper.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for creeper entities. -/// -/// # Example -/// A system that queries for all creepers: -/// ```no_run -/// use quill::{Game, Position, entities::Creeper}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Creeper)>() { -/// println!("Found a creeper with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Creeper; - -pod_component_impl!(Creeper); diff --git a/quill/common/src/entities/dolphin.rs b/quill/common/src/entities/dolphin.rs deleted file mode 100644 index c763c7a65..000000000 --- a/quill/common/src/entities/dolphin.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for dolphin entities. -/// -/// # Example -/// A system that queries for all dolphins: -/// ```no_run -/// use quill::{Game, Position, entities::Dolphin}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Dolphin)>() { -/// println!("Found a dolphin with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Dolphin; - -pod_component_impl!(Dolphin); diff --git a/quill/common/src/entities/donkey.rs b/quill/common/src/entities/donkey.rs deleted file mode 100644 index 5c9565572..000000000 --- a/quill/common/src/entities/donkey.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for donkey entities. -/// -/// # Example -/// A system that queries for all donkeys: -/// ```no_run -/// use quill::{Game, Position, entities::Donkey}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Donkey)>() { -/// println!("Found a donkey with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Donkey; - -pod_component_impl!(Donkey); diff --git a/quill/common/src/entities/dragon_fireball.rs b/quill/common/src/entities/dragon_fireball.rs deleted file mode 100644 index 2ecb539ff..000000000 --- a/quill/common/src/entities/dragon_fireball.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for dragon fireball entities. -/// -/// # Example -/// A system that queries for all dragon fireballs: -/// ```no_run -/// use quill::{Game, Position, entities::DragonFireball}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &DragonFireball)>() { -/// println!("Found a dragon fireball with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct DragonFireball; - -pod_component_impl!(DragonFireball); diff --git a/quill/common/src/entities/drowned.rs b/quill/common/src/entities/drowned.rs deleted file mode 100644 index bcf1fa93f..000000000 --- a/quill/common/src/entities/drowned.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for drowned entities. -/// -/// # Example -/// A system that queries for all drowneds: -/// ```no_run -/// use quill::{Game, Position, entities::Drowned}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Drowned)>() { -/// println!("Found a drowned with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Drowned; - -pod_component_impl!(Drowned); diff --git a/quill/common/src/entities/egg.rs b/quill/common/src/entities/egg.rs deleted file mode 100644 index 0c89551cc..000000000 --- a/quill/common/src/entities/egg.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for egg entities. -/// -/// # Example -/// A system that queries for all eggs: -/// ```no_run -/// use quill::{Game, Position, entities::Egg}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Egg)>() { -/// println!("Found a egg with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Egg; - -pod_component_impl!(Egg); diff --git a/quill/common/src/entities/elder_guardian.rs b/quill/common/src/entities/elder_guardian.rs deleted file mode 100644 index ea2503448..000000000 --- a/quill/common/src/entities/elder_guardian.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for elder guardian entities. -/// -/// # Example -/// A system that queries for all elder guardians: -/// ```no_run -/// use quill::{Game, Position, entities::ElderGuardian}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &ElderGuardian)>() { -/// println!("Found a elder guardian with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct ElderGuardian; - -pod_component_impl!(ElderGuardian); diff --git a/quill/common/src/entities/end_crystal.rs b/quill/common/src/entities/end_crystal.rs deleted file mode 100644 index 2ceaa8fa7..000000000 --- a/quill/common/src/entities/end_crystal.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for end crystal entities. -/// -/// # Example -/// A system that queries for all end crystals: -/// ```no_run -/// use quill::{Game, Position, entities::EndCrystal}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &EndCrystal)>() { -/// println!("Found a end crystal with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct EndCrystal; - -pod_component_impl!(EndCrystal); diff --git a/quill/common/src/entities/ender_dragon.rs b/quill/common/src/entities/ender_dragon.rs deleted file mode 100644 index 0ab804da3..000000000 --- a/quill/common/src/entities/ender_dragon.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for ender dragon entities. -/// -/// # Example -/// A system that queries for all ender dragons: -/// ```no_run -/// use quill::{Game, Position, entities::EnderDragon}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &EnderDragon)>() { -/// println!("Found a ender dragon with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct EnderDragon; - -pod_component_impl!(EnderDragon); diff --git a/quill/common/src/entities/ender_pearl.rs b/quill/common/src/entities/ender_pearl.rs deleted file mode 100644 index 4f44365cf..000000000 --- a/quill/common/src/entities/ender_pearl.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for ender pearl entities. -/// -/// # Example -/// A system that queries for all ender pearls: -/// ```no_run -/// use quill::{Game, Position, entities::EnderPearl}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &EnderPearl)>() { -/// println!("Found a ender pearl with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct EnderPearl; - -pod_component_impl!(EnderPearl); diff --git a/quill/common/src/entities/enderman.rs b/quill/common/src/entities/enderman.rs deleted file mode 100644 index 393fce912..000000000 --- a/quill/common/src/entities/enderman.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for enderman entities. -/// -/// # Example -/// A system that queries for all endermans: -/// ```no_run -/// use quill::{Game, Position, entities::Enderman}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Enderman)>() { -/// println!("Found a enderman with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Enderman; - -pod_component_impl!(Enderman); diff --git a/quill/common/src/entities/endermite.rs b/quill/common/src/entities/endermite.rs deleted file mode 100644 index cc4b19dd9..000000000 --- a/quill/common/src/entities/endermite.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for endermite entities. -/// -/// # Example -/// A system that queries for all endermites: -/// ```no_run -/// use quill::{Game, Position, entities::Endermite}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Endermite)>() { -/// println!("Found a endermite with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Endermite; - -pod_component_impl!(Endermite); diff --git a/quill/common/src/entities/evoker.rs b/quill/common/src/entities/evoker.rs deleted file mode 100644 index 118fb90da..000000000 --- a/quill/common/src/entities/evoker.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for evoker entities. -/// -/// # Example -/// A system that queries for all evokers: -/// ```no_run -/// use quill::{Game, Position, entities::Evoker}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Evoker)>() { -/// println!("Found a evoker with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Evoker; - -pod_component_impl!(Evoker); diff --git a/quill/common/src/entities/evoker_fangs.rs b/quill/common/src/entities/evoker_fangs.rs deleted file mode 100644 index 48cbb3d78..000000000 --- a/quill/common/src/entities/evoker_fangs.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for evoker fangs entities. -/// -/// # Example -/// A system that queries for all evoker fangss: -/// ```no_run -/// use quill::{Game, Position, entities::EvokerFangs}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &EvokerFangs)>() { -/// println!("Found a evoker fangs with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct EvokerFangs; - -pod_component_impl!(EvokerFangs); diff --git a/quill/common/src/entities/experience_bottle.rs b/quill/common/src/entities/experience_bottle.rs deleted file mode 100644 index 034e71d58..000000000 --- a/quill/common/src/entities/experience_bottle.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for experience bottle entities. -/// -/// # Example -/// A system that queries for all experience bottles: -/// ```no_run -/// use quill::{Game, Position, entities::ExperienceBottle}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &ExperienceBottle)>() { -/// println!("Found a experience bottle with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct ExperienceBottle; - -pod_component_impl!(ExperienceBottle); diff --git a/quill/common/src/entities/experience_orb.rs b/quill/common/src/entities/experience_orb.rs deleted file mode 100644 index f3aa27199..000000000 --- a/quill/common/src/entities/experience_orb.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for experience orb entities. -/// -/// # Example -/// A system that queries for all experience orbs: -/// ```no_run -/// use quill::{Game, Position, entities::ExperienceOrb}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &ExperienceOrb)>() { -/// println!("Found a experience orb with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct ExperienceOrb; - -pod_component_impl!(ExperienceOrb); diff --git a/quill/common/src/entities/eye_of_ender.rs b/quill/common/src/entities/eye_of_ender.rs deleted file mode 100644 index 6c1e83cd4..000000000 --- a/quill/common/src/entities/eye_of_ender.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for eye of ender entities. -/// -/// # Example -/// A system that queries for all eye of enders: -/// ```no_run -/// use quill::{Game, Position, entities::EyeOfEnder}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &EyeOfEnder)>() { -/// println!("Found a eye of ender with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct EyeOfEnder; - -pod_component_impl!(EyeOfEnder); diff --git a/quill/common/src/entities/falling_block.rs b/quill/common/src/entities/falling_block.rs deleted file mode 100644 index abc223edf..000000000 --- a/quill/common/src/entities/falling_block.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for falling block entities. -/// -/// # Example -/// A system that queries for all falling blocks: -/// ```no_run -/// use quill::{Game, Position, entities::FallingBlock}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &FallingBlock)>() { -/// println!("Found a falling block with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct FallingBlock; - -pod_component_impl!(FallingBlock); diff --git a/quill/common/src/entities/fireball.rs b/quill/common/src/entities/fireball.rs deleted file mode 100644 index d524648be..000000000 --- a/quill/common/src/entities/fireball.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for fireball entities. -/// -/// # Example -/// A system that queries for all fireballs: -/// ```no_run -/// use quill::{Game, Position, entities::Fireball}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Fireball)>() { -/// println!("Found a fireball with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Fireball; - -pod_component_impl!(Fireball); diff --git a/quill/common/src/entities/firework_rocket.rs b/quill/common/src/entities/firework_rocket.rs deleted file mode 100644 index f03f2edc3..000000000 --- a/quill/common/src/entities/firework_rocket.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for firework rocket entities. -/// -/// # Example -/// A system that queries for all firework rockets: -/// ```no_run -/// use quill::{Game, Position, entities::FireworkRocket}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &FireworkRocket)>() { -/// println!("Found a firework rocket with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct FireworkRocket; - -pod_component_impl!(FireworkRocket); diff --git a/quill/common/src/entities/fishing_bobber.rs b/quill/common/src/entities/fishing_bobber.rs deleted file mode 100644 index c49a726f4..000000000 --- a/quill/common/src/entities/fishing_bobber.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for fishing bobber entities. -/// -/// # Example -/// A system that queries for all fishing bobbers: -/// ```no_run -/// use quill::{Game, Position, entities::FishingBobber}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &FishingBobber)>() { -/// println!("Found a fishing bobber with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct FishingBobber; - -pod_component_impl!(FishingBobber); diff --git a/quill/common/src/entities/fox.rs b/quill/common/src/entities/fox.rs deleted file mode 100644 index c8c367585..000000000 --- a/quill/common/src/entities/fox.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for fox entities. -/// -/// # Example -/// A system that queries for all foxs: -/// ```no_run -/// use quill::{Game, Position, entities::Fox}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Fox)>() { -/// println!("Found a fox with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Fox; - -pod_component_impl!(Fox); diff --git a/quill/common/src/entities/furnace_minecart.rs b/quill/common/src/entities/furnace_minecart.rs deleted file mode 100644 index 259647d1d..000000000 --- a/quill/common/src/entities/furnace_minecart.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for furnace minecart entities. -/// -/// # Example -/// A system that queries for all furnace minecarts: -/// ```no_run -/// use quill::{Game, Position, entities::FurnaceMinecart}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &FurnaceMinecart)>() { -/// println!("Found a furnace minecart with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct FurnaceMinecart; - -pod_component_impl!(FurnaceMinecart); diff --git a/quill/common/src/entities/ghast.rs b/quill/common/src/entities/ghast.rs deleted file mode 100644 index ee1b579d3..000000000 --- a/quill/common/src/entities/ghast.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for ghast entities. -/// -/// # Example -/// A system that queries for all ghasts: -/// ```no_run -/// use quill::{Game, Position, entities::Ghast}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Ghast)>() { -/// println!("Found a ghast with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Ghast; - -pod_component_impl!(Ghast); diff --git a/quill/common/src/entities/giant.rs b/quill/common/src/entities/giant.rs deleted file mode 100644 index 4dd05874a..000000000 --- a/quill/common/src/entities/giant.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for giant entities. -/// -/// # Example -/// A system that queries for all giants: -/// ```no_run -/// use quill::{Game, Position, entities::Giant}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Giant)>() { -/// println!("Found a giant with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Giant; - -pod_component_impl!(Giant); diff --git a/quill/common/src/entities/guardian.rs b/quill/common/src/entities/guardian.rs deleted file mode 100644 index 29ec01eef..000000000 --- a/quill/common/src/entities/guardian.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for guardian entities. -/// -/// # Example -/// A system that queries for all guardians: -/// ```no_run -/// use quill::{Game, Position, entities::Guardian}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Guardian)>() { -/// println!("Found a guardian with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Guardian; - -pod_component_impl!(Guardian); diff --git a/quill/common/src/entities/hoglin.rs b/quill/common/src/entities/hoglin.rs deleted file mode 100644 index 621867f00..000000000 --- a/quill/common/src/entities/hoglin.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for hoglin entities. -/// -/// # Example -/// A system that queries for all hoglins: -/// ```no_run -/// use quill::{Game, Position, entities::Hoglin}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Hoglin)>() { -/// println!("Found a hoglin with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Hoglin; - -pod_component_impl!(Hoglin); diff --git a/quill/common/src/entities/hopper_minecart.rs b/quill/common/src/entities/hopper_minecart.rs deleted file mode 100644 index 04f1453ea..000000000 --- a/quill/common/src/entities/hopper_minecart.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for hopper minecart entities. -/// -/// # Example -/// A system that queries for all hopper minecarts: -/// ```no_run -/// use quill::{Game, Position, entities::HopperMinecart}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &HopperMinecart)>() { -/// println!("Found a hopper minecart with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct HopperMinecart; - -pod_component_impl!(HopperMinecart); diff --git a/quill/common/src/entities/horse.rs b/quill/common/src/entities/horse.rs deleted file mode 100644 index dd6d52ea7..000000000 --- a/quill/common/src/entities/horse.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for horse entities. -/// -/// # Example -/// A system that queries for all horses: -/// ```no_run -/// use quill::{Game, Position, entities::Horse}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Horse)>() { -/// println!("Found a horse with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Horse; - -pod_component_impl!(Horse); diff --git a/quill/common/src/entities/husk.rs b/quill/common/src/entities/husk.rs deleted file mode 100644 index 37a7cc2e9..000000000 --- a/quill/common/src/entities/husk.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for husk entities. -/// -/// # Example -/// A system that queries for all husks: -/// ```no_run -/// use quill::{Game, Position, entities::Husk}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Husk)>() { -/// println!("Found a husk with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Husk; - -pod_component_impl!(Husk); diff --git a/quill/common/src/entities/illusioner.rs b/quill/common/src/entities/illusioner.rs deleted file mode 100644 index 4efc89bbe..000000000 --- a/quill/common/src/entities/illusioner.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for illusioner entities. -/// -/// # Example -/// A system that queries for all illusioners: -/// ```no_run -/// use quill::{Game, Position, entities::Illusioner}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Illusioner)>() { -/// println!("Found a illusioner with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Illusioner; - -pod_component_impl!(Illusioner); diff --git a/quill/common/src/entities/iron_golem.rs b/quill/common/src/entities/iron_golem.rs deleted file mode 100644 index 6ee2f96bd..000000000 --- a/quill/common/src/entities/iron_golem.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for iron golem entities. -/// -/// # Example -/// A system that queries for all iron golems: -/// ```no_run -/// use quill::{Game, Position, entities::IronGolem}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &IronGolem)>() { -/// println!("Found a iron golem with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct IronGolem; - -pod_component_impl!(IronGolem); diff --git a/quill/common/src/entities/item.rs b/quill/common/src/entities/item.rs deleted file mode 100644 index 9c37e4a45..000000000 --- a/quill/common/src/entities/item.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for item entities. -/// -/// # Example -/// A system that queries for all items: -/// ```no_run -/// use quill::{Game, Position, entities::Item}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Item)>() { -/// println!("Found a item with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Item; - -pod_component_impl!(Item); diff --git a/quill/common/src/entities/item_frame.rs b/quill/common/src/entities/item_frame.rs deleted file mode 100644 index 1eb6157d6..000000000 --- a/quill/common/src/entities/item_frame.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for item frame entities. -/// -/// # Example -/// A system that queries for all item frames: -/// ```no_run -/// use quill::{Game, Position, entities::ItemFrame}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &ItemFrame)>() { -/// println!("Found a item frame with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct ItemFrame; - -pod_component_impl!(ItemFrame); diff --git a/quill/common/src/entities/leash_knot.rs b/quill/common/src/entities/leash_knot.rs deleted file mode 100644 index 548f0b546..000000000 --- a/quill/common/src/entities/leash_knot.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for leash knot entities. -/// -/// # Example -/// A system that queries for all leash knots: -/// ```no_run -/// use quill::{Game, Position, entities::LeashKnot}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &LeashKnot)>() { -/// println!("Found a leash knot with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct LeashKnot; - -pod_component_impl!(LeashKnot); diff --git a/quill/common/src/entities/lightning_bolt.rs b/quill/common/src/entities/lightning_bolt.rs deleted file mode 100644 index e02e12761..000000000 --- a/quill/common/src/entities/lightning_bolt.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for lightning bolt entities. -/// -/// # Example -/// A system that queries for all lightning bolts: -/// ```no_run -/// use quill::{Game, Position, entities::LightningBolt}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &LightningBolt)>() { -/// println!("Found a lightning bolt with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct LightningBolt; - -pod_component_impl!(LightningBolt); diff --git a/quill/common/src/entities/llama.rs b/quill/common/src/entities/llama.rs deleted file mode 100644 index 0d6ebab54..000000000 --- a/quill/common/src/entities/llama.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for llama entities. -/// -/// # Example -/// A system that queries for all llamas: -/// ```no_run -/// use quill::{Game, Position, entities::Llama}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Llama)>() { -/// println!("Found a llama with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Llama; - -pod_component_impl!(Llama); diff --git a/quill/common/src/entities/llama_spit.rs b/quill/common/src/entities/llama_spit.rs deleted file mode 100644 index f6a4948de..000000000 --- a/quill/common/src/entities/llama_spit.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for llama spit entities. -/// -/// # Example -/// A system that queries for all llama spits: -/// ```no_run -/// use quill::{Game, Position, entities::LlamaSpit}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &LlamaSpit)>() { -/// println!("Found a llama spit with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct LlamaSpit; - -pod_component_impl!(LlamaSpit); diff --git a/quill/common/src/entities/magma_cube.rs b/quill/common/src/entities/magma_cube.rs deleted file mode 100644 index ab0b18736..000000000 --- a/quill/common/src/entities/magma_cube.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for magma cube entities. -/// -/// # Example -/// A system that queries for all magma cubes: -/// ```no_run -/// use quill::{Game, Position, entities::MagmaCube}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &MagmaCube)>() { -/// println!("Found a magma cube with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct MagmaCube; - -pod_component_impl!(MagmaCube); diff --git a/quill/common/src/entities/minecart.rs b/quill/common/src/entities/minecart.rs deleted file mode 100644 index 25919dfbf..000000000 --- a/quill/common/src/entities/minecart.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for minecart entities. -/// -/// # Example -/// A system that queries for all minecarts: -/// ```no_run -/// use quill::{Game, Position, entities::Minecart}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Minecart)>() { -/// println!("Found a minecart with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Minecart; - -pod_component_impl!(Minecart); diff --git a/quill/common/src/entities/mooshroom.rs b/quill/common/src/entities/mooshroom.rs deleted file mode 100644 index 2f5a6403d..000000000 --- a/quill/common/src/entities/mooshroom.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for mooshroom entities. -/// -/// # Example -/// A system that queries for all mooshrooms: -/// ```no_run -/// use quill::{Game, Position, entities::Mooshroom}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Mooshroom)>() { -/// println!("Found a mooshroom with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Mooshroom; - -pod_component_impl!(Mooshroom); diff --git a/quill/common/src/entities/mule.rs b/quill/common/src/entities/mule.rs deleted file mode 100644 index fcebeabd9..000000000 --- a/quill/common/src/entities/mule.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for mule entities. -/// -/// # Example -/// A system that queries for all mules: -/// ```no_run -/// use quill::{Game, Position, entities::Mule}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Mule)>() { -/// println!("Found a mule with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Mule; - -pod_component_impl!(Mule); diff --git a/quill/common/src/entities/ocelot.rs b/quill/common/src/entities/ocelot.rs deleted file mode 100644 index 31b474209..000000000 --- a/quill/common/src/entities/ocelot.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for ocelot entities. -/// -/// # Example -/// A system that queries for all ocelots: -/// ```no_run -/// use quill::{Game, Position, entities::Ocelot}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Ocelot)>() { -/// println!("Found a ocelot with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Ocelot; - -pod_component_impl!(Ocelot); diff --git a/quill/common/src/entities/painting.rs b/quill/common/src/entities/painting.rs deleted file mode 100644 index e14abff7d..000000000 --- a/quill/common/src/entities/painting.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for painting entities. -/// -/// # Example -/// A system that queries for all paintings: -/// ```no_run -/// use quill::{Game, Position, entities::Painting}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Painting)>() { -/// println!("Found a painting with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Painting; - -pod_component_impl!(Painting); diff --git a/quill/common/src/entities/panda.rs b/quill/common/src/entities/panda.rs deleted file mode 100644 index 8bcd8b544..000000000 --- a/quill/common/src/entities/panda.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for panda entities. -/// -/// # Example -/// A system that queries for all pandas: -/// ```no_run -/// use quill::{Game, Position, entities::Panda}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Panda)>() { -/// println!("Found a panda with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Panda; - -pod_component_impl!(Panda); diff --git a/quill/common/src/entities/parrot.rs b/quill/common/src/entities/parrot.rs deleted file mode 100644 index f06afd167..000000000 --- a/quill/common/src/entities/parrot.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for parrot entities. -/// -/// # Example -/// A system that queries for all parrots: -/// ```no_run -/// use quill::{Game, Position, entities::Parrot}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Parrot)>() { -/// println!("Found a parrot with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Parrot; - -pod_component_impl!(Parrot); diff --git a/quill/common/src/entities/phantom.rs b/quill/common/src/entities/phantom.rs deleted file mode 100644 index c5a839b8e..000000000 --- a/quill/common/src/entities/phantom.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for phantom entities. -/// -/// # Example -/// A system that queries for all phantoms: -/// ```no_run -/// use quill::{Game, Position, entities::Phantom}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Phantom)>() { -/// println!("Found a phantom with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Phantom; - -pod_component_impl!(Phantom); diff --git a/quill/common/src/entities/pig.rs b/quill/common/src/entities/pig.rs deleted file mode 100644 index 753e2f019..000000000 --- a/quill/common/src/entities/pig.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for pig entities. -/// -/// # Example -/// A system that queries for all pigs: -/// ```no_run -/// use quill::{Game, Position, entities::Pig}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Pig)>() { -/// println!("Found a pig with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Pig; - -pod_component_impl!(Pig); diff --git a/quill/common/src/entities/piglin.rs b/quill/common/src/entities/piglin.rs deleted file mode 100644 index 9f5ea2633..000000000 --- a/quill/common/src/entities/piglin.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for piglin entities. -/// -/// # Example -/// A system that queries for all piglins: -/// ```no_run -/// use quill::{Game, Position, entities::Piglin}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Piglin)>() { -/// println!("Found a piglin with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Piglin; - -pod_component_impl!(Piglin); diff --git a/quill/common/src/entities/piglin_brute.rs b/quill/common/src/entities/piglin_brute.rs deleted file mode 100644 index 0c27b5f6f..000000000 --- a/quill/common/src/entities/piglin_brute.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for piglin brute entities. -/// -/// # Example -/// A system that queries for all piglin brutes: -/// ```no_run -/// use quill::{Game, Position, entities::PiglinBrute}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &PiglinBrute)>() { -/// println!("Found a piglin brute with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct PiglinBrute; - -pod_component_impl!(PiglinBrute); diff --git a/quill/common/src/entities/pillager.rs b/quill/common/src/entities/pillager.rs deleted file mode 100644 index 8fb27bf60..000000000 --- a/quill/common/src/entities/pillager.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for pillager entities. -/// -/// # Example -/// A system that queries for all pillagers: -/// ```no_run -/// use quill::{Game, Position, entities::Pillager}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Pillager)>() { -/// println!("Found a pillager with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Pillager; - -pod_component_impl!(Pillager); diff --git a/quill/common/src/entities/player.rs b/quill/common/src/entities/player.rs deleted file mode 100644 index d971ca5d7..000000000 --- a/quill/common/src/entities/player.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for player entities. -/// -/// # Example -/// A system that queries for all players: -/// ```no_run -/// use quill::{Game, Position, entities::Player}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Player)>() { -/// println!("Found a player with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Player; - -pod_component_impl!(Player); diff --git a/quill/common/src/entities/polar_bear.rs b/quill/common/src/entities/polar_bear.rs deleted file mode 100644 index b3f0e45c9..000000000 --- a/quill/common/src/entities/polar_bear.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for polar bear entities. -/// -/// # Example -/// A system that queries for all polar bears: -/// ```no_run -/// use quill::{Game, Position, entities::PolarBear}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &PolarBear)>() { -/// println!("Found a polar bear with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct PolarBear; - -pod_component_impl!(PolarBear); diff --git a/quill/common/src/entities/potion.rs b/quill/common/src/entities/potion.rs deleted file mode 100644 index 77c898d86..000000000 --- a/quill/common/src/entities/potion.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for potion entities. -/// -/// # Example -/// A system that queries for all potions: -/// ```no_run -/// use quill::{Game, Position, entities::Potion}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Potion)>() { -/// println!("Found a potion with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Potion; - -pod_component_impl!(Potion); diff --git a/quill/common/src/entities/pufferfish.rs b/quill/common/src/entities/pufferfish.rs deleted file mode 100644 index d400b1c6d..000000000 --- a/quill/common/src/entities/pufferfish.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for pufferfish entities. -/// -/// # Example -/// A system that queries for all pufferfishs: -/// ```no_run -/// use quill::{Game, Position, entities::Pufferfish}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Pufferfish)>() { -/// println!("Found a pufferfish with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Pufferfish; - -pod_component_impl!(Pufferfish); diff --git a/quill/common/src/entities/rabbit.rs b/quill/common/src/entities/rabbit.rs deleted file mode 100644 index 989fde181..000000000 --- a/quill/common/src/entities/rabbit.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for rabbit entities. -/// -/// # Example -/// A system that queries for all rabbits: -/// ```no_run -/// use quill::{Game, Position, entities::Rabbit}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Rabbit)>() { -/// println!("Found a rabbit with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Rabbit; - -pod_component_impl!(Rabbit); diff --git a/quill/common/src/entities/ravager.rs b/quill/common/src/entities/ravager.rs deleted file mode 100644 index e73a9e98a..000000000 --- a/quill/common/src/entities/ravager.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for ravager entities. -/// -/// # Example -/// A system that queries for all ravagers: -/// ```no_run -/// use quill::{Game, Position, entities::Ravager}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Ravager)>() { -/// println!("Found a ravager with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Ravager; - -pod_component_impl!(Ravager); diff --git a/quill/common/src/entities/salmon.rs b/quill/common/src/entities/salmon.rs deleted file mode 100644 index 996a3b8e5..000000000 --- a/quill/common/src/entities/salmon.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for salmon entities. -/// -/// # Example -/// A system that queries for all salmons: -/// ```no_run -/// use quill::{Game, Position, entities::Salmon}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Salmon)>() { -/// println!("Found a salmon with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Salmon; - -pod_component_impl!(Salmon); diff --git a/quill/common/src/entities/sheep.rs b/quill/common/src/entities/sheep.rs deleted file mode 100644 index cd7202db2..000000000 --- a/quill/common/src/entities/sheep.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for sheep entities. -/// -/// # Example -/// A system that queries for all sheeps: -/// ```no_run -/// use quill::{Game, Position, entities::Sheep}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Sheep)>() { -/// println!("Found a sheep with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Sheep; - -pod_component_impl!(Sheep); diff --git a/quill/common/src/entities/shulker.rs b/quill/common/src/entities/shulker.rs deleted file mode 100644 index f33b15624..000000000 --- a/quill/common/src/entities/shulker.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for shulker entities. -/// -/// # Example -/// A system that queries for all shulkers: -/// ```no_run -/// use quill::{Game, Position, entities::Shulker}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Shulker)>() { -/// println!("Found a shulker with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Shulker; - -pod_component_impl!(Shulker); diff --git a/quill/common/src/entities/shulker_bullet.rs b/quill/common/src/entities/shulker_bullet.rs deleted file mode 100644 index edd923bc4..000000000 --- a/quill/common/src/entities/shulker_bullet.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for shulker bullet entities. -/// -/// # Example -/// A system that queries for all shulker bullets: -/// ```no_run -/// use quill::{Game, Position, entities::ShulkerBullet}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &ShulkerBullet)>() { -/// println!("Found a shulker bullet with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct ShulkerBullet; - -pod_component_impl!(ShulkerBullet); diff --git a/quill/common/src/entities/silverfish.rs b/quill/common/src/entities/silverfish.rs deleted file mode 100644 index 990808a38..000000000 --- a/quill/common/src/entities/silverfish.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for silverfish entities. -/// -/// # Example -/// A system that queries for all silverfishs: -/// ```no_run -/// use quill::{Game, Position, entities::Silverfish}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Silverfish)>() { -/// println!("Found a silverfish with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Silverfish; - -pod_component_impl!(Silverfish); diff --git a/quill/common/src/entities/skeleton.rs b/quill/common/src/entities/skeleton.rs deleted file mode 100644 index 7162a368d..000000000 --- a/quill/common/src/entities/skeleton.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for skeleton entities. -/// -/// # Example -/// A system that queries for all skeletons: -/// ```no_run -/// use quill::{Game, Position, entities::Skeleton}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Skeleton)>() { -/// println!("Found a skeleton with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Skeleton; - -pod_component_impl!(Skeleton); diff --git a/quill/common/src/entities/skeleton_horse.rs b/quill/common/src/entities/skeleton_horse.rs deleted file mode 100644 index 0c14ff853..000000000 --- a/quill/common/src/entities/skeleton_horse.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for skeleton horse entities. -/// -/// # Example -/// A system that queries for all skeleton horses: -/// ```no_run -/// use quill::{Game, Position, entities::SkeletonHorse}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &SkeletonHorse)>() { -/// println!("Found a skeleton horse with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct SkeletonHorse; - -pod_component_impl!(SkeletonHorse); diff --git a/quill/common/src/entities/slime.rs b/quill/common/src/entities/slime.rs deleted file mode 100644 index 756c503b5..000000000 --- a/quill/common/src/entities/slime.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for slime entities. -/// -/// # Example -/// A system that queries for all slimes: -/// ```no_run -/// use quill::{Game, Position, entities::Slime}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Slime)>() { -/// println!("Found a slime with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Slime; - -pod_component_impl!(Slime); diff --git a/quill/common/src/entities/small_fireball.rs b/quill/common/src/entities/small_fireball.rs deleted file mode 100644 index 07d50e0a2..000000000 --- a/quill/common/src/entities/small_fireball.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for small fireball entities. -/// -/// # Example -/// A system that queries for all small fireballs: -/// ```no_run -/// use quill::{Game, Position, entities::SmallFireball}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &SmallFireball)>() { -/// println!("Found a small fireball with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct SmallFireball; - -pod_component_impl!(SmallFireball); diff --git a/quill/common/src/entities/snow_golem.rs b/quill/common/src/entities/snow_golem.rs deleted file mode 100644 index df0491083..000000000 --- a/quill/common/src/entities/snow_golem.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for snow golem entities. -/// -/// # Example -/// A system that queries for all snow golems: -/// ```no_run -/// use quill::{Game, Position, entities::SnowGolem}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &SnowGolem)>() { -/// println!("Found a snow golem with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct SnowGolem; - -pod_component_impl!(SnowGolem); diff --git a/quill/common/src/entities/snowball.rs b/quill/common/src/entities/snowball.rs deleted file mode 100644 index ea823c696..000000000 --- a/quill/common/src/entities/snowball.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for snowball entities. -/// -/// # Example -/// A system that queries for all snowballs: -/// ```no_run -/// use quill::{Game, Position, entities::Snowball}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Snowball)>() { -/// println!("Found a snowball with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Snowball; - -pod_component_impl!(Snowball); diff --git a/quill/common/src/entities/spawner_minecart.rs b/quill/common/src/entities/spawner_minecart.rs deleted file mode 100644 index c5584a9cd..000000000 --- a/quill/common/src/entities/spawner_minecart.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for spawner minecart entities. -/// -/// # Example -/// A system that queries for all spawner minecarts: -/// ```no_run -/// use quill::{Game, Position, entities::SpawnerMinecart}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &SpawnerMinecart)>() { -/// println!("Found a spawner minecart with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct SpawnerMinecart; - -pod_component_impl!(SpawnerMinecart); diff --git a/quill/common/src/entities/spectral_arrow.rs b/quill/common/src/entities/spectral_arrow.rs deleted file mode 100644 index 8a78f908c..000000000 --- a/quill/common/src/entities/spectral_arrow.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for spectral arrow entities. -/// -/// # Example -/// A system that queries for all spectral arrows: -/// ```no_run -/// use quill::{Game, Position, entities::SpectralArrow}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &SpectralArrow)>() { -/// println!("Found a spectral arrow with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct SpectralArrow; - -pod_component_impl!(SpectralArrow); diff --git a/quill/common/src/entities/spider.rs b/quill/common/src/entities/spider.rs deleted file mode 100644 index 85c5fcdc3..000000000 --- a/quill/common/src/entities/spider.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for spider entities. -/// -/// # Example -/// A system that queries for all spiders: -/// ```no_run -/// use quill::{Game, Position, entities::Spider}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Spider)>() { -/// println!("Found a spider with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Spider; - -pod_component_impl!(Spider); diff --git a/quill/common/src/entities/squid.rs b/quill/common/src/entities/squid.rs deleted file mode 100644 index 479364cb9..000000000 --- a/quill/common/src/entities/squid.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for squid entities. -/// -/// # Example -/// A system that queries for all squids: -/// ```no_run -/// use quill::{Game, Position, entities::Squid}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Squid)>() { -/// println!("Found a squid with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Squid; - -pod_component_impl!(Squid); diff --git a/quill/common/src/entities/stray.rs b/quill/common/src/entities/stray.rs deleted file mode 100644 index 92c952bc9..000000000 --- a/quill/common/src/entities/stray.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for stray entities. -/// -/// # Example -/// A system that queries for all strays: -/// ```no_run -/// use quill::{Game, Position, entities::Stray}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Stray)>() { -/// println!("Found a stray with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Stray; - -pod_component_impl!(Stray); diff --git a/quill/common/src/entities/strider.rs b/quill/common/src/entities/strider.rs deleted file mode 100644 index 63194fd1e..000000000 --- a/quill/common/src/entities/strider.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for strider entities. -/// -/// # Example -/// A system that queries for all striders: -/// ```no_run -/// use quill::{Game, Position, entities::Strider}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Strider)>() { -/// println!("Found a strider with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Strider; - -pod_component_impl!(Strider); diff --git a/quill/common/src/entities/tnt.rs b/quill/common/src/entities/tnt.rs deleted file mode 100644 index 6dbd66814..000000000 --- a/quill/common/src/entities/tnt.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for tnt entities. -/// -/// # Example -/// A system that queries for all tnts: -/// ```no_run -/// use quill::{Game, Position, entities::Tnt}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Tnt)>() { -/// println!("Found a tnt with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Tnt; - -pod_component_impl!(Tnt); diff --git a/quill/common/src/entities/tnt_minecart.rs b/quill/common/src/entities/tnt_minecart.rs deleted file mode 100644 index e9b5e4962..000000000 --- a/quill/common/src/entities/tnt_minecart.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for tnt minecart entities. -/// -/// # Example -/// A system that queries for all tnt minecarts: -/// ```no_run -/// use quill::{Game, Position, entities::TntMinecart}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &TntMinecart)>() { -/// println!("Found a tnt minecart with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct TntMinecart; - -pod_component_impl!(TntMinecart); diff --git a/quill/common/src/entities/trader_llama.rs b/quill/common/src/entities/trader_llama.rs deleted file mode 100644 index e8ef11d57..000000000 --- a/quill/common/src/entities/trader_llama.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for trader llama entities. -/// -/// # Example -/// A system that queries for all trader llamas: -/// ```no_run -/// use quill::{Game, Position, entities::TraderLlama}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &TraderLlama)>() { -/// println!("Found a trader llama with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct TraderLlama; - -pod_component_impl!(TraderLlama); diff --git a/quill/common/src/entities/trident.rs b/quill/common/src/entities/trident.rs deleted file mode 100644 index 41612484b..000000000 --- a/quill/common/src/entities/trident.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for trident entities. -/// -/// # Example -/// A system that queries for all tridents: -/// ```no_run -/// use quill::{Game, Position, entities::Trident}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Trident)>() { -/// println!("Found a trident with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Trident; - -pod_component_impl!(Trident); diff --git a/quill/common/src/entities/tropical_fish.rs b/quill/common/src/entities/tropical_fish.rs deleted file mode 100644 index 2d6b02c25..000000000 --- a/quill/common/src/entities/tropical_fish.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for tropical fish entities. -/// -/// # Example -/// A system that queries for all tropical fishs: -/// ```no_run -/// use quill::{Game, Position, entities::TropicalFish}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &TropicalFish)>() { -/// println!("Found a tropical fish with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct TropicalFish; - -pod_component_impl!(TropicalFish); diff --git a/quill/common/src/entities/turtle.rs b/quill/common/src/entities/turtle.rs deleted file mode 100644 index efe77937b..000000000 --- a/quill/common/src/entities/turtle.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for turtle entities. -/// -/// # Example -/// A system that queries for all turtles: -/// ```no_run -/// use quill::{Game, Position, entities::Turtle}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Turtle)>() { -/// println!("Found a turtle with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Turtle; - -pod_component_impl!(Turtle); diff --git a/quill/common/src/entities/vex.rs b/quill/common/src/entities/vex.rs deleted file mode 100644 index e165bd310..000000000 --- a/quill/common/src/entities/vex.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for vex entities. -/// -/// # Example -/// A system that queries for all vexs: -/// ```no_run -/// use quill::{Game, Position, entities::Vex}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Vex)>() { -/// println!("Found a vex with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Vex; - -pod_component_impl!(Vex); diff --git a/quill/common/src/entities/villager.rs b/quill/common/src/entities/villager.rs deleted file mode 100644 index e42e253a4..000000000 --- a/quill/common/src/entities/villager.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for villager entities. -/// -/// # Example -/// A system that queries for all villagers: -/// ```no_run -/// use quill::{Game, Position, entities::Villager}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Villager)>() { -/// println!("Found a villager with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Villager; - -pod_component_impl!(Villager); diff --git a/quill/common/src/entities/vindicator.rs b/quill/common/src/entities/vindicator.rs deleted file mode 100644 index 9eb5e0092..000000000 --- a/quill/common/src/entities/vindicator.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for vindicator entities. -/// -/// # Example -/// A system that queries for all vindicators: -/// ```no_run -/// use quill::{Game, Position, entities::Vindicator}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Vindicator)>() { -/// println!("Found a vindicator with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Vindicator; - -pod_component_impl!(Vindicator); diff --git a/quill/common/src/entities/wandering_trader.rs b/quill/common/src/entities/wandering_trader.rs deleted file mode 100644 index a8f0c9b7a..000000000 --- a/quill/common/src/entities/wandering_trader.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for wandering trader entities. -/// -/// # Example -/// A system that queries for all wandering traders: -/// ```no_run -/// use quill::{Game, Position, entities::WanderingTrader}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &WanderingTrader)>() { -/// println!("Found a wandering trader with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct WanderingTrader; - -pod_component_impl!(WanderingTrader); diff --git a/quill/common/src/entities/witch.rs b/quill/common/src/entities/witch.rs deleted file mode 100644 index fcb261562..000000000 --- a/quill/common/src/entities/witch.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for witch entities. -/// -/// # Example -/// A system that queries for all witchs: -/// ```no_run -/// use quill::{Game, Position, entities::Witch}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Witch)>() { -/// println!("Found a witch with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Witch; - -pod_component_impl!(Witch); diff --git a/quill/common/src/entities/wither.rs b/quill/common/src/entities/wither.rs deleted file mode 100644 index 1e0a0a765..000000000 --- a/quill/common/src/entities/wither.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for wither entities. -/// -/// # Example -/// A system that queries for all withers: -/// ```no_run -/// use quill::{Game, Position, entities::Wither}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Wither)>() { -/// println!("Found a wither with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Wither; - -pod_component_impl!(Wither); diff --git a/quill/common/src/entities/wither_skeleton.rs b/quill/common/src/entities/wither_skeleton.rs deleted file mode 100644 index baaff5de5..000000000 --- a/quill/common/src/entities/wither_skeleton.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for wither skeleton entities. -/// -/// # Example -/// A system that queries for all wither skeletons: -/// ```no_run -/// use quill::{Game, Position, entities::WitherSkeleton}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &WitherSkeleton)>() { -/// println!("Found a wither skeleton with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct WitherSkeleton; - -pod_component_impl!(WitherSkeleton); diff --git a/quill/common/src/entities/wither_skull.rs b/quill/common/src/entities/wither_skull.rs deleted file mode 100644 index 641a0a729..000000000 --- a/quill/common/src/entities/wither_skull.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for wither skull entities. -/// -/// # Example -/// A system that queries for all wither skulls: -/// ```no_run -/// use quill::{Game, Position, entities::WitherSkull}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &WitherSkull)>() { -/// println!("Found a wither skull with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct WitherSkull; - -pod_component_impl!(WitherSkull); diff --git a/quill/common/src/entities/wolf.rs b/quill/common/src/entities/wolf.rs deleted file mode 100644 index 4376907d6..000000000 --- a/quill/common/src/entities/wolf.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for wolf entities. -/// -/// # Example -/// A system that queries for all wolfs: -/// ```no_run -/// use quill::{Game, Position, entities::Wolf}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Wolf)>() { -/// println!("Found a wolf with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Wolf; - -pod_component_impl!(Wolf); diff --git a/quill/common/src/entities/zoglin.rs b/quill/common/src/entities/zoglin.rs deleted file mode 100644 index 8793439a2..000000000 --- a/quill/common/src/entities/zoglin.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for zoglin entities. -/// -/// # Example -/// A system that queries for all zoglins: -/// ```no_run -/// use quill::{Game, Position, entities::Zoglin}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Zoglin)>() { -/// println!("Found a zoglin with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Zoglin; - -pod_component_impl!(Zoglin); diff --git a/quill/common/src/entities/zombie.rs b/quill/common/src/entities/zombie.rs deleted file mode 100644 index 3532a6362..000000000 --- a/quill/common/src/entities/zombie.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for zombie entities. -/// -/// # Example -/// A system that queries for all zombies: -/// ```no_run -/// use quill::{Game, Position, entities::Zombie}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &Zombie)>() { -/// println!("Found a zombie with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct Zombie; - -pod_component_impl!(Zombie); diff --git a/quill/common/src/entities/zombie_horse.rs b/quill/common/src/entities/zombie_horse.rs deleted file mode 100644 index dc08fb6f7..000000000 --- a/quill/common/src/entities/zombie_horse.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for zombie horse entities. -/// -/// # Example -/// A system that queries for all zombie horses: -/// ```no_run -/// use quill::{Game, Position, entities::ZombieHorse}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &ZombieHorse)>() { -/// println!("Found a zombie horse with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct ZombieHorse; - -pod_component_impl!(ZombieHorse); diff --git a/quill/common/src/entities/zombie_villager.rs b/quill/common/src/entities/zombie_villager.rs deleted file mode 100644 index b86ab2d97..000000000 --- a/quill/common/src/entities/zombie_villager.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for zombie villager entities. -/// -/// # Example -/// A system that queries for all zombie villagers: -/// ```no_run -/// use quill::{Game, Position, entities::ZombieVillager}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &ZombieVillager)>() { -/// println!("Found a zombie villager with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct ZombieVillager; - -pod_component_impl!(ZombieVillager); diff --git a/quill/common/src/entities/zombified_piglin.rs b/quill/common/src/entities/zombified_piglin.rs deleted file mode 100644 index 057fbbc25..000000000 --- a/quill/common/src/entities/zombified_piglin.rs +++ /dev/null @@ -1,19 +0,0 @@ -use bytemuck::{Pod, Zeroable}; -/// Marker component for zombified piglin entities. -/// -/// # Example -/// A system that queries for all zombified piglins: -/// ```no_run -/// use quill::{Game, Position, entities::ZombifiedPiglin}; -/// # struct MyPlugin; -/// fn print_entities_system(_plugin: &mut MyPlugin, game: &mut Game) { -/// for (entity, (position, _)) in game.query::<(&Position, &ZombifiedPiglin)>() { -/// println!("Found a zombified piglin with position {:?}", position); -/// } -/// } -/// ``` -#[derive(Debug, Copy, Clone, Zeroable, Pod)] -#[repr(C)] -pub struct ZombifiedPiglin; - -pod_component_impl!(ZombifiedPiglin); diff --git a/quill/common/src/entity_init.rs b/quill/common/src/entity_init.rs deleted file mode 100644 index 741659615..000000000 --- a/quill/common/src/entity_init.rs +++ /dev/null @@ -1,330 +0,0 @@ -use serde::{Deserialize, Serialize}; - -/// Initial state of an entity passed -/// to `Game::create_entity_builder`. -#[derive(Debug, Serialize, Deserialize)] -pub enum EntityInit { - /// Spawn an area effect cloud. - AreaEffectCloud, - - /// Spawn an armor stand. - ArmorStand, - - /// Spawn an arrow. - Arrow, - - /// Spawn a bat. - Bat, - - /// Spawn a bee. - Bee, - - /// Spawn a blaze. - Blaze, - - /// Spawn a boat. - Boat, - - /// Spawn a cat. - Cat, - - /// Spawn a cave spider. - CaveSpider, - - /// Spawn a chicken. - Chicken, - - /// Spawn a cod. - Cod, - - /// Spawn a cow. - Cow, - - /// Spawn a creeper. - Creeper, - - /// Spawn a dolphin. - Dolphin, - - /// Spawn a donkey. - Donkey, - - /// Spawn a dragon fireball. - DragonFireball, - - /// Spawn a drowned. - Drowned, - - /// Spawn an elder guardian. - ElderGuardian, - - /// Spawn an end crystal. - EndCrystal, - - /// Spawn an ender dragon. - EnderDragon, - - /// Spawn an enderman. - Enderman, - - /// Spawn an endermite. - Endermite, - - /// Spawn an evoker. - Evoker, - - /// Spawn an evoker fangs. - EvokerFangs, - - /// Spawn an experience orb. - ExperienceOrb, - - /// Spawn an eye of ender. - EyeOfEnder, - - /// Spawn a falling block. - FallingBlock, - - /// Spawn a firework rocket. - FireworkRocket, - - /// Spawn a fox. - Fox, - - /// Spawn a ghast. - Ghast, - - /// Spawn a giant. - Giant, - - /// Spawn a guardian. - Guardian, - - /// Spawn a hoglin. - Hoglin, - - /// Spawn a horse. - Horse, - - /// Spawn a husk. - Husk, - - /// Spawn an illusioner. - Illusioner, - - /// Spawn an iron golem. - IronGolem, - - /// Spawn an item. - Item, - - /// Spawn an item frame. - ItemFrame, - - /// Spawn a fireball. - Fireball, - - /// Spawn a leash knot. - LeashKnot, - - /// Spawn a lightning bolt. - LightningBolt, - - /// Spawn a llama. - Llama, - - /// Spawn a llama spit. - LlamaSpit, - - /// Spawn a magma cube. - MagmaCube, - - /// Spawn a minecart. - Minecart, - - /// Spawn a chest minecart. - ChestMinecart, - - /// Spawn a command block minecart. - CommandBlockMinecart, - - /// Spawn a furnace minecart. - FurnaceMinecart, - - /// Spawn a hopper minecart. - HopperMinecart, - - /// Spawn a spawner minecart. - SpawnerMinecart, - - /// Spawn a tnt minecart. - TntMinecart, - - /// Spawn a mule. - Mule, - - /// Spawn a mooshroom. - Mooshroom, - - /// Spawn an ocelot. - Ocelot, - - /// Spawn a painting. - Painting, - - /// Spawn a panda. - Panda, - - /// Spawn a parrot. - Parrot, - - /// Spawn a phantom. - Phantom, - - /// Spawn a pig. - Pig, - - /// Spawn a piglin. - Piglin, - - /// Spawn a piglin brute. - PiglinBrute, - - /// Spawn a pillager. - Pillager, - - /// Spawn a polar bear. - PolarBear, - - /// Spawn a tnt. - Tnt, - - /// Spawn a pufferfish. - Pufferfish, - - /// Spawn a rabbit. - Rabbit, - - /// Spawn a ravager. - Ravager, - - /// Spawn a salmon. - Salmon, - - /// Spawn a sheep. - Sheep, - - /// Spawn a shulker. - Shulker, - - /// Spawn a shulker bullet. - ShulkerBullet, - - /// Spawn a silverfish. - Silverfish, - - /// Spawn a skeleton. - Skeleton, - - /// Spawn a skeleton horse. - SkeletonHorse, - - /// Spawn a slime. - Slime, - - /// Spawn a small fireball. - SmallFireball, - - /// Spawn a snow golem. - SnowGolem, - - /// Spawn a snowball. - Snowball, - - /// Spawn a spectral arrow. - SpectralArrow, - - /// Spawn a spider. - Spider, - - /// Spawn a squid. - Squid, - - /// Spawn a stray. - Stray, - - /// Spawn a strider. - Strider, - - /// Spawn an egg. - Egg, - - /// Spawn an ender pearl. - EnderPearl, - - /// Spawn an experience bottle. - ExperienceBottle, - - /// Spawn a potion. - Potion, - - /// Spawn a trident. - Trident, - - /// Spawn a trader llama. - TraderLlama, - - /// Spawn a tropical fish. - TropicalFish, - - /// Spawn a turtle. - Turtle, - - /// Spawn a vex. - Vex, - - /// Spawn a villager. - Villager, - - /// Spawn a vindicator. - Vindicator, - - /// Spawn a wandering trader. - WanderingTrader, - - /// Spawn a witch. - Witch, - - /// Spawn a wither. - Wither, - - /// Spawn a wither skeleton. - WitherSkeleton, - - /// Spawn a wither skull. - WitherSkull, - - /// Spawn a wolf. - Wolf, - - /// Spawn a zoglin. - Zoglin, - - /// Spawn a zombie. - Zombie, - - /// Spawn a zombie horse. - ZombieHorse, - - /// Spawn a zombie villager. - ZombieVillager, - - /// Spawn a zombified piglin. - ZombifiedPiglin, - - /// Spawn a player. - Player, - - /// Spawn a fishing bobber. - FishingBobber, -} diff --git a/quill/common/src/lib.rs b/quill/common/src/lib.rs index 53d8a262b..6403add96 100644 --- a/quill/common/src/lib.rs +++ b/quill/common/src/lib.rs @@ -2,11 +2,9 @@ mod utils; #[macro_use] pub mod component; -pub mod block; pub mod components; pub mod entities; pub mod entity; -pub mod entity_init; pub mod events; use std::marker::PhantomData; diff --git a/quill/example-plugins/block-access/src/lib.rs b/quill/example-plugins/block-access/src/lib.rs index 33f3ad798..20a8cc179 100644 --- a/quill/example-plugins/block-access/src/lib.rs +++ b/quill/example-plugins/block-access/src/lib.rs @@ -1,6 +1,7 @@ //! A plugin to demonstrate getting and setting blocks in the world. -use quill::{entities::Player, BlockState, Game, Plugin, Position}; +use quill::components::{EntityDimension, EntityWorld}; +use quill::{entities::Player, Game, Plugin, Position}; quill::plugin!(BlockAccess); @@ -18,10 +19,9 @@ impl Plugin for BlockAccess { fn system(_plugin: &mut BlockAccess, game: &mut Game) { // Set the blocks each player is standing on // to bedrock. - for (_entity, (_, pos)) in game.query::<(&Player, &Position)>() { - let block_pos = pos.block(); - - game.set_block(block_pos, BlockState::from_id(33).unwrap()) - .ok(); + for (_entity, (_, _pos, _world, _dimension)) in + game.query::<(&Player, &Position, &EntityWorld, &EntityDimension)>() + { + todo!() } } diff --git a/quill/example-plugins/query-entities/src/lib.rs b/quill/example-plugins/query-entities/src/lib.rs index 9ea8247b1..4576a523a 100644 --- a/quill/example-plugins/query-entities/src/lib.rs +++ b/quill/example-plugins/query-entities/src/lib.rs @@ -1,7 +1,7 @@ //! An example plugin that spawns 10,000 entities //! on startup, then moves them each tick using a query. -use quill::{entities::PiglinBrute, EntityInit, Game, Plugin, Position}; +use quill::{entities::PiglinBrute, EntityKind, Game, Plugin, Position}; use rand::Rng; quill::plugin!(QueryEntities); @@ -22,7 +22,7 @@ impl Plugin for QueryEntities { pitch: rand::thread_rng().gen_range(30.0..330.0), yaw: rand::thread_rng().gen_range(0.0..360.0), }; - game.create_entity_builder(pos, EntityInit::PiglinBrute) + game.create_entity_builder(pos, EntityKind::PiglinBrute) .finish(); } } diff --git a/quill/example-plugins/simple/src/lib.rs b/quill/example-plugins/simple/src/lib.rs index d3d006137..6c90e6822 100644 --- a/quill/example-plugins/simple/src/lib.rs +++ b/quill/example-plugins/simple/src/lib.rs @@ -1,7 +1,7 @@ use quill::{ components::{CustomName, Name}, entities::Cow, - EntityInit, Game, Gamemode, Plugin, Position, Setup, Uuid, + EntityKind, Game, Gamemode, Plugin, Position, Setup, Uuid, }; use rand::Rng; @@ -47,14 +47,14 @@ fn test_system(plugin: &mut SimplePlugin, game: &mut Game) { plugin.tick_counter += 1; } -fn random_mob() -> EntityInit { +fn random_mob() -> EntityKind { let mut entities = vec![ - EntityInit::Zombie, - EntityInit::Piglin, - EntityInit::Zoglin, - EntityInit::Skeleton, - EntityInit::Enderman, - EntityInit::Cow, + EntityKind::Zombie, + EntityKind::Piglin, + EntityKind::Zoglin, + EntityKind::Skeleton, + EntityKind::Enderman, + EntityKind::Cow, ]; let index = rand::thread_rng().gen_range(0..entities.len()); entities.remove(index) diff --git a/quill/sys/src/lib.rs b/quill/sys/src/lib.rs index 14e6e6176..914bcffd3 100644 --- a/quill/sys/src/lib.rs +++ b/quill/sys/src/lib.rs @@ -20,9 +20,7 @@ use std::mem::MaybeUninit; -use quill_common::{ - block::BlockGetResult, entity::QueryData, EntityId, HostComponent, Pointer, PointerMut, -}; +use quill_common::{entity::QueryData, EntityId, HostComponent, Pointer, PointerMut}; // The attribute macro transforms the block into either: // 1. On WASM, an extern "C" block defining functions imported from the host. @@ -137,33 +135,6 @@ extern "C" { /// Reusing it is undefined behavior. pub fn entity_builder_finish(builder: u32) -> EntityId; - /// Gets the block at the given position. - /// - /// Returns `None` if the block's chunk is unloaded - /// or if the Y coordinate is out of bounds. - pub fn block_get(x: i32, y: i32, z: i32) -> BlockGetResult; - - /// Sets the block at the given position. - /// - /// Returns `true` if successful and `false` - /// if the block's chunk is not loaded or - /// the Y coordinate is out of bounds. - /// - /// `block` is the vanilla ID of the block. - pub fn block_set(x: i32, y: i32, z: i32, block: u16) -> bool; - - /// Fills the given chunk section with `block`. - /// - /// Replaces all existing blocks in the section. - /// - /// This is an optimized bulk operation that will be significantly - /// faster than calling [`block_set`] on each block in the chunk section. - /// - /// Returns `true` if successful and `false` if the - /// block's chunk is not loaded or the section index is out of bounds. - pub fn block_fill_chunk_section(chunk_x: i32, section_y: u32, chunk_z: i32, block: u16) - -> bool; - /// Sends a custom packet to an entity. /// /// Does nothing if the entity does not have the `ClientId` component. From a4834df0ce2f769f92eeba966ac697c2876f1569 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Mon, 10 Jan 2022 18:29:36 +0200 Subject: [PATCH 02/22] Remove hardcoded .nbt files --- assets/dimension.nbt | Bin 262 -> 0 bytes assets/dimension_codec.nbt | Bin 29454 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 assets/dimension.nbt delete mode 100644 assets/dimension_codec.nbt diff --git a/assets/dimension.nbt b/assets/dimension.nbt deleted file mode 100644 index 4e323833475a9370392f1e94b9f6eab578426f18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmYL^OAf*?3`AX|ia$bvH3wnCQ6e{WT8q>{PD;g&qmvW~yc=8Nd9wkiVBJt_rl9v& zWzl0airf~leQ@VlOhiYpfP)VmTlA(U?)p>}@92}_ggRugE8cj2`T4qn4U1#pW>kU8 zz(Q8hrR#rd!jm*7`?iLo4MAHLOk`pXq1(H_E%Rbj^qJ%uESoKIdUmS^xk5 diff --git a/assets/dimension_codec.nbt b/assets/dimension_codec.nbt deleted file mode 100644 index 59c3fcd573404cc628950978e49564bf30c8d5e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29454 zcmc(oOOPa2b%wKNx@UTNG)SNqk^lkX{TMI}5yqCf2MFv9gxRqoDzdAxx|6A@tf;K+ zR)YyzV6$T3jl&^>6+%44W5Lo3Bdr|a2(dH)1Pd=5Y#iYTSg;l6-g6)4oO@4ZRci#R z>7K62y!Si*dE7_d+$oBk;`P&dRt*>Bc==bS&0;b-tY#lLsGDiEU2HDT=9T_|YsJ<{ zIXSL&ilX?to#JXWsixIzX?_}ytKqWUDR!n!Ga9tb@ocnF+QS8#jl8 zVKZqK#f!gu8GdhXpSj<^_#OED?$dHvEe7#ZTU)!Ai|hEm_`Us;|1GwP?NM_&8<&&G zKD1*CZagd})e|qh^z-dvdkEJ!Y!+w5Rx_;18T@rr&6h_noEOD*abv!yhV{H&mdm=C z6`PB)hEH5yR?~U4D3`~J%3KjXxH&7QRdILhioMuIaj71~Ki?DoJfFaoTKo5n9Nn}V zT6a4jJ^B5YnU#bEn05Nhp;*}Bw7~W(T88FRFa12ghMzT@!8&`wB3F=77T~CAtA&*# z3X@v$3jWcX(zGnS_pF&!+?2QAb5Y-^1sKadUV^oPkD0(IJ}P|nQ&r*I@6{tq^za$GxiEhfxOQ`l6^j!5Q}{2xt9U2CA!IQS^Z-;$pws+HN{%g*L=}ig-Lf5 zJ^P-bu^=L2avDGFuT&HJySuy8#8<}6qH32RB$AjX{z8H!DDbefV7Dk(dY?Uzl9$y= zI^2h*M)FKQ0$m?z1ue5yhI3v|GCMJ!|I)W#X5=Z@Eepx%?@GiJ`zU=TlQAB9?7{8g zzQaY?wwOo<(`HnU>uLc>@wA-Ig(sF@95HgMpjeYGkh?K%CUtpOx!nHw`9~QQNMphD zKNET!kH=|f&tz%%8iQ#&>m!|U-5^*ZOZy>o_^S~(PZ}mlYAwJz13o~~3d6}HbU_&k z+<@}}!n5U6l2%+L1ns9Gz;-ys^sPmG0`l>>h2Z0VcrYfNS+zWZy6v=Vmlf7P+Zx_m z;%-;)yFL;a%Xus2qXMS+P-4L4h%uPQ>~3!h^+WNvQ*2F-+j@AZxCZUV+V$rDnBU4L z@wd;t7!3Ee*hTxLo7hzRuMVt`I1j&TVrhM=2t;ygK7pb%#T_&=mnYipFMvzXMQrsVf_moQHC#qjenuh%e~?P&gHE)i)lYp>OPrN4rT(tT$2FMrF7 z{NfnTjs#g2{per*SIC+OEV#R)MMiWaaM>YR8oS$Ba|%h4jPYWUyfR)iU#Mn*GBG~> zWneGb@pl^(DSaAbW5S>+#t6&P4!2VZh`5afn9B*wx{ATplsVG~ST|!QW}7^H)admb zMPr<^!4jq%7FaOem9jMBy{O@o4Qmv{cqz9#!G(cXP4zO#rUs{?xLgm<^7MQ@d;)47 z1cBkQBZv22Y>$lU_I^7ar;Ve;b83^6`|ZN)&?m$$;EJ|ECO%p|6r&|7ER2h7)VyK! zq-7mbZc@{1Lq0!RG|e<3xp-HUwx^OJ9)J1+WmwnG97M>n4b<0OPfP-!Evlz;U};Ic zCPUQY7{EAVGHUUIcl!^%DWc~e9JEI;l%(#Rwk!q{XhGHnzEXq+@}Lmw3X7{V!`L8^ z6E(A|u!&;1wS*jJa~_9EH}!WTJxBf?50q5k2UR&dq69I)=+_d~=T?@}b6er^7n;Qp zxR?W9kR4-9xy9-L>z**p>=BgQ=c{xHP+s*7WvHz}s!LV;N06W zUcofzbirpC5hyU7DnR>;BIM0%q#J`Jwvd9;1ZCtzYfCT<3h;q|k$AnsXk=;w=z~-jqz7 zDKcZt?dzM+oG!Ci*TbZCkl71%%!(Gz%n?zG<350(wfka*8CBKXP4HN)Jro(zNYTZK zXa|-P^IEwRF3Q-Z>|}^mwBmz|$s`ofX1aJT<|0kL2?&Y1wo90z#gQF4^}~@Ny#tOd zJXKSe@}Y^D+=!f4A;yTTuQp;hbwW*+U&1Y(`0Ou?9&J80LogELFrmvr-b_VgA=*hW zJNiP1kNC_(O3Q=VY{bDe*T|UMbN`{ZP;Xo!9|j_1mPx+wU7ktS1iDH@P+eS#S7Hy4 zaYcwERHVU`WH7{upf^NsrvPP|PA@^l>(;yEe;~l37~g>Zypf8Ir4krLdB--o>tdlTR$m{Li`!1zon(~W^#K!%7(Y&? zYYPP%&}0OX_c$LSjCyn4Pr8nz-{ifY##x*vH~T6yJG=lvHEn^3IjThVL}h}sATn&DEA&nOn+8!Cj0yQrdCp-Lmft}@Kz zo4kR&`=!OV5rsg8B74+}?2#BD-C~RpSu*Ypx6ti@RfSA?e0a_nGKB~j3bH;OsYynX zB?kX{GtnZWHjs{q#%qU$JzEjkvhmFx<--x>VO_#T0N5N?4N#T-GjG;ElO`n`@1$16 z(SMw4NmXH}=X$_G7;}Iw<;eknuobgopM?~|>V}I005Fsr?Ysp={8mqukatsXe!_!o zgk<&uA?LaI7-1HhBO+b7N{!@i9t@PIF=w4`uYrRit7>X7>7eL+`(6e-0y^eE+G?JShP) zh>R}KqR0lYhiX}s$2O$C4gLG=UX!njQS+c2P0HDb`E`hD#$dkDI4wY3{ucZ--*j(( zIl|bSR;?|#{ECUGx0bxf`8 zw;SpaWz`a)&s~MrC|;q|NNetar201P4+!ZSts zqsaO_RJ5c5Np`?8_w8%cYF%SAG6mF1yh%_66M@L&z!2x0qd-Je)-48?x!&ugNTx~* z%Y)MF#AY=@m(p_DjQLH>7)-Xfo)u zn`ae}cHeK(&&@~W6Q7^>@Be4O8LB&@cU~~FWu|iyAIZwmX}OrXm7_?Hst6aIy1Gs> zVE*CP%?BikPyXch4295E9}GrL5n_zM8H@WoXr84_rILEMT|~E;f~G#hhcC?XkayWP#u1N|oAB(2F=deB6z@O@NxA0- zd|lqz*IPzPp_zy%N65~TbcH77c>$yJS`q&KLfMhon@G}A6yOOP21@BH19B&%L%?)C zk3&_KDnxTe>CD0<17|YMv2vwP`q)JCp)6@eOwdpOuBEud*?L00x`{oLn|-9p467(# zw+|%N|jnJe^}Rfq!&%YqjeE~aWSZ_ysl#*^k0o}|TdGA`NEMxG)p8LeC%4Kheql1 zPNtkwx6WyG<%p|TqR)U_YJsU+?h*mdy1BHEBmOVB(bLi_647n76lRj*@`~oZZZ_{K zlwr$iN}2KNgCXK2Q?bHV&F{R-5E_q?h3d6`X?~$X=<3Kz8R5HE;%iw ziX$5BrzhwrKp3<>;K?j8;LudSn6W_MH+iFIP5JF}#r|C;-6N=f%Yphc$wMm*#4hI; zCNq_5s&(i#b52_$M{MA|8e1ICWBiS-pMe~7NvBBS&TO|S6oEhEWALMK_K$8L&D5*Z z71Fk{D&T2Z1-xMG9=dDFS?Un1I)lk@X8Bh`+MV8}ZXsrw-#z*opwoet-9FmR7spUQ z+4?`qJ5U6R)4IY6AVytnK#+ph(_9zDKIdnVLWw32UYX(Slop9v_7Uh+Vx5ly&yott zM+u|*D3z`*DXmY3?$*Z$YzSZx2B_Gc_l|D6_2e>O&)B0qUP*@+4igFKO4 z3}Ai>X#h%+QhQV`;izahYQgQu#hmnQr`7Lxl|L43kbK4O#)}4^G9=cvJ7`ylLJa#W z(V!yhOt=I%G7ivvHTz$S=l$$|WB0==;1*TJIh8b-l&Ti?qzk{-E<)trzXf0So?@oH zl;njsiMCJn-L8V4jXYQ0WeX8U>`r86R7}wqMOerYQZOMRXEZ0?@4A1#7nxFF=1EA$ zV|@_!XKm~2h|+(MB2QPj4a_N8X`(Lww;IT*36mg{h#e_l?eL|3fIp^6uwg~)5Bo6$2 z@bHn?3I7KaJgqd?e37kzV#IKB8>u3&x(y~WCxcKE5o6dhMe^tnW%^M3+}7xNsg(YC$u$8}EYqhje3u zMWU7flI&n%Al-=9mlI^V2Htfsf#L)9n!;-}Ce;}d|6!K6$!z9C&Xy*fv&TjIv!&(D`9amWARI>=WOL zasDWZlO{2D1b5WePN4|EJ@z96K!T9JYdeRN9?gCPa%c>*v7&=u6*6}6TJ_h)>A;(L z!*l7SgUJpdkOD!uWtR+A^uhjq;Su2Rkn+s2(4H(a%A=UU`AHZL)u!>G7iR0{YwlqY`o z>;FrElGpv59@WcgP-5OqO4pC?eOzW^M&W1xZyUI1h|ZYeplr*@(!54tS+>~-y^2Bk zRqn(q5%?8@w88$-_v6bTf|HOQG8bo;6Z_u;l@~Bks02pZVGW1Y7&d#zt{u6tCr0~lb9TDb1@d3`tm zjBPotU?lgNNpo1kd)Wp@mHEO3^na(Gjq6!`aJ-lmWLZA`?||I=E^}?DB<<}swu*a( zO|ux)(0JHVV&3;=CSKvL=3~PO3e?$QWSr{{BgL;SdO~o$@_q!|IfT6?U{F;Es@<;yI27%YlE0t!nWs{jB1 From 4305587187a4a3232a52ba66281752fd70d19751 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Mon, 10 Jan 2022 18:31:44 +0200 Subject: [PATCH 03/22] Fix a typo --- data_generators/src/utils.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data_generators/src/utils.rs b/data_generators/src/utils.rs index 6efbdbbd1..43b84b638 100644 --- a/data_generators/src/utils.rs +++ b/data_generators/src/utils.rs @@ -43,7 +43,7 @@ where /// Writes the contents to a file in provided path, then runs rustfmt. /// /// Parameters: -/// path: Path to destination file, relative to leather root +/// path: Path to destination file, relative to feather root /// content: Contents to be written in the file pub fn output(file: &str, content: &str) { let path = std::env::current_dir().unwrap().join(file); From dea64860d110d18ca1723fd3675eec1c2787aa57 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Mon, 10 Jan 2022 18:52:49 +0200 Subject: [PATCH 04/22] Fix dimensions in Server::broadcast_with --- feather/server/src/chunk_subscriptions.rs | 42 +++++++++++++--- feather/server/src/lib.rs | 47 +++++++++++++---- feather/server/src/packet_handlers.rs | 12 +++-- feather/server/src/systems/block.rs | 11 ++-- feather/server/src/systems/entity.rs | 36 +++++++++---- .../server/src/systems/entity/spawn_packet.rs | 50 +++++++++++++++---- feather/server/src/systems/particle.rs | 9 +++- quill/common/src/components.rs | 12 ++++- 8 files changed, 167 insertions(+), 52 deletions(-) diff --git a/feather/server/src/chunk_subscriptions.rs b/feather/server/src/chunk_subscriptions.rs index 426f24c8f..c447ee68f 100644 --- a/feather/server/src/chunk_subscriptions.rs +++ b/feather/server/src/chunk_subscriptions.rs @@ -6,19 +6,23 @@ use common::{ Game, }; use ecs::{SysResult, SystemExecutor}; +use quill_common::components::{EntityDimension, EntityWorld}; use utils::vec_remove_item; use crate::{ClientId, Server}; +#[derive(Eq, PartialEq, Hash)] +pub struct DimensionChunkPosition(pub EntityWorld, pub EntityDimension, pub ChunkPosition); + /// Data structure to query which clients should /// receive updates from a given chunk, fast. #[derive(Default)] pub struct ChunkSubscriptions { - chunks: AHashMap>, + chunks: AHashMap>, } impl ChunkSubscriptions { - pub fn subscriptions_for(&self, chunk: ChunkPosition) -> &[ClientId] { + pub fn subscriptions_for(&self, chunk: DimensionChunkPosition) -> &[ClientId] { self.chunks .get(&chunk) .map(Vec::as_slice) @@ -39,30 +43,52 @@ fn update_chunk_subscriptions(game: &mut Game, server: &mut Server) -> SysResult server .chunk_subscriptions .chunks - .entry(new_chunk) + .entry(DimensionChunkPosition( + event.new_view.world(), + event.new_view.dimension().clone(), + new_chunk, + )) .or_default() .push(client_id); } for old_chunk in event.old_view.difference(&event.new_view) { - remove_subscription(server, old_chunk, client_id); + remove_subscription( + server, + DimensionChunkPosition( + event.old_view.world(), + event.old_view.dimension().clone(), + old_chunk, + ), + client_id, + ); } } // Update players that have left - for (_, (_event, &client_id, view)) in game + for (_, (_event, &client_id, view, &world, dimension)) in game .ecs - .query::<(&EntityRemoveEvent, &ClientId, &View)>() + .query::<( + &EntityRemoveEvent, + &ClientId, + &View, + &EntityWorld, + &EntityDimension, + )>() .iter() { for chunk in view.iter() { - remove_subscription(server, chunk, client_id); + remove_subscription( + server, + DimensionChunkPosition(world, dimension.clone(), chunk), + client_id, + ); } } Ok(()) } -fn remove_subscription(server: &mut Server, chunk: ChunkPosition, client_id: ClientId) { +fn remove_subscription(server: &mut Server, chunk: DimensionChunkPosition, client_id: ClientId) { if let Some(vec) = server.chunk_subscriptions.chunks.get_mut(&chunk) { vec_remove_item(vec, &client_id); diff --git a/feather/server/src/lib.rs b/feather/server/src/lib.rs index a294ddf91..fcf031f4b 100644 --- a/feather/server/src/lib.rs +++ b/feather/server/src/lib.rs @@ -2,13 +2,22 @@ use std::{sync::Arc, time::Instant}; -use base::Position; +use flume::Receiver; + use chunk_subscriptions::ChunkSubscriptions; +pub use client::{Client, ClientId, Clients}; use common::Game; use ecs::SystemExecutor; -use flume::Receiver; use initial_handler::NewPlayer; +use libcraft_core::Position; use listener::Listener; +pub use network_id_registry::NetworkId; +pub use options::Options; +use player_count::PlayerCount; +use quill_common::components::{EntityDimension, EntityWorld}; +use systems::view::WaitingChunks; + +use crate::chunk_subscriptions::DimensionChunkPosition; mod chunk_subscriptions; pub mod client; @@ -26,12 +35,6 @@ mod systems; pub const VERSION: &str = include_str!("../../../constants/VERSION"); -pub use client::{Client, ClientId, Clients}; -pub use network_id_registry::NetworkId; -pub use options::Options; -use player_count::PlayerCount; -use systems::view::WaitingChunks; - /// A Minecraft server. /// /// Call [`link_with_game`](Server::link_with_game) to register the server @@ -134,8 +137,21 @@ impl Server { /// to the given position. This function should be /// used for entity updates, block updates, etc— /// any packets that need to be sent only to nearby players. - pub fn broadcast_nearby_with(&self, position: Position, mut callback: impl FnMut(&Client)) { - for &client_id in self.chunk_subscriptions.subscriptions_for(position.chunk()) { + pub fn broadcast_nearby_with( + &self, + world: EntityWorld, + dimension: &EntityDimension, + position: Position, + mut callback: impl FnMut(&Client), + ) { + for &client_id in self + .chunk_subscriptions + .subscriptions_for(DimensionChunkPosition( + world, + dimension.clone(), + position.chunk(), + )) + { if let Some(client) = self.clients.get(client_id) { callback(client); } @@ -148,10 +164,19 @@ impl Server { /// any packets that need to be sent only to nearby players. pub fn broadcast_nearby_with_mut( &mut self, + world: EntityWorld, + dimension: &EntityDimension, position: Position, mut callback: impl FnMut(&mut Client), ) { - for &client_id in self.chunk_subscriptions.subscriptions_for(position.chunk()) { + for &client_id in self + .chunk_subscriptions + .subscriptions_for(DimensionChunkPosition( + world, + dimension.clone(), + position.chunk(), + )) + { if let Some(client) = self.clients.get_mut(client_id) { callback(client); } diff --git a/feather/server/src/packet_handlers.rs b/feather/server/src/packet_handlers.rs index 5bf4d85e3..4cc086435 100644 --- a/feather/server/src/packet_handlers.rs +++ b/feather/server/src/packet_handlers.rs @@ -12,7 +12,7 @@ use protocol::{ }, ClientPlayPacket, }; -use quill_common::components::Name; +use quill_common::components::{EntityDimension, EntityWorld, Name}; use crate::{NetworkId, Server}; @@ -118,7 +118,6 @@ fn handle_animation( player: EntityRef, packet: client::Animation, ) -> SysResult { - let pos = *player.get::()?; let network_id = *player.get::()?; let animation = match packet.hand { @@ -126,9 +125,12 @@ fn handle_animation( Hand::Off => Animation::SwingOffhand, }; - server.broadcast_nearby_with(pos, |client| { - client.send_entity_animation(network_id, animation.clone()) - }); + server.broadcast_nearby_with( + *player.get::()?, + &*player.get::()?, + *player.get::()?, + |client| client.send_entity_animation(network_id, animation.clone()), + ); Ok(()) } diff --git a/feather/server/src/systems/block.rs b/feather/server/src/systems/block.rs index 8f2d41d3b..822417dbb 100644 --- a/feather/server/src/systems/block.rs +++ b/feather/server/src/systems/block.rs @@ -65,7 +65,7 @@ fn broadcast_block_change_chunk_overwrite( 0.0, (chunk_pos.z * CHUNK_WIDTH as i32) as f64, ); - server.broadcast_nearby_with(position, |client| { + server.broadcast_nearby_with(event.world(), event.dimension(), position, |client| { client.overwrite_chunk(&chunk); }) } @@ -84,9 +84,12 @@ fn broadcast_block_change_simple(event: &BlockChangeEvent, game: &Game, server: for pos in event.iter_changed_blocks() { let new_block = dimension.block_at(pos); if let Some(new_block) = new_block { - server.broadcast_nearby_with(pos.position(), |client| { - client.send_block_change(pos, new_block) - }); + server.broadcast_nearby_with( + event.world(), + event.dimension(), + pos.position(), + |client| client.send_block_change(pos, new_block), + ); } } } diff --git a/feather/server/src/systems/entity.rs b/feather/server/src/systems/entity.rs index f4fff317f..1d3f07185 100644 --- a/feather/server/src/systems/entity.rs +++ b/feather/server/src/systems/entity.rs @@ -42,7 +42,7 @@ fn send_entity_movement(game: &mut Game, server: &mut Server) -> SysResult { &network_id, prev_on_ground, dimension, - world, + &world, gamemode, prev_gamemode, ), @@ -63,8 +63,8 @@ fn send_entity_movement(game: &mut Game, server: &mut Server) -> SysResult { { if position != prev_position.0 { let mut query = game.ecs.query::<&Dimensions>(); - let dimensions = query.iter().find(|(e, _)| *e == **world).unwrap().1; - server.broadcast_nearby_with_mut(position, |client| { + let dimensions = query.iter().find(|(e, _)| *e == *world).unwrap().1; + server.broadcast_nearby_with_mut(world, dimension, position, |client| { client.update_entity_position( network_id, position, @@ -72,7 +72,7 @@ fn send_entity_movement(game: &mut Game, server: &mut Server) -> SysResult { on_ground, *prev_on_ground, dimension, - *world, + world, dimensions, gamemode.copied(), prev_gamemode.copied(), @@ -89,9 +89,19 @@ fn send_entity_movement(game: &mut Game, server: &mut Server) -> SysResult { /// Sends [SendEntityMetadata](protocol::packets::server::play::SendEntityMetadata) packet for when an entity is sneaking. fn send_entity_sneak_metadata(game: &mut Game, server: &mut Server) -> SysResult { - for (_, (&position, &SneakEvent { is_sneaking }, is_sprinting, &network_id)) in game + for ( + _, + (&position, &SneakEvent { is_sneaking }, is_sprinting, &network_id, &world, dimension), + ) in game .ecs - .query::<(&Position, &SneakEvent, &Sprinting, &NetworkId)>() + .query::<( + &Position, + &SneakEvent, + &Sprinting, + &NetworkId, + &EntityWorld, + &EntityDimension, + )>() .iter() { let mut metadata = EntityMetadata::entity_base(); @@ -108,7 +118,7 @@ fn send_entity_sneak_metadata(game: &mut Game, server: &mut Server) -> SysResult metadata.set(META_INDEX_POSE, Pose::Standing); } - server.broadcast_nearby_with(position, |client| { + server.broadcast_nearby_with(world, dimension, position, |client| { client.send_entity_metadata(network_id, metadata.clone()); }); } @@ -117,9 +127,15 @@ fn send_entity_sneak_metadata(game: &mut Game, server: &mut Server) -> SysResult /// Sends [SendEntityMetadata](protocol::packets::server::play::SendEntityMetadata) packet for when an entity is sprinting. fn send_entity_sprint_metadata(game: &mut Game, server: &mut Server) -> SysResult { - for (_, (&position, &SprintEvent { is_sprinting }, &network_id)) in game + for (_, (&position, &SprintEvent { is_sprinting }, &network_id, &world, dimension)) in game .ecs - .query::<(&Position, &SprintEvent, &NetworkId)>() + .query::<( + &Position, + &SprintEvent, + &NetworkId, + &EntityWorld, + &EntityDimension, + )>() .iter() { let mut metadata = EntityMetadata::entity_base(); @@ -128,7 +144,7 @@ fn send_entity_sprint_metadata(game: &mut Game, server: &mut Server) -> SysResul bit_mask.set(EntityBitMask::SPRINTING, is_sprinting); metadata.set(META_INDEX_ENTITY_BITMASK, bit_mask.bits()); - server.broadcast_nearby_with(position, |client| { + server.broadcast_nearby_with(world, dimension, position, |client| { client.send_entity_metadata(network_id, metadata.clone()); }); } diff --git a/feather/server/src/systems/entity/spawn_packet.rs b/feather/server/src/systems/entity/spawn_packet.rs index 1c62408b5..005fd122d 100644 --- a/feather/server/src/systems/entity/spawn_packet.rs +++ b/feather/server/src/systems/entity/spawn_packet.rs @@ -6,7 +6,9 @@ use common::{ Game, }; use ecs::{SysResult, SystemExecutor}; +use quill_common::components::{EntityDimension, EntityWorld}; +use crate::chunk_subscriptions::DimensionChunkPosition; use crate::{entities::SpawnPacketSender, ClientId, NetworkId, Server}; pub fn register(_game: &mut Game, systems: &mut SystemExecutor) { @@ -58,13 +60,19 @@ pub fn update_visible_entities(game: &mut Game, server: &mut Server) -> SysResul /// System to send an entity to clients when it is created. fn send_entities_when_created(game: &mut Game, server: &mut Server) -> SysResult { - for (entity, (_event, &position, spawn_packet)) in game + for (entity, (_event, &position, spawn_packet, &world, dimension)) in game .ecs - .query::<(&EntityCreateEvent, &Position, &SpawnPacketSender)>() + .query::<( + &EntityCreateEvent, + &Position, + &SpawnPacketSender, + &EntityWorld, + &EntityDimension, + )>() .iter() { let entity_ref = game.ecs.entity(entity)?; - server.broadcast_nearby_with_mut(position, |client| { + server.broadcast_nearby_with_mut(world, dimension, position, |client| { spawn_packet .send(&entity_ref, client) .expect("failed to create spawn packet") @@ -76,12 +84,20 @@ fn send_entities_when_created(game: &mut Game, server: &mut Server) -> SysResult /// System to unload an entity on clients when it is removed. fn unload_entities_when_removed(game: &mut Game, server: &mut Server) -> SysResult { - for (_, (_event, &position, &network_id)) in game + for (_, (_event, &position, &network_id, &world, dimension)) in game .ecs - .query::<(&EntityRemoveEvent, &Position, &NetworkId)>() + .query::<( + &EntityRemoveEvent, + &Position, + &NetworkId, + &EntityWorld, + &EntityDimension, + )>() .iter() { - server.broadcast_nearby_with_mut(position, |client| client.unload_entity(network_id)); + server.broadcast_nearby_with_mut(world, dimension, position, |client| { + client.unload_entity(network_id) + }); } Ok(()) @@ -89,20 +105,34 @@ fn unload_entities_when_removed(game: &mut Game, server: &mut Server) -> SysResu /// System to send/unsend entities on clients when the entity changes chunks. fn update_entities_on_chunk_cross(game: &mut Game, server: &mut Server) -> SysResult { - for (entity, (event, spawn_packet, &network_id)) in game + for (entity, (event, spawn_packet, &network_id, &world, dimension)) in game .ecs - .query::<(&ChunkCrossEvent, &SpawnPacketSender, &NetworkId)>() + .query::<( + &ChunkCrossEvent, + &SpawnPacketSender, + &NetworkId, + &EntityWorld, + &EntityDimension, + )>() .iter() { let old_clients: AHashSet<_> = server .chunk_subscriptions - .subscriptions_for(event.old_chunk) + .subscriptions_for(DimensionChunkPosition( + world, + dimension.clone(), + event.old_chunk, + )) .iter() .copied() .collect(); let new_clients: AHashSet<_> = server .chunk_subscriptions - .subscriptions_for(event.new_chunk) + .subscriptions_for(DimensionChunkPosition( + world, + dimension.clone(), + event.new_chunk, + )) .iter() .copied() .collect(); diff --git a/feather/server/src/systems/particle.rs b/feather/server/src/systems/particle.rs index 3ec2e54b5..8c8822b22 100644 --- a/feather/server/src/systems/particle.rs +++ b/feather/server/src/systems/particle.rs @@ -2,6 +2,7 @@ use crate::Server; use base::{Particle, Position}; use common::Game; use ecs::{SysResult, SystemExecutor}; +use quill_common::components::{EntityDimension, EntityWorld}; pub fn register(systems: &mut SystemExecutor) { systems.group::().add_system(send_particle_packets); @@ -10,8 +11,12 @@ pub fn register(systems: &mut SystemExecutor) { fn send_particle_packets(game: &mut Game, server: &mut Server) -> SysResult { let mut entities = Vec::new(); - for (entity, (&particle, &position)) in game.ecs.query::<(&Particle, &Position)>().iter() { - server.broadcast_nearby_with(position, |client| { + for (entity, (&particle, &position, &world, dimension)) in game + .ecs + .query::<(&Particle, &Position, &EntityWorld, &EntityDimension)>() + .iter() + { + server.broadcast_nearby_with(world, dimension, position, |client| { client.send_particle(&particle, false, &position); }); diff --git a/quill/common/src/components.rs b/quill/common/src/components.rs index 97d4d688a..eaf719906 100644 --- a/quill/common/src/components.rs +++ b/quill/common/src/components.rs @@ -287,12 +287,20 @@ impl Sprinting { bincode_component_impl!(Sprinting); #[derive( - Clone, PartialEq, Debug, derive_more::Deref, derive_more::DerefMut, Serialize, Deserialize, + Clone, + PartialEq, + Eq, + Hash, + Debug, + derive_more::Deref, + derive_more::DerefMut, + Serialize, + Deserialize, )] pub struct EntityDimension(pub String); bincode_component_impl!(EntityDimension); -#[derive(Copy, Clone, PartialEq, Debug, derive_more::Deref, derive_more::DerefMut)] +#[derive(Copy, Clone, PartialEq, Eq, Hash, Debug, derive_more::Deref, derive_more::DerefMut)] pub struct EntityWorld(pub ecs::Entity); impl Serialize for EntityWorld { From 78a60db1d3ed0c30aeee5e4325a18c87dfb1dc84 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Mon, 10 Jan 2022 20:53:12 +0200 Subject: [PATCH 05/22] Update tests and add test for PalettedContainer --- feather/base/src/anvil/level.rs | 10 +- feather/base/src/anvil/player.rs | 41 +++--- feather/base/src/block.rs | 2 +- feather/base/src/chunk.rs | 145 +++++++++---------- feather/base/src/chunk/heightmap.rs | 18 --- feather/base/src/chunk/packed_array.rs | 2 +- feather/base/src/chunk/paletted_container.rs | 40 ++++- feather/base/src/chunk_lock.rs | 17 +-- feather/common/src/chunk/cache.rs | 15 +- feather/common/src/events/block_change.rs | 5 +- feather/server/src/systems/player_join.rs | 12 +- feather/worldgen/src/lib.rs | 111 -------------- feather/worldgen/src/superflat.rs | 56 ++++++- libcraft/blocks/src/lib.rs | 14 +- 14 files changed, 223 insertions(+), 265 deletions(-) diff --git a/feather/base/src/anvil/level.rs b/feather/base/src/anvil/level.rs index 1f5c5ba08..d1ccfab6d 100644 --- a/feather/base/src/anvil/level.rs +++ b/feather/base/src/anvil/level.rs @@ -178,13 +178,9 @@ mod tests { #[test] fn test_deserialize_level_file() { - let level = quartz_nbt::serde::deserialize::( - include_bytes!("level.dat"), - Flavor::GzCompressed, - ) - .unwrap() - .0 - .data; + let level = nbt::from_gzip_reader::<_, Root>(Cursor::new(include_bytes!("level.dat"))) + .unwrap() + .data; assert!(!level.allow_commands); assert_eq!(level.clear_weather_time, 0); diff --git a/feather/base/src/anvil/player.rs b/feather/base/src/anvil/player.rs index 20386f007..8c32715b7 100644 --- a/feather/base/src/anvil/player.rs +++ b/feather/base/src/anvil/player.rs @@ -1,4 +1,5 @@ use std::collections::HashMap; +use std::convert::TryFrom; use std::{ fs, fs::File, @@ -146,20 +147,27 @@ impl InventorySlot { } } -impl From for ItemStack { - fn from(slot: InventorySlot) -> Self { - ItemStack::from(&slot) +#[derive(Debug)] +pub struct NoSuckItemError; + +impl TryFrom for ItemStack { + type Error = NoSuckItemError; + + fn try_from(slot: InventorySlot) -> Result { + ItemStack::try_from(&slot) } } // Can't do proper Borrow trait impl because of orphan rule -impl From<&InventorySlot> for ItemStack { - fn from(slot: &InventorySlot) -> Self { - ItemNbt::item_stack( +impl TryFrom<&InventorySlot> for ItemStack { + type Error = NoSuckItemError; + + fn try_from(slot: &InventorySlot) -> Result { + Ok(ItemNbt::item_stack( &slot.nbt, - Item::from_name(slot.item.as_str()).unwrap(), + Item::from_name(slot.item.as_str()).ok_or(NoSuckItemError)?, slot.count as u8, - ) + )) } } @@ -188,22 +196,19 @@ fn file_path(world_dir: &Path, uuid: Uuid) -> PathBuf { #[cfg(test)] mod tests { use std::collections::HashMap; + use std::convert::TryInto; use std::io::Cursor; + use libcraft_core::Gamemode; use num_traits::ToPrimitive; - use crate::prelude::Gamemode; - use super::*; #[test] fn test_deserialize_player() { let mut cursor = Cursor::new(include_bytes!("player.dat").to_vec()); - let player: PlayerData = - quartz_nbt::serde::deserialize_from(&mut cursor, Flavor::GzCompressed) - .unwrap() - .0; + let player: PlayerData = nbt::from_gzip_reader(&mut cursor).unwrap(); assert_eq!(player.gamemode, Gamemode::Creative.to_i32().unwrap()); assert_eq!( player.previous_gamemode, @@ -222,7 +227,7 @@ mod tests { nbt: None, }; - let item_stack: ItemStack = slot.into(); + let item_stack: ItemStack = slot.try_into().unwrap(); assert_eq!(item_stack.item(), Item::Feather); assert_eq!(item_stack.count(), 1); } @@ -236,7 +241,7 @@ mod tests { nbt: Some(ItemNbt { damage: Some(42) }), }; - let item_stack: ItemStack = slot.into(); + let item_stack: ItemStack = slot.try_into().unwrap(); assert_eq!(item_stack.item(), Item::DiamondAxe); assert_eq!(item_stack.count(), 1); assert_eq!(item_stack.damage_taken(), Some(42)); @@ -251,8 +256,8 @@ mod tests { nbt: None, }; - let item_stack: ItemStack = slot.into(); - assert_eq!(item_stack.item(), Item::Air); + let item_stack: Result = slot.try_into(); + assert!(item_stack.is_err()); } #[test] diff --git a/feather/base/src/block.rs b/feather/base/src/block.rs index 7018fc548..e3a92df25 100644 --- a/feather/base/src/block.rs +++ b/feather/base/src/block.rs @@ -139,9 +139,9 @@ pub enum BlockPositionValidationError { #[cfg(test)] mod tests { + use libcraft_core::BlockPosition; use std::convert::TryInto; - use crate::prelude::*; use crate::ValidBlockPosition; #[test] diff --git a/feather/base/src/chunk.rs b/feather/base/src/chunk.rs index 82d2750b7..dead0da5d 100644 --- a/feather/base/src/chunk.rs +++ b/feather/base/src/chunk.rs @@ -97,6 +97,29 @@ impl Chunk { } } + /// Gets the biome at the given position within this chunk. + /// + /// Returns `None` if the coordinates are out of bounds. + pub fn biome_at(&self, x: usize, y: usize, z: usize) -> Option { + self.section_for_y(y)?.biome_at( + x / BIOME_SAMPLE_RATE, + (y / BIOME_SAMPLE_RATE) % SECTION_HEIGHT, + z / BIOME_SAMPLE_RATE, + ) + } + + /// Sets the biome at the given position within this chunk. + /// + /// Returns `None` if the coordinates are out of bounds. + pub fn set_biome_at(&mut self, x: usize, y: usize, z: usize, biome: BiomeId) -> Option<()> { + self.section_for_y_mut(y)?.set_biome_at( + x / BIOME_SAMPLE_RATE, + (y / BIOME_SAMPLE_RATE) % SECTION_HEIGHT, + z / BIOME_SAMPLE_RATE, + biome, + ) + } + /// Fills the given chunk section with `block`. pub fn fill_section(&mut self, section: usize, block: BlockId) -> bool { let section = match self.sections.get_mut(section) { @@ -261,6 +284,20 @@ impl ChunkSection { self.blocks.set_block_at(x, y, z, block) } + /// Gets the biome at the given coordinates within this + /// chunk section. + pub fn biome_at(&self, x: usize, y: usize, z: usize) -> Option { + self.biomes.biome_at(x, y, z) + } + + /// Sets the biome at the given coordinates within + /// this chunk section. + /// + /// Returns `None` if the coordinates were out of bounds. + pub fn set_biome_at(&mut self, x: usize, y: usize, z: usize, biome: BiomeId) -> Option<()> { + self.biomes.set_biome_at(x, y, z, biome) + } + /// Fills this chunk section with the given block. /// /// Does not currently update heightmaps. @@ -374,52 +411,34 @@ impl ChunkSection { #[cfg(test)] mod tests { - use crate::blocks::HIGHEST_ID; - use crate::prelude::*; - use super::*; #[test] fn chunk_new() { let pos = ChunkPosition::new(0, 0); - let chunk = Chunk::new(pos, Sections(16)); - - // Confirm that chunk is empty - for x in 0..16 { - assert!(chunk.section(x).is_none()); - assert!(chunk.section(x).is_none()); - } - - assert_eq!(chunk.position(), pos); - } - - #[test] - fn chunk_new_with_default_biome() { - let pos = ChunkPosition::new(0, 0); - let chunk = Chunk::new_with_default_biome(pos, BiomeId::Mountains, Sections(16)); + let chunk = Chunk::new(pos, Sections(16), 0); // Confirm that chunk is empty for x in 0..16 { - assert!(chunk.section(x).is_none()); - assert!(chunk.section(x).is_none()); + assert_eq!( + chunk.section(x).unwrap().blocks, + PalettedContainer::default() + ); + assert_eq!( + chunk.section(x).unwrap().biomes, + PalettedContainer::default() + ); } assert_eq!(chunk.position(), pos); - - // Confirm that biomes are set - for x in 0..BIOME_SAMPLE_RATE { - for z in 0..BIOME_SAMPLE_RATE { - assert_eq!(chunk.biomes.get(x, 0, z), BiomeId::Mountains); - } - } } #[test] fn set_block_simple() { let pos = ChunkPosition::new(0, 0); - let mut chunk = Chunk::new(pos, Sections(16)); + let mut chunk = Chunk::new(pos, Sections(16), 0); - chunk.set_block_at(0, 0, 0, BlockId::andesite()); + chunk.set_block_at(0, 0, 0, BlockId::andesite(), true); assert_eq!(chunk.block_at(0, 0, 0).unwrap(), BlockId::andesite()); assert!(chunk.section(0).is_some()); } @@ -427,14 +446,14 @@ mod tests { #[test] fn fill_chunk() { let pos = ChunkPosition::new(0, 0); - let mut chunk = Chunk::new(pos, Sections(16)); + let mut chunk = Chunk::new(pos, Sections(16), 0); let block = BlockId::stone(); for x in 0..SECTION_WIDTH { for y in 0..16 * SECTION_HEIGHT { for z in 0..SECTION_WIDTH { - chunk.set_block_at(x, y, z, block).unwrap(); + chunk.set_block_at(x, y, z, block, true).unwrap(); assert_eq!(chunk.block_at(x, y, z), Some(block)); } } @@ -458,30 +477,19 @@ mod tests { // resizing, etc. works correctly. let pos = ChunkPosition::new(0, 0); - let mut chunk = Chunk::new(pos, Sections(16)); - - for section in chunk.sections() { - assert!(section.is_none()); - } + let mut chunk = Chunk::new(pos, Sections(16), 0); for section in 0..16 { let mut counter = 0; for x in 0..SECTION_WIDTH { for y in 0..SECTION_HEIGHT { for z in 0..SECTION_WIDTH { - let block = BlockId::from_vanilla_id(counter); - chunk.set_block_at(x, (section * SECTION_HEIGHT) + y, z, block); + let block = BlockId::from_vanilla_id(counter).unwrap(); + chunk.set_block_at(x, (section * SECTION_HEIGHT) + y, z, block, true); assert_eq!( chunk.block_at(x, (section * SECTION_HEIGHT) + y, z), Some(block) ); - if counter != 0 { - assert!( - chunk.section(section as isize).is_some(), - "Section {} failed", - section - ); - } counter += 1; } } @@ -495,7 +503,7 @@ mod tests { for x in 0..SECTION_WIDTH { for y in 0..SECTION_HEIGHT { for z in 0..SECTION_WIDTH { - let block = BlockId::from_vanilla_id(counter); + let block = BlockId::from_vanilla_id(counter).unwrap(); assert_eq!( chunk.block_at(x, (section as usize * SECTION_HEIGHT) + y, z), Some(block) @@ -512,34 +520,29 @@ mod tests { for x in 0..SECTION_WIDTH { for y in 0..16 * SECTION_HEIGHT { for z in 0..SECTION_WIDTH { - chunk.set_block_at(x, y, z, BlockId::air()); + chunk.set_block_at(x, y, z, BlockId::air(), false); } } } - - for section in chunk.sections() { - assert!(section.is_none()); - } } #[test] fn section_from_data_and_palette() { let pos = ChunkPosition::new(0, 0); - let mut chunk = Chunk::new(pos, Sections(16)); + let mut chunk = Chunk::new(pos, Sections(16), 0); - let mut palette = Palette::new(); + let mut palette = PalettedContainer::new(); let stone_index = palette.index_or_insert(BlockId::stone()); let mut data = PackedArray::new(16 * SECTION_WIDTH * SECTION_WIDTH, 5); for i in 0..4096 { data.set(i, stone_index as u64); } + palette.set_data(data); - let section = ChunkSection::new( - PackedArrayStore::from_raw_parts(Some(palette), data), - LightStore::new(), - ); - chunk.set_section_at(0, Some(section)); + let section = + ChunkSection::new(palette, PalettedContainer::default(), 0, LightStore::new()); + chunk.set_section_at(0, section); for x in 0..SECTION_WIDTH { for y in 0..16 { @@ -563,22 +566,22 @@ mod tests { #[test] fn test_biomes() { - let mut chunk = Chunk::new(ChunkPosition::default(), Sections(16)); + let mut chunk = Chunk::new(ChunkPosition::default(), Sections(16), 0); - for x in 0..BIOME_SAMPLE_RATE { - for z in 0..BIOME_SAMPLE_RATE { - assert_eq!(chunk.biomes().get(x, 0, z), BiomeId::TheVoid); - chunk.biomes_mut().set(x, 0, z, BiomeId::BirchForest); - assert_eq!(chunk.biomes().get(x, 0, z), BiomeId::BirchForest); + for x in (0..SECTION_WIDTH).step_by(BIOME_SAMPLE_RATE) { + for z in (0..SECTION_WIDTH).step_by(BIOME_SAMPLE_RATE) { + assert_eq!(chunk.biome_at(x, 0, z), Some(0.into())); + chunk.set_biome_at(x, 0, z, 1.into()); + assert_eq!(chunk.biome_at(x, 0, z), Some(1.into())); } } } #[test] fn test_light() { - let mut chunk = Chunk::new(ChunkPosition::default(), Sections(16)); + let mut chunk = Chunk::new(ChunkPosition::default(), Sections(16), 0); - chunk.set_block_at(0, 0, 0, BlockId::stone()).unwrap(); + chunk.set_block_at(0, 0, 0, BlockId::stone(), true).unwrap(); for x in 0..SECTION_WIDTH { for y in 0..SECTION_HEIGHT { @@ -594,9 +597,9 @@ mod tests { #[test] fn heightmaps() { - let mut chunk = Chunk::new(ChunkPosition::new(0, 0), Sections(16)); + let mut chunk = Chunk::new(ChunkPosition::new(0, 0), Sections(16), 0); - chunk.set_block_at(0, 10, 0, BlockId::stone()); + chunk.set_block_at(0, 10, 0, BlockId::stone(), true); assert_eq!(chunk.heightmaps.motion_blocking.height(0, 0), Some(10)); } @@ -614,10 +617,4 @@ mod tests { } } } - - #[test] - fn global_bits() { - //The highest block state id must fit into GLOBAL_BITS_PER_BLOCK - assert_eq!(HIGHEST_ID >> GLOBAL_BITS_PER_BLOCK, 0) - } } diff --git a/feather/base/src/chunk/heightmap.rs b/feather/base/src/chunk/heightmap.rs index 88c2b2db1..f18d118d9 100644 --- a/feather/base/src/chunk/heightmap.rs +++ b/feather/base/src/chunk/heightmap.rs @@ -193,21 +193,3 @@ where } } } - -#[cfg(test)] -mod tests { - use crate::base::chunk::Chunk; - use crate::common::world::Sections; - use crate::prelude::ChunkPosition; - use std::time::SystemTime; - - #[test] - fn test() { - let mut chunk = Chunk::new(ChunkPosition::default(), Sections(16)); - let time = SystemTime::now(); - for _ in 0..10000 { - chunk.recalculate_heightmaps(); - } - println!("{:?}", time.elapsed()); - } -} diff --git a/feather/base/src/chunk/packed_array.rs b/feather/base/src/chunk/packed_array.rs index 9db2a05f1..a8a32eb9f 100644 --- a/feather/base/src/chunk/packed_array.rs +++ b/feather/base/src/chunk/packed_array.rs @@ -2,7 +2,7 @@ use std::mem::ManuallyDrop; /// A packed array of integers where each integer consumes /// `bits_per_value` bits. Used to store block data in chunks. -#[derive(Debug, Clone, Default)] +#[derive(Debug, Clone, Default, PartialEq)] pub struct PackedArray { length: usize, bits_per_value: usize, diff --git a/feather/base/src/chunk/paletted_container.rs b/feather/base/src/chunk/paletted_container.rs index 427dab871..f220b9a34 100644 --- a/feather/base/src/chunk/paletted_container.rs +++ b/feather/base/src/chunk/paletted_container.rs @@ -9,7 +9,7 @@ use crate::{BlockId, ChunkSection}; /// Stores blocks or biomes of a chunk section. /// N = 4 for blocks, 2 for biomes -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq)] pub enum PalettedContainer where T: Paletteable, @@ -164,7 +164,7 @@ where } } PalettedContainer::MultipleValues { data, palette } => { - if palette.len() - 1 > data.max_value() as usize { + if palette.len() >= data.max_value() as usize { // Resize to either the global palette or a new section palette size. let new_size = data.bits_per_value() + 1; if new_size <= T::MAX_BITS_PER_ENTRY { @@ -287,3 +287,39 @@ impl Paletteable for BiomeId { BIOMES_COUNT.load(Ordering::Relaxed) } } + +#[cfg(test)] +mod tests { + use libcraft_blocks::BlockId; + + use crate::chunk::paletted_container::PalettedContainer; + + #[test] + fn test() { + let mut container = PalettedContainer::::new(); + assert_eq!(container, PalettedContainer::default()); + container.set_block_at(10, 10, 5, BlockId::stone()).unwrap(); + assert_eq!( + container.palette().unwrap(), + &vec![BlockId::default(), BlockId::stone()] + ); + assert_eq!(container.get_block_at(10, 10, 5).unwrap(), BlockId::stone()); + for id in 0..256 { + container + .set_block_at( + id / 16, + 0, + id % 16, + BlockId::from_vanilla_id(id as u16).unwrap(), + ) + .unwrap(); + } + assert!(matches!(container, PalettedContainer::GlobalPalette { .. })); + for id in 0..256 { + assert_eq!( + container.get_block_at(id / 16, 0, id % 16).unwrap(), + BlockId::from_vanilla_id(id as u16).unwrap() + ); + } + } +} diff --git a/feather/base/src/chunk_lock.rs b/feather/base/src/chunk_lock.rs index 50f1d641f..d798f54b4 100644 --- a/feather/base/src/chunk_lock.rs +++ b/feather/base/src/chunk_lock.rs @@ -45,17 +45,14 @@ impl ChunkLock { /// Locks this chunk with read access. Doesn't block. /// Returns None if the chunk is unloaded or locked for writing, Some otherwise. pub fn try_read(&self) -> Option> { - if self.is_loaded() { - self.lock.try_read() - } else { - None - } + self.lock.try_read() } /// Locks this chunk with read access, blocking the current thread until it can be acquired. pub fn read(&self) -> RwLockReadGuard { self.lock.read() } + /// Locks this chunk with exclusive write access. Doesn't block. /// Returns None if the chunk is unloaded or locked already, Some otherwise. pub fn try_write(&self) -> Option> { @@ -82,18 +79,20 @@ impl ChunkLock { #[cfg(test)] mod tests { + use crate::world::Sections; + use crate::ChunkPosition; use std::{ thread::{sleep, spawn, JoinHandle}, time::Duration, }; - use crate::prelude::*; - use super::*; - use crate::common::world::Sections; fn empty_lock(x: i32, z: i32, loaded: bool) -> ChunkLock { - ChunkLock::new(Chunk::new(ChunkPosition::new(x, z), Sections(16)), loaded) + ChunkLock::new( + Chunk::new(ChunkPosition::new(x, z), Sections(16), 0), + loaded, + ) } #[test] diff --git a/feather/common/src/chunk/cache.rs b/feather/common/src/chunk/cache.rs index c07908968..13fe115c8 100644 --- a/feather/common/src/chunk/cache.rs +++ b/feather/common/src/chunk/cache.rs @@ -103,10 +103,11 @@ impl ChunkCache { #[cfg(test)] mod tests { + use base::world::Sections; + use base::{Chunk, ChunkHandle, ChunkLock}; + use libcraft_core::ChunkPosition; use std::{sync::Arc, thread::sleep}; - use base::{Chunk, ChunkHandle, ChunkLock, ChunkPosition}; - use super::{ChunkCache, CACHE_TIME}; #[test] @@ -115,7 +116,10 @@ mod tests { let mut stored_handles: Vec = vec![]; let mut used_count = 0; for i in 0..100 { - let handle = Arc::new(ChunkLock::new(Chunk::new(ChunkPosition::new(i, 0)), false)); + let handle = Arc::new(ChunkLock::new( + Chunk::new(ChunkPosition::new(i, 0), Sections(16), 0), + false, + )); if rand::random::() { // clone this handle and pretend it is used used_count += 1; @@ -133,7 +137,10 @@ mod tests { let mut stored_handles: Vec = vec![]; let mut used_count = 0; for i in 0..100 { - let handle = Arc::new(ChunkLock::new(Chunk::new(ChunkPosition::new(i, 0)), false)); + let handle = Arc::new(ChunkLock::new( + Chunk::new(ChunkPosition::new(i, 0), Sections(16), 0), + false, + )); if rand::random::() { // clone this handle and pretend it is used used_count += 1; diff --git a/feather/common/src/events/block_change.rs b/feather/common/src/events/block_change.rs index 7872acf60..d88a115c4 100644 --- a/feather/common/src/events/block_change.rs +++ b/feather/common/src/events/block_change.rs @@ -115,7 +115,6 @@ enum BlockChanges { #[cfg(test)] mod tests { - use crate::base::chunk::SECTION_VOLUME; use ahash::AHashSet; use ecs::Entity; @@ -126,7 +125,7 @@ mod tests { let pos = BlockPosition::new(5, 64, 9).try_into().unwrap(); let event = BlockChangeEvent::single( pos, - Entity::new(0), + EntityWorld(Entity::from_bits(0)), EntityDimension("minecraft:overworld".to_string()), ); assert_eq!(event.count(), 1); @@ -144,7 +143,7 @@ mod tests { let event = BlockChangeEvent::fill_chunk_section( chunk, section_y, - Entity::new(0), + EntityWorld(Entity::from_bits(0)), EntityDimension("minecraft:overworld".to_string()), ); assert_eq!(event.count(), SECTION_VOLUME); diff --git a/feather/server/src/systems/player_join.rs b/feather/server/src/systems/player_join.rs index c98c77f0b..b7047acba 100644 --- a/feather/server/src/systems/player_join.rs +++ b/feather/server/src/systems/player_join.rs @@ -1,3 +1,4 @@ +use std::convert::TryFrom; use std::sync::Arc; use log::debug; @@ -146,10 +147,15 @@ fn accept_new_player(game: &mut Game, server: &mut Server, client_id: ClientId) } }; - // This can't fail since the earlier match filters out all incorrect indexes. window - .set_item(slot, InventorySlot::Filled(ItemStack::from(inventory_slot))) - .unwrap(); + .set_item( + slot, + InventorySlot::Filled( + ItemStack::try_from(inventory_slot) + .expect("The player has an invalid item saved in their inventory"), + ), + ) + .unwrap(); // This can't fail since the earlier match filters out all incorrect indexes. } } diff --git a/feather/worldgen/src/lib.rs b/feather/worldgen/src/lib.rs index 5c3452a43..41204b678 100644 --- a/feather/worldgen/src/lib.rs +++ b/feather/worldgen/src/lib.rs @@ -44,114 +44,3 @@ pub fn block_index(x: usize, y: i32, z: usize, world_height: WorldHeight, min_y: assert!(x < 16 && y >= min_y && y < min_y + *world_height as i32 && z < 16); (((y - min_y) as usize) << 8) | (x << 4) | z } - -#[cfg(test)] -mod tests { - use crate::base::chunk::{BIOME_SAMPLE_RATE, SECTION_HEIGHT, SECTION_WIDTH}; - use base::chunk::{BIOME_SAMPLE_RATE, SECTION_HEIGHT, SECTION_WIDTH}; - use base::CHUNK_WIDTH; - - use super::*; - - #[test] - fn test_reproducibility() { - let seeds: [u64; 4] = [u64::MAX, 3243, 0, 100]; - - let chunks = [ - ChunkPosition::new(0, 0), - ChunkPosition::new(-1, -1), - ChunkPosition::new(1, 1), - ]; - - for seed in seeds.iter() { - let gen = ComposableGenerator::default_with_seed(*seed); - for chunk in chunks.iter() { - let first = gen.generate_chunk(*chunk, Sections(16)); - - let second = gen.generate_chunk(*chunk, Sections(16)); - - test_chunks_eq(&first, &second); - } - } - } - - fn test_chunks_eq(a: &Chunk, b: &Chunk) { - assert_eq!(a.sections().len(), b.sections().len()); - for x in 0..SECTION_WIDTH { - for z in 0..SECTION_WIDTH { - for y in 0..a.sections().len() * SECTION_HEIGHT { - assert_eq!(a.block_at(x, y, z), b.block_at(x, y, z)); - } - } - } - for x in 0..(CHUNK_WIDTH / BIOME_SAMPLE_RATE) { - for z in 0..(CHUNK_WIDTH / BIOME_SAMPLE_RATE) { - for y in 0..(a.sections().len() - 2) * (SECTION_HEIGHT / BIOME_SAMPLE_RATE) { - assert_eq!(a.biomes().get(x, y, z), b.biomes().get(x, y, z)); - } - } - } - } - - #[test] - pub fn test_worldgen_empty() { - let chunk_pos = ChunkPosition { x: 1, z: 2 }; - let generator = EmptyWorldGenerator {}; - let chunk = generator.generate_chunk(chunk_pos, Sections(16)); - - // No sections have been generated - assert!(chunk.sections().iter().all(|sec| sec.is_none())); - assert_eq!(chunk_pos, chunk.position()); - } - - #[test] - fn test_chunk_biomes() { - let mut biomes = BiomeStore::new(BiomeId::Plains, Sections(16)); - - for x in 0..BIOME_SAMPLE_RATE { - for z in 0..BIOME_SAMPLE_RATE { - for y in 0..16 * BIOME_SAMPLE_RATE { - assert_eq!(biomes.get(x, y, z), BiomeId::Plains); - biomes.set(x, y, z, BiomeId::TheVoid); - assert_eq!(biomes.get(x, y, z), BiomeId::TheVoid); - } - } - } - } - - #[test] - fn test_static_biome_generator() { - let gen = StaticBiomeGenerator::default(); - - let biomes = gen.generate_for_chunk(ChunkPosition::new(0, 0), 0, Sections(16)); - - for x in 0..BIOME_SAMPLE_RATE { - for z in 0..BIOME_SAMPLE_RATE { - for y in 0..16 * BIOME_SAMPLE_RATE { - assert_eq!(biomes.get(x, y, z), BiomeId::TheVoid); - } - } - } - } - - #[test] - fn test_nearby_biomes() { - let biomes = vec![ - BiomeStore::new(BiomeId::Plains, Sections(16)), - BiomeStore::new(BiomeId::Swamp, Sections(16)), - BiomeStore::new(BiomeId::Savanna, Sections(16)), - BiomeStore::new(BiomeId::BirchForest, Sections(16)), - BiomeStore::new(BiomeId::DarkForest, Sections(16)), - BiomeStore::new(BiomeId::Mountains, Sections(16)), - BiomeStore::new(BiomeId::TheVoid, Sections(16)), - BiomeStore::new(BiomeId::Desert, Sections(16)), - BiomeStore::new(BiomeId::Taiga, Sections(16)), - ]; - let biomes = NearbyBiomes::from_slice(&biomes[..]).unwrap(); - - assert_eq!(biomes.get_at_block(0, 0, 0), BiomeId::DarkForest); - assert_eq!(biomes.get_at_block(16, 0, 16), BiomeId::Taiga); - assert_eq!(biomes.get_at_block(-1, 0, -1), BiomeId::Plains); - assert_eq!(biomes.get_at_block(-1, 0, 0), BiomeId::BirchForest); - } -} diff --git a/feather/worldgen/src/superflat.rs b/feather/worldgen/src/superflat.rs index 6ee71ec43..da2bd4db1 100644 --- a/feather/worldgen/src/superflat.rs +++ b/feather/worldgen/src/superflat.rs @@ -72,24 +72,63 @@ impl WorldGenerator for SuperflatWorldGenerator { #[cfg(test)] mod tests { - use base::biome::BiomeId; + use base::biome::{ + BiomeCategory, BiomeColor, BiomeEffects, BiomeGeneratorInfo, BiomeInfo, BiomeSpawners, + }; use base::chunk::SECTION_HEIGHT; - use libcraft_blocks::BlockId; - - use crate::base::chunk::SECTION_HEIGHT; use super::*; #[test] pub fn test_worldgen_flat() { let options = SuperflatGeneratorOptions { - biome: BiomeId::Mountains.name().to_owned(), + biome: "minecraft:mountains".to_string(), ..Default::default() }; let chunk_pos = ChunkPosition { x: 1, z: 2 }; let generator = SuperflatWorldGenerator { options }; - let chunk = generator.generate_chunk(chunk_pos, Sections(16)); + let mut biomes = BiomeList::default(); + biomes.insert( + "minecraft:mountains".to_string(), + BiomeGeneratorInfo { + carvers: Default::default(), + features: vec![], + spawners: BiomeSpawners { + monster: vec![], + creature: vec![], + ambient: vec![], + axolotls: vec![], + underground_water_creature: vec![], + water_creature: vec![], + water_ambient: vec![], + misc: vec![], + }, + spawn_costs: Default::default(), + info: BiomeInfo { + effects: BiomeEffects { + mood_sound: None, + music: None, + ambient_sound: None, + additions_sound: None, + grass_color_modifier: None, + sky_color: BiomeColor { r: 0, g: 0, b: 0 }, + foliage_color: None, + grass_color: None, + fog_color: BiomeColor { r: 0, g: 0, b: 0 }, + water_color: BiomeColor { r: 0, g: 0, b: 0 }, + water_fog_color: BiomeColor { r: 0, g: 0, b: 0 }, + }, + precipitation: "".to_string(), + temperature: 0.0, + downfall: 0.0, + temperature_modifier: None, + category: BiomeCategory::Ocean, + particle: None, + }, + }, + ); + let chunk = generator.generate_chunk(chunk_pos, Sections(16), 0, &biomes); assert_eq!(chunk.position(), chunk_pos); for x in 0usize..16 { @@ -108,7 +147,10 @@ mod tests { BlockId::air() ); } - assert_eq!(chunk.biomes().get_at_block(x, 0, z), BiomeId::Mountains); + assert_eq!( + chunk.biome_at(x, 0, z).unwrap(), + biomes.get_id("minecraft:mountains").unwrap() + ); } } } diff --git a/libcraft/blocks/src/lib.rs b/libcraft/blocks/src/lib.rs index 61ff03f83..cce0b783a 100644 --- a/libcraft/blocks/src/lib.rs +++ b/libcraft/blocks/src/lib.rs @@ -182,7 +182,7 @@ mod tests { fn highest_id() { assert_eq!( HIGHEST_ID, - *VANILLA_ID_TABLE.last().unwrap().last().unwrap() + *VANILLA_ID_TABLE.last().unwrap().last().unwrap() as usize ) } @@ -191,13 +191,13 @@ mod tests { let block = BlockId::rose_bush().with_half_upper_lower(HalfUpperLower::Lower); assert_eq!(block.vanilla_id(), 8140); // will have to be changed whenever we update to a newer MC version - assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), block); + assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), Some(block)); let block = BlockId::structure_block().with_structure_block_mode(StructureBlockMode::Corner); assert_eq!(block.vanilla_id(), 15991); - assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), block); + assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), Some(block)); let mut block = BlockId::redstone_wire(); block.set_power(2); @@ -213,16 +213,16 @@ mod tests { assert_eq!(block.north_wire(), Some(NorthWire::Up)); assert_eq!(block.vanilla_id(), 2568); - assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), block); + assert_eq!(BlockId::from_vanilla_id(block.vanilla_id()), Some(block)); } #[test] fn vanilla_ids_roundtrip() { - for id in 0..8598 { - assert_eq!(BlockId::from_vanilla_id(id).vanilla_id(), id); + for id in 0..(HIGHEST_ID as u16) { + assert_eq!(BlockId::from_vanilla_id(id).unwrap().vanilla_id(), id); if id != 0 { - assert_ne!(BlockId::from_vanilla_id(id), BlockId::air()); + assert_ne!(BlockId::from_vanilla_id(id).unwrap(), BlockId::air()); } } } From e947675a6208eddf3d431dedc69a3088adf2c81f Mon Sep 17 00:00:00 2001 From: Iaiao Date: Tue, 11 Jan 2022 15:28:39 +0200 Subject: [PATCH 06/22] Fix clippy warning --- feather/base/src/chunk/paletted_container.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feather/base/src/chunk/paletted_container.rs b/feather/base/src/chunk/paletted_container.rs index f220b9a34..222ab8286 100644 --- a/feather/base/src/chunk/paletted_container.rs +++ b/feather/base/src/chunk/paletted_container.rs @@ -174,7 +174,7 @@ where data: { let mut data = data.resized(Self::global_palette_bits_per_value()); // Update items to use global IDs instead of palette indices - Self::map_to_global_palette(len, &palette, &mut data); + Self::map_to_global_palette(len, palette, &mut data); data }, } From 57b95740c28ef4e64f355e07ed591746728840fd Mon Sep 17 00:00:00 2001 From: Iaiao Date: Tue, 11 Jan 2022 15:40:48 +0200 Subject: [PATCH 07/22] Remove openssl-sys from reqwest dependencies, use rustls instead --- Cargo.lock | 153 ++++++------------------------------- data_generators/Cargo.toml | 2 +- 2 files changed, 26 insertions(+), 129 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4e7c1620b..153c17e8e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -530,22 +530,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "core-foundation" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" - [[package]] name = "cpufeatures" version = "0.2.1" @@ -1098,21 +1082,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "form_urlencoded" version = "1.0.1" @@ -1380,16 +1349,16 @@ dependencies = [ ] [[package]] -name = "hyper-tls" -version = "0.5.0" +name = "hyper-rustls" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" dependencies = [ - "bytes 1.1.0", + "http", "hyper", - "native-tls", + "rustls", "tokio", - "tokio-native-tls", + "tokio-rustls", ] [[package]] @@ -1826,24 +1795,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "native-tls" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - [[package]] name = "nom" version = "5.1.2" @@ -1986,39 +1937,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" -[[package]] -name = "openssl" -version = "0.10.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" -dependencies = [ - "bitflags", - "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-sys", -] - -[[package]] -name = "openssl-probe" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" - -[[package]] -name = "openssl-sys" -version = "0.9.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" -dependencies = [ - "autocfg 1.0.1", - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "ordinalizer" version = "0.1.0" @@ -2497,24 +2415,26 @@ dependencies = [ "http", "http-body", "hyper", - "hyper-tls", + "hyper-rustls", "ipnet", "js-sys", "lazy_static", "log", "mime", - "native-tls", "percent-encoding", "pin-project-lite", + "rustls", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", "tokio", - "tokio-native-tls", + "tokio-rustls", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", + "webpki-roots", "winreg", ] @@ -2629,6 +2549,15 @@ dependencies = [ "webpki", ] +[[package]] +name = "rustls-pemfile" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +dependencies = [ + "base64", +] + [[package]] name = "rustversion" version = "1.0.6" @@ -2641,16 +2570,6 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" -[[package]] -name = "schannel" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" -dependencies = [ - "lazy_static", - "winapi", -] - [[package]] name = "scopeguard" version = "1.1.0" @@ -2673,29 +2592,6 @@ version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" -[[package]] -name = "security-framework" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "semver" version = "0.9.0" @@ -3228,13 +3124,14 @@ dependencies = [ ] [[package]] -name = "tokio-native-tls" -version = "0.3.0" +name = "tokio-rustls" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +checksum = "a27d5f2b839802bd8267fa19b0530f5a08b9c08cd417976be2a65d130fe1c11b" dependencies = [ - "native-tls", + "rustls", "tokio", + "webpki", ] [[package]] diff --git a/data_generators/Cargo.toml b/data_generators/Cargo.toml index 2afedb6c4..4b6e3ce32 100644 --- a/data_generators/Cargo.toml +++ b/data_generators/Cargo.toml @@ -11,7 +11,7 @@ regex = "1.5.4" quote = "1.0.10" proc-macro2 = "1.0.32" rayon = "1.5.1" -reqwest = { version = "0.11.6", default-features = false, features = ["blocking", "native-tls"] } +reqwest = { version = "0.11.6", default-features = false, features = [ "blocking", "rustls-tls" ] } once_cell = "1.8.0" indexmap = { version = "1.7.0", features = [ "serde" ] } bincode = "1.3.3" From a7d4a2fbd9465caac72b2fb08f1f0e899ffe345d Mon Sep 17 00:00:00 2001 From: Iaiao Date: Tue, 11 Jan 2022 15:53:53 +0200 Subject: [PATCH 08/22] Use IndexMap to fix generated item order --- data_generators/src/generators/blocks.rs | 22 +- data_generators/src/generators/inventory.rs | 7 +- .../src/generators/simplified_block.rs | 6 +- data_generators/src/utils.rs | 4 +- libcraft/blocks/src/block.rs | 37106 ++++++++-------- libcraft/blocks/src/simplified_block.rs | 1724 +- libcraft/core/src/entity.rs | 1508 +- libcraft/inventory/src/inventory.rs | 1174 +- libcraft/items/src/item.rs | 19748 ++++---- 9 files changed, 30647 insertions(+), 30652 deletions(-) diff --git a/data_generators/src/generators/blocks.rs b/data_generators/src/generators/blocks.rs index bb3d02e1a..28ca3037d 100644 --- a/data_generators/src/generators/blocks.rs +++ b/data_generators/src/generators/blocks.rs @@ -1,21 +1,19 @@ -use std::collections::HashMap; - use convert_case::{Case, Casing}; +use indexmap::IndexMap; use crate::utils::*; pub fn generate() { - let item_names_by_id: HashMap = - load_minecraft_json::>("items.json") - .unwrap() - .into_par_iter() - .map(|IdAndName { id, name }| (id, name)) - .collect(); - let material_dig_multipliers: HashMap> = + let item_names_by_id = load_minecraft_json::>("items.json") + .unwrap() + .into_iter() + .map(|IdAndName { id, name }| (id, name)) + .collect::>(); + let material_dig_multipliers: IndexMap> = load_minecraft_json("materials.json").unwrap(); let blocks: Vec = load_minecraft_json("blocks.json").unwrap(); - let mut material_constant_refs = HashMap::new(); + let mut material_constant_refs = IndexMap::new(); let mut dig_multiplier_constants = Vec::new(); for (name, dig_multipliers) in material_dig_multipliers { @@ -287,7 +285,7 @@ pub fn generate() { .map(|item| { format_ident!( "{}", - item_names_by_id[&item.parse().unwrap()] + item_names_by_id[&item.parse::().unwrap()] .to_case(Case::UpperCamel) ) }) @@ -350,7 +348,7 @@ struct Block { max_state_id: u16, #[allow(dead_code)] states: Vec, - harvest_tools: Option>, + harvest_tools: Option>, drops: Vec, bounding_box: String, } diff --git a/data_generators/src/generators/inventory.rs b/data_generators/src/generators/inventory.rs index ffdb11d79..20ba7eacf 100644 --- a/data_generators/src/generators/inventory.rs +++ b/data_generators/src/generators/inventory.rs @@ -3,7 +3,6 @@ use indexmap::IndexMap; use proc_macro2::TokenStream; use serde::de::{Error, Unexpected}; use serde::Deserializer; -use std::collections::HashMap; use crate::utils::*; @@ -19,7 +18,7 @@ pub fn generate() { .collect::>() ); - let mut window_offsets = HashMap::new(); + let mut window_offsets = IndexMap::new(); for (name, window) in &inventories.windows { let mut offset = 0; let mut offsets = IndexMap::new(); @@ -186,8 +185,8 @@ pub fn generate() { #[derive(Deserialize)] struct Inventories { areas: Vec, - inventories: HashMap>, - windows: HashMap, + inventories: IndexMap>, + windows: IndexMap, } #[derive(Deserialize)] diff --git a/data_generators/src/generators/simplified_block.rs b/data_generators/src/generators/simplified_block.rs index 7edd87ead..81ede690e 100644 --- a/data_generators/src/generators/simplified_block.rs +++ b/data_generators/src/generators/simplified_block.rs @@ -1,5 +1,3 @@ -use std::collections::HashMap; - use convert_case::{Case, Casing}; use regex::Regex; @@ -13,7 +11,7 @@ pub fn generate() { let mut out = quote! { use crate::BlockKind; }; let mappings = blocks - .into_par_iter() + .into_iter() .map(|block| { ( block.name.to_case(Case::UpperCamel), @@ -26,7 +24,7 @@ pub fn generate() { .unwrap_or_else(|| block.name.to_case(Case::UpperCamel)), ) }) - .collect::>(); + .collect::>(); let mut variants = mappings.values().collect::>(); variants.sort(); diff --git a/data_generators/src/utils.rs b/data_generators/src/utils.rs index 43b84b638..22258c847 100644 --- a/data_generators/src/utils.rs +++ b/data_generators/src/utils.rs @@ -147,11 +147,11 @@ macro_rules! generate_enum_property { ) }; ($enum_name: ident, $property_name: literal, $typ: ty, $mapping: expr, $reverse: expr, $return_type: ty, $needs_bindings: expr $(,)?) => {{ + use indexmap::IndexMap; use proc_macro2::TokenStream; - use std::collections::HashMap; let property_name: &str = $property_name; - let mapping: HashMap = $mapping; + let mapping: IndexMap = $mapping; let reverse: bool = $reverse; let needs_bindings: bool = $needs_bindings; diff --git a/libcraft/blocks/src/block.rs b/libcraft/blocks/src/block.rs index 355ddfede..8657a4d5c 100644 --- a/libcraft/blocks/src/block.rs +++ b/libcraft/blocks/src/block.rs @@ -1,159 +1,159 @@ // This file is @generated. Please do not edit. #[allow(dead_code)] pub mod dig_multipliers { - pub const COWEB: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::GoldenSword, 15f32), - (libcraft_items::Item::StoneSword, 15f32), - (libcraft_items::Item::IronSword, 15f32), - (libcraft_items::Item::DiamondSword, 15f32), - (libcraft_items::Item::NetheriteSword, 15f32), - (libcraft_items::Item::Shears, 15f32), - (libcraft_items::Item::WoodenSword, 15f32), - ]; - pub const GOURD_AND_MINEABLE_WITH_AXE: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::DiamondSword, 1.5f32), - (libcraft_items::Item::IronAxe, 6f32), - (libcraft_items::Item::GoldenAxe, 12f32), + pub const GOURD: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenSword, 1.5f32), (libcraft_items::Item::StoneSword, 1.5f32), - (libcraft_items::Item::WoodenAxe, 2f32), (libcraft_items::Item::GoldenSword, 1.5f32), (libcraft_items::Item::IronSword, 1.5f32), - (libcraft_items::Item::WoodenSword, 1.5f32), - (libcraft_items::Item::StoneAxe, 4f32), - (libcraft_items::Item::DiamondAxe, 8f32), + (libcraft_items::Item::DiamondSword, 1.5f32), (libcraft_items::Item::NetheriteSword, 1.5f32), - (libcraft_items::Item::NetheriteAxe, 9f32), ]; + pub const WOOL: &[(libcraft_items::Item, f32)] = &[(libcraft_items::Item::Shears, 5f32)]; pub const LEAVES_AND_MINEABLE_WITH_HOE: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::GoldenHoe, 12f32), + (libcraft_items::Item::WoodenSword, 1.5f32), (libcraft_items::Item::WoodenHoe, 2f32), - (libcraft_items::Item::NetheriteSword, 1.5f32), - (libcraft_items::Item::Shears, 15f32), - (libcraft_items::Item::IronHoe, 6f32), (libcraft_items::Item::StoneSword, 1.5f32), (libcraft_items::Item::StoneHoe, 4f32), - (libcraft_items::Item::IronSword, 1.5f32), (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::GoldenHoe, 12f32), + (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::IronHoe, 6f32), (libcraft_items::Item::DiamondSword, 1.5f32), (libcraft_items::Item::DiamondHoe, 8f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), (libcraft_items::Item::NetheriteHoe, 9f32), - (libcraft_items::Item::WoodenSword, 1.5f32), + (libcraft_items::Item::Shears, 15f32), ]; pub const MINEABLE_WITH_AXE: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::GoldenAxe, 12f32), - (libcraft_items::Item::NetheriteAxe, 9f32), (libcraft_items::Item::WoodenAxe, 2f32), (libcraft_items::Item::StoneAxe, 4f32), + (libcraft_items::Item::GoldenAxe, 12f32), (libcraft_items::Item::IronAxe, 6f32), (libcraft_items::Item::DiamondAxe, 8f32), + (libcraft_items::Item::NetheriteAxe, 9f32), ]; - pub const PLANT: &[(libcraft_items::Item, f32)] = &[ + pub const COWEB: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenSword, 15f32), + (libcraft_items::Item::StoneSword, 15f32), + (libcraft_items::Item::GoldenSword, 15f32), + (libcraft_items::Item::IronSword, 15f32), + (libcraft_items::Item::DiamondSword, 15f32), + (libcraft_items::Item::NetheriteSword, 15f32), + (libcraft_items::Item::Shears, 15f32), + ]; + pub const DEFAULT: &[(libcraft_items::Item, f32)] = &[]; + pub const MINEABLE_WITH_SHOVEL: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenShovel, 2f32), + (libcraft_items::Item::StoneShovel, 4f32), + (libcraft_items::Item::GoldenShovel, 12f32), + (libcraft_items::Item::IronShovel, 6f32), + (libcraft_items::Item::DiamondShovel, 8f32), + (libcraft_items::Item::NetheriteShovel, 9f32), + ]; + pub const LEAVES: &[(libcraft_items::Item, f32)] = &[ (libcraft_items::Item::WoodenSword, 1.5f32), - (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::StoneSword, 1.5f32), (libcraft_items::Item::GoldenSword, 1.5f32), (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::DiamondSword, 1.5f32), (libcraft_items::Item::NetheriteSword, 1.5f32), - (libcraft_items::Item::StoneSword, 1.5f32), + (libcraft_items::Item::Shears, 15f32), ]; - pub const VINE_OR_GLOW_LICHEN_AND_PLANT_AND_MINEABLE_WITH_AXE: &[( - libcraft_items::Item, - f32, - )] = &[ - (libcraft_items::Item::GoldenSword, 1.5f32), - (libcraft_items::Item::DiamondAxe, 8f32), + pub const PLANT: &[(libcraft_items::Item, f32)] = &[ (libcraft_items::Item::WoodenSword, 1.5f32), - (libcraft_items::Item::NetheriteSword, 1.5f32), - (libcraft_items::Item::NetheriteAxe, 9f32), - (libcraft_items::Item::GoldenAxe, 12f32), - (libcraft_items::Item::IronSword, 1.5f32), - (libcraft_items::Item::IronAxe, 6f32), - (libcraft_items::Item::Shears, 2f32), (libcraft_items::Item::StoneSword, 1.5f32), + (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::IronSword, 1.5f32), (libcraft_items::Item::DiamondSword, 1.5f32), - (libcraft_items::Item::WoodenAxe, 2f32), - (libcraft_items::Item::StoneAxe, 4f32), - ]; - pub const MINEABLE_WITH_HOE: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::WoodenHoe, 2f32), - (libcraft_items::Item::DiamondHoe, 8f32), - (libcraft_items::Item::NetheriteHoe, 9f32), - (libcraft_items::Item::StoneHoe, 4f32), - (libcraft_items::Item::GoldenHoe, 12f32), - (libcraft_items::Item::IronHoe, 6f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), ]; pub const MINEABLE_WITH_PICKAXE: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenPickaxe, 2f32), (libcraft_items::Item::StonePickaxe, 4f32), - (libcraft_items::Item::DiamondPickaxe, 8f32), (libcraft_items::Item::GoldenPickaxe, 12f32), - (libcraft_items::Item::WoodenPickaxe, 2f32), (libcraft_items::Item::IronPickaxe, 6f32), + (libcraft_items::Item::DiamondPickaxe, 8f32), (libcraft_items::Item::NetheritePickaxe, 9f32), ]; - pub const PLANT_AND_MINEABLE_WITH_AXE: &[(libcraft_items::Item, f32)] = &[ + pub const VINE_OR_GLOW_LICHEN: &[(libcraft_items::Item, f32)] = + &[(libcraft_items::Item::Shears, 2f32)]; + pub const MINEABLE_WITH_HOE: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenHoe, 2f32), + (libcraft_items::Item::StoneHoe, 4f32), + (libcraft_items::Item::GoldenHoe, 12f32), + (libcraft_items::Item::IronHoe, 6f32), + (libcraft_items::Item::DiamondHoe, 8f32), + (libcraft_items::Item::NetheriteHoe, 9f32), + ]; + pub const GOURD_AND_MINEABLE_WITH_AXE: &[(libcraft_items::Item, f32)] = &[ (libcraft_items::Item::WoodenSword, 1.5f32), + (libcraft_items::Item::WoodenAxe, 2f32), (libcraft_items::Item::StoneSword, 1.5f32), - (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::StoneAxe, 4f32), (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::GoldenAxe, 12f32), (libcraft_items::Item::IronSword, 1.5f32), (libcraft_items::Item::IronAxe, 6f32), + (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::DiamondAxe, 8f32), (libcraft_items::Item::NetheriteSword, 1.5f32), - (libcraft_items::Item::GoldenAxe, 12f32), + (libcraft_items::Item::NetheriteAxe, 9f32), + ]; + pub const PLANT_AND_MINEABLE_WITH_AXE: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenSword, 1.5f32), (libcraft_items::Item::WoodenAxe, 2f32), + (libcraft_items::Item::StoneSword, 1.5f32), (libcraft_items::Item::StoneAxe, 4f32), + (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::GoldenAxe, 12f32), + (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::IronAxe, 6f32), + (libcraft_items::Item::DiamondSword, 1.5f32), (libcraft_items::Item::DiamondAxe, 8f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), (libcraft_items::Item::NetheriteAxe, 9f32), ]; - pub const DEFAULT: &[(libcraft_items::Item, f32)] = &[]; - pub const GOURD: &[(libcraft_items::Item, f32)] = &[ + pub const VINE_OR_GLOW_LICHEN_AND_PLANT_AND_MINEABLE_WITH_AXE: &[( + libcraft_items::Item, + f32, + )] = &[ (libcraft_items::Item::WoodenSword, 1.5f32), - (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::WoodenAxe, 2f32), (libcraft_items::Item::StoneSword, 1.5f32), - (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::StoneAxe, 4f32), + (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::GoldenAxe, 12f32), (libcraft_items::Item::IronSword, 1.5f32), + (libcraft_items::Item::IronAxe, 6f32), + (libcraft_items::Item::DiamondSword, 1.5f32), + (libcraft_items::Item::DiamondAxe, 8f32), (libcraft_items::Item::NetheriteSword, 1.5f32), + (libcraft_items::Item::NetheriteAxe, 9f32), + (libcraft_items::Item::Shears, 2f32), ]; - pub const VINE_OR_GLOW_LICHEN: &[(libcraft_items::Item, f32)] = - &[(libcraft_items::Item::Shears, 2f32)]; - pub const WOOL: &[(libcraft_items::Item, f32)] = &[(libcraft_items::Item::Shears, 5f32)]; pub const LEAVES_AND_MINEABLE_WITH_AXE_AND_MINEABLE_WITH_HOE: &[(libcraft_items::Item, f32)] = &[ + (libcraft_items::Item::WoodenSword, 1.5f32), (libcraft_items::Item::WoodenAxe, 2f32), - (libcraft_items::Item::NetheriteSword, 1.5f32), - (libcraft_items::Item::DiamondHoe, 8f32), - (libcraft_items::Item::StoneSword, 1.5f32), - (libcraft_items::Item::Shears, 15f32), - (libcraft_items::Item::IronAxe, 6f32), (libcraft_items::Item::WoodenHoe, 2f32), - (libcraft_items::Item::NetheriteHoe, 9f32), + (libcraft_items::Item::StoneSword, 1.5f32), + (libcraft_items::Item::StoneAxe, 4f32), + (libcraft_items::Item::StoneHoe, 4f32), + (libcraft_items::Item::GoldenSword, 1.5f32), (libcraft_items::Item::GoldenAxe, 12f32), + (libcraft_items::Item::GoldenHoe, 12f32), (libcraft_items::Item::IronSword, 1.5f32), - (libcraft_items::Item::WoodenSword, 1.5f32), - (libcraft_items::Item::DiamondAxe, 8f32), + (libcraft_items::Item::IronAxe, 6f32), + (libcraft_items::Item::IronHoe, 6f32), (libcraft_items::Item::DiamondSword, 1.5f32), - (libcraft_items::Item::StoneAxe, 4f32), + (libcraft_items::Item::DiamondAxe, 8f32), + (libcraft_items::Item::DiamondHoe, 8f32), + (libcraft_items::Item::NetheriteSword, 1.5f32), (libcraft_items::Item::NetheriteAxe, 9f32), - (libcraft_items::Item::StoneHoe, 4f32), - (libcraft_items::Item::IronHoe, 6f32), - (libcraft_items::Item::GoldenHoe, 12f32), - (libcraft_items::Item::GoldenSword, 1.5f32), + (libcraft_items::Item::NetheriteHoe, 9f32), + (libcraft_items::Item::Shears, 15f32), ]; - pub const LEAVES: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::WoodenSword, 1.5f32), - (libcraft_items::Item::StoneSword, 1.5f32), - (libcraft_items::Item::IronSword, 1.5f32), - (libcraft_items::Item::NetheriteSword, 1.5f32), - (libcraft_items::Item::Shears, 15f32), - (libcraft_items::Item::DiamondSword, 1.5f32), - (libcraft_items::Item::GoldenSword, 1.5f32), - ]; - pub const MINEABLE_WITH_SHOVEL: &[(libcraft_items::Item, f32)] = &[ - (libcraft_items::Item::StoneShovel, 4f32), - (libcraft_items::Item::IronShovel, 6f32), - (libcraft_items::Item::WoodenShovel, 2f32), - (libcraft_items::Item::GoldenShovel, 12f32), - (libcraft_items::Item::DiamondShovel, 8f32), - (libcraft_items::Item::NetheriteShovel, 9f32), - ]; } #[derive( Copy, @@ -1981,11813 +1981,11813 @@ impl BlockKind { #[inline] pub fn id(&self) -> u32 { match self { - BlockKind::SpruceSlab => 467u32, - BlockKind::CyanWool => 117u32, - BlockKind::KelpPlant => 589u32, - BlockKind::Bamboo => 636u32, - BlockKind::LightGrayBanner => 438u32, - BlockKind::GrayStainedGlass => 221u32, - BlockKind::TwistingVinesPlant => 716u32, - BlockKind::AmethystBlock => 811u32, - BlockKind::Lilac => 425u32, - BlockKind::PottedLilyOfTheValley => 313u32, - BlockKind::BrainCoralFan => 618u32, - BlockKind::CrimsonWallSign => 738u32, - BlockKind::CyanStainedGlass => 223u32, - BlockKind::PinkTerracotta => 362u32, - BlockKind::MossyCobblestoneStairs => 645u32, - BlockKind::DeadHornCoralFan => 616u32, - BlockKind::StrippedSpruceWood => 57u32, - BlockKind::RedstoneWire => 154u32, - BlockKind::AttachedPumpkinStem => 253u32, - BlockKind::PottedJungleSapling => 298u32, - BlockKind::CyanConcretePowder => 581u32, - BlockKind::PurpleConcrete => 566u32, - BlockKind::RedGlazedTerracotta => 554u32, - BlockKind::StrippedBirchWood => 58u32, - BlockKind::JungleTrapdoor => 233u32, - BlockKind::Carrots => 319u32, - BlockKind::FireCoral => 610u32, - BlockKind::Calcite => 818u32, - BlockKind::WaxedOxidizedCutCopperStairs => 848u32, - BlockKind::InfestedCobblestone => 241u32, - BlockKind::RedStainedGlassPane => 386u32, - BlockKind::CommandBlock => 290u32, - BlockKind::DaylightDetector => 346u32, - BlockKind::SkeletonSkull => 327u32, - BlockKind::GraniteWall => 672u32, - BlockKind::LimeBed => 86u32, - BlockKind::BlueWallBanner => 457u32, - BlockKind::LightWeightedPressurePlate => 343u32, - BlockKind::BrownTerracotta => 368u32, - BlockKind::BrownWallBanner => 458u32, - BlockKind::SpruceFenceGate => 489u32, - BlockKind::DarkOakFenceGate => 493u32, - BlockKind::SmoothQuartzSlab => 662u32, - BlockKind::RedSandstone => 462u32, - BlockKind::DarkOakLeaves => 67u32, - BlockKind::Gravel => 30u32, - BlockKind::LightGrayCandleCake => 803u32, - BlockKind::RawGoldBlock => 895u32, - BlockKind::Cake => 212u32, - BlockKind::WitherRose => 136u32, - BlockKind::RedTerracotta => 370u32, - BlockKind::StoneSlab => 472u32, - BlockKind::CyanGlazedTerracotta => 549u32, - BlockKind::PolishedBlackstone => 761u32, - BlockKind::DeadBubbleCoral => 604u32, - BlockKind::AcaciaFenceGate => 492u32, - BlockKind::RedConcretePowder => 586u32, - BlockKind::PolishedGraniteStairs => 641u32, - BlockKind::PurpleStainedGlass => 224u32, - BlockKind::SmoothStone => 485u32, - BlockKind::EndStoneBricks => 510u32, - BlockKind::SpruceLeaves => 63u32, - BlockKind::GraniteSlab => 663u32, - BlockKind::PottedFloweringAzaleaBush => 897u32, - BlockKind::AcaciaSlab => 470u32, - BlockKind::GreenWallBanner => 459u32, - BlockKind::PinkConcretePowder => 578u32, - BlockKind::CutSandstone => 79u32, - BlockKind::BirchSign => 164u32, - BlockKind::AncientDebris => 749u32, - BlockKind::AndesiteSlab => 664u32, - BlockKind::RawIronBlock => 893u32, - BlockKind::InfestedMossyStoneBricks => 243u32, - BlockKind::CutRedSandstoneSlab => 483u32, + BlockKind::Air => 0u32, + BlockKind::Stone => 1u32, + BlockKind::Granite => 2u32, BlockKind::PolishedGranite => 3u32, - BlockKind::BlueBanner => 441u32, - BlockKind::SmoothSandstone => 486u32, - BlockKind::ChiseledSandstone => 78u32, - BlockKind::Repeater => 213u32, + BlockKind::Diorite => 4u32, + BlockKind::PolishedDiorite => 5u32, + BlockKind::Andesite => 6u32, + BlockKind::PolishedAndesite => 7u32, + BlockKind::GrassBlock => 8u32, + BlockKind::Dirt => 9u32, + BlockKind::CoarseDirt => 10u32, + BlockKind::Podzol => 11u32, + BlockKind::Cobblestone => 12u32, + BlockKind::OakPlanks => 13u32, + BlockKind::SprucePlanks => 14u32, + BlockKind::BirchPlanks => 15u32, + BlockKind::JunglePlanks => 16u32, + BlockKind::AcaciaPlanks => 17u32, + BlockKind::DarkOakPlanks => 18u32, + BlockKind::OakSapling => 19u32, + BlockKind::SpruceSapling => 20u32, + BlockKind::BirchSapling => 21u32, + BlockKind::JungleSapling => 22u32, + BlockKind::AcaciaSapling => 23u32, + BlockKind::DarkOakSapling => 24u32, + BlockKind::Bedrock => 25u32, + BlockKind::Water => 26u32, + BlockKind::Lava => 27u32, + BlockKind::Sand => 28u32, + BlockKind::RedSand => 29u32, + BlockKind::Gravel => 30u32, + BlockKind::GoldOre => 31u32, + BlockKind::DeepslateGoldOre => 32u32, + BlockKind::IronOre => 33u32, + BlockKind::DeepslateIronOre => 34u32, + BlockKind::CoalOre => 35u32, + BlockKind::DeepslateCoalOre => 36u32, + BlockKind::NetherGoldOre => 37u32, + BlockKind::OakLog => 38u32, + BlockKind::SpruceLog => 39u32, + BlockKind::BirchLog => 40u32, + BlockKind::JungleLog => 41u32, + BlockKind::AcaciaLog => 42u32, + BlockKind::DarkOakLog => 43u32, + BlockKind::StrippedSpruceLog => 44u32, + BlockKind::StrippedBirchLog => 45u32, + BlockKind::StrippedJungleLog => 46u32, + BlockKind::StrippedAcaciaLog => 47u32, + BlockKind::StrippedDarkOakLog => 48u32, + BlockKind::StrippedOakLog => 49u32, + BlockKind::OakWood => 50u32, + BlockKind::SpruceWood => 51u32, + BlockKind::BirchWood => 52u32, + BlockKind::JungleWood => 53u32, + BlockKind::AcaciaWood => 54u32, + BlockKind::DarkOakWood => 55u32, + BlockKind::StrippedOakWood => 56u32, + BlockKind::StrippedSpruceWood => 57u32, + BlockKind::StrippedBirchWood => 58u32, + BlockKind::StrippedJungleWood => 59u32, + BlockKind::StrippedAcaciaWood => 60u32, BlockKind::StrippedDarkOakWood => 61u32, - BlockKind::MagentaTerracotta => 358u32, - BlockKind::GreenShulkerBox => 537u32, - BlockKind::WarpedStairs => 731u32, - BlockKind::StoneStairs => 647u32, - BlockKind::BrownCarpet => 417u32, - BlockKind::WarpedFenceGate => 729u32, - BlockKind::SpruceTrapdoor => 231u32, - BlockKind::ExposedCutCopperSlab => 838u32, - BlockKind::LightGrayTerracotta => 364u32, - BlockKind::BlackTerracotta => 371u32, - BlockKind::WaxedWeatheredCutCopperSlab => 853u32, - BlockKind::FireCoralBlock => 600u32, - BlockKind::BlastFurnace => 684u32, + BlockKind::OakLeaves => 62u32, + BlockKind::SpruceLeaves => 63u32, + BlockKind::BirchLeaves => 64u32, + BlockKind::JungleLeaves => 65u32, + BlockKind::AcaciaLeaves => 66u32, + BlockKind::DarkOakLeaves => 67u32, + BlockKind::AzaleaLeaves => 68u32, + BlockKind::FloweringAzaleaLeaves => 69u32, + BlockKind::Sponge => 70u32, + BlockKind::WetSponge => 71u32, + BlockKind::Glass => 72u32, + BlockKind::LapisOre => 73u32, + BlockKind::DeepslateLapisOre => 74u32, + BlockKind::LapisBlock => 75u32, + BlockKind::Dispenser => 76u32, + BlockKind::Sandstone => 77u32, + BlockKind::ChiseledSandstone => 78u32, + BlockKind::CutSandstone => 79u32, + BlockKind::NoteBlock => 80u32, + BlockKind::WhiteBed => 81u32, + BlockKind::OrangeBed => 82u32, + BlockKind::MagentaBed => 83u32, + BlockKind::LightBlueBed => 84u32, + BlockKind::YellowBed => 85u32, + BlockKind::LimeBed => 86u32, + BlockKind::PinkBed => 87u32, + BlockKind::GrayBed => 88u32, + BlockKind::LightGrayBed => 89u32, + BlockKind::CyanBed => 90u32, + BlockKind::PurpleBed => 91u32, + BlockKind::BlueBed => 92u32, + BlockKind::BrownBed => 93u32, + BlockKind::GreenBed => 94u32, + BlockKind::RedBed => 95u32, + BlockKind::BlackBed => 96u32, + BlockKind::PoweredRail => 97u32, + BlockKind::DetectorRail => 98u32, + BlockKind::StickyPiston => 99u32, + BlockKind::Cobweb => 100u32, + BlockKind::Grass => 101u32, + BlockKind::Fern => 102u32, + BlockKind::DeadBush => 103u32, + BlockKind::Seagrass => 104u32, + BlockKind::TallSeagrass => 105u32, + BlockKind::Piston => 106u32, + BlockKind::PistonHead => 107u32, + BlockKind::WhiteWool => 108u32, + BlockKind::OrangeWool => 109u32, + BlockKind::MagentaWool => 110u32, + BlockKind::LightBlueWool => 111u32, + BlockKind::YellowWool => 112u32, + BlockKind::LimeWool => 113u32, + BlockKind::PinkWool => 114u32, + BlockKind::GrayWool => 115u32, + BlockKind::LightGrayWool => 116u32, + BlockKind::CyanWool => 117u32, + BlockKind::PurpleWool => 118u32, BlockKind::BlueWool => 119u32, - BlockKind::WaxedExposedCutCopper => 846u32, - BlockKind::WaxedWeatheredCutCopperStairs => 849u32, - BlockKind::BrainCoralBlock => 598u32, - BlockKind::PolishedBlackstoneButton => 772u32, - BlockKind::BlueOrchid => 127u32, - BlockKind::PolishedBlackstoneWall => 773u32, - BlockKind::WhiteGlazedTerracotta => 540u32, - BlockKind::ChippedAnvil => 340u32, - BlockKind::Poppy => 126u32, - BlockKind::IronTrapdoor => 393u32, + BlockKind::BrownWool => 120u32, BlockKind::GreenWool => 121u32, - BlockKind::PolishedDioriteStairs => 644u32, - BlockKind::BirchWallSign => 174u32, - BlockKind::LightBlueTerracotta => 359u32, - BlockKind::SoulLantern => 693u32, - BlockKind::DeepslateEmeraldOre => 282u32, - BlockKind::PurpleCandle => 788u32, - BlockKind::Tripwire => 285u32, - BlockKind::Blackstone => 757u32, - BlockKind::ExposedCutCopperStairs => 834u32, + BlockKind::RedWool => 122u32, BlockKind::BlackWool => 123u32, - BlockKind::BlackBanner => 445u32, - BlockKind::Candle => 777u32, - BlockKind::BlackstoneWall => 759u32, + BlockKind::MovingPiston => 124u32, + BlockKind::Dandelion => 125u32, + BlockKind::Poppy => 126u32, + BlockKind::BlueOrchid => 127u32, + BlockKind::Allium => 128u32, + BlockKind::AzureBluet => 129u32, + BlockKind::RedTulip => 130u32, + BlockKind::OrangeTulip => 131u32, + BlockKind::WhiteTulip => 132u32, + BlockKind::PinkTulip => 133u32, + BlockKind::OxeyeDaisy => 134u32, + BlockKind::Cornflower => 135u32, + BlockKind::WitherRose => 136u32, + BlockKind::LilyOfTheValley => 137u32, + BlockKind::BrownMushroom => 138u32, + BlockKind::RedMushroom => 139u32, + BlockKind::GoldBlock => 140u32, + BlockKind::IronBlock => 141u32, BlockKind::Bricks => 142u32, - BlockKind::OakWallSign => 172u32, - BlockKind::GrayBed => 88u32, - BlockKind::MagmaBlock => 517u32, - BlockKind::DarkOakSlab => 471u32, - BlockKind::SmoothRedSandstoneSlab => 656u32, - BlockKind::Obsidian => 146u32, - BlockKind::Glowstone => 208u32, - BlockKind::MagentaBed => 83u32, - BlockKind::DarkPrismarineSlab => 402u32, - BlockKind::Fern => 102u32, - BlockKind::DeadBubbleCoralBlock => 594u32, - BlockKind::GraniteStairs => 650u32, - BlockKind::PoweredRail => 97u32, - BlockKind::BubbleColumn => 640u32, - BlockKind::WhiteWool => 108u32, - BlockKind::BirchFenceGate => 490u32, - BlockKind::Dispenser => 76u32, - BlockKind::LightGrayStainedGlass => 222u32, - BlockKind::StructureBlock => 740u32, - BlockKind::PottedAzaleaBush => 896u32, - BlockKind::PurpleShulkerBox => 534u32, + BlockKind::Tnt => 143u32, + BlockKind::Bookshelf => 144u32, BlockKind::MossyCobblestone => 145u32, - BlockKind::OakButton => 321u32, - BlockKind::PlayerWallHead => 334u32, - BlockKind::PinkCandleCake => 801u32, - BlockKind::StoneBrickStairs => 261u32, - BlockKind::Campfire => 694u32, - BlockKind::RedstoneWallTorch => 190u32, - BlockKind::LightBlueWallBanner => 449u32, - BlockKind::AndesiteStairs => 651u32, - BlockKind::Prismarine => 394u32, - BlockKind::CrimsonSlab => 720u32, - BlockKind::Sunflower => 424u32, - BlockKind::DeadTubeCoralFan => 612u32, - BlockKind::OakLog => 38u32, - BlockKind::ExposedCopper => 824u32, - BlockKind::YellowGlazedTerracotta => 544u32, - BlockKind::AndesiteWall => 675u32, - BlockKind::BlackCandle => 793u32, - BlockKind::Dandelion => 125u32, - BlockKind::WhiteCandleCake => 795u32, - BlockKind::EmeraldOre => 281u32, - BlockKind::PurpleTerracotta => 366u32, - BlockKind::WeepingVines => 713u32, - BlockKind::CyanShulkerBox => 533u32, - BlockKind::NetherPortal => 209u32, - BlockKind::PolishedAndesiteSlab => 666u32, - BlockKind::PolishedBlackstoneBrickWall => 767u32, - BlockKind::JungleLeaves => 65u32, - BlockKind::CrackedNetherBricks => 775u32, - BlockKind::YellowCandleCake => 799u32, - BlockKind::BrownGlazedTerracotta => 552u32, + BlockKind::Obsidian => 146u32, BlockKind::Torch => 147u32, - BlockKind::PottedRedMushroom => 315u32, - BlockKind::PottedBlueOrchid => 304u32, - BlockKind::WaxedOxidizedCutCopper => 844u32, - BlockKind::PurpleBed => 91u32, - BlockKind::LimeConcretePowder => 577u32, - BlockKind::SmoothQuartz => 487u32, - BlockKind::WarpedWartBlock => 703u32, - BlockKind::WaxedExposedCutCopperStairs => 850u32, - BlockKind::PottedPinkTulip => 310u32, - BlockKind::Cobweb => 100u32, - BlockKind::MossyStoneBricks => 237u32, - BlockKind::LightBlueCarpet => 408u32, - BlockKind::PinkBanner => 436u32, - BlockKind::Target => 743u32, - BlockKind::DarkOakSign => 167u32, - BlockKind::StoneBricks => 236u32, - BlockKind::GildedBlackstone => 768u32, - BlockKind::StrippedDarkOakLog => 48u32, - BlockKind::ChiseledRedSandstone => 463u32, - BlockKind::LightBlueConcrete => 559u32, - BlockKind::DioriteStairs => 654u32, - BlockKind::RedCarpet => 419u32, - BlockKind::RoseBush => 426u32, - BlockKind::RedShulkerBox => 538u32, + BlockKind::WallTorch => 148u32, + BlockKind::Fire => 149u32, + BlockKind::SoulFire => 150u32, + BlockKind::Spawner => 151u32, + BlockKind::OakStairs => 152u32, + BlockKind::Chest => 153u32, + BlockKind::RedstoneWire => 154u32, + BlockKind::DiamondOre => 155u32, + BlockKind::DeepslateDiamondOre => 156u32, + BlockKind::DiamondBlock => 157u32, + BlockKind::CraftingTable => 158u32, + BlockKind::Wheat => 159u32, + BlockKind::Farmland => 160u32, + BlockKind::Furnace => 161u32, + BlockKind::OakSign => 162u32, + BlockKind::SpruceSign => 163u32, + BlockKind::BirchSign => 164u32, + BlockKind::AcaciaSign => 165u32, + BlockKind::JungleSign => 166u32, + BlockKind::DarkOakSign => 167u32, + BlockKind::OakDoor => 168u32, + BlockKind::Ladder => 169u32, + BlockKind::Rail => 170u32, + BlockKind::CobblestoneStairs => 171u32, + BlockKind::OakWallSign => 172u32, BlockKind::SpruceWallSign => 173u32, - BlockKind::PolishedBasalt => 205u32, - BlockKind::LightGrayConcrete => 564u32, + BlockKind::BirchWallSign => 174u32, + BlockKind::AcaciaWallSign => 175u32, + BlockKind::JungleWallSign => 176u32, + BlockKind::DarkOakWallSign => 177u32, + BlockKind::Lever => 178u32, + BlockKind::StonePressurePlate => 179u32, + BlockKind::IronDoor => 180u32, + BlockKind::OakPressurePlate => 181u32, + BlockKind::SprucePressurePlate => 182u32, + BlockKind::BirchPressurePlate => 183u32, + BlockKind::JunglePressurePlate => 184u32, + BlockKind::AcaciaPressurePlate => 185u32, + BlockKind::DarkOakPressurePlate => 186u32, + BlockKind::RedstoneOre => 187u32, + BlockKind::DeepslateRedstoneOre => 188u32, + BlockKind::RedstoneTorch => 189u32, + BlockKind::RedstoneWallTorch => 190u32, BlockKind::StoneButton => 191u32, - BlockKind::SmoothBasalt => 892u32, - BlockKind::GreenCandleCake => 808u32, - BlockKind::PottedAcaciaSapling => 299u32, - BlockKind::QuartzPillar => 352u32, - BlockKind::BrownBed => 93u32, - BlockKind::CutCopperStairs => 835u32, - BlockKind::TubeCoralWallFan => 627u32, - BlockKind::BlackBed => 96u32, - BlockKind::DeadFireCoral => 605u32, - BlockKind::AcaciaSapling => 23u32, - BlockKind::JungleSlab => 469u32, - BlockKind::JungleButton => 324u32, - BlockKind::WaxedCutCopper => 847u32, - BlockKind::MagentaCandle => 780u32, - BlockKind::LightGrayBed => 89u32, - BlockKind::TrappedChest => 342u32, - BlockKind::LightBlueStainedGlassPane => 375u32, - BlockKind::Spawner => 151u32, - BlockKind::Bedrock => 25u32, - BlockKind::PumpkinStem => 255u32, - BlockKind::NetherBrickWall => 674u32, - BlockKind::CutSandstoneSlab => 475u32, - BlockKind::CrimsonFenceGate => 728u32, - BlockKind::Deepslate => 871u32, - BlockKind::InfestedCrackedStoneBricks => 244u32, - BlockKind::BlackWallBanner => 461u32, - BlockKind::DeepslateTileWall => 883u32, - BlockKind::DetectorRail => 98u32, - BlockKind::OxeyeDaisy => 134u32, - BlockKind::GreenConcrete => 569u32, - BlockKind::OakPlanks => 13u32, - BlockKind::GrayCarpet => 412u32, + BlockKind::Snow => 192u32, BlockKind::Ice => 193u32, - BlockKind::AcaciaStairs => 388u32, - BlockKind::Terracotta => 421u32, - BlockKind::PolishedAndesiteStairs => 653u32, - BlockKind::MagentaWallBanner => 448u32, - BlockKind::PottedCactus => 318u32, - BlockKind::YellowConcrete => 560u32, - BlockKind::AmethystCluster => 813u32, - BlockKind::StrippedBirchLog => 45u32, - BlockKind::DeepslateBrickStairs => 885u32, - BlockKind::Cauldron => 270u32, - BlockKind::Grindstone => 687u32, - BlockKind::BlackCandleCake => 810u32, - BlockKind::PurpleWallBanner => 456u32, - BlockKind::DarkOakWallSign => 177u32, - BlockKind::DeadFireCoralWallFan => 625u32, - BlockKind::BuddingAmethyst => 812u32, - BlockKind::JungleWallSign => 176u32, - BlockKind::GreenTerracotta => 369u32, - BlockKind::BlueTerracotta => 367u32, - BlockKind::SmallAmethystBud => 816u32, - BlockKind::PottedWarpedRoots => 755u32, + BlockKind::SnowBlock => 194u32, + BlockKind::Cactus => 195u32, + BlockKind::Clay => 196u32, + BlockKind::SugarCane => 197u32, + BlockKind::Jukebox => 198u32, + BlockKind::OakFence => 199u32, + BlockKind::Pumpkin => 200u32, + BlockKind::Netherrack => 201u32, BlockKind::SoulSand => 202u32, - BlockKind::GreenConcretePowder => 585u32, - BlockKind::PolishedBlackstonePressurePlate => 771u32, - BlockKind::NetherBrickFence => 265u32, - BlockKind::MossyCobblestoneSlab => 659u32, - BlockKind::SporeBlossom => 861u32, - BlockKind::MossyStoneBrickSlab => 657u32, - BlockKind::YellowCarpet => 409u32, - BlockKind::PolishedBlackstoneBricks => 762u32, - BlockKind::LightBlueShulkerBox => 527u32, + BlockKind::SoulSoil => 203u32, + BlockKind::Basalt => 204u32, + BlockKind::PolishedBasalt => 205u32, BlockKind::SoulTorch => 206u32, - BlockKind::YellowWallBanner => 450u32, - BlockKind::WarpedSign => 737u32, - BlockKind::DeadBrainCoral => 603u32, - BlockKind::DeadBush => 103u32, - BlockKind::OakLeaves => 62u32, - BlockKind::MagentaStainedGlassPane => 374u32, - BlockKind::GrayStainedGlassPane => 379u32, - BlockKind::GrayShulkerBox => 531u32, - BlockKind::Fire => 149u32, - BlockKind::FireCoralWallFan => 630u32, - BlockKind::SeaPickle => 632u32, - BlockKind::StructureVoid => 521u32, - BlockKind::CobblestoneWall => 292u32, - BlockKind::GrayBanner => 437u32, - BlockKind::YellowBanner => 434u32, - BlockKind::OakDoor => 168u32, - BlockKind::PurpleGlazedTerracotta => 550u32, - BlockKind::RedConcrete => 570u32, - BlockKind::PottedBamboo => 637u32, - BlockKind::SkeletonWallSkull => 328u32, - BlockKind::WitherSkeletonWallSkull => 330u32, - BlockKind::WaxedCutCopperStairs => 851u32, - BlockKind::ChorusFlower => 506u32, - BlockKind::StonePressurePlate => 179u32, - BlockKind::StrippedAcaciaLog => 47u32, - BlockKind::YellowConcretePowder => 576u32, + BlockKind::SoulWallTorch => 207u32, + BlockKind::Glowstone => 208u32, + BlockKind::NetherPortal => 209u32, + BlockKind::CarvedPumpkin => 210u32, + BlockKind::JackOLantern => 211u32, + BlockKind::Cake => 212u32, + BlockKind::Repeater => 213u32, + BlockKind::WhiteStainedGlass => 214u32, + BlockKind::OrangeStainedGlass => 215u32, + BlockKind::MagentaStainedGlass => 216u32, + BlockKind::LightBlueStainedGlass => 217u32, + BlockKind::YellowStainedGlass => 218u32, + BlockKind::LimeStainedGlass => 219u32, + BlockKind::PinkStainedGlass => 220u32, + BlockKind::GrayStainedGlass => 221u32, + BlockKind::LightGrayStainedGlass => 222u32, + BlockKind::CyanStainedGlass => 223u32, + BlockKind::PurpleStainedGlass => 224u32, + BlockKind::BlueStainedGlass => 225u32, + BlockKind::BrownStainedGlass => 226u32, + BlockKind::GreenStainedGlass => 227u32, + BlockKind::RedStainedGlass => 228u32, + BlockKind::BlackStainedGlass => 229u32, + BlockKind::OakTrapdoor => 230u32, + BlockKind::SpruceTrapdoor => 231u32, + BlockKind::BirchTrapdoor => 232u32, + BlockKind::JungleTrapdoor => 233u32, + BlockKind::AcaciaTrapdoor => 234u32, + BlockKind::DarkOakTrapdoor => 235u32, + BlockKind::StoneBricks => 236u32, + BlockKind::MossyStoneBricks => 237u32, + BlockKind::CrackedStoneBricks => 238u32, + BlockKind::ChiseledStoneBricks => 239u32, + BlockKind::InfestedStone => 240u32, + BlockKind::InfestedCobblestone => 241u32, + BlockKind::InfestedStoneBricks => 242u32, + BlockKind::InfestedMossyStoneBricks => 243u32, + BlockKind::InfestedCrackedStoneBricks => 244u32, + BlockKind::InfestedChiseledStoneBricks => 245u32, + BlockKind::BrownMushroomBlock => 246u32, + BlockKind::RedMushroomBlock => 247u32, + BlockKind::MushroomStem => 248u32, BlockKind::IronBars => 249u32, - BlockKind::DragonEgg => 277u32, - BlockKind::Farmland => 160u32, - BlockKind::OrangeGlazedTerracotta => 541u32, - BlockKind::DeepslateCoalOre => 36u32, - BlockKind::RedNetherBrickSlab => 665u32, - BlockKind::NoteBlock => 80u32, - BlockKind::EndStoneBrickWall => 678u32, - BlockKind::MagentaConcrete => 558u32, - BlockKind::StrippedWarpedStem => 698u32, - BlockKind::DioriteWall => 679u32, - BlockKind::ShulkerBox => 523u32, - BlockKind::Cactus => 195u32, - BlockKind::StrippedSpruceLog => 44u32, - BlockKind::WhiteShulkerBox => 524u32, - BlockKind::Potatoes => 320u32, - BlockKind::Mycelium => 262u32, - BlockKind::BrownConcretePowder => 584u32, - BlockKind::ExposedCutCopper => 830u32, - BlockKind::PinkWallBanner => 452u32, - BlockKind::DarkOakFence => 498u32, - BlockKind::PottedDarkOakSapling => 300u32, - BlockKind::DeadFireCoralBlock => 595u32, - BlockKind::DeadBubbleCoralFan => 614u32, - BlockKind::NetherWartBlock => 518u32, - BlockKind::BubbleCoralWallFan => 629u32, - BlockKind::ChorusPlant => 505u32, - BlockKind::CrimsonHyphae => 708u32, - BlockKind::DeepslateCopperOre => 827u32, + BlockKind::Chain => 250u32, + BlockKind::GlassPane => 251u32, + BlockKind::Melon => 252u32, + BlockKind::AttachedPumpkinStem => 253u32, + BlockKind::AttachedMelonStem => 254u32, + BlockKind::PumpkinStem => 255u32, BlockKind::MelonStem => 256u32, - BlockKind::WhiteTerracotta => 356u32, - BlockKind::LilyOfTheValley => 137u32, - BlockKind::EndGateway => 513u32, - BlockKind::Dirt => 9u32, - BlockKind::VoidAir => 638u32, - BlockKind::PinkStainedGlassPane => 378u32, - BlockKind::PurpleWool => 118u32, - BlockKind::CrimsonNylium => 710u32, - BlockKind::GrayCandleCake => 802u32, - BlockKind::StickyPiston => 99u32, - BlockKind::SculkSensor => 821u32, - BlockKind::BirchStairs => 288u32, - BlockKind::DarkOakStairs => 389u32, - BlockKind::DriedKelpBlock => 590u32, - BlockKind::RedSandstoneStairs => 465u32, - BlockKind::CrimsonRoots => 717u32, - BlockKind::MagentaStainedGlass => 216u32, - BlockKind::DamagedAnvil => 341u32, - BlockKind::IronOre => 33u32, - BlockKind::BlueConcretePowder => 583u32, - BlockKind::PackedIce => 423u32, - BlockKind::RedSandstoneSlab => 482u32, - BlockKind::YellowStainedGlassPane => 376u32, - BlockKind::PrismarineStairs => 397u32, BlockKind::Vine => 257u32, - BlockKind::BirchPressurePlate => 183u32, - BlockKind::SmoothSandstoneSlab => 661u32, - BlockKind::SoulFire => 150u32, - BlockKind::GreenStainedGlass => 227u32, - BlockKind::GrayWool => 115u32, - BlockKind::BirchSlab => 468u32, - BlockKind::Snow => 192u32, - BlockKind::TubeCoral => 607u32, - BlockKind::PolishedGraniteSlab => 655u32, - BlockKind::BlackConcretePowder => 587u32, - BlockKind::Stonecutter => 690u32, - BlockKind::Jigsaw => 741u32, - BlockKind::Clay => 196u32, - BlockKind::Sandstone => 77u32, - BlockKind::LapisOre => 73u32, - BlockKind::WhiteStainedGlass => 214u32, - BlockKind::CyanCarpet => 414u32, - BlockKind::BubbleCoral => 609u32, - BlockKind::AcaciaFence => 497u32, - BlockKind::Loom => 681u32, - BlockKind::SpruceSign => 163u32, - BlockKind::OxidizedCutCopperSlab => 836u32, - BlockKind::CobbledDeepslate => 872u32, - BlockKind::PolishedDeepslateStairs => 877u32, - BlockKind::TurtleEgg => 591u32, - BlockKind::IronDoor => 180u32, - BlockKind::WaxedWeatheredCopper => 841u32, - BlockKind::JunglePressurePlate => 184u32, - BlockKind::RespawnAnchor => 751u32, - BlockKind::LightGrayWool => 116u32, - BlockKind::RedstoneBlock => 347u32, - BlockKind::SpruceFence => 494u32, - BlockKind::YellowWool => 112u32, - BlockKind::Tnt => 143u32, - BlockKind::JungleFence => 496u32, - BlockKind::CrimsonDoor => 734u32, - BlockKind::BirchFence => 495u32, - BlockKind::JungleLog => 41u32, - BlockKind::LimeBanner => 435u32, - BlockKind::QuartzSlab => 481u32, - BlockKind::AcaciaTrapdoor => 234u32, - BlockKind::CryingObsidian => 750u32, - BlockKind::DeadFireCoralFan => 615u32, - BlockKind::PurpurStairs => 509u32, - BlockKind::LargeFern => 429u32, - BlockKind::HangingRoots => 869u32, - BlockKind::DirtPath => 512u32, - BlockKind::DarkOakPlanks => 18u32, - BlockKind::GoldBlock => 140u32, - BlockKind::Beehive => 745u32, - BlockKind::AcaciaLeaves => 66u32, - BlockKind::PinkTulip => 133u32, - BlockKind::DeepslateBrickSlab => 886u32, - BlockKind::Beetroots => 511u32, - BlockKind::BlackShulkerBox => 539u32, - BlockKind::IronBlock => 141u32, - BlockKind::BeeNest => 744u32, - BlockKind::ChiseledPolishedBlackstone => 764u32, - BlockKind::MagentaConcretePowder => 574u32, - BlockKind::DeepslateLapisOre => 74u32, - BlockKind::OrangeTulip => 131u32, - BlockKind::BlueCandleCake => 806u32, - BlockKind::PinkWool => 114u32, - BlockKind::JungleSign => 166u32, - BlockKind::BlackConcrete => 571u32, - BlockKind::DeadHornCoral => 606u32, - BlockKind::WarpedRoots => 704u32, - BlockKind::JungleSapling => 22u32, - BlockKind::Beacon => 291u32, + BlockKind::GlowLichen => 258u32, + BlockKind::OakFenceGate => 259u32, + BlockKind::BrickStairs => 260u32, + BlockKind::StoneBrickStairs => 261u32, + BlockKind::Mycelium => 262u32, + BlockKind::LilyPad => 263u32, + BlockKind::NetherBricks => 264u32, + BlockKind::NetherBrickFence => 265u32, + BlockKind::NetherBrickStairs => 266u32, + BlockKind::NetherWart => 267u32, + BlockKind::EnchantingTable => 268u32, + BlockKind::BrewingStand => 269u32, + BlockKind::Cauldron => 270u32, + BlockKind::WaterCauldron => 271u32, + BlockKind::LavaCauldron => 272u32, + BlockKind::PowderSnowCauldron => 273u32, + BlockKind::EndPortal => 274u32, + BlockKind::EndPortalFrame => 275u32, + BlockKind::EndStone => 276u32, + BlockKind::DragonEgg => 277u32, + BlockKind::RedstoneLamp => 278u32, + BlockKind::Cocoa => 279u32, + BlockKind::SandstoneStairs => 280u32, + BlockKind::EmeraldOre => 281u32, + BlockKind::DeepslateEmeraldOre => 282u32, + BlockKind::EnderChest => 283u32, + BlockKind::TripwireHook => 284u32, + BlockKind::Tripwire => 285u32, + BlockKind::EmeraldBlock => 286u32, BlockKind::SpruceStairs => 287u32, - BlockKind::PottedSpruceSapling => 296u32, - BlockKind::BirchWood => 52u32, - BlockKind::RedstoneTorch => 189u32, - BlockKind::WitherSkeletonSkull => 329u32, - BlockKind::AcaciaWood => 54u32, - BlockKind::LightGrayCarpet => 413u32, - BlockKind::MediumAmethystBud => 815u32, - BlockKind::BirchSapling => 21u32, - BlockKind::RawCopperBlock => 894u32, - BlockKind::MossyStoneBrickWall => 671u32, - BlockKind::InfestedStone => 240u32, - BlockKind::SnowBlock => 194u32, + BlockKind::BirchStairs => 288u32, BlockKind::JungleStairs => 289u32, - BlockKind::BrickSlab => 478u32, - BlockKind::ChiseledQuartzBlock => 351u32, - BlockKind::NetherGoldOre => 37u32, - BlockKind::StrippedCrimsonHyphae => 709u32, - BlockKind::DeadHornCoralBlock => 596u32, - BlockKind::CrimsonPressurePlate => 722u32, - BlockKind::DeepslateGoldOre => 32u32, - BlockKind::GrayCandle => 785u32, - BlockKind::WaterCauldron => 271u32, - BlockKind::Scaffolding => 680u32, - BlockKind::DioriteSlab => 667u32, - BlockKind::LightGrayGlazedTerracotta => 548u32, - BlockKind::YellowShulkerBox => 528u32, - BlockKind::WaxedOxidizedCopper => 843u32, - BlockKind::BlackStainedGlass => 229u32, - BlockKind::CrimsonFence => 724u32, - BlockKind::OrangeCandle => 779u32, - BlockKind::EndStoneBrickSlab => 660u32, - BlockKind::PolishedDioriteSlab => 658u32, - BlockKind::OrangeShulkerBox => 525u32, - BlockKind::PurpurSlab => 484u32, - BlockKind::StrippedWarpedHyphae => 700u32, - BlockKind::BrownMushroomBlock => 246u32, - BlockKind::HornCoralBlock => 601u32, - BlockKind::PottedWhiteTulip => 309u32, - BlockKind::CrackedPolishedBlackstoneBricks => 763u32, - BlockKind::PottedCrimsonFungus => 752u32, - BlockKind::Stone => 1u32, - BlockKind::LightBlueCandle => 781u32, - BlockKind::BigDripleaf => 866u32, - BlockKind::ChiseledNetherBricks => 774u32, - BlockKind::BrewingStand => 269u32, - BlockKind::WeatheredCutCopper => 829u32, - BlockKind::TallSeagrass => 105u32, - BlockKind::HayBlock => 404u32, - BlockKind::SoulCampfire => 695u32, - BlockKind::LightBlueStainedGlass => 217u32, - BlockKind::CrackedDeepslateTiles => 890u32, - BlockKind::NetherBrickSlab => 480u32, - BlockKind::BlueGlazedTerracotta => 551u32, - BlockKind::BrownCandleCake => 807u32, - BlockKind::RedSand => 29u32, - BlockKind::OrangeWool => 109u32, - BlockKind::EndStoneBrickStairs => 646u32, - BlockKind::Azalea => 862u32, + BlockKind::CommandBlock => 290u32, + BlockKind::Beacon => 291u32, + BlockKind::CobblestoneWall => 292u32, + BlockKind::MossyCobblestoneWall => 293u32, + BlockKind::FlowerPot => 294u32, + BlockKind::PottedOakSapling => 295u32, + BlockKind::PottedSpruceSapling => 296u32, + BlockKind::PottedBirchSapling => 297u32, + BlockKind::PottedJungleSapling => 298u32, + BlockKind::PottedAcaciaSapling => 299u32, + BlockKind::PottedDarkOakSapling => 300u32, + BlockKind::PottedFern => 301u32, BlockKind::PottedDandelion => 302u32, - BlockKind::OakPressurePlate => 181u32, - BlockKind::DripstoneBlock => 858u32, - BlockKind::CoalOre => 35u32, - BlockKind::SoulSoil => 203u32, - BlockKind::LightningRod => 856u32, - BlockKind::MushroomStem => 248u32, - BlockKind::FletchingTable => 686u32, - BlockKind::AcaciaPressurePlate => 185u32, - BlockKind::JungleWood => 53u32, - BlockKind::SmithingTable => 689u32, - BlockKind::GrayWallBanner => 453u32, - BlockKind::DeadBubbleCoralWallFan => 624u32, - BlockKind::WarpedStem => 697u32, - BlockKind::CyanConcrete => 565u32, - BlockKind::DarkOakWood => 55u32, - BlockKind::SweetBerryBush => 696u32, - BlockKind::LimeWool => 113u32, - BlockKind::BirchLeaves => 64u32, - BlockKind::OakFenceGate => 259u32, - BlockKind::LapisBlock => 75u32, - BlockKind::FireCoralFan => 620u32, + BlockKind::PottedPoppy => 303u32, + BlockKind::PottedBlueOrchid => 304u32, + BlockKind::PottedAllium => 305u32, + BlockKind::PottedAzureBluet => 306u32, + BlockKind::PottedRedTulip => 307u32, + BlockKind::PottedOrangeTulip => 308u32, + BlockKind::PottedWhiteTulip => 309u32, + BlockKind::PottedPinkTulip => 310u32, + BlockKind::PottedOxeyeDaisy => 311u32, + BlockKind::PottedCornflower => 312u32, + BlockKind::PottedLilyOfTheValley => 313u32, + BlockKind::PottedWitherRose => 314u32, + BlockKind::PottedRedMushroom => 315u32, + BlockKind::PottedBrownMushroom => 316u32, + BlockKind::PottedDeadBush => 317u32, + BlockKind::PottedCactus => 318u32, + BlockKind::Carrots => 319u32, + BlockKind::Potatoes => 320u32, + BlockKind::OakButton => 321u32, + BlockKind::SpruceButton => 322u32, + BlockKind::BirchButton => 323u32, + BlockKind::JungleButton => 324u32, + BlockKind::AcaciaButton => 325u32, BlockKind::DarkOakButton => 326u32, - BlockKind::PolishedAndesite => 7u32, - BlockKind::NetherQuartzOre => 348u32, - BlockKind::Light => 392u32, - BlockKind::PetrifiedOakSlab => 476u32, - BlockKind::PolishedDeepslate => 876u32, - BlockKind::HornCoralFan => 621u32, - BlockKind::BrainCoral => 608u32, - BlockKind::OakSapling => 19u32, - BlockKind::CrimsonSign => 736u32, - BlockKind::DeepslateIronOre => 34u32, - BlockKind::WeatheredCutCopperStairs => 833u32, - BlockKind::RedMushroom => 139u32, - BlockKind::StrippedJungleLog => 46u32, - BlockKind::PurpurBlock => 507u32, - BlockKind::CyanWallBanner => 455u32, - BlockKind::JungleFenceGate => 491u32, - BlockKind::CobblestoneStairs => 171u32, - BlockKind::Sponge => 70u32, - BlockKind::MagentaWool => 110u32, + BlockKind::SkeletonSkull => 327u32, + BlockKind::SkeletonWallSkull => 328u32, + BlockKind::WitherSkeletonSkull => 329u32, + BlockKind::WitherSkeletonWallSkull => 330u32, + BlockKind::ZombieHead => 331u32, + BlockKind::ZombieWallHead => 332u32, BlockKind::PlayerHead => 333u32, - BlockKind::PolishedDeepslateWall => 879u32, - BlockKind::Netherrack => 201u32, + BlockKind::PlayerWallHead => 334u32, + BlockKind::CreeperHead => 335u32, + BlockKind::CreeperWallHead => 336u32, + BlockKind::DragonHead => 337u32, + BlockKind::DragonWallHead => 338u32, + BlockKind::Anvil => 339u32, + BlockKind::ChippedAnvil => 340u32, + BlockKind::DamagedAnvil => 341u32, + BlockKind::TrappedChest => 342u32, + BlockKind::LightWeightedPressurePlate => 343u32, + BlockKind::HeavyWeightedPressurePlate => 344u32, + BlockKind::Comparator => 345u32, + BlockKind::DaylightDetector => 346u32, + BlockKind::RedstoneBlock => 347u32, + BlockKind::NetherQuartzOre => 348u32, + BlockKind::Hopper => 349u32, + BlockKind::QuartzBlock => 350u32, + BlockKind::ChiseledQuartzBlock => 351u32, + BlockKind::QuartzPillar => 352u32, + BlockKind::QuartzStairs => 353u32, + BlockKind::ActivatorRail => 354u32, + BlockKind::Dropper => 355u32, + BlockKind::WhiteTerracotta => 356u32, BlockKind::OrangeTerracotta => 357u32, - BlockKind::PottedCrimsonRoots => 754u32, - BlockKind::Chest => 153u32, - BlockKind::OxidizedCutCopperStairs => 832u32, - BlockKind::Jukebox => 198u32, - BlockKind::BrownStainedGlassPane => 384u32, - BlockKind::AttachedMelonStem => 254u32, - BlockKind::RepeatingCommandBlock => 514u32, - BlockKind::BrownStainedGlass => 226u32, - BlockKind::DeadTubeCoral => 602u32, - BlockKind::Seagrass => 104u32, - BlockKind::CobbledDeepslateSlab => 874u32, - BlockKind::SandstoneWall => 677u32, - BlockKind::FrostedIce => 516u32, - BlockKind::BirchLog => 40u32, - BlockKind::BrownMushroom => 138u32, - BlockKind::NetherBricks => 264u32, - BlockKind::OrangeCarpet => 406u32, - BlockKind::BubbleCoralFan => 619u32, - BlockKind::PottedWitherRose => 314u32, - BlockKind::OakStairs => 152u32, - BlockKind::Hopper => 349u32, - BlockKind::RedCandle => 792u32, - BlockKind::SpruceWood => 51u32, - BlockKind::PinkCandle => 784u32, - BlockKind::WhiteTulip => 132u32, - BlockKind::Ladder => 169u32, - BlockKind::BirchTrapdoor => 232u32, - BlockKind::BlackstoneStairs => 758u32, - BlockKind::DeepslateBrickWall => 887u32, - BlockKind::EmeraldBlock => 286u32, - BlockKind::Conduit => 634u32, + BlockKind::MagentaTerracotta => 358u32, + BlockKind::LightBlueTerracotta => 359u32, + BlockKind::YellowTerracotta => 360u32, + BlockKind::LimeTerracotta => 361u32, + BlockKind::PinkTerracotta => 362u32, BlockKind::GrayTerracotta => 363u32, - BlockKind::CutRedSandstone => 464u32, + BlockKind::LightGrayTerracotta => 364u32, BlockKind::CyanTerracotta => 365u32, - BlockKind::CoarseDirt => 10u32, - BlockKind::DarkPrismarine => 396u32, - BlockKind::SeaLantern => 403u32, - BlockKind::EndRod => 504u32, - BlockKind::PointedDripstone => 857u32, + BlockKind::PurpleTerracotta => 366u32, + BlockKind::BlueTerracotta => 367u32, + BlockKind::BrownTerracotta => 368u32, + BlockKind::GreenTerracotta => 369u32, + BlockKind::RedTerracotta => 370u32, + BlockKind::BlackTerracotta => 371u32, + BlockKind::WhiteStainedGlassPane => 372u32, + BlockKind::OrangeStainedGlassPane => 373u32, + BlockKind::MagentaStainedGlassPane => 374u32, + BlockKind::LightBlueStainedGlassPane => 375u32, + BlockKind::YellowStainedGlassPane => 376u32, + BlockKind::LimeStainedGlassPane => 377u32, + BlockKind::PinkStainedGlassPane => 378u32, + BlockKind::GrayStainedGlassPane => 379u32, + BlockKind::LightGrayStainedGlassPane => 380u32, + BlockKind::CyanStainedGlassPane => 381u32, + BlockKind::PurpleStainedGlassPane => 382u32, BlockKind::BlueStainedGlassPane => 383u32, - BlockKind::CrimsonPlanks => 718u32, - BlockKind::CobbledDeepslateWall => 875u32, - BlockKind::Piston => 106u32, - BlockKind::PolishedDeepslateSlab => 878u32, - BlockKind::Dropper => 355u32, - BlockKind::CrimsonButton => 732u32, - BlockKind::WarpedTrapdoor => 727u32, + BlockKind::BrownStainedGlassPane => 384u32, + BlockKind::GreenStainedGlassPane => 385u32, + BlockKind::RedStainedGlassPane => 386u32, + BlockKind::BlackStainedGlassPane => 387u32, + BlockKind::AcaciaStairs => 388u32, + BlockKind::DarkOakStairs => 389u32, + BlockKind::SlimeBlock => 390u32, + BlockKind::Barrier => 391u32, + BlockKind::Light => 392u32, + BlockKind::IronTrapdoor => 393u32, + BlockKind::Prismarine => 394u32, + BlockKind::PrismarineBricks => 395u32, + BlockKind::DarkPrismarine => 396u32, + BlockKind::PrismarineStairs => 397u32, + BlockKind::PrismarineBrickStairs => 398u32, BlockKind::DarkPrismarineStairs => 399u32, - BlockKind::WarpedFungus => 702u32, - BlockKind::BigDripleafStem => 867u32, - BlockKind::BrownCandle => 790u32, - BlockKind::OakTrapdoor => 230u32, - BlockKind::InfestedDeepslate => 891u32, - BlockKind::WhiteConcrete => 556u32, - BlockKind::CutCopper => 831u32, - BlockKind::Cocoa => 279u32, - BlockKind::DeepslateRedstoneOre => 188u32, + BlockKind::PrismarineSlab => 400u32, + BlockKind::PrismarineBrickSlab => 401u32, + BlockKind::DarkPrismarineSlab => 402u32, + BlockKind::SeaLantern => 403u32, + BlockKind::HayBlock => 404u32, + BlockKind::WhiteCarpet => 405u32, + BlockKind::OrangeCarpet => 406u32, + BlockKind::MagentaCarpet => 407u32, + BlockKind::LightBlueCarpet => 408u32, + BlockKind::YellowCarpet => 409u32, + BlockKind::LimeCarpet => 410u32, + BlockKind::PinkCarpet => 411u32, + BlockKind::GrayCarpet => 412u32, + BlockKind::LightGrayCarpet => 413u32, + BlockKind::CyanCarpet => 414u32, + BlockKind::PurpleCarpet => 415u32, + BlockKind::BlueCarpet => 416u32, + BlockKind::BrownCarpet => 417u32, + BlockKind::GreenCarpet => 418u32, + BlockKind::RedCarpet => 419u32, + BlockKind::BlackCarpet => 420u32, + BlockKind::Terracotta => 421u32, + BlockKind::CoalBlock => 422u32, + BlockKind::PackedIce => 423u32, + BlockKind::Sunflower => 424u32, + BlockKind::Lilac => 425u32, + BlockKind::RoseBush => 426u32, + BlockKind::Peony => 427u32, + BlockKind::TallGrass => 428u32, + BlockKind::LargeFern => 429u32, + BlockKind::WhiteBanner => 430u32, + BlockKind::OrangeBanner => 431u32, + BlockKind::MagentaBanner => 432u32, BlockKind::LightBlueBanner => 433u32, - BlockKind::DeepslateTileSlab => 882u32, - BlockKind::PinkConcrete => 562u32, - BlockKind::PottedOxeyeDaisy => 311u32, - BlockKind::WarpedFence => 725u32, - BlockKind::YellowTerracotta => 360u32, - BlockKind::LavaCauldron => 272u32, - BlockKind::RedNetherBricks => 519u32, - BlockKind::LimeStainedGlass => 219u32, - BlockKind::WhiteCandle => 778u32, - BlockKind::Granite => 2u32, + BlockKind::YellowBanner => 434u32, + BlockKind::LimeBanner => 435u32, + BlockKind::PinkBanner => 436u32, + BlockKind::GrayBanner => 437u32, + BlockKind::LightGrayBanner => 438u32, + BlockKind::CyanBanner => 439u32, + BlockKind::PurpleBanner => 440u32, + BlockKind::BlueBanner => 441u32, + BlockKind::BrownBanner => 442u32, + BlockKind::GreenBanner => 443u32, + BlockKind::RedBanner => 444u32, + BlockKind::BlackBanner => 445u32, + BlockKind::WhiteWallBanner => 446u32, + BlockKind::OrangeWallBanner => 447u32, + BlockKind::MagentaWallBanner => 448u32, + BlockKind::LightBlueWallBanner => 449u32, + BlockKind::YellowWallBanner => 450u32, BlockKind::LimeWallBanner => 451u32, - BlockKind::InfestedChiseledStoneBricks => 245u32, + BlockKind::PinkWallBanner => 452u32, + BlockKind::GrayWallBanner => 453u32, + BlockKind::LightGrayWallBanner => 454u32, + BlockKind::CyanWallBanner => 455u32, + BlockKind::PurpleWallBanner => 456u32, + BlockKind::BlueWallBanner => 457u32, + BlockKind::BrownWallBanner => 458u32, + BlockKind::GreenWallBanner => 459u32, + BlockKind::RedWallBanner => 460u32, + BlockKind::BlackWallBanner => 461u32, + BlockKind::RedSandstone => 462u32, + BlockKind::ChiseledRedSandstone => 463u32, + BlockKind::CutRedSandstone => 464u32, + BlockKind::RedSandstoneStairs => 465u32, + BlockKind::OakSlab => 466u32, + BlockKind::SpruceSlab => 467u32, + BlockKind::BirchSlab => 468u32, + BlockKind::JungleSlab => 469u32, + BlockKind::AcaciaSlab => 470u32, + BlockKind::DarkOakSlab => 471u32, + BlockKind::StoneSlab => 472u32, + BlockKind::SmoothStoneSlab => 473u32, + BlockKind::SandstoneSlab => 474u32, + BlockKind::CutSandstoneSlab => 475u32, + BlockKind::PetrifiedOakSlab => 476u32, + BlockKind::CobblestoneSlab => 477u32, + BlockKind::BrickSlab => 478u32, + BlockKind::StoneBrickSlab => 479u32, + BlockKind::NetherBrickSlab => 480u32, + BlockKind::QuartzSlab => 481u32, + BlockKind::RedSandstoneSlab => 482u32, + BlockKind::CutRedSandstoneSlab => 483u32, + BlockKind::PurpurSlab => 484u32, + BlockKind::SmoothStone => 485u32, + BlockKind::SmoothSandstone => 486u32, + BlockKind::SmoothQuartz => 487u32, + BlockKind::SmoothRedSandstone => 488u32, + BlockKind::SpruceFenceGate => 489u32, + BlockKind::BirchFenceGate => 490u32, + BlockKind::JungleFenceGate => 491u32, + BlockKind::AcaciaFenceGate => 492u32, + BlockKind::DarkOakFenceGate => 493u32, + BlockKind::SpruceFence => 494u32, + BlockKind::BirchFence => 495u32, + BlockKind::JungleFence => 496u32, + BlockKind::AcaciaFence => 497u32, + BlockKind::DarkOakFence => 498u32, + BlockKind::SpruceDoor => 499u32, + BlockKind::BirchDoor => 500u32, + BlockKind::JungleDoor => 501u32, BlockKind::AcaciaDoor => 502u32, - BlockKind::CartographyTable => 685u32, - BlockKind::Lava => 27u32, - BlockKind::LimeGlazedTerracotta => 545u32, - BlockKind::PottedBirchSapling => 297u32, - BlockKind::TubeCoralFan => 617u32, - BlockKind::CaveVines => 859u32, - BlockKind::LightBlueGlazedTerracotta => 543u32, - BlockKind::RedstoneOre => 187u32, - BlockKind::RedNetherBrickWall => 676u32, - BlockKind::OrangeCandleCake => 796u32, - BlockKind::EnchantingTable => 268u32, - BlockKind::HoneycombBlock => 747u32, - BlockKind::ChiseledDeepslate => 888u32, - BlockKind::EndPortal => 274u32, + BlockKind::DarkOakDoor => 503u32, + BlockKind::EndRod => 504u32, + BlockKind::ChorusPlant => 505u32, + BlockKind::ChorusFlower => 506u32, + BlockKind::PurpurBlock => 507u32, + BlockKind::PurpurPillar => 508u32, + BlockKind::PurpurStairs => 509u32, + BlockKind::EndStoneBricks => 510u32, + BlockKind::Beetroots => 511u32, + BlockKind::DirtPath => 512u32, + BlockKind::EndGateway => 513u32, + BlockKind::RepeatingCommandBlock => 514u32, BlockKind::ChainCommandBlock => 515u32, - BlockKind::EnderChest => 283u32, - BlockKind::PottedAllium => 305u32, - BlockKind::BirchButton => 323u32, - BlockKind::NetheriteBlock => 748u32, - BlockKind::BlackstoneSlab => 760u32, - BlockKind::Composter => 742u32, - BlockKind::CopperBlock => 825u32, - BlockKind::ZombieWallHead => 332u32, - BlockKind::Glass => 72u32, + BlockKind::FrostedIce => 516u32, + BlockKind::MagmaBlock => 517u32, + BlockKind::NetherWartBlock => 518u32, + BlockKind::RedNetherBricks => 519u32, + BlockKind::BoneBlock => 520u32, + BlockKind::StructureVoid => 521u32, + BlockKind::Observer => 522u32, + BlockKind::ShulkerBox => 523u32, + BlockKind::WhiteShulkerBox => 524u32, + BlockKind::OrangeShulkerBox => 525u32, + BlockKind::MagentaShulkerBox => 526u32, + BlockKind::LightBlueShulkerBox => 527u32, + BlockKind::YellowShulkerBox => 528u32, BlockKind::LimeShulkerBox => 529u32, - BlockKind::PolishedDiorite => 5u32, - BlockKind::SlimeBlock => 390u32, - BlockKind::MagentaBanner => 432u32, - BlockKind::GreenBanner => 443u32, - BlockKind::HornCoral => 611u32, - BlockKind::NetherSprouts => 705u32, - BlockKind::SmoothStoneSlab => 473u32, - BlockKind::WeatheredCopper => 823u32, - BlockKind::WhiteCarpet => 405u32, - BlockKind::Allium => 128u32, - BlockKind::RedStainedGlass => 228u32, - BlockKind::BambooSapling => 635u32, - BlockKind::Lever => 178u32, - BlockKind::DarkOakTrapdoor => 235u32, - BlockKind::LightGrayCandle => 786u32, - BlockKind::GreenBed => 94u32, - BlockKind::TwistingVines => 715u32, - BlockKind::CutCopperSlab => 839u32, - BlockKind::MossyCobblestoneWall => 293u32, - BlockKind::RedBanner => 444u32, - BlockKind::RootedDirt => 870u32, - BlockKind::CandleCake => 794u32, - BlockKind::CobblestoneSlab => 477u32, - BlockKind::YellowStainedGlass => 218u32, - BlockKind::MossyStoneBrickStairs => 643u32, - BlockKind::Basalt => 204u32, - BlockKind::ChiseledStoneBricks => 239u32, - BlockKind::LightGrayStainedGlassPane => 380u32, - BlockKind::LightGrayConcretePowder => 580u32, - BlockKind::Tuff => 817u32, - BlockKind::CreeperWallHead => 336u32, - BlockKind::Podzol => 11u32, - BlockKind::SprucePlanks => 14u32, - BlockKind::PrismarineBrickStairs => 398u32, - BlockKind::WhiteBed => 81u32, + BlockKind::PinkShulkerBox => 530u32, + BlockKind::GrayShulkerBox => 531u32, + BlockKind::LightGrayShulkerBox => 532u32, + BlockKind::CyanShulkerBox => 533u32, + BlockKind::PurpleShulkerBox => 534u32, + BlockKind::BlueShulkerBox => 535u32, BlockKind::BrownShulkerBox => 536u32, - BlockKind::DarkOakDoor => 503u32, - BlockKind::PowderSnow => 820u32, - BlockKind::HeavyWeightedPressurePlate => 344u32, - BlockKind::Air => 0u32, - BlockKind::StoneBrickWall => 673u32, - BlockKind::YellowBed => 85u32, - BlockKind::PistonHead => 107u32, - BlockKind::Barrier => 391u32, - BlockKind::OxidizedCutCopper => 828u32, - BlockKind::AzaleaLeaves => 68u32, - BlockKind::GreenStainedGlassPane => 385u32, - BlockKind::DragonHead => 337u32, - BlockKind::Lectern => 688u32, - BlockKind::DarkOakLog => 43u32, - BlockKind::CarvedPumpkin => 210u32, - BlockKind::PottedBrownMushroom => 316u32, - BlockKind::RedMushroomBlock => 247u32, - BlockKind::PottedOakSapling => 295u32, - BlockKind::LightBlueBed => 84u32, - BlockKind::ZombieHead => 331u32, + BlockKind::GreenShulkerBox => 537u32, + BlockKind::RedShulkerBox => 538u32, + BlockKind::BlackShulkerBox => 539u32, + BlockKind::WhiteGlazedTerracotta => 540u32, + BlockKind::OrangeGlazedTerracotta => 541u32, + BlockKind::MagentaGlazedTerracotta => 542u32, + BlockKind::LightBlueGlazedTerracotta => 543u32, + BlockKind::YellowGlazedTerracotta => 544u32, + BlockKind::LimeGlazedTerracotta => 545u32, + BlockKind::PinkGlazedTerracotta => 546u32, + BlockKind::GrayGlazedTerracotta => 547u32, + BlockKind::LightGrayGlazedTerracotta => 548u32, + BlockKind::CyanGlazedTerracotta => 549u32, + BlockKind::PurpleGlazedTerracotta => 550u32, + BlockKind::BlueGlazedTerracotta => 551u32, + BlockKind::BrownGlazedTerracotta => 552u32, + BlockKind::GreenGlazedTerracotta => 553u32, + BlockKind::RedGlazedTerracotta => 554u32, BlockKind::BlackGlazedTerracotta => 555u32, - BlockKind::QuartzStairs => 353u32, - BlockKind::CrimsonTrapdoor => 726u32, - BlockKind::GreenCandle => 791u32, - BlockKind::GoldOre => 31u32, - BlockKind::PurpleConcretePowder => 582u32, - BlockKind::Water => 26u32, - BlockKind::CreeperHead => 335u32, - BlockKind::Lantern => 692u32, - BlockKind::WeepingVinesPlant => 714u32, - BlockKind::WarpedHyphae => 699u32, - BlockKind::StoneBrickSlab => 479u32, - BlockKind::Lodestone => 756u32, - BlockKind::CrackedStoneBricks => 238u32, - BlockKind::GlassPane => 251u32, - BlockKind::JunglePlanks => 16u32, - BlockKind::PolishedBlackstoneBrickSlab => 765u32, - BlockKind::BrownBanner => 442u32, - BlockKind::Melon => 252u32, - BlockKind::SmoothQuartzStairs => 649u32, - BlockKind::DeadTubeCoralBlock => 592u32, - BlockKind::MagentaCarpet => 407u32, - BlockKind::AcaciaButton => 325u32, - BlockKind::FlowerPot => 294u32, - BlockKind::CraftingTable => 158u32, - BlockKind::SoulWallTorch => 207u32, - BlockKind::WeatheredCutCopperSlab => 837u32, - BlockKind::RedWool => 122u32, - BlockKind::PottedFern => 301u32, - BlockKind::DragonWallHead => 338u32, - BlockKind::LimeTerracotta => 361u32, - BlockKind::MossBlock => 865u32, - BlockKind::LilyPad => 263u32, - BlockKind::Anvil => 339u32, - BlockKind::BirchPlanks => 15u32, - BlockKind::PrismarineSlab => 400u32, + BlockKind::WhiteConcrete => 556u32, BlockKind::OrangeConcrete => 557u32, - BlockKind::Grass => 101u32, - BlockKind::GrayConcretePowder => 579u32, - BlockKind::PrismarineBricks => 395u32, - BlockKind::WarpedNylium => 701u32, - BlockKind::CyanCandle => 787u32, - BlockKind::WhiteConcretePowder => 572u32, - BlockKind::AzureBluet => 129u32, - BlockKind::BrownWool => 120u32, - BlockKind::PottedOrangeTulip => 308u32, - BlockKind::Andesite => 6u32, - BlockKind::DeepslateTiles => 880u32, - BlockKind::WetSponge => 71u32, - BlockKind::WarpedPlanks => 719u32, - BlockKind::InfestedStoneBricks => 242u32, - BlockKind::TallGrass => 428u32, - BlockKind::StrippedOakLog => 49u32, - BlockKind::CyanBanner => 439u32, - BlockKind::BrownConcrete => 568u32, - BlockKind::BlueBed => 92u32, - BlockKind::WhiteBanner => 430u32, - BlockKind::WaxedExposedCutCopperSlab => 854u32, - BlockKind::PottedRedTulip => 307u32, - BlockKind::WarpedPressurePlate => 723u32, - BlockKind::MovingPiston => 124u32, - BlockKind::OrangeConcretePowder => 573u32, - BlockKind::CrimsonStairs => 730u32, - BlockKind::PurpleCandleCake => 805u32, - BlockKind::AcaciaLog => 42u32, - BlockKind::CopperOre => 826u32, - BlockKind::PottedCornflower => 312u32, - BlockKind::QuartzBlock => 350u32, - BlockKind::WaxedCutCopperSlab => 855u32, - BlockKind::PurpleBanner => 440u32, - BlockKind::MagentaShulkerBox => 526u32, - BlockKind::Bell => 691u32, + BlockKind::MagentaConcrete => 558u32, + BlockKind::LightBlueConcrete => 559u32, + BlockKind::YellowConcrete => 560u32, BlockKind::LimeConcrete => 561u32, - BlockKind::BlackCarpet => 420u32, - BlockKind::CyanStainedGlassPane => 381u32, - BlockKind::BlueStainedGlass => 225u32, - BlockKind::LimeCarpet => 410u32, - BlockKind::SpruceSapling => 20u32, - BlockKind::CobbledDeepslateStairs => 873u32, - BlockKind::PinkCarpet => 411u32, - BlockKind::LightGrayWallBanner => 454u32, - BlockKind::QuartzBricks => 776u32, - BlockKind::PolishedBlackstoneStairs => 769u32, - BlockKind::JungleDoor => 501u32, - BlockKind::WaxedCopperBlock => 840u32, - BlockKind::WallTorch => 148u32, - BlockKind::Rail => 170u32, - BlockKind::PowderSnowCauldron => 273u32, - BlockKind::DeadBrainCoralWallFan => 623u32, - BlockKind::Smoker => 683u32, - BlockKind::DarkOakSapling => 24u32, - BlockKind::StrippedJungleWood => 59u32, - BlockKind::PolishedBlackstoneSlab => 770u32, - BlockKind::PinkStainedGlass => 220u32, - BlockKind::CaveVinesPlant => 860u32, - BlockKind::TintedGlass => 819u32, - BlockKind::FloweringAzalea => 863u32, - BlockKind::LargeAmethystBud => 814u32, - BlockKind::TripwireHook => 284u32, - BlockKind::GrassBlock => 8u32, - BlockKind::DeepslateTileStairs => 881u32, - BlockKind::PottedDeadBush => 317u32, - BlockKind::AcaciaSign => 165u32, - BlockKind::Pumpkin => 200u32, - BlockKind::CrackedDeepslateBricks => 889u32, - BlockKind::Cobblestone => 12u32, - BlockKind::Cornflower => 135u32, - BlockKind::CrimsonFungus => 711u32, + BlockKind::PinkConcrete => 562u32, BlockKind::GrayConcrete => 563u32, - BlockKind::SmallDripleaf => 868u32, - BlockKind::EndPortalFrame => 275u32, - BlockKind::Diorite => 4u32, - BlockKind::GreenCarpet => 418u32, - BlockKind::BlueShulkerBox => 535u32, - BlockKind::RedCandleCake => 809u32, - BlockKind::WhiteWallBanner => 446u32, - BlockKind::RedSandstoneWall => 670u32, - BlockKind::PinkGlazedTerracotta => 546u32, - BlockKind::OrangeBed => 82u32, - BlockKind::YellowCandle => 782u32, - BlockKind::OakSlab => 466u32, - BlockKind::WaxedOxidizedCutCopperSlab => 852u32, - BlockKind::CaveAir => 639u32, - BlockKind::AcaciaPlanks => 17u32, - BlockKind::RedNetherBrickStairs => 652u32, - BlockKind::WaxedWeatheredCutCopper => 845u32, - BlockKind::Sand => 28u32, - BlockKind::CoalBlock => 422u32, - BlockKind::BrickStairs => 260u32, - BlockKind::BlueCandle => 789u32, - BlockKind::MossCarpet => 864u32, - BlockKind::DiamondBlock => 157u32, - BlockKind::SmoothSandstoneStairs => 648u32, - BlockKind::OrangeStainedGlassPane => 373u32, - BlockKind::DeadTubeCoralWallFan => 622u32, - BlockKind::HornCoralWallFan => 631u32, - BlockKind::StrippedOakWood => 56u32, - BlockKind::WhiteStainedGlassPane => 372u32, - BlockKind::Observer => 522u32, + BlockKind::LightGrayConcrete => 564u32, + BlockKind::CyanConcrete => 565u32, + BlockKind::PurpleConcrete => 566u32, BlockKind::BlueConcrete => 567u32, - BlockKind::FloweringAzaleaLeaves => 69u32, - BlockKind::BubbleCoralBlock => 599u32, - BlockKind::BrickWall => 668u32, - BlockKind::PurpleStainedGlassPane => 382u32, - BlockKind::CyanBed => 90u32, - BlockKind::DiamondOre => 155u32, - BlockKind::WarpedSlab => 721u32, - BlockKind::LimeStainedGlassPane => 377u32, - BlockKind::DarkOakPressurePlate => 186u32, - BlockKind::WarpedWallSign => 739u32, - BlockKind::EndStone => 276u32, + BlockKind::BrownConcrete => 568u32, + BlockKind::GreenConcrete => 569u32, + BlockKind::RedConcrete => 570u32, + BlockKind::BlackConcrete => 571u32, + BlockKind::WhiteConcretePowder => 572u32, + BlockKind::OrangeConcretePowder => 573u32, + BlockKind::MagentaConcretePowder => 574u32, BlockKind::LightBlueConcretePowder => 575u32, - BlockKind::Bookshelf => 144u32, - BlockKind::SpruceButton => 322u32, - BlockKind::PottedAzureBluet => 306u32, - BlockKind::CrimsonStem => 706u32, - BlockKind::LimeCandle => 783u32, - BlockKind::PurpleCarpet => 415u32, - BlockKind::BrainCoralWallFan => 628u32, - BlockKind::SprucePressurePlate => 182u32, - BlockKind::Wheat => 159u32, - BlockKind::GlowLichen => 258u32, - BlockKind::SmoothRedSandstone => 488u32, - BlockKind::WaxedExposedCopper => 842u32, - BlockKind::OakSign => 162u32, - BlockKind::ActivatorRail => 354u32, - BlockKind::PrismarineBrickSlab => 401u32, - BlockKind::OxidizedCopper => 822u32, - BlockKind::StrippedAcaciaWood => 60u32, - BlockKind::SugarCane => 197u32, - BlockKind::Furnace => 161u32, - BlockKind::JackOLantern => 211u32, - BlockKind::Kelp => 588u32, - BlockKind::DeadBrainCoralBlock => 593u32, - BlockKind::StrippedCrimsonStem => 707u32, - BlockKind::PinkBed => 87u32, - BlockKind::SpruceDoor => 499u32, - BlockKind::Comparator => 345u32, - BlockKind::BirchDoor => 500u32, - BlockKind::RedTulip => 130u32, - BlockKind::PottedPoppy => 303u32, - BlockKind::NetherBrickStairs => 266u32, - BlockKind::NetherWart => 267u32, - BlockKind::GreenGlazedTerracotta => 553u32, - BlockKind::LimeCandleCake => 800u32, - BlockKind::DeepslateDiamondOre => 156u32, - BlockKind::DeadBrainCoralFan => 613u32, - BlockKind::HoneyBlock => 746u32, - BlockKind::Barrel => 682u32, - BlockKind::BlueCarpet => 416u32, - BlockKind::LightGrayShulkerBox => 532u32, - BlockKind::OrangeStainedGlass => 215u32, - BlockKind::BoneBlock => 520u32, - BlockKind::Chain => 250u32, - BlockKind::PrismarineWall => 669u32, - BlockKind::Shroomlight => 712u32, - BlockKind::SandstoneStairs => 280u32, - BlockKind::PinkShulkerBox => 530u32, - BlockKind::LightBlueCandleCake => 798u32, + BlockKind::YellowConcretePowder => 576u32, + BlockKind::LimeConcretePowder => 577u32, + BlockKind::PinkConcretePowder => 578u32, + BlockKind::GrayConcretePowder => 579u32, + BlockKind::LightGrayConcretePowder => 580u32, + BlockKind::CyanConcretePowder => 581u32, + BlockKind::PurpleConcretePowder => 582u32, + BlockKind::BlueConcretePowder => 583u32, + BlockKind::BrownConcretePowder => 584u32, + BlockKind::GreenConcretePowder => 585u32, + BlockKind::RedConcretePowder => 586u32, + BlockKind::BlackConcretePowder => 587u32, + BlockKind::Kelp => 588u32, + BlockKind::KelpPlant => 589u32, + BlockKind::DriedKelpBlock => 590u32, + BlockKind::TurtleEgg => 591u32, + BlockKind::DeadTubeCoralBlock => 592u32, + BlockKind::DeadBrainCoralBlock => 593u32, + BlockKind::DeadBubbleCoralBlock => 594u32, + BlockKind::DeadFireCoralBlock => 595u32, + BlockKind::DeadHornCoralBlock => 596u32, BlockKind::TubeCoralBlock => 597u32, - BlockKind::MagentaCandleCake => 797u32, - BlockKind::MagentaGlazedTerracotta => 542u32, - BlockKind::Peony => 427u32, + BlockKind::BrainCoralBlock => 598u32, + BlockKind::BubbleCoralBlock => 599u32, + BlockKind::FireCoralBlock => 600u32, + BlockKind::HornCoralBlock => 601u32, + BlockKind::DeadTubeCoral => 602u32, + BlockKind::DeadBrainCoral => 603u32, + BlockKind::DeadBubbleCoral => 604u32, + BlockKind::DeadFireCoral => 605u32, + BlockKind::DeadHornCoral => 606u32, + BlockKind::TubeCoral => 607u32, + BlockKind::BrainCoral => 608u32, + BlockKind::BubbleCoral => 609u32, + BlockKind::FireCoral => 610u32, + BlockKind::HornCoral => 611u32, + BlockKind::DeadTubeCoralFan => 612u32, + BlockKind::DeadBrainCoralFan => 613u32, + BlockKind::DeadBubbleCoralFan => 614u32, + BlockKind::DeadFireCoralFan => 615u32, + BlockKind::DeadHornCoralFan => 616u32, + BlockKind::TubeCoralFan => 617u32, + BlockKind::BrainCoralFan => 618u32, + BlockKind::BubbleCoralFan => 619u32, + BlockKind::FireCoralFan => 620u32, + BlockKind::HornCoralFan => 621u32, + BlockKind::DeadTubeCoralWallFan => 622u32, + BlockKind::DeadBrainCoralWallFan => 623u32, + BlockKind::DeadBubbleCoralWallFan => 624u32, + BlockKind::DeadFireCoralWallFan => 625u32, BlockKind::DeadHornCoralWallFan => 626u32, - BlockKind::SmoothRedSandstoneStairs => 642u32, - BlockKind::PolishedBlackstoneBrickStairs => 766u32, - BlockKind::WarpedDoor => 735u32, - BlockKind::OakFence => 199u32, - BlockKind::AcaciaWallSign => 175u32, + BlockKind::TubeCoralWallFan => 627u32, + BlockKind::BrainCoralWallFan => 628u32, + BlockKind::BubbleCoralWallFan => 629u32, + BlockKind::FireCoralWallFan => 630u32, + BlockKind::HornCoralWallFan => 631u32, + BlockKind::SeaPickle => 632u32, BlockKind::BlueIce => 633u32, + BlockKind::Conduit => 634u32, + BlockKind::BambooSapling => 635u32, + BlockKind::Bamboo => 636u32, + BlockKind::PottedBamboo => 637u32, + BlockKind::VoidAir => 638u32, + BlockKind::CaveAir => 639u32, + BlockKind::BubbleColumn => 640u32, + BlockKind::PolishedGraniteStairs => 641u32, + BlockKind::SmoothRedSandstoneStairs => 642u32, + BlockKind::MossyStoneBrickStairs => 643u32, + BlockKind::PolishedDioriteStairs => 644u32, + BlockKind::MossyCobblestoneStairs => 645u32, + BlockKind::EndStoneBrickStairs => 646u32, + BlockKind::StoneStairs => 647u32, + BlockKind::SmoothSandstoneStairs => 648u32, + BlockKind::SmoothQuartzStairs => 649u32, + BlockKind::GraniteStairs => 650u32, + BlockKind::AndesiteStairs => 651u32, + BlockKind::RedNetherBrickStairs => 652u32, + BlockKind::PolishedAndesiteStairs => 653u32, + BlockKind::DioriteStairs => 654u32, + BlockKind::PolishedGraniteSlab => 655u32, + BlockKind::SmoothRedSandstoneSlab => 656u32, + BlockKind::MossyStoneBrickSlab => 657u32, + BlockKind::PolishedDioriteSlab => 658u32, + BlockKind::MossyCobblestoneSlab => 659u32, + BlockKind::EndStoneBrickSlab => 660u32, + BlockKind::SmoothSandstoneSlab => 661u32, + BlockKind::SmoothQuartzSlab => 662u32, + BlockKind::GraniteSlab => 663u32, + BlockKind::AndesiteSlab => 664u32, + BlockKind::RedNetherBrickSlab => 665u32, + BlockKind::PolishedAndesiteSlab => 666u32, + BlockKind::DioriteSlab => 667u32, + BlockKind::BrickWall => 668u32, + BlockKind::PrismarineWall => 669u32, + BlockKind::RedSandstoneWall => 670u32, + BlockKind::MossyStoneBrickWall => 671u32, + BlockKind::GraniteWall => 672u32, + BlockKind::StoneBrickWall => 673u32, + BlockKind::NetherBrickWall => 674u32, + BlockKind::AndesiteWall => 675u32, + BlockKind::RedNetherBrickWall => 676u32, + BlockKind::SandstoneWall => 677u32, + BlockKind::EndStoneBrickWall => 678u32, + BlockKind::DioriteWall => 679u32, + BlockKind::Scaffolding => 680u32, + BlockKind::Loom => 681u32, + BlockKind::Barrel => 682u32, + BlockKind::Smoker => 683u32, + BlockKind::BlastFurnace => 684u32, + BlockKind::CartographyTable => 685u32, + BlockKind::FletchingTable => 686u32, + BlockKind::Grindstone => 687u32, + BlockKind::Lectern => 688u32, + BlockKind::SmithingTable => 689u32, + BlockKind::Stonecutter => 690u32, + BlockKind::Bell => 691u32, + BlockKind::Lantern => 692u32, + BlockKind::SoulLantern => 693u32, + BlockKind::Campfire => 694u32, + BlockKind::SoulCampfire => 695u32, + BlockKind::SweetBerryBush => 696u32, + BlockKind::WarpedStem => 697u32, + BlockKind::StrippedWarpedStem => 698u32, + BlockKind::WarpedHyphae => 699u32, + BlockKind::StrippedWarpedHyphae => 700u32, + BlockKind::WarpedNylium => 701u32, + BlockKind::WarpedFungus => 702u32, + BlockKind::WarpedWartBlock => 703u32, + BlockKind::WarpedRoots => 704u32, + BlockKind::NetherSprouts => 705u32, + BlockKind::CrimsonStem => 706u32, + BlockKind::StrippedCrimsonStem => 707u32, + BlockKind::CrimsonHyphae => 708u32, + BlockKind::StrippedCrimsonHyphae => 709u32, + BlockKind::CrimsonNylium => 710u32, + BlockKind::CrimsonFungus => 711u32, + BlockKind::Shroomlight => 712u32, + BlockKind::WeepingVines => 713u32, + BlockKind::WeepingVinesPlant => 714u32, + BlockKind::TwistingVines => 715u32, + BlockKind::TwistingVinesPlant => 716u32, + BlockKind::CrimsonRoots => 717u32, + BlockKind::CrimsonPlanks => 718u32, + BlockKind::WarpedPlanks => 719u32, + BlockKind::CrimsonSlab => 720u32, + BlockKind::WarpedSlab => 721u32, + BlockKind::CrimsonPressurePlate => 722u32, + BlockKind::WarpedPressurePlate => 723u32, + BlockKind::CrimsonFence => 724u32, + BlockKind::WarpedFence => 725u32, + BlockKind::CrimsonTrapdoor => 726u32, + BlockKind::WarpedTrapdoor => 727u32, + BlockKind::CrimsonFenceGate => 728u32, + BlockKind::WarpedFenceGate => 729u32, + BlockKind::CrimsonStairs => 730u32, + BlockKind::WarpedStairs => 731u32, + BlockKind::CrimsonButton => 732u32, BlockKind::WarpedButton => 733u32, - BlockKind::SpruceLog => 39u32, - BlockKind::DeepslateBricks => 884u32, - BlockKind::BlackStainedGlassPane => 387u32, - BlockKind::OrangeBanner => 431u32, + BlockKind::CrimsonDoor => 734u32, + BlockKind::WarpedDoor => 735u32, + BlockKind::CrimsonSign => 736u32, + BlockKind::WarpedSign => 737u32, + BlockKind::CrimsonWallSign => 738u32, + BlockKind::WarpedWallSign => 739u32, + BlockKind::StructureBlock => 740u32, + BlockKind::Jigsaw => 741u32, + BlockKind::Composter => 742u32, + BlockKind::Target => 743u32, + BlockKind::BeeNest => 744u32, + BlockKind::Beehive => 745u32, + BlockKind::HoneyBlock => 746u32, + BlockKind::HoneycombBlock => 747u32, + BlockKind::NetheriteBlock => 748u32, + BlockKind::AncientDebris => 749u32, + BlockKind::CryingObsidian => 750u32, + BlockKind::RespawnAnchor => 751u32, + BlockKind::PottedCrimsonFungus => 752u32, BlockKind::PottedWarpedFungus => 753u32, - BlockKind::RedWallBanner => 460u32, - BlockKind::RedBed => 95u32, - BlockKind::CyanCandleCake => 804u32, - BlockKind::SandstoneSlab => 474u32, - BlockKind::GrayGlazedTerracotta => 547u32, - BlockKind::LightBlueWool => 111u32, - BlockKind::PurpurPillar => 508u32, - BlockKind::OakWood => 50u32, - BlockKind::RedstoneLamp => 278u32, - BlockKind::OrangeWallBanner => 447u32, - } - } - #[doc = "Gets a `BlockKind` by its `id`."] - #[inline] - pub fn from_id(id: u32) -> Option { - match id { - 467u32 => Some(BlockKind::SpruceSlab), - 117u32 => Some(BlockKind::CyanWool), - 589u32 => Some(BlockKind::KelpPlant), - 636u32 => Some(BlockKind::Bamboo), - 438u32 => Some(BlockKind::LightGrayBanner), - 221u32 => Some(BlockKind::GrayStainedGlass), - 716u32 => Some(BlockKind::TwistingVinesPlant), - 811u32 => Some(BlockKind::AmethystBlock), - 425u32 => Some(BlockKind::Lilac), - 313u32 => Some(BlockKind::PottedLilyOfTheValley), - 618u32 => Some(BlockKind::BrainCoralFan), - 738u32 => Some(BlockKind::CrimsonWallSign), - 223u32 => Some(BlockKind::CyanStainedGlass), - 362u32 => Some(BlockKind::PinkTerracotta), - 645u32 => Some(BlockKind::MossyCobblestoneStairs), - 616u32 => Some(BlockKind::DeadHornCoralFan), - 57u32 => Some(BlockKind::StrippedSpruceWood), - 154u32 => Some(BlockKind::RedstoneWire), - 253u32 => Some(BlockKind::AttachedPumpkinStem), - 298u32 => Some(BlockKind::PottedJungleSapling), - 581u32 => Some(BlockKind::CyanConcretePowder), - 566u32 => Some(BlockKind::PurpleConcrete), - 554u32 => Some(BlockKind::RedGlazedTerracotta), - 58u32 => Some(BlockKind::StrippedBirchWood), - 233u32 => Some(BlockKind::JungleTrapdoor), - 319u32 => Some(BlockKind::Carrots), - 610u32 => Some(BlockKind::FireCoral), - 818u32 => Some(BlockKind::Calcite), - 848u32 => Some(BlockKind::WaxedOxidizedCutCopperStairs), - 241u32 => Some(BlockKind::InfestedCobblestone), - 386u32 => Some(BlockKind::RedStainedGlassPane), - 290u32 => Some(BlockKind::CommandBlock), - 346u32 => Some(BlockKind::DaylightDetector), - 327u32 => Some(BlockKind::SkeletonSkull), - 672u32 => Some(BlockKind::GraniteWall), - 86u32 => Some(BlockKind::LimeBed), - 457u32 => Some(BlockKind::BlueWallBanner), - 343u32 => Some(BlockKind::LightWeightedPressurePlate), - 368u32 => Some(BlockKind::BrownTerracotta), - 458u32 => Some(BlockKind::BrownWallBanner), - 489u32 => Some(BlockKind::SpruceFenceGate), - 493u32 => Some(BlockKind::DarkOakFenceGate), - 662u32 => Some(BlockKind::SmoothQuartzSlab), - 462u32 => Some(BlockKind::RedSandstone), - 67u32 => Some(BlockKind::DarkOakLeaves), - 30u32 => Some(BlockKind::Gravel), - 803u32 => Some(BlockKind::LightGrayCandleCake), - 895u32 => Some(BlockKind::RawGoldBlock), - 212u32 => Some(BlockKind::Cake), - 136u32 => Some(BlockKind::WitherRose), - 370u32 => Some(BlockKind::RedTerracotta), - 472u32 => Some(BlockKind::StoneSlab), - 549u32 => Some(BlockKind::CyanGlazedTerracotta), - 761u32 => Some(BlockKind::PolishedBlackstone), - 604u32 => Some(BlockKind::DeadBubbleCoral), - 492u32 => Some(BlockKind::AcaciaFenceGate), - 586u32 => Some(BlockKind::RedConcretePowder), - 641u32 => Some(BlockKind::PolishedGraniteStairs), - 224u32 => Some(BlockKind::PurpleStainedGlass), - 485u32 => Some(BlockKind::SmoothStone), - 510u32 => Some(BlockKind::EndStoneBricks), - 63u32 => Some(BlockKind::SpruceLeaves), - 663u32 => Some(BlockKind::GraniteSlab), - 897u32 => Some(BlockKind::PottedFloweringAzaleaBush), - 470u32 => Some(BlockKind::AcaciaSlab), - 459u32 => Some(BlockKind::GreenWallBanner), - 578u32 => Some(BlockKind::PinkConcretePowder), - 79u32 => Some(BlockKind::CutSandstone), - 164u32 => Some(BlockKind::BirchSign), - 749u32 => Some(BlockKind::AncientDebris), - 664u32 => Some(BlockKind::AndesiteSlab), - 893u32 => Some(BlockKind::RawIronBlock), - 243u32 => Some(BlockKind::InfestedMossyStoneBricks), - 483u32 => Some(BlockKind::CutRedSandstoneSlab), + BlockKind::PottedCrimsonRoots => 754u32, + BlockKind::PottedWarpedRoots => 755u32, + BlockKind::Lodestone => 756u32, + BlockKind::Blackstone => 757u32, + BlockKind::BlackstoneStairs => 758u32, + BlockKind::BlackstoneWall => 759u32, + BlockKind::BlackstoneSlab => 760u32, + BlockKind::PolishedBlackstone => 761u32, + BlockKind::PolishedBlackstoneBricks => 762u32, + BlockKind::CrackedPolishedBlackstoneBricks => 763u32, + BlockKind::ChiseledPolishedBlackstone => 764u32, + BlockKind::PolishedBlackstoneBrickSlab => 765u32, + BlockKind::PolishedBlackstoneBrickStairs => 766u32, + BlockKind::PolishedBlackstoneBrickWall => 767u32, + BlockKind::GildedBlackstone => 768u32, + BlockKind::PolishedBlackstoneStairs => 769u32, + BlockKind::PolishedBlackstoneSlab => 770u32, + BlockKind::PolishedBlackstonePressurePlate => 771u32, + BlockKind::PolishedBlackstoneButton => 772u32, + BlockKind::PolishedBlackstoneWall => 773u32, + BlockKind::ChiseledNetherBricks => 774u32, + BlockKind::CrackedNetherBricks => 775u32, + BlockKind::QuartzBricks => 776u32, + BlockKind::Candle => 777u32, + BlockKind::WhiteCandle => 778u32, + BlockKind::OrangeCandle => 779u32, + BlockKind::MagentaCandle => 780u32, + BlockKind::LightBlueCandle => 781u32, + BlockKind::YellowCandle => 782u32, + BlockKind::LimeCandle => 783u32, + BlockKind::PinkCandle => 784u32, + BlockKind::GrayCandle => 785u32, + BlockKind::LightGrayCandle => 786u32, + BlockKind::CyanCandle => 787u32, + BlockKind::PurpleCandle => 788u32, + BlockKind::BlueCandle => 789u32, + BlockKind::BrownCandle => 790u32, + BlockKind::GreenCandle => 791u32, + BlockKind::RedCandle => 792u32, + BlockKind::BlackCandle => 793u32, + BlockKind::CandleCake => 794u32, + BlockKind::WhiteCandleCake => 795u32, + BlockKind::OrangeCandleCake => 796u32, + BlockKind::MagentaCandleCake => 797u32, + BlockKind::LightBlueCandleCake => 798u32, + BlockKind::YellowCandleCake => 799u32, + BlockKind::LimeCandleCake => 800u32, + BlockKind::PinkCandleCake => 801u32, + BlockKind::GrayCandleCake => 802u32, + BlockKind::LightGrayCandleCake => 803u32, + BlockKind::CyanCandleCake => 804u32, + BlockKind::PurpleCandleCake => 805u32, + BlockKind::BlueCandleCake => 806u32, + BlockKind::BrownCandleCake => 807u32, + BlockKind::GreenCandleCake => 808u32, + BlockKind::RedCandleCake => 809u32, + BlockKind::BlackCandleCake => 810u32, + BlockKind::AmethystBlock => 811u32, + BlockKind::BuddingAmethyst => 812u32, + BlockKind::AmethystCluster => 813u32, + BlockKind::LargeAmethystBud => 814u32, + BlockKind::MediumAmethystBud => 815u32, + BlockKind::SmallAmethystBud => 816u32, + BlockKind::Tuff => 817u32, + BlockKind::Calcite => 818u32, + BlockKind::TintedGlass => 819u32, + BlockKind::PowderSnow => 820u32, + BlockKind::SculkSensor => 821u32, + BlockKind::OxidizedCopper => 822u32, + BlockKind::WeatheredCopper => 823u32, + BlockKind::ExposedCopper => 824u32, + BlockKind::CopperBlock => 825u32, + BlockKind::CopperOre => 826u32, + BlockKind::DeepslateCopperOre => 827u32, + BlockKind::OxidizedCutCopper => 828u32, + BlockKind::WeatheredCutCopper => 829u32, + BlockKind::ExposedCutCopper => 830u32, + BlockKind::CutCopper => 831u32, + BlockKind::OxidizedCutCopperStairs => 832u32, + BlockKind::WeatheredCutCopperStairs => 833u32, + BlockKind::ExposedCutCopperStairs => 834u32, + BlockKind::CutCopperStairs => 835u32, + BlockKind::OxidizedCutCopperSlab => 836u32, + BlockKind::WeatheredCutCopperSlab => 837u32, + BlockKind::ExposedCutCopperSlab => 838u32, + BlockKind::CutCopperSlab => 839u32, + BlockKind::WaxedCopperBlock => 840u32, + BlockKind::WaxedWeatheredCopper => 841u32, + BlockKind::WaxedExposedCopper => 842u32, + BlockKind::WaxedOxidizedCopper => 843u32, + BlockKind::WaxedOxidizedCutCopper => 844u32, + BlockKind::WaxedWeatheredCutCopper => 845u32, + BlockKind::WaxedExposedCutCopper => 846u32, + BlockKind::WaxedCutCopper => 847u32, + BlockKind::WaxedOxidizedCutCopperStairs => 848u32, + BlockKind::WaxedWeatheredCutCopperStairs => 849u32, + BlockKind::WaxedExposedCutCopperStairs => 850u32, + BlockKind::WaxedCutCopperStairs => 851u32, + BlockKind::WaxedOxidizedCutCopperSlab => 852u32, + BlockKind::WaxedWeatheredCutCopperSlab => 853u32, + BlockKind::WaxedExposedCutCopperSlab => 854u32, + BlockKind::WaxedCutCopperSlab => 855u32, + BlockKind::LightningRod => 856u32, + BlockKind::PointedDripstone => 857u32, + BlockKind::DripstoneBlock => 858u32, + BlockKind::CaveVines => 859u32, + BlockKind::CaveVinesPlant => 860u32, + BlockKind::SporeBlossom => 861u32, + BlockKind::Azalea => 862u32, + BlockKind::FloweringAzalea => 863u32, + BlockKind::MossCarpet => 864u32, + BlockKind::MossBlock => 865u32, + BlockKind::BigDripleaf => 866u32, + BlockKind::BigDripleafStem => 867u32, + BlockKind::SmallDripleaf => 868u32, + BlockKind::HangingRoots => 869u32, + BlockKind::RootedDirt => 870u32, + BlockKind::Deepslate => 871u32, + BlockKind::CobbledDeepslate => 872u32, + BlockKind::CobbledDeepslateStairs => 873u32, + BlockKind::CobbledDeepslateSlab => 874u32, + BlockKind::CobbledDeepslateWall => 875u32, + BlockKind::PolishedDeepslate => 876u32, + BlockKind::PolishedDeepslateStairs => 877u32, + BlockKind::PolishedDeepslateSlab => 878u32, + BlockKind::PolishedDeepslateWall => 879u32, + BlockKind::DeepslateTiles => 880u32, + BlockKind::DeepslateTileStairs => 881u32, + BlockKind::DeepslateTileSlab => 882u32, + BlockKind::DeepslateTileWall => 883u32, + BlockKind::DeepslateBricks => 884u32, + BlockKind::DeepslateBrickStairs => 885u32, + BlockKind::DeepslateBrickSlab => 886u32, + BlockKind::DeepslateBrickWall => 887u32, + BlockKind::ChiseledDeepslate => 888u32, + BlockKind::CrackedDeepslateBricks => 889u32, + BlockKind::CrackedDeepslateTiles => 890u32, + BlockKind::InfestedDeepslate => 891u32, + BlockKind::SmoothBasalt => 892u32, + BlockKind::RawIronBlock => 893u32, + BlockKind::RawCopperBlock => 894u32, + BlockKind::RawGoldBlock => 895u32, + BlockKind::PottedAzaleaBush => 896u32, + BlockKind::PottedFloweringAzaleaBush => 897u32, + } + } + #[doc = "Gets a `BlockKind` by its `id`."] + #[inline] + pub fn from_id(id: u32) -> Option { + match id { + 0u32 => Some(BlockKind::Air), + 1u32 => Some(BlockKind::Stone), + 2u32 => Some(BlockKind::Granite), 3u32 => Some(BlockKind::PolishedGranite), - 441u32 => Some(BlockKind::BlueBanner), - 486u32 => Some(BlockKind::SmoothSandstone), - 78u32 => Some(BlockKind::ChiseledSandstone), - 213u32 => Some(BlockKind::Repeater), + 4u32 => Some(BlockKind::Diorite), + 5u32 => Some(BlockKind::PolishedDiorite), + 6u32 => Some(BlockKind::Andesite), + 7u32 => Some(BlockKind::PolishedAndesite), + 8u32 => Some(BlockKind::GrassBlock), + 9u32 => Some(BlockKind::Dirt), + 10u32 => Some(BlockKind::CoarseDirt), + 11u32 => Some(BlockKind::Podzol), + 12u32 => Some(BlockKind::Cobblestone), + 13u32 => Some(BlockKind::OakPlanks), + 14u32 => Some(BlockKind::SprucePlanks), + 15u32 => Some(BlockKind::BirchPlanks), + 16u32 => Some(BlockKind::JunglePlanks), + 17u32 => Some(BlockKind::AcaciaPlanks), + 18u32 => Some(BlockKind::DarkOakPlanks), + 19u32 => Some(BlockKind::OakSapling), + 20u32 => Some(BlockKind::SpruceSapling), + 21u32 => Some(BlockKind::BirchSapling), + 22u32 => Some(BlockKind::JungleSapling), + 23u32 => Some(BlockKind::AcaciaSapling), + 24u32 => Some(BlockKind::DarkOakSapling), + 25u32 => Some(BlockKind::Bedrock), + 26u32 => Some(BlockKind::Water), + 27u32 => Some(BlockKind::Lava), + 28u32 => Some(BlockKind::Sand), + 29u32 => Some(BlockKind::RedSand), + 30u32 => Some(BlockKind::Gravel), + 31u32 => Some(BlockKind::GoldOre), + 32u32 => Some(BlockKind::DeepslateGoldOre), + 33u32 => Some(BlockKind::IronOre), + 34u32 => Some(BlockKind::DeepslateIronOre), + 35u32 => Some(BlockKind::CoalOre), + 36u32 => Some(BlockKind::DeepslateCoalOre), + 37u32 => Some(BlockKind::NetherGoldOre), + 38u32 => Some(BlockKind::OakLog), + 39u32 => Some(BlockKind::SpruceLog), + 40u32 => Some(BlockKind::BirchLog), + 41u32 => Some(BlockKind::JungleLog), + 42u32 => Some(BlockKind::AcaciaLog), + 43u32 => Some(BlockKind::DarkOakLog), + 44u32 => Some(BlockKind::StrippedSpruceLog), + 45u32 => Some(BlockKind::StrippedBirchLog), + 46u32 => Some(BlockKind::StrippedJungleLog), + 47u32 => Some(BlockKind::StrippedAcaciaLog), + 48u32 => Some(BlockKind::StrippedDarkOakLog), + 49u32 => Some(BlockKind::StrippedOakLog), + 50u32 => Some(BlockKind::OakWood), + 51u32 => Some(BlockKind::SpruceWood), + 52u32 => Some(BlockKind::BirchWood), + 53u32 => Some(BlockKind::JungleWood), + 54u32 => Some(BlockKind::AcaciaWood), + 55u32 => Some(BlockKind::DarkOakWood), + 56u32 => Some(BlockKind::StrippedOakWood), + 57u32 => Some(BlockKind::StrippedSpruceWood), + 58u32 => Some(BlockKind::StrippedBirchWood), + 59u32 => Some(BlockKind::StrippedJungleWood), + 60u32 => Some(BlockKind::StrippedAcaciaWood), 61u32 => Some(BlockKind::StrippedDarkOakWood), - 358u32 => Some(BlockKind::MagentaTerracotta), - 537u32 => Some(BlockKind::GreenShulkerBox), - 731u32 => Some(BlockKind::WarpedStairs), - 647u32 => Some(BlockKind::StoneStairs), - 417u32 => Some(BlockKind::BrownCarpet), - 729u32 => Some(BlockKind::WarpedFenceGate), - 231u32 => Some(BlockKind::SpruceTrapdoor), - 838u32 => Some(BlockKind::ExposedCutCopperSlab), - 364u32 => Some(BlockKind::LightGrayTerracotta), - 371u32 => Some(BlockKind::BlackTerracotta), - 853u32 => Some(BlockKind::WaxedWeatheredCutCopperSlab), - 600u32 => Some(BlockKind::FireCoralBlock), - 684u32 => Some(BlockKind::BlastFurnace), + 62u32 => Some(BlockKind::OakLeaves), + 63u32 => Some(BlockKind::SpruceLeaves), + 64u32 => Some(BlockKind::BirchLeaves), + 65u32 => Some(BlockKind::JungleLeaves), + 66u32 => Some(BlockKind::AcaciaLeaves), + 67u32 => Some(BlockKind::DarkOakLeaves), + 68u32 => Some(BlockKind::AzaleaLeaves), + 69u32 => Some(BlockKind::FloweringAzaleaLeaves), + 70u32 => Some(BlockKind::Sponge), + 71u32 => Some(BlockKind::WetSponge), + 72u32 => Some(BlockKind::Glass), + 73u32 => Some(BlockKind::LapisOre), + 74u32 => Some(BlockKind::DeepslateLapisOre), + 75u32 => Some(BlockKind::LapisBlock), + 76u32 => Some(BlockKind::Dispenser), + 77u32 => Some(BlockKind::Sandstone), + 78u32 => Some(BlockKind::ChiseledSandstone), + 79u32 => Some(BlockKind::CutSandstone), + 80u32 => Some(BlockKind::NoteBlock), + 81u32 => Some(BlockKind::WhiteBed), + 82u32 => Some(BlockKind::OrangeBed), + 83u32 => Some(BlockKind::MagentaBed), + 84u32 => Some(BlockKind::LightBlueBed), + 85u32 => Some(BlockKind::YellowBed), + 86u32 => Some(BlockKind::LimeBed), + 87u32 => Some(BlockKind::PinkBed), + 88u32 => Some(BlockKind::GrayBed), + 89u32 => Some(BlockKind::LightGrayBed), + 90u32 => Some(BlockKind::CyanBed), + 91u32 => Some(BlockKind::PurpleBed), + 92u32 => Some(BlockKind::BlueBed), + 93u32 => Some(BlockKind::BrownBed), + 94u32 => Some(BlockKind::GreenBed), + 95u32 => Some(BlockKind::RedBed), + 96u32 => Some(BlockKind::BlackBed), + 97u32 => Some(BlockKind::PoweredRail), + 98u32 => Some(BlockKind::DetectorRail), + 99u32 => Some(BlockKind::StickyPiston), + 100u32 => Some(BlockKind::Cobweb), + 101u32 => Some(BlockKind::Grass), + 102u32 => Some(BlockKind::Fern), + 103u32 => Some(BlockKind::DeadBush), + 104u32 => Some(BlockKind::Seagrass), + 105u32 => Some(BlockKind::TallSeagrass), + 106u32 => Some(BlockKind::Piston), + 107u32 => Some(BlockKind::PistonHead), + 108u32 => Some(BlockKind::WhiteWool), + 109u32 => Some(BlockKind::OrangeWool), + 110u32 => Some(BlockKind::MagentaWool), + 111u32 => Some(BlockKind::LightBlueWool), + 112u32 => Some(BlockKind::YellowWool), + 113u32 => Some(BlockKind::LimeWool), + 114u32 => Some(BlockKind::PinkWool), + 115u32 => Some(BlockKind::GrayWool), + 116u32 => Some(BlockKind::LightGrayWool), + 117u32 => Some(BlockKind::CyanWool), + 118u32 => Some(BlockKind::PurpleWool), 119u32 => Some(BlockKind::BlueWool), - 846u32 => Some(BlockKind::WaxedExposedCutCopper), - 849u32 => Some(BlockKind::WaxedWeatheredCutCopperStairs), - 598u32 => Some(BlockKind::BrainCoralBlock), - 772u32 => Some(BlockKind::PolishedBlackstoneButton), - 127u32 => Some(BlockKind::BlueOrchid), - 773u32 => Some(BlockKind::PolishedBlackstoneWall), - 540u32 => Some(BlockKind::WhiteGlazedTerracotta), - 340u32 => Some(BlockKind::ChippedAnvil), - 126u32 => Some(BlockKind::Poppy), - 393u32 => Some(BlockKind::IronTrapdoor), + 120u32 => Some(BlockKind::BrownWool), 121u32 => Some(BlockKind::GreenWool), - 644u32 => Some(BlockKind::PolishedDioriteStairs), - 174u32 => Some(BlockKind::BirchWallSign), - 359u32 => Some(BlockKind::LightBlueTerracotta), - 693u32 => Some(BlockKind::SoulLantern), - 282u32 => Some(BlockKind::DeepslateEmeraldOre), - 788u32 => Some(BlockKind::PurpleCandle), - 285u32 => Some(BlockKind::Tripwire), - 757u32 => Some(BlockKind::Blackstone), - 834u32 => Some(BlockKind::ExposedCutCopperStairs), + 122u32 => Some(BlockKind::RedWool), 123u32 => Some(BlockKind::BlackWool), - 445u32 => Some(BlockKind::BlackBanner), - 777u32 => Some(BlockKind::Candle), - 759u32 => Some(BlockKind::BlackstoneWall), + 124u32 => Some(BlockKind::MovingPiston), + 125u32 => Some(BlockKind::Dandelion), + 126u32 => Some(BlockKind::Poppy), + 127u32 => Some(BlockKind::BlueOrchid), + 128u32 => Some(BlockKind::Allium), + 129u32 => Some(BlockKind::AzureBluet), + 130u32 => Some(BlockKind::RedTulip), + 131u32 => Some(BlockKind::OrangeTulip), + 132u32 => Some(BlockKind::WhiteTulip), + 133u32 => Some(BlockKind::PinkTulip), + 134u32 => Some(BlockKind::OxeyeDaisy), + 135u32 => Some(BlockKind::Cornflower), + 136u32 => Some(BlockKind::WitherRose), + 137u32 => Some(BlockKind::LilyOfTheValley), + 138u32 => Some(BlockKind::BrownMushroom), + 139u32 => Some(BlockKind::RedMushroom), + 140u32 => Some(BlockKind::GoldBlock), + 141u32 => Some(BlockKind::IronBlock), 142u32 => Some(BlockKind::Bricks), - 172u32 => Some(BlockKind::OakWallSign), - 88u32 => Some(BlockKind::GrayBed), - 517u32 => Some(BlockKind::MagmaBlock), - 471u32 => Some(BlockKind::DarkOakSlab), - 656u32 => Some(BlockKind::SmoothRedSandstoneSlab), - 146u32 => Some(BlockKind::Obsidian), - 208u32 => Some(BlockKind::Glowstone), - 83u32 => Some(BlockKind::MagentaBed), - 402u32 => Some(BlockKind::DarkPrismarineSlab), - 102u32 => Some(BlockKind::Fern), - 594u32 => Some(BlockKind::DeadBubbleCoralBlock), - 650u32 => Some(BlockKind::GraniteStairs), - 97u32 => Some(BlockKind::PoweredRail), - 640u32 => Some(BlockKind::BubbleColumn), - 108u32 => Some(BlockKind::WhiteWool), - 490u32 => Some(BlockKind::BirchFenceGate), - 76u32 => Some(BlockKind::Dispenser), - 222u32 => Some(BlockKind::LightGrayStainedGlass), - 740u32 => Some(BlockKind::StructureBlock), - 896u32 => Some(BlockKind::PottedAzaleaBush), - 534u32 => Some(BlockKind::PurpleShulkerBox), + 143u32 => Some(BlockKind::Tnt), + 144u32 => Some(BlockKind::Bookshelf), 145u32 => Some(BlockKind::MossyCobblestone), - 321u32 => Some(BlockKind::OakButton), - 334u32 => Some(BlockKind::PlayerWallHead), - 801u32 => Some(BlockKind::PinkCandleCake), - 261u32 => Some(BlockKind::StoneBrickStairs), - 694u32 => Some(BlockKind::Campfire), - 190u32 => Some(BlockKind::RedstoneWallTorch), - 449u32 => Some(BlockKind::LightBlueWallBanner), - 651u32 => Some(BlockKind::AndesiteStairs), - 394u32 => Some(BlockKind::Prismarine), - 720u32 => Some(BlockKind::CrimsonSlab), - 424u32 => Some(BlockKind::Sunflower), - 612u32 => Some(BlockKind::DeadTubeCoralFan), - 38u32 => Some(BlockKind::OakLog), - 824u32 => Some(BlockKind::ExposedCopper), - 544u32 => Some(BlockKind::YellowGlazedTerracotta), - 675u32 => Some(BlockKind::AndesiteWall), - 793u32 => Some(BlockKind::BlackCandle), - 125u32 => Some(BlockKind::Dandelion), - 795u32 => Some(BlockKind::WhiteCandleCake), - 281u32 => Some(BlockKind::EmeraldOre), - 366u32 => Some(BlockKind::PurpleTerracotta), - 713u32 => Some(BlockKind::WeepingVines), - 533u32 => Some(BlockKind::CyanShulkerBox), - 209u32 => Some(BlockKind::NetherPortal), - 666u32 => Some(BlockKind::PolishedAndesiteSlab), - 767u32 => Some(BlockKind::PolishedBlackstoneBrickWall), - 65u32 => Some(BlockKind::JungleLeaves), - 775u32 => Some(BlockKind::CrackedNetherBricks), - 799u32 => Some(BlockKind::YellowCandleCake), - 552u32 => Some(BlockKind::BrownGlazedTerracotta), + 146u32 => Some(BlockKind::Obsidian), 147u32 => Some(BlockKind::Torch), - 315u32 => Some(BlockKind::PottedRedMushroom), - 304u32 => Some(BlockKind::PottedBlueOrchid), - 844u32 => Some(BlockKind::WaxedOxidizedCutCopper), - 91u32 => Some(BlockKind::PurpleBed), - 577u32 => Some(BlockKind::LimeConcretePowder), - 487u32 => Some(BlockKind::SmoothQuartz), - 703u32 => Some(BlockKind::WarpedWartBlock), - 850u32 => Some(BlockKind::WaxedExposedCutCopperStairs), - 310u32 => Some(BlockKind::PottedPinkTulip), - 100u32 => Some(BlockKind::Cobweb), - 237u32 => Some(BlockKind::MossyStoneBricks), - 408u32 => Some(BlockKind::LightBlueCarpet), - 436u32 => Some(BlockKind::PinkBanner), - 743u32 => Some(BlockKind::Target), + 148u32 => Some(BlockKind::WallTorch), + 149u32 => Some(BlockKind::Fire), + 150u32 => Some(BlockKind::SoulFire), + 151u32 => Some(BlockKind::Spawner), + 152u32 => Some(BlockKind::OakStairs), + 153u32 => Some(BlockKind::Chest), + 154u32 => Some(BlockKind::RedstoneWire), + 155u32 => Some(BlockKind::DiamondOre), + 156u32 => Some(BlockKind::DeepslateDiamondOre), + 157u32 => Some(BlockKind::DiamondBlock), + 158u32 => Some(BlockKind::CraftingTable), + 159u32 => Some(BlockKind::Wheat), + 160u32 => Some(BlockKind::Farmland), + 161u32 => Some(BlockKind::Furnace), + 162u32 => Some(BlockKind::OakSign), + 163u32 => Some(BlockKind::SpruceSign), + 164u32 => Some(BlockKind::BirchSign), + 165u32 => Some(BlockKind::AcaciaSign), + 166u32 => Some(BlockKind::JungleSign), 167u32 => Some(BlockKind::DarkOakSign), - 236u32 => Some(BlockKind::StoneBricks), - 768u32 => Some(BlockKind::GildedBlackstone), - 48u32 => Some(BlockKind::StrippedDarkOakLog), - 463u32 => Some(BlockKind::ChiseledRedSandstone), - 559u32 => Some(BlockKind::LightBlueConcrete), - 654u32 => Some(BlockKind::DioriteStairs), - 419u32 => Some(BlockKind::RedCarpet), - 426u32 => Some(BlockKind::RoseBush), - 538u32 => Some(BlockKind::RedShulkerBox), + 168u32 => Some(BlockKind::OakDoor), + 169u32 => Some(BlockKind::Ladder), + 170u32 => Some(BlockKind::Rail), + 171u32 => Some(BlockKind::CobblestoneStairs), + 172u32 => Some(BlockKind::OakWallSign), 173u32 => Some(BlockKind::SpruceWallSign), - 205u32 => Some(BlockKind::PolishedBasalt), - 564u32 => Some(BlockKind::LightGrayConcrete), + 174u32 => Some(BlockKind::BirchWallSign), + 175u32 => Some(BlockKind::AcaciaWallSign), + 176u32 => Some(BlockKind::JungleWallSign), + 177u32 => Some(BlockKind::DarkOakWallSign), + 178u32 => Some(BlockKind::Lever), + 179u32 => Some(BlockKind::StonePressurePlate), + 180u32 => Some(BlockKind::IronDoor), + 181u32 => Some(BlockKind::OakPressurePlate), + 182u32 => Some(BlockKind::SprucePressurePlate), + 183u32 => Some(BlockKind::BirchPressurePlate), + 184u32 => Some(BlockKind::JunglePressurePlate), + 185u32 => Some(BlockKind::AcaciaPressurePlate), + 186u32 => Some(BlockKind::DarkOakPressurePlate), + 187u32 => Some(BlockKind::RedstoneOre), + 188u32 => Some(BlockKind::DeepslateRedstoneOre), + 189u32 => Some(BlockKind::RedstoneTorch), + 190u32 => Some(BlockKind::RedstoneWallTorch), 191u32 => Some(BlockKind::StoneButton), - 892u32 => Some(BlockKind::SmoothBasalt), - 808u32 => Some(BlockKind::GreenCandleCake), - 299u32 => Some(BlockKind::PottedAcaciaSapling), - 352u32 => Some(BlockKind::QuartzPillar), - 93u32 => Some(BlockKind::BrownBed), - 835u32 => Some(BlockKind::CutCopperStairs), - 627u32 => Some(BlockKind::TubeCoralWallFan), - 96u32 => Some(BlockKind::BlackBed), - 605u32 => Some(BlockKind::DeadFireCoral), - 23u32 => Some(BlockKind::AcaciaSapling), - 469u32 => Some(BlockKind::JungleSlab), - 324u32 => Some(BlockKind::JungleButton), - 847u32 => Some(BlockKind::WaxedCutCopper), - 780u32 => Some(BlockKind::MagentaCandle), - 89u32 => Some(BlockKind::LightGrayBed), - 342u32 => Some(BlockKind::TrappedChest), - 375u32 => Some(BlockKind::LightBlueStainedGlassPane), - 151u32 => Some(BlockKind::Spawner), - 25u32 => Some(BlockKind::Bedrock), - 255u32 => Some(BlockKind::PumpkinStem), - 674u32 => Some(BlockKind::NetherBrickWall), - 475u32 => Some(BlockKind::CutSandstoneSlab), - 728u32 => Some(BlockKind::CrimsonFenceGate), - 871u32 => Some(BlockKind::Deepslate), - 244u32 => Some(BlockKind::InfestedCrackedStoneBricks), - 461u32 => Some(BlockKind::BlackWallBanner), - 883u32 => Some(BlockKind::DeepslateTileWall), - 98u32 => Some(BlockKind::DetectorRail), - 134u32 => Some(BlockKind::OxeyeDaisy), - 569u32 => Some(BlockKind::GreenConcrete), - 13u32 => Some(BlockKind::OakPlanks), - 412u32 => Some(BlockKind::GrayCarpet), + 192u32 => Some(BlockKind::Snow), 193u32 => Some(BlockKind::Ice), - 388u32 => Some(BlockKind::AcaciaStairs), - 421u32 => Some(BlockKind::Terracotta), - 653u32 => Some(BlockKind::PolishedAndesiteStairs), - 448u32 => Some(BlockKind::MagentaWallBanner), - 318u32 => Some(BlockKind::PottedCactus), - 560u32 => Some(BlockKind::YellowConcrete), - 813u32 => Some(BlockKind::AmethystCluster), - 45u32 => Some(BlockKind::StrippedBirchLog), - 885u32 => Some(BlockKind::DeepslateBrickStairs), - 270u32 => Some(BlockKind::Cauldron), - 687u32 => Some(BlockKind::Grindstone), - 810u32 => Some(BlockKind::BlackCandleCake), - 456u32 => Some(BlockKind::PurpleWallBanner), - 177u32 => Some(BlockKind::DarkOakWallSign), - 625u32 => Some(BlockKind::DeadFireCoralWallFan), - 812u32 => Some(BlockKind::BuddingAmethyst), - 176u32 => Some(BlockKind::JungleWallSign), - 369u32 => Some(BlockKind::GreenTerracotta), - 367u32 => Some(BlockKind::BlueTerracotta), - 816u32 => Some(BlockKind::SmallAmethystBud), - 755u32 => Some(BlockKind::PottedWarpedRoots), + 194u32 => Some(BlockKind::SnowBlock), + 195u32 => Some(BlockKind::Cactus), + 196u32 => Some(BlockKind::Clay), + 197u32 => Some(BlockKind::SugarCane), + 198u32 => Some(BlockKind::Jukebox), + 199u32 => Some(BlockKind::OakFence), + 200u32 => Some(BlockKind::Pumpkin), + 201u32 => Some(BlockKind::Netherrack), 202u32 => Some(BlockKind::SoulSand), - 585u32 => Some(BlockKind::GreenConcretePowder), - 771u32 => Some(BlockKind::PolishedBlackstonePressurePlate), - 265u32 => Some(BlockKind::NetherBrickFence), - 659u32 => Some(BlockKind::MossyCobblestoneSlab), - 861u32 => Some(BlockKind::SporeBlossom), - 657u32 => Some(BlockKind::MossyStoneBrickSlab), - 409u32 => Some(BlockKind::YellowCarpet), - 762u32 => Some(BlockKind::PolishedBlackstoneBricks), - 527u32 => Some(BlockKind::LightBlueShulkerBox), + 203u32 => Some(BlockKind::SoulSoil), + 204u32 => Some(BlockKind::Basalt), + 205u32 => Some(BlockKind::PolishedBasalt), 206u32 => Some(BlockKind::SoulTorch), - 450u32 => Some(BlockKind::YellowWallBanner), - 737u32 => Some(BlockKind::WarpedSign), - 603u32 => Some(BlockKind::DeadBrainCoral), - 103u32 => Some(BlockKind::DeadBush), - 62u32 => Some(BlockKind::OakLeaves), - 374u32 => Some(BlockKind::MagentaStainedGlassPane), - 379u32 => Some(BlockKind::GrayStainedGlassPane), - 531u32 => Some(BlockKind::GrayShulkerBox), - 149u32 => Some(BlockKind::Fire), - 630u32 => Some(BlockKind::FireCoralWallFan), - 632u32 => Some(BlockKind::SeaPickle), - 521u32 => Some(BlockKind::StructureVoid), - 292u32 => Some(BlockKind::CobblestoneWall), - 437u32 => Some(BlockKind::GrayBanner), - 434u32 => Some(BlockKind::YellowBanner), - 168u32 => Some(BlockKind::OakDoor), - 550u32 => Some(BlockKind::PurpleGlazedTerracotta), - 570u32 => Some(BlockKind::RedConcrete), - 637u32 => Some(BlockKind::PottedBamboo), - 328u32 => Some(BlockKind::SkeletonWallSkull), - 330u32 => Some(BlockKind::WitherSkeletonWallSkull), - 851u32 => Some(BlockKind::WaxedCutCopperStairs), - 506u32 => Some(BlockKind::ChorusFlower), - 179u32 => Some(BlockKind::StonePressurePlate), - 47u32 => Some(BlockKind::StrippedAcaciaLog), - 576u32 => Some(BlockKind::YellowConcretePowder), - 249u32 => Some(BlockKind::IronBars), - 277u32 => Some(BlockKind::DragonEgg), - 160u32 => Some(BlockKind::Farmland), - 541u32 => Some(BlockKind::OrangeGlazedTerracotta), - 36u32 => Some(BlockKind::DeepslateCoalOre), - 665u32 => Some(BlockKind::RedNetherBrickSlab), - 80u32 => Some(BlockKind::NoteBlock), - 678u32 => Some(BlockKind::EndStoneBrickWall), - 558u32 => Some(BlockKind::MagentaConcrete), - 698u32 => Some(BlockKind::StrippedWarpedStem), - 679u32 => Some(BlockKind::DioriteWall), - 523u32 => Some(BlockKind::ShulkerBox), - 195u32 => Some(BlockKind::Cactus), - 44u32 => Some(BlockKind::StrippedSpruceLog), - 524u32 => Some(BlockKind::WhiteShulkerBox), - 320u32 => Some(BlockKind::Potatoes), - 262u32 => Some(BlockKind::Mycelium), - 584u32 => Some(BlockKind::BrownConcretePowder), - 830u32 => Some(BlockKind::ExposedCutCopper), - 452u32 => Some(BlockKind::PinkWallBanner), - 498u32 => Some(BlockKind::DarkOakFence), - 300u32 => Some(BlockKind::PottedDarkOakSapling), - 595u32 => Some(BlockKind::DeadFireCoralBlock), - 614u32 => Some(BlockKind::DeadBubbleCoralFan), - 518u32 => Some(BlockKind::NetherWartBlock), - 629u32 => Some(BlockKind::BubbleCoralWallFan), - 505u32 => Some(BlockKind::ChorusPlant), - 708u32 => Some(BlockKind::CrimsonHyphae), - 827u32 => Some(BlockKind::DeepslateCopperOre), - 256u32 => Some(BlockKind::MelonStem), - 356u32 => Some(BlockKind::WhiteTerracotta), - 137u32 => Some(BlockKind::LilyOfTheValley), - 513u32 => Some(BlockKind::EndGateway), - 9u32 => Some(BlockKind::Dirt), - 638u32 => Some(BlockKind::VoidAir), - 378u32 => Some(BlockKind::PinkStainedGlassPane), - 118u32 => Some(BlockKind::PurpleWool), - 710u32 => Some(BlockKind::CrimsonNylium), - 802u32 => Some(BlockKind::GrayCandleCake), - 99u32 => Some(BlockKind::StickyPiston), - 821u32 => Some(BlockKind::SculkSensor), - 288u32 => Some(BlockKind::BirchStairs), - 389u32 => Some(BlockKind::DarkOakStairs), - 590u32 => Some(BlockKind::DriedKelpBlock), - 465u32 => Some(BlockKind::RedSandstoneStairs), - 717u32 => Some(BlockKind::CrimsonRoots), + 207u32 => Some(BlockKind::SoulWallTorch), + 208u32 => Some(BlockKind::Glowstone), + 209u32 => Some(BlockKind::NetherPortal), + 210u32 => Some(BlockKind::CarvedPumpkin), + 211u32 => Some(BlockKind::JackOLantern), + 212u32 => Some(BlockKind::Cake), + 213u32 => Some(BlockKind::Repeater), + 214u32 => Some(BlockKind::WhiteStainedGlass), + 215u32 => Some(BlockKind::OrangeStainedGlass), 216u32 => Some(BlockKind::MagentaStainedGlass), - 341u32 => Some(BlockKind::DamagedAnvil), - 33u32 => Some(BlockKind::IronOre), - 583u32 => Some(BlockKind::BlueConcretePowder), - 423u32 => Some(BlockKind::PackedIce), - 482u32 => Some(BlockKind::RedSandstoneSlab), - 376u32 => Some(BlockKind::YellowStainedGlassPane), - 397u32 => Some(BlockKind::PrismarineStairs), - 257u32 => Some(BlockKind::Vine), - 183u32 => Some(BlockKind::BirchPressurePlate), - 661u32 => Some(BlockKind::SmoothSandstoneSlab), - 150u32 => Some(BlockKind::SoulFire), + 217u32 => Some(BlockKind::LightBlueStainedGlass), + 218u32 => Some(BlockKind::YellowStainedGlass), + 219u32 => Some(BlockKind::LimeStainedGlass), + 220u32 => Some(BlockKind::PinkStainedGlass), + 221u32 => Some(BlockKind::GrayStainedGlass), + 222u32 => Some(BlockKind::LightGrayStainedGlass), + 223u32 => Some(BlockKind::CyanStainedGlass), + 224u32 => Some(BlockKind::PurpleStainedGlass), + 225u32 => Some(BlockKind::BlueStainedGlass), + 226u32 => Some(BlockKind::BrownStainedGlass), 227u32 => Some(BlockKind::GreenStainedGlass), - 115u32 => Some(BlockKind::GrayWool), - 468u32 => Some(BlockKind::BirchSlab), - 192u32 => Some(BlockKind::Snow), - 607u32 => Some(BlockKind::TubeCoral), - 655u32 => Some(BlockKind::PolishedGraniteSlab), - 587u32 => Some(BlockKind::BlackConcretePowder), - 690u32 => Some(BlockKind::Stonecutter), - 741u32 => Some(BlockKind::Jigsaw), - 196u32 => Some(BlockKind::Clay), - 77u32 => Some(BlockKind::Sandstone), - 73u32 => Some(BlockKind::LapisOre), - 214u32 => Some(BlockKind::WhiteStainedGlass), - 414u32 => Some(BlockKind::CyanCarpet), - 609u32 => Some(BlockKind::BubbleCoral), - 497u32 => Some(BlockKind::AcaciaFence), - 681u32 => Some(BlockKind::Loom), - 163u32 => Some(BlockKind::SpruceSign), - 836u32 => Some(BlockKind::OxidizedCutCopperSlab), - 872u32 => Some(BlockKind::CobbledDeepslate), - 877u32 => Some(BlockKind::PolishedDeepslateStairs), - 591u32 => Some(BlockKind::TurtleEgg), - 180u32 => Some(BlockKind::IronDoor), - 841u32 => Some(BlockKind::WaxedWeatheredCopper), - 184u32 => Some(BlockKind::JunglePressurePlate), - 751u32 => Some(BlockKind::RespawnAnchor), - 116u32 => Some(BlockKind::LightGrayWool), - 347u32 => Some(BlockKind::RedstoneBlock), - 494u32 => Some(BlockKind::SpruceFence), - 112u32 => Some(BlockKind::YellowWool), - 143u32 => Some(BlockKind::Tnt), - 496u32 => Some(BlockKind::JungleFence), - 734u32 => Some(BlockKind::CrimsonDoor), - 495u32 => Some(BlockKind::BirchFence), - 41u32 => Some(BlockKind::JungleLog), - 435u32 => Some(BlockKind::LimeBanner), - 481u32 => Some(BlockKind::QuartzSlab), + 228u32 => Some(BlockKind::RedStainedGlass), + 229u32 => Some(BlockKind::BlackStainedGlass), + 230u32 => Some(BlockKind::OakTrapdoor), + 231u32 => Some(BlockKind::SpruceTrapdoor), + 232u32 => Some(BlockKind::BirchTrapdoor), + 233u32 => Some(BlockKind::JungleTrapdoor), 234u32 => Some(BlockKind::AcaciaTrapdoor), - 750u32 => Some(BlockKind::CryingObsidian), - 615u32 => Some(BlockKind::DeadFireCoralFan), - 509u32 => Some(BlockKind::PurpurStairs), - 429u32 => Some(BlockKind::LargeFern), - 869u32 => Some(BlockKind::HangingRoots), - 512u32 => Some(BlockKind::DirtPath), - 18u32 => Some(BlockKind::DarkOakPlanks), - 140u32 => Some(BlockKind::GoldBlock), - 745u32 => Some(BlockKind::Beehive), - 66u32 => Some(BlockKind::AcaciaLeaves), - 133u32 => Some(BlockKind::PinkTulip), - 886u32 => Some(BlockKind::DeepslateBrickSlab), - 511u32 => Some(BlockKind::Beetroots), - 539u32 => Some(BlockKind::BlackShulkerBox), - 141u32 => Some(BlockKind::IronBlock), - 744u32 => Some(BlockKind::BeeNest), - 764u32 => Some(BlockKind::ChiseledPolishedBlackstone), - 574u32 => Some(BlockKind::MagentaConcretePowder), - 74u32 => Some(BlockKind::DeepslateLapisOre), - 131u32 => Some(BlockKind::OrangeTulip), - 806u32 => Some(BlockKind::BlueCandleCake), - 114u32 => Some(BlockKind::PinkWool), - 166u32 => Some(BlockKind::JungleSign), - 571u32 => Some(BlockKind::BlackConcrete), - 606u32 => Some(BlockKind::DeadHornCoral), - 704u32 => Some(BlockKind::WarpedRoots), - 22u32 => Some(BlockKind::JungleSapling), - 291u32 => Some(BlockKind::Beacon), - 287u32 => Some(BlockKind::SpruceStairs), - 296u32 => Some(BlockKind::PottedSpruceSapling), - 52u32 => Some(BlockKind::BirchWood), - 189u32 => Some(BlockKind::RedstoneTorch), - 329u32 => Some(BlockKind::WitherSkeletonSkull), - 54u32 => Some(BlockKind::AcaciaWood), - 413u32 => Some(BlockKind::LightGrayCarpet), - 815u32 => Some(BlockKind::MediumAmethystBud), - 21u32 => Some(BlockKind::BirchSapling), - 894u32 => Some(BlockKind::RawCopperBlock), - 671u32 => Some(BlockKind::MossyStoneBrickWall), + 235u32 => Some(BlockKind::DarkOakTrapdoor), + 236u32 => Some(BlockKind::StoneBricks), + 237u32 => Some(BlockKind::MossyStoneBricks), + 238u32 => Some(BlockKind::CrackedStoneBricks), + 239u32 => Some(BlockKind::ChiseledStoneBricks), 240u32 => Some(BlockKind::InfestedStone), - 194u32 => Some(BlockKind::SnowBlock), - 289u32 => Some(BlockKind::JungleStairs), - 478u32 => Some(BlockKind::BrickSlab), - 351u32 => Some(BlockKind::ChiseledQuartzBlock), - 37u32 => Some(BlockKind::NetherGoldOre), - 709u32 => Some(BlockKind::StrippedCrimsonHyphae), - 596u32 => Some(BlockKind::DeadHornCoralBlock), - 722u32 => Some(BlockKind::CrimsonPressurePlate), - 32u32 => Some(BlockKind::DeepslateGoldOre), - 785u32 => Some(BlockKind::GrayCandle), - 271u32 => Some(BlockKind::WaterCauldron), - 680u32 => Some(BlockKind::Scaffolding), - 667u32 => Some(BlockKind::DioriteSlab), - 548u32 => Some(BlockKind::LightGrayGlazedTerracotta), - 528u32 => Some(BlockKind::YellowShulkerBox), - 843u32 => Some(BlockKind::WaxedOxidizedCopper), - 229u32 => Some(BlockKind::BlackStainedGlass), - 724u32 => Some(BlockKind::CrimsonFence), - 779u32 => Some(BlockKind::OrangeCandle), - 660u32 => Some(BlockKind::EndStoneBrickSlab), - 658u32 => Some(BlockKind::PolishedDioriteSlab), - 525u32 => Some(BlockKind::OrangeShulkerBox), - 484u32 => Some(BlockKind::PurpurSlab), - 700u32 => Some(BlockKind::StrippedWarpedHyphae), + 241u32 => Some(BlockKind::InfestedCobblestone), + 242u32 => Some(BlockKind::InfestedStoneBricks), + 243u32 => Some(BlockKind::InfestedMossyStoneBricks), + 244u32 => Some(BlockKind::InfestedCrackedStoneBricks), + 245u32 => Some(BlockKind::InfestedChiseledStoneBricks), 246u32 => Some(BlockKind::BrownMushroomBlock), - 601u32 => Some(BlockKind::HornCoralBlock), - 309u32 => Some(BlockKind::PottedWhiteTulip), - 763u32 => Some(BlockKind::CrackedPolishedBlackstoneBricks), - 752u32 => Some(BlockKind::PottedCrimsonFungus), - 1u32 => Some(BlockKind::Stone), - 781u32 => Some(BlockKind::LightBlueCandle), - 866u32 => Some(BlockKind::BigDripleaf), - 774u32 => Some(BlockKind::ChiseledNetherBricks), - 269u32 => Some(BlockKind::BrewingStand), - 829u32 => Some(BlockKind::WeatheredCutCopper), - 105u32 => Some(BlockKind::TallSeagrass), - 404u32 => Some(BlockKind::HayBlock), - 695u32 => Some(BlockKind::SoulCampfire), - 217u32 => Some(BlockKind::LightBlueStainedGlass), - 890u32 => Some(BlockKind::CrackedDeepslateTiles), - 480u32 => Some(BlockKind::NetherBrickSlab), - 551u32 => Some(BlockKind::BlueGlazedTerracotta), - 807u32 => Some(BlockKind::BrownCandleCake), - 29u32 => Some(BlockKind::RedSand), - 109u32 => Some(BlockKind::OrangeWool), - 646u32 => Some(BlockKind::EndStoneBrickStairs), - 862u32 => Some(BlockKind::Azalea), - 302u32 => Some(BlockKind::PottedDandelion), - 181u32 => Some(BlockKind::OakPressurePlate), - 858u32 => Some(BlockKind::DripstoneBlock), - 35u32 => Some(BlockKind::CoalOre), - 203u32 => Some(BlockKind::SoulSoil), - 856u32 => Some(BlockKind::LightningRod), + 247u32 => Some(BlockKind::RedMushroomBlock), 248u32 => Some(BlockKind::MushroomStem), - 686u32 => Some(BlockKind::FletchingTable), - 185u32 => Some(BlockKind::AcaciaPressurePlate), - 53u32 => Some(BlockKind::JungleWood), - 689u32 => Some(BlockKind::SmithingTable), - 453u32 => Some(BlockKind::GrayWallBanner), - 624u32 => Some(BlockKind::DeadBubbleCoralWallFan), - 697u32 => Some(BlockKind::WarpedStem), - 565u32 => Some(BlockKind::CyanConcrete), - 55u32 => Some(BlockKind::DarkOakWood), - 696u32 => Some(BlockKind::SweetBerryBush), - 113u32 => Some(BlockKind::LimeWool), - 64u32 => Some(BlockKind::BirchLeaves), - 259u32 => Some(BlockKind::OakFenceGate), - 75u32 => Some(BlockKind::LapisBlock), - 620u32 => Some(BlockKind::FireCoralFan), - 326u32 => Some(BlockKind::DarkOakButton), - 7u32 => Some(BlockKind::PolishedAndesite), - 348u32 => Some(BlockKind::NetherQuartzOre), - 392u32 => Some(BlockKind::Light), - 476u32 => Some(BlockKind::PetrifiedOakSlab), - 876u32 => Some(BlockKind::PolishedDeepslate), - 621u32 => Some(BlockKind::HornCoralFan), - 608u32 => Some(BlockKind::BrainCoral), - 19u32 => Some(BlockKind::OakSapling), - 736u32 => Some(BlockKind::CrimsonSign), - 34u32 => Some(BlockKind::DeepslateIronOre), - 833u32 => Some(BlockKind::WeatheredCutCopperStairs), - 139u32 => Some(BlockKind::RedMushroom), - 46u32 => Some(BlockKind::StrippedJungleLog), - 507u32 => Some(BlockKind::PurpurBlock), - 455u32 => Some(BlockKind::CyanWallBanner), - 491u32 => Some(BlockKind::JungleFenceGate), - 171u32 => Some(BlockKind::CobblestoneStairs), - 70u32 => Some(BlockKind::Sponge), - 110u32 => Some(BlockKind::MagentaWool), - 333u32 => Some(BlockKind::PlayerHead), - 879u32 => Some(BlockKind::PolishedDeepslateWall), - 201u32 => Some(BlockKind::Netherrack), - 357u32 => Some(BlockKind::OrangeTerracotta), - 754u32 => Some(BlockKind::PottedCrimsonRoots), - 153u32 => Some(BlockKind::Chest), - 832u32 => Some(BlockKind::OxidizedCutCopperStairs), - 198u32 => Some(BlockKind::Jukebox), - 384u32 => Some(BlockKind::BrownStainedGlassPane), + 249u32 => Some(BlockKind::IronBars), + 250u32 => Some(BlockKind::Chain), + 251u32 => Some(BlockKind::GlassPane), + 252u32 => Some(BlockKind::Melon), + 253u32 => Some(BlockKind::AttachedPumpkinStem), 254u32 => Some(BlockKind::AttachedMelonStem), - 514u32 => Some(BlockKind::RepeatingCommandBlock), - 226u32 => Some(BlockKind::BrownStainedGlass), - 602u32 => Some(BlockKind::DeadTubeCoral), - 104u32 => Some(BlockKind::Seagrass), - 874u32 => Some(BlockKind::CobbledDeepslateSlab), - 677u32 => Some(BlockKind::SandstoneWall), - 516u32 => Some(BlockKind::FrostedIce), - 40u32 => Some(BlockKind::BirchLog), - 138u32 => Some(BlockKind::BrownMushroom), + 255u32 => Some(BlockKind::PumpkinStem), + 256u32 => Some(BlockKind::MelonStem), + 257u32 => Some(BlockKind::Vine), + 258u32 => Some(BlockKind::GlowLichen), + 259u32 => Some(BlockKind::OakFenceGate), + 260u32 => Some(BlockKind::BrickStairs), + 261u32 => Some(BlockKind::StoneBrickStairs), + 262u32 => Some(BlockKind::Mycelium), + 263u32 => Some(BlockKind::LilyPad), 264u32 => Some(BlockKind::NetherBricks), - 406u32 => Some(BlockKind::OrangeCarpet), - 619u32 => Some(BlockKind::BubbleCoralFan), - 314u32 => Some(BlockKind::PottedWitherRose), - 152u32 => Some(BlockKind::OakStairs), - 349u32 => Some(BlockKind::Hopper), - 792u32 => Some(BlockKind::RedCandle), - 51u32 => Some(BlockKind::SpruceWood), - 784u32 => Some(BlockKind::PinkCandle), - 132u32 => Some(BlockKind::WhiteTulip), - 169u32 => Some(BlockKind::Ladder), - 232u32 => Some(BlockKind::BirchTrapdoor), - 758u32 => Some(BlockKind::BlackstoneStairs), - 887u32 => Some(BlockKind::DeepslateBrickWall), - 286u32 => Some(BlockKind::EmeraldBlock), - 634u32 => Some(BlockKind::Conduit), - 363u32 => Some(BlockKind::GrayTerracotta), - 464u32 => Some(BlockKind::CutRedSandstone), - 365u32 => Some(BlockKind::CyanTerracotta), - 10u32 => Some(BlockKind::CoarseDirt), - 396u32 => Some(BlockKind::DarkPrismarine), - 403u32 => Some(BlockKind::SeaLantern), - 504u32 => Some(BlockKind::EndRod), - 857u32 => Some(BlockKind::PointedDripstone), - 383u32 => Some(BlockKind::BlueStainedGlassPane), - 718u32 => Some(BlockKind::CrimsonPlanks), - 875u32 => Some(BlockKind::CobbledDeepslateWall), - 106u32 => Some(BlockKind::Piston), - 878u32 => Some(BlockKind::PolishedDeepslateSlab), - 355u32 => Some(BlockKind::Dropper), - 732u32 => Some(BlockKind::CrimsonButton), - 727u32 => Some(BlockKind::WarpedTrapdoor), - 399u32 => Some(BlockKind::DarkPrismarineStairs), - 702u32 => Some(BlockKind::WarpedFungus), - 867u32 => Some(BlockKind::BigDripleafStem), - 790u32 => Some(BlockKind::BrownCandle), - 230u32 => Some(BlockKind::OakTrapdoor), - 891u32 => Some(BlockKind::InfestedDeepslate), - 556u32 => Some(BlockKind::WhiteConcrete), - 831u32 => Some(BlockKind::CutCopper), - 279u32 => Some(BlockKind::Cocoa), - 188u32 => Some(BlockKind::DeepslateRedstoneOre), - 433u32 => Some(BlockKind::LightBlueBanner), - 882u32 => Some(BlockKind::DeepslateTileSlab), - 562u32 => Some(BlockKind::PinkConcrete), - 311u32 => Some(BlockKind::PottedOxeyeDaisy), - 725u32 => Some(BlockKind::WarpedFence), - 360u32 => Some(BlockKind::YellowTerracotta), - 272u32 => Some(BlockKind::LavaCauldron), - 519u32 => Some(BlockKind::RedNetherBricks), - 219u32 => Some(BlockKind::LimeStainedGlass), - 778u32 => Some(BlockKind::WhiteCandle), - 2u32 => Some(BlockKind::Granite), - 451u32 => Some(BlockKind::LimeWallBanner), - 245u32 => Some(BlockKind::InfestedChiseledStoneBricks), - 502u32 => Some(BlockKind::AcaciaDoor), - 685u32 => Some(BlockKind::CartographyTable), - 27u32 => Some(BlockKind::Lava), - 545u32 => Some(BlockKind::LimeGlazedTerracotta), - 297u32 => Some(BlockKind::PottedBirchSapling), - 617u32 => Some(BlockKind::TubeCoralFan), - 859u32 => Some(BlockKind::CaveVines), - 543u32 => Some(BlockKind::LightBlueGlazedTerracotta), - 187u32 => Some(BlockKind::RedstoneOre), - 676u32 => Some(BlockKind::RedNetherBrickWall), - 796u32 => Some(BlockKind::OrangeCandleCake), + 265u32 => Some(BlockKind::NetherBrickFence), + 266u32 => Some(BlockKind::NetherBrickStairs), + 267u32 => Some(BlockKind::NetherWart), 268u32 => Some(BlockKind::EnchantingTable), - 747u32 => Some(BlockKind::HoneycombBlock), - 888u32 => Some(BlockKind::ChiseledDeepslate), + 269u32 => Some(BlockKind::BrewingStand), + 270u32 => Some(BlockKind::Cauldron), + 271u32 => Some(BlockKind::WaterCauldron), + 272u32 => Some(BlockKind::LavaCauldron), + 273u32 => Some(BlockKind::PowderSnowCauldron), 274u32 => Some(BlockKind::EndPortal), - 515u32 => Some(BlockKind::ChainCommandBlock), + 275u32 => Some(BlockKind::EndPortalFrame), + 276u32 => Some(BlockKind::EndStone), + 277u32 => Some(BlockKind::DragonEgg), + 278u32 => Some(BlockKind::RedstoneLamp), + 279u32 => Some(BlockKind::Cocoa), + 280u32 => Some(BlockKind::SandstoneStairs), + 281u32 => Some(BlockKind::EmeraldOre), + 282u32 => Some(BlockKind::DeepslateEmeraldOre), 283u32 => Some(BlockKind::EnderChest), + 284u32 => Some(BlockKind::TripwireHook), + 285u32 => Some(BlockKind::Tripwire), + 286u32 => Some(BlockKind::EmeraldBlock), + 287u32 => Some(BlockKind::SpruceStairs), + 288u32 => Some(BlockKind::BirchStairs), + 289u32 => Some(BlockKind::JungleStairs), + 290u32 => Some(BlockKind::CommandBlock), + 291u32 => Some(BlockKind::Beacon), + 292u32 => Some(BlockKind::CobblestoneWall), + 293u32 => Some(BlockKind::MossyCobblestoneWall), + 294u32 => Some(BlockKind::FlowerPot), + 295u32 => Some(BlockKind::PottedOakSapling), + 296u32 => Some(BlockKind::PottedSpruceSapling), + 297u32 => Some(BlockKind::PottedBirchSapling), + 298u32 => Some(BlockKind::PottedJungleSapling), + 299u32 => Some(BlockKind::PottedAcaciaSapling), + 300u32 => Some(BlockKind::PottedDarkOakSapling), + 301u32 => Some(BlockKind::PottedFern), + 302u32 => Some(BlockKind::PottedDandelion), + 303u32 => Some(BlockKind::PottedPoppy), + 304u32 => Some(BlockKind::PottedBlueOrchid), 305u32 => Some(BlockKind::PottedAllium), + 306u32 => Some(BlockKind::PottedAzureBluet), + 307u32 => Some(BlockKind::PottedRedTulip), + 308u32 => Some(BlockKind::PottedOrangeTulip), + 309u32 => Some(BlockKind::PottedWhiteTulip), + 310u32 => Some(BlockKind::PottedPinkTulip), + 311u32 => Some(BlockKind::PottedOxeyeDaisy), + 312u32 => Some(BlockKind::PottedCornflower), + 313u32 => Some(BlockKind::PottedLilyOfTheValley), + 314u32 => Some(BlockKind::PottedWitherRose), + 315u32 => Some(BlockKind::PottedRedMushroom), + 316u32 => Some(BlockKind::PottedBrownMushroom), + 317u32 => Some(BlockKind::PottedDeadBush), + 318u32 => Some(BlockKind::PottedCactus), + 319u32 => Some(BlockKind::Carrots), + 320u32 => Some(BlockKind::Potatoes), + 321u32 => Some(BlockKind::OakButton), + 322u32 => Some(BlockKind::SpruceButton), 323u32 => Some(BlockKind::BirchButton), - 748u32 => Some(BlockKind::NetheriteBlock), - 760u32 => Some(BlockKind::BlackstoneSlab), - 742u32 => Some(BlockKind::Composter), - 825u32 => Some(BlockKind::CopperBlock), + 324u32 => Some(BlockKind::JungleButton), + 325u32 => Some(BlockKind::AcaciaButton), + 326u32 => Some(BlockKind::DarkOakButton), + 327u32 => Some(BlockKind::SkeletonSkull), + 328u32 => Some(BlockKind::SkeletonWallSkull), + 329u32 => Some(BlockKind::WitherSkeletonSkull), + 330u32 => Some(BlockKind::WitherSkeletonWallSkull), + 331u32 => Some(BlockKind::ZombieHead), 332u32 => Some(BlockKind::ZombieWallHead), - 72u32 => Some(BlockKind::Glass), - 529u32 => Some(BlockKind::LimeShulkerBox), - 5u32 => Some(BlockKind::PolishedDiorite), - 390u32 => Some(BlockKind::SlimeBlock), - 432u32 => Some(BlockKind::MagentaBanner), - 443u32 => Some(BlockKind::GreenBanner), - 611u32 => Some(BlockKind::HornCoral), - 705u32 => Some(BlockKind::NetherSprouts), - 473u32 => Some(BlockKind::SmoothStoneSlab), - 823u32 => Some(BlockKind::WeatheredCopper), - 405u32 => Some(BlockKind::WhiteCarpet), - 128u32 => Some(BlockKind::Allium), - 228u32 => Some(BlockKind::RedStainedGlass), - 635u32 => Some(BlockKind::BambooSapling), - 178u32 => Some(BlockKind::Lever), - 235u32 => Some(BlockKind::DarkOakTrapdoor), - 786u32 => Some(BlockKind::LightGrayCandle), - 94u32 => Some(BlockKind::GreenBed), - 715u32 => Some(BlockKind::TwistingVines), - 839u32 => Some(BlockKind::CutCopperSlab), - 293u32 => Some(BlockKind::MossyCobblestoneWall), - 444u32 => Some(BlockKind::RedBanner), - 870u32 => Some(BlockKind::RootedDirt), - 794u32 => Some(BlockKind::CandleCake), - 477u32 => Some(BlockKind::CobblestoneSlab), - 218u32 => Some(BlockKind::YellowStainedGlass), - 643u32 => Some(BlockKind::MossyStoneBrickStairs), - 204u32 => Some(BlockKind::Basalt), - 239u32 => Some(BlockKind::ChiseledStoneBricks), - 380u32 => Some(BlockKind::LightGrayStainedGlassPane), - 580u32 => Some(BlockKind::LightGrayConcretePowder), - 817u32 => Some(BlockKind::Tuff), + 333u32 => Some(BlockKind::PlayerHead), + 334u32 => Some(BlockKind::PlayerWallHead), + 335u32 => Some(BlockKind::CreeperHead), 336u32 => Some(BlockKind::CreeperWallHead), - 11u32 => Some(BlockKind::Podzol), - 14u32 => Some(BlockKind::SprucePlanks), - 398u32 => Some(BlockKind::PrismarineBrickStairs), - 81u32 => Some(BlockKind::WhiteBed), - 536u32 => Some(BlockKind::BrownShulkerBox), - 503u32 => Some(BlockKind::DarkOakDoor), - 820u32 => Some(BlockKind::PowderSnow), - 344u32 => Some(BlockKind::HeavyWeightedPressurePlate), - 0u32 => Some(BlockKind::Air), - 673u32 => Some(BlockKind::StoneBrickWall), - 85u32 => Some(BlockKind::YellowBed), - 107u32 => Some(BlockKind::PistonHead), - 391u32 => Some(BlockKind::Barrier), - 828u32 => Some(BlockKind::OxidizedCutCopper), - 68u32 => Some(BlockKind::AzaleaLeaves), - 385u32 => Some(BlockKind::GreenStainedGlassPane), 337u32 => Some(BlockKind::DragonHead), - 688u32 => Some(BlockKind::Lectern), - 43u32 => Some(BlockKind::DarkOakLog), - 210u32 => Some(BlockKind::CarvedPumpkin), - 316u32 => Some(BlockKind::PottedBrownMushroom), - 247u32 => Some(BlockKind::RedMushroomBlock), - 295u32 => Some(BlockKind::PottedOakSapling), - 84u32 => Some(BlockKind::LightBlueBed), - 331u32 => Some(BlockKind::ZombieHead), - 555u32 => Some(BlockKind::BlackGlazedTerracotta), - 353u32 => Some(BlockKind::QuartzStairs), - 726u32 => Some(BlockKind::CrimsonTrapdoor), - 791u32 => Some(BlockKind::GreenCandle), - 31u32 => Some(BlockKind::GoldOre), - 582u32 => Some(BlockKind::PurpleConcretePowder), - 26u32 => Some(BlockKind::Water), - 335u32 => Some(BlockKind::CreeperHead), - 692u32 => Some(BlockKind::Lantern), - 714u32 => Some(BlockKind::WeepingVinesPlant), - 699u32 => Some(BlockKind::WarpedHyphae), - 479u32 => Some(BlockKind::StoneBrickSlab), - 756u32 => Some(BlockKind::Lodestone), - 238u32 => Some(BlockKind::CrackedStoneBricks), - 251u32 => Some(BlockKind::GlassPane), - 16u32 => Some(BlockKind::JunglePlanks), - 765u32 => Some(BlockKind::PolishedBlackstoneBrickSlab), - 442u32 => Some(BlockKind::BrownBanner), - 252u32 => Some(BlockKind::Melon), - 649u32 => Some(BlockKind::SmoothQuartzStairs), - 592u32 => Some(BlockKind::DeadTubeCoralBlock), - 407u32 => Some(BlockKind::MagentaCarpet), - 325u32 => Some(BlockKind::AcaciaButton), - 294u32 => Some(BlockKind::FlowerPot), - 158u32 => Some(BlockKind::CraftingTable), - 207u32 => Some(BlockKind::SoulWallTorch), - 837u32 => Some(BlockKind::WeatheredCutCopperSlab), - 122u32 => Some(BlockKind::RedWool), - 301u32 => Some(BlockKind::PottedFern), 338u32 => Some(BlockKind::DragonWallHead), - 361u32 => Some(BlockKind::LimeTerracotta), - 865u32 => Some(BlockKind::MossBlock), - 263u32 => Some(BlockKind::LilyPad), 339u32 => Some(BlockKind::Anvil), - 15u32 => Some(BlockKind::BirchPlanks), - 400u32 => Some(BlockKind::PrismarineSlab), - 557u32 => Some(BlockKind::OrangeConcrete), - 101u32 => Some(BlockKind::Grass), - 579u32 => Some(BlockKind::GrayConcretePowder), - 395u32 => Some(BlockKind::PrismarineBricks), - 701u32 => Some(BlockKind::WarpedNylium), - 787u32 => Some(BlockKind::CyanCandle), - 572u32 => Some(BlockKind::WhiteConcretePowder), - 129u32 => Some(BlockKind::AzureBluet), - 120u32 => Some(BlockKind::BrownWool), - 308u32 => Some(BlockKind::PottedOrangeTulip), - 6u32 => Some(BlockKind::Andesite), - 880u32 => Some(BlockKind::DeepslateTiles), - 71u32 => Some(BlockKind::WetSponge), - 719u32 => Some(BlockKind::WarpedPlanks), - 242u32 => Some(BlockKind::InfestedStoneBricks), - 428u32 => Some(BlockKind::TallGrass), - 49u32 => Some(BlockKind::StrippedOakLog), - 439u32 => Some(BlockKind::CyanBanner), - 568u32 => Some(BlockKind::BrownConcrete), - 92u32 => Some(BlockKind::BlueBed), - 430u32 => Some(BlockKind::WhiteBanner), - 854u32 => Some(BlockKind::WaxedExposedCutCopperSlab), - 307u32 => Some(BlockKind::PottedRedTulip), - 723u32 => Some(BlockKind::WarpedPressurePlate), - 124u32 => Some(BlockKind::MovingPiston), - 573u32 => Some(BlockKind::OrangeConcretePowder), - 730u32 => Some(BlockKind::CrimsonStairs), - 805u32 => Some(BlockKind::PurpleCandleCake), - 42u32 => Some(BlockKind::AcaciaLog), - 826u32 => Some(BlockKind::CopperOre), - 312u32 => Some(BlockKind::PottedCornflower), + 340u32 => Some(BlockKind::ChippedAnvil), + 341u32 => Some(BlockKind::DamagedAnvil), + 342u32 => Some(BlockKind::TrappedChest), + 343u32 => Some(BlockKind::LightWeightedPressurePlate), + 344u32 => Some(BlockKind::HeavyWeightedPressurePlate), + 345u32 => Some(BlockKind::Comparator), + 346u32 => Some(BlockKind::DaylightDetector), + 347u32 => Some(BlockKind::RedstoneBlock), + 348u32 => Some(BlockKind::NetherQuartzOre), + 349u32 => Some(BlockKind::Hopper), 350u32 => Some(BlockKind::QuartzBlock), - 855u32 => Some(BlockKind::WaxedCutCopperSlab), - 440u32 => Some(BlockKind::PurpleBanner), - 526u32 => Some(BlockKind::MagentaShulkerBox), - 691u32 => Some(BlockKind::Bell), - 561u32 => Some(BlockKind::LimeConcrete), - 420u32 => Some(BlockKind::BlackCarpet), + 351u32 => Some(BlockKind::ChiseledQuartzBlock), + 352u32 => Some(BlockKind::QuartzPillar), + 353u32 => Some(BlockKind::QuartzStairs), + 354u32 => Some(BlockKind::ActivatorRail), + 355u32 => Some(BlockKind::Dropper), + 356u32 => Some(BlockKind::WhiteTerracotta), + 357u32 => Some(BlockKind::OrangeTerracotta), + 358u32 => Some(BlockKind::MagentaTerracotta), + 359u32 => Some(BlockKind::LightBlueTerracotta), + 360u32 => Some(BlockKind::YellowTerracotta), + 361u32 => Some(BlockKind::LimeTerracotta), + 362u32 => Some(BlockKind::PinkTerracotta), + 363u32 => Some(BlockKind::GrayTerracotta), + 364u32 => Some(BlockKind::LightGrayTerracotta), + 365u32 => Some(BlockKind::CyanTerracotta), + 366u32 => Some(BlockKind::PurpleTerracotta), + 367u32 => Some(BlockKind::BlueTerracotta), + 368u32 => Some(BlockKind::BrownTerracotta), + 369u32 => Some(BlockKind::GreenTerracotta), + 370u32 => Some(BlockKind::RedTerracotta), + 371u32 => Some(BlockKind::BlackTerracotta), + 372u32 => Some(BlockKind::WhiteStainedGlassPane), + 373u32 => Some(BlockKind::OrangeStainedGlassPane), + 374u32 => Some(BlockKind::MagentaStainedGlassPane), + 375u32 => Some(BlockKind::LightBlueStainedGlassPane), + 376u32 => Some(BlockKind::YellowStainedGlassPane), + 377u32 => Some(BlockKind::LimeStainedGlassPane), + 378u32 => Some(BlockKind::PinkStainedGlassPane), + 379u32 => Some(BlockKind::GrayStainedGlassPane), + 380u32 => Some(BlockKind::LightGrayStainedGlassPane), 381u32 => Some(BlockKind::CyanStainedGlassPane), - 225u32 => Some(BlockKind::BlueStainedGlass), + 382u32 => Some(BlockKind::PurpleStainedGlassPane), + 383u32 => Some(BlockKind::BlueStainedGlassPane), + 384u32 => Some(BlockKind::BrownStainedGlassPane), + 385u32 => Some(BlockKind::GreenStainedGlassPane), + 386u32 => Some(BlockKind::RedStainedGlassPane), + 387u32 => Some(BlockKind::BlackStainedGlassPane), + 388u32 => Some(BlockKind::AcaciaStairs), + 389u32 => Some(BlockKind::DarkOakStairs), + 390u32 => Some(BlockKind::SlimeBlock), + 391u32 => Some(BlockKind::Barrier), + 392u32 => Some(BlockKind::Light), + 393u32 => Some(BlockKind::IronTrapdoor), + 394u32 => Some(BlockKind::Prismarine), + 395u32 => Some(BlockKind::PrismarineBricks), + 396u32 => Some(BlockKind::DarkPrismarine), + 397u32 => Some(BlockKind::PrismarineStairs), + 398u32 => Some(BlockKind::PrismarineBrickStairs), + 399u32 => Some(BlockKind::DarkPrismarineStairs), + 400u32 => Some(BlockKind::PrismarineSlab), + 401u32 => Some(BlockKind::PrismarineBrickSlab), + 402u32 => Some(BlockKind::DarkPrismarineSlab), + 403u32 => Some(BlockKind::SeaLantern), + 404u32 => Some(BlockKind::HayBlock), + 405u32 => Some(BlockKind::WhiteCarpet), + 406u32 => Some(BlockKind::OrangeCarpet), + 407u32 => Some(BlockKind::MagentaCarpet), + 408u32 => Some(BlockKind::LightBlueCarpet), + 409u32 => Some(BlockKind::YellowCarpet), 410u32 => Some(BlockKind::LimeCarpet), - 20u32 => Some(BlockKind::SpruceSapling), - 873u32 => Some(BlockKind::CobbledDeepslateStairs), 411u32 => Some(BlockKind::PinkCarpet), - 454u32 => Some(BlockKind::LightGrayWallBanner), - 776u32 => Some(BlockKind::QuartzBricks), - 769u32 => Some(BlockKind::PolishedBlackstoneStairs), - 501u32 => Some(BlockKind::JungleDoor), - 840u32 => Some(BlockKind::WaxedCopperBlock), - 148u32 => Some(BlockKind::WallTorch), - 170u32 => Some(BlockKind::Rail), - 273u32 => Some(BlockKind::PowderSnowCauldron), - 623u32 => Some(BlockKind::DeadBrainCoralWallFan), - 683u32 => Some(BlockKind::Smoker), - 24u32 => Some(BlockKind::DarkOakSapling), - 59u32 => Some(BlockKind::StrippedJungleWood), - 770u32 => Some(BlockKind::PolishedBlackstoneSlab), - 220u32 => Some(BlockKind::PinkStainedGlass), - 860u32 => Some(BlockKind::CaveVinesPlant), - 819u32 => Some(BlockKind::TintedGlass), - 863u32 => Some(BlockKind::FloweringAzalea), - 814u32 => Some(BlockKind::LargeAmethystBud), - 284u32 => Some(BlockKind::TripwireHook), - 8u32 => Some(BlockKind::GrassBlock), - 881u32 => Some(BlockKind::DeepslateTileStairs), - 317u32 => Some(BlockKind::PottedDeadBush), - 165u32 => Some(BlockKind::AcaciaSign), - 200u32 => Some(BlockKind::Pumpkin), - 889u32 => Some(BlockKind::CrackedDeepslateBricks), - 12u32 => Some(BlockKind::Cobblestone), - 135u32 => Some(BlockKind::Cornflower), - 711u32 => Some(BlockKind::CrimsonFungus), - 563u32 => Some(BlockKind::GrayConcrete), - 868u32 => Some(BlockKind::SmallDripleaf), - 275u32 => Some(BlockKind::EndPortalFrame), - 4u32 => Some(BlockKind::Diorite), + 412u32 => Some(BlockKind::GrayCarpet), + 413u32 => Some(BlockKind::LightGrayCarpet), + 414u32 => Some(BlockKind::CyanCarpet), + 415u32 => Some(BlockKind::PurpleCarpet), + 416u32 => Some(BlockKind::BlueCarpet), + 417u32 => Some(BlockKind::BrownCarpet), 418u32 => Some(BlockKind::GreenCarpet), - 535u32 => Some(BlockKind::BlueShulkerBox), - 809u32 => Some(BlockKind::RedCandleCake), - 446u32 => Some(BlockKind::WhiteWallBanner), - 670u32 => Some(BlockKind::RedSandstoneWall), - 546u32 => Some(BlockKind::PinkGlazedTerracotta), - 82u32 => Some(BlockKind::OrangeBed), - 782u32 => Some(BlockKind::YellowCandle), - 466u32 => Some(BlockKind::OakSlab), - 852u32 => Some(BlockKind::WaxedOxidizedCutCopperSlab), - 639u32 => Some(BlockKind::CaveAir), - 17u32 => Some(BlockKind::AcaciaPlanks), - 652u32 => Some(BlockKind::RedNetherBrickStairs), - 845u32 => Some(BlockKind::WaxedWeatheredCutCopper), - 28u32 => Some(BlockKind::Sand), + 419u32 => Some(BlockKind::RedCarpet), + 420u32 => Some(BlockKind::BlackCarpet), + 421u32 => Some(BlockKind::Terracotta), 422u32 => Some(BlockKind::CoalBlock), - 260u32 => Some(BlockKind::BrickStairs), - 789u32 => Some(BlockKind::BlueCandle), - 864u32 => Some(BlockKind::MossCarpet), - 157u32 => Some(BlockKind::DiamondBlock), - 648u32 => Some(BlockKind::SmoothSandstoneStairs), - 373u32 => Some(BlockKind::OrangeStainedGlassPane), - 622u32 => Some(BlockKind::DeadTubeCoralWallFan), - 631u32 => Some(BlockKind::HornCoralWallFan), - 56u32 => Some(BlockKind::StrippedOakWood), - 372u32 => Some(BlockKind::WhiteStainedGlassPane), - 522u32 => Some(BlockKind::Observer), - 567u32 => Some(BlockKind::BlueConcrete), - 69u32 => Some(BlockKind::FloweringAzaleaLeaves), - 599u32 => Some(BlockKind::BubbleCoralBlock), - 668u32 => Some(BlockKind::BrickWall), - 382u32 => Some(BlockKind::PurpleStainedGlassPane), - 90u32 => Some(BlockKind::CyanBed), - 155u32 => Some(BlockKind::DiamondOre), - 721u32 => Some(BlockKind::WarpedSlab), - 377u32 => Some(BlockKind::LimeStainedGlassPane), - 186u32 => Some(BlockKind::DarkOakPressurePlate), - 739u32 => Some(BlockKind::WarpedWallSign), - 276u32 => Some(BlockKind::EndStone), - 575u32 => Some(BlockKind::LightBlueConcretePowder), - 144u32 => Some(BlockKind::Bookshelf), - 322u32 => Some(BlockKind::SpruceButton), - 306u32 => Some(BlockKind::PottedAzureBluet), - 706u32 => Some(BlockKind::CrimsonStem), - 783u32 => Some(BlockKind::LimeCandle), - 415u32 => Some(BlockKind::PurpleCarpet), - 628u32 => Some(BlockKind::BrainCoralWallFan), - 182u32 => Some(BlockKind::SprucePressurePlate), - 159u32 => Some(BlockKind::Wheat), - 258u32 => Some(BlockKind::GlowLichen), + 423u32 => Some(BlockKind::PackedIce), + 424u32 => Some(BlockKind::Sunflower), + 425u32 => Some(BlockKind::Lilac), + 426u32 => Some(BlockKind::RoseBush), + 427u32 => Some(BlockKind::Peony), + 428u32 => Some(BlockKind::TallGrass), + 429u32 => Some(BlockKind::LargeFern), + 430u32 => Some(BlockKind::WhiteBanner), + 431u32 => Some(BlockKind::OrangeBanner), + 432u32 => Some(BlockKind::MagentaBanner), + 433u32 => Some(BlockKind::LightBlueBanner), + 434u32 => Some(BlockKind::YellowBanner), + 435u32 => Some(BlockKind::LimeBanner), + 436u32 => Some(BlockKind::PinkBanner), + 437u32 => Some(BlockKind::GrayBanner), + 438u32 => Some(BlockKind::LightGrayBanner), + 439u32 => Some(BlockKind::CyanBanner), + 440u32 => Some(BlockKind::PurpleBanner), + 441u32 => Some(BlockKind::BlueBanner), + 442u32 => Some(BlockKind::BrownBanner), + 443u32 => Some(BlockKind::GreenBanner), + 444u32 => Some(BlockKind::RedBanner), + 445u32 => Some(BlockKind::BlackBanner), + 446u32 => Some(BlockKind::WhiteWallBanner), + 447u32 => Some(BlockKind::OrangeWallBanner), + 448u32 => Some(BlockKind::MagentaWallBanner), + 449u32 => Some(BlockKind::LightBlueWallBanner), + 450u32 => Some(BlockKind::YellowWallBanner), + 451u32 => Some(BlockKind::LimeWallBanner), + 452u32 => Some(BlockKind::PinkWallBanner), + 453u32 => Some(BlockKind::GrayWallBanner), + 454u32 => Some(BlockKind::LightGrayWallBanner), + 455u32 => Some(BlockKind::CyanWallBanner), + 456u32 => Some(BlockKind::PurpleWallBanner), + 457u32 => Some(BlockKind::BlueWallBanner), + 458u32 => Some(BlockKind::BrownWallBanner), + 459u32 => Some(BlockKind::GreenWallBanner), + 460u32 => Some(BlockKind::RedWallBanner), + 461u32 => Some(BlockKind::BlackWallBanner), + 462u32 => Some(BlockKind::RedSandstone), + 463u32 => Some(BlockKind::ChiseledRedSandstone), + 464u32 => Some(BlockKind::CutRedSandstone), + 465u32 => Some(BlockKind::RedSandstoneStairs), + 466u32 => Some(BlockKind::OakSlab), + 467u32 => Some(BlockKind::SpruceSlab), + 468u32 => Some(BlockKind::BirchSlab), + 469u32 => Some(BlockKind::JungleSlab), + 470u32 => Some(BlockKind::AcaciaSlab), + 471u32 => Some(BlockKind::DarkOakSlab), + 472u32 => Some(BlockKind::StoneSlab), + 473u32 => Some(BlockKind::SmoothStoneSlab), + 474u32 => Some(BlockKind::SandstoneSlab), + 475u32 => Some(BlockKind::CutSandstoneSlab), + 476u32 => Some(BlockKind::PetrifiedOakSlab), + 477u32 => Some(BlockKind::CobblestoneSlab), + 478u32 => Some(BlockKind::BrickSlab), + 479u32 => Some(BlockKind::StoneBrickSlab), + 480u32 => Some(BlockKind::NetherBrickSlab), + 481u32 => Some(BlockKind::QuartzSlab), + 482u32 => Some(BlockKind::RedSandstoneSlab), + 483u32 => Some(BlockKind::CutRedSandstoneSlab), + 484u32 => Some(BlockKind::PurpurSlab), + 485u32 => Some(BlockKind::SmoothStone), + 486u32 => Some(BlockKind::SmoothSandstone), + 487u32 => Some(BlockKind::SmoothQuartz), 488u32 => Some(BlockKind::SmoothRedSandstone), - 842u32 => Some(BlockKind::WaxedExposedCopper), - 162u32 => Some(BlockKind::OakSign), - 354u32 => Some(BlockKind::ActivatorRail), - 401u32 => Some(BlockKind::PrismarineBrickSlab), - 822u32 => Some(BlockKind::OxidizedCopper), - 60u32 => Some(BlockKind::StrippedAcaciaWood), - 197u32 => Some(BlockKind::SugarCane), - 161u32 => Some(BlockKind::Furnace), - 211u32 => Some(BlockKind::JackOLantern), - 588u32 => Some(BlockKind::Kelp), - 593u32 => Some(BlockKind::DeadBrainCoralBlock), - 707u32 => Some(BlockKind::StrippedCrimsonStem), - 87u32 => Some(BlockKind::PinkBed), + 489u32 => Some(BlockKind::SpruceFenceGate), + 490u32 => Some(BlockKind::BirchFenceGate), + 491u32 => Some(BlockKind::JungleFenceGate), + 492u32 => Some(BlockKind::AcaciaFenceGate), + 493u32 => Some(BlockKind::DarkOakFenceGate), + 494u32 => Some(BlockKind::SpruceFence), + 495u32 => Some(BlockKind::BirchFence), + 496u32 => Some(BlockKind::JungleFence), + 497u32 => Some(BlockKind::AcaciaFence), + 498u32 => Some(BlockKind::DarkOakFence), 499u32 => Some(BlockKind::SpruceDoor), - 345u32 => Some(BlockKind::Comparator), 500u32 => Some(BlockKind::BirchDoor), - 130u32 => Some(BlockKind::RedTulip), - 303u32 => Some(BlockKind::PottedPoppy), - 266u32 => Some(BlockKind::NetherBrickStairs), - 267u32 => Some(BlockKind::NetherWart), - 553u32 => Some(BlockKind::GreenGlazedTerracotta), - 800u32 => Some(BlockKind::LimeCandleCake), - 156u32 => Some(BlockKind::DeepslateDiamondOre), - 613u32 => Some(BlockKind::DeadBrainCoralFan), - 746u32 => Some(BlockKind::HoneyBlock), - 682u32 => Some(BlockKind::Barrel), - 416u32 => Some(BlockKind::BlueCarpet), - 532u32 => Some(BlockKind::LightGrayShulkerBox), - 215u32 => Some(BlockKind::OrangeStainedGlass), + 501u32 => Some(BlockKind::JungleDoor), + 502u32 => Some(BlockKind::AcaciaDoor), + 503u32 => Some(BlockKind::DarkOakDoor), + 504u32 => Some(BlockKind::EndRod), + 505u32 => Some(BlockKind::ChorusPlant), + 506u32 => Some(BlockKind::ChorusFlower), + 507u32 => Some(BlockKind::PurpurBlock), + 508u32 => Some(BlockKind::PurpurPillar), + 509u32 => Some(BlockKind::PurpurStairs), + 510u32 => Some(BlockKind::EndStoneBricks), + 511u32 => Some(BlockKind::Beetroots), + 512u32 => Some(BlockKind::DirtPath), + 513u32 => Some(BlockKind::EndGateway), + 514u32 => Some(BlockKind::RepeatingCommandBlock), + 515u32 => Some(BlockKind::ChainCommandBlock), + 516u32 => Some(BlockKind::FrostedIce), + 517u32 => Some(BlockKind::MagmaBlock), + 518u32 => Some(BlockKind::NetherWartBlock), + 519u32 => Some(BlockKind::RedNetherBricks), 520u32 => Some(BlockKind::BoneBlock), - 250u32 => Some(BlockKind::Chain), - 669u32 => Some(BlockKind::PrismarineWall), - 712u32 => Some(BlockKind::Shroomlight), - 280u32 => Some(BlockKind::SandstoneStairs), + 521u32 => Some(BlockKind::StructureVoid), + 522u32 => Some(BlockKind::Observer), + 523u32 => Some(BlockKind::ShulkerBox), + 524u32 => Some(BlockKind::WhiteShulkerBox), + 525u32 => Some(BlockKind::OrangeShulkerBox), + 526u32 => Some(BlockKind::MagentaShulkerBox), + 527u32 => Some(BlockKind::LightBlueShulkerBox), + 528u32 => Some(BlockKind::YellowShulkerBox), + 529u32 => Some(BlockKind::LimeShulkerBox), 530u32 => Some(BlockKind::PinkShulkerBox), - 798u32 => Some(BlockKind::LightBlueCandleCake), - 597u32 => Some(BlockKind::TubeCoralBlock), - 797u32 => Some(BlockKind::MagentaCandleCake), + 531u32 => Some(BlockKind::GrayShulkerBox), + 532u32 => Some(BlockKind::LightGrayShulkerBox), + 533u32 => Some(BlockKind::CyanShulkerBox), + 534u32 => Some(BlockKind::PurpleShulkerBox), + 535u32 => Some(BlockKind::BlueShulkerBox), + 536u32 => Some(BlockKind::BrownShulkerBox), + 537u32 => Some(BlockKind::GreenShulkerBox), + 538u32 => Some(BlockKind::RedShulkerBox), + 539u32 => Some(BlockKind::BlackShulkerBox), + 540u32 => Some(BlockKind::WhiteGlazedTerracotta), + 541u32 => Some(BlockKind::OrangeGlazedTerracotta), 542u32 => Some(BlockKind::MagentaGlazedTerracotta), - 427u32 => Some(BlockKind::Peony), - 626u32 => Some(BlockKind::DeadHornCoralWallFan), - 642u32 => Some(BlockKind::SmoothRedSandstoneStairs), - 766u32 => Some(BlockKind::PolishedBlackstoneBrickStairs), - 735u32 => Some(BlockKind::WarpedDoor), - 199u32 => Some(BlockKind::OakFence), - 175u32 => Some(BlockKind::AcaciaWallSign), - 633u32 => Some(BlockKind::BlueIce), - 733u32 => Some(BlockKind::WarpedButton), - 39u32 => Some(BlockKind::SpruceLog), - 884u32 => Some(BlockKind::DeepslateBricks), - 387u32 => Some(BlockKind::BlackStainedGlassPane), - 431u32 => Some(BlockKind::OrangeBanner), - 753u32 => Some(BlockKind::PottedWarpedFungus), - 460u32 => Some(BlockKind::RedWallBanner), - 95u32 => Some(BlockKind::RedBed), - 804u32 => Some(BlockKind::CyanCandleCake), - 474u32 => Some(BlockKind::SandstoneSlab), + 543u32 => Some(BlockKind::LightBlueGlazedTerracotta), + 544u32 => Some(BlockKind::YellowGlazedTerracotta), + 545u32 => Some(BlockKind::LimeGlazedTerracotta), + 546u32 => Some(BlockKind::PinkGlazedTerracotta), 547u32 => Some(BlockKind::GrayGlazedTerracotta), - 111u32 => Some(BlockKind::LightBlueWool), - 508u32 => Some(BlockKind::PurpurPillar), - 50u32 => Some(BlockKind::OakWood), - 278u32 => Some(BlockKind::RedstoneLamp), - 447u32 => Some(BlockKind::OrangeWallBanner), - _ => None, - } - } -} -impl BlockKind { - #[doc = "Returns the `name` property of this `BlockKind`."] - #[inline] - pub fn name(&self) -> &'static str { - match self { - BlockKind::MossBlock => "moss_block", - BlockKind::SpruceStairs => "spruce_stairs", - BlockKind::PolishedDioriteStairs => "polished_diorite_stairs", - BlockKind::BigDripleafStem => "big_dripleaf_stem", - BlockKind::JungleDoor => "jungle_door", - BlockKind::BlackstoneStairs => "blackstone_stairs", - BlockKind::Bedrock => "bedrock", - BlockKind::NetherBrickStairs => "nether_brick_stairs", - BlockKind::SkeletonWallSkull => "skeleton_wall_skull", - BlockKind::WaxedOxidizedCutCopperStairs => "waxed_oxidized_cut_copper_stairs", - BlockKind::StrippedOakLog => "stripped_oak_log", - BlockKind::BirchFence => "birch_fence", - BlockKind::BrickSlab => "brick_slab", - BlockKind::GreenShulkerBox => "green_shulker_box", - BlockKind::PottedJungleSapling => "potted_jungle_sapling", - BlockKind::StrippedAcaciaWood => "stripped_acacia_wood", - BlockKind::SmoothRedSandstoneSlab => "smooth_red_sandstone_slab", - BlockKind::RepeatingCommandBlock => "repeating_command_block", - BlockKind::CrimsonRoots => "crimson_roots", - BlockKind::WarpedStairs => "warped_stairs", - BlockKind::CyanTerracotta => "cyan_terracotta", - BlockKind::StructureVoid => "structure_void", - BlockKind::SmoothSandstoneSlab => "smooth_sandstone_slab", - BlockKind::MagentaCandleCake => "magenta_candle_cake", - BlockKind::MossyCobblestone => "mossy_cobblestone", - BlockKind::FireCoralBlock => "fire_coral_block", - BlockKind::RawIronBlock => "raw_iron_block", - BlockKind::LightGrayCandleCake => "light_gray_candle_cake", - BlockKind::SmoothQuartzStairs => "smooth_quartz_stairs", - BlockKind::SpruceFence => "spruce_fence", - BlockKind::BrownStainedGlassPane => "brown_stained_glass_pane", - BlockKind::DeadHornCoralBlock => "dead_horn_coral_block", - BlockKind::ExposedCutCopper => "exposed_cut_copper", - BlockKind::EndStoneBrickWall => "end_stone_brick_wall", - BlockKind::WaxedCutCopperStairs => "waxed_cut_copper_stairs", - BlockKind::DeadBubbleCoralFan => "dead_bubble_coral_fan", - BlockKind::Tuff => "tuff", - BlockKind::WaxedWeatheredCutCopperStairs => "waxed_weathered_cut_copper_stairs", - BlockKind::PurpurStairs => "purpur_stairs", - BlockKind::SweetBerryBush => "sweet_berry_bush", - BlockKind::TintedGlass => "tinted_glass", - BlockKind::WhiteTerracotta => "white_terracotta", - BlockKind::JungleWallSign => "jungle_wall_sign", - BlockKind::PottedCornflower => "potted_cornflower", - BlockKind::Azalea => "azalea", - BlockKind::GoldBlock => "gold_block", - BlockKind::BrownCarpet => "brown_carpet", - BlockKind::PrismarineStairs => "prismarine_stairs", - BlockKind::InfestedStone => "infested_stone", - BlockKind::Poppy => "poppy", - BlockKind::RedstoneBlock => "redstone_block", - BlockKind::PurpleCandleCake => "purple_candle_cake", - BlockKind::ChainCommandBlock => "chain_command_block", - BlockKind::Cauldron => "cauldron", - BlockKind::BlackstoneSlab => "blackstone_slab", - BlockKind::ShulkerBox => "shulker_box", - BlockKind::PurpleShulkerBox => "purple_shulker_box", - BlockKind::DripstoneBlock => "dripstone_block", - BlockKind::ChiseledSandstone => "chiseled_sandstone", - BlockKind::RedConcrete => "red_concrete", - BlockKind::CyanBanner => "cyan_banner", - BlockKind::OrangeWallBanner => "orange_wall_banner", - BlockKind::ChiseledPolishedBlackstone => "chiseled_polished_blackstone", - BlockKind::MossyCobblestoneStairs => "mossy_cobblestone_stairs", - BlockKind::BlackWool => "black_wool", - BlockKind::CarvedPumpkin => "carved_pumpkin", - BlockKind::LightBlueTerracotta => "light_blue_terracotta", - BlockKind::OrangeShulkerBox => "orange_shulker_box", - BlockKind::RedTerracotta => "red_terracotta", - BlockKind::BlueWool => "blue_wool", - BlockKind::Cobweb => "cobweb", - BlockKind::PurpleWallBanner => "purple_wall_banner", - BlockKind::WeatheredCutCopperSlab => "weathered_cut_copper_slab", - BlockKind::IronTrapdoor => "iron_trapdoor", - BlockKind::WhiteBed => "white_bed", - BlockKind::BrownShulkerBox => "brown_shulker_box", - BlockKind::BlueWallBanner => "blue_wall_banner", - BlockKind::PolishedBlackstoneBrickWall => "polished_blackstone_brick_wall", - BlockKind::WaxedCutCopperSlab => "waxed_cut_copper_slab", - BlockKind::PinkBanner => "pink_banner", - BlockKind::MossyStoneBrickSlab => "mossy_stone_brick_slab", - BlockKind::CreeperWallHead => "creeper_wall_head", - BlockKind::Stone => "stone", - BlockKind::OakButton => "oak_button", - BlockKind::Repeater => "repeater", - BlockKind::MossyStoneBrickWall => "mossy_stone_brick_wall", - BlockKind::Seagrass => "seagrass", - BlockKind::DriedKelpBlock => "dried_kelp_block", - BlockKind::BirchWallSign => "birch_wall_sign", - BlockKind::AcaciaFence => "acacia_fence", - BlockKind::CutCopper => "cut_copper", - BlockKind::PolishedBlackstoneBrickSlab => "polished_blackstone_brick_slab", - BlockKind::FloweringAzalea => "flowering_azalea", - BlockKind::CrimsonHyphae => "crimson_hyphae", - BlockKind::DeepslateCopperOre => "deepslate_copper_ore", - BlockKind::TwistingVines => "twisting_vines", - BlockKind::Dispenser => "dispenser", - BlockKind::RedstoneWallTorch => "redstone_wall_torch", - BlockKind::OxidizedCutCopper => "oxidized_cut_copper", - BlockKind::Podzol => "podzol", - BlockKind::SkeletonSkull => "skeleton_skull", - BlockKind::DragonEgg => "dragon_egg", - BlockKind::OrangeConcrete => "orange_concrete", - BlockKind::JungleTrapdoor => "jungle_trapdoor", - BlockKind::GrayWallBanner => "gray_wall_banner", - BlockKind::SpruceLeaves => "spruce_leaves", - BlockKind::DarkPrismarine => "dark_prismarine", - BlockKind::StoneBrickStairs => "stone_brick_stairs", - BlockKind::CrimsonSlab => "crimson_slab", - BlockKind::LimeWool => "lime_wool", - BlockKind::WarpedFungus => "warped_fungus", - BlockKind::PottedWarpedFungus => "potted_warped_fungus", - BlockKind::AndesiteSlab => "andesite_slab", - BlockKind::DarkOakStairs => "dark_oak_stairs", - BlockKind::PinkCandleCake => "pink_candle_cake", - BlockKind::WaxedWeatheredCopper => "waxed_weathered_copper", - BlockKind::GrayBed => "gray_bed", - BlockKind::CreeperHead => "creeper_head", - BlockKind::CutCopperStairs => "cut_copper_stairs", - BlockKind::DeepslateTileStairs => "deepslate_tile_stairs", - BlockKind::BlackWallBanner => "black_wall_banner", - BlockKind::RawGoldBlock => "raw_gold_block", - BlockKind::GrayCarpet => "gray_carpet", - BlockKind::DarkOakWood => "dark_oak_wood", - BlockKind::BirchLeaves => "birch_leaves", - BlockKind::RedTulip => "red_tulip", - BlockKind::JungleStairs => "jungle_stairs", - BlockKind::BubbleCoralFan => "bubble_coral_fan", - BlockKind::GraniteWall => "granite_wall", - BlockKind::PrismarineSlab => "prismarine_slab", - BlockKind::SpruceFenceGate => "spruce_fence_gate", - BlockKind::PottedLilyOfTheValley => "potted_lily_of_the_valley", - BlockKind::EmeraldBlock => "emerald_block", - BlockKind::PolishedBlackstoneBrickStairs => "polished_blackstone_brick_stairs", - BlockKind::PinkTulip => "pink_tulip", - BlockKind::FireCoralFan => "fire_coral_fan", - BlockKind::GrayStainedGlass => "gray_stained_glass", - BlockKind::SmoothSandstoneStairs => "smooth_sandstone_stairs", - BlockKind::SpruceSign => "spruce_sign", - BlockKind::ExposedCutCopperSlab => "exposed_cut_copper_slab", - BlockKind::BrownTerracotta => "brown_terracotta", - BlockKind::DeadTubeCoral => "dead_tube_coral", - BlockKind::WitherSkeletonSkull => "wither_skeleton_skull", - BlockKind::BirchSign => "birch_sign", - BlockKind::LilyPad => "lily_pad", - BlockKind::PolishedBlackstonePressurePlate => "polished_blackstone_pressure_plate", - BlockKind::OakWallSign => "oak_wall_sign", - BlockKind::StoneStairs => "stone_stairs", - BlockKind::WaxedCopperBlock => "waxed_copper_block", - BlockKind::Cake => "cake", - BlockKind::StrippedWarpedHyphae => "stripped_warped_hyphae", - BlockKind::BlueStainedGlassPane => "blue_stained_glass_pane", - BlockKind::WeatheredCopper => "weathered_copper", - BlockKind::WhiteStainedGlass => "white_stained_glass", - BlockKind::Andesite => "andesite", - BlockKind::BlackCarpet => "black_carpet", - BlockKind::PrismarineWall => "prismarine_wall", - BlockKind::WarpedWallSign => "warped_wall_sign", - BlockKind::CoalOre => "coal_ore", - BlockKind::Chest => "chest", - BlockKind::BlueTerracotta => "blue_terracotta", - BlockKind::EmeraldOre => "emerald_ore", - BlockKind::WarpedButton => "warped_button", - BlockKind::OakFenceGate => "oak_fence_gate", - BlockKind::LightGrayShulkerBox => "light_gray_shulker_box", - BlockKind::WhiteShulkerBox => "white_shulker_box", - BlockKind::NetherWart => "nether_wart", - BlockKind::BlackConcrete => "black_concrete", - BlockKind::StoneButton => "stone_button", - BlockKind::MagentaWool => "magenta_wool", - BlockKind::OakStairs => "oak_stairs", - BlockKind::PurpleStainedGlass => "purple_stained_glass", - BlockKind::DarkOakPlanks => "dark_oak_planks", - BlockKind::GlassPane => "glass_pane", - BlockKind::PrismarineBricks => "prismarine_bricks", - BlockKind::PinkWallBanner => "pink_wall_banner", - BlockKind::CobblestoneSlab => "cobblestone_slab", - BlockKind::Stonecutter => "stonecutter", - BlockKind::GreenConcrete => "green_concrete", - BlockKind::BlueGlazedTerracotta => "blue_glazed_terracotta", - BlockKind::Jigsaw => "jigsaw", - BlockKind::AmethystCluster => "amethyst_cluster", - BlockKind::Barrel => "barrel", - BlockKind::Calcite => "calcite", - BlockKind::CraftingTable => "crafting_table", - BlockKind::BlackBanner => "black_banner", - BlockKind::CutRedSandstone => "cut_red_sandstone", - BlockKind::RedSandstoneStairs => "red_sandstone_stairs", - BlockKind::OakSapling => "oak_sapling", - BlockKind::NetherBricks => "nether_bricks", - BlockKind::LightBlueConcrete => "light_blue_concrete", - BlockKind::AcaciaSapling => "acacia_sapling", - BlockKind::TubeCoralFan => "tube_coral_fan", - BlockKind::PottedDarkOakSapling => "potted_dark_oak_sapling", - BlockKind::SoulWallTorch => "soul_wall_torch", - BlockKind::SmallAmethystBud => "small_amethyst_bud", - BlockKind::PinkShulkerBox => "pink_shulker_box", - BlockKind::RedWool => "red_wool", - BlockKind::Beehive => "beehive", - BlockKind::BigDripleaf => "big_dripleaf", - BlockKind::OrangeCarpet => "orange_carpet", - BlockKind::StrippedWarpedStem => "stripped_warped_stem", - BlockKind::RedBanner => "red_banner", - BlockKind::MagmaBlock => "magma_block", - BlockKind::JackOLantern => "jack_o_lantern", - BlockKind::Fire => "fire", - BlockKind::SmithingTable => "smithing_table", - BlockKind::Target => "target", - BlockKind::SeaPickle => "sea_pickle", - BlockKind::SpruceWood => "spruce_wood", - BlockKind::PinkBed => "pink_bed", - BlockKind::BlackCandle => "black_candle", - BlockKind::WaxedCutCopper => "waxed_cut_copper", - BlockKind::LightBlueWallBanner => "light_blue_wall_banner", - BlockKind::BirchFenceGate => "birch_fence_gate", - BlockKind::PetrifiedOakSlab => "petrified_oak_slab", - BlockKind::RespawnAnchor => "respawn_anchor", - BlockKind::WhiteCandleCake => "white_candle_cake", - BlockKind::DeadBubbleCoralWallFan => "dead_bubble_coral_wall_fan", - BlockKind::JungleLog => "jungle_log", - BlockKind::Lever => "lever", - BlockKind::EndStoneBricks => "end_stone_bricks", - BlockKind::OxidizedCopper => "oxidized_copper", - BlockKind::GraniteSlab => "granite_slab", - BlockKind::DeadTubeCoralWallFan => "dead_tube_coral_wall_fan", - BlockKind::Allium => "allium", - BlockKind::IronBlock => "iron_block", - BlockKind::OrangeStainedGlassPane => "orange_stained_glass_pane", - BlockKind::BlackstoneWall => "blackstone_wall", - BlockKind::YellowTerracotta => "yellow_terracotta", - BlockKind::HeavyWeightedPressurePlate => "heavy_weighted_pressure_plate", - BlockKind::YellowConcrete => "yellow_concrete", - BlockKind::BrownConcretePowder => "brown_concrete_powder", - BlockKind::Blackstone => "blackstone", - BlockKind::GlowLichen => "glow_lichen", - BlockKind::Netherrack => "netherrack", - BlockKind::SprucePlanks => "spruce_planks", - BlockKind::SandstoneStairs => "sandstone_stairs", - BlockKind::LimeStainedGlass => "lime_stained_glass", - BlockKind::PumpkinStem => "pumpkin_stem", - BlockKind::MelonStem => "melon_stem", - BlockKind::SpruceSapling => "spruce_sapling", - BlockKind::YellowGlazedTerracotta => "yellow_glazed_terracotta", - BlockKind::CyanGlazedTerracotta => "cyan_glazed_terracotta", - BlockKind::CrimsonButton => "crimson_button", - BlockKind::BeeNest => "bee_nest", - BlockKind::DeepslateBrickStairs => "deepslate_brick_stairs", - BlockKind::ChiseledRedSandstone => "chiseled_red_sandstone", - BlockKind::LightGrayConcretePowder => "light_gray_concrete_powder", - BlockKind::BoneBlock => "bone_block", - BlockKind::Terracotta => "terracotta", - BlockKind::PackedIce => "packed_ice", - BlockKind::PottedOxeyeDaisy => "potted_oxeye_daisy", - BlockKind::YellowShulkerBox => "yellow_shulker_box", - BlockKind::MushroomStem => "mushroom_stem", - BlockKind::PottedWhiteTulip => "potted_white_tulip", - BlockKind::Sunflower => "sunflower", - BlockKind::LightBlueCandle => "light_blue_candle", - BlockKind::NetherQuartzOre => "nether_quartz_ore", - BlockKind::ChorusPlant => "chorus_plant", - BlockKind::DeadBubbleCoral => "dead_bubble_coral", - BlockKind::SoulFire => "soul_fire", - BlockKind::BubbleCoral => "bubble_coral", - BlockKind::PolishedAndesiteStairs => "polished_andesite_stairs", - BlockKind::WarpedPressurePlate => "warped_pressure_plate", - BlockKind::DarkOakLeaves => "dark_oak_leaves", - BlockKind::OrangeWool => "orange_wool", - BlockKind::DeadBrainCoralWallFan => "dead_brain_coral_wall_fan", - BlockKind::PottedRedMushroom => "potted_red_mushroom", - BlockKind::CrimsonStem => "crimson_stem", - BlockKind::ChiseledNetherBricks => "chiseled_nether_bricks", - BlockKind::WarpedSlab => "warped_slab", - BlockKind::PolishedDeepslateSlab => "polished_deepslate_slab", - BlockKind::BlueCandleCake => "blue_candle_cake", - BlockKind::MossyCobblestoneSlab => "mossy_cobblestone_slab", - BlockKind::LightGrayStainedGlassPane => "light_gray_stained_glass_pane", - BlockKind::QuartzSlab => "quartz_slab", - BlockKind::Prismarine => "prismarine", - BlockKind::TrappedChest => "trapped_chest", - BlockKind::PinkCarpet => "pink_carpet", - BlockKind::StrippedDarkOakWood => "stripped_dark_oak_wood", - BlockKind::BrownConcrete => "brown_concrete", - BlockKind::YellowConcretePowder => "yellow_concrete_powder", - BlockKind::FireCoralWallFan => "fire_coral_wall_fan", - BlockKind::OrangeBanner => "orange_banner", - BlockKind::BrownMushroom => "brown_mushroom", - BlockKind::FloweringAzaleaLeaves => "flowering_azalea_leaves", - BlockKind::BlackTerracotta => "black_terracotta", - BlockKind::BlueOrchid => "blue_orchid", - BlockKind::RedNetherBrickWall => "red_nether_brick_wall", - BlockKind::MagentaConcretePowder => "magenta_concrete_powder", - BlockKind::PottedDandelion => "potted_dandelion", - BlockKind::HornCoralBlock => "horn_coral_block", - BlockKind::BrownCandle => "brown_candle", - BlockKind::RawCopperBlock => "raw_copper_block", - BlockKind::AmethystBlock => "amethyst_block", - BlockKind::CutRedSandstoneSlab => "cut_red_sandstone_slab", - BlockKind::BlackCandleCake => "black_candle_cake", - BlockKind::RedMushroomBlock => "red_mushroom_block", - BlockKind::PinkConcrete => "pink_concrete", - BlockKind::DarkOakSign => "dark_oak_sign", - BlockKind::Grass => "grass", - BlockKind::DeepslateDiamondOre => "deepslate_diamond_ore", - BlockKind::PolishedDioriteSlab => "polished_diorite_slab", - BlockKind::StrippedCrimsonHyphae => "stripped_crimson_hyphae", - BlockKind::DeepslateBricks => "deepslate_bricks", - BlockKind::PurpurBlock => "purpur_block", - BlockKind::YellowCandleCake => "yellow_candle_cake", - BlockKind::LapisOre => "lapis_ore", - BlockKind::OakSign => "oak_sign", - BlockKind::Peony => "peony", - BlockKind::LightBlueBed => "light_blue_bed", - BlockKind::RedSandstoneWall => "red_sandstone_wall", - BlockKind::PolishedBlackstoneBricks => "polished_blackstone_bricks", - BlockKind::OrangeBed => "orange_bed", - BlockKind::TurtleEgg => "turtle_egg", - BlockKind::CobbledDeepslate => "cobbled_deepslate", - BlockKind::WarpedNylium => "warped_nylium", - BlockKind::CyanWool => "cyan_wool", - BlockKind::Glass => "glass", - BlockKind::LightGrayCandle => "light_gray_candle", - BlockKind::ChiseledQuartzBlock => "chiseled_quartz_block", - BlockKind::PurpleCarpet => "purple_carpet", - BlockKind::Sponge => "sponge", - BlockKind::Ladder => "ladder", - BlockKind::SoulSand => "soul_sand", - BlockKind::PurpurPillar => "purpur_pillar", - BlockKind::NetherWartBlock => "nether_wart_block", - BlockKind::WarpedPlanks => "warped_planks", - BlockKind::PottedWarpedRoots => "potted_warped_roots", - BlockKind::BlackShulkerBox => "black_shulker_box", - BlockKind::RedCandle => "red_candle", - BlockKind::WhiteCarpet => "white_carpet", - BlockKind::EndPortalFrame => "end_portal_frame", - BlockKind::PolishedAndesite => "polished_andesite", - BlockKind::InfestedStoneBricks => "infested_stone_bricks", - BlockKind::LightBlueCandleCake => "light_blue_candle_cake", - BlockKind::StrippedOakWood => "stripped_oak_wood", - BlockKind::GraniteStairs => "granite_stairs", - BlockKind::RedSandstone => "red_sandstone", - BlockKind::DarkPrismarineSlab => "dark_prismarine_slab", - BlockKind::Diorite => "diorite", - BlockKind::RootedDirt => "rooted_dirt", - BlockKind::PottedPinkTulip => "potted_pink_tulip", - BlockKind::MagentaCandle => "magenta_candle", - BlockKind::WeatheredCutCopperStairs => "weathered_cut_copper_stairs", - BlockKind::JungleWood => "jungle_wood", - BlockKind::BirchWood => "birch_wood", - BlockKind::LightBlueWool => "light_blue_wool", - BlockKind::AttachedPumpkinStem => "attached_pumpkin_stem", - BlockKind::WarpedFence => "warped_fence", - BlockKind::PointedDripstone => "pointed_dripstone", - BlockKind::StrippedAcaciaLog => "stripped_acacia_log", - BlockKind::Carrots => "carrots", - BlockKind::AcaciaButton => "acacia_button", - BlockKind::GrayConcrete => "gray_concrete", - BlockKind::PottedAzaleaBush => "potted_azalea_bush", - BlockKind::DarkOakFence => "dark_oak_fence", - BlockKind::RedMushroom => "red_mushroom", - BlockKind::CoarseDirt => "coarse_dirt", - BlockKind::Ice => "ice", - BlockKind::MagentaStainedGlass => "magenta_stained_glass", - BlockKind::BirchLog => "birch_log", - BlockKind::CaveAir => "cave_air", - BlockKind::InfestedCrackedStoneBricks => "infested_cracked_stone_bricks", - BlockKind::OrangeTulip => "orange_tulip", - BlockKind::BubbleColumn => "bubble_column", - BlockKind::SculkSensor => "sculk_sensor", - BlockKind::OxidizedCutCopperStairs => "oxidized_cut_copper_stairs", - BlockKind::CrackedNetherBricks => "cracked_nether_bricks", - BlockKind::DiamondOre => "diamond_ore", - BlockKind::PottedAzureBluet => "potted_azure_bluet", - BlockKind::SmoothStoneSlab => "smooth_stone_slab", - BlockKind::RedstoneTorch => "redstone_torch", - BlockKind::OakDoor => "oak_door", - BlockKind::CoalBlock => "coal_block", - BlockKind::SpruceWallSign => "spruce_wall_sign", - BlockKind::Snow => "snow", - BlockKind::TwistingVinesPlant => "twisting_vines_plant", - BlockKind::PottedBlueOrchid => "potted_blue_orchid", - BlockKind::YellowBed => "yellow_bed", - BlockKind::SmoothQuartzSlab => "smooth_quartz_slab", - BlockKind::JungleLeaves => "jungle_leaves", - BlockKind::AcaciaPressurePlate => "acacia_pressure_plate", - BlockKind::MagentaConcrete => "magenta_concrete", - BlockKind::PottedFloweringAzaleaBush => "potted_flowering_azalea_bush", - BlockKind::GreenStainedGlassPane => "green_stained_glass_pane", - BlockKind::SporeBlossom => "spore_blossom", - BlockKind::WaxedExposedCopper => "waxed_exposed_copper", - BlockKind::BlackBed => "black_bed", - BlockKind::PolishedBasalt => "polished_basalt", - BlockKind::Beetroots => "beetroots", - BlockKind::TallSeagrass => "tall_seagrass", - BlockKind::ChorusFlower => "chorus_flower", - BlockKind::PottedDeadBush => "potted_dead_bush", - BlockKind::DeadHornCoralFan => "dead_horn_coral_fan", - BlockKind::RedNetherBrickStairs => "red_nether_brick_stairs", - BlockKind::CartographyTable => "cartography_table", - BlockKind::MossyStoneBricks => "mossy_stone_bricks", - BlockKind::AcaciaPlanks => "acacia_planks", - BlockKind::PottedPoppy => "potted_poppy", - BlockKind::GrayTerracotta => "gray_terracotta", - BlockKind::WarpedStem => "warped_stem", - BlockKind::PolishedBlackstoneSlab => "polished_blackstone_slab", - BlockKind::PurpurSlab => "purpur_slab", - BlockKind::BlueConcrete => "blue_concrete", - BlockKind::Conduit => "conduit", - BlockKind::RedNetherBricks => "red_nether_bricks", - BlockKind::YellowBanner => "yellow_banner", - BlockKind::CyanStainedGlassPane => "cyan_stained_glass_pane", - BlockKind::RedBed => "red_bed", - BlockKind::OakLeaves => "oak_leaves", - BlockKind::OakPressurePlate => "oak_pressure_plate", - BlockKind::InfestedDeepslate => "infested_deepslate", - BlockKind::JunglePressurePlate => "jungle_pressure_plate", - BlockKind::CyanWallBanner => "cyan_wall_banner", - BlockKind::RedWallBanner => "red_wall_banner", - BlockKind::EndStoneBrickSlab => "end_stone_brick_slab", - BlockKind::WaxedOxidizedCopper => "waxed_oxidized_copper", - BlockKind::BrownWool => "brown_wool", - BlockKind::CobbledDeepslateWall => "cobbled_deepslate_wall", - BlockKind::FlowerPot => "flower_pot", - BlockKind::MagentaShulkerBox => "magenta_shulker_box", - BlockKind::GreenGlazedTerracotta => "green_glazed_terracotta", - BlockKind::CyanConcretePowder => "cyan_concrete_powder", - BlockKind::MagentaBed => "magenta_bed", - BlockKind::MossyStoneBrickStairs => "mossy_stone_brick_stairs", - BlockKind::BrownCandleCake => "brown_candle_cake", - BlockKind::CrimsonNylium => "crimson_nylium", - BlockKind::PottedCrimsonFungus => "potted_crimson_fungus", - BlockKind::ExposedCopper => "exposed_copper", - BlockKind::AzureBluet => "azure_bluet", - BlockKind::Observer => "observer", - BlockKind::PottedWitherRose => "potted_wither_rose", - BlockKind::DarkOakButton => "dark_oak_button", - BlockKind::MossCarpet => "moss_carpet", - BlockKind::DioriteSlab => "diorite_slab", - BlockKind::WaterCauldron => "water_cauldron", - BlockKind::PrismarineBrickSlab => "prismarine_brick_slab", - BlockKind::RedCarpet => "red_carpet", - BlockKind::PottedOrangeTulip => "potted_orange_tulip", - BlockKind::Pumpkin => "pumpkin", - BlockKind::LimeWallBanner => "lime_wall_banner", - BlockKind::GoldOre => "gold_ore", - BlockKind::HornCoralFan => "horn_coral_fan", - BlockKind::PolishedBlackstone => "polished_blackstone", - BlockKind::Farmland => "farmland", - BlockKind::LimeStainedGlassPane => "lime_stained_glass_pane", - BlockKind::WeepingVines => "weeping_vines", - BlockKind::CutSandstoneSlab => "cut_sandstone_slab", - BlockKind::TallGrass => "tall_grass", - BlockKind::LightBlueCarpet => "light_blue_carpet", - BlockKind::TubeCoral => "tube_coral", - BlockKind::Grindstone => "grindstone", - BlockKind::HoneyBlock => "honey_block", - BlockKind::PinkWool => "pink_wool", - BlockKind::GrayWool => "gray_wool", - BlockKind::PolishedDeepslateStairs => "polished_deepslate_stairs", - BlockKind::WarpedDoor => "warped_door", - BlockKind::CyanConcrete => "cyan_concrete", - BlockKind::CrimsonDoor => "crimson_door", - BlockKind::CrackedDeepslateBricks => "cracked_deepslate_bricks", - BlockKind::Cactus => "cactus", - BlockKind::StonePressurePlate => "stone_pressure_plate", - BlockKind::PolishedDeepslateWall => "polished_deepslate_wall", - BlockKind::TubeCoralBlock => "tube_coral_block", - BlockKind::PottedAllium => "potted_allium", - BlockKind::YellowStainedGlassPane => "yellow_stained_glass_pane", - BlockKind::DarkOakWallSign => "dark_oak_wall_sign", - BlockKind::LimeConcrete => "lime_concrete", - BlockKind::JungleButton => "jungle_button", - BlockKind::DeepslateTileSlab => "deepslate_tile_slab", - BlockKind::WitherRose => "wither_rose", - BlockKind::CrackedStoneBricks => "cracked_stone_bricks", - BlockKind::LightGrayWallBanner => "light_gray_wall_banner", - BlockKind::OrangeGlazedTerracotta => "orange_glazed_terracotta", - BlockKind::DeadBrainCoral => "dead_brain_coral", - BlockKind::PolishedBlackstoneButton => "polished_blackstone_button", - BlockKind::RedGlazedTerracotta => "red_glazed_terracotta", - BlockKind::OxidizedCutCopperSlab => "oxidized_cut_copper_slab", - BlockKind::AzaleaLeaves => "azalea_leaves", - BlockKind::Potatoes => "potatoes", - BlockKind::GreenStainedGlass => "green_stained_glass", - BlockKind::EndGateway => "end_gateway", - BlockKind::CrimsonPressurePlate => "crimson_pressure_plate", - BlockKind::GreenCandle => "green_candle", - BlockKind::Cornflower => "cornflower", - BlockKind::PottedBrownMushroom => "potted_brown_mushroom", - BlockKind::PurpleStainedGlassPane => "purple_stained_glass_pane", - BlockKind::LightBlueConcretePowder => "light_blue_concrete_powder", - BlockKind::SpruceSlab => "spruce_slab", - BlockKind::AncientDebris => "ancient_debris", - BlockKind::PurpleGlazedTerracotta => "purple_glazed_terracotta", - BlockKind::Anvil => "anvil", - BlockKind::DarkOakDoor => "dark_oak_door", - BlockKind::PolishedGranite => "polished_granite", - BlockKind::JungleSapling => "jungle_sapling", - BlockKind::DarkPrismarineStairs => "dark_prismarine_stairs", - BlockKind::MagentaCarpet => "magenta_carpet", - BlockKind::Smoker => "smoker", - BlockKind::LightBlueStainedGlass => "light_blue_stained_glass", - BlockKind::JunglePlanks => "jungle_planks", - BlockKind::Fern => "fern", - BlockKind::QuartzStairs => "quartz_stairs", - BlockKind::DiamondBlock => "diamond_block", - BlockKind::RedstoneLamp => "redstone_lamp", - BlockKind::SoulCampfire => "soul_campfire", - BlockKind::DarkOakLog => "dark_oak_log", - BlockKind::Cobblestone => "cobblestone", - BlockKind::BubbleCoralBlock => "bubble_coral_block", - BlockKind::WaxedOxidizedCutCopperSlab => "waxed_oxidized_cut_copper_slab", - BlockKind::WarpedHyphae => "warped_hyphae", - BlockKind::QuartzBricks => "quartz_bricks", - BlockKind::Shroomlight => "shroomlight", - BlockKind::PurpleConcretePowder => "purple_concrete_powder", - BlockKind::CrimsonFence => "crimson_fence", - BlockKind::LightGrayTerracotta => "light_gray_terracotta", - BlockKind::BirchPressurePlate => "birch_pressure_plate", - BlockKind::RedSand => "red_sand", - BlockKind::HayBlock => "hay_block", - BlockKind::OrangeConcretePowder => "orange_concrete_powder", - BlockKind::Granite => "granite", - BlockKind::CyanCandle => "cyan_candle", - BlockKind::Bamboo => "bamboo", - BlockKind::Bricks => "bricks", - BlockKind::WhiteWool => "white_wool", - BlockKind::BambooSapling => "bamboo_sapling", - BlockKind::LimeConcretePowder => "lime_concrete_powder", - BlockKind::BubbleCoralWallFan => "bubble_coral_wall_fan", - BlockKind::RedstoneWire => "redstone_wire", - BlockKind::PistonHead => "piston_head", - BlockKind::DeadFireCoralFan => "dead_fire_coral_fan", - BlockKind::NetherBrickFence => "nether_brick_fence", - BlockKind::RedShulkerBox => "red_shulker_box", - BlockKind::CyanShulkerBox => "cyan_shulker_box", - BlockKind::Beacon => "beacon", - BlockKind::CaveVines => "cave_vines", - BlockKind::EnderChest => "ender_chest", - BlockKind::GrayBanner => "gray_banner", - BlockKind::RedSandstoneSlab => "red_sandstone_slab", - BlockKind::PottedSpruceSapling => "potted_spruce_sapling", - BlockKind::WhiteCandle => "white_candle", - BlockKind::GreenWool => "green_wool", - BlockKind::YellowCarpet => "yellow_carpet", - BlockKind::WhiteTulip => "white_tulip", - BlockKind::Cocoa => "cocoa", - BlockKind::WarpedWartBlock => "warped_wart_block", - BlockKind::CrackedPolishedBlackstoneBricks => "cracked_polished_blackstone_bricks", - BlockKind::GreenCandleCake => "green_candle_cake", - BlockKind::KelpPlant => "kelp_plant", - BlockKind::SmallDripleaf => "small_dripleaf", - BlockKind::PolishedDeepslate => "polished_deepslate", - BlockKind::InfestedChiseledStoneBricks => "infested_chiseled_stone_bricks", - BlockKind::PottedBirchSapling => "potted_birch_sapling", - BlockKind::GildedBlackstone => "gilded_blackstone", - BlockKind::RedCandleCake => "red_candle_cake", - BlockKind::PurpleTerracotta => "purple_terracotta", - BlockKind::PinkStainedGlass => "pink_stained_glass", - BlockKind::PottedBamboo => "potted_bamboo", - BlockKind::Tnt => "tnt", - BlockKind::WarpedRoots => "warped_roots", - BlockKind::LightningRod => "lightning_rod", - BlockKind::AndesiteWall => "andesite_wall", - BlockKind::NetherGoldOre => "nether_gold_ore", - BlockKind::CrimsonSign => "crimson_sign", - BlockKind::SmoothStone => "smooth_stone", - BlockKind::BlueBed => "blue_bed", - BlockKind::WhiteConcrete => "white_concrete", - BlockKind::DarkOakSapling => "dark_oak_sapling", - BlockKind::Clay => "clay", - BlockKind::Sandstone => "sandstone", - BlockKind::DeadBubbleCoralBlock => "dead_bubble_coral_block", - BlockKind::BrewingStand => "brewing_stand", - BlockKind::WaxedWeatheredCutCopperSlab => "waxed_weathered_cut_copper_slab", - BlockKind::LimeCandle => "lime_candle", - BlockKind::LightGrayStainedGlass => "light_gray_stained_glass", - BlockKind::CrackedDeepslateTiles => "cracked_deepslate_tiles", - BlockKind::LimeGlazedTerracotta => "lime_glazed_terracotta", - BlockKind::GreenWallBanner => "green_wall_banner", - BlockKind::SlimeBlock => "slime_block", - BlockKind::GreenBed => "green_bed", - BlockKind::BrownGlazedTerracotta => "brown_glazed_terracotta", - BlockKind::BrickWall => "brick_wall", - BlockKind::CyanCandleCake => "cyan_candle_cake", - BlockKind::StoneBricks => "stone_bricks", - BlockKind::BirchPlanks => "birch_planks", - BlockKind::AcaciaTrapdoor => "acacia_trapdoor", - BlockKind::BlueCandle => "blue_candle", - BlockKind::SpruceButton => "spruce_button", - BlockKind::JungleSlab => "jungle_slab", - BlockKind::BrainCoral => "brain_coral", - BlockKind::DioriteStairs => "diorite_stairs", - BlockKind::LimeBanner => "lime_banner", - BlockKind::BrownBed => "brown_bed", - BlockKind::Hopper => "hopper", - BlockKind::GrayStainedGlassPane => "gray_stained_glass_pane", - BlockKind::SugarCane => "sugar_cane", - BlockKind::ZombieWallHead => "zombie_wall_head", - BlockKind::CryingObsidian => "crying_obsidian", - BlockKind::Air => "air", - BlockKind::AcaciaWallSign => "acacia_wall_sign", - BlockKind::RedstoneOre => "redstone_ore", - BlockKind::PinkStainedGlassPane => "pink_stained_glass_pane", - BlockKind::BlueStainedGlass => "blue_stained_glass", - BlockKind::LimeCandleCake => "lime_candle_cake", - BlockKind::Loom => "loom", - BlockKind::RedStainedGlass => "red_stained_glass", - BlockKind::Bookshelf => "bookshelf", - BlockKind::IronDoor => "iron_door", - BlockKind::CommandBlock => "command_block", - BlockKind::Comparator => "comparator", - BlockKind::LimeTerracotta => "lime_terracotta", - BlockKind::PinkTerracotta => "pink_terracotta", - BlockKind::MagentaGlazedTerracotta => "magenta_glazed_terracotta", - BlockKind::SpruceDoor => "spruce_door", - BlockKind::PinkConcretePowder => "pink_concrete_powder", - BlockKind::WaxedExposedCutCopperStairs => "waxed_exposed_cut_copper_stairs", - BlockKind::CutSandstone => "cut_sandstone", - BlockKind::StickyPiston => "sticky_piston", - BlockKind::LilyOfTheValley => "lily_of_the_valley", - BlockKind::AcaciaFenceGate => "acacia_fence_gate", - BlockKind::LightGrayConcrete => "light_gray_concrete", - BlockKind::NetherBrickWall => "nether_brick_wall", - BlockKind::GreenBanner => "green_banner", - BlockKind::WhiteStainedGlassPane => "white_stained_glass_pane", - BlockKind::SmoothRedSandstone => "smooth_red_sandstone", - BlockKind::FireCoral => "fire_coral", - BlockKind::CyanCarpet => "cyan_carpet", - BlockKind::AcaciaStairs => "acacia_stairs", - BlockKind::YellowWool => "yellow_wool", - BlockKind::BlackStainedGlassPane => "black_stained_glass_pane", - BlockKind::DeadFireCoral => "dead_fire_coral", - BlockKind::LightGrayGlazedTerracotta => "light_gray_glazed_terracotta", - BlockKind::BirchStairs => "birch_stairs", - BlockKind::WhiteConcretePowder => "white_concrete_powder", - BlockKind::OakPlanks => "oak_planks", - BlockKind::QuartzPillar => "quartz_pillar", - BlockKind::Bell => "bell", - BlockKind::PurpleCandle => "purple_candle", - BlockKind::AcaciaLog => "acacia_log", - BlockKind::PurpleWool => "purple_wool", - BlockKind::Melon => "melon", - BlockKind::SoulSoil => "soul_soil", - BlockKind::CrimsonFenceGate => "crimson_fence_gate", - BlockKind::Lava => "lava", - BlockKind::WhiteBanner => "white_banner", - BlockKind::SpruceLog => "spruce_log", - BlockKind::Chain => "chain", - BlockKind::PottedCactus => "potted_cactus", - BlockKind::BlueIce => "blue_ice", - BlockKind::LightGrayWool => "light_gray_wool", - BlockKind::AcaciaSign => "acacia_sign", - BlockKind::LightBlueShulkerBox => "light_blue_shulker_box", - BlockKind::BrownMushroomBlock => "brown_mushroom_block", - BlockKind::OakLog => "oak_log", - BlockKind::StoneSlab => "stone_slab", - BlockKind::AcaciaWood => "acacia_wood", - BlockKind::MovingPiston => "moving_piston", - BlockKind::EndPortal => "end_portal", - BlockKind::OakTrapdoor => "oak_trapdoor", - BlockKind::PolishedAndesiteSlab => "polished_andesite_slab", - BlockKind::GrayCandle => "gray_candle", - BlockKind::LightBlueBanner => "light_blue_banner", - BlockKind::LimeShulkerBox => "lime_shulker_box", - BlockKind::WeepingVinesPlant => "weeping_vines_plant", - BlockKind::Spawner => "spawner", - BlockKind::ZombieHead => "zombie_head", - BlockKind::GrayCandleCake => "gray_candle_cake", - BlockKind::LightGrayBed => "light_gray_bed", - BlockKind::GreenTerracotta => "green_terracotta", - BlockKind::PoweredRail => "powered_rail", - BlockKind::MagentaTerracotta => "magenta_terracotta", - BlockKind::RedConcretePowder => "red_concrete_powder", - BlockKind::OakWood => "oak_wood", - BlockKind::StrippedJungleLog => "stripped_jungle_log", - BlockKind::OrangeStainedGlass => "orange_stained_glass", - BlockKind::SpruceTrapdoor => "spruce_trapdoor", - BlockKind::MagentaWallBanner => "magenta_wall_banner", - BlockKind::JungleSign => "jungle_sign", - BlockKind::PurpleBanner => "purple_banner", - BlockKind::DeadFireCoralWallFan => "dead_fire_coral_wall_fan", - BlockKind::Water => "water", - BlockKind::StrippedJungleWood => "stripped_jungle_wood", - BlockKind::OxeyeDaisy => "oxeye_daisy", - BlockKind::PinkCandle => "pink_candle", - BlockKind::GrayConcretePowder => "gray_concrete_powder", - BlockKind::DeepslateEmeraldOre => "deepslate_emerald_ore", - BlockKind::MediumAmethystBud => "medium_amethyst_bud", - BlockKind::LimeBed => "lime_bed", - BlockKind::GreenCarpet => "green_carpet", - BlockKind::BlueConcretePowder => "blue_concrete_powder", - BlockKind::BirchDoor => "birch_door", - BlockKind::DeepslateLapisOre => "deepslate_lapis_ore", - BlockKind::WaxedOxidizedCutCopper => "waxed_oxidized_cut_copper", - BlockKind::DeepslateTiles => "deepslate_tiles", - BlockKind::SandstoneSlab => "sandstone_slab", - BlockKind::PlayerWallHead => "player_wall_head", - BlockKind::IronOre => "iron_ore", - BlockKind::PinkGlazedTerracotta => "pink_glazed_terracotta", - BlockKind::MossyCobblestoneWall => "mossy_cobblestone_wall", - BlockKind::Lectern => "lectern", - BlockKind::Obsidian => "obsidian", - BlockKind::BlueShulkerBox => "blue_shulker_box", - BlockKind::FletchingTable => "fletching_table", - BlockKind::StrippedDarkOakLog => "stripped_dark_oak_log", - BlockKind::Piston => "piston", - BlockKind::PrismarineBrickStairs => "prismarine_brick_stairs", - BlockKind::StrippedSpruceLog => "stripped_spruce_log", - BlockKind::WeatheredCutCopper => "weathered_cut_copper", - BlockKind::TripwireHook => "tripwire_hook", - BlockKind::AcaciaSlab => "acacia_slab", - BlockKind::Dropper => "dropper", - BlockKind::PowderSnow => "powder_snow", - BlockKind::GreenConcretePowder => "green_concrete_powder", - BlockKind::CopperOre => "copper_ore", - BlockKind::HangingRoots => "hanging_roots", - BlockKind::BrownWallBanner => "brown_wall_banner", - BlockKind::YellowCandle => "yellow_candle", - BlockKind::PottedRedTulip => "potted_red_tulip", - BlockKind::IronBars => "iron_bars", - BlockKind::WarpedSign => "warped_sign", - BlockKind::DeepslateCoalOre => "deepslate_coal_ore", - BlockKind::BrainCoralBlock => "brain_coral_block", - BlockKind::CobblestoneWall => "cobblestone_wall", - BlockKind::QuartzBlock => "quartz_block", - BlockKind::DeadBrainCoralFan => "dead_brain_coral_fan", - BlockKind::PolishedGraniteStairs => "polished_granite_stairs", - BlockKind::PottedFern => "potted_fern", - BlockKind::CutCopperSlab => "cut_copper_slab", - BlockKind::SandstoneWall => "sandstone_wall", - BlockKind::DeadTubeCoralFan => "dead_tube_coral_fan", - BlockKind::CandleCake => "candle_cake", - BlockKind::AttachedMelonStem => "attached_melon_stem", - BlockKind::SmoothRedSandstoneStairs => "smooth_red_sandstone_stairs", - BlockKind::AcaciaLeaves => "acacia_leaves", - BlockKind::DamagedAnvil => "damaged_anvil", - BlockKind::EndStone => "end_stone", - BlockKind::CrimsonTrapdoor => "crimson_trapdoor", - BlockKind::WaxedExposedCutCopperSlab => "waxed_exposed_cut_copper_slab", - BlockKind::Gravel => "gravel", - BlockKind::OrangeTerracotta => "orange_terracotta", - BlockKind::CopperBlock => "copper_block", - BlockKind::BlastFurnace => "blast_furnace", - BlockKind::YellowStainedGlass => "yellow_stained_glass", - BlockKind::GrayShulkerBox => "gray_shulker_box", - BlockKind::PottedOakSapling => "potted_oak_sapling", - BlockKind::BirchButton => "birch_button", - BlockKind::Scaffolding => "scaffolding", - BlockKind::Torch => "torch", - BlockKind::MagentaStainedGlassPane => "magenta_stained_glass_pane", - BlockKind::LightGrayCarpet => "light_gray_carpet", - BlockKind::DeadHornCoralWallFan => "dead_horn_coral_wall_fan", - BlockKind::LargeAmethystBud => "large_amethyst_bud", - BlockKind::AcaciaDoor => "acacia_door", - BlockKind::Jukebox => "jukebox", - BlockKind::OakFence => "oak_fence", - BlockKind::MagentaBanner => "magenta_banner", - BlockKind::Rail => "rail", - BlockKind::FrostedIce => "frosted_ice", - BlockKind::ExposedCutCopperStairs => "exposed_cut_copper_stairs", - BlockKind::PlayerHead => "player_head", - BlockKind::PurpleBed => "purple_bed", - BlockKind::CrimsonStairs => "crimson_stairs", - BlockKind::DarkOakTrapdoor => "dark_oak_trapdoor", - BlockKind::BrainCoralWallFan => "brain_coral_wall_fan", - BlockKind::DarkOakSlab => "dark_oak_slab", - BlockKind::DragonHead => "dragon_head", - BlockKind::WarpedFenceGate => "warped_fence_gate", - BlockKind::WaxedWeatheredCutCopper => "waxed_weathered_cut_copper", - BlockKind::SmoothBasalt => "smooth_basalt", - BlockKind::DirtPath => "dirt_path", - BlockKind::Barrier => "barrier", - BlockKind::EndStoneBrickStairs => "end_stone_brick_stairs", - BlockKind::StoneBrickWall => "stone_brick_wall", - BlockKind::EndRod => "end_rod", - BlockKind::PowderSnowCauldron => "powder_snow_cauldron", - BlockKind::OakSlab => "oak_slab", - BlockKind::GrayGlazedTerracotta => "gray_glazed_terracotta", - BlockKind::WallTorch => "wall_torch", - BlockKind::HoneycombBlock => "honeycomb_block", - BlockKind::WhiteWallBanner => "white_wall_banner", - BlockKind::DeadTubeCoralBlock => "dead_tube_coral_block", - BlockKind::StructureBlock => "structure_block", - BlockKind::DeepslateIronOre => "deepslate_iron_ore", - BlockKind::CrimsonWallSign => "crimson_wall_sign", - BlockKind::Dandelion => "dandelion", - BlockKind::Dirt => "dirt", - BlockKind::BrownBanner => "brown_banner", - BlockKind::CobbledDeepslateSlab => "cobbled_deepslate_slab", - BlockKind::OrangeCandle => "orange_candle", - BlockKind::BlueCarpet => "blue_carpet", - BlockKind::PurpleConcrete => "purple_concrete", - BlockKind::DeadBush => "dead_bush", - BlockKind::SprucePressurePlate => "spruce_pressure_plate", - BlockKind::LimeCarpet => "lime_carpet", - BlockKind::DetectorRail => "detector_rail", - BlockKind::VoidAir => "void_air", - BlockKind::NetheriteBlock => "netherite_block", - BlockKind::BirchTrapdoor => "birch_trapdoor", - BlockKind::EnchantingTable => "enchanting_table", - BlockKind::HornCoral => "horn_coral", - BlockKind::YellowWallBanner => "yellow_wall_banner", - BlockKind::GrassBlock => "grass_block", - BlockKind::StrippedCrimsonStem => "stripped_crimson_stem", - BlockKind::BlackConcretePowder => "black_concrete_powder", - BlockKind::DeepslateRedstoneOre => "deepslate_redstone_ore", - BlockKind::BlackStainedGlass => "black_stained_glass", - BlockKind::BuddingAmethyst => "budding_amethyst", - BlockKind::Basalt => "basalt", - BlockKind::RedNetherBrickSlab => "red_nether_brick_slab", - BlockKind::PolishedDiorite => "polished_diorite", - BlockKind::BlueBanner => "blue_banner", - BlockKind::Tripwire => "tripwire", - BlockKind::SeaLantern => "sea_lantern", - BlockKind::NetherBrickSlab => "nether_brick_slab", - BlockKind::BrickStairs => "brick_stairs", - BlockKind::ActivatorRail => "activator_rail", - BlockKind::DarkOakFenceGate => "dark_oak_fence_gate", - BlockKind::WaxedExposedCutCopper => "waxed_exposed_cut_copper", - BlockKind::Furnace => "furnace", - BlockKind::TubeCoralWallFan => "tube_coral_wall_fan", - BlockKind::Glowstone => "glowstone", - BlockKind::BirchSlab => "birch_slab", - BlockKind::RedStainedGlassPane => "red_stained_glass_pane", - BlockKind::Deepslate => "deepslate", - BlockKind::DeepslateTileWall => "deepslate_tile_wall", - BlockKind::CrimsonPlanks => "crimson_planks", - BlockKind::HornCoralWallFan => "horn_coral_wall_fan", - BlockKind::BrainCoralFan => "brain_coral_fan", - BlockKind::DioriteWall => "diorite_wall", - BlockKind::NetherSprouts => "nether_sprouts", - BlockKind::OrangeCandleCake => "orange_candle_cake", - BlockKind::CaveVinesPlant => "cave_vines_plant", - BlockKind::InfestedMossyStoneBricks => "infested_mossy_stone_bricks", - BlockKind::SmoothQuartz => "smooth_quartz", - BlockKind::Candle => "candle", - BlockKind::WhiteGlazedTerracotta => "white_glazed_terracotta", - BlockKind::SmoothSandstone => "smooth_sandstone", - BlockKind::Composter => "composter", - BlockKind::ChippedAnvil => "chipped_anvil", - BlockKind::LightWeightedPressurePlate => "light_weighted_pressure_plate", - BlockKind::LavaCauldron => "lava_cauldron", - BlockKind::Sand => "sand", - BlockKind::StrippedBirchWood => "stripped_birch_wood", - BlockKind::LightBlueStainedGlassPane => "light_blue_stained_glass_pane", - BlockKind::NoteBlock => "note_block", - BlockKind::LightGrayBanner => "light_gray_banner", - BlockKind::LapisBlock => "lapis_block", - BlockKind::CyanStainedGlass => "cyan_stained_glass", - BlockKind::DragonWallHead => "dragon_wall_head", - BlockKind::WetSponge => "wet_sponge", - BlockKind::StoneBrickSlab => "stone_brick_slab", - BlockKind::PolishedGraniteSlab => "polished_granite_slab", - BlockKind::Lodestone => "lodestone", - BlockKind::CobbledDeepslateStairs => "cobbled_deepslate_stairs", - BlockKind::BirchSapling => "birch_sapling", - BlockKind::Wheat => "wheat", - BlockKind::LargeFern => "large_fern", - BlockKind::ChiseledDeepslate => "chiseled_deepslate", - BlockKind::StrippedSpruceWood => "stripped_spruce_wood", - BlockKind::BrownStainedGlass => "brown_stained_glass", - BlockKind::DeepslateBrickSlab => "deepslate_brick_slab", - BlockKind::CobblestoneStairs => "cobblestone_stairs", - BlockKind::SnowBlock => "snow_block", - BlockKind::Campfire => "campfire", - BlockKind::PolishedBlackstoneStairs => "polished_blackstone_stairs", - BlockKind::RoseBush => "rose_bush", - BlockKind::Light => "light", - BlockKind::Lantern => "lantern", - BlockKind::CyanBed => "cyan_bed", - BlockKind::DarkOakPressurePlate => "dark_oak_pressure_plate", - BlockKind::CrimsonFungus => "crimson_fungus", - BlockKind::InfestedCobblestone => "infested_cobblestone", - BlockKind::DeadFireCoralBlock => "dead_fire_coral_block", - BlockKind::PottedAcaciaSapling => "potted_acacia_sapling", - BlockKind::LightBlueGlazedTerracotta => "light_blue_glazed_terracotta", - BlockKind::DeadBrainCoralBlock => "dead_brain_coral_block", - BlockKind::NetherPortal => "nether_portal", - BlockKind::AndesiteStairs => "andesite_stairs", - BlockKind::Vine => "vine", - BlockKind::Kelp => "kelp", - BlockKind::DeepslateGoldOre => "deepslate_gold_ore", - BlockKind::WarpedTrapdoor => "warped_trapdoor", - BlockKind::JungleFence => "jungle_fence", - BlockKind::DeadHornCoral => "dead_horn_coral", - BlockKind::Mycelium => "mycelium", - BlockKind::BlackGlazedTerracotta => "black_glazed_terracotta", - BlockKind::DeepslateBrickWall => "deepslate_brick_wall", - BlockKind::SoulTorch => "soul_torch", - BlockKind::JungleFenceGate => "jungle_fence_gate", - BlockKind::WitherSkeletonWallSkull => "wither_skeleton_wall_skull", - BlockKind::PolishedBlackstoneWall => "polished_blackstone_wall", - BlockKind::DaylightDetector => "daylight_detector", - BlockKind::Lilac => "lilac", - BlockKind::ChiseledStoneBricks => "chiseled_stone_bricks", - BlockKind::SoulLantern => "soul_lantern", - BlockKind::PottedCrimsonRoots => "potted_crimson_roots", - BlockKind::StrippedBirchLog => "stripped_birch_log", - } - } - #[doc = "Gets a `BlockKind` by its `name`."] - #[inline] - pub fn from_name(name: &str) -> Option { - match name { - "moss_block" => Some(BlockKind::MossBlock), - "spruce_stairs" => Some(BlockKind::SpruceStairs), - "polished_diorite_stairs" => Some(BlockKind::PolishedDioriteStairs), - "big_dripleaf_stem" => Some(BlockKind::BigDripleafStem), - "jungle_door" => Some(BlockKind::JungleDoor), - "blackstone_stairs" => Some(BlockKind::BlackstoneStairs), - "bedrock" => Some(BlockKind::Bedrock), - "nether_brick_stairs" => Some(BlockKind::NetherBrickStairs), - "skeleton_wall_skull" => Some(BlockKind::SkeletonWallSkull), - "waxed_oxidized_cut_copper_stairs" => Some(BlockKind::WaxedOxidizedCutCopperStairs), - "stripped_oak_log" => Some(BlockKind::StrippedOakLog), - "birch_fence" => Some(BlockKind::BirchFence), - "brick_slab" => Some(BlockKind::BrickSlab), - "green_shulker_box" => Some(BlockKind::GreenShulkerBox), - "potted_jungle_sapling" => Some(BlockKind::PottedJungleSapling), - "stripped_acacia_wood" => Some(BlockKind::StrippedAcaciaWood), - "smooth_red_sandstone_slab" => Some(BlockKind::SmoothRedSandstoneSlab), - "repeating_command_block" => Some(BlockKind::RepeatingCommandBlock), - "crimson_roots" => Some(BlockKind::CrimsonRoots), - "warped_stairs" => Some(BlockKind::WarpedStairs), - "cyan_terracotta" => Some(BlockKind::CyanTerracotta), - "structure_void" => Some(BlockKind::StructureVoid), - "smooth_sandstone_slab" => Some(BlockKind::SmoothSandstoneSlab), - "magenta_candle_cake" => Some(BlockKind::MagentaCandleCake), - "mossy_cobblestone" => Some(BlockKind::MossyCobblestone), - "fire_coral_block" => Some(BlockKind::FireCoralBlock), - "raw_iron_block" => Some(BlockKind::RawIronBlock), - "light_gray_candle_cake" => Some(BlockKind::LightGrayCandleCake), - "smooth_quartz_stairs" => Some(BlockKind::SmoothQuartzStairs), - "spruce_fence" => Some(BlockKind::SpruceFence), - "brown_stained_glass_pane" => Some(BlockKind::BrownStainedGlassPane), - "dead_horn_coral_block" => Some(BlockKind::DeadHornCoralBlock), - "exposed_cut_copper" => Some(BlockKind::ExposedCutCopper), - "end_stone_brick_wall" => Some(BlockKind::EndStoneBrickWall), - "waxed_cut_copper_stairs" => Some(BlockKind::WaxedCutCopperStairs), - "dead_bubble_coral_fan" => Some(BlockKind::DeadBubbleCoralFan), - "tuff" => Some(BlockKind::Tuff), - "waxed_weathered_cut_copper_stairs" => Some(BlockKind::WaxedWeatheredCutCopperStairs), - "purpur_stairs" => Some(BlockKind::PurpurStairs), - "sweet_berry_bush" => Some(BlockKind::SweetBerryBush), - "tinted_glass" => Some(BlockKind::TintedGlass), - "white_terracotta" => Some(BlockKind::WhiteTerracotta), - "jungle_wall_sign" => Some(BlockKind::JungleWallSign), - "potted_cornflower" => Some(BlockKind::PottedCornflower), - "azalea" => Some(BlockKind::Azalea), - "gold_block" => Some(BlockKind::GoldBlock), - "brown_carpet" => Some(BlockKind::BrownCarpet), - "prismarine_stairs" => Some(BlockKind::PrismarineStairs), - "infested_stone" => Some(BlockKind::InfestedStone), - "poppy" => Some(BlockKind::Poppy), - "redstone_block" => Some(BlockKind::RedstoneBlock), - "purple_candle_cake" => Some(BlockKind::PurpleCandleCake), - "chain_command_block" => Some(BlockKind::ChainCommandBlock), - "cauldron" => Some(BlockKind::Cauldron), - "blackstone_slab" => Some(BlockKind::BlackstoneSlab), - "shulker_box" => Some(BlockKind::ShulkerBox), - "purple_shulker_box" => Some(BlockKind::PurpleShulkerBox), - "dripstone_block" => Some(BlockKind::DripstoneBlock), - "chiseled_sandstone" => Some(BlockKind::ChiseledSandstone), - "red_concrete" => Some(BlockKind::RedConcrete), - "cyan_banner" => Some(BlockKind::CyanBanner), - "orange_wall_banner" => Some(BlockKind::OrangeWallBanner), - "chiseled_polished_blackstone" => Some(BlockKind::ChiseledPolishedBlackstone), - "mossy_cobblestone_stairs" => Some(BlockKind::MossyCobblestoneStairs), - "black_wool" => Some(BlockKind::BlackWool), - "carved_pumpkin" => Some(BlockKind::CarvedPumpkin), - "light_blue_terracotta" => Some(BlockKind::LightBlueTerracotta), - "orange_shulker_box" => Some(BlockKind::OrangeShulkerBox), - "red_terracotta" => Some(BlockKind::RedTerracotta), - "blue_wool" => Some(BlockKind::BlueWool), - "cobweb" => Some(BlockKind::Cobweb), - "purple_wall_banner" => Some(BlockKind::PurpleWallBanner), - "weathered_cut_copper_slab" => Some(BlockKind::WeatheredCutCopperSlab), - "iron_trapdoor" => Some(BlockKind::IronTrapdoor), - "white_bed" => Some(BlockKind::WhiteBed), - "brown_shulker_box" => Some(BlockKind::BrownShulkerBox), - "blue_wall_banner" => Some(BlockKind::BlueWallBanner), - "polished_blackstone_brick_wall" => Some(BlockKind::PolishedBlackstoneBrickWall), - "waxed_cut_copper_slab" => Some(BlockKind::WaxedCutCopperSlab), - "pink_banner" => Some(BlockKind::PinkBanner), - "mossy_stone_brick_slab" => Some(BlockKind::MossyStoneBrickSlab), - "creeper_wall_head" => Some(BlockKind::CreeperWallHead), - "stone" => Some(BlockKind::Stone), - "oak_button" => Some(BlockKind::OakButton), - "repeater" => Some(BlockKind::Repeater), - "mossy_stone_brick_wall" => Some(BlockKind::MossyStoneBrickWall), - "seagrass" => Some(BlockKind::Seagrass), - "dried_kelp_block" => Some(BlockKind::DriedKelpBlock), - "birch_wall_sign" => Some(BlockKind::BirchWallSign), - "acacia_fence" => Some(BlockKind::AcaciaFence), - "cut_copper" => Some(BlockKind::CutCopper), - "polished_blackstone_brick_slab" => Some(BlockKind::PolishedBlackstoneBrickSlab), - "flowering_azalea" => Some(BlockKind::FloweringAzalea), - "crimson_hyphae" => Some(BlockKind::CrimsonHyphae), - "deepslate_copper_ore" => Some(BlockKind::DeepslateCopperOre), - "twisting_vines" => Some(BlockKind::TwistingVines), - "dispenser" => Some(BlockKind::Dispenser), - "redstone_wall_torch" => Some(BlockKind::RedstoneWallTorch), - "oxidized_cut_copper" => Some(BlockKind::OxidizedCutCopper), - "podzol" => Some(BlockKind::Podzol), - "skeleton_skull" => Some(BlockKind::SkeletonSkull), - "dragon_egg" => Some(BlockKind::DragonEgg), - "orange_concrete" => Some(BlockKind::OrangeConcrete), - "jungle_trapdoor" => Some(BlockKind::JungleTrapdoor), - "gray_wall_banner" => Some(BlockKind::GrayWallBanner), - "spruce_leaves" => Some(BlockKind::SpruceLeaves), - "dark_prismarine" => Some(BlockKind::DarkPrismarine), - "stone_brick_stairs" => Some(BlockKind::StoneBrickStairs), - "crimson_slab" => Some(BlockKind::CrimsonSlab), - "lime_wool" => Some(BlockKind::LimeWool), - "warped_fungus" => Some(BlockKind::WarpedFungus), - "potted_warped_fungus" => Some(BlockKind::PottedWarpedFungus), - "andesite_slab" => Some(BlockKind::AndesiteSlab), - "dark_oak_stairs" => Some(BlockKind::DarkOakStairs), - "pink_candle_cake" => Some(BlockKind::PinkCandleCake), - "waxed_weathered_copper" => Some(BlockKind::WaxedWeatheredCopper), - "gray_bed" => Some(BlockKind::GrayBed), - "creeper_head" => Some(BlockKind::CreeperHead), - "cut_copper_stairs" => Some(BlockKind::CutCopperStairs), - "deepslate_tile_stairs" => Some(BlockKind::DeepslateTileStairs), - "black_wall_banner" => Some(BlockKind::BlackWallBanner), - "raw_gold_block" => Some(BlockKind::RawGoldBlock), - "gray_carpet" => Some(BlockKind::GrayCarpet), - "dark_oak_wood" => Some(BlockKind::DarkOakWood), - "birch_leaves" => Some(BlockKind::BirchLeaves), - "red_tulip" => Some(BlockKind::RedTulip), - "jungle_stairs" => Some(BlockKind::JungleStairs), - "bubble_coral_fan" => Some(BlockKind::BubbleCoralFan), - "granite_wall" => Some(BlockKind::GraniteWall), - "prismarine_slab" => Some(BlockKind::PrismarineSlab), - "spruce_fence_gate" => Some(BlockKind::SpruceFenceGate), - "potted_lily_of_the_valley" => Some(BlockKind::PottedLilyOfTheValley), - "emerald_block" => Some(BlockKind::EmeraldBlock), - "polished_blackstone_brick_stairs" => Some(BlockKind::PolishedBlackstoneBrickStairs), - "pink_tulip" => Some(BlockKind::PinkTulip), - "fire_coral_fan" => Some(BlockKind::FireCoralFan), - "gray_stained_glass" => Some(BlockKind::GrayStainedGlass), - "smooth_sandstone_stairs" => Some(BlockKind::SmoothSandstoneStairs), - "spruce_sign" => Some(BlockKind::SpruceSign), - "exposed_cut_copper_slab" => Some(BlockKind::ExposedCutCopperSlab), - "brown_terracotta" => Some(BlockKind::BrownTerracotta), - "dead_tube_coral" => Some(BlockKind::DeadTubeCoral), - "wither_skeleton_skull" => Some(BlockKind::WitherSkeletonSkull), - "birch_sign" => Some(BlockKind::BirchSign), - "lily_pad" => Some(BlockKind::LilyPad), - "polished_blackstone_pressure_plate" => { - Some(BlockKind::PolishedBlackstonePressurePlate) - } - "oak_wall_sign" => Some(BlockKind::OakWallSign), - "stone_stairs" => Some(BlockKind::StoneStairs), - "waxed_copper_block" => Some(BlockKind::WaxedCopperBlock), - "cake" => Some(BlockKind::Cake), - "stripped_warped_hyphae" => Some(BlockKind::StrippedWarpedHyphae), - "blue_stained_glass_pane" => Some(BlockKind::BlueStainedGlassPane), - "weathered_copper" => Some(BlockKind::WeatheredCopper), - "white_stained_glass" => Some(BlockKind::WhiteStainedGlass), - "andesite" => Some(BlockKind::Andesite), - "black_carpet" => Some(BlockKind::BlackCarpet), - "prismarine_wall" => Some(BlockKind::PrismarineWall), - "warped_wall_sign" => Some(BlockKind::WarpedWallSign), - "coal_ore" => Some(BlockKind::CoalOre), - "chest" => Some(BlockKind::Chest), - "blue_terracotta" => Some(BlockKind::BlueTerracotta), - "emerald_ore" => Some(BlockKind::EmeraldOre), - "warped_button" => Some(BlockKind::WarpedButton), - "oak_fence_gate" => Some(BlockKind::OakFenceGate), - "light_gray_shulker_box" => Some(BlockKind::LightGrayShulkerBox), - "white_shulker_box" => Some(BlockKind::WhiteShulkerBox), - "nether_wart" => Some(BlockKind::NetherWart), - "black_concrete" => Some(BlockKind::BlackConcrete), - "stone_button" => Some(BlockKind::StoneButton), - "magenta_wool" => Some(BlockKind::MagentaWool), - "oak_stairs" => Some(BlockKind::OakStairs), - "purple_stained_glass" => Some(BlockKind::PurpleStainedGlass), - "dark_oak_planks" => Some(BlockKind::DarkOakPlanks), - "glass_pane" => Some(BlockKind::GlassPane), - "prismarine_bricks" => Some(BlockKind::PrismarineBricks), - "pink_wall_banner" => Some(BlockKind::PinkWallBanner), - "cobblestone_slab" => Some(BlockKind::CobblestoneSlab), - "stonecutter" => Some(BlockKind::Stonecutter), - "green_concrete" => Some(BlockKind::GreenConcrete), - "blue_glazed_terracotta" => Some(BlockKind::BlueGlazedTerracotta), - "jigsaw" => Some(BlockKind::Jigsaw), - "amethyst_cluster" => Some(BlockKind::AmethystCluster), - "barrel" => Some(BlockKind::Barrel), - "calcite" => Some(BlockKind::Calcite), - "crafting_table" => Some(BlockKind::CraftingTable), - "black_banner" => Some(BlockKind::BlackBanner), - "cut_red_sandstone" => Some(BlockKind::CutRedSandstone), - "red_sandstone_stairs" => Some(BlockKind::RedSandstoneStairs), - "oak_sapling" => Some(BlockKind::OakSapling), - "nether_bricks" => Some(BlockKind::NetherBricks), - "light_blue_concrete" => Some(BlockKind::LightBlueConcrete), - "acacia_sapling" => Some(BlockKind::AcaciaSapling), - "tube_coral_fan" => Some(BlockKind::TubeCoralFan), - "potted_dark_oak_sapling" => Some(BlockKind::PottedDarkOakSapling), - "soul_wall_torch" => Some(BlockKind::SoulWallTorch), - "small_amethyst_bud" => Some(BlockKind::SmallAmethystBud), - "pink_shulker_box" => Some(BlockKind::PinkShulkerBox), - "red_wool" => Some(BlockKind::RedWool), - "beehive" => Some(BlockKind::Beehive), - "big_dripleaf" => Some(BlockKind::BigDripleaf), - "orange_carpet" => Some(BlockKind::OrangeCarpet), - "stripped_warped_stem" => Some(BlockKind::StrippedWarpedStem), - "red_banner" => Some(BlockKind::RedBanner), - "magma_block" => Some(BlockKind::MagmaBlock), - "jack_o_lantern" => Some(BlockKind::JackOLantern), - "fire" => Some(BlockKind::Fire), - "smithing_table" => Some(BlockKind::SmithingTable), - "target" => Some(BlockKind::Target), - "sea_pickle" => Some(BlockKind::SeaPickle), - "spruce_wood" => Some(BlockKind::SpruceWood), - "pink_bed" => Some(BlockKind::PinkBed), - "black_candle" => Some(BlockKind::BlackCandle), - "waxed_cut_copper" => Some(BlockKind::WaxedCutCopper), - "light_blue_wall_banner" => Some(BlockKind::LightBlueWallBanner), - "birch_fence_gate" => Some(BlockKind::BirchFenceGate), - "petrified_oak_slab" => Some(BlockKind::PetrifiedOakSlab), - "respawn_anchor" => Some(BlockKind::RespawnAnchor), - "white_candle_cake" => Some(BlockKind::WhiteCandleCake), - "dead_bubble_coral_wall_fan" => Some(BlockKind::DeadBubbleCoralWallFan), - "jungle_log" => Some(BlockKind::JungleLog), - "lever" => Some(BlockKind::Lever), - "end_stone_bricks" => Some(BlockKind::EndStoneBricks), - "oxidized_copper" => Some(BlockKind::OxidizedCopper), - "granite_slab" => Some(BlockKind::GraniteSlab), - "dead_tube_coral_wall_fan" => Some(BlockKind::DeadTubeCoralWallFan), - "allium" => Some(BlockKind::Allium), - "iron_block" => Some(BlockKind::IronBlock), - "orange_stained_glass_pane" => Some(BlockKind::OrangeStainedGlassPane), - "blackstone_wall" => Some(BlockKind::BlackstoneWall), - "yellow_terracotta" => Some(BlockKind::YellowTerracotta), - "heavy_weighted_pressure_plate" => Some(BlockKind::HeavyWeightedPressurePlate), - "yellow_concrete" => Some(BlockKind::YellowConcrete), - "brown_concrete_powder" => Some(BlockKind::BrownConcretePowder), - "blackstone" => Some(BlockKind::Blackstone), - "glow_lichen" => Some(BlockKind::GlowLichen), - "netherrack" => Some(BlockKind::Netherrack), - "spruce_planks" => Some(BlockKind::SprucePlanks), - "sandstone_stairs" => Some(BlockKind::SandstoneStairs), - "lime_stained_glass" => Some(BlockKind::LimeStainedGlass), - "pumpkin_stem" => Some(BlockKind::PumpkinStem), - "melon_stem" => Some(BlockKind::MelonStem), - "spruce_sapling" => Some(BlockKind::SpruceSapling), - "yellow_glazed_terracotta" => Some(BlockKind::YellowGlazedTerracotta), - "cyan_glazed_terracotta" => Some(BlockKind::CyanGlazedTerracotta), - "crimson_button" => Some(BlockKind::CrimsonButton), - "bee_nest" => Some(BlockKind::BeeNest), - "deepslate_brick_stairs" => Some(BlockKind::DeepslateBrickStairs), - "chiseled_red_sandstone" => Some(BlockKind::ChiseledRedSandstone), - "light_gray_concrete_powder" => Some(BlockKind::LightGrayConcretePowder), - "bone_block" => Some(BlockKind::BoneBlock), - "terracotta" => Some(BlockKind::Terracotta), - "packed_ice" => Some(BlockKind::PackedIce), - "potted_oxeye_daisy" => Some(BlockKind::PottedOxeyeDaisy), - "yellow_shulker_box" => Some(BlockKind::YellowShulkerBox), - "mushroom_stem" => Some(BlockKind::MushroomStem), - "potted_white_tulip" => Some(BlockKind::PottedWhiteTulip), - "sunflower" => Some(BlockKind::Sunflower), - "light_blue_candle" => Some(BlockKind::LightBlueCandle), - "nether_quartz_ore" => Some(BlockKind::NetherQuartzOre), - "chorus_plant" => Some(BlockKind::ChorusPlant), - "dead_bubble_coral" => Some(BlockKind::DeadBubbleCoral), - "soul_fire" => Some(BlockKind::SoulFire), - "bubble_coral" => Some(BlockKind::BubbleCoral), - "polished_andesite_stairs" => Some(BlockKind::PolishedAndesiteStairs), - "warped_pressure_plate" => Some(BlockKind::WarpedPressurePlate), - "dark_oak_leaves" => Some(BlockKind::DarkOakLeaves), - "orange_wool" => Some(BlockKind::OrangeWool), - "dead_brain_coral_wall_fan" => Some(BlockKind::DeadBrainCoralWallFan), - "potted_red_mushroom" => Some(BlockKind::PottedRedMushroom), - "crimson_stem" => Some(BlockKind::CrimsonStem), - "chiseled_nether_bricks" => Some(BlockKind::ChiseledNetherBricks), - "warped_slab" => Some(BlockKind::WarpedSlab), - "polished_deepslate_slab" => Some(BlockKind::PolishedDeepslateSlab), - "blue_candle_cake" => Some(BlockKind::BlueCandleCake), - "mossy_cobblestone_slab" => Some(BlockKind::MossyCobblestoneSlab), - "light_gray_stained_glass_pane" => Some(BlockKind::LightGrayStainedGlassPane), - "quartz_slab" => Some(BlockKind::QuartzSlab), - "prismarine" => Some(BlockKind::Prismarine), - "trapped_chest" => Some(BlockKind::TrappedChest), - "pink_carpet" => Some(BlockKind::PinkCarpet), - "stripped_dark_oak_wood" => Some(BlockKind::StrippedDarkOakWood), - "brown_concrete" => Some(BlockKind::BrownConcrete), - "yellow_concrete_powder" => Some(BlockKind::YellowConcretePowder), - "fire_coral_wall_fan" => Some(BlockKind::FireCoralWallFan), - "orange_banner" => Some(BlockKind::OrangeBanner), - "brown_mushroom" => Some(BlockKind::BrownMushroom), - "flowering_azalea_leaves" => Some(BlockKind::FloweringAzaleaLeaves), - "black_terracotta" => Some(BlockKind::BlackTerracotta), - "blue_orchid" => Some(BlockKind::BlueOrchid), - "red_nether_brick_wall" => Some(BlockKind::RedNetherBrickWall), - "magenta_concrete_powder" => Some(BlockKind::MagentaConcretePowder), - "potted_dandelion" => Some(BlockKind::PottedDandelion), - "horn_coral_block" => Some(BlockKind::HornCoralBlock), - "brown_candle" => Some(BlockKind::BrownCandle), - "raw_copper_block" => Some(BlockKind::RawCopperBlock), - "amethyst_block" => Some(BlockKind::AmethystBlock), - "cut_red_sandstone_slab" => Some(BlockKind::CutRedSandstoneSlab), - "black_candle_cake" => Some(BlockKind::BlackCandleCake), - "red_mushroom_block" => Some(BlockKind::RedMushroomBlock), - "pink_concrete" => Some(BlockKind::PinkConcrete), - "dark_oak_sign" => Some(BlockKind::DarkOakSign), - "grass" => Some(BlockKind::Grass), - "deepslate_diamond_ore" => Some(BlockKind::DeepslateDiamondOre), - "polished_diorite_slab" => Some(BlockKind::PolishedDioriteSlab), - "stripped_crimson_hyphae" => Some(BlockKind::StrippedCrimsonHyphae), - "deepslate_bricks" => Some(BlockKind::DeepslateBricks), - "purpur_block" => Some(BlockKind::PurpurBlock), - "yellow_candle_cake" => Some(BlockKind::YellowCandleCake), - "lapis_ore" => Some(BlockKind::LapisOre), - "oak_sign" => Some(BlockKind::OakSign), - "peony" => Some(BlockKind::Peony), - "light_blue_bed" => Some(BlockKind::LightBlueBed), - "red_sandstone_wall" => Some(BlockKind::RedSandstoneWall), - "polished_blackstone_bricks" => Some(BlockKind::PolishedBlackstoneBricks), - "orange_bed" => Some(BlockKind::OrangeBed), - "turtle_egg" => Some(BlockKind::TurtleEgg), - "cobbled_deepslate" => Some(BlockKind::CobbledDeepslate), - "warped_nylium" => Some(BlockKind::WarpedNylium), - "cyan_wool" => Some(BlockKind::CyanWool), - "glass" => Some(BlockKind::Glass), - "light_gray_candle" => Some(BlockKind::LightGrayCandle), - "chiseled_quartz_block" => Some(BlockKind::ChiseledQuartzBlock), - "purple_carpet" => Some(BlockKind::PurpleCarpet), - "sponge" => Some(BlockKind::Sponge), - "ladder" => Some(BlockKind::Ladder), - "soul_sand" => Some(BlockKind::SoulSand), - "purpur_pillar" => Some(BlockKind::PurpurPillar), - "nether_wart_block" => Some(BlockKind::NetherWartBlock), - "warped_planks" => Some(BlockKind::WarpedPlanks), - "potted_warped_roots" => Some(BlockKind::PottedWarpedRoots), - "black_shulker_box" => Some(BlockKind::BlackShulkerBox), - "red_candle" => Some(BlockKind::RedCandle), - "white_carpet" => Some(BlockKind::WhiteCarpet), - "end_portal_frame" => Some(BlockKind::EndPortalFrame), - "polished_andesite" => Some(BlockKind::PolishedAndesite), - "infested_stone_bricks" => Some(BlockKind::InfestedStoneBricks), - "light_blue_candle_cake" => Some(BlockKind::LightBlueCandleCake), - "stripped_oak_wood" => Some(BlockKind::StrippedOakWood), - "granite_stairs" => Some(BlockKind::GraniteStairs), - "red_sandstone" => Some(BlockKind::RedSandstone), - "dark_prismarine_slab" => Some(BlockKind::DarkPrismarineSlab), - "diorite" => Some(BlockKind::Diorite), - "rooted_dirt" => Some(BlockKind::RootedDirt), - "potted_pink_tulip" => Some(BlockKind::PottedPinkTulip), - "magenta_candle" => Some(BlockKind::MagentaCandle), - "weathered_cut_copper_stairs" => Some(BlockKind::WeatheredCutCopperStairs), - "jungle_wood" => Some(BlockKind::JungleWood), - "birch_wood" => Some(BlockKind::BirchWood), - "light_blue_wool" => Some(BlockKind::LightBlueWool), - "attached_pumpkin_stem" => Some(BlockKind::AttachedPumpkinStem), - "warped_fence" => Some(BlockKind::WarpedFence), - "pointed_dripstone" => Some(BlockKind::PointedDripstone), - "stripped_acacia_log" => Some(BlockKind::StrippedAcaciaLog), - "carrots" => Some(BlockKind::Carrots), - "acacia_button" => Some(BlockKind::AcaciaButton), - "gray_concrete" => Some(BlockKind::GrayConcrete), - "potted_azalea_bush" => Some(BlockKind::PottedAzaleaBush), - "dark_oak_fence" => Some(BlockKind::DarkOakFence), - "red_mushroom" => Some(BlockKind::RedMushroom), - "coarse_dirt" => Some(BlockKind::CoarseDirt), - "ice" => Some(BlockKind::Ice), - "magenta_stained_glass" => Some(BlockKind::MagentaStainedGlass), - "birch_log" => Some(BlockKind::BirchLog), - "cave_air" => Some(BlockKind::CaveAir), - "infested_cracked_stone_bricks" => Some(BlockKind::InfestedCrackedStoneBricks), - "orange_tulip" => Some(BlockKind::OrangeTulip), - "bubble_column" => Some(BlockKind::BubbleColumn), - "sculk_sensor" => Some(BlockKind::SculkSensor), - "oxidized_cut_copper_stairs" => Some(BlockKind::OxidizedCutCopperStairs), - "cracked_nether_bricks" => Some(BlockKind::CrackedNetherBricks), - "diamond_ore" => Some(BlockKind::DiamondOre), - "potted_azure_bluet" => Some(BlockKind::PottedAzureBluet), - "smooth_stone_slab" => Some(BlockKind::SmoothStoneSlab), - "redstone_torch" => Some(BlockKind::RedstoneTorch), - "oak_door" => Some(BlockKind::OakDoor), - "coal_block" => Some(BlockKind::CoalBlock), - "spruce_wall_sign" => Some(BlockKind::SpruceWallSign), - "snow" => Some(BlockKind::Snow), - "twisting_vines_plant" => Some(BlockKind::TwistingVinesPlant), - "potted_blue_orchid" => Some(BlockKind::PottedBlueOrchid), - "yellow_bed" => Some(BlockKind::YellowBed), - "smooth_quartz_slab" => Some(BlockKind::SmoothQuartzSlab), - "jungle_leaves" => Some(BlockKind::JungleLeaves), - "acacia_pressure_plate" => Some(BlockKind::AcaciaPressurePlate), - "magenta_concrete" => Some(BlockKind::MagentaConcrete), - "potted_flowering_azalea_bush" => Some(BlockKind::PottedFloweringAzaleaBush), - "green_stained_glass_pane" => Some(BlockKind::GreenStainedGlassPane), - "spore_blossom" => Some(BlockKind::SporeBlossom), - "waxed_exposed_copper" => Some(BlockKind::WaxedExposedCopper), - "black_bed" => Some(BlockKind::BlackBed), - "polished_basalt" => Some(BlockKind::PolishedBasalt), - "beetroots" => Some(BlockKind::Beetroots), - "tall_seagrass" => Some(BlockKind::TallSeagrass), - "chorus_flower" => Some(BlockKind::ChorusFlower), - "potted_dead_bush" => Some(BlockKind::PottedDeadBush), - "dead_horn_coral_fan" => Some(BlockKind::DeadHornCoralFan), - "red_nether_brick_stairs" => Some(BlockKind::RedNetherBrickStairs), - "cartography_table" => Some(BlockKind::CartographyTable), - "mossy_stone_bricks" => Some(BlockKind::MossyStoneBricks), - "acacia_planks" => Some(BlockKind::AcaciaPlanks), - "potted_poppy" => Some(BlockKind::PottedPoppy), - "gray_terracotta" => Some(BlockKind::GrayTerracotta), - "warped_stem" => Some(BlockKind::WarpedStem), - "polished_blackstone_slab" => Some(BlockKind::PolishedBlackstoneSlab), - "purpur_slab" => Some(BlockKind::PurpurSlab), - "blue_concrete" => Some(BlockKind::BlueConcrete), - "conduit" => Some(BlockKind::Conduit), - "red_nether_bricks" => Some(BlockKind::RedNetherBricks), - "yellow_banner" => Some(BlockKind::YellowBanner), - "cyan_stained_glass_pane" => Some(BlockKind::CyanStainedGlassPane), - "red_bed" => Some(BlockKind::RedBed), - "oak_leaves" => Some(BlockKind::OakLeaves), - "oak_pressure_plate" => Some(BlockKind::OakPressurePlate), - "infested_deepslate" => Some(BlockKind::InfestedDeepslate), - "jungle_pressure_plate" => Some(BlockKind::JunglePressurePlate), - "cyan_wall_banner" => Some(BlockKind::CyanWallBanner), - "red_wall_banner" => Some(BlockKind::RedWallBanner), - "end_stone_brick_slab" => Some(BlockKind::EndStoneBrickSlab), - "waxed_oxidized_copper" => Some(BlockKind::WaxedOxidizedCopper), - "brown_wool" => Some(BlockKind::BrownWool), - "cobbled_deepslate_wall" => Some(BlockKind::CobbledDeepslateWall), - "flower_pot" => Some(BlockKind::FlowerPot), - "magenta_shulker_box" => Some(BlockKind::MagentaShulkerBox), - "green_glazed_terracotta" => Some(BlockKind::GreenGlazedTerracotta), - "cyan_concrete_powder" => Some(BlockKind::CyanConcretePowder), - "magenta_bed" => Some(BlockKind::MagentaBed), - "mossy_stone_brick_stairs" => Some(BlockKind::MossyStoneBrickStairs), - "brown_candle_cake" => Some(BlockKind::BrownCandleCake), - "crimson_nylium" => Some(BlockKind::CrimsonNylium), - "potted_crimson_fungus" => Some(BlockKind::PottedCrimsonFungus), - "exposed_copper" => Some(BlockKind::ExposedCopper), - "azure_bluet" => Some(BlockKind::AzureBluet), - "observer" => Some(BlockKind::Observer), - "potted_wither_rose" => Some(BlockKind::PottedWitherRose), - "dark_oak_button" => Some(BlockKind::DarkOakButton), - "moss_carpet" => Some(BlockKind::MossCarpet), - "diorite_slab" => Some(BlockKind::DioriteSlab), - "water_cauldron" => Some(BlockKind::WaterCauldron), - "prismarine_brick_slab" => Some(BlockKind::PrismarineBrickSlab), - "red_carpet" => Some(BlockKind::RedCarpet), - "potted_orange_tulip" => Some(BlockKind::PottedOrangeTulip), - "pumpkin" => Some(BlockKind::Pumpkin), - "lime_wall_banner" => Some(BlockKind::LimeWallBanner), - "gold_ore" => Some(BlockKind::GoldOre), - "horn_coral_fan" => Some(BlockKind::HornCoralFan), - "polished_blackstone" => Some(BlockKind::PolishedBlackstone), - "farmland" => Some(BlockKind::Farmland), - "lime_stained_glass_pane" => Some(BlockKind::LimeStainedGlassPane), - "weeping_vines" => Some(BlockKind::WeepingVines), - "cut_sandstone_slab" => Some(BlockKind::CutSandstoneSlab), - "tall_grass" => Some(BlockKind::TallGrass), - "light_blue_carpet" => Some(BlockKind::LightBlueCarpet), - "tube_coral" => Some(BlockKind::TubeCoral), - "grindstone" => Some(BlockKind::Grindstone), - "honey_block" => Some(BlockKind::HoneyBlock), - "pink_wool" => Some(BlockKind::PinkWool), - "gray_wool" => Some(BlockKind::GrayWool), - "polished_deepslate_stairs" => Some(BlockKind::PolishedDeepslateStairs), - "warped_door" => Some(BlockKind::WarpedDoor), - "cyan_concrete" => Some(BlockKind::CyanConcrete), - "crimson_door" => Some(BlockKind::CrimsonDoor), - "cracked_deepslate_bricks" => Some(BlockKind::CrackedDeepslateBricks), - "cactus" => Some(BlockKind::Cactus), - "stone_pressure_plate" => Some(BlockKind::StonePressurePlate), - "polished_deepslate_wall" => Some(BlockKind::PolishedDeepslateWall), - "tube_coral_block" => Some(BlockKind::TubeCoralBlock), - "potted_allium" => Some(BlockKind::PottedAllium), - "yellow_stained_glass_pane" => Some(BlockKind::YellowStainedGlassPane), - "dark_oak_wall_sign" => Some(BlockKind::DarkOakWallSign), - "lime_concrete" => Some(BlockKind::LimeConcrete), - "jungle_button" => Some(BlockKind::JungleButton), - "deepslate_tile_slab" => Some(BlockKind::DeepslateTileSlab), - "wither_rose" => Some(BlockKind::WitherRose), - "cracked_stone_bricks" => Some(BlockKind::CrackedStoneBricks), - "light_gray_wall_banner" => Some(BlockKind::LightGrayWallBanner), - "orange_glazed_terracotta" => Some(BlockKind::OrangeGlazedTerracotta), - "dead_brain_coral" => Some(BlockKind::DeadBrainCoral), - "polished_blackstone_button" => Some(BlockKind::PolishedBlackstoneButton), - "red_glazed_terracotta" => Some(BlockKind::RedGlazedTerracotta), - "oxidized_cut_copper_slab" => Some(BlockKind::OxidizedCutCopperSlab), - "azalea_leaves" => Some(BlockKind::AzaleaLeaves), - "potatoes" => Some(BlockKind::Potatoes), - "green_stained_glass" => Some(BlockKind::GreenStainedGlass), - "end_gateway" => Some(BlockKind::EndGateway), - "crimson_pressure_plate" => Some(BlockKind::CrimsonPressurePlate), - "green_candle" => Some(BlockKind::GreenCandle), - "cornflower" => Some(BlockKind::Cornflower), - "potted_brown_mushroom" => Some(BlockKind::PottedBrownMushroom), - "purple_stained_glass_pane" => Some(BlockKind::PurpleStainedGlassPane), - "light_blue_concrete_powder" => Some(BlockKind::LightBlueConcretePowder), - "spruce_slab" => Some(BlockKind::SpruceSlab), - "ancient_debris" => Some(BlockKind::AncientDebris), - "purple_glazed_terracotta" => Some(BlockKind::PurpleGlazedTerracotta), - "anvil" => Some(BlockKind::Anvil), - "dark_oak_door" => Some(BlockKind::DarkOakDoor), - "polished_granite" => Some(BlockKind::PolishedGranite), - "jungle_sapling" => Some(BlockKind::JungleSapling), - "dark_prismarine_stairs" => Some(BlockKind::DarkPrismarineStairs), - "magenta_carpet" => Some(BlockKind::MagentaCarpet), - "smoker" => Some(BlockKind::Smoker), - "light_blue_stained_glass" => Some(BlockKind::LightBlueStainedGlass), - "jungle_planks" => Some(BlockKind::JunglePlanks), - "fern" => Some(BlockKind::Fern), - "quartz_stairs" => Some(BlockKind::QuartzStairs), - "diamond_block" => Some(BlockKind::DiamondBlock), - "redstone_lamp" => Some(BlockKind::RedstoneLamp), - "soul_campfire" => Some(BlockKind::SoulCampfire), - "dark_oak_log" => Some(BlockKind::DarkOakLog), - "cobblestone" => Some(BlockKind::Cobblestone), - "bubble_coral_block" => Some(BlockKind::BubbleCoralBlock), - "waxed_oxidized_cut_copper_slab" => Some(BlockKind::WaxedOxidizedCutCopperSlab), - "warped_hyphae" => Some(BlockKind::WarpedHyphae), - "quartz_bricks" => Some(BlockKind::QuartzBricks), - "shroomlight" => Some(BlockKind::Shroomlight), - "purple_concrete_powder" => Some(BlockKind::PurpleConcretePowder), - "crimson_fence" => Some(BlockKind::CrimsonFence), - "light_gray_terracotta" => Some(BlockKind::LightGrayTerracotta), - "birch_pressure_plate" => Some(BlockKind::BirchPressurePlate), - "red_sand" => Some(BlockKind::RedSand), - "hay_block" => Some(BlockKind::HayBlock), - "orange_concrete_powder" => Some(BlockKind::OrangeConcretePowder), - "granite" => Some(BlockKind::Granite), - "cyan_candle" => Some(BlockKind::CyanCandle), - "bamboo" => Some(BlockKind::Bamboo), - "bricks" => Some(BlockKind::Bricks), - "white_wool" => Some(BlockKind::WhiteWool), - "bamboo_sapling" => Some(BlockKind::BambooSapling), - "lime_concrete_powder" => Some(BlockKind::LimeConcretePowder), - "bubble_coral_wall_fan" => Some(BlockKind::BubbleCoralWallFan), - "redstone_wire" => Some(BlockKind::RedstoneWire), - "piston_head" => Some(BlockKind::PistonHead), - "dead_fire_coral_fan" => Some(BlockKind::DeadFireCoralFan), - "nether_brick_fence" => Some(BlockKind::NetherBrickFence), - "red_shulker_box" => Some(BlockKind::RedShulkerBox), - "cyan_shulker_box" => Some(BlockKind::CyanShulkerBox), - "beacon" => Some(BlockKind::Beacon), - "cave_vines" => Some(BlockKind::CaveVines), - "ender_chest" => Some(BlockKind::EnderChest), - "gray_banner" => Some(BlockKind::GrayBanner), - "red_sandstone_slab" => Some(BlockKind::RedSandstoneSlab), - "potted_spruce_sapling" => Some(BlockKind::PottedSpruceSapling), - "white_candle" => Some(BlockKind::WhiteCandle), - "green_wool" => Some(BlockKind::GreenWool), - "yellow_carpet" => Some(BlockKind::YellowCarpet), - "white_tulip" => Some(BlockKind::WhiteTulip), - "cocoa" => Some(BlockKind::Cocoa), - "warped_wart_block" => Some(BlockKind::WarpedWartBlock), - "cracked_polished_blackstone_bricks" => { - Some(BlockKind::CrackedPolishedBlackstoneBricks) - } - "green_candle_cake" => Some(BlockKind::GreenCandleCake), - "kelp_plant" => Some(BlockKind::KelpPlant), - "small_dripleaf" => Some(BlockKind::SmallDripleaf), - "polished_deepslate" => Some(BlockKind::PolishedDeepslate), - "infested_chiseled_stone_bricks" => Some(BlockKind::InfestedChiseledStoneBricks), - "potted_birch_sapling" => Some(BlockKind::PottedBirchSapling), - "gilded_blackstone" => Some(BlockKind::GildedBlackstone), - "red_candle_cake" => Some(BlockKind::RedCandleCake), - "purple_terracotta" => Some(BlockKind::PurpleTerracotta), - "pink_stained_glass" => Some(BlockKind::PinkStainedGlass), - "potted_bamboo" => Some(BlockKind::PottedBamboo), - "tnt" => Some(BlockKind::Tnt), - "warped_roots" => Some(BlockKind::WarpedRoots), - "lightning_rod" => Some(BlockKind::LightningRod), - "andesite_wall" => Some(BlockKind::AndesiteWall), - "nether_gold_ore" => Some(BlockKind::NetherGoldOre), - "crimson_sign" => Some(BlockKind::CrimsonSign), - "smooth_stone" => Some(BlockKind::SmoothStone), - "blue_bed" => Some(BlockKind::BlueBed), - "white_concrete" => Some(BlockKind::WhiteConcrete), - "dark_oak_sapling" => Some(BlockKind::DarkOakSapling), - "clay" => Some(BlockKind::Clay), - "sandstone" => Some(BlockKind::Sandstone), - "dead_bubble_coral_block" => Some(BlockKind::DeadBubbleCoralBlock), - "brewing_stand" => Some(BlockKind::BrewingStand), - "waxed_weathered_cut_copper_slab" => Some(BlockKind::WaxedWeatheredCutCopperSlab), - "lime_candle" => Some(BlockKind::LimeCandle), - "light_gray_stained_glass" => Some(BlockKind::LightGrayStainedGlass), - "cracked_deepslate_tiles" => Some(BlockKind::CrackedDeepslateTiles), - "lime_glazed_terracotta" => Some(BlockKind::LimeGlazedTerracotta), - "green_wall_banner" => Some(BlockKind::GreenWallBanner), - "slime_block" => Some(BlockKind::SlimeBlock), - "green_bed" => Some(BlockKind::GreenBed), - "brown_glazed_terracotta" => Some(BlockKind::BrownGlazedTerracotta), - "brick_wall" => Some(BlockKind::BrickWall), - "cyan_candle_cake" => Some(BlockKind::CyanCandleCake), - "stone_bricks" => Some(BlockKind::StoneBricks), - "birch_planks" => Some(BlockKind::BirchPlanks), - "acacia_trapdoor" => Some(BlockKind::AcaciaTrapdoor), - "blue_candle" => Some(BlockKind::BlueCandle), - "spruce_button" => Some(BlockKind::SpruceButton), - "jungle_slab" => Some(BlockKind::JungleSlab), - "brain_coral" => Some(BlockKind::BrainCoral), - "diorite_stairs" => Some(BlockKind::DioriteStairs), - "lime_banner" => Some(BlockKind::LimeBanner), - "brown_bed" => Some(BlockKind::BrownBed), - "hopper" => Some(BlockKind::Hopper), - "gray_stained_glass_pane" => Some(BlockKind::GrayStainedGlassPane), - "sugar_cane" => Some(BlockKind::SugarCane), - "zombie_wall_head" => Some(BlockKind::ZombieWallHead), - "crying_obsidian" => Some(BlockKind::CryingObsidian), - "air" => Some(BlockKind::Air), - "acacia_wall_sign" => Some(BlockKind::AcaciaWallSign), - "redstone_ore" => Some(BlockKind::RedstoneOre), - "pink_stained_glass_pane" => Some(BlockKind::PinkStainedGlassPane), - "blue_stained_glass" => Some(BlockKind::BlueStainedGlass), - "lime_candle_cake" => Some(BlockKind::LimeCandleCake), - "loom" => Some(BlockKind::Loom), - "red_stained_glass" => Some(BlockKind::RedStainedGlass), - "bookshelf" => Some(BlockKind::Bookshelf), - "iron_door" => Some(BlockKind::IronDoor), - "command_block" => Some(BlockKind::CommandBlock), - "comparator" => Some(BlockKind::Comparator), - "lime_terracotta" => Some(BlockKind::LimeTerracotta), - "pink_terracotta" => Some(BlockKind::PinkTerracotta), - "magenta_glazed_terracotta" => Some(BlockKind::MagentaGlazedTerracotta), - "spruce_door" => Some(BlockKind::SpruceDoor), - "pink_concrete_powder" => Some(BlockKind::PinkConcretePowder), - "waxed_exposed_cut_copper_stairs" => Some(BlockKind::WaxedExposedCutCopperStairs), - "cut_sandstone" => Some(BlockKind::CutSandstone), - "sticky_piston" => Some(BlockKind::StickyPiston), - "lily_of_the_valley" => Some(BlockKind::LilyOfTheValley), - "acacia_fence_gate" => Some(BlockKind::AcaciaFenceGate), - "light_gray_concrete" => Some(BlockKind::LightGrayConcrete), - "nether_brick_wall" => Some(BlockKind::NetherBrickWall), - "green_banner" => Some(BlockKind::GreenBanner), - "white_stained_glass_pane" => Some(BlockKind::WhiteStainedGlassPane), - "smooth_red_sandstone" => Some(BlockKind::SmoothRedSandstone), - "fire_coral" => Some(BlockKind::FireCoral), - "cyan_carpet" => Some(BlockKind::CyanCarpet), - "acacia_stairs" => Some(BlockKind::AcaciaStairs), - "yellow_wool" => Some(BlockKind::YellowWool), - "black_stained_glass_pane" => Some(BlockKind::BlackStainedGlassPane), - "dead_fire_coral" => Some(BlockKind::DeadFireCoral), - "light_gray_glazed_terracotta" => Some(BlockKind::LightGrayGlazedTerracotta), - "birch_stairs" => Some(BlockKind::BirchStairs), - "white_concrete_powder" => Some(BlockKind::WhiteConcretePowder), - "oak_planks" => Some(BlockKind::OakPlanks), - "quartz_pillar" => Some(BlockKind::QuartzPillar), - "bell" => Some(BlockKind::Bell), - "purple_candle" => Some(BlockKind::PurpleCandle), - "acacia_log" => Some(BlockKind::AcaciaLog), - "purple_wool" => Some(BlockKind::PurpleWool), - "melon" => Some(BlockKind::Melon), - "soul_soil" => Some(BlockKind::SoulSoil), - "crimson_fence_gate" => Some(BlockKind::CrimsonFenceGate), - "lava" => Some(BlockKind::Lava), - "white_banner" => Some(BlockKind::WhiteBanner), - "spruce_log" => Some(BlockKind::SpruceLog), - "chain" => Some(BlockKind::Chain), - "potted_cactus" => Some(BlockKind::PottedCactus), - "blue_ice" => Some(BlockKind::BlueIce), - "light_gray_wool" => Some(BlockKind::LightGrayWool), - "acacia_sign" => Some(BlockKind::AcaciaSign), - "light_blue_shulker_box" => Some(BlockKind::LightBlueShulkerBox), - "brown_mushroom_block" => Some(BlockKind::BrownMushroomBlock), - "oak_log" => Some(BlockKind::OakLog), - "stone_slab" => Some(BlockKind::StoneSlab), - "acacia_wood" => Some(BlockKind::AcaciaWood), - "moving_piston" => Some(BlockKind::MovingPiston), - "end_portal" => Some(BlockKind::EndPortal), - "oak_trapdoor" => Some(BlockKind::OakTrapdoor), - "polished_andesite_slab" => Some(BlockKind::PolishedAndesiteSlab), - "gray_candle" => Some(BlockKind::GrayCandle), - "light_blue_banner" => Some(BlockKind::LightBlueBanner), - "lime_shulker_box" => Some(BlockKind::LimeShulkerBox), - "weeping_vines_plant" => Some(BlockKind::WeepingVinesPlant), - "spawner" => Some(BlockKind::Spawner), - "zombie_head" => Some(BlockKind::ZombieHead), - "gray_candle_cake" => Some(BlockKind::GrayCandleCake), - "light_gray_bed" => Some(BlockKind::LightGrayBed), - "green_terracotta" => Some(BlockKind::GreenTerracotta), - "powered_rail" => Some(BlockKind::PoweredRail), - "magenta_terracotta" => Some(BlockKind::MagentaTerracotta), - "red_concrete_powder" => Some(BlockKind::RedConcretePowder), - "oak_wood" => Some(BlockKind::OakWood), - "stripped_jungle_log" => Some(BlockKind::StrippedJungleLog), - "orange_stained_glass" => Some(BlockKind::OrangeStainedGlass), - "spruce_trapdoor" => Some(BlockKind::SpruceTrapdoor), - "magenta_wall_banner" => Some(BlockKind::MagentaWallBanner), - "jungle_sign" => Some(BlockKind::JungleSign), - "purple_banner" => Some(BlockKind::PurpleBanner), - "dead_fire_coral_wall_fan" => Some(BlockKind::DeadFireCoralWallFan), - "water" => Some(BlockKind::Water), - "stripped_jungle_wood" => Some(BlockKind::StrippedJungleWood), - "oxeye_daisy" => Some(BlockKind::OxeyeDaisy), - "pink_candle" => Some(BlockKind::PinkCandle), - "gray_concrete_powder" => Some(BlockKind::GrayConcretePowder), - "deepslate_emerald_ore" => Some(BlockKind::DeepslateEmeraldOre), - "medium_amethyst_bud" => Some(BlockKind::MediumAmethystBud), - "lime_bed" => Some(BlockKind::LimeBed), - "green_carpet" => Some(BlockKind::GreenCarpet), - "blue_concrete_powder" => Some(BlockKind::BlueConcretePowder), - "birch_door" => Some(BlockKind::BirchDoor), - "deepslate_lapis_ore" => Some(BlockKind::DeepslateLapisOre), - "waxed_oxidized_cut_copper" => Some(BlockKind::WaxedOxidizedCutCopper), - "deepslate_tiles" => Some(BlockKind::DeepslateTiles), - "sandstone_slab" => Some(BlockKind::SandstoneSlab), - "player_wall_head" => Some(BlockKind::PlayerWallHead), - "iron_ore" => Some(BlockKind::IronOre), - "pink_glazed_terracotta" => Some(BlockKind::PinkGlazedTerracotta), - "mossy_cobblestone_wall" => Some(BlockKind::MossyCobblestoneWall), - "lectern" => Some(BlockKind::Lectern), - "obsidian" => Some(BlockKind::Obsidian), - "blue_shulker_box" => Some(BlockKind::BlueShulkerBox), - "fletching_table" => Some(BlockKind::FletchingTable), - "stripped_dark_oak_log" => Some(BlockKind::StrippedDarkOakLog), - "piston" => Some(BlockKind::Piston), - "prismarine_brick_stairs" => Some(BlockKind::PrismarineBrickStairs), - "stripped_spruce_log" => Some(BlockKind::StrippedSpruceLog), - "weathered_cut_copper" => Some(BlockKind::WeatheredCutCopper), - "tripwire_hook" => Some(BlockKind::TripwireHook), - "acacia_slab" => Some(BlockKind::AcaciaSlab), - "dropper" => Some(BlockKind::Dropper), - "powder_snow" => Some(BlockKind::PowderSnow), - "green_concrete_powder" => Some(BlockKind::GreenConcretePowder), - "copper_ore" => Some(BlockKind::CopperOre), - "hanging_roots" => Some(BlockKind::HangingRoots), - "brown_wall_banner" => Some(BlockKind::BrownWallBanner), - "yellow_candle" => Some(BlockKind::YellowCandle), - "potted_red_tulip" => Some(BlockKind::PottedRedTulip), - "iron_bars" => Some(BlockKind::IronBars), - "warped_sign" => Some(BlockKind::WarpedSign), - "deepslate_coal_ore" => Some(BlockKind::DeepslateCoalOre), - "brain_coral_block" => Some(BlockKind::BrainCoralBlock), - "cobblestone_wall" => Some(BlockKind::CobblestoneWall), - "quartz_block" => Some(BlockKind::QuartzBlock), - "dead_brain_coral_fan" => Some(BlockKind::DeadBrainCoralFan), - "polished_granite_stairs" => Some(BlockKind::PolishedGraniteStairs), - "potted_fern" => Some(BlockKind::PottedFern), - "cut_copper_slab" => Some(BlockKind::CutCopperSlab), - "sandstone_wall" => Some(BlockKind::SandstoneWall), - "dead_tube_coral_fan" => Some(BlockKind::DeadTubeCoralFan), - "candle_cake" => Some(BlockKind::CandleCake), - "attached_melon_stem" => Some(BlockKind::AttachedMelonStem), - "smooth_red_sandstone_stairs" => Some(BlockKind::SmoothRedSandstoneStairs), - "acacia_leaves" => Some(BlockKind::AcaciaLeaves), - "damaged_anvil" => Some(BlockKind::DamagedAnvil), - "end_stone" => Some(BlockKind::EndStone), - "crimson_trapdoor" => Some(BlockKind::CrimsonTrapdoor), - "waxed_exposed_cut_copper_slab" => Some(BlockKind::WaxedExposedCutCopperSlab), - "gravel" => Some(BlockKind::Gravel), - "orange_terracotta" => Some(BlockKind::OrangeTerracotta), - "copper_block" => Some(BlockKind::CopperBlock), - "blast_furnace" => Some(BlockKind::BlastFurnace), - "yellow_stained_glass" => Some(BlockKind::YellowStainedGlass), - "gray_shulker_box" => Some(BlockKind::GrayShulkerBox), - "potted_oak_sapling" => Some(BlockKind::PottedOakSapling), - "birch_button" => Some(BlockKind::BirchButton), - "scaffolding" => Some(BlockKind::Scaffolding), - "torch" => Some(BlockKind::Torch), - "magenta_stained_glass_pane" => Some(BlockKind::MagentaStainedGlassPane), - "light_gray_carpet" => Some(BlockKind::LightGrayCarpet), - "dead_horn_coral_wall_fan" => Some(BlockKind::DeadHornCoralWallFan), - "large_amethyst_bud" => Some(BlockKind::LargeAmethystBud), - "acacia_door" => Some(BlockKind::AcaciaDoor), - "jukebox" => Some(BlockKind::Jukebox), - "oak_fence" => Some(BlockKind::OakFence), - "magenta_banner" => Some(BlockKind::MagentaBanner), - "rail" => Some(BlockKind::Rail), - "frosted_ice" => Some(BlockKind::FrostedIce), - "exposed_cut_copper_stairs" => Some(BlockKind::ExposedCutCopperStairs), - "player_head" => Some(BlockKind::PlayerHead), - "purple_bed" => Some(BlockKind::PurpleBed), - "crimson_stairs" => Some(BlockKind::CrimsonStairs), - "dark_oak_trapdoor" => Some(BlockKind::DarkOakTrapdoor), - "brain_coral_wall_fan" => Some(BlockKind::BrainCoralWallFan), - "dark_oak_slab" => Some(BlockKind::DarkOakSlab), - "dragon_head" => Some(BlockKind::DragonHead), - "warped_fence_gate" => Some(BlockKind::WarpedFenceGate), - "waxed_weathered_cut_copper" => Some(BlockKind::WaxedWeatheredCutCopper), - "smooth_basalt" => Some(BlockKind::SmoothBasalt), - "dirt_path" => Some(BlockKind::DirtPath), - "barrier" => Some(BlockKind::Barrier), - "end_stone_brick_stairs" => Some(BlockKind::EndStoneBrickStairs), - "stone_brick_wall" => Some(BlockKind::StoneBrickWall), - "end_rod" => Some(BlockKind::EndRod), - "powder_snow_cauldron" => Some(BlockKind::PowderSnowCauldron), - "oak_slab" => Some(BlockKind::OakSlab), - "gray_glazed_terracotta" => Some(BlockKind::GrayGlazedTerracotta), - "wall_torch" => Some(BlockKind::WallTorch), - "honeycomb_block" => Some(BlockKind::HoneycombBlock), - "white_wall_banner" => Some(BlockKind::WhiteWallBanner), - "dead_tube_coral_block" => Some(BlockKind::DeadTubeCoralBlock), - "structure_block" => Some(BlockKind::StructureBlock), - "deepslate_iron_ore" => Some(BlockKind::DeepslateIronOre), - "crimson_wall_sign" => Some(BlockKind::CrimsonWallSign), - "dandelion" => Some(BlockKind::Dandelion), - "dirt" => Some(BlockKind::Dirt), - "brown_banner" => Some(BlockKind::BrownBanner), - "cobbled_deepslate_slab" => Some(BlockKind::CobbledDeepslateSlab), - "orange_candle" => Some(BlockKind::OrangeCandle), - "blue_carpet" => Some(BlockKind::BlueCarpet), - "purple_concrete" => Some(BlockKind::PurpleConcrete), - "dead_bush" => Some(BlockKind::DeadBush), - "spruce_pressure_plate" => Some(BlockKind::SprucePressurePlate), - "lime_carpet" => Some(BlockKind::LimeCarpet), - "detector_rail" => Some(BlockKind::DetectorRail), - "void_air" => Some(BlockKind::VoidAir), - "netherite_block" => Some(BlockKind::NetheriteBlock), - "birch_trapdoor" => Some(BlockKind::BirchTrapdoor), - "enchanting_table" => Some(BlockKind::EnchantingTable), - "horn_coral" => Some(BlockKind::HornCoral), - "yellow_wall_banner" => Some(BlockKind::YellowWallBanner), - "grass_block" => Some(BlockKind::GrassBlock), - "stripped_crimson_stem" => Some(BlockKind::StrippedCrimsonStem), - "black_concrete_powder" => Some(BlockKind::BlackConcretePowder), - "deepslate_redstone_ore" => Some(BlockKind::DeepslateRedstoneOre), - "black_stained_glass" => Some(BlockKind::BlackStainedGlass), - "budding_amethyst" => Some(BlockKind::BuddingAmethyst), - "basalt" => Some(BlockKind::Basalt), - "red_nether_brick_slab" => Some(BlockKind::RedNetherBrickSlab), - "polished_diorite" => Some(BlockKind::PolishedDiorite), - "blue_banner" => Some(BlockKind::BlueBanner), - "tripwire" => Some(BlockKind::Tripwire), - "sea_lantern" => Some(BlockKind::SeaLantern), - "nether_brick_slab" => Some(BlockKind::NetherBrickSlab), - "brick_stairs" => Some(BlockKind::BrickStairs), - "activator_rail" => Some(BlockKind::ActivatorRail), - "dark_oak_fence_gate" => Some(BlockKind::DarkOakFenceGate), - "waxed_exposed_cut_copper" => Some(BlockKind::WaxedExposedCutCopper), - "furnace" => Some(BlockKind::Furnace), - "tube_coral_wall_fan" => Some(BlockKind::TubeCoralWallFan), - "glowstone" => Some(BlockKind::Glowstone), - "birch_slab" => Some(BlockKind::BirchSlab), - "red_stained_glass_pane" => Some(BlockKind::RedStainedGlassPane), - "deepslate" => Some(BlockKind::Deepslate), - "deepslate_tile_wall" => Some(BlockKind::DeepslateTileWall), - "crimson_planks" => Some(BlockKind::CrimsonPlanks), - "horn_coral_wall_fan" => Some(BlockKind::HornCoralWallFan), - "brain_coral_fan" => Some(BlockKind::BrainCoralFan), - "diorite_wall" => Some(BlockKind::DioriteWall), - "nether_sprouts" => Some(BlockKind::NetherSprouts), - "orange_candle_cake" => Some(BlockKind::OrangeCandleCake), - "cave_vines_plant" => Some(BlockKind::CaveVinesPlant), - "infested_mossy_stone_bricks" => Some(BlockKind::InfestedMossyStoneBricks), - "smooth_quartz" => Some(BlockKind::SmoothQuartz), - "candle" => Some(BlockKind::Candle), - "white_glazed_terracotta" => Some(BlockKind::WhiteGlazedTerracotta), - "smooth_sandstone" => Some(BlockKind::SmoothSandstone), - "composter" => Some(BlockKind::Composter), - "chipped_anvil" => Some(BlockKind::ChippedAnvil), - "light_weighted_pressure_plate" => Some(BlockKind::LightWeightedPressurePlate), - "lava_cauldron" => Some(BlockKind::LavaCauldron), - "sand" => Some(BlockKind::Sand), - "stripped_birch_wood" => Some(BlockKind::StrippedBirchWood), - "light_blue_stained_glass_pane" => Some(BlockKind::LightBlueStainedGlassPane), - "note_block" => Some(BlockKind::NoteBlock), - "light_gray_banner" => Some(BlockKind::LightGrayBanner), - "lapis_block" => Some(BlockKind::LapisBlock), - "cyan_stained_glass" => Some(BlockKind::CyanStainedGlass), - "dragon_wall_head" => Some(BlockKind::DragonWallHead), - "wet_sponge" => Some(BlockKind::WetSponge), - "stone_brick_slab" => Some(BlockKind::StoneBrickSlab), - "polished_granite_slab" => Some(BlockKind::PolishedGraniteSlab), - "lodestone" => Some(BlockKind::Lodestone), - "cobbled_deepslate_stairs" => Some(BlockKind::CobbledDeepslateStairs), - "birch_sapling" => Some(BlockKind::BirchSapling), - "wheat" => Some(BlockKind::Wheat), - "large_fern" => Some(BlockKind::LargeFern), - "chiseled_deepslate" => Some(BlockKind::ChiseledDeepslate), - "stripped_spruce_wood" => Some(BlockKind::StrippedSpruceWood), - "brown_stained_glass" => Some(BlockKind::BrownStainedGlass), - "deepslate_brick_slab" => Some(BlockKind::DeepslateBrickSlab), - "cobblestone_stairs" => Some(BlockKind::CobblestoneStairs), - "snow_block" => Some(BlockKind::SnowBlock), - "campfire" => Some(BlockKind::Campfire), - "polished_blackstone_stairs" => Some(BlockKind::PolishedBlackstoneStairs), - "rose_bush" => Some(BlockKind::RoseBush), - "light" => Some(BlockKind::Light), - "lantern" => Some(BlockKind::Lantern), - "cyan_bed" => Some(BlockKind::CyanBed), - "dark_oak_pressure_plate" => Some(BlockKind::DarkOakPressurePlate), - "crimson_fungus" => Some(BlockKind::CrimsonFungus), - "infested_cobblestone" => Some(BlockKind::InfestedCobblestone), - "dead_fire_coral_block" => Some(BlockKind::DeadFireCoralBlock), - "potted_acacia_sapling" => Some(BlockKind::PottedAcaciaSapling), - "light_blue_glazed_terracotta" => Some(BlockKind::LightBlueGlazedTerracotta), - "dead_brain_coral_block" => Some(BlockKind::DeadBrainCoralBlock), - "nether_portal" => Some(BlockKind::NetherPortal), - "andesite_stairs" => Some(BlockKind::AndesiteStairs), - "vine" => Some(BlockKind::Vine), - "kelp" => Some(BlockKind::Kelp), - "deepslate_gold_ore" => Some(BlockKind::DeepslateGoldOre), - "warped_trapdoor" => Some(BlockKind::WarpedTrapdoor), - "jungle_fence" => Some(BlockKind::JungleFence), - "dead_horn_coral" => Some(BlockKind::DeadHornCoral), - "mycelium" => Some(BlockKind::Mycelium), - "black_glazed_terracotta" => Some(BlockKind::BlackGlazedTerracotta), - "deepslate_brick_wall" => Some(BlockKind::DeepslateBrickWall), - "soul_torch" => Some(BlockKind::SoulTorch), - "jungle_fence_gate" => Some(BlockKind::JungleFenceGate), - "wither_skeleton_wall_skull" => Some(BlockKind::WitherSkeletonWallSkull), - "polished_blackstone_wall" => Some(BlockKind::PolishedBlackstoneWall), - "daylight_detector" => Some(BlockKind::DaylightDetector), - "lilac" => Some(BlockKind::Lilac), - "chiseled_stone_bricks" => Some(BlockKind::ChiseledStoneBricks), - "soul_lantern" => Some(BlockKind::SoulLantern), - "potted_crimson_roots" => Some(BlockKind::PottedCrimsonRoots), - "stripped_birch_log" => Some(BlockKind::StrippedBirchLog), - _ => None, - } - } -} -impl BlockKind { - #[doc = "Returns the `namespaced_id` property of this `BlockKind`."] - #[inline] - pub fn namespaced_id(&self) -> &'static str { - match self { - BlockKind::Cobweb => "minecraft:cobweb", - BlockKind::GoldBlock => "minecraft:gold_block", - BlockKind::LightGrayConcrete => "minecraft:light_gray_concrete", - BlockKind::BirchLeaves => "minecraft:birch_leaves", - BlockKind::PurpleBed => "minecraft:purple_bed", - BlockKind::AcaciaButton => "minecraft:acacia_button", - BlockKind::RedGlazedTerracotta => "minecraft:red_glazed_terracotta", - BlockKind::DeadBubbleCoralWallFan => "minecraft:dead_bubble_coral_wall_fan", - BlockKind::LimeShulkerBox => "minecraft:lime_shulker_box", - BlockKind::FrostedIce => "minecraft:frosted_ice", - BlockKind::LavaCauldron => "minecraft:lava_cauldron", - BlockKind::StrippedSpruceLog => "minecraft:stripped_spruce_log", - BlockKind::LightBlueConcrete => "minecraft:light_blue_concrete", - BlockKind::SoulSand => "minecraft:soul_sand", - BlockKind::NetherPortal => "minecraft:nether_portal", - BlockKind::PottedCrimsonRoots => "minecraft:potted_crimson_roots", - BlockKind::DeadTubeCoralWallFan => "minecraft:dead_tube_coral_wall_fan", - BlockKind::OakStairs => "minecraft:oak_stairs", - BlockKind::DeadBrainCoralWallFan => "minecraft:dead_brain_coral_wall_fan", - BlockKind::CrackedNetherBricks => "minecraft:cracked_nether_bricks", - BlockKind::Cobblestone => "minecraft:cobblestone", - BlockKind::StrippedBirchLog => "minecraft:stripped_birch_log", - BlockKind::PowderSnowCauldron => "minecraft:powder_snow_cauldron", - BlockKind::PottedAcaciaSapling => "minecraft:potted_acacia_sapling", - BlockKind::GreenCandle => "minecraft:green_candle", - BlockKind::WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", - BlockKind::DarkOakLog => "minecraft:dark_oak_log", - BlockKind::OakLeaves => "minecraft:oak_leaves", - BlockKind::SmoothQuartzStairs => "minecraft:smooth_quartz_stairs", - BlockKind::BeeNest => "minecraft:bee_nest", - BlockKind::DeadFireCoral => "minecraft:dead_fire_coral", - BlockKind::WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", - BlockKind::RepeatingCommandBlock => "minecraft:repeating_command_block", - BlockKind::LightBlueGlazedTerracotta => "minecraft:light_blue_glazed_terracotta", - BlockKind::AncientDebris => "minecraft:ancient_debris", - BlockKind::GreenStainedGlass => "minecraft:green_stained_glass", - BlockKind::PurpurSlab => "minecraft:purpur_slab", - BlockKind::OrangeConcretePowder => "minecraft:orange_concrete_powder", - BlockKind::Andesite => "minecraft:andesite", - BlockKind::RedTerracotta => "minecraft:red_terracotta", - BlockKind::CaveAir => "minecraft:cave_air", - BlockKind::EndStoneBrickWall => "minecraft:end_stone_brick_wall", - BlockKind::RedConcrete => "minecraft:red_concrete", - BlockKind::HoneycombBlock => "minecraft:honeycomb_block", - BlockKind::BirchPressurePlate => "minecraft:birch_pressure_plate", - BlockKind::TallGrass => "minecraft:tall_grass", - BlockKind::GreenWool => "minecraft:green_wool", - BlockKind::PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", - BlockKind::WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", - BlockKind::Grindstone => "minecraft:grindstone", - BlockKind::BlackStainedGlassPane => "minecraft:black_stained_glass_pane", - BlockKind::GrayShulkerBox => "minecraft:gray_shulker_box", - BlockKind::PottedFern => "minecraft:potted_fern", - BlockKind::CrimsonButton => "minecraft:crimson_button", - BlockKind::StrippedSpruceWood => "minecraft:stripped_spruce_wood", - BlockKind::GlassPane => "minecraft:glass_pane", - BlockKind::Target => "minecraft:target", - BlockKind::JungleButton => "minecraft:jungle_button", - BlockKind::SpruceFenceGate => "minecraft:spruce_fence_gate", - BlockKind::LightBlueWool => "minecraft:light_blue_wool", - BlockKind::CyanBed => "minecraft:cyan_bed", - BlockKind::WarpedWartBlock => "minecraft:warped_wart_block", - BlockKind::PottedFloweringAzaleaBush => "minecraft:potted_flowering_azalea_bush", - BlockKind::MossyCobblestone => "minecraft:mossy_cobblestone", - BlockKind::PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", - BlockKind::TubeCoral => "minecraft:tube_coral", - BlockKind::ChorusPlant => "minecraft:chorus_plant", - BlockKind::CyanWallBanner => "minecraft:cyan_wall_banner", - BlockKind::Composter => "minecraft:composter", - BlockKind::GraniteWall => "minecraft:granite_wall", - BlockKind::Light => "minecraft:light", - BlockKind::Bamboo => "minecraft:bamboo", - BlockKind::NetherBricks => "minecraft:nether_bricks", - BlockKind::Terracotta => "minecraft:terracotta", - BlockKind::GraniteSlab => "minecraft:granite_slab", - BlockKind::WhiteStainedGlassPane => "minecraft:white_stained_glass_pane", - BlockKind::RedMushroom => "minecraft:red_mushroom", - BlockKind::CrackedStoneBricks => "minecraft:cracked_stone_bricks", - BlockKind::LightBlueConcretePowder => "minecraft:light_blue_concrete_powder", - BlockKind::Cake => "minecraft:cake", - BlockKind::PottedOrangeTulip => "minecraft:potted_orange_tulip", - BlockKind::PinkTulip => "minecraft:pink_tulip", - BlockKind::StonePressurePlate => "minecraft:stone_pressure_plate", - BlockKind::StrippedWarpedHyphae => "minecraft:stripped_warped_hyphae", - BlockKind::MagentaShulkerBox => "minecraft:magenta_shulker_box", - BlockKind::BlackstoneStairs => "minecraft:blackstone_stairs", - BlockKind::BrainCoralWallFan => "minecraft:brain_coral_wall_fan", - BlockKind::DeepslateBricks => "minecraft:deepslate_bricks", - BlockKind::FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", - BlockKind::CyanBanner => "minecraft:cyan_banner", - BlockKind::SoulTorch => "minecraft:soul_torch", - BlockKind::PrismarineWall => "minecraft:prismarine_wall", - BlockKind::NetherBrickWall => "minecraft:nether_brick_wall", - BlockKind::Lilac => "minecraft:lilac", - BlockKind::Rail => "minecraft:rail", - BlockKind::Shroomlight => "minecraft:shroomlight", - BlockKind::PinkCarpet => "minecraft:pink_carpet", - BlockKind::StrippedCrimsonStem => "minecraft:stripped_crimson_stem", - BlockKind::AndesiteSlab => "minecraft:andesite_slab", - BlockKind::BrownCandle => "minecraft:brown_candle", - BlockKind::RedSandstone => "minecraft:red_sandstone", - BlockKind::RawGoldBlock => "minecraft:raw_gold_block", - BlockKind::PolishedDeepslateWall => "minecraft:polished_deepslate_wall", - BlockKind::BlackCarpet => "minecraft:black_carpet", - BlockKind::InfestedStoneBricks => "minecraft:infested_stone_bricks", - BlockKind::BirchButton => "minecraft:birch_button", - BlockKind::LightGrayTerracotta => "minecraft:light_gray_terracotta", - BlockKind::AcaciaLeaves => "minecraft:acacia_leaves", - BlockKind::EndStone => "minecraft:end_stone", - BlockKind::BrownCarpet => "minecraft:brown_carpet", - BlockKind::CrimsonPlanks => "minecraft:crimson_planks", - BlockKind::AcaciaFenceGate => "minecraft:acacia_fence_gate", - BlockKind::DetectorRail => "minecraft:detector_rail", - BlockKind::WarpedPressurePlate => "minecraft:warped_pressure_plate", - BlockKind::CutCopperStairs => "minecraft:cut_copper_stairs", - BlockKind::OxidizedCopper => "minecraft:oxidized_copper", - BlockKind::LightBlueWallBanner => "minecraft:light_blue_wall_banner", - BlockKind::OakLog => "minecraft:oak_log", - BlockKind::LimeCandle => "minecraft:lime_candle", - BlockKind::CrimsonNylium => "minecraft:crimson_nylium", - BlockKind::BlackStainedGlass => "minecraft:black_stained_glass", - BlockKind::ExposedCutCopper => "minecraft:exposed_cut_copper", - BlockKind::CrimsonSlab => "minecraft:crimson_slab", - BlockKind::SoulSoil => "minecraft:soul_soil", - BlockKind::WaxedExposedCopper => "minecraft:waxed_exposed_copper", - BlockKind::YellowStainedGlass => "minecraft:yellow_stained_glass", - BlockKind::BlackCandle => "minecraft:black_candle", - BlockKind::LimeBed => "minecraft:lime_bed", - BlockKind::DriedKelpBlock => "minecraft:dried_kelp_block", - BlockKind::OakPlanks => "minecraft:oak_planks", - BlockKind::GrayBanner => "minecraft:gray_banner", - BlockKind::PinkShulkerBox => "minecraft:pink_shulker_box", - BlockKind::ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", - BlockKind::RedBed => "minecraft:red_bed", - BlockKind::AcaciaPressurePlate => "minecraft:acacia_pressure_plate", - BlockKind::BrownWool => "minecraft:brown_wool", - BlockKind::LightBlueStainedGlass => "minecraft:light_blue_stained_glass", - BlockKind::MagentaTerracotta => "minecraft:magenta_terracotta", - BlockKind::BlueWallBanner => "minecraft:blue_wall_banner", - BlockKind::OrangeCandle => "minecraft:orange_candle", - BlockKind::PackedIce => "minecraft:packed_ice", - BlockKind::OakPressurePlate => "minecraft:oak_pressure_plate", - BlockKind::Ice => "minecraft:ice", - BlockKind::RedCandle => "minecraft:red_candle", - BlockKind::StrippedOakWood => "minecraft:stripped_oak_wood", - BlockKind::GrayWool => "minecraft:gray_wool", - BlockKind::PolishedDioriteStairs => "minecraft:polished_diorite_stairs", - BlockKind::BlueIce => "minecraft:blue_ice", - BlockKind::YellowConcretePowder => "minecraft:yellow_concrete_powder", - BlockKind::FireCoralBlock => "minecraft:fire_coral_block", - BlockKind::StrippedWarpedStem => "minecraft:stripped_warped_stem", - BlockKind::PinkWallBanner => "minecraft:pink_wall_banner", - BlockKind::BrownGlazedTerracotta => "minecraft:brown_glazed_terracotta", - BlockKind::Azalea => "minecraft:azalea", - BlockKind::PolishedBasalt => "minecraft:polished_basalt", - BlockKind::WhiteCarpet => "minecraft:white_carpet", - BlockKind::WhiteShulkerBox => "minecraft:white_shulker_box", - BlockKind::MagentaGlazedTerracotta => "minecraft:magenta_glazed_terracotta", - BlockKind::PottedAllium => "minecraft:potted_allium", - BlockKind::SoulFire => "minecraft:soul_fire", - BlockKind::MagentaBanner => "minecraft:magenta_banner", - BlockKind::RoseBush => "minecraft:rose_bush", - BlockKind::PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", - BlockKind::ActivatorRail => "minecraft:activator_rail", - BlockKind::SoulLantern => "minecraft:soul_lantern", - BlockKind::PottedAzureBluet => "minecraft:potted_azure_bluet", - BlockKind::LightGrayWool => "minecraft:light_gray_wool", - BlockKind::PolishedBlackstoneBrickStairs => { - "minecraft:polished_blackstone_brick_stairs" - } - BlockKind::Loom => "minecraft:loom", - BlockKind::RedSand => "minecraft:red_sand", - BlockKind::Blackstone => "minecraft:blackstone", - BlockKind::MagentaConcretePowder => "minecraft:magenta_concrete_powder", - BlockKind::YellowCandle => "minecraft:yellow_candle", - BlockKind::OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", - BlockKind::DarkOakLeaves => "minecraft:dark_oak_leaves", - BlockKind::Tnt => "minecraft:tnt", - BlockKind::AmethystCluster => "minecraft:amethyst_cluster", - BlockKind::FireCoral => "minecraft:fire_coral", - BlockKind::Beehive => "minecraft:beehive", - BlockKind::PrismarineBrickStairs => "minecraft:prismarine_brick_stairs", - BlockKind::BlueWool => "minecraft:blue_wool", - BlockKind::Glass => "minecraft:glass", - BlockKind::LightGrayStainedGlass => "minecraft:light_gray_stained_glass", - BlockKind::RedTulip => "minecraft:red_tulip", - BlockKind::BlackWallBanner => "minecraft:black_wall_banner", - BlockKind::LightningRod => "minecraft:lightning_rod", - BlockKind::PinkCandle => "minecraft:pink_candle", - BlockKind::CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", - BlockKind::GrayGlazedTerracotta => "minecraft:gray_glazed_terracotta", - BlockKind::MossyCobblestoneStairs => "minecraft:mossy_cobblestone_stairs", - BlockKind::LapisBlock => "minecraft:lapis_block", - BlockKind::GreenCandleCake => "minecraft:green_candle_cake", - BlockKind::SprucePlanks => "minecraft:spruce_planks", - BlockKind::OrangeShulkerBox => "minecraft:orange_shulker_box", - BlockKind::NetherSprouts => "minecraft:nether_sprouts", - BlockKind::InfestedCrackedStoneBricks => "minecraft:infested_cracked_stone_bricks", - BlockKind::LightGrayCarpet => "minecraft:light_gray_carpet", - BlockKind::ChiseledSandstone => "minecraft:chiseled_sandstone", - BlockKind::SkeletonSkull => "minecraft:skeleton_skull", - BlockKind::PowderSnow => "minecraft:powder_snow", - BlockKind::Vine => "minecraft:vine", - BlockKind::FireCoralFan => "minecraft:fire_coral_fan", - BlockKind::SculkSensor => "minecraft:sculk_sensor", - BlockKind::PottedCrimsonFungus => "minecraft:potted_crimson_fungus", - BlockKind::Repeater => "minecraft:repeater", - BlockKind::PottedBamboo => "minecraft:potted_bamboo", - BlockKind::RedMushroomBlock => "minecraft:red_mushroom_block", - BlockKind::BirchLog => "minecraft:birch_log", - BlockKind::SmallDripleaf => "minecraft:small_dripleaf", - BlockKind::MossyStoneBrickWall => "minecraft:mossy_stone_brick_wall", - BlockKind::CaveVinesPlant => "minecraft:cave_vines_plant", - BlockKind::Grass => "minecraft:grass", - BlockKind::LimeWallBanner => "minecraft:lime_wall_banner", - BlockKind::AcaciaTrapdoor => "minecraft:acacia_trapdoor", - BlockKind::TwistingVines => "minecraft:twisting_vines", - BlockKind::DragonHead => "minecraft:dragon_head", - BlockKind::PistonHead => "minecraft:piston_head", - BlockKind::Sandstone => "minecraft:sandstone", - BlockKind::PurpleBanner => "minecraft:purple_banner", - BlockKind::RawCopperBlock => "minecraft:raw_copper_block", - BlockKind::OakDoor => "minecraft:oak_door", - BlockKind::OrangeCarpet => "minecraft:orange_carpet", - BlockKind::OakSlab => "minecraft:oak_slab", - BlockKind::RedCarpet => "minecraft:red_carpet", - BlockKind::WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", - BlockKind::DeadBush => "minecraft:dead_bush", - BlockKind::OrangeBanner => "minecraft:orange_banner", - BlockKind::Chest => "minecraft:chest", - BlockKind::ChorusFlower => "minecraft:chorus_flower", - BlockKind::PolishedAndesite => "minecraft:polished_andesite", - BlockKind::StrippedOakLog => "minecraft:stripped_oak_log", - BlockKind::RedstoneOre => "minecraft:redstone_ore", - BlockKind::SpruceStairs => "minecraft:spruce_stairs", - BlockKind::Fire => "minecraft:fire", - BlockKind::CyanCarpet => "minecraft:cyan_carpet", - BlockKind::BrownTerracotta => "minecraft:brown_terracotta", - BlockKind::BrownStainedGlass => "minecraft:brown_stained_glass", - BlockKind::DeepslateLapisOre => "minecraft:deepslate_lapis_ore", - BlockKind::QuartzBricks => "minecraft:quartz_bricks", - BlockKind::BlackstoneSlab => "minecraft:blackstone_slab", - BlockKind::WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", - BlockKind::SeaPickle => "minecraft:sea_pickle", - BlockKind::SpruceSapling => "minecraft:spruce_sapling", - BlockKind::DioriteStairs => "minecraft:diorite_stairs", - BlockKind::CopperBlock => "minecraft:copper_block", - BlockKind::DeadHornCoralFan => "minecraft:dead_horn_coral_fan", - BlockKind::WhiteBanner => "minecraft:white_banner", - BlockKind::PottedBrownMushroom => "minecraft:potted_brown_mushroom", - BlockKind::CoalBlock => "minecraft:coal_block", - BlockKind::BlackShulkerBox => "minecraft:black_shulker_box", - BlockKind::CyanCandleCake => "minecraft:cyan_candle_cake", - BlockKind::RedstoneLamp => "minecraft:redstone_lamp", - BlockKind::Tripwire => "minecraft:tripwire", - BlockKind::PottedDeadBush => "minecraft:potted_dead_bush", - BlockKind::NetherQuartzOre => "minecraft:nether_quartz_ore", - BlockKind::PoweredRail => "minecraft:powered_rail", - BlockKind::ZombieHead => "minecraft:zombie_head", - BlockKind::DeepslateBrickWall => "minecraft:deepslate_brick_wall", - BlockKind::DeepslateIronOre => "minecraft:deepslate_iron_ore", - BlockKind::HornCoralWallFan => "minecraft:horn_coral_wall_fan", - BlockKind::Bookshelf => "minecraft:bookshelf", - BlockKind::WarpedStem => "minecraft:warped_stem", - BlockKind::Sponge => "minecraft:sponge", - BlockKind::MelonStem => "minecraft:melon_stem", - BlockKind::JungleSign => "minecraft:jungle_sign", - BlockKind::LargeAmethystBud => "minecraft:large_amethyst_bud", - BlockKind::CyanShulkerBox => "minecraft:cyan_shulker_box", - BlockKind::PurpleTerracotta => "minecraft:purple_terracotta", - BlockKind::CutCopperSlab => "minecraft:cut_copper_slab", - BlockKind::IronDoor => "minecraft:iron_door", - BlockKind::StrippedJungleWood => "minecraft:stripped_jungle_wood", - BlockKind::GrayConcrete => "minecraft:gray_concrete", - BlockKind::PolishedDeepslate => "minecraft:polished_deepslate", - BlockKind::LimeCandleCake => "minecraft:lime_candle_cake", - BlockKind::CreeperHead => "minecraft:creeper_head", - BlockKind::DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", - BlockKind::QuartzStairs => "minecraft:quartz_stairs", - BlockKind::LimeCarpet => "minecraft:lime_carpet", - BlockKind::SmoothSandstoneSlab => "minecraft:smooth_sandstone_slab", - BlockKind::DeadBrainCoralFan => "minecraft:dead_brain_coral_fan", - BlockKind::ChippedAnvil => "minecraft:chipped_anvil", - BlockKind::PottedOxeyeDaisy => "minecraft:potted_oxeye_daisy", - BlockKind::NetherGoldOre => "minecraft:nether_gold_ore", - BlockKind::BrickSlab => "minecraft:brick_slab", - BlockKind::PolishedBlackstoneButton => "minecraft:polished_blackstone_button", - BlockKind::AttachedMelonStem => "minecraft:attached_melon_stem", - BlockKind::BigDripleaf => "minecraft:big_dripleaf", - BlockKind::PottedCactus => "minecraft:potted_cactus", - BlockKind::IronTrapdoor => "minecraft:iron_trapdoor", - BlockKind::JackOLantern => "minecraft:jack_o_lantern", - BlockKind::BrownStainedGlassPane => "minecraft:brown_stained_glass_pane", - BlockKind::CutSandstoneSlab => "minecraft:cut_sandstone_slab", - BlockKind::PottedRedMushroom => "minecraft:potted_red_mushroom", - BlockKind::WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", - BlockKind::GrassBlock => "minecraft:grass_block", - BlockKind::Deepslate => "minecraft:deepslate", - BlockKind::BirchSign => "minecraft:birch_sign", - BlockKind::DarkPrismarineStairs => "minecraft:dark_prismarine_stairs", - BlockKind::LimeConcrete => "minecraft:lime_concrete", - BlockKind::OakWallSign => "minecraft:oak_wall_sign", - BlockKind::VoidAir => "minecraft:void_air", - BlockKind::WitherSkeletonSkull => "minecraft:wither_skeleton_skull", - BlockKind::DioriteWall => "minecraft:diorite_wall", - BlockKind::WarpedFungus => "minecraft:warped_fungus", - BlockKind::WeepingVines => "minecraft:weeping_vines", - BlockKind::AndesiteStairs => "minecraft:andesite_stairs", - BlockKind::InfestedDeepslate => "minecraft:infested_deepslate", - BlockKind::ChiseledStoneBricks => "minecraft:chiseled_stone_bricks", - BlockKind::YellowTerracotta => "minecraft:yellow_terracotta", - BlockKind::LightBlueStainedGlassPane => "minecraft:light_blue_stained_glass_pane", - BlockKind::CobblestoneWall => "minecraft:cobblestone_wall", - BlockKind::AttachedPumpkinStem => "minecraft:attached_pumpkin_stem", - BlockKind::LilyPad => "minecraft:lily_pad", - BlockKind::Fern => "minecraft:fern", - BlockKind::RawIronBlock => "minecraft:raw_iron_block", - BlockKind::StoneBrickSlab => "minecraft:stone_brick_slab", - BlockKind::WarpedNylium => "minecraft:warped_nylium", - BlockKind::JungleStairs => "minecraft:jungle_stairs", - BlockKind::YellowGlazedTerracotta => "minecraft:yellow_glazed_terracotta", - BlockKind::RedConcretePowder => "minecraft:red_concrete_powder", - BlockKind::LimeBanner => "minecraft:lime_banner", - BlockKind::Diorite => "minecraft:diorite", - BlockKind::LightBlueTerracotta => "minecraft:light_blue_terracotta", - BlockKind::BlueShulkerBox => "minecraft:blue_shulker_box", - BlockKind::PottedBirchSapling => "minecraft:potted_birch_sapling", - BlockKind::PrismarineBrickSlab => "minecraft:prismarine_brick_slab", - BlockKind::BlackBed => "minecraft:black_bed", - BlockKind::WarpedHyphae => "minecraft:warped_hyphae", - BlockKind::EndStoneBrickStairs => "minecraft:end_stone_brick_stairs", - BlockKind::Dandelion => "minecraft:dandelion", - BlockKind::Campfire => "minecraft:campfire", - BlockKind::Barrier => "minecraft:barrier", - BlockKind::GildedBlackstone => "minecraft:gilded_blackstone", - BlockKind::LimeGlazedTerracotta => "minecraft:lime_glazed_terracotta", - BlockKind::AcaciaWallSign => "minecraft:acacia_wall_sign", - BlockKind::ChainCommandBlock => "minecraft:chain_command_block", - BlockKind::CrackedPolishedBlackstoneBricks => { - "minecraft:cracked_polished_blackstone_bricks" - } - BlockKind::TubeCoralFan => "minecraft:tube_coral_fan", - BlockKind::OakFenceGate => "minecraft:oak_fence_gate", - BlockKind::DarkOakStairs => "minecraft:dark_oak_stairs", - BlockKind::DarkPrismarineSlab => "minecraft:dark_prismarine_slab", - BlockKind::PottedWarpedFungus => "minecraft:potted_warped_fungus", - BlockKind::MagentaWallBanner => "minecraft:magenta_wall_banner", - BlockKind::OrangeWool => "minecraft:orange_wool", - BlockKind::JunglePressurePlate => "minecraft:jungle_pressure_plate", - BlockKind::Beacon => "minecraft:beacon", - BlockKind::Allium => "minecraft:allium", - BlockKind::Basalt => "minecraft:basalt", - BlockKind::BlackWool => "minecraft:black_wool", - BlockKind::DamagedAnvil => "minecraft:damaged_anvil", - BlockKind::AcaciaSlab => "minecraft:acacia_slab", - BlockKind::WitherSkeletonWallSkull => "minecraft:wither_skeleton_wall_skull", - BlockKind::GreenTerracotta => "minecraft:green_terracotta", - BlockKind::BirchSapling => "minecraft:birch_sapling", - BlockKind::DirtPath => "minecraft:dirt_path", - BlockKind::Conduit => "minecraft:conduit", - BlockKind::BlueCandleCake => "minecraft:blue_candle_cake", - BlockKind::RootedDirt => "minecraft:rooted_dirt", - BlockKind::CyanTerracotta => "minecraft:cyan_terracotta", - BlockKind::RedSandstoneStairs => "minecraft:red_sandstone_stairs", - BlockKind::LightBlueCandleCake => "minecraft:light_blue_candle_cake", - BlockKind::WeatheredCopper => "minecraft:weathered_copper", - BlockKind::CobblestoneStairs => "minecraft:cobblestone_stairs", - BlockKind::SpruceWallSign => "minecraft:spruce_wall_sign", - BlockKind::PottedSpruceSapling => "minecraft:potted_spruce_sapling", - BlockKind::PottedDandelion => "minecraft:potted_dandelion", - BlockKind::SprucePressurePlate => "minecraft:spruce_pressure_plate", - BlockKind::Jigsaw => "minecraft:jigsaw", - BlockKind::Kelp => "minecraft:kelp", - BlockKind::DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block", - BlockKind::DeadBrainCoral => "minecraft:dead_brain_coral", - BlockKind::GrayWallBanner => "minecraft:gray_wall_banner", - BlockKind::PrismarineStairs => "minecraft:prismarine_stairs", - BlockKind::GreenConcretePowder => "minecraft:green_concrete_powder", - BlockKind::WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", - BlockKind::Piston => "minecraft:piston", - BlockKind::ChiseledQuartzBlock => "minecraft:chiseled_quartz_block", - BlockKind::Peony => "minecraft:peony", - BlockKind::CrimsonRoots => "minecraft:crimson_roots", - BlockKind::SpruceSign => "minecraft:spruce_sign", - BlockKind::DeadFireCoralWallFan => "minecraft:dead_fire_coral_wall_fan", - BlockKind::MagentaStainedGlass => "minecraft:magenta_stained_glass", - BlockKind::OxeyeDaisy => "minecraft:oxeye_daisy", - BlockKind::MagentaConcrete => "minecraft:magenta_concrete", - BlockKind::MushroomStem => "minecraft:mushroom_stem", - BlockKind::WaterCauldron => "minecraft:water_cauldron", - BlockKind::BlackConcrete => "minecraft:black_concrete", - BlockKind::MagmaBlock => "minecraft:magma_block", - BlockKind::HornCoralFan => "minecraft:horn_coral_fan", - BlockKind::BlueStainedGlassPane => "minecraft:blue_stained_glass_pane", - BlockKind::CrimsonStairs => "minecraft:crimson_stairs", - BlockKind::DragonEgg => "minecraft:dragon_egg", - BlockKind::PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", - BlockKind::PurpurPillar => "minecraft:purpur_pillar", - BlockKind::DeepslateGoldOre => "minecraft:deepslate_gold_ore", - BlockKind::StrippedAcaciaLog => "minecraft:stripped_acacia_log", - BlockKind::LimeStainedGlassPane => "minecraft:lime_stained_glass_pane", - BlockKind::BirchWood => "minecraft:birch_wood", - BlockKind::BlueCandle => "minecraft:blue_candle", - BlockKind::IronBars => "minecraft:iron_bars", - BlockKind::OrangeCandleCake => "minecraft:orange_candle_cake", - BlockKind::Stone => "minecraft:stone", - BlockKind::DarkOakButton => "minecraft:dark_oak_button", - BlockKind::NetherBrickStairs => "minecraft:nether_brick_stairs", - BlockKind::JungleWood => "minecraft:jungle_wood", - BlockKind::CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", - BlockKind::BoneBlock => "minecraft:bone_block", - BlockKind::MossBlock => "minecraft:moss_block", - BlockKind::BrownConcretePowder => "minecraft:brown_concrete_powder", - BlockKind::CreeperWallHead => "minecraft:creeper_wall_head", - BlockKind::Lantern => "minecraft:lantern", - BlockKind::BlueStainedGlass => "minecraft:blue_stained_glass", - BlockKind::WarpedStairs => "minecraft:warped_stairs", - BlockKind::BrewingStand => "minecraft:brewing_stand", - BlockKind::WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", - BlockKind::Obsidian => "minecraft:obsidian", - BlockKind::Chain => "minecraft:chain", - BlockKind::PinkWool => "minecraft:pink_wool", - BlockKind::MossyCobblestoneSlab => "minecraft:mossy_cobblestone_slab", - BlockKind::EndPortal => "minecraft:end_portal", - BlockKind::PrismarineBricks => "minecraft:prismarine_bricks", - BlockKind::BrownMushroomBlock => "minecraft:brown_mushroom_block", - BlockKind::DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", - BlockKind::BlackGlazedTerracotta => "minecraft:black_glazed_terracotta", - BlockKind::LightBlueBanner => "minecraft:light_blue_banner", - BlockKind::OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", - BlockKind::SmoothSandstone => "minecraft:smooth_sandstone", - BlockKind::PurpleShulkerBox => "minecraft:purple_shulker_box", - BlockKind::SoulCampfire => "minecraft:soul_campfire", - BlockKind::SkeletonWallSkull => "minecraft:skeleton_wall_skull", - BlockKind::DeepslateCopperOre => "minecraft:deepslate_copper_ore", - BlockKind::RedBanner => "minecraft:red_banner", - BlockKind::Smoker => "minecraft:smoker", - BlockKind::StoneButton => "minecraft:stone_button", - BlockKind::Podzol => "minecraft:podzol", - BlockKind::PurpleStainedGlassPane => "minecraft:purple_stained_glass_pane", - BlockKind::GrayCarpet => "minecraft:gray_carpet", - BlockKind::WarpedSign => "minecraft:warped_sign", - BlockKind::MagentaCandle => "minecraft:magenta_candle", - BlockKind::OrangeBed => "minecraft:orange_bed", - BlockKind::WarpedDoor => "minecraft:warped_door", - BlockKind::YellowBed => "minecraft:yellow_bed", - BlockKind::BlackstoneWall => "minecraft:blackstone_wall", - BlockKind::Carrots => "minecraft:carrots", - BlockKind::CommandBlock => "minecraft:command_block", - BlockKind::Clay => "minecraft:clay", - BlockKind::PurpleCandle => "minecraft:purple_candle", - BlockKind::WarpedFenceGate => "minecraft:warped_fence_gate", - BlockKind::SnowBlock => "minecraft:snow_block", - BlockKind::Seagrass => "minecraft:seagrass", - BlockKind::Tuff => "minecraft:tuff", - BlockKind::RedstoneTorch => "minecraft:redstone_torch", - BlockKind::PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", - BlockKind::WarpedButton => "minecraft:warped_button", - BlockKind::PurpleConcrete => "minecraft:purple_concrete", - BlockKind::LimeWool => "minecraft:lime_wool", - BlockKind::PetrifiedOakSlab => "minecraft:petrified_oak_slab", - BlockKind::IronBlock => "minecraft:iron_block", - BlockKind::YellowConcrete => "minecraft:yellow_concrete", - BlockKind::PolishedBlackstonePressurePlate => { - "minecraft:polished_blackstone_pressure_plate" - } - BlockKind::BlackConcretePowder => "minecraft:black_concrete_powder", - BlockKind::SmoothRedSandstone => "minecraft:smooth_red_sandstone", - BlockKind::EndRod => "minecraft:end_rod", - BlockKind::BlackBanner => "minecraft:black_banner", - BlockKind::Dropper => "minecraft:dropper", - BlockKind::JungleSapling => "minecraft:jungle_sapling", - BlockKind::MovingPiston => "minecraft:moving_piston", - BlockKind::PolishedDiorite => "minecraft:polished_diorite", - BlockKind::NetherWartBlock => "minecraft:nether_wart_block", - BlockKind::Potatoes => "minecraft:potatoes", - BlockKind::DarkOakFence => "minecraft:dark_oak_fence", - BlockKind::StoneBricks => "minecraft:stone_bricks", - BlockKind::LightGrayBed => "minecraft:light_gray_bed", - BlockKind::DarkOakFenceGate => "minecraft:dark_oak_fence_gate", - BlockKind::SlimeBlock => "minecraft:slime_block", - BlockKind::Beetroots => "minecraft:beetroots", - BlockKind::CyanWool => "minecraft:cyan_wool", - BlockKind::PottedRedTulip => "minecraft:potted_red_tulip", - BlockKind::Candle => "minecraft:candle", - BlockKind::Netherrack => "minecraft:netherrack", - BlockKind::Prismarine => "minecraft:prismarine", - BlockKind::BlueOrchid => "minecraft:blue_orchid", - BlockKind::SpruceTrapdoor => "minecraft:spruce_trapdoor", - BlockKind::PottedBlueOrchid => "minecraft:potted_blue_orchid", - BlockKind::PolishedAndesiteSlab => "minecraft:polished_andesite_slab", - BlockKind::DeadHornCoralWallFan => "minecraft:dead_horn_coral_wall_fan", - BlockKind::PurpleWallBanner => "minecraft:purple_wall_banner", - BlockKind::OakButton => "minecraft:oak_button", - BlockKind::KelpPlant => "minecraft:kelp_plant", - BlockKind::BrainCoral => "minecraft:brain_coral", - BlockKind::PolishedDioriteSlab => "minecraft:polished_diorite_slab", - BlockKind::CobbledDeepslate => "minecraft:cobbled_deepslate", - BlockKind::GreenCarpet => "minecraft:green_carpet", - BlockKind::RedWallBanner => "minecraft:red_wall_banner", - BlockKind::AcaciaStairs => "minecraft:acacia_stairs", - BlockKind::EmeraldOre => "minecraft:emerald_ore", - BlockKind::DiamondOre => "minecraft:diamond_ore", - BlockKind::StrippedJungleLog => "minecraft:stripped_jungle_log", - BlockKind::PottedJungleSapling => "minecraft:potted_jungle_sapling", - BlockKind::BirchDoor => "minecraft:birch_door", - BlockKind::SmoothRedSandstoneStairs => "minecraft:smooth_red_sandstone_stairs", - BlockKind::MagentaCarpet => "minecraft:magenta_carpet", - BlockKind::SpruceDoor => "minecraft:spruce_door", - BlockKind::QuartzBlock => "minecraft:quartz_block", - BlockKind::DarkOakWood => "minecraft:dark_oak_wood", - BlockKind::DeadBubbleCoral => "minecraft:dead_bubble_coral", - BlockKind::CrimsonPressurePlate => "minecraft:crimson_pressure_plate", - BlockKind::MossyStoneBrickSlab => "minecraft:mossy_stone_brick_slab", - BlockKind::Air => "minecraft:air", - BlockKind::EndStoneBricks => "minecraft:end_stone_bricks", - BlockKind::JungleLog => "minecraft:jungle_log", - BlockKind::PottedWhiteTulip => "minecraft:potted_white_tulip", - BlockKind::DioriteSlab => "minecraft:diorite_slab", - BlockKind::InfestedMossyStoneBricks => "minecraft:infested_mossy_stone_bricks", - BlockKind::GrayStainedGlass => "minecraft:gray_stained_glass", - BlockKind::PottedOakSapling => "minecraft:potted_oak_sapling", - BlockKind::SmoothQuartzSlab => "minecraft:smooth_quartz_slab", - BlockKind::WhiteCandleCake => "minecraft:white_candle_cake", - BlockKind::CaveVines => "minecraft:cave_vines", - BlockKind::YellowCarpet => "minecraft:yellow_carpet", - BlockKind::BrickStairs => "minecraft:brick_stairs", - BlockKind::PrismarineSlab => "minecraft:prismarine_slab", - BlockKind::WarpedRoots => "minecraft:warped_roots", - BlockKind::FlowerPot => "minecraft:flower_pot", - BlockKind::BirchFenceGate => "minecraft:birch_fence_gate", - BlockKind::DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", - BlockKind::ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", - BlockKind::WallTorch => "minecraft:wall_torch", - BlockKind::BubbleColumn => "minecraft:bubble_column", - BlockKind::CyanCandle => "minecraft:cyan_candle", - BlockKind::CutCopper => "minecraft:cut_copper", - BlockKind::DeadFireCoralBlock => "minecraft:dead_fire_coral_block", - BlockKind::BlueTerracotta => "minecraft:blue_terracotta", - BlockKind::EnderChest => "minecraft:ender_chest", - BlockKind::YellowShulkerBox => "minecraft:yellow_shulker_box", - BlockKind::CoarseDirt => "minecraft:coarse_dirt", - BlockKind::BlackCandleCake => "minecraft:black_candle_cake", - BlockKind::HangingRoots => "minecraft:hanging_roots", - BlockKind::GreenWallBanner => "minecraft:green_wall_banner", - BlockKind::SmoothStone => "minecraft:smooth_stone", - BlockKind::JungleFence => "minecraft:jungle_fence", - BlockKind::DeepslateTileWall => "minecraft:deepslate_tile_wall", - BlockKind::PinkStainedGlass => "minecraft:pink_stained_glass", - BlockKind::BubbleCoralWallFan => "minecraft:bubble_coral_wall_fan", - BlockKind::WhiteStainedGlass => "minecraft:white_stained_glass", - BlockKind::GrayConcretePowder => "minecraft:gray_concrete_powder", - BlockKind::DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", - BlockKind::BrownMushroom => "minecraft:brown_mushroom", - BlockKind::Spawner => "minecraft:spawner", - BlockKind::GreenGlazedTerracotta => "minecraft:green_glazed_terracotta", - BlockKind::BrainCoralBlock => "minecraft:brain_coral_block", - BlockKind::DeadTubeCoral => "minecraft:dead_tube_coral", - BlockKind::BrownConcrete => "minecraft:brown_concrete", - BlockKind::Gravel => "minecraft:gravel", - BlockKind::TwistingVinesPlant => "minecraft:twisting_vines_plant", - BlockKind::MediumAmethystBud => "minecraft:medium_amethyst_bud", - BlockKind::CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", - BlockKind::LargeFern => "minecraft:large_fern", - BlockKind::GreenBanner => "minecraft:green_banner", - BlockKind::LightWeightedPressurePlate => "minecraft:light_weighted_pressure_plate", - BlockKind::YellowWool => "minecraft:yellow_wool", - BlockKind::CryingObsidian => "minecraft:crying_obsidian", - BlockKind::WaxedCutCopper => "minecraft:waxed_cut_copper", - BlockKind::Barrel => "minecraft:barrel", - BlockKind::PottedCornflower => "minecraft:potted_cornflower", - BlockKind::PinkCandleCake => "minecraft:pink_candle_cake", - BlockKind::BlueBanner => "minecraft:blue_banner", - BlockKind::DarkOakSign => "minecraft:dark_oak_sign", - BlockKind::Granite => "minecraft:granite", - BlockKind::SandstoneStairs => "minecraft:sandstone_stairs", - BlockKind::ChiseledRedSandstone => "minecraft:chiseled_red_sandstone", - BlockKind::WarpedWallSign => "minecraft:warped_wall_sign", - BlockKind::TintedGlass => "minecraft:tinted_glass", - BlockKind::SmoothBasalt => "minecraft:smooth_basalt", - BlockKind::MagentaCandleCake => "minecraft:magenta_candle_cake", - BlockKind::WhiteTulip => "minecraft:white_tulip", - BlockKind::WhiteConcretePowder => "minecraft:white_concrete_powder", - BlockKind::BuddingAmethyst => "minecraft:budding_amethyst", - BlockKind::WhiteGlazedTerracotta => "minecraft:white_glazed_terracotta", - BlockKind::PottedWitherRose => "minecraft:potted_wither_rose", - BlockKind::GrayCandleCake => "minecraft:gray_candle_cake", - BlockKind::MagentaWool => "minecraft:magenta_wool", - BlockKind::PinkTerracotta => "minecraft:pink_terracotta", - BlockKind::WarpedSlab => "minecraft:warped_slab", - BlockKind::CrimsonFence => "minecraft:crimson_fence", - BlockKind::TallSeagrass => "minecraft:tall_seagrass", - BlockKind::DeepslateCoalOre => "minecraft:deepslate_coal_ore", - BlockKind::WarpedTrapdoor => "minecraft:warped_trapdoor", - BlockKind::LightBlueShulkerBox => "minecraft:light_blue_shulker_box", - BlockKind::BrownBed => "minecraft:brown_bed", - BlockKind::CyanStainedGlass => "minecraft:cyan_stained_glass", - BlockKind::RedStainedGlass => "minecraft:red_stained_glass", - BlockKind::BlastFurnace => "minecraft:blast_furnace", - BlockKind::LightBlueBed => "minecraft:light_blue_bed", - BlockKind::DeadTubeCoralBlock => "minecraft:dead_tube_coral_block", - BlockKind::GreenBed => "minecraft:green_bed", - BlockKind::MossyStoneBricks => "minecraft:mossy_stone_bricks", - BlockKind::WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", - BlockKind::SmoothRedSandstoneSlab => "minecraft:smooth_red_sandstone_slab", - BlockKind::CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", - BlockKind::Melon => "minecraft:melon", - BlockKind::TurtleEgg => "minecraft:turtle_egg", - BlockKind::AcaciaPlanks => "minecraft:acacia_planks", - BlockKind::StoneBrickWall => "minecraft:stone_brick_wall", - BlockKind::NetherWart => "minecraft:nether_wart", - BlockKind::WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", - BlockKind::JungleSlab => "minecraft:jungle_slab", - BlockKind::YellowStainedGlassPane => "minecraft:yellow_stained_glass_pane", - BlockKind::QuartzPillar => "minecraft:quartz_pillar", - BlockKind::EndPortalFrame => "minecraft:end_portal_frame", - BlockKind::EndGateway => "minecraft:end_gateway", - BlockKind::CrimsonTrapdoor => "minecraft:crimson_trapdoor", - BlockKind::PointedDripstone => "minecraft:pointed_dripstone", - BlockKind::WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", - BlockKind::SandstoneSlab => "minecraft:sandstone_slab", - BlockKind::CutSandstone => "minecraft:cut_sandstone", - BlockKind::GraniteStairs => "minecraft:granite_stairs", - BlockKind::WhiteCandle => "minecraft:white_candle", - BlockKind::CoalOre => "minecraft:coal_ore", - BlockKind::CarvedPumpkin => "minecraft:carved_pumpkin", - BlockKind::BlackTerracotta => "minecraft:black_terracotta", - BlockKind::CrimsonFenceGate => "minecraft:crimson_fence_gate", - BlockKind::DripstoneBlock => "minecraft:dripstone_block", - BlockKind::InfestedChiseledStoneBricks => "minecraft:infested_chiseled_stone_bricks", - BlockKind::Poppy => "minecraft:poppy", - BlockKind::BrainCoralFan => "minecraft:brain_coral_fan", - BlockKind::SoulWallTorch => "minecraft:soul_wall_torch", - BlockKind::RedstoneBlock => "minecraft:redstone_block", - BlockKind::OrangeStainedGlass => "minecraft:orange_stained_glass", - BlockKind::CartographyTable => "minecraft:cartography_table", - BlockKind::RespawnAnchor => "minecraft:respawn_anchor", - BlockKind::RedNetherBrickSlab => "minecraft:red_nether_brick_slab", - BlockKind::AcaciaFence => "minecraft:acacia_fence", - BlockKind::Snow => "minecraft:snow", - BlockKind::LightGrayConcretePowder => "minecraft:light_gray_concrete_powder", - BlockKind::InfestedCobblestone => "minecraft:infested_cobblestone", - BlockKind::TubeCoralWallFan => "minecraft:tube_coral_wall_fan", - BlockKind::MossyStoneBrickStairs => "minecraft:mossy_stone_brick_stairs", - BlockKind::BlueConcretePowder => "minecraft:blue_concrete_powder", - BlockKind::DeepslateTileStairs => "minecraft:deepslate_tile_stairs", - BlockKind::HeavyWeightedPressurePlate => "minecraft:heavy_weighted_pressure_plate", - BlockKind::DarkPrismarine => "minecraft:dark_prismarine", - BlockKind::DeadFireCoralFan => "minecraft:dead_fire_coral_fan", - BlockKind::PinkBanner => "minecraft:pink_banner", - BlockKind::RedstoneWallTorch => "minecraft:redstone_wall_torch", - BlockKind::WeatheredCutCopper => "minecraft:weathered_cut_copper", - BlockKind::LightGrayBanner => "minecraft:light_gray_banner", - BlockKind::ZombieWallHead => "minecraft:zombie_wall_head", - BlockKind::Stonecutter => "minecraft:stonecutter", - BlockKind::CyanConcretePowder => "minecraft:cyan_concrete_powder", - BlockKind::ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", - BlockKind::AmethystBlock => "minecraft:amethyst_block", - BlockKind::BubbleCoralFan => "minecraft:bubble_coral_fan", - BlockKind::DarkOakTrapdoor => "minecraft:dark_oak_trapdoor", - BlockKind::CutRedSandstoneSlab => "minecraft:cut_red_sandstone_slab", - BlockKind::LightGrayGlazedTerracotta => "minecraft:light_gray_glazed_terracotta", - BlockKind::Cornflower => "minecraft:cornflower", - BlockKind::FireCoralWallFan => "minecraft:fire_coral_wall_fan", - BlockKind::LapisOre => "minecraft:lapis_ore", - BlockKind::BlueBed => "minecraft:blue_bed", - BlockKind::RedStainedGlassPane => "minecraft:red_stained_glass_pane", - BlockKind::LimeStainedGlass => "minecraft:lime_stained_glass", - BlockKind::NetherBrickSlab => "minecraft:nether_brick_slab", - BlockKind::WhiteWool => "minecraft:white_wool", - BlockKind::SpruceSlab => "minecraft:spruce_slab", - BlockKind::PurpleCandleCake => "minecraft:purple_candle_cake", - BlockKind::OakFence => "minecraft:oak_fence", - BlockKind::Scaffolding => "minecraft:scaffolding", - BlockKind::JungleTrapdoor => "minecraft:jungle_trapdoor", - BlockKind::RedSandstoneWall => "minecraft:red_sandstone_wall", - BlockKind::RedNetherBrickWall => "minecraft:red_nether_brick_wall", - BlockKind::CopperOre => "minecraft:copper_ore", - BlockKind::DarkOakWallSign => "minecraft:dark_oak_wall_sign", - BlockKind::CraftingTable => "minecraft:crafting_table", - BlockKind::StoneStairs => "minecraft:stone_stairs", - BlockKind::PinkBed => "minecraft:pink_bed", - BlockKind::StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", - BlockKind::OakWood => "minecraft:oak_wood", - BlockKind::Sunflower => "minecraft:sunflower", - BlockKind::RedShulkerBox => "minecraft:red_shulker_box", - BlockKind::Bricks => "minecraft:bricks", - BlockKind::BambooSapling => "minecraft:bamboo_sapling", - BlockKind::Pumpkin => "minecraft:pumpkin", - BlockKind::PinkGlazedTerracotta => "minecraft:pink_glazed_terracotta", - BlockKind::GrayTerracotta => "minecraft:gray_terracotta", - BlockKind::GreenConcrete => "minecraft:green_concrete", - BlockKind::WaxedCopperBlock => "minecraft:waxed_copper_block", - BlockKind::PottedDarkOakSapling => "minecraft:potted_dark_oak_sapling", - BlockKind::WaxedWeatheredCutCopperStairs => { - "minecraft:waxed_weathered_cut_copper_stairs" - } - BlockKind::Farmland => "minecraft:farmland", - BlockKind::OrangeConcrete => "minecraft:orange_concrete", - BlockKind::GrayBed => "minecraft:gray_bed", - BlockKind::WhiteBed => "minecraft:white_bed", - BlockKind::PottedLilyOfTheValley => "minecraft:potted_lily_of_the_valley", - BlockKind::OrangeWallBanner => "minecraft:orange_wall_banner", - BlockKind::EndStoneBrickSlab => "minecraft:end_stone_brick_slab", - BlockKind::Observer => "minecraft:observer", - BlockKind::Lodestone => "minecraft:lodestone", - BlockKind::BubbleCoralBlock => "minecraft:bubble_coral_block", - BlockKind::HornCoralBlock => "minecraft:horn_coral_block", - BlockKind::AcaciaSign => "minecraft:acacia_sign", - BlockKind::TrappedChest => "minecraft:trapped_chest", - BlockKind::RedWool => "minecraft:red_wool", - BlockKind::CandleCake => "minecraft:candle_cake", - BlockKind::SugarCane => "minecraft:sugar_cane", - BlockKind::BirchSlab => "minecraft:birch_slab", - BlockKind::PinkStainedGlassPane => "minecraft:pink_stained_glass_pane", - BlockKind::CrimsonFungus => "minecraft:crimson_fungus", - BlockKind::PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", - BlockKind::CyanStainedGlassPane => "minecraft:cyan_stained_glass_pane", - BlockKind::SmoothSandstoneStairs => "minecraft:smooth_sandstone_stairs", - BlockKind::CrimsonDoor => "minecraft:crimson_door", - BlockKind::BrownWallBanner => "minecraft:brown_wall_banner", - BlockKind::CyanGlazedTerracotta => "minecraft:cyan_glazed_terracotta", - BlockKind::WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", - BlockKind::GreenStainedGlassPane => "minecraft:green_stained_glass_pane", - BlockKind::HoneyBlock => "minecraft:honey_block", - BlockKind::PolishedBlackstone => "minecraft:polished_blackstone", - BlockKind::WhiteWallBanner => "minecraft:white_wall_banner", - BlockKind::SeaLantern => "minecraft:sea_lantern", - BlockKind::DeepslateBrickSlab => "minecraft:deepslate_brick_slab", - BlockKind::StoneBrickStairs => "minecraft:stone_brick_stairs", - BlockKind::Mycelium => "minecraft:mycelium", - BlockKind::SpruceFence => "minecraft:spruce_fence", - BlockKind::Ladder => "minecraft:ladder", - BlockKind::GreenShulkerBox => "minecraft:green_shulker_box", - BlockKind::Dirt => "minecraft:dirt", - BlockKind::Cactus => "minecraft:cactus", - BlockKind::Lava => "minecraft:lava", - BlockKind::OakSign => "minecraft:oak_sign", - BlockKind::JungleDoor => "minecraft:jungle_door", - BlockKind::WhiteTerracotta => "minecraft:white_terracotta", - BlockKind::AcaciaDoor => "minecraft:acacia_door", - BlockKind::CobblestoneSlab => "minecraft:cobblestone_slab", - BlockKind::DarkOakDoor => "minecraft:dark_oak_door", - BlockKind::GrayCandle => "minecraft:gray_candle", - BlockKind::PurpurStairs => "minecraft:purpur_stairs", - BlockKind::BlueConcrete => "minecraft:blue_concrete", - BlockKind::LightGrayStainedGlassPane => "minecraft:light_gray_stained_glass_pane", - BlockKind::DarkOakPlanks => "minecraft:dark_oak_planks", - BlockKind::PottedWarpedRoots => "minecraft:potted_warped_roots", - BlockKind::JungleLeaves => "minecraft:jungle_leaves", - BlockKind::DaylightDetector => "minecraft:daylight_detector", - BlockKind::AcaciaSapling => "minecraft:acacia_sapling", - BlockKind::SandstoneWall => "minecraft:sandstone_wall", - BlockKind::BlueCarpet => "minecraft:blue_carpet", - BlockKind::PolishedGraniteStairs => "minecraft:polished_granite_stairs", - BlockKind::DarkOakSapling => "minecraft:dark_oak_sapling", - BlockKind::BrickWall => "minecraft:brick_wall", - BlockKind::AcaciaWood => "minecraft:acacia_wood", - BlockKind::MossCarpet => "minecraft:moss_carpet", - BlockKind::MagentaBed => "minecraft:magenta_bed", - BlockKind::BirchStairs => "minecraft:birch_stairs", - BlockKind::TubeCoralBlock => "minecraft:tube_coral_block", - BlockKind::NetheriteBlock => "minecraft:netherite_block", - BlockKind::WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", - BlockKind::Sand => "minecraft:sand", - BlockKind::Calcite => "minecraft:calcite", - BlockKind::Hopper => "minecraft:hopper", - BlockKind::HornCoral => "minecraft:horn_coral", - BlockKind::DeepslateTiles => "minecraft:deepslate_tiles", - BlockKind::CutRedSandstone => "minecraft:cut_red_sandstone", - BlockKind::MossyCobblestoneWall => "minecraft:mossy_cobblestone_wall", - BlockKind::Lectern => "minecraft:lectern", - BlockKind::PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", - BlockKind::YellowWallBanner => "minecraft:yellow_wall_banner", - BlockKind::CrimsonWallSign => "minecraft:crimson_wall_sign", - BlockKind::PinkConcrete => "minecraft:pink_concrete", - BlockKind::StrippedAcaciaWood => "minecraft:stripped_acacia_wood", - BlockKind::JungleWallSign => "minecraft:jungle_wall_sign", - BlockKind::BrownBanner => "minecraft:brown_banner", - BlockKind::OrangeGlazedTerracotta => "minecraft:orange_glazed_terracotta", - BlockKind::EmeraldBlock => "minecraft:emerald_block", - BlockKind::OxidizedCutCopper => "minecraft:oxidized_cut_copper", - BlockKind::CrimsonHyphae => "minecraft:crimson_hyphae", - BlockKind::YellowCandleCake => "minecraft:yellow_candle_cake", - BlockKind::StructureVoid => "minecraft:structure_void", - BlockKind::WarpedPlanks => "minecraft:warped_planks", - BlockKind::Glowstone => "minecraft:glowstone", - BlockKind::SpruceWood => "minecraft:spruce_wood", - BlockKind::PinkConcretePowder => "minecraft:pink_concrete_powder", - BlockKind::ShulkerBox => "minecraft:shulker_box", - BlockKind::RedSandstoneSlab => "minecraft:red_sandstone_slab", - BlockKind::OrangeStainedGlassPane => "minecraft:orange_stained_glass_pane", - BlockKind::WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", - BlockKind::PottedAzaleaBush => "minecraft:potted_azalea_bush", - BlockKind::AzaleaLeaves => "minecraft:azalea_leaves", - BlockKind::CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", - BlockKind::LightBlueCandle => "minecraft:light_blue_candle", - BlockKind::BrownShulkerBox => "minecraft:brown_shulker_box", - BlockKind::RedNetherBrickStairs => "minecraft:red_nether_brick_stairs", - BlockKind::SmallAmethystBud => "minecraft:small_amethyst_bud", - BlockKind::CrimsonStem => "minecraft:crimson_stem", - BlockKind::BirchFence => "minecraft:birch_fence", - BlockKind::InfestedStone => "minecraft:infested_stone", - BlockKind::DeadTubeCoralFan => "minecraft:dead_tube_coral_fan", - BlockKind::Bell => "minecraft:bell", - BlockKind::PolishedGraniteSlab => "minecraft:polished_granite_slab", - BlockKind::CrimsonSign => "minecraft:crimson_sign", - BlockKind::BirchPlanks => "minecraft:birch_planks", - BlockKind::LightGrayCandle => "minecraft:light_gray_candle", - BlockKind::SporeBlossom => "minecraft:spore_blossom", - BlockKind::PurpleConcretePowder => "minecraft:purple_concrete_powder", - BlockKind::Furnace => "minecraft:furnace", - BlockKind::PolishedAndesiteStairs => "minecraft:polished_andesite_stairs", - BlockKind::RedCandleCake => "minecraft:red_candle_cake", - BlockKind::ChiseledDeepslate => "minecraft:chiseled_deepslate", - BlockKind::QuartzSlab => "minecraft:quartz_slab", - BlockKind::SpruceLeaves => "minecraft:spruce_leaves", - BlockKind::BubbleCoral => "minecraft:bubble_coral", - BlockKind::LightGrayWallBanner => "minecraft:light_gray_wall_banner", - BlockKind::PurpurBlock => "minecraft:purpur_block", - BlockKind::YellowBanner => "minecraft:yellow_banner", - BlockKind::OakSapling => "minecraft:oak_sapling", - BlockKind::AzureBluet => "minecraft:azure_bluet", - BlockKind::MagentaStainedGlassPane => "minecraft:magenta_stained_glass_pane", - BlockKind::Dispenser => "minecraft:dispenser", - BlockKind::GrayStainedGlassPane => "minecraft:gray_stained_glass_pane", - BlockKind::AndesiteWall => "minecraft:andesite_wall", - BlockKind::JungleFenceGate => "minecraft:jungle_fence_gate", - BlockKind::RedNetherBricks => "minecraft:red_nether_bricks", - BlockKind::LightGrayCandleCake => "minecraft:light_gray_candle_cake", - BlockKind::Jukebox => "minecraft:jukebox", - BlockKind::NoteBlock => "minecraft:note_block", - BlockKind::LimeTerracotta => "minecraft:lime_terracotta", - BlockKind::WarpedFence => "minecraft:warped_fence", - BlockKind::GoldOre => "minecraft:gold_ore", - BlockKind::PottedPinkTulip => "minecraft:potted_pink_tulip", - BlockKind::SpruceButton => "minecraft:spruce_button", - BlockKind::BrownCandleCake => "minecraft:brown_candle_cake", - BlockKind::WitherRose => "minecraft:wither_rose", - BlockKind::DiamondBlock => "minecraft:diamond_block", - BlockKind::Wheat => "minecraft:wheat", - BlockKind::GlowLichen => "minecraft:glow_lichen", - BlockKind::Cocoa => "minecraft:cocoa", - BlockKind::OakTrapdoor => "minecraft:oak_trapdoor", - BlockKind::StrippedBirchWood => "minecraft:stripped_birch_wood", - BlockKind::BirchWallSign => "minecraft:birch_wall_sign", - BlockKind::SmoothStoneSlab => "minecraft:smooth_stone_slab", - BlockKind::ExposedCopper => "minecraft:exposed_copper", - BlockKind::Water => "minecraft:water", - BlockKind::Bedrock => "minecraft:bedrock", - BlockKind::PumpkinStem => "minecraft:pumpkin_stem", - BlockKind::Cauldron => "minecraft:cauldron", - BlockKind::PurpleCarpet => "minecraft:purple_carpet", - BlockKind::FletchingTable => "minecraft:fletching_table", - BlockKind::Anvil => "minecraft:anvil", - BlockKind::LilyOfTheValley => "minecraft:lily_of_the_valley", - BlockKind::FloweringAzalea => "minecraft:flowering_azalea", - BlockKind::LimeConcretePowder => "minecraft:lime_concrete_powder", - BlockKind::BlueGlazedTerracotta => "minecraft:blue_glazed_terracotta", - BlockKind::TripwireHook => "minecraft:tripwire_hook", - BlockKind::CyanConcrete => "minecraft:cyan_concrete", - BlockKind::BigDripleafStem => "minecraft:big_dripleaf_stem", - BlockKind::StickyPiston => "minecraft:sticky_piston", - BlockKind::Lever => "minecraft:lever", - BlockKind::WhiteConcrete => "minecraft:white_concrete", - BlockKind::DeadBrainCoralBlock => "minecraft:dead_brain_coral_block", - BlockKind::SmoothQuartz => "minecraft:smooth_quartz", - BlockKind::Torch => "minecraft:torch", - BlockKind::RedstoneWire => "minecraft:redstone_wire", - BlockKind::BirchTrapdoor => "minecraft:birch_trapdoor", - BlockKind::WeepingVinesPlant => "minecraft:weeping_vines_plant", - BlockKind::AcaciaLog => "minecraft:acacia_log", - BlockKind::PlayerHead => "minecraft:player_head", - BlockKind::NetherBrickFence => "minecraft:nether_brick_fence", - BlockKind::DeadHornCoral => "minecraft:dead_horn_coral", - BlockKind::StrippedDarkOakWood => "minecraft:stripped_dark_oak_wood", - BlockKind::PolishedGranite => "minecraft:polished_granite", - BlockKind::StructureBlock => "minecraft:structure_block", - BlockKind::DragonWallHead => "minecraft:dragon_wall_head", - BlockKind::DeadHornCoralBlock => "minecraft:dead_horn_coral_block", - BlockKind::DarkOakSlab => "minecraft:dark_oak_slab", - BlockKind::StrippedCrimsonHyphae => "minecraft:stripped_crimson_hyphae", - BlockKind::LightGrayShulkerBox => "minecraft:light_gray_shulker_box", - BlockKind::EnchantingTable => "minecraft:enchanting_table", - BlockKind::PlayerWallHead => "minecraft:player_wall_head", - BlockKind::PurpleStainedGlass => "minecraft:purple_stained_glass", - BlockKind::HayBlock => "minecraft:hay_block", - BlockKind::Comparator => "minecraft:comparator", - BlockKind::PurpleGlazedTerracotta => "minecraft:purple_glazed_terracotta", - BlockKind::DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", - BlockKind::IronOre => "minecraft:iron_ore", - BlockKind::PurpleWool => "minecraft:purple_wool", - BlockKind::DeepslateTileSlab => "minecraft:deepslate_tile_slab", - BlockKind::ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", - BlockKind::SpruceLog => "minecraft:spruce_log", - BlockKind::JunglePlanks => "minecraft:jungle_planks", - BlockKind::SweetBerryBush => "minecraft:sweet_berry_bush", - BlockKind::PottedPoppy => "minecraft:potted_poppy", - BlockKind::SmithingTable => "minecraft:smithing_table", - BlockKind::StoneSlab => "minecraft:stone_slab", - BlockKind::WetSponge => "minecraft:wet_sponge", - BlockKind::DeadBubbleCoralFan => "minecraft:dead_bubble_coral_fan", - BlockKind::OrangeTerracotta => "minecraft:orange_terracotta", - BlockKind::LightBlueCarpet => "minecraft:light_blue_carpet", - BlockKind::PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", - BlockKind::OrangeTulip => "minecraft:orange_tulip", - } - } - #[doc = "Gets a `BlockKind` by its `namespaced_id`."] - #[inline] - pub fn from_namespaced_id(namespaced_id: &str) -> Option { - match namespaced_id { - "minecraft:cobweb" => Some(BlockKind::Cobweb), - "minecraft:gold_block" => Some(BlockKind::GoldBlock), - "minecraft:light_gray_concrete" => Some(BlockKind::LightGrayConcrete), - "minecraft:birch_leaves" => Some(BlockKind::BirchLeaves), - "minecraft:purple_bed" => Some(BlockKind::PurpleBed), - "minecraft:acacia_button" => Some(BlockKind::AcaciaButton), - "minecraft:red_glazed_terracotta" => Some(BlockKind::RedGlazedTerracotta), - "minecraft:dead_bubble_coral_wall_fan" => Some(BlockKind::DeadBubbleCoralWallFan), - "minecraft:lime_shulker_box" => Some(BlockKind::LimeShulkerBox), - "minecraft:frosted_ice" => Some(BlockKind::FrostedIce), - "minecraft:lava_cauldron" => Some(BlockKind::LavaCauldron), - "minecraft:stripped_spruce_log" => Some(BlockKind::StrippedSpruceLog), - "minecraft:light_blue_concrete" => Some(BlockKind::LightBlueConcrete), - "minecraft:soul_sand" => Some(BlockKind::SoulSand), - "minecraft:nether_portal" => Some(BlockKind::NetherPortal), - "minecraft:potted_crimson_roots" => Some(BlockKind::PottedCrimsonRoots), - "minecraft:dead_tube_coral_wall_fan" => Some(BlockKind::DeadTubeCoralWallFan), - "minecraft:oak_stairs" => Some(BlockKind::OakStairs), - "minecraft:dead_brain_coral_wall_fan" => Some(BlockKind::DeadBrainCoralWallFan), - "minecraft:cracked_nether_bricks" => Some(BlockKind::CrackedNetherBricks), - "minecraft:cobblestone" => Some(BlockKind::Cobblestone), - "minecraft:stripped_birch_log" => Some(BlockKind::StrippedBirchLog), - "minecraft:powder_snow_cauldron" => Some(BlockKind::PowderSnowCauldron), - "minecraft:potted_acacia_sapling" => Some(BlockKind::PottedAcaciaSapling), - "minecraft:green_candle" => Some(BlockKind::GreenCandle), - "minecraft:waxed_oxidized_cut_copper_slab" => { - Some(BlockKind::WaxedOxidizedCutCopperSlab) - } - "minecraft:dark_oak_log" => Some(BlockKind::DarkOakLog), - "minecraft:oak_leaves" => Some(BlockKind::OakLeaves), - "minecraft:smooth_quartz_stairs" => Some(BlockKind::SmoothQuartzStairs), - "minecraft:bee_nest" => Some(BlockKind::BeeNest), - "minecraft:dead_fire_coral" => Some(BlockKind::DeadFireCoral), - "minecraft:waxed_exposed_cut_copper_stairs" => { - Some(BlockKind::WaxedExposedCutCopperStairs) - } - "minecraft:repeating_command_block" => Some(BlockKind::RepeatingCommandBlock), - "minecraft:light_blue_glazed_terracotta" => Some(BlockKind::LightBlueGlazedTerracotta), - "minecraft:ancient_debris" => Some(BlockKind::AncientDebris), - "minecraft:green_stained_glass" => Some(BlockKind::GreenStainedGlass), - "minecraft:purpur_slab" => Some(BlockKind::PurpurSlab), - "minecraft:orange_concrete_powder" => Some(BlockKind::OrangeConcretePowder), - "minecraft:andesite" => Some(BlockKind::Andesite), - "minecraft:red_terracotta" => Some(BlockKind::RedTerracotta), - "minecraft:cave_air" => Some(BlockKind::CaveAir), - "minecraft:end_stone_brick_wall" => Some(BlockKind::EndStoneBrickWall), - "minecraft:red_concrete" => Some(BlockKind::RedConcrete), - "minecraft:honeycomb_block" => Some(BlockKind::HoneycombBlock), - "minecraft:birch_pressure_plate" => Some(BlockKind::BirchPressurePlate), - "minecraft:tall_grass" => Some(BlockKind::TallGrass), - "minecraft:green_wool" => Some(BlockKind::GreenWool), - "minecraft:polished_blackstone_bricks" => Some(BlockKind::PolishedBlackstoneBricks), - "minecraft:waxed_oxidized_cut_copper_stairs" => { - Some(BlockKind::WaxedOxidizedCutCopperStairs) - } - "minecraft:grindstone" => Some(BlockKind::Grindstone), - "minecraft:black_stained_glass_pane" => Some(BlockKind::BlackStainedGlassPane), - "minecraft:gray_shulker_box" => Some(BlockKind::GrayShulkerBox), - "minecraft:potted_fern" => Some(BlockKind::PottedFern), - "minecraft:crimson_button" => Some(BlockKind::CrimsonButton), - "minecraft:stripped_spruce_wood" => Some(BlockKind::StrippedSpruceWood), - "minecraft:glass_pane" => Some(BlockKind::GlassPane), - "minecraft:target" => Some(BlockKind::Target), - "minecraft:jungle_button" => Some(BlockKind::JungleButton), - "minecraft:spruce_fence_gate" => Some(BlockKind::SpruceFenceGate), - "minecraft:light_blue_wool" => Some(BlockKind::LightBlueWool), - "minecraft:cyan_bed" => Some(BlockKind::CyanBed), - "minecraft:warped_wart_block" => Some(BlockKind::WarpedWartBlock), - "minecraft:potted_flowering_azalea_bush" => Some(BlockKind::PottedFloweringAzaleaBush), - "minecraft:mossy_cobblestone" => Some(BlockKind::MossyCobblestone), - "minecraft:polished_blackstone_slab" => Some(BlockKind::PolishedBlackstoneSlab), - "minecraft:tube_coral" => Some(BlockKind::TubeCoral), - "minecraft:chorus_plant" => Some(BlockKind::ChorusPlant), - "minecraft:cyan_wall_banner" => Some(BlockKind::CyanWallBanner), - "minecraft:composter" => Some(BlockKind::Composter), - "minecraft:granite_wall" => Some(BlockKind::GraniteWall), - "minecraft:light" => Some(BlockKind::Light), - "minecraft:bamboo" => Some(BlockKind::Bamboo), - "minecraft:nether_bricks" => Some(BlockKind::NetherBricks), - "minecraft:terracotta" => Some(BlockKind::Terracotta), - "minecraft:granite_slab" => Some(BlockKind::GraniteSlab), - "minecraft:white_stained_glass_pane" => Some(BlockKind::WhiteStainedGlassPane), - "minecraft:red_mushroom" => Some(BlockKind::RedMushroom), - "minecraft:cracked_stone_bricks" => Some(BlockKind::CrackedStoneBricks), - "minecraft:light_blue_concrete_powder" => Some(BlockKind::LightBlueConcretePowder), - "minecraft:cake" => Some(BlockKind::Cake), - "minecraft:potted_orange_tulip" => Some(BlockKind::PottedOrangeTulip), - "minecraft:pink_tulip" => Some(BlockKind::PinkTulip), - "minecraft:stone_pressure_plate" => Some(BlockKind::StonePressurePlate), - "minecraft:stripped_warped_hyphae" => Some(BlockKind::StrippedWarpedHyphae), - "minecraft:magenta_shulker_box" => Some(BlockKind::MagentaShulkerBox), - "minecraft:blackstone_stairs" => Some(BlockKind::BlackstoneStairs), - "minecraft:brain_coral_wall_fan" => Some(BlockKind::BrainCoralWallFan), - "minecraft:deepslate_bricks" => Some(BlockKind::DeepslateBricks), - "minecraft:flowering_azalea_leaves" => Some(BlockKind::FloweringAzaleaLeaves), - "minecraft:cyan_banner" => Some(BlockKind::CyanBanner), - "minecraft:soul_torch" => Some(BlockKind::SoulTorch), - "minecraft:prismarine_wall" => Some(BlockKind::PrismarineWall), - "minecraft:nether_brick_wall" => Some(BlockKind::NetherBrickWall), - "minecraft:lilac" => Some(BlockKind::Lilac), - "minecraft:rail" => Some(BlockKind::Rail), - "minecraft:shroomlight" => Some(BlockKind::Shroomlight), - "minecraft:pink_carpet" => Some(BlockKind::PinkCarpet), - "minecraft:stripped_crimson_stem" => Some(BlockKind::StrippedCrimsonStem), - "minecraft:andesite_slab" => Some(BlockKind::AndesiteSlab), - "minecraft:brown_candle" => Some(BlockKind::BrownCandle), - "minecraft:red_sandstone" => Some(BlockKind::RedSandstone), - "minecraft:raw_gold_block" => Some(BlockKind::RawGoldBlock), - "minecraft:polished_deepslate_wall" => Some(BlockKind::PolishedDeepslateWall), - "minecraft:black_carpet" => Some(BlockKind::BlackCarpet), - "minecraft:infested_stone_bricks" => Some(BlockKind::InfestedStoneBricks), - "minecraft:birch_button" => Some(BlockKind::BirchButton), - "minecraft:light_gray_terracotta" => Some(BlockKind::LightGrayTerracotta), - "minecraft:acacia_leaves" => Some(BlockKind::AcaciaLeaves), - "minecraft:end_stone" => Some(BlockKind::EndStone), - "minecraft:brown_carpet" => Some(BlockKind::BrownCarpet), - "minecraft:crimson_planks" => Some(BlockKind::CrimsonPlanks), - "minecraft:acacia_fence_gate" => Some(BlockKind::AcaciaFenceGate), - "minecraft:detector_rail" => Some(BlockKind::DetectorRail), - "minecraft:warped_pressure_plate" => Some(BlockKind::WarpedPressurePlate), - "minecraft:cut_copper_stairs" => Some(BlockKind::CutCopperStairs), - "minecraft:oxidized_copper" => Some(BlockKind::OxidizedCopper), - "minecraft:light_blue_wall_banner" => Some(BlockKind::LightBlueWallBanner), - "minecraft:oak_log" => Some(BlockKind::OakLog), - "minecraft:lime_candle" => Some(BlockKind::LimeCandle), - "minecraft:crimson_nylium" => Some(BlockKind::CrimsonNylium), - "minecraft:black_stained_glass" => Some(BlockKind::BlackStainedGlass), - "minecraft:exposed_cut_copper" => Some(BlockKind::ExposedCutCopper), - "minecraft:crimson_slab" => Some(BlockKind::CrimsonSlab), - "minecraft:soul_soil" => Some(BlockKind::SoulSoil), - "minecraft:waxed_exposed_copper" => Some(BlockKind::WaxedExposedCopper), - "minecraft:yellow_stained_glass" => Some(BlockKind::YellowStainedGlass), - "minecraft:black_candle" => Some(BlockKind::BlackCandle), - "minecraft:lime_bed" => Some(BlockKind::LimeBed), - "minecraft:dried_kelp_block" => Some(BlockKind::DriedKelpBlock), - "minecraft:oak_planks" => Some(BlockKind::OakPlanks), - "minecraft:gray_banner" => Some(BlockKind::GrayBanner), - "minecraft:pink_shulker_box" => Some(BlockKind::PinkShulkerBox), - "minecraft:chiseled_polished_blackstone" => Some(BlockKind::ChiseledPolishedBlackstone), - "minecraft:red_bed" => Some(BlockKind::RedBed), - "minecraft:acacia_pressure_plate" => Some(BlockKind::AcaciaPressurePlate), - "minecraft:brown_wool" => Some(BlockKind::BrownWool), - "minecraft:light_blue_stained_glass" => Some(BlockKind::LightBlueStainedGlass), - "minecraft:magenta_terracotta" => Some(BlockKind::MagentaTerracotta), - "minecraft:blue_wall_banner" => Some(BlockKind::BlueWallBanner), - "minecraft:orange_candle" => Some(BlockKind::OrangeCandle), - "minecraft:packed_ice" => Some(BlockKind::PackedIce), - "minecraft:oak_pressure_plate" => Some(BlockKind::OakPressurePlate), - "minecraft:ice" => Some(BlockKind::Ice), - "minecraft:red_candle" => Some(BlockKind::RedCandle), - "minecraft:stripped_oak_wood" => Some(BlockKind::StrippedOakWood), - "minecraft:gray_wool" => Some(BlockKind::GrayWool), - "minecraft:polished_diorite_stairs" => Some(BlockKind::PolishedDioriteStairs), - "minecraft:blue_ice" => Some(BlockKind::BlueIce), - "minecraft:yellow_concrete_powder" => Some(BlockKind::YellowConcretePowder), - "minecraft:fire_coral_block" => Some(BlockKind::FireCoralBlock), - "minecraft:stripped_warped_stem" => Some(BlockKind::StrippedWarpedStem), - "minecraft:pink_wall_banner" => Some(BlockKind::PinkWallBanner), - "minecraft:brown_glazed_terracotta" => Some(BlockKind::BrownGlazedTerracotta), - "minecraft:azalea" => Some(BlockKind::Azalea), - "minecraft:polished_basalt" => Some(BlockKind::PolishedBasalt), - "minecraft:white_carpet" => Some(BlockKind::WhiteCarpet), - "minecraft:white_shulker_box" => Some(BlockKind::WhiteShulkerBox), - "minecraft:magenta_glazed_terracotta" => Some(BlockKind::MagentaGlazedTerracotta), - "minecraft:potted_allium" => Some(BlockKind::PottedAllium), - "minecraft:soul_fire" => Some(BlockKind::SoulFire), - "minecraft:magenta_banner" => Some(BlockKind::MagentaBanner), - "minecraft:rose_bush" => Some(BlockKind::RoseBush), - "minecraft:polished_blackstone_stairs" => Some(BlockKind::PolishedBlackstoneStairs), - "minecraft:activator_rail" => Some(BlockKind::ActivatorRail), - "minecraft:soul_lantern" => Some(BlockKind::SoulLantern), - "minecraft:potted_azure_bluet" => Some(BlockKind::PottedAzureBluet), - "minecraft:light_gray_wool" => Some(BlockKind::LightGrayWool), - "minecraft:polished_blackstone_brick_stairs" => { - Some(BlockKind::PolishedBlackstoneBrickStairs) - } - "minecraft:loom" => Some(BlockKind::Loom), - "minecraft:red_sand" => Some(BlockKind::RedSand), - "minecraft:blackstone" => Some(BlockKind::Blackstone), - "minecraft:magenta_concrete_powder" => Some(BlockKind::MagentaConcretePowder), - "minecraft:yellow_candle" => Some(BlockKind::YellowCandle), - "minecraft:oxidized_cut_copper_slab" => Some(BlockKind::OxidizedCutCopperSlab), - "minecraft:dark_oak_leaves" => Some(BlockKind::DarkOakLeaves), - "minecraft:tnt" => Some(BlockKind::Tnt), - "minecraft:amethyst_cluster" => Some(BlockKind::AmethystCluster), - "minecraft:fire_coral" => Some(BlockKind::FireCoral), - "minecraft:beehive" => Some(BlockKind::Beehive), - "minecraft:prismarine_brick_stairs" => Some(BlockKind::PrismarineBrickStairs), - "minecraft:blue_wool" => Some(BlockKind::BlueWool), - "minecraft:glass" => Some(BlockKind::Glass), - "minecraft:light_gray_stained_glass" => Some(BlockKind::LightGrayStainedGlass), - "minecraft:red_tulip" => Some(BlockKind::RedTulip), - "minecraft:black_wall_banner" => Some(BlockKind::BlackWallBanner), - "minecraft:lightning_rod" => Some(BlockKind::LightningRod), - "minecraft:pink_candle" => Some(BlockKind::PinkCandle), - "minecraft:cracked_deepslate_bricks" => Some(BlockKind::CrackedDeepslateBricks), - "minecraft:gray_glazed_terracotta" => Some(BlockKind::GrayGlazedTerracotta), - "minecraft:mossy_cobblestone_stairs" => Some(BlockKind::MossyCobblestoneStairs), - "minecraft:lapis_block" => Some(BlockKind::LapisBlock), - "minecraft:green_candle_cake" => Some(BlockKind::GreenCandleCake), - "minecraft:spruce_planks" => Some(BlockKind::SprucePlanks), - "minecraft:orange_shulker_box" => Some(BlockKind::OrangeShulkerBox), - "minecraft:nether_sprouts" => Some(BlockKind::NetherSprouts), - "minecraft:infested_cracked_stone_bricks" => { - Some(BlockKind::InfestedCrackedStoneBricks) - } - "minecraft:light_gray_carpet" => Some(BlockKind::LightGrayCarpet), - "minecraft:chiseled_sandstone" => Some(BlockKind::ChiseledSandstone), - "minecraft:skeleton_skull" => Some(BlockKind::SkeletonSkull), - "minecraft:powder_snow" => Some(BlockKind::PowderSnow), - "minecraft:vine" => Some(BlockKind::Vine), - "minecraft:fire_coral_fan" => Some(BlockKind::FireCoralFan), - "minecraft:sculk_sensor" => Some(BlockKind::SculkSensor), - "minecraft:potted_crimson_fungus" => Some(BlockKind::PottedCrimsonFungus), - "minecraft:repeater" => Some(BlockKind::Repeater), - "minecraft:potted_bamboo" => Some(BlockKind::PottedBamboo), - "minecraft:red_mushroom_block" => Some(BlockKind::RedMushroomBlock), - "minecraft:birch_log" => Some(BlockKind::BirchLog), - "minecraft:small_dripleaf" => Some(BlockKind::SmallDripleaf), - "minecraft:mossy_stone_brick_wall" => Some(BlockKind::MossyStoneBrickWall), - "minecraft:cave_vines_plant" => Some(BlockKind::CaveVinesPlant), - "minecraft:grass" => Some(BlockKind::Grass), - "minecraft:lime_wall_banner" => Some(BlockKind::LimeWallBanner), - "minecraft:acacia_trapdoor" => Some(BlockKind::AcaciaTrapdoor), - "minecraft:twisting_vines" => Some(BlockKind::TwistingVines), - "minecraft:dragon_head" => Some(BlockKind::DragonHead), - "minecraft:piston_head" => Some(BlockKind::PistonHead), - "minecraft:sandstone" => Some(BlockKind::Sandstone), - "minecraft:purple_banner" => Some(BlockKind::PurpleBanner), - "minecraft:raw_copper_block" => Some(BlockKind::RawCopperBlock), - "minecraft:oak_door" => Some(BlockKind::OakDoor), - "minecraft:orange_carpet" => Some(BlockKind::OrangeCarpet), - "minecraft:oak_slab" => Some(BlockKind::OakSlab), - "minecraft:red_carpet" => Some(BlockKind::RedCarpet), - "minecraft:waxed_exposed_cut_copper_slab" => Some(BlockKind::WaxedExposedCutCopperSlab), - "minecraft:dead_bush" => Some(BlockKind::DeadBush), - "minecraft:orange_banner" => Some(BlockKind::OrangeBanner), - "minecraft:chest" => Some(BlockKind::Chest), - "minecraft:chorus_flower" => Some(BlockKind::ChorusFlower), - "minecraft:polished_andesite" => Some(BlockKind::PolishedAndesite), - "minecraft:stripped_oak_log" => Some(BlockKind::StrippedOakLog), - "minecraft:redstone_ore" => Some(BlockKind::RedstoneOre), - "minecraft:spruce_stairs" => Some(BlockKind::SpruceStairs), - "minecraft:fire" => Some(BlockKind::Fire), - "minecraft:cyan_carpet" => Some(BlockKind::CyanCarpet), - "minecraft:brown_terracotta" => Some(BlockKind::BrownTerracotta), - "minecraft:brown_stained_glass" => Some(BlockKind::BrownStainedGlass), - "minecraft:deepslate_lapis_ore" => Some(BlockKind::DeepslateLapisOre), - "minecraft:quartz_bricks" => Some(BlockKind::QuartzBricks), - "minecraft:blackstone_slab" => Some(BlockKind::BlackstoneSlab), - "minecraft:waxed_oxidized_cut_copper" => Some(BlockKind::WaxedOxidizedCutCopper), - "minecraft:sea_pickle" => Some(BlockKind::SeaPickle), - "minecraft:spruce_sapling" => Some(BlockKind::SpruceSapling), - "minecraft:diorite_stairs" => Some(BlockKind::DioriteStairs), - "minecraft:copper_block" => Some(BlockKind::CopperBlock), - "minecraft:dead_horn_coral_fan" => Some(BlockKind::DeadHornCoralFan), - "minecraft:white_banner" => Some(BlockKind::WhiteBanner), - "minecraft:potted_brown_mushroom" => Some(BlockKind::PottedBrownMushroom), - "minecraft:coal_block" => Some(BlockKind::CoalBlock), - "minecraft:black_shulker_box" => Some(BlockKind::BlackShulkerBox), - "minecraft:cyan_candle_cake" => Some(BlockKind::CyanCandleCake), - "minecraft:redstone_lamp" => Some(BlockKind::RedstoneLamp), - "minecraft:tripwire" => Some(BlockKind::Tripwire), - "minecraft:potted_dead_bush" => Some(BlockKind::PottedDeadBush), - "minecraft:nether_quartz_ore" => Some(BlockKind::NetherQuartzOre), - "minecraft:powered_rail" => Some(BlockKind::PoweredRail), - "minecraft:zombie_head" => Some(BlockKind::ZombieHead), - "minecraft:deepslate_brick_wall" => Some(BlockKind::DeepslateBrickWall), - "minecraft:deepslate_iron_ore" => Some(BlockKind::DeepslateIronOre), - "minecraft:horn_coral_wall_fan" => Some(BlockKind::HornCoralWallFan), - "minecraft:bookshelf" => Some(BlockKind::Bookshelf), - "minecraft:warped_stem" => Some(BlockKind::WarpedStem), - "minecraft:sponge" => Some(BlockKind::Sponge), - "minecraft:melon_stem" => Some(BlockKind::MelonStem), - "minecraft:jungle_sign" => Some(BlockKind::JungleSign), - "minecraft:large_amethyst_bud" => Some(BlockKind::LargeAmethystBud), - "minecraft:cyan_shulker_box" => Some(BlockKind::CyanShulkerBox), - "minecraft:purple_terracotta" => Some(BlockKind::PurpleTerracotta), - "minecraft:cut_copper_slab" => Some(BlockKind::CutCopperSlab), - "minecraft:iron_door" => Some(BlockKind::IronDoor), - "minecraft:stripped_jungle_wood" => Some(BlockKind::StrippedJungleWood), - "minecraft:gray_concrete" => Some(BlockKind::GrayConcrete), - "minecraft:polished_deepslate" => Some(BlockKind::PolishedDeepslate), - "minecraft:lime_candle_cake" => Some(BlockKind::LimeCandleCake), - "minecraft:creeper_head" => Some(BlockKind::CreeperHead), - "minecraft:deepslate_diamond_ore" => Some(BlockKind::DeepslateDiamondOre), - "minecraft:quartz_stairs" => Some(BlockKind::QuartzStairs), - "minecraft:lime_carpet" => Some(BlockKind::LimeCarpet), - "minecraft:smooth_sandstone_slab" => Some(BlockKind::SmoothSandstoneSlab), - "minecraft:dead_brain_coral_fan" => Some(BlockKind::DeadBrainCoralFan), - "minecraft:chipped_anvil" => Some(BlockKind::ChippedAnvil), - "minecraft:potted_oxeye_daisy" => Some(BlockKind::PottedOxeyeDaisy), - "minecraft:nether_gold_ore" => Some(BlockKind::NetherGoldOre), - "minecraft:brick_slab" => Some(BlockKind::BrickSlab), - "minecraft:polished_blackstone_button" => Some(BlockKind::PolishedBlackstoneButton), - "minecraft:attached_melon_stem" => Some(BlockKind::AttachedMelonStem), - "minecraft:big_dripleaf" => Some(BlockKind::BigDripleaf), - "minecraft:potted_cactus" => Some(BlockKind::PottedCactus), - "minecraft:iron_trapdoor" => Some(BlockKind::IronTrapdoor), - "minecraft:jack_o_lantern" => Some(BlockKind::JackOLantern), - "minecraft:brown_stained_glass_pane" => Some(BlockKind::BrownStainedGlassPane), - "minecraft:cut_sandstone_slab" => Some(BlockKind::CutSandstoneSlab), - "minecraft:potted_red_mushroom" => Some(BlockKind::PottedRedMushroom), - "minecraft:waxed_cut_copper_slab" => Some(BlockKind::WaxedCutCopperSlab), - "minecraft:grass_block" => Some(BlockKind::GrassBlock), - "minecraft:deepslate" => Some(BlockKind::Deepslate), - "minecraft:birch_sign" => Some(BlockKind::BirchSign), - "minecraft:dark_prismarine_stairs" => Some(BlockKind::DarkPrismarineStairs), - "minecraft:lime_concrete" => Some(BlockKind::LimeConcrete), - "minecraft:oak_wall_sign" => Some(BlockKind::OakWallSign), - "minecraft:void_air" => Some(BlockKind::VoidAir), - "minecraft:wither_skeleton_skull" => Some(BlockKind::WitherSkeletonSkull), - "minecraft:diorite_wall" => Some(BlockKind::DioriteWall), - "minecraft:warped_fungus" => Some(BlockKind::WarpedFungus), - "minecraft:weeping_vines" => Some(BlockKind::WeepingVines), - "minecraft:andesite_stairs" => Some(BlockKind::AndesiteStairs), - "minecraft:infested_deepslate" => Some(BlockKind::InfestedDeepslate), - "minecraft:chiseled_stone_bricks" => Some(BlockKind::ChiseledStoneBricks), - "minecraft:yellow_terracotta" => Some(BlockKind::YellowTerracotta), - "minecraft:light_blue_stained_glass_pane" => Some(BlockKind::LightBlueStainedGlassPane), - "minecraft:cobblestone_wall" => Some(BlockKind::CobblestoneWall), - "minecraft:attached_pumpkin_stem" => Some(BlockKind::AttachedPumpkinStem), - "minecraft:lily_pad" => Some(BlockKind::LilyPad), - "minecraft:fern" => Some(BlockKind::Fern), - "minecraft:raw_iron_block" => Some(BlockKind::RawIronBlock), - "minecraft:stone_brick_slab" => Some(BlockKind::StoneBrickSlab), - "minecraft:warped_nylium" => Some(BlockKind::WarpedNylium), - "minecraft:jungle_stairs" => Some(BlockKind::JungleStairs), - "minecraft:yellow_glazed_terracotta" => Some(BlockKind::YellowGlazedTerracotta), - "minecraft:red_concrete_powder" => Some(BlockKind::RedConcretePowder), - "minecraft:lime_banner" => Some(BlockKind::LimeBanner), - "minecraft:diorite" => Some(BlockKind::Diorite), - "minecraft:light_blue_terracotta" => Some(BlockKind::LightBlueTerracotta), - "minecraft:blue_shulker_box" => Some(BlockKind::BlueShulkerBox), - "minecraft:potted_birch_sapling" => Some(BlockKind::PottedBirchSapling), - "minecraft:prismarine_brick_slab" => Some(BlockKind::PrismarineBrickSlab), - "minecraft:black_bed" => Some(BlockKind::BlackBed), - "minecraft:warped_hyphae" => Some(BlockKind::WarpedHyphae), - "minecraft:end_stone_brick_stairs" => Some(BlockKind::EndStoneBrickStairs), - "minecraft:dandelion" => Some(BlockKind::Dandelion), - "minecraft:campfire" => Some(BlockKind::Campfire), - "minecraft:barrier" => Some(BlockKind::Barrier), - "minecraft:gilded_blackstone" => Some(BlockKind::GildedBlackstone), - "minecraft:lime_glazed_terracotta" => Some(BlockKind::LimeGlazedTerracotta), - "minecraft:acacia_wall_sign" => Some(BlockKind::AcaciaWallSign), - "minecraft:chain_command_block" => Some(BlockKind::ChainCommandBlock), - "minecraft:cracked_polished_blackstone_bricks" => { - Some(BlockKind::CrackedPolishedBlackstoneBricks) - } - "minecraft:tube_coral_fan" => Some(BlockKind::TubeCoralFan), - "minecraft:oak_fence_gate" => Some(BlockKind::OakFenceGate), - "minecraft:dark_oak_stairs" => Some(BlockKind::DarkOakStairs), - "minecraft:dark_prismarine_slab" => Some(BlockKind::DarkPrismarineSlab), - "minecraft:potted_warped_fungus" => Some(BlockKind::PottedWarpedFungus), - "minecraft:magenta_wall_banner" => Some(BlockKind::MagentaWallBanner), - "minecraft:orange_wool" => Some(BlockKind::OrangeWool), - "minecraft:jungle_pressure_plate" => Some(BlockKind::JunglePressurePlate), - "minecraft:beacon" => Some(BlockKind::Beacon), - "minecraft:allium" => Some(BlockKind::Allium), - "minecraft:basalt" => Some(BlockKind::Basalt), - "minecraft:black_wool" => Some(BlockKind::BlackWool), - "minecraft:damaged_anvil" => Some(BlockKind::DamagedAnvil), - "minecraft:acacia_slab" => Some(BlockKind::AcaciaSlab), - "minecraft:wither_skeleton_wall_skull" => Some(BlockKind::WitherSkeletonWallSkull), - "minecraft:green_terracotta" => Some(BlockKind::GreenTerracotta), - "minecraft:birch_sapling" => Some(BlockKind::BirchSapling), - "minecraft:dirt_path" => Some(BlockKind::DirtPath), - "minecraft:conduit" => Some(BlockKind::Conduit), - "minecraft:blue_candle_cake" => Some(BlockKind::BlueCandleCake), - "minecraft:rooted_dirt" => Some(BlockKind::RootedDirt), - "minecraft:cyan_terracotta" => Some(BlockKind::CyanTerracotta), - "minecraft:red_sandstone_stairs" => Some(BlockKind::RedSandstoneStairs), - "minecraft:light_blue_candle_cake" => Some(BlockKind::LightBlueCandleCake), - "minecraft:weathered_copper" => Some(BlockKind::WeatheredCopper), - "minecraft:cobblestone_stairs" => Some(BlockKind::CobblestoneStairs), - "minecraft:spruce_wall_sign" => Some(BlockKind::SpruceWallSign), - "minecraft:potted_spruce_sapling" => Some(BlockKind::PottedSpruceSapling), - "minecraft:potted_dandelion" => Some(BlockKind::PottedDandelion), - "minecraft:spruce_pressure_plate" => Some(BlockKind::SprucePressurePlate), - "minecraft:jigsaw" => Some(BlockKind::Jigsaw), - "minecraft:kelp" => Some(BlockKind::Kelp), - "minecraft:dead_bubble_coral_block" => Some(BlockKind::DeadBubbleCoralBlock), - "minecraft:dead_brain_coral" => Some(BlockKind::DeadBrainCoral), - "minecraft:gray_wall_banner" => Some(BlockKind::GrayWallBanner), - "minecraft:prismarine_stairs" => Some(BlockKind::PrismarineStairs), - "minecraft:green_concrete_powder" => Some(BlockKind::GreenConcretePowder), - "minecraft:weathered_cut_copper_stairs" => Some(BlockKind::WeatheredCutCopperStairs), - "minecraft:piston" => Some(BlockKind::Piston), - "minecraft:chiseled_quartz_block" => Some(BlockKind::ChiseledQuartzBlock), - "minecraft:peony" => Some(BlockKind::Peony), - "minecraft:crimson_roots" => Some(BlockKind::CrimsonRoots), - "minecraft:spruce_sign" => Some(BlockKind::SpruceSign), - "minecraft:dead_fire_coral_wall_fan" => Some(BlockKind::DeadFireCoralWallFan), - "minecraft:magenta_stained_glass" => Some(BlockKind::MagentaStainedGlass), - "minecraft:oxeye_daisy" => Some(BlockKind::OxeyeDaisy), - "minecraft:magenta_concrete" => Some(BlockKind::MagentaConcrete), - "minecraft:mushroom_stem" => Some(BlockKind::MushroomStem), - "minecraft:water_cauldron" => Some(BlockKind::WaterCauldron), - "minecraft:black_concrete" => Some(BlockKind::BlackConcrete), - "minecraft:magma_block" => Some(BlockKind::MagmaBlock), - "minecraft:horn_coral_fan" => Some(BlockKind::HornCoralFan), - "minecraft:blue_stained_glass_pane" => Some(BlockKind::BlueStainedGlassPane), - "minecraft:crimson_stairs" => Some(BlockKind::CrimsonStairs), - "minecraft:dragon_egg" => Some(BlockKind::DragonEgg), - "minecraft:polished_blackstone_brick_slab" => { - Some(BlockKind::PolishedBlackstoneBrickSlab) - } - "minecraft:purpur_pillar" => Some(BlockKind::PurpurPillar), - "minecraft:deepslate_gold_ore" => Some(BlockKind::DeepslateGoldOre), - "minecraft:stripped_acacia_log" => Some(BlockKind::StrippedAcaciaLog), - "minecraft:lime_stained_glass_pane" => Some(BlockKind::LimeStainedGlassPane), - "minecraft:birch_wood" => Some(BlockKind::BirchWood), - "minecraft:blue_candle" => Some(BlockKind::BlueCandle), - "minecraft:iron_bars" => Some(BlockKind::IronBars), - "minecraft:orange_candle_cake" => Some(BlockKind::OrangeCandleCake), - "minecraft:stone" => Some(BlockKind::Stone), - "minecraft:dark_oak_button" => Some(BlockKind::DarkOakButton), - "minecraft:nether_brick_stairs" => Some(BlockKind::NetherBrickStairs), - "minecraft:jungle_wood" => Some(BlockKind::JungleWood), - "minecraft:cobbled_deepslate_wall" => Some(BlockKind::CobbledDeepslateWall), - "minecraft:bone_block" => Some(BlockKind::BoneBlock), - "minecraft:moss_block" => Some(BlockKind::MossBlock), - "minecraft:brown_concrete_powder" => Some(BlockKind::BrownConcretePowder), - "minecraft:creeper_wall_head" => Some(BlockKind::CreeperWallHead), - "minecraft:lantern" => Some(BlockKind::Lantern), - "minecraft:blue_stained_glass" => Some(BlockKind::BlueStainedGlass), - "minecraft:warped_stairs" => Some(BlockKind::WarpedStairs), - "minecraft:brewing_stand" => Some(BlockKind::BrewingStand), - "minecraft:waxed_cut_copper_stairs" => Some(BlockKind::WaxedCutCopperStairs), - "minecraft:obsidian" => Some(BlockKind::Obsidian), - "minecraft:chain" => Some(BlockKind::Chain), - "minecraft:pink_wool" => Some(BlockKind::PinkWool), - "minecraft:mossy_cobblestone_slab" => Some(BlockKind::MossyCobblestoneSlab), - "minecraft:end_portal" => Some(BlockKind::EndPortal), - "minecraft:prismarine_bricks" => Some(BlockKind::PrismarineBricks), - "minecraft:brown_mushroom_block" => Some(BlockKind::BrownMushroomBlock), - "minecraft:deepslate_redstone_ore" => Some(BlockKind::DeepslateRedstoneOre), - "minecraft:black_glazed_terracotta" => Some(BlockKind::BlackGlazedTerracotta), - "minecraft:light_blue_banner" => Some(BlockKind::LightBlueBanner), - "minecraft:oxidized_cut_copper_stairs" => Some(BlockKind::OxidizedCutCopperStairs), - "minecraft:smooth_sandstone" => Some(BlockKind::SmoothSandstone), - "minecraft:purple_shulker_box" => Some(BlockKind::PurpleShulkerBox), - "minecraft:soul_campfire" => Some(BlockKind::SoulCampfire), - "minecraft:skeleton_wall_skull" => Some(BlockKind::SkeletonWallSkull), - "minecraft:deepslate_copper_ore" => Some(BlockKind::DeepslateCopperOre), - "minecraft:red_banner" => Some(BlockKind::RedBanner), - "minecraft:smoker" => Some(BlockKind::Smoker), - "minecraft:stone_button" => Some(BlockKind::StoneButton), - "minecraft:podzol" => Some(BlockKind::Podzol), - "minecraft:purple_stained_glass_pane" => Some(BlockKind::PurpleStainedGlassPane), - "minecraft:gray_carpet" => Some(BlockKind::GrayCarpet), - "minecraft:warped_sign" => Some(BlockKind::WarpedSign), - "minecraft:magenta_candle" => Some(BlockKind::MagentaCandle), - "minecraft:orange_bed" => Some(BlockKind::OrangeBed), - "minecraft:warped_door" => Some(BlockKind::WarpedDoor), - "minecraft:yellow_bed" => Some(BlockKind::YellowBed), - "minecraft:blackstone_wall" => Some(BlockKind::BlackstoneWall), - "minecraft:carrots" => Some(BlockKind::Carrots), - "minecraft:command_block" => Some(BlockKind::CommandBlock), - "minecraft:clay" => Some(BlockKind::Clay), - "minecraft:purple_candle" => Some(BlockKind::PurpleCandle), - "minecraft:warped_fence_gate" => Some(BlockKind::WarpedFenceGate), - "minecraft:snow_block" => Some(BlockKind::SnowBlock), - "minecraft:seagrass" => Some(BlockKind::Seagrass), - "minecraft:tuff" => Some(BlockKind::Tuff), - "minecraft:redstone_torch" => Some(BlockKind::RedstoneTorch), - "minecraft:polished_deepslate_slab" => Some(BlockKind::PolishedDeepslateSlab), - "minecraft:warped_button" => Some(BlockKind::WarpedButton), - "minecraft:purple_concrete" => Some(BlockKind::PurpleConcrete), - "minecraft:lime_wool" => Some(BlockKind::LimeWool), - "minecraft:petrified_oak_slab" => Some(BlockKind::PetrifiedOakSlab), - "minecraft:iron_block" => Some(BlockKind::IronBlock), - "minecraft:yellow_concrete" => Some(BlockKind::YellowConcrete), - "minecraft:polished_blackstone_pressure_plate" => { - Some(BlockKind::PolishedBlackstonePressurePlate) - } - "minecraft:black_concrete_powder" => Some(BlockKind::BlackConcretePowder), - "minecraft:smooth_red_sandstone" => Some(BlockKind::SmoothRedSandstone), - "minecraft:end_rod" => Some(BlockKind::EndRod), - "minecraft:black_banner" => Some(BlockKind::BlackBanner), - "minecraft:dropper" => Some(BlockKind::Dropper), - "minecraft:jungle_sapling" => Some(BlockKind::JungleSapling), - "minecraft:moving_piston" => Some(BlockKind::MovingPiston), - "minecraft:polished_diorite" => Some(BlockKind::PolishedDiorite), - "minecraft:nether_wart_block" => Some(BlockKind::NetherWartBlock), - "minecraft:potatoes" => Some(BlockKind::Potatoes), - "minecraft:dark_oak_fence" => Some(BlockKind::DarkOakFence), - "minecraft:stone_bricks" => Some(BlockKind::StoneBricks), - "minecraft:light_gray_bed" => Some(BlockKind::LightGrayBed), - "minecraft:dark_oak_fence_gate" => Some(BlockKind::DarkOakFenceGate), - "minecraft:slime_block" => Some(BlockKind::SlimeBlock), - "minecraft:beetroots" => Some(BlockKind::Beetroots), - "minecraft:cyan_wool" => Some(BlockKind::CyanWool), - "minecraft:potted_red_tulip" => Some(BlockKind::PottedRedTulip), - "minecraft:candle" => Some(BlockKind::Candle), - "minecraft:netherrack" => Some(BlockKind::Netherrack), - "minecraft:prismarine" => Some(BlockKind::Prismarine), - "minecraft:blue_orchid" => Some(BlockKind::BlueOrchid), - "minecraft:spruce_trapdoor" => Some(BlockKind::SpruceTrapdoor), - "minecraft:potted_blue_orchid" => Some(BlockKind::PottedBlueOrchid), - "minecraft:polished_andesite_slab" => Some(BlockKind::PolishedAndesiteSlab), - "minecraft:dead_horn_coral_wall_fan" => Some(BlockKind::DeadHornCoralWallFan), - "minecraft:purple_wall_banner" => Some(BlockKind::PurpleWallBanner), - "minecraft:oak_button" => Some(BlockKind::OakButton), - "minecraft:kelp_plant" => Some(BlockKind::KelpPlant), - "minecraft:brain_coral" => Some(BlockKind::BrainCoral), - "minecraft:polished_diorite_slab" => Some(BlockKind::PolishedDioriteSlab), - "minecraft:cobbled_deepslate" => Some(BlockKind::CobbledDeepslate), - "minecraft:green_carpet" => Some(BlockKind::GreenCarpet), - "minecraft:red_wall_banner" => Some(BlockKind::RedWallBanner), - "minecraft:acacia_stairs" => Some(BlockKind::AcaciaStairs), - "minecraft:emerald_ore" => Some(BlockKind::EmeraldOre), - "minecraft:diamond_ore" => Some(BlockKind::DiamondOre), - "minecraft:stripped_jungle_log" => Some(BlockKind::StrippedJungleLog), - "minecraft:potted_jungle_sapling" => Some(BlockKind::PottedJungleSapling), - "minecraft:birch_door" => Some(BlockKind::BirchDoor), - "minecraft:smooth_red_sandstone_stairs" => Some(BlockKind::SmoothRedSandstoneStairs), - "minecraft:magenta_carpet" => Some(BlockKind::MagentaCarpet), - "minecraft:spruce_door" => Some(BlockKind::SpruceDoor), - "minecraft:quartz_block" => Some(BlockKind::QuartzBlock), - "minecraft:dark_oak_wood" => Some(BlockKind::DarkOakWood), - "minecraft:dead_bubble_coral" => Some(BlockKind::DeadBubbleCoral), - "minecraft:crimson_pressure_plate" => Some(BlockKind::CrimsonPressurePlate), - "minecraft:mossy_stone_brick_slab" => Some(BlockKind::MossyStoneBrickSlab), - "minecraft:air" => Some(BlockKind::Air), - "minecraft:end_stone_bricks" => Some(BlockKind::EndStoneBricks), - "minecraft:jungle_log" => Some(BlockKind::JungleLog), - "minecraft:potted_white_tulip" => Some(BlockKind::PottedWhiteTulip), - "minecraft:diorite_slab" => Some(BlockKind::DioriteSlab), - "minecraft:infested_mossy_stone_bricks" => Some(BlockKind::InfestedMossyStoneBricks), - "minecraft:gray_stained_glass" => Some(BlockKind::GrayStainedGlass), - "minecraft:potted_oak_sapling" => Some(BlockKind::PottedOakSapling), - "minecraft:smooth_quartz_slab" => Some(BlockKind::SmoothQuartzSlab), - "minecraft:white_candle_cake" => Some(BlockKind::WhiteCandleCake), - "minecraft:cave_vines" => Some(BlockKind::CaveVines), - "minecraft:yellow_carpet" => Some(BlockKind::YellowCarpet), - "minecraft:brick_stairs" => Some(BlockKind::BrickStairs), - "minecraft:prismarine_slab" => Some(BlockKind::PrismarineSlab), - "minecraft:warped_roots" => Some(BlockKind::WarpedRoots), - "minecraft:flower_pot" => Some(BlockKind::FlowerPot), - "minecraft:birch_fence_gate" => Some(BlockKind::BirchFenceGate), - "minecraft:deepslate_emerald_ore" => Some(BlockKind::DeepslateEmeraldOre), - "minecraft:exposed_cut_copper_stairs" => Some(BlockKind::ExposedCutCopperStairs), - "minecraft:wall_torch" => Some(BlockKind::WallTorch), - "minecraft:bubble_column" => Some(BlockKind::BubbleColumn), - "minecraft:cyan_candle" => Some(BlockKind::CyanCandle), - "minecraft:cut_copper" => Some(BlockKind::CutCopper), - "minecraft:dead_fire_coral_block" => Some(BlockKind::DeadFireCoralBlock), - "minecraft:blue_terracotta" => Some(BlockKind::BlueTerracotta), - "minecraft:ender_chest" => Some(BlockKind::EnderChest), - "minecraft:yellow_shulker_box" => Some(BlockKind::YellowShulkerBox), - "minecraft:coarse_dirt" => Some(BlockKind::CoarseDirt), - "minecraft:black_candle_cake" => Some(BlockKind::BlackCandleCake), - "minecraft:hanging_roots" => Some(BlockKind::HangingRoots), - "minecraft:green_wall_banner" => Some(BlockKind::GreenWallBanner), - "minecraft:smooth_stone" => Some(BlockKind::SmoothStone), - "minecraft:jungle_fence" => Some(BlockKind::JungleFence), - "minecraft:deepslate_tile_wall" => Some(BlockKind::DeepslateTileWall), - "minecraft:pink_stained_glass" => Some(BlockKind::PinkStainedGlass), - "minecraft:bubble_coral_wall_fan" => Some(BlockKind::BubbleCoralWallFan), - "minecraft:white_stained_glass" => Some(BlockKind::WhiteStainedGlass), - "minecraft:gray_concrete_powder" => Some(BlockKind::GrayConcretePowder), - "minecraft:dark_oak_pressure_plate" => Some(BlockKind::DarkOakPressurePlate), - "minecraft:brown_mushroom" => Some(BlockKind::BrownMushroom), - "minecraft:spawner" => Some(BlockKind::Spawner), - "minecraft:green_glazed_terracotta" => Some(BlockKind::GreenGlazedTerracotta), - "minecraft:brain_coral_block" => Some(BlockKind::BrainCoralBlock), - "minecraft:dead_tube_coral" => Some(BlockKind::DeadTubeCoral), - "minecraft:brown_concrete" => Some(BlockKind::BrownConcrete), - "minecraft:gravel" => Some(BlockKind::Gravel), - "minecraft:twisting_vines_plant" => Some(BlockKind::TwistingVinesPlant), - "minecraft:medium_amethyst_bud" => Some(BlockKind::MediumAmethystBud), - "minecraft:cobbled_deepslate_stairs" => Some(BlockKind::CobbledDeepslateStairs), - "minecraft:large_fern" => Some(BlockKind::LargeFern), - "minecraft:green_banner" => Some(BlockKind::GreenBanner), - "minecraft:light_weighted_pressure_plate" => { - Some(BlockKind::LightWeightedPressurePlate) - } - "minecraft:yellow_wool" => Some(BlockKind::YellowWool), - "minecraft:crying_obsidian" => Some(BlockKind::CryingObsidian), - "minecraft:waxed_cut_copper" => Some(BlockKind::WaxedCutCopper), - "minecraft:barrel" => Some(BlockKind::Barrel), - "minecraft:potted_cornflower" => Some(BlockKind::PottedCornflower), - "minecraft:pink_candle_cake" => Some(BlockKind::PinkCandleCake), - "minecraft:blue_banner" => Some(BlockKind::BlueBanner), - "minecraft:dark_oak_sign" => Some(BlockKind::DarkOakSign), - "minecraft:granite" => Some(BlockKind::Granite), - "minecraft:sandstone_stairs" => Some(BlockKind::SandstoneStairs), - "minecraft:chiseled_red_sandstone" => Some(BlockKind::ChiseledRedSandstone), - "minecraft:warped_wall_sign" => Some(BlockKind::WarpedWallSign), - "minecraft:tinted_glass" => Some(BlockKind::TintedGlass), - "minecraft:smooth_basalt" => Some(BlockKind::SmoothBasalt), - "minecraft:magenta_candle_cake" => Some(BlockKind::MagentaCandleCake), - "minecraft:white_tulip" => Some(BlockKind::WhiteTulip), - "minecraft:white_concrete_powder" => Some(BlockKind::WhiteConcretePowder), - "minecraft:budding_amethyst" => Some(BlockKind::BuddingAmethyst), - "minecraft:white_glazed_terracotta" => Some(BlockKind::WhiteGlazedTerracotta), - "minecraft:potted_wither_rose" => Some(BlockKind::PottedWitherRose), - "minecraft:gray_candle_cake" => Some(BlockKind::GrayCandleCake), - "minecraft:magenta_wool" => Some(BlockKind::MagentaWool), - "minecraft:pink_terracotta" => Some(BlockKind::PinkTerracotta), - "minecraft:warped_slab" => Some(BlockKind::WarpedSlab), - "minecraft:crimson_fence" => Some(BlockKind::CrimsonFence), - "minecraft:tall_seagrass" => Some(BlockKind::TallSeagrass), - "minecraft:deepslate_coal_ore" => Some(BlockKind::DeepslateCoalOre), - "minecraft:warped_trapdoor" => Some(BlockKind::WarpedTrapdoor), - "minecraft:light_blue_shulker_box" => Some(BlockKind::LightBlueShulkerBox), - "minecraft:brown_bed" => Some(BlockKind::BrownBed), - "minecraft:cyan_stained_glass" => Some(BlockKind::CyanStainedGlass), - "minecraft:red_stained_glass" => Some(BlockKind::RedStainedGlass), - "minecraft:blast_furnace" => Some(BlockKind::BlastFurnace), - "minecraft:light_blue_bed" => Some(BlockKind::LightBlueBed), - "minecraft:dead_tube_coral_block" => Some(BlockKind::DeadTubeCoralBlock), - "minecraft:green_bed" => Some(BlockKind::GreenBed), - "minecraft:mossy_stone_bricks" => Some(BlockKind::MossyStoneBricks), - "minecraft:weathered_cut_copper_slab" => Some(BlockKind::WeatheredCutCopperSlab), - "minecraft:smooth_red_sandstone_slab" => Some(BlockKind::SmoothRedSandstoneSlab), - "minecraft:cobbled_deepslate_slab" => Some(BlockKind::CobbledDeepslateSlab), - "minecraft:melon" => Some(BlockKind::Melon), - "minecraft:turtle_egg" => Some(BlockKind::TurtleEgg), - "minecraft:acacia_planks" => Some(BlockKind::AcaciaPlanks), - "minecraft:stone_brick_wall" => Some(BlockKind::StoneBrickWall), - "minecraft:nether_wart" => Some(BlockKind::NetherWart), - "minecraft:waxed_exposed_cut_copper" => Some(BlockKind::WaxedExposedCutCopper), - "minecraft:jungle_slab" => Some(BlockKind::JungleSlab), - "minecraft:yellow_stained_glass_pane" => Some(BlockKind::YellowStainedGlassPane), - "minecraft:quartz_pillar" => Some(BlockKind::QuartzPillar), - "minecraft:end_portal_frame" => Some(BlockKind::EndPortalFrame), - "minecraft:end_gateway" => Some(BlockKind::EndGateway), - "minecraft:crimson_trapdoor" => Some(BlockKind::CrimsonTrapdoor), - "minecraft:pointed_dripstone" => Some(BlockKind::PointedDripstone), - "minecraft:waxed_weathered_cut_copper" => Some(BlockKind::WaxedWeatheredCutCopper), - "minecraft:sandstone_slab" => Some(BlockKind::SandstoneSlab), - "minecraft:cut_sandstone" => Some(BlockKind::CutSandstone), - "minecraft:granite_stairs" => Some(BlockKind::GraniteStairs), - "minecraft:white_candle" => Some(BlockKind::WhiteCandle), - "minecraft:coal_ore" => Some(BlockKind::CoalOre), - "minecraft:carved_pumpkin" => Some(BlockKind::CarvedPumpkin), - "minecraft:black_terracotta" => Some(BlockKind::BlackTerracotta), - "minecraft:crimson_fence_gate" => Some(BlockKind::CrimsonFenceGate), - "minecraft:dripstone_block" => Some(BlockKind::DripstoneBlock), - "minecraft:infested_chiseled_stone_bricks" => { - Some(BlockKind::InfestedChiseledStoneBricks) - } - "minecraft:poppy" => Some(BlockKind::Poppy), - "minecraft:brain_coral_fan" => Some(BlockKind::BrainCoralFan), - "minecraft:soul_wall_torch" => Some(BlockKind::SoulWallTorch), - "minecraft:redstone_block" => Some(BlockKind::RedstoneBlock), - "minecraft:orange_stained_glass" => Some(BlockKind::OrangeStainedGlass), - "minecraft:cartography_table" => Some(BlockKind::CartographyTable), - "minecraft:respawn_anchor" => Some(BlockKind::RespawnAnchor), - "minecraft:red_nether_brick_slab" => Some(BlockKind::RedNetherBrickSlab), - "minecraft:acacia_fence" => Some(BlockKind::AcaciaFence), - "minecraft:snow" => Some(BlockKind::Snow), - "minecraft:light_gray_concrete_powder" => Some(BlockKind::LightGrayConcretePowder), - "minecraft:infested_cobblestone" => Some(BlockKind::InfestedCobblestone), - "minecraft:tube_coral_wall_fan" => Some(BlockKind::TubeCoralWallFan), - "minecraft:mossy_stone_brick_stairs" => Some(BlockKind::MossyStoneBrickStairs), - "minecraft:blue_concrete_powder" => Some(BlockKind::BlueConcretePowder), - "minecraft:deepslate_tile_stairs" => Some(BlockKind::DeepslateTileStairs), - "minecraft:heavy_weighted_pressure_plate" => { - Some(BlockKind::HeavyWeightedPressurePlate) - } - "minecraft:dark_prismarine" => Some(BlockKind::DarkPrismarine), - "minecraft:dead_fire_coral_fan" => Some(BlockKind::DeadFireCoralFan), - "minecraft:pink_banner" => Some(BlockKind::PinkBanner), - "minecraft:redstone_wall_torch" => Some(BlockKind::RedstoneWallTorch), - "minecraft:weathered_cut_copper" => Some(BlockKind::WeatheredCutCopper), - "minecraft:light_gray_banner" => Some(BlockKind::LightGrayBanner), - "minecraft:zombie_wall_head" => Some(BlockKind::ZombieWallHead), - "minecraft:stonecutter" => Some(BlockKind::Stonecutter), - "minecraft:cyan_concrete_powder" => Some(BlockKind::CyanConcretePowder), - "minecraft:exposed_cut_copper_slab" => Some(BlockKind::ExposedCutCopperSlab), - "minecraft:amethyst_block" => Some(BlockKind::AmethystBlock), - "minecraft:bubble_coral_fan" => Some(BlockKind::BubbleCoralFan), - "minecraft:dark_oak_trapdoor" => Some(BlockKind::DarkOakTrapdoor), - "minecraft:cut_red_sandstone_slab" => Some(BlockKind::CutRedSandstoneSlab), - "minecraft:light_gray_glazed_terracotta" => Some(BlockKind::LightGrayGlazedTerracotta), - "minecraft:cornflower" => Some(BlockKind::Cornflower), - "minecraft:fire_coral_wall_fan" => Some(BlockKind::FireCoralWallFan), - "minecraft:lapis_ore" => Some(BlockKind::LapisOre), - "minecraft:blue_bed" => Some(BlockKind::BlueBed), - "minecraft:red_stained_glass_pane" => Some(BlockKind::RedStainedGlassPane), - "minecraft:lime_stained_glass" => Some(BlockKind::LimeStainedGlass), - "minecraft:nether_brick_slab" => Some(BlockKind::NetherBrickSlab), - "minecraft:white_wool" => Some(BlockKind::WhiteWool), - "minecraft:spruce_slab" => Some(BlockKind::SpruceSlab), - "minecraft:purple_candle_cake" => Some(BlockKind::PurpleCandleCake), - "minecraft:oak_fence" => Some(BlockKind::OakFence), - "minecraft:scaffolding" => Some(BlockKind::Scaffolding), - "minecraft:jungle_trapdoor" => Some(BlockKind::JungleTrapdoor), - "minecraft:red_sandstone_wall" => Some(BlockKind::RedSandstoneWall), - "minecraft:red_nether_brick_wall" => Some(BlockKind::RedNetherBrickWall), - "minecraft:copper_ore" => Some(BlockKind::CopperOre), - "minecraft:dark_oak_wall_sign" => Some(BlockKind::DarkOakWallSign), - "minecraft:crafting_table" => Some(BlockKind::CraftingTable), - "minecraft:stone_stairs" => Some(BlockKind::StoneStairs), - "minecraft:pink_bed" => Some(BlockKind::PinkBed), - "minecraft:stripped_dark_oak_log" => Some(BlockKind::StrippedDarkOakLog), - "minecraft:oak_wood" => Some(BlockKind::OakWood), - "minecraft:sunflower" => Some(BlockKind::Sunflower), - "minecraft:red_shulker_box" => Some(BlockKind::RedShulkerBox), - "minecraft:bricks" => Some(BlockKind::Bricks), - "minecraft:bamboo_sapling" => Some(BlockKind::BambooSapling), - "minecraft:pumpkin" => Some(BlockKind::Pumpkin), - "minecraft:pink_glazed_terracotta" => Some(BlockKind::PinkGlazedTerracotta), - "minecraft:gray_terracotta" => Some(BlockKind::GrayTerracotta), - "minecraft:green_concrete" => Some(BlockKind::GreenConcrete), - "minecraft:waxed_copper_block" => Some(BlockKind::WaxedCopperBlock), - "minecraft:potted_dark_oak_sapling" => Some(BlockKind::PottedDarkOakSapling), - "minecraft:waxed_weathered_cut_copper_stairs" => { - Some(BlockKind::WaxedWeatheredCutCopperStairs) - } - "minecraft:farmland" => Some(BlockKind::Farmland), - "minecraft:orange_concrete" => Some(BlockKind::OrangeConcrete), - "minecraft:gray_bed" => Some(BlockKind::GrayBed), - "minecraft:white_bed" => Some(BlockKind::WhiteBed), - "minecraft:potted_lily_of_the_valley" => Some(BlockKind::PottedLilyOfTheValley), - "minecraft:orange_wall_banner" => Some(BlockKind::OrangeWallBanner), - "minecraft:end_stone_brick_slab" => Some(BlockKind::EndStoneBrickSlab), - "minecraft:observer" => Some(BlockKind::Observer), - "minecraft:lodestone" => Some(BlockKind::Lodestone), - "minecraft:bubble_coral_block" => Some(BlockKind::BubbleCoralBlock), - "minecraft:horn_coral_block" => Some(BlockKind::HornCoralBlock), - "minecraft:acacia_sign" => Some(BlockKind::AcaciaSign), - "minecraft:trapped_chest" => Some(BlockKind::TrappedChest), - "minecraft:red_wool" => Some(BlockKind::RedWool), - "minecraft:candle_cake" => Some(BlockKind::CandleCake), - "minecraft:sugar_cane" => Some(BlockKind::SugarCane), - "minecraft:birch_slab" => Some(BlockKind::BirchSlab), - "minecraft:pink_stained_glass_pane" => Some(BlockKind::PinkStainedGlassPane), - "minecraft:crimson_fungus" => Some(BlockKind::CrimsonFungus), - "minecraft:polished_blackstone_brick_wall" => { - Some(BlockKind::PolishedBlackstoneBrickWall) - } - "minecraft:cyan_stained_glass_pane" => Some(BlockKind::CyanStainedGlassPane), - "minecraft:smooth_sandstone_stairs" => Some(BlockKind::SmoothSandstoneStairs), - "minecraft:crimson_door" => Some(BlockKind::CrimsonDoor), - "minecraft:brown_wall_banner" => Some(BlockKind::BrownWallBanner), - "minecraft:cyan_glazed_terracotta" => Some(BlockKind::CyanGlazedTerracotta), - "minecraft:waxed_oxidized_copper" => Some(BlockKind::WaxedOxidizedCopper), - "minecraft:green_stained_glass_pane" => Some(BlockKind::GreenStainedGlassPane), - "minecraft:honey_block" => Some(BlockKind::HoneyBlock), - "minecraft:polished_blackstone" => Some(BlockKind::PolishedBlackstone), - "minecraft:white_wall_banner" => Some(BlockKind::WhiteWallBanner), - "minecraft:sea_lantern" => Some(BlockKind::SeaLantern), - "minecraft:deepslate_brick_slab" => Some(BlockKind::DeepslateBrickSlab), - "minecraft:stone_brick_stairs" => Some(BlockKind::StoneBrickStairs), - "minecraft:mycelium" => Some(BlockKind::Mycelium), - "minecraft:spruce_fence" => Some(BlockKind::SpruceFence), - "minecraft:ladder" => Some(BlockKind::Ladder), - "minecraft:green_shulker_box" => Some(BlockKind::GreenShulkerBox), - "minecraft:dirt" => Some(BlockKind::Dirt), - "minecraft:cactus" => Some(BlockKind::Cactus), - "minecraft:lava" => Some(BlockKind::Lava), - "minecraft:oak_sign" => Some(BlockKind::OakSign), - "minecraft:jungle_door" => Some(BlockKind::JungleDoor), - "minecraft:white_terracotta" => Some(BlockKind::WhiteTerracotta), - "minecraft:acacia_door" => Some(BlockKind::AcaciaDoor), - "minecraft:cobblestone_slab" => Some(BlockKind::CobblestoneSlab), - "minecraft:dark_oak_door" => Some(BlockKind::DarkOakDoor), - "minecraft:gray_candle" => Some(BlockKind::GrayCandle), - "minecraft:purpur_stairs" => Some(BlockKind::PurpurStairs), - "minecraft:blue_concrete" => Some(BlockKind::BlueConcrete), - "minecraft:light_gray_stained_glass_pane" => Some(BlockKind::LightGrayStainedGlassPane), - "minecraft:dark_oak_planks" => Some(BlockKind::DarkOakPlanks), - "minecraft:potted_warped_roots" => Some(BlockKind::PottedWarpedRoots), - "minecraft:jungle_leaves" => Some(BlockKind::JungleLeaves), - "minecraft:daylight_detector" => Some(BlockKind::DaylightDetector), - "minecraft:acacia_sapling" => Some(BlockKind::AcaciaSapling), - "minecraft:sandstone_wall" => Some(BlockKind::SandstoneWall), - "minecraft:blue_carpet" => Some(BlockKind::BlueCarpet), - "minecraft:polished_granite_stairs" => Some(BlockKind::PolishedGraniteStairs), - "minecraft:dark_oak_sapling" => Some(BlockKind::DarkOakSapling), - "minecraft:brick_wall" => Some(BlockKind::BrickWall), - "minecraft:acacia_wood" => Some(BlockKind::AcaciaWood), - "minecraft:moss_carpet" => Some(BlockKind::MossCarpet), - "minecraft:magenta_bed" => Some(BlockKind::MagentaBed), - "minecraft:birch_stairs" => Some(BlockKind::BirchStairs), - "minecraft:tube_coral_block" => Some(BlockKind::TubeCoralBlock), - "minecraft:netherite_block" => Some(BlockKind::NetheriteBlock), - "minecraft:waxed_weathered_copper" => Some(BlockKind::WaxedWeatheredCopper), - "minecraft:sand" => Some(BlockKind::Sand), - "minecraft:calcite" => Some(BlockKind::Calcite), - "minecraft:hopper" => Some(BlockKind::Hopper), - "minecraft:horn_coral" => Some(BlockKind::HornCoral), - "minecraft:deepslate_tiles" => Some(BlockKind::DeepslateTiles), - "minecraft:cut_red_sandstone" => Some(BlockKind::CutRedSandstone), - "minecraft:mossy_cobblestone_wall" => Some(BlockKind::MossyCobblestoneWall), - "minecraft:lectern" => Some(BlockKind::Lectern), - "minecraft:polished_blackstone_wall" => Some(BlockKind::PolishedBlackstoneWall), - "minecraft:yellow_wall_banner" => Some(BlockKind::YellowWallBanner), - "minecraft:crimson_wall_sign" => Some(BlockKind::CrimsonWallSign), - "minecraft:pink_concrete" => Some(BlockKind::PinkConcrete), - "minecraft:stripped_acacia_wood" => Some(BlockKind::StrippedAcaciaWood), - "minecraft:jungle_wall_sign" => Some(BlockKind::JungleWallSign), - "minecraft:brown_banner" => Some(BlockKind::BrownBanner), - "minecraft:orange_glazed_terracotta" => Some(BlockKind::OrangeGlazedTerracotta), - "minecraft:emerald_block" => Some(BlockKind::EmeraldBlock), - "minecraft:oxidized_cut_copper" => Some(BlockKind::OxidizedCutCopper), - "minecraft:crimson_hyphae" => Some(BlockKind::CrimsonHyphae), - "minecraft:yellow_candle_cake" => Some(BlockKind::YellowCandleCake), - "minecraft:structure_void" => Some(BlockKind::StructureVoid), - "minecraft:warped_planks" => Some(BlockKind::WarpedPlanks), - "minecraft:glowstone" => Some(BlockKind::Glowstone), - "minecraft:spruce_wood" => Some(BlockKind::SpruceWood), - "minecraft:pink_concrete_powder" => Some(BlockKind::PinkConcretePowder), - "minecraft:shulker_box" => Some(BlockKind::ShulkerBox), - "minecraft:red_sandstone_slab" => Some(BlockKind::RedSandstoneSlab), - "minecraft:orange_stained_glass_pane" => Some(BlockKind::OrangeStainedGlassPane), - "minecraft:waxed_weathered_cut_copper_slab" => { - Some(BlockKind::WaxedWeatheredCutCopperSlab) - } - "minecraft:potted_azalea_bush" => Some(BlockKind::PottedAzaleaBush), - "minecraft:azalea_leaves" => Some(BlockKind::AzaleaLeaves), - "minecraft:cracked_deepslate_tiles" => Some(BlockKind::CrackedDeepslateTiles), - "minecraft:light_blue_candle" => Some(BlockKind::LightBlueCandle), - "minecraft:brown_shulker_box" => Some(BlockKind::BrownShulkerBox), - "minecraft:red_nether_brick_stairs" => Some(BlockKind::RedNetherBrickStairs), - "minecraft:small_amethyst_bud" => Some(BlockKind::SmallAmethystBud), - "minecraft:crimson_stem" => Some(BlockKind::CrimsonStem), - "minecraft:birch_fence" => Some(BlockKind::BirchFence), - "minecraft:infested_stone" => Some(BlockKind::InfestedStone), - "minecraft:dead_tube_coral_fan" => Some(BlockKind::DeadTubeCoralFan), - "minecraft:bell" => Some(BlockKind::Bell), - "minecraft:polished_granite_slab" => Some(BlockKind::PolishedGraniteSlab), - "minecraft:crimson_sign" => Some(BlockKind::CrimsonSign), - "minecraft:birch_planks" => Some(BlockKind::BirchPlanks), - "minecraft:light_gray_candle" => Some(BlockKind::LightGrayCandle), - "minecraft:spore_blossom" => Some(BlockKind::SporeBlossom), - "minecraft:purple_concrete_powder" => Some(BlockKind::PurpleConcretePowder), - "minecraft:furnace" => Some(BlockKind::Furnace), - "minecraft:polished_andesite_stairs" => Some(BlockKind::PolishedAndesiteStairs), - "minecraft:red_candle_cake" => Some(BlockKind::RedCandleCake), - "minecraft:chiseled_deepslate" => Some(BlockKind::ChiseledDeepslate), - "minecraft:quartz_slab" => Some(BlockKind::QuartzSlab), - "minecraft:spruce_leaves" => Some(BlockKind::SpruceLeaves), - "minecraft:bubble_coral" => Some(BlockKind::BubbleCoral), - "minecraft:light_gray_wall_banner" => Some(BlockKind::LightGrayWallBanner), - "minecraft:purpur_block" => Some(BlockKind::PurpurBlock), - "minecraft:yellow_banner" => Some(BlockKind::YellowBanner), - "minecraft:oak_sapling" => Some(BlockKind::OakSapling), - "minecraft:azure_bluet" => Some(BlockKind::AzureBluet), - "minecraft:magenta_stained_glass_pane" => Some(BlockKind::MagentaStainedGlassPane), - "minecraft:dispenser" => Some(BlockKind::Dispenser), - "minecraft:gray_stained_glass_pane" => Some(BlockKind::GrayStainedGlassPane), - "minecraft:andesite_wall" => Some(BlockKind::AndesiteWall), - "minecraft:jungle_fence_gate" => Some(BlockKind::JungleFenceGate), - "minecraft:red_nether_bricks" => Some(BlockKind::RedNetherBricks), - "minecraft:light_gray_candle_cake" => Some(BlockKind::LightGrayCandleCake), - "minecraft:jukebox" => Some(BlockKind::Jukebox), - "minecraft:note_block" => Some(BlockKind::NoteBlock), - "minecraft:lime_terracotta" => Some(BlockKind::LimeTerracotta), - "minecraft:warped_fence" => Some(BlockKind::WarpedFence), - "minecraft:gold_ore" => Some(BlockKind::GoldOre), - "minecraft:potted_pink_tulip" => Some(BlockKind::PottedPinkTulip), - "minecraft:spruce_button" => Some(BlockKind::SpruceButton), - "minecraft:brown_candle_cake" => Some(BlockKind::BrownCandleCake), - "minecraft:wither_rose" => Some(BlockKind::WitherRose), - "minecraft:diamond_block" => Some(BlockKind::DiamondBlock), - "minecraft:wheat" => Some(BlockKind::Wheat), - "minecraft:glow_lichen" => Some(BlockKind::GlowLichen), - "minecraft:cocoa" => Some(BlockKind::Cocoa), - "minecraft:oak_trapdoor" => Some(BlockKind::OakTrapdoor), - "minecraft:stripped_birch_wood" => Some(BlockKind::StrippedBirchWood), - "minecraft:birch_wall_sign" => Some(BlockKind::BirchWallSign), - "minecraft:smooth_stone_slab" => Some(BlockKind::SmoothStoneSlab), - "minecraft:exposed_copper" => Some(BlockKind::ExposedCopper), - "minecraft:water" => Some(BlockKind::Water), - "minecraft:bedrock" => Some(BlockKind::Bedrock), - "minecraft:pumpkin_stem" => Some(BlockKind::PumpkinStem), - "minecraft:cauldron" => Some(BlockKind::Cauldron), - "minecraft:purple_carpet" => Some(BlockKind::PurpleCarpet), - "minecraft:fletching_table" => Some(BlockKind::FletchingTable), - "minecraft:anvil" => Some(BlockKind::Anvil), - "minecraft:lily_of_the_valley" => Some(BlockKind::LilyOfTheValley), - "minecraft:flowering_azalea" => Some(BlockKind::FloweringAzalea), - "minecraft:lime_concrete_powder" => Some(BlockKind::LimeConcretePowder), - "minecraft:blue_glazed_terracotta" => Some(BlockKind::BlueGlazedTerracotta), - "minecraft:tripwire_hook" => Some(BlockKind::TripwireHook), - "minecraft:cyan_concrete" => Some(BlockKind::CyanConcrete), - "minecraft:big_dripleaf_stem" => Some(BlockKind::BigDripleafStem), - "minecraft:sticky_piston" => Some(BlockKind::StickyPiston), - "minecraft:lever" => Some(BlockKind::Lever), - "minecraft:white_concrete" => Some(BlockKind::WhiteConcrete), - "minecraft:dead_brain_coral_block" => Some(BlockKind::DeadBrainCoralBlock), - "minecraft:smooth_quartz" => Some(BlockKind::SmoothQuartz), - "minecraft:torch" => Some(BlockKind::Torch), - "minecraft:redstone_wire" => Some(BlockKind::RedstoneWire), - "minecraft:birch_trapdoor" => Some(BlockKind::BirchTrapdoor), - "minecraft:weeping_vines_plant" => Some(BlockKind::WeepingVinesPlant), - "minecraft:acacia_log" => Some(BlockKind::AcaciaLog), - "minecraft:player_head" => Some(BlockKind::PlayerHead), - "minecraft:nether_brick_fence" => Some(BlockKind::NetherBrickFence), - "minecraft:dead_horn_coral" => Some(BlockKind::DeadHornCoral), - "minecraft:stripped_dark_oak_wood" => Some(BlockKind::StrippedDarkOakWood), - "minecraft:polished_granite" => Some(BlockKind::PolishedGranite), - "minecraft:structure_block" => Some(BlockKind::StructureBlock), - "minecraft:dragon_wall_head" => Some(BlockKind::DragonWallHead), - "minecraft:dead_horn_coral_block" => Some(BlockKind::DeadHornCoralBlock), - "minecraft:dark_oak_slab" => Some(BlockKind::DarkOakSlab), - "minecraft:stripped_crimson_hyphae" => Some(BlockKind::StrippedCrimsonHyphae), - "minecraft:light_gray_shulker_box" => Some(BlockKind::LightGrayShulkerBox), - "minecraft:enchanting_table" => Some(BlockKind::EnchantingTable), - "minecraft:player_wall_head" => Some(BlockKind::PlayerWallHead), - "minecraft:purple_stained_glass" => Some(BlockKind::PurpleStainedGlass), - "minecraft:hay_block" => Some(BlockKind::HayBlock), - "minecraft:comparator" => Some(BlockKind::Comparator), - "minecraft:purple_glazed_terracotta" => Some(BlockKind::PurpleGlazedTerracotta), - "minecraft:deepslate_brick_stairs" => Some(BlockKind::DeepslateBrickStairs), - "minecraft:iron_ore" => Some(BlockKind::IronOre), - "minecraft:purple_wool" => Some(BlockKind::PurpleWool), - "minecraft:deepslate_tile_slab" => Some(BlockKind::DeepslateTileSlab), - "minecraft:chiseled_nether_bricks" => Some(BlockKind::ChiseledNetherBricks), - "minecraft:spruce_log" => Some(BlockKind::SpruceLog), - "minecraft:jungle_planks" => Some(BlockKind::JunglePlanks), - "minecraft:sweet_berry_bush" => Some(BlockKind::SweetBerryBush), - "minecraft:potted_poppy" => Some(BlockKind::PottedPoppy), - "minecraft:smithing_table" => Some(BlockKind::SmithingTable), - "minecraft:stone_slab" => Some(BlockKind::StoneSlab), - "minecraft:wet_sponge" => Some(BlockKind::WetSponge), - "minecraft:dead_bubble_coral_fan" => Some(BlockKind::DeadBubbleCoralFan), - "minecraft:orange_terracotta" => Some(BlockKind::OrangeTerracotta), - "minecraft:light_blue_carpet" => Some(BlockKind::LightBlueCarpet), - "minecraft:polished_deepslate_stairs" => Some(BlockKind::PolishedDeepslateStairs), - "minecraft:orange_tulip" => Some(BlockKind::OrangeTulip), - _ => None, - } - } -} -impl BlockKind { - #[doc = "Returns the `resistance` property of this `BlockKind`."] - #[inline] - pub fn resistance(&self) -> f32 { - match self { - BlockKind::NetherBrickFence => 6f32, - BlockKind::EndStoneBrickWall => 9f32, - BlockKind::PurpurBlock => 6f32, - BlockKind::LightBlueCarpet => 0.1f32, - BlockKind::RedShulkerBox => 2f32, - BlockKind::YellowCandle => 0.1f32, - BlockKind::BlackBed => 0.2f32, - BlockKind::JungleSign => 1f32, - BlockKind::OrangeConcrete => 1.8f32, - BlockKind::BrownCandleCake => 0f32, - BlockKind::WarpedSlab => 3f32, - BlockKind::MossyCobblestoneWall => 6f32, - BlockKind::PottedRedTulip => 0f32, - BlockKind::StrippedJungleLog => 2f32, - BlockKind::DragonHead => 1f32, - BlockKind::CutCopperStairs => 0f32, - BlockKind::CrimsonWallSign => 1f32, - BlockKind::EndStoneBricks => 9f32, - BlockKind::Poppy => 0f32, - BlockKind::DragonEgg => 9f32, - BlockKind::WaxedExposedCutCopperStairs => 0f32, - BlockKind::GoldOre => 3f32, - BlockKind::WhiteWallBanner => 1f32, - BlockKind::DeadHornCoralBlock => 6f32, - BlockKind::Beehive => 0.6f32, - BlockKind::BlueGlazedTerracotta => 1.4f32, - BlockKind::TubeCoralFan => 0f32, - BlockKind::Conduit => 3f32, - BlockKind::RedWallBanner => 1f32, - BlockKind::GrayShulkerBox => 2f32, - BlockKind::RedCandleCake => 0f32, - BlockKind::DarkOakDoor => 3f32, - BlockKind::JungleFence => 3f32, - BlockKind::WhiteShulkerBox => 2f32, - BlockKind::PolishedBlackstone => 6f32, - BlockKind::ExposedCutCopper => 0f32, - BlockKind::AcaciaTrapdoor => 3f32, - BlockKind::DeadBrainCoralFan => 0f32, - BlockKind::WarpedDoor => 3f32, - BlockKind::Sponge => 0.6f32, - BlockKind::BlackstoneSlab => 6f32, - BlockKind::ChiseledSandstone => 0.8f32, - BlockKind::CobblestoneSlab => 6f32, - BlockKind::AzaleaLeaves => 0.2f32, - BlockKind::MelonStem => 0f32, - BlockKind::Dirt => 0.5f32, - BlockKind::BlackConcrete => 1.8f32, - BlockKind::CrimsonPlanks => 3f32, - BlockKind::PottedWhiteTulip => 0f32, - BlockKind::GreenStainedGlassPane => 0.3f32, - BlockKind::BigDripleaf => 0.1f32, - BlockKind::PinkTerracotta => 4.2f32, - BlockKind::MagentaStainedGlass => 0.3f32, - BlockKind::CryingObsidian => 1200f32, - BlockKind::WarpedHyphae => 2f32, - BlockKind::Loom => 2.5f32, - BlockKind::StrippedAcaciaLog => 2f32, - BlockKind::PottedJungleSapling => 0f32, - BlockKind::PottedDeadBush => 0f32, - BlockKind::Light => 3600000.8f32, - BlockKind::PolishedBlackstonePressurePlate => 0.5f32, - BlockKind::BubbleCoral => 0f32, - BlockKind::WetSponge => 0.6f32, - BlockKind::SoulFire => 0f32, - BlockKind::MagmaBlock => 0.5f32, - BlockKind::ExposedCopper => 6f32, - BlockKind::PottedFern => 0f32, - BlockKind::WitherSkeletonWallSkull => 1f32, - BlockKind::BlueIce => 2.8f32, - BlockKind::CyanStainedGlassPane => 0.3f32, - BlockKind::StrippedJungleWood => 2f32, - BlockKind::YellowBed => 0.2f32, - BlockKind::LargeFern => 0f32, - BlockKind::LightGrayConcrete => 1.8f32, - BlockKind::GreenStainedGlass => 0.3f32, - BlockKind::EndGateway => 3600000f32, - BlockKind::Farmland => 0.6f32, - BlockKind::GreenShulkerBox => 2f32, - BlockKind::MossyStoneBricks => 6f32, - BlockKind::WaxedWeatheredCutCopperSlab => 0f32, - BlockKind::SpruceLog => 2f32, - BlockKind::ZombieHead => 1f32, - BlockKind::RedstoneWire => 0f32, - BlockKind::Peony => 0f32, - BlockKind::Glowstone => 0.3f32, - BlockKind::YellowConcrete => 1.8f32, - BlockKind::PolishedGraniteSlab => 6f32, - BlockKind::AcaciaButton => 0.5f32, - BlockKind::TallGrass => 0f32, - BlockKind::HornCoralWallFan => 0f32, - BlockKind::PurpleStainedGlassPane => 0.3f32, - BlockKind::Comparator => 0f32, - BlockKind::PistonHead => 1.5f32, - BlockKind::OakFenceGate => 3f32, - BlockKind::CrimsonStem => 2f32, - BlockKind::WaxedExposedCutCopper => 0f32, - BlockKind::DeadBrainCoral => 0f32, - BlockKind::SpruceSapling => 0f32, - BlockKind::BlackStainedGlassPane => 0.3f32, - BlockKind::SoulWallTorch => 0f32, - BlockKind::GreenBanner => 1f32, - BlockKind::DeadFireCoralWallFan => 0f32, - BlockKind::DeadBush => 0f32, - BlockKind::LightBlueStainedGlassPane => 0.3f32, - BlockKind::CutRedSandstoneSlab => 6f32, - BlockKind::OrangeWool => 0.8f32, - BlockKind::DeepslateCopperOre => 3f32, - BlockKind::BlueConcrete => 1.8f32, - BlockKind::WaxedCutCopperStairs => 0f32, - BlockKind::SkeletonWallSkull => 1f32, - BlockKind::InfestedStoneBricks => 0f32, - BlockKind::TallSeagrass => 0f32, - BlockKind::BrainCoralFan => 0f32, - BlockKind::SpruceButton => 0.5f32, - BlockKind::LightGrayBed => 0.2f32, - BlockKind::CrimsonNylium => 0.4f32, - BlockKind::GreenCandleCake => 0f32, - BlockKind::Barrier => 3600000.8f32, - BlockKind::PottedFloweringAzaleaBush => 0f32, - BlockKind::JackOLantern => 1f32, - BlockKind::BirchLog => 2f32, - BlockKind::DragonWallHead => 1f32, - BlockKind::OxidizedCutCopper => 0f32, - BlockKind::Pumpkin => 1f32, - BlockKind::EndStoneBrickStairs => 9f32, - BlockKind::OrangeBanner => 1f32, - BlockKind::DeadBrainCoralWallFan => 0f32, - BlockKind::WhiteCandleCake => 0f32, - BlockKind::PurpleCandleCake => 0f32, - BlockKind::NetherBrickStairs => 6f32, - BlockKind::BrownMushroomBlock => 0.2f32, - BlockKind::WaxedOxidizedCutCopperSlab => 0f32, - BlockKind::CrimsonButton => 0.5f32, - BlockKind::CobblestoneStairs => 6f32, - BlockKind::SandstoneWall => 0.8f32, - BlockKind::GrayWool => 0.8f32, - BlockKind::SpruceWood => 2f32, - BlockKind::SmallDripleaf => 0f32, - BlockKind::WhiteStainedGlass => 0.3f32, - BlockKind::WarpedStairs => 3f32, - BlockKind::StrippedWarpedHyphae => 2f32, - BlockKind::BirchFence => 3f32, - BlockKind::MagentaCandle => 0.1f32, - BlockKind::BlueWool => 0.8f32, - BlockKind::GoldBlock => 6f32, - BlockKind::PurpleBanner => 1f32, - BlockKind::RedWool => 0.8f32, - BlockKind::PottedLilyOfTheValley => 0f32, - BlockKind::WeepingVines => 0f32, - BlockKind::MagentaBanner => 1f32, - BlockKind::StrippedSpruceLog => 2f32, - BlockKind::GlassPane => 0.3f32, - BlockKind::RedstoneTorch => 0f32, - BlockKind::Anvil => 1200f32, - BlockKind::BlackWallBanner => 1f32, - BlockKind::DarkOakFence => 3f32, - BlockKind::SmoothStone => 6f32, - BlockKind::AndesiteSlab => 6f32, - BlockKind::WhiteStainedGlassPane => 0.3f32, - BlockKind::MagentaStainedGlassPane => 0.3f32, - BlockKind::BlackTerracotta => 4.2f32, - BlockKind::EndRod => 0f32, - BlockKind::OakSlab => 3f32, - BlockKind::Sand => 0.5f32, - BlockKind::StrippedDarkOakLog => 2f32, - BlockKind::PottedRedMushroom => 0f32, - BlockKind::OxidizedCutCopperStairs => 0f32, - BlockKind::Sunflower => 0f32, - BlockKind::MagentaConcretePowder => 0.5f32, - BlockKind::PurpleTerracotta => 4.2f32, - BlockKind::SoulSand => 0.5f32, - BlockKind::AndesiteWall => 6f32, - BlockKind::LimeCarpet => 0.1f32, - BlockKind::PrismarineWall => 6f32, - BlockKind::BlackCarpet => 0.1f32, - BlockKind::WaxedWeatheredCopper => 0f32, - BlockKind::DarkOakSapling => 0f32, - BlockKind::ChippedAnvil => 1200f32, - BlockKind::RedNetherBrickSlab => 6f32, - BlockKind::Cocoa => 3f32, - BlockKind::PottedBamboo => 0f32, - BlockKind::LightBlueConcrete => 1.8f32, - BlockKind::WarpedRoots => 0f32, - BlockKind::Spawner => 5f32, - BlockKind::StonePressurePlate => 0.5f32, - BlockKind::DeadTubeCoralBlock => 6f32, - BlockKind::AcaciaPressurePlate => 0.5f32, - BlockKind::MagentaTerracotta => 4.2f32, - BlockKind::OrangeConcretePowder => 0.5f32, - BlockKind::MossyStoneBrickWall => 6f32, - BlockKind::LimeCandleCake => 0f32, - BlockKind::PinkTulip => 0f32, - BlockKind::RedNetherBricks => 6f32, - BlockKind::NetheriteBlock => 1200f32, - BlockKind::PolishedBlackstoneBrickWall => 6f32, - BlockKind::RawCopperBlock => 6f32, - BlockKind::Diorite => 6f32, - BlockKind::DarkOakWood => 2f32, - BlockKind::BrownWool => 0.8f32, - BlockKind::OrangeWallBanner => 1f32, - BlockKind::OakDoor => 3f32, - BlockKind::DarkOakLeaves => 0.2f32, - BlockKind::OrangeCandleCake => 0f32, - BlockKind::LightGrayConcretePowder => 0.5f32, - BlockKind::RedStainedGlassPane => 0.3f32, - BlockKind::EndPortal => 3600000f32, - BlockKind::CyanGlazedTerracotta => 1.4f32, - BlockKind::TwistingVinesPlant => 0f32, - BlockKind::JungleButton => 0.5f32, - BlockKind::BrainCoral => 0f32, - BlockKind::PottedOrangeTulip => 0f32, - BlockKind::SeaPickle => 0f32, - BlockKind::BlueStainedGlass => 0.3f32, - BlockKind::PottedCactus => 0f32, - BlockKind::Potatoes => 0f32, - BlockKind::CommandBlock => 3600000f32, - BlockKind::CrackedStoneBricks => 6f32, - BlockKind::YellowCarpet => 0.1f32, - BlockKind::DeepslateIronOre => 3f32, - BlockKind::Rail => 0.7f32, - BlockKind::NetherQuartzOre => 3f32, - BlockKind::PinkConcrete => 1.8f32, - BlockKind::CrimsonDoor => 3f32, - BlockKind::WarpedWallSign => 1f32, - BlockKind::PolishedBlackstoneStairs => 6f32, - BlockKind::MediumAmethystBud => 0f32, - BlockKind::BirchStairs => 3f32, - BlockKind::BigDripleafStem => 0.1f32, - BlockKind::DarkOakStairs => 3f32, - BlockKind::DarkOakButton => 0.5f32, - BlockKind::LightGrayGlazedTerracotta => 1.4f32, - BlockKind::PottedAllium => 0f32, - BlockKind::PetrifiedOakSlab => 6f32, - BlockKind::QuartzPillar => 0.8f32, - BlockKind::GrayGlazedTerracotta => 1.4f32, - BlockKind::PurpleConcretePowder => 0.5f32, - BlockKind::DeadTubeCoral => 0f32, - BlockKind::LightBlueTerracotta => 4.2f32, - BlockKind::NoteBlock => 0.8f32, - BlockKind::LimeConcretePowder => 0.5f32, - BlockKind::SweetBerryBush => 0f32, - BlockKind::OrangeCandle => 0.1f32, - BlockKind::CandleCake => 0f32, - BlockKind::GraniteStairs => 6f32, - BlockKind::StoneStairs => 6f32, - BlockKind::AmethystCluster => 1.5f32, - BlockKind::InfestedCobblestone => 0f32, - BlockKind::Mycelium => 0.6f32, - BlockKind::WaxedWeatheredCutCopper => 0f32, - BlockKind::YellowWool => 0.8f32, - BlockKind::SmoothQuartzSlab => 6f32, - BlockKind::SmoothRedSandstone => 6f32, - BlockKind::JungleLeaves => 0.2f32, - BlockKind::SkeletonSkull => 1f32, - BlockKind::BrownGlazedTerracotta => 1.4f32, - BlockKind::MagentaConcrete => 1.8f32, - BlockKind::StrippedBirchLog => 2f32, - BlockKind::OakWood => 2f32, - BlockKind::YellowWallBanner => 1f32, - BlockKind::PolishedBlackstoneWall => 6f32, - BlockKind::DeadBubbleCoralWallFan => 0f32, - BlockKind::PoweredRail => 0.7f32, - BlockKind::WhiteCarpet => 0.1f32, - BlockKind::AcaciaDoor => 3f32, - BlockKind::StoneSlab => 6f32, - BlockKind::LimeStainedGlass => 0.3f32, - BlockKind::OakLog => 2f32, - BlockKind::BlastFurnace => 3.5f32, - BlockKind::RespawnAnchor => 1200f32, - BlockKind::Torch => 0f32, - BlockKind::PolishedDioriteSlab => 6f32, - BlockKind::StoneBrickWall => 6f32, - BlockKind::Repeater => 0f32, - BlockKind::CopperBlock => 6f32, - BlockKind::LightningRod => 6f32, - BlockKind::Fern => 0f32, - BlockKind::PolishedDioriteStairs => 6f32, - BlockKind::PinkShulkerBox => 2f32, - BlockKind::AmethystBlock => 1.5f32, - BlockKind::StrippedOakWood => 2f32, - BlockKind::RedGlazedTerracotta => 1.4f32, - BlockKind::EmeraldBlock => 6f32, - BlockKind::PottedOakSapling => 0f32, - BlockKind::PolishedDeepslateStairs => 0f32, - BlockKind::StrippedCrimsonStem => 2f32, - BlockKind::DamagedAnvil => 1200f32, - BlockKind::JungleSapling => 0f32, - BlockKind::GrayStainedGlassPane => 0.3f32, - BlockKind::LimeWool => 0.8f32, - BlockKind::ChiseledPolishedBlackstone => 6f32, - BlockKind::SculkSensor => 1.5f32, - BlockKind::LimeBanner => 1f32, - BlockKind::PinkStainedGlassPane => 0.3f32, - BlockKind::PolishedGraniteStairs => 6f32, - BlockKind::MossyCobblestone => 6f32, - BlockKind::AttachedPumpkinStem => 0f32, - BlockKind::WaxedExposedCutCopperSlab => 0f32, - BlockKind::BubbleCoralBlock => 6f32, - BlockKind::RedstoneWallTorch => 0f32, - BlockKind::LimeGlazedTerracotta => 1.4f32, - BlockKind::DarkOakSlab => 3f32, - BlockKind::ExposedCutCopperStairs => 0f32, - BlockKind::AcaciaLog => 2f32, - BlockKind::WarpedFungus => 0f32, - BlockKind::BlueCandleCake => 0f32, - BlockKind::Blackstone => 6f32, - BlockKind::Tuff => 6f32, - BlockKind::RedMushroom => 0f32, - BlockKind::Cake => 0.5f32, - BlockKind::DioriteSlab => 6f32, - BlockKind::Target => 0.5f32, - BlockKind::OrangeGlazedTerracotta => 1.4f32, - BlockKind::MagentaBed => 0.2f32, - BlockKind::WarpedWartBlock => 1f32, - BlockKind::CarvedPumpkin => 1f32, - BlockKind::WeatheredCutCopper => 0f32, - BlockKind::SpruceFence => 3f32, - BlockKind::Shroomlight => 1f32, - BlockKind::PrismarineBrickSlab => 6f32, - BlockKind::BrownConcrete => 1.8f32, - BlockKind::Lever => 0.5f32, - BlockKind::Bamboo => 1f32, - BlockKind::BrickSlab => 6f32, - BlockKind::BoneBlock => 2f32, - BlockKind::PottedWitherRose => 0f32, - BlockKind::ChorusPlant => 0.4f32, - BlockKind::DetectorRail => 0.7f32, - BlockKind::Calcite => 0.75f32, - BlockKind::CaveVinesPlant => 0f32, - BlockKind::DeepslateTiles => 0f32, - BlockKind::FloweringAzaleaLeaves => 0.2f32, - BlockKind::PottedAcaciaSapling => 0f32, - BlockKind::AcaciaWood => 2f32, - BlockKind::RedTerracotta => 4.2f32, - BlockKind::RedCarpet => 0.1f32, - BlockKind::BubbleCoralFan => 0f32, - BlockKind::WaxedWeatheredCutCopperStairs => 0f32, - BlockKind::RedstoneLamp => 0.3f32, - BlockKind::StoneBricks => 6f32, - BlockKind::Vine => 0.2f32, - BlockKind::CrackedDeepslateBricks => 0f32, - BlockKind::CobbledDeepslateSlab => 0f32, - BlockKind::CreeperWallHead => 1f32, - BlockKind::DeadHornCoral => 0f32, - BlockKind::PolishedDeepslateWall => 0f32, - BlockKind::FletchingTable => 2.5f32, - BlockKind::Dispenser => 3.5f32, - BlockKind::Prismarine => 6f32, - BlockKind::DarkPrismarine => 6f32, - BlockKind::DarkOakPressurePlate => 0.5f32, - BlockKind::OakPressurePlate => 0.5f32, - BlockKind::HornCoralFan => 0f32, - BlockKind::DeepslateTileWall => 0f32, - BlockKind::Campfire => 2f32, - BlockKind::WarpedStem => 2f32, - BlockKind::WaxedOxidizedCopper => 0f32, - BlockKind::DeepslateLapisOre => 3f32, - BlockKind::OakStairs => 3f32, - BlockKind::BirchFenceGate => 3f32, - BlockKind::DeadFireCoralFan => 0f32, - BlockKind::FrostedIce => 0.5f32, - BlockKind::NetherBricks => 6f32, - BlockKind::KelpPlant => 0f32, - BlockKind::BrickWall => 6f32, - BlockKind::CrimsonHyphae => 2f32, - BlockKind::GlowLichen => 0.2f32, - BlockKind::LimeBed => 0.2f32, - BlockKind::StoneButton => 0.5f32, - BlockKind::BrewingStand => 0.5f32, - BlockKind::PinkBed => 0.2f32, - BlockKind::BlackGlazedTerracotta => 1.4f32, - BlockKind::Stonecutter => 3.5f32, - BlockKind::WarpedFence => 3f32, - BlockKind::CrimsonFenceGate => 3f32, - BlockKind::Deepslate => 6f32, - BlockKind::WeatheredCopper => 6f32, - BlockKind::DeadBubbleCoralFan => 0f32, - BlockKind::PurpleShulkerBox => 2f32, - BlockKind::FloweringAzalea => 0f32, - BlockKind::WhiteWool => 0.8f32, - BlockKind::Bricks => 6f32, - BlockKind::PurpleStainedGlass => 0.3f32, - BlockKind::EndPortalFrame => 3600000f32, - BlockKind::RedSand => 0.5f32, - BlockKind::Cobblestone => 6f32, - BlockKind::LightBlueCandle => 0.1f32, - BlockKind::LightBlueShulkerBox => 2f32, - BlockKind::CrimsonSlab => 3f32, - BlockKind::GrayCandleCake => 0f32, - BlockKind::BirchWood => 2f32, - BlockKind::CyanBanner => 1f32, - BlockKind::PottedPinkTulip => 0f32, - BlockKind::YellowBanner => 1f32, - BlockKind::BrownShulkerBox => 2f32, - BlockKind::Lectern => 2.5f32, - BlockKind::HayBlock => 0.5f32, - BlockKind::WeatheredCutCopperSlab => 0f32, - BlockKind::CyanConcretePowder => 0.5f32, - BlockKind::YellowShulkerBox => 2f32, - BlockKind::OakSign => 1f32, - BlockKind::SmoothStoneSlab => 6f32, - BlockKind::BrownMushroom => 0f32, - BlockKind::PottedDarkOakSapling => 0f32, - BlockKind::Candle => 0.1f32, - BlockKind::BlueBanner => 1f32, - BlockKind::AcaciaSlab => 3f32, - BlockKind::BlackBanner => 1f32, - BlockKind::BeeNest => 0.3f32, - BlockKind::LightGrayCandle => 0.1f32, - BlockKind::JungleStairs => 3f32, - BlockKind::EnchantingTable => 1200f32, - BlockKind::SlimeBlock => 0f32, - BlockKind::PottedWarpedFungus => 0f32, - BlockKind::CyanCandle => 0.1f32, - BlockKind::DioriteStairs => 6f32, - BlockKind::DiamondOre => 3f32, - BlockKind::PolishedGranite => 6f32, - BlockKind::NetherWartBlock => 1f32, - BlockKind::DarkOakFenceGate => 3f32, - BlockKind::LightBlueGlazedTerracotta => 1.4f32, - BlockKind::BirchButton => 0.5f32, - BlockKind::BlackWool => 0.8f32, - BlockKind::InfestedCrackedStoneBricks => 0f32, - BlockKind::OrangeTerracotta => 4.2f32, - BlockKind::InfestedMossyStoneBricks => 0f32, - BlockKind::WaterCauldron => 0f32, - BlockKind::Beetroots => 0f32, - BlockKind::BrainCoralWallFan => 0f32, - BlockKind::LimeStainedGlassPane => 0.3f32, - BlockKind::BirchSlab => 3f32, - BlockKind::JungleWood => 2f32, - BlockKind::BrownStainedGlass => 0.3f32, - BlockKind::CaveAir => 0f32, - BlockKind::EnderChest => 600f32, - BlockKind::BirchPressurePlate => 0.5f32, - BlockKind::DeadFireCoral => 0f32, - BlockKind::MossyStoneBrickStairs => 6f32, - BlockKind::Obsidian => 1200f32, - BlockKind::Tripwire => 0f32, - BlockKind::MossyCobblestoneStairs => 6f32, - BlockKind::DeepslateBrickSlab => 0f32, - BlockKind::CobbledDeepslateWall => 0f32, - BlockKind::DeadBubbleCoralBlock => 6f32, - BlockKind::CoarseDirt => 0.5f32, - BlockKind::SeaLantern => 0.3f32, - BlockKind::LightGrayStainedGlass => 0.3f32, - BlockKind::CyanBed => 0.2f32, - BlockKind::SmoothBasalt => 0f32, - BlockKind::GrayConcretePowder => 0.5f32, - BlockKind::BrownBed => 0.2f32, - BlockKind::PolishedAndesite => 6f32, - BlockKind::AcaciaFence => 3f32, - BlockKind::WaxedCutCopper => 0f32, - BlockKind::PrismarineBricks => 6f32, - BlockKind::IronBars => 6f32, - BlockKind::RedTulip => 0f32, - BlockKind::DiamondBlock => 6f32, - BlockKind::OxeyeDaisy => 0f32, - BlockKind::PinkCandle => 0.1f32, - BlockKind::GrayBanner => 1f32, - BlockKind::LightBlueWallBanner => 1f32, - BlockKind::BlackCandleCake => 0f32, - BlockKind::CutCopper => 0f32, - BlockKind::LightGrayTerracotta => 4.2f32, - BlockKind::SpruceStairs => 3f32, - BlockKind::CutSandstone => 0.8f32, - BlockKind::PowderSnowCauldron => 0f32, - BlockKind::Clay => 0.6f32, - BlockKind::ChiseledQuartzBlock => 0.8f32, - BlockKind::JungleSlab => 3f32, - BlockKind::TurtleEgg => 0.5f32, - BlockKind::CobbledDeepslate => 6f32, - BlockKind::AcaciaPlanks => 3f32, - BlockKind::Kelp => 0f32, - BlockKind::BrownBanner => 1f32, - BlockKind::GrayTerracotta => 4.2f32, - BlockKind::PinkCandleCake => 0f32, - BlockKind::OakTrapdoor => 3f32, - BlockKind::BlueWallBanner => 1f32, - BlockKind::PlayerWallHead => 1f32, - BlockKind::LilyOfTheValley => 0f32, - BlockKind::OxidizedCutCopperSlab => 0f32, - BlockKind::Allium => 0f32, - BlockKind::QuartzSlab => 6f32, - BlockKind::DarkOakPlanks => 3f32, - BlockKind::SmoothSandstoneSlab => 6f32, - BlockKind::LapisOre => 3f32, - BlockKind::Gravel => 0.6f32, - BlockKind::CyanCarpet => 0.1f32, - BlockKind::QuartzBricks => 0.8f32, - BlockKind::GreenConcrete => 1.8f32, - BlockKind::MagentaWool => 0.8f32, - BlockKind::GrayBed => 0.2f32, - BlockKind::YellowCandleCake => 0f32, - BlockKind::RedConcretePowder => 0.5f32, - BlockKind::SporeBlossom => 0f32, - BlockKind::Cornflower => 0f32, - BlockKind::BlueCarpet => 0.1f32, - BlockKind::SmoothQuartzStairs => 6f32, - BlockKind::BuddingAmethyst => 1.5f32, - BlockKind::JungleWallSign => 1f32, - BlockKind::DeepslateRedstoneOre => 3f32, - BlockKind::BrownStainedGlassPane => 0.3f32, - BlockKind::StrippedAcaciaWood => 2f32, - BlockKind::JungleFenceGate => 3f32, - BlockKind::SmallAmethystBud => 0f32, - BlockKind::CobblestoneWall => 6f32, - BlockKind::OrangeBed => 0.2f32, - BlockKind::BrainCoralBlock => 6f32, - BlockKind::TubeCoralWallFan => 0f32, - BlockKind::RedNetherBrickStairs => 6f32, - BlockKind::DaylightDetector => 0.2f32, - BlockKind::CutRedSandstone => 0.8f32, - BlockKind::NetherPortal => -1f32, - BlockKind::DeadFireCoralBlock => 6f32, - BlockKind::PottedBrownMushroom => 0f32, - BlockKind::CoalBlock => 6f32, - BlockKind::DeepslateGoldOre => 3f32, - BlockKind::LightBlueBed => 0.2f32, - BlockKind::SnowBlock => 0.2f32, - BlockKind::AcaciaSapling => 0f32, - BlockKind::TwistingVines => 0f32, - BlockKind::DeepslateBricks => 0f32, - BlockKind::WarpedPlanks => 3f32, - BlockKind::GrayWallBanner => 1f32, - BlockKind::ExposedCutCopperSlab => 0f32, - BlockKind::RawIronBlock => 6f32, - BlockKind::DarkOakTrapdoor => 3f32, - BlockKind::PurpleConcrete => 1.8f32, - BlockKind::SprucePlanks => 3f32, - BlockKind::DarkOakSign => 1f32, - BlockKind::GrayConcrete => 1.8f32, - BlockKind::DarkOakLog => 2f32, - BlockKind::PinkGlazedTerracotta => 1.4f32, - BlockKind::CartographyTable => 2.5f32, - BlockKind::DarkOakWallSign => 1f32, - BlockKind::AcaciaLeaves => 0.2f32, - BlockKind::CrackedNetherBricks => 6f32, - BlockKind::BlackCandle => 0.1f32, - BlockKind::SoulSoil => 0.5f32, - BlockKind::PottedDandelion => 0f32, - BlockKind::PrismarineStairs => 6f32, - BlockKind::DeepslateTileStairs => 0f32, - BlockKind::AcaciaWallSign => 1f32, - BlockKind::GrayStainedGlass => 0.3f32, - BlockKind::MossCarpet => 0.1f32, - BlockKind::CyanShulkerBox => 2f32, - BlockKind::StrippedOakLog => 2f32, - BlockKind::RedNetherBrickWall => 6f32, - BlockKind::Carrots => 0f32, - BlockKind::StrippedDarkOakWood => 2f32, - BlockKind::WitherRose => 0f32, - BlockKind::RedSandstoneStairs => 0.8f32, - BlockKind::BlackConcretePowder => 0.5f32, - BlockKind::RedBanner => 1f32, - BlockKind::PolishedDeepslate => 0f32, - BlockKind::SandstoneSlab => 6f32, - BlockKind::WallTorch => 0f32, - BlockKind::RawGoldBlock => 6f32, - BlockKind::BirchSign => 1f32, - BlockKind::NetherWart => 0f32, - BlockKind::Glass => 0.3f32, - BlockKind::LightGrayWallBanner => 1f32, - BlockKind::Lava => 100f32, - BlockKind::FireCoralWallFan => 0f32, - BlockKind::ChiseledDeepslate => 0f32, - BlockKind::InfestedStone => 0f32, - BlockKind::RedConcrete => 1.8f32, - BlockKind::OrangeTulip => 0f32, - BlockKind::CobbledDeepslateStairs => 0f32, - BlockKind::AncientDebris => 1200f32, - BlockKind::BirchDoor => 3f32, - BlockKind::Hopper => 4.8f32, - BlockKind::WaxedExposedCopper => 0f32, - BlockKind::LightBlueWool => 0.8f32, - BlockKind::BlackShulkerBox => 2f32, - BlockKind::PottedBirchSapling => 0f32, - BlockKind::PowderSnow => 0.25f32, - BlockKind::BrownCandle => 0.1f32, - BlockKind::DirtPath => 0.65f32, - BlockKind::BrownWallBanner => 1f32, - BlockKind::MagentaCandleCake => 0f32, - BlockKind::DeadTubeCoralWallFan => 0f32, - BlockKind::ShulkerBox => 2f32, - BlockKind::GreenGlazedTerracotta => 1.4f32, - BlockKind::Seagrass => 0f32, - BlockKind::JungleTrapdoor => 3f32, - BlockKind::Andesite => 6f32, - BlockKind::PottedBlueOrchid => 0f32, - BlockKind::BlueConcretePowder => 0.5f32, - BlockKind::GrassBlock => 0.6f32, - BlockKind::JungleLog => 2f32, - BlockKind::Furnace => 3.5f32, - BlockKind::LightGrayWool => 0.8f32, - BlockKind::SpruceLeaves => 0.2f32, - BlockKind::Chain => 6f32, - BlockKind::Composter => 0.6f32, - BlockKind::PrismarineSlab => 6f32, - BlockKind::CrimsonSign => 1f32, - BlockKind::NetherGoldOre => 3f32, - BlockKind::PinkStainedGlass => 0.3f32, - BlockKind::Podzol => 0.5f32, - BlockKind::PolishedBasalt => 4.2f32, - BlockKind::PrismarineBrickStairs => 6f32, - BlockKind::CrimsonTrapdoor => 3f32, - BlockKind::RoseBush => 0f32, - BlockKind::DeepslateEmeraldOre => 3f32, - BlockKind::WeatheredCutCopperStairs => 0f32, - BlockKind::PurpleGlazedTerracotta => 1.4f32, - BlockKind::PinkWool => 0.8f32, - BlockKind::Beacon => 3f32, - BlockKind::RedBed => 0.2f32, - BlockKind::BlueBed => 0.2f32, - BlockKind::HeavyWeightedPressurePlate => 0.5f32, - BlockKind::ZombieWallHead => 1f32, - BlockKind::LightGrayCarpet => 0.1f32, - BlockKind::YellowConcretePowder => 0.5f32, - BlockKind::CraftingTable => 2.5f32, - BlockKind::SoulLantern => 3.5f32, - BlockKind::BlueStainedGlassPane => 0.3f32, - BlockKind::OxidizedCopper => 6f32, - BlockKind::PackedIce => 0.5f32, - BlockKind::BubbleColumn => 0f32, - BlockKind::Bell => 5f32, - BlockKind::PurpurStairs => 6f32, - BlockKind::CyanCandleCake => 0f32, - BlockKind::WarpedPressurePlate => 0.5f32, - BlockKind::AcaciaSign => 1f32, - BlockKind::Air => 0f32, - BlockKind::WhiteBed => 0.2f32, - BlockKind::FireCoralFan => 0f32, - BlockKind::CrimsonPressurePlate => 0.5f32, - BlockKind::OrangeStainedGlassPane => 0.3f32, - BlockKind::TintedGlass => 0f32, - BlockKind::GrayCarpet => 0.1f32, - BlockKind::EndStoneBrickSlab => 9f32, - BlockKind::WhiteConcrete => 1.8f32, - BlockKind::BirchPlanks => 3f32, - BlockKind::SpruceWallSign => 1f32, - BlockKind::IronBlock => 6f32, - BlockKind::Granite => 6f32, - BlockKind::LimeWallBanner => 1f32, - BlockKind::AzureBluet => 0f32, - BlockKind::PinkWallBanner => 1f32, - BlockKind::WhiteGlazedTerracotta => 1.4f32, - BlockKind::PolishedAndesiteStairs => 6f32, - BlockKind::Jigsaw => 3600000f32, - BlockKind::PurpurPillar => 6f32, - BlockKind::JungleDoor => 3f32, - BlockKind::PolishedDiorite => 6f32, - BlockKind::CrimsonRoots => 0f32, - BlockKind::SandstoneStairs => 0.8f32, - BlockKind::MushroomStem => 0.2f32, - BlockKind::LimeTerracotta => 4.2f32, - BlockKind::PolishedBlackstoneBrickStairs => 6f32, - BlockKind::SoulTorch => 0f32, - BlockKind::WarpedButton => 0.5f32, - BlockKind::RedSandstoneWall => 0.8f32, - BlockKind::TripwireHook => 0f32, - BlockKind::CyanWallBanner => 1f32, - BlockKind::BlueOrchid => 0f32, - BlockKind::YellowGlazedTerracotta => 1.4f32, - BlockKind::Cobweb => 4f32, - BlockKind::CyanStainedGlass => 0.3f32, - BlockKind::GreenTerracotta => 4.2f32, - BlockKind::InfestedDeepslate => 0f32, - BlockKind::Ladder => 0.4f32, - BlockKind::Lodestone => 3.5f32, - BlockKind::TubeCoralBlock => 6f32, - BlockKind::Stone => 6f32, - BlockKind::PottedCrimsonRoots => 0f32, - BlockKind::SprucePressurePlate => 0.5f32, - BlockKind::LimeCandle => 0.1f32, - BlockKind::ChiseledStoneBricks => 6f32, - BlockKind::CoalOre => 3f32, - BlockKind::CreeperHead => 1f32, - BlockKind::BirchTrapdoor => 3f32, - BlockKind::ChiseledNetherBricks => 6f32, - BlockKind::DeadHornCoralWallFan => 0f32, - BlockKind::PinkCarpet => 0.1f32, - BlockKind::VoidAir => 0f32, - BlockKind::SmoothRedSandstoneSlab => 6f32, - BlockKind::HoneyBlock => 0f32, - BlockKind::YellowTerracotta => 4.2f32, - BlockKind::StructureVoid => 0f32, - BlockKind::Cactus => 0.4f32, - BlockKind::BirchSapling => 0f32, - BlockKind::WaxedOxidizedCutCopperStairs => 0f32, - BlockKind::OakSapling => 0f32, - BlockKind::IronOre => 3f32, - BlockKind::SmoothSandstoneStairs => 6f32, - BlockKind::WhiteTulip => 0f32, - BlockKind::NetherBrickWall => 6f32, - BlockKind::ChiseledRedSandstone => 0.8f32, - BlockKind::BirchLeaves => 0.2f32, - BlockKind::ActivatorRail => 0.7f32, - BlockKind::QuartzStairs => 0.8f32, - BlockKind::LightGrayShulkerBox => 2f32, - BlockKind::SmoothRedSandstoneStairs => 6f32, - BlockKind::PurpleWool => 0.8f32, - BlockKind::PolishedBlackstoneBricks => 6f32, - BlockKind::EndStone => 9f32, - BlockKind::Azalea => 0f32, - BlockKind::Melon => 1f32, - BlockKind::Lilac => 0f32, - BlockKind::LightGrayStainedGlassPane => 0.3f32, - BlockKind::StickyPiston => 1.5f32, - BlockKind::Snow => 0.1f32, - BlockKind::SpruceSlab => 3f32, - BlockKind::LightGrayCandleCake => 0f32, - BlockKind::DriedKelpBlock => 2.5f32, - BlockKind::PottedSpruceSapling => 0f32, - BlockKind::BlackStainedGlass => 0.3f32, - BlockKind::BlueCandle => 0.1f32, - BlockKind::Dandelion => 0f32, - BlockKind::BrownConcretePowder => 0.5f32, - BlockKind::IronDoor => 5f32, - BlockKind::DeepslateCoalOre => 3f32, - BlockKind::OakFence => 3f32, - BlockKind::IronTrapdoor => 5f32, - BlockKind::GraniteWall => 6f32, - BlockKind::SpruceTrapdoor => 3f32, - BlockKind::PinkBanner => 1f32, - BlockKind::LapisBlock => 3f32, - BlockKind::GreenWool => 0.8f32, - BlockKind::Piston => 1.5f32, - BlockKind::MagentaGlazedTerracotta => 1.4f32, - BlockKind::Grindstone => 6f32, - BlockKind::StrippedBirchWood => 2f32, - BlockKind::CutSandstoneSlab => 6f32, - BlockKind::LimeShulkerBox => 2f32, - BlockKind::StrippedSpruceWood => 2f32, - BlockKind::Ice => 0.5f32, - BlockKind::PurpleCarpet => 0.1f32, - BlockKind::GreenConcretePowder => 0.5f32, - BlockKind::DripstoneBlock => 1f32, - BlockKind::DeepslateDiamondOre => 3f32, - BlockKind::WhiteCandle => 0.1f32, - BlockKind::SpruceDoor => 3f32, - BlockKind::DeadBrainCoralBlock => 6f32, - BlockKind::Observer => 3f32, - BlockKind::WeepingVinesPlant => 0f32, - BlockKind::PottedWarpedRoots => 0f32, - BlockKind::AttachedMelonStem => 0f32, - BlockKind::GraniteSlab => 6f32, - BlockKind::CrimsonFungus => 0f32, - BlockKind::CutCopperSlab => 0f32, - BlockKind::QuartzBlock => 0.8f32, - BlockKind::Smoker => 3.5f32, - BlockKind::OakPlanks => 3f32, - BlockKind::JunglePlanks => 3f32, - BlockKind::HornCoralBlock => 6f32, - BlockKind::PottedCrimsonFungus => 0f32, - BlockKind::BambooSapling => 1f32, - BlockKind::DeepslateTileSlab => 0f32, - BlockKind::BlueTerracotta => 4.2f32, - BlockKind::CrackedPolishedBlackstoneBricks => 6f32, - BlockKind::FireCoral => 0f32, - BlockKind::JunglePressurePlate => 0.5f32, - BlockKind::ChainCommandBlock => 3600000f32, - BlockKind::BlackstoneWall => 6f32, - BlockKind::HoneycombBlock => 0.6f32, - BlockKind::NetherSprouts => 0f32, - BlockKind::Basalt => 4.2f32, - BlockKind::AcaciaFenceGate => 3f32, - BlockKind::CrimsonFence => 3f32, - BlockKind::GildedBlackstone => 6f32, - BlockKind::WarpedNylium => 0.4f32, - BlockKind::Sandstone => 0.8f32, - BlockKind::PurpleCandle => 0.1f32, - BlockKind::CyanWool => 0.8f32, - BlockKind::Dropper => 3.5f32, - BlockKind::ChorusFlower => 0.4f32, - BlockKind::Chest => 2.5f32, - BlockKind::CrackedDeepslateTiles => 0f32, - BlockKind::Grass => 0f32, - BlockKind::DarkPrismarineStairs => 6f32, - BlockKind::OakWallSign => 1f32, - BlockKind::PottedPoppy => 0f32, - BlockKind::GrayCandle => 0.1f32, - BlockKind::WitherSkeletonSkull => 1f32, - BlockKind::RedCandle => 0.1f32, - BlockKind::RedstoneOre => 3f32, - BlockKind::PumpkinStem => 0f32, - BlockKind::CrimsonStairs => 3f32, - BlockKind::WaxedCutCopperSlab => 0f32, - BlockKind::LimeConcrete => 1.8f32, - BlockKind::FireCoralBlock => 6f32, - BlockKind::Water => 100f32, - BlockKind::BrownTerracotta => 4.2f32, - BlockKind::StoneBrickSlab => 6f32, - BlockKind::PottedOxeyeDaisy => 0f32, - BlockKind::WhiteBanner => 1f32, - BlockKind::WarpedTrapdoor => 3f32, - BlockKind::Bookshelf => 1.5f32, - BlockKind::PottedAzureBluet => 0f32, - BlockKind::MossyCobblestoneSlab => 6f32, - BlockKind::LightWeightedPressurePlate => 0.5f32, - BlockKind::PolishedAndesiteSlab => 6f32, - BlockKind::PolishedBlackstoneBrickSlab => 6f32, - BlockKind::NetherBrickSlab => 6f32, - BlockKind::GreenWallBanner => 1f32, - BlockKind::Jukebox => 6f32, - BlockKind::LargeAmethystBud => 0f32, - BlockKind::PolishedDeepslateSlab => 0f32, - BlockKind::YellowStainedGlass => 0.3f32, - BlockKind::HangingRoots => 0f32, - BlockKind::LightBlueCandleCake => 0f32, - BlockKind::Bedrock => 3600000f32, - BlockKind::BrickStairs => 6f32, - BlockKind::TubeCoral => 0f32, - BlockKind::SmithingTable => 2.5f32, - BlockKind::MossBlock => 0.1f32, - BlockKind::SoulCampfire => 2f32, - BlockKind::BubbleCoralWallFan => 0f32, - BlockKind::StructureBlock => 3600000f32, - BlockKind::PottedAzaleaBush => 0f32, - BlockKind::DeadHornCoralFan => 0f32, - BlockKind::MagentaCarpet => 0.1f32, - BlockKind::GreenCarpet => 0.1f32, - BlockKind::WarpedSign => 1f32, - BlockKind::LightBlueStainedGlass => 0.3f32, - BlockKind::LightBlueConcretePowder => 0.5f32, - BlockKind::StrippedWarpedStem => 2f32, - BlockKind::WarpedFenceGate => 3f32, - BlockKind::DeadBubbleCoral => 0f32, - BlockKind::MagentaShulkerBox => 2f32, - BlockKind::Lantern => 3.5f32, - BlockKind::RedSandstone => 0.8f32, - BlockKind::Fire => 0f32, - BlockKind::WhiteTerracotta => 4.2f32, - BlockKind::LightBlueBanner => 1f32, - BlockKind::OakButton => 0.5f32, - BlockKind::TrappedChest => 2.5f32, - BlockKind::PolishedBlackstoneButton => 0.5f32, - BlockKind::OrangeStainedGlass => 0.3f32, - BlockKind::BlackstoneStairs => 6f32, - BlockKind::WaxedOxidizedCutCopper => 0f32, - BlockKind::CyanTerracotta => 4.2f32, - BlockKind::Wheat => 0f32, - BlockKind::BirchWallSign => 1f32, - BlockKind::SmoothQuartz => 6f32, - BlockKind::LilyPad => 0f32, - BlockKind::AcaciaStairs => 3f32, - BlockKind::BlueShulkerBox => 2f32, - BlockKind::WhiteConcretePowder => 0.5f32, - BlockKind::MossyStoneBrickSlab => 6f32, - BlockKind::RootedDirt => 0.5f32, - BlockKind::OakLeaves => 0.2f32, - BlockKind::RedMushroomBlock => 0.2f32, - BlockKind::StrippedCrimsonHyphae => 2f32, - BlockKind::SmoothSandstone => 6f32, - BlockKind::CyanConcrete => 1.8f32, - BlockKind::Netherrack => 0.4f32, - BlockKind::PottedCornflower => 0f32, - BlockKind::PointedDripstone => 3f32, - BlockKind::DarkPrismarineSlab => 6f32, - BlockKind::DeepslateBrickWall => 0f32, - BlockKind::SugarCane => 0f32, - BlockKind::RedStainedGlass => 0.3f32, - BlockKind::YellowStainedGlassPane => 0.3f32, - BlockKind::WaxedCopperBlock => 0f32, - BlockKind::MagentaWallBanner => 1f32, - BlockKind::FlowerPot => 0f32, - BlockKind::CaveVines => 0f32, - BlockKind::DeadTubeCoralFan => 0f32, - BlockKind::MovingPiston => -1f32, - BlockKind::PurpurSlab => 6f32, - BlockKind::LavaCauldron => 0f32, - BlockKind::OrangeCarpet => 0.1f32, - BlockKind::AndesiteStairs => 6f32, - BlockKind::Barrel => 2.5f32, - BlockKind::OrangeShulkerBox => 2f32, - BlockKind::StoneBrickStairs => 6f32, - BlockKind::HornCoral => 0f32, - BlockKind::PolishedBlackstoneSlab => 6f32, - BlockKind::SpruceSign => 1f32, - BlockKind::PurpleWallBanner => 1f32, - BlockKind::SpruceFenceGate => 3f32, - BlockKind::GreenCandle => 0.1f32, - BlockKind::PlayerHead => 1f32, - BlockKind::CopperOre => 0f32, - BlockKind::EmeraldOre => 3f32, - BlockKind::RedSandstoneSlab => 6f32, - BlockKind::BrownCarpet => 0.1f32, - BlockKind::DeepslateBrickStairs => 0f32, - BlockKind::LightGrayBanner => 1f32, - BlockKind::Tnt => 0f32, - BlockKind::RedstoneBlock => 6f32, - BlockKind::Terracotta => 4.2f32, - BlockKind::GreenBed => 0.2f32, - BlockKind::Cauldron => 2f32, - BlockKind::RepeatingCommandBlock => 3600000f32, - BlockKind::DioriteWall => 6f32, - BlockKind::PurpleBed => 0.2f32, - BlockKind::Scaffolding => 0f32, - BlockKind::InfestedChiseledStoneBricks => 0f32, - BlockKind::PinkConcretePowder => 0.5f32, - } - } -} -impl BlockKind { - #[doc = "Returns the `hardness` property of this `BlockKind`."] - #[inline] - pub fn hardness(&self) -> f32 { - match self { - BlockKind::Light => -1f32, - BlockKind::CrimsonFungus => 0f32, - BlockKind::BlueConcrete => 1.8f32, - BlockKind::CutRedSandstoneSlab => 2f32, - BlockKind::CyanCarpet => 0.1f32, - BlockKind::MagentaStainedGlass => 0.3f32, - BlockKind::RedWallBanner => 1f32, - BlockKind::PinkTulip => 0f32, - BlockKind::DarkPrismarineSlab => 1.5f32, - BlockKind::PottedCactus => 0f32, - BlockKind::LimeBed => 0.2f32, - BlockKind::Shroomlight => 1f32, - BlockKind::FireCoralFan => 0f32, - BlockKind::Bedrock => -1f32, - BlockKind::CyanConcretePowder => 0.5f32, - BlockKind::AcaciaLeaves => 0.2f32, - BlockKind::PolishedAndesiteSlab => 1.5f32, - BlockKind::WarpedButton => 0.5f32, - BlockKind::WaxedCutCopperStairs => 0f32, - BlockKind::SmoothRedSandstoneStairs => 2f32, - BlockKind::PinkWool => 0.8f32, - BlockKind::WhiteBanner => 1f32, - BlockKind::AcaciaDoor => 3f32, - BlockKind::BrickWall => 2f32, - BlockKind::CutSandstoneSlab => 2f32, - BlockKind::InfestedStoneBricks => 0f32, - BlockKind::StrippedSpruceLog => 2f32, - BlockKind::LightBlueWallBanner => 1f32, - BlockKind::DeepslateRedstoneOre => 4.5f32, - BlockKind::BoneBlock => 2f32, - BlockKind::LightBlueCandle => 0.1f32, - BlockKind::MagentaCandleCake => 0f32, - BlockKind::Candle => 0.1f32, - BlockKind::CreeperHead => 1f32, - BlockKind::CrimsonFenceGate => 2f32, - BlockKind::CyanStainedGlass => 0.3f32, - BlockKind::BlackTerracotta => 1.25f32, - BlockKind::SpruceLeaves => 0.2f32, - BlockKind::OrangeGlazedTerracotta => 1.4f32, - BlockKind::JungleWallSign => 1f32, - BlockKind::RepeatingCommandBlock => -1f32, - BlockKind::OxidizedCutCopper => 0f32, - BlockKind::DirtPath => 0.65f32, - BlockKind::DiamondOre => 3f32, - BlockKind::SoulTorch => 0f32, - BlockKind::CoarseDirt => 0.5f32, - BlockKind::PurpleCandle => 0.1f32, - BlockKind::ChiseledDeepslate => 0f32, - BlockKind::PoweredRail => 0.7f32, - BlockKind::PrismarineBrickStairs => 1.5f32, - BlockKind::StoneBricks => 1.5f32, - BlockKind::PinkStainedGlassPane => 0.3f32, - BlockKind::MagentaConcrete => 1.8f32, - BlockKind::BlueGlazedTerracotta => 1.4f32, - BlockKind::Basalt => 1.25f32, - BlockKind::PolishedGraniteSlab => 1.5f32, - BlockKind::OrangeWallBanner => 1f32, - BlockKind::CommandBlock => -1f32, - BlockKind::BrickStairs => 2f32, - BlockKind::PinkCarpet => 0.1f32, - BlockKind::SmithingTable => 2.5f32, - BlockKind::PolishedDeepslateStairs => 0f32, - BlockKind::DeadBush => 0f32, - BlockKind::AmethystCluster => 1.5f32, - BlockKind::StrippedBirchWood => 2f32, - BlockKind::SweetBerryBush => 0f32, - BlockKind::LightGrayWallBanner => 1f32, - BlockKind::CoalOre => 3f32, - BlockKind::OakLog => 2f32, - BlockKind::OrangeCandleCake => 0f32, - BlockKind::MossCarpet => 0.1f32, - BlockKind::BirchLeaves => 0.2f32, - BlockKind::OakWallSign => 1f32, - BlockKind::BirchFenceGate => 2f32, - BlockKind::OrangeStainedGlass => 0.3f32, - BlockKind::StrippedWarpedHyphae => 2f32, - BlockKind::CyanCandle => 0.1f32, - BlockKind::Poppy => 0f32, - BlockKind::MagentaWallBanner => 1f32, - BlockKind::CobblestoneWall => 2f32, - BlockKind::StrippedSpruceWood => 2f32, - BlockKind::QuartzBlock => 0.8f32, - BlockKind::RedSandstoneStairs => 0.8f32, - BlockKind::Air => 0f32, - BlockKind::SpruceLog => 2f32, - BlockKind::BlueBed => 0.2f32, - BlockKind::SpruceTrapdoor => 3f32, - BlockKind::WarpedHyphae => 2f32, - BlockKind::CryingObsidian => 50f32, - BlockKind::StrippedOakLog => 2f32, - BlockKind::DeepslateIronOre => 4.5f32, - BlockKind::Potatoes => 0f32, - BlockKind::SpruceWood => 2f32, - BlockKind::SoulSand => 0.5f32, - BlockKind::OakButton => 0.5f32, - BlockKind::HangingRoots => 0f32, - BlockKind::Stone => 1.5f32, - BlockKind::NoteBlock => 0.8f32, - BlockKind::AcaciaPlanks => 2f32, - BlockKind::BirchSign => 1f32, - BlockKind::YellowWallBanner => 1f32, - BlockKind::JungleTrapdoor => 3f32, - BlockKind::RedNetherBricks => 2f32, - BlockKind::PurpleConcretePowder => 0.5f32, - BlockKind::DeadFireCoralWallFan => 0f32, - BlockKind::OxidizedCutCopperSlab => 0f32, - BlockKind::CobbledDeepslateStairs => 0f32, - BlockKind::CobbledDeepslateSlab => 0f32, - BlockKind::RootedDirt => 0.5f32, - BlockKind::EndStoneBrickStairs => 3f32, - BlockKind::ChorusFlower => 0.4f32, - BlockKind::Rail => 0.7f32, - BlockKind::LightGrayCandle => 0.1f32, - BlockKind::CyanBanner => 1f32, - BlockKind::InfestedStone => 0f32, - BlockKind::GreenShulkerBox => 2f32, - BlockKind::AcaciaWood => 2f32, - BlockKind::CyanWool => 0.8f32, - BlockKind::WhiteCandleCake => 0f32, - BlockKind::MossyCobblestone => 2f32, - BlockKind::ChiseledQuartzBlock => 0.8f32, - BlockKind::PurpleWool => 0.8f32, - BlockKind::NetherBrickStairs => 2f32, - BlockKind::MagentaCandle => 0.1f32, - BlockKind::EndStoneBrickSlab => 3f32, - BlockKind::Prismarine => 1.5f32, - BlockKind::DioriteStairs => 1.5f32, - BlockKind::BrownCandle => 0.1f32, - BlockKind::CrimsonSign => 1f32, - BlockKind::CobbledDeepslate => 3.5f32, - BlockKind::WeepingVines => 0f32, - BlockKind::BlackCarpet => 0.1f32, - BlockKind::VoidAir => 0f32, - BlockKind::DarkOakSapling => 0f32, - BlockKind::CrackedStoneBricks => 1.5f32, - BlockKind::CrimsonPressurePlate => 0.5f32, - BlockKind::PottedCrimsonRoots => 0f32, - BlockKind::RedStainedGlass => 0.3f32, - BlockKind::LimeBanner => 1f32, - BlockKind::SporeBlossom => 0f32, - BlockKind::EmeraldBlock => 5f32, - BlockKind::DarkOakButton => 0.5f32, - BlockKind::MossyCobblestoneWall => 2f32, - BlockKind::PolishedBlackstoneSlab => 2f32, - BlockKind::BubbleCoralWallFan => 0f32, - BlockKind::GreenCandleCake => 0f32, - BlockKind::DeadBubbleCoral => 0f32, - BlockKind::AcaciaFenceGate => 2f32, - BlockKind::PrismarineBricks => 1.5f32, - BlockKind::CaveVinesPlant => 0f32, - BlockKind::SeaLantern => 0.3f32, - BlockKind::CartographyTable => 2.5f32, - BlockKind::ExposedCutCopperSlab => 0f32, - BlockKind::WhiteWool => 0.8f32, - BlockKind::StrippedBirchLog => 2f32, - BlockKind::QuartzBricks => 0.8f32, - BlockKind::Farmland => 0.6f32, - BlockKind::SmoothBasalt => 0f32, - BlockKind::PottedWarpedRoots => 0f32, - BlockKind::SmallAmethystBud => 0f32, - BlockKind::RedNetherBrickSlab => 2f32, - BlockKind::BlueStainedGlass => 0.3f32, - BlockKind::WaxedCutCopperSlab => 0f32, - BlockKind::CopperOre => 0f32, - BlockKind::LightBlueStainedGlassPane => 0.3f32, - BlockKind::Clay => 0.6f32, - BlockKind::Chain => 5f32, - BlockKind::Glass => 0.3f32, - BlockKind::Cobblestone => 2f32, - BlockKind::MagentaWool => 0.8f32, - BlockKind::PottedAzaleaBush => 0f32, - BlockKind::OrangeWool => 0.8f32, - BlockKind::Observer => 3f32, - BlockKind::PottedOxeyeDaisy => 0f32, - BlockKind::PrismarineBrickSlab => 1.5f32, - BlockKind::PottedBlueOrchid => 0f32, - BlockKind::CaveAir => 0f32, - BlockKind::WarpedTrapdoor => 3f32, - BlockKind::BlueCarpet => 0.1f32, - BlockKind::Loom => 2.5f32, - BlockKind::SpruceDoor => 3f32, - BlockKind::NetherGoldOre => 3f32, - BlockKind::Granite => 1.5f32, - BlockKind::Podzol => 0.5f32, - BlockKind::Lilac => 0f32, - BlockKind::CutSandstone => 0.8f32, - BlockKind::LightWeightedPressurePlate => 0.5f32, - BlockKind::ChiseledStoneBricks => 1.5f32, - BlockKind::WaxedExposedCutCopper => 0f32, - BlockKind::StrippedCrimsonHyphae => 2f32, - BlockKind::Ice => 0.5f32, - BlockKind::TintedGlass => 0f32, - BlockKind::PurpurSlab => 2f32, - BlockKind::SoulFire => 0f32, - BlockKind::BrownBanner => 1f32, - BlockKind::WarpedSlab => 2f32, - BlockKind::NetherBrickSlab => 2f32, - BlockKind::SpruceFenceGate => 2f32, - BlockKind::DeadBubbleCoralFan => 0f32, - BlockKind::WaxedOxidizedCutCopper => 0f32, - BlockKind::GreenWallBanner => 1f32, - BlockKind::PurpurBlock => 1.5f32, - BlockKind::BlackConcrete => 1.8f32, - BlockKind::StrippedDarkOakLog => 2f32, - BlockKind::Fern => 0f32, - BlockKind::DragonEgg => 3f32, - BlockKind::AmethystBlock => 1.5f32, - BlockKind::PurpleBanner => 1f32, - BlockKind::OakSapling => 0f32, - BlockKind::PolishedBasalt => 1.25f32, - BlockKind::Sunflower => 0f32, - BlockKind::CyanTerracotta => 1.25f32, - BlockKind::Barrel => 2.5f32, - BlockKind::SandstoneStairs => 0.8f32, - BlockKind::OrangeCandle => 0.1f32, - BlockKind::LimeStainedGlassPane => 0.3f32, - BlockKind::LimeCandleCake => 0f32, - BlockKind::AcaciaSapling => 0f32, - BlockKind::BuddingAmethyst => 1.5f32, - BlockKind::PurpleGlazedTerracotta => 1.4f32, - BlockKind::RawCopperBlock => 5f32, - BlockKind::DarkOakFence => 2f32, - BlockKind::PinkWallBanner => 1f32, - BlockKind::JunglePlanks => 2f32, - BlockKind::PolishedDeepslateWall => 0f32, - BlockKind::BrownMushroomBlock => 0.2f32, - BlockKind::Lodestone => 3.5f32, - BlockKind::TubeCoralWallFan => 0f32, - BlockKind::Cornflower => 0f32, - BlockKind::BigDripleaf => 0.1f32, - BlockKind::MagentaStainedGlassPane => 0.3f32, - BlockKind::MagentaCarpet => 0.1f32, - BlockKind::CobblestoneSlab => 2f32, - BlockKind::LapisOre => 3f32, - BlockKind::ChorusPlant => 0.4f32, - BlockKind::BubbleColumn => 0f32, - BlockKind::YellowWool => 0.8f32, - BlockKind::DarkOakWallSign => 1f32, - BlockKind::GraniteSlab => 1.5f32, - BlockKind::DeepslateEmeraldOre => 4.5f32, - BlockKind::PolishedGranite => 1.5f32, - BlockKind::PottedPoppy => 0f32, - BlockKind::LimeWool => 0.8f32, - BlockKind::OrangeBed => 0.2f32, - BlockKind::RedCandle => 0.1f32, - BlockKind::RedSand => 0.5f32, - BlockKind::BirchFence => 2f32, - BlockKind::DaylightDetector => 0.2f32, - BlockKind::CrackedPolishedBlackstoneBricks => 1.5f32, - BlockKind::DarkOakTrapdoor => 3f32, - BlockKind::WitherSkeletonWallSkull => 1f32, - BlockKind::BirchPlanks => 2f32, - BlockKind::DeepslateGoldOre => 4.5f32, - BlockKind::PurpleCarpet => 0.1f32, - BlockKind::DeepslateLapisOre => 4.5f32, - BlockKind::DioriteWall => 1.5f32, - BlockKind::WeepingVinesPlant => 0f32, - BlockKind::LimeStainedGlass => 0.3f32, - BlockKind::BlackShulkerBox => 2f32, - BlockKind::PolishedBlackstone => 2f32, - BlockKind::WarpedWallSign => 1f32, - BlockKind::GlowLichen => 0.2f32, - BlockKind::BubbleCoralFan => 0f32, - BlockKind::BirchTrapdoor => 3f32, - BlockKind::PrismarineSlab => 1.5f32, - BlockKind::CrimsonWallSign => 1f32, - BlockKind::AcaciaButton => 0.5f32, - BlockKind::WaxedWeatheredCutCopper => 0f32, - BlockKind::DeadBubbleCoralWallFan => 0f32, - BlockKind::WarpedFungus => 0f32, - BlockKind::BrownCandleCake => 0f32, - BlockKind::AcaciaStairs => 2f32, - BlockKind::IronTrapdoor => 5f32, - BlockKind::BrownWallBanner => 1f32, - BlockKind::SmallDripleaf => 0f32, - BlockKind::LimeConcretePowder => 0.5f32, - BlockKind::FireCoralBlock => 1.5f32, - BlockKind::LightGrayConcretePowder => 0.5f32, - BlockKind::BirchLog => 2f32, - BlockKind::SmoothStoneSlab => 2f32, - BlockKind::DarkPrismarineStairs => 1.5f32, - BlockKind::PurpurStairs => 1.5f32, - BlockKind::CrackedNetherBricks => 2f32, - BlockKind::PurpleTerracotta => 1.25f32, - BlockKind::Grass => 0f32, - BlockKind::SmoothSandstoneSlab => 2f32, - BlockKind::WarpedPlanks => 2f32, - BlockKind::FloweringAzalea => 0f32, - BlockKind::WarpedStem => 2f32, - BlockKind::BrownStainedGlassPane => 0.3f32, - BlockKind::DeepslateBrickSlab => 0f32, - BlockKind::BrownCarpet => 0.1f32, - BlockKind::WeatheredCutCopperSlab => 0f32, - BlockKind::JungleLeaves => 0.2f32, - BlockKind::OrangeConcrete => 1.8f32, - BlockKind::JungleStairs => 2f32, - BlockKind::SoulWallTorch => 0f32, - BlockKind::PolishedBlackstonePressurePlate => 0.5f32, - BlockKind::StickyPiston => 1.5f32, - BlockKind::AzureBluet => 0f32, - BlockKind::GoldOre => 3f32, - BlockKind::RedBed => 0.2f32, - BlockKind::OakSlab => 2f32, - BlockKind::Bamboo => 1f32, - BlockKind::PottedWarpedFungus => 0f32, - BlockKind::QuartzStairs => 0.8f32, - BlockKind::SpruceSlab => 2f32, - BlockKind::WhiteConcrete => 1.8f32, - BlockKind::NetherBrickFence => 2f32, - BlockKind::LilyOfTheValley => 0f32, - BlockKind::GreenGlazedTerracotta => 1.4f32, - BlockKind::WaxedWeatheredCopper => 0f32, - BlockKind::EndPortal => -1f32, - BlockKind::Vine => 0.2f32, - BlockKind::EndPortalFrame => -1f32, - BlockKind::HornCoralBlock => 1.5f32, - BlockKind::ChiseledPolishedBlackstone => 1.5f32, - BlockKind::OakSign => 1f32, - BlockKind::GrayWool => 0.8f32, - BlockKind::PottedJungleSapling => 0f32, - BlockKind::DeepslateBrickWall => 0f32, - BlockKind::LimeCarpet => 0.1f32, - BlockKind::Sandstone => 0.8f32, - BlockKind::BrickSlab => 2f32, - BlockKind::SmoothSandstoneStairs => 2f32, - BlockKind::DarkOakLeaves => 0.2f32, - BlockKind::BlueWool => 0.8f32, - BlockKind::BrownMushroom => 0f32, - BlockKind::YellowTerracotta => 1.25f32, - BlockKind::LightGrayBed => 0.2f32, - BlockKind::JungleSlab => 2f32, - BlockKind::PottedPinkTulip => 0f32, - BlockKind::FrostedIce => 0.5f32, - BlockKind::IronBars => 5f32, - BlockKind::ZombieWallHead => 1f32, - BlockKind::StrippedDarkOakWood => 2f32, - BlockKind::YellowStainedGlass => 0.3f32, - BlockKind::Terracotta => 1.25f32, - BlockKind::SandstoneSlab => 2f32, - BlockKind::WhiteShulkerBox => 2f32, - BlockKind::Repeater => 0f32, - BlockKind::StructureVoid => 0f32, - BlockKind::AttachedPumpkinStem => 0f32, - BlockKind::SprucePlanks => 2f32, - BlockKind::PottedWitherRose => 0f32, - BlockKind::Lava => 100f32, - BlockKind::PottedBamboo => 0f32, - BlockKind::EmeraldOre => 3f32, - BlockKind::DeadBubbleCoralBlock => 1.5f32, - BlockKind::YellowConcrete => 1.8f32, - BlockKind::BirchSlab => 2f32, - BlockKind::BlackConcretePowder => 0.5f32, - BlockKind::AcaciaPressurePlate => 0.5f32, - BlockKind::SlimeBlock => 0f32, - BlockKind::SmoothStone => 2f32, - BlockKind::SmoothRedSandstone => 2f32, - BlockKind::WarpedNylium => 0.4f32, - BlockKind::Tnt => 0f32, - BlockKind::BlueShulkerBox => 2f32, - BlockKind::BrownWool => 0.8f32, - BlockKind::BlueBanner => 1f32, - BlockKind::GraniteWall => 1.5f32, - BlockKind::PottedCrimsonFungus => 0f32, - BlockKind::NetherPortal => -1f32, - BlockKind::BlueIce => 2.8f32, - BlockKind::CutCopper => 0f32, - BlockKind::CobbledDeepslateWall => 0f32, - BlockKind::ChiseledSandstone => 0.8f32, - BlockKind::NetherBrickWall => 2f32, - BlockKind::WarpedRoots => 0f32, - BlockKind::WhiteCandle => 0.1f32, - BlockKind::Lantern => 3.5f32, - BlockKind::WhiteStainedGlass => 0.3f32, - BlockKind::BambooSapling => 1f32, - BlockKind::PackedIce => 0.5f32, - BlockKind::Cobweb => 4f32, - BlockKind::NetherWart => 0f32, - BlockKind::FloweringAzaleaLeaves => 0.2f32, - BlockKind::BlackBanner => 1f32, - BlockKind::AndesiteStairs => 1.5f32, - BlockKind::RedConcrete => 1.8f32, - BlockKind::PowderSnow => 0.25f32, - BlockKind::CaveVines => 0f32, - BlockKind::Tripwire => 0f32, - BlockKind::LimeGlazedTerracotta => 1.4f32, - BlockKind::WhiteBed => 0.2f32, - BlockKind::SpruceButton => 0.5f32, - BlockKind::PottedRedTulip => 0f32, - BlockKind::PinkBanner => 1f32, - BlockKind::PurpleConcrete => 1.8f32, - BlockKind::RedTulip => 0f32, - BlockKind::PinkStainedGlass => 0.3f32, - BlockKind::BubbleCoralBlock => 1.5f32, - BlockKind::PlayerHead => 1f32, - BlockKind::SmoothQuartz => 2f32, - BlockKind::Anvil => 5f32, - BlockKind::DeadFireCoral => 0f32, - BlockKind::InfestedCobblestone => 0f32, - BlockKind::ChainCommandBlock => -1f32, - BlockKind::TurtleEgg => 0.5f32, - BlockKind::GreenCarpet => 0.1f32, - BlockKind::WeatheredCutCopperStairs => 0f32, - BlockKind::RedNetherBrickWall => 2f32, - BlockKind::BrownTerracotta => 1.25f32, - BlockKind::OrangeCarpet => 0.1f32, - BlockKind::LightBlueBed => 0.2f32, - BlockKind::PottedWhiteTulip => 0f32, - BlockKind::DragonHead => 1f32, - BlockKind::LightBlueCandleCake => 0f32, - BlockKind::SpruceSapling => 0f32, - BlockKind::Water => 100f32, - BlockKind::BlackStainedGlass => 0.3f32, - BlockKind::InfestedChiseledStoneBricks => 0f32, - BlockKind::LightBlueConcretePowder => 0.5f32, - BlockKind::StoneStairs => 1.5f32, - BlockKind::InfestedDeepslate => 0f32, - BlockKind::QuartzPillar => 0.8f32, - BlockKind::Gravel => 0.6f32, - BlockKind::CyanGlazedTerracotta => 1.4f32, - BlockKind::DarkOakSign => 1f32, - BlockKind::OrangeShulkerBox => 2f32, - BlockKind::LapisBlock => 3f32, - BlockKind::Deepslate => 3f32, - BlockKind::DarkOakDoor => 3f32, - BlockKind::EndStoneBrickWall => 3f32, - BlockKind::RawIronBlock => 5f32, - BlockKind::HornCoralFan => 0f32, - BlockKind::TrappedChest => 2.5f32, - BlockKind::CyanShulkerBox => 2f32, - BlockKind::WhiteTulip => 0f32, - BlockKind::Barrier => -1f32, - BlockKind::SmoothSandstone => 2f32, - BlockKind::TripwireHook => 0f32, - BlockKind::DeadFireCoralBlock => 1.5f32, - BlockKind::Bookshelf => 1.5f32, - BlockKind::OakTrapdoor => 3f32, - BlockKind::JungleLog => 2f32, - BlockKind::PinkBed => 0.2f32, - BlockKind::GreenConcretePowder => 0.5f32, - BlockKind::BrainCoralWallFan => 0f32, - BlockKind::LimeWallBanner => 1f32, - BlockKind::BlackGlazedTerracotta => 1.4f32, - BlockKind::BlackStainedGlassPane => 0.3f32, - BlockKind::ExposedCutCopperStairs => 0f32, - BlockKind::GreenBanner => 1f32, - BlockKind::PottedOakSapling => 0f32, - BlockKind::PinkConcrete => 1.8f32, - BlockKind::GoldBlock => 3f32, - BlockKind::StonePressurePlate => 0.5f32, - BlockKind::DetectorRail => 0.7f32, - BlockKind::CutRedSandstone => 0.8f32, - BlockKind::Dispenser => 3.5f32, - BlockKind::RedSandstoneSlab => 2f32, - BlockKind::TwistingVinesPlant => 0f32, - BlockKind::DiamondBlock => 5f32, - BlockKind::YellowGlazedTerracotta => 1.4f32, - BlockKind::InfestedCrackedStoneBricks => 0f32, - BlockKind::RedSandstone => 0.8f32, - BlockKind::Beacon => 3f32, - BlockKind::LimeTerracotta => 1.25f32, - BlockKind::JungleFenceGate => 2f32, - BlockKind::DarkOakPressurePlate => 0.5f32, - BlockKind::RedNetherBrickStairs => 2f32, - BlockKind::CrimsonStem => 2f32, - BlockKind::LightningRod => 3f32, - BlockKind::PinkCandleCake => 0f32, - BlockKind::EndGateway => -1f32, - BlockKind::WarpedFence => 2f32, - BlockKind::DeadBrainCoral => 0f32, - BlockKind::OakStairs => 2f32, - BlockKind::JunglePressurePlate => 0.5f32, - BlockKind::PottedAcaciaSapling => 0f32, - BlockKind::DeadBrainCoralFan => 0f32, - BlockKind::CrimsonFence => 2f32, - BlockKind::DeadHornCoral => 0f32, - BlockKind::RedMushroom => 0f32, - BlockKind::SprucePressurePlate => 0.5f32, - BlockKind::TubeCoralBlock => 1.5f32, - BlockKind::GrassBlock => 0.6f32, - BlockKind::CrimsonPlanks => 2f32, - BlockKind::WarpedFenceGate => 2f32, - BlockKind::RespawnAnchor => 50f32, - BlockKind::DripstoneBlock => 1.5f32, - BlockKind::StrippedOakWood => 2f32, - BlockKind::OakDoor => 3f32, - BlockKind::Snow => 0.1f32, - BlockKind::SpruceFence => 2f32, - BlockKind::BrainCoralFan => 0f32, - BlockKind::AcaciaFence => 2f32, - BlockKind::BlackWool => 0.8f32, - BlockKind::DeadBrainCoralBlock => 1.5f32, - BlockKind::WaxedOxidizedCutCopperSlab => 0f32, - BlockKind::FireCoralWallFan => 0f32, - BlockKind::PurpleStainedGlass => 0.3f32, - BlockKind::DeadBrainCoralWallFan => 0f32, - BlockKind::OakPressurePlate => 0.5f32, - BlockKind::BrownShulkerBox => 2f32, - BlockKind::KelpPlant => 0f32, - BlockKind::RedTerracotta => 1.25f32, - BlockKind::DeadHornCoralBlock => 1.5f32, - BlockKind::PolishedBlackstoneBrickWall => 1.5f32, - BlockKind::MossyStoneBrickSlab => 1.5f32, - BlockKind::Lever => 0.5f32, - BlockKind::Chest => 2.5f32, - BlockKind::JungleDoor => 3f32, - BlockKind::PurpleBed => 0.2f32, - BlockKind::YellowCandle => 0.1f32, - BlockKind::Melon => 1f32, - BlockKind::Hopper => 3f32, - BlockKind::Andesite => 1.5f32, - BlockKind::Pumpkin => 1f32, - BlockKind::CrimsonButton => 0.5f32, - BlockKind::PolishedBlackstoneBrickSlab => 2f32, - BlockKind::MagentaBanner => 1f32, - BlockKind::BirchWood => 2f32, - BlockKind::SnowBlock => 0.2f32, - BlockKind::WarpedStairs => 2f32, - BlockKind::Beehive => 0.6f32, - BlockKind::WaxedExposedCopper => 0f32, - BlockKind::RedMushroomBlock => 0.2f32, - BlockKind::GrayShulkerBox => 2f32, - BlockKind::Sponge => 0.6f32, - BlockKind::Dropper => 3.5f32, - BlockKind::Comparator => 0f32, - BlockKind::Composter => 0.6f32, - BlockKind::HeavyWeightedPressurePlate => 0.5f32, - BlockKind::RedstoneWire => 0f32, - BlockKind::OxidizedCutCopperStairs => 0f32, - BlockKind::BlueOrchid => 0f32, - BlockKind::WaxedCopperBlock => 0f32, - BlockKind::Beetroots => 0f32, - BlockKind::PinkGlazedTerracotta => 1.4f32, - BlockKind::SkeletonWallSkull => 1f32, - BlockKind::CoalBlock => 5f32, - BlockKind::Lectern => 2.5f32, - BlockKind::PolishedBlackstoneStairs => 2f32, - BlockKind::LightBlueGlazedTerracotta => 1.4f32, - BlockKind::PurpurPillar => 1.5f32, - BlockKind::PolishedDeepslateSlab => 0f32, - BlockKind::PrismarineWall => 1.5f32, - BlockKind::CraftingTable => 2.5f32, - BlockKind::Jukebox => 2f32, - BlockKind::BlueCandleCake => 0f32, - BlockKind::Blackstone => 1.5f32, - BlockKind::GrayStainedGlass => 0.3f32, - BlockKind::GrayConcrete => 1.8f32, - BlockKind::BrownConcrete => 1.8f32, - BlockKind::Spawner => 5f32, - BlockKind::PottedBirchSapling => 0f32, - BlockKind::RedConcretePowder => 0.5f32, - BlockKind::Seagrass => 0f32, - BlockKind::Piston => 1.5f32, - BlockKind::CyanConcrete => 1.8f32, - BlockKind::MushroomStem => 0.2f32, - BlockKind::DarkPrismarine => 1.5f32, - BlockKind::MovingPiston => -1f32, - BlockKind::BirchWallSign => 1f32, - BlockKind::Torch => 0f32, - BlockKind::WallTorch => 0f32, - BlockKind::DeadHornCoralWallFan => 0f32, - BlockKind::Grindstone => 2f32, - BlockKind::LightGrayCandleCake => 0f32, - BlockKind::LightBlueCarpet => 0.1f32, - BlockKind::MagentaTerracotta => 1.25f32, - BlockKind::PolishedAndesiteStairs => 1.5f32, - BlockKind::StoneBrickSlab => 2f32, - BlockKind::AndesiteWall => 1.5f32, - BlockKind::Cocoa => 0.2f32, - BlockKind::MagentaShulkerBox => 2f32, - BlockKind::DeadTubeCoralBlock => 1.5f32, - BlockKind::HoneycombBlock => 0.6f32, - BlockKind::GrayGlazedTerracotta => 1.4f32, - BlockKind::OrangeStainedGlassPane => 0.3f32, - BlockKind::NetherWartBlock => 1f32, - BlockKind::LightGrayWool => 0.8f32, - BlockKind::MossyCobblestoneSlab => 2f32, - BlockKind::Cake => 0.5f32, - BlockKind::WaxedExposedCutCopperStairs => 0f32, - BlockKind::Campfire => 2f32, - BlockKind::OakLeaves => 0.2f32, - BlockKind::RedStainedGlassPane => 0.3f32, - BlockKind::EnchantingTable => 5f32, - BlockKind::PowderSnowCauldron => 0f32, - BlockKind::ShulkerBox => 2f32, - BlockKind::GildedBlackstone => 1.5f32, - BlockKind::GrayCandleCake => 0f32, - BlockKind::PottedLilyOfTheValley => 0f32, - BlockKind::BirchPressurePlate => 0.5f32, - BlockKind::Diorite => 1.5f32, - BlockKind::LightGrayShulkerBox => 2f32, - BlockKind::GrayConcretePowder => 0.5f32, - BlockKind::DriedKelpBlock => 0.5f32, - BlockKind::DamagedAnvil => 5f32, - BlockKind::RedCarpet => 0.1f32, - BlockKind::WhiteWallBanner => 1f32, - BlockKind::NetherSprouts => 0f32, - BlockKind::FletchingTable => 2.5f32, - BlockKind::PottedRedMushroom => 0f32, - BlockKind::Glowstone => 0.3f32, - BlockKind::Cauldron => 2f32, - BlockKind::LightGrayBanner => 1f32, - BlockKind::BrewingStand => 0.5f32, - BlockKind::StoneSlab => 2f32, - BlockKind::GlassPane => 0.3f32, - BlockKind::YellowConcretePowder => 0.5f32, - BlockKind::MossyStoneBrickStairs => 1.5f32, - BlockKind::ExposedCopper => 3f32, - BlockKind::EndStone => 3f32, - BlockKind::StoneBrickWall => 1.5f32, - BlockKind::Obsidian => 50f32, - BlockKind::LightGrayCarpet => 0.1f32, - BlockKind::RedstoneBlock => 5f32, - BlockKind::RoseBush => 0f32, - BlockKind::JungleButton => 0.5f32, - BlockKind::SpruceSign => 1f32, - BlockKind::TubeCoralFan => 0f32, - BlockKind::NetheriteBlock => 50f32, - BlockKind::AncientDebris => 30f32, - BlockKind::DeepslateCopperOre => 4.5f32, - BlockKind::PinkConcretePowder => 0.5f32, - BlockKind::TallSeagrass => 0f32, - BlockKind::PolishedGraniteStairs => 1.5f32, - BlockKind::Sand => 0.5f32, - BlockKind::YellowStainedGlassPane => 0.3f32, - BlockKind::MossyStoneBrickWall => 1.5f32, - BlockKind::StoneButton => 0.5f32, - BlockKind::LightGrayConcrete => 1.8f32, - BlockKind::BlackstoneStairs => 1.5f32, - BlockKind::YellowCarpet => 0.1f32, - BlockKind::GrayCarpet => 0.1f32, - BlockKind::PinkShulkerBox => 2f32, - BlockKind::PottedCornflower => 0f32, - BlockKind::PolishedBlackstoneButton => 0.5f32, - BlockKind::OxidizedCopper => 3f32, - BlockKind::OrangeBanner => 1f32, - BlockKind::PurpleShulkerBox => 2f32, - BlockKind::DeepslateTileStairs => 0f32, - BlockKind::LightBlueStainedGlass => 0.3f32, - BlockKind::DarkOakFenceGate => 2f32, - BlockKind::DarkOakWood => 2f32, - BlockKind::LilyPad => 0f32, - BlockKind::IronOre => 3f32, - BlockKind::OakPlanks => 2f32, - BlockKind::CyanStainedGlassPane => 0.3f32, - BlockKind::DarkOakPlanks => 2f32, - BlockKind::BlueConcretePowder => 0.5f32, - BlockKind::RedstoneWallTorch => 0f32, - BlockKind::LightBlueShulkerBox => 2f32, - BlockKind::WhiteTerracotta => 1.25f32, - BlockKind::LimeConcrete => 1.8f32, - BlockKind::Bell => 5f32, - BlockKind::BirchStairs => 2f32, - BlockKind::NetherQuartzOre => 3f32, - BlockKind::BeeNest => 0.3f32, - BlockKind::GreenConcrete => 1.8f32, - BlockKind::LightGrayTerracotta => 1.25f32, - BlockKind::LargeAmethystBud => 0f32, - BlockKind::Allium => 0f32, - BlockKind::Smoker => 3.5f32, - BlockKind::Dandelion => 0f32, - BlockKind::CrimsonRoots => 0f32, - BlockKind::GrayBanner => 1f32, - BlockKind::DeepslateTileWall => 0f32, - BlockKind::SoulSoil => 0.5f32, - BlockKind::EnderChest => 22.5f32, - BlockKind::LightGrayGlazedTerracotta => 1.4f32, - BlockKind::CrimsonDoor => 3f32, - BlockKind::BlueCandle => 0.1f32, - BlockKind::BlueWallBanner => 1f32, - BlockKind::BrainCoral => 0f32, - BlockKind::WaxedWeatheredCutCopperStairs => 0f32, - BlockKind::BlueStainedGlassPane => 0.3f32, - BlockKind::PistonHead => 1.5f32, - BlockKind::RedShulkerBox => 2f32, - BlockKind::JungleSign => 1f32, - BlockKind::CrimsonSlab => 2f32, - BlockKind::DarkOakSlab => 2f32, - BlockKind::DeadFireCoralFan => 0f32, - BlockKind::SugarCane => 0f32, - BlockKind::ChiseledRedSandstone => 0.8f32, - BlockKind::LightBlueConcrete => 1.8f32, - BlockKind::SmoothQuartzStairs => 2f32, - BlockKind::LimeCandle => 0.1f32, - BlockKind::GreenBed => 0.2f32, - BlockKind::PetrifiedOakSlab => 2f32, - BlockKind::Dirt => 0.5f32, - BlockKind::DarkOakStairs => 2f32, - BlockKind::RedGlazedTerracotta => 1.4f32, - BlockKind::BirchDoor => 3f32, - BlockKind::PinkTerracotta => 1.25f32, - BlockKind::PolishedDiorite => 1.5f32, - BlockKind::AcaciaWallSign => 1f32, - BlockKind::CarvedPumpkin => 1f32, - BlockKind::DeepslateTileSlab => 0f32, - BlockKind::WhiteCarpet => 0.1f32, - BlockKind::JungleSapling => 0f32, - BlockKind::FlowerPot => 0f32, - BlockKind::Cactus => 0.4f32, - BlockKind::LightBlueWool => 0.8f32, - BlockKind::GrayTerracotta => 1.25f32, - BlockKind::MagmaBlock => 0.5f32, - BlockKind::WarpedPressurePlate => 0.5f32, - BlockKind::WarpedDoor => 3f32, - BlockKind::Calcite => 0.75f32, - BlockKind::DeepslateBrickStairs => 0f32, - BlockKind::OakFence => 2f32, - BlockKind::DeepslateDiamondOre => 4.5f32, - BlockKind::DeadHornCoralFan => 0f32, - BlockKind::SmoothQuartzSlab => 2f32, - BlockKind::WaterCauldron => 0f32, - BlockKind::NetherBricks => 2f32, - BlockKind::GreenStainedGlass => 0.3f32, - BlockKind::LavaCauldron => 0f32, - BlockKind::PottedSpruceSapling => 0f32, - BlockKind::GrayWallBanner => 1f32, - BlockKind::WarpedSign => 1f32, - BlockKind::GrayStainedGlassPane => 0.3f32, - BlockKind::Jigsaw => -1f32, - BlockKind::GrayCandle => 0.1f32, - BlockKind::MagentaConcretePowder => 0.5f32, - BlockKind::StrippedWarpedStem => 2f32, - BlockKind::CyanWallBanner => 1f32, - BlockKind::PointedDripstone => 1.5f32, - BlockKind::Mycelium => 0.6f32, - BlockKind::MossBlock => 0.1f32, - BlockKind::HayBlock => 0.5f32, - BlockKind::BlackWallBanner => 1f32, - BlockKind::WeatheredCutCopper => 0f32, - BlockKind::StrippedJungleLog => 2f32, - BlockKind::MagentaGlazedTerracotta => 1.4f32, - BlockKind::CobblestoneStairs => 2f32, - BlockKind::PolishedBlackstoneBricks => 1.5f32, - BlockKind::LightBlueBanner => 1f32, - BlockKind::SpruceWallSign => 1f32, - BlockKind::JackOLantern => 1f32, - BlockKind::SandstoneWall => 0.8f32, - BlockKind::CrimsonStairs => 2f32, - BlockKind::PolishedAndesite => 1.5f32, - BlockKind::Wheat => 0f32, - BlockKind::LightGrayStainedGlassPane => 0.3f32, - BlockKind::MagentaBed => 0.2f32, - BlockKind::PottedAllium => 0f32, - BlockKind::StructureBlock => -1f32, - BlockKind::ChiseledNetherBricks => 2f32, - BlockKind::BrownConcretePowder => 0.5f32, - BlockKind::GrayBed => 0.2f32, - BlockKind::IronDoor => 5f32, - BlockKind::StoneBrickStairs => 1.5f32, - BlockKind::RedBanner => 1f32, - BlockKind::WarpedWartBlock => 1f32, - BlockKind::WhiteStainedGlassPane => 0.3f32, - BlockKind::TallGrass => 0f32, - BlockKind::WaxedWeatheredCutCopperSlab => 0f32, - BlockKind::DeepslateTiles => 0f32, - BlockKind::YellowShulkerBox => 2f32, - BlockKind::BrownGlazedTerracotta => 1.4f32, - BlockKind::BlueTerracotta => 1.25f32, - BlockKind::BigDripleafStem => 0.1f32, - BlockKind::RedstoneTorch => 0f32, - BlockKind::StrippedAcaciaLog => 2f32, - BlockKind::JungleWood => 2f32, - BlockKind::SkeletonSkull => 1f32, - BlockKind::YellowCandleCake => 0f32, - BlockKind::GreenCandle => 0.1f32, - BlockKind::RedCandleCake => 0f32, - BlockKind::ActivatorRail => 0.7f32, - BlockKind::MediumAmethystBud => 0f32, - BlockKind::CrimsonHyphae => 2f32, - BlockKind::EndRod => 0f32, - BlockKind::WhiteGlazedTerracotta => 1.4f32, - BlockKind::BubbleCoral => 0f32, - BlockKind::SoulLantern => 3.5f32, - BlockKind::Carrots => 0f32, - BlockKind::PottedDandelion => 0f32, - BlockKind::PottedFern => 0f32, - BlockKind::HornCoralWallFan => 0f32, - BlockKind::LightBlueTerracotta => 1.25f32, - BlockKind::PolishedDioriteStairs => 1.5f32, - BlockKind::WaxedOxidizedCopper => 0f32, - BlockKind::BlackstoneSlab => 2f32, - BlockKind::Tuff => 1.5f32, - BlockKind::PinkCandle => 0.1f32, - BlockKind::CandleCake => 0f32, - BlockKind::RedstoneLamp => 0.3f32, - BlockKind::Ladder => 0.4f32, - BlockKind::PottedDarkOakSapling => 0f32, - BlockKind::PottedOrangeTulip => 0f32, - BlockKind::Target => 0.5f32, - BlockKind::CrimsonNylium => 0.4f32, - BlockKind::PolishedDioriteSlab => 1.5f32, - BlockKind::CutCopperStairs => 0f32, - BlockKind::MossyCobblestoneStairs => 2f32, - BlockKind::Peony => 0f32, - BlockKind::BirchButton => 0.5f32, - BlockKind::Bricks => 2f32, - BlockKind::DeepslateCoalOre => 4.5f32, - BlockKind::OrangeConcretePowder => 0.5f32, - BlockKind::BlastFurnace => 3.5f32, - BlockKind::Stonecutter => 3.5f32, - BlockKind::AndesiteSlab => 1.5f32, - BlockKind::CrackedDeepslateBricks => 0f32, - BlockKind::OakWood => 2f32, - BlockKind::OakFenceGate => 2f32, - BlockKind::BrownStainedGlass => 0.3f32, - BlockKind::QuartzSlab => 2f32, - BlockKind::StrippedAcaciaWood => 2f32, - BlockKind::PolishedBlackstoneWall => 2f32, - BlockKind::PottedFloweringAzaleaBush => 0f32, - BlockKind::PolishedDeepslate => 0f32, - BlockKind::WetSponge => 0.6f32, - BlockKind::BrownBed => 0.2f32, - BlockKind::WhiteConcretePowder => 0.5f32, - BlockKind::DragonWallHead => 1f32, - BlockKind::WaxedCutCopper => 0f32, - BlockKind::RedstoneOre => 3f32, - BlockKind::PottedBrownMushroom => 0f32, - BlockKind::StrippedCrimsonStem => 2f32, - BlockKind::HoneyBlock => 0f32, - BlockKind::DeadTubeCoralFan => 0f32, - BlockKind::SpruceStairs => 2f32, - BlockKind::JungleFence => 2f32, - BlockKind::PurpleCandleCake => 0f32, - BlockKind::OrangeTerracotta => 1.25f32, - BlockKind::SculkSensor => 1.5f32, - BlockKind::Fire => 0f32, - BlockKind::ExposedCutCopper => 0f32, - BlockKind::HornCoral => 0f32, - BlockKind::AcaciaTrapdoor => 3f32, - BlockKind::MelonStem => 0f32, - BlockKind::PlayerWallHead => 1f32, - BlockKind::PurpleStainedGlassPane => 0.3f32, - BlockKind::PolishedBlackstoneBrickStairs => 1.5f32, - BlockKind::SmoothRedSandstoneSlab => 2f32, - BlockKind::BlackCandle => 0.1f32, - BlockKind::RawGoldBlock => 5f32, - BlockKind::AttachedMelonStem => 0f32, - BlockKind::IronBlock => 5f32, - BlockKind::BrainCoralBlock => 1.5f32, - BlockKind::BlackCandleCake => 0f32, - BlockKind::ChippedAnvil => 5f32, - BlockKind::DeadTubeCoral => 0f32, - BlockKind::SoulCampfire => 2f32, - BlockKind::LargeFern => 0f32, - BlockKind::YellowBed => 0.2f32, - BlockKind::GreenStainedGlassPane => 0.3f32, - BlockKind::CyanCandleCake => 0f32, - BlockKind::LightGrayStainedGlass => 0.3f32, - BlockKind::TwistingVines => 0f32, - BlockKind::BirchSapling => 0f32, - BlockKind::CrimsonTrapdoor => 3f32, - BlockKind::BlackstoneWall => 1.5f32, - BlockKind::AcaciaLog => 2f32, - BlockKind::OrangeTulip => 0f32, - BlockKind::EndStoneBricks => 3f32, - BlockKind::FireCoral => 0f32, - BlockKind::WaxedOxidizedCutCopperStairs => 0f32, - BlockKind::DarkOakLog => 2f32, - BlockKind::CutCopperSlab => 0f32, - BlockKind::OxeyeDaisy => 0f32, - BlockKind::PottedDeadBush => 0f32, - BlockKind::TubeCoral => 0f32, - BlockKind::RedWool => 0.8f32, - BlockKind::WitherRose => 0f32, - BlockKind::ZombieHead => 1f32, - BlockKind::Netherrack => 0.4f32, - BlockKind::WitherSkeletonSkull => 1f32, - BlockKind::YellowBanner => 1f32, - BlockKind::MossyStoneBricks => 1.5f32, - BlockKind::GraniteStairs => 1.5f32, - BlockKind::CreeperWallHead => 1f32, - BlockKind::PrismarineStairs => 1.5f32, - BlockKind::WaxedExposedCutCopperSlab => 0f32, - BlockKind::Scaffolding => 0f32, - BlockKind::StrippedJungleWood => 2f32, - BlockKind::CyanBed => 0.2f32, - BlockKind::Furnace => 3.5f32, - BlockKind::AcaciaSlab => 2f32, - BlockKind::Kelp => 0f32, - BlockKind::SeaPickle => 0f32, - BlockKind::AzaleaLeaves => 0.2f32, - BlockKind::GreenWool => 0.8f32, - BlockKind::LimeShulkerBox => 2f32, - BlockKind::CopperBlock => 3f32, - BlockKind::PottedAzureBluet => 0f32, - BlockKind::WeatheredCopper => 3f32, - BlockKind::Azalea => 0f32, - BlockKind::CrackedDeepslateTiles => 0f32, - BlockKind::DeepslateBricks => 0f32, - BlockKind::Conduit => 3f32, - BlockKind::GreenTerracotta => 1.25f32, - BlockKind::DioriteSlab => 1.5f32, - BlockKind::BlackBed => 0.2f32, - BlockKind::RedSandstoneWall => 0.8f32, - BlockKind::PumpkinStem => 0f32, - BlockKind::AcaciaSign => 1f32, - BlockKind::DeadTubeCoralWallFan => 0f32, - BlockKind::PurpleWallBanner => 1f32, - BlockKind::InfestedMossyStoneBricks => 0f32, - } - } -} -impl BlockKind { - #[doc = "Returns the `stack_size` property of this `BlockKind`."] - #[inline] - pub fn stack_size(&self) -> u32 { - match self { - BlockKind::PottedAllium => 64u32, - BlockKind::Observer => 64u32, - BlockKind::AcaciaSign => 16u32, - BlockKind::MagentaCandleCake => 64u32, - BlockKind::OrangeShulkerBox => 1u32, - BlockKind::CrackedNetherBricks => 64u32, - BlockKind::HornCoralBlock => 64u32, - BlockKind::SpruceSapling => 64u32, - BlockKind::RedSandstoneSlab => 64u32, - BlockKind::SpruceFenceGate => 64u32, - BlockKind::PolishedBlackstoneBrickWall => 64u32, - BlockKind::StrippedBirchLog => 64u32, - BlockKind::MossyCobblestone => 64u32, - BlockKind::CobbledDeepslateWall => 64u32, - BlockKind::Farmland => 64u32, - BlockKind::CrimsonStem => 64u32, - BlockKind::WaxedWeatheredCopper => 64u32, - BlockKind::WaxedCopperBlock => 64u32, - BlockKind::CutRedSandstone => 64u32, - BlockKind::DioriteWall => 64u32, - BlockKind::EndPortal => 64u32, - BlockKind::CyanCandleCake => 64u32, - BlockKind::BlueGlazedTerracotta => 64u32, - BlockKind::DeadBrainCoral => 64u32, - BlockKind::SkeletonWallSkull => 64u32, - BlockKind::EmeraldBlock => 64u32, - BlockKind::PottedLilyOfTheValley => 64u32, - BlockKind::Chest => 64u32, - BlockKind::DeadFireCoralBlock => 64u32, - BlockKind::SprucePlanks => 64u32, - BlockKind::QuartzBricks => 64u32, - BlockKind::Lodestone => 64u32, - BlockKind::NetheriteBlock => 64u32, - BlockKind::DeepslateBrickSlab => 64u32, - BlockKind::HeavyWeightedPressurePlate => 64u32, - BlockKind::DragonHead => 64u32, - BlockKind::StrippedJungleLog => 64u32, - BlockKind::MossyCobblestoneWall => 64u32, - BlockKind::LightWeightedPressurePlate => 64u32, - BlockKind::PurpleCandleCake => 64u32, - BlockKind::BrickWall => 64u32, - BlockKind::WaxedExposedCutCopper => 64u32, - BlockKind::Grass => 64u32, - BlockKind::PinkTulip => 64u32, - BlockKind::ChiseledDeepslate => 64u32, - BlockKind::SpruceLeaves => 64u32, - BlockKind::InfestedChiseledStoneBricks => 64u32, - BlockKind::YellowCandleCake => 64u32, - BlockKind::RedNetherBricks => 64u32, - BlockKind::BrownBed => 1u32, - BlockKind::Light => 64u32, - BlockKind::PurpleBed => 1u32, - BlockKind::GreenCandle => 64u32, - BlockKind::BrownMushroomBlock => 64u32, - BlockKind::AttachedPumpkinStem => 64u32, - BlockKind::WhiteBed => 1u32, - BlockKind::StoneButton => 64u32, - BlockKind::RespawnAnchor => 64u32, - BlockKind::JunglePlanks => 64u32, - BlockKind::IronOre => 64u32, - BlockKind::SoulTorch => 64u32, - BlockKind::YellowCarpet => 64u32, - BlockKind::CrimsonStairs => 64u32, - BlockKind::LightBlueBanner => 16u32, - BlockKind::EndStone => 64u32, - BlockKind::CrimsonFence => 64u32, - BlockKind::Cocoa => 64u32, - BlockKind::MagentaConcretePowder => 64u32, - BlockKind::Glass => 64u32, - BlockKind::BlueWool => 64u32, - BlockKind::RedTulip => 64u32, - BlockKind::NetherWartBlock => 64u32, - BlockKind::SmoothSandstone => 64u32, - BlockKind::LightBlueConcretePowder => 64u32, - BlockKind::PottedBamboo => 64u32, - BlockKind::GraniteWall => 64u32, - BlockKind::LightBlueCarpet => 64u32, - BlockKind::BlackstoneSlab => 64u32, - BlockKind::YellowGlazedTerracotta => 64u32, - BlockKind::DarkOakButton => 64u32, - BlockKind::Sunflower => 64u32, - BlockKind::PottedAzaleaBush => 64u32, - BlockKind::AmethystBlock => 64u32, - BlockKind::Wheat => 64u32, - BlockKind::OrangeCandleCake => 64u32, - BlockKind::DetectorRail => 64u32, - BlockKind::NetherBrickFence => 64u32, - BlockKind::BrownBanner => 16u32, - BlockKind::LightBlueBed => 1u32, - BlockKind::PottedBirchSapling => 64u32, - BlockKind::WaterCauldron => 64u32, - BlockKind::OakWood => 64u32, - BlockKind::QuartzBlock => 64u32, - BlockKind::WeepingVines => 64u32, - BlockKind::MagentaWallBanner => 16u32, - BlockKind::WarpedHyphae => 64u32, - BlockKind::ExposedCutCopper => 64u32, - BlockKind::SporeBlossom => 64u32, - BlockKind::PumpkinStem => 64u32, - BlockKind::BirchPressurePlate => 64u32, - BlockKind::DeepslateBrickStairs => 64u32, - BlockKind::WaxedOxidizedCopper => 64u32, - BlockKind::LightBlueShulkerBox => 1u32, - BlockKind::ChippedAnvil => 64u32, - BlockKind::PottedAcaciaSapling => 64u32, - BlockKind::CrimsonDoor => 64u32, - BlockKind::AcaciaWallSign => 16u32, - BlockKind::DarkPrismarineSlab => 64u32, - BlockKind::Snow => 64u32, - BlockKind::StickyPiston => 64u32, - BlockKind::PurpleWool => 64u32, - BlockKind::DriedKelpBlock => 64u32, - BlockKind::PolishedAndesite => 64u32, - BlockKind::StoneBrickSlab => 64u32, - BlockKind::PottedPinkTulip => 64u32, - BlockKind::PolishedDiorite => 64u32, - BlockKind::CutSandstoneSlab => 64u32, - BlockKind::TintedGlass => 64u32, - BlockKind::SmoothQuartzStairs => 64u32, - BlockKind::BeeNest => 64u32, - BlockKind::Podzol => 64u32, - BlockKind::WitherSkeletonSkull => 64u32, - BlockKind::DeadTubeCoral => 64u32, - BlockKind::MagentaStainedGlass => 64u32, - BlockKind::WaxedOxidizedCutCopper => 64u32, - BlockKind::GreenConcrete => 64u32, - BlockKind::CutRedSandstoneSlab => 64u32, - BlockKind::StrippedBirchWood => 64u32, - BlockKind::Beacon => 64u32, - BlockKind::MagentaTerracotta => 64u32, - BlockKind::SmoothQuartzSlab => 64u32, - BlockKind::OrangeStainedGlassPane => 64u32, - BlockKind::Cornflower => 64u32, - BlockKind::MossyStoneBrickStairs => 64u32, - BlockKind::DaylightDetector => 64u32, - BlockKind::RedTerracotta => 64u32, - BlockKind::AcaciaStairs => 64u32, - BlockKind::PurpleStainedGlass => 64u32, - BlockKind::GrayShulkerBox => 1u32, - BlockKind::RedCarpet => 64u32, - BlockKind::SmoothQuartz => 64u32, - BlockKind::RedShulkerBox => 1u32, - BlockKind::WarpedButton => 64u32, - BlockKind::GrayWallBanner => 16u32, - BlockKind::Poppy => 64u32, - BlockKind::PrismarineBrickStairs => 64u32, - BlockKind::WetSponge => 64u32, - BlockKind::BrownConcretePowder => 64u32, - BlockKind::Rail => 64u32, - BlockKind::DeadBush => 64u32, - BlockKind::BirchLeaves => 64u32, - BlockKind::BrownMushroom => 64u32, - BlockKind::DeadHornCoralFan => 64u32, - BlockKind::DragonWallHead => 64u32, - BlockKind::OrangeBanner => 16u32, - BlockKind::RoseBush => 64u32, - BlockKind::SpruceStairs => 64u32, - BlockKind::CutCopper => 64u32, - BlockKind::PolishedDeepslateSlab => 64u32, - BlockKind::TubeCoralWallFan => 64u32, - BlockKind::RedstoneLamp => 64u32, - BlockKind::LimeConcrete => 64u32, - BlockKind::MagentaBanner => 16u32, - BlockKind::CutSandstone => 64u32, - BlockKind::BrickSlab => 64u32, - BlockKind::SugarCane => 64u32, - BlockKind::PinkBanner => 16u32, - BlockKind::WarpedWartBlock => 64u32, - BlockKind::Cake => 1u32, - BlockKind::LargeFern => 64u32, - BlockKind::YellowWool => 64u32, - BlockKind::BrownCandleCake => 64u32, - BlockKind::FireCoral => 64u32, - BlockKind::MossyStoneBrickSlab => 64u32, - BlockKind::TrappedChest => 64u32, - BlockKind::AcaciaPlanks => 64u32, - BlockKind::BirchWallSign => 16u32, - BlockKind::OrangeWallBanner => 16u32, - BlockKind::PottedBrownMushroom => 64u32, - BlockKind::LightBlueStainedGlassPane => 64u32, - BlockKind::GrayCarpet => 64u32, - BlockKind::TwistingVinesPlant => 64u32, - BlockKind::CyanStainedGlass => 64u32, - BlockKind::GrayWool => 64u32, - BlockKind::CommandBlock => 64u32, - BlockKind::ShulkerBox => 1u32, - BlockKind::LightGrayConcretePowder => 64u32, - BlockKind::GreenShulkerBox => 1u32, - BlockKind::JungleFence => 64u32, - BlockKind::Campfire => 64u32, - BlockKind::Bedrock => 64u32, - BlockKind::CrimsonTrapdoor => 64u32, - BlockKind::CrackedPolishedBlackstoneBricks => 64u32, - BlockKind::GlassPane => 64u32, - BlockKind::LightGrayWallBanner => 16u32, - BlockKind::Repeater => 64u32, - BlockKind::QuartzPillar => 64u32, - BlockKind::GildedBlackstone => 64u32, - BlockKind::OrangeTerracotta => 64u32, - BlockKind::PinkGlazedTerracotta => 64u32, - BlockKind::BrickStairs => 64u32, - BlockKind::Fern => 64u32, - BlockKind::Bricks => 64u32, - BlockKind::GreenConcretePowder => 64u32, - BlockKind::PowderSnowCauldron => 64u32, - BlockKind::WaxedCutCopperSlab => 64u32, - BlockKind::IronDoor => 64u32, - BlockKind::DarkPrismarine => 64u32, - BlockKind::LightGrayShulkerBox => 1u32, - BlockKind::TallSeagrass => 64u32, - BlockKind::GrayConcrete => 64u32, - BlockKind::RedNetherBrickSlab => 64u32, - BlockKind::MossyCobblestoneSlab => 64u32, - BlockKind::DarkOakSlab => 64u32, - BlockKind::RedConcretePowder => 64u32, - BlockKind::Cobblestone => 64u32, - BlockKind::PottedSpruceSapling => 64u32, - BlockKind::QuartzStairs => 64u32, - BlockKind::CrimsonPlanks => 64u32, - BlockKind::DarkOakPressurePlate => 64u32, - BlockKind::OrangeConcrete => 64u32, - BlockKind::LimeConcretePowder => 64u32, - BlockKind::CoalBlock => 64u32, - BlockKind::SoulLantern => 64u32, - BlockKind::DeepslateTileSlab => 64u32, - BlockKind::Piston => 64u32, - BlockKind::PinkCarpet => 64u32, - BlockKind::StructureBlock => 64u32, - BlockKind::Cobweb => 64u32, - BlockKind::BlackstoneWall => 64u32, - BlockKind::SmoothRedSandstone => 64u32, - BlockKind::TurtleEgg => 64u32, - BlockKind::LightGrayBed => 1u32, - BlockKind::WhiteStainedGlassPane => 64u32, - BlockKind::ZombieWallHead => 64u32, - BlockKind::LightBlueWool => 64u32, - BlockKind::HornCoralWallFan => 64u32, - BlockKind::Sponge => 64u32, - BlockKind::Diorite => 64u32, - BlockKind::CobbledDeepslateSlab => 64u32, - BlockKind::DarkOakStairs => 64u32, - BlockKind::LimeCandle => 64u32, - BlockKind::WaxedCutCopperStairs => 64u32, - BlockKind::BirchSign => 16u32, - BlockKind::AcaciaPressurePlate => 64u32, - BlockKind::StoneStairs => 64u32, - BlockKind::AcaciaFenceGate => 64u32, - BlockKind::WarpedStem => 64u32, - BlockKind::ExposedCutCopperSlab => 64u32, - BlockKind::GreenBanner => 16u32, - BlockKind::LightGrayWool => 64u32, - BlockKind::BlueStainedGlassPane => 64u32, - BlockKind::DeadHornCoral => 64u32, - BlockKind::EndStoneBrickSlab => 64u32, - BlockKind::PolishedBlackstoneSlab => 64u32, - BlockKind::CandleCake => 64u32, - BlockKind::RedNetherBrickStairs => 64u32, - BlockKind::FlowerPot => 64u32, - BlockKind::DarkOakDoor => 64u32, - BlockKind::PinkCandle => 64u32, - BlockKind::CopperBlock => 64u32, - BlockKind::BlackWool => 64u32, - BlockKind::InfestedDeepslate => 64u32, - BlockKind::PinkBed => 1u32, - BlockKind::CobblestoneStairs => 64u32, - BlockKind::BambooSapling => 64u32, - BlockKind::SweetBerryBush => 64u32, - BlockKind::PurpurBlock => 64u32, - BlockKind::WhiteCandle => 64u32, - BlockKind::BlackBanner => 16u32, - BlockKind::BubbleCoralWallFan => 64u32, - BlockKind::TwistingVines => 64u32, - BlockKind::PolishedBlackstoneStairs => 64u32, - BlockKind::PurpleShulkerBox => 1u32, - BlockKind::PurpleGlazedTerracotta => 64u32, - BlockKind::OakDoor => 64u32, - BlockKind::Granite => 64u32, - BlockKind::MushroomStem => 64u32, - BlockKind::EndPortalFrame => 64u32, - BlockKind::QuartzSlab => 64u32, - BlockKind::OakSlab => 64u32, - BlockKind::PottedFern => 64u32, - BlockKind::DirtPath => 64u32, - BlockKind::PointedDripstone => 64u32, - BlockKind::ActivatorRail => 64u32, - BlockKind::SculkSensor => 64u32, - BlockKind::BrainCoralWallFan => 64u32, - BlockKind::BirchSlab => 64u32, - BlockKind::PolishedBlackstone => 64u32, - BlockKind::EnderChest => 64u32, - BlockKind::BlastFurnace => 64u32, - BlockKind::BlueWallBanner => 16u32, - BlockKind::HoneycombBlock => 64u32, - BlockKind::NetherQuartzOre => 64u32, - BlockKind::DarkPrismarineStairs => 64u32, - BlockKind::JungleTrapdoor => 64u32, - BlockKind::SandstoneWall => 64u32, - BlockKind::RedGlazedTerracotta => 64u32, - BlockKind::Fire => 64u32, - BlockKind::CaveAir => 64u32, - BlockKind::BlueCandleCake => 64u32, - BlockKind::NetherBricks => 64u32, - BlockKind::DiamondBlock => 64u32, - BlockKind::Barrier => 64u32, - BlockKind::AndesiteStairs => 64u32, - BlockKind::WarpedStairs => 64u32, - BlockKind::LightGrayCandle => 64u32, - BlockKind::LimeBanner => 16u32, - BlockKind::Hopper => 64u32, - BlockKind::BlueStainedGlass => 64u32, - BlockKind::OakWallSign => 16u32, - BlockKind::AcaciaSlab => 64u32, - BlockKind::CutCopperStairs => 64u32, - BlockKind::MagentaStainedGlassPane => 64u32, - BlockKind::LightGrayStainedGlass => 64u32, - BlockKind::BlackTerracotta => 64u32, - BlockKind::DeepslateTiles => 64u32, - BlockKind::OrangeStainedGlass => 64u32, - BlockKind::SpruceLog => 64u32, - BlockKind::WhiteBanner => 16u32, - BlockKind::PottedPoppy => 64u32, - BlockKind::WitherSkeletonWallSkull => 64u32, - BlockKind::CyanCandle => 64u32, - BlockKind::RedSandstoneStairs => 64u32, - BlockKind::WhiteShulkerBox => 1u32, - BlockKind::Melon => 64u32, - BlockKind::PottedCactus => 64u32, - BlockKind::BlackConcretePowder => 64u32, - BlockKind::GreenCarpet => 64u32, - BlockKind::DeadHornCoralBlock => 64u32, - BlockKind::Basalt => 64u32, - BlockKind::SnowBlock => 64u32, - BlockKind::SandstoneStairs => 64u32, - BlockKind::LimeBed => 1u32, - BlockKind::GreenTerracotta => 64u32, - BlockKind::BirchTrapdoor => 64u32, - BlockKind::CrimsonButton => 64u32, - BlockKind::Vine => 64u32, - BlockKind::Torch => 64u32, - BlockKind::PottedCrimsonRoots => 64u32, - BlockKind::PolishedBlackstonePressurePlate => 64u32, - BlockKind::DeepslateCoalOre => 64u32, - BlockKind::CrimsonRoots => 64u32, - BlockKind::RedstoneOre => 64u32, - BlockKind::PurpleTerracotta => 64u32, - BlockKind::BlackCarpet => 64u32, - BlockKind::Conduit => 64u32, - BlockKind::OrangeCandle => 64u32, - BlockKind::WhiteStainedGlass => 64u32, - BlockKind::WeepingVinesPlant => 64u32, - BlockKind::BirchWood => 64u32, - BlockKind::StoneBrickWall => 64u32, - BlockKind::TubeCoral => 64u32, - BlockKind::Tripwire => 64u32, - BlockKind::BlackCandleCake => 64u32, - BlockKind::LightGrayConcrete => 64u32, - BlockKind::BrainCoralBlock => 64u32, - BlockKind::OakLeaves => 64u32, - BlockKind::Terracotta => 64u32, - BlockKind::SmoothSandstoneStairs => 64u32, - BlockKind::PoweredRail => 64u32, - BlockKind::MagentaShulkerBox => 1u32, - BlockKind::PistonHead => 64u32, - BlockKind::RedSandstone => 64u32, - BlockKind::GrayBed => 1u32, - BlockKind::Andesite => 64u32, - BlockKind::OakLog => 64u32, - BlockKind::DarkOakLeaves => 64u32, - BlockKind::CaveVines => 64u32, - BlockKind::YellowShulkerBox => 1u32, - BlockKind::PottedOxeyeDaisy => 64u32, - BlockKind::GreenStainedGlassPane => 64u32, - BlockKind::YellowStainedGlass => 64u32, - BlockKind::MagmaBlock => 64u32, - BlockKind::SoulSand => 64u32, - BlockKind::SmallDripleaf => 64u32, - BlockKind::MagentaBed => 1u32, - BlockKind::PurpurSlab => 64u32, - BlockKind::EndRod => 64u32, - BlockKind::AcaciaLeaves => 64u32, - BlockKind::Cauldron => 64u32, - BlockKind::DeadBrainCoralBlock => 64u32, - BlockKind::PolishedBlackstoneWall => 64u32, - BlockKind::ChiseledNetherBricks => 64u32, - BlockKind::WeatheredCutCopperStairs => 64u32, - BlockKind::CrackedStoneBricks => 64u32, - BlockKind::DragonEgg => 64u32, - BlockKind::PurpleCarpet => 64u32, - BlockKind::Comparator => 64u32, - BlockKind::Calcite => 64u32, - BlockKind::PolishedGraniteSlab => 64u32, - BlockKind::Dirt => 64u32, - BlockKind::LimeStainedGlassPane => 64u32, - BlockKind::Seagrass => 64u32, - BlockKind::NetherPortal => 64u32, - BlockKind::GrayBanner => 16u32, - BlockKind::LightBlueWallBanner => 16u32, - BlockKind::AcaciaSapling => 64u32, - BlockKind::BubbleCoral => 64u32, - BlockKind::PurpleConcretePowder => 64u32, - BlockKind::RedstoneWire => 64u32, - BlockKind::RedMushroomBlock => 64u32, - BlockKind::LilyOfTheValley => 64u32, - BlockKind::AcaciaDoor => 64u32, - BlockKind::BrownShulkerBox => 1u32, - BlockKind::WarpedWallSign => 16u32, - BlockKind::BuddingAmethyst => 64u32, - BlockKind::HornCoral => 64u32, - BlockKind::SmoothBasalt => 64u32, - BlockKind::Jigsaw => 64u32, - BlockKind::BigDripleafStem => 64u32, - BlockKind::GreenWool => 64u32, - BlockKind::PolishedDeepslateStairs => 64u32, - BlockKind::DarkOakPlanks => 64u32, - BlockKind::RedStainedGlassPane => 64u32, - BlockKind::YellowConcretePowder => 64u32, - BlockKind::LightGrayCandleCake => 64u32, - BlockKind::GreenStainedGlass => 64u32, - BlockKind::CyanTerracotta => 64u32, - BlockKind::OrangeWool => 64u32, - BlockKind::BrownTerracotta => 64u32, - BlockKind::BrownGlazedTerracotta => 64u32, - BlockKind::DarkOakSapling => 64u32, - BlockKind::CutCopperSlab => 64u32, - BlockKind::PottedRedMushroom => 64u32, - BlockKind::StrippedAcaciaWood => 64u32, - BlockKind::PinkTerracotta => 64u32, - BlockKind::SeaLantern => 64u32, - BlockKind::PurpleBanner => 16u32, - BlockKind::SandstoneSlab => 64u32, - BlockKind::RedNetherBrickWall => 64u32, - BlockKind::LargeAmethystBud => 64u32, - BlockKind::YellowConcrete => 64u32, - BlockKind::OakPlanks => 64u32, - BlockKind::Water => 64u32, - BlockKind::AcaciaLog => 64u32, - BlockKind::LapisOre => 64u32, - BlockKind::GoldBlock => 64u32, - BlockKind::NetherBrickWall => 64u32, - BlockKind::LavaCauldron => 64u32, - BlockKind::PinkWallBanner => 16u32, - BlockKind::SoulWallTorch => 64u32, - BlockKind::MagentaGlazedTerracotta => 64u32, - BlockKind::BlueConcretePowder => 64u32, - BlockKind::PolishedDioriteStairs => 64u32, - BlockKind::NetherBrickSlab => 64u32, - BlockKind::WaxedExposedCutCopperSlab => 64u32, - BlockKind::DeadHornCoralWallFan => 64u32, - BlockKind::Anvil => 64u32, - BlockKind::SpruceSlab => 64u32, - BlockKind::OakSapling => 64u32, - BlockKind::BlueCandle => 64u32, - BlockKind::RawCopperBlock => 64u32, - BlockKind::Sandstone => 64u32, - BlockKind::LimeWool => 64u32, - BlockKind::LightGrayBanner => 16u32, - BlockKind::AzaleaLeaves => 64u32, - BlockKind::OakFenceGate => 64u32, - BlockKind::BlueBed => 1u32, - BlockKind::OrangeConcretePowder => 64u32, - BlockKind::DeadBubbleCoralBlock => 64u32, - BlockKind::StrippedCrimsonStem => 64u32, - BlockKind::CrimsonHyphae => 64u32, - BlockKind::StrippedOakWood => 64u32, - BlockKind::DarkOakTrapdoor => 64u32, - BlockKind::RedConcrete => 64u32, - BlockKind::PottedCrimsonFungus => 64u32, - BlockKind::OakTrapdoor => 64u32, - BlockKind::GlowLichen => 64u32, - BlockKind::MagentaCarpet => 64u32, - BlockKind::WhiteWallBanner => 16u32, - BlockKind::Beehive => 64u32, - BlockKind::CobbledDeepslate => 64u32, - BlockKind::MossyStoneBricks => 64u32, - BlockKind::BrewingStand => 64u32, - BlockKind::CryingObsidian => 64u32, - BlockKind::CrimsonWallSign => 16u32, - BlockKind::JungleDoor => 64u32, - BlockKind::BlueOrchid => 64u32, - BlockKind::BrownCarpet => 64u32, - BlockKind::GreenCandleCake => 64u32, - BlockKind::NetherBrickStairs => 64u32, - BlockKind::AcaciaWood => 64u32, - BlockKind::RedBed => 1u32, - BlockKind::OxidizedCopper => 64u32, - BlockKind::RedStainedGlass => 64u32, - BlockKind::PrismarineSlab => 64u32, - BlockKind::BlueShulkerBox => 1u32, - BlockKind::DeepslateBrickWall => 64u32, - BlockKind::BlackConcrete => 64u32, - BlockKind::HornCoralFan => 64u32, - BlockKind::TubeCoralFan => 64u32, - BlockKind::NetherSprouts => 64u32, - BlockKind::PowderSnow => 1u32, - BlockKind::PottedDandelion => 64u32, - BlockKind::DeadBrainCoralWallFan => 64u32, - BlockKind::WaxedExposedCopper => 64u32, - BlockKind::DioriteStairs => 64u32, - BlockKind::SmallAmethystBud => 64u32, - BlockKind::Air => 64u32, - BlockKind::FireCoralWallFan => 64u32, - BlockKind::Lilac => 64u32, - BlockKind::PrismarineBricks => 64u32, - BlockKind::AzureBluet => 64u32, - BlockKind::Tnt => 64u32, - BlockKind::Candle => 64u32, - BlockKind::PolishedAndesiteSlab => 64u32, - BlockKind::PolishedBlackstoneButton => 64u32, - BlockKind::OxidizedCutCopper => 64u32, - BlockKind::BlueCarpet => 64u32, - BlockKind::IronBlock => 64u32, - BlockKind::CrimsonPressurePlate => 64u32, - BlockKind::StoneBrickStairs => 64u32, - BlockKind::JungleSapling => 64u32, - BlockKind::PrismarineBrickSlab => 64u32, - BlockKind::GrayGlazedTerracotta => 64u32, - BlockKind::Lectern => 64u32, - BlockKind::PolishedGranite => 64u32, - BlockKind::RedBanner => 16u32, - BlockKind::OrangeGlazedTerracotta => 64u32, - BlockKind::PinkConcretePowder => 64u32, - BlockKind::Composter => 64u32, - BlockKind::BubbleCoralFan => 64u32, - BlockKind::Deepslate => 64u32, - BlockKind::WallTorch => 64u32, - BlockKind::JungleLeaves => 64u32, - BlockKind::PottedWarpedFungus => 64u32, - BlockKind::Blackstone => 64u32, - BlockKind::ChiseledRedSandstone => 64u32, - BlockKind::PottedFloweringAzaleaBush => 64u32, - BlockKind::WaxedOxidizedCutCopperStairs => 64u32, - BlockKind::Barrel => 64u32, - BlockKind::JackOLantern => 64u32, - BlockKind::AcaciaButton => 64u32, - BlockKind::ChiseledSandstone => 64u32, - BlockKind::PurpurStairs => 64u32, - BlockKind::StrippedWarpedStem => 64u32, - BlockKind::LightGrayTerracotta => 64u32, - BlockKind::PottedOrangeTulip => 64u32, - BlockKind::BlueTerracotta => 64u32, - BlockKind::CopperOre => 64u32, - BlockKind::RootedDirt => 64u32, - BlockKind::DeepslateTileStairs => 64u32, - BlockKind::PottedBlueOrchid => 64u32, - BlockKind::MelonStem => 64u32, - BlockKind::PinkWool => 64u32, - BlockKind::StrippedSpruceLog => 64u32, - BlockKind::RedMushroom => 64u32, - BlockKind::RedCandle => 64u32, - BlockKind::DripstoneBlock => 64u32, - BlockKind::PolishedDeepslate => 64u32, - BlockKind::RawGoldBlock => 64u32, - BlockKind::PinkCandleCake => 64u32, - BlockKind::CreeperHead => 64u32, - BlockKind::DarkOakLog => 64u32, - BlockKind::YellowBanner => 16u32, - BlockKind::NoteBlock => 64u32, - BlockKind::DarkOakFence => 64u32, - BlockKind::DeadTubeCoralFan => 64u32, - BlockKind::YellowCandle => 64u32, - BlockKind::OrangeTulip => 64u32, - BlockKind::EndStoneBricks => 64u32, - BlockKind::PolishedGraniteStairs => 64u32, - BlockKind::WhiteCandleCake => 64u32, - BlockKind::TallGrass => 64u32, - BlockKind::Stonecutter => 64u32, - BlockKind::MagentaWool => 64u32, - BlockKind::PolishedBasalt => 64u32, - BlockKind::GrayStainedGlass => 64u32, - BlockKind::LimeTerracotta => 64u32, - BlockKind::Shroomlight => 64u32, - BlockKind::CrimsonSlab => 64u32, - BlockKind::WarpedSlab => 64u32, - BlockKind::RedWool => 64u32, - BlockKind::GrassBlock => 64u32, - BlockKind::BlackstoneStairs => 64u32, - BlockKind::GrayCandle => 64u32, - BlockKind::WhiteCarpet => 64u32, - BlockKind::PottedCornflower => 64u32, - BlockKind::WarpedFence => 64u32, - BlockKind::OxeyeDaisy => 64u32, - BlockKind::BirchSapling => 64u32, - BlockKind::StrippedSpruceWood => 64u32, - BlockKind::FloweringAzalea => 64u32, - BlockKind::PinkStainedGlassPane => 64u32, - BlockKind::AcaciaTrapdoor => 64u32, - BlockKind::PottedDeadBush => 64u32, - BlockKind::Lantern => 64u32, - BlockKind::RedWallBanner => 16u32, - BlockKind::Smoker => 64u32, - BlockKind::LightGrayCarpet => 64u32, - BlockKind::PinkConcrete => 64u32, - BlockKind::SpruceFence => 64u32, - BlockKind::WhiteConcrete => 64u32, - BlockKind::JungleWallSign => 16u32, - BlockKind::AndesiteWall => 64u32, - BlockKind::WarpedSign => 16u32, - BlockKind::LimeCarpet => 64u32, - BlockKind::Cactus => 64u32, - BlockKind::LimeWallBanner => 16u32, - BlockKind::CyanShulkerBox => 1u32, - BlockKind::MagentaConcrete => 64u32, - BlockKind::LapisBlock => 64u32, - BlockKind::OakSign => 16u32, - BlockKind::CobbledDeepslateStairs => 64u32, - BlockKind::DeadBubbleCoralWallFan => 64u32, - BlockKind::Lava => 64u32, - BlockKind::DeadBubbleCoralFan => 64u32, - BlockKind::GrayCandleCake => 64u32, - BlockKind::Furnace => 64u32, - BlockKind::FletchingTable => 64u32, - BlockKind::GreenWallBanner => 16u32, - BlockKind::CrackedDeepslateTiles => 64u32, - BlockKind::CyanBed => 1u32, - BlockKind::SpruceTrapdoor => 64u32, - BlockKind::PottedDarkOakSapling => 64u32, - BlockKind::Beetroots => 64u32, - BlockKind::GrayStainedGlassPane => 64u32, - BlockKind::LightBlueCandle => 64u32, - BlockKind::FireCoralBlock => 64u32, - BlockKind::PlayerWallHead => 64u32, - BlockKind::DeadFireCoralFan => 64u32, - BlockKind::LightningRod => 64u32, - BlockKind::DeepslateRedstoneOre => 64u32, - BlockKind::BoneBlock => 64u32, - BlockKind::NetherWart => 64u32, - BlockKind::BubbleCoralBlock => 64u32, - BlockKind::AcaciaFence => 64u32, - BlockKind::Grindstone => 64u32, - BlockKind::SoulSoil => 64u32, - BlockKind::DeadBubbleCoral => 64u32, - BlockKind::CrackedDeepslateBricks => 64u32, - BlockKind::BlackBed => 1u32, - BlockKind::JungleSign => 16u32, - BlockKind::InfestedStone => 64u32, - BlockKind::DeadTubeCoralWallFan => 64u32, - BlockKind::GraniteStairs => 64u32, - BlockKind::WaxedWeatheredCutCopperSlab => 64u32, - BlockKind::SprucePressurePlate => 64u32, - BlockKind::JungleSlab => 64u32, - BlockKind::AndesiteSlab => 64u32, - BlockKind::BlackShulkerBox => 1u32, - BlockKind::JungleLog => 64u32, - BlockKind::ChiseledQuartzBlock => 64u32, - BlockKind::LightBlueTerracotta => 64u32, - BlockKind::Ladder => 64u32, - BlockKind::MossyStoneBrickWall => 64u32, - BlockKind::Kelp => 64u32, - BlockKind::Target => 64u32, - BlockKind::LightBlueGlazedTerracotta => 64u32, - BlockKind::CoarseDirt => 64u32, - BlockKind::LightGrayGlazedTerracotta => 64u32, - BlockKind::DeadBrainCoralFan => 64u32, - BlockKind::BubbleColumn => 64u32, - BlockKind::JunglePressurePlate => 64u32, - BlockKind::FloweringAzaleaLeaves => 64u32, - BlockKind::WeatheredCutCopperSlab => 64u32, - BlockKind::StrippedDarkOakLog => 64u32, - BlockKind::PurpleConcrete => 64u32, - BlockKind::DarkOakFenceGate => 64u32, - BlockKind::GrayConcretePowder => 64u32, - BlockKind::StonePressurePlate => 64u32, - BlockKind::Dropper => 64u32, - BlockKind::BlueBanner => 16u32, - BlockKind::DeepslateEmeraldOre => 64u32, - BlockKind::ChainCommandBlock => 64u32, - BlockKind::CrimsonFenceGate => 64u32, - BlockKind::MagentaCandle => 64u32, - BlockKind::LimeCandleCake => 64u32, - BlockKind::WaxedWeatheredCutCopper => 64u32, - BlockKind::RawIronBlock => 64u32, - BlockKind::ZombieHead => 64u32, - BlockKind::SmoothRedSandstoneSlab => 64u32, - BlockKind::WitherRose => 64u32, - BlockKind::BirchButton => 64u32, - BlockKind::TubeCoralBlock => 64u32, - BlockKind::InfestedCobblestone => 64u32, - BlockKind::PurpleStainedGlassPane => 64u32, - BlockKind::StructureVoid => 64u32, - BlockKind::CraftingTable => 64u32, - BlockKind::OakPressurePlate => 64u32, - BlockKind::OakButton => 64u32, - BlockKind::LightBlueConcrete => 64u32, - BlockKind::LimeStainedGlass => 64u32, - BlockKind::StrippedWarpedHyphae => 64u32, - BlockKind::StrippedAcaciaLog => 64u32, - BlockKind::PinkStainedGlass => 64u32, - BlockKind::LilyPad => 64u32, - BlockKind::GraniteSlab => 64u32, - BlockKind::DarkOakWood => 64u32, - BlockKind::Prismarine => 64u32, - BlockKind::CyanWool => 64u32, - BlockKind::Netherrack => 64u32, - BlockKind::YellowStainedGlassPane => 64u32, - BlockKind::SoulFire => 64u32, - BlockKind::CyanConcrete => 64u32, - BlockKind::CrimsonSign => 16u32, - BlockKind::SeaPickle => 64u32, - BlockKind::SpruceDoor => 64u32, - BlockKind::ChiseledPolishedBlackstone => 64u32, - BlockKind::Scaffolding => 64u32, - BlockKind::MossBlock => 64u32, - BlockKind::ChorusPlant => 64u32, - BlockKind::StrippedDarkOakWood => 64u32, - BlockKind::BirchFence => 64u32, - BlockKind::Spawner => 64u32, - BlockKind::WhiteConcretePowder => 64u32, - BlockKind::WarpedPressurePlate => 64u32, - BlockKind::PottedWarpedRoots => 64u32, - BlockKind::BirchPlanks => 64u32, - BlockKind::WhiteTerracotta => 64u32, - BlockKind::SpruceSign => 16u32, - BlockKind::WhiteWool => 64u32, - BlockKind::PottedWitherRose => 64u32, - BlockKind::EndStoneBrickStairs => 64u32, - BlockKind::ChiseledStoneBricks => 64u32, - BlockKind::StrippedCrimsonHyphae => 64u32, - BlockKind::WarpedNylium => 64u32, - BlockKind::AncientDebris => 64u32, - BlockKind::PackedIce => 64u32, - BlockKind::PolishedBlackstoneBrickStairs => 64u32, - BlockKind::OxidizedCutCopperSlab => 64u32, - BlockKind::DeepslateLapisOre => 64u32, - BlockKind::SpruceWood => 64u32, - BlockKind::WarpedDoor => 64u32, - BlockKind::BlueConcrete => 64u32, - BlockKind::BlackGlazedTerracotta => 64u32, - BlockKind::Stone => 64u32, - BlockKind::SpruceWallSign => 16u32, - BlockKind::WarpedFenceGate => 64u32, - BlockKind::GoldOre => 64u32, - BlockKind::FrostedIce => 64u32, - BlockKind::InfestedCrackedStoneBricks => 64u32, - BlockKind::WhiteGlazedTerracotta => 64u32, - BlockKind::LimeGlazedTerracotta => 64u32, - BlockKind::BrownConcrete => 64u32, - BlockKind::WarpedFungus => 64u32, - BlockKind::RedstoneTorch => 64u32, - BlockKind::PrismarineStairs => 64u32, - BlockKind::CyanStainedGlassPane => 64u32, - BlockKind::PurpleWallBanner => 16u32, - BlockKind::AmethystCluster => 64u32, - BlockKind::PinkShulkerBox => 1u32, - BlockKind::DiamondOre => 64u32, - BlockKind::DeepslateGoldOre => 64u32, - BlockKind::DeepslateTileWall => 64u32, - BlockKind::StoneBricks => 64u32, - BlockKind::Peony => 64u32, - BlockKind::AttachedMelonStem => 64u32, - BlockKind::WaxedCutCopper => 64u32, - BlockKind::SlimeBlock => 64u32, - BlockKind::PrismarineWall => 64u32, - BlockKind::InfestedStoneBricks => 64u32, - BlockKind::Obsidian => 64u32, - BlockKind::LightGrayStainedGlassPane => 64u32, - BlockKind::WaxedWeatheredCutCopperStairs => 64u32, - BlockKind::YellowBed => 1u32, - BlockKind::MossyCobblestoneStairs => 64u32, - BlockKind::WhiteTulip => 64u32, - BlockKind::LightBlueCandleCake => 64u32, - BlockKind::Bell => 64u32, - BlockKind::OrangeBed => 1u32, - BlockKind::DamagedAnvil => 64u32, - BlockKind::PlayerHead => 64u32, - BlockKind::PolishedDioriteSlab => 64u32, - BlockKind::WaxedOxidizedCutCopperSlab => 64u32, - BlockKind::OakFence => 64u32, - BlockKind::BlueIce => 64u32, - BlockKind::DeepslateIronOre => 64u32, - BlockKind::CrimsonNylium => 64u32, - BlockKind::JungleStairs => 64u32, - BlockKind::GreenGlazedTerracotta => 64u32, - BlockKind::IronBars => 64u32, - BlockKind::EndStoneBrickWall => 64u32, - BlockKind::EnchantingTable => 64u32, - BlockKind::WeatheredCopper => 64u32, - BlockKind::NetherGoldOre => 64u32, - BlockKind::RedCandleCake => 64u32, - BlockKind::Glowstone => 64u32, - BlockKind::StrippedOakLog => 64u32, - BlockKind::PurpleCandle => 64u32, - BlockKind::SmoothSandstoneSlab => 64u32, - BlockKind::WarpedTrapdoor => 64u32, - BlockKind::EndGateway => 64u32, - BlockKind::BrownWool => 64u32, - BlockKind::StoneSlab => 64u32, - BlockKind::SmoothRedSandstoneStairs => 64u32, - BlockKind::Bookshelf => 64u32, - BlockKind::OxidizedCutCopperStairs => 64u32, - BlockKind::PurpurPillar => 64u32, - BlockKind::ExposedCutCopperStairs => 64u32, - BlockKind::HangingRoots => 64u32, - BlockKind::EmeraldOre => 64u32, - BlockKind::DeadTubeCoralBlock => 64u32, - BlockKind::YellowWallBanner => 16u32, - BlockKind::VoidAir => 64u32, - BlockKind::OakStairs => 64u32, - BlockKind::Lever => 64u32, - BlockKind::PottedWhiteTulip => 64u32, - BlockKind::CyanWallBanner => 16u32, - BlockKind::PetrifiedOakSlab => 64u32, - BlockKind::Mycelium => 64u32, - BlockKind::BirchFenceGate => 64u32, - BlockKind::Clay => 64u32, - BlockKind::CaveVinesPlant => 64u32, - BlockKind::CyanCarpet => 64u32, - BlockKind::FireCoralFan => 64u32, - BlockKind::RepeatingCommandBlock => 64u32, - BlockKind::PottedAzureBluet => 64u32, - BlockKind::BrownWallBanner => 16u32, - BlockKind::PolishedBlackstoneBrickSlab => 64u32, - BlockKind::Pumpkin => 64u32, - BlockKind::Sand => 64u32, - BlockKind::IronTrapdoor => 64u32, - BlockKind::KelpPlant => 64u32, - BlockKind::DioriteSlab => 64u32, - BlockKind::RedSandstoneWall => 64u32, - BlockKind::SmithingTable => 64u32, - BlockKind::MediumAmethystBud => 64u32, - BlockKind::Chain => 64u32, - BlockKind::BrainCoralFan => 64u32, - BlockKind::SpruceButton => 64u32, - BlockKind::Potatoes => 64u32, - BlockKind::DeadFireCoralWallFan => 64u32, - BlockKind::ChorusFlower => 64u32, - BlockKind::Allium => 64u32, - BlockKind::CrimsonFungus => 64u32, - BlockKind::PottedJungleSapling => 64u32, - BlockKind::CarvedPumpkin => 64u32, - BlockKind::BigDripleaf => 64u32, - BlockKind::CoalOre => 64u32, - BlockKind::DeepslateDiamondOre => 64u32, - BlockKind::Dispenser => 64u32, - BlockKind::DarkOakWallSign => 16u32, - BlockKind::SoulCampfire => 64u32, - BlockKind::Jukebox => 64u32, - BlockKind::MovingPiston => 64u32, - BlockKind::WaxedExposedCutCopperStairs => 64u32, - BlockKind::CyanGlazedTerracotta => 64u32, - BlockKind::StrippedJungleWood => 64u32, - BlockKind::Bamboo => 64u32, - BlockKind::HayBlock => 64u32, - BlockKind::DeepslateCopperOre => 64u32, - BlockKind::PottedOakSapling => 64u32, - BlockKind::JungleButton => 64u32, - BlockKind::Tuff => 64u32, - BlockKind::BirchDoor => 64u32, - BlockKind::GrayTerracotta => 64u32, - BlockKind::SmoothStone => 64u32, - BlockKind::DeadFireCoral => 64u32, - BlockKind::RedstoneWallTorch => 64u32, - BlockKind::Loom => 64u32, - BlockKind::WeatheredCutCopper => 64u32, - BlockKind::SkeletonSkull => 64u32, - BlockKind::BlackWallBanner => 16u32, - BlockKind::Carrots => 64u32, - BlockKind::BlackStainedGlassPane => 64u32, - BlockKind::PottedRedTulip => 64u32, - BlockKind::CartographyTable => 64u32, - BlockKind::WarpedRoots => 64u32, - BlockKind::BrownStainedGlass => 64u32, - BlockKind::DeepslateBricks => 64u32, - BlockKind::RedstoneBlock => 64u32, - BlockKind::GreenBed => 1u32, - BlockKind::CreeperWallHead => 64u32, - BlockKind::JungleFenceGate => 64u32, - BlockKind::LimeShulkerBox => 1u32, - BlockKind::Gravel => 64u32, - BlockKind::OrangeCarpet => 64u32, - BlockKind::BrownCandle => 64u32, - BlockKind::ExposedCopper => 64u32, - BlockKind::BirchStairs => 64u32, - BlockKind::InfestedMossyStoneBricks => 64u32, - BlockKind::SmoothStoneSlab => 64u32, - BlockKind::Dandelion => 64u32, - BlockKind::PolishedBlackstoneBricks => 64u32, - BlockKind::LightBlueStainedGlass => 64u32, - BlockKind::PolishedAndesiteStairs => 64u32, - BlockKind::Ice => 64u32, - BlockKind::BirchLog => 64u32, - BlockKind::Azalea => 64u32, - BlockKind::HoneyBlock => 64u32, - BlockKind::BrownStainedGlassPane => 64u32, - BlockKind::CyanConcretePowder => 64u32, - BlockKind::RedSand => 64u32, - BlockKind::BlackStainedGlass => 64u32, - BlockKind::JungleWood => 64u32, - BlockKind::BrainCoral => 64u32, - BlockKind::CobblestoneWall => 64u32, - BlockKind::MossCarpet => 64u32, - BlockKind::WarpedPlanks => 64u32, - BlockKind::DarkOakSign => 16u32, - BlockKind::BlackCandle => 64u32, - BlockKind::YellowTerracotta => 64u32, - BlockKind::TripwireHook => 64u32, - BlockKind::PolishedDeepslateWall => 64u32, - BlockKind::CyanBanner => 16u32, - BlockKind::CobblestoneSlab => 64u32, - } - } -} -impl BlockKind { - #[doc = "Returns the `diggable` property of this `BlockKind`."] - #[inline] - pub fn diggable(&self) -> bool { - match self { - BlockKind::SpruceFenceGate => true, - BlockKind::SmithingTable => true, - BlockKind::RedWallBanner => true, - BlockKind::RedBed => true, - BlockKind::LightBlueWool => true, - BlockKind::StrippedCrimsonStem => true, - BlockKind::LargeAmethystBud => true, - BlockKind::PottedCactus => true, - BlockKind::BrownWool => true, - BlockKind::DragonHead => true, - BlockKind::BlackStainedGlass => true, - BlockKind::CutRedSandstoneSlab => true, - BlockKind::RedstoneWire => true, - BlockKind::SpruceTrapdoor => true, - BlockKind::RespawnAnchor => true, - BlockKind::Fern => true, - BlockKind::CrimsonDoor => true, - BlockKind::OakPressurePlate => true, - BlockKind::JungleButton => true, - BlockKind::PurpleTerracotta => true, - BlockKind::QuartzStairs => true, - BlockKind::RawCopperBlock => true, - BlockKind::DiamondOre => true, - BlockKind::OrangeStainedGlass => true, - BlockKind::WarpedPressurePlate => true, - BlockKind::PottedDeadBush => true, - BlockKind::LightBlueConcretePowder => true, - BlockKind::Melon => true, - BlockKind::LightGrayConcretePowder => true, - BlockKind::YellowCandleCake => true, - BlockKind::BrownCandle => true, - BlockKind::LightGrayTerracotta => true, - BlockKind::LightBlueStainedGlass => true, - BlockKind::NetherBrickWall => true, - BlockKind::BubbleCoralFan => true, - BlockKind::AndesiteWall => true, - BlockKind::GreenShulkerBox => true, - BlockKind::Barrier => false, - BlockKind::Lever => true, - BlockKind::WitherSkeletonWallSkull => true, - BlockKind::Campfire => true, - BlockKind::PinkWallBanner => true, - BlockKind::WaterCauldron => true, - BlockKind::CyanTerracotta => true, - BlockKind::WaxedWeatheredCutCopperStairs => true, - BlockKind::BlueWallBanner => true, - BlockKind::CrackedStoneBricks => true, - BlockKind::SprucePlanks => true, - BlockKind::Dispenser => true, - BlockKind::LilyPad => true, - BlockKind::StoneButton => true, - BlockKind::YellowShulkerBox => true, - BlockKind::VoidAir => true, - BlockKind::Lodestone => true, - BlockKind::Ice => true, - BlockKind::GreenStainedGlassPane => true, - BlockKind::SmoothRedSandstone => true, - BlockKind::Loom => true, - BlockKind::PrismarineWall => true, - BlockKind::LimeConcrete => true, - BlockKind::WarpedPlanks => true, - BlockKind::BlueCandleCake => true, - BlockKind::DeadFireCoral => true, - BlockKind::Basalt => true, - BlockKind::BlueCandle => true, - BlockKind::WhiteConcrete => true, - BlockKind::LightGrayCandleCake => true, - BlockKind::SmoothSandstoneSlab => true, - BlockKind::GrayStainedGlass => true, - BlockKind::DetectorRail => true, - BlockKind::TrappedChest => true, - BlockKind::Andesite => true, - BlockKind::AcaciaFence => true, - BlockKind::DeadHornCoral => true, - BlockKind::WhiteBed => true, - BlockKind::WarpedStem => true, - BlockKind::BlackWallBanner => true, - BlockKind::NetherWart => true, - BlockKind::GreenTerracotta => true, - BlockKind::CyanBanner => true, - BlockKind::BrainCoralBlock => true, - BlockKind::HornCoral => true, - BlockKind::DeadBubbleCoralFan => true, - BlockKind::WarpedStairs => true, - BlockKind::DeepslateRedstoneOre => true, - BlockKind::EndStoneBrickWall => true, - BlockKind::WaxedExposedCutCopper => true, - BlockKind::GoldBlock => true, - BlockKind::Pumpkin => true, - BlockKind::JungleDoor => true, - BlockKind::SmoothQuartzStairs => true, - BlockKind::JungleSapling => true, - BlockKind::Barrel => true, - BlockKind::RedShulkerBox => true, - BlockKind::BeeNest => true, - BlockKind::WitherRose => true, - BlockKind::CyanStainedGlass => true, - BlockKind::CyanWallBanner => true, - BlockKind::SpruceSign => true, - BlockKind::OrangeConcretePowder => true, - BlockKind::PowderSnow => true, - BlockKind::CobbledDeepslateWall => true, - BlockKind::BirchDoor => true, - BlockKind::BlueOrchid => true, - BlockKind::DeepslateBricks => true, - BlockKind::Ladder => true, - BlockKind::EndGateway => false, - BlockKind::MagentaCandle => true, - BlockKind::OxidizedCopper => true, - BlockKind::WarpedSlab => true, - BlockKind::ZombieWallHead => true, - BlockKind::MagentaStainedGlass => true, - BlockKind::PolishedBlackstonePressurePlate => true, - BlockKind::RedStainedGlassPane => true, - BlockKind::WarpedTrapdoor => true, - BlockKind::OrangeTulip => true, - BlockKind::DarkOakPressurePlate => true, - BlockKind::OrangeGlazedTerracotta => true, - BlockKind::BigDripleaf => true, - BlockKind::BrownBanner => true, - BlockKind::DeadFireCoralFan => true, - BlockKind::Deepslate => true, - BlockKind::CryingObsidian => true, - BlockKind::StoneStairs => true, - BlockKind::Dirt => true, - BlockKind::QuartzBlock => true, - BlockKind::PolishedBlackstone => true, - BlockKind::DarkOakStairs => true, - BlockKind::WhiteTerracotta => true, - BlockKind::CommandBlock => false, - BlockKind::YellowCarpet => true, - BlockKind::Torch => true, - BlockKind::CobbledDeepslate => true, - BlockKind::GrayConcretePowder => true, - BlockKind::WaxedWeatheredCutCopper => true, - BlockKind::GreenConcretePowder => true, - BlockKind::PolishedBlackstoneButton => true, - BlockKind::DeadTubeCoralWallFan => true, - BlockKind::RootedDirt => true, - BlockKind::FireCoralBlock => true, - BlockKind::GraniteWall => true, - BlockKind::OxidizedCutCopperStairs => true, - BlockKind::OxidizedCutCopper => true, - BlockKind::StrippedBirchWood => true, - BlockKind::EndStoneBricks => true, - BlockKind::CrackedNetherBricks => true, - BlockKind::SpruceLog => true, - BlockKind::WallTorch => true, - BlockKind::AcaciaLeaves => true, - BlockKind::PackedIce => true, - BlockKind::Diorite => true, - BlockKind::IronBlock => true, - BlockKind::Allium => true, - BlockKind::BirchWallSign => true, - BlockKind::LimeBanner => true, - BlockKind::LightGrayGlazedTerracotta => true, - BlockKind::MediumAmethystBud => true, - BlockKind::PottedLilyOfTheValley => true, - BlockKind::Lilac => true, - BlockKind::Grass => true, - BlockKind::DaylightDetector => true, - BlockKind::CutRedSandstone => true, - BlockKind::PottedCornflower => true, - BlockKind::RedSand => true, - BlockKind::Cobweb => true, - BlockKind::PolishedBlackstoneBricks => true, - BlockKind::PolishedGraniteSlab => true, - BlockKind::RawGoldBlock => true, - BlockKind::OrangeBed => true, - BlockKind::PurpurBlock => true, - BlockKind::ShulkerBox => true, - BlockKind::PrismarineBrickStairs => true, - BlockKind::BirchStairs => true, - BlockKind::OakPlanks => true, - BlockKind::PottedPinkTulip => true, - BlockKind::RedTerracotta => true, - BlockKind::StrippedWarpedStem => true, - BlockKind::Anvil => true, - BlockKind::WhiteStainedGlass => true, - BlockKind::PottedOakSapling => true, - BlockKind::BirchFence => true, - BlockKind::OxidizedCutCopperSlab => true, - BlockKind::JungleFence => true, - BlockKind::ExposedCutCopperStairs => true, - BlockKind::OrangeConcrete => true, - BlockKind::Cocoa => true, - BlockKind::StrippedAcaciaWood => true, - BlockKind::DarkOakWood => true, - BlockKind::Lantern => true, - BlockKind::YellowStainedGlassPane => true, - BlockKind::LimeTerracotta => true, - BlockKind::CreeperWallHead => true, - BlockKind::SeaLantern => true, - BlockKind::PolishedGranite => true, - BlockKind::BrownConcretePowder => true, - BlockKind::GrayBed => true, - BlockKind::LightGrayWallBanner => true, - BlockKind::ChiseledQuartzBlock => true, - BlockKind::BrownStainedGlassPane => true, - BlockKind::Jukebox => true, - BlockKind::HornCoralBlock => true, - BlockKind::LightBlueStainedGlassPane => true, - BlockKind::OrangeTerracotta => true, - BlockKind::BlackstoneStairs => true, - BlockKind::Observer => true, - BlockKind::PinkStainedGlass => true, - BlockKind::BrickSlab => true, - BlockKind::MossyStoneBrickStairs => true, - BlockKind::WaxedOxidizedCutCopperStairs => true, - BlockKind::StrippedBirchLog => true, - BlockKind::PurpurStairs => true, - BlockKind::InfestedCrackedStoneBricks => true, - BlockKind::PurpleStainedGlassPane => true, - BlockKind::Glass => true, - BlockKind::LightWeightedPressurePlate => true, - BlockKind::DiamondBlock => true, - BlockKind::LightGrayShulkerBox => true, - BlockKind::DioriteSlab => true, - BlockKind::SoulCampfire => true, - BlockKind::CrimsonTrapdoor => true, - BlockKind::MagentaGlazedTerracotta => true, - BlockKind::PoweredRail => true, - BlockKind::Shroomlight => true, - BlockKind::DeepslateGoldOre => true, - BlockKind::PottedCrimsonRoots => true, - BlockKind::SandstoneWall => true, - BlockKind::DarkPrismarine => true, - BlockKind::RedSandstone => true, - BlockKind::DarkOakLeaves => true, - BlockKind::StrippedWarpedHyphae => true, - BlockKind::CrimsonStem => true, - BlockKind::BrownCandleCake => true, - BlockKind::OakWallSign => true, - BlockKind::FireCoralFan => true, - BlockKind::Podzol => true, - BlockKind::OrangeStainedGlassPane => true, - BlockKind::AcaciaSign => true, - BlockKind::Kelp => true, - BlockKind::CutCopperSlab => true, - BlockKind::HangingRoots => true, - BlockKind::RedNetherBrickWall => true, - BlockKind::LightBlueCarpet => true, - BlockKind::LimeWool => true, - BlockKind::WhiteShulkerBox => true, - BlockKind::SnowBlock => true, - BlockKind::PurpleBanner => true, - BlockKind::PottedBamboo => true, - BlockKind::PlayerHead => true, - BlockKind::Beehive => true, - BlockKind::Rail => true, - BlockKind::AcaciaLog => true, - BlockKind::PurpleWallBanner => true, - BlockKind::Mycelium => true, - BlockKind::WhiteGlazedTerracotta => true, - BlockKind::OakLeaves => true, - BlockKind::CrimsonFenceGate => true, - BlockKind::AttachedPumpkinStem => true, - BlockKind::Chain => true, - BlockKind::RedBanner => true, - BlockKind::KelpPlant => true, - BlockKind::OrangeCandle => true, - BlockKind::WaxedOxidizedCutCopper => true, - BlockKind::Composter => true, - BlockKind::StrippedJungleLog => true, - BlockKind::AzaleaLeaves => true, - BlockKind::WarpedSign => true, - BlockKind::Gravel => true, - BlockKind::RedNetherBrickSlab => true, - BlockKind::AmethystCluster => true, - BlockKind::BrownShulkerBox => true, - BlockKind::WhiteCandleCake => true, - BlockKind::Cactus => true, - BlockKind::Obsidian => true, - BlockKind::LapisOre => true, - BlockKind::RedSandstoneStairs => true, - BlockKind::PolishedDeepslate => true, - BlockKind::FireCoralWallFan => true, - BlockKind::PottedBlueOrchid => true, - BlockKind::LightGrayBed => true, - BlockKind::LightBlueBed => true, - BlockKind::AzureBluet => true, - BlockKind::RedMushroom => true, - BlockKind::Fire => true, - BlockKind::BlackWool => true, - BlockKind::SoulSand => true, - BlockKind::ChippedAnvil => true, - BlockKind::MagentaBed => true, - BlockKind::BlackStainedGlassPane => true, - BlockKind::BlueBanner => true, - BlockKind::BirchSapling => true, - BlockKind::BirchFenceGate => true, - BlockKind::AcaciaFenceGate => true, - BlockKind::SpruceDoor => true, - BlockKind::PinkConcrete => true, - BlockKind::WhiteConcretePowder => true, - BlockKind::YellowCandle => true, - BlockKind::GrayCandle => true, - BlockKind::PurpleCandle => true, - BlockKind::DarkOakFenceGate => true, - BlockKind::DeadHornCoralFan => true, - BlockKind::CrackedPolishedBlackstoneBricks => true, - BlockKind::LightGrayConcrete => true, - BlockKind::StoneBrickStairs => true, - BlockKind::BrownTerracotta => true, - BlockKind::PolishedBlackstoneStairs => true, - BlockKind::DeadBubbleCoralWallFan => true, - BlockKind::ChorusPlant => true, - BlockKind::Calcite => true, - BlockKind::PistonHead => true, - BlockKind::BuddingAmethyst => true, - BlockKind::ExposedCutCopperSlab => true, - BlockKind::MossyStoneBrickSlab => true, - BlockKind::PinkBanner => true, - BlockKind::Hopper => true, - BlockKind::BlueTerracotta => true, - BlockKind::WeepingVinesPlant => true, - BlockKind::CaveAir => true, - BlockKind::CutSandstoneSlab => true, - BlockKind::DeepslateTileSlab => true, - BlockKind::OakButton => true, - BlockKind::WetSponge => true, - BlockKind::WarpedButton => true, - BlockKind::BrownGlazedTerracotta => true, - BlockKind::DeepslateDiamondOre => true, - BlockKind::IronDoor => true, - BlockKind::Dropper => true, - BlockKind::QuartzBricks => true, - BlockKind::BlueConcretePowder => true, - BlockKind::JunglePlanks => true, - BlockKind::DeepslateCoalOre => true, - BlockKind::BlueConcrete => true, - BlockKind::DarkOakSapling => true, - BlockKind::PottedOrangeTulip => true, - BlockKind::CrimsonNylium => true, - BlockKind::SpruceStairs => true, - BlockKind::PinkCandleCake => true, - BlockKind::CoalBlock => true, - BlockKind::RedNetherBrickStairs => true, - BlockKind::JungleTrapdoor => true, - BlockKind::OakTrapdoor => true, - BlockKind::GildedBlackstone => true, - BlockKind::CutCopperStairs => true, - BlockKind::YellowConcrete => true, - BlockKind::NetherGoldOre => true, - BlockKind::JunglePressurePlate => true, - BlockKind::Bookshelf => true, - BlockKind::CarvedPumpkin => true, - BlockKind::MagentaConcretePowder => true, - BlockKind::OakSapling => true, - BlockKind::CobblestoneWall => true, - BlockKind::HeavyWeightedPressurePlate => true, - BlockKind::BlueGlazedTerracotta => true, - BlockKind::NetherPortal => false, - BlockKind::TallSeagrass => true, - BlockKind::PinkCandle => true, - BlockKind::BirchLog => true, - BlockKind::SmoothQuartz => true, - BlockKind::Bamboo => true, - BlockKind::SpruceWallSign => true, - BlockKind::ChiseledDeepslate => true, - BlockKind::RedMushroomBlock => true, - BlockKind::OakSlab => true, - BlockKind::TubeCoralFan => true, - BlockKind::BirchPressurePlate => true, - BlockKind::PottedRedTulip => true, - BlockKind::SmoothRedSandstoneSlab => true, - BlockKind::RedGlazedTerracotta => true, - BlockKind::JungleWood => true, - BlockKind::Terracotta => true, - BlockKind::NetherSprouts => true, - BlockKind::ChiseledRedSandstone => true, - BlockKind::FrostedIce => true, - BlockKind::PurpleBed => true, - BlockKind::Sponge => true, - BlockKind::LightBlueCandleCake => true, - BlockKind::RawIronBlock => true, - BlockKind::GrayBanner => true, - BlockKind::StrippedDarkOakLog => true, - BlockKind::WaxedExposedCutCopperStairs => true, - BlockKind::CrimsonFungus => true, - BlockKind::Bedrock => false, - BlockKind::Comparator => true, - BlockKind::TallGrass => true, - BlockKind::Tripwire => true, - BlockKind::WhiteCarpet => true, - BlockKind::SpruceSlab => true, - BlockKind::TintedGlass => true, - BlockKind::DarkOakWallSign => true, - BlockKind::SmallDripleaf => true, - BlockKind::StrippedOakWood => true, - BlockKind::CyanWool => true, - BlockKind::ChiseledStoneBricks => true, - BlockKind::PolishedDeepslateWall => true, - BlockKind::OakSign => true, - BlockKind::SkeletonSkull => true, - BlockKind::HayBlock => true, - BlockKind::BlackCandle => true, - BlockKind::ChiseledPolishedBlackstone => true, - BlockKind::Jigsaw => false, - BlockKind::CobbledDeepslateSlab => true, - BlockKind::QuartzSlab => true, - BlockKind::Sunflower => true, - BlockKind::BlueIce => true, - BlockKind::CutCopper => true, - BlockKind::Beacon => true, - BlockKind::DragonEgg => true, - BlockKind::Light => false, - BlockKind::LightGrayWool => true, - BlockKind::EndStoneBrickStairs => true, - BlockKind::BlueStainedGlass => true, - BlockKind::OakFenceGate => true, - BlockKind::Grindstone => true, - BlockKind::MagentaShulkerBox => true, - BlockKind::OakFence => true, - BlockKind::BubbleCoralWallFan => true, - BlockKind::WeepingVines => true, - BlockKind::BlastFurnace => true, - BlockKind::GraniteSlab => true, - BlockKind::WarpedFungus => true, - BlockKind::CobbledDeepslateStairs => true, - BlockKind::TubeCoral => true, - BlockKind::CandleCake => true, - BlockKind::PumpkinStem => true, - BlockKind::PinkTulip => true, - BlockKind::BlueCarpet => true, - BlockKind::QuartzPillar => true, - BlockKind::JungleSlab => true, - BlockKind::Bricks => true, - BlockKind::CrimsonWallSign => true, - BlockKind::YellowConcretePowder => true, - BlockKind::Tnt => true, - BlockKind::CrimsonHyphae => true, - BlockKind::CrimsonSlab => true, - BlockKind::DeepslateTileWall => true, - BlockKind::DioriteWall => true, - BlockKind::LapisBlock => true, - BlockKind::PointedDripstone => true, - BlockKind::TwistingVinesPlant => true, - BlockKind::Azalea => true, - BlockKind::WitherSkeletonSkull => true, - BlockKind::PolishedDeepslateSlab => true, - BlockKind::Carrots => true, - BlockKind::PinkShulkerBox => true, - BlockKind::PolishedAndesite => true, - BlockKind::PolishedDioriteStairs => true, - BlockKind::WaxedWeatheredCopper => true, - BlockKind::SandstoneStairs => true, - BlockKind::Netherrack => true, - BlockKind::BrownConcrete => true, - BlockKind::CrackedDeepslateTiles => true, - BlockKind::GrassBlock => true, - BlockKind::CoarseDirt => true, - BlockKind::ExposedCopper => true, - BlockKind::MagentaTerracotta => true, - BlockKind::PottedPoppy => true, - BlockKind::MagentaCarpet => true, - BlockKind::AndesiteSlab => true, - BlockKind::WhiteBanner => true, - BlockKind::PolishedDioriteSlab => true, - BlockKind::SeaPickle => true, - BlockKind::GrayStainedGlassPane => true, - BlockKind::PottedAzureBluet => true, - BlockKind::RedCarpet => true, - BlockKind::Seagrass => true, - BlockKind::Cauldron => true, - BlockKind::PinkTerracotta => true, - BlockKind::IronOre => true, - BlockKind::AmethystBlock => true, - BlockKind::BlackBanner => true, - BlockKind::StonePressurePlate => true, - BlockKind::BirchWood => true, - BlockKind::SmoothStoneSlab => true, - BlockKind::AcaciaStairs => true, - BlockKind::DeepslateCopperOre => true, - BlockKind::YellowGlazedTerracotta => true, - BlockKind::CyanConcrete => true, - BlockKind::WaxedExposedCopper => true, - BlockKind::PottedFern => true, - BlockKind::EnderChest => true, - BlockKind::SpruceButton => true, - BlockKind::PurpleConcretePowder => true, - BlockKind::GreenBed => true, - BlockKind::Piston => true, - BlockKind::SpruceFence => true, - BlockKind::DeadTubeCoralFan => true, - BlockKind::StoneBricks => true, - BlockKind::NetherBrickSlab => true, - BlockKind::PottedSpruceSapling => true, - BlockKind::JackOLantern => true, - BlockKind::CobblestoneSlab => true, - BlockKind::OakWood => true, - BlockKind::WaxedOxidizedCopper => true, - BlockKind::DeepslateIronOre => true, - BlockKind::CyanCandle => true, - BlockKind::PottedJungleSapling => true, - BlockKind::BrainCoral => true, - BlockKind::EmeraldBlock => true, - BlockKind::Dandelion => true, - BlockKind::BirchSign => true, - BlockKind::InfestedStoneBricks => true, - BlockKind::PolishedGraniteStairs => true, - BlockKind::InfestedChiseledStoneBricks => true, - BlockKind::PottedWitherRose => true, - BlockKind::SlimeBlock => true, - BlockKind::RedSandstoneWall => true, - BlockKind::LimeConcretePowder => true, - BlockKind::CrackedDeepslateBricks => true, - BlockKind::WarpedRoots => true, - BlockKind::SmoothSandstone => true, - BlockKind::BrainCoralWallFan => true, - BlockKind::LightBlueConcrete => true, - BlockKind::MossCarpet => true, - BlockKind::LightGrayStainedGlass => true, - BlockKind::YellowBanner => true, - BlockKind::AcaciaPressurePlate => true, - BlockKind::RoseBush => true, - BlockKind::GreenBanner => true, - BlockKind::YellowWallBanner => true, - BlockKind::SmoothStone => true, - BlockKind::GlassPane => true, - BlockKind::IronBars => true, - BlockKind::FloweringAzalea => true, - BlockKind::Wheat => true, - BlockKind::GrayCarpet => true, - BlockKind::PinkGlazedTerracotta => true, - BlockKind::DarkPrismarineSlab => true, - BlockKind::JungleStairs => true, - BlockKind::DeadBrainCoralFan => true, - BlockKind::CrimsonButton => true, - BlockKind::AndesiteStairs => true, - BlockKind::SugarCane => true, - BlockKind::StrippedSpruceWood => true, - BlockKind::YellowBed => true, - BlockKind::LimeShulkerBox => true, - BlockKind::CrimsonPlanks => true, - BlockKind::HornCoralWallFan => true, - BlockKind::PinkBed => true, - BlockKind::StoneSlab => true, - BlockKind::LightGrayCandle => true, - BlockKind::MossyCobblestoneWall => true, - BlockKind::AcaciaWood => true, - BlockKind::LimeStainedGlassPane => true, - BlockKind::PottedFloweringAzaleaBush => true, - BlockKind::CaveVines => true, - BlockKind::EmeraldOre => true, - BlockKind::CyanCandleCake => true, - BlockKind::WhiteWool => true, - BlockKind::PlayerWallHead => true, - BlockKind::CrimsonFence => true, - BlockKind::StrippedOakLog => true, - BlockKind::WarpedWartBlock => true, - BlockKind::CraftingTable => true, - BlockKind::WarpedDoor => true, - BlockKind::Snow => true, - BlockKind::CobblestoneStairs => true, - BlockKind::PetrifiedOakSlab => true, - BlockKind::CyanGlazedTerracotta => true, - BlockKind::DeepslateTileStairs => true, - BlockKind::WaxedCutCopper => true, - BlockKind::DarkPrismarineStairs => true, - BlockKind::StructureVoid => true, - BlockKind::WhiteWallBanner => true, - BlockKind::AcaciaSapling => true, - BlockKind::WeatheredCutCopperSlab => true, - BlockKind::LimeCandle => true, - BlockKind::BrickStairs => true, - BlockKind::MagentaBanner => true, - BlockKind::SmoothBasalt => true, - BlockKind::BrownBed => true, - BlockKind::PottedDandelion => true, - BlockKind::WhiteCandle => true, - BlockKind::LightBlueWallBanner => true, - BlockKind::PurpleConcrete => true, - BlockKind::PolishedBlackstoneBrickWall => true, - BlockKind::Candle => true, - BlockKind::SmoothRedSandstoneStairs => true, - BlockKind::WeatheredCutCopper => true, - BlockKind::PurpurSlab => true, - BlockKind::WhiteTulip => true, - BlockKind::Cake => true, - BlockKind::PurpurPillar => true, - BlockKind::SpruceSapling => true, - BlockKind::CyanCarpet => true, - BlockKind::DragonWallHead => true, - BlockKind::BlueShulkerBox => true, - BlockKind::StoneBrickWall => true, - BlockKind::DeepslateBrickStairs => true, - BlockKind::MossyStoneBrickWall => true, - BlockKind::MagentaWool => true, - BlockKind::DamagedAnvil => true, - BlockKind::FloweringAzaleaLeaves => true, - BlockKind::InfestedStone => true, - BlockKind::NetheriteBlock => true, - BlockKind::PurpleCarpet => true, - BlockKind::TwistingVines => true, - BlockKind::Lectern => true, - BlockKind::LimeWallBanner => true, - BlockKind::BrainCoralFan => true, - BlockKind::OrangeWool => true, - BlockKind::OrangeCandleCake => true, - BlockKind::GrayWool => true, - BlockKind::Target => true, - BlockKind::BrownMushroom => true, - BlockKind::Clay => true, - BlockKind::PrismarineBrickSlab => true, - BlockKind::AcaciaWallSign => true, - BlockKind::PolishedBlackstoneBrickSlab => true, - BlockKind::HornCoralFan => true, - BlockKind::PottedOxeyeDaisy => true, - BlockKind::PinkConcretePowder => true, - BlockKind::RedSandstoneSlab => true, - BlockKind::Farmland => true, - BlockKind::Prismarine => true, - BlockKind::StructureBlock => false, - BlockKind::BlackCandleCake => true, - BlockKind::PurpleGlazedTerracotta => true, - BlockKind::BirchPlanks => true, - BlockKind::LightBlueShulkerBox => true, - BlockKind::LightBlueTerracotta => true, - BlockKind::PinkCarpet => true, - BlockKind::LightBlueGlazedTerracotta => true, - BlockKind::HoneyBlock => true, - BlockKind::InfestedDeepslate => true, - BlockKind::GreenWallBanner => true, - BlockKind::PottedRedMushroom => true, - BlockKind::SculkSensor => true, - BlockKind::CrimsonPressurePlate => true, - BlockKind::EndRod => true, - BlockKind::DirtPath => true, - BlockKind::ChiseledSandstone => true, - BlockKind::PolishedDeepslateStairs => true, - BlockKind::GraniteStairs => true, - BlockKind::GrayWallBanner => true, - BlockKind::PinkWool => true, - BlockKind::ChorusFlower => true, - BlockKind::GrayCandleCake => true, - BlockKind::DripstoneBlock => true, - BlockKind::NoteBlock => true, - BlockKind::LavaCauldron => true, - BlockKind::GreenCandle => true, - BlockKind::BirchSlab => true, - BlockKind::DeadBubbleCoral => true, - BlockKind::DarkOakDoor => true, - BlockKind::MossyCobblestoneSlab => true, - BlockKind::PottedAzaleaBush => true, - BlockKind::OakStairs => true, - BlockKind::Air => true, - BlockKind::WhiteStainedGlassPane => true, - BlockKind::NetherBrickFence => true, - BlockKind::GreenWool => true, - BlockKind::Vine => true, - BlockKind::DeadHornCoralWallFan => true, - BlockKind::PottedWhiteTulip => true, - BlockKind::RepeatingCommandBlock => false, - BlockKind::NetherWartBlock => true, - BlockKind::BlueStainedGlassPane => true, - BlockKind::BlackCarpet => true, - BlockKind::RedTulip => true, - BlockKind::BlackstoneSlab => true, - BlockKind::GrayConcrete => true, - BlockKind::BirchLeaves => true, - BlockKind::ExposedCutCopper => true, - BlockKind::MagentaConcrete => true, - BlockKind::PowderSnowCauldron => true, - BlockKind::WarpedHyphae => true, - BlockKind::RedstoneTorch => true, - BlockKind::BlackConcretePowder => true, - BlockKind::WaxedExposedCutCopperSlab => true, - BlockKind::EndPortalFrame => false, - BlockKind::SmoothSandstoneStairs => true, - BlockKind::RedWool => true, - BlockKind::DarkOakTrapdoor => true, - BlockKind::IronTrapdoor => true, - BlockKind::TubeCoralBlock => true, - BlockKind::ChainCommandBlock => false, - BlockKind::BubbleCoralBlock => true, - BlockKind::MossyCobblestoneStairs => true, - BlockKind::LilyOfTheValley => true, - BlockKind::WeatheredCutCopperStairs => true, - BlockKind::SprucePressurePlate => true, - BlockKind::FletchingTable => true, - BlockKind::Peony => true, - BlockKind::MushroomStem => true, - BlockKind::SpruceLeaves => true, - BlockKind::JungleWallSign => true, - BlockKind::BlackConcrete => true, - BlockKind::LightGrayStainedGlassPane => true, - BlockKind::DarkOakLog => true, - BlockKind::LimeCarpet => true, - BlockKind::Poppy => true, - BlockKind::RedStainedGlass => true, - BlockKind::Smoker => true, - BlockKind::PottedWarpedFungus => true, - BlockKind::BlackstoneWall => true, - BlockKind::GreenStainedGlass => true, - BlockKind::NetherBrickStairs => true, - BlockKind::PolishedAndesiteSlab => true, - BlockKind::DeadFireCoralWallFan => true, - BlockKind::InfestedCobblestone => true, - BlockKind::EndStone => true, - BlockKind::Sandstone => true, - BlockKind::OrangeBanner => true, - BlockKind::PolishedDiorite => true, - BlockKind::Sand => true, - BlockKind::PottedDarkOakSapling => true, - BlockKind::Cornflower => true, - BlockKind::WaxedOxidizedCutCopperSlab => true, - BlockKind::Glowstone => true, - BlockKind::CartographyTable => true, - BlockKind::WaxedWeatheredCutCopperSlab => true, - BlockKind::YellowWool => true, - BlockKind::PrismarineBricks => true, - BlockKind::CrimsonSign => true, - BlockKind::PottedCrimsonFungus => true, - BlockKind::MagentaCandleCake => true, - BlockKind::BlackGlazedTerracotta => true, - BlockKind::YellowStainedGlass => true, - BlockKind::AcaciaSlab => true, - BlockKind::JungleSign => true, - BlockKind::SoulLantern => true, - BlockKind::MossBlock => true, - BlockKind::BirchTrapdoor => true, - BlockKind::DeepslateEmeraldOre => true, - BlockKind::GrayGlazedTerracotta => true, - BlockKind::DeadBrainCoralBlock => true, - BlockKind::OakLog => true, - BlockKind::DarkOakSign => true, - BlockKind::TubeCoralWallFan => true, - BlockKind::FlowerPot => true, - BlockKind::CoalOre => true, - BlockKind::CyanStainedGlassPane => true, - BlockKind::LargeFern => true, - BlockKind::NetherBricks => true, - BlockKind::Stonecutter => true, - BlockKind::DeadHornCoralBlock => true, - BlockKind::OrangeCarpet => true, - BlockKind::PottedAcaciaSapling => true, - BlockKind::Bell => true, - BlockKind::AcaciaDoor => true, - BlockKind::CrimsonRoots => true, - BlockKind::PrismarineStairs => true, - BlockKind::BubbleColumn => true, - BlockKind::PolishedAndesiteStairs => true, - BlockKind::InfestedMossyStoneBricks => true, - BlockKind::WarpedWallSign => true, - BlockKind::Chest => true, - BlockKind::Water => false, - BlockKind::LimeStainedGlass => true, - BlockKind::Conduit => true, - BlockKind::CyanConcretePowder => true, - BlockKind::CaveVinesPlant => true, - BlockKind::JungleFenceGate => true, - BlockKind::StoneBrickSlab => true, - BlockKind::BrownCarpet => true, - BlockKind::StrippedJungleWood => true, - BlockKind::RedConcrete => true, - BlockKind::BrickWall => true, - BlockKind::CreeperHead => true, - BlockKind::NetherQuartzOre => true, - BlockKind::Scaffolding => true, - BlockKind::PinkStainedGlassPane => true, - BlockKind::BlackTerracotta => true, - BlockKind::WarpedFence => true, - BlockKind::AncientDebris => true, - BlockKind::WaxedCopperBlock => true, - BlockKind::DeadTubeCoral => true, - BlockKind::BigDripleafStem => true, - BlockKind::Furnace => true, - BlockKind::AcaciaTrapdoor => true, - BlockKind::SoulSoil => true, - BlockKind::LightGrayCarpet => true, - BlockKind::MagentaWallBanner => true, - BlockKind::RedNetherBricks => true, - BlockKind::OakDoor => true, - BlockKind::GlowLichen => true, - BlockKind::LimeCandleCake => true, - BlockKind::WaxedCutCopperStairs => true, - BlockKind::LimeBed => true, - BlockKind::MelonStem => true, - BlockKind::CrimsonStairs => true, - BlockKind::MossyCobblestone => true, - BlockKind::ChiseledNetherBricks => true, - BlockKind::EndStoneBrickSlab => true, - BlockKind::BrownStainedGlass => true, - BlockKind::LightningRod => true, - BlockKind::PolishedBlackstoneBrickStairs => true, - BlockKind::Lava => false, - BlockKind::PolishedBlackstoneSlab => true, - BlockKind::DeepslateTiles => true, - BlockKind::TurtleEgg => true, - BlockKind::CutSandstone => true, - BlockKind::BrownMushroomBlock => true, - BlockKind::WarpedNylium => true, - BlockKind::DeadFireCoralBlock => true, - BlockKind::GrayTerracotta => true, - BlockKind::ZombieHead => true, - BlockKind::FireCoral => true, - BlockKind::WaxedCutCopperSlab => true, - BlockKind::BrownWallBanner => true, - BlockKind::Blackstone => true, - BlockKind::BlueBed => true, - BlockKind::Beetroots => true, - BlockKind::SmallAmethystBud => true, - BlockKind::SoulTorch => true, - BlockKind::DioriteStairs => true, - BlockKind::LightBlueCandle => true, - BlockKind::DeadBrainCoral => true, - BlockKind::BambooSapling => true, - BlockKind::CopperBlock => true, - BlockKind::GreenCarpet => true, - BlockKind::RedCandle => true, - BlockKind::DeepslateBrickSlab => true, - BlockKind::OrangeWallBanner => true, - BlockKind::CopperOre => true, - BlockKind::SweetBerryBush => true, - BlockKind::Granite => true, - BlockKind::RedstoneLamp => true, - BlockKind::AcaciaPlanks => true, - BlockKind::PrismarineSlab => true, - BlockKind::DarkOakButton => true, - BlockKind::LimeGlazedTerracotta => true, - BlockKind::PottedAllium => true, - BlockKind::SoulFire => true, - BlockKind::LightBlueBanner => true, - BlockKind::Potatoes => true, - BlockKind::DriedKelpBlock => true, - BlockKind::GrayShulkerBox => true, - BlockKind::RedstoneWallTorch => true, - BlockKind::StickyPiston => true, - BlockKind::RedstoneOre => true, - BlockKind::BirchButton => true, - BlockKind::SoulWallTorch => true, - BlockKind::PurpleStainedGlass => true, - BlockKind::AttachedMelonStem => true, - BlockKind::AcaciaButton => true, - BlockKind::BoneBlock => true, - BlockKind::Spawner => true, - BlockKind::StrippedAcaciaLog => true, - BlockKind::MossyStoneBricks => true, - BlockKind::DeadBush => true, - BlockKind::CyanShulkerBox => true, - BlockKind::BlueWool => true, - BlockKind::JungleLog => true, - BlockKind::SkeletonWallSkull => true, - BlockKind::SandstoneSlab => true, - BlockKind::ActivatorRail => true, - BlockKind::Stone => true, - BlockKind::Cobblestone => true, - BlockKind::BrewingStand => true, - BlockKind::DeepslateLapisOre => true, - BlockKind::StrippedCrimsonHyphae => true, - BlockKind::MagentaStainedGlassPane => true, - BlockKind::PolishedBasalt => true, - BlockKind::OrangeShulkerBox => true, - BlockKind::PottedBrownMushroom => true, - BlockKind::GoldOre => true, - BlockKind::MovingPiston => false, - BlockKind::DarkOakPlanks => true, - BlockKind::DarkOakSlab => true, - BlockKind::OxeyeDaisy => true, - BlockKind::BlackShulkerBox => true, - BlockKind::RedCandleCake => true, - BlockKind::GreenConcrete => true, - BlockKind::PottedWarpedRoots => true, - BlockKind::YellowTerracotta => true, - BlockKind::PottedBirchSapling => true, - BlockKind::EndPortal => false, - BlockKind::LightGrayBanner => true, - BlockKind::DeadTubeCoralBlock => true, - BlockKind::BubbleCoral => true, - BlockKind::PolishedBlackstoneWall => true, - BlockKind::SporeBlossom => true, - BlockKind::Repeater => true, - BlockKind::RedstoneBlock => true, - BlockKind::SpruceWood => true, - BlockKind::GreenCandleCake => true, - BlockKind::DeepslateBrickWall => true, - BlockKind::MagmaBlock => true, - BlockKind::DeadBubbleCoralBlock => true, - BlockKind::RedConcretePowder => true, - BlockKind::StrippedSpruceLog => true, - BlockKind::EnchantingTable => true, - BlockKind::WarpedFenceGate => true, - BlockKind::StrippedDarkOakWood => true, - BlockKind::PurpleShulkerBox => true, - BlockKind::JungleLeaves => true, - BlockKind::CyanBed => true, - BlockKind::DeadBrainCoralWallFan => true, - BlockKind::PurpleWool => true, - BlockKind::GreenGlazedTerracotta => true, - BlockKind::WeatheredCopper => true, - BlockKind::BlackBed => true, - BlockKind::SmoothQuartzSlab => true, - BlockKind::HoneycombBlock => true, - BlockKind::Tuff => true, - BlockKind::PurpleCandleCake => true, - BlockKind::DarkOakFence => true, - BlockKind::TripwireHook => true, - } - } -} -impl BlockKind { - #[doc = "Returns the `transparent` property of this `BlockKind`."] - #[inline] - pub fn transparent(&self) -> bool { - match self { - BlockKind::StrippedOakLog => false, - BlockKind::AcaciaWallSign => true, - BlockKind::SpruceDoor => true, - BlockKind::Cornflower => true, - BlockKind::PistonHead => false, - BlockKind::Seagrass => true, - BlockKind::Ice => true, - BlockKind::PottedCactus => true, - BlockKind::ExposedCutCopperStairs => false, - BlockKind::MossyStoneBrickStairs => false, - BlockKind::EndStoneBricks => false, - BlockKind::HoneyBlock => true, - BlockKind::BirchWallSign => true, - BlockKind::Lodestone => false, - BlockKind::PinkTerracotta => false, - BlockKind::StrippedDarkOakLog => false, - BlockKind::PolishedBasalt => false, - BlockKind::ChiseledDeepslate => false, - BlockKind::PottedBrownMushroom => true, - BlockKind::SpruceButton => true, - BlockKind::WaxedExposedCutCopperStairs => false, - BlockKind::Dispenser => false, - BlockKind::CyanCandleCake => false, - BlockKind::StoneBricks => false, - BlockKind::PottedFern => true, - BlockKind::Carrots => true, - BlockKind::CrimsonPressurePlate => true, - BlockKind::CrimsonWallSign => true, - BlockKind::NetherPortal => true, - BlockKind::DeadBubbleCoral => true, - BlockKind::MossyStoneBrickWall => false, - BlockKind::TintedGlass => true, - BlockKind::RawCopperBlock => false, - BlockKind::CyanBed => true, - BlockKind::Fire => true, - BlockKind::WeatheredCutCopper => false, - BlockKind::PottedFloweringAzaleaBush => true, - BlockKind::BlueStainedGlass => true, - BlockKind::DeepslateEmeraldOre => false, - BlockKind::OrangeGlazedTerracotta => false, - BlockKind::Tuff => false, - BlockKind::PowderSnowCauldron => true, - BlockKind::PurpurStairs => false, - BlockKind::BlueShulkerBox => true, - BlockKind::OakDoor => true, - BlockKind::GrayStainedGlassPane => true, - BlockKind::YellowWallBanner => true, - BlockKind::BlackBed => true, - BlockKind::LightBlueConcretePowder => false, - BlockKind::CandleCake => false, - BlockKind::DeadBrainCoralBlock => false, - BlockKind::LightningRod => true, - BlockKind::TubeCoralWallFan => true, - BlockKind::CrimsonHyphae => false, - BlockKind::CraftingTable => false, - BlockKind::GrayShulkerBox => true, - BlockKind::SmoothStone => false, - BlockKind::CopperOre => false, - BlockKind::WarpedHyphae => false, - BlockKind::RedSandstoneStairs => false, - BlockKind::Grass => true, - BlockKind::DarkOakLog => false, - BlockKind::GildedBlackstone => false, - BlockKind::PinkWallBanner => true, - BlockKind::GreenStainedGlass => true, - BlockKind::OrangeWool => false, - BlockKind::Repeater => false, - BlockKind::Melon => false, - BlockKind::CyanBanner => true, - BlockKind::Torch => true, - BlockKind::PottedCrimsonFungus => true, - BlockKind::EmeraldOre => false, - BlockKind::SkeletonSkull => false, - BlockKind::PolishedDiorite => false, - BlockKind::BrownConcretePowder => false, - BlockKind::PrismarineWall => false, - BlockKind::StrippedJungleLog => false, - BlockKind::Prismarine => false, - BlockKind::PlayerHead => false, - BlockKind::SmoothQuartz => false, - BlockKind::StrippedAcaciaWood => false, - BlockKind::PowderSnow => false, - BlockKind::Chain => true, - BlockKind::NetherWartBlock => false, - BlockKind::NetherBricks => false, - BlockKind::DarkOakSapling => true, - BlockKind::ChiseledQuartzBlock => false, - BlockKind::TubeCoralBlock => false, - BlockKind::WaxedExposedCutCopperSlab => false, - BlockKind::PolishedGranite => false, - BlockKind::StructureBlock => false, - BlockKind::NetherBrickSlab => false, - BlockKind::GrassBlock => false, - BlockKind::AcaciaDoor => true, - BlockKind::EndStoneBrickSlab => false, - BlockKind::GreenTerracotta => false, - BlockKind::Tripwire => true, - BlockKind::WhiteStainedGlassPane => true, - BlockKind::CrimsonSlab => false, - BlockKind::DripstoneBlock => false, - BlockKind::SculkSensor => false, - BlockKind::QuartzSlab => false, - BlockKind::CobblestoneWall => false, - BlockKind::CrimsonTrapdoor => true, - BlockKind::EnchantingTable => false, - BlockKind::BirchButton => true, - BlockKind::GrayCarpet => false, - BlockKind::OrangeBanner => true, - BlockKind::DarkOakWood => false, - BlockKind::MossBlock => false, - BlockKind::MagentaWool => false, - BlockKind::CyanWool => false, - BlockKind::PolishedAndesiteStairs => false, - BlockKind::DeepslateBrickWall => false, - BlockKind::OakFenceGate => false, - BlockKind::Loom => false, - BlockKind::YellowShulkerBox => true, - BlockKind::LightBlueCandle => true, - BlockKind::GreenCandle => true, - BlockKind::BrownStainedGlassPane => true, - BlockKind::JungleSlab => false, - BlockKind::DeepslateCoalOre => false, - BlockKind::CutSandstone => false, - BlockKind::RawIronBlock => false, - BlockKind::PottedSpruceSapling => true, - BlockKind::Bricks => false, - BlockKind::PurpleStainedGlassPane => true, - BlockKind::WitherRose => true, - BlockKind::BoneBlock => false, - BlockKind::WarpedSlab => false, - BlockKind::BirchWood => false, - BlockKind::Comparator => false, - BlockKind::PottedWitherRose => true, - BlockKind::Terracotta => false, - BlockKind::PolishedBlackstoneBrickWall => false, - BlockKind::ExposedCopper => false, - BlockKind::Scaffolding => true, - BlockKind::PottedDarkOakSapling => true, - BlockKind::WarpedWartBlock => false, - BlockKind::LightGrayConcrete => false, - BlockKind::CrimsonFenceGate => false, - BlockKind::DeadBubbleCoralBlock => false, - BlockKind::LightBlueCandleCake => false, - BlockKind::CobbledDeepslateStairs => false, - BlockKind::BrownMushroomBlock => false, - BlockKind::RedSand => false, - BlockKind::Farmland => false, - BlockKind::StrippedOakWood => false, - BlockKind::WaterCauldron => true, - BlockKind::OrangeConcretePowder => false, - BlockKind::PinkStainedGlass => true, - BlockKind::WarpedStairs => false, - BlockKind::DeepslateTileWall => false, - BlockKind::OakSign => true, - BlockKind::PolishedAndesiteSlab => false, - BlockKind::GreenCarpet => false, - BlockKind::LimeTerracotta => false, - BlockKind::AzureBluet => true, - BlockKind::NetherWart => true, - BlockKind::DaylightDetector => false, - BlockKind::QuartzBlock => false, - BlockKind::SoulSand => false, - BlockKind::WaxedWeatheredCutCopper => false, - BlockKind::RedNetherBrickSlab => false, - BlockKind::GrayTerracotta => false, - BlockKind::OakStairs => false, - BlockKind::BrownBed => true, - BlockKind::BrownStainedGlass => true, - BlockKind::AcaciaPressurePlate => true, - BlockKind::DragonHead => false, - BlockKind::CyanConcrete => false, - BlockKind::BubbleCoralFan => true, - BlockKind::WaxedWeatheredCutCopperStairs => false, - BlockKind::Jukebox => false, - BlockKind::Dirt => false, - BlockKind::RedMushroomBlock => false, - BlockKind::DarkOakFence => false, - BlockKind::LightGrayShulkerBox => true, - BlockKind::CrimsonSign => true, - BlockKind::BlackTerracotta => false, - BlockKind::WarpedFenceGate => false, - BlockKind::InfestedStone => false, - BlockKind::Kelp => true, - BlockKind::StoneBrickStairs => false, - BlockKind::PolishedDioriteStairs => false, - BlockKind::LimeCarpet => false, - BlockKind::DarkOakSign => true, - BlockKind::PrismarineBrickStairs => false, - BlockKind::WarpedSign => true, - BlockKind::GreenConcrete => false, - BlockKind::Beetroots => true, - BlockKind::OakPlanks => false, - BlockKind::DeepslateRedstoneOre => false, - BlockKind::RedConcretePowder => false, - BlockKind::PolishedBlackstoneStairs => false, - BlockKind::DarkOakDoor => true, - BlockKind::AmethystBlock => false, - BlockKind::Azalea => true, - BlockKind::PottedAllium => true, - BlockKind::MagentaWallBanner => true, - BlockKind::StrippedCrimsonHyphae => false, - BlockKind::PolishedBlackstonePressurePlate => true, - BlockKind::RedstoneWire => true, - BlockKind::LightBlueWallBanner => true, - BlockKind::PurpleTerracotta => false, - BlockKind::CaveVinesPlant => true, - BlockKind::SoulWallTorch => true, - BlockKind::GlassPane => true, - BlockKind::InfestedChiseledStoneBricks => false, - BlockKind::RedstoneOre => false, - BlockKind::RedCandle => true, - BlockKind::CutRedSandstoneSlab => false, - BlockKind::BlackCandle => true, - BlockKind::OrangeTulip => true, - BlockKind::LargeFern => true, - BlockKind::WaxedWeatheredCopper => false, - BlockKind::DeepslateGoldOre => false, - BlockKind::BlackShulkerBox => true, - BlockKind::MagentaCarpet => false, - BlockKind::BrickStairs => false, - BlockKind::BrownWallBanner => true, - BlockKind::BrainCoralFan => true, - BlockKind::RedTulip => true, - BlockKind::CyanTerracotta => false, - BlockKind::GraniteSlab => false, - BlockKind::BirchFenceGate => false, - BlockKind::YellowConcrete => false, - BlockKind::PottedAcaciaSapling => true, - BlockKind::MagmaBlock => false, - BlockKind::DarkOakTrapdoor => true, - BlockKind::Air => true, - BlockKind::WetSponge => false, - BlockKind::JungleTrapdoor => true, - BlockKind::BrownWool => false, - BlockKind::GreenConcretePowder => false, - BlockKind::GrayBanner => true, - BlockKind::MossyCobblestone => false, - BlockKind::PurpleStainedGlass => true, - BlockKind::SpruceFenceGate => false, - BlockKind::MagentaConcretePowder => false, - BlockKind::DeadBubbleCoralWallFan => true, - BlockKind::PolishedDeepslateStairs => false, - BlockKind::SpruceWood => false, - BlockKind::BlueWool => false, - BlockKind::RootedDirt => false, - BlockKind::ChiseledRedSandstone => false, - BlockKind::GraniteWall => false, - BlockKind::MagentaCandleCake => false, - BlockKind::CutCopperStairs => false, - BlockKind::BrickWall => false, - BlockKind::BirchPlanks => false, - BlockKind::GlowLichen => true, - BlockKind::LightBlueBanner => true, - BlockKind::Clay => false, - BlockKind::MossyStoneBricks => false, - BlockKind::SmoothSandstoneStairs => false, - BlockKind::OxidizedCopper => false, - BlockKind::GraniteStairs => false, - BlockKind::BirchSign => true, - BlockKind::SnowBlock => false, - BlockKind::SmallDripleaf => true, - BlockKind::DetectorRail => true, - BlockKind::CreeperHead => false, - BlockKind::WarpedTrapdoor => true, - BlockKind::WhiteConcrete => false, - BlockKind::RedNetherBrickStairs => false, - BlockKind::FletchingTable => false, - BlockKind::BlueOrchid => true, - BlockKind::LightBlueGlazedTerracotta => false, - BlockKind::RedNetherBrickWall => false, - BlockKind::NetherSprouts => true, - BlockKind::VoidAir => true, - BlockKind::OakButton => true, - BlockKind::BlueGlazedTerracotta => false, - BlockKind::ZombieHead => false, - BlockKind::LightGrayCarpet => false, - BlockKind::DeadTubeCoralWallFan => true, - BlockKind::SoulCampfire => true, - BlockKind::ExposedCutCopperSlab => false, - BlockKind::HornCoralFan => true, - BlockKind::BrownMushroom => true, - BlockKind::BirchTrapdoor => true, - BlockKind::CyanCandle => true, - BlockKind::PottedBirchSapling => true, - BlockKind::StoneStairs => false, - BlockKind::RawGoldBlock => false, - BlockKind::WarpedButton => true, - BlockKind::OxeyeDaisy => true, - BlockKind::BlueCarpet => false, - BlockKind::Water => true, - BlockKind::CryingObsidian => false, - BlockKind::Shroomlight => false, - BlockKind::RedStainedGlassPane => true, - BlockKind::EndStoneBrickStairs => false, - BlockKind::WarpedFungus => true, - BlockKind::PrismarineStairs => false, - BlockKind::LightBlueBed => true, - BlockKind::LightGrayGlazedTerracotta => false, - BlockKind::PottedDandelion => true, - BlockKind::FloweringAzaleaLeaves => true, - BlockKind::Netherrack => false, - BlockKind::LavaCauldron => true, - BlockKind::CyanShulkerBox => true, - BlockKind::LimeStainedGlass => true, - BlockKind::DeadFireCoralWallFan => true, - BlockKind::LimeConcrete => false, - BlockKind::HornCoralBlock => false, - BlockKind::BrownBanner => true, - BlockKind::Smoker => false, - BlockKind::BrownTerracotta => false, - BlockKind::StrippedBirchLog => false, - BlockKind::Cobblestone => false, - BlockKind::DarkOakStairs => false, - BlockKind::BuddingAmethyst => false, - BlockKind::GoldBlock => false, - BlockKind::RedstoneLamp => false, - BlockKind::BlackstoneStairs => false, - BlockKind::LightGrayCandleCake => false, - BlockKind::WaxedCutCopper => false, - BlockKind::GreenWallBanner => true, - BlockKind::AttachedPumpkinStem => true, - BlockKind::Conduit => true, - BlockKind::JungleSign => true, - BlockKind::GrayWallBanner => true, - BlockKind::WaxedOxidizedCutCopperStairs => false, - BlockKind::WarpedPressurePlate => true, - BlockKind::CobblestoneSlab => false, - BlockKind::BrainCoralWallFan => true, - BlockKind::Cactus => false, - BlockKind::LilyOfTheValley => true, - BlockKind::SandstoneSlab => false, - BlockKind::PinkCandle => true, - BlockKind::BigDripleaf => false, - BlockKind::DarkPrismarine => false, - BlockKind::SporeBlossom => true, - BlockKind::PumpkinStem => true, - BlockKind::DeepslateLapisOre => false, - BlockKind::EndPortal => true, - BlockKind::InfestedMossyStoneBricks => false, - BlockKind::ZombieWallHead => false, - BlockKind::BrainCoral => true, - BlockKind::Stone => false, - BlockKind::RedStainedGlass => true, - BlockKind::EndStone => false, - BlockKind::Piston => false, - BlockKind::DeadTubeCoral => true, - BlockKind::CrackedPolishedBlackstoneBricks => false, - BlockKind::PolishedDeepslateWall => false, - BlockKind::AncientDebris => false, - BlockKind::WhiteTerracotta => false, - BlockKind::WarpedFence => false, - BlockKind::AcaciaWood => false, - BlockKind::SmithingTable => false, - BlockKind::PolishedBlackstoneButton => true, - BlockKind::Snow => false, - BlockKind::MagentaShulkerBox => true, - BlockKind::Basalt => false, - BlockKind::Bookshelf => false, - BlockKind::DeadFireCoralBlock => false, - BlockKind::YellowCarpet => false, - BlockKind::MagentaGlazedTerracotta => false, - BlockKind::PolishedGraniteStairs => false, - BlockKind::EndPortalFrame => false, - BlockKind::Lantern => true, - BlockKind::JungleStairs => false, - BlockKind::ChiseledSandstone => false, - BlockKind::StrippedSpruceLog => false, - BlockKind::PottedOrangeTulip => true, - BlockKind::Andesite => false, - BlockKind::NetherBrickFence => false, - BlockKind::BlastFurnace => false, - BlockKind::WhiteCarpet => false, - BlockKind::StonePressurePlate => true, - BlockKind::SpruceSign => true, - BlockKind::Sunflower => true, - BlockKind::DarkOakFenceGate => false, - BlockKind::SeaLantern => false, - BlockKind::Barrel => false, - BlockKind::CartographyTable => false, - BlockKind::Lava => true, - BlockKind::CrimsonNylium => false, - BlockKind::SmoothQuartzStairs => false, - BlockKind::DeadTubeCoralFan => true, - BlockKind::BlueBanner => true, - BlockKind::SoulFire => true, - BlockKind::YellowCandle => true, - BlockKind::CobbledDeepslateSlab => false, - BlockKind::InfestedStoneBricks => false, - BlockKind::LilyPad => true, - BlockKind::LightBlueShulkerBox => true, - BlockKind::AcaciaTrapdoor => true, - BlockKind::BlackGlazedTerracotta => false, - BlockKind::SpruceSapling => true, - BlockKind::LightBlueStainedGlass => true, - BlockKind::StrippedAcaciaLog => false, - BlockKind::BrownCarpet => false, - BlockKind::QuartzBricks => false, - BlockKind::AcaciaFenceGate => false, - BlockKind::CutCopperSlab => false, - BlockKind::OrangeCarpet => false, - BlockKind::CyanConcretePowder => false, - BlockKind::TallGrass => true, - BlockKind::WeatheredCutCopperStairs => false, - BlockKind::BlackStainedGlassPane => true, - BlockKind::QuartzPillar => false, - BlockKind::GrayStainedGlass => true, - BlockKind::SmoothSandstone => false, - BlockKind::EnderChest => false, - BlockKind::LightGrayBanner => true, - BlockKind::DragonWallHead => false, - BlockKind::DeadHornCoral => true, - BlockKind::ShulkerBox => true, - BlockKind::OxidizedCutCopperStairs => false, - BlockKind::SpruceStairs => false, - BlockKind::YellowTerracotta => false, - BlockKind::Target => false, - BlockKind::RepeatingCommandBlock => false, - BlockKind::PurpleBanner => true, - BlockKind::EmeraldBlock => false, - BlockKind::InfestedCobblestone => false, - BlockKind::Bamboo => true, - BlockKind::SweetBerryBush => true, - BlockKind::RedShulkerBox => true, - BlockKind::CobblestoneStairs => false, - BlockKind::RedstoneTorch => true, - BlockKind::BeeNest => false, - BlockKind::BlueConcretePowder => false, - BlockKind::OrangeCandle => true, - BlockKind::GreenWool => false, - BlockKind::CaveVines => true, - BlockKind::WeepingVines => true, - BlockKind::CrackedDeepslateBricks => false, - BlockKind::SlimeBlock => true, - BlockKind::WhiteTulip => true, - BlockKind::MelonStem => true, - BlockKind::DeadTubeCoralBlock => false, - BlockKind::LimeBanner => true, - BlockKind::ExposedCutCopper => false, - BlockKind::NetherQuartzOre => false, - BlockKind::JungleFenceGate => false, - BlockKind::WhiteGlazedTerracotta => false, - BlockKind::HornCoralWallFan => true, - BlockKind::PoweredRail => true, - BlockKind::AndesiteSlab => false, - BlockKind::LightGrayCandle => true, - BlockKind::Light => true, - BlockKind::StructureVoid => true, - BlockKind::GrayConcretePowder => false, - BlockKind::IronOre => false, - BlockKind::LimeGlazedTerracotta => false, - BlockKind::Anvil => false, - BlockKind::SprucePressurePlate => true, - BlockKind::Vine => true, - BlockKind::Campfire => true, - BlockKind::RedSandstone => false, - BlockKind::DeadBrainCoral => true, - BlockKind::PinkStainedGlassPane => true, - BlockKind::SmallAmethystBud => true, - BlockKind::DarkOakSlab => false, - BlockKind::PurpleGlazedTerracotta => false, - BlockKind::MagentaStainedGlassPane => true, - BlockKind::WaxedOxidizedCopper => false, - BlockKind::Cake => false, - BlockKind::BlackCarpet => false, - BlockKind::CutCopper => false, - BlockKind::PurpleWool => false, - BlockKind::FloweringAzalea => true, - BlockKind::YellowBed => true, - BlockKind::Wheat => true, - BlockKind::PolishedBlackstoneSlab => false, - BlockKind::Poppy => true, - BlockKind::AcaciaFence => false, - BlockKind::MagentaBed => true, - BlockKind::BlueBed => true, - BlockKind::AcaciaSign => true, - BlockKind::WhiteCandle => true, - BlockKind::GrayConcrete => false, - BlockKind::StrippedDarkOakWood => false, - BlockKind::NetherBrickStairs => false, - BlockKind::PottedWhiteTulip => true, - BlockKind::WaxedExposedCopper => false, - BlockKind::CommandBlock => false, - BlockKind::PottedBamboo => true, - BlockKind::PottedCornflower => true, - BlockKind::DeepslateDiamondOre => false, - BlockKind::Sponge => false, - BlockKind::WallTorch => true, - BlockKind::NetherBrickWall => false, - BlockKind::BirchStairs => false, - BlockKind::CoalOre => false, - BlockKind::PottedRedTulip => true, - BlockKind::IronBars => true, - BlockKind::RedMushroom => true, - BlockKind::Furnace => false, - BlockKind::WeatheredCopper => false, - BlockKind::PottedAzaleaBush => true, - BlockKind::LapisOre => false, - BlockKind::OrangeBed => true, - BlockKind::BirchDoor => true, - BlockKind::BubbleCoralBlock => false, - BlockKind::AcaciaSapling => true, - BlockKind::BubbleColumn => true, - BlockKind::HayBlock => false, - BlockKind::PottedWarpedFungus => true, - BlockKind::TallSeagrass => true, - BlockKind::MagentaStainedGlass => true, - BlockKind::PottedPoppy => true, - BlockKind::LapisBlock => false, - BlockKind::DarkPrismarineSlab => false, - BlockKind::FrostedIce => true, - BlockKind::PurpleConcrete => false, - BlockKind::BrownShulkerBox => true, - BlockKind::StoneSlab => false, - BlockKind::PolishedGraniteSlab => false, - BlockKind::PurpleCarpet => false, - BlockKind::DarkOakButton => true, - BlockKind::Composter => false, - BlockKind::JackOLantern => false, - BlockKind::YellowBanner => true, - BlockKind::PinkGlazedTerracotta => false, - BlockKind::NetheriteBlock => false, - BlockKind::LimeStainedGlassPane => true, - BlockKind::WhiteBanner => true, - BlockKind::SmoothRedSandstoneStairs => false, - BlockKind::BlueCandleCake => false, - BlockKind::Dropper => false, - BlockKind::YellowStainedGlass => true, - BlockKind::LightGrayTerracotta => false, - BlockKind::RoseBush => true, - BlockKind::ChorusPlant => true, - BlockKind::CrimsonDoor => true, - BlockKind::Jigsaw => false, - BlockKind::CrimsonFence => false, - BlockKind::PinkShulkerBox => true, - BlockKind::PinkCarpet => false, - BlockKind::DeadHornCoralBlock => false, - BlockKind::PolishedAndesite => false, - BlockKind::ChiseledPolishedBlackstone => false, - BlockKind::PolishedBlackstoneBricks => false, - BlockKind::DeepslateTileSlab => false, - BlockKind::DarkOakWallSign => true, - BlockKind::MossyCobblestoneStairs => false, - BlockKind::SandstoneWall => false, - BlockKind::SpruceFence => false, - BlockKind::Ladder => true, - BlockKind::PottedDeadBush => true, - BlockKind::MagentaCandle => true, - BlockKind::StrippedBirchWood => false, - BlockKind::LimeConcretePowder => false, - BlockKind::PottedJungleSapling => true, - BlockKind::PolishedBlackstoneWall => false, - BlockKind::AndesiteStairs => false, - BlockKind::GreenBed => true, - BlockKind::SeaPickle => true, - BlockKind::DeadBrainCoralWallFan => true, - BlockKind::LightBlueStainedGlassPane => true, - BlockKind::DeepslateBrickStairs => false, - BlockKind::Cobweb => true, - BlockKind::LightGrayStainedGlass => true, - BlockKind::PurpleWallBanner => true, - BlockKind::SugarCane => true, - BlockKind::Grindstone => false, - BlockKind::InfestedCrackedStoneBricks => false, - BlockKind::DeadHornCoralWallFan => true, - BlockKind::DeepslateTiles => false, - BlockKind::MushroomStem => false, - BlockKind::AcaciaButton => true, - BlockKind::PurpleShulkerBox => true, - BlockKind::MediumAmethystBud => true, - BlockKind::WhiteStainedGlass => true, - BlockKind::WeatheredCutCopperSlab => false, - BlockKind::BrownCandle => true, - BlockKind::LightBlueWool => false, - BlockKind::GreenStainedGlassPane => true, - BlockKind::RedCarpet => false, - BlockKind::WarpedDoor => true, - BlockKind::GoldOre => false, - BlockKind::CutSandstoneSlab => false, - BlockKind::CoalBlock => false, - BlockKind::MossyCobblestoneSlab => false, - BlockKind::BlackStainedGlass => true, - BlockKind::Dandelion => true, - BlockKind::Cocoa => true, - BlockKind::CyanWallBanner => true, - BlockKind::MagentaConcrete => false, - BlockKind::BambooSapling => true, - BlockKind::Granite => false, - BlockKind::WaxedWeatheredCutCopperSlab => false, - BlockKind::EndStoneBrickWall => false, - BlockKind::TrappedChest => false, - BlockKind::AmethystCluster => true, - BlockKind::Obsidian => false, - BlockKind::HangingRoots => true, - BlockKind::QuartzStairs => false, - BlockKind::CrackedDeepslateTiles => false, - BlockKind::OxidizedCutCopper => false, - BlockKind::LightBlueTerracotta => false, - BlockKind::WaxedExposedCutCopper => false, - BlockKind::StrippedCrimsonStem => false, - BlockKind::DeepslateIronOre => false, - BlockKind::JungleWallSign => true, - BlockKind::PinkConcrete => false, - BlockKind::Bell => false, - BlockKind::SpruceTrapdoor => true, - BlockKind::PolishedDioriteSlab => false, - BlockKind::PinkWool => false, - BlockKind::AcaciaStairs => false, - BlockKind::SpruceLog => false, - BlockKind::Chest => false, - BlockKind::LightGrayStainedGlassPane => true, - BlockKind::BirchFence => false, - BlockKind::CrackedNetherBricks => false, - BlockKind::NetherGoldOre => false, - BlockKind::OakWood => false, - BlockKind::WhiteShulkerBox => true, - BlockKind::OakTrapdoor => true, - BlockKind::Tnt => false, - BlockKind::Lectern => false, - BlockKind::CrimsonButton => true, - BlockKind::WaxedCopperBlock => false, - BlockKind::BlackstoneSlab => false, - BlockKind::StoneBrickSlab => false, - BlockKind::FireCoralBlock => false, - BlockKind::LimeCandleCake => false, - BlockKind::LightBlueConcrete => false, - BlockKind::CoarseDirt => false, - BlockKind::Beehive => false, - BlockKind::WhiteBed => true, - BlockKind::YellowConcretePowder => false, - BlockKind::CrimsonFungus => true, - BlockKind::PolishedBlackstoneBrickSlab => false, - BlockKind::WarpedRoots => true, - BlockKind::Beacon => true, - BlockKind::GrayWool => false, - BlockKind::PottedOxeyeDaisy => true, - BlockKind::WaxedCutCopperSlab => false, - BlockKind::SmoothQuartzSlab => false, - BlockKind::StrippedJungleWood => false, - BlockKind::CreeperWallHead => false, - BlockKind::LightBlueCarpet => false, - BlockKind::BirchSapling => true, - BlockKind::TripwireHook => true, - BlockKind::StrippedWarpedHyphae => false, - BlockKind::DiamondOre => false, - BlockKind::RedSandstoneSlab => false, - BlockKind::MovingPiston => true, - BlockKind::OrangeConcrete => false, - BlockKind::PurpleCandle => true, - BlockKind::ChippedAnvil => false, - BlockKind::OrangeTerracotta => false, - BlockKind::OakPressurePlate => true, - BlockKind::RedWallBanner => true, - BlockKind::BlueIce => false, - BlockKind::BlueStainedGlassPane => true, - BlockKind::PottedAzureBluet => true, - BlockKind::OakSapling => true, - BlockKind::BirchLog => false, - BlockKind::Lever => true, - BlockKind::BlueWallBanner => true, - BlockKind::GrayGlazedTerracotta => false, - BlockKind::OakLeaves => true, - BlockKind::Candle => true, - BlockKind::WeepingVinesPlant => true, - BlockKind::LimeWallBanner => true, - BlockKind::Spawner => true, - BlockKind::SkeletonWallSkull => false, - BlockKind::BirchSlab => false, - BlockKind::PolishedBlackstone => false, - BlockKind::LightGrayBed => true, - BlockKind::PinkBanner => true, - BlockKind::TwistingVinesPlant => true, - BlockKind::StoneButton => true, - BlockKind::InfestedDeepslate => false, - BlockKind::CopperBlock => false, - BlockKind::BrownConcrete => false, - BlockKind::ActivatorRail => true, - BlockKind::GrayCandleCake => false, - BlockKind::FlowerPot => true, - BlockKind::CobbledDeepslateWall => false, - BlockKind::TwistingVines => true, - BlockKind::SmoothBasalt => false, - BlockKind::WarpedPlanks => false, - BlockKind::PinkCandleCake => false, - BlockKind::DeadBush => true, - BlockKind::IronDoor => true, - BlockKind::PottedOakSapling => true, - BlockKind::BrickSlab => false, - BlockKind::Blackstone => false, - BlockKind::DeepslateCopperOre => false, - BlockKind::PinkBed => true, - BlockKind::OrangeCandleCake => false, - BlockKind::StickyPiston => false, - BlockKind::PottedWarpedRoots => true, - BlockKind::PurpurBlock => false, - BlockKind::HoneycombBlock => false, - BlockKind::AcaciaLeaves => true, - BlockKind::Cauldron => true, - BlockKind::PottedBlueOrchid => true, - BlockKind::BirchLeaves => true, - BlockKind::DeadBrainCoralFan => true, - BlockKind::LimeCandle => true, - BlockKind::ChainCommandBlock => false, - BlockKind::WhiteCandleCake => false, - BlockKind::KelpPlant => true, - BlockKind::YellowCandleCake => false, - BlockKind::Deepslate => false, - BlockKind::LightGrayWallBanner => true, - BlockKind::LightGrayConcretePowder => false, - BlockKind::PurpurSlab => false, - BlockKind::BlueConcrete => false, - BlockKind::StrippedWarpedStem => false, - BlockKind::WhiteWool => false, - BlockKind::RedConcrete => false, - BlockKind::JungleLeaves => true, - BlockKind::GreenBanner => true, - BlockKind::JungleDoor => true, - BlockKind::JungleSapling => true, - BlockKind::Bedrock => false, - BlockKind::Peony => true, - BlockKind::SpruceSlab => false, - BlockKind::PolishedDeepslateSlab => false, - BlockKind::RedGlazedTerracotta => false, - BlockKind::CrimsonPlanks => false, - BlockKind::DeadHornCoralFan => true, - BlockKind::PinkConcretePowder => false, - BlockKind::CyanStainedGlassPane => true, - BlockKind::BubbleCoralWallFan => true, - BlockKind::BlackBanner => true, - BlockKind::DeepslateBrickSlab => false, - BlockKind::AcaciaPlanks => false, - BlockKind::Hopper => true, - BlockKind::HeavyWeightedPressurePlate => true, - BlockKind::PinkTulip => true, - BlockKind::Barrier => true, - BlockKind::DarkPrismarineStairs => false, - BlockKind::Gravel => false, - BlockKind::WarpedNylium => false, - BlockKind::SoulTorch => true, - BlockKind::DeadFireCoral => true, - BlockKind::OxidizedCutCopperSlab => false, - BlockKind::GrayCandle => true, - BlockKind::EndGateway => true, - BlockKind::StrippedSpruceWood => false, - BlockKind::FireCoralFan => true, - BlockKind::SpruceWallSign => true, - BlockKind::CyanCarpet => false, - BlockKind::MossyStoneBrickSlab => false, - BlockKind::WitherSkeletonSkull => false, - BlockKind::GreenCandleCake => false, - BlockKind::LimeBed => true, - BlockKind::PetrifiedOakSlab => false, - BlockKind::YellowGlazedTerracotta => false, - BlockKind::WitherSkeletonWallSkull => false, - BlockKind::DiamondBlock => false, - BlockKind::YellowWool => false, - BlockKind::BlackWallBanner => true, - BlockKind::BirchPressurePlate => true, - BlockKind::PottedPinkTulip => true, - BlockKind::PackedIce => false, - BlockKind::RedSandstoneWall => false, - BlockKind::BrownCandleCake => false, - BlockKind::MossCarpet => false, - BlockKind::PottedRedMushroom => true, - BlockKind::WaxedCutCopperStairs => false, - BlockKind::Lilac => true, - BlockKind::LimeShulkerBox => true, - BlockKind::SmoothSandstoneSlab => false, - BlockKind::PurpleCandleCake => false, - BlockKind::SmoothStoneSlab => false, - BlockKind::OrangeWallBanner => true, - BlockKind::JungleLog => false, - BlockKind::PrismarineSlab => false, - BlockKind::DioriteSlab => false, - BlockKind::OrangeShulkerBox => true, - BlockKind::RedNetherBricks => false, - BlockKind::SoulLantern => true, - BlockKind::RedWool => false, - BlockKind::CrimsonStairs => false, - BlockKind::OrangeStainedGlassPane => true, - BlockKind::LightGrayWool => false, - BlockKind::CarvedPumpkin => false, - BlockKind::SandstoneStairs => false, - BlockKind::WhiteWallBanner => true, - BlockKind::WhiteConcretePowder => false, - BlockKind::DioriteWall => false, - BlockKind::SprucePlanks => false, - BlockKind::PolishedDeepslate => false, - BlockKind::Allium => true, - BlockKind::SoulSoil => false, - BlockKind::LargeAmethystBud => true, - BlockKind::Diorite => false, - BlockKind::JunglePlanks => false, - BlockKind::AzaleaLeaves => true, - BlockKind::CutRedSandstone => false, - BlockKind::YellowStainedGlassPane => true, - BlockKind::CrimsonRoots => true, - BlockKind::PurpleConcretePowder => false, - BlockKind::Potatoes => true, - BlockKind::BlueTerracotta => false, - BlockKind::GreenShulkerBox => true, - BlockKind::RedTerracotta => false, - BlockKind::Podzol => false, - BlockKind::AcaciaSlab => false, - BlockKind::PointedDripstone => true, - BlockKind::WarpedWallSign => true, - BlockKind::BlackConcretePowder => false, - BlockKind::FireCoralWallFan => true, - BlockKind::DragonEgg => true, - BlockKind::ChiseledStoneBricks => false, - BlockKind::DarkOakPlanks => false, - BlockKind::WarpedStem => false, - BlockKind::Glowstone => false, - BlockKind::DeadFireCoralFan => true, - BlockKind::TubeCoral => true, - BlockKind::DirtPath => false, - BlockKind::DarkOakPressurePlate => true, - BlockKind::PurpurPillar => false, - BlockKind::FireCoral => true, - BlockKind::MossyCobblestoneWall => false, - BlockKind::DarkOakLeaves => true, - BlockKind::TubeCoralFan => true, - BlockKind::Pumpkin => false, - BlockKind::Glass => true, - BlockKind::SmoothRedSandstoneSlab => false, - BlockKind::PrismarineBrickSlab => false, - BlockKind::BrownGlazedTerracotta => false, - BlockKind::TurtleEgg => true, - BlockKind::DeadBubbleCoralFan => true, - BlockKind::EndRod => true, - BlockKind::RespawnAnchor => false, - BlockKind::HornCoral => true, - BlockKind::PlayerWallHead => false, - BlockKind::ChiseledNetherBricks => false, - BlockKind::SmoothRedSandstone => false, - BlockKind::PrismarineBricks => false, - BlockKind::GrayBed => true, - BlockKind::OrangeStainedGlass => true, - BlockKind::IronTrapdoor => true, - BlockKind::RedBanner => true, - BlockKind::GreenGlazedTerracotta => false, - BlockKind::DioriteStairs => false, - BlockKind::RedCandleCake => false, - BlockKind::BlueCandle => true, - BlockKind::BlackCandleCake => false, - BlockKind::CobbledDeepslate => false, - BlockKind::SpruceLeaves => true, - BlockKind::RedstoneBlock => false, - BlockKind::Rail => true, - BlockKind::NoteBlock => false, - BlockKind::PolishedBlackstoneBrickStairs => false, - BlockKind::Observer => false, - BlockKind::JunglePressurePlate => true, - BlockKind::BrewingStand => true, - BlockKind::MagentaTerracotta => false, - BlockKind::CrackedStoneBricks => false, - BlockKind::StoneBrickWall => false, - BlockKind::BubbleCoral => true, - BlockKind::MagentaBanner => true, - BlockKind::Sand => false, - BlockKind::JungleFence => false, - BlockKind::CyanGlazedTerracotta => false, - BlockKind::DeepslateBricks => false, - BlockKind::OakWallSign => true, - BlockKind::CrimsonStem => false, - BlockKind::WaxedOxidizedCutCopperSlab => false, - BlockKind::PurpleBed => true, - BlockKind::JungleWood => false, - BlockKind::OakSlab => false, - BlockKind::CaveAir => true, - BlockKind::BlackConcrete => false, - BlockKind::JungleButton => true, - BlockKind::OakFence => false, - BlockKind::BlackstoneWall => false, - BlockKind::RedstoneWallTorch => true, - BlockKind::CyanStainedGlass => true, - BlockKind::BigDripleafStem => true, - BlockKind::Mycelium => false, - BlockKind::DamagedAnvil => false, - BlockKind::PottedLilyOfTheValley => true, - BlockKind::ChorusFlower => true, - BlockKind::LimeWool => false, - BlockKind::AcaciaLog => false, - BlockKind::Calcite => false, - BlockKind::AttachedMelonStem => true, - BlockKind::LightWeightedPressurePlate => true, - BlockKind::DeepslateTileStairs => false, - BlockKind::Fern => true, - BlockKind::BrainCoralBlock => false, - BlockKind::PottedCrimsonRoots => true, - BlockKind::AndesiteWall => false, - BlockKind::OakLog => false, - BlockKind::Sandstone => false, - BlockKind::RedBed => true, - BlockKind::BlackWool => false, - BlockKind::WaxedOxidizedCutCopper => false, - BlockKind::Stonecutter => false, - BlockKind::DriedKelpBlock => false, - BlockKind::IronBlock => false, + 548u32 => Some(BlockKind::LightGrayGlazedTerracotta), + 549u32 => Some(BlockKind::CyanGlazedTerracotta), + 550u32 => Some(BlockKind::PurpleGlazedTerracotta), + 551u32 => Some(BlockKind::BlueGlazedTerracotta), + 552u32 => Some(BlockKind::BrownGlazedTerracotta), + 553u32 => Some(BlockKind::GreenGlazedTerracotta), + 554u32 => Some(BlockKind::RedGlazedTerracotta), + 555u32 => Some(BlockKind::BlackGlazedTerracotta), + 556u32 => Some(BlockKind::WhiteConcrete), + 557u32 => Some(BlockKind::OrangeConcrete), + 558u32 => Some(BlockKind::MagentaConcrete), + 559u32 => Some(BlockKind::LightBlueConcrete), + 560u32 => Some(BlockKind::YellowConcrete), + 561u32 => Some(BlockKind::LimeConcrete), + 562u32 => Some(BlockKind::PinkConcrete), + 563u32 => Some(BlockKind::GrayConcrete), + 564u32 => Some(BlockKind::LightGrayConcrete), + 565u32 => Some(BlockKind::CyanConcrete), + 566u32 => Some(BlockKind::PurpleConcrete), + 567u32 => Some(BlockKind::BlueConcrete), + 568u32 => Some(BlockKind::BrownConcrete), + 569u32 => Some(BlockKind::GreenConcrete), + 570u32 => Some(BlockKind::RedConcrete), + 571u32 => Some(BlockKind::BlackConcrete), + 572u32 => Some(BlockKind::WhiteConcretePowder), + 573u32 => Some(BlockKind::OrangeConcretePowder), + 574u32 => Some(BlockKind::MagentaConcretePowder), + 575u32 => Some(BlockKind::LightBlueConcretePowder), + 576u32 => Some(BlockKind::YellowConcretePowder), + 577u32 => Some(BlockKind::LimeConcretePowder), + 578u32 => Some(BlockKind::PinkConcretePowder), + 579u32 => Some(BlockKind::GrayConcretePowder), + 580u32 => Some(BlockKind::LightGrayConcretePowder), + 581u32 => Some(BlockKind::CyanConcretePowder), + 582u32 => Some(BlockKind::PurpleConcretePowder), + 583u32 => Some(BlockKind::BlueConcretePowder), + 584u32 => Some(BlockKind::BrownConcretePowder), + 585u32 => Some(BlockKind::GreenConcretePowder), + 586u32 => Some(BlockKind::RedConcretePowder), + 587u32 => Some(BlockKind::BlackConcretePowder), + 588u32 => Some(BlockKind::Kelp), + 589u32 => Some(BlockKind::KelpPlant), + 590u32 => Some(BlockKind::DriedKelpBlock), + 591u32 => Some(BlockKind::TurtleEgg), + 592u32 => Some(BlockKind::DeadTubeCoralBlock), + 593u32 => Some(BlockKind::DeadBrainCoralBlock), + 594u32 => Some(BlockKind::DeadBubbleCoralBlock), + 595u32 => Some(BlockKind::DeadFireCoralBlock), + 596u32 => Some(BlockKind::DeadHornCoralBlock), + 597u32 => Some(BlockKind::TubeCoralBlock), + 598u32 => Some(BlockKind::BrainCoralBlock), + 599u32 => Some(BlockKind::BubbleCoralBlock), + 600u32 => Some(BlockKind::FireCoralBlock), + 601u32 => Some(BlockKind::HornCoralBlock), + 602u32 => Some(BlockKind::DeadTubeCoral), + 603u32 => Some(BlockKind::DeadBrainCoral), + 604u32 => Some(BlockKind::DeadBubbleCoral), + 605u32 => Some(BlockKind::DeadFireCoral), + 606u32 => Some(BlockKind::DeadHornCoral), + 607u32 => Some(BlockKind::TubeCoral), + 608u32 => Some(BlockKind::BrainCoral), + 609u32 => Some(BlockKind::BubbleCoral), + 610u32 => Some(BlockKind::FireCoral), + 611u32 => Some(BlockKind::HornCoral), + 612u32 => Some(BlockKind::DeadTubeCoralFan), + 613u32 => Some(BlockKind::DeadBrainCoralFan), + 614u32 => Some(BlockKind::DeadBubbleCoralFan), + 615u32 => Some(BlockKind::DeadFireCoralFan), + 616u32 => Some(BlockKind::DeadHornCoralFan), + 617u32 => Some(BlockKind::TubeCoralFan), + 618u32 => Some(BlockKind::BrainCoralFan), + 619u32 => Some(BlockKind::BubbleCoralFan), + 620u32 => Some(BlockKind::FireCoralFan), + 621u32 => Some(BlockKind::HornCoralFan), + 622u32 => Some(BlockKind::DeadTubeCoralWallFan), + 623u32 => Some(BlockKind::DeadBrainCoralWallFan), + 624u32 => Some(BlockKind::DeadBubbleCoralWallFan), + 625u32 => Some(BlockKind::DeadFireCoralWallFan), + 626u32 => Some(BlockKind::DeadHornCoralWallFan), + 627u32 => Some(BlockKind::TubeCoralWallFan), + 628u32 => Some(BlockKind::BrainCoralWallFan), + 629u32 => Some(BlockKind::BubbleCoralWallFan), + 630u32 => Some(BlockKind::FireCoralWallFan), + 631u32 => Some(BlockKind::HornCoralWallFan), + 632u32 => Some(BlockKind::SeaPickle), + 633u32 => Some(BlockKind::BlueIce), + 634u32 => Some(BlockKind::Conduit), + 635u32 => Some(BlockKind::BambooSapling), + 636u32 => Some(BlockKind::Bamboo), + 637u32 => Some(BlockKind::PottedBamboo), + 638u32 => Some(BlockKind::VoidAir), + 639u32 => Some(BlockKind::CaveAir), + 640u32 => Some(BlockKind::BubbleColumn), + 641u32 => Some(BlockKind::PolishedGraniteStairs), + 642u32 => Some(BlockKind::SmoothRedSandstoneStairs), + 643u32 => Some(BlockKind::MossyStoneBrickStairs), + 644u32 => Some(BlockKind::PolishedDioriteStairs), + 645u32 => Some(BlockKind::MossyCobblestoneStairs), + 646u32 => Some(BlockKind::EndStoneBrickStairs), + 647u32 => Some(BlockKind::StoneStairs), + 648u32 => Some(BlockKind::SmoothSandstoneStairs), + 649u32 => Some(BlockKind::SmoothQuartzStairs), + 650u32 => Some(BlockKind::GraniteStairs), + 651u32 => Some(BlockKind::AndesiteStairs), + 652u32 => Some(BlockKind::RedNetherBrickStairs), + 653u32 => Some(BlockKind::PolishedAndesiteStairs), + 654u32 => Some(BlockKind::DioriteStairs), + 655u32 => Some(BlockKind::PolishedGraniteSlab), + 656u32 => Some(BlockKind::SmoothRedSandstoneSlab), + 657u32 => Some(BlockKind::MossyStoneBrickSlab), + 658u32 => Some(BlockKind::PolishedDioriteSlab), + 659u32 => Some(BlockKind::MossyCobblestoneSlab), + 660u32 => Some(BlockKind::EndStoneBrickSlab), + 661u32 => Some(BlockKind::SmoothSandstoneSlab), + 662u32 => Some(BlockKind::SmoothQuartzSlab), + 663u32 => Some(BlockKind::GraniteSlab), + 664u32 => Some(BlockKind::AndesiteSlab), + 665u32 => Some(BlockKind::RedNetherBrickSlab), + 666u32 => Some(BlockKind::PolishedAndesiteSlab), + 667u32 => Some(BlockKind::DioriteSlab), + 668u32 => Some(BlockKind::BrickWall), + 669u32 => Some(BlockKind::PrismarineWall), + 670u32 => Some(BlockKind::RedSandstoneWall), + 671u32 => Some(BlockKind::MossyStoneBrickWall), + 672u32 => Some(BlockKind::GraniteWall), + 673u32 => Some(BlockKind::StoneBrickWall), + 674u32 => Some(BlockKind::NetherBrickWall), + 675u32 => Some(BlockKind::AndesiteWall), + 676u32 => Some(BlockKind::RedNetherBrickWall), + 677u32 => Some(BlockKind::SandstoneWall), + 678u32 => Some(BlockKind::EndStoneBrickWall), + 679u32 => Some(BlockKind::DioriteWall), + 680u32 => Some(BlockKind::Scaffolding), + 681u32 => Some(BlockKind::Loom), + 682u32 => Some(BlockKind::Barrel), + 683u32 => Some(BlockKind::Smoker), + 684u32 => Some(BlockKind::BlastFurnace), + 685u32 => Some(BlockKind::CartographyTable), + 686u32 => Some(BlockKind::FletchingTable), + 687u32 => Some(BlockKind::Grindstone), + 688u32 => Some(BlockKind::Lectern), + 689u32 => Some(BlockKind::SmithingTable), + 690u32 => Some(BlockKind::Stonecutter), + 691u32 => Some(BlockKind::Bell), + 692u32 => Some(BlockKind::Lantern), + 693u32 => Some(BlockKind::SoulLantern), + 694u32 => Some(BlockKind::Campfire), + 695u32 => Some(BlockKind::SoulCampfire), + 696u32 => Some(BlockKind::SweetBerryBush), + 697u32 => Some(BlockKind::WarpedStem), + 698u32 => Some(BlockKind::StrippedWarpedStem), + 699u32 => Some(BlockKind::WarpedHyphae), + 700u32 => Some(BlockKind::StrippedWarpedHyphae), + 701u32 => Some(BlockKind::WarpedNylium), + 702u32 => Some(BlockKind::WarpedFungus), + 703u32 => Some(BlockKind::WarpedWartBlock), + 704u32 => Some(BlockKind::WarpedRoots), + 705u32 => Some(BlockKind::NetherSprouts), + 706u32 => Some(BlockKind::CrimsonStem), + 707u32 => Some(BlockKind::StrippedCrimsonStem), + 708u32 => Some(BlockKind::CrimsonHyphae), + 709u32 => Some(BlockKind::StrippedCrimsonHyphae), + 710u32 => Some(BlockKind::CrimsonNylium), + 711u32 => Some(BlockKind::CrimsonFungus), + 712u32 => Some(BlockKind::Shroomlight), + 713u32 => Some(BlockKind::WeepingVines), + 714u32 => Some(BlockKind::WeepingVinesPlant), + 715u32 => Some(BlockKind::TwistingVines), + 716u32 => Some(BlockKind::TwistingVinesPlant), + 717u32 => Some(BlockKind::CrimsonRoots), + 718u32 => Some(BlockKind::CrimsonPlanks), + 719u32 => Some(BlockKind::WarpedPlanks), + 720u32 => Some(BlockKind::CrimsonSlab), + 721u32 => Some(BlockKind::WarpedSlab), + 722u32 => Some(BlockKind::CrimsonPressurePlate), + 723u32 => Some(BlockKind::WarpedPressurePlate), + 724u32 => Some(BlockKind::CrimsonFence), + 725u32 => Some(BlockKind::WarpedFence), + 726u32 => Some(BlockKind::CrimsonTrapdoor), + 727u32 => Some(BlockKind::WarpedTrapdoor), + 728u32 => Some(BlockKind::CrimsonFenceGate), + 729u32 => Some(BlockKind::WarpedFenceGate), + 730u32 => Some(BlockKind::CrimsonStairs), + 731u32 => Some(BlockKind::WarpedStairs), + 732u32 => Some(BlockKind::CrimsonButton), + 733u32 => Some(BlockKind::WarpedButton), + 734u32 => Some(BlockKind::CrimsonDoor), + 735u32 => Some(BlockKind::WarpedDoor), + 736u32 => Some(BlockKind::CrimsonSign), + 737u32 => Some(BlockKind::WarpedSign), + 738u32 => Some(BlockKind::CrimsonWallSign), + 739u32 => Some(BlockKind::WarpedWallSign), + 740u32 => Some(BlockKind::StructureBlock), + 741u32 => Some(BlockKind::Jigsaw), + 742u32 => Some(BlockKind::Composter), + 743u32 => Some(BlockKind::Target), + 744u32 => Some(BlockKind::BeeNest), + 745u32 => Some(BlockKind::Beehive), + 746u32 => Some(BlockKind::HoneyBlock), + 747u32 => Some(BlockKind::HoneycombBlock), + 748u32 => Some(BlockKind::NetheriteBlock), + 749u32 => Some(BlockKind::AncientDebris), + 750u32 => Some(BlockKind::CryingObsidian), + 751u32 => Some(BlockKind::RespawnAnchor), + 752u32 => Some(BlockKind::PottedCrimsonFungus), + 753u32 => Some(BlockKind::PottedWarpedFungus), + 754u32 => Some(BlockKind::PottedCrimsonRoots), + 755u32 => Some(BlockKind::PottedWarpedRoots), + 756u32 => Some(BlockKind::Lodestone), + 757u32 => Some(BlockKind::Blackstone), + 758u32 => Some(BlockKind::BlackstoneStairs), + 759u32 => Some(BlockKind::BlackstoneWall), + 760u32 => Some(BlockKind::BlackstoneSlab), + 761u32 => Some(BlockKind::PolishedBlackstone), + 762u32 => Some(BlockKind::PolishedBlackstoneBricks), + 763u32 => Some(BlockKind::CrackedPolishedBlackstoneBricks), + 764u32 => Some(BlockKind::ChiseledPolishedBlackstone), + 765u32 => Some(BlockKind::PolishedBlackstoneBrickSlab), + 766u32 => Some(BlockKind::PolishedBlackstoneBrickStairs), + 767u32 => Some(BlockKind::PolishedBlackstoneBrickWall), + 768u32 => Some(BlockKind::GildedBlackstone), + 769u32 => Some(BlockKind::PolishedBlackstoneStairs), + 770u32 => Some(BlockKind::PolishedBlackstoneSlab), + 771u32 => Some(BlockKind::PolishedBlackstonePressurePlate), + 772u32 => Some(BlockKind::PolishedBlackstoneButton), + 773u32 => Some(BlockKind::PolishedBlackstoneWall), + 774u32 => Some(BlockKind::ChiseledNetherBricks), + 775u32 => Some(BlockKind::CrackedNetherBricks), + 776u32 => Some(BlockKind::QuartzBricks), + 777u32 => Some(BlockKind::Candle), + 778u32 => Some(BlockKind::WhiteCandle), + 779u32 => Some(BlockKind::OrangeCandle), + 780u32 => Some(BlockKind::MagentaCandle), + 781u32 => Some(BlockKind::LightBlueCandle), + 782u32 => Some(BlockKind::YellowCandle), + 783u32 => Some(BlockKind::LimeCandle), + 784u32 => Some(BlockKind::PinkCandle), + 785u32 => Some(BlockKind::GrayCandle), + 786u32 => Some(BlockKind::LightGrayCandle), + 787u32 => Some(BlockKind::CyanCandle), + 788u32 => Some(BlockKind::PurpleCandle), + 789u32 => Some(BlockKind::BlueCandle), + 790u32 => Some(BlockKind::BrownCandle), + 791u32 => Some(BlockKind::GreenCandle), + 792u32 => Some(BlockKind::RedCandle), + 793u32 => Some(BlockKind::BlackCandle), + 794u32 => Some(BlockKind::CandleCake), + 795u32 => Some(BlockKind::WhiteCandleCake), + 796u32 => Some(BlockKind::OrangeCandleCake), + 797u32 => Some(BlockKind::MagentaCandleCake), + 798u32 => Some(BlockKind::LightBlueCandleCake), + 799u32 => Some(BlockKind::YellowCandleCake), + 800u32 => Some(BlockKind::LimeCandleCake), + 801u32 => Some(BlockKind::PinkCandleCake), + 802u32 => Some(BlockKind::GrayCandleCake), + 803u32 => Some(BlockKind::LightGrayCandleCake), + 804u32 => Some(BlockKind::CyanCandleCake), + 805u32 => Some(BlockKind::PurpleCandleCake), + 806u32 => Some(BlockKind::BlueCandleCake), + 807u32 => Some(BlockKind::BrownCandleCake), + 808u32 => Some(BlockKind::GreenCandleCake), + 809u32 => Some(BlockKind::RedCandleCake), + 810u32 => Some(BlockKind::BlackCandleCake), + 811u32 => Some(BlockKind::AmethystBlock), + 812u32 => Some(BlockKind::BuddingAmethyst), + 813u32 => Some(BlockKind::AmethystCluster), + 814u32 => Some(BlockKind::LargeAmethystBud), + 815u32 => Some(BlockKind::MediumAmethystBud), + 816u32 => Some(BlockKind::SmallAmethystBud), + 817u32 => Some(BlockKind::Tuff), + 818u32 => Some(BlockKind::Calcite), + 819u32 => Some(BlockKind::TintedGlass), + 820u32 => Some(BlockKind::PowderSnow), + 821u32 => Some(BlockKind::SculkSensor), + 822u32 => Some(BlockKind::OxidizedCopper), + 823u32 => Some(BlockKind::WeatheredCopper), + 824u32 => Some(BlockKind::ExposedCopper), + 825u32 => Some(BlockKind::CopperBlock), + 826u32 => Some(BlockKind::CopperOre), + 827u32 => Some(BlockKind::DeepslateCopperOre), + 828u32 => Some(BlockKind::OxidizedCutCopper), + 829u32 => Some(BlockKind::WeatheredCutCopper), + 830u32 => Some(BlockKind::ExposedCutCopper), + 831u32 => Some(BlockKind::CutCopper), + 832u32 => Some(BlockKind::OxidizedCutCopperStairs), + 833u32 => Some(BlockKind::WeatheredCutCopperStairs), + 834u32 => Some(BlockKind::ExposedCutCopperStairs), + 835u32 => Some(BlockKind::CutCopperStairs), + 836u32 => Some(BlockKind::OxidizedCutCopperSlab), + 837u32 => Some(BlockKind::WeatheredCutCopperSlab), + 838u32 => Some(BlockKind::ExposedCutCopperSlab), + 839u32 => Some(BlockKind::CutCopperSlab), + 840u32 => Some(BlockKind::WaxedCopperBlock), + 841u32 => Some(BlockKind::WaxedWeatheredCopper), + 842u32 => Some(BlockKind::WaxedExposedCopper), + 843u32 => Some(BlockKind::WaxedOxidizedCopper), + 844u32 => Some(BlockKind::WaxedOxidizedCutCopper), + 845u32 => Some(BlockKind::WaxedWeatheredCutCopper), + 846u32 => Some(BlockKind::WaxedExposedCutCopper), + 847u32 => Some(BlockKind::WaxedCutCopper), + 848u32 => Some(BlockKind::WaxedOxidizedCutCopperStairs), + 849u32 => Some(BlockKind::WaxedWeatheredCutCopperStairs), + 850u32 => Some(BlockKind::WaxedExposedCutCopperStairs), + 851u32 => Some(BlockKind::WaxedCutCopperStairs), + 852u32 => Some(BlockKind::WaxedOxidizedCutCopperSlab), + 853u32 => Some(BlockKind::WaxedWeatheredCutCopperSlab), + 854u32 => Some(BlockKind::WaxedExposedCutCopperSlab), + 855u32 => Some(BlockKind::WaxedCutCopperSlab), + 856u32 => Some(BlockKind::LightningRod), + 857u32 => Some(BlockKind::PointedDripstone), + 858u32 => Some(BlockKind::DripstoneBlock), + 859u32 => Some(BlockKind::CaveVines), + 860u32 => Some(BlockKind::CaveVinesPlant), + 861u32 => Some(BlockKind::SporeBlossom), + 862u32 => Some(BlockKind::Azalea), + 863u32 => Some(BlockKind::FloweringAzalea), + 864u32 => Some(BlockKind::MossCarpet), + 865u32 => Some(BlockKind::MossBlock), + 866u32 => Some(BlockKind::BigDripleaf), + 867u32 => Some(BlockKind::BigDripleafStem), + 868u32 => Some(BlockKind::SmallDripleaf), + 869u32 => Some(BlockKind::HangingRoots), + 870u32 => Some(BlockKind::RootedDirt), + 871u32 => Some(BlockKind::Deepslate), + 872u32 => Some(BlockKind::CobbledDeepslate), + 873u32 => Some(BlockKind::CobbledDeepslateStairs), + 874u32 => Some(BlockKind::CobbledDeepslateSlab), + 875u32 => Some(BlockKind::CobbledDeepslateWall), + 876u32 => Some(BlockKind::PolishedDeepslate), + 877u32 => Some(BlockKind::PolishedDeepslateStairs), + 878u32 => Some(BlockKind::PolishedDeepslateSlab), + 879u32 => Some(BlockKind::PolishedDeepslateWall), + 880u32 => Some(BlockKind::DeepslateTiles), + 881u32 => Some(BlockKind::DeepslateTileStairs), + 882u32 => Some(BlockKind::DeepslateTileSlab), + 883u32 => Some(BlockKind::DeepslateTileWall), + 884u32 => Some(BlockKind::DeepslateBricks), + 885u32 => Some(BlockKind::DeepslateBrickStairs), + 886u32 => Some(BlockKind::DeepslateBrickSlab), + 887u32 => Some(BlockKind::DeepslateBrickWall), + 888u32 => Some(BlockKind::ChiseledDeepslate), + 889u32 => Some(BlockKind::CrackedDeepslateBricks), + 890u32 => Some(BlockKind::CrackedDeepslateTiles), + 891u32 => Some(BlockKind::InfestedDeepslate), + 892u32 => Some(BlockKind::SmoothBasalt), + 893u32 => Some(BlockKind::RawIronBlock), + 894u32 => Some(BlockKind::RawCopperBlock), + 895u32 => Some(BlockKind::RawGoldBlock), + 896u32 => Some(BlockKind::PottedAzaleaBush), + 897u32 => Some(BlockKind::PottedFloweringAzaleaBush), + _ => None, + } + } +} +impl BlockKind { + #[doc = "Returns the `name` property of this `BlockKind`."] + #[inline] + pub fn name(&self) -> &'static str { + match self { + BlockKind::Air => "air", + BlockKind::Stone => "stone", + BlockKind::Granite => "granite", + BlockKind::PolishedGranite => "polished_granite", + BlockKind::Diorite => "diorite", + BlockKind::PolishedDiorite => "polished_diorite", + BlockKind::Andesite => "andesite", + BlockKind::PolishedAndesite => "polished_andesite", + BlockKind::GrassBlock => "grass_block", + BlockKind::Dirt => "dirt", + BlockKind::CoarseDirt => "coarse_dirt", + BlockKind::Podzol => "podzol", + BlockKind::Cobblestone => "cobblestone", + BlockKind::OakPlanks => "oak_planks", + BlockKind::SprucePlanks => "spruce_planks", + BlockKind::BirchPlanks => "birch_planks", + BlockKind::JunglePlanks => "jungle_planks", + BlockKind::AcaciaPlanks => "acacia_planks", + BlockKind::DarkOakPlanks => "dark_oak_planks", + BlockKind::OakSapling => "oak_sapling", + BlockKind::SpruceSapling => "spruce_sapling", + BlockKind::BirchSapling => "birch_sapling", + BlockKind::JungleSapling => "jungle_sapling", + BlockKind::AcaciaSapling => "acacia_sapling", + BlockKind::DarkOakSapling => "dark_oak_sapling", + BlockKind::Bedrock => "bedrock", + BlockKind::Water => "water", + BlockKind::Lava => "lava", + BlockKind::Sand => "sand", + BlockKind::RedSand => "red_sand", + BlockKind::Gravel => "gravel", + BlockKind::GoldOre => "gold_ore", + BlockKind::DeepslateGoldOre => "deepslate_gold_ore", + BlockKind::IronOre => "iron_ore", + BlockKind::DeepslateIronOre => "deepslate_iron_ore", + BlockKind::CoalOre => "coal_ore", + BlockKind::DeepslateCoalOre => "deepslate_coal_ore", + BlockKind::NetherGoldOre => "nether_gold_ore", + BlockKind::OakLog => "oak_log", + BlockKind::SpruceLog => "spruce_log", + BlockKind::BirchLog => "birch_log", + BlockKind::JungleLog => "jungle_log", + BlockKind::AcaciaLog => "acacia_log", + BlockKind::DarkOakLog => "dark_oak_log", + BlockKind::StrippedSpruceLog => "stripped_spruce_log", + BlockKind::StrippedBirchLog => "stripped_birch_log", + BlockKind::StrippedJungleLog => "stripped_jungle_log", + BlockKind::StrippedAcaciaLog => "stripped_acacia_log", + BlockKind::StrippedDarkOakLog => "stripped_dark_oak_log", + BlockKind::StrippedOakLog => "stripped_oak_log", + BlockKind::OakWood => "oak_wood", + BlockKind::SpruceWood => "spruce_wood", + BlockKind::BirchWood => "birch_wood", + BlockKind::JungleWood => "jungle_wood", + BlockKind::AcaciaWood => "acacia_wood", + BlockKind::DarkOakWood => "dark_oak_wood", + BlockKind::StrippedOakWood => "stripped_oak_wood", + BlockKind::StrippedSpruceWood => "stripped_spruce_wood", + BlockKind::StrippedBirchWood => "stripped_birch_wood", + BlockKind::StrippedJungleWood => "stripped_jungle_wood", + BlockKind::StrippedAcaciaWood => "stripped_acacia_wood", + BlockKind::StrippedDarkOakWood => "stripped_dark_oak_wood", + BlockKind::OakLeaves => "oak_leaves", + BlockKind::SpruceLeaves => "spruce_leaves", + BlockKind::BirchLeaves => "birch_leaves", + BlockKind::JungleLeaves => "jungle_leaves", + BlockKind::AcaciaLeaves => "acacia_leaves", + BlockKind::DarkOakLeaves => "dark_oak_leaves", + BlockKind::AzaleaLeaves => "azalea_leaves", + BlockKind::FloweringAzaleaLeaves => "flowering_azalea_leaves", + BlockKind::Sponge => "sponge", + BlockKind::WetSponge => "wet_sponge", + BlockKind::Glass => "glass", + BlockKind::LapisOre => "lapis_ore", + BlockKind::DeepslateLapisOre => "deepslate_lapis_ore", + BlockKind::LapisBlock => "lapis_block", + BlockKind::Dispenser => "dispenser", + BlockKind::Sandstone => "sandstone", + BlockKind::ChiseledSandstone => "chiseled_sandstone", + BlockKind::CutSandstone => "cut_sandstone", + BlockKind::NoteBlock => "note_block", + BlockKind::WhiteBed => "white_bed", + BlockKind::OrangeBed => "orange_bed", + BlockKind::MagentaBed => "magenta_bed", + BlockKind::LightBlueBed => "light_blue_bed", + BlockKind::YellowBed => "yellow_bed", + BlockKind::LimeBed => "lime_bed", + BlockKind::PinkBed => "pink_bed", + BlockKind::GrayBed => "gray_bed", + BlockKind::LightGrayBed => "light_gray_bed", + BlockKind::CyanBed => "cyan_bed", + BlockKind::PurpleBed => "purple_bed", + BlockKind::BlueBed => "blue_bed", + BlockKind::BrownBed => "brown_bed", + BlockKind::GreenBed => "green_bed", + BlockKind::RedBed => "red_bed", + BlockKind::BlackBed => "black_bed", + BlockKind::PoweredRail => "powered_rail", + BlockKind::DetectorRail => "detector_rail", + BlockKind::StickyPiston => "sticky_piston", + BlockKind::Cobweb => "cobweb", + BlockKind::Grass => "grass", + BlockKind::Fern => "fern", + BlockKind::DeadBush => "dead_bush", + BlockKind::Seagrass => "seagrass", + BlockKind::TallSeagrass => "tall_seagrass", + BlockKind::Piston => "piston", + BlockKind::PistonHead => "piston_head", + BlockKind::WhiteWool => "white_wool", + BlockKind::OrangeWool => "orange_wool", + BlockKind::MagentaWool => "magenta_wool", + BlockKind::LightBlueWool => "light_blue_wool", + BlockKind::YellowWool => "yellow_wool", + BlockKind::LimeWool => "lime_wool", + BlockKind::PinkWool => "pink_wool", + BlockKind::GrayWool => "gray_wool", + BlockKind::LightGrayWool => "light_gray_wool", + BlockKind::CyanWool => "cyan_wool", + BlockKind::PurpleWool => "purple_wool", + BlockKind::BlueWool => "blue_wool", + BlockKind::BrownWool => "brown_wool", + BlockKind::GreenWool => "green_wool", + BlockKind::RedWool => "red_wool", + BlockKind::BlackWool => "black_wool", + BlockKind::MovingPiston => "moving_piston", + BlockKind::Dandelion => "dandelion", + BlockKind::Poppy => "poppy", + BlockKind::BlueOrchid => "blue_orchid", + BlockKind::Allium => "allium", + BlockKind::AzureBluet => "azure_bluet", + BlockKind::RedTulip => "red_tulip", + BlockKind::OrangeTulip => "orange_tulip", + BlockKind::WhiteTulip => "white_tulip", + BlockKind::PinkTulip => "pink_tulip", + BlockKind::OxeyeDaisy => "oxeye_daisy", + BlockKind::Cornflower => "cornflower", + BlockKind::WitherRose => "wither_rose", + BlockKind::LilyOfTheValley => "lily_of_the_valley", + BlockKind::BrownMushroom => "brown_mushroom", + BlockKind::RedMushroom => "red_mushroom", + BlockKind::GoldBlock => "gold_block", + BlockKind::IronBlock => "iron_block", + BlockKind::Bricks => "bricks", + BlockKind::Tnt => "tnt", + BlockKind::Bookshelf => "bookshelf", + BlockKind::MossyCobblestone => "mossy_cobblestone", + BlockKind::Obsidian => "obsidian", + BlockKind::Torch => "torch", + BlockKind::WallTorch => "wall_torch", + BlockKind::Fire => "fire", + BlockKind::SoulFire => "soul_fire", + BlockKind::Spawner => "spawner", + BlockKind::OakStairs => "oak_stairs", + BlockKind::Chest => "chest", + BlockKind::RedstoneWire => "redstone_wire", + BlockKind::DiamondOre => "diamond_ore", + BlockKind::DeepslateDiamondOre => "deepslate_diamond_ore", + BlockKind::DiamondBlock => "diamond_block", + BlockKind::CraftingTable => "crafting_table", + BlockKind::Wheat => "wheat", + BlockKind::Farmland => "farmland", + BlockKind::Furnace => "furnace", + BlockKind::OakSign => "oak_sign", + BlockKind::SpruceSign => "spruce_sign", + BlockKind::BirchSign => "birch_sign", + BlockKind::AcaciaSign => "acacia_sign", + BlockKind::JungleSign => "jungle_sign", + BlockKind::DarkOakSign => "dark_oak_sign", + BlockKind::OakDoor => "oak_door", + BlockKind::Ladder => "ladder", + BlockKind::Rail => "rail", + BlockKind::CobblestoneStairs => "cobblestone_stairs", + BlockKind::OakWallSign => "oak_wall_sign", + BlockKind::SpruceWallSign => "spruce_wall_sign", + BlockKind::BirchWallSign => "birch_wall_sign", + BlockKind::AcaciaWallSign => "acacia_wall_sign", + BlockKind::JungleWallSign => "jungle_wall_sign", + BlockKind::DarkOakWallSign => "dark_oak_wall_sign", + BlockKind::Lever => "lever", + BlockKind::StonePressurePlate => "stone_pressure_plate", + BlockKind::IronDoor => "iron_door", + BlockKind::OakPressurePlate => "oak_pressure_plate", + BlockKind::SprucePressurePlate => "spruce_pressure_plate", + BlockKind::BirchPressurePlate => "birch_pressure_plate", + BlockKind::JunglePressurePlate => "jungle_pressure_plate", + BlockKind::AcaciaPressurePlate => "acacia_pressure_plate", + BlockKind::DarkOakPressurePlate => "dark_oak_pressure_plate", + BlockKind::RedstoneOre => "redstone_ore", + BlockKind::DeepslateRedstoneOre => "deepslate_redstone_ore", + BlockKind::RedstoneTorch => "redstone_torch", + BlockKind::RedstoneWallTorch => "redstone_wall_torch", + BlockKind::StoneButton => "stone_button", + BlockKind::Snow => "snow", + BlockKind::Ice => "ice", + BlockKind::SnowBlock => "snow_block", + BlockKind::Cactus => "cactus", + BlockKind::Clay => "clay", + BlockKind::SugarCane => "sugar_cane", + BlockKind::Jukebox => "jukebox", + BlockKind::OakFence => "oak_fence", + BlockKind::Pumpkin => "pumpkin", + BlockKind::Netherrack => "netherrack", + BlockKind::SoulSand => "soul_sand", + BlockKind::SoulSoil => "soul_soil", + BlockKind::Basalt => "basalt", + BlockKind::PolishedBasalt => "polished_basalt", + BlockKind::SoulTorch => "soul_torch", + BlockKind::SoulWallTorch => "soul_wall_torch", + BlockKind::Glowstone => "glowstone", + BlockKind::NetherPortal => "nether_portal", + BlockKind::CarvedPumpkin => "carved_pumpkin", + BlockKind::JackOLantern => "jack_o_lantern", + BlockKind::Cake => "cake", + BlockKind::Repeater => "repeater", + BlockKind::WhiteStainedGlass => "white_stained_glass", + BlockKind::OrangeStainedGlass => "orange_stained_glass", + BlockKind::MagentaStainedGlass => "magenta_stained_glass", + BlockKind::LightBlueStainedGlass => "light_blue_stained_glass", + BlockKind::YellowStainedGlass => "yellow_stained_glass", + BlockKind::LimeStainedGlass => "lime_stained_glass", + BlockKind::PinkStainedGlass => "pink_stained_glass", + BlockKind::GrayStainedGlass => "gray_stained_glass", + BlockKind::LightGrayStainedGlass => "light_gray_stained_glass", + BlockKind::CyanStainedGlass => "cyan_stained_glass", + BlockKind::PurpleStainedGlass => "purple_stained_glass", + BlockKind::BlueStainedGlass => "blue_stained_glass", + BlockKind::BrownStainedGlass => "brown_stained_glass", + BlockKind::GreenStainedGlass => "green_stained_glass", + BlockKind::RedStainedGlass => "red_stained_glass", + BlockKind::BlackStainedGlass => "black_stained_glass", + BlockKind::OakTrapdoor => "oak_trapdoor", + BlockKind::SpruceTrapdoor => "spruce_trapdoor", + BlockKind::BirchTrapdoor => "birch_trapdoor", + BlockKind::JungleTrapdoor => "jungle_trapdoor", + BlockKind::AcaciaTrapdoor => "acacia_trapdoor", + BlockKind::DarkOakTrapdoor => "dark_oak_trapdoor", + BlockKind::StoneBricks => "stone_bricks", + BlockKind::MossyStoneBricks => "mossy_stone_bricks", + BlockKind::CrackedStoneBricks => "cracked_stone_bricks", + BlockKind::ChiseledStoneBricks => "chiseled_stone_bricks", + BlockKind::InfestedStone => "infested_stone", + BlockKind::InfestedCobblestone => "infested_cobblestone", + BlockKind::InfestedStoneBricks => "infested_stone_bricks", + BlockKind::InfestedMossyStoneBricks => "infested_mossy_stone_bricks", + BlockKind::InfestedCrackedStoneBricks => "infested_cracked_stone_bricks", + BlockKind::InfestedChiseledStoneBricks => "infested_chiseled_stone_bricks", + BlockKind::BrownMushroomBlock => "brown_mushroom_block", + BlockKind::RedMushroomBlock => "red_mushroom_block", + BlockKind::MushroomStem => "mushroom_stem", + BlockKind::IronBars => "iron_bars", + BlockKind::Chain => "chain", + BlockKind::GlassPane => "glass_pane", + BlockKind::Melon => "melon", + BlockKind::AttachedPumpkinStem => "attached_pumpkin_stem", + BlockKind::AttachedMelonStem => "attached_melon_stem", + BlockKind::PumpkinStem => "pumpkin_stem", + BlockKind::MelonStem => "melon_stem", + BlockKind::Vine => "vine", + BlockKind::GlowLichen => "glow_lichen", + BlockKind::OakFenceGate => "oak_fence_gate", + BlockKind::BrickStairs => "brick_stairs", + BlockKind::StoneBrickStairs => "stone_brick_stairs", + BlockKind::Mycelium => "mycelium", + BlockKind::LilyPad => "lily_pad", + BlockKind::NetherBricks => "nether_bricks", + BlockKind::NetherBrickFence => "nether_brick_fence", + BlockKind::NetherBrickStairs => "nether_brick_stairs", + BlockKind::NetherWart => "nether_wart", + BlockKind::EnchantingTable => "enchanting_table", + BlockKind::BrewingStand => "brewing_stand", + BlockKind::Cauldron => "cauldron", + BlockKind::WaterCauldron => "water_cauldron", + BlockKind::LavaCauldron => "lava_cauldron", + BlockKind::PowderSnowCauldron => "powder_snow_cauldron", + BlockKind::EndPortal => "end_portal", + BlockKind::EndPortalFrame => "end_portal_frame", + BlockKind::EndStone => "end_stone", + BlockKind::DragonEgg => "dragon_egg", + BlockKind::RedstoneLamp => "redstone_lamp", + BlockKind::Cocoa => "cocoa", + BlockKind::SandstoneStairs => "sandstone_stairs", + BlockKind::EmeraldOre => "emerald_ore", + BlockKind::DeepslateEmeraldOre => "deepslate_emerald_ore", + BlockKind::EnderChest => "ender_chest", + BlockKind::TripwireHook => "tripwire_hook", + BlockKind::Tripwire => "tripwire", + BlockKind::EmeraldBlock => "emerald_block", + BlockKind::SpruceStairs => "spruce_stairs", + BlockKind::BirchStairs => "birch_stairs", + BlockKind::JungleStairs => "jungle_stairs", + BlockKind::CommandBlock => "command_block", + BlockKind::Beacon => "beacon", + BlockKind::CobblestoneWall => "cobblestone_wall", + BlockKind::MossyCobblestoneWall => "mossy_cobblestone_wall", + BlockKind::FlowerPot => "flower_pot", + BlockKind::PottedOakSapling => "potted_oak_sapling", + BlockKind::PottedSpruceSapling => "potted_spruce_sapling", + BlockKind::PottedBirchSapling => "potted_birch_sapling", + BlockKind::PottedJungleSapling => "potted_jungle_sapling", + BlockKind::PottedAcaciaSapling => "potted_acacia_sapling", + BlockKind::PottedDarkOakSapling => "potted_dark_oak_sapling", + BlockKind::PottedFern => "potted_fern", + BlockKind::PottedDandelion => "potted_dandelion", + BlockKind::PottedPoppy => "potted_poppy", + BlockKind::PottedBlueOrchid => "potted_blue_orchid", + BlockKind::PottedAllium => "potted_allium", + BlockKind::PottedAzureBluet => "potted_azure_bluet", + BlockKind::PottedRedTulip => "potted_red_tulip", + BlockKind::PottedOrangeTulip => "potted_orange_tulip", + BlockKind::PottedWhiteTulip => "potted_white_tulip", + BlockKind::PottedPinkTulip => "potted_pink_tulip", + BlockKind::PottedOxeyeDaisy => "potted_oxeye_daisy", + BlockKind::PottedCornflower => "potted_cornflower", + BlockKind::PottedLilyOfTheValley => "potted_lily_of_the_valley", + BlockKind::PottedWitherRose => "potted_wither_rose", + BlockKind::PottedRedMushroom => "potted_red_mushroom", + BlockKind::PottedBrownMushroom => "potted_brown_mushroom", + BlockKind::PottedDeadBush => "potted_dead_bush", + BlockKind::PottedCactus => "potted_cactus", + BlockKind::Carrots => "carrots", + BlockKind::Potatoes => "potatoes", + BlockKind::OakButton => "oak_button", + BlockKind::SpruceButton => "spruce_button", + BlockKind::BirchButton => "birch_button", + BlockKind::JungleButton => "jungle_button", + BlockKind::AcaciaButton => "acacia_button", + BlockKind::DarkOakButton => "dark_oak_button", + BlockKind::SkeletonSkull => "skeleton_skull", + BlockKind::SkeletonWallSkull => "skeleton_wall_skull", + BlockKind::WitherSkeletonSkull => "wither_skeleton_skull", + BlockKind::WitherSkeletonWallSkull => "wither_skeleton_wall_skull", + BlockKind::ZombieHead => "zombie_head", + BlockKind::ZombieWallHead => "zombie_wall_head", + BlockKind::PlayerHead => "player_head", + BlockKind::PlayerWallHead => "player_wall_head", + BlockKind::CreeperHead => "creeper_head", + BlockKind::CreeperWallHead => "creeper_wall_head", + BlockKind::DragonHead => "dragon_head", + BlockKind::DragonWallHead => "dragon_wall_head", + BlockKind::Anvil => "anvil", + BlockKind::ChippedAnvil => "chipped_anvil", + BlockKind::DamagedAnvil => "damaged_anvil", + BlockKind::TrappedChest => "trapped_chest", + BlockKind::LightWeightedPressurePlate => "light_weighted_pressure_plate", + BlockKind::HeavyWeightedPressurePlate => "heavy_weighted_pressure_plate", + BlockKind::Comparator => "comparator", + BlockKind::DaylightDetector => "daylight_detector", + BlockKind::RedstoneBlock => "redstone_block", + BlockKind::NetherQuartzOre => "nether_quartz_ore", + BlockKind::Hopper => "hopper", + BlockKind::QuartzBlock => "quartz_block", + BlockKind::ChiseledQuartzBlock => "chiseled_quartz_block", + BlockKind::QuartzPillar => "quartz_pillar", + BlockKind::QuartzStairs => "quartz_stairs", + BlockKind::ActivatorRail => "activator_rail", + BlockKind::Dropper => "dropper", + BlockKind::WhiteTerracotta => "white_terracotta", + BlockKind::OrangeTerracotta => "orange_terracotta", + BlockKind::MagentaTerracotta => "magenta_terracotta", + BlockKind::LightBlueTerracotta => "light_blue_terracotta", + BlockKind::YellowTerracotta => "yellow_terracotta", + BlockKind::LimeTerracotta => "lime_terracotta", + BlockKind::PinkTerracotta => "pink_terracotta", + BlockKind::GrayTerracotta => "gray_terracotta", + BlockKind::LightGrayTerracotta => "light_gray_terracotta", + BlockKind::CyanTerracotta => "cyan_terracotta", + BlockKind::PurpleTerracotta => "purple_terracotta", + BlockKind::BlueTerracotta => "blue_terracotta", + BlockKind::BrownTerracotta => "brown_terracotta", + BlockKind::GreenTerracotta => "green_terracotta", + BlockKind::RedTerracotta => "red_terracotta", + BlockKind::BlackTerracotta => "black_terracotta", + BlockKind::WhiteStainedGlassPane => "white_stained_glass_pane", + BlockKind::OrangeStainedGlassPane => "orange_stained_glass_pane", + BlockKind::MagentaStainedGlassPane => "magenta_stained_glass_pane", + BlockKind::LightBlueStainedGlassPane => "light_blue_stained_glass_pane", + BlockKind::YellowStainedGlassPane => "yellow_stained_glass_pane", + BlockKind::LimeStainedGlassPane => "lime_stained_glass_pane", + BlockKind::PinkStainedGlassPane => "pink_stained_glass_pane", + BlockKind::GrayStainedGlassPane => "gray_stained_glass_pane", + BlockKind::LightGrayStainedGlassPane => "light_gray_stained_glass_pane", + BlockKind::CyanStainedGlassPane => "cyan_stained_glass_pane", + BlockKind::PurpleStainedGlassPane => "purple_stained_glass_pane", + BlockKind::BlueStainedGlassPane => "blue_stained_glass_pane", + BlockKind::BrownStainedGlassPane => "brown_stained_glass_pane", + BlockKind::GreenStainedGlassPane => "green_stained_glass_pane", + BlockKind::RedStainedGlassPane => "red_stained_glass_pane", + BlockKind::BlackStainedGlassPane => "black_stained_glass_pane", + BlockKind::AcaciaStairs => "acacia_stairs", + BlockKind::DarkOakStairs => "dark_oak_stairs", + BlockKind::SlimeBlock => "slime_block", + BlockKind::Barrier => "barrier", + BlockKind::Light => "light", + BlockKind::IronTrapdoor => "iron_trapdoor", + BlockKind::Prismarine => "prismarine", + BlockKind::PrismarineBricks => "prismarine_bricks", + BlockKind::DarkPrismarine => "dark_prismarine", + BlockKind::PrismarineStairs => "prismarine_stairs", + BlockKind::PrismarineBrickStairs => "prismarine_brick_stairs", + BlockKind::DarkPrismarineStairs => "dark_prismarine_stairs", + BlockKind::PrismarineSlab => "prismarine_slab", + BlockKind::PrismarineBrickSlab => "prismarine_brick_slab", + BlockKind::DarkPrismarineSlab => "dark_prismarine_slab", + BlockKind::SeaLantern => "sea_lantern", + BlockKind::HayBlock => "hay_block", + BlockKind::WhiteCarpet => "white_carpet", + BlockKind::OrangeCarpet => "orange_carpet", + BlockKind::MagentaCarpet => "magenta_carpet", + BlockKind::LightBlueCarpet => "light_blue_carpet", + BlockKind::YellowCarpet => "yellow_carpet", + BlockKind::LimeCarpet => "lime_carpet", + BlockKind::PinkCarpet => "pink_carpet", + BlockKind::GrayCarpet => "gray_carpet", + BlockKind::LightGrayCarpet => "light_gray_carpet", + BlockKind::CyanCarpet => "cyan_carpet", + BlockKind::PurpleCarpet => "purple_carpet", + BlockKind::BlueCarpet => "blue_carpet", + BlockKind::BrownCarpet => "brown_carpet", + BlockKind::GreenCarpet => "green_carpet", + BlockKind::RedCarpet => "red_carpet", + BlockKind::BlackCarpet => "black_carpet", + BlockKind::Terracotta => "terracotta", + BlockKind::CoalBlock => "coal_block", + BlockKind::PackedIce => "packed_ice", + BlockKind::Sunflower => "sunflower", + BlockKind::Lilac => "lilac", + BlockKind::RoseBush => "rose_bush", + BlockKind::Peony => "peony", + BlockKind::TallGrass => "tall_grass", + BlockKind::LargeFern => "large_fern", + BlockKind::WhiteBanner => "white_banner", + BlockKind::OrangeBanner => "orange_banner", + BlockKind::MagentaBanner => "magenta_banner", + BlockKind::LightBlueBanner => "light_blue_banner", + BlockKind::YellowBanner => "yellow_banner", + BlockKind::LimeBanner => "lime_banner", + BlockKind::PinkBanner => "pink_banner", + BlockKind::GrayBanner => "gray_banner", + BlockKind::LightGrayBanner => "light_gray_banner", + BlockKind::CyanBanner => "cyan_banner", + BlockKind::PurpleBanner => "purple_banner", + BlockKind::BlueBanner => "blue_banner", + BlockKind::BrownBanner => "brown_banner", + BlockKind::GreenBanner => "green_banner", + BlockKind::RedBanner => "red_banner", + BlockKind::BlackBanner => "black_banner", + BlockKind::WhiteWallBanner => "white_wall_banner", + BlockKind::OrangeWallBanner => "orange_wall_banner", + BlockKind::MagentaWallBanner => "magenta_wall_banner", + BlockKind::LightBlueWallBanner => "light_blue_wall_banner", + BlockKind::YellowWallBanner => "yellow_wall_banner", + BlockKind::LimeWallBanner => "lime_wall_banner", + BlockKind::PinkWallBanner => "pink_wall_banner", + BlockKind::GrayWallBanner => "gray_wall_banner", + BlockKind::LightGrayWallBanner => "light_gray_wall_banner", + BlockKind::CyanWallBanner => "cyan_wall_banner", + BlockKind::PurpleWallBanner => "purple_wall_banner", + BlockKind::BlueWallBanner => "blue_wall_banner", + BlockKind::BrownWallBanner => "brown_wall_banner", + BlockKind::GreenWallBanner => "green_wall_banner", + BlockKind::RedWallBanner => "red_wall_banner", + BlockKind::BlackWallBanner => "black_wall_banner", + BlockKind::RedSandstone => "red_sandstone", + BlockKind::ChiseledRedSandstone => "chiseled_red_sandstone", + BlockKind::CutRedSandstone => "cut_red_sandstone", + BlockKind::RedSandstoneStairs => "red_sandstone_stairs", + BlockKind::OakSlab => "oak_slab", + BlockKind::SpruceSlab => "spruce_slab", + BlockKind::BirchSlab => "birch_slab", + BlockKind::JungleSlab => "jungle_slab", + BlockKind::AcaciaSlab => "acacia_slab", + BlockKind::DarkOakSlab => "dark_oak_slab", + BlockKind::StoneSlab => "stone_slab", + BlockKind::SmoothStoneSlab => "smooth_stone_slab", + BlockKind::SandstoneSlab => "sandstone_slab", + BlockKind::CutSandstoneSlab => "cut_sandstone_slab", + BlockKind::PetrifiedOakSlab => "petrified_oak_slab", + BlockKind::CobblestoneSlab => "cobblestone_slab", + BlockKind::BrickSlab => "brick_slab", + BlockKind::StoneBrickSlab => "stone_brick_slab", + BlockKind::NetherBrickSlab => "nether_brick_slab", + BlockKind::QuartzSlab => "quartz_slab", + BlockKind::RedSandstoneSlab => "red_sandstone_slab", + BlockKind::CutRedSandstoneSlab => "cut_red_sandstone_slab", + BlockKind::PurpurSlab => "purpur_slab", + BlockKind::SmoothStone => "smooth_stone", + BlockKind::SmoothSandstone => "smooth_sandstone", + BlockKind::SmoothQuartz => "smooth_quartz", + BlockKind::SmoothRedSandstone => "smooth_red_sandstone", + BlockKind::SpruceFenceGate => "spruce_fence_gate", + BlockKind::BirchFenceGate => "birch_fence_gate", + BlockKind::JungleFenceGate => "jungle_fence_gate", + BlockKind::AcaciaFenceGate => "acacia_fence_gate", + BlockKind::DarkOakFenceGate => "dark_oak_fence_gate", + BlockKind::SpruceFence => "spruce_fence", + BlockKind::BirchFence => "birch_fence", + BlockKind::JungleFence => "jungle_fence", + BlockKind::AcaciaFence => "acacia_fence", + BlockKind::DarkOakFence => "dark_oak_fence", + BlockKind::SpruceDoor => "spruce_door", + BlockKind::BirchDoor => "birch_door", + BlockKind::JungleDoor => "jungle_door", + BlockKind::AcaciaDoor => "acacia_door", + BlockKind::DarkOakDoor => "dark_oak_door", + BlockKind::EndRod => "end_rod", + BlockKind::ChorusPlant => "chorus_plant", + BlockKind::ChorusFlower => "chorus_flower", + BlockKind::PurpurBlock => "purpur_block", + BlockKind::PurpurPillar => "purpur_pillar", + BlockKind::PurpurStairs => "purpur_stairs", + BlockKind::EndStoneBricks => "end_stone_bricks", + BlockKind::Beetroots => "beetroots", + BlockKind::DirtPath => "dirt_path", + BlockKind::EndGateway => "end_gateway", + BlockKind::RepeatingCommandBlock => "repeating_command_block", + BlockKind::ChainCommandBlock => "chain_command_block", + BlockKind::FrostedIce => "frosted_ice", + BlockKind::MagmaBlock => "magma_block", + BlockKind::NetherWartBlock => "nether_wart_block", + BlockKind::RedNetherBricks => "red_nether_bricks", + BlockKind::BoneBlock => "bone_block", + BlockKind::StructureVoid => "structure_void", + BlockKind::Observer => "observer", + BlockKind::ShulkerBox => "shulker_box", + BlockKind::WhiteShulkerBox => "white_shulker_box", + BlockKind::OrangeShulkerBox => "orange_shulker_box", + BlockKind::MagentaShulkerBox => "magenta_shulker_box", + BlockKind::LightBlueShulkerBox => "light_blue_shulker_box", + BlockKind::YellowShulkerBox => "yellow_shulker_box", + BlockKind::LimeShulkerBox => "lime_shulker_box", + BlockKind::PinkShulkerBox => "pink_shulker_box", + BlockKind::GrayShulkerBox => "gray_shulker_box", + BlockKind::LightGrayShulkerBox => "light_gray_shulker_box", + BlockKind::CyanShulkerBox => "cyan_shulker_box", + BlockKind::PurpleShulkerBox => "purple_shulker_box", + BlockKind::BlueShulkerBox => "blue_shulker_box", + BlockKind::BrownShulkerBox => "brown_shulker_box", + BlockKind::GreenShulkerBox => "green_shulker_box", + BlockKind::RedShulkerBox => "red_shulker_box", + BlockKind::BlackShulkerBox => "black_shulker_box", + BlockKind::WhiteGlazedTerracotta => "white_glazed_terracotta", + BlockKind::OrangeGlazedTerracotta => "orange_glazed_terracotta", + BlockKind::MagentaGlazedTerracotta => "magenta_glazed_terracotta", + BlockKind::LightBlueGlazedTerracotta => "light_blue_glazed_terracotta", + BlockKind::YellowGlazedTerracotta => "yellow_glazed_terracotta", + BlockKind::LimeGlazedTerracotta => "lime_glazed_terracotta", + BlockKind::PinkGlazedTerracotta => "pink_glazed_terracotta", + BlockKind::GrayGlazedTerracotta => "gray_glazed_terracotta", + BlockKind::LightGrayGlazedTerracotta => "light_gray_glazed_terracotta", + BlockKind::CyanGlazedTerracotta => "cyan_glazed_terracotta", + BlockKind::PurpleGlazedTerracotta => "purple_glazed_terracotta", + BlockKind::BlueGlazedTerracotta => "blue_glazed_terracotta", + BlockKind::BrownGlazedTerracotta => "brown_glazed_terracotta", + BlockKind::GreenGlazedTerracotta => "green_glazed_terracotta", + BlockKind::RedGlazedTerracotta => "red_glazed_terracotta", + BlockKind::BlackGlazedTerracotta => "black_glazed_terracotta", + BlockKind::WhiteConcrete => "white_concrete", + BlockKind::OrangeConcrete => "orange_concrete", + BlockKind::MagentaConcrete => "magenta_concrete", + BlockKind::LightBlueConcrete => "light_blue_concrete", + BlockKind::YellowConcrete => "yellow_concrete", + BlockKind::LimeConcrete => "lime_concrete", + BlockKind::PinkConcrete => "pink_concrete", + BlockKind::GrayConcrete => "gray_concrete", + BlockKind::LightGrayConcrete => "light_gray_concrete", + BlockKind::CyanConcrete => "cyan_concrete", + BlockKind::PurpleConcrete => "purple_concrete", + BlockKind::BlueConcrete => "blue_concrete", + BlockKind::BrownConcrete => "brown_concrete", + BlockKind::GreenConcrete => "green_concrete", + BlockKind::RedConcrete => "red_concrete", + BlockKind::BlackConcrete => "black_concrete", + BlockKind::WhiteConcretePowder => "white_concrete_powder", + BlockKind::OrangeConcretePowder => "orange_concrete_powder", + BlockKind::MagentaConcretePowder => "magenta_concrete_powder", + BlockKind::LightBlueConcretePowder => "light_blue_concrete_powder", + BlockKind::YellowConcretePowder => "yellow_concrete_powder", + BlockKind::LimeConcretePowder => "lime_concrete_powder", + BlockKind::PinkConcretePowder => "pink_concrete_powder", + BlockKind::GrayConcretePowder => "gray_concrete_powder", + BlockKind::LightGrayConcretePowder => "light_gray_concrete_powder", + BlockKind::CyanConcretePowder => "cyan_concrete_powder", + BlockKind::PurpleConcretePowder => "purple_concrete_powder", + BlockKind::BlueConcretePowder => "blue_concrete_powder", + BlockKind::BrownConcretePowder => "brown_concrete_powder", + BlockKind::GreenConcretePowder => "green_concrete_powder", + BlockKind::RedConcretePowder => "red_concrete_powder", + BlockKind::BlackConcretePowder => "black_concrete_powder", + BlockKind::Kelp => "kelp", + BlockKind::KelpPlant => "kelp_plant", + BlockKind::DriedKelpBlock => "dried_kelp_block", + BlockKind::TurtleEgg => "turtle_egg", + BlockKind::DeadTubeCoralBlock => "dead_tube_coral_block", + BlockKind::DeadBrainCoralBlock => "dead_brain_coral_block", + BlockKind::DeadBubbleCoralBlock => "dead_bubble_coral_block", + BlockKind::DeadFireCoralBlock => "dead_fire_coral_block", + BlockKind::DeadHornCoralBlock => "dead_horn_coral_block", + BlockKind::TubeCoralBlock => "tube_coral_block", + BlockKind::BrainCoralBlock => "brain_coral_block", + BlockKind::BubbleCoralBlock => "bubble_coral_block", + BlockKind::FireCoralBlock => "fire_coral_block", + BlockKind::HornCoralBlock => "horn_coral_block", + BlockKind::DeadTubeCoral => "dead_tube_coral", + BlockKind::DeadBrainCoral => "dead_brain_coral", + BlockKind::DeadBubbleCoral => "dead_bubble_coral", + BlockKind::DeadFireCoral => "dead_fire_coral", + BlockKind::DeadHornCoral => "dead_horn_coral", + BlockKind::TubeCoral => "tube_coral", + BlockKind::BrainCoral => "brain_coral", + BlockKind::BubbleCoral => "bubble_coral", + BlockKind::FireCoral => "fire_coral", + BlockKind::HornCoral => "horn_coral", + BlockKind::DeadTubeCoralFan => "dead_tube_coral_fan", + BlockKind::DeadBrainCoralFan => "dead_brain_coral_fan", + BlockKind::DeadBubbleCoralFan => "dead_bubble_coral_fan", + BlockKind::DeadFireCoralFan => "dead_fire_coral_fan", + BlockKind::DeadHornCoralFan => "dead_horn_coral_fan", + BlockKind::TubeCoralFan => "tube_coral_fan", + BlockKind::BrainCoralFan => "brain_coral_fan", + BlockKind::BubbleCoralFan => "bubble_coral_fan", + BlockKind::FireCoralFan => "fire_coral_fan", + BlockKind::HornCoralFan => "horn_coral_fan", + BlockKind::DeadTubeCoralWallFan => "dead_tube_coral_wall_fan", + BlockKind::DeadBrainCoralWallFan => "dead_brain_coral_wall_fan", + BlockKind::DeadBubbleCoralWallFan => "dead_bubble_coral_wall_fan", + BlockKind::DeadFireCoralWallFan => "dead_fire_coral_wall_fan", + BlockKind::DeadHornCoralWallFan => "dead_horn_coral_wall_fan", + BlockKind::TubeCoralWallFan => "tube_coral_wall_fan", + BlockKind::BrainCoralWallFan => "brain_coral_wall_fan", + BlockKind::BubbleCoralWallFan => "bubble_coral_wall_fan", + BlockKind::FireCoralWallFan => "fire_coral_wall_fan", + BlockKind::HornCoralWallFan => "horn_coral_wall_fan", + BlockKind::SeaPickle => "sea_pickle", + BlockKind::BlueIce => "blue_ice", + BlockKind::Conduit => "conduit", + BlockKind::BambooSapling => "bamboo_sapling", + BlockKind::Bamboo => "bamboo", + BlockKind::PottedBamboo => "potted_bamboo", + BlockKind::VoidAir => "void_air", + BlockKind::CaveAir => "cave_air", + BlockKind::BubbleColumn => "bubble_column", + BlockKind::PolishedGraniteStairs => "polished_granite_stairs", + BlockKind::SmoothRedSandstoneStairs => "smooth_red_sandstone_stairs", + BlockKind::MossyStoneBrickStairs => "mossy_stone_brick_stairs", + BlockKind::PolishedDioriteStairs => "polished_diorite_stairs", + BlockKind::MossyCobblestoneStairs => "mossy_cobblestone_stairs", + BlockKind::EndStoneBrickStairs => "end_stone_brick_stairs", + BlockKind::StoneStairs => "stone_stairs", + BlockKind::SmoothSandstoneStairs => "smooth_sandstone_stairs", + BlockKind::SmoothQuartzStairs => "smooth_quartz_stairs", + BlockKind::GraniteStairs => "granite_stairs", + BlockKind::AndesiteStairs => "andesite_stairs", + BlockKind::RedNetherBrickStairs => "red_nether_brick_stairs", + BlockKind::PolishedAndesiteStairs => "polished_andesite_stairs", + BlockKind::DioriteStairs => "diorite_stairs", + BlockKind::PolishedGraniteSlab => "polished_granite_slab", + BlockKind::SmoothRedSandstoneSlab => "smooth_red_sandstone_slab", + BlockKind::MossyStoneBrickSlab => "mossy_stone_brick_slab", + BlockKind::PolishedDioriteSlab => "polished_diorite_slab", + BlockKind::MossyCobblestoneSlab => "mossy_cobblestone_slab", + BlockKind::EndStoneBrickSlab => "end_stone_brick_slab", + BlockKind::SmoothSandstoneSlab => "smooth_sandstone_slab", + BlockKind::SmoothQuartzSlab => "smooth_quartz_slab", + BlockKind::GraniteSlab => "granite_slab", + BlockKind::AndesiteSlab => "andesite_slab", + BlockKind::RedNetherBrickSlab => "red_nether_brick_slab", + BlockKind::PolishedAndesiteSlab => "polished_andesite_slab", + BlockKind::DioriteSlab => "diorite_slab", + BlockKind::BrickWall => "brick_wall", + BlockKind::PrismarineWall => "prismarine_wall", + BlockKind::RedSandstoneWall => "red_sandstone_wall", + BlockKind::MossyStoneBrickWall => "mossy_stone_brick_wall", + BlockKind::GraniteWall => "granite_wall", + BlockKind::StoneBrickWall => "stone_brick_wall", + BlockKind::NetherBrickWall => "nether_brick_wall", + BlockKind::AndesiteWall => "andesite_wall", + BlockKind::RedNetherBrickWall => "red_nether_brick_wall", + BlockKind::SandstoneWall => "sandstone_wall", + BlockKind::EndStoneBrickWall => "end_stone_brick_wall", + BlockKind::DioriteWall => "diorite_wall", + BlockKind::Scaffolding => "scaffolding", + BlockKind::Loom => "loom", + BlockKind::Barrel => "barrel", + BlockKind::Smoker => "smoker", + BlockKind::BlastFurnace => "blast_furnace", + BlockKind::CartographyTable => "cartography_table", + BlockKind::FletchingTable => "fletching_table", + BlockKind::Grindstone => "grindstone", + BlockKind::Lectern => "lectern", + BlockKind::SmithingTable => "smithing_table", + BlockKind::Stonecutter => "stonecutter", + BlockKind::Bell => "bell", + BlockKind::Lantern => "lantern", + BlockKind::SoulLantern => "soul_lantern", + BlockKind::Campfire => "campfire", + BlockKind::SoulCampfire => "soul_campfire", + BlockKind::SweetBerryBush => "sweet_berry_bush", + BlockKind::WarpedStem => "warped_stem", + BlockKind::StrippedWarpedStem => "stripped_warped_stem", + BlockKind::WarpedHyphae => "warped_hyphae", + BlockKind::StrippedWarpedHyphae => "stripped_warped_hyphae", + BlockKind::WarpedNylium => "warped_nylium", + BlockKind::WarpedFungus => "warped_fungus", + BlockKind::WarpedWartBlock => "warped_wart_block", + BlockKind::WarpedRoots => "warped_roots", + BlockKind::NetherSprouts => "nether_sprouts", + BlockKind::CrimsonStem => "crimson_stem", + BlockKind::StrippedCrimsonStem => "stripped_crimson_stem", + BlockKind::CrimsonHyphae => "crimson_hyphae", + BlockKind::StrippedCrimsonHyphae => "stripped_crimson_hyphae", + BlockKind::CrimsonNylium => "crimson_nylium", + BlockKind::CrimsonFungus => "crimson_fungus", + BlockKind::Shroomlight => "shroomlight", + BlockKind::WeepingVines => "weeping_vines", + BlockKind::WeepingVinesPlant => "weeping_vines_plant", + BlockKind::TwistingVines => "twisting_vines", + BlockKind::TwistingVinesPlant => "twisting_vines_plant", + BlockKind::CrimsonRoots => "crimson_roots", + BlockKind::CrimsonPlanks => "crimson_planks", + BlockKind::WarpedPlanks => "warped_planks", + BlockKind::CrimsonSlab => "crimson_slab", + BlockKind::WarpedSlab => "warped_slab", + BlockKind::CrimsonPressurePlate => "crimson_pressure_plate", + BlockKind::WarpedPressurePlate => "warped_pressure_plate", + BlockKind::CrimsonFence => "crimson_fence", + BlockKind::WarpedFence => "warped_fence", + BlockKind::CrimsonTrapdoor => "crimson_trapdoor", + BlockKind::WarpedTrapdoor => "warped_trapdoor", + BlockKind::CrimsonFenceGate => "crimson_fence_gate", + BlockKind::WarpedFenceGate => "warped_fence_gate", + BlockKind::CrimsonStairs => "crimson_stairs", + BlockKind::WarpedStairs => "warped_stairs", + BlockKind::CrimsonButton => "crimson_button", + BlockKind::WarpedButton => "warped_button", + BlockKind::CrimsonDoor => "crimson_door", + BlockKind::WarpedDoor => "warped_door", + BlockKind::CrimsonSign => "crimson_sign", + BlockKind::WarpedSign => "warped_sign", + BlockKind::CrimsonWallSign => "crimson_wall_sign", + BlockKind::WarpedWallSign => "warped_wall_sign", + BlockKind::StructureBlock => "structure_block", + BlockKind::Jigsaw => "jigsaw", + BlockKind::Composter => "composter", + BlockKind::Target => "target", + BlockKind::BeeNest => "bee_nest", + BlockKind::Beehive => "beehive", + BlockKind::HoneyBlock => "honey_block", + BlockKind::HoneycombBlock => "honeycomb_block", + BlockKind::NetheriteBlock => "netherite_block", + BlockKind::AncientDebris => "ancient_debris", + BlockKind::CryingObsidian => "crying_obsidian", + BlockKind::RespawnAnchor => "respawn_anchor", + BlockKind::PottedCrimsonFungus => "potted_crimson_fungus", + BlockKind::PottedWarpedFungus => "potted_warped_fungus", + BlockKind::PottedCrimsonRoots => "potted_crimson_roots", + BlockKind::PottedWarpedRoots => "potted_warped_roots", + BlockKind::Lodestone => "lodestone", + BlockKind::Blackstone => "blackstone", + BlockKind::BlackstoneStairs => "blackstone_stairs", + BlockKind::BlackstoneWall => "blackstone_wall", + BlockKind::BlackstoneSlab => "blackstone_slab", + BlockKind::PolishedBlackstone => "polished_blackstone", + BlockKind::PolishedBlackstoneBricks => "polished_blackstone_bricks", + BlockKind::CrackedPolishedBlackstoneBricks => "cracked_polished_blackstone_bricks", + BlockKind::ChiseledPolishedBlackstone => "chiseled_polished_blackstone", + BlockKind::PolishedBlackstoneBrickSlab => "polished_blackstone_brick_slab", + BlockKind::PolishedBlackstoneBrickStairs => "polished_blackstone_brick_stairs", + BlockKind::PolishedBlackstoneBrickWall => "polished_blackstone_brick_wall", + BlockKind::GildedBlackstone => "gilded_blackstone", + BlockKind::PolishedBlackstoneStairs => "polished_blackstone_stairs", + BlockKind::PolishedBlackstoneSlab => "polished_blackstone_slab", + BlockKind::PolishedBlackstonePressurePlate => "polished_blackstone_pressure_plate", + BlockKind::PolishedBlackstoneButton => "polished_blackstone_button", + BlockKind::PolishedBlackstoneWall => "polished_blackstone_wall", + BlockKind::ChiseledNetherBricks => "chiseled_nether_bricks", + BlockKind::CrackedNetherBricks => "cracked_nether_bricks", + BlockKind::QuartzBricks => "quartz_bricks", + BlockKind::Candle => "candle", + BlockKind::WhiteCandle => "white_candle", + BlockKind::OrangeCandle => "orange_candle", + BlockKind::MagentaCandle => "magenta_candle", + BlockKind::LightBlueCandle => "light_blue_candle", + BlockKind::YellowCandle => "yellow_candle", + BlockKind::LimeCandle => "lime_candle", + BlockKind::PinkCandle => "pink_candle", + BlockKind::GrayCandle => "gray_candle", + BlockKind::LightGrayCandle => "light_gray_candle", + BlockKind::CyanCandle => "cyan_candle", + BlockKind::PurpleCandle => "purple_candle", + BlockKind::BlueCandle => "blue_candle", + BlockKind::BrownCandle => "brown_candle", + BlockKind::GreenCandle => "green_candle", + BlockKind::RedCandle => "red_candle", + BlockKind::BlackCandle => "black_candle", + BlockKind::CandleCake => "candle_cake", + BlockKind::WhiteCandleCake => "white_candle_cake", + BlockKind::OrangeCandleCake => "orange_candle_cake", + BlockKind::MagentaCandleCake => "magenta_candle_cake", + BlockKind::LightBlueCandleCake => "light_blue_candle_cake", + BlockKind::YellowCandleCake => "yellow_candle_cake", + BlockKind::LimeCandleCake => "lime_candle_cake", + BlockKind::PinkCandleCake => "pink_candle_cake", + BlockKind::GrayCandleCake => "gray_candle_cake", + BlockKind::LightGrayCandleCake => "light_gray_candle_cake", + BlockKind::CyanCandleCake => "cyan_candle_cake", + BlockKind::PurpleCandleCake => "purple_candle_cake", + BlockKind::BlueCandleCake => "blue_candle_cake", + BlockKind::BrownCandleCake => "brown_candle_cake", + BlockKind::GreenCandleCake => "green_candle_cake", + BlockKind::RedCandleCake => "red_candle_cake", + BlockKind::BlackCandleCake => "black_candle_cake", + BlockKind::AmethystBlock => "amethyst_block", + BlockKind::BuddingAmethyst => "budding_amethyst", + BlockKind::AmethystCluster => "amethyst_cluster", + BlockKind::LargeAmethystBud => "large_amethyst_bud", + BlockKind::MediumAmethystBud => "medium_amethyst_bud", + BlockKind::SmallAmethystBud => "small_amethyst_bud", + BlockKind::Tuff => "tuff", + BlockKind::Calcite => "calcite", + BlockKind::TintedGlass => "tinted_glass", + BlockKind::PowderSnow => "powder_snow", + BlockKind::SculkSensor => "sculk_sensor", + BlockKind::OxidizedCopper => "oxidized_copper", + BlockKind::WeatheredCopper => "weathered_copper", + BlockKind::ExposedCopper => "exposed_copper", + BlockKind::CopperBlock => "copper_block", + BlockKind::CopperOre => "copper_ore", + BlockKind::DeepslateCopperOre => "deepslate_copper_ore", + BlockKind::OxidizedCutCopper => "oxidized_cut_copper", + BlockKind::WeatheredCutCopper => "weathered_cut_copper", + BlockKind::ExposedCutCopper => "exposed_cut_copper", + BlockKind::CutCopper => "cut_copper", + BlockKind::OxidizedCutCopperStairs => "oxidized_cut_copper_stairs", + BlockKind::WeatheredCutCopperStairs => "weathered_cut_copper_stairs", + BlockKind::ExposedCutCopperStairs => "exposed_cut_copper_stairs", + BlockKind::CutCopperStairs => "cut_copper_stairs", + BlockKind::OxidizedCutCopperSlab => "oxidized_cut_copper_slab", + BlockKind::WeatheredCutCopperSlab => "weathered_cut_copper_slab", + BlockKind::ExposedCutCopperSlab => "exposed_cut_copper_slab", + BlockKind::CutCopperSlab => "cut_copper_slab", + BlockKind::WaxedCopperBlock => "waxed_copper_block", + BlockKind::WaxedWeatheredCopper => "waxed_weathered_copper", + BlockKind::WaxedExposedCopper => "waxed_exposed_copper", + BlockKind::WaxedOxidizedCopper => "waxed_oxidized_copper", + BlockKind::WaxedOxidizedCutCopper => "waxed_oxidized_cut_copper", + BlockKind::WaxedWeatheredCutCopper => "waxed_weathered_cut_copper", + BlockKind::WaxedExposedCutCopper => "waxed_exposed_cut_copper", + BlockKind::WaxedCutCopper => "waxed_cut_copper", + BlockKind::WaxedOxidizedCutCopperStairs => "waxed_oxidized_cut_copper_stairs", + BlockKind::WaxedWeatheredCutCopperStairs => "waxed_weathered_cut_copper_stairs", + BlockKind::WaxedExposedCutCopperStairs => "waxed_exposed_cut_copper_stairs", + BlockKind::WaxedCutCopperStairs => "waxed_cut_copper_stairs", + BlockKind::WaxedOxidizedCutCopperSlab => "waxed_oxidized_cut_copper_slab", + BlockKind::WaxedWeatheredCutCopperSlab => "waxed_weathered_cut_copper_slab", + BlockKind::WaxedExposedCutCopperSlab => "waxed_exposed_cut_copper_slab", + BlockKind::WaxedCutCopperSlab => "waxed_cut_copper_slab", + BlockKind::LightningRod => "lightning_rod", + BlockKind::PointedDripstone => "pointed_dripstone", + BlockKind::DripstoneBlock => "dripstone_block", + BlockKind::CaveVines => "cave_vines", + BlockKind::CaveVinesPlant => "cave_vines_plant", + BlockKind::SporeBlossom => "spore_blossom", + BlockKind::Azalea => "azalea", + BlockKind::FloweringAzalea => "flowering_azalea", + BlockKind::MossCarpet => "moss_carpet", + BlockKind::MossBlock => "moss_block", + BlockKind::BigDripleaf => "big_dripleaf", + BlockKind::BigDripleafStem => "big_dripleaf_stem", + BlockKind::SmallDripleaf => "small_dripleaf", + BlockKind::HangingRoots => "hanging_roots", + BlockKind::RootedDirt => "rooted_dirt", + BlockKind::Deepslate => "deepslate", + BlockKind::CobbledDeepslate => "cobbled_deepslate", + BlockKind::CobbledDeepslateStairs => "cobbled_deepslate_stairs", + BlockKind::CobbledDeepslateSlab => "cobbled_deepslate_slab", + BlockKind::CobbledDeepslateWall => "cobbled_deepslate_wall", + BlockKind::PolishedDeepslate => "polished_deepslate", + BlockKind::PolishedDeepslateStairs => "polished_deepslate_stairs", + BlockKind::PolishedDeepslateSlab => "polished_deepslate_slab", + BlockKind::PolishedDeepslateWall => "polished_deepslate_wall", + BlockKind::DeepslateTiles => "deepslate_tiles", + BlockKind::DeepslateTileStairs => "deepslate_tile_stairs", + BlockKind::DeepslateTileSlab => "deepslate_tile_slab", + BlockKind::DeepslateTileWall => "deepslate_tile_wall", + BlockKind::DeepslateBricks => "deepslate_bricks", + BlockKind::DeepslateBrickStairs => "deepslate_brick_stairs", + BlockKind::DeepslateBrickSlab => "deepslate_brick_slab", + BlockKind::DeepslateBrickWall => "deepslate_brick_wall", + BlockKind::ChiseledDeepslate => "chiseled_deepslate", + BlockKind::CrackedDeepslateBricks => "cracked_deepslate_bricks", + BlockKind::CrackedDeepslateTiles => "cracked_deepslate_tiles", + BlockKind::InfestedDeepslate => "infested_deepslate", + BlockKind::SmoothBasalt => "smooth_basalt", + BlockKind::RawIronBlock => "raw_iron_block", + BlockKind::RawCopperBlock => "raw_copper_block", + BlockKind::RawGoldBlock => "raw_gold_block", + BlockKind::PottedAzaleaBush => "potted_azalea_bush", + BlockKind::PottedFloweringAzaleaBush => "potted_flowering_azalea_bush", + } + } + #[doc = "Gets a `BlockKind` by its `name`."] + #[inline] + pub fn from_name(name: &str) -> Option { + match name { + "air" => Some(BlockKind::Air), + "stone" => Some(BlockKind::Stone), + "granite" => Some(BlockKind::Granite), + "polished_granite" => Some(BlockKind::PolishedGranite), + "diorite" => Some(BlockKind::Diorite), + "polished_diorite" => Some(BlockKind::PolishedDiorite), + "andesite" => Some(BlockKind::Andesite), + "polished_andesite" => Some(BlockKind::PolishedAndesite), + "grass_block" => Some(BlockKind::GrassBlock), + "dirt" => Some(BlockKind::Dirt), + "coarse_dirt" => Some(BlockKind::CoarseDirt), + "podzol" => Some(BlockKind::Podzol), + "cobblestone" => Some(BlockKind::Cobblestone), + "oak_planks" => Some(BlockKind::OakPlanks), + "spruce_planks" => Some(BlockKind::SprucePlanks), + "birch_planks" => Some(BlockKind::BirchPlanks), + "jungle_planks" => Some(BlockKind::JunglePlanks), + "acacia_planks" => Some(BlockKind::AcaciaPlanks), + "dark_oak_planks" => Some(BlockKind::DarkOakPlanks), + "oak_sapling" => Some(BlockKind::OakSapling), + "spruce_sapling" => Some(BlockKind::SpruceSapling), + "birch_sapling" => Some(BlockKind::BirchSapling), + "jungle_sapling" => Some(BlockKind::JungleSapling), + "acacia_sapling" => Some(BlockKind::AcaciaSapling), + "dark_oak_sapling" => Some(BlockKind::DarkOakSapling), + "bedrock" => Some(BlockKind::Bedrock), + "water" => Some(BlockKind::Water), + "lava" => Some(BlockKind::Lava), + "sand" => Some(BlockKind::Sand), + "red_sand" => Some(BlockKind::RedSand), + "gravel" => Some(BlockKind::Gravel), + "gold_ore" => Some(BlockKind::GoldOre), + "deepslate_gold_ore" => Some(BlockKind::DeepslateGoldOre), + "iron_ore" => Some(BlockKind::IronOre), + "deepslate_iron_ore" => Some(BlockKind::DeepslateIronOre), + "coal_ore" => Some(BlockKind::CoalOre), + "deepslate_coal_ore" => Some(BlockKind::DeepslateCoalOre), + "nether_gold_ore" => Some(BlockKind::NetherGoldOre), + "oak_log" => Some(BlockKind::OakLog), + "spruce_log" => Some(BlockKind::SpruceLog), + "birch_log" => Some(BlockKind::BirchLog), + "jungle_log" => Some(BlockKind::JungleLog), + "acacia_log" => Some(BlockKind::AcaciaLog), + "dark_oak_log" => Some(BlockKind::DarkOakLog), + "stripped_spruce_log" => Some(BlockKind::StrippedSpruceLog), + "stripped_birch_log" => Some(BlockKind::StrippedBirchLog), + "stripped_jungle_log" => Some(BlockKind::StrippedJungleLog), + "stripped_acacia_log" => Some(BlockKind::StrippedAcaciaLog), + "stripped_dark_oak_log" => Some(BlockKind::StrippedDarkOakLog), + "stripped_oak_log" => Some(BlockKind::StrippedOakLog), + "oak_wood" => Some(BlockKind::OakWood), + "spruce_wood" => Some(BlockKind::SpruceWood), + "birch_wood" => Some(BlockKind::BirchWood), + "jungle_wood" => Some(BlockKind::JungleWood), + "acacia_wood" => Some(BlockKind::AcaciaWood), + "dark_oak_wood" => Some(BlockKind::DarkOakWood), + "stripped_oak_wood" => Some(BlockKind::StrippedOakWood), + "stripped_spruce_wood" => Some(BlockKind::StrippedSpruceWood), + "stripped_birch_wood" => Some(BlockKind::StrippedBirchWood), + "stripped_jungle_wood" => Some(BlockKind::StrippedJungleWood), + "stripped_acacia_wood" => Some(BlockKind::StrippedAcaciaWood), + "stripped_dark_oak_wood" => Some(BlockKind::StrippedDarkOakWood), + "oak_leaves" => Some(BlockKind::OakLeaves), + "spruce_leaves" => Some(BlockKind::SpruceLeaves), + "birch_leaves" => Some(BlockKind::BirchLeaves), + "jungle_leaves" => Some(BlockKind::JungleLeaves), + "acacia_leaves" => Some(BlockKind::AcaciaLeaves), + "dark_oak_leaves" => Some(BlockKind::DarkOakLeaves), + "azalea_leaves" => Some(BlockKind::AzaleaLeaves), + "flowering_azalea_leaves" => Some(BlockKind::FloweringAzaleaLeaves), + "sponge" => Some(BlockKind::Sponge), + "wet_sponge" => Some(BlockKind::WetSponge), + "glass" => Some(BlockKind::Glass), + "lapis_ore" => Some(BlockKind::LapisOre), + "deepslate_lapis_ore" => Some(BlockKind::DeepslateLapisOre), + "lapis_block" => Some(BlockKind::LapisBlock), + "dispenser" => Some(BlockKind::Dispenser), + "sandstone" => Some(BlockKind::Sandstone), + "chiseled_sandstone" => Some(BlockKind::ChiseledSandstone), + "cut_sandstone" => Some(BlockKind::CutSandstone), + "note_block" => Some(BlockKind::NoteBlock), + "white_bed" => Some(BlockKind::WhiteBed), + "orange_bed" => Some(BlockKind::OrangeBed), + "magenta_bed" => Some(BlockKind::MagentaBed), + "light_blue_bed" => Some(BlockKind::LightBlueBed), + "yellow_bed" => Some(BlockKind::YellowBed), + "lime_bed" => Some(BlockKind::LimeBed), + "pink_bed" => Some(BlockKind::PinkBed), + "gray_bed" => Some(BlockKind::GrayBed), + "light_gray_bed" => Some(BlockKind::LightGrayBed), + "cyan_bed" => Some(BlockKind::CyanBed), + "purple_bed" => Some(BlockKind::PurpleBed), + "blue_bed" => Some(BlockKind::BlueBed), + "brown_bed" => Some(BlockKind::BrownBed), + "green_bed" => Some(BlockKind::GreenBed), + "red_bed" => Some(BlockKind::RedBed), + "black_bed" => Some(BlockKind::BlackBed), + "powered_rail" => Some(BlockKind::PoweredRail), + "detector_rail" => Some(BlockKind::DetectorRail), + "sticky_piston" => Some(BlockKind::StickyPiston), + "cobweb" => Some(BlockKind::Cobweb), + "grass" => Some(BlockKind::Grass), + "fern" => Some(BlockKind::Fern), + "dead_bush" => Some(BlockKind::DeadBush), + "seagrass" => Some(BlockKind::Seagrass), + "tall_seagrass" => Some(BlockKind::TallSeagrass), + "piston" => Some(BlockKind::Piston), + "piston_head" => Some(BlockKind::PistonHead), + "white_wool" => Some(BlockKind::WhiteWool), + "orange_wool" => Some(BlockKind::OrangeWool), + "magenta_wool" => Some(BlockKind::MagentaWool), + "light_blue_wool" => Some(BlockKind::LightBlueWool), + "yellow_wool" => Some(BlockKind::YellowWool), + "lime_wool" => Some(BlockKind::LimeWool), + "pink_wool" => Some(BlockKind::PinkWool), + "gray_wool" => Some(BlockKind::GrayWool), + "light_gray_wool" => Some(BlockKind::LightGrayWool), + "cyan_wool" => Some(BlockKind::CyanWool), + "purple_wool" => Some(BlockKind::PurpleWool), + "blue_wool" => Some(BlockKind::BlueWool), + "brown_wool" => Some(BlockKind::BrownWool), + "green_wool" => Some(BlockKind::GreenWool), + "red_wool" => Some(BlockKind::RedWool), + "black_wool" => Some(BlockKind::BlackWool), + "moving_piston" => Some(BlockKind::MovingPiston), + "dandelion" => Some(BlockKind::Dandelion), + "poppy" => Some(BlockKind::Poppy), + "blue_orchid" => Some(BlockKind::BlueOrchid), + "allium" => Some(BlockKind::Allium), + "azure_bluet" => Some(BlockKind::AzureBluet), + "red_tulip" => Some(BlockKind::RedTulip), + "orange_tulip" => Some(BlockKind::OrangeTulip), + "white_tulip" => Some(BlockKind::WhiteTulip), + "pink_tulip" => Some(BlockKind::PinkTulip), + "oxeye_daisy" => Some(BlockKind::OxeyeDaisy), + "cornflower" => Some(BlockKind::Cornflower), + "wither_rose" => Some(BlockKind::WitherRose), + "lily_of_the_valley" => Some(BlockKind::LilyOfTheValley), + "brown_mushroom" => Some(BlockKind::BrownMushroom), + "red_mushroom" => Some(BlockKind::RedMushroom), + "gold_block" => Some(BlockKind::GoldBlock), + "iron_block" => Some(BlockKind::IronBlock), + "bricks" => Some(BlockKind::Bricks), + "tnt" => Some(BlockKind::Tnt), + "bookshelf" => Some(BlockKind::Bookshelf), + "mossy_cobblestone" => Some(BlockKind::MossyCobblestone), + "obsidian" => Some(BlockKind::Obsidian), + "torch" => Some(BlockKind::Torch), + "wall_torch" => Some(BlockKind::WallTorch), + "fire" => Some(BlockKind::Fire), + "soul_fire" => Some(BlockKind::SoulFire), + "spawner" => Some(BlockKind::Spawner), + "oak_stairs" => Some(BlockKind::OakStairs), + "chest" => Some(BlockKind::Chest), + "redstone_wire" => Some(BlockKind::RedstoneWire), + "diamond_ore" => Some(BlockKind::DiamondOre), + "deepslate_diamond_ore" => Some(BlockKind::DeepslateDiamondOre), + "diamond_block" => Some(BlockKind::DiamondBlock), + "crafting_table" => Some(BlockKind::CraftingTable), + "wheat" => Some(BlockKind::Wheat), + "farmland" => Some(BlockKind::Farmland), + "furnace" => Some(BlockKind::Furnace), + "oak_sign" => Some(BlockKind::OakSign), + "spruce_sign" => Some(BlockKind::SpruceSign), + "birch_sign" => Some(BlockKind::BirchSign), + "acacia_sign" => Some(BlockKind::AcaciaSign), + "jungle_sign" => Some(BlockKind::JungleSign), + "dark_oak_sign" => Some(BlockKind::DarkOakSign), + "oak_door" => Some(BlockKind::OakDoor), + "ladder" => Some(BlockKind::Ladder), + "rail" => Some(BlockKind::Rail), + "cobblestone_stairs" => Some(BlockKind::CobblestoneStairs), + "oak_wall_sign" => Some(BlockKind::OakWallSign), + "spruce_wall_sign" => Some(BlockKind::SpruceWallSign), + "birch_wall_sign" => Some(BlockKind::BirchWallSign), + "acacia_wall_sign" => Some(BlockKind::AcaciaWallSign), + "jungle_wall_sign" => Some(BlockKind::JungleWallSign), + "dark_oak_wall_sign" => Some(BlockKind::DarkOakWallSign), + "lever" => Some(BlockKind::Lever), + "stone_pressure_plate" => Some(BlockKind::StonePressurePlate), + "iron_door" => Some(BlockKind::IronDoor), + "oak_pressure_plate" => Some(BlockKind::OakPressurePlate), + "spruce_pressure_plate" => Some(BlockKind::SprucePressurePlate), + "birch_pressure_plate" => Some(BlockKind::BirchPressurePlate), + "jungle_pressure_plate" => Some(BlockKind::JunglePressurePlate), + "acacia_pressure_plate" => Some(BlockKind::AcaciaPressurePlate), + "dark_oak_pressure_plate" => Some(BlockKind::DarkOakPressurePlate), + "redstone_ore" => Some(BlockKind::RedstoneOre), + "deepslate_redstone_ore" => Some(BlockKind::DeepslateRedstoneOre), + "redstone_torch" => Some(BlockKind::RedstoneTorch), + "redstone_wall_torch" => Some(BlockKind::RedstoneWallTorch), + "stone_button" => Some(BlockKind::StoneButton), + "snow" => Some(BlockKind::Snow), + "ice" => Some(BlockKind::Ice), + "snow_block" => Some(BlockKind::SnowBlock), + "cactus" => Some(BlockKind::Cactus), + "clay" => Some(BlockKind::Clay), + "sugar_cane" => Some(BlockKind::SugarCane), + "jukebox" => Some(BlockKind::Jukebox), + "oak_fence" => Some(BlockKind::OakFence), + "pumpkin" => Some(BlockKind::Pumpkin), + "netherrack" => Some(BlockKind::Netherrack), + "soul_sand" => Some(BlockKind::SoulSand), + "soul_soil" => Some(BlockKind::SoulSoil), + "basalt" => Some(BlockKind::Basalt), + "polished_basalt" => Some(BlockKind::PolishedBasalt), + "soul_torch" => Some(BlockKind::SoulTorch), + "soul_wall_torch" => Some(BlockKind::SoulWallTorch), + "glowstone" => Some(BlockKind::Glowstone), + "nether_portal" => Some(BlockKind::NetherPortal), + "carved_pumpkin" => Some(BlockKind::CarvedPumpkin), + "jack_o_lantern" => Some(BlockKind::JackOLantern), + "cake" => Some(BlockKind::Cake), + "repeater" => Some(BlockKind::Repeater), + "white_stained_glass" => Some(BlockKind::WhiteStainedGlass), + "orange_stained_glass" => Some(BlockKind::OrangeStainedGlass), + "magenta_stained_glass" => Some(BlockKind::MagentaStainedGlass), + "light_blue_stained_glass" => Some(BlockKind::LightBlueStainedGlass), + "yellow_stained_glass" => Some(BlockKind::YellowStainedGlass), + "lime_stained_glass" => Some(BlockKind::LimeStainedGlass), + "pink_stained_glass" => Some(BlockKind::PinkStainedGlass), + "gray_stained_glass" => Some(BlockKind::GrayStainedGlass), + "light_gray_stained_glass" => Some(BlockKind::LightGrayStainedGlass), + "cyan_stained_glass" => Some(BlockKind::CyanStainedGlass), + "purple_stained_glass" => Some(BlockKind::PurpleStainedGlass), + "blue_stained_glass" => Some(BlockKind::BlueStainedGlass), + "brown_stained_glass" => Some(BlockKind::BrownStainedGlass), + "green_stained_glass" => Some(BlockKind::GreenStainedGlass), + "red_stained_glass" => Some(BlockKind::RedStainedGlass), + "black_stained_glass" => Some(BlockKind::BlackStainedGlass), + "oak_trapdoor" => Some(BlockKind::OakTrapdoor), + "spruce_trapdoor" => Some(BlockKind::SpruceTrapdoor), + "birch_trapdoor" => Some(BlockKind::BirchTrapdoor), + "jungle_trapdoor" => Some(BlockKind::JungleTrapdoor), + "acacia_trapdoor" => Some(BlockKind::AcaciaTrapdoor), + "dark_oak_trapdoor" => Some(BlockKind::DarkOakTrapdoor), + "stone_bricks" => Some(BlockKind::StoneBricks), + "mossy_stone_bricks" => Some(BlockKind::MossyStoneBricks), + "cracked_stone_bricks" => Some(BlockKind::CrackedStoneBricks), + "chiseled_stone_bricks" => Some(BlockKind::ChiseledStoneBricks), + "infested_stone" => Some(BlockKind::InfestedStone), + "infested_cobblestone" => Some(BlockKind::InfestedCobblestone), + "infested_stone_bricks" => Some(BlockKind::InfestedStoneBricks), + "infested_mossy_stone_bricks" => Some(BlockKind::InfestedMossyStoneBricks), + "infested_cracked_stone_bricks" => Some(BlockKind::InfestedCrackedStoneBricks), + "infested_chiseled_stone_bricks" => Some(BlockKind::InfestedChiseledStoneBricks), + "brown_mushroom_block" => Some(BlockKind::BrownMushroomBlock), + "red_mushroom_block" => Some(BlockKind::RedMushroomBlock), + "mushroom_stem" => Some(BlockKind::MushroomStem), + "iron_bars" => Some(BlockKind::IronBars), + "chain" => Some(BlockKind::Chain), + "glass_pane" => Some(BlockKind::GlassPane), + "melon" => Some(BlockKind::Melon), + "attached_pumpkin_stem" => Some(BlockKind::AttachedPumpkinStem), + "attached_melon_stem" => Some(BlockKind::AttachedMelonStem), + "pumpkin_stem" => Some(BlockKind::PumpkinStem), + "melon_stem" => Some(BlockKind::MelonStem), + "vine" => Some(BlockKind::Vine), + "glow_lichen" => Some(BlockKind::GlowLichen), + "oak_fence_gate" => Some(BlockKind::OakFenceGate), + "brick_stairs" => Some(BlockKind::BrickStairs), + "stone_brick_stairs" => Some(BlockKind::StoneBrickStairs), + "mycelium" => Some(BlockKind::Mycelium), + "lily_pad" => Some(BlockKind::LilyPad), + "nether_bricks" => Some(BlockKind::NetherBricks), + "nether_brick_fence" => Some(BlockKind::NetherBrickFence), + "nether_brick_stairs" => Some(BlockKind::NetherBrickStairs), + "nether_wart" => Some(BlockKind::NetherWart), + "enchanting_table" => Some(BlockKind::EnchantingTable), + "brewing_stand" => Some(BlockKind::BrewingStand), + "cauldron" => Some(BlockKind::Cauldron), + "water_cauldron" => Some(BlockKind::WaterCauldron), + "lava_cauldron" => Some(BlockKind::LavaCauldron), + "powder_snow_cauldron" => Some(BlockKind::PowderSnowCauldron), + "end_portal" => Some(BlockKind::EndPortal), + "end_portal_frame" => Some(BlockKind::EndPortalFrame), + "end_stone" => Some(BlockKind::EndStone), + "dragon_egg" => Some(BlockKind::DragonEgg), + "redstone_lamp" => Some(BlockKind::RedstoneLamp), + "cocoa" => Some(BlockKind::Cocoa), + "sandstone_stairs" => Some(BlockKind::SandstoneStairs), + "emerald_ore" => Some(BlockKind::EmeraldOre), + "deepslate_emerald_ore" => Some(BlockKind::DeepslateEmeraldOre), + "ender_chest" => Some(BlockKind::EnderChest), + "tripwire_hook" => Some(BlockKind::TripwireHook), + "tripwire" => Some(BlockKind::Tripwire), + "emerald_block" => Some(BlockKind::EmeraldBlock), + "spruce_stairs" => Some(BlockKind::SpruceStairs), + "birch_stairs" => Some(BlockKind::BirchStairs), + "jungle_stairs" => Some(BlockKind::JungleStairs), + "command_block" => Some(BlockKind::CommandBlock), + "beacon" => Some(BlockKind::Beacon), + "cobblestone_wall" => Some(BlockKind::CobblestoneWall), + "mossy_cobblestone_wall" => Some(BlockKind::MossyCobblestoneWall), + "flower_pot" => Some(BlockKind::FlowerPot), + "potted_oak_sapling" => Some(BlockKind::PottedOakSapling), + "potted_spruce_sapling" => Some(BlockKind::PottedSpruceSapling), + "potted_birch_sapling" => Some(BlockKind::PottedBirchSapling), + "potted_jungle_sapling" => Some(BlockKind::PottedJungleSapling), + "potted_acacia_sapling" => Some(BlockKind::PottedAcaciaSapling), + "potted_dark_oak_sapling" => Some(BlockKind::PottedDarkOakSapling), + "potted_fern" => Some(BlockKind::PottedFern), + "potted_dandelion" => Some(BlockKind::PottedDandelion), + "potted_poppy" => Some(BlockKind::PottedPoppy), + "potted_blue_orchid" => Some(BlockKind::PottedBlueOrchid), + "potted_allium" => Some(BlockKind::PottedAllium), + "potted_azure_bluet" => Some(BlockKind::PottedAzureBluet), + "potted_red_tulip" => Some(BlockKind::PottedRedTulip), + "potted_orange_tulip" => Some(BlockKind::PottedOrangeTulip), + "potted_white_tulip" => Some(BlockKind::PottedWhiteTulip), + "potted_pink_tulip" => Some(BlockKind::PottedPinkTulip), + "potted_oxeye_daisy" => Some(BlockKind::PottedOxeyeDaisy), + "potted_cornflower" => Some(BlockKind::PottedCornflower), + "potted_lily_of_the_valley" => Some(BlockKind::PottedLilyOfTheValley), + "potted_wither_rose" => Some(BlockKind::PottedWitherRose), + "potted_red_mushroom" => Some(BlockKind::PottedRedMushroom), + "potted_brown_mushroom" => Some(BlockKind::PottedBrownMushroom), + "potted_dead_bush" => Some(BlockKind::PottedDeadBush), + "potted_cactus" => Some(BlockKind::PottedCactus), + "carrots" => Some(BlockKind::Carrots), + "potatoes" => Some(BlockKind::Potatoes), + "oak_button" => Some(BlockKind::OakButton), + "spruce_button" => Some(BlockKind::SpruceButton), + "birch_button" => Some(BlockKind::BirchButton), + "jungle_button" => Some(BlockKind::JungleButton), + "acacia_button" => Some(BlockKind::AcaciaButton), + "dark_oak_button" => Some(BlockKind::DarkOakButton), + "skeleton_skull" => Some(BlockKind::SkeletonSkull), + "skeleton_wall_skull" => Some(BlockKind::SkeletonWallSkull), + "wither_skeleton_skull" => Some(BlockKind::WitherSkeletonSkull), + "wither_skeleton_wall_skull" => Some(BlockKind::WitherSkeletonWallSkull), + "zombie_head" => Some(BlockKind::ZombieHead), + "zombie_wall_head" => Some(BlockKind::ZombieWallHead), + "player_head" => Some(BlockKind::PlayerHead), + "player_wall_head" => Some(BlockKind::PlayerWallHead), + "creeper_head" => Some(BlockKind::CreeperHead), + "creeper_wall_head" => Some(BlockKind::CreeperWallHead), + "dragon_head" => Some(BlockKind::DragonHead), + "dragon_wall_head" => Some(BlockKind::DragonWallHead), + "anvil" => Some(BlockKind::Anvil), + "chipped_anvil" => Some(BlockKind::ChippedAnvil), + "damaged_anvil" => Some(BlockKind::DamagedAnvil), + "trapped_chest" => Some(BlockKind::TrappedChest), + "light_weighted_pressure_plate" => Some(BlockKind::LightWeightedPressurePlate), + "heavy_weighted_pressure_plate" => Some(BlockKind::HeavyWeightedPressurePlate), + "comparator" => Some(BlockKind::Comparator), + "daylight_detector" => Some(BlockKind::DaylightDetector), + "redstone_block" => Some(BlockKind::RedstoneBlock), + "nether_quartz_ore" => Some(BlockKind::NetherQuartzOre), + "hopper" => Some(BlockKind::Hopper), + "quartz_block" => Some(BlockKind::QuartzBlock), + "chiseled_quartz_block" => Some(BlockKind::ChiseledQuartzBlock), + "quartz_pillar" => Some(BlockKind::QuartzPillar), + "quartz_stairs" => Some(BlockKind::QuartzStairs), + "activator_rail" => Some(BlockKind::ActivatorRail), + "dropper" => Some(BlockKind::Dropper), + "white_terracotta" => Some(BlockKind::WhiteTerracotta), + "orange_terracotta" => Some(BlockKind::OrangeTerracotta), + "magenta_terracotta" => Some(BlockKind::MagentaTerracotta), + "light_blue_terracotta" => Some(BlockKind::LightBlueTerracotta), + "yellow_terracotta" => Some(BlockKind::YellowTerracotta), + "lime_terracotta" => Some(BlockKind::LimeTerracotta), + "pink_terracotta" => Some(BlockKind::PinkTerracotta), + "gray_terracotta" => Some(BlockKind::GrayTerracotta), + "light_gray_terracotta" => Some(BlockKind::LightGrayTerracotta), + "cyan_terracotta" => Some(BlockKind::CyanTerracotta), + "purple_terracotta" => Some(BlockKind::PurpleTerracotta), + "blue_terracotta" => Some(BlockKind::BlueTerracotta), + "brown_terracotta" => Some(BlockKind::BrownTerracotta), + "green_terracotta" => Some(BlockKind::GreenTerracotta), + "red_terracotta" => Some(BlockKind::RedTerracotta), + "black_terracotta" => Some(BlockKind::BlackTerracotta), + "white_stained_glass_pane" => Some(BlockKind::WhiteStainedGlassPane), + "orange_stained_glass_pane" => Some(BlockKind::OrangeStainedGlassPane), + "magenta_stained_glass_pane" => Some(BlockKind::MagentaStainedGlassPane), + "light_blue_stained_glass_pane" => Some(BlockKind::LightBlueStainedGlassPane), + "yellow_stained_glass_pane" => Some(BlockKind::YellowStainedGlassPane), + "lime_stained_glass_pane" => Some(BlockKind::LimeStainedGlassPane), + "pink_stained_glass_pane" => Some(BlockKind::PinkStainedGlassPane), + "gray_stained_glass_pane" => Some(BlockKind::GrayStainedGlassPane), + "light_gray_stained_glass_pane" => Some(BlockKind::LightGrayStainedGlassPane), + "cyan_stained_glass_pane" => Some(BlockKind::CyanStainedGlassPane), + "purple_stained_glass_pane" => Some(BlockKind::PurpleStainedGlassPane), + "blue_stained_glass_pane" => Some(BlockKind::BlueStainedGlassPane), + "brown_stained_glass_pane" => Some(BlockKind::BrownStainedGlassPane), + "green_stained_glass_pane" => Some(BlockKind::GreenStainedGlassPane), + "red_stained_glass_pane" => Some(BlockKind::RedStainedGlassPane), + "black_stained_glass_pane" => Some(BlockKind::BlackStainedGlassPane), + "acacia_stairs" => Some(BlockKind::AcaciaStairs), + "dark_oak_stairs" => Some(BlockKind::DarkOakStairs), + "slime_block" => Some(BlockKind::SlimeBlock), + "barrier" => Some(BlockKind::Barrier), + "light" => Some(BlockKind::Light), + "iron_trapdoor" => Some(BlockKind::IronTrapdoor), + "prismarine" => Some(BlockKind::Prismarine), + "prismarine_bricks" => Some(BlockKind::PrismarineBricks), + "dark_prismarine" => Some(BlockKind::DarkPrismarine), + "prismarine_stairs" => Some(BlockKind::PrismarineStairs), + "prismarine_brick_stairs" => Some(BlockKind::PrismarineBrickStairs), + "dark_prismarine_stairs" => Some(BlockKind::DarkPrismarineStairs), + "prismarine_slab" => Some(BlockKind::PrismarineSlab), + "prismarine_brick_slab" => Some(BlockKind::PrismarineBrickSlab), + "dark_prismarine_slab" => Some(BlockKind::DarkPrismarineSlab), + "sea_lantern" => Some(BlockKind::SeaLantern), + "hay_block" => Some(BlockKind::HayBlock), + "white_carpet" => Some(BlockKind::WhiteCarpet), + "orange_carpet" => Some(BlockKind::OrangeCarpet), + "magenta_carpet" => Some(BlockKind::MagentaCarpet), + "light_blue_carpet" => Some(BlockKind::LightBlueCarpet), + "yellow_carpet" => Some(BlockKind::YellowCarpet), + "lime_carpet" => Some(BlockKind::LimeCarpet), + "pink_carpet" => Some(BlockKind::PinkCarpet), + "gray_carpet" => Some(BlockKind::GrayCarpet), + "light_gray_carpet" => Some(BlockKind::LightGrayCarpet), + "cyan_carpet" => Some(BlockKind::CyanCarpet), + "purple_carpet" => Some(BlockKind::PurpleCarpet), + "blue_carpet" => Some(BlockKind::BlueCarpet), + "brown_carpet" => Some(BlockKind::BrownCarpet), + "green_carpet" => Some(BlockKind::GreenCarpet), + "red_carpet" => Some(BlockKind::RedCarpet), + "black_carpet" => Some(BlockKind::BlackCarpet), + "terracotta" => Some(BlockKind::Terracotta), + "coal_block" => Some(BlockKind::CoalBlock), + "packed_ice" => Some(BlockKind::PackedIce), + "sunflower" => Some(BlockKind::Sunflower), + "lilac" => Some(BlockKind::Lilac), + "rose_bush" => Some(BlockKind::RoseBush), + "peony" => Some(BlockKind::Peony), + "tall_grass" => Some(BlockKind::TallGrass), + "large_fern" => Some(BlockKind::LargeFern), + "white_banner" => Some(BlockKind::WhiteBanner), + "orange_banner" => Some(BlockKind::OrangeBanner), + "magenta_banner" => Some(BlockKind::MagentaBanner), + "light_blue_banner" => Some(BlockKind::LightBlueBanner), + "yellow_banner" => Some(BlockKind::YellowBanner), + "lime_banner" => Some(BlockKind::LimeBanner), + "pink_banner" => Some(BlockKind::PinkBanner), + "gray_banner" => Some(BlockKind::GrayBanner), + "light_gray_banner" => Some(BlockKind::LightGrayBanner), + "cyan_banner" => Some(BlockKind::CyanBanner), + "purple_banner" => Some(BlockKind::PurpleBanner), + "blue_banner" => Some(BlockKind::BlueBanner), + "brown_banner" => Some(BlockKind::BrownBanner), + "green_banner" => Some(BlockKind::GreenBanner), + "red_banner" => Some(BlockKind::RedBanner), + "black_banner" => Some(BlockKind::BlackBanner), + "white_wall_banner" => Some(BlockKind::WhiteWallBanner), + "orange_wall_banner" => Some(BlockKind::OrangeWallBanner), + "magenta_wall_banner" => Some(BlockKind::MagentaWallBanner), + "light_blue_wall_banner" => Some(BlockKind::LightBlueWallBanner), + "yellow_wall_banner" => Some(BlockKind::YellowWallBanner), + "lime_wall_banner" => Some(BlockKind::LimeWallBanner), + "pink_wall_banner" => Some(BlockKind::PinkWallBanner), + "gray_wall_banner" => Some(BlockKind::GrayWallBanner), + "light_gray_wall_banner" => Some(BlockKind::LightGrayWallBanner), + "cyan_wall_banner" => Some(BlockKind::CyanWallBanner), + "purple_wall_banner" => Some(BlockKind::PurpleWallBanner), + "blue_wall_banner" => Some(BlockKind::BlueWallBanner), + "brown_wall_banner" => Some(BlockKind::BrownWallBanner), + "green_wall_banner" => Some(BlockKind::GreenWallBanner), + "red_wall_banner" => Some(BlockKind::RedWallBanner), + "black_wall_banner" => Some(BlockKind::BlackWallBanner), + "red_sandstone" => Some(BlockKind::RedSandstone), + "chiseled_red_sandstone" => Some(BlockKind::ChiseledRedSandstone), + "cut_red_sandstone" => Some(BlockKind::CutRedSandstone), + "red_sandstone_stairs" => Some(BlockKind::RedSandstoneStairs), + "oak_slab" => Some(BlockKind::OakSlab), + "spruce_slab" => Some(BlockKind::SpruceSlab), + "birch_slab" => Some(BlockKind::BirchSlab), + "jungle_slab" => Some(BlockKind::JungleSlab), + "acacia_slab" => Some(BlockKind::AcaciaSlab), + "dark_oak_slab" => Some(BlockKind::DarkOakSlab), + "stone_slab" => Some(BlockKind::StoneSlab), + "smooth_stone_slab" => Some(BlockKind::SmoothStoneSlab), + "sandstone_slab" => Some(BlockKind::SandstoneSlab), + "cut_sandstone_slab" => Some(BlockKind::CutSandstoneSlab), + "petrified_oak_slab" => Some(BlockKind::PetrifiedOakSlab), + "cobblestone_slab" => Some(BlockKind::CobblestoneSlab), + "brick_slab" => Some(BlockKind::BrickSlab), + "stone_brick_slab" => Some(BlockKind::StoneBrickSlab), + "nether_brick_slab" => Some(BlockKind::NetherBrickSlab), + "quartz_slab" => Some(BlockKind::QuartzSlab), + "red_sandstone_slab" => Some(BlockKind::RedSandstoneSlab), + "cut_red_sandstone_slab" => Some(BlockKind::CutRedSandstoneSlab), + "purpur_slab" => Some(BlockKind::PurpurSlab), + "smooth_stone" => Some(BlockKind::SmoothStone), + "smooth_sandstone" => Some(BlockKind::SmoothSandstone), + "smooth_quartz" => Some(BlockKind::SmoothQuartz), + "smooth_red_sandstone" => Some(BlockKind::SmoothRedSandstone), + "spruce_fence_gate" => Some(BlockKind::SpruceFenceGate), + "birch_fence_gate" => Some(BlockKind::BirchFenceGate), + "jungle_fence_gate" => Some(BlockKind::JungleFenceGate), + "acacia_fence_gate" => Some(BlockKind::AcaciaFenceGate), + "dark_oak_fence_gate" => Some(BlockKind::DarkOakFenceGate), + "spruce_fence" => Some(BlockKind::SpruceFence), + "birch_fence" => Some(BlockKind::BirchFence), + "jungle_fence" => Some(BlockKind::JungleFence), + "acacia_fence" => Some(BlockKind::AcaciaFence), + "dark_oak_fence" => Some(BlockKind::DarkOakFence), + "spruce_door" => Some(BlockKind::SpruceDoor), + "birch_door" => Some(BlockKind::BirchDoor), + "jungle_door" => Some(BlockKind::JungleDoor), + "acacia_door" => Some(BlockKind::AcaciaDoor), + "dark_oak_door" => Some(BlockKind::DarkOakDoor), + "end_rod" => Some(BlockKind::EndRod), + "chorus_plant" => Some(BlockKind::ChorusPlant), + "chorus_flower" => Some(BlockKind::ChorusFlower), + "purpur_block" => Some(BlockKind::PurpurBlock), + "purpur_pillar" => Some(BlockKind::PurpurPillar), + "purpur_stairs" => Some(BlockKind::PurpurStairs), + "end_stone_bricks" => Some(BlockKind::EndStoneBricks), + "beetroots" => Some(BlockKind::Beetroots), + "dirt_path" => Some(BlockKind::DirtPath), + "end_gateway" => Some(BlockKind::EndGateway), + "repeating_command_block" => Some(BlockKind::RepeatingCommandBlock), + "chain_command_block" => Some(BlockKind::ChainCommandBlock), + "frosted_ice" => Some(BlockKind::FrostedIce), + "magma_block" => Some(BlockKind::MagmaBlock), + "nether_wart_block" => Some(BlockKind::NetherWartBlock), + "red_nether_bricks" => Some(BlockKind::RedNetherBricks), + "bone_block" => Some(BlockKind::BoneBlock), + "structure_void" => Some(BlockKind::StructureVoid), + "observer" => Some(BlockKind::Observer), + "shulker_box" => Some(BlockKind::ShulkerBox), + "white_shulker_box" => Some(BlockKind::WhiteShulkerBox), + "orange_shulker_box" => Some(BlockKind::OrangeShulkerBox), + "magenta_shulker_box" => Some(BlockKind::MagentaShulkerBox), + "light_blue_shulker_box" => Some(BlockKind::LightBlueShulkerBox), + "yellow_shulker_box" => Some(BlockKind::YellowShulkerBox), + "lime_shulker_box" => Some(BlockKind::LimeShulkerBox), + "pink_shulker_box" => Some(BlockKind::PinkShulkerBox), + "gray_shulker_box" => Some(BlockKind::GrayShulkerBox), + "light_gray_shulker_box" => Some(BlockKind::LightGrayShulkerBox), + "cyan_shulker_box" => Some(BlockKind::CyanShulkerBox), + "purple_shulker_box" => Some(BlockKind::PurpleShulkerBox), + "blue_shulker_box" => Some(BlockKind::BlueShulkerBox), + "brown_shulker_box" => Some(BlockKind::BrownShulkerBox), + "green_shulker_box" => Some(BlockKind::GreenShulkerBox), + "red_shulker_box" => Some(BlockKind::RedShulkerBox), + "black_shulker_box" => Some(BlockKind::BlackShulkerBox), + "white_glazed_terracotta" => Some(BlockKind::WhiteGlazedTerracotta), + "orange_glazed_terracotta" => Some(BlockKind::OrangeGlazedTerracotta), + "magenta_glazed_terracotta" => Some(BlockKind::MagentaGlazedTerracotta), + "light_blue_glazed_terracotta" => Some(BlockKind::LightBlueGlazedTerracotta), + "yellow_glazed_terracotta" => Some(BlockKind::YellowGlazedTerracotta), + "lime_glazed_terracotta" => Some(BlockKind::LimeGlazedTerracotta), + "pink_glazed_terracotta" => Some(BlockKind::PinkGlazedTerracotta), + "gray_glazed_terracotta" => Some(BlockKind::GrayGlazedTerracotta), + "light_gray_glazed_terracotta" => Some(BlockKind::LightGrayGlazedTerracotta), + "cyan_glazed_terracotta" => Some(BlockKind::CyanGlazedTerracotta), + "purple_glazed_terracotta" => Some(BlockKind::PurpleGlazedTerracotta), + "blue_glazed_terracotta" => Some(BlockKind::BlueGlazedTerracotta), + "brown_glazed_terracotta" => Some(BlockKind::BrownGlazedTerracotta), + "green_glazed_terracotta" => Some(BlockKind::GreenGlazedTerracotta), + "red_glazed_terracotta" => Some(BlockKind::RedGlazedTerracotta), + "black_glazed_terracotta" => Some(BlockKind::BlackGlazedTerracotta), + "white_concrete" => Some(BlockKind::WhiteConcrete), + "orange_concrete" => Some(BlockKind::OrangeConcrete), + "magenta_concrete" => Some(BlockKind::MagentaConcrete), + "light_blue_concrete" => Some(BlockKind::LightBlueConcrete), + "yellow_concrete" => Some(BlockKind::YellowConcrete), + "lime_concrete" => Some(BlockKind::LimeConcrete), + "pink_concrete" => Some(BlockKind::PinkConcrete), + "gray_concrete" => Some(BlockKind::GrayConcrete), + "light_gray_concrete" => Some(BlockKind::LightGrayConcrete), + "cyan_concrete" => Some(BlockKind::CyanConcrete), + "purple_concrete" => Some(BlockKind::PurpleConcrete), + "blue_concrete" => Some(BlockKind::BlueConcrete), + "brown_concrete" => Some(BlockKind::BrownConcrete), + "green_concrete" => Some(BlockKind::GreenConcrete), + "red_concrete" => Some(BlockKind::RedConcrete), + "black_concrete" => Some(BlockKind::BlackConcrete), + "white_concrete_powder" => Some(BlockKind::WhiteConcretePowder), + "orange_concrete_powder" => Some(BlockKind::OrangeConcretePowder), + "magenta_concrete_powder" => Some(BlockKind::MagentaConcretePowder), + "light_blue_concrete_powder" => Some(BlockKind::LightBlueConcretePowder), + "yellow_concrete_powder" => Some(BlockKind::YellowConcretePowder), + "lime_concrete_powder" => Some(BlockKind::LimeConcretePowder), + "pink_concrete_powder" => Some(BlockKind::PinkConcretePowder), + "gray_concrete_powder" => Some(BlockKind::GrayConcretePowder), + "light_gray_concrete_powder" => Some(BlockKind::LightGrayConcretePowder), + "cyan_concrete_powder" => Some(BlockKind::CyanConcretePowder), + "purple_concrete_powder" => Some(BlockKind::PurpleConcretePowder), + "blue_concrete_powder" => Some(BlockKind::BlueConcretePowder), + "brown_concrete_powder" => Some(BlockKind::BrownConcretePowder), + "green_concrete_powder" => Some(BlockKind::GreenConcretePowder), + "red_concrete_powder" => Some(BlockKind::RedConcretePowder), + "black_concrete_powder" => Some(BlockKind::BlackConcretePowder), + "kelp" => Some(BlockKind::Kelp), + "kelp_plant" => Some(BlockKind::KelpPlant), + "dried_kelp_block" => Some(BlockKind::DriedKelpBlock), + "turtle_egg" => Some(BlockKind::TurtleEgg), + "dead_tube_coral_block" => Some(BlockKind::DeadTubeCoralBlock), + "dead_brain_coral_block" => Some(BlockKind::DeadBrainCoralBlock), + "dead_bubble_coral_block" => Some(BlockKind::DeadBubbleCoralBlock), + "dead_fire_coral_block" => Some(BlockKind::DeadFireCoralBlock), + "dead_horn_coral_block" => Some(BlockKind::DeadHornCoralBlock), + "tube_coral_block" => Some(BlockKind::TubeCoralBlock), + "brain_coral_block" => Some(BlockKind::BrainCoralBlock), + "bubble_coral_block" => Some(BlockKind::BubbleCoralBlock), + "fire_coral_block" => Some(BlockKind::FireCoralBlock), + "horn_coral_block" => Some(BlockKind::HornCoralBlock), + "dead_tube_coral" => Some(BlockKind::DeadTubeCoral), + "dead_brain_coral" => Some(BlockKind::DeadBrainCoral), + "dead_bubble_coral" => Some(BlockKind::DeadBubbleCoral), + "dead_fire_coral" => Some(BlockKind::DeadFireCoral), + "dead_horn_coral" => Some(BlockKind::DeadHornCoral), + "tube_coral" => Some(BlockKind::TubeCoral), + "brain_coral" => Some(BlockKind::BrainCoral), + "bubble_coral" => Some(BlockKind::BubbleCoral), + "fire_coral" => Some(BlockKind::FireCoral), + "horn_coral" => Some(BlockKind::HornCoral), + "dead_tube_coral_fan" => Some(BlockKind::DeadTubeCoralFan), + "dead_brain_coral_fan" => Some(BlockKind::DeadBrainCoralFan), + "dead_bubble_coral_fan" => Some(BlockKind::DeadBubbleCoralFan), + "dead_fire_coral_fan" => Some(BlockKind::DeadFireCoralFan), + "dead_horn_coral_fan" => Some(BlockKind::DeadHornCoralFan), + "tube_coral_fan" => Some(BlockKind::TubeCoralFan), + "brain_coral_fan" => Some(BlockKind::BrainCoralFan), + "bubble_coral_fan" => Some(BlockKind::BubbleCoralFan), + "fire_coral_fan" => Some(BlockKind::FireCoralFan), + "horn_coral_fan" => Some(BlockKind::HornCoralFan), + "dead_tube_coral_wall_fan" => Some(BlockKind::DeadTubeCoralWallFan), + "dead_brain_coral_wall_fan" => Some(BlockKind::DeadBrainCoralWallFan), + "dead_bubble_coral_wall_fan" => Some(BlockKind::DeadBubbleCoralWallFan), + "dead_fire_coral_wall_fan" => Some(BlockKind::DeadFireCoralWallFan), + "dead_horn_coral_wall_fan" => Some(BlockKind::DeadHornCoralWallFan), + "tube_coral_wall_fan" => Some(BlockKind::TubeCoralWallFan), + "brain_coral_wall_fan" => Some(BlockKind::BrainCoralWallFan), + "bubble_coral_wall_fan" => Some(BlockKind::BubbleCoralWallFan), + "fire_coral_wall_fan" => Some(BlockKind::FireCoralWallFan), + "horn_coral_wall_fan" => Some(BlockKind::HornCoralWallFan), + "sea_pickle" => Some(BlockKind::SeaPickle), + "blue_ice" => Some(BlockKind::BlueIce), + "conduit" => Some(BlockKind::Conduit), + "bamboo_sapling" => Some(BlockKind::BambooSapling), + "bamboo" => Some(BlockKind::Bamboo), + "potted_bamboo" => Some(BlockKind::PottedBamboo), + "void_air" => Some(BlockKind::VoidAir), + "cave_air" => Some(BlockKind::CaveAir), + "bubble_column" => Some(BlockKind::BubbleColumn), + "polished_granite_stairs" => Some(BlockKind::PolishedGraniteStairs), + "smooth_red_sandstone_stairs" => Some(BlockKind::SmoothRedSandstoneStairs), + "mossy_stone_brick_stairs" => Some(BlockKind::MossyStoneBrickStairs), + "polished_diorite_stairs" => Some(BlockKind::PolishedDioriteStairs), + "mossy_cobblestone_stairs" => Some(BlockKind::MossyCobblestoneStairs), + "end_stone_brick_stairs" => Some(BlockKind::EndStoneBrickStairs), + "stone_stairs" => Some(BlockKind::StoneStairs), + "smooth_sandstone_stairs" => Some(BlockKind::SmoothSandstoneStairs), + "smooth_quartz_stairs" => Some(BlockKind::SmoothQuartzStairs), + "granite_stairs" => Some(BlockKind::GraniteStairs), + "andesite_stairs" => Some(BlockKind::AndesiteStairs), + "red_nether_brick_stairs" => Some(BlockKind::RedNetherBrickStairs), + "polished_andesite_stairs" => Some(BlockKind::PolishedAndesiteStairs), + "diorite_stairs" => Some(BlockKind::DioriteStairs), + "polished_granite_slab" => Some(BlockKind::PolishedGraniteSlab), + "smooth_red_sandstone_slab" => Some(BlockKind::SmoothRedSandstoneSlab), + "mossy_stone_brick_slab" => Some(BlockKind::MossyStoneBrickSlab), + "polished_diorite_slab" => Some(BlockKind::PolishedDioriteSlab), + "mossy_cobblestone_slab" => Some(BlockKind::MossyCobblestoneSlab), + "end_stone_brick_slab" => Some(BlockKind::EndStoneBrickSlab), + "smooth_sandstone_slab" => Some(BlockKind::SmoothSandstoneSlab), + "smooth_quartz_slab" => Some(BlockKind::SmoothQuartzSlab), + "granite_slab" => Some(BlockKind::GraniteSlab), + "andesite_slab" => Some(BlockKind::AndesiteSlab), + "red_nether_brick_slab" => Some(BlockKind::RedNetherBrickSlab), + "polished_andesite_slab" => Some(BlockKind::PolishedAndesiteSlab), + "diorite_slab" => Some(BlockKind::DioriteSlab), + "brick_wall" => Some(BlockKind::BrickWall), + "prismarine_wall" => Some(BlockKind::PrismarineWall), + "red_sandstone_wall" => Some(BlockKind::RedSandstoneWall), + "mossy_stone_brick_wall" => Some(BlockKind::MossyStoneBrickWall), + "granite_wall" => Some(BlockKind::GraniteWall), + "stone_brick_wall" => Some(BlockKind::StoneBrickWall), + "nether_brick_wall" => Some(BlockKind::NetherBrickWall), + "andesite_wall" => Some(BlockKind::AndesiteWall), + "red_nether_brick_wall" => Some(BlockKind::RedNetherBrickWall), + "sandstone_wall" => Some(BlockKind::SandstoneWall), + "end_stone_brick_wall" => Some(BlockKind::EndStoneBrickWall), + "diorite_wall" => Some(BlockKind::DioriteWall), + "scaffolding" => Some(BlockKind::Scaffolding), + "loom" => Some(BlockKind::Loom), + "barrel" => Some(BlockKind::Barrel), + "smoker" => Some(BlockKind::Smoker), + "blast_furnace" => Some(BlockKind::BlastFurnace), + "cartography_table" => Some(BlockKind::CartographyTable), + "fletching_table" => Some(BlockKind::FletchingTable), + "grindstone" => Some(BlockKind::Grindstone), + "lectern" => Some(BlockKind::Lectern), + "smithing_table" => Some(BlockKind::SmithingTable), + "stonecutter" => Some(BlockKind::Stonecutter), + "bell" => Some(BlockKind::Bell), + "lantern" => Some(BlockKind::Lantern), + "soul_lantern" => Some(BlockKind::SoulLantern), + "campfire" => Some(BlockKind::Campfire), + "soul_campfire" => Some(BlockKind::SoulCampfire), + "sweet_berry_bush" => Some(BlockKind::SweetBerryBush), + "warped_stem" => Some(BlockKind::WarpedStem), + "stripped_warped_stem" => Some(BlockKind::StrippedWarpedStem), + "warped_hyphae" => Some(BlockKind::WarpedHyphae), + "stripped_warped_hyphae" => Some(BlockKind::StrippedWarpedHyphae), + "warped_nylium" => Some(BlockKind::WarpedNylium), + "warped_fungus" => Some(BlockKind::WarpedFungus), + "warped_wart_block" => Some(BlockKind::WarpedWartBlock), + "warped_roots" => Some(BlockKind::WarpedRoots), + "nether_sprouts" => Some(BlockKind::NetherSprouts), + "crimson_stem" => Some(BlockKind::CrimsonStem), + "stripped_crimson_stem" => Some(BlockKind::StrippedCrimsonStem), + "crimson_hyphae" => Some(BlockKind::CrimsonHyphae), + "stripped_crimson_hyphae" => Some(BlockKind::StrippedCrimsonHyphae), + "crimson_nylium" => Some(BlockKind::CrimsonNylium), + "crimson_fungus" => Some(BlockKind::CrimsonFungus), + "shroomlight" => Some(BlockKind::Shroomlight), + "weeping_vines" => Some(BlockKind::WeepingVines), + "weeping_vines_plant" => Some(BlockKind::WeepingVinesPlant), + "twisting_vines" => Some(BlockKind::TwistingVines), + "twisting_vines_plant" => Some(BlockKind::TwistingVinesPlant), + "crimson_roots" => Some(BlockKind::CrimsonRoots), + "crimson_planks" => Some(BlockKind::CrimsonPlanks), + "warped_planks" => Some(BlockKind::WarpedPlanks), + "crimson_slab" => Some(BlockKind::CrimsonSlab), + "warped_slab" => Some(BlockKind::WarpedSlab), + "crimson_pressure_plate" => Some(BlockKind::CrimsonPressurePlate), + "warped_pressure_plate" => Some(BlockKind::WarpedPressurePlate), + "crimson_fence" => Some(BlockKind::CrimsonFence), + "warped_fence" => Some(BlockKind::WarpedFence), + "crimson_trapdoor" => Some(BlockKind::CrimsonTrapdoor), + "warped_trapdoor" => Some(BlockKind::WarpedTrapdoor), + "crimson_fence_gate" => Some(BlockKind::CrimsonFenceGate), + "warped_fence_gate" => Some(BlockKind::WarpedFenceGate), + "crimson_stairs" => Some(BlockKind::CrimsonStairs), + "warped_stairs" => Some(BlockKind::WarpedStairs), + "crimson_button" => Some(BlockKind::CrimsonButton), + "warped_button" => Some(BlockKind::WarpedButton), + "crimson_door" => Some(BlockKind::CrimsonDoor), + "warped_door" => Some(BlockKind::WarpedDoor), + "crimson_sign" => Some(BlockKind::CrimsonSign), + "warped_sign" => Some(BlockKind::WarpedSign), + "crimson_wall_sign" => Some(BlockKind::CrimsonWallSign), + "warped_wall_sign" => Some(BlockKind::WarpedWallSign), + "structure_block" => Some(BlockKind::StructureBlock), + "jigsaw" => Some(BlockKind::Jigsaw), + "composter" => Some(BlockKind::Composter), + "target" => Some(BlockKind::Target), + "bee_nest" => Some(BlockKind::BeeNest), + "beehive" => Some(BlockKind::Beehive), + "honey_block" => Some(BlockKind::HoneyBlock), + "honeycomb_block" => Some(BlockKind::HoneycombBlock), + "netherite_block" => Some(BlockKind::NetheriteBlock), + "ancient_debris" => Some(BlockKind::AncientDebris), + "crying_obsidian" => Some(BlockKind::CryingObsidian), + "respawn_anchor" => Some(BlockKind::RespawnAnchor), + "potted_crimson_fungus" => Some(BlockKind::PottedCrimsonFungus), + "potted_warped_fungus" => Some(BlockKind::PottedWarpedFungus), + "potted_crimson_roots" => Some(BlockKind::PottedCrimsonRoots), + "potted_warped_roots" => Some(BlockKind::PottedWarpedRoots), + "lodestone" => Some(BlockKind::Lodestone), + "blackstone" => Some(BlockKind::Blackstone), + "blackstone_stairs" => Some(BlockKind::BlackstoneStairs), + "blackstone_wall" => Some(BlockKind::BlackstoneWall), + "blackstone_slab" => Some(BlockKind::BlackstoneSlab), + "polished_blackstone" => Some(BlockKind::PolishedBlackstone), + "polished_blackstone_bricks" => Some(BlockKind::PolishedBlackstoneBricks), + "cracked_polished_blackstone_bricks" => { + Some(BlockKind::CrackedPolishedBlackstoneBricks) + } + "chiseled_polished_blackstone" => Some(BlockKind::ChiseledPolishedBlackstone), + "polished_blackstone_brick_slab" => Some(BlockKind::PolishedBlackstoneBrickSlab), + "polished_blackstone_brick_stairs" => Some(BlockKind::PolishedBlackstoneBrickStairs), + "polished_blackstone_brick_wall" => Some(BlockKind::PolishedBlackstoneBrickWall), + "gilded_blackstone" => Some(BlockKind::GildedBlackstone), + "polished_blackstone_stairs" => Some(BlockKind::PolishedBlackstoneStairs), + "polished_blackstone_slab" => Some(BlockKind::PolishedBlackstoneSlab), + "polished_blackstone_pressure_plate" => { + Some(BlockKind::PolishedBlackstonePressurePlate) + } + "polished_blackstone_button" => Some(BlockKind::PolishedBlackstoneButton), + "polished_blackstone_wall" => Some(BlockKind::PolishedBlackstoneWall), + "chiseled_nether_bricks" => Some(BlockKind::ChiseledNetherBricks), + "cracked_nether_bricks" => Some(BlockKind::CrackedNetherBricks), + "quartz_bricks" => Some(BlockKind::QuartzBricks), + "candle" => Some(BlockKind::Candle), + "white_candle" => Some(BlockKind::WhiteCandle), + "orange_candle" => Some(BlockKind::OrangeCandle), + "magenta_candle" => Some(BlockKind::MagentaCandle), + "light_blue_candle" => Some(BlockKind::LightBlueCandle), + "yellow_candle" => Some(BlockKind::YellowCandle), + "lime_candle" => Some(BlockKind::LimeCandle), + "pink_candle" => Some(BlockKind::PinkCandle), + "gray_candle" => Some(BlockKind::GrayCandle), + "light_gray_candle" => Some(BlockKind::LightGrayCandle), + "cyan_candle" => Some(BlockKind::CyanCandle), + "purple_candle" => Some(BlockKind::PurpleCandle), + "blue_candle" => Some(BlockKind::BlueCandle), + "brown_candle" => Some(BlockKind::BrownCandle), + "green_candle" => Some(BlockKind::GreenCandle), + "red_candle" => Some(BlockKind::RedCandle), + "black_candle" => Some(BlockKind::BlackCandle), + "candle_cake" => Some(BlockKind::CandleCake), + "white_candle_cake" => Some(BlockKind::WhiteCandleCake), + "orange_candle_cake" => Some(BlockKind::OrangeCandleCake), + "magenta_candle_cake" => Some(BlockKind::MagentaCandleCake), + "light_blue_candle_cake" => Some(BlockKind::LightBlueCandleCake), + "yellow_candle_cake" => Some(BlockKind::YellowCandleCake), + "lime_candle_cake" => Some(BlockKind::LimeCandleCake), + "pink_candle_cake" => Some(BlockKind::PinkCandleCake), + "gray_candle_cake" => Some(BlockKind::GrayCandleCake), + "light_gray_candle_cake" => Some(BlockKind::LightGrayCandleCake), + "cyan_candle_cake" => Some(BlockKind::CyanCandleCake), + "purple_candle_cake" => Some(BlockKind::PurpleCandleCake), + "blue_candle_cake" => Some(BlockKind::BlueCandleCake), + "brown_candle_cake" => Some(BlockKind::BrownCandleCake), + "green_candle_cake" => Some(BlockKind::GreenCandleCake), + "red_candle_cake" => Some(BlockKind::RedCandleCake), + "black_candle_cake" => Some(BlockKind::BlackCandleCake), + "amethyst_block" => Some(BlockKind::AmethystBlock), + "budding_amethyst" => Some(BlockKind::BuddingAmethyst), + "amethyst_cluster" => Some(BlockKind::AmethystCluster), + "large_amethyst_bud" => Some(BlockKind::LargeAmethystBud), + "medium_amethyst_bud" => Some(BlockKind::MediumAmethystBud), + "small_amethyst_bud" => Some(BlockKind::SmallAmethystBud), + "tuff" => Some(BlockKind::Tuff), + "calcite" => Some(BlockKind::Calcite), + "tinted_glass" => Some(BlockKind::TintedGlass), + "powder_snow" => Some(BlockKind::PowderSnow), + "sculk_sensor" => Some(BlockKind::SculkSensor), + "oxidized_copper" => Some(BlockKind::OxidizedCopper), + "weathered_copper" => Some(BlockKind::WeatheredCopper), + "exposed_copper" => Some(BlockKind::ExposedCopper), + "copper_block" => Some(BlockKind::CopperBlock), + "copper_ore" => Some(BlockKind::CopperOre), + "deepslate_copper_ore" => Some(BlockKind::DeepslateCopperOre), + "oxidized_cut_copper" => Some(BlockKind::OxidizedCutCopper), + "weathered_cut_copper" => Some(BlockKind::WeatheredCutCopper), + "exposed_cut_copper" => Some(BlockKind::ExposedCutCopper), + "cut_copper" => Some(BlockKind::CutCopper), + "oxidized_cut_copper_stairs" => Some(BlockKind::OxidizedCutCopperStairs), + "weathered_cut_copper_stairs" => Some(BlockKind::WeatheredCutCopperStairs), + "exposed_cut_copper_stairs" => Some(BlockKind::ExposedCutCopperStairs), + "cut_copper_stairs" => Some(BlockKind::CutCopperStairs), + "oxidized_cut_copper_slab" => Some(BlockKind::OxidizedCutCopperSlab), + "weathered_cut_copper_slab" => Some(BlockKind::WeatheredCutCopperSlab), + "exposed_cut_copper_slab" => Some(BlockKind::ExposedCutCopperSlab), + "cut_copper_slab" => Some(BlockKind::CutCopperSlab), + "waxed_copper_block" => Some(BlockKind::WaxedCopperBlock), + "waxed_weathered_copper" => Some(BlockKind::WaxedWeatheredCopper), + "waxed_exposed_copper" => Some(BlockKind::WaxedExposedCopper), + "waxed_oxidized_copper" => Some(BlockKind::WaxedOxidizedCopper), + "waxed_oxidized_cut_copper" => Some(BlockKind::WaxedOxidizedCutCopper), + "waxed_weathered_cut_copper" => Some(BlockKind::WaxedWeatheredCutCopper), + "waxed_exposed_cut_copper" => Some(BlockKind::WaxedExposedCutCopper), + "waxed_cut_copper" => Some(BlockKind::WaxedCutCopper), + "waxed_oxidized_cut_copper_stairs" => Some(BlockKind::WaxedOxidizedCutCopperStairs), + "waxed_weathered_cut_copper_stairs" => Some(BlockKind::WaxedWeatheredCutCopperStairs), + "waxed_exposed_cut_copper_stairs" => Some(BlockKind::WaxedExposedCutCopperStairs), + "waxed_cut_copper_stairs" => Some(BlockKind::WaxedCutCopperStairs), + "waxed_oxidized_cut_copper_slab" => Some(BlockKind::WaxedOxidizedCutCopperSlab), + "waxed_weathered_cut_copper_slab" => Some(BlockKind::WaxedWeatheredCutCopperSlab), + "waxed_exposed_cut_copper_slab" => Some(BlockKind::WaxedExposedCutCopperSlab), + "waxed_cut_copper_slab" => Some(BlockKind::WaxedCutCopperSlab), + "lightning_rod" => Some(BlockKind::LightningRod), + "pointed_dripstone" => Some(BlockKind::PointedDripstone), + "dripstone_block" => Some(BlockKind::DripstoneBlock), + "cave_vines" => Some(BlockKind::CaveVines), + "cave_vines_plant" => Some(BlockKind::CaveVinesPlant), + "spore_blossom" => Some(BlockKind::SporeBlossom), + "azalea" => Some(BlockKind::Azalea), + "flowering_azalea" => Some(BlockKind::FloweringAzalea), + "moss_carpet" => Some(BlockKind::MossCarpet), + "moss_block" => Some(BlockKind::MossBlock), + "big_dripleaf" => Some(BlockKind::BigDripleaf), + "big_dripleaf_stem" => Some(BlockKind::BigDripleafStem), + "small_dripleaf" => Some(BlockKind::SmallDripleaf), + "hanging_roots" => Some(BlockKind::HangingRoots), + "rooted_dirt" => Some(BlockKind::RootedDirt), + "deepslate" => Some(BlockKind::Deepslate), + "cobbled_deepslate" => Some(BlockKind::CobbledDeepslate), + "cobbled_deepslate_stairs" => Some(BlockKind::CobbledDeepslateStairs), + "cobbled_deepslate_slab" => Some(BlockKind::CobbledDeepslateSlab), + "cobbled_deepslate_wall" => Some(BlockKind::CobbledDeepslateWall), + "polished_deepslate" => Some(BlockKind::PolishedDeepslate), + "polished_deepslate_stairs" => Some(BlockKind::PolishedDeepslateStairs), + "polished_deepslate_slab" => Some(BlockKind::PolishedDeepslateSlab), + "polished_deepslate_wall" => Some(BlockKind::PolishedDeepslateWall), + "deepslate_tiles" => Some(BlockKind::DeepslateTiles), + "deepslate_tile_stairs" => Some(BlockKind::DeepslateTileStairs), + "deepslate_tile_slab" => Some(BlockKind::DeepslateTileSlab), + "deepslate_tile_wall" => Some(BlockKind::DeepslateTileWall), + "deepslate_bricks" => Some(BlockKind::DeepslateBricks), + "deepslate_brick_stairs" => Some(BlockKind::DeepslateBrickStairs), + "deepslate_brick_slab" => Some(BlockKind::DeepslateBrickSlab), + "deepslate_brick_wall" => Some(BlockKind::DeepslateBrickWall), + "chiseled_deepslate" => Some(BlockKind::ChiseledDeepslate), + "cracked_deepslate_bricks" => Some(BlockKind::CrackedDeepslateBricks), + "cracked_deepslate_tiles" => Some(BlockKind::CrackedDeepslateTiles), + "infested_deepslate" => Some(BlockKind::InfestedDeepslate), + "smooth_basalt" => Some(BlockKind::SmoothBasalt), + "raw_iron_block" => Some(BlockKind::RawIronBlock), + "raw_copper_block" => Some(BlockKind::RawCopperBlock), + "raw_gold_block" => Some(BlockKind::RawGoldBlock), + "potted_azalea_bush" => Some(BlockKind::PottedAzaleaBush), + "potted_flowering_azalea_bush" => Some(BlockKind::PottedFloweringAzaleaBush), + _ => None, + } + } +} +impl BlockKind { + #[doc = "Returns the `namespaced_id` property of this `BlockKind`."] + #[inline] + pub fn namespaced_id(&self) -> &'static str { + match self { + BlockKind::Air => "minecraft:air", + BlockKind::Stone => "minecraft:stone", + BlockKind::Granite => "minecraft:granite", + BlockKind::PolishedGranite => "minecraft:polished_granite", + BlockKind::Diorite => "minecraft:diorite", + BlockKind::PolishedDiorite => "minecraft:polished_diorite", + BlockKind::Andesite => "minecraft:andesite", + BlockKind::PolishedAndesite => "minecraft:polished_andesite", + BlockKind::GrassBlock => "minecraft:grass_block", + BlockKind::Dirt => "minecraft:dirt", + BlockKind::CoarseDirt => "minecraft:coarse_dirt", + BlockKind::Podzol => "minecraft:podzol", + BlockKind::Cobblestone => "minecraft:cobblestone", + BlockKind::OakPlanks => "minecraft:oak_planks", + BlockKind::SprucePlanks => "minecraft:spruce_planks", + BlockKind::BirchPlanks => "minecraft:birch_planks", + BlockKind::JunglePlanks => "minecraft:jungle_planks", + BlockKind::AcaciaPlanks => "minecraft:acacia_planks", + BlockKind::DarkOakPlanks => "minecraft:dark_oak_planks", + BlockKind::OakSapling => "minecraft:oak_sapling", + BlockKind::SpruceSapling => "minecraft:spruce_sapling", + BlockKind::BirchSapling => "minecraft:birch_sapling", + BlockKind::JungleSapling => "minecraft:jungle_sapling", + BlockKind::AcaciaSapling => "minecraft:acacia_sapling", + BlockKind::DarkOakSapling => "minecraft:dark_oak_sapling", + BlockKind::Bedrock => "minecraft:bedrock", + BlockKind::Water => "minecraft:water", + BlockKind::Lava => "minecraft:lava", + BlockKind::Sand => "minecraft:sand", + BlockKind::RedSand => "minecraft:red_sand", + BlockKind::Gravel => "minecraft:gravel", + BlockKind::GoldOre => "minecraft:gold_ore", + BlockKind::DeepslateGoldOre => "minecraft:deepslate_gold_ore", + BlockKind::IronOre => "minecraft:iron_ore", + BlockKind::DeepslateIronOre => "minecraft:deepslate_iron_ore", + BlockKind::CoalOre => "minecraft:coal_ore", + BlockKind::DeepslateCoalOre => "minecraft:deepslate_coal_ore", + BlockKind::NetherGoldOre => "minecraft:nether_gold_ore", + BlockKind::OakLog => "minecraft:oak_log", + BlockKind::SpruceLog => "minecraft:spruce_log", + BlockKind::BirchLog => "minecraft:birch_log", + BlockKind::JungleLog => "minecraft:jungle_log", + BlockKind::AcaciaLog => "minecraft:acacia_log", + BlockKind::DarkOakLog => "minecraft:dark_oak_log", + BlockKind::StrippedSpruceLog => "minecraft:stripped_spruce_log", + BlockKind::StrippedBirchLog => "minecraft:stripped_birch_log", + BlockKind::StrippedJungleLog => "minecraft:stripped_jungle_log", + BlockKind::StrippedAcaciaLog => "minecraft:stripped_acacia_log", + BlockKind::StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", + BlockKind::StrippedOakLog => "minecraft:stripped_oak_log", + BlockKind::OakWood => "minecraft:oak_wood", + BlockKind::SpruceWood => "minecraft:spruce_wood", + BlockKind::BirchWood => "minecraft:birch_wood", + BlockKind::JungleWood => "minecraft:jungle_wood", + BlockKind::AcaciaWood => "minecraft:acacia_wood", + BlockKind::DarkOakWood => "minecraft:dark_oak_wood", + BlockKind::StrippedOakWood => "minecraft:stripped_oak_wood", + BlockKind::StrippedSpruceWood => "minecraft:stripped_spruce_wood", + BlockKind::StrippedBirchWood => "minecraft:stripped_birch_wood", + BlockKind::StrippedJungleWood => "minecraft:stripped_jungle_wood", + BlockKind::StrippedAcaciaWood => "minecraft:stripped_acacia_wood", + BlockKind::StrippedDarkOakWood => "minecraft:stripped_dark_oak_wood", + BlockKind::OakLeaves => "minecraft:oak_leaves", + BlockKind::SpruceLeaves => "minecraft:spruce_leaves", + BlockKind::BirchLeaves => "minecraft:birch_leaves", + BlockKind::JungleLeaves => "minecraft:jungle_leaves", + BlockKind::AcaciaLeaves => "minecraft:acacia_leaves", + BlockKind::DarkOakLeaves => "minecraft:dark_oak_leaves", + BlockKind::AzaleaLeaves => "minecraft:azalea_leaves", + BlockKind::FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", + BlockKind::Sponge => "minecraft:sponge", + BlockKind::WetSponge => "minecraft:wet_sponge", + BlockKind::Glass => "minecraft:glass", + BlockKind::LapisOre => "minecraft:lapis_ore", + BlockKind::DeepslateLapisOre => "minecraft:deepslate_lapis_ore", + BlockKind::LapisBlock => "minecraft:lapis_block", + BlockKind::Dispenser => "minecraft:dispenser", + BlockKind::Sandstone => "minecraft:sandstone", + BlockKind::ChiseledSandstone => "minecraft:chiseled_sandstone", + BlockKind::CutSandstone => "minecraft:cut_sandstone", + BlockKind::NoteBlock => "minecraft:note_block", + BlockKind::WhiteBed => "minecraft:white_bed", + BlockKind::OrangeBed => "minecraft:orange_bed", + BlockKind::MagentaBed => "minecraft:magenta_bed", + BlockKind::LightBlueBed => "minecraft:light_blue_bed", + BlockKind::YellowBed => "minecraft:yellow_bed", + BlockKind::LimeBed => "minecraft:lime_bed", + BlockKind::PinkBed => "minecraft:pink_bed", + BlockKind::GrayBed => "minecraft:gray_bed", + BlockKind::LightGrayBed => "minecraft:light_gray_bed", + BlockKind::CyanBed => "minecraft:cyan_bed", + BlockKind::PurpleBed => "minecraft:purple_bed", + BlockKind::BlueBed => "minecraft:blue_bed", + BlockKind::BrownBed => "minecraft:brown_bed", + BlockKind::GreenBed => "minecraft:green_bed", + BlockKind::RedBed => "minecraft:red_bed", + BlockKind::BlackBed => "minecraft:black_bed", + BlockKind::PoweredRail => "minecraft:powered_rail", + BlockKind::DetectorRail => "minecraft:detector_rail", + BlockKind::StickyPiston => "minecraft:sticky_piston", + BlockKind::Cobweb => "minecraft:cobweb", + BlockKind::Grass => "minecraft:grass", + BlockKind::Fern => "minecraft:fern", + BlockKind::DeadBush => "minecraft:dead_bush", + BlockKind::Seagrass => "minecraft:seagrass", + BlockKind::TallSeagrass => "minecraft:tall_seagrass", + BlockKind::Piston => "minecraft:piston", + BlockKind::PistonHead => "minecraft:piston_head", + BlockKind::WhiteWool => "minecraft:white_wool", + BlockKind::OrangeWool => "minecraft:orange_wool", + BlockKind::MagentaWool => "minecraft:magenta_wool", + BlockKind::LightBlueWool => "minecraft:light_blue_wool", + BlockKind::YellowWool => "minecraft:yellow_wool", + BlockKind::LimeWool => "minecraft:lime_wool", + BlockKind::PinkWool => "minecraft:pink_wool", + BlockKind::GrayWool => "minecraft:gray_wool", + BlockKind::LightGrayWool => "minecraft:light_gray_wool", + BlockKind::CyanWool => "minecraft:cyan_wool", + BlockKind::PurpleWool => "minecraft:purple_wool", + BlockKind::BlueWool => "minecraft:blue_wool", + BlockKind::BrownWool => "minecraft:brown_wool", + BlockKind::GreenWool => "minecraft:green_wool", + BlockKind::RedWool => "minecraft:red_wool", + BlockKind::BlackWool => "minecraft:black_wool", + BlockKind::MovingPiston => "minecraft:moving_piston", + BlockKind::Dandelion => "minecraft:dandelion", + BlockKind::Poppy => "minecraft:poppy", + BlockKind::BlueOrchid => "minecraft:blue_orchid", + BlockKind::Allium => "minecraft:allium", + BlockKind::AzureBluet => "minecraft:azure_bluet", + BlockKind::RedTulip => "minecraft:red_tulip", + BlockKind::OrangeTulip => "minecraft:orange_tulip", + BlockKind::WhiteTulip => "minecraft:white_tulip", + BlockKind::PinkTulip => "minecraft:pink_tulip", + BlockKind::OxeyeDaisy => "minecraft:oxeye_daisy", + BlockKind::Cornflower => "minecraft:cornflower", + BlockKind::WitherRose => "minecraft:wither_rose", + BlockKind::LilyOfTheValley => "minecraft:lily_of_the_valley", + BlockKind::BrownMushroom => "minecraft:brown_mushroom", + BlockKind::RedMushroom => "minecraft:red_mushroom", + BlockKind::GoldBlock => "minecraft:gold_block", + BlockKind::IronBlock => "minecraft:iron_block", + BlockKind::Bricks => "minecraft:bricks", + BlockKind::Tnt => "minecraft:tnt", + BlockKind::Bookshelf => "minecraft:bookshelf", + BlockKind::MossyCobblestone => "minecraft:mossy_cobblestone", + BlockKind::Obsidian => "minecraft:obsidian", + BlockKind::Torch => "minecraft:torch", + BlockKind::WallTorch => "minecraft:wall_torch", + BlockKind::Fire => "minecraft:fire", + BlockKind::SoulFire => "minecraft:soul_fire", + BlockKind::Spawner => "minecraft:spawner", + BlockKind::OakStairs => "minecraft:oak_stairs", + BlockKind::Chest => "minecraft:chest", + BlockKind::RedstoneWire => "minecraft:redstone_wire", + BlockKind::DiamondOre => "minecraft:diamond_ore", + BlockKind::DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", + BlockKind::DiamondBlock => "minecraft:diamond_block", + BlockKind::CraftingTable => "minecraft:crafting_table", + BlockKind::Wheat => "minecraft:wheat", + BlockKind::Farmland => "minecraft:farmland", + BlockKind::Furnace => "minecraft:furnace", + BlockKind::OakSign => "minecraft:oak_sign", + BlockKind::SpruceSign => "minecraft:spruce_sign", + BlockKind::BirchSign => "minecraft:birch_sign", + BlockKind::AcaciaSign => "minecraft:acacia_sign", + BlockKind::JungleSign => "minecraft:jungle_sign", + BlockKind::DarkOakSign => "minecraft:dark_oak_sign", + BlockKind::OakDoor => "minecraft:oak_door", + BlockKind::Ladder => "minecraft:ladder", + BlockKind::Rail => "minecraft:rail", + BlockKind::CobblestoneStairs => "minecraft:cobblestone_stairs", + BlockKind::OakWallSign => "minecraft:oak_wall_sign", + BlockKind::SpruceWallSign => "minecraft:spruce_wall_sign", + BlockKind::BirchWallSign => "minecraft:birch_wall_sign", + BlockKind::AcaciaWallSign => "minecraft:acacia_wall_sign", + BlockKind::JungleWallSign => "minecraft:jungle_wall_sign", + BlockKind::DarkOakWallSign => "minecraft:dark_oak_wall_sign", + BlockKind::Lever => "minecraft:lever", + BlockKind::StonePressurePlate => "minecraft:stone_pressure_plate", + BlockKind::IronDoor => "minecraft:iron_door", + BlockKind::OakPressurePlate => "minecraft:oak_pressure_plate", + BlockKind::SprucePressurePlate => "minecraft:spruce_pressure_plate", + BlockKind::BirchPressurePlate => "minecraft:birch_pressure_plate", + BlockKind::JunglePressurePlate => "minecraft:jungle_pressure_plate", + BlockKind::AcaciaPressurePlate => "minecraft:acacia_pressure_plate", + BlockKind::DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", + BlockKind::RedstoneOre => "minecraft:redstone_ore", + BlockKind::DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", + BlockKind::RedstoneTorch => "minecraft:redstone_torch", + BlockKind::RedstoneWallTorch => "minecraft:redstone_wall_torch", + BlockKind::StoneButton => "minecraft:stone_button", + BlockKind::Snow => "minecraft:snow", + BlockKind::Ice => "minecraft:ice", + BlockKind::SnowBlock => "minecraft:snow_block", + BlockKind::Cactus => "minecraft:cactus", + BlockKind::Clay => "minecraft:clay", + BlockKind::SugarCane => "minecraft:sugar_cane", + BlockKind::Jukebox => "minecraft:jukebox", + BlockKind::OakFence => "minecraft:oak_fence", + BlockKind::Pumpkin => "minecraft:pumpkin", + BlockKind::Netherrack => "minecraft:netherrack", + BlockKind::SoulSand => "minecraft:soul_sand", + BlockKind::SoulSoil => "minecraft:soul_soil", + BlockKind::Basalt => "minecraft:basalt", + BlockKind::PolishedBasalt => "minecraft:polished_basalt", + BlockKind::SoulTorch => "minecraft:soul_torch", + BlockKind::SoulWallTorch => "minecraft:soul_wall_torch", + BlockKind::Glowstone => "minecraft:glowstone", + BlockKind::NetherPortal => "minecraft:nether_portal", + BlockKind::CarvedPumpkin => "minecraft:carved_pumpkin", + BlockKind::JackOLantern => "minecraft:jack_o_lantern", + BlockKind::Cake => "minecraft:cake", + BlockKind::Repeater => "minecraft:repeater", + BlockKind::WhiteStainedGlass => "minecraft:white_stained_glass", + BlockKind::OrangeStainedGlass => "minecraft:orange_stained_glass", + BlockKind::MagentaStainedGlass => "minecraft:magenta_stained_glass", + BlockKind::LightBlueStainedGlass => "minecraft:light_blue_stained_glass", + BlockKind::YellowStainedGlass => "minecraft:yellow_stained_glass", + BlockKind::LimeStainedGlass => "minecraft:lime_stained_glass", + BlockKind::PinkStainedGlass => "minecraft:pink_stained_glass", + BlockKind::GrayStainedGlass => "minecraft:gray_stained_glass", + BlockKind::LightGrayStainedGlass => "minecraft:light_gray_stained_glass", + BlockKind::CyanStainedGlass => "minecraft:cyan_stained_glass", + BlockKind::PurpleStainedGlass => "minecraft:purple_stained_glass", + BlockKind::BlueStainedGlass => "minecraft:blue_stained_glass", + BlockKind::BrownStainedGlass => "minecraft:brown_stained_glass", + BlockKind::GreenStainedGlass => "minecraft:green_stained_glass", + BlockKind::RedStainedGlass => "minecraft:red_stained_glass", + BlockKind::BlackStainedGlass => "minecraft:black_stained_glass", + BlockKind::OakTrapdoor => "minecraft:oak_trapdoor", + BlockKind::SpruceTrapdoor => "minecraft:spruce_trapdoor", + BlockKind::BirchTrapdoor => "minecraft:birch_trapdoor", + BlockKind::JungleTrapdoor => "minecraft:jungle_trapdoor", + BlockKind::AcaciaTrapdoor => "minecraft:acacia_trapdoor", + BlockKind::DarkOakTrapdoor => "minecraft:dark_oak_trapdoor", + BlockKind::StoneBricks => "minecraft:stone_bricks", + BlockKind::MossyStoneBricks => "minecraft:mossy_stone_bricks", + BlockKind::CrackedStoneBricks => "minecraft:cracked_stone_bricks", + BlockKind::ChiseledStoneBricks => "minecraft:chiseled_stone_bricks", + BlockKind::InfestedStone => "minecraft:infested_stone", + BlockKind::InfestedCobblestone => "minecraft:infested_cobblestone", + BlockKind::InfestedStoneBricks => "minecraft:infested_stone_bricks", + BlockKind::InfestedMossyStoneBricks => "minecraft:infested_mossy_stone_bricks", + BlockKind::InfestedCrackedStoneBricks => "minecraft:infested_cracked_stone_bricks", + BlockKind::InfestedChiseledStoneBricks => "minecraft:infested_chiseled_stone_bricks", + BlockKind::BrownMushroomBlock => "minecraft:brown_mushroom_block", + BlockKind::RedMushroomBlock => "minecraft:red_mushroom_block", + BlockKind::MushroomStem => "minecraft:mushroom_stem", + BlockKind::IronBars => "minecraft:iron_bars", + BlockKind::Chain => "minecraft:chain", + BlockKind::GlassPane => "minecraft:glass_pane", + BlockKind::Melon => "minecraft:melon", + BlockKind::AttachedPumpkinStem => "minecraft:attached_pumpkin_stem", + BlockKind::AttachedMelonStem => "minecraft:attached_melon_stem", + BlockKind::PumpkinStem => "minecraft:pumpkin_stem", + BlockKind::MelonStem => "minecraft:melon_stem", + BlockKind::Vine => "minecraft:vine", + BlockKind::GlowLichen => "minecraft:glow_lichen", + BlockKind::OakFenceGate => "minecraft:oak_fence_gate", + BlockKind::BrickStairs => "minecraft:brick_stairs", + BlockKind::StoneBrickStairs => "minecraft:stone_brick_stairs", + BlockKind::Mycelium => "minecraft:mycelium", + BlockKind::LilyPad => "minecraft:lily_pad", + BlockKind::NetherBricks => "minecraft:nether_bricks", + BlockKind::NetherBrickFence => "minecraft:nether_brick_fence", + BlockKind::NetherBrickStairs => "minecraft:nether_brick_stairs", + BlockKind::NetherWart => "minecraft:nether_wart", + BlockKind::EnchantingTable => "minecraft:enchanting_table", + BlockKind::BrewingStand => "minecraft:brewing_stand", + BlockKind::Cauldron => "minecraft:cauldron", + BlockKind::WaterCauldron => "minecraft:water_cauldron", + BlockKind::LavaCauldron => "minecraft:lava_cauldron", + BlockKind::PowderSnowCauldron => "minecraft:powder_snow_cauldron", + BlockKind::EndPortal => "minecraft:end_portal", + BlockKind::EndPortalFrame => "minecraft:end_portal_frame", + BlockKind::EndStone => "minecraft:end_stone", + BlockKind::DragonEgg => "minecraft:dragon_egg", + BlockKind::RedstoneLamp => "minecraft:redstone_lamp", + BlockKind::Cocoa => "minecraft:cocoa", + BlockKind::SandstoneStairs => "minecraft:sandstone_stairs", + BlockKind::EmeraldOre => "minecraft:emerald_ore", + BlockKind::DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", + BlockKind::EnderChest => "minecraft:ender_chest", + BlockKind::TripwireHook => "minecraft:tripwire_hook", + BlockKind::Tripwire => "minecraft:tripwire", + BlockKind::EmeraldBlock => "minecraft:emerald_block", + BlockKind::SpruceStairs => "minecraft:spruce_stairs", + BlockKind::BirchStairs => "minecraft:birch_stairs", + BlockKind::JungleStairs => "minecraft:jungle_stairs", + BlockKind::CommandBlock => "minecraft:command_block", + BlockKind::Beacon => "minecraft:beacon", + BlockKind::CobblestoneWall => "minecraft:cobblestone_wall", + BlockKind::MossyCobblestoneWall => "minecraft:mossy_cobblestone_wall", + BlockKind::FlowerPot => "minecraft:flower_pot", + BlockKind::PottedOakSapling => "minecraft:potted_oak_sapling", + BlockKind::PottedSpruceSapling => "minecraft:potted_spruce_sapling", + BlockKind::PottedBirchSapling => "minecraft:potted_birch_sapling", + BlockKind::PottedJungleSapling => "minecraft:potted_jungle_sapling", + BlockKind::PottedAcaciaSapling => "minecraft:potted_acacia_sapling", + BlockKind::PottedDarkOakSapling => "minecraft:potted_dark_oak_sapling", + BlockKind::PottedFern => "minecraft:potted_fern", + BlockKind::PottedDandelion => "minecraft:potted_dandelion", + BlockKind::PottedPoppy => "minecraft:potted_poppy", + BlockKind::PottedBlueOrchid => "minecraft:potted_blue_orchid", + BlockKind::PottedAllium => "minecraft:potted_allium", + BlockKind::PottedAzureBluet => "minecraft:potted_azure_bluet", + BlockKind::PottedRedTulip => "minecraft:potted_red_tulip", + BlockKind::PottedOrangeTulip => "minecraft:potted_orange_tulip", + BlockKind::PottedWhiteTulip => "minecraft:potted_white_tulip", + BlockKind::PottedPinkTulip => "minecraft:potted_pink_tulip", + BlockKind::PottedOxeyeDaisy => "minecraft:potted_oxeye_daisy", + BlockKind::PottedCornflower => "minecraft:potted_cornflower", + BlockKind::PottedLilyOfTheValley => "minecraft:potted_lily_of_the_valley", + BlockKind::PottedWitherRose => "minecraft:potted_wither_rose", + BlockKind::PottedRedMushroom => "minecraft:potted_red_mushroom", + BlockKind::PottedBrownMushroom => "minecraft:potted_brown_mushroom", + BlockKind::PottedDeadBush => "minecraft:potted_dead_bush", + BlockKind::PottedCactus => "minecraft:potted_cactus", + BlockKind::Carrots => "minecraft:carrots", + BlockKind::Potatoes => "minecraft:potatoes", + BlockKind::OakButton => "minecraft:oak_button", + BlockKind::SpruceButton => "minecraft:spruce_button", + BlockKind::BirchButton => "minecraft:birch_button", + BlockKind::JungleButton => "minecraft:jungle_button", + BlockKind::AcaciaButton => "minecraft:acacia_button", + BlockKind::DarkOakButton => "minecraft:dark_oak_button", + BlockKind::SkeletonSkull => "minecraft:skeleton_skull", + BlockKind::SkeletonWallSkull => "minecraft:skeleton_wall_skull", + BlockKind::WitherSkeletonSkull => "minecraft:wither_skeleton_skull", + BlockKind::WitherSkeletonWallSkull => "minecraft:wither_skeleton_wall_skull", + BlockKind::ZombieHead => "minecraft:zombie_head", + BlockKind::ZombieWallHead => "minecraft:zombie_wall_head", + BlockKind::PlayerHead => "minecraft:player_head", + BlockKind::PlayerWallHead => "minecraft:player_wall_head", + BlockKind::CreeperHead => "minecraft:creeper_head", + BlockKind::CreeperWallHead => "minecraft:creeper_wall_head", + BlockKind::DragonHead => "minecraft:dragon_head", + BlockKind::DragonWallHead => "minecraft:dragon_wall_head", + BlockKind::Anvil => "minecraft:anvil", + BlockKind::ChippedAnvil => "minecraft:chipped_anvil", + BlockKind::DamagedAnvil => "minecraft:damaged_anvil", + BlockKind::TrappedChest => "minecraft:trapped_chest", + BlockKind::LightWeightedPressurePlate => "minecraft:light_weighted_pressure_plate", + BlockKind::HeavyWeightedPressurePlate => "minecraft:heavy_weighted_pressure_plate", + BlockKind::Comparator => "minecraft:comparator", + BlockKind::DaylightDetector => "minecraft:daylight_detector", + BlockKind::RedstoneBlock => "minecraft:redstone_block", + BlockKind::NetherQuartzOre => "minecraft:nether_quartz_ore", + BlockKind::Hopper => "minecraft:hopper", + BlockKind::QuartzBlock => "minecraft:quartz_block", + BlockKind::ChiseledQuartzBlock => "minecraft:chiseled_quartz_block", + BlockKind::QuartzPillar => "minecraft:quartz_pillar", + BlockKind::QuartzStairs => "minecraft:quartz_stairs", + BlockKind::ActivatorRail => "minecraft:activator_rail", + BlockKind::Dropper => "minecraft:dropper", + BlockKind::WhiteTerracotta => "minecraft:white_terracotta", + BlockKind::OrangeTerracotta => "minecraft:orange_terracotta", + BlockKind::MagentaTerracotta => "minecraft:magenta_terracotta", + BlockKind::LightBlueTerracotta => "minecraft:light_blue_terracotta", + BlockKind::YellowTerracotta => "minecraft:yellow_terracotta", + BlockKind::LimeTerracotta => "minecraft:lime_terracotta", + BlockKind::PinkTerracotta => "minecraft:pink_terracotta", + BlockKind::GrayTerracotta => "minecraft:gray_terracotta", + BlockKind::LightGrayTerracotta => "minecraft:light_gray_terracotta", + BlockKind::CyanTerracotta => "minecraft:cyan_terracotta", + BlockKind::PurpleTerracotta => "minecraft:purple_terracotta", + BlockKind::BlueTerracotta => "minecraft:blue_terracotta", + BlockKind::BrownTerracotta => "minecraft:brown_terracotta", + BlockKind::GreenTerracotta => "minecraft:green_terracotta", + BlockKind::RedTerracotta => "minecraft:red_terracotta", + BlockKind::BlackTerracotta => "minecraft:black_terracotta", + BlockKind::WhiteStainedGlassPane => "minecraft:white_stained_glass_pane", + BlockKind::OrangeStainedGlassPane => "minecraft:orange_stained_glass_pane", + BlockKind::MagentaStainedGlassPane => "minecraft:magenta_stained_glass_pane", + BlockKind::LightBlueStainedGlassPane => "minecraft:light_blue_stained_glass_pane", + BlockKind::YellowStainedGlassPane => "minecraft:yellow_stained_glass_pane", + BlockKind::LimeStainedGlassPane => "minecraft:lime_stained_glass_pane", + BlockKind::PinkStainedGlassPane => "minecraft:pink_stained_glass_pane", + BlockKind::GrayStainedGlassPane => "minecraft:gray_stained_glass_pane", + BlockKind::LightGrayStainedGlassPane => "minecraft:light_gray_stained_glass_pane", + BlockKind::CyanStainedGlassPane => "minecraft:cyan_stained_glass_pane", + BlockKind::PurpleStainedGlassPane => "minecraft:purple_stained_glass_pane", + BlockKind::BlueStainedGlassPane => "minecraft:blue_stained_glass_pane", + BlockKind::BrownStainedGlassPane => "minecraft:brown_stained_glass_pane", + BlockKind::GreenStainedGlassPane => "minecraft:green_stained_glass_pane", + BlockKind::RedStainedGlassPane => "minecraft:red_stained_glass_pane", + BlockKind::BlackStainedGlassPane => "minecraft:black_stained_glass_pane", + BlockKind::AcaciaStairs => "minecraft:acacia_stairs", + BlockKind::DarkOakStairs => "minecraft:dark_oak_stairs", + BlockKind::SlimeBlock => "minecraft:slime_block", + BlockKind::Barrier => "minecraft:barrier", + BlockKind::Light => "minecraft:light", + BlockKind::IronTrapdoor => "minecraft:iron_trapdoor", + BlockKind::Prismarine => "minecraft:prismarine", + BlockKind::PrismarineBricks => "minecraft:prismarine_bricks", + BlockKind::DarkPrismarine => "minecraft:dark_prismarine", + BlockKind::PrismarineStairs => "minecraft:prismarine_stairs", + BlockKind::PrismarineBrickStairs => "minecraft:prismarine_brick_stairs", + BlockKind::DarkPrismarineStairs => "minecraft:dark_prismarine_stairs", + BlockKind::PrismarineSlab => "minecraft:prismarine_slab", + BlockKind::PrismarineBrickSlab => "minecraft:prismarine_brick_slab", + BlockKind::DarkPrismarineSlab => "minecraft:dark_prismarine_slab", + BlockKind::SeaLantern => "minecraft:sea_lantern", + BlockKind::HayBlock => "minecraft:hay_block", + BlockKind::WhiteCarpet => "minecraft:white_carpet", + BlockKind::OrangeCarpet => "minecraft:orange_carpet", + BlockKind::MagentaCarpet => "minecraft:magenta_carpet", + BlockKind::LightBlueCarpet => "minecraft:light_blue_carpet", + BlockKind::YellowCarpet => "minecraft:yellow_carpet", + BlockKind::LimeCarpet => "minecraft:lime_carpet", + BlockKind::PinkCarpet => "minecraft:pink_carpet", + BlockKind::GrayCarpet => "minecraft:gray_carpet", + BlockKind::LightGrayCarpet => "minecraft:light_gray_carpet", + BlockKind::CyanCarpet => "minecraft:cyan_carpet", + BlockKind::PurpleCarpet => "minecraft:purple_carpet", + BlockKind::BlueCarpet => "minecraft:blue_carpet", + BlockKind::BrownCarpet => "minecraft:brown_carpet", + BlockKind::GreenCarpet => "minecraft:green_carpet", + BlockKind::RedCarpet => "minecraft:red_carpet", + BlockKind::BlackCarpet => "minecraft:black_carpet", + BlockKind::Terracotta => "minecraft:terracotta", + BlockKind::CoalBlock => "minecraft:coal_block", + BlockKind::PackedIce => "minecraft:packed_ice", + BlockKind::Sunflower => "minecraft:sunflower", + BlockKind::Lilac => "minecraft:lilac", + BlockKind::RoseBush => "minecraft:rose_bush", + BlockKind::Peony => "minecraft:peony", + BlockKind::TallGrass => "minecraft:tall_grass", + BlockKind::LargeFern => "minecraft:large_fern", + BlockKind::WhiteBanner => "minecraft:white_banner", + BlockKind::OrangeBanner => "minecraft:orange_banner", + BlockKind::MagentaBanner => "minecraft:magenta_banner", + BlockKind::LightBlueBanner => "minecraft:light_blue_banner", + BlockKind::YellowBanner => "minecraft:yellow_banner", + BlockKind::LimeBanner => "minecraft:lime_banner", + BlockKind::PinkBanner => "minecraft:pink_banner", + BlockKind::GrayBanner => "minecraft:gray_banner", + BlockKind::LightGrayBanner => "minecraft:light_gray_banner", + BlockKind::CyanBanner => "minecraft:cyan_banner", + BlockKind::PurpleBanner => "minecraft:purple_banner", + BlockKind::BlueBanner => "minecraft:blue_banner", + BlockKind::BrownBanner => "minecraft:brown_banner", + BlockKind::GreenBanner => "minecraft:green_banner", + BlockKind::RedBanner => "minecraft:red_banner", + BlockKind::BlackBanner => "minecraft:black_banner", + BlockKind::WhiteWallBanner => "minecraft:white_wall_banner", + BlockKind::OrangeWallBanner => "minecraft:orange_wall_banner", + BlockKind::MagentaWallBanner => "minecraft:magenta_wall_banner", + BlockKind::LightBlueWallBanner => "minecraft:light_blue_wall_banner", + BlockKind::YellowWallBanner => "minecraft:yellow_wall_banner", + BlockKind::LimeWallBanner => "minecraft:lime_wall_banner", + BlockKind::PinkWallBanner => "minecraft:pink_wall_banner", + BlockKind::GrayWallBanner => "minecraft:gray_wall_banner", + BlockKind::LightGrayWallBanner => "minecraft:light_gray_wall_banner", + BlockKind::CyanWallBanner => "minecraft:cyan_wall_banner", + BlockKind::PurpleWallBanner => "minecraft:purple_wall_banner", + BlockKind::BlueWallBanner => "minecraft:blue_wall_banner", + BlockKind::BrownWallBanner => "minecraft:brown_wall_banner", + BlockKind::GreenWallBanner => "minecraft:green_wall_banner", + BlockKind::RedWallBanner => "minecraft:red_wall_banner", + BlockKind::BlackWallBanner => "minecraft:black_wall_banner", + BlockKind::RedSandstone => "minecraft:red_sandstone", + BlockKind::ChiseledRedSandstone => "minecraft:chiseled_red_sandstone", + BlockKind::CutRedSandstone => "minecraft:cut_red_sandstone", + BlockKind::RedSandstoneStairs => "minecraft:red_sandstone_stairs", + BlockKind::OakSlab => "minecraft:oak_slab", + BlockKind::SpruceSlab => "minecraft:spruce_slab", + BlockKind::BirchSlab => "minecraft:birch_slab", + BlockKind::JungleSlab => "minecraft:jungle_slab", + BlockKind::AcaciaSlab => "minecraft:acacia_slab", + BlockKind::DarkOakSlab => "minecraft:dark_oak_slab", + BlockKind::StoneSlab => "minecraft:stone_slab", + BlockKind::SmoothStoneSlab => "minecraft:smooth_stone_slab", + BlockKind::SandstoneSlab => "minecraft:sandstone_slab", + BlockKind::CutSandstoneSlab => "minecraft:cut_sandstone_slab", + BlockKind::PetrifiedOakSlab => "minecraft:petrified_oak_slab", + BlockKind::CobblestoneSlab => "minecraft:cobblestone_slab", + BlockKind::BrickSlab => "minecraft:brick_slab", + BlockKind::StoneBrickSlab => "minecraft:stone_brick_slab", + BlockKind::NetherBrickSlab => "minecraft:nether_brick_slab", + BlockKind::QuartzSlab => "minecraft:quartz_slab", + BlockKind::RedSandstoneSlab => "minecraft:red_sandstone_slab", + BlockKind::CutRedSandstoneSlab => "minecraft:cut_red_sandstone_slab", + BlockKind::PurpurSlab => "minecraft:purpur_slab", + BlockKind::SmoothStone => "minecraft:smooth_stone", + BlockKind::SmoothSandstone => "minecraft:smooth_sandstone", + BlockKind::SmoothQuartz => "minecraft:smooth_quartz", + BlockKind::SmoothRedSandstone => "minecraft:smooth_red_sandstone", + BlockKind::SpruceFenceGate => "minecraft:spruce_fence_gate", + BlockKind::BirchFenceGate => "minecraft:birch_fence_gate", + BlockKind::JungleFenceGate => "minecraft:jungle_fence_gate", + BlockKind::AcaciaFenceGate => "minecraft:acacia_fence_gate", + BlockKind::DarkOakFenceGate => "minecraft:dark_oak_fence_gate", + BlockKind::SpruceFence => "minecraft:spruce_fence", + BlockKind::BirchFence => "minecraft:birch_fence", + BlockKind::JungleFence => "minecraft:jungle_fence", + BlockKind::AcaciaFence => "minecraft:acacia_fence", + BlockKind::DarkOakFence => "minecraft:dark_oak_fence", + BlockKind::SpruceDoor => "minecraft:spruce_door", + BlockKind::BirchDoor => "minecraft:birch_door", + BlockKind::JungleDoor => "minecraft:jungle_door", + BlockKind::AcaciaDoor => "minecraft:acacia_door", + BlockKind::DarkOakDoor => "minecraft:dark_oak_door", + BlockKind::EndRod => "minecraft:end_rod", + BlockKind::ChorusPlant => "minecraft:chorus_plant", + BlockKind::ChorusFlower => "minecraft:chorus_flower", + BlockKind::PurpurBlock => "minecraft:purpur_block", + BlockKind::PurpurPillar => "minecraft:purpur_pillar", + BlockKind::PurpurStairs => "minecraft:purpur_stairs", + BlockKind::EndStoneBricks => "minecraft:end_stone_bricks", + BlockKind::Beetroots => "minecraft:beetroots", + BlockKind::DirtPath => "minecraft:dirt_path", + BlockKind::EndGateway => "minecraft:end_gateway", + BlockKind::RepeatingCommandBlock => "minecraft:repeating_command_block", + BlockKind::ChainCommandBlock => "minecraft:chain_command_block", + BlockKind::FrostedIce => "minecraft:frosted_ice", + BlockKind::MagmaBlock => "minecraft:magma_block", + BlockKind::NetherWartBlock => "minecraft:nether_wart_block", + BlockKind::RedNetherBricks => "minecraft:red_nether_bricks", + BlockKind::BoneBlock => "minecraft:bone_block", + BlockKind::StructureVoid => "minecraft:structure_void", + BlockKind::Observer => "minecraft:observer", + BlockKind::ShulkerBox => "minecraft:shulker_box", + BlockKind::WhiteShulkerBox => "minecraft:white_shulker_box", + BlockKind::OrangeShulkerBox => "minecraft:orange_shulker_box", + BlockKind::MagentaShulkerBox => "minecraft:magenta_shulker_box", + BlockKind::LightBlueShulkerBox => "minecraft:light_blue_shulker_box", + BlockKind::YellowShulkerBox => "minecraft:yellow_shulker_box", + BlockKind::LimeShulkerBox => "minecraft:lime_shulker_box", + BlockKind::PinkShulkerBox => "minecraft:pink_shulker_box", + BlockKind::GrayShulkerBox => "minecraft:gray_shulker_box", + BlockKind::LightGrayShulkerBox => "minecraft:light_gray_shulker_box", + BlockKind::CyanShulkerBox => "minecraft:cyan_shulker_box", + BlockKind::PurpleShulkerBox => "minecraft:purple_shulker_box", + BlockKind::BlueShulkerBox => "minecraft:blue_shulker_box", + BlockKind::BrownShulkerBox => "minecraft:brown_shulker_box", + BlockKind::GreenShulkerBox => "minecraft:green_shulker_box", + BlockKind::RedShulkerBox => "minecraft:red_shulker_box", + BlockKind::BlackShulkerBox => "minecraft:black_shulker_box", + BlockKind::WhiteGlazedTerracotta => "minecraft:white_glazed_terracotta", + BlockKind::OrangeGlazedTerracotta => "minecraft:orange_glazed_terracotta", + BlockKind::MagentaGlazedTerracotta => "minecraft:magenta_glazed_terracotta", + BlockKind::LightBlueGlazedTerracotta => "minecraft:light_blue_glazed_terracotta", + BlockKind::YellowGlazedTerracotta => "minecraft:yellow_glazed_terracotta", + BlockKind::LimeGlazedTerracotta => "minecraft:lime_glazed_terracotta", + BlockKind::PinkGlazedTerracotta => "minecraft:pink_glazed_terracotta", + BlockKind::GrayGlazedTerracotta => "minecraft:gray_glazed_terracotta", + BlockKind::LightGrayGlazedTerracotta => "minecraft:light_gray_glazed_terracotta", + BlockKind::CyanGlazedTerracotta => "minecraft:cyan_glazed_terracotta", + BlockKind::PurpleGlazedTerracotta => "minecraft:purple_glazed_terracotta", + BlockKind::BlueGlazedTerracotta => "minecraft:blue_glazed_terracotta", + BlockKind::BrownGlazedTerracotta => "minecraft:brown_glazed_terracotta", + BlockKind::GreenGlazedTerracotta => "minecraft:green_glazed_terracotta", + BlockKind::RedGlazedTerracotta => "minecraft:red_glazed_terracotta", + BlockKind::BlackGlazedTerracotta => "minecraft:black_glazed_terracotta", + BlockKind::WhiteConcrete => "minecraft:white_concrete", + BlockKind::OrangeConcrete => "minecraft:orange_concrete", + BlockKind::MagentaConcrete => "minecraft:magenta_concrete", + BlockKind::LightBlueConcrete => "minecraft:light_blue_concrete", + BlockKind::YellowConcrete => "minecraft:yellow_concrete", + BlockKind::LimeConcrete => "minecraft:lime_concrete", + BlockKind::PinkConcrete => "minecraft:pink_concrete", + BlockKind::GrayConcrete => "minecraft:gray_concrete", + BlockKind::LightGrayConcrete => "minecraft:light_gray_concrete", + BlockKind::CyanConcrete => "minecraft:cyan_concrete", + BlockKind::PurpleConcrete => "minecraft:purple_concrete", + BlockKind::BlueConcrete => "minecraft:blue_concrete", + BlockKind::BrownConcrete => "minecraft:brown_concrete", + BlockKind::GreenConcrete => "minecraft:green_concrete", + BlockKind::RedConcrete => "minecraft:red_concrete", + BlockKind::BlackConcrete => "minecraft:black_concrete", + BlockKind::WhiteConcretePowder => "minecraft:white_concrete_powder", + BlockKind::OrangeConcretePowder => "minecraft:orange_concrete_powder", + BlockKind::MagentaConcretePowder => "minecraft:magenta_concrete_powder", + BlockKind::LightBlueConcretePowder => "minecraft:light_blue_concrete_powder", + BlockKind::YellowConcretePowder => "minecraft:yellow_concrete_powder", + BlockKind::LimeConcretePowder => "minecraft:lime_concrete_powder", + BlockKind::PinkConcretePowder => "minecraft:pink_concrete_powder", + BlockKind::GrayConcretePowder => "minecraft:gray_concrete_powder", + BlockKind::LightGrayConcretePowder => "minecraft:light_gray_concrete_powder", + BlockKind::CyanConcretePowder => "minecraft:cyan_concrete_powder", + BlockKind::PurpleConcretePowder => "minecraft:purple_concrete_powder", + BlockKind::BlueConcretePowder => "minecraft:blue_concrete_powder", + BlockKind::BrownConcretePowder => "minecraft:brown_concrete_powder", + BlockKind::GreenConcretePowder => "minecraft:green_concrete_powder", + BlockKind::RedConcretePowder => "minecraft:red_concrete_powder", + BlockKind::BlackConcretePowder => "minecraft:black_concrete_powder", + BlockKind::Kelp => "minecraft:kelp", + BlockKind::KelpPlant => "minecraft:kelp_plant", + BlockKind::DriedKelpBlock => "minecraft:dried_kelp_block", + BlockKind::TurtleEgg => "minecraft:turtle_egg", + BlockKind::DeadTubeCoralBlock => "minecraft:dead_tube_coral_block", + BlockKind::DeadBrainCoralBlock => "minecraft:dead_brain_coral_block", + BlockKind::DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block", + BlockKind::DeadFireCoralBlock => "minecraft:dead_fire_coral_block", + BlockKind::DeadHornCoralBlock => "minecraft:dead_horn_coral_block", + BlockKind::TubeCoralBlock => "minecraft:tube_coral_block", + BlockKind::BrainCoralBlock => "minecraft:brain_coral_block", + BlockKind::BubbleCoralBlock => "minecraft:bubble_coral_block", + BlockKind::FireCoralBlock => "minecraft:fire_coral_block", + BlockKind::HornCoralBlock => "minecraft:horn_coral_block", + BlockKind::DeadTubeCoral => "minecraft:dead_tube_coral", + BlockKind::DeadBrainCoral => "minecraft:dead_brain_coral", + BlockKind::DeadBubbleCoral => "minecraft:dead_bubble_coral", + BlockKind::DeadFireCoral => "minecraft:dead_fire_coral", + BlockKind::DeadHornCoral => "minecraft:dead_horn_coral", + BlockKind::TubeCoral => "minecraft:tube_coral", + BlockKind::BrainCoral => "minecraft:brain_coral", + BlockKind::BubbleCoral => "minecraft:bubble_coral", + BlockKind::FireCoral => "minecraft:fire_coral", + BlockKind::HornCoral => "minecraft:horn_coral", + BlockKind::DeadTubeCoralFan => "minecraft:dead_tube_coral_fan", + BlockKind::DeadBrainCoralFan => "minecraft:dead_brain_coral_fan", + BlockKind::DeadBubbleCoralFan => "minecraft:dead_bubble_coral_fan", + BlockKind::DeadFireCoralFan => "minecraft:dead_fire_coral_fan", + BlockKind::DeadHornCoralFan => "minecraft:dead_horn_coral_fan", + BlockKind::TubeCoralFan => "minecraft:tube_coral_fan", + BlockKind::BrainCoralFan => "minecraft:brain_coral_fan", + BlockKind::BubbleCoralFan => "minecraft:bubble_coral_fan", + BlockKind::FireCoralFan => "minecraft:fire_coral_fan", + BlockKind::HornCoralFan => "minecraft:horn_coral_fan", + BlockKind::DeadTubeCoralWallFan => "minecraft:dead_tube_coral_wall_fan", + BlockKind::DeadBrainCoralWallFan => "minecraft:dead_brain_coral_wall_fan", + BlockKind::DeadBubbleCoralWallFan => "minecraft:dead_bubble_coral_wall_fan", + BlockKind::DeadFireCoralWallFan => "minecraft:dead_fire_coral_wall_fan", + BlockKind::DeadHornCoralWallFan => "minecraft:dead_horn_coral_wall_fan", + BlockKind::TubeCoralWallFan => "minecraft:tube_coral_wall_fan", + BlockKind::BrainCoralWallFan => "minecraft:brain_coral_wall_fan", + BlockKind::BubbleCoralWallFan => "minecraft:bubble_coral_wall_fan", + BlockKind::FireCoralWallFan => "minecraft:fire_coral_wall_fan", + BlockKind::HornCoralWallFan => "minecraft:horn_coral_wall_fan", + BlockKind::SeaPickle => "minecraft:sea_pickle", + BlockKind::BlueIce => "minecraft:blue_ice", + BlockKind::Conduit => "minecraft:conduit", + BlockKind::BambooSapling => "minecraft:bamboo_sapling", + BlockKind::Bamboo => "minecraft:bamboo", + BlockKind::PottedBamboo => "minecraft:potted_bamboo", + BlockKind::VoidAir => "minecraft:void_air", + BlockKind::CaveAir => "minecraft:cave_air", + BlockKind::BubbleColumn => "minecraft:bubble_column", + BlockKind::PolishedGraniteStairs => "minecraft:polished_granite_stairs", + BlockKind::SmoothRedSandstoneStairs => "minecraft:smooth_red_sandstone_stairs", + BlockKind::MossyStoneBrickStairs => "minecraft:mossy_stone_brick_stairs", + BlockKind::PolishedDioriteStairs => "minecraft:polished_diorite_stairs", + BlockKind::MossyCobblestoneStairs => "minecraft:mossy_cobblestone_stairs", + BlockKind::EndStoneBrickStairs => "minecraft:end_stone_brick_stairs", + BlockKind::StoneStairs => "minecraft:stone_stairs", + BlockKind::SmoothSandstoneStairs => "minecraft:smooth_sandstone_stairs", + BlockKind::SmoothQuartzStairs => "minecraft:smooth_quartz_stairs", + BlockKind::GraniteStairs => "minecraft:granite_stairs", + BlockKind::AndesiteStairs => "minecraft:andesite_stairs", + BlockKind::RedNetherBrickStairs => "minecraft:red_nether_brick_stairs", + BlockKind::PolishedAndesiteStairs => "minecraft:polished_andesite_stairs", + BlockKind::DioriteStairs => "minecraft:diorite_stairs", + BlockKind::PolishedGraniteSlab => "minecraft:polished_granite_slab", + BlockKind::SmoothRedSandstoneSlab => "minecraft:smooth_red_sandstone_slab", + BlockKind::MossyStoneBrickSlab => "minecraft:mossy_stone_brick_slab", + BlockKind::PolishedDioriteSlab => "minecraft:polished_diorite_slab", + BlockKind::MossyCobblestoneSlab => "minecraft:mossy_cobblestone_slab", + BlockKind::EndStoneBrickSlab => "minecraft:end_stone_brick_slab", + BlockKind::SmoothSandstoneSlab => "minecraft:smooth_sandstone_slab", + BlockKind::SmoothQuartzSlab => "minecraft:smooth_quartz_slab", + BlockKind::GraniteSlab => "minecraft:granite_slab", + BlockKind::AndesiteSlab => "minecraft:andesite_slab", + BlockKind::RedNetherBrickSlab => "minecraft:red_nether_brick_slab", + BlockKind::PolishedAndesiteSlab => "minecraft:polished_andesite_slab", + BlockKind::DioriteSlab => "minecraft:diorite_slab", + BlockKind::BrickWall => "minecraft:brick_wall", + BlockKind::PrismarineWall => "minecraft:prismarine_wall", + BlockKind::RedSandstoneWall => "minecraft:red_sandstone_wall", + BlockKind::MossyStoneBrickWall => "minecraft:mossy_stone_brick_wall", + BlockKind::GraniteWall => "minecraft:granite_wall", + BlockKind::StoneBrickWall => "minecraft:stone_brick_wall", + BlockKind::NetherBrickWall => "minecraft:nether_brick_wall", + BlockKind::AndesiteWall => "minecraft:andesite_wall", + BlockKind::RedNetherBrickWall => "minecraft:red_nether_brick_wall", + BlockKind::SandstoneWall => "minecraft:sandstone_wall", + BlockKind::EndStoneBrickWall => "minecraft:end_stone_brick_wall", + BlockKind::DioriteWall => "minecraft:diorite_wall", + BlockKind::Scaffolding => "minecraft:scaffolding", + BlockKind::Loom => "minecraft:loom", + BlockKind::Barrel => "minecraft:barrel", + BlockKind::Smoker => "minecraft:smoker", + BlockKind::BlastFurnace => "minecraft:blast_furnace", + BlockKind::CartographyTable => "minecraft:cartography_table", + BlockKind::FletchingTable => "minecraft:fletching_table", + BlockKind::Grindstone => "minecraft:grindstone", + BlockKind::Lectern => "minecraft:lectern", + BlockKind::SmithingTable => "minecraft:smithing_table", + BlockKind::Stonecutter => "minecraft:stonecutter", + BlockKind::Bell => "minecraft:bell", + BlockKind::Lantern => "minecraft:lantern", + BlockKind::SoulLantern => "minecraft:soul_lantern", + BlockKind::Campfire => "minecraft:campfire", + BlockKind::SoulCampfire => "minecraft:soul_campfire", + BlockKind::SweetBerryBush => "minecraft:sweet_berry_bush", + BlockKind::WarpedStem => "minecraft:warped_stem", + BlockKind::StrippedWarpedStem => "minecraft:stripped_warped_stem", + BlockKind::WarpedHyphae => "minecraft:warped_hyphae", + BlockKind::StrippedWarpedHyphae => "minecraft:stripped_warped_hyphae", + BlockKind::WarpedNylium => "minecraft:warped_nylium", + BlockKind::WarpedFungus => "minecraft:warped_fungus", + BlockKind::WarpedWartBlock => "minecraft:warped_wart_block", + BlockKind::WarpedRoots => "minecraft:warped_roots", + BlockKind::NetherSprouts => "minecraft:nether_sprouts", + BlockKind::CrimsonStem => "minecraft:crimson_stem", + BlockKind::StrippedCrimsonStem => "minecraft:stripped_crimson_stem", + BlockKind::CrimsonHyphae => "minecraft:crimson_hyphae", + BlockKind::StrippedCrimsonHyphae => "minecraft:stripped_crimson_hyphae", + BlockKind::CrimsonNylium => "minecraft:crimson_nylium", + BlockKind::CrimsonFungus => "minecraft:crimson_fungus", + BlockKind::Shroomlight => "minecraft:shroomlight", + BlockKind::WeepingVines => "minecraft:weeping_vines", + BlockKind::WeepingVinesPlant => "minecraft:weeping_vines_plant", + BlockKind::TwistingVines => "minecraft:twisting_vines", + BlockKind::TwistingVinesPlant => "minecraft:twisting_vines_plant", + BlockKind::CrimsonRoots => "minecraft:crimson_roots", + BlockKind::CrimsonPlanks => "minecraft:crimson_planks", + BlockKind::WarpedPlanks => "minecraft:warped_planks", + BlockKind::CrimsonSlab => "minecraft:crimson_slab", + BlockKind::WarpedSlab => "minecraft:warped_slab", + BlockKind::CrimsonPressurePlate => "minecraft:crimson_pressure_plate", + BlockKind::WarpedPressurePlate => "minecraft:warped_pressure_plate", + BlockKind::CrimsonFence => "minecraft:crimson_fence", + BlockKind::WarpedFence => "minecraft:warped_fence", + BlockKind::CrimsonTrapdoor => "minecraft:crimson_trapdoor", + BlockKind::WarpedTrapdoor => "minecraft:warped_trapdoor", + BlockKind::CrimsonFenceGate => "minecraft:crimson_fence_gate", + BlockKind::WarpedFenceGate => "minecraft:warped_fence_gate", + BlockKind::CrimsonStairs => "minecraft:crimson_stairs", + BlockKind::WarpedStairs => "minecraft:warped_stairs", + BlockKind::CrimsonButton => "minecraft:crimson_button", + BlockKind::WarpedButton => "minecraft:warped_button", + BlockKind::CrimsonDoor => "minecraft:crimson_door", + BlockKind::WarpedDoor => "minecraft:warped_door", + BlockKind::CrimsonSign => "minecraft:crimson_sign", + BlockKind::WarpedSign => "minecraft:warped_sign", + BlockKind::CrimsonWallSign => "minecraft:crimson_wall_sign", + BlockKind::WarpedWallSign => "minecraft:warped_wall_sign", + BlockKind::StructureBlock => "minecraft:structure_block", + BlockKind::Jigsaw => "minecraft:jigsaw", + BlockKind::Composter => "minecraft:composter", + BlockKind::Target => "minecraft:target", + BlockKind::BeeNest => "minecraft:bee_nest", + BlockKind::Beehive => "minecraft:beehive", + BlockKind::HoneyBlock => "minecraft:honey_block", + BlockKind::HoneycombBlock => "minecraft:honeycomb_block", + BlockKind::NetheriteBlock => "minecraft:netherite_block", + BlockKind::AncientDebris => "minecraft:ancient_debris", + BlockKind::CryingObsidian => "minecraft:crying_obsidian", + BlockKind::RespawnAnchor => "minecraft:respawn_anchor", + BlockKind::PottedCrimsonFungus => "minecraft:potted_crimson_fungus", + BlockKind::PottedWarpedFungus => "minecraft:potted_warped_fungus", + BlockKind::PottedCrimsonRoots => "minecraft:potted_crimson_roots", + BlockKind::PottedWarpedRoots => "minecraft:potted_warped_roots", + BlockKind::Lodestone => "minecraft:lodestone", + BlockKind::Blackstone => "minecraft:blackstone", + BlockKind::BlackstoneStairs => "minecraft:blackstone_stairs", + BlockKind::BlackstoneWall => "minecraft:blackstone_wall", + BlockKind::BlackstoneSlab => "minecraft:blackstone_slab", + BlockKind::PolishedBlackstone => "minecraft:polished_blackstone", + BlockKind::PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", + BlockKind::CrackedPolishedBlackstoneBricks => { + "minecraft:cracked_polished_blackstone_bricks" + } + BlockKind::ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", + BlockKind::PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", + BlockKind::PolishedBlackstoneBrickStairs => { + "minecraft:polished_blackstone_brick_stairs" + } + BlockKind::PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", + BlockKind::GildedBlackstone => "minecraft:gilded_blackstone", + BlockKind::PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", + BlockKind::PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", + BlockKind::PolishedBlackstonePressurePlate => { + "minecraft:polished_blackstone_pressure_plate" + } + BlockKind::PolishedBlackstoneButton => "minecraft:polished_blackstone_button", + BlockKind::PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", + BlockKind::ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", + BlockKind::CrackedNetherBricks => "minecraft:cracked_nether_bricks", + BlockKind::QuartzBricks => "minecraft:quartz_bricks", + BlockKind::Candle => "minecraft:candle", + BlockKind::WhiteCandle => "minecraft:white_candle", + BlockKind::OrangeCandle => "minecraft:orange_candle", + BlockKind::MagentaCandle => "minecraft:magenta_candle", + BlockKind::LightBlueCandle => "minecraft:light_blue_candle", + BlockKind::YellowCandle => "minecraft:yellow_candle", + BlockKind::LimeCandle => "minecraft:lime_candle", + BlockKind::PinkCandle => "minecraft:pink_candle", + BlockKind::GrayCandle => "minecraft:gray_candle", + BlockKind::LightGrayCandle => "minecraft:light_gray_candle", + BlockKind::CyanCandle => "minecraft:cyan_candle", + BlockKind::PurpleCandle => "minecraft:purple_candle", + BlockKind::BlueCandle => "minecraft:blue_candle", + BlockKind::BrownCandle => "minecraft:brown_candle", + BlockKind::GreenCandle => "minecraft:green_candle", + BlockKind::RedCandle => "minecraft:red_candle", + BlockKind::BlackCandle => "minecraft:black_candle", + BlockKind::CandleCake => "minecraft:candle_cake", + BlockKind::WhiteCandleCake => "minecraft:white_candle_cake", + BlockKind::OrangeCandleCake => "minecraft:orange_candle_cake", + BlockKind::MagentaCandleCake => "minecraft:magenta_candle_cake", + BlockKind::LightBlueCandleCake => "minecraft:light_blue_candle_cake", + BlockKind::YellowCandleCake => "minecraft:yellow_candle_cake", + BlockKind::LimeCandleCake => "minecraft:lime_candle_cake", + BlockKind::PinkCandleCake => "minecraft:pink_candle_cake", + BlockKind::GrayCandleCake => "minecraft:gray_candle_cake", + BlockKind::LightGrayCandleCake => "minecraft:light_gray_candle_cake", + BlockKind::CyanCandleCake => "minecraft:cyan_candle_cake", + BlockKind::PurpleCandleCake => "minecraft:purple_candle_cake", + BlockKind::BlueCandleCake => "minecraft:blue_candle_cake", + BlockKind::BrownCandleCake => "minecraft:brown_candle_cake", + BlockKind::GreenCandleCake => "minecraft:green_candle_cake", + BlockKind::RedCandleCake => "minecraft:red_candle_cake", + BlockKind::BlackCandleCake => "minecraft:black_candle_cake", + BlockKind::AmethystBlock => "minecraft:amethyst_block", + BlockKind::BuddingAmethyst => "minecraft:budding_amethyst", + BlockKind::AmethystCluster => "minecraft:amethyst_cluster", + BlockKind::LargeAmethystBud => "minecraft:large_amethyst_bud", + BlockKind::MediumAmethystBud => "minecraft:medium_amethyst_bud", + BlockKind::SmallAmethystBud => "minecraft:small_amethyst_bud", + BlockKind::Tuff => "minecraft:tuff", + BlockKind::Calcite => "minecraft:calcite", + BlockKind::TintedGlass => "minecraft:tinted_glass", + BlockKind::PowderSnow => "minecraft:powder_snow", + BlockKind::SculkSensor => "minecraft:sculk_sensor", + BlockKind::OxidizedCopper => "minecraft:oxidized_copper", + BlockKind::WeatheredCopper => "minecraft:weathered_copper", + BlockKind::ExposedCopper => "minecraft:exposed_copper", + BlockKind::CopperBlock => "minecraft:copper_block", + BlockKind::CopperOre => "minecraft:copper_ore", + BlockKind::DeepslateCopperOre => "minecraft:deepslate_copper_ore", + BlockKind::OxidizedCutCopper => "minecraft:oxidized_cut_copper", + BlockKind::WeatheredCutCopper => "minecraft:weathered_cut_copper", + BlockKind::ExposedCutCopper => "minecraft:exposed_cut_copper", + BlockKind::CutCopper => "minecraft:cut_copper", + BlockKind::OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", + BlockKind::WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", + BlockKind::ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", + BlockKind::CutCopperStairs => "minecraft:cut_copper_stairs", + BlockKind::OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", + BlockKind::WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", + BlockKind::ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", + BlockKind::CutCopperSlab => "minecraft:cut_copper_slab", + BlockKind::WaxedCopperBlock => "minecraft:waxed_copper_block", + BlockKind::WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", + BlockKind::WaxedExposedCopper => "minecraft:waxed_exposed_copper", + BlockKind::WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", + BlockKind::WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", + BlockKind::WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", + BlockKind::WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", + BlockKind::WaxedCutCopper => "minecraft:waxed_cut_copper", + BlockKind::WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", + BlockKind::WaxedWeatheredCutCopperStairs => { + "minecraft:waxed_weathered_cut_copper_stairs" + } + BlockKind::WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", + BlockKind::WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", + BlockKind::WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", + BlockKind::WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", + BlockKind::WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", + BlockKind::WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", + BlockKind::LightningRod => "minecraft:lightning_rod", + BlockKind::PointedDripstone => "minecraft:pointed_dripstone", + BlockKind::DripstoneBlock => "minecraft:dripstone_block", + BlockKind::CaveVines => "minecraft:cave_vines", + BlockKind::CaveVinesPlant => "minecraft:cave_vines_plant", + BlockKind::SporeBlossom => "minecraft:spore_blossom", + BlockKind::Azalea => "minecraft:azalea", + BlockKind::FloweringAzalea => "minecraft:flowering_azalea", + BlockKind::MossCarpet => "minecraft:moss_carpet", + BlockKind::MossBlock => "minecraft:moss_block", + BlockKind::BigDripleaf => "minecraft:big_dripleaf", + BlockKind::BigDripleafStem => "minecraft:big_dripleaf_stem", + BlockKind::SmallDripleaf => "minecraft:small_dripleaf", + BlockKind::HangingRoots => "minecraft:hanging_roots", + BlockKind::RootedDirt => "minecraft:rooted_dirt", + BlockKind::Deepslate => "minecraft:deepslate", + BlockKind::CobbledDeepslate => "minecraft:cobbled_deepslate", + BlockKind::CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", + BlockKind::CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", + BlockKind::CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", + BlockKind::PolishedDeepslate => "minecraft:polished_deepslate", + BlockKind::PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", + BlockKind::PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", + BlockKind::PolishedDeepslateWall => "minecraft:polished_deepslate_wall", + BlockKind::DeepslateTiles => "minecraft:deepslate_tiles", + BlockKind::DeepslateTileStairs => "minecraft:deepslate_tile_stairs", + BlockKind::DeepslateTileSlab => "minecraft:deepslate_tile_slab", + BlockKind::DeepslateTileWall => "minecraft:deepslate_tile_wall", + BlockKind::DeepslateBricks => "minecraft:deepslate_bricks", + BlockKind::DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", + BlockKind::DeepslateBrickSlab => "minecraft:deepslate_brick_slab", + BlockKind::DeepslateBrickWall => "minecraft:deepslate_brick_wall", + BlockKind::ChiseledDeepslate => "minecraft:chiseled_deepslate", + BlockKind::CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", + BlockKind::CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", + BlockKind::InfestedDeepslate => "minecraft:infested_deepslate", + BlockKind::SmoothBasalt => "minecraft:smooth_basalt", + BlockKind::RawIronBlock => "minecraft:raw_iron_block", + BlockKind::RawCopperBlock => "minecraft:raw_copper_block", + BlockKind::RawGoldBlock => "minecraft:raw_gold_block", + BlockKind::PottedAzaleaBush => "minecraft:potted_azalea_bush", + BlockKind::PottedFloweringAzaleaBush => "minecraft:potted_flowering_azalea_bush", + } + } + #[doc = "Gets a `BlockKind` by its `namespaced_id`."] + #[inline] + pub fn from_namespaced_id(namespaced_id: &str) -> Option { + match namespaced_id { + "minecraft:air" => Some(BlockKind::Air), + "minecraft:stone" => Some(BlockKind::Stone), + "minecraft:granite" => Some(BlockKind::Granite), + "minecraft:polished_granite" => Some(BlockKind::PolishedGranite), + "minecraft:diorite" => Some(BlockKind::Diorite), + "minecraft:polished_diorite" => Some(BlockKind::PolishedDiorite), + "minecraft:andesite" => Some(BlockKind::Andesite), + "minecraft:polished_andesite" => Some(BlockKind::PolishedAndesite), + "minecraft:grass_block" => Some(BlockKind::GrassBlock), + "minecraft:dirt" => Some(BlockKind::Dirt), + "minecraft:coarse_dirt" => Some(BlockKind::CoarseDirt), + "minecraft:podzol" => Some(BlockKind::Podzol), + "minecraft:cobblestone" => Some(BlockKind::Cobblestone), + "minecraft:oak_planks" => Some(BlockKind::OakPlanks), + "minecraft:spruce_planks" => Some(BlockKind::SprucePlanks), + "minecraft:birch_planks" => Some(BlockKind::BirchPlanks), + "minecraft:jungle_planks" => Some(BlockKind::JunglePlanks), + "minecraft:acacia_planks" => Some(BlockKind::AcaciaPlanks), + "minecraft:dark_oak_planks" => Some(BlockKind::DarkOakPlanks), + "minecraft:oak_sapling" => Some(BlockKind::OakSapling), + "minecraft:spruce_sapling" => Some(BlockKind::SpruceSapling), + "minecraft:birch_sapling" => Some(BlockKind::BirchSapling), + "minecraft:jungle_sapling" => Some(BlockKind::JungleSapling), + "minecraft:acacia_sapling" => Some(BlockKind::AcaciaSapling), + "minecraft:dark_oak_sapling" => Some(BlockKind::DarkOakSapling), + "minecraft:bedrock" => Some(BlockKind::Bedrock), + "minecraft:water" => Some(BlockKind::Water), + "minecraft:lava" => Some(BlockKind::Lava), + "minecraft:sand" => Some(BlockKind::Sand), + "minecraft:red_sand" => Some(BlockKind::RedSand), + "minecraft:gravel" => Some(BlockKind::Gravel), + "minecraft:gold_ore" => Some(BlockKind::GoldOre), + "minecraft:deepslate_gold_ore" => Some(BlockKind::DeepslateGoldOre), + "minecraft:iron_ore" => Some(BlockKind::IronOre), + "minecraft:deepslate_iron_ore" => Some(BlockKind::DeepslateIronOre), + "minecraft:coal_ore" => Some(BlockKind::CoalOre), + "minecraft:deepslate_coal_ore" => Some(BlockKind::DeepslateCoalOre), + "minecraft:nether_gold_ore" => Some(BlockKind::NetherGoldOre), + "minecraft:oak_log" => Some(BlockKind::OakLog), + "minecraft:spruce_log" => Some(BlockKind::SpruceLog), + "minecraft:birch_log" => Some(BlockKind::BirchLog), + "minecraft:jungle_log" => Some(BlockKind::JungleLog), + "minecraft:acacia_log" => Some(BlockKind::AcaciaLog), + "minecraft:dark_oak_log" => Some(BlockKind::DarkOakLog), + "minecraft:stripped_spruce_log" => Some(BlockKind::StrippedSpruceLog), + "minecraft:stripped_birch_log" => Some(BlockKind::StrippedBirchLog), + "minecraft:stripped_jungle_log" => Some(BlockKind::StrippedJungleLog), + "minecraft:stripped_acacia_log" => Some(BlockKind::StrippedAcaciaLog), + "minecraft:stripped_dark_oak_log" => Some(BlockKind::StrippedDarkOakLog), + "minecraft:stripped_oak_log" => Some(BlockKind::StrippedOakLog), + "minecraft:oak_wood" => Some(BlockKind::OakWood), + "minecraft:spruce_wood" => Some(BlockKind::SpruceWood), + "minecraft:birch_wood" => Some(BlockKind::BirchWood), + "minecraft:jungle_wood" => Some(BlockKind::JungleWood), + "minecraft:acacia_wood" => Some(BlockKind::AcaciaWood), + "minecraft:dark_oak_wood" => Some(BlockKind::DarkOakWood), + "minecraft:stripped_oak_wood" => Some(BlockKind::StrippedOakWood), + "minecraft:stripped_spruce_wood" => Some(BlockKind::StrippedSpruceWood), + "minecraft:stripped_birch_wood" => Some(BlockKind::StrippedBirchWood), + "minecraft:stripped_jungle_wood" => Some(BlockKind::StrippedJungleWood), + "minecraft:stripped_acacia_wood" => Some(BlockKind::StrippedAcaciaWood), + "minecraft:stripped_dark_oak_wood" => Some(BlockKind::StrippedDarkOakWood), + "minecraft:oak_leaves" => Some(BlockKind::OakLeaves), + "minecraft:spruce_leaves" => Some(BlockKind::SpruceLeaves), + "minecraft:birch_leaves" => Some(BlockKind::BirchLeaves), + "minecraft:jungle_leaves" => Some(BlockKind::JungleLeaves), + "minecraft:acacia_leaves" => Some(BlockKind::AcaciaLeaves), + "minecraft:dark_oak_leaves" => Some(BlockKind::DarkOakLeaves), + "minecraft:azalea_leaves" => Some(BlockKind::AzaleaLeaves), + "minecraft:flowering_azalea_leaves" => Some(BlockKind::FloweringAzaleaLeaves), + "minecraft:sponge" => Some(BlockKind::Sponge), + "minecraft:wet_sponge" => Some(BlockKind::WetSponge), + "minecraft:glass" => Some(BlockKind::Glass), + "minecraft:lapis_ore" => Some(BlockKind::LapisOre), + "minecraft:deepslate_lapis_ore" => Some(BlockKind::DeepslateLapisOre), + "minecraft:lapis_block" => Some(BlockKind::LapisBlock), + "minecraft:dispenser" => Some(BlockKind::Dispenser), + "minecraft:sandstone" => Some(BlockKind::Sandstone), + "minecraft:chiseled_sandstone" => Some(BlockKind::ChiseledSandstone), + "minecraft:cut_sandstone" => Some(BlockKind::CutSandstone), + "minecraft:note_block" => Some(BlockKind::NoteBlock), + "minecraft:white_bed" => Some(BlockKind::WhiteBed), + "minecraft:orange_bed" => Some(BlockKind::OrangeBed), + "minecraft:magenta_bed" => Some(BlockKind::MagentaBed), + "minecraft:light_blue_bed" => Some(BlockKind::LightBlueBed), + "minecraft:yellow_bed" => Some(BlockKind::YellowBed), + "minecraft:lime_bed" => Some(BlockKind::LimeBed), + "minecraft:pink_bed" => Some(BlockKind::PinkBed), + "minecraft:gray_bed" => Some(BlockKind::GrayBed), + "minecraft:light_gray_bed" => Some(BlockKind::LightGrayBed), + "minecraft:cyan_bed" => Some(BlockKind::CyanBed), + "minecraft:purple_bed" => Some(BlockKind::PurpleBed), + "minecraft:blue_bed" => Some(BlockKind::BlueBed), + "minecraft:brown_bed" => Some(BlockKind::BrownBed), + "minecraft:green_bed" => Some(BlockKind::GreenBed), + "minecraft:red_bed" => Some(BlockKind::RedBed), + "minecraft:black_bed" => Some(BlockKind::BlackBed), + "minecraft:powered_rail" => Some(BlockKind::PoweredRail), + "minecraft:detector_rail" => Some(BlockKind::DetectorRail), + "minecraft:sticky_piston" => Some(BlockKind::StickyPiston), + "minecraft:cobweb" => Some(BlockKind::Cobweb), + "minecraft:grass" => Some(BlockKind::Grass), + "minecraft:fern" => Some(BlockKind::Fern), + "minecraft:dead_bush" => Some(BlockKind::DeadBush), + "minecraft:seagrass" => Some(BlockKind::Seagrass), + "minecraft:tall_seagrass" => Some(BlockKind::TallSeagrass), + "minecraft:piston" => Some(BlockKind::Piston), + "minecraft:piston_head" => Some(BlockKind::PistonHead), + "minecraft:white_wool" => Some(BlockKind::WhiteWool), + "minecraft:orange_wool" => Some(BlockKind::OrangeWool), + "minecraft:magenta_wool" => Some(BlockKind::MagentaWool), + "minecraft:light_blue_wool" => Some(BlockKind::LightBlueWool), + "minecraft:yellow_wool" => Some(BlockKind::YellowWool), + "minecraft:lime_wool" => Some(BlockKind::LimeWool), + "minecraft:pink_wool" => Some(BlockKind::PinkWool), + "minecraft:gray_wool" => Some(BlockKind::GrayWool), + "minecraft:light_gray_wool" => Some(BlockKind::LightGrayWool), + "minecraft:cyan_wool" => Some(BlockKind::CyanWool), + "minecraft:purple_wool" => Some(BlockKind::PurpleWool), + "minecraft:blue_wool" => Some(BlockKind::BlueWool), + "minecraft:brown_wool" => Some(BlockKind::BrownWool), + "minecraft:green_wool" => Some(BlockKind::GreenWool), + "minecraft:red_wool" => Some(BlockKind::RedWool), + "minecraft:black_wool" => Some(BlockKind::BlackWool), + "minecraft:moving_piston" => Some(BlockKind::MovingPiston), + "minecraft:dandelion" => Some(BlockKind::Dandelion), + "minecraft:poppy" => Some(BlockKind::Poppy), + "minecraft:blue_orchid" => Some(BlockKind::BlueOrchid), + "minecraft:allium" => Some(BlockKind::Allium), + "minecraft:azure_bluet" => Some(BlockKind::AzureBluet), + "minecraft:red_tulip" => Some(BlockKind::RedTulip), + "minecraft:orange_tulip" => Some(BlockKind::OrangeTulip), + "minecraft:white_tulip" => Some(BlockKind::WhiteTulip), + "minecraft:pink_tulip" => Some(BlockKind::PinkTulip), + "minecraft:oxeye_daisy" => Some(BlockKind::OxeyeDaisy), + "minecraft:cornflower" => Some(BlockKind::Cornflower), + "minecraft:wither_rose" => Some(BlockKind::WitherRose), + "minecraft:lily_of_the_valley" => Some(BlockKind::LilyOfTheValley), + "minecraft:brown_mushroom" => Some(BlockKind::BrownMushroom), + "minecraft:red_mushroom" => Some(BlockKind::RedMushroom), + "minecraft:gold_block" => Some(BlockKind::GoldBlock), + "minecraft:iron_block" => Some(BlockKind::IronBlock), + "minecraft:bricks" => Some(BlockKind::Bricks), + "minecraft:tnt" => Some(BlockKind::Tnt), + "minecraft:bookshelf" => Some(BlockKind::Bookshelf), + "minecraft:mossy_cobblestone" => Some(BlockKind::MossyCobblestone), + "minecraft:obsidian" => Some(BlockKind::Obsidian), + "minecraft:torch" => Some(BlockKind::Torch), + "minecraft:wall_torch" => Some(BlockKind::WallTorch), + "minecraft:fire" => Some(BlockKind::Fire), + "minecraft:soul_fire" => Some(BlockKind::SoulFire), + "minecraft:spawner" => Some(BlockKind::Spawner), + "minecraft:oak_stairs" => Some(BlockKind::OakStairs), + "minecraft:chest" => Some(BlockKind::Chest), + "minecraft:redstone_wire" => Some(BlockKind::RedstoneWire), + "minecraft:diamond_ore" => Some(BlockKind::DiamondOre), + "minecraft:deepslate_diamond_ore" => Some(BlockKind::DeepslateDiamondOre), + "minecraft:diamond_block" => Some(BlockKind::DiamondBlock), + "minecraft:crafting_table" => Some(BlockKind::CraftingTable), + "minecraft:wheat" => Some(BlockKind::Wheat), + "minecraft:farmland" => Some(BlockKind::Farmland), + "minecraft:furnace" => Some(BlockKind::Furnace), + "minecraft:oak_sign" => Some(BlockKind::OakSign), + "minecraft:spruce_sign" => Some(BlockKind::SpruceSign), + "minecraft:birch_sign" => Some(BlockKind::BirchSign), + "minecraft:acacia_sign" => Some(BlockKind::AcaciaSign), + "minecraft:jungle_sign" => Some(BlockKind::JungleSign), + "minecraft:dark_oak_sign" => Some(BlockKind::DarkOakSign), + "minecraft:oak_door" => Some(BlockKind::OakDoor), + "minecraft:ladder" => Some(BlockKind::Ladder), + "minecraft:rail" => Some(BlockKind::Rail), + "minecraft:cobblestone_stairs" => Some(BlockKind::CobblestoneStairs), + "minecraft:oak_wall_sign" => Some(BlockKind::OakWallSign), + "minecraft:spruce_wall_sign" => Some(BlockKind::SpruceWallSign), + "minecraft:birch_wall_sign" => Some(BlockKind::BirchWallSign), + "minecraft:acacia_wall_sign" => Some(BlockKind::AcaciaWallSign), + "minecraft:jungle_wall_sign" => Some(BlockKind::JungleWallSign), + "minecraft:dark_oak_wall_sign" => Some(BlockKind::DarkOakWallSign), + "minecraft:lever" => Some(BlockKind::Lever), + "minecraft:stone_pressure_plate" => Some(BlockKind::StonePressurePlate), + "minecraft:iron_door" => Some(BlockKind::IronDoor), + "minecraft:oak_pressure_plate" => Some(BlockKind::OakPressurePlate), + "minecraft:spruce_pressure_plate" => Some(BlockKind::SprucePressurePlate), + "minecraft:birch_pressure_plate" => Some(BlockKind::BirchPressurePlate), + "minecraft:jungle_pressure_plate" => Some(BlockKind::JunglePressurePlate), + "minecraft:acacia_pressure_plate" => Some(BlockKind::AcaciaPressurePlate), + "minecraft:dark_oak_pressure_plate" => Some(BlockKind::DarkOakPressurePlate), + "minecraft:redstone_ore" => Some(BlockKind::RedstoneOre), + "minecraft:deepslate_redstone_ore" => Some(BlockKind::DeepslateRedstoneOre), + "minecraft:redstone_torch" => Some(BlockKind::RedstoneTorch), + "minecraft:redstone_wall_torch" => Some(BlockKind::RedstoneWallTorch), + "minecraft:stone_button" => Some(BlockKind::StoneButton), + "minecraft:snow" => Some(BlockKind::Snow), + "minecraft:ice" => Some(BlockKind::Ice), + "minecraft:snow_block" => Some(BlockKind::SnowBlock), + "minecraft:cactus" => Some(BlockKind::Cactus), + "minecraft:clay" => Some(BlockKind::Clay), + "minecraft:sugar_cane" => Some(BlockKind::SugarCane), + "minecraft:jukebox" => Some(BlockKind::Jukebox), + "minecraft:oak_fence" => Some(BlockKind::OakFence), + "minecraft:pumpkin" => Some(BlockKind::Pumpkin), + "minecraft:netherrack" => Some(BlockKind::Netherrack), + "minecraft:soul_sand" => Some(BlockKind::SoulSand), + "minecraft:soul_soil" => Some(BlockKind::SoulSoil), + "minecraft:basalt" => Some(BlockKind::Basalt), + "minecraft:polished_basalt" => Some(BlockKind::PolishedBasalt), + "minecraft:soul_torch" => Some(BlockKind::SoulTorch), + "minecraft:soul_wall_torch" => Some(BlockKind::SoulWallTorch), + "minecraft:glowstone" => Some(BlockKind::Glowstone), + "minecraft:nether_portal" => Some(BlockKind::NetherPortal), + "minecraft:carved_pumpkin" => Some(BlockKind::CarvedPumpkin), + "minecraft:jack_o_lantern" => Some(BlockKind::JackOLantern), + "minecraft:cake" => Some(BlockKind::Cake), + "minecraft:repeater" => Some(BlockKind::Repeater), + "minecraft:white_stained_glass" => Some(BlockKind::WhiteStainedGlass), + "minecraft:orange_stained_glass" => Some(BlockKind::OrangeStainedGlass), + "minecraft:magenta_stained_glass" => Some(BlockKind::MagentaStainedGlass), + "minecraft:light_blue_stained_glass" => Some(BlockKind::LightBlueStainedGlass), + "minecraft:yellow_stained_glass" => Some(BlockKind::YellowStainedGlass), + "minecraft:lime_stained_glass" => Some(BlockKind::LimeStainedGlass), + "minecraft:pink_stained_glass" => Some(BlockKind::PinkStainedGlass), + "minecraft:gray_stained_glass" => Some(BlockKind::GrayStainedGlass), + "minecraft:light_gray_stained_glass" => Some(BlockKind::LightGrayStainedGlass), + "minecraft:cyan_stained_glass" => Some(BlockKind::CyanStainedGlass), + "minecraft:purple_stained_glass" => Some(BlockKind::PurpleStainedGlass), + "minecraft:blue_stained_glass" => Some(BlockKind::BlueStainedGlass), + "minecraft:brown_stained_glass" => Some(BlockKind::BrownStainedGlass), + "minecraft:green_stained_glass" => Some(BlockKind::GreenStainedGlass), + "minecraft:red_stained_glass" => Some(BlockKind::RedStainedGlass), + "minecraft:black_stained_glass" => Some(BlockKind::BlackStainedGlass), + "minecraft:oak_trapdoor" => Some(BlockKind::OakTrapdoor), + "minecraft:spruce_trapdoor" => Some(BlockKind::SpruceTrapdoor), + "minecraft:birch_trapdoor" => Some(BlockKind::BirchTrapdoor), + "minecraft:jungle_trapdoor" => Some(BlockKind::JungleTrapdoor), + "minecraft:acacia_trapdoor" => Some(BlockKind::AcaciaTrapdoor), + "minecraft:dark_oak_trapdoor" => Some(BlockKind::DarkOakTrapdoor), + "minecraft:stone_bricks" => Some(BlockKind::StoneBricks), + "minecraft:mossy_stone_bricks" => Some(BlockKind::MossyStoneBricks), + "minecraft:cracked_stone_bricks" => Some(BlockKind::CrackedStoneBricks), + "minecraft:chiseled_stone_bricks" => Some(BlockKind::ChiseledStoneBricks), + "minecraft:infested_stone" => Some(BlockKind::InfestedStone), + "minecraft:infested_cobblestone" => Some(BlockKind::InfestedCobblestone), + "minecraft:infested_stone_bricks" => Some(BlockKind::InfestedStoneBricks), + "minecraft:infested_mossy_stone_bricks" => Some(BlockKind::InfestedMossyStoneBricks), + "minecraft:infested_cracked_stone_bricks" => { + Some(BlockKind::InfestedCrackedStoneBricks) + } + "minecraft:infested_chiseled_stone_bricks" => { + Some(BlockKind::InfestedChiseledStoneBricks) + } + "minecraft:brown_mushroom_block" => Some(BlockKind::BrownMushroomBlock), + "minecraft:red_mushroom_block" => Some(BlockKind::RedMushroomBlock), + "minecraft:mushroom_stem" => Some(BlockKind::MushroomStem), + "minecraft:iron_bars" => Some(BlockKind::IronBars), + "minecraft:chain" => Some(BlockKind::Chain), + "minecraft:glass_pane" => Some(BlockKind::GlassPane), + "minecraft:melon" => Some(BlockKind::Melon), + "minecraft:attached_pumpkin_stem" => Some(BlockKind::AttachedPumpkinStem), + "minecraft:attached_melon_stem" => Some(BlockKind::AttachedMelonStem), + "minecraft:pumpkin_stem" => Some(BlockKind::PumpkinStem), + "minecraft:melon_stem" => Some(BlockKind::MelonStem), + "minecraft:vine" => Some(BlockKind::Vine), + "minecraft:glow_lichen" => Some(BlockKind::GlowLichen), + "minecraft:oak_fence_gate" => Some(BlockKind::OakFenceGate), + "minecraft:brick_stairs" => Some(BlockKind::BrickStairs), + "minecraft:stone_brick_stairs" => Some(BlockKind::StoneBrickStairs), + "minecraft:mycelium" => Some(BlockKind::Mycelium), + "minecraft:lily_pad" => Some(BlockKind::LilyPad), + "minecraft:nether_bricks" => Some(BlockKind::NetherBricks), + "minecraft:nether_brick_fence" => Some(BlockKind::NetherBrickFence), + "minecraft:nether_brick_stairs" => Some(BlockKind::NetherBrickStairs), + "minecraft:nether_wart" => Some(BlockKind::NetherWart), + "minecraft:enchanting_table" => Some(BlockKind::EnchantingTable), + "minecraft:brewing_stand" => Some(BlockKind::BrewingStand), + "minecraft:cauldron" => Some(BlockKind::Cauldron), + "minecraft:water_cauldron" => Some(BlockKind::WaterCauldron), + "minecraft:lava_cauldron" => Some(BlockKind::LavaCauldron), + "minecraft:powder_snow_cauldron" => Some(BlockKind::PowderSnowCauldron), + "minecraft:end_portal" => Some(BlockKind::EndPortal), + "minecraft:end_portal_frame" => Some(BlockKind::EndPortalFrame), + "minecraft:end_stone" => Some(BlockKind::EndStone), + "minecraft:dragon_egg" => Some(BlockKind::DragonEgg), + "minecraft:redstone_lamp" => Some(BlockKind::RedstoneLamp), + "minecraft:cocoa" => Some(BlockKind::Cocoa), + "minecraft:sandstone_stairs" => Some(BlockKind::SandstoneStairs), + "minecraft:emerald_ore" => Some(BlockKind::EmeraldOre), + "minecraft:deepslate_emerald_ore" => Some(BlockKind::DeepslateEmeraldOre), + "minecraft:ender_chest" => Some(BlockKind::EnderChest), + "minecraft:tripwire_hook" => Some(BlockKind::TripwireHook), + "minecraft:tripwire" => Some(BlockKind::Tripwire), + "minecraft:emerald_block" => Some(BlockKind::EmeraldBlock), + "minecraft:spruce_stairs" => Some(BlockKind::SpruceStairs), + "minecraft:birch_stairs" => Some(BlockKind::BirchStairs), + "minecraft:jungle_stairs" => Some(BlockKind::JungleStairs), + "minecraft:command_block" => Some(BlockKind::CommandBlock), + "minecraft:beacon" => Some(BlockKind::Beacon), + "minecraft:cobblestone_wall" => Some(BlockKind::CobblestoneWall), + "minecraft:mossy_cobblestone_wall" => Some(BlockKind::MossyCobblestoneWall), + "minecraft:flower_pot" => Some(BlockKind::FlowerPot), + "minecraft:potted_oak_sapling" => Some(BlockKind::PottedOakSapling), + "minecraft:potted_spruce_sapling" => Some(BlockKind::PottedSpruceSapling), + "minecraft:potted_birch_sapling" => Some(BlockKind::PottedBirchSapling), + "minecraft:potted_jungle_sapling" => Some(BlockKind::PottedJungleSapling), + "minecraft:potted_acacia_sapling" => Some(BlockKind::PottedAcaciaSapling), + "minecraft:potted_dark_oak_sapling" => Some(BlockKind::PottedDarkOakSapling), + "minecraft:potted_fern" => Some(BlockKind::PottedFern), + "minecraft:potted_dandelion" => Some(BlockKind::PottedDandelion), + "minecraft:potted_poppy" => Some(BlockKind::PottedPoppy), + "minecraft:potted_blue_orchid" => Some(BlockKind::PottedBlueOrchid), + "minecraft:potted_allium" => Some(BlockKind::PottedAllium), + "minecraft:potted_azure_bluet" => Some(BlockKind::PottedAzureBluet), + "minecraft:potted_red_tulip" => Some(BlockKind::PottedRedTulip), + "minecraft:potted_orange_tulip" => Some(BlockKind::PottedOrangeTulip), + "minecraft:potted_white_tulip" => Some(BlockKind::PottedWhiteTulip), + "minecraft:potted_pink_tulip" => Some(BlockKind::PottedPinkTulip), + "minecraft:potted_oxeye_daisy" => Some(BlockKind::PottedOxeyeDaisy), + "minecraft:potted_cornflower" => Some(BlockKind::PottedCornflower), + "minecraft:potted_lily_of_the_valley" => Some(BlockKind::PottedLilyOfTheValley), + "minecraft:potted_wither_rose" => Some(BlockKind::PottedWitherRose), + "minecraft:potted_red_mushroom" => Some(BlockKind::PottedRedMushroom), + "minecraft:potted_brown_mushroom" => Some(BlockKind::PottedBrownMushroom), + "minecraft:potted_dead_bush" => Some(BlockKind::PottedDeadBush), + "minecraft:potted_cactus" => Some(BlockKind::PottedCactus), + "minecraft:carrots" => Some(BlockKind::Carrots), + "minecraft:potatoes" => Some(BlockKind::Potatoes), + "minecraft:oak_button" => Some(BlockKind::OakButton), + "minecraft:spruce_button" => Some(BlockKind::SpruceButton), + "minecraft:birch_button" => Some(BlockKind::BirchButton), + "minecraft:jungle_button" => Some(BlockKind::JungleButton), + "minecraft:acacia_button" => Some(BlockKind::AcaciaButton), + "minecraft:dark_oak_button" => Some(BlockKind::DarkOakButton), + "minecraft:skeleton_skull" => Some(BlockKind::SkeletonSkull), + "minecraft:skeleton_wall_skull" => Some(BlockKind::SkeletonWallSkull), + "minecraft:wither_skeleton_skull" => Some(BlockKind::WitherSkeletonSkull), + "minecraft:wither_skeleton_wall_skull" => Some(BlockKind::WitherSkeletonWallSkull), + "minecraft:zombie_head" => Some(BlockKind::ZombieHead), + "minecraft:zombie_wall_head" => Some(BlockKind::ZombieWallHead), + "minecraft:player_head" => Some(BlockKind::PlayerHead), + "minecraft:player_wall_head" => Some(BlockKind::PlayerWallHead), + "minecraft:creeper_head" => Some(BlockKind::CreeperHead), + "minecraft:creeper_wall_head" => Some(BlockKind::CreeperWallHead), + "minecraft:dragon_head" => Some(BlockKind::DragonHead), + "minecraft:dragon_wall_head" => Some(BlockKind::DragonWallHead), + "minecraft:anvil" => Some(BlockKind::Anvil), + "minecraft:chipped_anvil" => Some(BlockKind::ChippedAnvil), + "minecraft:damaged_anvil" => Some(BlockKind::DamagedAnvil), + "minecraft:trapped_chest" => Some(BlockKind::TrappedChest), + "minecraft:light_weighted_pressure_plate" => { + Some(BlockKind::LightWeightedPressurePlate) + } + "minecraft:heavy_weighted_pressure_plate" => { + Some(BlockKind::HeavyWeightedPressurePlate) + } + "minecraft:comparator" => Some(BlockKind::Comparator), + "minecraft:daylight_detector" => Some(BlockKind::DaylightDetector), + "minecraft:redstone_block" => Some(BlockKind::RedstoneBlock), + "minecraft:nether_quartz_ore" => Some(BlockKind::NetherQuartzOre), + "minecraft:hopper" => Some(BlockKind::Hopper), + "minecraft:quartz_block" => Some(BlockKind::QuartzBlock), + "minecraft:chiseled_quartz_block" => Some(BlockKind::ChiseledQuartzBlock), + "minecraft:quartz_pillar" => Some(BlockKind::QuartzPillar), + "minecraft:quartz_stairs" => Some(BlockKind::QuartzStairs), + "minecraft:activator_rail" => Some(BlockKind::ActivatorRail), + "minecraft:dropper" => Some(BlockKind::Dropper), + "minecraft:white_terracotta" => Some(BlockKind::WhiteTerracotta), + "minecraft:orange_terracotta" => Some(BlockKind::OrangeTerracotta), + "minecraft:magenta_terracotta" => Some(BlockKind::MagentaTerracotta), + "minecraft:light_blue_terracotta" => Some(BlockKind::LightBlueTerracotta), + "minecraft:yellow_terracotta" => Some(BlockKind::YellowTerracotta), + "minecraft:lime_terracotta" => Some(BlockKind::LimeTerracotta), + "minecraft:pink_terracotta" => Some(BlockKind::PinkTerracotta), + "minecraft:gray_terracotta" => Some(BlockKind::GrayTerracotta), + "minecraft:light_gray_terracotta" => Some(BlockKind::LightGrayTerracotta), + "minecraft:cyan_terracotta" => Some(BlockKind::CyanTerracotta), + "minecraft:purple_terracotta" => Some(BlockKind::PurpleTerracotta), + "minecraft:blue_terracotta" => Some(BlockKind::BlueTerracotta), + "minecraft:brown_terracotta" => Some(BlockKind::BrownTerracotta), + "minecraft:green_terracotta" => Some(BlockKind::GreenTerracotta), + "minecraft:red_terracotta" => Some(BlockKind::RedTerracotta), + "minecraft:black_terracotta" => Some(BlockKind::BlackTerracotta), + "minecraft:white_stained_glass_pane" => Some(BlockKind::WhiteStainedGlassPane), + "minecraft:orange_stained_glass_pane" => Some(BlockKind::OrangeStainedGlassPane), + "minecraft:magenta_stained_glass_pane" => Some(BlockKind::MagentaStainedGlassPane), + "minecraft:light_blue_stained_glass_pane" => Some(BlockKind::LightBlueStainedGlassPane), + "minecraft:yellow_stained_glass_pane" => Some(BlockKind::YellowStainedGlassPane), + "minecraft:lime_stained_glass_pane" => Some(BlockKind::LimeStainedGlassPane), + "minecraft:pink_stained_glass_pane" => Some(BlockKind::PinkStainedGlassPane), + "minecraft:gray_stained_glass_pane" => Some(BlockKind::GrayStainedGlassPane), + "minecraft:light_gray_stained_glass_pane" => Some(BlockKind::LightGrayStainedGlassPane), + "minecraft:cyan_stained_glass_pane" => Some(BlockKind::CyanStainedGlassPane), + "minecraft:purple_stained_glass_pane" => Some(BlockKind::PurpleStainedGlassPane), + "minecraft:blue_stained_glass_pane" => Some(BlockKind::BlueStainedGlassPane), + "minecraft:brown_stained_glass_pane" => Some(BlockKind::BrownStainedGlassPane), + "minecraft:green_stained_glass_pane" => Some(BlockKind::GreenStainedGlassPane), + "minecraft:red_stained_glass_pane" => Some(BlockKind::RedStainedGlassPane), + "minecraft:black_stained_glass_pane" => Some(BlockKind::BlackStainedGlassPane), + "minecraft:acacia_stairs" => Some(BlockKind::AcaciaStairs), + "minecraft:dark_oak_stairs" => Some(BlockKind::DarkOakStairs), + "minecraft:slime_block" => Some(BlockKind::SlimeBlock), + "minecraft:barrier" => Some(BlockKind::Barrier), + "minecraft:light" => Some(BlockKind::Light), + "minecraft:iron_trapdoor" => Some(BlockKind::IronTrapdoor), + "minecraft:prismarine" => Some(BlockKind::Prismarine), + "minecraft:prismarine_bricks" => Some(BlockKind::PrismarineBricks), + "minecraft:dark_prismarine" => Some(BlockKind::DarkPrismarine), + "minecraft:prismarine_stairs" => Some(BlockKind::PrismarineStairs), + "minecraft:prismarine_brick_stairs" => Some(BlockKind::PrismarineBrickStairs), + "minecraft:dark_prismarine_stairs" => Some(BlockKind::DarkPrismarineStairs), + "minecraft:prismarine_slab" => Some(BlockKind::PrismarineSlab), + "minecraft:prismarine_brick_slab" => Some(BlockKind::PrismarineBrickSlab), + "minecraft:dark_prismarine_slab" => Some(BlockKind::DarkPrismarineSlab), + "minecraft:sea_lantern" => Some(BlockKind::SeaLantern), + "minecraft:hay_block" => Some(BlockKind::HayBlock), + "minecraft:white_carpet" => Some(BlockKind::WhiteCarpet), + "minecraft:orange_carpet" => Some(BlockKind::OrangeCarpet), + "minecraft:magenta_carpet" => Some(BlockKind::MagentaCarpet), + "minecraft:light_blue_carpet" => Some(BlockKind::LightBlueCarpet), + "minecraft:yellow_carpet" => Some(BlockKind::YellowCarpet), + "minecraft:lime_carpet" => Some(BlockKind::LimeCarpet), + "minecraft:pink_carpet" => Some(BlockKind::PinkCarpet), + "minecraft:gray_carpet" => Some(BlockKind::GrayCarpet), + "minecraft:light_gray_carpet" => Some(BlockKind::LightGrayCarpet), + "minecraft:cyan_carpet" => Some(BlockKind::CyanCarpet), + "minecraft:purple_carpet" => Some(BlockKind::PurpleCarpet), + "minecraft:blue_carpet" => Some(BlockKind::BlueCarpet), + "minecraft:brown_carpet" => Some(BlockKind::BrownCarpet), + "minecraft:green_carpet" => Some(BlockKind::GreenCarpet), + "minecraft:red_carpet" => Some(BlockKind::RedCarpet), + "minecraft:black_carpet" => Some(BlockKind::BlackCarpet), + "minecraft:terracotta" => Some(BlockKind::Terracotta), + "minecraft:coal_block" => Some(BlockKind::CoalBlock), + "minecraft:packed_ice" => Some(BlockKind::PackedIce), + "minecraft:sunflower" => Some(BlockKind::Sunflower), + "minecraft:lilac" => Some(BlockKind::Lilac), + "minecraft:rose_bush" => Some(BlockKind::RoseBush), + "minecraft:peony" => Some(BlockKind::Peony), + "minecraft:tall_grass" => Some(BlockKind::TallGrass), + "minecraft:large_fern" => Some(BlockKind::LargeFern), + "minecraft:white_banner" => Some(BlockKind::WhiteBanner), + "minecraft:orange_banner" => Some(BlockKind::OrangeBanner), + "minecraft:magenta_banner" => Some(BlockKind::MagentaBanner), + "minecraft:light_blue_banner" => Some(BlockKind::LightBlueBanner), + "minecraft:yellow_banner" => Some(BlockKind::YellowBanner), + "minecraft:lime_banner" => Some(BlockKind::LimeBanner), + "minecraft:pink_banner" => Some(BlockKind::PinkBanner), + "minecraft:gray_banner" => Some(BlockKind::GrayBanner), + "minecraft:light_gray_banner" => Some(BlockKind::LightGrayBanner), + "minecraft:cyan_banner" => Some(BlockKind::CyanBanner), + "minecraft:purple_banner" => Some(BlockKind::PurpleBanner), + "minecraft:blue_banner" => Some(BlockKind::BlueBanner), + "minecraft:brown_banner" => Some(BlockKind::BrownBanner), + "minecraft:green_banner" => Some(BlockKind::GreenBanner), + "minecraft:red_banner" => Some(BlockKind::RedBanner), + "minecraft:black_banner" => Some(BlockKind::BlackBanner), + "minecraft:white_wall_banner" => Some(BlockKind::WhiteWallBanner), + "minecraft:orange_wall_banner" => Some(BlockKind::OrangeWallBanner), + "minecraft:magenta_wall_banner" => Some(BlockKind::MagentaWallBanner), + "minecraft:light_blue_wall_banner" => Some(BlockKind::LightBlueWallBanner), + "minecraft:yellow_wall_banner" => Some(BlockKind::YellowWallBanner), + "minecraft:lime_wall_banner" => Some(BlockKind::LimeWallBanner), + "minecraft:pink_wall_banner" => Some(BlockKind::PinkWallBanner), + "minecraft:gray_wall_banner" => Some(BlockKind::GrayWallBanner), + "minecraft:light_gray_wall_banner" => Some(BlockKind::LightGrayWallBanner), + "minecraft:cyan_wall_banner" => Some(BlockKind::CyanWallBanner), + "minecraft:purple_wall_banner" => Some(BlockKind::PurpleWallBanner), + "minecraft:blue_wall_banner" => Some(BlockKind::BlueWallBanner), + "minecraft:brown_wall_banner" => Some(BlockKind::BrownWallBanner), + "minecraft:green_wall_banner" => Some(BlockKind::GreenWallBanner), + "minecraft:red_wall_banner" => Some(BlockKind::RedWallBanner), + "minecraft:black_wall_banner" => Some(BlockKind::BlackWallBanner), + "minecraft:red_sandstone" => Some(BlockKind::RedSandstone), + "minecraft:chiseled_red_sandstone" => Some(BlockKind::ChiseledRedSandstone), + "minecraft:cut_red_sandstone" => Some(BlockKind::CutRedSandstone), + "minecraft:red_sandstone_stairs" => Some(BlockKind::RedSandstoneStairs), + "minecraft:oak_slab" => Some(BlockKind::OakSlab), + "minecraft:spruce_slab" => Some(BlockKind::SpruceSlab), + "minecraft:birch_slab" => Some(BlockKind::BirchSlab), + "minecraft:jungle_slab" => Some(BlockKind::JungleSlab), + "minecraft:acacia_slab" => Some(BlockKind::AcaciaSlab), + "minecraft:dark_oak_slab" => Some(BlockKind::DarkOakSlab), + "minecraft:stone_slab" => Some(BlockKind::StoneSlab), + "minecraft:smooth_stone_slab" => Some(BlockKind::SmoothStoneSlab), + "minecraft:sandstone_slab" => Some(BlockKind::SandstoneSlab), + "minecraft:cut_sandstone_slab" => Some(BlockKind::CutSandstoneSlab), + "minecraft:petrified_oak_slab" => Some(BlockKind::PetrifiedOakSlab), + "minecraft:cobblestone_slab" => Some(BlockKind::CobblestoneSlab), + "minecraft:brick_slab" => Some(BlockKind::BrickSlab), + "minecraft:stone_brick_slab" => Some(BlockKind::StoneBrickSlab), + "minecraft:nether_brick_slab" => Some(BlockKind::NetherBrickSlab), + "minecraft:quartz_slab" => Some(BlockKind::QuartzSlab), + "minecraft:red_sandstone_slab" => Some(BlockKind::RedSandstoneSlab), + "minecraft:cut_red_sandstone_slab" => Some(BlockKind::CutRedSandstoneSlab), + "minecraft:purpur_slab" => Some(BlockKind::PurpurSlab), + "minecraft:smooth_stone" => Some(BlockKind::SmoothStone), + "minecraft:smooth_sandstone" => Some(BlockKind::SmoothSandstone), + "minecraft:smooth_quartz" => Some(BlockKind::SmoothQuartz), + "minecraft:smooth_red_sandstone" => Some(BlockKind::SmoothRedSandstone), + "minecraft:spruce_fence_gate" => Some(BlockKind::SpruceFenceGate), + "minecraft:birch_fence_gate" => Some(BlockKind::BirchFenceGate), + "minecraft:jungle_fence_gate" => Some(BlockKind::JungleFenceGate), + "minecraft:acacia_fence_gate" => Some(BlockKind::AcaciaFenceGate), + "minecraft:dark_oak_fence_gate" => Some(BlockKind::DarkOakFenceGate), + "minecraft:spruce_fence" => Some(BlockKind::SpruceFence), + "minecraft:birch_fence" => Some(BlockKind::BirchFence), + "minecraft:jungle_fence" => Some(BlockKind::JungleFence), + "minecraft:acacia_fence" => Some(BlockKind::AcaciaFence), + "minecraft:dark_oak_fence" => Some(BlockKind::DarkOakFence), + "minecraft:spruce_door" => Some(BlockKind::SpruceDoor), + "minecraft:birch_door" => Some(BlockKind::BirchDoor), + "minecraft:jungle_door" => Some(BlockKind::JungleDoor), + "minecraft:acacia_door" => Some(BlockKind::AcaciaDoor), + "minecraft:dark_oak_door" => Some(BlockKind::DarkOakDoor), + "minecraft:end_rod" => Some(BlockKind::EndRod), + "minecraft:chorus_plant" => Some(BlockKind::ChorusPlant), + "minecraft:chorus_flower" => Some(BlockKind::ChorusFlower), + "minecraft:purpur_block" => Some(BlockKind::PurpurBlock), + "minecraft:purpur_pillar" => Some(BlockKind::PurpurPillar), + "minecraft:purpur_stairs" => Some(BlockKind::PurpurStairs), + "minecraft:end_stone_bricks" => Some(BlockKind::EndStoneBricks), + "minecraft:beetroots" => Some(BlockKind::Beetroots), + "minecraft:dirt_path" => Some(BlockKind::DirtPath), + "minecraft:end_gateway" => Some(BlockKind::EndGateway), + "minecraft:repeating_command_block" => Some(BlockKind::RepeatingCommandBlock), + "minecraft:chain_command_block" => Some(BlockKind::ChainCommandBlock), + "minecraft:frosted_ice" => Some(BlockKind::FrostedIce), + "minecraft:magma_block" => Some(BlockKind::MagmaBlock), + "minecraft:nether_wart_block" => Some(BlockKind::NetherWartBlock), + "minecraft:red_nether_bricks" => Some(BlockKind::RedNetherBricks), + "minecraft:bone_block" => Some(BlockKind::BoneBlock), + "minecraft:structure_void" => Some(BlockKind::StructureVoid), + "minecraft:observer" => Some(BlockKind::Observer), + "minecraft:shulker_box" => Some(BlockKind::ShulkerBox), + "minecraft:white_shulker_box" => Some(BlockKind::WhiteShulkerBox), + "minecraft:orange_shulker_box" => Some(BlockKind::OrangeShulkerBox), + "minecraft:magenta_shulker_box" => Some(BlockKind::MagentaShulkerBox), + "minecraft:light_blue_shulker_box" => Some(BlockKind::LightBlueShulkerBox), + "minecraft:yellow_shulker_box" => Some(BlockKind::YellowShulkerBox), + "minecraft:lime_shulker_box" => Some(BlockKind::LimeShulkerBox), + "minecraft:pink_shulker_box" => Some(BlockKind::PinkShulkerBox), + "minecraft:gray_shulker_box" => Some(BlockKind::GrayShulkerBox), + "minecraft:light_gray_shulker_box" => Some(BlockKind::LightGrayShulkerBox), + "minecraft:cyan_shulker_box" => Some(BlockKind::CyanShulkerBox), + "minecraft:purple_shulker_box" => Some(BlockKind::PurpleShulkerBox), + "minecraft:blue_shulker_box" => Some(BlockKind::BlueShulkerBox), + "minecraft:brown_shulker_box" => Some(BlockKind::BrownShulkerBox), + "minecraft:green_shulker_box" => Some(BlockKind::GreenShulkerBox), + "minecraft:red_shulker_box" => Some(BlockKind::RedShulkerBox), + "minecraft:black_shulker_box" => Some(BlockKind::BlackShulkerBox), + "minecraft:white_glazed_terracotta" => Some(BlockKind::WhiteGlazedTerracotta), + "minecraft:orange_glazed_terracotta" => Some(BlockKind::OrangeGlazedTerracotta), + "minecraft:magenta_glazed_terracotta" => Some(BlockKind::MagentaGlazedTerracotta), + "minecraft:light_blue_glazed_terracotta" => Some(BlockKind::LightBlueGlazedTerracotta), + "minecraft:yellow_glazed_terracotta" => Some(BlockKind::YellowGlazedTerracotta), + "minecraft:lime_glazed_terracotta" => Some(BlockKind::LimeGlazedTerracotta), + "minecraft:pink_glazed_terracotta" => Some(BlockKind::PinkGlazedTerracotta), + "minecraft:gray_glazed_terracotta" => Some(BlockKind::GrayGlazedTerracotta), + "minecraft:light_gray_glazed_terracotta" => Some(BlockKind::LightGrayGlazedTerracotta), + "minecraft:cyan_glazed_terracotta" => Some(BlockKind::CyanGlazedTerracotta), + "minecraft:purple_glazed_terracotta" => Some(BlockKind::PurpleGlazedTerracotta), + "minecraft:blue_glazed_terracotta" => Some(BlockKind::BlueGlazedTerracotta), + "minecraft:brown_glazed_terracotta" => Some(BlockKind::BrownGlazedTerracotta), + "minecraft:green_glazed_terracotta" => Some(BlockKind::GreenGlazedTerracotta), + "minecraft:red_glazed_terracotta" => Some(BlockKind::RedGlazedTerracotta), + "minecraft:black_glazed_terracotta" => Some(BlockKind::BlackGlazedTerracotta), + "minecraft:white_concrete" => Some(BlockKind::WhiteConcrete), + "minecraft:orange_concrete" => Some(BlockKind::OrangeConcrete), + "minecraft:magenta_concrete" => Some(BlockKind::MagentaConcrete), + "minecraft:light_blue_concrete" => Some(BlockKind::LightBlueConcrete), + "minecraft:yellow_concrete" => Some(BlockKind::YellowConcrete), + "minecraft:lime_concrete" => Some(BlockKind::LimeConcrete), + "minecraft:pink_concrete" => Some(BlockKind::PinkConcrete), + "minecraft:gray_concrete" => Some(BlockKind::GrayConcrete), + "minecraft:light_gray_concrete" => Some(BlockKind::LightGrayConcrete), + "minecraft:cyan_concrete" => Some(BlockKind::CyanConcrete), + "minecraft:purple_concrete" => Some(BlockKind::PurpleConcrete), + "minecraft:blue_concrete" => Some(BlockKind::BlueConcrete), + "minecraft:brown_concrete" => Some(BlockKind::BrownConcrete), + "minecraft:green_concrete" => Some(BlockKind::GreenConcrete), + "minecraft:red_concrete" => Some(BlockKind::RedConcrete), + "minecraft:black_concrete" => Some(BlockKind::BlackConcrete), + "minecraft:white_concrete_powder" => Some(BlockKind::WhiteConcretePowder), + "minecraft:orange_concrete_powder" => Some(BlockKind::OrangeConcretePowder), + "minecraft:magenta_concrete_powder" => Some(BlockKind::MagentaConcretePowder), + "minecraft:light_blue_concrete_powder" => Some(BlockKind::LightBlueConcretePowder), + "minecraft:yellow_concrete_powder" => Some(BlockKind::YellowConcretePowder), + "minecraft:lime_concrete_powder" => Some(BlockKind::LimeConcretePowder), + "minecraft:pink_concrete_powder" => Some(BlockKind::PinkConcretePowder), + "minecraft:gray_concrete_powder" => Some(BlockKind::GrayConcretePowder), + "minecraft:light_gray_concrete_powder" => Some(BlockKind::LightGrayConcretePowder), + "minecraft:cyan_concrete_powder" => Some(BlockKind::CyanConcretePowder), + "minecraft:purple_concrete_powder" => Some(BlockKind::PurpleConcretePowder), + "minecraft:blue_concrete_powder" => Some(BlockKind::BlueConcretePowder), + "minecraft:brown_concrete_powder" => Some(BlockKind::BrownConcretePowder), + "minecraft:green_concrete_powder" => Some(BlockKind::GreenConcretePowder), + "minecraft:red_concrete_powder" => Some(BlockKind::RedConcretePowder), + "minecraft:black_concrete_powder" => Some(BlockKind::BlackConcretePowder), + "minecraft:kelp" => Some(BlockKind::Kelp), + "minecraft:kelp_plant" => Some(BlockKind::KelpPlant), + "minecraft:dried_kelp_block" => Some(BlockKind::DriedKelpBlock), + "minecraft:turtle_egg" => Some(BlockKind::TurtleEgg), + "minecraft:dead_tube_coral_block" => Some(BlockKind::DeadTubeCoralBlock), + "minecraft:dead_brain_coral_block" => Some(BlockKind::DeadBrainCoralBlock), + "minecraft:dead_bubble_coral_block" => Some(BlockKind::DeadBubbleCoralBlock), + "minecraft:dead_fire_coral_block" => Some(BlockKind::DeadFireCoralBlock), + "minecraft:dead_horn_coral_block" => Some(BlockKind::DeadHornCoralBlock), + "minecraft:tube_coral_block" => Some(BlockKind::TubeCoralBlock), + "minecraft:brain_coral_block" => Some(BlockKind::BrainCoralBlock), + "minecraft:bubble_coral_block" => Some(BlockKind::BubbleCoralBlock), + "minecraft:fire_coral_block" => Some(BlockKind::FireCoralBlock), + "minecraft:horn_coral_block" => Some(BlockKind::HornCoralBlock), + "minecraft:dead_tube_coral" => Some(BlockKind::DeadTubeCoral), + "minecraft:dead_brain_coral" => Some(BlockKind::DeadBrainCoral), + "minecraft:dead_bubble_coral" => Some(BlockKind::DeadBubbleCoral), + "minecraft:dead_fire_coral" => Some(BlockKind::DeadFireCoral), + "minecraft:dead_horn_coral" => Some(BlockKind::DeadHornCoral), + "minecraft:tube_coral" => Some(BlockKind::TubeCoral), + "minecraft:brain_coral" => Some(BlockKind::BrainCoral), + "minecraft:bubble_coral" => Some(BlockKind::BubbleCoral), + "minecraft:fire_coral" => Some(BlockKind::FireCoral), + "minecraft:horn_coral" => Some(BlockKind::HornCoral), + "minecraft:dead_tube_coral_fan" => Some(BlockKind::DeadTubeCoralFan), + "minecraft:dead_brain_coral_fan" => Some(BlockKind::DeadBrainCoralFan), + "minecraft:dead_bubble_coral_fan" => Some(BlockKind::DeadBubbleCoralFan), + "minecraft:dead_fire_coral_fan" => Some(BlockKind::DeadFireCoralFan), + "minecraft:dead_horn_coral_fan" => Some(BlockKind::DeadHornCoralFan), + "minecraft:tube_coral_fan" => Some(BlockKind::TubeCoralFan), + "minecraft:brain_coral_fan" => Some(BlockKind::BrainCoralFan), + "minecraft:bubble_coral_fan" => Some(BlockKind::BubbleCoralFan), + "minecraft:fire_coral_fan" => Some(BlockKind::FireCoralFan), + "minecraft:horn_coral_fan" => Some(BlockKind::HornCoralFan), + "minecraft:dead_tube_coral_wall_fan" => Some(BlockKind::DeadTubeCoralWallFan), + "minecraft:dead_brain_coral_wall_fan" => Some(BlockKind::DeadBrainCoralWallFan), + "minecraft:dead_bubble_coral_wall_fan" => Some(BlockKind::DeadBubbleCoralWallFan), + "minecraft:dead_fire_coral_wall_fan" => Some(BlockKind::DeadFireCoralWallFan), + "minecraft:dead_horn_coral_wall_fan" => Some(BlockKind::DeadHornCoralWallFan), + "minecraft:tube_coral_wall_fan" => Some(BlockKind::TubeCoralWallFan), + "minecraft:brain_coral_wall_fan" => Some(BlockKind::BrainCoralWallFan), + "minecraft:bubble_coral_wall_fan" => Some(BlockKind::BubbleCoralWallFan), + "minecraft:fire_coral_wall_fan" => Some(BlockKind::FireCoralWallFan), + "minecraft:horn_coral_wall_fan" => Some(BlockKind::HornCoralWallFan), + "minecraft:sea_pickle" => Some(BlockKind::SeaPickle), + "minecraft:blue_ice" => Some(BlockKind::BlueIce), + "minecraft:conduit" => Some(BlockKind::Conduit), + "minecraft:bamboo_sapling" => Some(BlockKind::BambooSapling), + "minecraft:bamboo" => Some(BlockKind::Bamboo), + "minecraft:potted_bamboo" => Some(BlockKind::PottedBamboo), + "minecraft:void_air" => Some(BlockKind::VoidAir), + "minecraft:cave_air" => Some(BlockKind::CaveAir), + "minecraft:bubble_column" => Some(BlockKind::BubbleColumn), + "minecraft:polished_granite_stairs" => Some(BlockKind::PolishedGraniteStairs), + "minecraft:smooth_red_sandstone_stairs" => Some(BlockKind::SmoothRedSandstoneStairs), + "minecraft:mossy_stone_brick_stairs" => Some(BlockKind::MossyStoneBrickStairs), + "minecraft:polished_diorite_stairs" => Some(BlockKind::PolishedDioriteStairs), + "minecraft:mossy_cobblestone_stairs" => Some(BlockKind::MossyCobblestoneStairs), + "minecraft:end_stone_brick_stairs" => Some(BlockKind::EndStoneBrickStairs), + "minecraft:stone_stairs" => Some(BlockKind::StoneStairs), + "minecraft:smooth_sandstone_stairs" => Some(BlockKind::SmoothSandstoneStairs), + "minecraft:smooth_quartz_stairs" => Some(BlockKind::SmoothQuartzStairs), + "minecraft:granite_stairs" => Some(BlockKind::GraniteStairs), + "minecraft:andesite_stairs" => Some(BlockKind::AndesiteStairs), + "minecraft:red_nether_brick_stairs" => Some(BlockKind::RedNetherBrickStairs), + "minecraft:polished_andesite_stairs" => Some(BlockKind::PolishedAndesiteStairs), + "minecraft:diorite_stairs" => Some(BlockKind::DioriteStairs), + "minecraft:polished_granite_slab" => Some(BlockKind::PolishedGraniteSlab), + "minecraft:smooth_red_sandstone_slab" => Some(BlockKind::SmoothRedSandstoneSlab), + "minecraft:mossy_stone_brick_slab" => Some(BlockKind::MossyStoneBrickSlab), + "minecraft:polished_diorite_slab" => Some(BlockKind::PolishedDioriteSlab), + "minecraft:mossy_cobblestone_slab" => Some(BlockKind::MossyCobblestoneSlab), + "minecraft:end_stone_brick_slab" => Some(BlockKind::EndStoneBrickSlab), + "minecraft:smooth_sandstone_slab" => Some(BlockKind::SmoothSandstoneSlab), + "minecraft:smooth_quartz_slab" => Some(BlockKind::SmoothQuartzSlab), + "minecraft:granite_slab" => Some(BlockKind::GraniteSlab), + "minecraft:andesite_slab" => Some(BlockKind::AndesiteSlab), + "minecraft:red_nether_brick_slab" => Some(BlockKind::RedNetherBrickSlab), + "minecraft:polished_andesite_slab" => Some(BlockKind::PolishedAndesiteSlab), + "minecraft:diorite_slab" => Some(BlockKind::DioriteSlab), + "minecraft:brick_wall" => Some(BlockKind::BrickWall), + "minecraft:prismarine_wall" => Some(BlockKind::PrismarineWall), + "minecraft:red_sandstone_wall" => Some(BlockKind::RedSandstoneWall), + "minecraft:mossy_stone_brick_wall" => Some(BlockKind::MossyStoneBrickWall), + "minecraft:granite_wall" => Some(BlockKind::GraniteWall), + "minecraft:stone_brick_wall" => Some(BlockKind::StoneBrickWall), + "minecraft:nether_brick_wall" => Some(BlockKind::NetherBrickWall), + "minecraft:andesite_wall" => Some(BlockKind::AndesiteWall), + "minecraft:red_nether_brick_wall" => Some(BlockKind::RedNetherBrickWall), + "minecraft:sandstone_wall" => Some(BlockKind::SandstoneWall), + "minecraft:end_stone_brick_wall" => Some(BlockKind::EndStoneBrickWall), + "minecraft:diorite_wall" => Some(BlockKind::DioriteWall), + "minecraft:scaffolding" => Some(BlockKind::Scaffolding), + "minecraft:loom" => Some(BlockKind::Loom), + "minecraft:barrel" => Some(BlockKind::Barrel), + "minecraft:smoker" => Some(BlockKind::Smoker), + "minecraft:blast_furnace" => Some(BlockKind::BlastFurnace), + "minecraft:cartography_table" => Some(BlockKind::CartographyTable), + "minecraft:fletching_table" => Some(BlockKind::FletchingTable), + "minecraft:grindstone" => Some(BlockKind::Grindstone), + "minecraft:lectern" => Some(BlockKind::Lectern), + "minecraft:smithing_table" => Some(BlockKind::SmithingTable), + "minecraft:stonecutter" => Some(BlockKind::Stonecutter), + "minecraft:bell" => Some(BlockKind::Bell), + "minecraft:lantern" => Some(BlockKind::Lantern), + "minecraft:soul_lantern" => Some(BlockKind::SoulLantern), + "minecraft:campfire" => Some(BlockKind::Campfire), + "minecraft:soul_campfire" => Some(BlockKind::SoulCampfire), + "minecraft:sweet_berry_bush" => Some(BlockKind::SweetBerryBush), + "minecraft:warped_stem" => Some(BlockKind::WarpedStem), + "minecraft:stripped_warped_stem" => Some(BlockKind::StrippedWarpedStem), + "minecraft:warped_hyphae" => Some(BlockKind::WarpedHyphae), + "minecraft:stripped_warped_hyphae" => Some(BlockKind::StrippedWarpedHyphae), + "minecraft:warped_nylium" => Some(BlockKind::WarpedNylium), + "minecraft:warped_fungus" => Some(BlockKind::WarpedFungus), + "minecraft:warped_wart_block" => Some(BlockKind::WarpedWartBlock), + "minecraft:warped_roots" => Some(BlockKind::WarpedRoots), + "minecraft:nether_sprouts" => Some(BlockKind::NetherSprouts), + "minecraft:crimson_stem" => Some(BlockKind::CrimsonStem), + "minecraft:stripped_crimson_stem" => Some(BlockKind::StrippedCrimsonStem), + "minecraft:crimson_hyphae" => Some(BlockKind::CrimsonHyphae), + "minecraft:stripped_crimson_hyphae" => Some(BlockKind::StrippedCrimsonHyphae), + "minecraft:crimson_nylium" => Some(BlockKind::CrimsonNylium), + "minecraft:crimson_fungus" => Some(BlockKind::CrimsonFungus), + "minecraft:shroomlight" => Some(BlockKind::Shroomlight), + "minecraft:weeping_vines" => Some(BlockKind::WeepingVines), + "minecraft:weeping_vines_plant" => Some(BlockKind::WeepingVinesPlant), + "minecraft:twisting_vines" => Some(BlockKind::TwistingVines), + "minecraft:twisting_vines_plant" => Some(BlockKind::TwistingVinesPlant), + "minecraft:crimson_roots" => Some(BlockKind::CrimsonRoots), + "minecraft:crimson_planks" => Some(BlockKind::CrimsonPlanks), + "minecraft:warped_planks" => Some(BlockKind::WarpedPlanks), + "minecraft:crimson_slab" => Some(BlockKind::CrimsonSlab), + "minecraft:warped_slab" => Some(BlockKind::WarpedSlab), + "minecraft:crimson_pressure_plate" => Some(BlockKind::CrimsonPressurePlate), + "minecraft:warped_pressure_plate" => Some(BlockKind::WarpedPressurePlate), + "minecraft:crimson_fence" => Some(BlockKind::CrimsonFence), + "minecraft:warped_fence" => Some(BlockKind::WarpedFence), + "minecraft:crimson_trapdoor" => Some(BlockKind::CrimsonTrapdoor), + "minecraft:warped_trapdoor" => Some(BlockKind::WarpedTrapdoor), + "minecraft:crimson_fence_gate" => Some(BlockKind::CrimsonFenceGate), + "minecraft:warped_fence_gate" => Some(BlockKind::WarpedFenceGate), + "minecraft:crimson_stairs" => Some(BlockKind::CrimsonStairs), + "minecraft:warped_stairs" => Some(BlockKind::WarpedStairs), + "minecraft:crimson_button" => Some(BlockKind::CrimsonButton), + "minecraft:warped_button" => Some(BlockKind::WarpedButton), + "minecraft:crimson_door" => Some(BlockKind::CrimsonDoor), + "minecraft:warped_door" => Some(BlockKind::WarpedDoor), + "minecraft:crimson_sign" => Some(BlockKind::CrimsonSign), + "minecraft:warped_sign" => Some(BlockKind::WarpedSign), + "minecraft:crimson_wall_sign" => Some(BlockKind::CrimsonWallSign), + "minecraft:warped_wall_sign" => Some(BlockKind::WarpedWallSign), + "minecraft:structure_block" => Some(BlockKind::StructureBlock), + "minecraft:jigsaw" => Some(BlockKind::Jigsaw), + "minecraft:composter" => Some(BlockKind::Composter), + "minecraft:target" => Some(BlockKind::Target), + "minecraft:bee_nest" => Some(BlockKind::BeeNest), + "minecraft:beehive" => Some(BlockKind::Beehive), + "minecraft:honey_block" => Some(BlockKind::HoneyBlock), + "minecraft:honeycomb_block" => Some(BlockKind::HoneycombBlock), + "minecraft:netherite_block" => Some(BlockKind::NetheriteBlock), + "minecraft:ancient_debris" => Some(BlockKind::AncientDebris), + "minecraft:crying_obsidian" => Some(BlockKind::CryingObsidian), + "minecraft:respawn_anchor" => Some(BlockKind::RespawnAnchor), + "minecraft:potted_crimson_fungus" => Some(BlockKind::PottedCrimsonFungus), + "minecraft:potted_warped_fungus" => Some(BlockKind::PottedWarpedFungus), + "minecraft:potted_crimson_roots" => Some(BlockKind::PottedCrimsonRoots), + "minecraft:potted_warped_roots" => Some(BlockKind::PottedWarpedRoots), + "minecraft:lodestone" => Some(BlockKind::Lodestone), + "minecraft:blackstone" => Some(BlockKind::Blackstone), + "minecraft:blackstone_stairs" => Some(BlockKind::BlackstoneStairs), + "minecraft:blackstone_wall" => Some(BlockKind::BlackstoneWall), + "minecraft:blackstone_slab" => Some(BlockKind::BlackstoneSlab), + "minecraft:polished_blackstone" => Some(BlockKind::PolishedBlackstone), + "minecraft:polished_blackstone_bricks" => Some(BlockKind::PolishedBlackstoneBricks), + "minecraft:cracked_polished_blackstone_bricks" => { + Some(BlockKind::CrackedPolishedBlackstoneBricks) + } + "minecraft:chiseled_polished_blackstone" => Some(BlockKind::ChiseledPolishedBlackstone), + "minecraft:polished_blackstone_brick_slab" => { + Some(BlockKind::PolishedBlackstoneBrickSlab) + } + "minecraft:polished_blackstone_brick_stairs" => { + Some(BlockKind::PolishedBlackstoneBrickStairs) + } + "minecraft:polished_blackstone_brick_wall" => { + Some(BlockKind::PolishedBlackstoneBrickWall) + } + "minecraft:gilded_blackstone" => Some(BlockKind::GildedBlackstone), + "minecraft:polished_blackstone_stairs" => Some(BlockKind::PolishedBlackstoneStairs), + "minecraft:polished_blackstone_slab" => Some(BlockKind::PolishedBlackstoneSlab), + "minecraft:polished_blackstone_pressure_plate" => { + Some(BlockKind::PolishedBlackstonePressurePlate) + } + "minecraft:polished_blackstone_button" => Some(BlockKind::PolishedBlackstoneButton), + "minecraft:polished_blackstone_wall" => Some(BlockKind::PolishedBlackstoneWall), + "minecraft:chiseled_nether_bricks" => Some(BlockKind::ChiseledNetherBricks), + "minecraft:cracked_nether_bricks" => Some(BlockKind::CrackedNetherBricks), + "minecraft:quartz_bricks" => Some(BlockKind::QuartzBricks), + "minecraft:candle" => Some(BlockKind::Candle), + "minecraft:white_candle" => Some(BlockKind::WhiteCandle), + "minecraft:orange_candle" => Some(BlockKind::OrangeCandle), + "minecraft:magenta_candle" => Some(BlockKind::MagentaCandle), + "minecraft:light_blue_candle" => Some(BlockKind::LightBlueCandle), + "minecraft:yellow_candle" => Some(BlockKind::YellowCandle), + "minecraft:lime_candle" => Some(BlockKind::LimeCandle), + "minecraft:pink_candle" => Some(BlockKind::PinkCandle), + "minecraft:gray_candle" => Some(BlockKind::GrayCandle), + "minecraft:light_gray_candle" => Some(BlockKind::LightGrayCandle), + "minecraft:cyan_candle" => Some(BlockKind::CyanCandle), + "minecraft:purple_candle" => Some(BlockKind::PurpleCandle), + "minecraft:blue_candle" => Some(BlockKind::BlueCandle), + "minecraft:brown_candle" => Some(BlockKind::BrownCandle), + "minecraft:green_candle" => Some(BlockKind::GreenCandle), + "minecraft:red_candle" => Some(BlockKind::RedCandle), + "minecraft:black_candle" => Some(BlockKind::BlackCandle), + "minecraft:candle_cake" => Some(BlockKind::CandleCake), + "minecraft:white_candle_cake" => Some(BlockKind::WhiteCandleCake), + "minecraft:orange_candle_cake" => Some(BlockKind::OrangeCandleCake), + "minecraft:magenta_candle_cake" => Some(BlockKind::MagentaCandleCake), + "minecraft:light_blue_candle_cake" => Some(BlockKind::LightBlueCandleCake), + "minecraft:yellow_candle_cake" => Some(BlockKind::YellowCandleCake), + "minecraft:lime_candle_cake" => Some(BlockKind::LimeCandleCake), + "minecraft:pink_candle_cake" => Some(BlockKind::PinkCandleCake), + "minecraft:gray_candle_cake" => Some(BlockKind::GrayCandleCake), + "minecraft:light_gray_candle_cake" => Some(BlockKind::LightGrayCandleCake), + "minecraft:cyan_candle_cake" => Some(BlockKind::CyanCandleCake), + "minecraft:purple_candle_cake" => Some(BlockKind::PurpleCandleCake), + "minecraft:blue_candle_cake" => Some(BlockKind::BlueCandleCake), + "minecraft:brown_candle_cake" => Some(BlockKind::BrownCandleCake), + "minecraft:green_candle_cake" => Some(BlockKind::GreenCandleCake), + "minecraft:red_candle_cake" => Some(BlockKind::RedCandleCake), + "minecraft:black_candle_cake" => Some(BlockKind::BlackCandleCake), + "minecraft:amethyst_block" => Some(BlockKind::AmethystBlock), + "minecraft:budding_amethyst" => Some(BlockKind::BuddingAmethyst), + "minecraft:amethyst_cluster" => Some(BlockKind::AmethystCluster), + "minecraft:large_amethyst_bud" => Some(BlockKind::LargeAmethystBud), + "minecraft:medium_amethyst_bud" => Some(BlockKind::MediumAmethystBud), + "minecraft:small_amethyst_bud" => Some(BlockKind::SmallAmethystBud), + "minecraft:tuff" => Some(BlockKind::Tuff), + "minecraft:calcite" => Some(BlockKind::Calcite), + "minecraft:tinted_glass" => Some(BlockKind::TintedGlass), + "minecraft:powder_snow" => Some(BlockKind::PowderSnow), + "minecraft:sculk_sensor" => Some(BlockKind::SculkSensor), + "minecraft:oxidized_copper" => Some(BlockKind::OxidizedCopper), + "minecraft:weathered_copper" => Some(BlockKind::WeatheredCopper), + "minecraft:exposed_copper" => Some(BlockKind::ExposedCopper), + "minecraft:copper_block" => Some(BlockKind::CopperBlock), + "minecraft:copper_ore" => Some(BlockKind::CopperOre), + "minecraft:deepslate_copper_ore" => Some(BlockKind::DeepslateCopperOre), + "minecraft:oxidized_cut_copper" => Some(BlockKind::OxidizedCutCopper), + "minecraft:weathered_cut_copper" => Some(BlockKind::WeatheredCutCopper), + "minecraft:exposed_cut_copper" => Some(BlockKind::ExposedCutCopper), + "minecraft:cut_copper" => Some(BlockKind::CutCopper), + "minecraft:oxidized_cut_copper_stairs" => Some(BlockKind::OxidizedCutCopperStairs), + "minecraft:weathered_cut_copper_stairs" => Some(BlockKind::WeatheredCutCopperStairs), + "minecraft:exposed_cut_copper_stairs" => Some(BlockKind::ExposedCutCopperStairs), + "minecraft:cut_copper_stairs" => Some(BlockKind::CutCopperStairs), + "minecraft:oxidized_cut_copper_slab" => Some(BlockKind::OxidizedCutCopperSlab), + "minecraft:weathered_cut_copper_slab" => Some(BlockKind::WeatheredCutCopperSlab), + "minecraft:exposed_cut_copper_slab" => Some(BlockKind::ExposedCutCopperSlab), + "minecraft:cut_copper_slab" => Some(BlockKind::CutCopperSlab), + "minecraft:waxed_copper_block" => Some(BlockKind::WaxedCopperBlock), + "minecraft:waxed_weathered_copper" => Some(BlockKind::WaxedWeatheredCopper), + "minecraft:waxed_exposed_copper" => Some(BlockKind::WaxedExposedCopper), + "minecraft:waxed_oxidized_copper" => Some(BlockKind::WaxedOxidizedCopper), + "minecraft:waxed_oxidized_cut_copper" => Some(BlockKind::WaxedOxidizedCutCopper), + "minecraft:waxed_weathered_cut_copper" => Some(BlockKind::WaxedWeatheredCutCopper), + "minecraft:waxed_exposed_cut_copper" => Some(BlockKind::WaxedExposedCutCopper), + "minecraft:waxed_cut_copper" => Some(BlockKind::WaxedCutCopper), + "minecraft:waxed_oxidized_cut_copper_stairs" => { + Some(BlockKind::WaxedOxidizedCutCopperStairs) + } + "minecraft:waxed_weathered_cut_copper_stairs" => { + Some(BlockKind::WaxedWeatheredCutCopperStairs) + } + "minecraft:waxed_exposed_cut_copper_stairs" => { + Some(BlockKind::WaxedExposedCutCopperStairs) + } + "minecraft:waxed_cut_copper_stairs" => Some(BlockKind::WaxedCutCopperStairs), + "minecraft:waxed_oxidized_cut_copper_slab" => { + Some(BlockKind::WaxedOxidizedCutCopperSlab) + } + "minecraft:waxed_weathered_cut_copper_slab" => { + Some(BlockKind::WaxedWeatheredCutCopperSlab) + } + "minecraft:waxed_exposed_cut_copper_slab" => Some(BlockKind::WaxedExposedCutCopperSlab), + "minecraft:waxed_cut_copper_slab" => Some(BlockKind::WaxedCutCopperSlab), + "minecraft:lightning_rod" => Some(BlockKind::LightningRod), + "minecraft:pointed_dripstone" => Some(BlockKind::PointedDripstone), + "minecraft:dripstone_block" => Some(BlockKind::DripstoneBlock), + "minecraft:cave_vines" => Some(BlockKind::CaveVines), + "minecraft:cave_vines_plant" => Some(BlockKind::CaveVinesPlant), + "minecraft:spore_blossom" => Some(BlockKind::SporeBlossom), + "minecraft:azalea" => Some(BlockKind::Azalea), + "minecraft:flowering_azalea" => Some(BlockKind::FloweringAzalea), + "minecraft:moss_carpet" => Some(BlockKind::MossCarpet), + "minecraft:moss_block" => Some(BlockKind::MossBlock), + "minecraft:big_dripleaf" => Some(BlockKind::BigDripleaf), + "minecraft:big_dripleaf_stem" => Some(BlockKind::BigDripleafStem), + "minecraft:small_dripleaf" => Some(BlockKind::SmallDripleaf), + "minecraft:hanging_roots" => Some(BlockKind::HangingRoots), + "minecraft:rooted_dirt" => Some(BlockKind::RootedDirt), + "minecraft:deepslate" => Some(BlockKind::Deepslate), + "minecraft:cobbled_deepslate" => Some(BlockKind::CobbledDeepslate), + "minecraft:cobbled_deepslate_stairs" => Some(BlockKind::CobbledDeepslateStairs), + "minecraft:cobbled_deepslate_slab" => Some(BlockKind::CobbledDeepslateSlab), + "minecraft:cobbled_deepslate_wall" => Some(BlockKind::CobbledDeepslateWall), + "minecraft:polished_deepslate" => Some(BlockKind::PolishedDeepslate), + "minecraft:polished_deepslate_stairs" => Some(BlockKind::PolishedDeepslateStairs), + "minecraft:polished_deepslate_slab" => Some(BlockKind::PolishedDeepslateSlab), + "minecraft:polished_deepslate_wall" => Some(BlockKind::PolishedDeepslateWall), + "minecraft:deepslate_tiles" => Some(BlockKind::DeepslateTiles), + "minecraft:deepslate_tile_stairs" => Some(BlockKind::DeepslateTileStairs), + "minecraft:deepslate_tile_slab" => Some(BlockKind::DeepslateTileSlab), + "minecraft:deepslate_tile_wall" => Some(BlockKind::DeepslateTileWall), + "minecraft:deepslate_bricks" => Some(BlockKind::DeepslateBricks), + "minecraft:deepslate_brick_stairs" => Some(BlockKind::DeepslateBrickStairs), + "minecraft:deepslate_brick_slab" => Some(BlockKind::DeepslateBrickSlab), + "minecraft:deepslate_brick_wall" => Some(BlockKind::DeepslateBrickWall), + "minecraft:chiseled_deepslate" => Some(BlockKind::ChiseledDeepslate), + "minecraft:cracked_deepslate_bricks" => Some(BlockKind::CrackedDeepslateBricks), + "minecraft:cracked_deepslate_tiles" => Some(BlockKind::CrackedDeepslateTiles), + "minecraft:infested_deepslate" => Some(BlockKind::InfestedDeepslate), + "minecraft:smooth_basalt" => Some(BlockKind::SmoothBasalt), + "minecraft:raw_iron_block" => Some(BlockKind::RawIronBlock), + "minecraft:raw_copper_block" => Some(BlockKind::RawCopperBlock), + "minecraft:raw_gold_block" => Some(BlockKind::RawGoldBlock), + "minecraft:potted_azalea_bush" => Some(BlockKind::PottedAzaleaBush), + "minecraft:potted_flowering_azalea_bush" => Some(BlockKind::PottedFloweringAzaleaBush), + _ => None, + } + } +} +impl BlockKind { + #[doc = "Returns the `resistance` property of this `BlockKind`."] + #[inline] + pub fn resistance(&self) -> f32 { + match self { + BlockKind::Air => 0f32, + BlockKind::Stone => 6f32, + BlockKind::Granite => 6f32, + BlockKind::PolishedGranite => 6f32, + BlockKind::Diorite => 6f32, + BlockKind::PolishedDiorite => 6f32, + BlockKind::Andesite => 6f32, + BlockKind::PolishedAndesite => 6f32, + BlockKind::GrassBlock => 0.6f32, + BlockKind::Dirt => 0.5f32, + BlockKind::CoarseDirt => 0.5f32, + BlockKind::Podzol => 0.5f32, + BlockKind::Cobblestone => 6f32, + BlockKind::OakPlanks => 3f32, + BlockKind::SprucePlanks => 3f32, + BlockKind::BirchPlanks => 3f32, + BlockKind::JunglePlanks => 3f32, + BlockKind::AcaciaPlanks => 3f32, + BlockKind::DarkOakPlanks => 3f32, + BlockKind::OakSapling => 0f32, + BlockKind::SpruceSapling => 0f32, + BlockKind::BirchSapling => 0f32, + BlockKind::JungleSapling => 0f32, + BlockKind::AcaciaSapling => 0f32, + BlockKind::DarkOakSapling => 0f32, + BlockKind::Bedrock => 3600000f32, + BlockKind::Water => 100f32, + BlockKind::Lava => 100f32, + BlockKind::Sand => 0.5f32, + BlockKind::RedSand => 0.5f32, + BlockKind::Gravel => 0.6f32, + BlockKind::GoldOre => 3f32, + BlockKind::DeepslateGoldOre => 3f32, + BlockKind::IronOre => 3f32, + BlockKind::DeepslateIronOre => 3f32, + BlockKind::CoalOre => 3f32, + BlockKind::DeepslateCoalOre => 3f32, + BlockKind::NetherGoldOre => 3f32, + BlockKind::OakLog => 2f32, + BlockKind::SpruceLog => 2f32, + BlockKind::BirchLog => 2f32, + BlockKind::JungleLog => 2f32, + BlockKind::AcaciaLog => 2f32, + BlockKind::DarkOakLog => 2f32, + BlockKind::StrippedSpruceLog => 2f32, + BlockKind::StrippedBirchLog => 2f32, + BlockKind::StrippedJungleLog => 2f32, + BlockKind::StrippedAcaciaLog => 2f32, + BlockKind::StrippedDarkOakLog => 2f32, + BlockKind::StrippedOakLog => 2f32, + BlockKind::OakWood => 2f32, + BlockKind::SpruceWood => 2f32, + BlockKind::BirchWood => 2f32, + BlockKind::JungleWood => 2f32, + BlockKind::AcaciaWood => 2f32, + BlockKind::DarkOakWood => 2f32, + BlockKind::StrippedOakWood => 2f32, + BlockKind::StrippedSpruceWood => 2f32, + BlockKind::StrippedBirchWood => 2f32, + BlockKind::StrippedJungleWood => 2f32, + BlockKind::StrippedAcaciaWood => 2f32, + BlockKind::StrippedDarkOakWood => 2f32, + BlockKind::OakLeaves => 0.2f32, + BlockKind::SpruceLeaves => 0.2f32, + BlockKind::BirchLeaves => 0.2f32, + BlockKind::JungleLeaves => 0.2f32, + BlockKind::AcaciaLeaves => 0.2f32, + BlockKind::DarkOakLeaves => 0.2f32, + BlockKind::AzaleaLeaves => 0.2f32, + BlockKind::FloweringAzaleaLeaves => 0.2f32, + BlockKind::Sponge => 0.6f32, + BlockKind::WetSponge => 0.6f32, + BlockKind::Glass => 0.3f32, + BlockKind::LapisOre => 3f32, + BlockKind::DeepslateLapisOre => 3f32, + BlockKind::LapisBlock => 3f32, + BlockKind::Dispenser => 3.5f32, + BlockKind::Sandstone => 0.8f32, + BlockKind::ChiseledSandstone => 0.8f32, + BlockKind::CutSandstone => 0.8f32, + BlockKind::NoteBlock => 0.8f32, + BlockKind::WhiteBed => 0.2f32, + BlockKind::OrangeBed => 0.2f32, + BlockKind::MagentaBed => 0.2f32, + BlockKind::LightBlueBed => 0.2f32, + BlockKind::YellowBed => 0.2f32, + BlockKind::LimeBed => 0.2f32, + BlockKind::PinkBed => 0.2f32, + BlockKind::GrayBed => 0.2f32, + BlockKind::LightGrayBed => 0.2f32, + BlockKind::CyanBed => 0.2f32, + BlockKind::PurpleBed => 0.2f32, + BlockKind::BlueBed => 0.2f32, + BlockKind::BrownBed => 0.2f32, + BlockKind::GreenBed => 0.2f32, + BlockKind::RedBed => 0.2f32, + BlockKind::BlackBed => 0.2f32, + BlockKind::PoweredRail => 0.7f32, + BlockKind::DetectorRail => 0.7f32, + BlockKind::StickyPiston => 1.5f32, + BlockKind::Cobweb => 4f32, + BlockKind::Grass => 0f32, + BlockKind::Fern => 0f32, + BlockKind::DeadBush => 0f32, + BlockKind::Seagrass => 0f32, + BlockKind::TallSeagrass => 0f32, + BlockKind::Piston => 1.5f32, + BlockKind::PistonHead => 1.5f32, + BlockKind::WhiteWool => 0.8f32, + BlockKind::OrangeWool => 0.8f32, + BlockKind::MagentaWool => 0.8f32, + BlockKind::LightBlueWool => 0.8f32, + BlockKind::YellowWool => 0.8f32, + BlockKind::LimeWool => 0.8f32, + BlockKind::PinkWool => 0.8f32, + BlockKind::GrayWool => 0.8f32, + BlockKind::LightGrayWool => 0.8f32, + BlockKind::CyanWool => 0.8f32, + BlockKind::PurpleWool => 0.8f32, + BlockKind::BlueWool => 0.8f32, + BlockKind::BrownWool => 0.8f32, + BlockKind::GreenWool => 0.8f32, + BlockKind::RedWool => 0.8f32, + BlockKind::BlackWool => 0.8f32, + BlockKind::MovingPiston => -1f32, + BlockKind::Dandelion => 0f32, + BlockKind::Poppy => 0f32, + BlockKind::BlueOrchid => 0f32, + BlockKind::Allium => 0f32, + BlockKind::AzureBluet => 0f32, + BlockKind::RedTulip => 0f32, + BlockKind::OrangeTulip => 0f32, + BlockKind::WhiteTulip => 0f32, + BlockKind::PinkTulip => 0f32, + BlockKind::OxeyeDaisy => 0f32, + BlockKind::Cornflower => 0f32, + BlockKind::WitherRose => 0f32, + BlockKind::LilyOfTheValley => 0f32, + BlockKind::BrownMushroom => 0f32, + BlockKind::RedMushroom => 0f32, + BlockKind::GoldBlock => 6f32, + BlockKind::IronBlock => 6f32, + BlockKind::Bricks => 6f32, + BlockKind::Tnt => 0f32, + BlockKind::Bookshelf => 1.5f32, + BlockKind::MossyCobblestone => 6f32, + BlockKind::Obsidian => 1200f32, + BlockKind::Torch => 0f32, + BlockKind::WallTorch => 0f32, + BlockKind::Fire => 0f32, + BlockKind::SoulFire => 0f32, + BlockKind::Spawner => 5f32, + BlockKind::OakStairs => 3f32, + BlockKind::Chest => 2.5f32, + BlockKind::RedstoneWire => 0f32, + BlockKind::DiamondOre => 3f32, + BlockKind::DeepslateDiamondOre => 3f32, + BlockKind::DiamondBlock => 6f32, + BlockKind::CraftingTable => 2.5f32, + BlockKind::Wheat => 0f32, + BlockKind::Farmland => 0.6f32, + BlockKind::Furnace => 3.5f32, + BlockKind::OakSign => 1f32, + BlockKind::SpruceSign => 1f32, + BlockKind::BirchSign => 1f32, + BlockKind::AcaciaSign => 1f32, + BlockKind::JungleSign => 1f32, + BlockKind::DarkOakSign => 1f32, + BlockKind::OakDoor => 3f32, + BlockKind::Ladder => 0.4f32, + BlockKind::Rail => 0.7f32, + BlockKind::CobblestoneStairs => 6f32, + BlockKind::OakWallSign => 1f32, + BlockKind::SpruceWallSign => 1f32, + BlockKind::BirchWallSign => 1f32, + BlockKind::AcaciaWallSign => 1f32, + BlockKind::JungleWallSign => 1f32, + BlockKind::DarkOakWallSign => 1f32, + BlockKind::Lever => 0.5f32, + BlockKind::StonePressurePlate => 0.5f32, + BlockKind::IronDoor => 5f32, + BlockKind::OakPressurePlate => 0.5f32, + BlockKind::SprucePressurePlate => 0.5f32, + BlockKind::BirchPressurePlate => 0.5f32, + BlockKind::JunglePressurePlate => 0.5f32, + BlockKind::AcaciaPressurePlate => 0.5f32, + BlockKind::DarkOakPressurePlate => 0.5f32, + BlockKind::RedstoneOre => 3f32, + BlockKind::DeepslateRedstoneOre => 3f32, + BlockKind::RedstoneTorch => 0f32, + BlockKind::RedstoneWallTorch => 0f32, + BlockKind::StoneButton => 0.5f32, + BlockKind::Snow => 0.1f32, + BlockKind::Ice => 0.5f32, + BlockKind::SnowBlock => 0.2f32, + BlockKind::Cactus => 0.4f32, + BlockKind::Clay => 0.6f32, + BlockKind::SugarCane => 0f32, + BlockKind::Jukebox => 6f32, + BlockKind::OakFence => 3f32, + BlockKind::Pumpkin => 1f32, + BlockKind::Netherrack => 0.4f32, + BlockKind::SoulSand => 0.5f32, + BlockKind::SoulSoil => 0.5f32, + BlockKind::Basalt => 4.2f32, + BlockKind::PolishedBasalt => 4.2f32, + BlockKind::SoulTorch => 0f32, + BlockKind::SoulWallTorch => 0f32, + BlockKind::Glowstone => 0.3f32, + BlockKind::NetherPortal => -1f32, + BlockKind::CarvedPumpkin => 1f32, + BlockKind::JackOLantern => 1f32, + BlockKind::Cake => 0.5f32, + BlockKind::Repeater => 0f32, + BlockKind::WhiteStainedGlass => 0.3f32, + BlockKind::OrangeStainedGlass => 0.3f32, + BlockKind::MagentaStainedGlass => 0.3f32, + BlockKind::LightBlueStainedGlass => 0.3f32, + BlockKind::YellowStainedGlass => 0.3f32, + BlockKind::LimeStainedGlass => 0.3f32, + BlockKind::PinkStainedGlass => 0.3f32, + BlockKind::GrayStainedGlass => 0.3f32, + BlockKind::LightGrayStainedGlass => 0.3f32, + BlockKind::CyanStainedGlass => 0.3f32, + BlockKind::PurpleStainedGlass => 0.3f32, + BlockKind::BlueStainedGlass => 0.3f32, + BlockKind::BrownStainedGlass => 0.3f32, + BlockKind::GreenStainedGlass => 0.3f32, + BlockKind::RedStainedGlass => 0.3f32, + BlockKind::BlackStainedGlass => 0.3f32, + BlockKind::OakTrapdoor => 3f32, + BlockKind::SpruceTrapdoor => 3f32, + BlockKind::BirchTrapdoor => 3f32, + BlockKind::JungleTrapdoor => 3f32, + BlockKind::AcaciaTrapdoor => 3f32, + BlockKind::DarkOakTrapdoor => 3f32, + BlockKind::StoneBricks => 6f32, + BlockKind::MossyStoneBricks => 6f32, + BlockKind::CrackedStoneBricks => 6f32, + BlockKind::ChiseledStoneBricks => 6f32, + BlockKind::InfestedStone => 0f32, + BlockKind::InfestedCobblestone => 0f32, + BlockKind::InfestedStoneBricks => 0f32, + BlockKind::InfestedMossyStoneBricks => 0f32, + BlockKind::InfestedCrackedStoneBricks => 0f32, + BlockKind::InfestedChiseledStoneBricks => 0f32, + BlockKind::BrownMushroomBlock => 0.2f32, + BlockKind::RedMushroomBlock => 0.2f32, + BlockKind::MushroomStem => 0.2f32, + BlockKind::IronBars => 6f32, + BlockKind::Chain => 6f32, + BlockKind::GlassPane => 0.3f32, + BlockKind::Melon => 1f32, + BlockKind::AttachedPumpkinStem => 0f32, + BlockKind::AttachedMelonStem => 0f32, + BlockKind::PumpkinStem => 0f32, + BlockKind::MelonStem => 0f32, + BlockKind::Vine => 0.2f32, + BlockKind::GlowLichen => 0.2f32, + BlockKind::OakFenceGate => 3f32, + BlockKind::BrickStairs => 6f32, + BlockKind::StoneBrickStairs => 6f32, + BlockKind::Mycelium => 0.6f32, + BlockKind::LilyPad => 0f32, + BlockKind::NetherBricks => 6f32, + BlockKind::NetherBrickFence => 6f32, + BlockKind::NetherBrickStairs => 6f32, + BlockKind::NetherWart => 0f32, + BlockKind::EnchantingTable => 1200f32, + BlockKind::BrewingStand => 0.5f32, + BlockKind::Cauldron => 2f32, + BlockKind::WaterCauldron => 0f32, + BlockKind::LavaCauldron => 0f32, + BlockKind::PowderSnowCauldron => 0f32, + BlockKind::EndPortal => 3600000f32, + BlockKind::EndPortalFrame => 3600000f32, + BlockKind::EndStone => 9f32, + BlockKind::DragonEgg => 9f32, + BlockKind::RedstoneLamp => 0.3f32, + BlockKind::Cocoa => 3f32, + BlockKind::SandstoneStairs => 0.8f32, + BlockKind::EmeraldOre => 3f32, + BlockKind::DeepslateEmeraldOre => 3f32, + BlockKind::EnderChest => 600f32, + BlockKind::TripwireHook => 0f32, + BlockKind::Tripwire => 0f32, + BlockKind::EmeraldBlock => 6f32, + BlockKind::SpruceStairs => 3f32, + BlockKind::BirchStairs => 3f32, + BlockKind::JungleStairs => 3f32, + BlockKind::CommandBlock => 3600000f32, + BlockKind::Beacon => 3f32, + BlockKind::CobblestoneWall => 6f32, + BlockKind::MossyCobblestoneWall => 6f32, + BlockKind::FlowerPot => 0f32, + BlockKind::PottedOakSapling => 0f32, + BlockKind::PottedSpruceSapling => 0f32, + BlockKind::PottedBirchSapling => 0f32, + BlockKind::PottedJungleSapling => 0f32, + BlockKind::PottedAcaciaSapling => 0f32, + BlockKind::PottedDarkOakSapling => 0f32, + BlockKind::PottedFern => 0f32, + BlockKind::PottedDandelion => 0f32, + BlockKind::PottedPoppy => 0f32, + BlockKind::PottedBlueOrchid => 0f32, + BlockKind::PottedAllium => 0f32, + BlockKind::PottedAzureBluet => 0f32, + BlockKind::PottedRedTulip => 0f32, + BlockKind::PottedOrangeTulip => 0f32, + BlockKind::PottedWhiteTulip => 0f32, + BlockKind::PottedPinkTulip => 0f32, + BlockKind::PottedOxeyeDaisy => 0f32, + BlockKind::PottedCornflower => 0f32, + BlockKind::PottedLilyOfTheValley => 0f32, + BlockKind::PottedWitherRose => 0f32, + BlockKind::PottedRedMushroom => 0f32, + BlockKind::PottedBrownMushroom => 0f32, + BlockKind::PottedDeadBush => 0f32, + BlockKind::PottedCactus => 0f32, + BlockKind::Carrots => 0f32, + BlockKind::Potatoes => 0f32, + BlockKind::OakButton => 0.5f32, + BlockKind::SpruceButton => 0.5f32, + BlockKind::BirchButton => 0.5f32, + BlockKind::JungleButton => 0.5f32, + BlockKind::AcaciaButton => 0.5f32, + BlockKind::DarkOakButton => 0.5f32, + BlockKind::SkeletonSkull => 1f32, + BlockKind::SkeletonWallSkull => 1f32, + BlockKind::WitherSkeletonSkull => 1f32, + BlockKind::WitherSkeletonWallSkull => 1f32, + BlockKind::ZombieHead => 1f32, + BlockKind::ZombieWallHead => 1f32, + BlockKind::PlayerHead => 1f32, + BlockKind::PlayerWallHead => 1f32, + BlockKind::CreeperHead => 1f32, + BlockKind::CreeperWallHead => 1f32, + BlockKind::DragonHead => 1f32, + BlockKind::DragonWallHead => 1f32, + BlockKind::Anvil => 1200f32, + BlockKind::ChippedAnvil => 1200f32, + BlockKind::DamagedAnvil => 1200f32, + BlockKind::TrappedChest => 2.5f32, + BlockKind::LightWeightedPressurePlate => 0.5f32, + BlockKind::HeavyWeightedPressurePlate => 0.5f32, + BlockKind::Comparator => 0f32, + BlockKind::DaylightDetector => 0.2f32, + BlockKind::RedstoneBlock => 6f32, + BlockKind::NetherQuartzOre => 3f32, + BlockKind::Hopper => 4.8f32, + BlockKind::QuartzBlock => 0.8f32, + BlockKind::ChiseledQuartzBlock => 0.8f32, + BlockKind::QuartzPillar => 0.8f32, + BlockKind::QuartzStairs => 0.8f32, + BlockKind::ActivatorRail => 0.7f32, + BlockKind::Dropper => 3.5f32, + BlockKind::WhiteTerracotta => 4.2f32, + BlockKind::OrangeTerracotta => 4.2f32, + BlockKind::MagentaTerracotta => 4.2f32, + BlockKind::LightBlueTerracotta => 4.2f32, + BlockKind::YellowTerracotta => 4.2f32, + BlockKind::LimeTerracotta => 4.2f32, + BlockKind::PinkTerracotta => 4.2f32, + BlockKind::GrayTerracotta => 4.2f32, + BlockKind::LightGrayTerracotta => 4.2f32, + BlockKind::CyanTerracotta => 4.2f32, + BlockKind::PurpleTerracotta => 4.2f32, + BlockKind::BlueTerracotta => 4.2f32, + BlockKind::BrownTerracotta => 4.2f32, + BlockKind::GreenTerracotta => 4.2f32, + BlockKind::RedTerracotta => 4.2f32, + BlockKind::BlackTerracotta => 4.2f32, + BlockKind::WhiteStainedGlassPane => 0.3f32, + BlockKind::OrangeStainedGlassPane => 0.3f32, + BlockKind::MagentaStainedGlassPane => 0.3f32, + BlockKind::LightBlueStainedGlassPane => 0.3f32, + BlockKind::YellowStainedGlassPane => 0.3f32, + BlockKind::LimeStainedGlassPane => 0.3f32, + BlockKind::PinkStainedGlassPane => 0.3f32, + BlockKind::GrayStainedGlassPane => 0.3f32, + BlockKind::LightGrayStainedGlassPane => 0.3f32, + BlockKind::CyanStainedGlassPane => 0.3f32, + BlockKind::PurpleStainedGlassPane => 0.3f32, + BlockKind::BlueStainedGlassPane => 0.3f32, + BlockKind::BrownStainedGlassPane => 0.3f32, + BlockKind::GreenStainedGlassPane => 0.3f32, + BlockKind::RedStainedGlassPane => 0.3f32, + BlockKind::BlackStainedGlassPane => 0.3f32, + BlockKind::AcaciaStairs => 3f32, + BlockKind::DarkOakStairs => 3f32, + BlockKind::SlimeBlock => 0f32, + BlockKind::Barrier => 3600000.8f32, + BlockKind::Light => 3600000.8f32, + BlockKind::IronTrapdoor => 5f32, + BlockKind::Prismarine => 6f32, + BlockKind::PrismarineBricks => 6f32, + BlockKind::DarkPrismarine => 6f32, + BlockKind::PrismarineStairs => 6f32, + BlockKind::PrismarineBrickStairs => 6f32, + BlockKind::DarkPrismarineStairs => 6f32, + BlockKind::PrismarineSlab => 6f32, + BlockKind::PrismarineBrickSlab => 6f32, + BlockKind::DarkPrismarineSlab => 6f32, + BlockKind::SeaLantern => 0.3f32, + BlockKind::HayBlock => 0.5f32, + BlockKind::WhiteCarpet => 0.1f32, + BlockKind::OrangeCarpet => 0.1f32, + BlockKind::MagentaCarpet => 0.1f32, + BlockKind::LightBlueCarpet => 0.1f32, + BlockKind::YellowCarpet => 0.1f32, + BlockKind::LimeCarpet => 0.1f32, + BlockKind::PinkCarpet => 0.1f32, + BlockKind::GrayCarpet => 0.1f32, + BlockKind::LightGrayCarpet => 0.1f32, + BlockKind::CyanCarpet => 0.1f32, + BlockKind::PurpleCarpet => 0.1f32, + BlockKind::BlueCarpet => 0.1f32, + BlockKind::BrownCarpet => 0.1f32, + BlockKind::GreenCarpet => 0.1f32, + BlockKind::RedCarpet => 0.1f32, + BlockKind::BlackCarpet => 0.1f32, + BlockKind::Terracotta => 4.2f32, + BlockKind::CoalBlock => 6f32, + BlockKind::PackedIce => 0.5f32, + BlockKind::Sunflower => 0f32, + BlockKind::Lilac => 0f32, + BlockKind::RoseBush => 0f32, + BlockKind::Peony => 0f32, + BlockKind::TallGrass => 0f32, + BlockKind::LargeFern => 0f32, + BlockKind::WhiteBanner => 1f32, + BlockKind::OrangeBanner => 1f32, + BlockKind::MagentaBanner => 1f32, + BlockKind::LightBlueBanner => 1f32, + BlockKind::YellowBanner => 1f32, + BlockKind::LimeBanner => 1f32, + BlockKind::PinkBanner => 1f32, + BlockKind::GrayBanner => 1f32, + BlockKind::LightGrayBanner => 1f32, + BlockKind::CyanBanner => 1f32, + BlockKind::PurpleBanner => 1f32, + BlockKind::BlueBanner => 1f32, + BlockKind::BrownBanner => 1f32, + BlockKind::GreenBanner => 1f32, + BlockKind::RedBanner => 1f32, + BlockKind::BlackBanner => 1f32, + BlockKind::WhiteWallBanner => 1f32, + BlockKind::OrangeWallBanner => 1f32, + BlockKind::MagentaWallBanner => 1f32, + BlockKind::LightBlueWallBanner => 1f32, + BlockKind::YellowWallBanner => 1f32, + BlockKind::LimeWallBanner => 1f32, + BlockKind::PinkWallBanner => 1f32, + BlockKind::GrayWallBanner => 1f32, + BlockKind::LightGrayWallBanner => 1f32, + BlockKind::CyanWallBanner => 1f32, + BlockKind::PurpleWallBanner => 1f32, + BlockKind::BlueWallBanner => 1f32, + BlockKind::BrownWallBanner => 1f32, + BlockKind::GreenWallBanner => 1f32, + BlockKind::RedWallBanner => 1f32, + BlockKind::BlackWallBanner => 1f32, + BlockKind::RedSandstone => 0.8f32, + BlockKind::ChiseledRedSandstone => 0.8f32, + BlockKind::CutRedSandstone => 0.8f32, + BlockKind::RedSandstoneStairs => 0.8f32, + BlockKind::OakSlab => 3f32, + BlockKind::SpruceSlab => 3f32, + BlockKind::BirchSlab => 3f32, + BlockKind::JungleSlab => 3f32, + BlockKind::AcaciaSlab => 3f32, + BlockKind::DarkOakSlab => 3f32, + BlockKind::StoneSlab => 6f32, + BlockKind::SmoothStoneSlab => 6f32, + BlockKind::SandstoneSlab => 6f32, + BlockKind::CutSandstoneSlab => 6f32, + BlockKind::PetrifiedOakSlab => 6f32, + BlockKind::CobblestoneSlab => 6f32, + BlockKind::BrickSlab => 6f32, + BlockKind::StoneBrickSlab => 6f32, + BlockKind::NetherBrickSlab => 6f32, + BlockKind::QuartzSlab => 6f32, + BlockKind::RedSandstoneSlab => 6f32, + BlockKind::CutRedSandstoneSlab => 6f32, + BlockKind::PurpurSlab => 6f32, + BlockKind::SmoothStone => 6f32, + BlockKind::SmoothSandstone => 6f32, + BlockKind::SmoothQuartz => 6f32, + BlockKind::SmoothRedSandstone => 6f32, + BlockKind::SpruceFenceGate => 3f32, + BlockKind::BirchFenceGate => 3f32, + BlockKind::JungleFenceGate => 3f32, + BlockKind::AcaciaFenceGate => 3f32, + BlockKind::DarkOakFenceGate => 3f32, + BlockKind::SpruceFence => 3f32, + BlockKind::BirchFence => 3f32, + BlockKind::JungleFence => 3f32, + BlockKind::AcaciaFence => 3f32, + BlockKind::DarkOakFence => 3f32, + BlockKind::SpruceDoor => 3f32, + BlockKind::BirchDoor => 3f32, + BlockKind::JungleDoor => 3f32, + BlockKind::AcaciaDoor => 3f32, + BlockKind::DarkOakDoor => 3f32, + BlockKind::EndRod => 0f32, + BlockKind::ChorusPlant => 0.4f32, + BlockKind::ChorusFlower => 0.4f32, + BlockKind::PurpurBlock => 6f32, + BlockKind::PurpurPillar => 6f32, + BlockKind::PurpurStairs => 6f32, + BlockKind::EndStoneBricks => 9f32, + BlockKind::Beetroots => 0f32, + BlockKind::DirtPath => 0.65f32, + BlockKind::EndGateway => 3600000f32, + BlockKind::RepeatingCommandBlock => 3600000f32, + BlockKind::ChainCommandBlock => 3600000f32, + BlockKind::FrostedIce => 0.5f32, + BlockKind::MagmaBlock => 0.5f32, + BlockKind::NetherWartBlock => 1f32, + BlockKind::RedNetherBricks => 6f32, + BlockKind::BoneBlock => 2f32, + BlockKind::StructureVoid => 0f32, + BlockKind::Observer => 3f32, + BlockKind::ShulkerBox => 2f32, + BlockKind::WhiteShulkerBox => 2f32, + BlockKind::OrangeShulkerBox => 2f32, + BlockKind::MagentaShulkerBox => 2f32, + BlockKind::LightBlueShulkerBox => 2f32, + BlockKind::YellowShulkerBox => 2f32, + BlockKind::LimeShulkerBox => 2f32, + BlockKind::PinkShulkerBox => 2f32, + BlockKind::GrayShulkerBox => 2f32, + BlockKind::LightGrayShulkerBox => 2f32, + BlockKind::CyanShulkerBox => 2f32, + BlockKind::PurpleShulkerBox => 2f32, + BlockKind::BlueShulkerBox => 2f32, + BlockKind::BrownShulkerBox => 2f32, + BlockKind::GreenShulkerBox => 2f32, + BlockKind::RedShulkerBox => 2f32, + BlockKind::BlackShulkerBox => 2f32, + BlockKind::WhiteGlazedTerracotta => 1.4f32, + BlockKind::OrangeGlazedTerracotta => 1.4f32, + BlockKind::MagentaGlazedTerracotta => 1.4f32, + BlockKind::LightBlueGlazedTerracotta => 1.4f32, + BlockKind::YellowGlazedTerracotta => 1.4f32, + BlockKind::LimeGlazedTerracotta => 1.4f32, + BlockKind::PinkGlazedTerracotta => 1.4f32, + BlockKind::GrayGlazedTerracotta => 1.4f32, + BlockKind::LightGrayGlazedTerracotta => 1.4f32, + BlockKind::CyanGlazedTerracotta => 1.4f32, + BlockKind::PurpleGlazedTerracotta => 1.4f32, + BlockKind::BlueGlazedTerracotta => 1.4f32, + BlockKind::BrownGlazedTerracotta => 1.4f32, + BlockKind::GreenGlazedTerracotta => 1.4f32, + BlockKind::RedGlazedTerracotta => 1.4f32, + BlockKind::BlackGlazedTerracotta => 1.4f32, + BlockKind::WhiteConcrete => 1.8f32, + BlockKind::OrangeConcrete => 1.8f32, + BlockKind::MagentaConcrete => 1.8f32, + BlockKind::LightBlueConcrete => 1.8f32, + BlockKind::YellowConcrete => 1.8f32, + BlockKind::LimeConcrete => 1.8f32, + BlockKind::PinkConcrete => 1.8f32, + BlockKind::GrayConcrete => 1.8f32, + BlockKind::LightGrayConcrete => 1.8f32, + BlockKind::CyanConcrete => 1.8f32, + BlockKind::PurpleConcrete => 1.8f32, + BlockKind::BlueConcrete => 1.8f32, + BlockKind::BrownConcrete => 1.8f32, + BlockKind::GreenConcrete => 1.8f32, + BlockKind::RedConcrete => 1.8f32, + BlockKind::BlackConcrete => 1.8f32, + BlockKind::WhiteConcretePowder => 0.5f32, + BlockKind::OrangeConcretePowder => 0.5f32, + BlockKind::MagentaConcretePowder => 0.5f32, + BlockKind::LightBlueConcretePowder => 0.5f32, + BlockKind::YellowConcretePowder => 0.5f32, + BlockKind::LimeConcretePowder => 0.5f32, + BlockKind::PinkConcretePowder => 0.5f32, + BlockKind::GrayConcretePowder => 0.5f32, + BlockKind::LightGrayConcretePowder => 0.5f32, + BlockKind::CyanConcretePowder => 0.5f32, + BlockKind::PurpleConcretePowder => 0.5f32, + BlockKind::BlueConcretePowder => 0.5f32, + BlockKind::BrownConcretePowder => 0.5f32, + BlockKind::GreenConcretePowder => 0.5f32, + BlockKind::RedConcretePowder => 0.5f32, + BlockKind::BlackConcretePowder => 0.5f32, + BlockKind::Kelp => 0f32, + BlockKind::KelpPlant => 0f32, + BlockKind::DriedKelpBlock => 2.5f32, + BlockKind::TurtleEgg => 0.5f32, + BlockKind::DeadTubeCoralBlock => 6f32, + BlockKind::DeadBrainCoralBlock => 6f32, + BlockKind::DeadBubbleCoralBlock => 6f32, + BlockKind::DeadFireCoralBlock => 6f32, + BlockKind::DeadHornCoralBlock => 6f32, + BlockKind::TubeCoralBlock => 6f32, + BlockKind::BrainCoralBlock => 6f32, + BlockKind::BubbleCoralBlock => 6f32, + BlockKind::FireCoralBlock => 6f32, + BlockKind::HornCoralBlock => 6f32, + BlockKind::DeadTubeCoral => 0f32, + BlockKind::DeadBrainCoral => 0f32, + BlockKind::DeadBubbleCoral => 0f32, + BlockKind::DeadFireCoral => 0f32, + BlockKind::DeadHornCoral => 0f32, + BlockKind::TubeCoral => 0f32, + BlockKind::BrainCoral => 0f32, + BlockKind::BubbleCoral => 0f32, + BlockKind::FireCoral => 0f32, + BlockKind::HornCoral => 0f32, + BlockKind::DeadTubeCoralFan => 0f32, + BlockKind::DeadBrainCoralFan => 0f32, + BlockKind::DeadBubbleCoralFan => 0f32, + BlockKind::DeadFireCoralFan => 0f32, + BlockKind::DeadHornCoralFan => 0f32, + BlockKind::TubeCoralFan => 0f32, + BlockKind::BrainCoralFan => 0f32, + BlockKind::BubbleCoralFan => 0f32, + BlockKind::FireCoralFan => 0f32, + BlockKind::HornCoralFan => 0f32, + BlockKind::DeadTubeCoralWallFan => 0f32, + BlockKind::DeadBrainCoralWallFan => 0f32, + BlockKind::DeadBubbleCoralWallFan => 0f32, + BlockKind::DeadFireCoralWallFan => 0f32, + BlockKind::DeadHornCoralWallFan => 0f32, + BlockKind::TubeCoralWallFan => 0f32, + BlockKind::BrainCoralWallFan => 0f32, + BlockKind::BubbleCoralWallFan => 0f32, + BlockKind::FireCoralWallFan => 0f32, + BlockKind::HornCoralWallFan => 0f32, + BlockKind::SeaPickle => 0f32, + BlockKind::BlueIce => 2.8f32, + BlockKind::Conduit => 3f32, + BlockKind::BambooSapling => 1f32, + BlockKind::Bamboo => 1f32, + BlockKind::PottedBamboo => 0f32, + BlockKind::VoidAir => 0f32, + BlockKind::CaveAir => 0f32, + BlockKind::BubbleColumn => 0f32, + BlockKind::PolishedGraniteStairs => 6f32, + BlockKind::SmoothRedSandstoneStairs => 6f32, + BlockKind::MossyStoneBrickStairs => 6f32, + BlockKind::PolishedDioriteStairs => 6f32, + BlockKind::MossyCobblestoneStairs => 6f32, + BlockKind::EndStoneBrickStairs => 9f32, + BlockKind::StoneStairs => 6f32, + BlockKind::SmoothSandstoneStairs => 6f32, + BlockKind::SmoothQuartzStairs => 6f32, + BlockKind::GraniteStairs => 6f32, + BlockKind::AndesiteStairs => 6f32, + BlockKind::RedNetherBrickStairs => 6f32, + BlockKind::PolishedAndesiteStairs => 6f32, + BlockKind::DioriteStairs => 6f32, + BlockKind::PolishedGraniteSlab => 6f32, + BlockKind::SmoothRedSandstoneSlab => 6f32, + BlockKind::MossyStoneBrickSlab => 6f32, + BlockKind::PolishedDioriteSlab => 6f32, + BlockKind::MossyCobblestoneSlab => 6f32, + BlockKind::EndStoneBrickSlab => 9f32, + BlockKind::SmoothSandstoneSlab => 6f32, + BlockKind::SmoothQuartzSlab => 6f32, + BlockKind::GraniteSlab => 6f32, + BlockKind::AndesiteSlab => 6f32, + BlockKind::RedNetherBrickSlab => 6f32, + BlockKind::PolishedAndesiteSlab => 6f32, + BlockKind::DioriteSlab => 6f32, + BlockKind::BrickWall => 6f32, + BlockKind::PrismarineWall => 6f32, + BlockKind::RedSandstoneWall => 0.8f32, + BlockKind::MossyStoneBrickWall => 6f32, + BlockKind::GraniteWall => 6f32, + BlockKind::StoneBrickWall => 6f32, + BlockKind::NetherBrickWall => 6f32, + BlockKind::AndesiteWall => 6f32, + BlockKind::RedNetherBrickWall => 6f32, + BlockKind::SandstoneWall => 0.8f32, + BlockKind::EndStoneBrickWall => 9f32, + BlockKind::DioriteWall => 6f32, + BlockKind::Scaffolding => 0f32, + BlockKind::Loom => 2.5f32, + BlockKind::Barrel => 2.5f32, + BlockKind::Smoker => 3.5f32, + BlockKind::BlastFurnace => 3.5f32, + BlockKind::CartographyTable => 2.5f32, + BlockKind::FletchingTable => 2.5f32, + BlockKind::Grindstone => 6f32, + BlockKind::Lectern => 2.5f32, + BlockKind::SmithingTable => 2.5f32, + BlockKind::Stonecutter => 3.5f32, + BlockKind::Bell => 5f32, + BlockKind::Lantern => 3.5f32, + BlockKind::SoulLantern => 3.5f32, + BlockKind::Campfire => 2f32, + BlockKind::SoulCampfire => 2f32, + BlockKind::SweetBerryBush => 0f32, + BlockKind::WarpedStem => 2f32, + BlockKind::StrippedWarpedStem => 2f32, + BlockKind::WarpedHyphae => 2f32, + BlockKind::StrippedWarpedHyphae => 2f32, + BlockKind::WarpedNylium => 0.4f32, + BlockKind::WarpedFungus => 0f32, + BlockKind::WarpedWartBlock => 1f32, + BlockKind::WarpedRoots => 0f32, + BlockKind::NetherSprouts => 0f32, + BlockKind::CrimsonStem => 2f32, + BlockKind::StrippedCrimsonStem => 2f32, + BlockKind::CrimsonHyphae => 2f32, + BlockKind::StrippedCrimsonHyphae => 2f32, + BlockKind::CrimsonNylium => 0.4f32, + BlockKind::CrimsonFungus => 0f32, + BlockKind::Shroomlight => 1f32, + BlockKind::WeepingVines => 0f32, + BlockKind::WeepingVinesPlant => 0f32, + BlockKind::TwistingVines => 0f32, + BlockKind::TwistingVinesPlant => 0f32, + BlockKind::CrimsonRoots => 0f32, + BlockKind::CrimsonPlanks => 3f32, + BlockKind::WarpedPlanks => 3f32, + BlockKind::CrimsonSlab => 3f32, + BlockKind::WarpedSlab => 3f32, + BlockKind::CrimsonPressurePlate => 0.5f32, + BlockKind::WarpedPressurePlate => 0.5f32, + BlockKind::CrimsonFence => 3f32, + BlockKind::WarpedFence => 3f32, + BlockKind::CrimsonTrapdoor => 3f32, + BlockKind::WarpedTrapdoor => 3f32, + BlockKind::CrimsonFenceGate => 3f32, + BlockKind::WarpedFenceGate => 3f32, + BlockKind::CrimsonStairs => 3f32, + BlockKind::WarpedStairs => 3f32, + BlockKind::CrimsonButton => 0.5f32, + BlockKind::WarpedButton => 0.5f32, + BlockKind::CrimsonDoor => 3f32, + BlockKind::WarpedDoor => 3f32, + BlockKind::CrimsonSign => 1f32, + BlockKind::WarpedSign => 1f32, + BlockKind::CrimsonWallSign => 1f32, + BlockKind::WarpedWallSign => 1f32, + BlockKind::StructureBlock => 3600000f32, + BlockKind::Jigsaw => 3600000f32, + BlockKind::Composter => 0.6f32, + BlockKind::Target => 0.5f32, + BlockKind::BeeNest => 0.3f32, + BlockKind::Beehive => 0.6f32, + BlockKind::HoneyBlock => 0f32, + BlockKind::HoneycombBlock => 0.6f32, + BlockKind::NetheriteBlock => 1200f32, + BlockKind::AncientDebris => 1200f32, + BlockKind::CryingObsidian => 1200f32, + BlockKind::RespawnAnchor => 1200f32, + BlockKind::PottedCrimsonFungus => 0f32, + BlockKind::PottedWarpedFungus => 0f32, + BlockKind::PottedCrimsonRoots => 0f32, + BlockKind::PottedWarpedRoots => 0f32, + BlockKind::Lodestone => 3.5f32, + BlockKind::Blackstone => 6f32, + BlockKind::BlackstoneStairs => 6f32, + BlockKind::BlackstoneWall => 6f32, + BlockKind::BlackstoneSlab => 6f32, + BlockKind::PolishedBlackstone => 6f32, + BlockKind::PolishedBlackstoneBricks => 6f32, + BlockKind::CrackedPolishedBlackstoneBricks => 6f32, + BlockKind::ChiseledPolishedBlackstone => 6f32, + BlockKind::PolishedBlackstoneBrickSlab => 6f32, + BlockKind::PolishedBlackstoneBrickStairs => 6f32, + BlockKind::PolishedBlackstoneBrickWall => 6f32, + BlockKind::GildedBlackstone => 6f32, + BlockKind::PolishedBlackstoneStairs => 6f32, + BlockKind::PolishedBlackstoneSlab => 6f32, + BlockKind::PolishedBlackstonePressurePlate => 0.5f32, + BlockKind::PolishedBlackstoneButton => 0.5f32, + BlockKind::PolishedBlackstoneWall => 6f32, + BlockKind::ChiseledNetherBricks => 6f32, + BlockKind::CrackedNetherBricks => 6f32, + BlockKind::QuartzBricks => 0.8f32, + BlockKind::Candle => 0.1f32, + BlockKind::WhiteCandle => 0.1f32, + BlockKind::OrangeCandle => 0.1f32, + BlockKind::MagentaCandle => 0.1f32, + BlockKind::LightBlueCandle => 0.1f32, + BlockKind::YellowCandle => 0.1f32, + BlockKind::LimeCandle => 0.1f32, + BlockKind::PinkCandle => 0.1f32, + BlockKind::GrayCandle => 0.1f32, + BlockKind::LightGrayCandle => 0.1f32, + BlockKind::CyanCandle => 0.1f32, + BlockKind::PurpleCandle => 0.1f32, + BlockKind::BlueCandle => 0.1f32, + BlockKind::BrownCandle => 0.1f32, + BlockKind::GreenCandle => 0.1f32, + BlockKind::RedCandle => 0.1f32, + BlockKind::BlackCandle => 0.1f32, + BlockKind::CandleCake => 0f32, + BlockKind::WhiteCandleCake => 0f32, + BlockKind::OrangeCandleCake => 0f32, + BlockKind::MagentaCandleCake => 0f32, + BlockKind::LightBlueCandleCake => 0f32, + BlockKind::YellowCandleCake => 0f32, + BlockKind::LimeCandleCake => 0f32, + BlockKind::PinkCandleCake => 0f32, + BlockKind::GrayCandleCake => 0f32, + BlockKind::LightGrayCandleCake => 0f32, + BlockKind::CyanCandleCake => 0f32, + BlockKind::PurpleCandleCake => 0f32, + BlockKind::BlueCandleCake => 0f32, + BlockKind::BrownCandleCake => 0f32, + BlockKind::GreenCandleCake => 0f32, + BlockKind::RedCandleCake => 0f32, + BlockKind::BlackCandleCake => 0f32, + BlockKind::AmethystBlock => 1.5f32, + BlockKind::BuddingAmethyst => 1.5f32, + BlockKind::AmethystCluster => 1.5f32, + BlockKind::LargeAmethystBud => 0f32, + BlockKind::MediumAmethystBud => 0f32, + BlockKind::SmallAmethystBud => 0f32, + BlockKind::Tuff => 6f32, + BlockKind::Calcite => 0.75f32, + BlockKind::TintedGlass => 0f32, + BlockKind::PowderSnow => 0.25f32, + BlockKind::SculkSensor => 1.5f32, + BlockKind::OxidizedCopper => 6f32, + BlockKind::WeatheredCopper => 6f32, + BlockKind::ExposedCopper => 6f32, + BlockKind::CopperBlock => 6f32, + BlockKind::CopperOre => 0f32, + BlockKind::DeepslateCopperOre => 3f32, + BlockKind::OxidizedCutCopper => 0f32, + BlockKind::WeatheredCutCopper => 0f32, + BlockKind::ExposedCutCopper => 0f32, + BlockKind::CutCopper => 0f32, + BlockKind::OxidizedCutCopperStairs => 0f32, + BlockKind::WeatheredCutCopperStairs => 0f32, + BlockKind::ExposedCutCopperStairs => 0f32, + BlockKind::CutCopperStairs => 0f32, + BlockKind::OxidizedCutCopperSlab => 0f32, + BlockKind::WeatheredCutCopperSlab => 0f32, + BlockKind::ExposedCutCopperSlab => 0f32, + BlockKind::CutCopperSlab => 0f32, + BlockKind::WaxedCopperBlock => 0f32, + BlockKind::WaxedWeatheredCopper => 0f32, + BlockKind::WaxedExposedCopper => 0f32, + BlockKind::WaxedOxidizedCopper => 0f32, + BlockKind::WaxedOxidizedCutCopper => 0f32, + BlockKind::WaxedWeatheredCutCopper => 0f32, + BlockKind::WaxedExposedCutCopper => 0f32, + BlockKind::WaxedCutCopper => 0f32, + BlockKind::WaxedOxidizedCutCopperStairs => 0f32, + BlockKind::WaxedWeatheredCutCopperStairs => 0f32, + BlockKind::WaxedExposedCutCopperStairs => 0f32, + BlockKind::WaxedCutCopperStairs => 0f32, + BlockKind::WaxedOxidizedCutCopperSlab => 0f32, + BlockKind::WaxedWeatheredCutCopperSlab => 0f32, + BlockKind::WaxedExposedCutCopperSlab => 0f32, + BlockKind::WaxedCutCopperSlab => 0f32, + BlockKind::LightningRod => 6f32, + BlockKind::PointedDripstone => 3f32, + BlockKind::DripstoneBlock => 1f32, + BlockKind::CaveVines => 0f32, + BlockKind::CaveVinesPlant => 0f32, + BlockKind::SporeBlossom => 0f32, + BlockKind::Azalea => 0f32, + BlockKind::FloweringAzalea => 0f32, + BlockKind::MossCarpet => 0.1f32, + BlockKind::MossBlock => 0.1f32, + BlockKind::BigDripleaf => 0.1f32, + BlockKind::BigDripleafStem => 0.1f32, + BlockKind::SmallDripleaf => 0f32, + BlockKind::HangingRoots => 0f32, + BlockKind::RootedDirt => 0.5f32, + BlockKind::Deepslate => 6f32, + BlockKind::CobbledDeepslate => 6f32, + BlockKind::CobbledDeepslateStairs => 0f32, + BlockKind::CobbledDeepslateSlab => 0f32, + BlockKind::CobbledDeepslateWall => 0f32, + BlockKind::PolishedDeepslate => 0f32, + BlockKind::PolishedDeepslateStairs => 0f32, + BlockKind::PolishedDeepslateSlab => 0f32, + BlockKind::PolishedDeepslateWall => 0f32, + BlockKind::DeepslateTiles => 0f32, + BlockKind::DeepslateTileStairs => 0f32, + BlockKind::DeepslateTileSlab => 0f32, + BlockKind::DeepslateTileWall => 0f32, + BlockKind::DeepslateBricks => 0f32, + BlockKind::DeepslateBrickStairs => 0f32, + BlockKind::DeepslateBrickSlab => 0f32, + BlockKind::DeepslateBrickWall => 0f32, + BlockKind::ChiseledDeepslate => 0f32, + BlockKind::CrackedDeepslateBricks => 0f32, + BlockKind::CrackedDeepslateTiles => 0f32, + BlockKind::InfestedDeepslate => 0f32, + BlockKind::SmoothBasalt => 0f32, + BlockKind::RawIronBlock => 6f32, + BlockKind::RawCopperBlock => 6f32, + BlockKind::RawGoldBlock => 6f32, + BlockKind::PottedAzaleaBush => 0f32, + BlockKind::PottedFloweringAzaleaBush => 0f32, } } } impl BlockKind { - #[doc = "Returns the `default_state_id` property of this `BlockKind`."] + #[doc = "Returns the `hardness` property of this `BlockKind`."] #[inline] - pub fn default_state_id(&self) -> u16 { + pub fn hardness(&self) -> f32 { match self { - BlockKind::Seagrass => 1401u16, - BlockKind::AcaciaTrapdoor => 4451u16, - BlockKind::SoulSand => 4069u16, - BlockKind::AmethystCluster => 17675u16, - BlockKind::MagmaBlock => 9503u16, - BlockKind::StoneBricks => 4564u16, - BlockKind::BrownShulkerBox => 9604u16, - BlockKind::OrangeConcretePowder => 9705u16, - BlockKind::OakLog => 77u16, - BlockKind::DarkOakSlab => 8583u16, - BlockKind::Sponge => 260u16, - BlockKind::Chain => 4801u16, - BlockKind::DeadTubeCoralBlock => 9760u16, - BlockKind::YellowWallBanner => 8419u16, - BlockKind::MagentaStainedGlassPane => 7176u16, - BlockKind::JungleWood => 122u16, - BlockKind::InfestedCrackedStoneBricks => 4572u16, - BlockKind::IronDoor => 3887u16, - BlockKind::RedGlazedTerracotta => 9680u16, - BlockKind::ExposedCopper => 17816u16, - BlockKind::DeadBush => 1400u16, - BlockKind::AndesiteStairs => 10730u16, - BlockKind::Basalt => 4072u16, - BlockKind::StoneSlab => 8589u16, - BlockKind::OrangeShulkerBox => 9538u16, - BlockKind::RedTerracotta => 7079u16, - BlockKind::PurpleBed => 1244u16, - BlockKind::WaxedCutCopperSlab => 18517u16, - BlockKind::EndStoneBrickSlab => 11072u16, - BlockKind::DeepslateTileWall => 19598u16, - BlockKind::BrownGlazedTerracotta => 9672u16, - BlockKind::GrayWool => 1447u16, - BlockKind::StrippedWarpedStem => 15216u16, - BlockKind::CyanCandleCake => 17651u16, - BlockKind::BrainCoralWallFan => 9858u16, - BlockKind::SeaPickle => 9890u16, - BlockKind::Repeater => 4103u16, - BlockKind::RedSandstoneWall => 11768u16, - BlockKind::CandleCake => 17631u16, - BlockKind::GlowLichen => 5020u16, - BlockKind::BlueCarpet => 8127u16, - BlockKind::AcaciaLeaves => 217u16, - BlockKind::MagentaShulkerBox => 9544u16, - BlockKind::BlueConcrete => 9699u16, - BlockKind::NetherBricks => 5216u16, - BlockKind::BlueIce => 9898u16, - BlockKind::BambooSapling => 9901u16, - BlockKind::PottedPoppy => 6520u16, - BlockKind::Observer => 9515u16, - BlockKind::BlackConcrete => 9703u16, - BlockKind::PottedCrimsonFungus => 16088u16, - BlockKind::WaxedWeatheredCopper => 18169u16, - BlockKind::PlayerHead => 6756u16, - BlockKind::StrippedBirchWood => 137u16, - BlockKind::MagentaBed => 1116u16, - BlockKind::Sand => 66u16, - BlockKind::RedstoneTorch => 3956u16, - BlockKind::RedCandle => 17601u16, - BlockKind::OrangeBanner => 8163u16, - BlockKind::BirchSlab => 8565u16, - BlockKind::WhiteTulip => 1475u16, - BlockKind::SpruceSign => 3471u16, - BlockKind::PottedWhiteTulip => 6526u16, - BlockKind::DeadTubeCoral => 9770u16, - BlockKind::BubbleCoralWallFan => 9866u16, - BlockKind::MagentaWool => 1442u16, - BlockKind::WitherRose => 1479u16, - BlockKind::TurtleEgg => 9748u16, - BlockKind::WeatheredCutCopper => 17821u16, - BlockKind::BlueConcretePowder => 9715u16, - BlockKind::WarpedFungus => 15225u16, - BlockKind::PrismarineBricks => 7852u16, - BlockKind::Cactus => 4000u16, - BlockKind::Terracotta => 8132u16, - BlockKind::BlackstoneSlab => 16501u16, - BlockKind::YellowGlazedTerracotta => 9640u16, - BlockKind::BlackstoneWall => 16177u16, - BlockKind::GreenShulkerBox => 9610u16, - BlockKind::BlackGlazedTerracotta => 9684u16, - BlockKind::Blackstone => 16093u16, - BlockKind::LightBlueGlazedTerracotta => 9636u16, - BlockKind::GrayBed => 1196u16, - BlockKind::RedstoneOre => 3953u16, - BlockKind::WeepingVines => 15244u16, - BlockKind::Fern => 1399u16, - BlockKind::SpruceDoor => 8999u16, - BlockKind::RedTulip => 1473u16, - BlockKind::LightGrayWallBanner => 8435u16, - BlockKind::CutCopper => 17823u16, - BlockKind::CobblestoneSlab => 8619u16, - BlockKind::AcaciaWood => 125u16, - BlockKind::StrippedWarpedHyphae => 15222u16, - BlockKind::MagentaBanner => 8179u16, - BlockKind::EndRod => 9312u16, - BlockKind::TwistingVinesPlant => 15297u16, - BlockKind::CutSandstone => 280u16, - BlockKind::WhiteGlazedTerracotta => 9624u16, - BlockKind::Cornflower => 1478u16, - BlockKind::DarkOakPlanks => 20u16, - BlockKind::SmoothStoneSlab => 8595u16, - BlockKind::PointedDripstone => 18549u16, - BlockKind::DarkOakSign => 3599u16, - BlockKind::MossyStoneBrickWall => 12092u16, - BlockKind::PottedRedTulip => 6524u16, - BlockKind::DeadTubeCoralWallFan => 9810u16, - BlockKind::FloweringAzalea => 18621u16, - BlockKind::WaxedExposedCutCopperStairs => 18347u16, - BlockKind::SmoothSandstoneSlab => 11078u16, - BlockKind::AzureBluet => 1472u16, - BlockKind::HornCoral => 9788u16, - BlockKind::Bell => 15105u16, - BlockKind::CyanGlazedTerracotta => 9660u16, - BlockKind::DarkOakTrapdoor => 4515u16, - BlockKind::WarpedStem => 15213u16, - BlockKind::IronOre => 71u16, - BlockKind::GreenBanner => 8355u16, - BlockKind::BlueWallBanner => 8447u16, - BlockKind::BubbleCoralBlock => 9767u16, - BlockKind::CrimsonDoor => 15792u16, - BlockKind::PrismarineStairs => 7865u16, - BlockKind::Bookshelf => 1488u16, - BlockKind::DragonHead => 6796u16, - BlockKind::PumpkinStem => 4845u16, - BlockKind::NetherWart => 5329u16, - BlockKind::Stone => 1u16, - BlockKind::LimeStainedGlassPane => 7272u16, - BlockKind::SoulSoil => 4070u16, - BlockKind::EnchantingTable => 5333u16, - BlockKind::SmoothStone => 8664u16, - BlockKind::LargeAmethystBud => 17687u16, - BlockKind::EndStone => 5359u16, - BlockKind::LimeBed => 1164u16, - BlockKind::PottedFern => 6518u16, - BlockKind::HornCoralFan => 9808u16, - BlockKind::HayBlock => 8114u16, - BlockKind::PottedDeadBush => 6534u16, - BlockKind::CarvedPumpkin => 4085u16, - BlockKind::BrownConcrete => 9700u16, - BlockKind::GoldOre => 69u16, - BlockKind::BlackStainedGlass => 4179u16, - BlockKind::OakSlab => 8553u16, - BlockKind::PinkStainedGlassPane => 7304u16, - BlockKind::NetherBrickWall => 13064u16, - BlockKind::SoulCampfire => 15179u16, - BlockKind::GreenConcretePowder => 9717u16, - BlockKind::PottedWitherRose => 6531u16, - BlockKind::LimeCandle => 17457u16, - BlockKind::DarkOakWallSign => 3843u16, - BlockKind::Granite => 2u16, - BlockKind::CutCopperStairs => 18075u16, - BlockKind::DeepslateLapisOre => 264u16, - BlockKind::LavaCauldron => 5346u16, - BlockKind::LightGrayTerracotta => 7073u16, - BlockKind::WarpedSign => 15942u16, - BlockKind::AmethystBlock => 17664u16, - BlockKind::YellowConcrete => 9692u16, - BlockKind::JunglePlanks => 18u16, - BlockKind::PolishedDeepslateWall => 19187u16, - BlockKind::QuartzBlock => 6944u16, - BlockKind::RedCarpet => 8130u16, - BlockKind::QuartzPillar => 6947u16, - BlockKind::SandstoneWall => 14036u16, - BlockKind::SoulTorch => 4077u16, - BlockKind::IronBars => 4797u16, - BlockKind::WhiteShulkerBox => 9532u16, - BlockKind::LightGrayCandle => 17505u16, - BlockKind::WaxedExposedCutCopper => 18174u16, - BlockKind::PottedAllium => 6522u16, - BlockKind::CyanConcretePowder => 9713u16, - BlockKind::Scaffolding => 15036u16, - BlockKind::Furnace => 3431u16, - BlockKind::DarkPrismarine => 7853u16, - BlockKind::DeepslateTileSlab => 19592u16, - BlockKind::RedSandstoneSlab => 8649u16, - BlockKind::SugarCane => 4017u16, - BlockKind::InfestedDeepslate => 20334u16, - BlockKind::AttachedMelonStem => 4841u16, - BlockKind::GreenBed => 1292u16, - BlockKind::Azalea => 18620u16, - BlockKind::DeadBrainCoralFan => 9792u16, - BlockKind::RedNetherBrickStairs => 10810u16, - BlockKind::MossyCobblestoneSlab => 11066u16, - BlockKind::LimeConcretePowder => 9709u16, - BlockKind::CyanCarpet => 8125u16, - BlockKind::CobbledDeepslate => 18686u16, - BlockKind::NetherSprouts => 15228u16, - BlockKind::Comparator => 6885u16, - BlockKind::Netherrack => 4068u16, - BlockKind::SnowBlock => 3999u16, - BlockKind::GrayCandleCake => 17647u16, - BlockKind::ChainCommandBlock => 9493u16, - BlockKind::CobbledDeepslateWall => 18776u16, - BlockKind::CyanBed => 1228u16, - BlockKind::Sunflower => 8136u16, - BlockKind::DeadFireCoralFan => 9796u16, - BlockKind::PinkBed => 1180u16, - BlockKind::BirchFence => 8891u16, - BlockKind::BlackBed => 1324u16, - BlockKind::StrippedOakLog => 110u16, - BlockKind::CrackedDeepslateTiles => 20332u16, - BlockKind::BrainCoral => 9782u16, - BlockKind::GrayStainedGlassPane => 7336u16, - BlockKind::WaxedExposedCopper => 18170u16, - BlockKind::CartographyTable => 15069u16, - BlockKind::PurpleTerracotta => 7075u16, - BlockKind::DeepslateDiamondOre => 3411u16, - BlockKind::OakTrapdoor => 4195u16, - BlockKind::Candle => 17361u16, - BlockKind::CraftingTable => 3413u16, - BlockKind::LightGrayGlazedTerracotta => 9656u16, - BlockKind::Bamboo => 9902u16, - BlockKind::EmeraldOre => 5455u16, - BlockKind::PolishedDeepslate => 19097u16, - BlockKind::MossyCobblestone => 1489u16, - BlockKind::CrimsonFungus => 15242u16, - BlockKind::PottedJungleSapling => 6515u16, - BlockKind::Tnt => 1487u16, - BlockKind::BigDripleafStem => 18657u16, - BlockKind::BlueTerracotta => 7076u16, - BlockKind::WarpedRoots => 15227u16, - BlockKind::LightBlueCandle => 17425u16, - BlockKind::MagentaTerracotta => 7067u16, - BlockKind::Calcite => 17715u16, - BlockKind::OakDoor => 3641u16, - BlockKind::DeadBrainCoralWallFan => 9818u16, - BlockKind::PistonHead => 1418u16, - BlockKind::PlayerWallHead => 6772u16, - BlockKind::PottedRedMushroom => 6532u16, - BlockKind::RedSandstone => 8467u16, - BlockKind::LightGrayConcrete => 9696u16, - BlockKind::OrangeCandleCake => 17635u16, - BlockKind::JungleTrapdoor => 4387u16, - BlockKind::NetherPortal => 4083u16, - BlockKind::Carrots => 6536u16, - BlockKind::FireCoral => 9786u16, - BlockKind::RawCopperBlock => 20338u16, - BlockKind::WaxedWeatheredCutCopperSlab => 18505u16, - BlockKind::OakSapling => 21u16, - BlockKind::LightWeightedPressurePlate => 6852u16, - BlockKind::LightBlueWool => 1443u16, - BlockKind::DarkOakLeaves => 231u16, - BlockKind::EnderChest => 5458u16, - BlockKind::BlueStainedGlassPane => 7464u16, - BlockKind::DeepslateBrickWall => 20009u16, - BlockKind::PurpleCarpet => 8126u16, + BlockKind::Air => 0f32, + BlockKind::Stone => 1.5f32, + BlockKind::Granite => 1.5f32, + BlockKind::PolishedGranite => 1.5f32, + BlockKind::Diorite => 1.5f32, + BlockKind::PolishedDiorite => 1.5f32, + BlockKind::Andesite => 1.5f32, + BlockKind::PolishedAndesite => 1.5f32, + BlockKind::GrassBlock => 0.6f32, + BlockKind::Dirt => 0.5f32, + BlockKind::CoarseDirt => 0.5f32, + BlockKind::Podzol => 0.5f32, + BlockKind::Cobblestone => 2f32, + BlockKind::OakPlanks => 2f32, + BlockKind::SprucePlanks => 2f32, + BlockKind::BirchPlanks => 2f32, + BlockKind::JunglePlanks => 2f32, + BlockKind::AcaciaPlanks => 2f32, + BlockKind::DarkOakPlanks => 2f32, + BlockKind::OakSapling => 0f32, + BlockKind::SpruceSapling => 0f32, + BlockKind::BirchSapling => 0f32, + BlockKind::JungleSapling => 0f32, + BlockKind::AcaciaSapling => 0f32, + BlockKind::DarkOakSapling => 0f32, + BlockKind::Bedrock => -1f32, + BlockKind::Water => 100f32, + BlockKind::Lava => 100f32, + BlockKind::Sand => 0.5f32, + BlockKind::RedSand => 0.5f32, + BlockKind::Gravel => 0.6f32, + BlockKind::GoldOre => 3f32, + BlockKind::DeepslateGoldOre => 4.5f32, + BlockKind::IronOre => 3f32, + BlockKind::DeepslateIronOre => 4.5f32, + BlockKind::CoalOre => 3f32, + BlockKind::DeepslateCoalOre => 4.5f32, + BlockKind::NetherGoldOre => 3f32, + BlockKind::OakLog => 2f32, + BlockKind::SpruceLog => 2f32, + BlockKind::BirchLog => 2f32, + BlockKind::JungleLog => 2f32, + BlockKind::AcaciaLog => 2f32, + BlockKind::DarkOakLog => 2f32, + BlockKind::StrippedSpruceLog => 2f32, + BlockKind::StrippedBirchLog => 2f32, + BlockKind::StrippedJungleLog => 2f32, + BlockKind::StrippedAcaciaLog => 2f32, + BlockKind::StrippedDarkOakLog => 2f32, + BlockKind::StrippedOakLog => 2f32, + BlockKind::OakWood => 2f32, + BlockKind::SpruceWood => 2f32, + BlockKind::BirchWood => 2f32, + BlockKind::JungleWood => 2f32, + BlockKind::AcaciaWood => 2f32, + BlockKind::DarkOakWood => 2f32, + BlockKind::StrippedOakWood => 2f32, + BlockKind::StrippedSpruceWood => 2f32, + BlockKind::StrippedBirchWood => 2f32, + BlockKind::StrippedJungleWood => 2f32, + BlockKind::StrippedAcaciaWood => 2f32, + BlockKind::StrippedDarkOakWood => 2f32, + BlockKind::OakLeaves => 0.2f32, + BlockKind::SpruceLeaves => 0.2f32, + BlockKind::BirchLeaves => 0.2f32, + BlockKind::JungleLeaves => 0.2f32, + BlockKind::AcaciaLeaves => 0.2f32, + BlockKind::DarkOakLeaves => 0.2f32, + BlockKind::AzaleaLeaves => 0.2f32, + BlockKind::FloweringAzaleaLeaves => 0.2f32, + BlockKind::Sponge => 0.6f32, + BlockKind::WetSponge => 0.6f32, + BlockKind::Glass => 0.3f32, + BlockKind::LapisOre => 3f32, + BlockKind::DeepslateLapisOre => 4.5f32, + BlockKind::LapisBlock => 3f32, + BlockKind::Dispenser => 3.5f32, + BlockKind::Sandstone => 0.8f32, + BlockKind::ChiseledSandstone => 0.8f32, + BlockKind::CutSandstone => 0.8f32, + BlockKind::NoteBlock => 0.8f32, + BlockKind::WhiteBed => 0.2f32, + BlockKind::OrangeBed => 0.2f32, + BlockKind::MagentaBed => 0.2f32, + BlockKind::LightBlueBed => 0.2f32, + BlockKind::YellowBed => 0.2f32, + BlockKind::LimeBed => 0.2f32, + BlockKind::PinkBed => 0.2f32, + BlockKind::GrayBed => 0.2f32, + BlockKind::LightGrayBed => 0.2f32, + BlockKind::CyanBed => 0.2f32, + BlockKind::PurpleBed => 0.2f32, + BlockKind::BlueBed => 0.2f32, + BlockKind::BrownBed => 0.2f32, + BlockKind::GreenBed => 0.2f32, + BlockKind::RedBed => 0.2f32, + BlockKind::BlackBed => 0.2f32, + BlockKind::PoweredRail => 0.7f32, + BlockKind::DetectorRail => 0.7f32, + BlockKind::StickyPiston => 1.5f32, + BlockKind::Cobweb => 4f32, + BlockKind::Grass => 0f32, + BlockKind::Fern => 0f32, + BlockKind::DeadBush => 0f32, + BlockKind::Seagrass => 0f32, + BlockKind::TallSeagrass => 0f32, + BlockKind::Piston => 1.5f32, + BlockKind::PistonHead => 1.5f32, + BlockKind::WhiteWool => 0.8f32, + BlockKind::OrangeWool => 0.8f32, + BlockKind::MagentaWool => 0.8f32, + BlockKind::LightBlueWool => 0.8f32, + BlockKind::YellowWool => 0.8f32, + BlockKind::LimeWool => 0.8f32, + BlockKind::PinkWool => 0.8f32, + BlockKind::GrayWool => 0.8f32, + BlockKind::LightGrayWool => 0.8f32, + BlockKind::CyanWool => 0.8f32, + BlockKind::PurpleWool => 0.8f32, + BlockKind::BlueWool => 0.8f32, + BlockKind::BrownWool => 0.8f32, + BlockKind::GreenWool => 0.8f32, + BlockKind::RedWool => 0.8f32, + BlockKind::BlackWool => 0.8f32, + BlockKind::MovingPiston => -1f32, + BlockKind::Dandelion => 0f32, + BlockKind::Poppy => 0f32, + BlockKind::BlueOrchid => 0f32, + BlockKind::Allium => 0f32, + BlockKind::AzureBluet => 0f32, + BlockKind::RedTulip => 0f32, + BlockKind::OrangeTulip => 0f32, + BlockKind::WhiteTulip => 0f32, + BlockKind::PinkTulip => 0f32, + BlockKind::OxeyeDaisy => 0f32, + BlockKind::Cornflower => 0f32, + BlockKind::WitherRose => 0f32, + BlockKind::LilyOfTheValley => 0f32, + BlockKind::BrownMushroom => 0f32, + BlockKind::RedMushroom => 0f32, + BlockKind::GoldBlock => 3f32, + BlockKind::IronBlock => 5f32, + BlockKind::Bricks => 2f32, + BlockKind::Tnt => 0f32, + BlockKind::Bookshelf => 1.5f32, + BlockKind::MossyCobblestone => 2f32, + BlockKind::Obsidian => 50f32, + BlockKind::Torch => 0f32, + BlockKind::WallTorch => 0f32, + BlockKind::Fire => 0f32, + BlockKind::SoulFire => 0f32, + BlockKind::Spawner => 5f32, + BlockKind::OakStairs => 2f32, + BlockKind::Chest => 2.5f32, + BlockKind::RedstoneWire => 0f32, + BlockKind::DiamondOre => 3f32, + BlockKind::DeepslateDiamondOre => 4.5f32, + BlockKind::DiamondBlock => 5f32, + BlockKind::CraftingTable => 2.5f32, + BlockKind::Wheat => 0f32, + BlockKind::Farmland => 0.6f32, + BlockKind::Furnace => 3.5f32, + BlockKind::OakSign => 1f32, + BlockKind::SpruceSign => 1f32, + BlockKind::BirchSign => 1f32, + BlockKind::AcaciaSign => 1f32, + BlockKind::JungleSign => 1f32, + BlockKind::DarkOakSign => 1f32, + BlockKind::OakDoor => 3f32, + BlockKind::Ladder => 0.4f32, + BlockKind::Rail => 0.7f32, + BlockKind::CobblestoneStairs => 2f32, + BlockKind::OakWallSign => 1f32, + BlockKind::SpruceWallSign => 1f32, + BlockKind::BirchWallSign => 1f32, + BlockKind::AcaciaWallSign => 1f32, + BlockKind::JungleWallSign => 1f32, + BlockKind::DarkOakWallSign => 1f32, + BlockKind::Lever => 0.5f32, + BlockKind::StonePressurePlate => 0.5f32, + BlockKind::IronDoor => 5f32, + BlockKind::OakPressurePlate => 0.5f32, + BlockKind::SprucePressurePlate => 0.5f32, + BlockKind::BirchPressurePlate => 0.5f32, + BlockKind::JunglePressurePlate => 0.5f32, + BlockKind::AcaciaPressurePlate => 0.5f32, + BlockKind::DarkOakPressurePlate => 0.5f32, + BlockKind::RedstoneOre => 3f32, + BlockKind::DeepslateRedstoneOre => 4.5f32, + BlockKind::RedstoneTorch => 0f32, + BlockKind::RedstoneWallTorch => 0f32, + BlockKind::StoneButton => 0.5f32, + BlockKind::Snow => 0.1f32, + BlockKind::Ice => 0.5f32, + BlockKind::SnowBlock => 0.2f32, + BlockKind::Cactus => 0.4f32, + BlockKind::Clay => 0.6f32, + BlockKind::SugarCane => 0f32, + BlockKind::Jukebox => 2f32, + BlockKind::OakFence => 2f32, + BlockKind::Pumpkin => 1f32, + BlockKind::Netherrack => 0.4f32, + BlockKind::SoulSand => 0.5f32, + BlockKind::SoulSoil => 0.5f32, + BlockKind::Basalt => 1.25f32, + BlockKind::PolishedBasalt => 1.25f32, + BlockKind::SoulTorch => 0f32, + BlockKind::SoulWallTorch => 0f32, + BlockKind::Glowstone => 0.3f32, + BlockKind::NetherPortal => -1f32, + BlockKind::CarvedPumpkin => 1f32, + BlockKind::JackOLantern => 1f32, + BlockKind::Cake => 0.5f32, + BlockKind::Repeater => 0f32, + BlockKind::WhiteStainedGlass => 0.3f32, + BlockKind::OrangeStainedGlass => 0.3f32, + BlockKind::MagentaStainedGlass => 0.3f32, + BlockKind::LightBlueStainedGlass => 0.3f32, + BlockKind::YellowStainedGlass => 0.3f32, + BlockKind::LimeStainedGlass => 0.3f32, + BlockKind::PinkStainedGlass => 0.3f32, + BlockKind::GrayStainedGlass => 0.3f32, + BlockKind::LightGrayStainedGlass => 0.3f32, + BlockKind::CyanStainedGlass => 0.3f32, + BlockKind::PurpleStainedGlass => 0.3f32, + BlockKind::BlueStainedGlass => 0.3f32, + BlockKind::BrownStainedGlass => 0.3f32, + BlockKind::GreenStainedGlass => 0.3f32, + BlockKind::RedStainedGlass => 0.3f32, + BlockKind::BlackStainedGlass => 0.3f32, + BlockKind::OakTrapdoor => 3f32, + BlockKind::SpruceTrapdoor => 3f32, + BlockKind::BirchTrapdoor => 3f32, + BlockKind::JungleTrapdoor => 3f32, + BlockKind::AcaciaTrapdoor => 3f32, + BlockKind::DarkOakTrapdoor => 3f32, + BlockKind::StoneBricks => 1.5f32, + BlockKind::MossyStoneBricks => 1.5f32, + BlockKind::CrackedStoneBricks => 1.5f32, + BlockKind::ChiseledStoneBricks => 1.5f32, + BlockKind::InfestedStone => 0f32, + BlockKind::InfestedCobblestone => 0f32, + BlockKind::InfestedStoneBricks => 0f32, + BlockKind::InfestedMossyStoneBricks => 0f32, + BlockKind::InfestedCrackedStoneBricks => 0f32, + BlockKind::InfestedChiseledStoneBricks => 0f32, + BlockKind::BrownMushroomBlock => 0.2f32, + BlockKind::RedMushroomBlock => 0.2f32, + BlockKind::MushroomStem => 0.2f32, + BlockKind::IronBars => 5f32, + BlockKind::Chain => 5f32, + BlockKind::GlassPane => 0.3f32, + BlockKind::Melon => 1f32, + BlockKind::AttachedPumpkinStem => 0f32, + BlockKind::AttachedMelonStem => 0f32, + BlockKind::PumpkinStem => 0f32, + BlockKind::MelonStem => 0f32, + BlockKind::Vine => 0.2f32, + BlockKind::GlowLichen => 0.2f32, + BlockKind::OakFenceGate => 2f32, + BlockKind::BrickStairs => 2f32, + BlockKind::StoneBrickStairs => 1.5f32, + BlockKind::Mycelium => 0.6f32, + BlockKind::LilyPad => 0f32, + BlockKind::NetherBricks => 2f32, + BlockKind::NetherBrickFence => 2f32, + BlockKind::NetherBrickStairs => 2f32, + BlockKind::NetherWart => 0f32, + BlockKind::EnchantingTable => 5f32, + BlockKind::BrewingStand => 0.5f32, + BlockKind::Cauldron => 2f32, + BlockKind::WaterCauldron => 0f32, + BlockKind::LavaCauldron => 0f32, + BlockKind::PowderSnowCauldron => 0f32, + BlockKind::EndPortal => -1f32, + BlockKind::EndPortalFrame => -1f32, + BlockKind::EndStone => 3f32, + BlockKind::DragonEgg => 3f32, + BlockKind::RedstoneLamp => 0.3f32, + BlockKind::Cocoa => 0.2f32, + BlockKind::SandstoneStairs => 0.8f32, + BlockKind::EmeraldOre => 3f32, + BlockKind::DeepslateEmeraldOre => 4.5f32, + BlockKind::EnderChest => 22.5f32, + BlockKind::TripwireHook => 0f32, + BlockKind::Tripwire => 0f32, + BlockKind::EmeraldBlock => 5f32, + BlockKind::SpruceStairs => 2f32, + BlockKind::BirchStairs => 2f32, + BlockKind::JungleStairs => 2f32, + BlockKind::CommandBlock => -1f32, + BlockKind::Beacon => 3f32, + BlockKind::CobblestoneWall => 2f32, + BlockKind::MossyCobblestoneWall => 2f32, + BlockKind::FlowerPot => 0f32, + BlockKind::PottedOakSapling => 0f32, + BlockKind::PottedSpruceSapling => 0f32, + BlockKind::PottedBirchSapling => 0f32, + BlockKind::PottedJungleSapling => 0f32, + BlockKind::PottedAcaciaSapling => 0f32, + BlockKind::PottedDarkOakSapling => 0f32, + BlockKind::PottedFern => 0f32, + BlockKind::PottedDandelion => 0f32, + BlockKind::PottedPoppy => 0f32, + BlockKind::PottedBlueOrchid => 0f32, + BlockKind::PottedAllium => 0f32, + BlockKind::PottedAzureBluet => 0f32, + BlockKind::PottedRedTulip => 0f32, + BlockKind::PottedOrangeTulip => 0f32, + BlockKind::PottedWhiteTulip => 0f32, + BlockKind::PottedPinkTulip => 0f32, + BlockKind::PottedOxeyeDaisy => 0f32, + BlockKind::PottedCornflower => 0f32, + BlockKind::PottedLilyOfTheValley => 0f32, + BlockKind::PottedWitherRose => 0f32, + BlockKind::PottedRedMushroom => 0f32, + BlockKind::PottedBrownMushroom => 0f32, + BlockKind::PottedDeadBush => 0f32, + BlockKind::PottedCactus => 0f32, + BlockKind::Carrots => 0f32, + BlockKind::Potatoes => 0f32, + BlockKind::OakButton => 0.5f32, + BlockKind::SpruceButton => 0.5f32, + BlockKind::BirchButton => 0.5f32, + BlockKind::JungleButton => 0.5f32, + BlockKind::AcaciaButton => 0.5f32, + BlockKind::DarkOakButton => 0.5f32, + BlockKind::SkeletonSkull => 1f32, + BlockKind::SkeletonWallSkull => 1f32, + BlockKind::WitherSkeletonSkull => 1f32, + BlockKind::WitherSkeletonWallSkull => 1f32, + BlockKind::ZombieHead => 1f32, + BlockKind::ZombieWallHead => 1f32, + BlockKind::PlayerHead => 1f32, + BlockKind::PlayerWallHead => 1f32, + BlockKind::CreeperHead => 1f32, + BlockKind::CreeperWallHead => 1f32, + BlockKind::DragonHead => 1f32, + BlockKind::DragonWallHead => 1f32, + BlockKind::Anvil => 5f32, + BlockKind::ChippedAnvil => 5f32, + BlockKind::DamagedAnvil => 5f32, + BlockKind::TrappedChest => 2.5f32, + BlockKind::LightWeightedPressurePlate => 0.5f32, + BlockKind::HeavyWeightedPressurePlate => 0.5f32, + BlockKind::Comparator => 0f32, + BlockKind::DaylightDetector => 0.2f32, + BlockKind::RedstoneBlock => 5f32, + BlockKind::NetherQuartzOre => 3f32, + BlockKind::Hopper => 3f32, + BlockKind::QuartzBlock => 0.8f32, + BlockKind::ChiseledQuartzBlock => 0.8f32, + BlockKind::QuartzPillar => 0.8f32, + BlockKind::QuartzStairs => 0.8f32, + BlockKind::ActivatorRail => 0.7f32, + BlockKind::Dropper => 3.5f32, + BlockKind::WhiteTerracotta => 1.25f32, + BlockKind::OrangeTerracotta => 1.25f32, + BlockKind::MagentaTerracotta => 1.25f32, + BlockKind::LightBlueTerracotta => 1.25f32, + BlockKind::YellowTerracotta => 1.25f32, + BlockKind::LimeTerracotta => 1.25f32, + BlockKind::PinkTerracotta => 1.25f32, + BlockKind::GrayTerracotta => 1.25f32, + BlockKind::LightGrayTerracotta => 1.25f32, + BlockKind::CyanTerracotta => 1.25f32, + BlockKind::PurpleTerracotta => 1.25f32, + BlockKind::BlueTerracotta => 1.25f32, + BlockKind::BrownTerracotta => 1.25f32, + BlockKind::GreenTerracotta => 1.25f32, + BlockKind::RedTerracotta => 1.25f32, + BlockKind::BlackTerracotta => 1.25f32, + BlockKind::WhiteStainedGlassPane => 0.3f32, + BlockKind::OrangeStainedGlassPane => 0.3f32, + BlockKind::MagentaStainedGlassPane => 0.3f32, + BlockKind::LightBlueStainedGlassPane => 0.3f32, + BlockKind::YellowStainedGlassPane => 0.3f32, + BlockKind::LimeStainedGlassPane => 0.3f32, + BlockKind::PinkStainedGlassPane => 0.3f32, + BlockKind::GrayStainedGlassPane => 0.3f32, + BlockKind::LightGrayStainedGlassPane => 0.3f32, + BlockKind::CyanStainedGlassPane => 0.3f32, + BlockKind::PurpleStainedGlassPane => 0.3f32, + BlockKind::BlueStainedGlassPane => 0.3f32, + BlockKind::BrownStainedGlassPane => 0.3f32, + BlockKind::GreenStainedGlassPane => 0.3f32, + BlockKind::RedStainedGlassPane => 0.3f32, + BlockKind::BlackStainedGlassPane => 0.3f32, + BlockKind::AcaciaStairs => 2f32, + BlockKind::DarkOakStairs => 2f32, + BlockKind::SlimeBlock => 0f32, + BlockKind::Barrier => -1f32, + BlockKind::Light => -1f32, + BlockKind::IronTrapdoor => 5f32, + BlockKind::Prismarine => 1.5f32, + BlockKind::PrismarineBricks => 1.5f32, + BlockKind::DarkPrismarine => 1.5f32, + BlockKind::PrismarineStairs => 1.5f32, + BlockKind::PrismarineBrickStairs => 1.5f32, + BlockKind::DarkPrismarineStairs => 1.5f32, + BlockKind::PrismarineSlab => 1.5f32, + BlockKind::PrismarineBrickSlab => 1.5f32, + BlockKind::DarkPrismarineSlab => 1.5f32, + BlockKind::SeaLantern => 0.3f32, + BlockKind::HayBlock => 0.5f32, + BlockKind::WhiteCarpet => 0.1f32, + BlockKind::OrangeCarpet => 0.1f32, + BlockKind::MagentaCarpet => 0.1f32, + BlockKind::LightBlueCarpet => 0.1f32, + BlockKind::YellowCarpet => 0.1f32, + BlockKind::LimeCarpet => 0.1f32, + BlockKind::PinkCarpet => 0.1f32, + BlockKind::GrayCarpet => 0.1f32, + BlockKind::LightGrayCarpet => 0.1f32, + BlockKind::CyanCarpet => 0.1f32, + BlockKind::PurpleCarpet => 0.1f32, + BlockKind::BlueCarpet => 0.1f32, + BlockKind::BrownCarpet => 0.1f32, + BlockKind::GreenCarpet => 0.1f32, + BlockKind::RedCarpet => 0.1f32, + BlockKind::BlackCarpet => 0.1f32, + BlockKind::Terracotta => 1.25f32, + BlockKind::CoalBlock => 5f32, + BlockKind::PackedIce => 0.5f32, + BlockKind::Sunflower => 0f32, + BlockKind::Lilac => 0f32, + BlockKind::RoseBush => 0f32, + BlockKind::Peony => 0f32, + BlockKind::TallGrass => 0f32, + BlockKind::LargeFern => 0f32, + BlockKind::WhiteBanner => 1f32, + BlockKind::OrangeBanner => 1f32, + BlockKind::MagentaBanner => 1f32, + BlockKind::LightBlueBanner => 1f32, + BlockKind::YellowBanner => 1f32, + BlockKind::LimeBanner => 1f32, + BlockKind::PinkBanner => 1f32, + BlockKind::GrayBanner => 1f32, + BlockKind::LightGrayBanner => 1f32, + BlockKind::CyanBanner => 1f32, + BlockKind::PurpleBanner => 1f32, + BlockKind::BlueBanner => 1f32, + BlockKind::BrownBanner => 1f32, + BlockKind::GreenBanner => 1f32, + BlockKind::RedBanner => 1f32, + BlockKind::BlackBanner => 1f32, + BlockKind::WhiteWallBanner => 1f32, + BlockKind::OrangeWallBanner => 1f32, + BlockKind::MagentaWallBanner => 1f32, + BlockKind::LightBlueWallBanner => 1f32, + BlockKind::YellowWallBanner => 1f32, + BlockKind::LimeWallBanner => 1f32, + BlockKind::PinkWallBanner => 1f32, + BlockKind::GrayWallBanner => 1f32, + BlockKind::LightGrayWallBanner => 1f32, + BlockKind::CyanWallBanner => 1f32, + BlockKind::PurpleWallBanner => 1f32, + BlockKind::BlueWallBanner => 1f32, + BlockKind::BrownWallBanner => 1f32, + BlockKind::GreenWallBanner => 1f32, + BlockKind::RedWallBanner => 1f32, + BlockKind::BlackWallBanner => 1f32, + BlockKind::RedSandstone => 0.8f32, + BlockKind::ChiseledRedSandstone => 0.8f32, + BlockKind::CutRedSandstone => 0.8f32, + BlockKind::RedSandstoneStairs => 0.8f32, + BlockKind::OakSlab => 2f32, + BlockKind::SpruceSlab => 2f32, + BlockKind::BirchSlab => 2f32, + BlockKind::JungleSlab => 2f32, + BlockKind::AcaciaSlab => 2f32, + BlockKind::DarkOakSlab => 2f32, + BlockKind::StoneSlab => 2f32, + BlockKind::SmoothStoneSlab => 2f32, + BlockKind::SandstoneSlab => 2f32, + BlockKind::CutSandstoneSlab => 2f32, + BlockKind::PetrifiedOakSlab => 2f32, + BlockKind::CobblestoneSlab => 2f32, + BlockKind::BrickSlab => 2f32, + BlockKind::StoneBrickSlab => 2f32, + BlockKind::NetherBrickSlab => 2f32, + BlockKind::QuartzSlab => 2f32, + BlockKind::RedSandstoneSlab => 2f32, + BlockKind::CutRedSandstoneSlab => 2f32, + BlockKind::PurpurSlab => 2f32, + BlockKind::SmoothStone => 2f32, + BlockKind::SmoothSandstone => 2f32, + BlockKind::SmoothQuartz => 2f32, + BlockKind::SmoothRedSandstone => 2f32, + BlockKind::SpruceFenceGate => 2f32, + BlockKind::BirchFenceGate => 2f32, + BlockKind::JungleFenceGate => 2f32, + BlockKind::AcaciaFenceGate => 2f32, + BlockKind::DarkOakFenceGate => 2f32, + BlockKind::SpruceFence => 2f32, + BlockKind::BirchFence => 2f32, + BlockKind::JungleFence => 2f32, + BlockKind::AcaciaFence => 2f32, + BlockKind::DarkOakFence => 2f32, + BlockKind::SpruceDoor => 3f32, + BlockKind::BirchDoor => 3f32, + BlockKind::JungleDoor => 3f32, + BlockKind::AcaciaDoor => 3f32, + BlockKind::DarkOakDoor => 3f32, + BlockKind::EndRod => 0f32, + BlockKind::ChorusPlant => 0.4f32, + BlockKind::ChorusFlower => 0.4f32, + BlockKind::PurpurBlock => 1.5f32, + BlockKind::PurpurPillar => 1.5f32, + BlockKind::PurpurStairs => 1.5f32, + BlockKind::EndStoneBricks => 3f32, + BlockKind::Beetroots => 0f32, + BlockKind::DirtPath => 0.65f32, + BlockKind::EndGateway => -1f32, + BlockKind::RepeatingCommandBlock => -1f32, + BlockKind::ChainCommandBlock => -1f32, + BlockKind::FrostedIce => 0.5f32, + BlockKind::MagmaBlock => 0.5f32, + BlockKind::NetherWartBlock => 1f32, + BlockKind::RedNetherBricks => 2f32, + BlockKind::BoneBlock => 2f32, + BlockKind::StructureVoid => 0f32, + BlockKind::Observer => 3f32, + BlockKind::ShulkerBox => 2f32, + BlockKind::WhiteShulkerBox => 2f32, + BlockKind::OrangeShulkerBox => 2f32, + BlockKind::MagentaShulkerBox => 2f32, + BlockKind::LightBlueShulkerBox => 2f32, + BlockKind::YellowShulkerBox => 2f32, + BlockKind::LimeShulkerBox => 2f32, + BlockKind::PinkShulkerBox => 2f32, + BlockKind::GrayShulkerBox => 2f32, + BlockKind::LightGrayShulkerBox => 2f32, + BlockKind::CyanShulkerBox => 2f32, + BlockKind::PurpleShulkerBox => 2f32, + BlockKind::BlueShulkerBox => 2f32, + BlockKind::BrownShulkerBox => 2f32, + BlockKind::GreenShulkerBox => 2f32, + BlockKind::RedShulkerBox => 2f32, + BlockKind::BlackShulkerBox => 2f32, + BlockKind::WhiteGlazedTerracotta => 1.4f32, + BlockKind::OrangeGlazedTerracotta => 1.4f32, + BlockKind::MagentaGlazedTerracotta => 1.4f32, + BlockKind::LightBlueGlazedTerracotta => 1.4f32, + BlockKind::YellowGlazedTerracotta => 1.4f32, + BlockKind::LimeGlazedTerracotta => 1.4f32, + BlockKind::PinkGlazedTerracotta => 1.4f32, + BlockKind::GrayGlazedTerracotta => 1.4f32, + BlockKind::LightGrayGlazedTerracotta => 1.4f32, + BlockKind::CyanGlazedTerracotta => 1.4f32, + BlockKind::PurpleGlazedTerracotta => 1.4f32, + BlockKind::BlueGlazedTerracotta => 1.4f32, + BlockKind::BrownGlazedTerracotta => 1.4f32, + BlockKind::GreenGlazedTerracotta => 1.4f32, + BlockKind::RedGlazedTerracotta => 1.4f32, + BlockKind::BlackGlazedTerracotta => 1.4f32, + BlockKind::WhiteConcrete => 1.8f32, + BlockKind::OrangeConcrete => 1.8f32, + BlockKind::MagentaConcrete => 1.8f32, + BlockKind::LightBlueConcrete => 1.8f32, + BlockKind::YellowConcrete => 1.8f32, + BlockKind::LimeConcrete => 1.8f32, + BlockKind::PinkConcrete => 1.8f32, + BlockKind::GrayConcrete => 1.8f32, + BlockKind::LightGrayConcrete => 1.8f32, + BlockKind::CyanConcrete => 1.8f32, + BlockKind::PurpleConcrete => 1.8f32, + BlockKind::BlueConcrete => 1.8f32, + BlockKind::BrownConcrete => 1.8f32, + BlockKind::GreenConcrete => 1.8f32, + BlockKind::RedConcrete => 1.8f32, + BlockKind::BlackConcrete => 1.8f32, + BlockKind::WhiteConcretePowder => 0.5f32, + BlockKind::OrangeConcretePowder => 0.5f32, + BlockKind::MagentaConcretePowder => 0.5f32, + BlockKind::LightBlueConcretePowder => 0.5f32, + BlockKind::YellowConcretePowder => 0.5f32, + BlockKind::LimeConcretePowder => 0.5f32, + BlockKind::PinkConcretePowder => 0.5f32, + BlockKind::GrayConcretePowder => 0.5f32, + BlockKind::LightGrayConcretePowder => 0.5f32, + BlockKind::CyanConcretePowder => 0.5f32, + BlockKind::PurpleConcretePowder => 0.5f32, + BlockKind::BlueConcretePowder => 0.5f32, + BlockKind::BrownConcretePowder => 0.5f32, + BlockKind::GreenConcretePowder => 0.5f32, + BlockKind::RedConcretePowder => 0.5f32, + BlockKind::BlackConcretePowder => 0.5f32, + BlockKind::Kelp => 0f32, + BlockKind::KelpPlant => 0f32, + BlockKind::DriedKelpBlock => 0.5f32, + BlockKind::TurtleEgg => 0.5f32, + BlockKind::DeadTubeCoralBlock => 1.5f32, + BlockKind::DeadBrainCoralBlock => 1.5f32, + BlockKind::DeadBubbleCoralBlock => 1.5f32, + BlockKind::DeadFireCoralBlock => 1.5f32, + BlockKind::DeadHornCoralBlock => 1.5f32, + BlockKind::TubeCoralBlock => 1.5f32, + BlockKind::BrainCoralBlock => 1.5f32, + BlockKind::BubbleCoralBlock => 1.5f32, + BlockKind::FireCoralBlock => 1.5f32, + BlockKind::HornCoralBlock => 1.5f32, + BlockKind::DeadTubeCoral => 0f32, + BlockKind::DeadBrainCoral => 0f32, + BlockKind::DeadBubbleCoral => 0f32, + BlockKind::DeadFireCoral => 0f32, + BlockKind::DeadHornCoral => 0f32, + BlockKind::TubeCoral => 0f32, + BlockKind::BrainCoral => 0f32, + BlockKind::BubbleCoral => 0f32, + BlockKind::FireCoral => 0f32, + BlockKind::HornCoral => 0f32, + BlockKind::DeadTubeCoralFan => 0f32, + BlockKind::DeadBrainCoralFan => 0f32, + BlockKind::DeadBubbleCoralFan => 0f32, + BlockKind::DeadFireCoralFan => 0f32, + BlockKind::DeadHornCoralFan => 0f32, + BlockKind::TubeCoralFan => 0f32, + BlockKind::BrainCoralFan => 0f32, + BlockKind::BubbleCoralFan => 0f32, + BlockKind::FireCoralFan => 0f32, + BlockKind::HornCoralFan => 0f32, + BlockKind::DeadTubeCoralWallFan => 0f32, + BlockKind::DeadBrainCoralWallFan => 0f32, + BlockKind::DeadBubbleCoralWallFan => 0f32, + BlockKind::DeadFireCoralWallFan => 0f32, + BlockKind::DeadHornCoralWallFan => 0f32, + BlockKind::TubeCoralWallFan => 0f32, + BlockKind::BrainCoralWallFan => 0f32, + BlockKind::BubbleCoralWallFan => 0f32, + BlockKind::FireCoralWallFan => 0f32, + BlockKind::HornCoralWallFan => 0f32, + BlockKind::SeaPickle => 0f32, + BlockKind::BlueIce => 2.8f32, + BlockKind::Conduit => 3f32, + BlockKind::BambooSapling => 1f32, + BlockKind::Bamboo => 1f32, + BlockKind::PottedBamboo => 0f32, + BlockKind::VoidAir => 0f32, + BlockKind::CaveAir => 0f32, + BlockKind::BubbleColumn => 0f32, + BlockKind::PolishedGraniteStairs => 1.5f32, + BlockKind::SmoothRedSandstoneStairs => 2f32, + BlockKind::MossyStoneBrickStairs => 1.5f32, + BlockKind::PolishedDioriteStairs => 1.5f32, + BlockKind::MossyCobblestoneStairs => 2f32, + BlockKind::EndStoneBrickStairs => 3f32, + BlockKind::StoneStairs => 1.5f32, + BlockKind::SmoothSandstoneStairs => 2f32, + BlockKind::SmoothQuartzStairs => 2f32, + BlockKind::GraniteStairs => 1.5f32, + BlockKind::AndesiteStairs => 1.5f32, + BlockKind::RedNetherBrickStairs => 2f32, + BlockKind::PolishedAndesiteStairs => 1.5f32, + BlockKind::DioriteStairs => 1.5f32, + BlockKind::PolishedGraniteSlab => 1.5f32, + BlockKind::SmoothRedSandstoneSlab => 2f32, + BlockKind::MossyStoneBrickSlab => 1.5f32, + BlockKind::PolishedDioriteSlab => 1.5f32, + BlockKind::MossyCobblestoneSlab => 2f32, + BlockKind::EndStoneBrickSlab => 3f32, + BlockKind::SmoothSandstoneSlab => 2f32, + BlockKind::SmoothQuartzSlab => 2f32, + BlockKind::GraniteSlab => 1.5f32, + BlockKind::AndesiteSlab => 1.5f32, + BlockKind::RedNetherBrickSlab => 2f32, + BlockKind::PolishedAndesiteSlab => 1.5f32, + BlockKind::DioriteSlab => 1.5f32, + BlockKind::BrickWall => 2f32, + BlockKind::PrismarineWall => 1.5f32, + BlockKind::RedSandstoneWall => 0.8f32, + BlockKind::MossyStoneBrickWall => 1.5f32, + BlockKind::GraniteWall => 1.5f32, + BlockKind::StoneBrickWall => 1.5f32, + BlockKind::NetherBrickWall => 2f32, + BlockKind::AndesiteWall => 1.5f32, + BlockKind::RedNetherBrickWall => 2f32, + BlockKind::SandstoneWall => 0.8f32, + BlockKind::EndStoneBrickWall => 3f32, + BlockKind::DioriteWall => 1.5f32, + BlockKind::Scaffolding => 0f32, + BlockKind::Loom => 2.5f32, + BlockKind::Barrel => 2.5f32, + BlockKind::Smoker => 3.5f32, + BlockKind::BlastFurnace => 3.5f32, + BlockKind::CartographyTable => 2.5f32, + BlockKind::FletchingTable => 2.5f32, + BlockKind::Grindstone => 2f32, + BlockKind::Lectern => 2.5f32, + BlockKind::SmithingTable => 2.5f32, + BlockKind::Stonecutter => 3.5f32, + BlockKind::Bell => 5f32, + BlockKind::Lantern => 3.5f32, + BlockKind::SoulLantern => 3.5f32, + BlockKind::Campfire => 2f32, + BlockKind::SoulCampfire => 2f32, + BlockKind::SweetBerryBush => 0f32, + BlockKind::WarpedStem => 2f32, + BlockKind::StrippedWarpedStem => 2f32, + BlockKind::WarpedHyphae => 2f32, + BlockKind::StrippedWarpedHyphae => 2f32, + BlockKind::WarpedNylium => 0.4f32, + BlockKind::WarpedFungus => 0f32, + BlockKind::WarpedWartBlock => 1f32, + BlockKind::WarpedRoots => 0f32, + BlockKind::NetherSprouts => 0f32, + BlockKind::CrimsonStem => 2f32, + BlockKind::StrippedCrimsonStem => 2f32, + BlockKind::CrimsonHyphae => 2f32, + BlockKind::StrippedCrimsonHyphae => 2f32, + BlockKind::CrimsonNylium => 0.4f32, + BlockKind::CrimsonFungus => 0f32, + BlockKind::Shroomlight => 1f32, + BlockKind::WeepingVines => 0f32, + BlockKind::WeepingVinesPlant => 0f32, + BlockKind::TwistingVines => 0f32, + BlockKind::TwistingVinesPlant => 0f32, + BlockKind::CrimsonRoots => 0f32, + BlockKind::CrimsonPlanks => 2f32, + BlockKind::WarpedPlanks => 2f32, + BlockKind::CrimsonSlab => 2f32, + BlockKind::WarpedSlab => 2f32, + BlockKind::CrimsonPressurePlate => 0.5f32, + BlockKind::WarpedPressurePlate => 0.5f32, + BlockKind::CrimsonFence => 2f32, + BlockKind::WarpedFence => 2f32, + BlockKind::CrimsonTrapdoor => 3f32, + BlockKind::WarpedTrapdoor => 3f32, + BlockKind::CrimsonFenceGate => 2f32, + BlockKind::WarpedFenceGate => 2f32, + BlockKind::CrimsonStairs => 2f32, + BlockKind::WarpedStairs => 2f32, + BlockKind::CrimsonButton => 0.5f32, + BlockKind::WarpedButton => 0.5f32, + BlockKind::CrimsonDoor => 3f32, + BlockKind::WarpedDoor => 3f32, + BlockKind::CrimsonSign => 1f32, + BlockKind::WarpedSign => 1f32, + BlockKind::CrimsonWallSign => 1f32, + BlockKind::WarpedWallSign => 1f32, + BlockKind::StructureBlock => -1f32, + BlockKind::Jigsaw => -1f32, + BlockKind::Composter => 0.6f32, + BlockKind::Target => 0.5f32, + BlockKind::BeeNest => 0.3f32, + BlockKind::Beehive => 0.6f32, + BlockKind::HoneyBlock => 0f32, + BlockKind::HoneycombBlock => 0.6f32, + BlockKind::NetheriteBlock => 50f32, + BlockKind::AncientDebris => 30f32, + BlockKind::CryingObsidian => 50f32, + BlockKind::RespawnAnchor => 50f32, + BlockKind::PottedCrimsonFungus => 0f32, + BlockKind::PottedWarpedFungus => 0f32, + BlockKind::PottedCrimsonRoots => 0f32, + BlockKind::PottedWarpedRoots => 0f32, + BlockKind::Lodestone => 3.5f32, + BlockKind::Blackstone => 1.5f32, + BlockKind::BlackstoneStairs => 1.5f32, + BlockKind::BlackstoneWall => 1.5f32, + BlockKind::BlackstoneSlab => 2f32, + BlockKind::PolishedBlackstone => 2f32, + BlockKind::PolishedBlackstoneBricks => 1.5f32, + BlockKind::CrackedPolishedBlackstoneBricks => 1.5f32, + BlockKind::ChiseledPolishedBlackstone => 1.5f32, + BlockKind::PolishedBlackstoneBrickSlab => 2f32, + BlockKind::PolishedBlackstoneBrickStairs => 1.5f32, + BlockKind::PolishedBlackstoneBrickWall => 1.5f32, + BlockKind::GildedBlackstone => 1.5f32, + BlockKind::PolishedBlackstoneStairs => 2f32, + BlockKind::PolishedBlackstoneSlab => 2f32, + BlockKind::PolishedBlackstonePressurePlate => 0.5f32, + BlockKind::PolishedBlackstoneButton => 0.5f32, + BlockKind::PolishedBlackstoneWall => 2f32, + BlockKind::ChiseledNetherBricks => 2f32, + BlockKind::CrackedNetherBricks => 2f32, + BlockKind::QuartzBricks => 0.8f32, + BlockKind::Candle => 0.1f32, + BlockKind::WhiteCandle => 0.1f32, + BlockKind::OrangeCandle => 0.1f32, + BlockKind::MagentaCandle => 0.1f32, + BlockKind::LightBlueCandle => 0.1f32, + BlockKind::YellowCandle => 0.1f32, + BlockKind::LimeCandle => 0.1f32, + BlockKind::PinkCandle => 0.1f32, + BlockKind::GrayCandle => 0.1f32, + BlockKind::LightGrayCandle => 0.1f32, + BlockKind::CyanCandle => 0.1f32, + BlockKind::PurpleCandle => 0.1f32, + BlockKind::BlueCandle => 0.1f32, + BlockKind::BrownCandle => 0.1f32, + BlockKind::GreenCandle => 0.1f32, + BlockKind::RedCandle => 0.1f32, + BlockKind::BlackCandle => 0.1f32, + BlockKind::CandleCake => 0f32, + BlockKind::WhiteCandleCake => 0f32, + BlockKind::OrangeCandleCake => 0f32, + BlockKind::MagentaCandleCake => 0f32, + BlockKind::LightBlueCandleCake => 0f32, + BlockKind::YellowCandleCake => 0f32, + BlockKind::LimeCandleCake => 0f32, + BlockKind::PinkCandleCake => 0f32, + BlockKind::GrayCandleCake => 0f32, + BlockKind::LightGrayCandleCake => 0f32, + BlockKind::CyanCandleCake => 0f32, + BlockKind::PurpleCandleCake => 0f32, + BlockKind::BlueCandleCake => 0f32, + BlockKind::BrownCandleCake => 0f32, + BlockKind::GreenCandleCake => 0f32, + BlockKind::RedCandleCake => 0f32, + BlockKind::BlackCandleCake => 0f32, + BlockKind::AmethystBlock => 1.5f32, + BlockKind::BuddingAmethyst => 1.5f32, + BlockKind::AmethystCluster => 1.5f32, + BlockKind::LargeAmethystBud => 0f32, + BlockKind::MediumAmethystBud => 0f32, + BlockKind::SmallAmethystBud => 0f32, + BlockKind::Tuff => 1.5f32, + BlockKind::Calcite => 0.75f32, + BlockKind::TintedGlass => 0f32, + BlockKind::PowderSnow => 0.25f32, + BlockKind::SculkSensor => 1.5f32, + BlockKind::OxidizedCopper => 3f32, + BlockKind::WeatheredCopper => 3f32, + BlockKind::ExposedCopper => 3f32, + BlockKind::CopperBlock => 3f32, + BlockKind::CopperOre => 0f32, + BlockKind::DeepslateCopperOre => 4.5f32, + BlockKind::OxidizedCutCopper => 0f32, + BlockKind::WeatheredCutCopper => 0f32, + BlockKind::ExposedCutCopper => 0f32, + BlockKind::CutCopper => 0f32, + BlockKind::OxidizedCutCopperStairs => 0f32, + BlockKind::WeatheredCutCopperStairs => 0f32, + BlockKind::ExposedCutCopperStairs => 0f32, + BlockKind::CutCopperStairs => 0f32, + BlockKind::OxidizedCutCopperSlab => 0f32, + BlockKind::WeatheredCutCopperSlab => 0f32, + BlockKind::ExposedCutCopperSlab => 0f32, + BlockKind::CutCopperSlab => 0f32, + BlockKind::WaxedCopperBlock => 0f32, + BlockKind::WaxedWeatheredCopper => 0f32, + BlockKind::WaxedExposedCopper => 0f32, + BlockKind::WaxedOxidizedCopper => 0f32, + BlockKind::WaxedOxidizedCutCopper => 0f32, + BlockKind::WaxedWeatheredCutCopper => 0f32, + BlockKind::WaxedExposedCutCopper => 0f32, + BlockKind::WaxedCutCopper => 0f32, + BlockKind::WaxedOxidizedCutCopperStairs => 0f32, + BlockKind::WaxedWeatheredCutCopperStairs => 0f32, + BlockKind::WaxedExposedCutCopperStairs => 0f32, + BlockKind::WaxedCutCopperStairs => 0f32, + BlockKind::WaxedOxidizedCutCopperSlab => 0f32, + BlockKind::WaxedWeatheredCutCopperSlab => 0f32, + BlockKind::WaxedExposedCutCopperSlab => 0f32, + BlockKind::WaxedCutCopperSlab => 0f32, + BlockKind::LightningRod => 3f32, + BlockKind::PointedDripstone => 1.5f32, + BlockKind::DripstoneBlock => 1.5f32, + BlockKind::CaveVines => 0f32, + BlockKind::CaveVinesPlant => 0f32, + BlockKind::SporeBlossom => 0f32, + BlockKind::Azalea => 0f32, + BlockKind::FloweringAzalea => 0f32, + BlockKind::MossCarpet => 0.1f32, + BlockKind::MossBlock => 0.1f32, + BlockKind::BigDripleaf => 0.1f32, + BlockKind::BigDripleafStem => 0.1f32, + BlockKind::SmallDripleaf => 0f32, + BlockKind::HangingRoots => 0f32, + BlockKind::RootedDirt => 0.5f32, + BlockKind::Deepslate => 3f32, + BlockKind::CobbledDeepslate => 3.5f32, + BlockKind::CobbledDeepslateStairs => 0f32, + BlockKind::CobbledDeepslateSlab => 0f32, + BlockKind::CobbledDeepslateWall => 0f32, + BlockKind::PolishedDeepslate => 0f32, + BlockKind::PolishedDeepslateStairs => 0f32, + BlockKind::PolishedDeepslateSlab => 0f32, + BlockKind::PolishedDeepslateWall => 0f32, + BlockKind::DeepslateTiles => 0f32, + BlockKind::DeepslateTileStairs => 0f32, + BlockKind::DeepslateTileSlab => 0f32, + BlockKind::DeepslateTileWall => 0f32, + BlockKind::DeepslateBricks => 0f32, + BlockKind::DeepslateBrickStairs => 0f32, + BlockKind::DeepslateBrickSlab => 0f32, + BlockKind::DeepslateBrickWall => 0f32, + BlockKind::ChiseledDeepslate => 0f32, + BlockKind::CrackedDeepslateBricks => 0f32, + BlockKind::CrackedDeepslateTiles => 0f32, + BlockKind::InfestedDeepslate => 0f32, + BlockKind::SmoothBasalt => 0f32, + BlockKind::RawIronBlock => 5f32, + BlockKind::RawCopperBlock => 5f32, + BlockKind::RawGoldBlock => 5f32, + BlockKind::PottedAzaleaBush => 0f32, + BlockKind::PottedFloweringAzaleaBush => 0f32, + } + } +} +impl BlockKind { + #[doc = "Returns the `stack_size` property of this `BlockKind`."] + #[inline] + pub fn stack_size(&self) -> u32 { + match self { + BlockKind::Air => 64u32, + BlockKind::Stone => 64u32, + BlockKind::Granite => 64u32, + BlockKind::PolishedGranite => 64u32, + BlockKind::Diorite => 64u32, + BlockKind::PolishedDiorite => 64u32, + BlockKind::Andesite => 64u32, + BlockKind::PolishedAndesite => 64u32, + BlockKind::GrassBlock => 64u32, + BlockKind::Dirt => 64u32, + BlockKind::CoarseDirt => 64u32, + BlockKind::Podzol => 64u32, + BlockKind::Cobblestone => 64u32, + BlockKind::OakPlanks => 64u32, + BlockKind::SprucePlanks => 64u32, + BlockKind::BirchPlanks => 64u32, + BlockKind::JunglePlanks => 64u32, + BlockKind::AcaciaPlanks => 64u32, + BlockKind::DarkOakPlanks => 64u32, + BlockKind::OakSapling => 64u32, + BlockKind::SpruceSapling => 64u32, + BlockKind::BirchSapling => 64u32, + BlockKind::JungleSapling => 64u32, + BlockKind::AcaciaSapling => 64u32, + BlockKind::DarkOakSapling => 64u32, + BlockKind::Bedrock => 64u32, + BlockKind::Water => 64u32, + BlockKind::Lava => 64u32, + BlockKind::Sand => 64u32, + BlockKind::RedSand => 64u32, + BlockKind::Gravel => 64u32, + BlockKind::GoldOre => 64u32, + BlockKind::DeepslateGoldOre => 64u32, + BlockKind::IronOre => 64u32, + BlockKind::DeepslateIronOre => 64u32, + BlockKind::CoalOre => 64u32, + BlockKind::DeepslateCoalOre => 64u32, + BlockKind::NetherGoldOre => 64u32, + BlockKind::OakLog => 64u32, + BlockKind::SpruceLog => 64u32, + BlockKind::BirchLog => 64u32, + BlockKind::JungleLog => 64u32, + BlockKind::AcaciaLog => 64u32, + BlockKind::DarkOakLog => 64u32, + BlockKind::StrippedSpruceLog => 64u32, + BlockKind::StrippedBirchLog => 64u32, + BlockKind::StrippedJungleLog => 64u32, + BlockKind::StrippedAcaciaLog => 64u32, + BlockKind::StrippedDarkOakLog => 64u32, + BlockKind::StrippedOakLog => 64u32, + BlockKind::OakWood => 64u32, + BlockKind::SpruceWood => 64u32, + BlockKind::BirchWood => 64u32, + BlockKind::JungleWood => 64u32, + BlockKind::AcaciaWood => 64u32, + BlockKind::DarkOakWood => 64u32, + BlockKind::StrippedOakWood => 64u32, + BlockKind::StrippedSpruceWood => 64u32, + BlockKind::StrippedBirchWood => 64u32, + BlockKind::StrippedJungleWood => 64u32, + BlockKind::StrippedAcaciaWood => 64u32, + BlockKind::StrippedDarkOakWood => 64u32, + BlockKind::OakLeaves => 64u32, + BlockKind::SpruceLeaves => 64u32, + BlockKind::BirchLeaves => 64u32, + BlockKind::JungleLeaves => 64u32, + BlockKind::AcaciaLeaves => 64u32, + BlockKind::DarkOakLeaves => 64u32, + BlockKind::AzaleaLeaves => 64u32, + BlockKind::FloweringAzaleaLeaves => 64u32, + BlockKind::Sponge => 64u32, + BlockKind::WetSponge => 64u32, + BlockKind::Glass => 64u32, + BlockKind::LapisOre => 64u32, + BlockKind::DeepslateLapisOre => 64u32, + BlockKind::LapisBlock => 64u32, + BlockKind::Dispenser => 64u32, + BlockKind::Sandstone => 64u32, + BlockKind::ChiseledSandstone => 64u32, + BlockKind::CutSandstone => 64u32, + BlockKind::NoteBlock => 64u32, + BlockKind::WhiteBed => 1u32, + BlockKind::OrangeBed => 1u32, + BlockKind::MagentaBed => 1u32, + BlockKind::LightBlueBed => 1u32, + BlockKind::YellowBed => 1u32, + BlockKind::LimeBed => 1u32, + BlockKind::PinkBed => 1u32, + BlockKind::GrayBed => 1u32, + BlockKind::LightGrayBed => 1u32, + BlockKind::CyanBed => 1u32, + BlockKind::PurpleBed => 1u32, + BlockKind::BlueBed => 1u32, + BlockKind::BrownBed => 1u32, + BlockKind::GreenBed => 1u32, + BlockKind::RedBed => 1u32, + BlockKind::BlackBed => 1u32, + BlockKind::PoweredRail => 64u32, + BlockKind::DetectorRail => 64u32, + BlockKind::StickyPiston => 64u32, + BlockKind::Cobweb => 64u32, + BlockKind::Grass => 64u32, + BlockKind::Fern => 64u32, + BlockKind::DeadBush => 64u32, + BlockKind::Seagrass => 64u32, + BlockKind::TallSeagrass => 64u32, + BlockKind::Piston => 64u32, + BlockKind::PistonHead => 64u32, + BlockKind::WhiteWool => 64u32, + BlockKind::OrangeWool => 64u32, + BlockKind::MagentaWool => 64u32, + BlockKind::LightBlueWool => 64u32, + BlockKind::YellowWool => 64u32, + BlockKind::LimeWool => 64u32, + BlockKind::PinkWool => 64u32, + BlockKind::GrayWool => 64u32, + BlockKind::LightGrayWool => 64u32, + BlockKind::CyanWool => 64u32, + BlockKind::PurpleWool => 64u32, + BlockKind::BlueWool => 64u32, + BlockKind::BrownWool => 64u32, + BlockKind::GreenWool => 64u32, + BlockKind::RedWool => 64u32, + BlockKind::BlackWool => 64u32, + BlockKind::MovingPiston => 64u32, + BlockKind::Dandelion => 64u32, + BlockKind::Poppy => 64u32, + BlockKind::BlueOrchid => 64u32, + BlockKind::Allium => 64u32, + BlockKind::AzureBluet => 64u32, + BlockKind::RedTulip => 64u32, + BlockKind::OrangeTulip => 64u32, + BlockKind::WhiteTulip => 64u32, + BlockKind::PinkTulip => 64u32, + BlockKind::OxeyeDaisy => 64u32, + BlockKind::Cornflower => 64u32, + BlockKind::WitherRose => 64u32, + BlockKind::LilyOfTheValley => 64u32, + BlockKind::BrownMushroom => 64u32, + BlockKind::RedMushroom => 64u32, + BlockKind::GoldBlock => 64u32, + BlockKind::IronBlock => 64u32, + BlockKind::Bricks => 64u32, + BlockKind::Tnt => 64u32, + BlockKind::Bookshelf => 64u32, + BlockKind::MossyCobblestone => 64u32, + BlockKind::Obsidian => 64u32, + BlockKind::Torch => 64u32, + BlockKind::WallTorch => 64u32, + BlockKind::Fire => 64u32, + BlockKind::SoulFire => 64u32, + BlockKind::Spawner => 64u32, + BlockKind::OakStairs => 64u32, + BlockKind::Chest => 64u32, + BlockKind::RedstoneWire => 64u32, + BlockKind::DiamondOre => 64u32, + BlockKind::DeepslateDiamondOre => 64u32, + BlockKind::DiamondBlock => 64u32, + BlockKind::CraftingTable => 64u32, + BlockKind::Wheat => 64u32, + BlockKind::Farmland => 64u32, + BlockKind::Furnace => 64u32, + BlockKind::OakSign => 16u32, + BlockKind::SpruceSign => 16u32, + BlockKind::BirchSign => 16u32, + BlockKind::AcaciaSign => 16u32, + BlockKind::JungleSign => 16u32, + BlockKind::DarkOakSign => 16u32, + BlockKind::OakDoor => 64u32, + BlockKind::Ladder => 64u32, + BlockKind::Rail => 64u32, + BlockKind::CobblestoneStairs => 64u32, + BlockKind::OakWallSign => 16u32, + BlockKind::SpruceWallSign => 16u32, + BlockKind::BirchWallSign => 16u32, + BlockKind::AcaciaWallSign => 16u32, + BlockKind::JungleWallSign => 16u32, + BlockKind::DarkOakWallSign => 16u32, + BlockKind::Lever => 64u32, + BlockKind::StonePressurePlate => 64u32, + BlockKind::IronDoor => 64u32, + BlockKind::OakPressurePlate => 64u32, + BlockKind::SprucePressurePlate => 64u32, + BlockKind::BirchPressurePlate => 64u32, + BlockKind::JunglePressurePlate => 64u32, + BlockKind::AcaciaPressurePlate => 64u32, + BlockKind::DarkOakPressurePlate => 64u32, + BlockKind::RedstoneOre => 64u32, + BlockKind::DeepslateRedstoneOre => 64u32, + BlockKind::RedstoneTorch => 64u32, + BlockKind::RedstoneWallTorch => 64u32, + BlockKind::StoneButton => 64u32, + BlockKind::Snow => 64u32, + BlockKind::Ice => 64u32, + BlockKind::SnowBlock => 64u32, + BlockKind::Cactus => 64u32, + BlockKind::Clay => 64u32, + BlockKind::SugarCane => 64u32, + BlockKind::Jukebox => 64u32, + BlockKind::OakFence => 64u32, + BlockKind::Pumpkin => 64u32, + BlockKind::Netherrack => 64u32, + BlockKind::SoulSand => 64u32, + BlockKind::SoulSoil => 64u32, + BlockKind::Basalt => 64u32, + BlockKind::PolishedBasalt => 64u32, + BlockKind::SoulTorch => 64u32, + BlockKind::SoulWallTorch => 64u32, + BlockKind::Glowstone => 64u32, + BlockKind::NetherPortal => 64u32, + BlockKind::CarvedPumpkin => 64u32, + BlockKind::JackOLantern => 64u32, + BlockKind::Cake => 1u32, + BlockKind::Repeater => 64u32, + BlockKind::WhiteStainedGlass => 64u32, + BlockKind::OrangeStainedGlass => 64u32, + BlockKind::MagentaStainedGlass => 64u32, + BlockKind::LightBlueStainedGlass => 64u32, + BlockKind::YellowStainedGlass => 64u32, + BlockKind::LimeStainedGlass => 64u32, + BlockKind::PinkStainedGlass => 64u32, + BlockKind::GrayStainedGlass => 64u32, + BlockKind::LightGrayStainedGlass => 64u32, + BlockKind::CyanStainedGlass => 64u32, + BlockKind::PurpleStainedGlass => 64u32, + BlockKind::BlueStainedGlass => 64u32, + BlockKind::BrownStainedGlass => 64u32, + BlockKind::GreenStainedGlass => 64u32, + BlockKind::RedStainedGlass => 64u32, + BlockKind::BlackStainedGlass => 64u32, + BlockKind::OakTrapdoor => 64u32, + BlockKind::SpruceTrapdoor => 64u32, + BlockKind::BirchTrapdoor => 64u32, + BlockKind::JungleTrapdoor => 64u32, + BlockKind::AcaciaTrapdoor => 64u32, + BlockKind::DarkOakTrapdoor => 64u32, + BlockKind::StoneBricks => 64u32, + BlockKind::MossyStoneBricks => 64u32, + BlockKind::CrackedStoneBricks => 64u32, + BlockKind::ChiseledStoneBricks => 64u32, + BlockKind::InfestedStone => 64u32, + BlockKind::InfestedCobblestone => 64u32, + BlockKind::InfestedStoneBricks => 64u32, + BlockKind::InfestedMossyStoneBricks => 64u32, + BlockKind::InfestedCrackedStoneBricks => 64u32, + BlockKind::InfestedChiseledStoneBricks => 64u32, + BlockKind::BrownMushroomBlock => 64u32, + BlockKind::RedMushroomBlock => 64u32, + BlockKind::MushroomStem => 64u32, + BlockKind::IronBars => 64u32, + BlockKind::Chain => 64u32, + BlockKind::GlassPane => 64u32, + BlockKind::Melon => 64u32, + BlockKind::AttachedPumpkinStem => 64u32, + BlockKind::AttachedMelonStem => 64u32, + BlockKind::PumpkinStem => 64u32, + BlockKind::MelonStem => 64u32, + BlockKind::Vine => 64u32, + BlockKind::GlowLichen => 64u32, + BlockKind::OakFenceGate => 64u32, + BlockKind::BrickStairs => 64u32, + BlockKind::StoneBrickStairs => 64u32, + BlockKind::Mycelium => 64u32, + BlockKind::LilyPad => 64u32, + BlockKind::NetherBricks => 64u32, + BlockKind::NetherBrickFence => 64u32, + BlockKind::NetherBrickStairs => 64u32, + BlockKind::NetherWart => 64u32, + BlockKind::EnchantingTable => 64u32, + BlockKind::BrewingStand => 64u32, + BlockKind::Cauldron => 64u32, + BlockKind::WaterCauldron => 64u32, + BlockKind::LavaCauldron => 64u32, + BlockKind::PowderSnowCauldron => 64u32, + BlockKind::EndPortal => 64u32, + BlockKind::EndPortalFrame => 64u32, + BlockKind::EndStone => 64u32, + BlockKind::DragonEgg => 64u32, + BlockKind::RedstoneLamp => 64u32, + BlockKind::Cocoa => 64u32, + BlockKind::SandstoneStairs => 64u32, + BlockKind::EmeraldOre => 64u32, + BlockKind::DeepslateEmeraldOre => 64u32, + BlockKind::EnderChest => 64u32, + BlockKind::TripwireHook => 64u32, + BlockKind::Tripwire => 64u32, + BlockKind::EmeraldBlock => 64u32, + BlockKind::SpruceStairs => 64u32, + BlockKind::BirchStairs => 64u32, + BlockKind::JungleStairs => 64u32, + BlockKind::CommandBlock => 64u32, + BlockKind::Beacon => 64u32, + BlockKind::CobblestoneWall => 64u32, + BlockKind::MossyCobblestoneWall => 64u32, + BlockKind::FlowerPot => 64u32, + BlockKind::PottedOakSapling => 64u32, + BlockKind::PottedSpruceSapling => 64u32, + BlockKind::PottedBirchSapling => 64u32, + BlockKind::PottedJungleSapling => 64u32, + BlockKind::PottedAcaciaSapling => 64u32, + BlockKind::PottedDarkOakSapling => 64u32, + BlockKind::PottedFern => 64u32, + BlockKind::PottedDandelion => 64u32, + BlockKind::PottedPoppy => 64u32, + BlockKind::PottedBlueOrchid => 64u32, + BlockKind::PottedAllium => 64u32, + BlockKind::PottedAzureBluet => 64u32, + BlockKind::PottedRedTulip => 64u32, + BlockKind::PottedOrangeTulip => 64u32, + BlockKind::PottedWhiteTulip => 64u32, + BlockKind::PottedPinkTulip => 64u32, + BlockKind::PottedOxeyeDaisy => 64u32, + BlockKind::PottedCornflower => 64u32, + BlockKind::PottedLilyOfTheValley => 64u32, + BlockKind::PottedWitherRose => 64u32, + BlockKind::PottedRedMushroom => 64u32, + BlockKind::PottedBrownMushroom => 64u32, + BlockKind::PottedDeadBush => 64u32, + BlockKind::PottedCactus => 64u32, + BlockKind::Carrots => 64u32, + BlockKind::Potatoes => 64u32, + BlockKind::OakButton => 64u32, + BlockKind::SpruceButton => 64u32, + BlockKind::BirchButton => 64u32, + BlockKind::JungleButton => 64u32, + BlockKind::AcaciaButton => 64u32, + BlockKind::DarkOakButton => 64u32, + BlockKind::SkeletonSkull => 64u32, + BlockKind::SkeletonWallSkull => 64u32, + BlockKind::WitherSkeletonSkull => 64u32, + BlockKind::WitherSkeletonWallSkull => 64u32, + BlockKind::ZombieHead => 64u32, + BlockKind::ZombieWallHead => 64u32, + BlockKind::PlayerHead => 64u32, + BlockKind::PlayerWallHead => 64u32, + BlockKind::CreeperHead => 64u32, + BlockKind::CreeperWallHead => 64u32, + BlockKind::DragonHead => 64u32, + BlockKind::DragonWallHead => 64u32, + BlockKind::Anvil => 64u32, + BlockKind::ChippedAnvil => 64u32, + BlockKind::DamagedAnvil => 64u32, + BlockKind::TrappedChest => 64u32, + BlockKind::LightWeightedPressurePlate => 64u32, + BlockKind::HeavyWeightedPressurePlate => 64u32, + BlockKind::Comparator => 64u32, + BlockKind::DaylightDetector => 64u32, + BlockKind::RedstoneBlock => 64u32, + BlockKind::NetherQuartzOre => 64u32, + BlockKind::Hopper => 64u32, + BlockKind::QuartzBlock => 64u32, + BlockKind::ChiseledQuartzBlock => 64u32, + BlockKind::QuartzPillar => 64u32, + BlockKind::QuartzStairs => 64u32, + BlockKind::ActivatorRail => 64u32, + BlockKind::Dropper => 64u32, + BlockKind::WhiteTerracotta => 64u32, + BlockKind::OrangeTerracotta => 64u32, + BlockKind::MagentaTerracotta => 64u32, + BlockKind::LightBlueTerracotta => 64u32, + BlockKind::YellowTerracotta => 64u32, + BlockKind::LimeTerracotta => 64u32, + BlockKind::PinkTerracotta => 64u32, + BlockKind::GrayTerracotta => 64u32, + BlockKind::LightGrayTerracotta => 64u32, + BlockKind::CyanTerracotta => 64u32, + BlockKind::PurpleTerracotta => 64u32, + BlockKind::BlueTerracotta => 64u32, + BlockKind::BrownTerracotta => 64u32, + BlockKind::GreenTerracotta => 64u32, + BlockKind::RedTerracotta => 64u32, + BlockKind::BlackTerracotta => 64u32, + BlockKind::WhiteStainedGlassPane => 64u32, + BlockKind::OrangeStainedGlassPane => 64u32, + BlockKind::MagentaStainedGlassPane => 64u32, + BlockKind::LightBlueStainedGlassPane => 64u32, + BlockKind::YellowStainedGlassPane => 64u32, + BlockKind::LimeStainedGlassPane => 64u32, + BlockKind::PinkStainedGlassPane => 64u32, + BlockKind::GrayStainedGlassPane => 64u32, + BlockKind::LightGrayStainedGlassPane => 64u32, + BlockKind::CyanStainedGlassPane => 64u32, + BlockKind::PurpleStainedGlassPane => 64u32, + BlockKind::BlueStainedGlassPane => 64u32, + BlockKind::BrownStainedGlassPane => 64u32, + BlockKind::GreenStainedGlassPane => 64u32, + BlockKind::RedStainedGlassPane => 64u32, + BlockKind::BlackStainedGlassPane => 64u32, + BlockKind::AcaciaStairs => 64u32, + BlockKind::DarkOakStairs => 64u32, + BlockKind::SlimeBlock => 64u32, + BlockKind::Barrier => 64u32, + BlockKind::Light => 64u32, + BlockKind::IronTrapdoor => 64u32, + BlockKind::Prismarine => 64u32, + BlockKind::PrismarineBricks => 64u32, + BlockKind::DarkPrismarine => 64u32, + BlockKind::PrismarineStairs => 64u32, + BlockKind::PrismarineBrickStairs => 64u32, + BlockKind::DarkPrismarineStairs => 64u32, + BlockKind::PrismarineSlab => 64u32, + BlockKind::PrismarineBrickSlab => 64u32, + BlockKind::DarkPrismarineSlab => 64u32, + BlockKind::SeaLantern => 64u32, + BlockKind::HayBlock => 64u32, + BlockKind::WhiteCarpet => 64u32, + BlockKind::OrangeCarpet => 64u32, + BlockKind::MagentaCarpet => 64u32, + BlockKind::LightBlueCarpet => 64u32, + BlockKind::YellowCarpet => 64u32, + BlockKind::LimeCarpet => 64u32, + BlockKind::PinkCarpet => 64u32, + BlockKind::GrayCarpet => 64u32, + BlockKind::LightGrayCarpet => 64u32, + BlockKind::CyanCarpet => 64u32, + BlockKind::PurpleCarpet => 64u32, + BlockKind::BlueCarpet => 64u32, + BlockKind::BrownCarpet => 64u32, + BlockKind::GreenCarpet => 64u32, + BlockKind::RedCarpet => 64u32, + BlockKind::BlackCarpet => 64u32, + BlockKind::Terracotta => 64u32, + BlockKind::CoalBlock => 64u32, + BlockKind::PackedIce => 64u32, + BlockKind::Sunflower => 64u32, + BlockKind::Lilac => 64u32, + BlockKind::RoseBush => 64u32, + BlockKind::Peony => 64u32, + BlockKind::TallGrass => 64u32, + BlockKind::LargeFern => 64u32, + BlockKind::WhiteBanner => 16u32, + BlockKind::OrangeBanner => 16u32, + BlockKind::MagentaBanner => 16u32, + BlockKind::LightBlueBanner => 16u32, + BlockKind::YellowBanner => 16u32, + BlockKind::LimeBanner => 16u32, + BlockKind::PinkBanner => 16u32, + BlockKind::GrayBanner => 16u32, + BlockKind::LightGrayBanner => 16u32, + BlockKind::CyanBanner => 16u32, + BlockKind::PurpleBanner => 16u32, + BlockKind::BlueBanner => 16u32, + BlockKind::BrownBanner => 16u32, + BlockKind::GreenBanner => 16u32, + BlockKind::RedBanner => 16u32, + BlockKind::BlackBanner => 16u32, + BlockKind::WhiteWallBanner => 16u32, + BlockKind::OrangeWallBanner => 16u32, + BlockKind::MagentaWallBanner => 16u32, + BlockKind::LightBlueWallBanner => 16u32, + BlockKind::YellowWallBanner => 16u32, + BlockKind::LimeWallBanner => 16u32, + BlockKind::PinkWallBanner => 16u32, + BlockKind::GrayWallBanner => 16u32, + BlockKind::LightGrayWallBanner => 16u32, + BlockKind::CyanWallBanner => 16u32, + BlockKind::PurpleWallBanner => 16u32, + BlockKind::BlueWallBanner => 16u32, + BlockKind::BrownWallBanner => 16u32, + BlockKind::GreenWallBanner => 16u32, + BlockKind::RedWallBanner => 16u32, + BlockKind::BlackWallBanner => 16u32, + BlockKind::RedSandstone => 64u32, + BlockKind::ChiseledRedSandstone => 64u32, + BlockKind::CutRedSandstone => 64u32, + BlockKind::RedSandstoneStairs => 64u32, + BlockKind::OakSlab => 64u32, + BlockKind::SpruceSlab => 64u32, + BlockKind::BirchSlab => 64u32, + BlockKind::JungleSlab => 64u32, + BlockKind::AcaciaSlab => 64u32, + BlockKind::DarkOakSlab => 64u32, + BlockKind::StoneSlab => 64u32, + BlockKind::SmoothStoneSlab => 64u32, + BlockKind::SandstoneSlab => 64u32, + BlockKind::CutSandstoneSlab => 64u32, + BlockKind::PetrifiedOakSlab => 64u32, + BlockKind::CobblestoneSlab => 64u32, + BlockKind::BrickSlab => 64u32, + BlockKind::StoneBrickSlab => 64u32, + BlockKind::NetherBrickSlab => 64u32, + BlockKind::QuartzSlab => 64u32, + BlockKind::RedSandstoneSlab => 64u32, + BlockKind::CutRedSandstoneSlab => 64u32, + BlockKind::PurpurSlab => 64u32, + BlockKind::SmoothStone => 64u32, + BlockKind::SmoothSandstone => 64u32, + BlockKind::SmoothQuartz => 64u32, + BlockKind::SmoothRedSandstone => 64u32, + BlockKind::SpruceFenceGate => 64u32, + BlockKind::BirchFenceGate => 64u32, + BlockKind::JungleFenceGate => 64u32, + BlockKind::AcaciaFenceGate => 64u32, + BlockKind::DarkOakFenceGate => 64u32, + BlockKind::SpruceFence => 64u32, + BlockKind::BirchFence => 64u32, + BlockKind::JungleFence => 64u32, + BlockKind::AcaciaFence => 64u32, + BlockKind::DarkOakFence => 64u32, + BlockKind::SpruceDoor => 64u32, + BlockKind::BirchDoor => 64u32, + BlockKind::JungleDoor => 64u32, + BlockKind::AcaciaDoor => 64u32, + BlockKind::DarkOakDoor => 64u32, + BlockKind::EndRod => 64u32, + BlockKind::ChorusPlant => 64u32, + BlockKind::ChorusFlower => 64u32, + BlockKind::PurpurBlock => 64u32, + BlockKind::PurpurPillar => 64u32, + BlockKind::PurpurStairs => 64u32, + BlockKind::EndStoneBricks => 64u32, + BlockKind::Beetroots => 64u32, + BlockKind::DirtPath => 64u32, + BlockKind::EndGateway => 64u32, + BlockKind::RepeatingCommandBlock => 64u32, + BlockKind::ChainCommandBlock => 64u32, + BlockKind::FrostedIce => 64u32, + BlockKind::MagmaBlock => 64u32, + BlockKind::NetherWartBlock => 64u32, + BlockKind::RedNetherBricks => 64u32, + BlockKind::BoneBlock => 64u32, + BlockKind::StructureVoid => 64u32, + BlockKind::Observer => 64u32, + BlockKind::ShulkerBox => 1u32, + BlockKind::WhiteShulkerBox => 1u32, + BlockKind::OrangeShulkerBox => 1u32, + BlockKind::MagentaShulkerBox => 1u32, + BlockKind::LightBlueShulkerBox => 1u32, + BlockKind::YellowShulkerBox => 1u32, + BlockKind::LimeShulkerBox => 1u32, + BlockKind::PinkShulkerBox => 1u32, + BlockKind::GrayShulkerBox => 1u32, + BlockKind::LightGrayShulkerBox => 1u32, + BlockKind::CyanShulkerBox => 1u32, + BlockKind::PurpleShulkerBox => 1u32, + BlockKind::BlueShulkerBox => 1u32, + BlockKind::BrownShulkerBox => 1u32, + BlockKind::GreenShulkerBox => 1u32, + BlockKind::RedShulkerBox => 1u32, + BlockKind::BlackShulkerBox => 1u32, + BlockKind::WhiteGlazedTerracotta => 64u32, + BlockKind::OrangeGlazedTerracotta => 64u32, + BlockKind::MagentaGlazedTerracotta => 64u32, + BlockKind::LightBlueGlazedTerracotta => 64u32, + BlockKind::YellowGlazedTerracotta => 64u32, + BlockKind::LimeGlazedTerracotta => 64u32, + BlockKind::PinkGlazedTerracotta => 64u32, + BlockKind::GrayGlazedTerracotta => 64u32, + BlockKind::LightGrayGlazedTerracotta => 64u32, + BlockKind::CyanGlazedTerracotta => 64u32, + BlockKind::PurpleGlazedTerracotta => 64u32, + BlockKind::BlueGlazedTerracotta => 64u32, + BlockKind::BrownGlazedTerracotta => 64u32, + BlockKind::GreenGlazedTerracotta => 64u32, + BlockKind::RedGlazedTerracotta => 64u32, + BlockKind::BlackGlazedTerracotta => 64u32, + BlockKind::WhiteConcrete => 64u32, + BlockKind::OrangeConcrete => 64u32, + BlockKind::MagentaConcrete => 64u32, + BlockKind::LightBlueConcrete => 64u32, + BlockKind::YellowConcrete => 64u32, + BlockKind::LimeConcrete => 64u32, + BlockKind::PinkConcrete => 64u32, + BlockKind::GrayConcrete => 64u32, + BlockKind::LightGrayConcrete => 64u32, + BlockKind::CyanConcrete => 64u32, + BlockKind::PurpleConcrete => 64u32, + BlockKind::BlueConcrete => 64u32, + BlockKind::BrownConcrete => 64u32, + BlockKind::GreenConcrete => 64u32, + BlockKind::RedConcrete => 64u32, + BlockKind::BlackConcrete => 64u32, + BlockKind::WhiteConcretePowder => 64u32, + BlockKind::OrangeConcretePowder => 64u32, + BlockKind::MagentaConcretePowder => 64u32, + BlockKind::LightBlueConcretePowder => 64u32, + BlockKind::YellowConcretePowder => 64u32, + BlockKind::LimeConcretePowder => 64u32, + BlockKind::PinkConcretePowder => 64u32, + BlockKind::GrayConcretePowder => 64u32, + BlockKind::LightGrayConcretePowder => 64u32, + BlockKind::CyanConcretePowder => 64u32, + BlockKind::PurpleConcretePowder => 64u32, + BlockKind::BlueConcretePowder => 64u32, + BlockKind::BrownConcretePowder => 64u32, + BlockKind::GreenConcretePowder => 64u32, + BlockKind::RedConcretePowder => 64u32, + BlockKind::BlackConcretePowder => 64u32, + BlockKind::Kelp => 64u32, + BlockKind::KelpPlant => 64u32, + BlockKind::DriedKelpBlock => 64u32, + BlockKind::TurtleEgg => 64u32, + BlockKind::DeadTubeCoralBlock => 64u32, + BlockKind::DeadBrainCoralBlock => 64u32, + BlockKind::DeadBubbleCoralBlock => 64u32, + BlockKind::DeadFireCoralBlock => 64u32, + BlockKind::DeadHornCoralBlock => 64u32, + BlockKind::TubeCoralBlock => 64u32, + BlockKind::BrainCoralBlock => 64u32, + BlockKind::BubbleCoralBlock => 64u32, + BlockKind::FireCoralBlock => 64u32, + BlockKind::HornCoralBlock => 64u32, + BlockKind::DeadTubeCoral => 64u32, + BlockKind::DeadBrainCoral => 64u32, + BlockKind::DeadBubbleCoral => 64u32, + BlockKind::DeadFireCoral => 64u32, + BlockKind::DeadHornCoral => 64u32, + BlockKind::TubeCoral => 64u32, + BlockKind::BrainCoral => 64u32, + BlockKind::BubbleCoral => 64u32, + BlockKind::FireCoral => 64u32, + BlockKind::HornCoral => 64u32, + BlockKind::DeadTubeCoralFan => 64u32, + BlockKind::DeadBrainCoralFan => 64u32, + BlockKind::DeadBubbleCoralFan => 64u32, + BlockKind::DeadFireCoralFan => 64u32, + BlockKind::DeadHornCoralFan => 64u32, + BlockKind::TubeCoralFan => 64u32, + BlockKind::BrainCoralFan => 64u32, + BlockKind::BubbleCoralFan => 64u32, + BlockKind::FireCoralFan => 64u32, + BlockKind::HornCoralFan => 64u32, + BlockKind::DeadTubeCoralWallFan => 64u32, + BlockKind::DeadBrainCoralWallFan => 64u32, + BlockKind::DeadBubbleCoralWallFan => 64u32, + BlockKind::DeadFireCoralWallFan => 64u32, + BlockKind::DeadHornCoralWallFan => 64u32, + BlockKind::TubeCoralWallFan => 64u32, + BlockKind::BrainCoralWallFan => 64u32, + BlockKind::BubbleCoralWallFan => 64u32, + BlockKind::FireCoralWallFan => 64u32, + BlockKind::HornCoralWallFan => 64u32, + BlockKind::SeaPickle => 64u32, + BlockKind::BlueIce => 64u32, + BlockKind::Conduit => 64u32, + BlockKind::BambooSapling => 64u32, + BlockKind::Bamboo => 64u32, + BlockKind::PottedBamboo => 64u32, + BlockKind::VoidAir => 64u32, + BlockKind::CaveAir => 64u32, + BlockKind::BubbleColumn => 64u32, + BlockKind::PolishedGraniteStairs => 64u32, + BlockKind::SmoothRedSandstoneStairs => 64u32, + BlockKind::MossyStoneBrickStairs => 64u32, + BlockKind::PolishedDioriteStairs => 64u32, + BlockKind::MossyCobblestoneStairs => 64u32, + BlockKind::EndStoneBrickStairs => 64u32, + BlockKind::StoneStairs => 64u32, + BlockKind::SmoothSandstoneStairs => 64u32, + BlockKind::SmoothQuartzStairs => 64u32, + BlockKind::GraniteStairs => 64u32, + BlockKind::AndesiteStairs => 64u32, + BlockKind::RedNetherBrickStairs => 64u32, + BlockKind::PolishedAndesiteStairs => 64u32, + BlockKind::DioriteStairs => 64u32, + BlockKind::PolishedGraniteSlab => 64u32, + BlockKind::SmoothRedSandstoneSlab => 64u32, + BlockKind::MossyStoneBrickSlab => 64u32, + BlockKind::PolishedDioriteSlab => 64u32, + BlockKind::MossyCobblestoneSlab => 64u32, + BlockKind::EndStoneBrickSlab => 64u32, + BlockKind::SmoothSandstoneSlab => 64u32, + BlockKind::SmoothQuartzSlab => 64u32, + BlockKind::GraniteSlab => 64u32, + BlockKind::AndesiteSlab => 64u32, + BlockKind::RedNetherBrickSlab => 64u32, + BlockKind::PolishedAndesiteSlab => 64u32, + BlockKind::DioriteSlab => 64u32, + BlockKind::BrickWall => 64u32, + BlockKind::PrismarineWall => 64u32, + BlockKind::RedSandstoneWall => 64u32, + BlockKind::MossyStoneBrickWall => 64u32, + BlockKind::GraniteWall => 64u32, + BlockKind::StoneBrickWall => 64u32, + BlockKind::NetherBrickWall => 64u32, + BlockKind::AndesiteWall => 64u32, + BlockKind::RedNetherBrickWall => 64u32, + BlockKind::SandstoneWall => 64u32, + BlockKind::EndStoneBrickWall => 64u32, + BlockKind::DioriteWall => 64u32, + BlockKind::Scaffolding => 64u32, + BlockKind::Loom => 64u32, + BlockKind::Barrel => 64u32, + BlockKind::Smoker => 64u32, + BlockKind::BlastFurnace => 64u32, + BlockKind::CartographyTable => 64u32, + BlockKind::FletchingTable => 64u32, + BlockKind::Grindstone => 64u32, + BlockKind::Lectern => 64u32, + BlockKind::SmithingTable => 64u32, + BlockKind::Stonecutter => 64u32, + BlockKind::Bell => 64u32, + BlockKind::Lantern => 64u32, + BlockKind::SoulLantern => 64u32, + BlockKind::Campfire => 64u32, + BlockKind::SoulCampfire => 64u32, + BlockKind::SweetBerryBush => 64u32, + BlockKind::WarpedStem => 64u32, + BlockKind::StrippedWarpedStem => 64u32, + BlockKind::WarpedHyphae => 64u32, + BlockKind::StrippedWarpedHyphae => 64u32, + BlockKind::WarpedNylium => 64u32, + BlockKind::WarpedFungus => 64u32, + BlockKind::WarpedWartBlock => 64u32, + BlockKind::WarpedRoots => 64u32, + BlockKind::NetherSprouts => 64u32, + BlockKind::CrimsonStem => 64u32, + BlockKind::StrippedCrimsonStem => 64u32, + BlockKind::CrimsonHyphae => 64u32, + BlockKind::StrippedCrimsonHyphae => 64u32, + BlockKind::CrimsonNylium => 64u32, + BlockKind::CrimsonFungus => 64u32, + BlockKind::Shroomlight => 64u32, + BlockKind::WeepingVines => 64u32, + BlockKind::WeepingVinesPlant => 64u32, + BlockKind::TwistingVines => 64u32, + BlockKind::TwistingVinesPlant => 64u32, + BlockKind::CrimsonRoots => 64u32, + BlockKind::CrimsonPlanks => 64u32, + BlockKind::WarpedPlanks => 64u32, + BlockKind::CrimsonSlab => 64u32, + BlockKind::WarpedSlab => 64u32, + BlockKind::CrimsonPressurePlate => 64u32, + BlockKind::WarpedPressurePlate => 64u32, + BlockKind::CrimsonFence => 64u32, + BlockKind::WarpedFence => 64u32, + BlockKind::CrimsonTrapdoor => 64u32, + BlockKind::WarpedTrapdoor => 64u32, + BlockKind::CrimsonFenceGate => 64u32, + BlockKind::WarpedFenceGate => 64u32, + BlockKind::CrimsonStairs => 64u32, + BlockKind::WarpedStairs => 64u32, + BlockKind::CrimsonButton => 64u32, + BlockKind::WarpedButton => 64u32, + BlockKind::CrimsonDoor => 64u32, + BlockKind::WarpedDoor => 64u32, + BlockKind::CrimsonSign => 16u32, + BlockKind::WarpedSign => 16u32, + BlockKind::CrimsonWallSign => 16u32, + BlockKind::WarpedWallSign => 16u32, + BlockKind::StructureBlock => 64u32, + BlockKind::Jigsaw => 64u32, + BlockKind::Composter => 64u32, + BlockKind::Target => 64u32, + BlockKind::BeeNest => 64u32, + BlockKind::Beehive => 64u32, + BlockKind::HoneyBlock => 64u32, + BlockKind::HoneycombBlock => 64u32, + BlockKind::NetheriteBlock => 64u32, + BlockKind::AncientDebris => 64u32, + BlockKind::CryingObsidian => 64u32, + BlockKind::RespawnAnchor => 64u32, + BlockKind::PottedCrimsonFungus => 64u32, + BlockKind::PottedWarpedFungus => 64u32, + BlockKind::PottedCrimsonRoots => 64u32, + BlockKind::PottedWarpedRoots => 64u32, + BlockKind::Lodestone => 64u32, + BlockKind::Blackstone => 64u32, + BlockKind::BlackstoneStairs => 64u32, + BlockKind::BlackstoneWall => 64u32, + BlockKind::BlackstoneSlab => 64u32, + BlockKind::PolishedBlackstone => 64u32, + BlockKind::PolishedBlackstoneBricks => 64u32, + BlockKind::CrackedPolishedBlackstoneBricks => 64u32, + BlockKind::ChiseledPolishedBlackstone => 64u32, + BlockKind::PolishedBlackstoneBrickSlab => 64u32, + BlockKind::PolishedBlackstoneBrickStairs => 64u32, + BlockKind::PolishedBlackstoneBrickWall => 64u32, + BlockKind::GildedBlackstone => 64u32, + BlockKind::PolishedBlackstoneStairs => 64u32, + BlockKind::PolishedBlackstoneSlab => 64u32, + BlockKind::PolishedBlackstonePressurePlate => 64u32, + BlockKind::PolishedBlackstoneButton => 64u32, + BlockKind::PolishedBlackstoneWall => 64u32, + BlockKind::ChiseledNetherBricks => 64u32, + BlockKind::CrackedNetherBricks => 64u32, + BlockKind::QuartzBricks => 64u32, + BlockKind::Candle => 64u32, + BlockKind::WhiteCandle => 64u32, + BlockKind::OrangeCandle => 64u32, + BlockKind::MagentaCandle => 64u32, + BlockKind::LightBlueCandle => 64u32, + BlockKind::YellowCandle => 64u32, + BlockKind::LimeCandle => 64u32, + BlockKind::PinkCandle => 64u32, + BlockKind::GrayCandle => 64u32, + BlockKind::LightGrayCandle => 64u32, + BlockKind::CyanCandle => 64u32, + BlockKind::PurpleCandle => 64u32, + BlockKind::BlueCandle => 64u32, + BlockKind::BrownCandle => 64u32, + BlockKind::GreenCandle => 64u32, + BlockKind::RedCandle => 64u32, + BlockKind::BlackCandle => 64u32, + BlockKind::CandleCake => 64u32, + BlockKind::WhiteCandleCake => 64u32, + BlockKind::OrangeCandleCake => 64u32, + BlockKind::MagentaCandleCake => 64u32, + BlockKind::LightBlueCandleCake => 64u32, + BlockKind::YellowCandleCake => 64u32, + BlockKind::LimeCandleCake => 64u32, + BlockKind::PinkCandleCake => 64u32, + BlockKind::GrayCandleCake => 64u32, + BlockKind::LightGrayCandleCake => 64u32, + BlockKind::CyanCandleCake => 64u32, + BlockKind::PurpleCandleCake => 64u32, + BlockKind::BlueCandleCake => 64u32, + BlockKind::BrownCandleCake => 64u32, + BlockKind::GreenCandleCake => 64u32, + BlockKind::RedCandleCake => 64u32, + BlockKind::BlackCandleCake => 64u32, + BlockKind::AmethystBlock => 64u32, + BlockKind::BuddingAmethyst => 64u32, + BlockKind::AmethystCluster => 64u32, + BlockKind::LargeAmethystBud => 64u32, + BlockKind::MediumAmethystBud => 64u32, + BlockKind::SmallAmethystBud => 64u32, + BlockKind::Tuff => 64u32, + BlockKind::Calcite => 64u32, + BlockKind::TintedGlass => 64u32, + BlockKind::PowderSnow => 1u32, + BlockKind::SculkSensor => 64u32, + BlockKind::OxidizedCopper => 64u32, + BlockKind::WeatheredCopper => 64u32, + BlockKind::ExposedCopper => 64u32, + BlockKind::CopperBlock => 64u32, + BlockKind::CopperOre => 64u32, + BlockKind::DeepslateCopperOre => 64u32, + BlockKind::OxidizedCutCopper => 64u32, + BlockKind::WeatheredCutCopper => 64u32, + BlockKind::ExposedCutCopper => 64u32, + BlockKind::CutCopper => 64u32, + BlockKind::OxidizedCutCopperStairs => 64u32, + BlockKind::WeatheredCutCopperStairs => 64u32, + BlockKind::ExposedCutCopperStairs => 64u32, + BlockKind::CutCopperStairs => 64u32, + BlockKind::OxidizedCutCopperSlab => 64u32, + BlockKind::WeatheredCutCopperSlab => 64u32, + BlockKind::ExposedCutCopperSlab => 64u32, + BlockKind::CutCopperSlab => 64u32, + BlockKind::WaxedCopperBlock => 64u32, + BlockKind::WaxedWeatheredCopper => 64u32, + BlockKind::WaxedExposedCopper => 64u32, + BlockKind::WaxedOxidizedCopper => 64u32, + BlockKind::WaxedOxidizedCutCopper => 64u32, + BlockKind::WaxedWeatheredCutCopper => 64u32, + BlockKind::WaxedExposedCutCopper => 64u32, + BlockKind::WaxedCutCopper => 64u32, + BlockKind::WaxedOxidizedCutCopperStairs => 64u32, + BlockKind::WaxedWeatheredCutCopperStairs => 64u32, + BlockKind::WaxedExposedCutCopperStairs => 64u32, + BlockKind::WaxedCutCopperStairs => 64u32, + BlockKind::WaxedOxidizedCutCopperSlab => 64u32, + BlockKind::WaxedWeatheredCutCopperSlab => 64u32, + BlockKind::WaxedExposedCutCopperSlab => 64u32, + BlockKind::WaxedCutCopperSlab => 64u32, + BlockKind::LightningRod => 64u32, + BlockKind::PointedDripstone => 64u32, + BlockKind::DripstoneBlock => 64u32, + BlockKind::CaveVines => 64u32, + BlockKind::CaveVinesPlant => 64u32, + BlockKind::SporeBlossom => 64u32, + BlockKind::Azalea => 64u32, + BlockKind::FloweringAzalea => 64u32, + BlockKind::MossCarpet => 64u32, + BlockKind::MossBlock => 64u32, + BlockKind::BigDripleaf => 64u32, + BlockKind::BigDripleafStem => 64u32, + BlockKind::SmallDripleaf => 64u32, + BlockKind::HangingRoots => 64u32, + BlockKind::RootedDirt => 64u32, + BlockKind::Deepslate => 64u32, + BlockKind::CobbledDeepslate => 64u32, + BlockKind::CobbledDeepslateStairs => 64u32, + BlockKind::CobbledDeepslateSlab => 64u32, + BlockKind::CobbledDeepslateWall => 64u32, + BlockKind::PolishedDeepslate => 64u32, + BlockKind::PolishedDeepslateStairs => 64u32, + BlockKind::PolishedDeepslateSlab => 64u32, + BlockKind::PolishedDeepslateWall => 64u32, + BlockKind::DeepslateTiles => 64u32, + BlockKind::DeepslateTileStairs => 64u32, + BlockKind::DeepslateTileSlab => 64u32, + BlockKind::DeepslateTileWall => 64u32, + BlockKind::DeepslateBricks => 64u32, + BlockKind::DeepslateBrickStairs => 64u32, + BlockKind::DeepslateBrickSlab => 64u32, + BlockKind::DeepslateBrickWall => 64u32, + BlockKind::ChiseledDeepslate => 64u32, + BlockKind::CrackedDeepslateBricks => 64u32, + BlockKind::CrackedDeepslateTiles => 64u32, + BlockKind::InfestedDeepslate => 64u32, + BlockKind::SmoothBasalt => 64u32, + BlockKind::RawIronBlock => 64u32, + BlockKind::RawCopperBlock => 64u32, + BlockKind::RawGoldBlock => 64u32, + BlockKind::PottedAzaleaBush => 64u32, + BlockKind::PottedFloweringAzaleaBush => 64u32, + } + } +} +impl BlockKind { + #[doc = "Returns the `diggable` property of this `BlockKind`."] + #[inline] + pub fn diggable(&self) -> bool { + match self { + BlockKind::Air => true, + BlockKind::Stone => true, + BlockKind::Granite => true, + BlockKind::PolishedGranite => true, + BlockKind::Diorite => true, + BlockKind::PolishedDiorite => true, + BlockKind::Andesite => true, + BlockKind::PolishedAndesite => true, + BlockKind::GrassBlock => true, + BlockKind::Dirt => true, + BlockKind::CoarseDirt => true, + BlockKind::Podzol => true, + BlockKind::Cobblestone => true, + BlockKind::OakPlanks => true, + BlockKind::SprucePlanks => true, + BlockKind::BirchPlanks => true, + BlockKind::JunglePlanks => true, + BlockKind::AcaciaPlanks => true, + BlockKind::DarkOakPlanks => true, + BlockKind::OakSapling => true, + BlockKind::SpruceSapling => true, + BlockKind::BirchSapling => true, + BlockKind::JungleSapling => true, + BlockKind::AcaciaSapling => true, + BlockKind::DarkOakSapling => true, + BlockKind::Bedrock => false, + BlockKind::Water => false, + BlockKind::Lava => false, + BlockKind::Sand => true, + BlockKind::RedSand => true, + BlockKind::Gravel => true, + BlockKind::GoldOre => true, + BlockKind::DeepslateGoldOre => true, + BlockKind::IronOre => true, + BlockKind::DeepslateIronOre => true, + BlockKind::CoalOre => true, + BlockKind::DeepslateCoalOre => true, + BlockKind::NetherGoldOre => true, + BlockKind::OakLog => true, + BlockKind::SpruceLog => true, + BlockKind::BirchLog => true, + BlockKind::JungleLog => true, + BlockKind::AcaciaLog => true, + BlockKind::DarkOakLog => true, + BlockKind::StrippedSpruceLog => true, + BlockKind::StrippedBirchLog => true, + BlockKind::StrippedJungleLog => true, + BlockKind::StrippedAcaciaLog => true, + BlockKind::StrippedDarkOakLog => true, + BlockKind::StrippedOakLog => true, + BlockKind::OakWood => true, + BlockKind::SpruceWood => true, + BlockKind::BirchWood => true, + BlockKind::JungleWood => true, + BlockKind::AcaciaWood => true, + BlockKind::DarkOakWood => true, + BlockKind::StrippedOakWood => true, + BlockKind::StrippedSpruceWood => true, + BlockKind::StrippedBirchWood => true, + BlockKind::StrippedJungleWood => true, + BlockKind::StrippedAcaciaWood => true, + BlockKind::StrippedDarkOakWood => true, + BlockKind::OakLeaves => true, + BlockKind::SpruceLeaves => true, + BlockKind::BirchLeaves => true, + BlockKind::JungleLeaves => true, + BlockKind::AcaciaLeaves => true, + BlockKind::DarkOakLeaves => true, + BlockKind::AzaleaLeaves => true, + BlockKind::FloweringAzaleaLeaves => true, + BlockKind::Sponge => true, + BlockKind::WetSponge => true, + BlockKind::Glass => true, + BlockKind::LapisOre => true, + BlockKind::DeepslateLapisOre => true, + BlockKind::LapisBlock => true, + BlockKind::Dispenser => true, + BlockKind::Sandstone => true, + BlockKind::ChiseledSandstone => true, + BlockKind::CutSandstone => true, + BlockKind::NoteBlock => true, + BlockKind::WhiteBed => true, + BlockKind::OrangeBed => true, + BlockKind::MagentaBed => true, + BlockKind::LightBlueBed => true, + BlockKind::YellowBed => true, + BlockKind::LimeBed => true, + BlockKind::PinkBed => true, + BlockKind::GrayBed => true, + BlockKind::LightGrayBed => true, + BlockKind::CyanBed => true, + BlockKind::PurpleBed => true, + BlockKind::BlueBed => true, + BlockKind::BrownBed => true, + BlockKind::GreenBed => true, + BlockKind::RedBed => true, + BlockKind::BlackBed => true, + BlockKind::PoweredRail => true, + BlockKind::DetectorRail => true, + BlockKind::StickyPiston => true, + BlockKind::Cobweb => true, + BlockKind::Grass => true, + BlockKind::Fern => true, + BlockKind::DeadBush => true, + BlockKind::Seagrass => true, + BlockKind::TallSeagrass => true, + BlockKind::Piston => true, + BlockKind::PistonHead => true, + BlockKind::WhiteWool => true, + BlockKind::OrangeWool => true, + BlockKind::MagentaWool => true, + BlockKind::LightBlueWool => true, + BlockKind::YellowWool => true, + BlockKind::LimeWool => true, + BlockKind::PinkWool => true, + BlockKind::GrayWool => true, + BlockKind::LightGrayWool => true, + BlockKind::CyanWool => true, + BlockKind::PurpleWool => true, + BlockKind::BlueWool => true, + BlockKind::BrownWool => true, + BlockKind::GreenWool => true, + BlockKind::RedWool => true, + BlockKind::BlackWool => true, + BlockKind::MovingPiston => false, + BlockKind::Dandelion => true, + BlockKind::Poppy => true, + BlockKind::BlueOrchid => true, + BlockKind::Allium => true, + BlockKind::AzureBluet => true, + BlockKind::RedTulip => true, + BlockKind::OrangeTulip => true, + BlockKind::WhiteTulip => true, + BlockKind::PinkTulip => true, + BlockKind::OxeyeDaisy => true, + BlockKind::Cornflower => true, + BlockKind::WitherRose => true, + BlockKind::LilyOfTheValley => true, + BlockKind::BrownMushroom => true, + BlockKind::RedMushroom => true, + BlockKind::GoldBlock => true, + BlockKind::IronBlock => true, + BlockKind::Bricks => true, + BlockKind::Tnt => true, + BlockKind::Bookshelf => true, + BlockKind::MossyCobblestone => true, + BlockKind::Obsidian => true, + BlockKind::Torch => true, + BlockKind::WallTorch => true, + BlockKind::Fire => true, + BlockKind::SoulFire => true, + BlockKind::Spawner => true, + BlockKind::OakStairs => true, + BlockKind::Chest => true, + BlockKind::RedstoneWire => true, + BlockKind::DiamondOre => true, + BlockKind::DeepslateDiamondOre => true, + BlockKind::DiamondBlock => true, + BlockKind::CraftingTable => true, + BlockKind::Wheat => true, + BlockKind::Farmland => true, + BlockKind::Furnace => true, + BlockKind::OakSign => true, + BlockKind::SpruceSign => true, + BlockKind::BirchSign => true, + BlockKind::AcaciaSign => true, + BlockKind::JungleSign => true, + BlockKind::DarkOakSign => true, + BlockKind::OakDoor => true, + BlockKind::Ladder => true, + BlockKind::Rail => true, + BlockKind::CobblestoneStairs => true, + BlockKind::OakWallSign => true, + BlockKind::SpruceWallSign => true, + BlockKind::BirchWallSign => true, + BlockKind::AcaciaWallSign => true, + BlockKind::JungleWallSign => true, + BlockKind::DarkOakWallSign => true, + BlockKind::Lever => true, + BlockKind::StonePressurePlate => true, + BlockKind::IronDoor => true, + BlockKind::OakPressurePlate => true, + BlockKind::SprucePressurePlate => true, + BlockKind::BirchPressurePlate => true, + BlockKind::JunglePressurePlate => true, + BlockKind::AcaciaPressurePlate => true, + BlockKind::DarkOakPressurePlate => true, + BlockKind::RedstoneOre => true, + BlockKind::DeepslateRedstoneOre => true, + BlockKind::RedstoneTorch => true, + BlockKind::RedstoneWallTorch => true, + BlockKind::StoneButton => true, + BlockKind::Snow => true, + BlockKind::Ice => true, + BlockKind::SnowBlock => true, + BlockKind::Cactus => true, + BlockKind::Clay => true, + BlockKind::SugarCane => true, + BlockKind::Jukebox => true, + BlockKind::OakFence => true, + BlockKind::Pumpkin => true, + BlockKind::Netherrack => true, + BlockKind::SoulSand => true, + BlockKind::SoulSoil => true, + BlockKind::Basalt => true, + BlockKind::PolishedBasalt => true, + BlockKind::SoulTorch => true, + BlockKind::SoulWallTorch => true, + BlockKind::Glowstone => true, + BlockKind::NetherPortal => false, + BlockKind::CarvedPumpkin => true, + BlockKind::JackOLantern => true, + BlockKind::Cake => true, + BlockKind::Repeater => true, + BlockKind::WhiteStainedGlass => true, + BlockKind::OrangeStainedGlass => true, + BlockKind::MagentaStainedGlass => true, + BlockKind::LightBlueStainedGlass => true, + BlockKind::YellowStainedGlass => true, + BlockKind::LimeStainedGlass => true, + BlockKind::PinkStainedGlass => true, + BlockKind::GrayStainedGlass => true, + BlockKind::LightGrayStainedGlass => true, + BlockKind::CyanStainedGlass => true, + BlockKind::PurpleStainedGlass => true, + BlockKind::BlueStainedGlass => true, + BlockKind::BrownStainedGlass => true, + BlockKind::GreenStainedGlass => true, + BlockKind::RedStainedGlass => true, + BlockKind::BlackStainedGlass => true, + BlockKind::OakTrapdoor => true, + BlockKind::SpruceTrapdoor => true, + BlockKind::BirchTrapdoor => true, + BlockKind::JungleTrapdoor => true, + BlockKind::AcaciaTrapdoor => true, + BlockKind::DarkOakTrapdoor => true, + BlockKind::StoneBricks => true, + BlockKind::MossyStoneBricks => true, + BlockKind::CrackedStoneBricks => true, + BlockKind::ChiseledStoneBricks => true, + BlockKind::InfestedStone => true, + BlockKind::InfestedCobblestone => true, + BlockKind::InfestedStoneBricks => true, + BlockKind::InfestedMossyStoneBricks => true, + BlockKind::InfestedCrackedStoneBricks => true, + BlockKind::InfestedChiseledStoneBricks => true, + BlockKind::BrownMushroomBlock => true, + BlockKind::RedMushroomBlock => true, + BlockKind::MushroomStem => true, + BlockKind::IronBars => true, + BlockKind::Chain => true, + BlockKind::GlassPane => true, + BlockKind::Melon => true, + BlockKind::AttachedPumpkinStem => true, + BlockKind::AttachedMelonStem => true, + BlockKind::PumpkinStem => true, + BlockKind::MelonStem => true, + BlockKind::Vine => true, + BlockKind::GlowLichen => true, + BlockKind::OakFenceGate => true, + BlockKind::BrickStairs => true, + BlockKind::StoneBrickStairs => true, + BlockKind::Mycelium => true, + BlockKind::LilyPad => true, + BlockKind::NetherBricks => true, + BlockKind::NetherBrickFence => true, + BlockKind::NetherBrickStairs => true, + BlockKind::NetherWart => true, + BlockKind::EnchantingTable => true, + BlockKind::BrewingStand => true, + BlockKind::Cauldron => true, + BlockKind::WaterCauldron => true, + BlockKind::LavaCauldron => true, + BlockKind::PowderSnowCauldron => true, + BlockKind::EndPortal => false, + BlockKind::EndPortalFrame => false, + BlockKind::EndStone => true, + BlockKind::DragonEgg => true, + BlockKind::RedstoneLamp => true, + BlockKind::Cocoa => true, + BlockKind::SandstoneStairs => true, + BlockKind::EmeraldOre => true, + BlockKind::DeepslateEmeraldOre => true, + BlockKind::EnderChest => true, + BlockKind::TripwireHook => true, + BlockKind::Tripwire => true, + BlockKind::EmeraldBlock => true, + BlockKind::SpruceStairs => true, + BlockKind::BirchStairs => true, + BlockKind::JungleStairs => true, + BlockKind::CommandBlock => false, + BlockKind::Beacon => true, + BlockKind::CobblestoneWall => true, + BlockKind::MossyCobblestoneWall => true, + BlockKind::FlowerPot => true, + BlockKind::PottedOakSapling => true, + BlockKind::PottedSpruceSapling => true, + BlockKind::PottedBirchSapling => true, + BlockKind::PottedJungleSapling => true, + BlockKind::PottedAcaciaSapling => true, + BlockKind::PottedDarkOakSapling => true, + BlockKind::PottedFern => true, + BlockKind::PottedDandelion => true, + BlockKind::PottedPoppy => true, + BlockKind::PottedBlueOrchid => true, + BlockKind::PottedAllium => true, + BlockKind::PottedAzureBluet => true, + BlockKind::PottedRedTulip => true, + BlockKind::PottedOrangeTulip => true, + BlockKind::PottedWhiteTulip => true, + BlockKind::PottedPinkTulip => true, + BlockKind::PottedOxeyeDaisy => true, + BlockKind::PottedCornflower => true, + BlockKind::PottedLilyOfTheValley => true, + BlockKind::PottedWitherRose => true, + BlockKind::PottedRedMushroom => true, + BlockKind::PottedBrownMushroom => true, + BlockKind::PottedDeadBush => true, + BlockKind::PottedCactus => true, + BlockKind::Carrots => true, + BlockKind::Potatoes => true, + BlockKind::OakButton => true, + BlockKind::SpruceButton => true, + BlockKind::BirchButton => true, + BlockKind::JungleButton => true, + BlockKind::AcaciaButton => true, + BlockKind::DarkOakButton => true, + BlockKind::SkeletonSkull => true, + BlockKind::SkeletonWallSkull => true, + BlockKind::WitherSkeletonSkull => true, + BlockKind::WitherSkeletonWallSkull => true, + BlockKind::ZombieHead => true, + BlockKind::ZombieWallHead => true, + BlockKind::PlayerHead => true, + BlockKind::PlayerWallHead => true, + BlockKind::CreeperHead => true, + BlockKind::CreeperWallHead => true, + BlockKind::DragonHead => true, + BlockKind::DragonWallHead => true, + BlockKind::Anvil => true, + BlockKind::ChippedAnvil => true, + BlockKind::DamagedAnvil => true, + BlockKind::TrappedChest => true, + BlockKind::LightWeightedPressurePlate => true, + BlockKind::HeavyWeightedPressurePlate => true, + BlockKind::Comparator => true, + BlockKind::DaylightDetector => true, + BlockKind::RedstoneBlock => true, + BlockKind::NetherQuartzOre => true, + BlockKind::Hopper => true, + BlockKind::QuartzBlock => true, + BlockKind::ChiseledQuartzBlock => true, + BlockKind::QuartzPillar => true, + BlockKind::QuartzStairs => true, + BlockKind::ActivatorRail => true, + BlockKind::Dropper => true, + BlockKind::WhiteTerracotta => true, + BlockKind::OrangeTerracotta => true, + BlockKind::MagentaTerracotta => true, + BlockKind::LightBlueTerracotta => true, + BlockKind::YellowTerracotta => true, + BlockKind::LimeTerracotta => true, + BlockKind::PinkTerracotta => true, + BlockKind::GrayTerracotta => true, + BlockKind::LightGrayTerracotta => true, + BlockKind::CyanTerracotta => true, + BlockKind::PurpleTerracotta => true, + BlockKind::BlueTerracotta => true, + BlockKind::BrownTerracotta => true, + BlockKind::GreenTerracotta => true, + BlockKind::RedTerracotta => true, + BlockKind::BlackTerracotta => true, + BlockKind::WhiteStainedGlassPane => true, + BlockKind::OrangeStainedGlassPane => true, + BlockKind::MagentaStainedGlassPane => true, + BlockKind::LightBlueStainedGlassPane => true, + BlockKind::YellowStainedGlassPane => true, + BlockKind::LimeStainedGlassPane => true, + BlockKind::PinkStainedGlassPane => true, + BlockKind::GrayStainedGlassPane => true, + BlockKind::LightGrayStainedGlassPane => true, + BlockKind::CyanStainedGlassPane => true, + BlockKind::PurpleStainedGlassPane => true, + BlockKind::BlueStainedGlassPane => true, + BlockKind::BrownStainedGlassPane => true, + BlockKind::GreenStainedGlassPane => true, + BlockKind::RedStainedGlassPane => true, + BlockKind::BlackStainedGlassPane => true, + BlockKind::AcaciaStairs => true, + BlockKind::DarkOakStairs => true, + BlockKind::SlimeBlock => true, + BlockKind::Barrier => false, + BlockKind::Light => false, + BlockKind::IronTrapdoor => true, + BlockKind::Prismarine => true, + BlockKind::PrismarineBricks => true, + BlockKind::DarkPrismarine => true, + BlockKind::PrismarineStairs => true, + BlockKind::PrismarineBrickStairs => true, + BlockKind::DarkPrismarineStairs => true, + BlockKind::PrismarineSlab => true, + BlockKind::PrismarineBrickSlab => true, + BlockKind::DarkPrismarineSlab => true, + BlockKind::SeaLantern => true, + BlockKind::HayBlock => true, + BlockKind::WhiteCarpet => true, + BlockKind::OrangeCarpet => true, + BlockKind::MagentaCarpet => true, + BlockKind::LightBlueCarpet => true, + BlockKind::YellowCarpet => true, + BlockKind::LimeCarpet => true, + BlockKind::PinkCarpet => true, + BlockKind::GrayCarpet => true, + BlockKind::LightGrayCarpet => true, + BlockKind::CyanCarpet => true, + BlockKind::PurpleCarpet => true, + BlockKind::BlueCarpet => true, + BlockKind::BrownCarpet => true, + BlockKind::GreenCarpet => true, + BlockKind::RedCarpet => true, + BlockKind::BlackCarpet => true, + BlockKind::Terracotta => true, + BlockKind::CoalBlock => true, + BlockKind::PackedIce => true, + BlockKind::Sunflower => true, + BlockKind::Lilac => true, + BlockKind::RoseBush => true, + BlockKind::Peony => true, + BlockKind::TallGrass => true, + BlockKind::LargeFern => true, + BlockKind::WhiteBanner => true, + BlockKind::OrangeBanner => true, + BlockKind::MagentaBanner => true, + BlockKind::LightBlueBanner => true, + BlockKind::YellowBanner => true, + BlockKind::LimeBanner => true, + BlockKind::PinkBanner => true, + BlockKind::GrayBanner => true, + BlockKind::LightGrayBanner => true, + BlockKind::CyanBanner => true, + BlockKind::PurpleBanner => true, + BlockKind::BlueBanner => true, + BlockKind::BrownBanner => true, + BlockKind::GreenBanner => true, + BlockKind::RedBanner => true, + BlockKind::BlackBanner => true, + BlockKind::WhiteWallBanner => true, + BlockKind::OrangeWallBanner => true, + BlockKind::MagentaWallBanner => true, + BlockKind::LightBlueWallBanner => true, + BlockKind::YellowWallBanner => true, + BlockKind::LimeWallBanner => true, + BlockKind::PinkWallBanner => true, + BlockKind::GrayWallBanner => true, + BlockKind::LightGrayWallBanner => true, + BlockKind::CyanWallBanner => true, + BlockKind::PurpleWallBanner => true, + BlockKind::BlueWallBanner => true, + BlockKind::BrownWallBanner => true, + BlockKind::GreenWallBanner => true, + BlockKind::RedWallBanner => true, + BlockKind::BlackWallBanner => true, + BlockKind::RedSandstone => true, + BlockKind::ChiseledRedSandstone => true, + BlockKind::CutRedSandstone => true, + BlockKind::RedSandstoneStairs => true, + BlockKind::OakSlab => true, + BlockKind::SpruceSlab => true, + BlockKind::BirchSlab => true, + BlockKind::JungleSlab => true, + BlockKind::AcaciaSlab => true, + BlockKind::DarkOakSlab => true, + BlockKind::StoneSlab => true, + BlockKind::SmoothStoneSlab => true, + BlockKind::SandstoneSlab => true, + BlockKind::CutSandstoneSlab => true, + BlockKind::PetrifiedOakSlab => true, + BlockKind::CobblestoneSlab => true, + BlockKind::BrickSlab => true, + BlockKind::StoneBrickSlab => true, + BlockKind::NetherBrickSlab => true, + BlockKind::QuartzSlab => true, + BlockKind::RedSandstoneSlab => true, + BlockKind::CutRedSandstoneSlab => true, + BlockKind::PurpurSlab => true, + BlockKind::SmoothStone => true, + BlockKind::SmoothSandstone => true, + BlockKind::SmoothQuartz => true, + BlockKind::SmoothRedSandstone => true, + BlockKind::SpruceFenceGate => true, + BlockKind::BirchFenceGate => true, + BlockKind::JungleFenceGate => true, + BlockKind::AcaciaFenceGate => true, + BlockKind::DarkOakFenceGate => true, + BlockKind::SpruceFence => true, + BlockKind::BirchFence => true, + BlockKind::JungleFence => true, + BlockKind::AcaciaFence => true, + BlockKind::DarkOakFence => true, + BlockKind::SpruceDoor => true, + BlockKind::BirchDoor => true, + BlockKind::JungleDoor => true, + BlockKind::AcaciaDoor => true, + BlockKind::DarkOakDoor => true, + BlockKind::EndRod => true, + BlockKind::ChorusPlant => true, + BlockKind::ChorusFlower => true, + BlockKind::PurpurBlock => true, + BlockKind::PurpurPillar => true, + BlockKind::PurpurStairs => true, + BlockKind::EndStoneBricks => true, + BlockKind::Beetroots => true, + BlockKind::DirtPath => true, + BlockKind::EndGateway => false, + BlockKind::RepeatingCommandBlock => false, + BlockKind::ChainCommandBlock => false, + BlockKind::FrostedIce => true, + BlockKind::MagmaBlock => true, + BlockKind::NetherWartBlock => true, + BlockKind::RedNetherBricks => true, + BlockKind::BoneBlock => true, + BlockKind::StructureVoid => true, + BlockKind::Observer => true, + BlockKind::ShulkerBox => true, + BlockKind::WhiteShulkerBox => true, + BlockKind::OrangeShulkerBox => true, + BlockKind::MagentaShulkerBox => true, + BlockKind::LightBlueShulkerBox => true, + BlockKind::YellowShulkerBox => true, + BlockKind::LimeShulkerBox => true, + BlockKind::PinkShulkerBox => true, + BlockKind::GrayShulkerBox => true, + BlockKind::LightGrayShulkerBox => true, + BlockKind::CyanShulkerBox => true, + BlockKind::PurpleShulkerBox => true, + BlockKind::BlueShulkerBox => true, + BlockKind::BrownShulkerBox => true, + BlockKind::GreenShulkerBox => true, + BlockKind::RedShulkerBox => true, + BlockKind::BlackShulkerBox => true, + BlockKind::WhiteGlazedTerracotta => true, + BlockKind::OrangeGlazedTerracotta => true, + BlockKind::MagentaGlazedTerracotta => true, + BlockKind::LightBlueGlazedTerracotta => true, + BlockKind::YellowGlazedTerracotta => true, + BlockKind::LimeGlazedTerracotta => true, + BlockKind::PinkGlazedTerracotta => true, + BlockKind::GrayGlazedTerracotta => true, + BlockKind::LightGrayGlazedTerracotta => true, + BlockKind::CyanGlazedTerracotta => true, + BlockKind::PurpleGlazedTerracotta => true, + BlockKind::BlueGlazedTerracotta => true, + BlockKind::BrownGlazedTerracotta => true, + BlockKind::GreenGlazedTerracotta => true, + BlockKind::RedGlazedTerracotta => true, + BlockKind::BlackGlazedTerracotta => true, + BlockKind::WhiteConcrete => true, + BlockKind::OrangeConcrete => true, + BlockKind::MagentaConcrete => true, + BlockKind::LightBlueConcrete => true, + BlockKind::YellowConcrete => true, + BlockKind::LimeConcrete => true, + BlockKind::PinkConcrete => true, + BlockKind::GrayConcrete => true, + BlockKind::LightGrayConcrete => true, + BlockKind::CyanConcrete => true, + BlockKind::PurpleConcrete => true, + BlockKind::BlueConcrete => true, + BlockKind::BrownConcrete => true, + BlockKind::GreenConcrete => true, + BlockKind::RedConcrete => true, + BlockKind::BlackConcrete => true, + BlockKind::WhiteConcretePowder => true, + BlockKind::OrangeConcretePowder => true, + BlockKind::MagentaConcretePowder => true, + BlockKind::LightBlueConcretePowder => true, + BlockKind::YellowConcretePowder => true, + BlockKind::LimeConcretePowder => true, + BlockKind::PinkConcretePowder => true, + BlockKind::GrayConcretePowder => true, + BlockKind::LightGrayConcretePowder => true, + BlockKind::CyanConcretePowder => true, + BlockKind::PurpleConcretePowder => true, + BlockKind::BlueConcretePowder => true, + BlockKind::BrownConcretePowder => true, + BlockKind::GreenConcretePowder => true, + BlockKind::RedConcretePowder => true, + BlockKind::BlackConcretePowder => true, + BlockKind::Kelp => true, + BlockKind::KelpPlant => true, + BlockKind::DriedKelpBlock => true, + BlockKind::TurtleEgg => true, + BlockKind::DeadTubeCoralBlock => true, + BlockKind::DeadBrainCoralBlock => true, + BlockKind::DeadBubbleCoralBlock => true, + BlockKind::DeadFireCoralBlock => true, + BlockKind::DeadHornCoralBlock => true, + BlockKind::TubeCoralBlock => true, + BlockKind::BrainCoralBlock => true, + BlockKind::BubbleCoralBlock => true, + BlockKind::FireCoralBlock => true, + BlockKind::HornCoralBlock => true, + BlockKind::DeadTubeCoral => true, + BlockKind::DeadBrainCoral => true, + BlockKind::DeadBubbleCoral => true, + BlockKind::DeadFireCoral => true, + BlockKind::DeadHornCoral => true, + BlockKind::TubeCoral => true, + BlockKind::BrainCoral => true, + BlockKind::BubbleCoral => true, + BlockKind::FireCoral => true, + BlockKind::HornCoral => true, + BlockKind::DeadTubeCoralFan => true, + BlockKind::DeadBrainCoralFan => true, + BlockKind::DeadBubbleCoralFan => true, + BlockKind::DeadFireCoralFan => true, + BlockKind::DeadHornCoralFan => true, + BlockKind::TubeCoralFan => true, + BlockKind::BrainCoralFan => true, + BlockKind::BubbleCoralFan => true, + BlockKind::FireCoralFan => true, + BlockKind::HornCoralFan => true, + BlockKind::DeadTubeCoralWallFan => true, + BlockKind::DeadBrainCoralWallFan => true, + BlockKind::DeadBubbleCoralWallFan => true, + BlockKind::DeadFireCoralWallFan => true, + BlockKind::DeadHornCoralWallFan => true, + BlockKind::TubeCoralWallFan => true, + BlockKind::BrainCoralWallFan => true, + BlockKind::BubbleCoralWallFan => true, + BlockKind::FireCoralWallFan => true, + BlockKind::HornCoralWallFan => true, + BlockKind::SeaPickle => true, + BlockKind::BlueIce => true, + BlockKind::Conduit => true, + BlockKind::BambooSapling => true, + BlockKind::Bamboo => true, + BlockKind::PottedBamboo => true, + BlockKind::VoidAir => true, + BlockKind::CaveAir => true, + BlockKind::BubbleColumn => true, + BlockKind::PolishedGraniteStairs => true, + BlockKind::SmoothRedSandstoneStairs => true, + BlockKind::MossyStoneBrickStairs => true, + BlockKind::PolishedDioriteStairs => true, + BlockKind::MossyCobblestoneStairs => true, + BlockKind::EndStoneBrickStairs => true, + BlockKind::StoneStairs => true, + BlockKind::SmoothSandstoneStairs => true, + BlockKind::SmoothQuartzStairs => true, + BlockKind::GraniteStairs => true, + BlockKind::AndesiteStairs => true, + BlockKind::RedNetherBrickStairs => true, + BlockKind::PolishedAndesiteStairs => true, + BlockKind::DioriteStairs => true, + BlockKind::PolishedGraniteSlab => true, + BlockKind::SmoothRedSandstoneSlab => true, + BlockKind::MossyStoneBrickSlab => true, + BlockKind::PolishedDioriteSlab => true, + BlockKind::MossyCobblestoneSlab => true, + BlockKind::EndStoneBrickSlab => true, + BlockKind::SmoothSandstoneSlab => true, + BlockKind::SmoothQuartzSlab => true, + BlockKind::GraniteSlab => true, + BlockKind::AndesiteSlab => true, + BlockKind::RedNetherBrickSlab => true, + BlockKind::PolishedAndesiteSlab => true, + BlockKind::DioriteSlab => true, + BlockKind::BrickWall => true, + BlockKind::PrismarineWall => true, + BlockKind::RedSandstoneWall => true, + BlockKind::MossyStoneBrickWall => true, + BlockKind::GraniteWall => true, + BlockKind::StoneBrickWall => true, + BlockKind::NetherBrickWall => true, + BlockKind::AndesiteWall => true, + BlockKind::RedNetherBrickWall => true, + BlockKind::SandstoneWall => true, + BlockKind::EndStoneBrickWall => true, + BlockKind::DioriteWall => true, + BlockKind::Scaffolding => true, + BlockKind::Loom => true, + BlockKind::Barrel => true, + BlockKind::Smoker => true, + BlockKind::BlastFurnace => true, + BlockKind::CartographyTable => true, + BlockKind::FletchingTable => true, + BlockKind::Grindstone => true, + BlockKind::Lectern => true, + BlockKind::SmithingTable => true, + BlockKind::Stonecutter => true, + BlockKind::Bell => true, + BlockKind::Lantern => true, + BlockKind::SoulLantern => true, + BlockKind::Campfire => true, + BlockKind::SoulCampfire => true, + BlockKind::SweetBerryBush => true, + BlockKind::WarpedStem => true, + BlockKind::StrippedWarpedStem => true, + BlockKind::WarpedHyphae => true, + BlockKind::StrippedWarpedHyphae => true, + BlockKind::WarpedNylium => true, + BlockKind::WarpedFungus => true, + BlockKind::WarpedWartBlock => true, + BlockKind::WarpedRoots => true, + BlockKind::NetherSprouts => true, + BlockKind::CrimsonStem => true, + BlockKind::StrippedCrimsonStem => true, + BlockKind::CrimsonHyphae => true, + BlockKind::StrippedCrimsonHyphae => true, + BlockKind::CrimsonNylium => true, + BlockKind::CrimsonFungus => true, + BlockKind::Shroomlight => true, + BlockKind::WeepingVines => true, + BlockKind::WeepingVinesPlant => true, + BlockKind::TwistingVines => true, + BlockKind::TwistingVinesPlant => true, + BlockKind::CrimsonRoots => true, + BlockKind::CrimsonPlanks => true, + BlockKind::WarpedPlanks => true, + BlockKind::CrimsonSlab => true, + BlockKind::WarpedSlab => true, + BlockKind::CrimsonPressurePlate => true, + BlockKind::WarpedPressurePlate => true, + BlockKind::CrimsonFence => true, + BlockKind::WarpedFence => true, + BlockKind::CrimsonTrapdoor => true, + BlockKind::WarpedTrapdoor => true, + BlockKind::CrimsonFenceGate => true, + BlockKind::WarpedFenceGate => true, + BlockKind::CrimsonStairs => true, + BlockKind::WarpedStairs => true, + BlockKind::CrimsonButton => true, + BlockKind::WarpedButton => true, + BlockKind::CrimsonDoor => true, + BlockKind::WarpedDoor => true, + BlockKind::CrimsonSign => true, + BlockKind::WarpedSign => true, + BlockKind::CrimsonWallSign => true, + BlockKind::WarpedWallSign => true, + BlockKind::StructureBlock => false, + BlockKind::Jigsaw => false, + BlockKind::Composter => true, + BlockKind::Target => true, + BlockKind::BeeNest => true, + BlockKind::Beehive => true, + BlockKind::HoneyBlock => true, + BlockKind::HoneycombBlock => true, + BlockKind::NetheriteBlock => true, + BlockKind::AncientDebris => true, + BlockKind::CryingObsidian => true, + BlockKind::RespawnAnchor => true, + BlockKind::PottedCrimsonFungus => true, + BlockKind::PottedWarpedFungus => true, + BlockKind::PottedCrimsonRoots => true, + BlockKind::PottedWarpedRoots => true, + BlockKind::Lodestone => true, + BlockKind::Blackstone => true, + BlockKind::BlackstoneStairs => true, + BlockKind::BlackstoneWall => true, + BlockKind::BlackstoneSlab => true, + BlockKind::PolishedBlackstone => true, + BlockKind::PolishedBlackstoneBricks => true, + BlockKind::CrackedPolishedBlackstoneBricks => true, + BlockKind::ChiseledPolishedBlackstone => true, + BlockKind::PolishedBlackstoneBrickSlab => true, + BlockKind::PolishedBlackstoneBrickStairs => true, + BlockKind::PolishedBlackstoneBrickWall => true, + BlockKind::GildedBlackstone => true, + BlockKind::PolishedBlackstoneStairs => true, + BlockKind::PolishedBlackstoneSlab => true, + BlockKind::PolishedBlackstonePressurePlate => true, + BlockKind::PolishedBlackstoneButton => true, + BlockKind::PolishedBlackstoneWall => true, + BlockKind::ChiseledNetherBricks => true, + BlockKind::CrackedNetherBricks => true, + BlockKind::QuartzBricks => true, + BlockKind::Candle => true, + BlockKind::WhiteCandle => true, + BlockKind::OrangeCandle => true, + BlockKind::MagentaCandle => true, + BlockKind::LightBlueCandle => true, + BlockKind::YellowCandle => true, + BlockKind::LimeCandle => true, + BlockKind::PinkCandle => true, + BlockKind::GrayCandle => true, + BlockKind::LightGrayCandle => true, + BlockKind::CyanCandle => true, + BlockKind::PurpleCandle => true, + BlockKind::BlueCandle => true, + BlockKind::BrownCandle => true, + BlockKind::GreenCandle => true, + BlockKind::RedCandle => true, + BlockKind::BlackCandle => true, + BlockKind::CandleCake => true, + BlockKind::WhiteCandleCake => true, + BlockKind::OrangeCandleCake => true, + BlockKind::MagentaCandleCake => true, + BlockKind::LightBlueCandleCake => true, + BlockKind::YellowCandleCake => true, + BlockKind::LimeCandleCake => true, + BlockKind::PinkCandleCake => true, + BlockKind::GrayCandleCake => true, + BlockKind::LightGrayCandleCake => true, + BlockKind::CyanCandleCake => true, + BlockKind::PurpleCandleCake => true, + BlockKind::BlueCandleCake => true, + BlockKind::BrownCandleCake => true, + BlockKind::GreenCandleCake => true, + BlockKind::RedCandleCake => true, + BlockKind::BlackCandleCake => true, + BlockKind::AmethystBlock => true, + BlockKind::BuddingAmethyst => true, + BlockKind::AmethystCluster => true, + BlockKind::LargeAmethystBud => true, + BlockKind::MediumAmethystBud => true, + BlockKind::SmallAmethystBud => true, + BlockKind::Tuff => true, + BlockKind::Calcite => true, + BlockKind::TintedGlass => true, + BlockKind::PowderSnow => true, + BlockKind::SculkSensor => true, + BlockKind::OxidizedCopper => true, + BlockKind::WeatheredCopper => true, + BlockKind::ExposedCopper => true, + BlockKind::CopperBlock => true, + BlockKind::CopperOre => true, + BlockKind::DeepslateCopperOre => true, + BlockKind::OxidizedCutCopper => true, + BlockKind::WeatheredCutCopper => true, + BlockKind::ExposedCutCopper => true, + BlockKind::CutCopper => true, + BlockKind::OxidizedCutCopperStairs => true, + BlockKind::WeatheredCutCopperStairs => true, + BlockKind::ExposedCutCopperStairs => true, + BlockKind::CutCopperStairs => true, + BlockKind::OxidizedCutCopperSlab => true, + BlockKind::WeatheredCutCopperSlab => true, + BlockKind::ExposedCutCopperSlab => true, + BlockKind::CutCopperSlab => true, + BlockKind::WaxedCopperBlock => true, + BlockKind::WaxedWeatheredCopper => true, + BlockKind::WaxedExposedCopper => true, + BlockKind::WaxedOxidizedCopper => true, + BlockKind::WaxedOxidizedCutCopper => true, + BlockKind::WaxedWeatheredCutCopper => true, + BlockKind::WaxedExposedCutCopper => true, + BlockKind::WaxedCutCopper => true, + BlockKind::WaxedOxidizedCutCopperStairs => true, + BlockKind::WaxedWeatheredCutCopperStairs => true, + BlockKind::WaxedExposedCutCopperStairs => true, + BlockKind::WaxedCutCopperStairs => true, + BlockKind::WaxedOxidizedCutCopperSlab => true, + BlockKind::WaxedWeatheredCutCopperSlab => true, + BlockKind::WaxedExposedCutCopperSlab => true, + BlockKind::WaxedCutCopperSlab => true, + BlockKind::LightningRod => true, + BlockKind::PointedDripstone => true, + BlockKind::DripstoneBlock => true, + BlockKind::CaveVines => true, + BlockKind::CaveVinesPlant => true, + BlockKind::SporeBlossom => true, + BlockKind::Azalea => true, + BlockKind::FloweringAzalea => true, + BlockKind::MossCarpet => true, + BlockKind::MossBlock => true, + BlockKind::BigDripleaf => true, + BlockKind::BigDripleafStem => true, + BlockKind::SmallDripleaf => true, + BlockKind::HangingRoots => true, + BlockKind::RootedDirt => true, + BlockKind::Deepslate => true, + BlockKind::CobbledDeepslate => true, + BlockKind::CobbledDeepslateStairs => true, + BlockKind::CobbledDeepslateSlab => true, + BlockKind::CobbledDeepslateWall => true, + BlockKind::PolishedDeepslate => true, + BlockKind::PolishedDeepslateStairs => true, + BlockKind::PolishedDeepslateSlab => true, + BlockKind::PolishedDeepslateWall => true, + BlockKind::DeepslateTiles => true, + BlockKind::DeepslateTileStairs => true, + BlockKind::DeepslateTileSlab => true, + BlockKind::DeepslateTileWall => true, + BlockKind::DeepslateBricks => true, + BlockKind::DeepslateBrickStairs => true, + BlockKind::DeepslateBrickSlab => true, + BlockKind::DeepslateBrickWall => true, + BlockKind::ChiseledDeepslate => true, + BlockKind::CrackedDeepslateBricks => true, + BlockKind::CrackedDeepslateTiles => true, + BlockKind::InfestedDeepslate => true, + BlockKind::SmoothBasalt => true, + BlockKind::RawIronBlock => true, + BlockKind::RawCopperBlock => true, + BlockKind::RawGoldBlock => true, + BlockKind::PottedAzaleaBush => true, + BlockKind::PottedFloweringAzaleaBush => true, + } + } +} +impl BlockKind { + #[doc = "Returns the `transparent` property of this `BlockKind`."] + #[inline] + pub fn transparent(&self) -> bool { + match self { + BlockKind::Air => true, + BlockKind::Stone => false, + BlockKind::Granite => false, + BlockKind::PolishedGranite => false, + BlockKind::Diorite => false, + BlockKind::PolishedDiorite => false, + BlockKind::Andesite => false, + BlockKind::PolishedAndesite => false, + BlockKind::GrassBlock => false, + BlockKind::Dirt => false, + BlockKind::CoarseDirt => false, + BlockKind::Podzol => false, + BlockKind::Cobblestone => false, + BlockKind::OakPlanks => false, + BlockKind::SprucePlanks => false, + BlockKind::BirchPlanks => false, + BlockKind::JunglePlanks => false, + BlockKind::AcaciaPlanks => false, + BlockKind::DarkOakPlanks => false, + BlockKind::OakSapling => true, + BlockKind::SpruceSapling => true, + BlockKind::BirchSapling => true, + BlockKind::JungleSapling => true, + BlockKind::AcaciaSapling => true, + BlockKind::DarkOakSapling => true, + BlockKind::Bedrock => false, + BlockKind::Water => true, + BlockKind::Lava => true, + BlockKind::Sand => false, + BlockKind::RedSand => false, + BlockKind::Gravel => false, + BlockKind::GoldOre => false, + BlockKind::DeepslateGoldOre => false, + BlockKind::IronOre => false, + BlockKind::DeepslateIronOre => false, + BlockKind::CoalOre => false, + BlockKind::DeepslateCoalOre => false, + BlockKind::NetherGoldOre => false, + BlockKind::OakLog => false, + BlockKind::SpruceLog => false, + BlockKind::BirchLog => false, + BlockKind::JungleLog => false, + BlockKind::AcaciaLog => false, + BlockKind::DarkOakLog => false, + BlockKind::StrippedSpruceLog => false, + BlockKind::StrippedBirchLog => false, + BlockKind::StrippedJungleLog => false, + BlockKind::StrippedAcaciaLog => false, + BlockKind::StrippedDarkOakLog => false, + BlockKind::StrippedOakLog => false, + BlockKind::OakWood => false, + BlockKind::SpruceWood => false, + BlockKind::BirchWood => false, + BlockKind::JungleWood => false, + BlockKind::AcaciaWood => false, + BlockKind::DarkOakWood => false, + BlockKind::StrippedOakWood => false, + BlockKind::StrippedSpruceWood => false, + BlockKind::StrippedBirchWood => false, + BlockKind::StrippedJungleWood => false, + BlockKind::StrippedAcaciaWood => false, + BlockKind::StrippedDarkOakWood => false, + BlockKind::OakLeaves => true, + BlockKind::SpruceLeaves => true, + BlockKind::BirchLeaves => true, + BlockKind::JungleLeaves => true, + BlockKind::AcaciaLeaves => true, + BlockKind::DarkOakLeaves => true, + BlockKind::AzaleaLeaves => true, + BlockKind::FloweringAzaleaLeaves => true, + BlockKind::Sponge => false, + BlockKind::WetSponge => false, + BlockKind::Glass => true, + BlockKind::LapisOre => false, + BlockKind::DeepslateLapisOre => false, + BlockKind::LapisBlock => false, + BlockKind::Dispenser => false, + BlockKind::Sandstone => false, + BlockKind::ChiseledSandstone => false, + BlockKind::CutSandstone => false, + BlockKind::NoteBlock => false, + BlockKind::WhiteBed => true, + BlockKind::OrangeBed => true, + BlockKind::MagentaBed => true, + BlockKind::LightBlueBed => true, + BlockKind::YellowBed => true, + BlockKind::LimeBed => true, + BlockKind::PinkBed => true, + BlockKind::GrayBed => true, + BlockKind::LightGrayBed => true, + BlockKind::CyanBed => true, + BlockKind::PurpleBed => true, + BlockKind::BlueBed => true, + BlockKind::BrownBed => true, + BlockKind::GreenBed => true, + BlockKind::RedBed => true, + BlockKind::BlackBed => true, + BlockKind::PoweredRail => true, + BlockKind::DetectorRail => true, + BlockKind::StickyPiston => false, + BlockKind::Cobweb => true, + BlockKind::Grass => true, + BlockKind::Fern => true, + BlockKind::DeadBush => true, + BlockKind::Seagrass => true, + BlockKind::TallSeagrass => true, + BlockKind::Piston => false, + BlockKind::PistonHead => false, + BlockKind::WhiteWool => false, + BlockKind::OrangeWool => false, + BlockKind::MagentaWool => false, + BlockKind::LightBlueWool => false, + BlockKind::YellowWool => false, + BlockKind::LimeWool => false, + BlockKind::PinkWool => false, + BlockKind::GrayWool => false, + BlockKind::LightGrayWool => false, + BlockKind::CyanWool => false, + BlockKind::PurpleWool => false, + BlockKind::BlueWool => false, + BlockKind::BrownWool => false, + BlockKind::GreenWool => false, + BlockKind::RedWool => false, + BlockKind::BlackWool => false, + BlockKind::MovingPiston => true, + BlockKind::Dandelion => true, + BlockKind::Poppy => true, + BlockKind::BlueOrchid => true, + BlockKind::Allium => true, + BlockKind::AzureBluet => true, + BlockKind::RedTulip => true, + BlockKind::OrangeTulip => true, + BlockKind::WhiteTulip => true, + BlockKind::PinkTulip => true, + BlockKind::OxeyeDaisy => true, + BlockKind::Cornflower => true, + BlockKind::WitherRose => true, + BlockKind::LilyOfTheValley => true, + BlockKind::BrownMushroom => true, + BlockKind::RedMushroom => true, + BlockKind::GoldBlock => false, + BlockKind::IronBlock => false, + BlockKind::Bricks => false, + BlockKind::Tnt => false, + BlockKind::Bookshelf => false, + BlockKind::MossyCobblestone => false, + BlockKind::Obsidian => false, + BlockKind::Torch => true, + BlockKind::WallTorch => true, + BlockKind::Fire => true, + BlockKind::SoulFire => true, + BlockKind::Spawner => true, + BlockKind::OakStairs => false, + BlockKind::Chest => false, + BlockKind::RedstoneWire => true, + BlockKind::DiamondOre => false, + BlockKind::DeepslateDiamondOre => false, + BlockKind::DiamondBlock => false, + BlockKind::CraftingTable => false, + BlockKind::Wheat => true, + BlockKind::Farmland => false, + BlockKind::Furnace => false, + BlockKind::OakSign => true, + BlockKind::SpruceSign => true, + BlockKind::BirchSign => true, + BlockKind::AcaciaSign => true, + BlockKind::JungleSign => true, + BlockKind::DarkOakSign => true, + BlockKind::OakDoor => true, + BlockKind::Ladder => true, + BlockKind::Rail => true, + BlockKind::CobblestoneStairs => false, + BlockKind::OakWallSign => true, + BlockKind::SpruceWallSign => true, + BlockKind::BirchWallSign => true, + BlockKind::AcaciaWallSign => true, + BlockKind::JungleWallSign => true, + BlockKind::DarkOakWallSign => true, + BlockKind::Lever => true, + BlockKind::StonePressurePlate => true, + BlockKind::IronDoor => true, + BlockKind::OakPressurePlate => true, + BlockKind::SprucePressurePlate => true, + BlockKind::BirchPressurePlate => true, + BlockKind::JunglePressurePlate => true, + BlockKind::AcaciaPressurePlate => true, + BlockKind::DarkOakPressurePlate => true, + BlockKind::RedstoneOre => false, + BlockKind::DeepslateRedstoneOre => false, + BlockKind::RedstoneTorch => true, + BlockKind::RedstoneWallTorch => true, + BlockKind::StoneButton => true, + BlockKind::Snow => false, + BlockKind::Ice => true, + BlockKind::SnowBlock => false, + BlockKind::Cactus => false, + BlockKind::Clay => false, + BlockKind::SugarCane => true, + BlockKind::Jukebox => false, + BlockKind::OakFence => false, + BlockKind::Pumpkin => false, + BlockKind::Netherrack => false, + BlockKind::SoulSand => false, + BlockKind::SoulSoil => false, + BlockKind::Basalt => false, + BlockKind::PolishedBasalt => false, + BlockKind::SoulTorch => true, + BlockKind::SoulWallTorch => true, + BlockKind::Glowstone => false, + BlockKind::NetherPortal => true, + BlockKind::CarvedPumpkin => false, + BlockKind::JackOLantern => false, + BlockKind::Cake => false, + BlockKind::Repeater => false, + BlockKind::WhiteStainedGlass => true, + BlockKind::OrangeStainedGlass => true, + BlockKind::MagentaStainedGlass => true, + BlockKind::LightBlueStainedGlass => true, + BlockKind::YellowStainedGlass => true, + BlockKind::LimeStainedGlass => true, + BlockKind::PinkStainedGlass => true, + BlockKind::GrayStainedGlass => true, + BlockKind::LightGrayStainedGlass => true, + BlockKind::CyanStainedGlass => true, + BlockKind::PurpleStainedGlass => true, + BlockKind::BlueStainedGlass => true, + BlockKind::BrownStainedGlass => true, + BlockKind::GreenStainedGlass => true, + BlockKind::RedStainedGlass => true, + BlockKind::BlackStainedGlass => true, + BlockKind::OakTrapdoor => true, + BlockKind::SpruceTrapdoor => true, + BlockKind::BirchTrapdoor => true, + BlockKind::JungleTrapdoor => true, + BlockKind::AcaciaTrapdoor => true, + BlockKind::DarkOakTrapdoor => true, + BlockKind::StoneBricks => false, + BlockKind::MossyStoneBricks => false, + BlockKind::CrackedStoneBricks => false, + BlockKind::ChiseledStoneBricks => false, + BlockKind::InfestedStone => false, + BlockKind::InfestedCobblestone => false, + BlockKind::InfestedStoneBricks => false, + BlockKind::InfestedMossyStoneBricks => false, + BlockKind::InfestedCrackedStoneBricks => false, + BlockKind::InfestedChiseledStoneBricks => false, + BlockKind::BrownMushroomBlock => false, + BlockKind::RedMushroomBlock => false, + BlockKind::MushroomStem => false, + BlockKind::IronBars => true, + BlockKind::Chain => true, + BlockKind::GlassPane => true, + BlockKind::Melon => false, + BlockKind::AttachedPumpkinStem => true, + BlockKind::AttachedMelonStem => true, + BlockKind::PumpkinStem => true, + BlockKind::MelonStem => true, + BlockKind::Vine => true, + BlockKind::GlowLichen => true, + BlockKind::OakFenceGate => false, + BlockKind::BrickStairs => false, + BlockKind::StoneBrickStairs => false, + BlockKind::Mycelium => false, + BlockKind::LilyPad => true, + BlockKind::NetherBricks => false, + BlockKind::NetherBrickFence => false, + BlockKind::NetherBrickStairs => false, + BlockKind::NetherWart => true, + BlockKind::EnchantingTable => false, + BlockKind::BrewingStand => true, + BlockKind::Cauldron => true, + BlockKind::WaterCauldron => true, + BlockKind::LavaCauldron => true, + BlockKind::PowderSnowCauldron => true, + BlockKind::EndPortal => true, + BlockKind::EndPortalFrame => false, + BlockKind::EndStone => false, + BlockKind::DragonEgg => true, + BlockKind::RedstoneLamp => false, + BlockKind::Cocoa => true, + BlockKind::SandstoneStairs => false, + BlockKind::EmeraldOre => false, + BlockKind::DeepslateEmeraldOre => false, + BlockKind::EnderChest => false, + BlockKind::TripwireHook => true, + BlockKind::Tripwire => true, + BlockKind::EmeraldBlock => false, + BlockKind::SpruceStairs => false, + BlockKind::BirchStairs => false, + BlockKind::JungleStairs => false, + BlockKind::CommandBlock => false, + BlockKind::Beacon => true, + BlockKind::CobblestoneWall => false, + BlockKind::MossyCobblestoneWall => false, + BlockKind::FlowerPot => true, + BlockKind::PottedOakSapling => true, + BlockKind::PottedSpruceSapling => true, + BlockKind::PottedBirchSapling => true, + BlockKind::PottedJungleSapling => true, + BlockKind::PottedAcaciaSapling => true, + BlockKind::PottedDarkOakSapling => true, + BlockKind::PottedFern => true, + BlockKind::PottedDandelion => true, + BlockKind::PottedPoppy => true, + BlockKind::PottedBlueOrchid => true, + BlockKind::PottedAllium => true, + BlockKind::PottedAzureBluet => true, + BlockKind::PottedRedTulip => true, + BlockKind::PottedOrangeTulip => true, + BlockKind::PottedWhiteTulip => true, + BlockKind::PottedPinkTulip => true, + BlockKind::PottedOxeyeDaisy => true, + BlockKind::PottedCornflower => true, + BlockKind::PottedLilyOfTheValley => true, + BlockKind::PottedWitherRose => true, + BlockKind::PottedRedMushroom => true, + BlockKind::PottedBrownMushroom => true, + BlockKind::PottedDeadBush => true, + BlockKind::PottedCactus => true, + BlockKind::Carrots => true, + BlockKind::Potatoes => true, + BlockKind::OakButton => true, + BlockKind::SpruceButton => true, + BlockKind::BirchButton => true, + BlockKind::JungleButton => true, + BlockKind::AcaciaButton => true, + BlockKind::DarkOakButton => true, + BlockKind::SkeletonSkull => false, + BlockKind::SkeletonWallSkull => false, + BlockKind::WitherSkeletonSkull => false, + BlockKind::WitherSkeletonWallSkull => false, + BlockKind::ZombieHead => false, + BlockKind::ZombieWallHead => false, + BlockKind::PlayerHead => false, + BlockKind::PlayerWallHead => false, + BlockKind::CreeperHead => false, + BlockKind::CreeperWallHead => false, + BlockKind::DragonHead => false, + BlockKind::DragonWallHead => false, + BlockKind::Anvil => false, + BlockKind::ChippedAnvil => false, + BlockKind::DamagedAnvil => false, + BlockKind::TrappedChest => false, + BlockKind::LightWeightedPressurePlate => true, + BlockKind::HeavyWeightedPressurePlate => true, + BlockKind::Comparator => false, + BlockKind::DaylightDetector => false, + BlockKind::RedstoneBlock => false, + BlockKind::NetherQuartzOre => false, + BlockKind::Hopper => true, + BlockKind::QuartzBlock => false, + BlockKind::ChiseledQuartzBlock => false, + BlockKind::QuartzPillar => false, + BlockKind::QuartzStairs => false, + BlockKind::ActivatorRail => true, + BlockKind::Dropper => false, + BlockKind::WhiteTerracotta => false, + BlockKind::OrangeTerracotta => false, + BlockKind::MagentaTerracotta => false, + BlockKind::LightBlueTerracotta => false, + BlockKind::YellowTerracotta => false, + BlockKind::LimeTerracotta => false, + BlockKind::PinkTerracotta => false, + BlockKind::GrayTerracotta => false, + BlockKind::LightGrayTerracotta => false, + BlockKind::CyanTerracotta => false, + BlockKind::PurpleTerracotta => false, + BlockKind::BlueTerracotta => false, + BlockKind::BrownTerracotta => false, + BlockKind::GreenTerracotta => false, + BlockKind::RedTerracotta => false, + BlockKind::BlackTerracotta => false, + BlockKind::WhiteStainedGlassPane => true, + BlockKind::OrangeStainedGlassPane => true, + BlockKind::MagentaStainedGlassPane => true, + BlockKind::LightBlueStainedGlassPane => true, + BlockKind::YellowStainedGlassPane => true, + BlockKind::LimeStainedGlassPane => true, + BlockKind::PinkStainedGlassPane => true, + BlockKind::GrayStainedGlassPane => true, + BlockKind::LightGrayStainedGlassPane => true, + BlockKind::CyanStainedGlassPane => true, + BlockKind::PurpleStainedGlassPane => true, + BlockKind::BlueStainedGlassPane => true, + BlockKind::BrownStainedGlassPane => true, + BlockKind::GreenStainedGlassPane => true, + BlockKind::RedStainedGlassPane => true, + BlockKind::BlackStainedGlassPane => true, + BlockKind::AcaciaStairs => false, + BlockKind::DarkOakStairs => false, + BlockKind::SlimeBlock => true, + BlockKind::Barrier => true, + BlockKind::Light => true, + BlockKind::IronTrapdoor => true, + BlockKind::Prismarine => false, + BlockKind::PrismarineBricks => false, + BlockKind::DarkPrismarine => false, + BlockKind::PrismarineStairs => false, + BlockKind::PrismarineBrickStairs => false, + BlockKind::DarkPrismarineStairs => false, + BlockKind::PrismarineSlab => false, + BlockKind::PrismarineBrickSlab => false, + BlockKind::DarkPrismarineSlab => false, + BlockKind::SeaLantern => false, + BlockKind::HayBlock => false, + BlockKind::WhiteCarpet => false, + BlockKind::OrangeCarpet => false, + BlockKind::MagentaCarpet => false, + BlockKind::LightBlueCarpet => false, + BlockKind::YellowCarpet => false, + BlockKind::LimeCarpet => false, + BlockKind::PinkCarpet => false, + BlockKind::GrayCarpet => false, + BlockKind::LightGrayCarpet => false, + BlockKind::CyanCarpet => false, + BlockKind::PurpleCarpet => false, + BlockKind::BlueCarpet => false, + BlockKind::BrownCarpet => false, + BlockKind::GreenCarpet => false, + BlockKind::RedCarpet => false, + BlockKind::BlackCarpet => false, + BlockKind::Terracotta => false, + BlockKind::CoalBlock => false, + BlockKind::PackedIce => false, + BlockKind::Sunflower => true, + BlockKind::Lilac => true, + BlockKind::RoseBush => true, + BlockKind::Peony => true, + BlockKind::TallGrass => true, + BlockKind::LargeFern => true, + BlockKind::WhiteBanner => true, + BlockKind::OrangeBanner => true, + BlockKind::MagentaBanner => true, + BlockKind::LightBlueBanner => true, + BlockKind::YellowBanner => true, + BlockKind::LimeBanner => true, + BlockKind::PinkBanner => true, + BlockKind::GrayBanner => true, + BlockKind::LightGrayBanner => true, + BlockKind::CyanBanner => true, + BlockKind::PurpleBanner => true, + BlockKind::BlueBanner => true, + BlockKind::BrownBanner => true, + BlockKind::GreenBanner => true, + BlockKind::RedBanner => true, + BlockKind::BlackBanner => true, + BlockKind::WhiteWallBanner => true, + BlockKind::OrangeWallBanner => true, + BlockKind::MagentaWallBanner => true, + BlockKind::LightBlueWallBanner => true, + BlockKind::YellowWallBanner => true, + BlockKind::LimeWallBanner => true, + BlockKind::PinkWallBanner => true, + BlockKind::GrayWallBanner => true, + BlockKind::LightGrayWallBanner => true, + BlockKind::CyanWallBanner => true, + BlockKind::PurpleWallBanner => true, + BlockKind::BlueWallBanner => true, + BlockKind::BrownWallBanner => true, + BlockKind::GreenWallBanner => true, + BlockKind::RedWallBanner => true, + BlockKind::BlackWallBanner => true, + BlockKind::RedSandstone => false, + BlockKind::ChiseledRedSandstone => false, + BlockKind::CutRedSandstone => false, + BlockKind::RedSandstoneStairs => false, + BlockKind::OakSlab => false, + BlockKind::SpruceSlab => false, + BlockKind::BirchSlab => false, + BlockKind::JungleSlab => false, + BlockKind::AcaciaSlab => false, + BlockKind::DarkOakSlab => false, + BlockKind::StoneSlab => false, + BlockKind::SmoothStoneSlab => false, + BlockKind::SandstoneSlab => false, + BlockKind::CutSandstoneSlab => false, + BlockKind::PetrifiedOakSlab => false, + BlockKind::CobblestoneSlab => false, + BlockKind::BrickSlab => false, + BlockKind::StoneBrickSlab => false, + BlockKind::NetherBrickSlab => false, + BlockKind::QuartzSlab => false, + BlockKind::RedSandstoneSlab => false, + BlockKind::CutRedSandstoneSlab => false, + BlockKind::PurpurSlab => false, + BlockKind::SmoothStone => false, + BlockKind::SmoothSandstone => false, + BlockKind::SmoothQuartz => false, + BlockKind::SmoothRedSandstone => false, + BlockKind::SpruceFenceGate => false, + BlockKind::BirchFenceGate => false, + BlockKind::JungleFenceGate => false, + BlockKind::AcaciaFenceGate => false, + BlockKind::DarkOakFenceGate => false, + BlockKind::SpruceFence => false, + BlockKind::BirchFence => false, + BlockKind::JungleFence => false, + BlockKind::AcaciaFence => false, + BlockKind::DarkOakFence => false, + BlockKind::SpruceDoor => true, + BlockKind::BirchDoor => true, + BlockKind::JungleDoor => true, + BlockKind::AcaciaDoor => true, + BlockKind::DarkOakDoor => true, + BlockKind::EndRod => true, + BlockKind::ChorusPlant => true, + BlockKind::ChorusFlower => true, + BlockKind::PurpurBlock => false, + BlockKind::PurpurPillar => false, + BlockKind::PurpurStairs => false, + BlockKind::EndStoneBricks => false, + BlockKind::Beetroots => true, + BlockKind::DirtPath => false, + BlockKind::EndGateway => true, + BlockKind::RepeatingCommandBlock => false, + BlockKind::ChainCommandBlock => false, + BlockKind::FrostedIce => true, + BlockKind::MagmaBlock => false, + BlockKind::NetherWartBlock => false, + BlockKind::RedNetherBricks => false, + BlockKind::BoneBlock => false, + BlockKind::StructureVoid => true, + BlockKind::Observer => false, + BlockKind::ShulkerBox => true, + BlockKind::WhiteShulkerBox => true, + BlockKind::OrangeShulkerBox => true, + BlockKind::MagentaShulkerBox => true, + BlockKind::LightBlueShulkerBox => true, + BlockKind::YellowShulkerBox => true, + BlockKind::LimeShulkerBox => true, + BlockKind::PinkShulkerBox => true, + BlockKind::GrayShulkerBox => true, + BlockKind::LightGrayShulkerBox => true, + BlockKind::CyanShulkerBox => true, + BlockKind::PurpleShulkerBox => true, + BlockKind::BlueShulkerBox => true, + BlockKind::BrownShulkerBox => true, + BlockKind::GreenShulkerBox => true, + BlockKind::RedShulkerBox => true, + BlockKind::BlackShulkerBox => true, + BlockKind::WhiteGlazedTerracotta => false, + BlockKind::OrangeGlazedTerracotta => false, + BlockKind::MagentaGlazedTerracotta => false, + BlockKind::LightBlueGlazedTerracotta => false, + BlockKind::YellowGlazedTerracotta => false, + BlockKind::LimeGlazedTerracotta => false, + BlockKind::PinkGlazedTerracotta => false, + BlockKind::GrayGlazedTerracotta => false, + BlockKind::LightGrayGlazedTerracotta => false, + BlockKind::CyanGlazedTerracotta => false, + BlockKind::PurpleGlazedTerracotta => false, + BlockKind::BlueGlazedTerracotta => false, + BlockKind::BrownGlazedTerracotta => false, + BlockKind::GreenGlazedTerracotta => false, + BlockKind::RedGlazedTerracotta => false, + BlockKind::BlackGlazedTerracotta => false, + BlockKind::WhiteConcrete => false, + BlockKind::OrangeConcrete => false, + BlockKind::MagentaConcrete => false, + BlockKind::LightBlueConcrete => false, + BlockKind::YellowConcrete => false, + BlockKind::LimeConcrete => false, + BlockKind::PinkConcrete => false, + BlockKind::GrayConcrete => false, + BlockKind::LightGrayConcrete => false, + BlockKind::CyanConcrete => false, + BlockKind::PurpleConcrete => false, + BlockKind::BlueConcrete => false, + BlockKind::BrownConcrete => false, + BlockKind::GreenConcrete => false, + BlockKind::RedConcrete => false, + BlockKind::BlackConcrete => false, + BlockKind::WhiteConcretePowder => false, + BlockKind::OrangeConcretePowder => false, + BlockKind::MagentaConcretePowder => false, + BlockKind::LightBlueConcretePowder => false, + BlockKind::YellowConcretePowder => false, + BlockKind::LimeConcretePowder => false, + BlockKind::PinkConcretePowder => false, + BlockKind::GrayConcretePowder => false, + BlockKind::LightGrayConcretePowder => false, + BlockKind::CyanConcretePowder => false, + BlockKind::PurpleConcretePowder => false, + BlockKind::BlueConcretePowder => false, + BlockKind::BrownConcretePowder => false, + BlockKind::GreenConcretePowder => false, + BlockKind::RedConcretePowder => false, + BlockKind::BlackConcretePowder => false, + BlockKind::Kelp => true, + BlockKind::KelpPlant => true, + BlockKind::DriedKelpBlock => false, + BlockKind::TurtleEgg => true, + BlockKind::DeadTubeCoralBlock => false, + BlockKind::DeadBrainCoralBlock => false, + BlockKind::DeadBubbleCoralBlock => false, + BlockKind::DeadFireCoralBlock => false, + BlockKind::DeadHornCoralBlock => false, + BlockKind::TubeCoralBlock => false, + BlockKind::BrainCoralBlock => false, + BlockKind::BubbleCoralBlock => false, + BlockKind::FireCoralBlock => false, + BlockKind::HornCoralBlock => false, + BlockKind::DeadTubeCoral => true, + BlockKind::DeadBrainCoral => true, + BlockKind::DeadBubbleCoral => true, + BlockKind::DeadFireCoral => true, + BlockKind::DeadHornCoral => true, + BlockKind::TubeCoral => true, + BlockKind::BrainCoral => true, + BlockKind::BubbleCoral => true, + BlockKind::FireCoral => true, + BlockKind::HornCoral => true, + BlockKind::DeadTubeCoralFan => true, + BlockKind::DeadBrainCoralFan => true, + BlockKind::DeadBubbleCoralFan => true, + BlockKind::DeadFireCoralFan => true, + BlockKind::DeadHornCoralFan => true, + BlockKind::TubeCoralFan => true, + BlockKind::BrainCoralFan => true, + BlockKind::BubbleCoralFan => true, + BlockKind::FireCoralFan => true, + BlockKind::HornCoralFan => true, + BlockKind::DeadTubeCoralWallFan => true, + BlockKind::DeadBrainCoralWallFan => true, + BlockKind::DeadBubbleCoralWallFan => true, + BlockKind::DeadFireCoralWallFan => true, + BlockKind::DeadHornCoralWallFan => true, + BlockKind::TubeCoralWallFan => true, + BlockKind::BrainCoralWallFan => true, + BlockKind::BubbleCoralWallFan => true, + BlockKind::FireCoralWallFan => true, + BlockKind::HornCoralWallFan => true, + BlockKind::SeaPickle => true, + BlockKind::BlueIce => false, + BlockKind::Conduit => true, + BlockKind::BambooSapling => true, + BlockKind::Bamboo => true, + BlockKind::PottedBamboo => true, + BlockKind::VoidAir => true, + BlockKind::CaveAir => true, + BlockKind::BubbleColumn => true, + BlockKind::PolishedGraniteStairs => false, + BlockKind::SmoothRedSandstoneStairs => false, + BlockKind::MossyStoneBrickStairs => false, + BlockKind::PolishedDioriteStairs => false, + BlockKind::MossyCobblestoneStairs => false, + BlockKind::EndStoneBrickStairs => false, + BlockKind::StoneStairs => false, + BlockKind::SmoothSandstoneStairs => false, + BlockKind::SmoothQuartzStairs => false, + BlockKind::GraniteStairs => false, + BlockKind::AndesiteStairs => false, + BlockKind::RedNetherBrickStairs => false, + BlockKind::PolishedAndesiteStairs => false, + BlockKind::DioriteStairs => false, + BlockKind::PolishedGraniteSlab => false, + BlockKind::SmoothRedSandstoneSlab => false, + BlockKind::MossyStoneBrickSlab => false, + BlockKind::PolishedDioriteSlab => false, + BlockKind::MossyCobblestoneSlab => false, + BlockKind::EndStoneBrickSlab => false, + BlockKind::SmoothSandstoneSlab => false, + BlockKind::SmoothQuartzSlab => false, + BlockKind::GraniteSlab => false, + BlockKind::AndesiteSlab => false, + BlockKind::RedNetherBrickSlab => false, + BlockKind::PolishedAndesiteSlab => false, + BlockKind::DioriteSlab => false, + BlockKind::BrickWall => false, + BlockKind::PrismarineWall => false, + BlockKind::RedSandstoneWall => false, + BlockKind::MossyStoneBrickWall => false, + BlockKind::GraniteWall => false, + BlockKind::StoneBrickWall => false, + BlockKind::NetherBrickWall => false, + BlockKind::AndesiteWall => false, + BlockKind::RedNetherBrickWall => false, + BlockKind::SandstoneWall => false, + BlockKind::EndStoneBrickWall => false, + BlockKind::DioriteWall => false, + BlockKind::Scaffolding => true, + BlockKind::Loom => false, + BlockKind::Barrel => false, + BlockKind::Smoker => false, + BlockKind::BlastFurnace => false, + BlockKind::CartographyTable => false, + BlockKind::FletchingTable => false, + BlockKind::Grindstone => false, + BlockKind::Lectern => false, + BlockKind::SmithingTable => false, + BlockKind::Stonecutter => false, + BlockKind::Bell => false, + BlockKind::Lantern => true, + BlockKind::SoulLantern => true, + BlockKind::Campfire => true, + BlockKind::SoulCampfire => true, + BlockKind::SweetBerryBush => true, + BlockKind::WarpedStem => false, + BlockKind::StrippedWarpedStem => false, + BlockKind::WarpedHyphae => false, + BlockKind::StrippedWarpedHyphae => false, + BlockKind::WarpedNylium => false, + BlockKind::WarpedFungus => true, + BlockKind::WarpedWartBlock => false, + BlockKind::WarpedRoots => true, + BlockKind::NetherSprouts => true, + BlockKind::CrimsonStem => false, + BlockKind::StrippedCrimsonStem => false, + BlockKind::CrimsonHyphae => false, + BlockKind::StrippedCrimsonHyphae => false, + BlockKind::CrimsonNylium => false, + BlockKind::CrimsonFungus => true, + BlockKind::Shroomlight => false, + BlockKind::WeepingVines => true, + BlockKind::WeepingVinesPlant => true, + BlockKind::TwistingVines => true, + BlockKind::TwistingVinesPlant => true, + BlockKind::CrimsonRoots => true, + BlockKind::CrimsonPlanks => false, + BlockKind::WarpedPlanks => false, + BlockKind::CrimsonSlab => false, + BlockKind::WarpedSlab => false, + BlockKind::CrimsonPressurePlate => true, + BlockKind::WarpedPressurePlate => true, + BlockKind::CrimsonFence => false, + BlockKind::WarpedFence => false, + BlockKind::CrimsonTrapdoor => true, + BlockKind::WarpedTrapdoor => true, + BlockKind::CrimsonFenceGate => false, + BlockKind::WarpedFenceGate => false, + BlockKind::CrimsonStairs => false, + BlockKind::WarpedStairs => false, + BlockKind::CrimsonButton => true, + BlockKind::WarpedButton => true, + BlockKind::CrimsonDoor => true, + BlockKind::WarpedDoor => true, + BlockKind::CrimsonSign => true, + BlockKind::WarpedSign => true, + BlockKind::CrimsonWallSign => true, + BlockKind::WarpedWallSign => true, + BlockKind::StructureBlock => false, + BlockKind::Jigsaw => false, + BlockKind::Composter => false, + BlockKind::Target => false, + BlockKind::BeeNest => false, + BlockKind::Beehive => false, + BlockKind::HoneyBlock => true, + BlockKind::HoneycombBlock => false, + BlockKind::NetheriteBlock => false, + BlockKind::AncientDebris => false, + BlockKind::CryingObsidian => false, + BlockKind::RespawnAnchor => false, + BlockKind::PottedCrimsonFungus => true, + BlockKind::PottedWarpedFungus => true, + BlockKind::PottedCrimsonRoots => true, + BlockKind::PottedWarpedRoots => true, + BlockKind::Lodestone => false, + BlockKind::Blackstone => false, + BlockKind::BlackstoneStairs => false, + BlockKind::BlackstoneWall => false, + BlockKind::BlackstoneSlab => false, + BlockKind::PolishedBlackstone => false, + BlockKind::PolishedBlackstoneBricks => false, + BlockKind::CrackedPolishedBlackstoneBricks => false, + BlockKind::ChiseledPolishedBlackstone => false, + BlockKind::PolishedBlackstoneBrickSlab => false, + BlockKind::PolishedBlackstoneBrickStairs => false, + BlockKind::PolishedBlackstoneBrickWall => false, + BlockKind::GildedBlackstone => false, + BlockKind::PolishedBlackstoneStairs => false, + BlockKind::PolishedBlackstoneSlab => false, + BlockKind::PolishedBlackstonePressurePlate => true, + BlockKind::PolishedBlackstoneButton => true, + BlockKind::PolishedBlackstoneWall => false, + BlockKind::ChiseledNetherBricks => false, + BlockKind::CrackedNetherBricks => false, + BlockKind::QuartzBricks => false, + BlockKind::Candle => true, + BlockKind::WhiteCandle => true, + BlockKind::OrangeCandle => true, + BlockKind::MagentaCandle => true, + BlockKind::LightBlueCandle => true, + BlockKind::YellowCandle => true, + BlockKind::LimeCandle => true, + BlockKind::PinkCandle => true, + BlockKind::GrayCandle => true, + BlockKind::LightGrayCandle => true, + BlockKind::CyanCandle => true, + BlockKind::PurpleCandle => true, + BlockKind::BlueCandle => true, + BlockKind::BrownCandle => true, + BlockKind::GreenCandle => true, + BlockKind::RedCandle => true, + BlockKind::BlackCandle => true, + BlockKind::CandleCake => false, + BlockKind::WhiteCandleCake => false, + BlockKind::OrangeCandleCake => false, + BlockKind::MagentaCandleCake => false, + BlockKind::LightBlueCandleCake => false, + BlockKind::YellowCandleCake => false, + BlockKind::LimeCandleCake => false, + BlockKind::PinkCandleCake => false, + BlockKind::GrayCandleCake => false, + BlockKind::LightGrayCandleCake => false, + BlockKind::CyanCandleCake => false, + BlockKind::PurpleCandleCake => false, + BlockKind::BlueCandleCake => false, + BlockKind::BrownCandleCake => false, + BlockKind::GreenCandleCake => false, + BlockKind::RedCandleCake => false, + BlockKind::BlackCandleCake => false, + BlockKind::AmethystBlock => false, + BlockKind::BuddingAmethyst => false, + BlockKind::AmethystCluster => true, + BlockKind::LargeAmethystBud => true, + BlockKind::MediumAmethystBud => true, + BlockKind::SmallAmethystBud => true, + BlockKind::Tuff => false, + BlockKind::Calcite => false, + BlockKind::TintedGlass => true, + BlockKind::PowderSnow => false, + BlockKind::SculkSensor => false, + BlockKind::OxidizedCopper => false, + BlockKind::WeatheredCopper => false, + BlockKind::ExposedCopper => false, + BlockKind::CopperBlock => false, + BlockKind::CopperOre => false, + BlockKind::DeepslateCopperOre => false, + BlockKind::OxidizedCutCopper => false, + BlockKind::WeatheredCutCopper => false, + BlockKind::ExposedCutCopper => false, + BlockKind::CutCopper => false, + BlockKind::OxidizedCutCopperStairs => false, + BlockKind::WeatheredCutCopperStairs => false, + BlockKind::ExposedCutCopperStairs => false, + BlockKind::CutCopperStairs => false, + BlockKind::OxidizedCutCopperSlab => false, + BlockKind::WeatheredCutCopperSlab => false, + BlockKind::ExposedCutCopperSlab => false, + BlockKind::CutCopperSlab => false, + BlockKind::WaxedCopperBlock => false, + BlockKind::WaxedWeatheredCopper => false, + BlockKind::WaxedExposedCopper => false, + BlockKind::WaxedOxidizedCopper => false, + BlockKind::WaxedOxidizedCutCopper => false, + BlockKind::WaxedWeatheredCutCopper => false, + BlockKind::WaxedExposedCutCopper => false, + BlockKind::WaxedCutCopper => false, + BlockKind::WaxedOxidizedCutCopperStairs => false, + BlockKind::WaxedWeatheredCutCopperStairs => false, + BlockKind::WaxedExposedCutCopperStairs => false, + BlockKind::WaxedCutCopperStairs => false, + BlockKind::WaxedOxidizedCutCopperSlab => false, + BlockKind::WaxedWeatheredCutCopperSlab => false, + BlockKind::WaxedExposedCutCopperSlab => false, + BlockKind::WaxedCutCopperSlab => false, + BlockKind::LightningRod => true, + BlockKind::PointedDripstone => true, + BlockKind::DripstoneBlock => false, + BlockKind::CaveVines => true, + BlockKind::CaveVinesPlant => true, + BlockKind::SporeBlossom => true, + BlockKind::Azalea => true, + BlockKind::FloweringAzalea => true, + BlockKind::MossCarpet => false, + BlockKind::MossBlock => false, + BlockKind::BigDripleaf => false, + BlockKind::BigDripleafStem => true, + BlockKind::SmallDripleaf => true, + BlockKind::HangingRoots => true, + BlockKind::RootedDirt => false, + BlockKind::Deepslate => false, + BlockKind::CobbledDeepslate => false, + BlockKind::CobbledDeepslateStairs => false, + BlockKind::CobbledDeepslateSlab => false, + BlockKind::CobbledDeepslateWall => false, + BlockKind::PolishedDeepslate => false, + BlockKind::PolishedDeepslateStairs => false, + BlockKind::PolishedDeepslateSlab => false, + BlockKind::PolishedDeepslateWall => false, + BlockKind::DeepslateTiles => false, + BlockKind::DeepslateTileStairs => false, + BlockKind::DeepslateTileSlab => false, + BlockKind::DeepslateTileWall => false, + BlockKind::DeepslateBricks => false, + BlockKind::DeepslateBrickStairs => false, + BlockKind::DeepslateBrickSlab => false, + BlockKind::DeepslateBrickWall => false, + BlockKind::ChiseledDeepslate => false, + BlockKind::CrackedDeepslateBricks => false, + BlockKind::CrackedDeepslateTiles => false, + BlockKind::InfestedDeepslate => false, + BlockKind::SmoothBasalt => false, + BlockKind::RawIronBlock => false, + BlockKind::RawCopperBlock => false, + BlockKind::RawGoldBlock => false, + BlockKind::PottedAzaleaBush => true, + BlockKind::PottedFloweringAzaleaBush => true, + } + } +} +impl BlockKind { + #[doc = "Returns the `default_state_id` property of this `BlockKind`."] + #[inline] + pub fn default_state_id(&self) -> u16 { + match self { + BlockKind::Air => 0u16, + BlockKind::Stone => 1u16, + BlockKind::Granite => 2u16, + BlockKind::PolishedGranite => 3u16, + BlockKind::Diorite => 4u16, + BlockKind::PolishedDiorite => 5u16, + BlockKind::Andesite => 6u16, + BlockKind::PolishedAndesite => 7u16, BlockKind::GrassBlock => 9u16, + BlockKind::Dirt => 10u16, BlockKind::CoarseDirt => 11u16, - BlockKind::WhiteTerracotta => 7065u16, - BlockKind::YellowShulkerBox => 9556u16, - BlockKind::GreenGlazedTerracotta => 9676u16, - BlockKind::Sandstone => 278u16, - BlockKind::PottedDarkOakSapling => 6517u16, - BlockKind::QuartzBricks => 17357u16, - BlockKind::WaxedOxidizedCutCopperStairs => 18187u16, - BlockKind::HeavyWeightedPressurePlate => 6868u16, - BlockKind::SandstoneSlab => 8601u16, - BlockKind::SmoothQuartzStairs => 10570u16, - BlockKind::SoulLantern => 15143u16, - BlockKind::RawGoldBlock => 20339u16, - BlockKind::JungleButton => 6633u16, - BlockKind::Glass => 262u16, - BlockKind::StrippedJungleLog => 101u16, - BlockKind::MelonStem => 4853u16, - BlockKind::AcaciaFence => 8955u16, - BlockKind::YellowCarpet => 8120u16, - BlockKind::GraniteWall => 12416u16, - BlockKind::BirchWood => 119u16, - BlockKind::LimeCarpet => 8121u16, - BlockKind::Composter => 16005u16, - BlockKind::Lever => 3859u16, - BlockKind::Ladder => 3695u16, - BlockKind::FletchingTable => 15070u16, - BlockKind::WarpedStairs => 15664u16, - BlockKind::CrimsonStairs => 15584u16, - BlockKind::OakPressurePlate => 3941u16, - BlockKind::RespawnAnchor => 16083u16, - BlockKind::BrickWall => 11120u16, - BlockKind::GrayCandle => 17489u16, - BlockKind::PurpleCandleCake => 17653u16, - BlockKind::BuddingAmethyst => 17665u16, - BlockKind::LimeCandleCake => 17643u16, - BlockKind::CyanWallBanner => 8439u16, - BlockKind::WhiteWool => 1440u16, - BlockKind::AcaciaDoor => 9191u16, - BlockKind::LapisOre => 263u16, - BlockKind::PurpleShulkerBox => 9592u16, - BlockKind::CaveAir => 9916u16, - BlockKind::PinkCarpet => 8122u16, - BlockKind::YellowWool => 1444u16, - BlockKind::BirchWallSign => 3819u16, - BlockKind::PrismarineBrickStairs => 7945u16, - BlockKind::InfestedMossyStoneBricks => 4571u16, + BlockKind::Podzol => 13u16, + BlockKind::Cobblestone => 14u16, + BlockKind::OakPlanks => 15u16, + BlockKind::SprucePlanks => 16u16, BlockKind::BirchPlanks => 17u16, - BlockKind::JungleFenceGate => 8739u16, - BlockKind::PolishedBlackstoneBrickWall => 16597u16, - BlockKind::AndesiteWall => 13388u16, + BlockKind::JunglePlanks => 18u16, + BlockKind::AcaciaPlanks => 19u16, + BlockKind::DarkOakPlanks => 20u16, + BlockKind::OakSapling => 21u16, + BlockKind::SpruceSapling => 23u16, + BlockKind::BirchSapling => 25u16, + BlockKind::JungleSapling => 27u16, + BlockKind::AcaciaSapling => 29u16, + BlockKind::DarkOakSapling => 31u16, + BlockKind::Bedrock => 33u16, + BlockKind::Water => 34u16, + BlockKind::Lava => 50u16, + BlockKind::Sand => 66u16, + BlockKind::RedSand => 67u16, + BlockKind::Gravel => 68u16, + BlockKind::GoldOre => 69u16, + BlockKind::DeepslateGoldOre => 70u16, + BlockKind::IronOre => 71u16, BlockKind::DeepslateIronOre => 72u16, - BlockKind::StructureBlock => 15990u16, - BlockKind::YellowCandle => 17441u16, - BlockKind::FrostedIce => 9499u16, - BlockKind::CyanCandle => 17521u16, - BlockKind::Spawner => 2009u16, - BlockKind::DeepslateCopperOre => 17819u16, - BlockKind::RedNetherBrickWall => 13712u16, - BlockKind::CaveVinesPlant => 18618u16, - BlockKind::DetectorRail => 1374u16, - BlockKind::RoseBush => 8140u16, - BlockKind::OakSign => 3439u16, - BlockKind::HoneycombBlock => 16079u16, - BlockKind::CrackedPolishedBlackstoneBricks => 16506u16, - BlockKind::BirchStairs => 5701u16, - BlockKind::DeadBrainCoral => 9772u16, - BlockKind::PolishedGraniteStairs => 9930u16, - BlockKind::WarpedTrapdoor => 15460u16, - BlockKind::ZombieWallHead => 6752u16, - BlockKind::PinkBanner => 8243u16, - BlockKind::Hopper => 6934u16, - BlockKind::Loom => 15037u16, - BlockKind::WaxedCutCopperStairs => 18427u16, - BlockKind::JungleSlab => 8571u16, - BlockKind::PottedWarpedFungus => 16089u16, - BlockKind::OrangeTerracotta => 7066u16, - BlockKind::JungleDoor => 9127u16, - BlockKind::DarkOakDoor => 9255u16, - BlockKind::LimeTerracotta => 7070u16, - BlockKind::LightBlueConcrete => 9691u16, - BlockKind::LilyPad => 5215u16, - BlockKind::Tripwire => 5608u16, - BlockKind::NetherBrickSlab => 8637u16, - BlockKind::PolishedBlackstone => 16504u16, - BlockKind::BrickSlab => 8625u16, - BlockKind::RawIronBlock => 20337u16, - BlockKind::DarkPrismarineStairs => 8025u16, - BlockKind::SoulWallTorch => 4078u16, - BlockKind::MagentaCarpet => 8118u16, + BlockKind::CoalOre => 73u16, + BlockKind::DeepslateCoalOre => 74u16, + BlockKind::NetherGoldOre => 75u16, + BlockKind::OakLog => 77u16, + BlockKind::SpruceLog => 80u16, + BlockKind::BirchLog => 83u16, + BlockKind::JungleLog => 86u16, + BlockKind::AcaciaLog => 89u16, + BlockKind::DarkOakLog => 92u16, + BlockKind::StrippedSpruceLog => 95u16, + BlockKind::StrippedBirchLog => 98u16, + BlockKind::StrippedJungleLog => 101u16, + BlockKind::StrippedAcaciaLog => 104u16, + BlockKind::StrippedDarkOakLog => 107u16, + BlockKind::StrippedOakLog => 110u16, + BlockKind::OakWood => 113u16, + BlockKind::SpruceWood => 116u16, + BlockKind::BirchWood => 119u16, + BlockKind::JungleWood => 122u16, + BlockKind::AcaciaWood => 125u16, + BlockKind::DarkOakWood => 128u16, + BlockKind::StrippedOakWood => 131u16, + BlockKind::StrippedSpruceWood => 134u16, + BlockKind::StrippedBirchWood => 137u16, + BlockKind::StrippedJungleWood => 140u16, + BlockKind::StrippedAcaciaWood => 143u16, + BlockKind::StrippedDarkOakWood => 146u16, BlockKind::OakLeaves => 161u16, - BlockKind::DeepslateBrickStairs => 19931u16, - BlockKind::PinkConcretePowder => 9710u16, - BlockKind::GildedBlackstone => 16918u16, - BlockKind::Dropper => 7054u16, - BlockKind::SmoothQuartzSlab => 11084u16, - BlockKind::WitherSkeletonWallSkull => 6732u16, - BlockKind::PowderSnowCauldron => 5347u16, - BlockKind::Ice => 3998u16, - BlockKind::PurpleWallBanner => 8443u16, - BlockKind::Gravel => 68u16, - BlockKind::BlueBanner => 8323u16, - BlockKind::LightBlueCandleCake => 17639u16, - BlockKind::EndPortalFrame => 5355u16, - BlockKind::LightBlueBanner => 8195u16, - BlockKind::DeadHornCoralFan => 9798u16, + BlockKind::SpruceLeaves => 175u16, + BlockKind::BirchLeaves => 189u16, + BlockKind::JungleLeaves => 203u16, + BlockKind::AcaciaLeaves => 217u16, + BlockKind::DarkOakLeaves => 231u16, BlockKind::AzaleaLeaves => 245u16, - BlockKind::DeepslateTileStairs => 19520u16, - BlockKind::CutRedSandstoneSlab => 8655u16, + BlockKind::FloweringAzaleaLeaves => 259u16, + BlockKind::Sponge => 260u16, + BlockKind::WetSponge => 261u16, + BlockKind::Glass => 262u16, + BlockKind::LapisOre => 263u16, + BlockKind::DeepslateLapisOre => 264u16, + BlockKind::LapisBlock => 265u16, + BlockKind::Dispenser => 267u16, + BlockKind::Sandstone => 278u16, + BlockKind::ChiseledSandstone => 279u16, + BlockKind::CutSandstone => 280u16, + BlockKind::NoteBlock => 282u16, + BlockKind::WhiteBed => 1084u16, + BlockKind::OrangeBed => 1100u16, + BlockKind::MagentaBed => 1116u16, + BlockKind::LightBlueBed => 1132u16, + BlockKind::YellowBed => 1148u16, + BlockKind::LimeBed => 1164u16, + BlockKind::PinkBed => 1180u16, + BlockKind::GrayBed => 1196u16, + BlockKind::LightGrayBed => 1212u16, + BlockKind::CyanBed => 1228u16, + BlockKind::PurpleBed => 1244u16, + BlockKind::BlueBed => 1260u16, + BlockKind::BrownBed => 1276u16, + BlockKind::GreenBed => 1292u16, + BlockKind::RedBed => 1308u16, + BlockKind::BlackBed => 1324u16, + BlockKind::PoweredRail => 1350u16, + BlockKind::DetectorRail => 1374u16, + BlockKind::StickyPiston => 1391u16, + BlockKind::Cobweb => 1397u16, + BlockKind::Grass => 1398u16, + BlockKind::Fern => 1399u16, + BlockKind::DeadBush => 1400u16, + BlockKind::Seagrass => 1401u16, + BlockKind::TallSeagrass => 1403u16, + BlockKind::Piston => 1410u16, + BlockKind::PistonHead => 1418u16, + BlockKind::WhiteWool => 1440u16, + BlockKind::OrangeWool => 1441u16, + BlockKind::MagentaWool => 1442u16, + BlockKind::LightBlueWool => 1443u16, + BlockKind::YellowWool => 1444u16, + BlockKind::LimeWool => 1445u16, + BlockKind::PinkWool => 1446u16, + BlockKind::GrayWool => 1447u16, + BlockKind::LightGrayWool => 1448u16, + BlockKind::CyanWool => 1449u16, + BlockKind::PurpleWool => 1450u16, + BlockKind::BlueWool => 1451u16, + BlockKind::BrownWool => 1452u16, + BlockKind::GreenWool => 1453u16, + BlockKind::RedWool => 1454u16, + BlockKind::BlackWool => 1455u16, + BlockKind::MovingPiston => 1456u16, + BlockKind::Dandelion => 1468u16, + BlockKind::Poppy => 1469u16, + BlockKind::BlueOrchid => 1470u16, + BlockKind::Allium => 1471u16, + BlockKind::AzureBluet => 1472u16, + BlockKind::RedTulip => 1473u16, + BlockKind::OrangeTulip => 1474u16, + BlockKind::WhiteTulip => 1475u16, BlockKind::PinkTulip => 1476u16, - BlockKind::SmoothSandstone => 8665u16, - BlockKind::BlackstoneStairs => 16105u16, - BlockKind::EmeraldBlock => 5609u16, - BlockKind::Peony => 8142u16, - BlockKind::OrangeBed => 1100u16, - BlockKind::Snow => 3990u16, - BlockKind::PinkStainedGlass => 4170u16, - BlockKind::BigDripleaf => 18625u16, - BlockKind::Beehive => 16054u16, - BlockKind::GrayStainedGlass => 4171u16, - BlockKind::StoneBrickStairs => 5144u16, - BlockKind::Cake => 4093u16, + BlockKind::OxeyeDaisy => 1477u16, + BlockKind::Cornflower => 1478u16, + BlockKind::WitherRose => 1479u16, BlockKind::LilyOfTheValley => 1480u16, + BlockKind::BrownMushroom => 1481u16, + BlockKind::RedMushroom => 1482u16, + BlockKind::GoldBlock => 1483u16, + BlockKind::IronBlock => 1484u16, + BlockKind::Bricks => 1485u16, + BlockKind::Tnt => 1487u16, + BlockKind::Bookshelf => 1488u16, + BlockKind::MossyCobblestone => 1489u16, + BlockKind::Obsidian => 1490u16, + BlockKind::Torch => 1491u16, + BlockKind::WallTorch => 1492u16, + BlockKind::Fire => 1527u16, + BlockKind::SoulFire => 2008u16, + BlockKind::Spawner => 2009u16, BlockKind::OakStairs => 2021u16, - BlockKind::BrownWallBanner => 8451u16, - BlockKind::Dirt => 10u16, - BlockKind::LightBlueTerracotta => 7068u16, - BlockKind::RedStainedGlassPane => 7560u16, - BlockKind::Melon => 4836u16, - BlockKind::PurpurStairs => 9399u16, - BlockKind::PurpleWool => 1450u16, - BlockKind::Shroomlight => 15243u16, - BlockKind::Water => 34u16, - BlockKind::WhiteStainedGlass => 4164u16, - BlockKind::DragonWallHead => 6812u16, - BlockKind::TallSeagrass => 1403u16, + BlockKind::Chest => 2091u16, + BlockKind::RedstoneWire => 3274u16, + BlockKind::DiamondOre => 3410u16, + BlockKind::DeepslateDiamondOre => 3411u16, + BlockKind::DiamondBlock => 3412u16, + BlockKind::CraftingTable => 3413u16, + BlockKind::Wheat => 3414u16, + BlockKind::Farmland => 3422u16, + BlockKind::Furnace => 3431u16, + BlockKind::OakSign => 3439u16, + BlockKind::SpruceSign => 3471u16, + BlockKind::BirchSign => 3503u16, + BlockKind::AcaciaSign => 3535u16, + BlockKind::JungleSign => 3567u16, + BlockKind::DarkOakSign => 3599u16, + BlockKind::OakDoor => 3641u16, + BlockKind::Ladder => 3695u16, + BlockKind::Rail => 3703u16, + BlockKind::CobblestoneStairs => 3733u16, + BlockKind::OakWallSign => 3803u16, + BlockKind::SpruceWallSign => 3811u16, + BlockKind::BirchWallSign => 3819u16, + BlockKind::AcaciaWallSign => 3827u16, BlockKind::JungleWallSign => 3835u16, - BlockKind::InfestedStone => 4568u16, - BlockKind::OrangeCarpet => 8117u16, - BlockKind::QuartzSlab => 8643u16, - BlockKind::MossyStoneBricks => 4565u16, - BlockKind::WaterCauldron => 5343u16, - BlockKind::SpruceButton => 6585u16, - BlockKind::BlackBanner => 8387u16, - BlockKind::AncientDebris => 16081u16, - BlockKind::PottedAzaleaBush => 20340u16, - BlockKind::ActivatorRail => 7042u16, - BlockKind::OakButton => 6561u16, - BlockKind::WhiteCandleCake => 17633u16, - BlockKind::WaxedExposedCutCopperSlab => 18511u16, - BlockKind::DeadBubbleCoralFan => 9794u16, - BlockKind::TubeCoralBlock => 9765u16, - BlockKind::WarpedPressurePlate => 15316u16, - BlockKind::VoidAir => 9915u16, - BlockKind::WaxedOxidizedCutCopper => 18172u16, - BlockKind::TubeCoralWallFan => 9850u16, - BlockKind::WarpedPlanks => 15300u16, - BlockKind::BubbleCoralFan => 9804u16, - BlockKind::WarpedSlab => 15310u16, - BlockKind::AcaciaFenceGate => 8771u16, - BlockKind::WhiteCandle => 17377u16, - BlockKind::DragonEgg => 5360u16, - BlockKind::WhiteConcretePowder => 9704u16, - BlockKind::DioriteWall => 14684u16, - BlockKind::MagentaConcrete => 9690u16, - BlockKind::LimeBanner => 8227u16, - BlockKind::BrewingStand => 5341u16, - BlockKind::CrimsonSlab => 15304u16, - BlockKind::PolishedBlackstoneBrickStairs => 16525u16, - BlockKind::IronTrapdoor => 7802u16, - BlockKind::StrippedOakWood => 131u16, - BlockKind::CryingObsidian => 16082u16, - BlockKind::DeepslateBricks => 19919u16, - BlockKind::MossCarpet => 18622u16, - BlockKind::EndStoneBrickWall => 14360u16, - BlockKind::OxidizedCutCopper => 17820u16, - BlockKind::AndesiteSlab => 11096u16, - BlockKind::Clay => 4016u16, - BlockKind::MagentaStainedGlass => 4166u16, - BlockKind::Cocoa => 5363u16, - BlockKind::BrownTerracotta => 7077u16, + BlockKind::DarkOakWallSign => 3843u16, + BlockKind::Lever => 3859u16, BlockKind::StonePressurePlate => 3875u16, - BlockKind::AcaciaSlab => 8577u16, - BlockKind::DarkOakFenceGate => 8803u16, - BlockKind::DeepslateTiles => 19508u16, - BlockKind::BirchLeaves => 189u16, - BlockKind::StrippedDarkOakLog => 107u16, - BlockKind::FlowerPot => 6511u16, - BlockKind::WarpedWartBlock => 15226u16, - BlockKind::LightBlueWallBanner => 8415u16, - BlockKind::AcaciaLog => 89u16, - BlockKind::LightningRod => 18539u16, - BlockKind::BrownStainedGlass => 4176u16, - BlockKind::PurpurSlab => 8661u16, - BlockKind::DioriteStairs => 10970u16, - BlockKind::PottedAzureBluet => 6523u16, - BlockKind::Rail => 3703u16, - BlockKind::PinkTerracotta => 7071u16, - BlockKind::PurpleStainedGlass => 4174u16, - BlockKind::CrimsonStem => 15230u16, - BlockKind::OxidizedCutCopperStairs => 17835u16, - BlockKind::BirchTrapdoor => 4323u16, - BlockKind::PolishedBlackstoneWall => 17034u16, - BlockKind::PowderSnow => 17717u16, - BlockKind::LimeStainedGlass => 4169u16, - BlockKind::DeadHornCoralBlock => 9764u16, - BlockKind::PolishedDeepslateSlab => 19181u16, - BlockKind::SpruceSlab => 8559u16, - BlockKind::BlackConcretePowder => 9719u16, - BlockKind::DaylightDetector => 6916u16, + BlockKind::IronDoor => 3887u16, + BlockKind::OakPressurePlate => 3941u16, + BlockKind::SprucePressurePlate => 3943u16, + BlockKind::BirchPressurePlate => 3945u16, BlockKind::JunglePressurePlate => 3947u16, - BlockKind::CreeperHead => 6776u16, - BlockKind::BirchSapling => 25u16, - BlockKind::LightBlueShulkerBox => 9550u16, + BlockKind::AcaciaPressurePlate => 3949u16, + BlockKind::DarkOakPressurePlate => 3951u16, + BlockKind::RedstoneOre => 3953u16, + BlockKind::DeepslateRedstoneOre => 3955u16, + BlockKind::RedstoneTorch => 3956u16, + BlockKind::RedstoneWallTorch => 3958u16, + BlockKind::StoneButton => 3975u16, + BlockKind::Snow => 3990u16, + BlockKind::Ice => 3998u16, + BlockKind::SnowBlock => 3999u16, + BlockKind::Cactus => 4000u16, + BlockKind::Clay => 4016u16, + BlockKind::SugarCane => 4017u16, + BlockKind::Jukebox => 4034u16, + BlockKind::OakFence => 4066u16, + BlockKind::Pumpkin => 4067u16, + BlockKind::Netherrack => 4068u16, + BlockKind::SoulSand => 4069u16, + BlockKind::SoulSoil => 4070u16, + BlockKind::Basalt => 4072u16, + BlockKind::PolishedBasalt => 4075u16, + BlockKind::SoulTorch => 4077u16, + BlockKind::SoulWallTorch => 4078u16, + BlockKind::Glowstone => 4082u16, + BlockKind::NetherPortal => 4083u16, + BlockKind::CarvedPumpkin => 4085u16, + BlockKind::JackOLantern => 4089u16, + BlockKind::Cake => 4093u16, + BlockKind::Repeater => 4103u16, + BlockKind::WhiteStainedGlass => 4164u16, BlockKind::OrangeStainedGlass => 4165u16, - BlockKind::RepeatingCommandBlock => 9481u16, - BlockKind::Potatoes => 6544u16, - BlockKind::MossyCobblestoneWall => 6190u16, - BlockKind::LightBlueBed => 1132u16, + BlockKind::MagentaStainedGlass => 4166u16, + BlockKind::LightBlueStainedGlass => 4167u16, BlockKind::YellowStainedGlass => 4168u16, - BlockKind::RedstoneBlock => 6932u16, - BlockKind::DiamondBlock => 3412u16, + BlockKind::LimeStainedGlass => 4169u16, + BlockKind::PinkStainedGlass => 4170u16, + BlockKind::GrayStainedGlass => 4171u16, + BlockKind::LightGrayStainedGlass => 4172u16, + BlockKind::CyanStainedGlass => 4173u16, + BlockKind::PurpleStainedGlass => 4174u16, + BlockKind::BlueStainedGlass => 4175u16, + BlockKind::BrownStainedGlass => 4176u16, + BlockKind::GreenStainedGlass => 4177u16, BlockKind::RedStainedGlass => 4178u16, - BlockKind::BlackCandle => 17617u16, - BlockKind::JungleSign => 3567u16, - BlockKind::FireCoralFan => 9806u16, - BlockKind::SkeletonSkull => 6696u16, - BlockKind::SeaLantern => 8112u16, - BlockKind::Chest => 2091u16, - BlockKind::PolishedDioriteStairs => 10170u16, - BlockKind::MossyStoneBrickStairs => 10090u16, - BlockKind::AcaciaPlanks => 19u16, - BlockKind::JungleFence => 8923u16, - BlockKind::CobblestoneStairs => 3733u16, - BlockKind::GreenCandle => 17585u16, - BlockKind::GreenWool => 1453u16, - BlockKind::Allium => 1471u16, - BlockKind::Barrier => 7754u16, - BlockKind::RedSand => 67u16, - BlockKind::AcaciaSign => 3535u16, - BlockKind::Vine => 4892u16, - BlockKind::SlimeBlock => 7753u16, - BlockKind::SmoothRedSandstoneStairs => 10010u16, - BlockKind::DeepslateCoalOre => 74u16, - BlockKind::Fire => 1527u16, - BlockKind::PottedAcaciaSapling => 6516u16, - BlockKind::LightGrayCarpet => 8124u16, - BlockKind::OrangeConcrete => 9689u16, + BlockKind::BlackStainedGlass => 4179u16, + BlockKind::OakTrapdoor => 4195u16, + BlockKind::SpruceTrapdoor => 4259u16, + BlockKind::BirchTrapdoor => 4323u16, + BlockKind::JungleTrapdoor => 4387u16, + BlockKind::AcaciaTrapdoor => 4451u16, + BlockKind::DarkOakTrapdoor => 4515u16, + BlockKind::StoneBricks => 4564u16, + BlockKind::MossyStoneBricks => 4565u16, + BlockKind::CrackedStoneBricks => 4566u16, + BlockKind::ChiseledStoneBricks => 4567u16, + BlockKind::InfestedStone => 4568u16, + BlockKind::InfestedCobblestone => 4569u16, + BlockKind::InfestedStoneBricks => 4570u16, + BlockKind::InfestedMossyStoneBricks => 4571u16, + BlockKind::InfestedCrackedStoneBricks => 4572u16, + BlockKind::InfestedChiseledStoneBricks => 4573u16, + BlockKind::BrownMushroomBlock => 4574u16, + BlockKind::RedMushroomBlock => 4638u16, + BlockKind::MushroomStem => 4702u16, + BlockKind::IronBars => 4797u16, + BlockKind::Chain => 4801u16, + BlockKind::GlassPane => 4835u16, + BlockKind::Melon => 4836u16, + BlockKind::AttachedPumpkinStem => 4837u16, + BlockKind::AttachedMelonStem => 4841u16, + BlockKind::PumpkinStem => 4845u16, + BlockKind::MelonStem => 4853u16, + BlockKind::Vine => 4892u16, + BlockKind::GlowLichen => 5020u16, + BlockKind::OakFenceGate => 5028u16, + BlockKind::BrickStairs => 5064u16, + BlockKind::StoneBrickStairs => 5144u16, + BlockKind::Mycelium => 5214u16, + BlockKind::LilyPad => 5215u16, + BlockKind::NetherBricks => 5216u16, + BlockKind::NetherBrickFence => 5248u16, + BlockKind::NetherBrickStairs => 5260u16, + BlockKind::NetherWart => 5329u16, + BlockKind::EnchantingTable => 5333u16, + BlockKind::BrewingStand => 5341u16, BlockKind::Cauldron => 5342u16, - BlockKind::PottedWarpedRoots => 16091u16, - BlockKind::YellowTerracotta => 7069u16, - BlockKind::GlassPane => 4835u16, - BlockKind::BrownBanner => 8339u16, - BlockKind::OrangeWallBanner => 8407u16, - BlockKind::HoneyBlock => 16078u16, - BlockKind::CrimsonNylium => 15241u16, - BlockKind::CrimsonRoots => 15298u16, - BlockKind::SpruceLog => 80u16, - BlockKind::DiamondOre => 3410u16, - BlockKind::EndStoneBricks => 9468u16, - BlockKind::CyanShulkerBox => 9586u16, - BlockKind::WaxedOxidizedCutCopperSlab => 18499u16, + BlockKind::WaterCauldron => 5343u16, + BlockKind::LavaCauldron => 5346u16, + BlockKind::PowderSnowCauldron => 5347u16, + BlockKind::EndPortal => 5350u16, + BlockKind::EndPortalFrame => 5355u16, + BlockKind::EndStone => 5359u16, + BlockKind::DragonEgg => 5360u16, + BlockKind::RedstoneLamp => 5362u16, + BlockKind::Cocoa => 5363u16, + BlockKind::SandstoneStairs => 5386u16, + BlockKind::EmeraldOre => 5455u16, + BlockKind::DeepslateEmeraldOre => 5456u16, + BlockKind::EnderChest => 5458u16, + BlockKind::TripwireHook => 5474u16, + BlockKind::Tripwire => 5608u16, + BlockKind::EmeraldBlock => 5609u16, + BlockKind::SpruceStairs => 5621u16, + BlockKind::BirchStairs => 5701u16, + BlockKind::JungleStairs => 5781u16, BlockKind::CommandBlock => 5856u16, - BlockKind::Mycelium => 5214u16, - BlockKind::Barrel => 15042u16, - BlockKind::StrippedSpruceLog => 95u16, - BlockKind::MovingPiston => 1456u16, - BlockKind::PinkWool => 1446u16, - BlockKind::Kelp => 9720u16, - BlockKind::CrimsonPlanks => 15299u16, - BlockKind::TallGrass => 8144u16, - BlockKind::SpruceWood => 116u16, + BlockKind::Beacon => 5862u16, + BlockKind::CobblestoneWall => 5866u16, + BlockKind::MossyCobblestoneWall => 6190u16, + BlockKind::FlowerPot => 6511u16, + BlockKind::PottedOakSapling => 6512u16, + BlockKind::PottedSpruceSapling => 6513u16, + BlockKind::PottedBirchSapling => 6514u16, + BlockKind::PottedJungleSapling => 6515u16, + BlockKind::PottedAcaciaSapling => 6516u16, + BlockKind::PottedDarkOakSapling => 6517u16, + BlockKind::PottedFern => 6518u16, + BlockKind::PottedDandelion => 6519u16, + BlockKind::PottedPoppy => 6520u16, + BlockKind::PottedBlueOrchid => 6521u16, + BlockKind::PottedAllium => 6522u16, + BlockKind::PottedAzureBluet => 6523u16, + BlockKind::PottedRedTulip => 6524u16, + BlockKind::PottedOrangeTulip => 6525u16, + BlockKind::PottedWhiteTulip => 6526u16, + BlockKind::PottedPinkTulip => 6527u16, + BlockKind::PottedOxeyeDaisy => 6528u16, + BlockKind::PottedCornflower => 6529u16, BlockKind::PottedLilyOfTheValley => 6530u16, - BlockKind::GrayShulkerBox => 9574u16, - BlockKind::YellowStainedGlassPane => 7240u16, - BlockKind::LimeWool => 1445u16, + BlockKind::PottedWitherRose => 6531u16, + BlockKind::PottedRedMushroom => 6532u16, + BlockKind::PottedBrownMushroom => 6533u16, + BlockKind::PottedDeadBush => 6534u16, BlockKind::PottedCactus => 6535u16, - BlockKind::PolishedGranite => 3u16, - BlockKind::LimeWallBanner => 8423u16, - BlockKind::WhiteWallBanner => 8403u16, - BlockKind::WetSponge => 261u16, - BlockKind::CrimsonHyphae => 15236u16, - BlockKind::SpruceLeaves => 175u16, - BlockKind::SpruceWallSign => 3811u16, - BlockKind::PolishedDiorite => 5u16, - BlockKind::PrismarineBrickSlab => 8103u16, - BlockKind::RedstoneWire => 3274u16, - BlockKind::GreenCarpet => 8129u16, - BlockKind::PurpleCandle => 17537u16, - BlockKind::SpruceFenceGate => 8675u16, - BlockKind::StrippedJungleWood => 140u16, - BlockKind::StoneButton => 3975u16, - BlockKind::BlackWool => 1455u16, - BlockKind::DeepslateRedstoneOre => 3955u16, - BlockKind::OxidizedCutCopperSlab => 18147u16, - BlockKind::WeatheredCutCopperStairs => 17915u16, - BlockKind::Lantern => 15139u16, - BlockKind::PottedPinkTulip => 6527u16, - BlockKind::Lilac => 8138u16, - BlockKind::DeadTubeCoralFan => 9790u16, - BlockKind::DeepslateGoldOre => 70u16, - BlockKind::OrangeTulip => 1474u16, - BlockKind::PurpleConcretePowder => 9714u16, - BlockKind::BlueWool => 1451u16, - BlockKind::CrimsonPressurePlate => 15314u16, - BlockKind::GreenConcrete => 9701u16, - BlockKind::Air => 0u16, - BlockKind::SandstoneStairs => 5386u16, - BlockKind::WhiteBanner => 8147u16, - BlockKind::PurpurPillar => 9386u16, - BlockKind::GrayGlazedTerracotta => 9652u16, - BlockKind::Stonecutter => 15100u16, - BlockKind::Tuff => 17714u16, - BlockKind::CutCopperSlab => 18165u16, - BlockKind::DamagedAnvil => 6824u16, - BlockKind::StoneStairs => 10410u16, - BlockKind::WhiteBed => 1084u16, - BlockKind::Prismarine => 7851u16, - BlockKind::IronBlock => 1484u16, - BlockKind::BrownWool => 1452u16, + BlockKind::Carrots => 6536u16, + BlockKind::Potatoes => 6544u16, + BlockKind::OakButton => 6561u16, + BlockKind::SpruceButton => 6585u16, + BlockKind::BirchButton => 6609u16, + BlockKind::JungleButton => 6633u16, + BlockKind::AcaciaButton => 6657u16, + BlockKind::DarkOakButton => 6681u16, + BlockKind::SkeletonSkull => 6696u16, BlockKind::SkeletonWallSkull => 6712u16, - BlockKind::PottedCornflower => 6529u16, - BlockKind::CrimsonFence => 15348u16, - BlockKind::CrimsonFenceGate => 15516u16, - BlockKind::CrackedNetherBricks => 17356u16, - BlockKind::Jigsaw => 16003u16, - BlockKind::BlueStainedGlass => 4175u16, - BlockKind::Light => 7786u16, - BlockKind::LightGrayCandleCake => 17649u16, - BlockKind::BrownConcretePowder => 9716u16, - BlockKind::PolishedBlackstoneBrickSlab => 16511u16, - BlockKind::ChiseledDeepslate => 20330u16, - BlockKind::DioriteSlab => 11114u16, - BlockKind::PackedIce => 8134u16, - BlockKind::LightBlueStainedGlass => 4167u16, - BlockKind::DeepslateEmeraldOre => 5456u16, + BlockKind::WitherSkeletonSkull => 6716u16, + BlockKind::WitherSkeletonWallSkull => 6732u16, + BlockKind::ZombieHead => 6736u16, + BlockKind::ZombieWallHead => 6752u16, + BlockKind::PlayerHead => 6756u16, + BlockKind::PlayerWallHead => 6772u16, + BlockKind::CreeperHead => 6776u16, + BlockKind::CreeperWallHead => 6792u16, + BlockKind::DragonHead => 6796u16, + BlockKind::DragonWallHead => 6812u16, + BlockKind::Anvil => 6816u16, + BlockKind::ChippedAnvil => 6820u16, + BlockKind::DamagedAnvil => 6824u16, + BlockKind::TrappedChest => 6829u16, + BlockKind::LightWeightedPressurePlate => 6852u16, + BlockKind::HeavyWeightedPressurePlate => 6868u16, + BlockKind::Comparator => 6885u16, + BlockKind::DaylightDetector => 6916u16, + BlockKind::RedstoneBlock => 6932u16, + BlockKind::NetherQuartzOre => 6933u16, + BlockKind::Hopper => 6934u16, + BlockKind::QuartzBlock => 6944u16, + BlockKind::ChiseledQuartzBlock => 6945u16, + BlockKind::QuartzPillar => 6947u16, + BlockKind::QuartzStairs => 6960u16, + BlockKind::ActivatorRail => 7042u16, + BlockKind::Dropper => 7054u16, + BlockKind::WhiteTerracotta => 7065u16, + BlockKind::OrangeTerracotta => 7066u16, + BlockKind::MagentaTerracotta => 7067u16, + BlockKind::LightBlueTerracotta => 7068u16, + BlockKind::YellowTerracotta => 7069u16, + BlockKind::LimeTerracotta => 7070u16, + BlockKind::PinkTerracotta => 7071u16, + BlockKind::GrayTerracotta => 7072u16, + BlockKind::LightGrayTerracotta => 7073u16, + BlockKind::CyanTerracotta => 7074u16, + BlockKind::PurpleTerracotta => 7075u16, + BlockKind::BlueTerracotta => 7076u16, + BlockKind::BrownTerracotta => 7077u16, + BlockKind::GreenTerracotta => 7078u16, + BlockKind::RedTerracotta => 7079u16, + BlockKind::BlackTerracotta => 7080u16, + BlockKind::WhiteStainedGlassPane => 7112u16, + BlockKind::OrangeStainedGlassPane => 7144u16, + BlockKind::MagentaStainedGlassPane => 7176u16, BlockKind::LightBlueStainedGlassPane => 7208u16, - BlockKind::MagentaConcretePowder => 9706u16, - BlockKind::RedConcretePowder => 9718u16, + BlockKind::YellowStainedGlassPane => 7240u16, + BlockKind::LimeStainedGlassPane => 7272u16, + BlockKind::PinkStainedGlassPane => 7304u16, + BlockKind::GrayStainedGlassPane => 7336u16, BlockKind::LightGrayStainedGlassPane => 7368u16, - BlockKind::SprucePressurePlate => 3943u16, - BlockKind::GrayConcrete => 9695u16, - BlockKind::DriedKelpBlock => 9747u16, - BlockKind::PolishedBlackstoneStairs => 16930u16, - BlockKind::DeadHornCoral => 9778u16, - BlockKind::MagentaGlazedTerracotta => 9632u16, - BlockKind::PolishedAndesiteStairs => 10890u16, - BlockKind::Glowstone => 4082u16, - BlockKind::CobblestoneWall => 5866u16, - BlockKind::CoalBlock => 8133u16, - BlockKind::PurpleBanner => 8307u16, - BlockKind::StickyPiston => 1391u16, - BlockKind::Cobblestone => 14u16, - BlockKind::InfestedChiseledStoneBricks => 4573u16, - BlockKind::MagentaWallBanner => 8411u16, - BlockKind::CaveVines => 18566u16, - BlockKind::WarpedNylium => 15224u16, - BlockKind::DeepslateBrickSlab => 20003u16, - BlockKind::ChiseledStoneBricks => 4567u16, - BlockKind::CoalOre => 73u16, - BlockKind::DeadBrainCoralBlock => 9761u16, - BlockKind::DarkOakPressurePlate => 3951u16, - BlockKind::BrownBed => 1276u16, - BlockKind::Beacon => 5862u16, + BlockKind::CyanStainedGlassPane => 7400u16, BlockKind::PurpleStainedGlassPane => 7432u16, - BlockKind::Obsidian => 1490u16, - BlockKind::JungleLog => 86u16, - BlockKind::CobbledDeepslateStairs => 18698u16, - BlockKind::PottedBirchSapling => 6514u16, - BlockKind::SmithingTable => 15099u16, - BlockKind::BubbleColumn => 9917u16, - BlockKind::PoweredRail => 1350u16, - BlockKind::Jukebox => 4034u16, - BlockKind::YellowConcretePowder => 9708u16, - BlockKind::NetherGoldOre => 75u16, - BlockKind::WitherSkeletonSkull => 6716u16, - BlockKind::OxidizedCopper => 17814u16, - BlockKind::TintedGlass => 17716u16, - BlockKind::PottedOakSapling => 6512u16, - BlockKind::FireCoralBlock => 9768u16, - BlockKind::PinkWallBanner => 8427u16, - BlockKind::YellowBanner => 8211u16, - BlockKind::LimeShulkerBox => 9562u16, - BlockKind::NoteBlock => 282u16, - BlockKind::RedstoneWallTorch => 3958u16, - BlockKind::Podzol => 13u16, - BlockKind::LightGrayBanner => 8275u16, - BlockKind::AcaciaButton => 6657u16, - BlockKind::PrismarineWall => 11444u16, - BlockKind::Deepslate => 18684u16, - BlockKind::PottedBrownMushroom => 6533u16, - BlockKind::PinkCandleCake => 17645u16, + BlockKind::BlueStainedGlassPane => 7464u16, + BlockKind::BrownStainedGlassPane => 7496u16, + BlockKind::GreenStainedGlassPane => 7528u16, + BlockKind::RedStainedGlassPane => 7560u16, + BlockKind::BlackStainedGlassPane => 7592u16, + BlockKind::AcaciaStairs => 7604u16, + BlockKind::DarkOakStairs => 7684u16, + BlockKind::SlimeBlock => 7753u16, + BlockKind::Barrier => 7754u16, + BlockKind::Light => 7786u16, + BlockKind::IronTrapdoor => 7802u16, + BlockKind::Prismarine => 7851u16, + BlockKind::PrismarineBricks => 7852u16, + BlockKind::DarkPrismarine => 7853u16, + BlockKind::PrismarineStairs => 7865u16, + BlockKind::PrismarineBrickStairs => 7945u16, + BlockKind::DarkPrismarineStairs => 8025u16, + BlockKind::PrismarineSlab => 8097u16, + BlockKind::PrismarineBrickSlab => 8103u16, + BlockKind::DarkPrismarineSlab => 8109u16, + BlockKind::SeaLantern => 8112u16, + BlockKind::HayBlock => 8114u16, + BlockKind::WhiteCarpet => 8116u16, + BlockKind::OrangeCarpet => 8117u16, + BlockKind::MagentaCarpet => 8118u16, + BlockKind::LightBlueCarpet => 8119u16, + BlockKind::YellowCarpet => 8120u16, + BlockKind::LimeCarpet => 8121u16, + BlockKind::PinkCarpet => 8122u16, + BlockKind::GrayCarpet => 8123u16, + BlockKind::LightGrayCarpet => 8124u16, + BlockKind::CyanCarpet => 8125u16, + BlockKind::PurpleCarpet => 8126u16, + BlockKind::BlueCarpet => 8127u16, + BlockKind::BrownCarpet => 8128u16, + BlockKind::GreenCarpet => 8129u16, + BlockKind::RedCarpet => 8130u16, BlockKind::BlackCarpet => 8131u16, + BlockKind::Terracotta => 8132u16, + BlockKind::CoalBlock => 8133u16, + BlockKind::PackedIce => 8134u16, + BlockKind::Sunflower => 8136u16, + BlockKind::Lilac => 8138u16, + BlockKind::RoseBush => 8140u16, + BlockKind::Peony => 8142u16, + BlockKind::TallGrass => 8144u16, + BlockKind::LargeFern => 8146u16, + BlockKind::WhiteBanner => 8147u16, + BlockKind::OrangeBanner => 8163u16, + BlockKind::MagentaBanner => 8179u16, + BlockKind::LightBlueBanner => 8195u16, + BlockKind::YellowBanner => 8211u16, + BlockKind::LimeBanner => 8227u16, + BlockKind::PinkBanner => 8243u16, BlockKind::GrayBanner => 8259u16, - BlockKind::Anvil => 6816u16, - BlockKind::GreenStainedGlass => 4177u16, - BlockKind::SmoothBasalt => 20336u16, - BlockKind::DarkOakButton => 6681u16, - BlockKind::CyanTerracotta => 7074u16, - BlockKind::FireCoralWallFan => 9874u16, - BlockKind::Wheat => 3414u16, - BlockKind::PottedBlueOrchid => 6521u16, - BlockKind::BlueBed => 1260u16, - BlockKind::SmoothQuartz => 8666u16, - BlockKind::PolishedBlackstoneButton => 17016u16, - BlockKind::CrimsonButton => 15742u16, - BlockKind::BirchSign => 3503u16, - BlockKind::TubeCoralFan => 9800u16, - BlockKind::BirchLog => 83u16, - BlockKind::BirchFenceGate => 8707u16, - BlockKind::RedShulkerBox => 9616u16, - BlockKind::AcaciaSapling => 29u16, - BlockKind::OakPlanks => 15u16, - BlockKind::RedNetherBricks => 9505u16, - BlockKind::EndPortal => 5350u16, - BlockKind::PolishedDeepslateStairs => 19109u16, + BlockKind::LightGrayBanner => 8275u16, BlockKind::CyanBanner => 8291u16, - BlockKind::EndGateway => 9474u16, - BlockKind::BrownMushroomBlock => 4574u16, - BlockKind::KelpPlant => 9746u16, - BlockKind::SmallDripleaf => 18667u16, - BlockKind::BlackStainedGlassPane => 7592u16, - BlockKind::OakFenceGate => 5028u16, - BlockKind::DeadFireCoralWallFan => 9834u16, - BlockKind::PolishedAndesite => 7u16, - BlockKind::BlueOrchid => 1470u16, - BlockKind::StrippedCrimsonHyphae => 15239u16, - BlockKind::SmoothRedSandstoneSlab => 11048u16, - BlockKind::LightGrayShulkerBox => 9580u16, - BlockKind::GreenCandleCake => 17659u16, - BlockKind::HornCoralWallFan => 9882u16, - BlockKind::InfestedStoneBricks => 4570u16, - BlockKind::CyanStainedGlass => 4173u16, + BlockKind::PurpleBanner => 8307u16, + BlockKind::BlueBanner => 8323u16, + BlockKind::BrownBanner => 8339u16, + BlockKind::GreenBanner => 8355u16, + BlockKind::RedBanner => 8371u16, + BlockKind::BlackBanner => 8387u16, + BlockKind::WhiteWallBanner => 8403u16, + BlockKind::OrangeWallBanner => 8407u16, + BlockKind::MagentaWallBanner => 8411u16, + BlockKind::LightBlueWallBanner => 8415u16, + BlockKind::YellowWallBanner => 8419u16, + BlockKind::LimeWallBanner => 8423u16, + BlockKind::PinkWallBanner => 8427u16, BlockKind::GrayWallBanner => 8431u16, - BlockKind::StrippedAcaciaLog => 104u16, - BlockKind::CopperBlock => 17817u16, - BlockKind::ExposedCutCopper => 17822u16, - BlockKind::DarkOakStairs => 7684u16, - BlockKind::DeadFireCoral => 9776u16, - BlockKind::OrangeGlazedTerracotta => 9628u16, - BlockKind::StrippedBirchLog => 98u16, - BlockKind::PurpleGlazedTerracotta => 9664u16, - BlockKind::NetheriteBlock => 16080u16, - BlockKind::WarpedDoor => 15856u16, - BlockKind::PolishedBlackstoneBricks => 16505u16, - BlockKind::PottedDandelion => 6519u16, - BlockKind::SprucePlanks => 16u16, + BlockKind::LightGrayWallBanner => 8435u16, + BlockKind::CyanWallBanner => 8439u16, + BlockKind::PurpleWallBanner => 8443u16, + BlockKind::BlueWallBanner => 8447u16, + BlockKind::BrownWallBanner => 8451u16, + BlockKind::GreenWallBanner => 8455u16, + BlockKind::RedWallBanner => 8459u16, + BlockKind::BlackWallBanner => 8463u16, + BlockKind::RedSandstone => 8467u16, + BlockKind::ChiseledRedSandstone => 8468u16, + BlockKind::CutRedSandstone => 8469u16, BlockKind::RedSandstoneStairs => 8481u16, - BlockKind::PurpleConcrete => 9698u16, - BlockKind::DarkOakWood => 128u16, - BlockKind::GraniteStairs => 10650u16, - BlockKind::QuartzStairs => 6960u16, - BlockKind::LightGrayBed => 1212u16, - BlockKind::WaxedOxidizedCopper => 18171u16, - BlockKind::MagentaCandle => 17409u16, - BlockKind::AcaciaWallSign => 3827u16, - BlockKind::AcaciaPressurePlate => 3949u16, - BlockKind::Torch => 1491u16, - BlockKind::GoldBlock => 1483u16, - BlockKind::JungleStairs => 5781u16, - BlockKind::AttachedPumpkinStem => 4837u16, - BlockKind::BrainCoralBlock => 9766u16, - BlockKind::BeeNest => 16030u16, - BlockKind::LapisBlock => 265u16, - BlockKind::Dispenser => 267u16, - BlockKind::RedMushroom => 1482u16, - BlockKind::GrayTerracotta => 7072u16, - BlockKind::BrownCandle => 17569u16, - BlockKind::SporeBlossom => 18619u16, - BlockKind::LightGrayStainedGlass => 4172u16, - BlockKind::Beetroots => 9469u16, - BlockKind::PottedCrimsonRoots => 16090u16, - BlockKind::LimeGlazedTerracotta => 9644u16, - BlockKind::StrippedDarkOakWood => 146u16, - BlockKind::LightGrayWool => 1448u16, - BlockKind::ChorusFlower => 9378u16, - BlockKind::OrangeStainedGlassPane => 7144u16, - BlockKind::RedBanner => 8371u16, - BlockKind::CrackedDeepslateBricks => 20331u16, - BlockKind::WarpedHyphae => 15219u16, - BlockKind::StrippedCrimsonStem => 15233u16, - BlockKind::JungleLeaves => 203u16, - BlockKind::YellowCandleCake => 17641u16, - BlockKind::SpruceStairs => 5621u16, - BlockKind::WarpedWallSign => 15982u16, - BlockKind::DarkOakFence => 8987u16, - BlockKind::TubeCoral => 9780u16, - BlockKind::CrimsonWallSign => 15974u16, - BlockKind::MossyCobblestoneStairs => 10250u16, - BlockKind::DeadBubbleCoralWallFan => 9826u16, - BlockKind::SpruceFence => 8859u16, - BlockKind::ChippedAnvil => 6820u16, - BlockKind::PolishedBlackstoneSlab => 17002u16, - BlockKind::GraniteSlab => 11090u16, - BlockKind::ChiseledSandstone => 279u16, - BlockKind::Piston => 1410u16, - BlockKind::RootedDirt => 18682u16, - BlockKind::DarkOakLog => 92u16, - BlockKind::JungleSapling => 27u16, - BlockKind::SpruceTrapdoor => 4259u16, + BlockKind::OakSlab => 8553u16, + BlockKind::SpruceSlab => 8559u16, + BlockKind::BirchSlab => 8565u16, + BlockKind::JungleSlab => 8571u16, + BlockKind::AcaciaSlab => 8577u16, + BlockKind::DarkOakSlab => 8583u16, + BlockKind::StoneSlab => 8589u16, + BlockKind::SmoothStoneSlab => 8595u16, + BlockKind::SandstoneSlab => 8601u16, BlockKind::CutSandstoneSlab => 8607u16, - BlockKind::JackOLantern => 4089u16, - BlockKind::RedstoneLamp => 5362u16, - BlockKind::PinkCandle => 17473u16, - BlockKind::BlackWallBanner => 8463u16, - BlockKind::WeatheredCutCopperSlab => 18153u16, - BlockKind::PinkShulkerBox => 9568u16, - BlockKind::PottedOxeyeDaisy => 6528u16, - BlockKind::StrippedSpruceWood => 134u16, - BlockKind::Bedrock => 33u16, - BlockKind::StrippedAcaciaWood => 143u16, - BlockKind::WaxedCutCopper => 18175u16, - BlockKind::Diorite => 4u16, - BlockKind::RedWool => 1454u16, - BlockKind::BirchButton => 6609u16, - BlockKind::Pumpkin => 4067u16, - BlockKind::RedMushroomBlock => 4638u16, - BlockKind::GreenWallBanner => 8455u16, - BlockKind::StoneBrickWall => 12740u16, - BlockKind::WeatheredCopper => 17815u16, - BlockKind::DeadBubbleCoral => 9774u16, - BlockKind::PottedSpruceSapling => 6513u16, + BlockKind::PetrifiedOakSlab => 8613u16, + BlockKind::CobblestoneSlab => 8619u16, + BlockKind::BrickSlab => 8625u16, BlockKind::StoneBrickSlab => 8631u16, - BlockKind::DarkOakSapling => 31u16, - BlockKind::Farmland => 3422u16, - BlockKind::CopperOre => 17818u16, - BlockKind::NetherWartBlock => 9504u16, - BlockKind::BlackCandleCake => 17663u16, - BlockKind::NetherBrickFence => 5248u16, - BlockKind::ZombieHead => 6736u16, - BlockKind::ChiseledNetherBricks => 17355u16, - BlockKind::WhiteCarpet => 8116u16, + BlockKind::NetherBrickSlab => 8637u16, + BlockKind::QuartzSlab => 8643u16, + BlockKind::RedSandstoneSlab => 8649u16, + BlockKind::CutRedSandstoneSlab => 8655u16, + BlockKind::PurpurSlab => 8661u16, + BlockKind::SmoothStone => 8664u16, + BlockKind::SmoothSandstone => 8665u16, + BlockKind::SmoothQuartz => 8666u16, BlockKind::SmoothRedSandstone => 8667u16, - BlockKind::RedBed => 1308u16, - BlockKind::DripstoneBlock => 18564u16, - BlockKind::WaxedWeatheredCutCopperStairs => 18267u16, - BlockKind::CreeperWallHead => 6792u16, - BlockKind::Lodestone => 16092u16, - BlockKind::Grindstone => 15075u16, - BlockKind::CyanConcrete => 9697u16, - BlockKind::FloweringAzaleaLeaves => 259u16, - BlockKind::AcaciaStairs => 7604u16, - BlockKind::DarkPrismarineSlab => 8109u16, - BlockKind::BlastFurnace => 15062u16, - BlockKind::TwistingVines => 15271u16, - BlockKind::DeadBubbleCoralBlock => 9762u16, - BlockKind::MossyStoneBrickSlab => 11054u16, - BlockKind::YellowBed => 1148u16, - BlockKind::SmallAmethystBud => 17711u16, + BlockKind::SpruceFenceGate => 8675u16, + BlockKind::BirchFenceGate => 8707u16, + BlockKind::JungleFenceGate => 8739u16, + BlockKind::AcaciaFenceGate => 8771u16, + BlockKind::DarkOakFenceGate => 8803u16, + BlockKind::SpruceFence => 8859u16, + BlockKind::BirchFence => 8891u16, + BlockKind::JungleFence => 8923u16, + BlockKind::AcaciaFence => 8955u16, + BlockKind::DarkOakFence => 8987u16, + BlockKind::SpruceDoor => 8999u16, + BlockKind::BirchDoor => 9063u16, + BlockKind::JungleDoor => 9127u16, + BlockKind::AcaciaDoor => 9191u16, + BlockKind::DarkOakDoor => 9255u16, + BlockKind::EndRod => 9312u16, + BlockKind::ChorusPlant => 9377u16, + BlockKind::ChorusFlower => 9378u16, + BlockKind::PurpurBlock => 9384u16, + BlockKind::PurpurPillar => 9386u16, + BlockKind::PurpurStairs => 9399u16, + BlockKind::EndStoneBricks => 9468u16, + BlockKind::Beetroots => 9469u16, + BlockKind::DirtPath => 9473u16, + BlockKind::EndGateway => 9474u16, + BlockKind::RepeatingCommandBlock => 9481u16, + BlockKind::ChainCommandBlock => 9493u16, + BlockKind::FrostedIce => 9499u16, + BlockKind::MagmaBlock => 9503u16, + BlockKind::NetherWartBlock => 9504u16, + BlockKind::RedNetherBricks => 9505u16, + BlockKind::BoneBlock => 9507u16, + BlockKind::StructureVoid => 9509u16, + BlockKind::Observer => 9515u16, BlockKind::ShulkerBox => 9526u16, - BlockKind::Andesite => 6u16, - BlockKind::BlackShulkerBox => 9622u16, - BlockKind::ChiseledQuartzBlock => 6945u16, - BlockKind::WaxedCopperBlock => 18168u16, - BlockKind::Dandelion => 1468u16, - BlockKind::LightGrayConcretePowder => 9712u16, - BlockKind::ExposedCutCopperSlab => 18159u16, - BlockKind::DeadHornCoralWallFan => 9842u16, - BlockKind::Cobweb => 1397u16, - BlockKind::CrimsonSign => 15910u16, - BlockKind::PetrifiedOakSlab => 8613u16, + BlockKind::WhiteShulkerBox => 9532u16, + BlockKind::OrangeShulkerBox => 9538u16, + BlockKind::MagentaShulkerBox => 9544u16, + BlockKind::LightBlueShulkerBox => 9550u16, + BlockKind::YellowShulkerBox => 9556u16, + BlockKind::LimeShulkerBox => 9562u16, + BlockKind::PinkShulkerBox => 9568u16, + BlockKind::GrayShulkerBox => 9574u16, + BlockKind::LightGrayShulkerBox => 9580u16, + BlockKind::CyanShulkerBox => 9586u16, + BlockKind::PurpleShulkerBox => 9592u16, BlockKind::BlueShulkerBox => 9598u16, - BlockKind::HornCoralBlock => 9769u16, - BlockKind::BubbleCoral => 9784u16, - BlockKind::PottedOrangeTulip => 6525u16, - BlockKind::BrainCoralFan => 9802u16, - BlockKind::PolishedAndesiteSlab => 11108u16, - BlockKind::LightBlueCarpet => 8119u16, - BlockKind::WarpedButton => 15766u16, - BlockKind::MushroomStem => 4702u16, - BlockKind::RedCandleCake => 17661u16, - BlockKind::GreenStainedGlassPane => 7528u16, - BlockKind::BirchDoor => 9063u16, + BlockKind::BrownShulkerBox => 9604u16, + BlockKind::GreenShulkerBox => 9610u16, + BlockKind::RedShulkerBox => 9616u16, + BlockKind::BlackShulkerBox => 9622u16, + BlockKind::WhiteGlazedTerracotta => 9624u16, + BlockKind::OrangeGlazedTerracotta => 9628u16, + BlockKind::MagentaGlazedTerracotta => 9632u16, + BlockKind::LightBlueGlazedTerracotta => 9636u16, + BlockKind::YellowGlazedTerracotta => 9640u16, + BlockKind::LimeGlazedTerracotta => 9644u16, BlockKind::PinkGlazedTerracotta => 9648u16, - BlockKind::Conduit => 9899u16, - BlockKind::CrimsonTrapdoor => 15396u16, - BlockKind::Target => 16014u16, - BlockKind::OakWood => 113u16, + BlockKind::GrayGlazedTerracotta => 9652u16, + BlockKind::LightGrayGlazedTerracotta => 9656u16, + BlockKind::CyanGlazedTerracotta => 9660u16, + BlockKind::PurpleGlazedTerracotta => 9664u16, BlockKind::BlueGlazedTerracotta => 9668u16, - BlockKind::WarpedFenceGate => 15548u16, - BlockKind::PurpurBlock => 9384u16, + BlockKind::BrownGlazedTerracotta => 9672u16, + BlockKind::GreenGlazedTerracotta => 9676u16, + BlockKind::RedGlazedTerracotta => 9680u16, + BlockKind::BlackGlazedTerracotta => 9684u16, + BlockKind::WhiteConcrete => 9688u16, + BlockKind::OrangeConcrete => 9689u16, + BlockKind::MagentaConcrete => 9690u16, + BlockKind::LightBlueConcrete => 9691u16, + BlockKind::YellowConcrete => 9692u16, + BlockKind::LimeConcrete => 9693u16, BlockKind::PinkConcrete => 9694u16, - BlockKind::Campfire => 15147u16, - BlockKind::WarpedFence => 15380u16, - BlockKind::ChiseledPolishedBlackstone => 16507u16, - BlockKind::BlueCandleCake => 17655u16, - BlockKind::SpruceSapling => 23u16, - BlockKind::GrayCarpet => 8123u16, - BlockKind::MagentaCandleCake => 17637u16, - BlockKind::RedNetherBrickSlab => 11102u16, - BlockKind::SmoothSandstoneStairs => 10490u16, - BlockKind::MediumAmethystBud => 17699u16, - BlockKind::OxeyeDaisy => 1477u16, + BlockKind::GrayConcrete => 9695u16, + BlockKind::LightGrayConcrete => 9696u16, + BlockKind::CyanConcrete => 9697u16, + BlockKind::PurpleConcrete => 9698u16, + BlockKind::BlueConcrete => 9699u16, + BlockKind::BrownConcrete => 9700u16, + BlockKind::GreenConcrete => 9701u16, + BlockKind::RedConcrete => 9702u16, + BlockKind::BlackConcrete => 9703u16, + BlockKind::WhiteConcretePowder => 9704u16, + BlockKind::OrangeConcretePowder => 9705u16, + BlockKind::MagentaConcretePowder => 9706u16, BlockKind::LightBlueConcretePowder => 9707u16, - BlockKind::EndStoneBrickStairs => 10330u16, - BlockKind::CyanWool => 1449u16, - BlockKind::BlackTerracotta => 7080u16, - BlockKind::Bricks => 1485u16, - BlockKind::BrownStainedGlassPane => 7496u16, - BlockKind::DirtPath => 9473u16, - BlockKind::PolishedBlackstonePressurePlate => 17006u16, - BlockKind::TripwireHook => 5474u16, - BlockKind::CrackedStoneBricks => 4566u16, - BlockKind::BlueCandle => 17553u16, - BlockKind::TrappedChest => 6829u16, + BlockKind::YellowConcretePowder => 9708u16, + BlockKind::LimeConcretePowder => 9709u16, + BlockKind::PinkConcretePowder => 9710u16, BlockKind::GrayConcretePowder => 9711u16, - BlockKind::PolishedDioriteSlab => 11060u16, - BlockKind::ChorusPlant => 9377u16, - BlockKind::WeepingVinesPlant => 15270u16, - BlockKind::BrownCandleCake => 17657u16, - BlockKind::Lectern => 15086u16, - BlockKind::BrickStairs => 5064u16, - BlockKind::BoneBlock => 9507u16, + BlockKind::LightGrayConcretePowder => 9712u16, + BlockKind::CyanConcretePowder => 9713u16, + BlockKind::PurpleConcretePowder => 9714u16, + BlockKind::BlueConcretePowder => 9715u16, + BlockKind::BrownConcretePowder => 9716u16, + BlockKind::GreenConcretePowder => 9717u16, + BlockKind::RedConcretePowder => 9718u16, + BlockKind::BlackConcretePowder => 9719u16, + BlockKind::Kelp => 9720u16, + BlockKind::KelpPlant => 9746u16, + BlockKind::DriedKelpBlock => 9747u16, + BlockKind::TurtleEgg => 9748u16, + BlockKind::DeadTubeCoralBlock => 9760u16, + BlockKind::DeadBrainCoralBlock => 9761u16, + BlockKind::DeadBubbleCoralBlock => 9762u16, BlockKind::DeadFireCoralBlock => 9763u16, - BlockKind::Lava => 50u16, - BlockKind::RedWallBanner => 8459u16, - BlockKind::WhiteStainedGlassPane => 7112u16, - BlockKind::RedConcrete => 9702u16, - BlockKind::HangingRoots => 18681u16, - BlockKind::PolishedGraniteSlab => 11042u16, - BlockKind::PottedFloweringAzaleaBush => 20341u16, - BlockKind::PottedBamboo => 9914u16, - BlockKind::WhiteConcrete => 9688u16, - BlockKind::Grass => 1398u16, - BlockKind::Poppy => 1469u16, - BlockKind::ChiseledRedSandstone => 8468u16, - BlockKind::Smoker => 15054u16, - BlockKind::GreenTerracotta => 7078u16, - BlockKind::StructureVoid => 9509u16, - BlockKind::PrismarineSlab => 8097u16, - BlockKind::LargeFern => 8146u16, - BlockKind::CyanStainedGlassPane => 7400u16, - BlockKind::BirchPressurePlate => 3945u16, - BlockKind::OrangeCandle => 17393u16, - BlockKind::CutRedSandstone => 8469u16, - BlockKind::SculkSensor => 17719u16, - BlockKind::MossBlock => 18623u16, - BlockKind::CobbledDeepslateSlab => 18770u16, - BlockKind::SoulFire => 2008u16, - BlockKind::OakWallSign => 3803u16, - BlockKind::InfestedCobblestone => 4569u16, - BlockKind::ExposedCutCopperStairs => 17995u16, - BlockKind::WaxedWeatheredCutCopper => 18173u16, - BlockKind::NetherQuartzOre => 6933u16, - BlockKind::LimeConcrete => 9693u16, - BlockKind::SweetBerryBush => 15208u16, - BlockKind::OrangeWool => 1441u16, - BlockKind::OakFence => 4066u16, - BlockKind::NetherBrickStairs => 5260u16, - BlockKind::PolishedBasalt => 4075u16, - BlockKind::BrownCarpet => 8128u16, - BlockKind::BrownMushroom => 1481u16, - BlockKind::WallTorch => 1492u16, - } - } -} -impl BlockKind { - #[doc = "Returns the `min_state_id` property of this `BlockKind`."] - #[inline] - pub fn min_state_id(&self) -> u16 { - match self { - BlockKind::LilyOfTheValley => 1480u16, - BlockKind::EndStoneBrickStairs => 10319u16, - BlockKind::WallTorch => 1492u16, - BlockKind::BubbleCoralFan => 9804u16, - BlockKind::WaxedWeatheredCutCopperStairs => 18256u16, BlockKind::DeadHornCoralBlock => 9764u16, - BlockKind::StrippedCrimsonHyphae => 15238u16, - BlockKind::PottedBrownMushroom => 6533u16, - BlockKind::WeatheredCutCopperSlab => 18150u16, - BlockKind::IronBlock => 1484u16, - BlockKind::LightGrayWallBanner => 8435u16, - BlockKind::Comparator => 6884u16, - BlockKind::HornCoralFan => 9808u16, - BlockKind::ChiseledPolishedBlackstone => 16507u16, - BlockKind::BlackCandle => 17614u16, - BlockKind::BlueBed => 1257u16, - BlockKind::LimeCarpet => 8121u16, - BlockKind::BlastFurnace => 15061u16, - BlockKind::CyanBed => 1225u16, - BlockKind::BlackBed => 1321u16, - BlockKind::StrippedWarpedStem => 15215u16, - BlockKind::WarpedFungus => 15225u16, - BlockKind::PinkBed => 1177u16, - BlockKind::OakStairs => 2010u16, - BlockKind::SandstoneWall => 14033u16, - BlockKind::AcaciaPlanks => 19u16, - BlockKind::SoulCampfire => 15176u16, - BlockKind::RedTulip => 1473u16, - BlockKind::CrackedStoneBricks => 4566u16, - BlockKind::BirchPressurePlate => 3944u16, - BlockKind::PrismarineSlab => 8094u16, - BlockKind::PinkShulkerBox => 9564u16, - BlockKind::WaxedWeatheredCutCopper => 18173u16, - BlockKind::RedSand => 67u16, - BlockKind::LimeBed => 1161u16, - BlockKind::BlackWool => 1455u16, - BlockKind::CrimsonSign => 15909u16, - BlockKind::AcaciaSapling => 29u16, - BlockKind::ExposedCutCopperSlab => 18156u16, - BlockKind::ChiseledDeepslate => 20330u16, - BlockKind::HayBlock => 8113u16, - BlockKind::Cauldron => 5342u16, - BlockKind::CutCopperSlab => 18162u16, - BlockKind::PottedAcaciaSapling => 6516u16, - BlockKind::PumpkinStem => 4845u16, - BlockKind::PottedPinkTulip => 6527u16, - BlockKind::StrippedAcaciaWood => 142u16, - BlockKind::BirchWood => 118u16, - BlockKind::RedSandstoneStairs => 8470u16, - BlockKind::CutSandstoneSlab => 8604u16, - BlockKind::YellowStainedGlass => 4168u16, - BlockKind::HangingRoots => 18680u16, - BlockKind::SpruceWood => 115u16, - BlockKind::Anvil => 6816u16, - BlockKind::PottedCrimsonRoots => 16090u16, - BlockKind::WhiteCandleCake => 17632u16, - BlockKind::Basalt => 4071u16, - BlockKind::JungleFence => 8892u16, - BlockKind::RedSandstoneWall => 11765u16, - BlockKind::PottedWhiteTulip => 6526u16, - BlockKind::SmoothSandstoneSlab => 11075u16, - BlockKind::BrownShulkerBox => 9600u16, - BlockKind::RedWallBanner => 8459u16, + BlockKind::TubeCoralBlock => 9765u16, + BlockKind::BrainCoralBlock => 9766u16, + BlockKind::BubbleCoralBlock => 9767u16, + BlockKind::FireCoralBlock => 9768u16, + BlockKind::HornCoralBlock => 9769u16, + BlockKind::DeadTubeCoral => 9770u16, + BlockKind::DeadBrainCoral => 9772u16, + BlockKind::DeadBubbleCoral => 9774u16, + BlockKind::DeadFireCoral => 9776u16, BlockKind::DeadHornCoral => 9778u16, - BlockKind::WhiteWool => 1440u16, - BlockKind::Tnt => 1486u16, + BlockKind::TubeCoral => 9780u16, + BlockKind::BrainCoral => 9782u16, + BlockKind::BubbleCoral => 9784u16, + BlockKind::FireCoral => 9786u16, BlockKind::HornCoral => 9788u16, - BlockKind::LargeAmethystBud => 17678u16, - BlockKind::DarkOakPlanks => 20u16, - BlockKind::BlackCandleCake => 17662u16, - BlockKind::EndStoneBrickSlab => 11069u16, - BlockKind::DragonWallHead => 6812u16, - BlockKind::BlueOrchid => 1470u16, - BlockKind::BlackWallBanner => 8463u16, - BlockKind::QuartzStairs => 6949u16, - BlockKind::CyanGlazedTerracotta => 9660u16, - BlockKind::BlueCandle => 17550u16, - BlockKind::BlackStainedGlassPane => 7561u16, - BlockKind::CreeperWallHead => 6792u16, - BlockKind::DeepslateBricks => 19919u16, - BlockKind::OrangeConcrete => 9689u16, - BlockKind::StickyPiston => 1385u16, - BlockKind::Ladder => 3694u16, - BlockKind::DeadFireCoralBlock => 9763u16, - BlockKind::CyanStainedGlassPane => 7369u16, - BlockKind::Bricks => 1485u16, - BlockKind::MossCarpet => 18622u16, - BlockKind::Dandelion => 1468u16, - BlockKind::CyanCandle => 17518u16, - BlockKind::BirchSapling => 25u16, - BlockKind::RedBanner => 8371u16, - BlockKind::InfestedCobblestone => 4569u16, - BlockKind::RedWool => 1454u16, - BlockKind::CrimsonSlab => 15301u16, - BlockKind::FireCoralWallFan => 9874u16, - BlockKind::DarkOakWallSign => 3842u16, - BlockKind::Candle => 17358u16, - BlockKind::PinkCandle => 17470u16, - BlockKind::DeepslateTileWall => 19595u16, - BlockKind::FloweringAzaleaLeaves => 246u16, - BlockKind::PottedPoppy => 6520u16, - BlockKind::BrownCandle => 17566u16, - BlockKind::PurpurBlock => 9384u16, - BlockKind::PolishedAndesite => 7u16, - BlockKind::CyanBanner => 8291u16, - BlockKind::Poppy => 1469u16, - BlockKind::LightBlueGlazedTerracotta => 9636u16, - BlockKind::StrippedCrimsonStem => 15232u16, - BlockKind::TurtleEgg => 9748u16, - BlockKind::DioriteWall => 14681u16, - BlockKind::DarkOakTrapdoor => 4500u16, - BlockKind::YellowCandle => 17438u16, - BlockKind::YellowCandleCake => 17640u16, - BlockKind::PrismarineBrickSlab => 8100u16, - BlockKind::DeadTubeCoralWallFan => 9810u16, - BlockKind::DeepslateBrickWall => 20006u16, - BlockKind::QuartzPillar => 6946u16, - BlockKind::Snow => 3990u16, - BlockKind::DarkPrismarineStairs => 8014u16, - BlockKind::PurpleCarpet => 8126u16, - BlockKind::RootedDirt => 18682u16, - BlockKind::Spawner => 2009u16, - BlockKind::DarkOakPressurePlate => 3950u16, - BlockKind::AcaciaFenceGate => 8764u16, - BlockKind::Glowstone => 4082u16, - BlockKind::LargeFern => 8145u16, - BlockKind::CutCopperStairs => 18064u16, - BlockKind::SpruceSapling => 23u16, - BlockKind::WhiteStainedGlass => 4164u16, + BlockKind::DeadTubeCoralFan => 9790u16, BlockKind::DeadBrainCoralFan => 9792u16, - BlockKind::RedstoneLamp => 5361u16, - BlockKind::LapisOre => 263u16, - BlockKind::BrickWall => 11117u16, - BlockKind::WhiteShulkerBox => 9528u16, - BlockKind::BlackShulkerBox => 9618u16, - BlockKind::AmethystCluster => 17666u16, - BlockKind::SmoothRedSandstoneSlab => 11045u16, - BlockKind::SkeletonSkull => 6696u16, - BlockKind::PolishedDeepslateStairs => 19098u16, - BlockKind::TintedGlass => 17716u16, - BlockKind::MagentaWallBanner => 8411u16, - BlockKind::YellowWallBanner => 8419u16, - BlockKind::BrownWallBanner => 8451u16, - BlockKind::AcaciaFence => 8924u16, - BlockKind::GreenConcrete => 9701u16, - BlockKind::BlackTerracotta => 7080u16, - BlockKind::ZombieWallHead => 6752u16, - BlockKind::WaxedCutCopperStairs => 18416u16, - BlockKind::BrownGlazedTerracotta => 9672u16, - BlockKind::Bedrock => 33u16, - BlockKind::LightWeightedPressurePlate => 6852u16, - BlockKind::StrippedAcaciaLog => 103u16, - BlockKind::PrismarineStairs => 7854u16, - BlockKind::LightGrayGlazedTerracotta => 9656u16, - BlockKind::CobbledDeepslateSlab => 18767u16, + BlockKind::DeadBubbleCoralFan => 9794u16, + BlockKind::DeadFireCoralFan => 9796u16, + BlockKind::DeadHornCoralFan => 9798u16, + BlockKind::TubeCoralFan => 9800u16, + BlockKind::BrainCoralFan => 9802u16, + BlockKind::BubbleCoralFan => 9804u16, + BlockKind::FireCoralFan => 9806u16, + BlockKind::HornCoralFan => 9808u16, + BlockKind::DeadTubeCoralWallFan => 9810u16, + BlockKind::DeadBrainCoralWallFan => 9818u16, + BlockKind::DeadBubbleCoralWallFan => 9826u16, + BlockKind::DeadFireCoralWallFan => 9834u16, + BlockKind::DeadHornCoralWallFan => 9842u16, + BlockKind::TubeCoralWallFan => 9850u16, + BlockKind::BrainCoralWallFan => 9858u16, + BlockKind::BubbleCoralWallFan => 9866u16, + BlockKind::FireCoralWallFan => 9874u16, + BlockKind::HornCoralWallFan => 9882u16, + BlockKind::SeaPickle => 9890u16, + BlockKind::BlueIce => 9898u16, + BlockKind::Conduit => 9899u16, + BlockKind::BambooSapling => 9901u16, BlockKind::Bamboo => 9902u16, - BlockKind::CrimsonStairs => 15573u16, - BlockKind::StrippedBirchLog => 97u16, - BlockKind::BirchTrapdoor => 4308u16, - BlockKind::PottedJungleSapling => 6515u16, - BlockKind::SugarCane => 4017u16, - BlockKind::GreenWool => 1453u16, - BlockKind::NetherWartBlock => 9504u16, - BlockKind::AcaciaStairs => 7593u16, + BlockKind::PottedBamboo => 9914u16, + BlockKind::VoidAir => 9915u16, + BlockKind::CaveAir => 9916u16, + BlockKind::BubbleColumn => 9917u16, + BlockKind::PolishedGraniteStairs => 9930u16, + BlockKind::SmoothRedSandstoneStairs => 10010u16, + BlockKind::MossyStoneBrickStairs => 10090u16, + BlockKind::PolishedDioriteStairs => 10170u16, + BlockKind::MossyCobblestoneStairs => 10250u16, + BlockKind::EndStoneBrickStairs => 10330u16, + BlockKind::StoneStairs => 10410u16, + BlockKind::SmoothSandstoneStairs => 10490u16, + BlockKind::SmoothQuartzStairs => 10570u16, + BlockKind::GraniteStairs => 10650u16, + BlockKind::AndesiteStairs => 10730u16, + BlockKind::RedNetherBrickStairs => 10810u16, + BlockKind::PolishedAndesiteStairs => 10890u16, + BlockKind::DioriteStairs => 10970u16, + BlockKind::PolishedGraniteSlab => 11042u16, + BlockKind::SmoothRedSandstoneSlab => 11048u16, + BlockKind::MossyStoneBrickSlab => 11054u16, + BlockKind::PolishedDioriteSlab => 11060u16, + BlockKind::MossyCobblestoneSlab => 11066u16, + BlockKind::EndStoneBrickSlab => 11072u16, + BlockKind::SmoothSandstoneSlab => 11078u16, + BlockKind::SmoothQuartzSlab => 11084u16, + BlockKind::GraniteSlab => 11090u16, + BlockKind::AndesiteSlab => 11096u16, + BlockKind::RedNetherBrickSlab => 11102u16, + BlockKind::PolishedAndesiteSlab => 11108u16, + BlockKind::DioriteSlab => 11114u16, + BlockKind::BrickWall => 11120u16, + BlockKind::PrismarineWall => 11444u16, + BlockKind::RedSandstoneWall => 11768u16, + BlockKind::MossyStoneBrickWall => 12092u16, + BlockKind::GraniteWall => 12416u16, + BlockKind::StoneBrickWall => 12740u16, + BlockKind::NetherBrickWall => 13064u16, + BlockKind::AndesiteWall => 13388u16, + BlockKind::RedNetherBrickWall => 13712u16, + BlockKind::SandstoneWall => 14036u16, + BlockKind::EndStoneBrickWall => 14360u16, + BlockKind::DioriteWall => 14684u16, + BlockKind::Scaffolding => 15036u16, + BlockKind::Loom => 15037u16, + BlockKind::Barrel => 15042u16, + BlockKind::Smoker => 15054u16, + BlockKind::BlastFurnace => 15062u16, + BlockKind::CartographyTable => 15069u16, + BlockKind::FletchingTable => 15070u16, + BlockKind::Grindstone => 15075u16, + BlockKind::Lectern => 15086u16, + BlockKind::SmithingTable => 15099u16, + BlockKind::Stonecutter => 15100u16, + BlockKind::Bell => 15105u16, + BlockKind::Lantern => 15139u16, + BlockKind::SoulLantern => 15143u16, + BlockKind::Campfire => 15147u16, + BlockKind::SoulCampfire => 15179u16, + BlockKind::SweetBerryBush => 15208u16, + BlockKind::WarpedStem => 15213u16, + BlockKind::StrippedWarpedStem => 15216u16, + BlockKind::WarpedHyphae => 15219u16, + BlockKind::StrippedWarpedHyphae => 15222u16, + BlockKind::WarpedNylium => 15224u16, + BlockKind::WarpedFungus => 15225u16, + BlockKind::WarpedWartBlock => 15226u16, + BlockKind::WarpedRoots => 15227u16, + BlockKind::NetherSprouts => 15228u16, + BlockKind::CrimsonStem => 15230u16, + BlockKind::StrippedCrimsonStem => 15233u16, + BlockKind::CrimsonHyphae => 15236u16, + BlockKind::StrippedCrimsonHyphae => 15239u16, + BlockKind::CrimsonNylium => 15241u16, + BlockKind::CrimsonFungus => 15242u16, + BlockKind::Shroomlight => 15243u16, BlockKind::WeepingVines => 15244u16, - BlockKind::ChiseledNetherBricks => 17355u16, - BlockKind::Scaffolding => 15005u16, - BlockKind::TubeCoralFan => 9800u16, - BlockKind::LavaCauldron => 5346u16, - BlockKind::DarkPrismarineSlab => 8106u16, - BlockKind::RedNetherBricks => 9505u16, - BlockKind::WaxedCutCopperSlab => 18514u16, - BlockKind::PolishedBlackstoneBrickSlab => 16508u16, - BlockKind::LimeBanner => 8227u16, - BlockKind::GraniteStairs => 10639u16, - BlockKind::DetectorRail => 1361u16, - BlockKind::CrimsonFenceGate => 15509u16, - BlockKind::CrimsonTrapdoor => 15381u16, - BlockKind::InfestedCrackedStoneBricks => 4572u16, - BlockKind::Chain => 4798u16, - BlockKind::RedNetherBrickWall => 13709u16, - BlockKind::Granite => 2u16, + BlockKind::WeepingVinesPlant => 15270u16, + BlockKind::TwistingVines => 15271u16, + BlockKind::TwistingVinesPlant => 15297u16, + BlockKind::CrimsonRoots => 15298u16, + BlockKind::CrimsonPlanks => 15299u16, + BlockKind::WarpedPlanks => 15300u16, + BlockKind::CrimsonSlab => 15304u16, + BlockKind::WarpedSlab => 15310u16, + BlockKind::CrimsonPressurePlate => 15314u16, + BlockKind::WarpedPressurePlate => 15316u16, + BlockKind::CrimsonFence => 15348u16, + BlockKind::WarpedFence => 15380u16, + BlockKind::CrimsonTrapdoor => 15396u16, + BlockKind::WarpedTrapdoor => 15460u16, + BlockKind::CrimsonFenceGate => 15516u16, + BlockKind::WarpedFenceGate => 15548u16, + BlockKind::CrimsonStairs => 15584u16, + BlockKind::WarpedStairs => 15664u16, + BlockKind::CrimsonButton => 15742u16, + BlockKind::WarpedButton => 15766u16, + BlockKind::CrimsonDoor => 15792u16, + BlockKind::WarpedDoor => 15856u16, + BlockKind::CrimsonSign => 15910u16, + BlockKind::WarpedSign => 15942u16, + BlockKind::CrimsonWallSign => 15974u16, + BlockKind::WarpedWallSign => 15982u16, + BlockKind::StructureBlock => 15990u16, + BlockKind::Jigsaw => 16003u16, + BlockKind::Composter => 16005u16, + BlockKind::Target => 16014u16, + BlockKind::BeeNest => 16030u16, + BlockKind::Beehive => 16054u16, + BlockKind::HoneyBlock => 16078u16, + BlockKind::HoneycombBlock => 16079u16, BlockKind::NetheriteBlock => 16080u16, - BlockKind::EndStoneBrickWall => 14357u16, - BlockKind::NetherWart => 5329u16, - BlockKind::CobblestoneWall => 5863u16, - BlockKind::RedStainedGlassPane => 7529u16, + BlockKind::AncientDebris => 16081u16, + BlockKind::CryingObsidian => 16082u16, + BlockKind::RespawnAnchor => 16083u16, + BlockKind::PottedCrimsonFungus => 16088u16, + BlockKind::PottedWarpedFungus => 16089u16, + BlockKind::PottedCrimsonRoots => 16090u16, + BlockKind::PottedWarpedRoots => 16091u16, + BlockKind::Lodestone => 16092u16, + BlockKind::Blackstone => 16093u16, + BlockKind::BlackstoneStairs => 16105u16, + BlockKind::BlackstoneWall => 16177u16, + BlockKind::BlackstoneSlab => 16501u16, + BlockKind::PolishedBlackstone => 16504u16, + BlockKind::PolishedBlackstoneBricks => 16505u16, + BlockKind::CrackedPolishedBlackstoneBricks => 16506u16, + BlockKind::ChiseledPolishedBlackstone => 16507u16, + BlockKind::PolishedBlackstoneBrickSlab => 16511u16, + BlockKind::PolishedBlackstoneBrickStairs => 16525u16, + BlockKind::PolishedBlackstoneBrickWall => 16597u16, + BlockKind::GildedBlackstone => 16918u16, + BlockKind::PolishedBlackstoneStairs => 16930u16, + BlockKind::PolishedBlackstoneSlab => 17002u16, + BlockKind::PolishedBlackstonePressurePlate => 17006u16, + BlockKind::PolishedBlackstoneButton => 17016u16, + BlockKind::PolishedBlackstoneWall => 17034u16, + BlockKind::ChiseledNetherBricks => 17355u16, + BlockKind::CrackedNetherBricks => 17356u16, + BlockKind::QuartzBricks => 17357u16, + BlockKind::Candle => 17361u16, + BlockKind::WhiteCandle => 17377u16, + BlockKind::OrangeCandle => 17393u16, + BlockKind::MagentaCandle => 17409u16, + BlockKind::LightBlueCandle => 17425u16, + BlockKind::YellowCandle => 17441u16, + BlockKind::LimeCandle => 17457u16, + BlockKind::PinkCandle => 17473u16, + BlockKind::GrayCandle => 17489u16, + BlockKind::LightGrayCandle => 17505u16, + BlockKind::CyanCandle => 17521u16, + BlockKind::PurpleCandle => 17537u16, + BlockKind::BlueCandle => 17553u16, + BlockKind::BrownCandle => 17569u16, + BlockKind::GreenCandle => 17585u16, + BlockKind::RedCandle => 17601u16, + BlockKind::BlackCandle => 17617u16, + BlockKind::CandleCake => 17631u16, + BlockKind::WhiteCandleCake => 17633u16, + BlockKind::OrangeCandleCake => 17635u16, + BlockKind::MagentaCandleCake => 17637u16, + BlockKind::LightBlueCandleCake => 17639u16, + BlockKind::YellowCandleCake => 17641u16, + BlockKind::LimeCandleCake => 17643u16, + BlockKind::PinkCandleCake => 17645u16, + BlockKind::GrayCandleCake => 17647u16, + BlockKind::LightGrayCandleCake => 17649u16, + BlockKind::CyanCandleCake => 17651u16, + BlockKind::PurpleCandleCake => 17653u16, + BlockKind::BlueCandleCake => 17655u16, + BlockKind::BrownCandleCake => 17657u16, + BlockKind::GreenCandleCake => 17659u16, + BlockKind::RedCandleCake => 17661u16, + BlockKind::BlackCandleCake => 17663u16, + BlockKind::AmethystBlock => 17664u16, + BlockKind::BuddingAmethyst => 17665u16, + BlockKind::AmethystCluster => 17675u16, + BlockKind::LargeAmethystBud => 17687u16, + BlockKind::MediumAmethystBud => 17699u16, + BlockKind::SmallAmethystBud => 17711u16, + BlockKind::Tuff => 17714u16, + BlockKind::Calcite => 17715u16, + BlockKind::TintedGlass => 17716u16, + BlockKind::PowderSnow => 17717u16, + BlockKind::SculkSensor => 17719u16, + BlockKind::OxidizedCopper => 17814u16, + BlockKind::WeatheredCopper => 17815u16, + BlockKind::ExposedCopper => 17816u16, + BlockKind::CopperBlock => 17817u16, + BlockKind::CopperOre => 17818u16, + BlockKind::DeepslateCopperOre => 17819u16, BlockKind::OxidizedCutCopper => 17820u16, - BlockKind::Stone => 1u16, - BlockKind::DeepslateCoalOre => 74u16, - BlockKind::QuartzBlock => 6944u16, - BlockKind::Carrots => 6536u16, - BlockKind::OakSlab => 8550u16, + BlockKind::WeatheredCutCopper => 17821u16, + BlockKind::ExposedCutCopper => 17822u16, + BlockKind::CutCopper => 17823u16, + BlockKind::OxidizedCutCopperStairs => 17835u16, + BlockKind::WeatheredCutCopperStairs => 17915u16, + BlockKind::ExposedCutCopperStairs => 17995u16, + BlockKind::CutCopperStairs => 18075u16, + BlockKind::OxidizedCutCopperSlab => 18147u16, + BlockKind::WeatheredCutCopperSlab => 18153u16, + BlockKind::ExposedCutCopperSlab => 18159u16, + BlockKind::CutCopperSlab => 18165u16, + BlockKind::WaxedCopperBlock => 18168u16, + BlockKind::WaxedWeatheredCopper => 18169u16, + BlockKind::WaxedExposedCopper => 18170u16, + BlockKind::WaxedOxidizedCopper => 18171u16, + BlockKind::WaxedOxidizedCutCopper => 18172u16, + BlockKind::WaxedWeatheredCutCopper => 18173u16, + BlockKind::WaxedExposedCutCopper => 18174u16, + BlockKind::WaxedCutCopper => 18175u16, + BlockKind::WaxedOxidizedCutCopperStairs => 18187u16, + BlockKind::WaxedWeatheredCutCopperStairs => 18267u16, + BlockKind::WaxedExposedCutCopperStairs => 18347u16, + BlockKind::WaxedCutCopperStairs => 18427u16, + BlockKind::WaxedOxidizedCutCopperSlab => 18499u16, + BlockKind::WaxedWeatheredCutCopperSlab => 18505u16, + BlockKind::WaxedExposedCutCopperSlab => 18511u16, + BlockKind::WaxedCutCopperSlab => 18517u16, + BlockKind::LightningRod => 18539u16, + BlockKind::PointedDripstone => 18549u16, + BlockKind::DripstoneBlock => 18564u16, + BlockKind::CaveVines => 18566u16, + BlockKind::CaveVinesPlant => 18618u16, + BlockKind::SporeBlossom => 18619u16, + BlockKind::Azalea => 18620u16, + BlockKind::FloweringAzalea => 18621u16, + BlockKind::MossCarpet => 18622u16, + BlockKind::MossBlock => 18623u16, + BlockKind::BigDripleaf => 18625u16, + BlockKind::BigDripleafStem => 18657u16, + BlockKind::SmallDripleaf => 18667u16, + BlockKind::HangingRoots => 18681u16, + BlockKind::RootedDirt => 18682u16, + BlockKind::Deepslate => 18684u16, + BlockKind::CobbledDeepslate => 18686u16, + BlockKind::CobbledDeepslateStairs => 18698u16, + BlockKind::CobbledDeepslateSlab => 18770u16, + BlockKind::CobbledDeepslateWall => 18776u16, + BlockKind::PolishedDeepslate => 19097u16, + BlockKind::PolishedDeepslateStairs => 19109u16, + BlockKind::PolishedDeepslateSlab => 19181u16, + BlockKind::PolishedDeepslateWall => 19187u16, + BlockKind::DeepslateTiles => 19508u16, + BlockKind::DeepslateTileStairs => 19520u16, + BlockKind::DeepslateTileSlab => 19592u16, + BlockKind::DeepslateTileWall => 19598u16, + BlockKind::DeepslateBricks => 19919u16, + BlockKind::DeepslateBrickStairs => 19931u16, + BlockKind::DeepslateBrickSlab => 20003u16, + BlockKind::DeepslateBrickWall => 20009u16, + BlockKind::ChiseledDeepslate => 20330u16, + BlockKind::CrackedDeepslateBricks => 20331u16, + BlockKind::CrackedDeepslateTiles => 20332u16, + BlockKind::InfestedDeepslate => 20334u16, + BlockKind::SmoothBasalt => 20336u16, + BlockKind::RawIronBlock => 20337u16, + BlockKind::RawCopperBlock => 20338u16, BlockKind::RawGoldBlock => 20339u16, + BlockKind::PottedAzaleaBush => 20340u16, BlockKind::PottedFloweringAzaleaBush => 20341u16, - BlockKind::RedstoneWallTorch => 3958u16, - BlockKind::DarkOakSlab => 8580u16, - BlockKind::RawCopperBlock => 20338u16, - BlockKind::JungleTrapdoor => 4372u16, + } + } +} +impl BlockKind { + #[doc = "Returns the `min_state_id` property of this `BlockKind`."] + #[inline] + pub fn min_state_id(&self) -> u16 { + match self { + BlockKind::Air => 0u16, + BlockKind::Stone => 1u16, + BlockKind::Granite => 2u16, + BlockKind::PolishedGranite => 3u16, + BlockKind::Diorite => 4u16, + BlockKind::PolishedDiorite => 5u16, BlockKind::Andesite => 6u16, - BlockKind::ZombieHead => 6736u16, - BlockKind::GreenCandle => 17582u16, - BlockKind::MelonStem => 4853u16, - BlockKind::DeadBrainCoralWallFan => 9818u16, - BlockKind::BlackstoneWall => 16174u16, - BlockKind::WarpedTrapdoor => 15445u16, - BlockKind::PottedLilyOfTheValley => 6530u16, - BlockKind::CyanCandleCake => 17650u16, - BlockKind::StoneBrickStairs => 5133u16, - BlockKind::PolishedDioriteSlab => 11057u16, - BlockKind::SkeletonWallSkull => 6712u16, - BlockKind::Cobblestone => 14u16, - BlockKind::SeaPickle => 9890u16, - BlockKind::PinkCandleCake => 17644u16, - BlockKind::CaveVinesPlant => 18617u16, - BlockKind::StrippedBirchWood => 136u16, - BlockKind::SprucePlanks => 16u16, - BlockKind::WeepingVinesPlant => 15270u16, - BlockKind::DeadFireCoralWallFan => 9834u16, - BlockKind::OrangeCandleCake => 17634u16, - BlockKind::StrippedOakLog => 109u16, - BlockKind::JackOLantern => 4089u16, - BlockKind::PottedAllium => 6522u16, - BlockKind::OrangeTerracotta => 7066u16, - BlockKind::PurpleTerracotta => 7075u16, - BlockKind::OakPlanks => 15u16, - BlockKind::RoseBush => 8139u16, - BlockKind::Observer => 9510u16, - BlockKind::DeadFireCoralFan => 9796u16, - BlockKind::BrainCoralFan => 9802u16, - BlockKind::DioriteStairs => 10959u16, - BlockKind::OakPressurePlate => 3940u16, - BlockKind::WarpedPressurePlate => 15315u16, - BlockKind::WaxedCopperBlock => 18168u16, - BlockKind::SpruceTrapdoor => 4244u16, - BlockKind::ChiseledSandstone => 279u16, - BlockKind::WarpedWartBlock => 15226u16, - BlockKind::Clay => 4016u16, - BlockKind::AndesiteSlab => 11093u16, - BlockKind::EndGateway => 9474u16, - BlockKind::PottedDandelion => 6519u16, - BlockKind::LightBlueStainedGlass => 4167u16, - BlockKind::YellowBanner => 8211u16, - BlockKind::DeadTubeCoralBlock => 9760u16, - BlockKind::SweetBerryBush => 15208u16, - BlockKind::OrangeCandle => 17390u16, - BlockKind::BirchFenceGate => 8700u16, - BlockKind::RawIronBlock => 20337u16, - BlockKind::BlackStainedGlass => 4179u16, - BlockKind::Prismarine => 7851u16, - BlockKind::BirchWallSign => 3818u16, - BlockKind::DeepslateBrickSlab => 20000u16, - BlockKind::DragonHead => 6796u16, - BlockKind::MossyStoneBrickWall => 12089u16, - BlockKind::PolishedGraniteStairs => 9919u16, - BlockKind::IronDoor => 3876u16, - BlockKind::WhiteCandle => 17374u16, - BlockKind::DeepslateGoldOre => 70u16, - BlockKind::DeadBubbleCoralBlock => 9762u16, - BlockKind::Lodestone => 16092u16, - BlockKind::MagentaCarpet => 8118u16, - BlockKind::WaxedWeatheredCopper => 18169u16, - BlockKind::TubeCoralWallFan => 9850u16, - BlockKind::OakLeaves => 148u16, - BlockKind::PolishedBlackstoneBrickStairs => 16514u16, - BlockKind::BirchDoor => 9052u16, - BlockKind::PolishedDeepslateSlab => 19178u16, - BlockKind::GrayWool => 1447u16, - BlockKind::RedstoneTorch => 3956u16, - BlockKind::PottedCactus => 6535u16, - BlockKind::StrippedSpruceWood => 133u16, - BlockKind::BirchLeaves => 176u16, - BlockKind::BeeNest => 16030u16, - BlockKind::PinkStainedGlassPane => 7273u16, - BlockKind::DeadBubbleCoralWallFan => 9826u16, - BlockKind::JungleSign => 3566u16, + BlockKind::PolishedAndesite => 7u16, + BlockKind::GrassBlock => 8u16, + BlockKind::Dirt => 10u16, + BlockKind::CoarseDirt => 11u16, + BlockKind::Podzol => 12u16, + BlockKind::Cobblestone => 14u16, + BlockKind::OakPlanks => 15u16, + BlockKind::SprucePlanks => 16u16, + BlockKind::BirchPlanks => 17u16, + BlockKind::JunglePlanks => 18u16, + BlockKind::AcaciaPlanks => 19u16, + BlockKind::DarkOakPlanks => 20u16, + BlockKind::OakSapling => 21u16, + BlockKind::SpruceSapling => 23u16, + BlockKind::BirchSapling => 25u16, + BlockKind::JungleSapling => 27u16, + BlockKind::AcaciaSapling => 29u16, BlockKind::DarkOakSapling => 31u16, + BlockKind::Bedrock => 33u16, + BlockKind::Water => 34u16, + BlockKind::Lava => 50u16, + BlockKind::Sand => 66u16, + BlockKind::RedSand => 67u16, + BlockKind::Gravel => 68u16, + BlockKind::GoldOre => 69u16, + BlockKind::DeepslateGoldOre => 70u16, + BlockKind::IronOre => 71u16, + BlockKind::DeepslateIronOre => 72u16, + BlockKind::CoalOre => 73u16, + BlockKind::DeepslateCoalOre => 74u16, + BlockKind::NetherGoldOre => 75u16, + BlockKind::OakLog => 76u16, + BlockKind::SpruceLog => 79u16, + BlockKind::BirchLog => 82u16, + BlockKind::JungleLog => 85u16, + BlockKind::AcaciaLog => 88u16, + BlockKind::DarkOakLog => 91u16, + BlockKind::StrippedSpruceLog => 94u16, + BlockKind::StrippedBirchLog => 97u16, + BlockKind::StrippedJungleLog => 100u16, + BlockKind::StrippedAcaciaLog => 103u16, + BlockKind::StrippedDarkOakLog => 106u16, + BlockKind::StrippedOakLog => 109u16, + BlockKind::OakWood => 112u16, + BlockKind::SpruceWood => 115u16, + BlockKind::BirchWood => 118u16, BlockKind::JungleWood => 121u16, - BlockKind::Repeater => 4100u16, - BlockKind::MagentaTerracotta => 7067u16, - BlockKind::Dirt => 10u16, - BlockKind::JunglePressurePlate => 3946u16, - BlockKind::StrippedWarpedHyphae => 15221u16, - BlockKind::SoulSand => 4069u16, - BlockKind::GreenBanner => 8355u16, - BlockKind::PolishedDeepslate => 19097u16, - BlockKind::BlackBanner => 8387u16, + BlockKind::AcaciaWood => 124u16, + BlockKind::DarkOakWood => 127u16, + BlockKind::StrippedOakWood => 130u16, + BlockKind::StrippedSpruceWood => 133u16, + BlockKind::StrippedBirchWood => 136u16, + BlockKind::StrippedJungleWood => 139u16, + BlockKind::StrippedAcaciaWood => 142u16, + BlockKind::StrippedDarkOakWood => 145u16, + BlockKind::OakLeaves => 148u16, BlockKind::SpruceLeaves => 162u16, - BlockKind::BirchPlanks => 17u16, - BlockKind::Lectern => 15083u16, - BlockKind::DarkOakFenceGate => 8796u16, - BlockKind::EnderChest => 5457u16, - BlockKind::NetherSprouts => 15228u16, - BlockKind::Chest => 2090u16, - BlockKind::RepeatingCommandBlock => 9475u16, - BlockKind::Hopper => 6934u16, - BlockKind::PottedOrangeTulip => 6525u16, - BlockKind::HeavyWeightedPressurePlate => 6868u16, - BlockKind::SpruceWallSign => 3810u16, - BlockKind::DragonEgg => 5360u16, - BlockKind::GreenCarpet => 8129u16, - BlockKind::MagentaConcrete => 9690u16, - BlockKind::GrayBanner => 8259u16, - BlockKind::SlimeBlock => 7753u16, - BlockKind::RedConcretePowder => 9718u16, - BlockKind::PlayerHead => 6756u16, - BlockKind::GreenStainedGlass => 4177u16, - BlockKind::DarkPrismarine => 7853u16, - BlockKind::GrayWallBanner => 8431u16, - BlockKind::CyanWool => 1449u16, - BlockKind::CoarseDirt => 11u16, + BlockKind::BirchLeaves => 176u16, + BlockKind::JungleLeaves => 190u16, + BlockKind::AcaciaLeaves => 204u16, + BlockKind::DarkOakLeaves => 218u16, + BlockKind::AzaleaLeaves => 232u16, + BlockKind::FloweringAzaleaLeaves => 246u16, + BlockKind::Sponge => 260u16, + BlockKind::WetSponge => 261u16, + BlockKind::Glass => 262u16, + BlockKind::LapisOre => 263u16, + BlockKind::DeepslateLapisOre => 264u16, + BlockKind::LapisBlock => 265u16, BlockKind::Dispenser => 266u16, - BlockKind::Dropper => 7053u16, - BlockKind::LimeStainedGlassPane => 7241u16, - BlockKind::SmoothStoneSlab => 8592u16, - BlockKind::CobbledDeepslateWall => 18773u16, - BlockKind::EndStone => 5359u16, - BlockKind::GraniteWall => 12413u16, - BlockKind::DirtPath => 9473u16, - BlockKind::BirchButton => 6600u16, - BlockKind::SmoothRedSandstoneStairs => 9999u16, - BlockKind::BrownBed => 1273u16, - BlockKind::WaxedExposedCutCopperSlab => 18508u16, - BlockKind::IronBars => 4766u16, - BlockKind::Lava => 50u16, - BlockKind::StructureBlock => 15989u16, - BlockKind::Allium => 1471u16, - BlockKind::WaxedExposedCutCopperStairs => 18336u16, - BlockKind::DeepslateBrickStairs => 19920u16, - BlockKind::LilyPad => 5215u16, - BlockKind::SporeBlossom => 18619u16, - BlockKind::BambooSapling => 9901u16, - BlockKind::RedMushroom => 1482u16, - BlockKind::ChorusFlower => 9378u16, - BlockKind::DarkOakStairs => 7673u16, - BlockKind::Sunflower => 8135u16, - BlockKind::LightGrayCarpet => 8124u16, - BlockKind::YellowShulkerBox => 9552u16, - BlockKind::JungleSapling => 27u16, - BlockKind::NetherBrickFence => 5217u16, - BlockKind::YellowConcrete => 9692u16, - BlockKind::CrimsonWallSign => 15973u16, - BlockKind::StoneStairs => 10399u16, - BlockKind::EndPortalFrame => 5351u16, - BlockKind::CreeperHead => 6776u16, - BlockKind::CrackedDeepslateTiles => 20332u16, - BlockKind::Obsidian => 1490u16, - BlockKind::WhiteConcretePowder => 9704u16, - BlockKind::DeadBrainCoralBlock => 9761u16, - BlockKind::BlueBanner => 8323u16, - BlockKind::WarpedWallSign => 15981u16, - BlockKind::InfestedDeepslate => 20333u16, - BlockKind::Pumpkin => 4067u16, + BlockKind::Sandstone => 278u16, + BlockKind::ChiseledSandstone => 279u16, + BlockKind::CutSandstone => 280u16, + BlockKind::NoteBlock => 281u16, BlockKind::WhiteBed => 1081u16, - BlockKind::CrimsonPressurePlate => 15313u16, - BlockKind::PolishedDiorite => 5u16, - BlockKind::BubbleCoralBlock => 9767u16, - BlockKind::WarpedRoots => 15227u16, - BlockKind::OakWood => 112u16, - BlockKind::Conduit => 9899u16, - BlockKind::AttachedMelonStem => 4841u16, - BlockKind::WhiteStainedGlassPane => 7081u16, - BlockKind::MagentaCandleCake => 17636u16, - BlockKind::MossyCobblestoneWall => 6187u16, + BlockKind::OrangeBed => 1097u16, + BlockKind::MagentaBed => 1113u16, + BlockKind::LightBlueBed => 1129u16, BlockKind::YellowBed => 1145u16, - BlockKind::LightBlueCandleCake => 17638u16, - BlockKind::LimeConcretePowder => 9709u16, - BlockKind::WhiteConcrete => 9688u16, - BlockKind::LightGrayCandle => 17502u16, - BlockKind::BlueCandleCake => 17654u16, - BlockKind::CommandBlock => 5850u16, - BlockKind::GrayStainedGlass => 4171u16, - BlockKind::PinkGlazedTerracotta => 9648u16, - BlockKind::BrainCoralBlock => 9766u16, - BlockKind::PottedBlueOrchid => 6521u16, - BlockKind::RedShulkerBox => 9612u16, - BlockKind::MossyStoneBrickStairs => 10079u16, - BlockKind::CyanConcrete => 9697u16, - BlockKind::DeadFireCoral => 9776u16, - BlockKind::ChainCommandBlock => 9487u16, - BlockKind::PrismarineBrickStairs => 7934u16, - BlockKind::GreenConcretePowder => 9717u16, - BlockKind::WarpedStem => 15212u16, - BlockKind::BigDripleaf => 18624u16, - BlockKind::OrangeBanner => 8163u16, - BlockKind::HornCoralBlock => 9769u16, - BlockKind::RespawnAnchor => 16083u16, - BlockKind::WarpedStairs => 15653u16, - BlockKind::EndPortal => 5350u16, - BlockKind::PointedDripstone => 18544u16, - BlockKind::Deepslate => 18683u16, - BlockKind::Bookshelf => 1488u16, - BlockKind::BlueConcrete => 9699u16, - BlockKind::RedConcrete => 9702u16, - BlockKind::Sponge => 260u16, - BlockKind::DeadTubeCoral => 9770u16, - BlockKind::DamagedAnvil => 6824u16, - BlockKind::PolishedBlackstoneButton => 17007u16, - BlockKind::PottedDeadBush => 6534u16, - BlockKind::StrippedDarkOakLog => 106u16, - BlockKind::Beehive => 16054u16, - BlockKind::Kelp => 9720u16, - BlockKind::PolishedBlackstonePressurePlate => 17005u16, - BlockKind::FireCoralBlock => 9768u16, - BlockKind::SpruceButton => 6576u16, - BlockKind::SculkSensor => 17718u16, - BlockKind::BirchFence => 8860u16, - BlockKind::DeepslateIronOre => 72u16, - BlockKind::DeadTubeCoralFan => 9790u16, - BlockKind::WarpedPlanks => 15300u16, - BlockKind::TripwireHook => 5465u16, - BlockKind::SpruceSign => 3470u16, - BlockKind::PottedRedMushroom => 6532u16, - BlockKind::CrimsonNylium => 15241u16, - BlockKind::PolishedBlackstoneSlab => 16999u16, - BlockKind::CrackedDeepslateBricks => 20331u16, - BlockKind::SmallAmethystBud => 17702u16, + BlockKind::LimeBed => 1161u16, + BlockKind::PinkBed => 1177u16, + BlockKind::GrayBed => 1193u16, + BlockKind::LightGrayBed => 1209u16, + BlockKind::CyanBed => 1225u16, + BlockKind::PurpleBed => 1241u16, + BlockKind::BlueBed => 1257u16, + BlockKind::BrownBed => 1273u16, + BlockKind::GreenBed => 1289u16, + BlockKind::RedBed => 1305u16, + BlockKind::BlackBed => 1321u16, + BlockKind::PoweredRail => 1337u16, + BlockKind::DetectorRail => 1361u16, + BlockKind::StickyPiston => 1385u16, + BlockKind::Cobweb => 1397u16, + BlockKind::Grass => 1398u16, + BlockKind::Fern => 1399u16, + BlockKind::DeadBush => 1400u16, + BlockKind::Seagrass => 1401u16, + BlockKind::TallSeagrass => 1402u16, + BlockKind::Piston => 1404u16, + BlockKind::PistonHead => 1416u16, + BlockKind::WhiteWool => 1440u16, + BlockKind::OrangeWool => 1441u16, + BlockKind::MagentaWool => 1442u16, + BlockKind::LightBlueWool => 1443u16, + BlockKind::YellowWool => 1444u16, + BlockKind::LimeWool => 1445u16, + BlockKind::PinkWool => 1446u16, + BlockKind::GrayWool => 1447u16, + BlockKind::LightGrayWool => 1448u16, + BlockKind::CyanWool => 1449u16, + BlockKind::PurpleWool => 1450u16, + BlockKind::BlueWool => 1451u16, + BlockKind::BrownWool => 1452u16, + BlockKind::GreenWool => 1453u16, + BlockKind::RedWool => 1454u16, + BlockKind::BlackWool => 1455u16, + BlockKind::MovingPiston => 1456u16, + BlockKind::Dandelion => 1468u16, + BlockKind::Poppy => 1469u16, + BlockKind::BlueOrchid => 1470u16, + BlockKind::Allium => 1471u16, + BlockKind::AzureBluet => 1472u16, + BlockKind::RedTulip => 1473u16, + BlockKind::OrangeTulip => 1474u16, + BlockKind::WhiteTulip => 1475u16, + BlockKind::PinkTulip => 1476u16, + BlockKind::OxeyeDaisy => 1477u16, + BlockKind::Cornflower => 1478u16, + BlockKind::WitherRose => 1479u16, + BlockKind::LilyOfTheValley => 1480u16, + BlockKind::BrownMushroom => 1481u16, + BlockKind::RedMushroom => 1482u16, + BlockKind::GoldBlock => 1483u16, + BlockKind::IronBlock => 1484u16, + BlockKind::Bricks => 1485u16, + BlockKind::Tnt => 1486u16, + BlockKind::Bookshelf => 1488u16, + BlockKind::MossyCobblestone => 1489u16, + BlockKind::Obsidian => 1490u16, + BlockKind::Torch => 1491u16, + BlockKind::WallTorch => 1492u16, + BlockKind::Fire => 1496u16, + BlockKind::SoulFire => 2008u16, + BlockKind::Spawner => 2009u16, + BlockKind::OakStairs => 2010u16, + BlockKind::Chest => 2090u16, + BlockKind::RedstoneWire => 2114u16, + BlockKind::DiamondOre => 3410u16, + BlockKind::DeepslateDiamondOre => 3411u16, BlockKind::DiamondBlock => 3412u16, - BlockKind::BirchStairs => 5690u16, - BlockKind::DeepslateCopperOre => 17819u16, - BlockKind::WaxedOxidizedCutCopperSlab => 18496u16, - BlockKind::PolishedGranite => 3u16, BlockKind::CraftingTable => 3413u16, + BlockKind::Wheat => 3414u16, BlockKind::Farmland => 3422u16, - BlockKind::OakLog => 76u16, - BlockKind::NetherBrickSlab => 8634u16, - BlockKind::WaxedExposedCutCopper => 18174u16, - BlockKind::BlackstoneSlab => 16498u16, - BlockKind::JungleFenceGate => 8732u16, - BlockKind::FireCoral => 9786u16, - BlockKind::LimeShulkerBox => 9558u16, - BlockKind::LightGrayTerracotta => 7073u16, - BlockKind::DeadHornCoralWallFan => 9842u16, - BlockKind::Gravel => 68u16, - BlockKind::Sandstone => 278u16, - BlockKind::Blackstone => 16093u16, - BlockKind::OxidizedCutCopperSlab => 18144u16, + BlockKind::Furnace => 3430u16, + BlockKind::OakSign => 3438u16, + BlockKind::SpruceSign => 3470u16, + BlockKind::BirchSign => 3502u16, BlockKind::AcaciaSign => 3534u16, - BlockKind::ChiseledQuartzBlock => 6945u16, - BlockKind::Terracotta => 8132u16, - BlockKind::SpruceDoor => 8988u16, - BlockKind::PurpleConcretePowder => 9714u16, - BlockKind::RedCandleCake => 17660u16, - BlockKind::OrangeWool => 1441u16, - BlockKind::IronTrapdoor => 7787u16, - BlockKind::KelpPlant => 9746u16, - BlockKind::Cobweb => 1397u16, - BlockKind::LightBlueStainedGlassPane => 7177u16, - BlockKind::SnowBlock => 3999u16, - BlockKind::ShulkerBox => 9522u16, - BlockKind::LightGrayConcrete => 9696u16, - BlockKind::BlackConcretePowder => 9719u16, - BlockKind::PurpleCandleCake => 17652u16, - BlockKind::JungleLeaves => 190u16, - BlockKind::InfestedStoneBricks => 4570u16, - BlockKind::WhiteWallBanner => 8403u16, - BlockKind::SmoothRedSandstone => 8667u16, - BlockKind::CutCopper => 17823u16, - BlockKind::Piston => 1404u16, - BlockKind::GreenShulkerBox => 9606u16, - BlockKind::SmoothBasalt => 20336u16, - BlockKind::TwistingVines => 15271u16, - BlockKind::MossyStoneBrickSlab => 11051u16, - BlockKind::StoneSlab => 8586u16, - BlockKind::DeepslateTiles => 19508u16, - BlockKind::RedNetherBrickSlab => 11099u16, - BlockKind::IronOre => 71u16, - BlockKind::MagentaConcretePowder => 9706u16, - BlockKind::Smoker => 15053u16, - BlockKind::OakButton => 6552u16, - BlockKind::PottedWarpedFungus => 16089u16, - BlockKind::PurpleWool => 1450u16, - BlockKind::BrownBanner => 8339u16, - BlockKind::EndStoneBricks => 9468u16, - BlockKind::BlueShulkerBox => 9594u16, - BlockKind::DeepslateEmeraldOre => 5456u16, - BlockKind::WarpedSlab => 15307u16, - BlockKind::StructureVoid => 9509u16, - BlockKind::GrayGlazedTerracotta => 9652u16, - BlockKind::DarkOakWood => 127u16, - BlockKind::RedCarpet => 8130u16, - BlockKind::Lantern => 15136u16, - BlockKind::Jigsaw => 15993u16, - BlockKind::CaveVines => 18565u16, - BlockKind::Lever => 3850u16, - BlockKind::WaxedOxidizedCutCopperStairs => 18176u16, - BlockKind::WeatheredCopper => 17815u16, - BlockKind::LightBlueWool => 1443u16, - BlockKind::NetherBrickWall => 13061u16, - BlockKind::NoteBlock => 281u16, - BlockKind::GlassPane => 4804u16, - BlockKind::LightGrayConcretePowder => 9712u16, - BlockKind::Grass => 1398u16, - BlockKind::PolishedAndesiteSlab => 11105u16, - BlockKind::Beetroots => 9469u16, - BlockKind::Mycelium => 5213u16, - BlockKind::NetherBricks => 5216u16, - BlockKind::MagentaStainedGlass => 4166u16, - BlockKind::BlackstoneStairs => 16094u16, - BlockKind::LightBlueBed => 1129u16, - BlockKind::LightningRod => 18520u16, - BlockKind::LightBlueWallBanner => 8415u16, - BlockKind::GrayCandleCake => 17646u16, + BlockKind::JungleSign => 3566u16, + BlockKind::DarkOakSign => 3598u16, BlockKind::OakDoor => 3630u16, - BlockKind::ChorusPlant => 9314u16, - BlockKind::Glass => 262u16, + BlockKind::Ladder => 3694u16, + BlockKind::Rail => 3702u16, + BlockKind::CobblestoneStairs => 3722u16, + BlockKind::OakWallSign => 3802u16, + BlockKind::SpruceWallSign => 3810u16, + BlockKind::BirchWallSign => 3818u16, BlockKind::AcaciaWallSign => 3826u16, - BlockKind::SmallDripleaf => 18664u16, - BlockKind::WetSponge => 261u16, - BlockKind::PurpleConcrete => 9698u16, - BlockKind::PinkTerracotta => 7071u16, - BlockKind::BrownMushroomBlock => 4574u16, - BlockKind::FletchingTable => 15070u16, - BlockKind::Campfire => 15144u16, - BlockKind::SeaLantern => 8112u16, - BlockKind::WaxedOxidizedCopper => 18171u16, - BlockKind::HoneycombBlock => 16079u16, - BlockKind::EmeraldOre => 5455u16, - BlockKind::YellowWool => 1444u16, - BlockKind::DeadBubbleCoral => 9774u16, - BlockKind::Target => 16014u16, - BlockKind::PetrifiedOakSlab => 8610u16, - BlockKind::AttachedPumpkinStem => 4837u16, - BlockKind::JunglePlanks => 18u16, - BlockKind::WaxedExposedCopper => 18170u16, - BlockKind::RedstoneWire => 2114u16, - BlockKind::PurpleGlazedTerracotta => 9664u16, + BlockKind::JungleWallSign => 3834u16, + BlockKind::DarkOakWallSign => 3842u16, + BlockKind::Lever => 3850u16, BlockKind::StonePressurePlate => 3874u16, - BlockKind::MossBlock => 18623u16, - BlockKind::BirchSlab => 8562u16, - BlockKind::ActivatorRail => 7029u16, - BlockKind::BrickStairs => 5053u16, - BlockKind::LightBlueConcretePowder => 9707u16, - BlockKind::BrownCarpet => 8128u16, - BlockKind::AcaciaLeaves => 204u16, - BlockKind::PinkStainedGlass => 4170u16, - BlockKind::AcaciaDoor => 9180u16, - BlockKind::PolishedDioriteStairs => 10159u16, - BlockKind::CutRedSandstone => 8469u16, - BlockKind::Water => 34u16, - BlockKind::BlueTerracotta => 7076u16, - BlockKind::OrangeConcretePowder => 9705u16, - BlockKind::AzureBluet => 1472u16, - BlockKind::RedBed => 1305u16, + BlockKind::IronDoor => 3876u16, + BlockKind::OakPressurePlate => 3940u16, + BlockKind::SprucePressurePlate => 3942u16, + BlockKind::BirchPressurePlate => 3944u16, + BlockKind::JunglePressurePlate => 3946u16, + BlockKind::AcaciaPressurePlate => 3948u16, + BlockKind::DarkOakPressurePlate => 3950u16, + BlockKind::RedstoneOre => 3952u16, + BlockKind::DeepslateRedstoneOre => 3954u16, + BlockKind::RedstoneTorch => 3956u16, + BlockKind::RedstoneWallTorch => 3958u16, + BlockKind::StoneButton => 3966u16, + BlockKind::Snow => 3990u16, + BlockKind::Ice => 3998u16, + BlockKind::SnowBlock => 3999u16, + BlockKind::Cactus => 4000u16, + BlockKind::Clay => 4016u16, + BlockKind::SugarCane => 4017u16, + BlockKind::Jukebox => 4033u16, + BlockKind::OakFence => 4035u16, + BlockKind::Pumpkin => 4067u16, BlockKind::Netherrack => 4068u16, - BlockKind::AcaciaButton => 6648u16, - BlockKind::LimeGlazedTerracotta => 9644u16, - BlockKind::Furnace => 3430u16, - BlockKind::CobbledDeepslate => 18686u16, - BlockKind::DarkOakSign => 3598u16, - BlockKind::WarpedNylium => 15224u16, - BlockKind::Cocoa => 5363u16, - BlockKind::MagentaStainedGlassPane => 7145u16, - BlockKind::Grindstone => 15071u16, - BlockKind::BigDripleafStem => 18656u16, - BlockKind::EndRod => 9308u16, + BlockKind::SoulSand => 4069u16, BlockKind::SoulSoil => 4070u16, - BlockKind::CrimsonFence => 15317u16, - BlockKind::BrownMushroom => 1481u16, - BlockKind::LightGrayStainedGlassPane => 7337u16, - BlockKind::CyanWallBanner => 8439u16, - BlockKind::CoalOre => 73u16, - BlockKind::JungleDoor => 9116u16, - BlockKind::GoldOre => 69u16, - BlockKind::LimeTerracotta => 7070u16, - BlockKind::MagentaGlazedTerracotta => 9632u16, - BlockKind::WarpedFenceGate => 15541u16, - BlockKind::MagentaBed => 1113u16, - BlockKind::Calcite => 17715u16, - BlockKind::DarkOakButton => 6672u16, - BlockKind::CrimsonStem => 15229u16, - BlockKind::RedSandstone => 8467u16, - BlockKind::ExposedCutCopper => 17822u16, - BlockKind::StrippedDarkOakWood => 145u16, - BlockKind::QuartzSlab => 8640u16, - BlockKind::SpruceFence => 8828u16, - BlockKind::LightGrayShulkerBox => 9576u16, - BlockKind::CrimsonHyphae => 15235u16, - BlockKind::SpruceStairs => 5610u16, - BlockKind::JungleButton => 6624u16, - BlockKind::Cake => 4093u16, - BlockKind::RedTerracotta => 7079u16, - BlockKind::FireCoralFan => 9806u16, - BlockKind::PottedCrimsonFungus => 16088u16, - BlockKind::FrostedIce => 9499u16, - BlockKind::PinkTulip => 1476u16, - BlockKind::OakSign => 3438u16, - BlockKind::PolishedBlackstoneBrickWall => 16594u16, - BlockKind::CrimsonRoots => 15298u16, - BlockKind::LightBlueBanner => 8195u16, - BlockKind::WarpedHyphae => 15218u16, - BlockKind::PottedAzureBluet => 6523u16, - BlockKind::PurpleShulkerBox => 9588u16, - BlockKind::AndesiteWall => 13385u16, - BlockKind::MossyCobblestoneSlab => 11063u16, - BlockKind::ChiseledRedSandstone => 8468u16, - BlockKind::NetherBrickStairs => 5249u16, - BlockKind::WaxedWeatheredCutCopperSlab => 18502u16, - BlockKind::CyanTerracotta => 7074u16, - BlockKind::MossyCobblestone => 1489u16, - BlockKind::CryingObsidian => 16082u16, - BlockKind::PolishedBlackstoneWall => 17031u16, - BlockKind::ExposedCutCopperStairs => 17984u16, - BlockKind::OakWallSign => 3802u16, - BlockKind::VoidAir => 9915u16, - BlockKind::OxidizedCutCopperStairs => 17824u16, - BlockKind::LimeCandle => 17454u16, - BlockKind::RedGlazedTerracotta => 9680u16, - BlockKind::WeatheredCutCopperStairs => 17904u16, - BlockKind::GrassBlock => 8u16, - BlockKind::DarkOakLog => 91u16, - BlockKind::JungleLog => 85u16, - BlockKind::BubbleColumn => 9917u16, - BlockKind::CopperOre => 17818u16, - BlockKind::RedstoneBlock => 6932u16, + BlockKind::Basalt => 4071u16, + BlockKind::PolishedBasalt => 4074u16, + BlockKind::SoulTorch => 4077u16, + BlockKind::SoulWallTorch => 4078u16, + BlockKind::Glowstone => 4082u16, + BlockKind::NetherPortal => 4083u16, BlockKind::CarvedPumpkin => 4085u16, - BlockKind::WhiteTerracotta => 7065u16, - BlockKind::CutSandstone => 280u16, + BlockKind::JackOLantern => 4089u16, + BlockKind::Cake => 4093u16, + BlockKind::Repeater => 4100u16, + BlockKind::WhiteStainedGlass => 4164u16, + BlockKind::OrangeStainedGlass => 4165u16, + BlockKind::MagentaStainedGlass => 4166u16, + BlockKind::LightBlueStainedGlass => 4167u16, + BlockKind::YellowStainedGlass => 4168u16, + BlockKind::LimeStainedGlass => 4169u16, + BlockKind::PinkStainedGlass => 4170u16, + BlockKind::GrayStainedGlass => 4171u16, + BlockKind::LightGrayStainedGlass => 4172u16, + BlockKind::CyanStainedGlass => 4173u16, + BlockKind::PurpleStainedGlass => 4174u16, + BlockKind::BlueStainedGlass => 4175u16, + BlockKind::BrownStainedGlass => 4176u16, + BlockKind::GreenStainedGlass => 4177u16, + BlockKind::RedStainedGlass => 4178u16, + BlockKind::BlackStainedGlass => 4179u16, + BlockKind::OakTrapdoor => 4180u16, + BlockKind::SpruceTrapdoor => 4244u16, + BlockKind::BirchTrapdoor => 4308u16, + BlockKind::JungleTrapdoor => 4372u16, + BlockKind::AcaciaTrapdoor => 4436u16, + BlockKind::DarkOakTrapdoor => 4500u16, BlockKind::StoneBricks => 4564u16, - BlockKind::WaterCauldron => 5343u16, - BlockKind::WaxedCutCopper => 18175u16, - BlockKind::AcaciaWood => 124u16, - BlockKind::PottedAzaleaBush => 20340u16, - BlockKind::PackedIce => 8134u16, - BlockKind::DarkOakFence => 8956u16, - BlockKind::DeepslateTileSlab => 19589u16, - BlockKind::RedSandstoneSlab => 8646u16, - BlockKind::PurpurStairs => 9388u16, - BlockKind::GrayTerracotta => 7072u16, - BlockKind::PolishedBlackstoneStairs => 16919u16, - BlockKind::PottedOakSapling => 6512u16, - BlockKind::DeepslateTileStairs => 19509u16, + BlockKind::MossyStoneBricks => 4565u16, + BlockKind::CrackedStoneBricks => 4566u16, + BlockKind::ChiseledStoneBricks => 4567u16, + BlockKind::InfestedStone => 4568u16, + BlockKind::InfestedCobblestone => 4569u16, + BlockKind::InfestedStoneBricks => 4570u16, + BlockKind::InfestedMossyStoneBricks => 4571u16, + BlockKind::InfestedCrackedStoneBricks => 4572u16, + BlockKind::InfestedChiseledStoneBricks => 4573u16, + BlockKind::BrownMushroomBlock => 4574u16, + BlockKind::RedMushroomBlock => 4638u16, + BlockKind::MushroomStem => 4702u16, + BlockKind::IronBars => 4766u16, + BlockKind::Chain => 4798u16, + BlockKind::GlassPane => 4804u16, + BlockKind::Melon => 4836u16, + BlockKind::AttachedPumpkinStem => 4837u16, + BlockKind::AttachedMelonStem => 4841u16, + BlockKind::PumpkinStem => 4845u16, + BlockKind::MelonStem => 4853u16, + BlockKind::Vine => 4861u16, + BlockKind::GlowLichen => 4893u16, + BlockKind::OakFenceGate => 5021u16, + BlockKind::BrickStairs => 5053u16, + BlockKind::StoneBrickStairs => 5133u16, + BlockKind::Mycelium => 5213u16, + BlockKind::LilyPad => 5215u16, + BlockKind::NetherBricks => 5216u16, + BlockKind::NetherBrickFence => 5217u16, + BlockKind::NetherBrickStairs => 5249u16, + BlockKind::NetherWart => 5329u16, BlockKind::EnchantingTable => 5333u16, - BlockKind::BrownConcrete => 9700u16, - BlockKind::PottedDarkOakSapling => 6517u16, - BlockKind::PottedRedTulip => 6524u16, - BlockKind::OrangeTulip => 1474u16, - BlockKind::JungleWallSign => 3834u16, - BlockKind::GrayCarpet => 8123u16, - BlockKind::LightBlueShulkerBox => 9546u16, - BlockKind::StrippedOakWood => 130u16, - BlockKind::MovingPiston => 1456u16, - BlockKind::PolishedBlackstone => 16504u16, - BlockKind::SmoothQuartzSlab => 11081u16, - BlockKind::TallGrass => 8143u16, - BlockKind::StrippedSpruceLog => 94u16, - BlockKind::LightGrayStainedGlass => 4172u16, - BlockKind::WarpedSign => 15941u16, - BlockKind::DiamondOre => 3410u16, - BlockKind::DeepslateDiamondOre => 3411u16, BlockKind::BrewingStand => 5334u16, - BlockKind::JungleStairs => 5770u16, - BlockKind::JungleSlab => 8568u16, - BlockKind::Seagrass => 1401u16, - BlockKind::DeepslateRedstoneOre => 3954u16, - BlockKind::DioriteSlab => 11111u16, - BlockKind::OxeyeDaisy => 1477u16, - BlockKind::InfestedMossyStoneBricks => 4571u16, - BlockKind::PottedBamboo => 9914u16, - BlockKind::PistonHead => 1416u16, - BlockKind::BlueConcretePowder => 9715u16, - BlockKind::PowderSnow => 17717u16, - BlockKind::PottedWarpedRoots => 16091u16, - BlockKind::RedNetherBrickStairs => 10799u16, - BlockKind::WaxedOxidizedCutCopper => 18172u16, - BlockKind::CandleCake => 17630u16, - BlockKind::SoulFire => 2008u16, - BlockKind::LightBlueCarpet => 8119u16, - BlockKind::LimeWallBanner => 8423u16, + BlockKind::Cauldron => 5342u16, + BlockKind::WaterCauldron => 5343u16, + BlockKind::LavaCauldron => 5346u16, + BlockKind::PowderSnowCauldron => 5347u16, + BlockKind::EndPortal => 5350u16, + BlockKind::EndPortalFrame => 5351u16, + BlockKind::EndStone => 5359u16, + BlockKind::DragonEgg => 5360u16, + BlockKind::RedstoneLamp => 5361u16, + BlockKind::Cocoa => 5363u16, + BlockKind::SandstoneStairs => 5375u16, + BlockKind::EmeraldOre => 5455u16, + BlockKind::DeepslateEmeraldOre => 5456u16, + BlockKind::EnderChest => 5457u16, + BlockKind::TripwireHook => 5465u16, BlockKind::Tripwire => 5481u16, - BlockKind::BlackGlazedTerracotta => 9684u16, - BlockKind::DeadBrainCoral => 9772u16, - BlockKind::AcaciaLog => 88u16, - BlockKind::OakFence => 4035u16, - BlockKind::SmoothSandstoneStairs => 10479u16, - BlockKind::SandstoneSlab => 8598u16, - BlockKind::GreenCandleCake => 17658u16, - BlockKind::LapisBlock => 265u16, - BlockKind::GraniteSlab => 11087u16, - BlockKind::GrayCandle => 17486u16, - BlockKind::RedStainedGlass => 4178u16, - BlockKind::RedCandle => 17598u16, - BlockKind::PolishedBlackstoneBricks => 16505u16, BlockKind::EmeraldBlock => 5609u16, - BlockKind::LightBlueCandle => 17422u16, - BlockKind::InfestedStone => 4568u16, - BlockKind::BrownConcretePowder => 9716u16, - BlockKind::PolishedDeepslateWall => 19184u16, + BlockKind::SpruceStairs => 5610u16, + BlockKind::BirchStairs => 5690u16, + BlockKind::JungleStairs => 5770u16, + BlockKind::CommandBlock => 5850u16, + BlockKind::Beacon => 5862u16, + BlockKind::CobblestoneWall => 5863u16, + BlockKind::MossyCobblestoneWall => 6187u16, + BlockKind::FlowerPot => 6511u16, + BlockKind::PottedOakSapling => 6512u16, + BlockKind::PottedSpruceSapling => 6513u16, + BlockKind::PottedBirchSapling => 6514u16, + BlockKind::PottedJungleSapling => 6515u16, + BlockKind::PottedAcaciaSapling => 6516u16, + BlockKind::PottedDarkOakSapling => 6517u16, + BlockKind::PottedFern => 6518u16, + BlockKind::PottedDandelion => 6519u16, + BlockKind::PottedPoppy => 6520u16, + BlockKind::PottedBlueOrchid => 6521u16, + BlockKind::PottedAllium => 6522u16, + BlockKind::PottedAzureBluet => 6523u16, + BlockKind::PottedRedTulip => 6524u16, + BlockKind::PottedOrangeTulip => 6525u16, + BlockKind::PottedWhiteTulip => 6526u16, + BlockKind::PottedPinkTulip => 6527u16, + BlockKind::PottedOxeyeDaisy => 6528u16, + BlockKind::PottedCornflower => 6529u16, + BlockKind::PottedLilyOfTheValley => 6530u16, + BlockKind::PottedWitherRose => 6531u16, + BlockKind::PottedRedMushroom => 6532u16, + BlockKind::PottedBrownMushroom => 6533u16, + BlockKind::PottedDeadBush => 6534u16, + BlockKind::PottedCactus => 6535u16, + BlockKind::Carrots => 6536u16, BlockKind::Potatoes => 6544u16, - BlockKind::TubeCoral => 9780u16, + BlockKind::OakButton => 6552u16, + BlockKind::SpruceButton => 6576u16, + BlockKind::BirchButton => 6600u16, + BlockKind::JungleButton => 6624u16, + BlockKind::AcaciaButton => 6648u16, + BlockKind::DarkOakButton => 6672u16, + BlockKind::SkeletonSkull => 6696u16, + BlockKind::SkeletonWallSkull => 6712u16, + BlockKind::WitherSkeletonSkull => 6716u16, BlockKind::WitherSkeletonWallSkull => 6732u16, - BlockKind::MediumAmethystBud => 17690u16, - BlockKind::PottedOxeyeDaisy => 6528u16, - BlockKind::GreenBed => 1289u16, - BlockKind::Air => 0u16, - BlockKind::SoulLantern => 15140u16, - BlockKind::PowderSnowCauldron => 5347u16, + BlockKind::ZombieHead => 6736u16, + BlockKind::ZombieWallHead => 6752u16, + BlockKind::PlayerHead => 6756u16, + BlockKind::PlayerWallHead => 6772u16, + BlockKind::CreeperHead => 6776u16, + BlockKind::CreeperWallHead => 6792u16, + BlockKind::DragonHead => 6796u16, + BlockKind::DragonWallHead => 6812u16, + BlockKind::Anvil => 6816u16, + BlockKind::ChippedAnvil => 6820u16, + BlockKind::DamagedAnvil => 6824u16, + BlockKind::TrappedChest => 6828u16, + BlockKind::LightWeightedPressurePlate => 6852u16, + BlockKind::HeavyWeightedPressurePlate => 6868u16, + BlockKind::Comparator => 6884u16, + BlockKind::DaylightDetector => 6900u16, + BlockKind::RedstoneBlock => 6932u16, BlockKind::NetherQuartzOre => 6933u16, - BlockKind::BrainCoral => 9782u16, - BlockKind::PurpurSlab => 8658u16, - BlockKind::Jukebox => 4033u16, - BlockKind::PurpleBanner => 8307u16, - BlockKind::BrownStainedGlassPane => 7465u16, - BlockKind::PinkConcrete => 9694u16, - BlockKind::PolishedAndesiteStairs => 10879u16, - BlockKind::LightGrayBed => 1209u16, - BlockKind::Tuff => 17714u16, - BlockKind::ExposedCopper => 17816u16, - BlockKind::StoneBrickWall => 12737u16, - BlockKind::WarpedFence => 15349u16, - BlockKind::OakFenceGate => 5021u16, - BlockKind::GreenWallBanner => 8455u16, - BlockKind::RedMushroomBlock => 4638u16, - BlockKind::Fire => 1496u16, - BlockKind::SoulTorch => 4077u16, - BlockKind::LightGrayBanner => 8275u16, - BlockKind::OrangeGlazedTerracotta => 9628u16, - BlockKind::AndesiteStairs => 10719u16, - BlockKind::Loom => 15037u16, - BlockKind::StoneBrickSlab => 8628u16, - BlockKind::WitherRose => 1479u16, - BlockKind::AmethystBlock => 17664u16, - BlockKind::Barrel => 15041u16, - BlockKind::PottedSpruceSapling => 6513u16, - BlockKind::CoalBlock => 8133u16, - BlockKind::OrangeStainedGlass => 4165u16, - BlockKind::OrangeWallBanner => 8407u16, - BlockKind::CobblestoneStairs => 3722u16, - BlockKind::LimeCandleCake => 17642u16, - BlockKind::WhiteGlazedTerracotta => 9624u16, - BlockKind::RedstoneOre => 3952u16, - BlockKind::Podzol => 12u16, - BlockKind::StrippedJungleLog => 100u16, - BlockKind::GildedBlackstone => 16918u16, - BlockKind::QuartzBricks => 17357u16, - BlockKind::DriedKelpBlock => 9747u16, - BlockKind::PottedWitherRose => 6531u16, - BlockKind::DeepslateLapisOre => 264u16, - BlockKind::CartographyTable => 15069u16, - BlockKind::MagmaBlock => 9503u16, - BlockKind::DripstoneBlock => 18564u16, - BlockKind::SandstoneStairs => 5375u16, - BlockKind::PinkBanner => 8243u16, - BlockKind::DarkOakDoor => 9244u16, - BlockKind::CyanShulkerBox => 9582u16, - BlockKind::NetherGoldOre => 75u16, - BlockKind::SpruceFenceGate => 8668u16, - BlockKind::PinkConcretePowder => 9710u16, - BlockKind::GrayConcretePowder => 9711u16, - BlockKind::CopperBlock => 17817u16, - BlockKind::Sand => 66u16, - BlockKind::PinkWallBanner => 8427u16, - BlockKind::YellowConcretePowder => 9708u16, + BlockKind::Hopper => 6934u16, + BlockKind::QuartzBlock => 6944u16, + BlockKind::ChiseledQuartzBlock => 6945u16, + BlockKind::QuartzPillar => 6946u16, + BlockKind::QuartzStairs => 6949u16, + BlockKind::ActivatorRail => 7029u16, + BlockKind::Dropper => 7053u16, + BlockKind::WhiteTerracotta => 7065u16, + BlockKind::OrangeTerracotta => 7066u16, + BlockKind::MagentaTerracotta => 7067u16, + BlockKind::LightBlueTerracotta => 7068u16, + BlockKind::YellowTerracotta => 7069u16, + BlockKind::LimeTerracotta => 7070u16, + BlockKind::PinkTerracotta => 7071u16, + BlockKind::GrayTerracotta => 7072u16, + BlockKind::LightGrayTerracotta => 7073u16, + BlockKind::CyanTerracotta => 7074u16, + BlockKind::PurpleTerracotta => 7075u16, + BlockKind::BlueTerracotta => 7076u16, + BlockKind::BrownTerracotta => 7077u16, BlockKind::GreenTerracotta => 7078u16, - BlockKind::Wheat => 3414u16, - BlockKind::PinkCarpet => 8122u16, - BlockKind::SpruceLog => 79u16, + BlockKind::RedTerracotta => 7079u16, + BlockKind::BlackTerracotta => 7080u16, + BlockKind::WhiteStainedGlassPane => 7081u16, + BlockKind::OrangeStainedGlassPane => 7113u16, + BlockKind::MagentaStainedGlassPane => 7145u16, + BlockKind::LightBlueStainedGlassPane => 7177u16, + BlockKind::YellowStainedGlassPane => 7209u16, + BlockKind::LimeStainedGlassPane => 7241u16, + BlockKind::PinkStainedGlassPane => 7273u16, + BlockKind::GrayStainedGlassPane => 7305u16, + BlockKind::LightGrayStainedGlassPane => 7337u16, + BlockKind::CyanStainedGlassPane => 7369u16, + BlockKind::PurpleStainedGlassPane => 7401u16, BlockKind::BlueStainedGlassPane => 7433u16, - BlockKind::FlowerPot => 6511u16, - BlockKind::GreenGlazedTerracotta => 9676u16, - BlockKind::LimeWool => 1445u16, - BlockKind::GrayBed => 1193u16, - BlockKind::InfestedChiseledStoneBricks => 4573u16, - BlockKind::PolishedGraniteSlab => 11039u16, + BlockKind::BrownStainedGlassPane => 7465u16, + BlockKind::GreenStainedGlassPane => 7497u16, + BlockKind::RedStainedGlassPane => 7529u16, + BlockKind::BlackStainedGlassPane => 7561u16, + BlockKind::AcaciaStairs => 7593u16, + BlockKind::DarkOakStairs => 7673u16, + BlockKind::SlimeBlock => 7753u16, + BlockKind::Barrier => 7754u16, + BlockKind::Light => 7755u16, + BlockKind::IronTrapdoor => 7787u16, + BlockKind::Prismarine => 7851u16, + BlockKind::PrismarineBricks => 7852u16, + BlockKind::DarkPrismarine => 7853u16, + BlockKind::PrismarineStairs => 7854u16, + BlockKind::PrismarineBrickStairs => 7934u16, + BlockKind::DarkPrismarineStairs => 8014u16, + BlockKind::PrismarineSlab => 8094u16, + BlockKind::PrismarineBrickSlab => 8100u16, + BlockKind::DarkPrismarineSlab => 8106u16, + BlockKind::SeaLantern => 8112u16, + BlockKind::HayBlock => 8113u16, + BlockKind::WhiteCarpet => 8116u16, + BlockKind::OrangeCarpet => 8117u16, + BlockKind::MagentaCarpet => 8118u16, + BlockKind::LightBlueCarpet => 8119u16, + BlockKind::YellowCarpet => 8120u16, + BlockKind::LimeCarpet => 8121u16, + BlockKind::PinkCarpet => 8122u16, + BlockKind::GrayCarpet => 8123u16, + BlockKind::LightGrayCarpet => 8124u16, + BlockKind::CyanCarpet => 8125u16, + BlockKind::PurpleCarpet => 8126u16, + BlockKind::BlueCarpet => 8127u16, + BlockKind::BrownCarpet => 8128u16, + BlockKind::GreenCarpet => 8129u16, + BlockKind::RedCarpet => 8130u16, + BlockKind::BlackCarpet => 8131u16, + BlockKind::Terracotta => 8132u16, + BlockKind::CoalBlock => 8133u16, + BlockKind::PackedIce => 8134u16, + BlockKind::Sunflower => 8135u16, + BlockKind::Lilac => 8137u16, + BlockKind::RoseBush => 8139u16, + BlockKind::Peony => 8141u16, + BlockKind::TallGrass => 8143u16, + BlockKind::LargeFern => 8145u16, + BlockKind::WhiteBanner => 8147u16, + BlockKind::OrangeBanner => 8163u16, BlockKind::MagentaBanner => 8179u16, - BlockKind::MossyStoneBricks => 4565u16, - BlockKind::BrownCandleCake => 17656u16, + BlockKind::LightBlueBanner => 8195u16, + BlockKind::YellowBanner => 8211u16, + BlockKind::LimeBanner => 8227u16, + BlockKind::PinkBanner => 8243u16, + BlockKind::GrayBanner => 8259u16, + BlockKind::LightGrayBanner => 8275u16, + BlockKind::CyanBanner => 8291u16, + BlockKind::PurpleBanner => 8307u16, + BlockKind::BlueBanner => 8323u16, + BlockKind::BrownBanner => 8339u16, + BlockKind::GreenBanner => 8355u16, + BlockKind::RedBanner => 8371u16, + BlockKind::BlackBanner => 8387u16, + BlockKind::WhiteWallBanner => 8403u16, + BlockKind::OrangeWallBanner => 8407u16, + BlockKind::MagentaWallBanner => 8411u16, + BlockKind::LightBlueWallBanner => 8415u16, + BlockKind::YellowWallBanner => 8419u16, + BlockKind::LimeWallBanner => 8423u16, + BlockKind::PinkWallBanner => 8427u16, + BlockKind::GrayWallBanner => 8431u16, + BlockKind::LightGrayWallBanner => 8435u16, + BlockKind::CyanWallBanner => 8439u16, + BlockKind::PurpleWallBanner => 8443u16, + BlockKind::BlueWallBanner => 8447u16, + BlockKind::BrownWallBanner => 8451u16, + BlockKind::GreenWallBanner => 8455u16, + BlockKind::RedWallBanner => 8459u16, + BlockKind::BlackWallBanner => 8463u16, + BlockKind::RedSandstone => 8467u16, + BlockKind::ChiseledRedSandstone => 8468u16, + BlockKind::CutRedSandstone => 8469u16, + BlockKind::RedSandstoneStairs => 8470u16, + BlockKind::OakSlab => 8550u16, BlockKind::SpruceSlab => 8556u16, + BlockKind::BirchSlab => 8562u16, + BlockKind::JungleSlab => 8568u16, BlockKind::AcaciaSlab => 8574u16, - BlockKind::PrismarineWall => 11441u16, - BlockKind::GlowLichen => 4893u16, - BlockKind::Peony => 8141u16, - BlockKind::CyanConcretePowder => 9713u16, - BlockKind::GrayShulkerBox => 9570u16, - BlockKind::WeatheredCutCopper => 17821u16, - BlockKind::StrippedJungleWood => 139u16, - BlockKind::BirchSign => 3502u16, - BlockKind::Rail => 3702u16, - BlockKind::ChiseledStoneBricks => 4567u16, - BlockKind::BlueWool => 1451u16, + BlockKind::DarkOakSlab => 8580u16, + BlockKind::StoneSlab => 8586u16, + BlockKind::SmoothStoneSlab => 8592u16, + BlockKind::SandstoneSlab => 8598u16, + BlockKind::CutSandstoneSlab => 8604u16, + BlockKind::PetrifiedOakSlab => 8610u16, + BlockKind::CobblestoneSlab => 8616u16, + BlockKind::BrickSlab => 8622u16, + BlockKind::StoneBrickSlab => 8628u16, + BlockKind::NetherBrickSlab => 8634u16, + BlockKind::QuartzSlab => 8640u16, + BlockKind::RedSandstoneSlab => 8646u16, + BlockKind::CutRedSandstoneSlab => 8652u16, + BlockKind::PurpurSlab => 8658u16, BlockKind::SmoothStone => 8664u16, - BlockKind::Cornflower => 1478u16, - BlockKind::Beacon => 5862u16, - BlockKind::WhiteCarpet => 8116u16, - BlockKind::AncientDebris => 16081u16, - BlockKind::SprucePressurePlate => 3942u16, - BlockKind::SmithingTable => 15099u16, + BlockKind::SmoothSandstone => 8665u16, + BlockKind::SmoothQuartz => 8666u16, + BlockKind::SmoothRedSandstone => 8667u16, + BlockKind::SpruceFenceGate => 8668u16, + BlockKind::BirchFenceGate => 8700u16, + BlockKind::JungleFenceGate => 8732u16, + BlockKind::AcaciaFenceGate => 8764u16, + BlockKind::DarkOakFenceGate => 8796u16, + BlockKind::SpruceFence => 8828u16, + BlockKind::BirchFence => 8860u16, + BlockKind::JungleFence => 8892u16, + BlockKind::AcaciaFence => 8924u16, + BlockKind::DarkOakFence => 8956u16, + BlockKind::SpruceDoor => 8988u16, + BlockKind::BirchDoor => 9052u16, + BlockKind::JungleDoor => 9116u16, + BlockKind::AcaciaDoor => 9180u16, + BlockKind::DarkOakDoor => 9244u16, + BlockKind::EndRod => 9308u16, + BlockKind::ChorusPlant => 9314u16, + BlockKind::ChorusFlower => 9378u16, + BlockKind::PurpurBlock => 9384u16, + BlockKind::PurpurPillar => 9385u16, + BlockKind::PurpurStairs => 9388u16, + BlockKind::EndStoneBricks => 9468u16, + BlockKind::Beetroots => 9469u16, + BlockKind::DirtPath => 9473u16, + BlockKind::EndGateway => 9474u16, + BlockKind::RepeatingCommandBlock => 9475u16, + BlockKind::ChainCommandBlock => 9487u16, + BlockKind::FrostedIce => 9499u16, + BlockKind::MagmaBlock => 9503u16, + BlockKind::NetherWartBlock => 9504u16, + BlockKind::RedNetherBricks => 9505u16, + BlockKind::BoneBlock => 9506u16, + BlockKind::StructureVoid => 9509u16, + BlockKind::Observer => 9510u16, + BlockKind::ShulkerBox => 9522u16, + BlockKind::WhiteShulkerBox => 9528u16, + BlockKind::OrangeShulkerBox => 9534u16, + BlockKind::MagentaShulkerBox => 9540u16, + BlockKind::LightBlueShulkerBox => 9546u16, + BlockKind::YellowShulkerBox => 9552u16, + BlockKind::LimeShulkerBox => 9558u16, + BlockKind::PinkShulkerBox => 9564u16, + BlockKind::GrayShulkerBox => 9570u16, + BlockKind::LightGrayShulkerBox => 9576u16, + BlockKind::CyanShulkerBox => 9582u16, + BlockKind::PurpleShulkerBox => 9588u16, + BlockKind::BlueShulkerBox => 9594u16, + BlockKind::BrownShulkerBox => 9600u16, + BlockKind::GreenShulkerBox => 9606u16, + BlockKind::RedShulkerBox => 9612u16, + BlockKind::BlackShulkerBox => 9618u16, + BlockKind::WhiteGlazedTerracotta => 9624u16, + BlockKind::OrangeGlazedTerracotta => 9628u16, + BlockKind::MagentaGlazedTerracotta => 9632u16, + BlockKind::LightBlueGlazedTerracotta => 9636u16, BlockKind::YellowGlazedTerracotta => 9640u16, - BlockKind::CrackedPolishedBlackstoneBricks => 16506u16, - BlockKind::CutRedSandstoneSlab => 8652u16, - BlockKind::StoneButton => 3966u16, - BlockKind::SoulWallTorch => 4078u16, + BlockKind::LimeGlazedTerracotta => 9644u16, + BlockKind::PinkGlazedTerracotta => 9648u16, + BlockKind::GrayGlazedTerracotta => 9652u16, + BlockKind::LightGrayGlazedTerracotta => 9656u16, + BlockKind::CyanGlazedTerracotta => 9660u16, + BlockKind::PurpleGlazedTerracotta => 9664u16, BlockKind::BlueGlazedTerracotta => 9668u16, - BlockKind::OakSapling => 21u16, - BlockKind::AcaciaPressurePlate => 3948u16, - BlockKind::GrayStainedGlassPane => 7305u16, - BlockKind::BlueStainedGlass => 4175u16, - BlockKind::BrownStainedGlass => 4176u16, - BlockKind::LightGrayWool => 1448u16, - BlockKind::PottedFern => 6518u16, - BlockKind::CrimsonButton => 15733u16, - BlockKind::NetherPortal => 4083u16, - BlockKind::WarpedDoor => 15845u16, - BlockKind::MossyCobblestoneStairs => 10239u16, - BlockKind::YellowStainedGlassPane => 7209u16, - BlockKind::Melon => 4836u16, - BlockKind::LightGrayCandleCake => 17648u16, - BlockKind::YellowCarpet => 8120u16, - BlockKind::BlueIce => 9898u16, - BlockKind::FloweringAzalea => 18621u16, - BlockKind::PurpleWallBanner => 8443u16, - BlockKind::PottedCornflower => 6529u16, - BlockKind::AzaleaLeaves => 232u16, + BlockKind::BrownGlazedTerracotta => 9672u16, + BlockKind::GreenGlazedTerracotta => 9676u16, + BlockKind::RedGlazedTerracotta => 9680u16, + BlockKind::BlackGlazedTerracotta => 9684u16, + BlockKind::WhiteConcrete => 9688u16, + BlockKind::OrangeConcrete => 9689u16, + BlockKind::MagentaConcrete => 9690u16, + BlockKind::LightBlueConcrete => 9691u16, + BlockKind::YellowConcrete => 9692u16, BlockKind::LimeConcrete => 9693u16, + BlockKind::PinkConcrete => 9694u16, + BlockKind::GrayConcrete => 9695u16, + BlockKind::LightGrayConcrete => 9696u16, + BlockKind::CyanConcrete => 9697u16, + BlockKind::PurpleConcrete => 9698u16, + BlockKind::BlueConcrete => 9699u16, + BlockKind::BrownConcrete => 9700u16, + BlockKind::GreenConcrete => 9701u16, + BlockKind::RedConcrete => 9702u16, BlockKind::BlackConcrete => 9703u16, - BlockKind::Diorite => 4u16, - BlockKind::CrackedNetherBricks => 17356u16, - BlockKind::DaylightDetector => 6900u16, - BlockKind::BoneBlock => 9506u16, - BlockKind::BrownWool => 1452u16, + BlockKind::WhiteConcretePowder => 9704u16, + BlockKind::OrangeConcretePowder => 9705u16, + BlockKind::MagentaConcretePowder => 9706u16, + BlockKind::LightBlueConcretePowder => 9707u16, + BlockKind::YellowConcretePowder => 9708u16, + BlockKind::LimeConcretePowder => 9709u16, + BlockKind::PinkConcretePowder => 9710u16, + BlockKind::GrayConcretePowder => 9711u16, + BlockKind::LightGrayConcretePowder => 9712u16, + BlockKind::CyanConcretePowder => 9713u16, + BlockKind::PurpleConcretePowder => 9714u16, + BlockKind::BlueConcretePowder => 9715u16, + BlockKind::BrownConcretePowder => 9716u16, + BlockKind::GreenConcretePowder => 9717u16, + BlockKind::RedConcretePowder => 9718u16, + BlockKind::BlackConcretePowder => 9719u16, + BlockKind::Kelp => 9720u16, + BlockKind::KelpPlant => 9746u16, + BlockKind::DriedKelpBlock => 9747u16, + BlockKind::TurtleEgg => 9748u16, + BlockKind::DeadTubeCoralBlock => 9760u16, + BlockKind::DeadBrainCoralBlock => 9761u16, + BlockKind::DeadBubbleCoralBlock => 9762u16, + BlockKind::DeadFireCoralBlock => 9763u16, + BlockKind::DeadHornCoralBlock => 9764u16, + BlockKind::TubeCoralBlock => 9765u16, + BlockKind::BrainCoralBlock => 9766u16, + BlockKind::BubbleCoralBlock => 9767u16, + BlockKind::FireCoralBlock => 9768u16, + BlockKind::HornCoralBlock => 9769u16, + BlockKind::DeadTubeCoral => 9770u16, + BlockKind::DeadBrainCoral => 9772u16, + BlockKind::DeadBubbleCoral => 9774u16, + BlockKind::DeadFireCoral => 9776u16, + BlockKind::DeadHornCoral => 9778u16, + BlockKind::TubeCoral => 9780u16, + BlockKind::BrainCoral => 9782u16, + BlockKind::BubbleCoral => 9784u16, + BlockKind::FireCoral => 9786u16, + BlockKind::HornCoral => 9788u16, + BlockKind::DeadTubeCoralFan => 9790u16, + BlockKind::DeadBrainCoralFan => 9792u16, + BlockKind::DeadBubbleCoralFan => 9794u16, + BlockKind::DeadFireCoralFan => 9796u16, + BlockKind::DeadHornCoralFan => 9798u16, + BlockKind::TubeCoralFan => 9800u16, + BlockKind::BrainCoralFan => 9802u16, + BlockKind::BubbleCoralFan => 9804u16, + BlockKind::FireCoralFan => 9806u16, + BlockKind::HornCoralFan => 9808u16, + BlockKind::DeadTubeCoralWallFan => 9810u16, + BlockKind::DeadBrainCoralWallFan => 9818u16, + BlockKind::DeadBubbleCoralWallFan => 9826u16, + BlockKind::DeadFireCoralWallFan => 9834u16, + BlockKind::DeadHornCoralWallFan => 9842u16, + BlockKind::TubeCoralWallFan => 9850u16, BlockKind::BrainCoralWallFan => 9858u16, BlockKind::BubbleCoralWallFan => 9866u16, - BlockKind::BlackCarpet => 8131u16, - BlockKind::GreenStainedGlassPane => 7497u16, - BlockKind::DeadBubbleCoralFan => 9794u16, - BlockKind::TwistingVinesPlant => 15297u16, - BlockKind::Light => 7755u16, - BlockKind::CobbledDeepslateStairs => 18687u16, - BlockKind::CyanStainedGlass => 4173u16, - BlockKind::YellowTerracotta => 7069u16, + BlockKind::FireCoralWallFan => 9874u16, + BlockKind::HornCoralWallFan => 9882u16, + BlockKind::SeaPickle => 9890u16, + BlockKind::BlueIce => 9898u16, + BlockKind::Conduit => 9899u16, + BlockKind::BambooSapling => 9901u16, + BlockKind::Bamboo => 9902u16, + BlockKind::PottedBamboo => 9914u16, + BlockKind::VoidAir => 9915u16, BlockKind::CaveAir => 9916u16, - BlockKind::ChippedAnvil => 6820u16, + BlockKind::BubbleColumn => 9917u16, + BlockKind::PolishedGraniteStairs => 9919u16, + BlockKind::SmoothRedSandstoneStairs => 9999u16, + BlockKind::MossyStoneBrickStairs => 10079u16, + BlockKind::PolishedDioriteStairs => 10159u16, + BlockKind::MossyCobblestoneStairs => 10239u16, + BlockKind::EndStoneBrickStairs => 10319u16, + BlockKind::StoneStairs => 10399u16, + BlockKind::SmoothSandstoneStairs => 10479u16, + BlockKind::SmoothQuartzStairs => 10559u16, + BlockKind::GraniteStairs => 10639u16, + BlockKind::AndesiteStairs => 10719u16, + BlockKind::RedNetherBrickStairs => 10799u16, + BlockKind::PolishedAndesiteStairs => 10879u16, + BlockKind::DioriteStairs => 10959u16, + BlockKind::PolishedGraniteSlab => 11039u16, + BlockKind::SmoothRedSandstoneSlab => 11045u16, + BlockKind::MossyStoneBrickSlab => 11051u16, + BlockKind::PolishedDioriteSlab => 11057u16, + BlockKind::MossyCobblestoneSlab => 11063u16, + BlockKind::EndStoneBrickSlab => 11069u16, + BlockKind::SmoothSandstoneSlab => 11075u16, + BlockKind::SmoothQuartzSlab => 11081u16, + BlockKind::GraniteSlab => 11087u16, + BlockKind::AndesiteSlab => 11093u16, + BlockKind::RedNetherBrickSlab => 11099u16, + BlockKind::PolishedAndesiteSlab => 11105u16, + BlockKind::DioriteSlab => 11111u16, + BlockKind::BrickWall => 11117u16, + BlockKind::PrismarineWall => 11441u16, + BlockKind::RedSandstoneWall => 11765u16, + BlockKind::MossyStoneBrickWall => 12089u16, + BlockKind::GraniteWall => 12413u16, + BlockKind::StoneBrickWall => 12737u16, + BlockKind::NetherBrickWall => 13061u16, + BlockKind::AndesiteWall => 13385u16, + BlockKind::RedNetherBrickWall => 13709u16, + BlockKind::SandstoneWall => 14033u16, + BlockKind::EndStoneBrickWall => 14357u16, + BlockKind::DioriteWall => 14681u16, + BlockKind::Scaffolding => 15005u16, + BlockKind::Loom => 15037u16, + BlockKind::Barrel => 15041u16, + BlockKind::Smoker => 15053u16, + BlockKind::BlastFurnace => 15061u16, + BlockKind::CartographyTable => 15069u16, + BlockKind::FletchingTable => 15070u16, + BlockKind::Grindstone => 15071u16, + BlockKind::Lectern => 15083u16, + BlockKind::SmithingTable => 15099u16, BlockKind::Stonecutter => 15100u16, - BlockKind::HornCoralWallFan => 9882u16, - BlockKind::WarpedButton => 15757u16, - BlockKind::Torch => 1491u16, - BlockKind::TubeCoralBlock => 9765u16, - BlockKind::Shroomlight => 15243u16, - BlockKind::LimeStainedGlass => 4169u16, - BlockKind::OxidizedCopper => 17814u16, - BlockKind::BubbleCoral => 9784u16, - BlockKind::PurpurPillar => 9385u16, - BlockKind::BrownTerracotta => 7077u16, BlockKind::Bell => 15104u16, - BlockKind::MushroomStem => 4702u16, - BlockKind::Lilac => 8137u16, - BlockKind::LightBlueConcrete => 9691u16, - BlockKind::OakTrapdoor => 4180u16, - BlockKind::CobblestoneSlab => 8616u16, - BlockKind::SmoothQuartzStairs => 10559u16, - BlockKind::SmoothSandstone => 8665u16, - BlockKind::PolishedBasalt => 4074u16, - BlockKind::OrangeCarpet => 8117u16, + BlockKind::Lantern => 15136u16, + BlockKind::SoulLantern => 15140u16, + BlockKind::Campfire => 15144u16, + BlockKind::SoulCampfire => 15176u16, + BlockKind::SweetBerryBush => 15208u16, + BlockKind::WarpedStem => 15212u16, + BlockKind::StrippedWarpedStem => 15215u16, + BlockKind::WarpedHyphae => 15218u16, + BlockKind::StrippedWarpedHyphae => 15221u16, + BlockKind::WarpedNylium => 15224u16, + BlockKind::WarpedFungus => 15225u16, + BlockKind::WarpedWartBlock => 15226u16, + BlockKind::WarpedRoots => 15227u16, + BlockKind::NetherSprouts => 15228u16, + BlockKind::CrimsonStem => 15229u16, + BlockKind::StrippedCrimsonStem => 15232u16, + BlockKind::CrimsonHyphae => 15235u16, + BlockKind::StrippedCrimsonHyphae => 15238u16, + BlockKind::CrimsonNylium => 15241u16, + BlockKind::CrimsonFungus => 15242u16, + BlockKind::Shroomlight => 15243u16, + BlockKind::WeepingVines => 15244u16, + BlockKind::WeepingVinesPlant => 15270u16, + BlockKind::TwistingVines => 15271u16, + BlockKind::TwistingVinesPlant => 15297u16, + BlockKind::CrimsonRoots => 15298u16, BlockKind::CrimsonPlanks => 15299u16, - BlockKind::WhiteTulip => 1475u16, - BlockKind::MagentaCandle => 17406u16, - BlockKind::GoldBlock => 1483u16, - BlockKind::WhiteBanner => 8147u16, - BlockKind::WitherSkeletonSkull => 6716u16, + BlockKind::WarpedPlanks => 15300u16, + BlockKind::CrimsonSlab => 15301u16, + BlockKind::WarpedSlab => 15307u16, + BlockKind::CrimsonPressurePlate => 15313u16, + BlockKind::WarpedPressurePlate => 15315u16, + BlockKind::CrimsonFence => 15317u16, + BlockKind::WarpedFence => 15349u16, + BlockKind::CrimsonTrapdoor => 15381u16, + BlockKind::WarpedTrapdoor => 15445u16, + BlockKind::CrimsonFenceGate => 15509u16, + BlockKind::WarpedFenceGate => 15541u16, + BlockKind::CrimsonStairs => 15573u16, + BlockKind::WarpedStairs => 15653u16, + BlockKind::CrimsonButton => 15733u16, + BlockKind::WarpedButton => 15757u16, BlockKind::CrimsonDoor => 15781u16, - BlockKind::Ice => 3998u16, - BlockKind::Vine => 4861u16, - BlockKind::Barrier => 7754u16, - BlockKind::MagentaWool => 1442u16, + BlockKind::WarpedDoor => 15845u16, + BlockKind::CrimsonSign => 15909u16, + BlockKind::WarpedSign => 15941u16, + BlockKind::CrimsonWallSign => 15973u16, + BlockKind::WarpedWallSign => 15981u16, + BlockKind::StructureBlock => 15989u16, + BlockKind::Jigsaw => 15993u16, + BlockKind::Composter => 16005u16, + BlockKind::Target => 16014u16, + BlockKind::BeeNest => 16030u16, + BlockKind::Beehive => 16054u16, BlockKind::HoneyBlock => 16078u16, - BlockKind::BirchLog => 82u16, - BlockKind::BuddingAmethyst => 17665u16, - BlockKind::CrimsonFungus => 15242u16, - BlockKind::Cactus => 4000u16, - BlockKind::PoweredRail => 1337u16, - BlockKind::DarkOakLeaves => 218u16, - BlockKind::PurpleStainedGlass => 4174u16, + BlockKind::HoneycombBlock => 16079u16, + BlockKind::NetheriteBlock => 16080u16, + BlockKind::AncientDebris => 16081u16, + BlockKind::CryingObsidian => 16082u16, + BlockKind::RespawnAnchor => 16083u16, + BlockKind::PottedCrimsonFungus => 16088u16, + BlockKind::PottedWarpedFungus => 16089u16, + BlockKind::PottedCrimsonRoots => 16090u16, + BlockKind::PottedWarpedRoots => 16091u16, + BlockKind::Lodestone => 16092u16, + BlockKind::Blackstone => 16093u16, + BlockKind::BlackstoneStairs => 16094u16, + BlockKind::BlackstoneWall => 16174u16, + BlockKind::BlackstoneSlab => 16498u16, + BlockKind::PolishedBlackstone => 16504u16, + BlockKind::PolishedBlackstoneBricks => 16505u16, + BlockKind::CrackedPolishedBlackstoneBricks => 16506u16, + BlockKind::ChiseledPolishedBlackstone => 16507u16, + BlockKind::PolishedBlackstoneBrickSlab => 16508u16, + BlockKind::PolishedBlackstoneBrickStairs => 16514u16, + BlockKind::PolishedBlackstoneBrickWall => 16594u16, + BlockKind::GildedBlackstone => 16918u16, + BlockKind::PolishedBlackstoneStairs => 16919u16, + BlockKind::PolishedBlackstoneSlab => 16999u16, + BlockKind::PolishedBlackstonePressurePlate => 17005u16, + BlockKind::PolishedBlackstoneButton => 17007u16, + BlockKind::PolishedBlackstoneWall => 17031u16, + BlockKind::ChiseledNetherBricks => 17355u16, + BlockKind::CrackedNetherBricks => 17356u16, + BlockKind::QuartzBricks => 17357u16, + BlockKind::Candle => 17358u16, + BlockKind::WhiteCandle => 17374u16, + BlockKind::OrangeCandle => 17390u16, + BlockKind::MagentaCandle => 17406u16, + BlockKind::LightBlueCandle => 17422u16, + BlockKind::YellowCandle => 17438u16, + BlockKind::LimeCandle => 17454u16, + BlockKind::PinkCandle => 17470u16, + BlockKind::GrayCandle => 17486u16, + BlockKind::LightGrayCandle => 17502u16, + BlockKind::CyanCandle => 17518u16, BlockKind::PurpleCandle => 17534u16, - BlockKind::BrickSlab => 8622u16, - BlockKind::SmoothQuartz => 8666u16, - BlockKind::PlayerWallHead => 6772u16, - BlockKind::PottedBirchSapling => 6514u16, - BlockKind::PurpleStainedGlassPane => 7401u16, - BlockKind::GrayConcrete => 9695u16, - BlockKind::TrappedChest => 6828u16, - BlockKind::BlueCarpet => 8127u16, - BlockKind::MagentaShulkerBox => 9540u16, - BlockKind::DeadBush => 1400u16, - BlockKind::OrangeBed => 1097u16, - BlockKind::PinkWool => 1446u16, - BlockKind::LightBlueTerracotta => 7068u16, - BlockKind::OrangeStainedGlassPane => 7113u16, - BlockKind::OrangeShulkerBox => 9534u16, - BlockKind::AcaciaTrapdoor => 4436u16, - BlockKind::PurpleBed => 1241u16, - BlockKind::TallSeagrass => 1402u16, - BlockKind::BlueWallBanner => 8447u16, - BlockKind::DeadHornCoralFan => 9798u16, + BlockKind::BlueCandle => 17550u16, + BlockKind::BrownCandle => 17566u16, + BlockKind::GreenCandle => 17582u16, + BlockKind::RedCandle => 17598u16, + BlockKind::BlackCandle => 17614u16, + BlockKind::CandleCake => 17630u16, + BlockKind::WhiteCandleCake => 17632u16, + BlockKind::OrangeCandleCake => 17634u16, + BlockKind::MagentaCandleCake => 17636u16, + BlockKind::LightBlueCandleCake => 17638u16, + BlockKind::YellowCandleCake => 17640u16, + BlockKind::LimeCandleCake => 17642u16, + BlockKind::PinkCandleCake => 17644u16, + BlockKind::GrayCandleCake => 17646u16, + BlockKind::LightGrayCandleCake => 17648u16, + BlockKind::CyanCandleCake => 17650u16, + BlockKind::PurpleCandleCake => 17652u16, + BlockKind::BlueCandleCake => 17654u16, + BlockKind::BrownCandleCake => 17656u16, + BlockKind::GreenCandleCake => 17658u16, + BlockKind::RedCandleCake => 17660u16, + BlockKind::BlackCandleCake => 17662u16, + BlockKind::AmethystBlock => 17664u16, + BlockKind::BuddingAmethyst => 17665u16, + BlockKind::AmethystCluster => 17666u16, + BlockKind::LargeAmethystBud => 17678u16, + BlockKind::MediumAmethystBud => 17690u16, + BlockKind::SmallAmethystBud => 17702u16, + BlockKind::Tuff => 17714u16, + BlockKind::Calcite => 17715u16, + BlockKind::TintedGlass => 17716u16, + BlockKind::PowderSnow => 17717u16, + BlockKind::SculkSensor => 17718u16, + BlockKind::OxidizedCopper => 17814u16, + BlockKind::WeatheredCopper => 17815u16, + BlockKind::ExposedCopper => 17816u16, + BlockKind::CopperBlock => 17817u16, + BlockKind::CopperOre => 17818u16, + BlockKind::DeepslateCopperOre => 17819u16, + BlockKind::OxidizedCutCopper => 17820u16, + BlockKind::WeatheredCutCopper => 17821u16, + BlockKind::ExposedCutCopper => 17822u16, + BlockKind::CutCopper => 17823u16, + BlockKind::OxidizedCutCopperStairs => 17824u16, + BlockKind::WeatheredCutCopperStairs => 17904u16, + BlockKind::ExposedCutCopperStairs => 17984u16, + BlockKind::CutCopperStairs => 18064u16, + BlockKind::OxidizedCutCopperSlab => 18144u16, + BlockKind::WeatheredCutCopperSlab => 18150u16, + BlockKind::ExposedCutCopperSlab => 18156u16, + BlockKind::CutCopperSlab => 18162u16, + BlockKind::WaxedCopperBlock => 18168u16, + BlockKind::WaxedWeatheredCopper => 18169u16, + BlockKind::WaxedExposedCopper => 18170u16, + BlockKind::WaxedOxidizedCopper => 18171u16, + BlockKind::WaxedOxidizedCutCopper => 18172u16, + BlockKind::WaxedWeatheredCutCopper => 18173u16, + BlockKind::WaxedExposedCutCopper => 18174u16, + BlockKind::WaxedCutCopper => 18175u16, + BlockKind::WaxedOxidizedCutCopperStairs => 18176u16, + BlockKind::WaxedWeatheredCutCopperStairs => 18256u16, + BlockKind::WaxedExposedCutCopperStairs => 18336u16, + BlockKind::WaxedCutCopperStairs => 18416u16, + BlockKind::WaxedOxidizedCutCopperSlab => 18496u16, + BlockKind::WaxedWeatheredCutCopperSlab => 18502u16, + BlockKind::WaxedExposedCutCopperSlab => 18508u16, + BlockKind::WaxedCutCopperSlab => 18514u16, + BlockKind::LightningRod => 18520u16, + BlockKind::PointedDripstone => 18544u16, + BlockKind::DripstoneBlock => 18564u16, + BlockKind::CaveVines => 18565u16, + BlockKind::CaveVinesPlant => 18617u16, + BlockKind::SporeBlossom => 18619u16, BlockKind::Azalea => 18620u16, - BlockKind::CyanCarpet => 8125u16, - BlockKind::Fern => 1399u16, - BlockKind::Composter => 16005u16, - BlockKind::PrismarineBricks => 7852u16, + BlockKind::FloweringAzalea => 18621u16, + BlockKind::MossCarpet => 18622u16, + BlockKind::MossBlock => 18623u16, + BlockKind::BigDripleaf => 18624u16, + BlockKind::BigDripleafStem => 18656u16, + BlockKind::SmallDripleaf => 18664u16, + BlockKind::HangingRoots => 18680u16, + BlockKind::RootedDirt => 18682u16, + BlockKind::Deepslate => 18683u16, + BlockKind::CobbledDeepslate => 18686u16, + BlockKind::CobbledDeepslateStairs => 18687u16, + BlockKind::CobbledDeepslateSlab => 18767u16, + BlockKind::CobbledDeepslateWall => 18773u16, + BlockKind::PolishedDeepslate => 19097u16, + BlockKind::PolishedDeepslateStairs => 19098u16, + BlockKind::PolishedDeepslateSlab => 19178u16, + BlockKind::PolishedDeepslateWall => 19184u16, + BlockKind::DeepslateTiles => 19508u16, + BlockKind::DeepslateTileStairs => 19509u16, + BlockKind::DeepslateTileSlab => 19589u16, + BlockKind::DeepslateTileWall => 19595u16, + BlockKind::DeepslateBricks => 19919u16, + BlockKind::DeepslateBrickStairs => 19920u16, + BlockKind::DeepslateBrickSlab => 20000u16, + BlockKind::DeepslateBrickWall => 20006u16, + BlockKind::ChiseledDeepslate => 20330u16, + BlockKind::CrackedDeepslateBricks => 20331u16, + BlockKind::CrackedDeepslateTiles => 20332u16, + BlockKind::InfestedDeepslate => 20333u16, + BlockKind::SmoothBasalt => 20336u16, + BlockKind::RawIronBlock => 20337u16, + BlockKind::RawCopperBlock => 20338u16, + BlockKind::RawGoldBlock => 20339u16, + BlockKind::PottedAzaleaBush => 20340u16, + BlockKind::PottedFloweringAzaleaBush => 20341u16, } } } @@ -13796,904 +13796,904 @@ impl BlockKind { #[inline] pub fn max_state_id(&self) -> u16 { match self { - BlockKind::WitherSkeletonSkull => 6731u16, - BlockKind::InfestedDeepslate => 20335u16, - BlockKind::NetherBrickStairs => 5328u16, - BlockKind::DeepslateEmeraldOre => 5456u16, - BlockKind::PurpleShulkerBox => 9593u16, - BlockKind::SpruceSign => 3501u16, - BlockKind::DeadBubbleCoralBlock => 9762u16, - BlockKind::WaxedCopperBlock => 18168u16, - BlockKind::TallSeagrass => 1403u16, - BlockKind::WeatheredCutCopperStairs => 17983u16, - BlockKind::DeepslateBricks => 19919u16, - BlockKind::PowderSnowCauldron => 5349u16, - BlockKind::SpruceFenceGate => 8699u16, - BlockKind::PottedBirchSapling => 6514u16, - BlockKind::LightGrayWool => 1448u16, - BlockKind::VoidAir => 9915u16, - BlockKind::SkeletonSkull => 6711u16, - BlockKind::RedSand => 67u16, - BlockKind::HornCoral => 9789u16, - BlockKind::Pumpkin => 4067u16, - BlockKind::StrippedBirchWood => 138u16, - BlockKind::DragonEgg => 5360u16, - BlockKind::PistonHead => 1439u16, - BlockKind::ChiseledDeepslate => 20330u16, - BlockKind::WarpedWallSign => 15988u16, - BlockKind::DeepslateCoalOre => 74u16, - BlockKind::DaylightDetector => 6931u16, - BlockKind::PurpleStainedGlass => 4174u16, - BlockKind::CyanWallBanner => 8442u16, - BlockKind::Blackstone => 16093u16, - BlockKind::PottedWarpedRoots => 16091u16, - BlockKind::WaxedCutCopper => 18175u16, - BlockKind::ChiseledNetherBricks => 17355u16, - BlockKind::WaxedExposedCutCopperStairs => 18415u16, - BlockKind::Snow => 3997u16, - BlockKind::GrayTerracotta => 7072u16, - BlockKind::Cactus => 4015u16, - BlockKind::PottedBamboo => 9914u16, - BlockKind::DeadTubeCoralWallFan => 9817u16, - BlockKind::BrownBed => 1288u16, - BlockKind::PinkWool => 1446u16, - BlockKind::RedSandstoneStairs => 8549u16, - BlockKind::EndStoneBrickSlab => 11074u16, - BlockKind::Bamboo => 9913u16, - BlockKind::MossyCobblestone => 1489u16, - BlockKind::SoulLantern => 15143u16, - BlockKind::ChiseledPolishedBlackstone => 16507u16, - BlockKind::WaxedOxidizedCutCopper => 18172u16, - BlockKind::StoneButton => 3989u16, - BlockKind::Cauldron => 5342u16, - BlockKind::Chain => 4803u16, - BlockKind::WarpedPressurePlate => 15316u16, - BlockKind::RedStainedGlass => 4178u16, - BlockKind::LightGrayCarpet => 8124u16, - BlockKind::LightningRod => 18543u16, - BlockKind::BrownCarpet => 8128u16, - BlockKind::Bell => 15135u16, - BlockKind::HayBlock => 8115u16, - BlockKind::BirchFence => 8891u16, - BlockKind::OrangeCarpet => 8117u16, - BlockKind::BlueStainedGlass => 4175u16, - BlockKind::StrippedBirchLog => 99u16, - BlockKind::BrownWool => 1452u16, - BlockKind::LightGrayStainedGlass => 4172u16, - BlockKind::CryingObsidian => 16082u16, - BlockKind::LightBlueStainedGlass => 4167u16, - BlockKind::BrewingStand => 5341u16, - BlockKind::YellowCandle => 17453u16, - BlockKind::PolishedDioriteSlab => 11062u16, - BlockKind::WaxedWeatheredCutCopperSlab => 18507u16, - BlockKind::MagentaBanner => 8194u16, - BlockKind::TubeCoral => 9781u16, - BlockKind::CandleCake => 17631u16, - BlockKind::WhiteShulkerBox => 9533u16, - BlockKind::SoulSand => 4069u16, - BlockKind::NetherBricks => 5216u16, - BlockKind::RedNetherBricks => 9505u16, - BlockKind::RedstoneLamp => 5362u16, - BlockKind::GoldOre => 69u16, - BlockKind::CyanShulkerBox => 9587u16, - BlockKind::GrayGlazedTerracotta => 9655u16, - BlockKind::SlimeBlock => 7753u16, - BlockKind::Chest => 2113u16, - BlockKind::RespawnAnchor => 16087u16, - BlockKind::PottedJungleSapling => 6515u16, - BlockKind::Shroomlight => 15243u16, - BlockKind::OakSlab => 8555u16, - BlockKind::Peony => 8142u16, - BlockKind::Lantern => 15139u16, - BlockKind::CyanConcretePowder => 9713u16, - BlockKind::JungleWallSign => 3841u16, - BlockKind::OrangeBanner => 8178u16, - BlockKind::CobbledDeepslateStairs => 18766u16, + BlockKind::Air => 0u16, + BlockKind::Stone => 1u16, + BlockKind::Granite => 2u16, + BlockKind::PolishedGranite => 3u16, + BlockKind::Diorite => 4u16, + BlockKind::PolishedDiorite => 5u16, + BlockKind::Andesite => 6u16, + BlockKind::PolishedAndesite => 7u16, + BlockKind::GrassBlock => 9u16, + BlockKind::Dirt => 10u16, + BlockKind::CoarseDirt => 11u16, + BlockKind::Podzol => 13u16, + BlockKind::Cobblestone => 14u16, + BlockKind::OakPlanks => 15u16, + BlockKind::SprucePlanks => 16u16, + BlockKind::BirchPlanks => 17u16, + BlockKind::JunglePlanks => 18u16, + BlockKind::AcaciaPlanks => 19u16, + BlockKind::DarkOakPlanks => 20u16, + BlockKind::OakSapling => 22u16, + BlockKind::SpruceSapling => 24u16, + BlockKind::BirchSapling => 26u16, + BlockKind::JungleSapling => 28u16, + BlockKind::AcaciaSapling => 30u16, + BlockKind::DarkOakSapling => 32u16, + BlockKind::Bedrock => 33u16, + BlockKind::Water => 49u16, + BlockKind::Lava => 65u16, + BlockKind::Sand => 66u16, + BlockKind::RedSand => 67u16, + BlockKind::Gravel => 68u16, + BlockKind::GoldOre => 69u16, + BlockKind::DeepslateGoldOre => 70u16, + BlockKind::IronOre => 71u16, + BlockKind::DeepslateIronOre => 72u16, + BlockKind::CoalOre => 73u16, + BlockKind::DeepslateCoalOre => 74u16, + BlockKind::NetherGoldOre => 75u16, + BlockKind::OakLog => 78u16, + BlockKind::SpruceLog => 81u16, + BlockKind::BirchLog => 84u16, + BlockKind::JungleLog => 87u16, + BlockKind::AcaciaLog => 90u16, + BlockKind::DarkOakLog => 93u16, + BlockKind::StrippedSpruceLog => 96u16, + BlockKind::StrippedBirchLog => 99u16, + BlockKind::StrippedJungleLog => 102u16, + BlockKind::StrippedAcaciaLog => 105u16, + BlockKind::StrippedDarkOakLog => 108u16, + BlockKind::StrippedOakLog => 111u16, + BlockKind::OakWood => 114u16, BlockKind::SpruceWood => 117u16, + BlockKind::BirchWood => 120u16, + BlockKind::JungleWood => 123u16, + BlockKind::AcaciaWood => 126u16, + BlockKind::DarkOakWood => 129u16, + BlockKind::StrippedOakWood => 132u16, + BlockKind::StrippedSpruceWood => 135u16, + BlockKind::StrippedBirchWood => 138u16, + BlockKind::StrippedJungleWood => 141u16, + BlockKind::StrippedAcaciaWood => 144u16, BlockKind::StrippedDarkOakWood => 147u16, - BlockKind::SkeletonWallSkull => 6715u16, - BlockKind::BirchWallSign => 3825u16, - BlockKind::BrickStairs => 5132u16, - BlockKind::Light => 7786u16, - BlockKind::PackedIce => 8134u16, - BlockKind::GreenStainedGlassPane => 7528u16, - BlockKind::LightGrayWallBanner => 8438u16, + BlockKind::OakLeaves => 161u16, + BlockKind::SpruceLeaves => 175u16, + BlockKind::BirchLeaves => 189u16, + BlockKind::JungleLeaves => 203u16, + BlockKind::AcaciaLeaves => 217u16, + BlockKind::DarkOakLeaves => 231u16, + BlockKind::AzaleaLeaves => 245u16, + BlockKind::FloweringAzaleaLeaves => 259u16, + BlockKind::Sponge => 260u16, + BlockKind::WetSponge => 261u16, + BlockKind::Glass => 262u16, + BlockKind::LapisOre => 263u16, + BlockKind::DeepslateLapisOre => 264u16, + BlockKind::LapisBlock => 265u16, + BlockKind::Dispenser => 277u16, + BlockKind::Sandstone => 278u16, + BlockKind::ChiseledSandstone => 279u16, + BlockKind::CutSandstone => 280u16, + BlockKind::NoteBlock => 1080u16, + BlockKind::WhiteBed => 1096u16, + BlockKind::OrangeBed => 1112u16, + BlockKind::MagentaBed => 1128u16, + BlockKind::LightBlueBed => 1144u16, + BlockKind::YellowBed => 1160u16, + BlockKind::LimeBed => 1176u16, + BlockKind::PinkBed => 1192u16, + BlockKind::GrayBed => 1208u16, BlockKind::LightGrayBed => 1224u16, - BlockKind::OrangeWool => 1441u16, - BlockKind::WarpedWartBlock => 15226u16, - BlockKind::EndStoneBrickWall => 14680u16, - BlockKind::CrimsonPressurePlate => 15314u16, - BlockKind::DiamondOre => 3410u16, - BlockKind::ActivatorRail => 7052u16, - BlockKind::PinkBanner => 8258u16, - BlockKind::WaterCauldron => 5345u16, - BlockKind::CobbledDeepslateWall => 19096u16, - BlockKind::Lodestone => 16092u16, - BlockKind::AncientDebris => 16081u16, - BlockKind::Repeater => 4163u16, - BlockKind::CreeperHead => 6791u16, - BlockKind::ZombieWallHead => 6755u16, - BlockKind::JungleSlab => 8573u16, - BlockKind::PolishedBlackstone => 16504u16, - BlockKind::AndesiteSlab => 11098u16, - BlockKind::ChippedAnvil => 6823u16, + BlockKind::CyanBed => 1240u16, + BlockKind::PurpleBed => 1256u16, + BlockKind::BlueBed => 1272u16, + BlockKind::BrownBed => 1288u16, + BlockKind::GreenBed => 1304u16, + BlockKind::RedBed => 1320u16, BlockKind::BlackBed => 1336u16, - BlockKind::PottedOrangeTulip => 6525u16, - BlockKind::FireCoralBlock => 9768u16, - BlockKind::RedCandle => 17613u16, - BlockKind::MushroomStem => 4765u16, - BlockKind::GildedBlackstone => 16918u16, - BlockKind::CreeperWallHead => 6795u16, - BlockKind::SmoothSandstone => 8665u16, - BlockKind::PinkConcretePowder => 9710u16, - BlockKind::WeepingVines => 15269u16, - BlockKind::LightGrayBanner => 8290u16, - BlockKind::TurtleEgg => 9759u16, - BlockKind::SmoothBasalt => 20336u16, - BlockKind::PottedWitherRose => 6531u16, - BlockKind::Tripwire => 5608u16, - BlockKind::WaxedExposedCutCopper => 18174u16, - BlockKind::SpruceWallSign => 3817u16, + BlockKind::PoweredRail => 1360u16, + BlockKind::DetectorRail => 1384u16, + BlockKind::StickyPiston => 1396u16, + BlockKind::Cobweb => 1397u16, + BlockKind::Grass => 1398u16, + BlockKind::Fern => 1399u16, + BlockKind::DeadBush => 1400u16, + BlockKind::Seagrass => 1401u16, + BlockKind::TallSeagrass => 1403u16, + BlockKind::Piston => 1415u16, + BlockKind::PistonHead => 1439u16, + BlockKind::WhiteWool => 1440u16, + BlockKind::OrangeWool => 1441u16, + BlockKind::MagentaWool => 1442u16, + BlockKind::LightBlueWool => 1443u16, + BlockKind::YellowWool => 1444u16, + BlockKind::LimeWool => 1445u16, + BlockKind::PinkWool => 1446u16, + BlockKind::GrayWool => 1447u16, + BlockKind::LightGrayWool => 1448u16, + BlockKind::CyanWool => 1449u16, + BlockKind::PurpleWool => 1450u16, + BlockKind::BlueWool => 1451u16, + BlockKind::BrownWool => 1452u16, + BlockKind::GreenWool => 1453u16, + BlockKind::RedWool => 1454u16, + BlockKind::BlackWool => 1455u16, + BlockKind::MovingPiston => 1467u16, + BlockKind::Dandelion => 1468u16, + BlockKind::Poppy => 1469u16, + BlockKind::BlueOrchid => 1470u16, + BlockKind::Allium => 1471u16, + BlockKind::AzureBluet => 1472u16, + BlockKind::RedTulip => 1473u16, + BlockKind::OrangeTulip => 1474u16, + BlockKind::WhiteTulip => 1475u16, + BlockKind::PinkTulip => 1476u16, + BlockKind::OxeyeDaisy => 1477u16, + BlockKind::Cornflower => 1478u16, + BlockKind::WitherRose => 1479u16, + BlockKind::LilyOfTheValley => 1480u16, + BlockKind::BrownMushroom => 1481u16, BlockKind::RedMushroom => 1482u16, - BlockKind::QuartzSlab => 8645u16, - BlockKind::DarkPrismarineSlab => 8111u16, - BlockKind::YellowStainedGlassPane => 7240u16, - BlockKind::Dropper => 7064u16, - BlockKind::DragonWallHead => 6815u16, - BlockKind::NetherGoldOre => 75u16, - BlockKind::StrippedCrimsonHyphae => 15240u16, + BlockKind::GoldBlock => 1483u16, + BlockKind::IronBlock => 1484u16, + BlockKind::Bricks => 1485u16, + BlockKind::Tnt => 1487u16, + BlockKind::Bookshelf => 1488u16, + BlockKind::MossyCobblestone => 1489u16, BlockKind::Obsidian => 1490u16, + BlockKind::Torch => 1491u16, + BlockKind::WallTorch => 1495u16, + BlockKind::Fire => 2007u16, + BlockKind::SoulFire => 2008u16, + BlockKind::Spawner => 2009u16, + BlockKind::OakStairs => 2089u16, + BlockKind::Chest => 2113u16, + BlockKind::RedstoneWire => 3409u16, + BlockKind::DiamondOre => 3410u16, BlockKind::DeepslateDiamondOre => 3411u16, - BlockKind::YellowConcretePowder => 9708u16, - BlockKind::WeepingVinesPlant => 15270u16, - BlockKind::MossBlock => 18623u16, - BlockKind::BlackstoneStairs => 16173u16, - BlockKind::Tnt => 1487u16, - BlockKind::GrayWallBanner => 8434u16, - BlockKind::SmoothRedSandstoneSlab => 11050u16, - BlockKind::CutCopper => 17823u16, - BlockKind::PolishedBlackstoneBrickStairs => 16593u16, - BlockKind::CrimsonFungus => 15242u16, - BlockKind::RawGoldBlock => 20339u16, - BlockKind::MossyStoneBrickStairs => 10158u16, - BlockKind::ChorusPlant => 9377u16, - BlockKind::PottedAcaciaSapling => 6516u16, - BlockKind::SeaLantern => 8112u16, - BlockKind::PurpleCarpet => 8126u16, + BlockKind::DiamondBlock => 3412u16, + BlockKind::CraftingTable => 3413u16, BlockKind::Wheat => 3421u16, - BlockKind::GraniteSlab => 11092u16, - BlockKind::GrayCarpet => 8123u16, - BlockKind::PurpleConcrete => 9698u16, - BlockKind::BlackCandle => 17629u16, - BlockKind::WhiteTulip => 1475u16, - BlockKind::GrayShulkerBox => 9575u16, - BlockKind::MossyCobblestoneStairs => 10318u16, - BlockKind::RedConcretePowder => 9718u16, - BlockKind::DriedKelpBlock => 9747u16, - BlockKind::DeepslateTileWall => 19918u16, - BlockKind::PurpleStainedGlassPane => 7432u16, - BlockKind::Barrel => 15052u16, - BlockKind::StrippedOakWood => 132u16, - BlockKind::GoldBlock => 1483u16, - BlockKind::BrownCandle => 17581u16, - BlockKind::CrackedDeepslateTiles => 20332u16, - BlockKind::ChiseledSandstone => 279u16, - BlockKind::JunglePressurePlate => 3947u16, - BlockKind::ChorusFlower => 9383u16, - BlockKind::InfestedChiseledStoneBricks => 4573u16, - BlockKind::BirchFenceGate => 8731u16, + BlockKind::Farmland => 3429u16, + BlockKind::Furnace => 3437u16, + BlockKind::OakSign => 3469u16, + BlockKind::SpruceSign => 3501u16, + BlockKind::BirchSign => 3533u16, + BlockKind::AcaciaSign => 3565u16, + BlockKind::JungleSign => 3597u16, + BlockKind::DarkOakSign => 3629u16, + BlockKind::OakDoor => 3693u16, + BlockKind::Ladder => 3701u16, + BlockKind::Rail => 3721u16, + BlockKind::CobblestoneStairs => 3801u16, + BlockKind::OakWallSign => 3809u16, + BlockKind::SpruceWallSign => 3817u16, + BlockKind::BirchWallSign => 3825u16, + BlockKind::AcaciaWallSign => 3833u16, + BlockKind::JungleWallSign => 3841u16, + BlockKind::DarkOakWallSign => 3849u16, + BlockKind::Lever => 3873u16, + BlockKind::StonePressurePlate => 3875u16, + BlockKind::IronDoor => 3939u16, + BlockKind::OakPressurePlate => 3941u16, + BlockKind::SprucePressurePlate => 3943u16, BlockKind::BirchPressurePlate => 3945u16, - BlockKind::RepeatingCommandBlock => 9486u16, - BlockKind::BirchStairs => 5769u16, - BlockKind::FletchingTable => 15070u16, - BlockKind::WarpedStem => 15214u16, - BlockKind::BlueConcretePowder => 9715u16, - BlockKind::PinkCandle => 17485u16, - BlockKind::StoneBrickWall => 13060u16, - BlockKind::AndesiteWall => 13708u16, - BlockKind::NetherSprouts => 15228u16, - BlockKind::RedShulkerBox => 9617u16, - BlockKind::OakWood => 114u16, - BlockKind::SprucePlanks => 16u16, - BlockKind::BirchSlab => 8567u16, - BlockKind::CyanStainedGlassPane => 7400u16, + BlockKind::JunglePressurePlate => 3947u16, + BlockKind::AcaciaPressurePlate => 3949u16, + BlockKind::DarkOakPressurePlate => 3951u16, + BlockKind::RedstoneOre => 3953u16, + BlockKind::DeepslateRedstoneOre => 3955u16, + BlockKind::RedstoneTorch => 3957u16, + BlockKind::RedstoneWallTorch => 3965u16, + BlockKind::StoneButton => 3989u16, + BlockKind::Snow => 3997u16, + BlockKind::Ice => 3998u16, + BlockKind::SnowBlock => 3999u16, + BlockKind::Cactus => 4015u16, + BlockKind::Clay => 4016u16, + BlockKind::SugarCane => 4032u16, + BlockKind::Jukebox => 4034u16, + BlockKind::OakFence => 4066u16, + BlockKind::Pumpkin => 4067u16, + BlockKind::Netherrack => 4068u16, + BlockKind::SoulSand => 4069u16, + BlockKind::SoulSoil => 4070u16, + BlockKind::Basalt => 4073u16, + BlockKind::PolishedBasalt => 4076u16, BlockKind::SoulTorch => 4077u16, - BlockKind::LapisBlock => 265u16, - BlockKind::LightGrayCandle => 17517u16, - BlockKind::GlassPane => 4835u16, - BlockKind::MossyCobblestoneSlab => 11068u16, - BlockKind::MagentaCandle => 17421u16, - BlockKind::GrayWool => 1447u16, - BlockKind::BrownMushroomBlock => 4637u16, - BlockKind::PinkConcrete => 9694u16, - BlockKind::CobblestoneStairs => 3801u16, - BlockKind::PolishedDiorite => 5u16, - BlockKind::BlackstoneWall => 16497u16, - BlockKind::BrownStainedGlassPane => 7496u16, - BlockKind::FireCoralWallFan => 9881u16, - BlockKind::BlueWool => 1451u16, + BlockKind::SoulWallTorch => 4081u16, + BlockKind::Glowstone => 4082u16, + BlockKind::NetherPortal => 4084u16, + BlockKind::CarvedPumpkin => 4088u16, + BlockKind::JackOLantern => 4092u16, + BlockKind::Cake => 4099u16, + BlockKind::Repeater => 4163u16, + BlockKind::WhiteStainedGlass => 4164u16, + BlockKind::OrangeStainedGlass => 4165u16, + BlockKind::MagentaStainedGlass => 4166u16, + BlockKind::LightBlueStainedGlass => 4167u16, + BlockKind::YellowStainedGlass => 4168u16, + BlockKind::LimeStainedGlass => 4169u16, + BlockKind::PinkStainedGlass => 4170u16, + BlockKind::GrayStainedGlass => 4171u16, + BlockKind::LightGrayStainedGlass => 4172u16, + BlockKind::CyanStainedGlass => 4173u16, + BlockKind::PurpleStainedGlass => 4174u16, + BlockKind::BlueStainedGlass => 4175u16, BlockKind::BrownStainedGlass => 4176u16, - BlockKind::StrippedAcaciaLog => 105u16, - BlockKind::SmoothStone => 8664u16, - BlockKind::JungleSapling => 28u16, - BlockKind::InfestedStoneBricks => 4570u16, - BlockKind::CrackedStoneBricks => 4566u16, - BlockKind::SpruceButton => 6599u16, - BlockKind::BlueConcrete => 9699u16, - BlockKind::PolishedBlackstoneSlab => 17004u16, - BlockKind::SculkSensor => 17813u16, - BlockKind::Gravel => 68u16, BlockKind::GreenStainedGlass => 4177u16, - BlockKind::GreenGlazedTerracotta => 9679u16, - BlockKind::TubeCoralWallFan => 9857u16, - BlockKind::JungleDoor => 9179u16, - BlockKind::SandstoneStairs => 5454u16, - BlockKind::AcaciaButton => 6671u16, - BlockKind::Piston => 1415u16, - BlockKind::AcaciaSlab => 8579u16, - BlockKind::RedstoneTorch => 3957u16, + BlockKind::RedStainedGlass => 4178u16, + BlockKind::BlackStainedGlass => 4179u16, + BlockKind::OakTrapdoor => 4243u16, + BlockKind::SpruceTrapdoor => 4307u16, + BlockKind::BirchTrapdoor => 4371u16, + BlockKind::JungleTrapdoor => 4435u16, + BlockKind::AcaciaTrapdoor => 4499u16, + BlockKind::DarkOakTrapdoor => 4563u16, + BlockKind::StoneBricks => 4564u16, + BlockKind::MossyStoneBricks => 4565u16, + BlockKind::CrackedStoneBricks => 4566u16, + BlockKind::ChiseledStoneBricks => 4567u16, + BlockKind::InfestedStone => 4568u16, + BlockKind::InfestedCobblestone => 4569u16, + BlockKind::InfestedStoneBricks => 4570u16, + BlockKind::InfestedMossyStoneBricks => 4571u16, BlockKind::InfestedCrackedStoneBricks => 4572u16, - BlockKind::Barrier => 7754u16, - BlockKind::Lava => 65u16, - BlockKind::DeadHornCoralWallFan => 9849u16, - BlockKind::HornCoralWallFan => 9889u16, - BlockKind::WitherRose => 1479u16, - BlockKind::QuartzPillar => 6948u16, + BlockKind::InfestedChiseledStoneBricks => 4573u16, + BlockKind::BrownMushroomBlock => 4637u16, + BlockKind::RedMushroomBlock => 4701u16, + BlockKind::MushroomStem => 4765u16, + BlockKind::IronBars => 4797u16, + BlockKind::Chain => 4803u16, + BlockKind::GlassPane => 4835u16, + BlockKind::Melon => 4836u16, + BlockKind::AttachedPumpkinStem => 4840u16, + BlockKind::AttachedMelonStem => 4844u16, + BlockKind::PumpkinStem => 4852u16, + BlockKind::MelonStem => 4860u16, + BlockKind::Vine => 4892u16, + BlockKind::GlowLichen => 5020u16, + BlockKind::OakFenceGate => 5052u16, + BlockKind::BrickStairs => 5132u16, + BlockKind::StoneBrickStairs => 5212u16, + BlockKind::Mycelium => 5214u16, + BlockKind::LilyPad => 5215u16, + BlockKind::NetherBricks => 5216u16, + BlockKind::NetherBrickFence => 5248u16, + BlockKind::NetherBrickStairs => 5328u16, + BlockKind::NetherWart => 5332u16, + BlockKind::EnchantingTable => 5333u16, + BlockKind::BrewingStand => 5341u16, + BlockKind::Cauldron => 5342u16, + BlockKind::WaterCauldron => 5345u16, + BlockKind::LavaCauldron => 5346u16, + BlockKind::PowderSnowCauldron => 5349u16, + BlockKind::EndPortal => 5350u16, + BlockKind::EndPortalFrame => 5358u16, + BlockKind::EndStone => 5359u16, + BlockKind::DragonEgg => 5360u16, + BlockKind::RedstoneLamp => 5362u16, + BlockKind::Cocoa => 5374u16, + BlockKind::SandstoneStairs => 5454u16, + BlockKind::EmeraldOre => 5455u16, + BlockKind::DeepslateEmeraldOre => 5456u16, + BlockKind::EnderChest => 5464u16, + BlockKind::TripwireHook => 5480u16, + BlockKind::Tripwire => 5608u16, + BlockKind::EmeraldBlock => 5609u16, + BlockKind::SpruceStairs => 5689u16, + BlockKind::BirchStairs => 5769u16, + BlockKind::JungleStairs => 5849u16, + BlockKind::CommandBlock => 5861u16, + BlockKind::Beacon => 5862u16, + BlockKind::CobblestoneWall => 6186u16, + BlockKind::MossyCobblestoneWall => 6510u16, + BlockKind::FlowerPot => 6511u16, + BlockKind::PottedOakSapling => 6512u16, + BlockKind::PottedSpruceSapling => 6513u16, + BlockKind::PottedBirchSapling => 6514u16, + BlockKind::PottedJungleSapling => 6515u16, + BlockKind::PottedAcaciaSapling => 6516u16, + BlockKind::PottedDarkOakSapling => 6517u16, + BlockKind::PottedFern => 6518u16, + BlockKind::PottedDandelion => 6519u16, + BlockKind::PottedPoppy => 6520u16, + BlockKind::PottedBlueOrchid => 6521u16, + BlockKind::PottedAllium => 6522u16, + BlockKind::PottedAzureBluet => 6523u16, + BlockKind::PottedRedTulip => 6524u16, + BlockKind::PottedOrangeTulip => 6525u16, + BlockKind::PottedWhiteTulip => 6526u16, + BlockKind::PottedPinkTulip => 6527u16, + BlockKind::PottedOxeyeDaisy => 6528u16, + BlockKind::PottedCornflower => 6529u16, + BlockKind::PottedLilyOfTheValley => 6530u16, + BlockKind::PottedWitherRose => 6531u16, + BlockKind::PottedRedMushroom => 6532u16, + BlockKind::PottedBrownMushroom => 6533u16, + BlockKind::PottedDeadBush => 6534u16, BlockKind::PottedCactus => 6535u16, - BlockKind::RedSandstoneWall => 12088u16, - BlockKind::MagentaCandleCake => 17637u16, - BlockKind::OrangeShulkerBox => 9539u16, - BlockKind::Prismarine => 7851u16, - BlockKind::CrimsonSlab => 15306u16, - BlockKind::WarpedFungus => 15225u16, - BlockKind::SporeBlossom => 18619u16, - BlockKind::AcaciaLeaves => 217u16, - BlockKind::GreenCarpet => 8129u16, - BlockKind::Dispenser => 277u16, - BlockKind::AcaciaWallSign => 3833u16, - BlockKind::DioriteSlab => 11116u16, - BlockKind::WaxedExposedCopper => 18170u16, - BlockKind::PolishedDeepslateStairs => 19177u16, + BlockKind::Carrots => 6543u16, BlockKind::Potatoes => 6551u16, - BlockKind::DeadBrainCoralBlock => 9761u16, - BlockKind::StoneStairs => 10478u16, - BlockKind::SugarCane => 4032u16, - BlockKind::SpruceStairs => 5689u16, - BlockKind::CyanCarpet => 8125u16, - BlockKind::CrimsonHyphae => 15237u16, - BlockKind::TubeCoralBlock => 9765u16, - BlockKind::ChiseledStoneBricks => 4567u16, - BlockKind::DeadFireCoralWallFan => 9841u16, - BlockKind::PurpleWool => 1450u16, - BlockKind::Podzol => 13u16, + BlockKind::OakButton => 6575u16, + BlockKind::SpruceButton => 6599u16, + BlockKind::BirchButton => 6623u16, + BlockKind::JungleButton => 6647u16, + BlockKind::AcaciaButton => 6671u16, + BlockKind::DarkOakButton => 6695u16, + BlockKind::SkeletonSkull => 6711u16, + BlockKind::SkeletonWallSkull => 6715u16, + BlockKind::WitherSkeletonSkull => 6731u16, + BlockKind::WitherSkeletonWallSkull => 6735u16, + BlockKind::ZombieHead => 6751u16, + BlockKind::ZombieWallHead => 6755u16, + BlockKind::PlayerHead => 6771u16, + BlockKind::PlayerWallHead => 6775u16, + BlockKind::CreeperHead => 6791u16, + BlockKind::CreeperWallHead => 6795u16, + BlockKind::DragonHead => 6811u16, + BlockKind::DragonWallHead => 6815u16, + BlockKind::Anvil => 6819u16, + BlockKind::ChippedAnvil => 6823u16, + BlockKind::DamagedAnvil => 6827u16, + BlockKind::TrappedChest => 6851u16, + BlockKind::LightWeightedPressurePlate => 6867u16, + BlockKind::HeavyWeightedPressurePlate => 6883u16, + BlockKind::Comparator => 6899u16, + BlockKind::DaylightDetector => 6931u16, + BlockKind::RedstoneBlock => 6932u16, + BlockKind::NetherQuartzOre => 6933u16, + BlockKind::Hopper => 6943u16, + BlockKind::QuartzBlock => 6944u16, + BlockKind::ChiseledQuartzBlock => 6945u16, + BlockKind::QuartzPillar => 6948u16, + BlockKind::QuartzStairs => 7028u16, + BlockKind::ActivatorRail => 7052u16, + BlockKind::Dropper => 7064u16, + BlockKind::WhiteTerracotta => 7065u16, + BlockKind::OrangeTerracotta => 7066u16, + BlockKind::MagentaTerracotta => 7067u16, BlockKind::LightBlueTerracotta => 7068u16, - BlockKind::SoulSoil => 4070u16, - BlockKind::Carrots => 6543u16, - BlockKind::SpruceLeaves => 175u16, - BlockKind::ShulkerBox => 9527u16, - BlockKind::CrimsonStairs => 15652u16, - BlockKind::DeadBrainCoralWallFan => 9825u16, + BlockKind::YellowTerracotta => 7069u16, + BlockKind::LimeTerracotta => 7070u16, + BlockKind::PinkTerracotta => 7071u16, + BlockKind::GrayTerracotta => 7072u16, + BlockKind::LightGrayTerracotta => 7073u16, + BlockKind::CyanTerracotta => 7074u16, + BlockKind::PurpleTerracotta => 7075u16, + BlockKind::BlueTerracotta => 7076u16, + BlockKind::BrownTerracotta => 7077u16, + BlockKind::GreenTerracotta => 7078u16, + BlockKind::RedTerracotta => 7079u16, + BlockKind::BlackTerracotta => 7080u16, + BlockKind::WhiteStainedGlassPane => 7112u16, + BlockKind::OrangeStainedGlassPane => 7144u16, + BlockKind::MagentaStainedGlassPane => 7176u16, + BlockKind::LightBlueStainedGlassPane => 7208u16, + BlockKind::YellowStainedGlassPane => 7240u16, + BlockKind::LimeStainedGlassPane => 7272u16, + BlockKind::PinkStainedGlassPane => 7304u16, + BlockKind::GrayStainedGlassPane => 7336u16, + BlockKind::LightGrayStainedGlassPane => 7368u16, + BlockKind::CyanStainedGlassPane => 7400u16, + BlockKind::PurpleStainedGlassPane => 7432u16, + BlockKind::BlueStainedGlassPane => 7464u16, + BlockKind::BrownStainedGlassPane => 7496u16, + BlockKind::GreenStainedGlassPane => 7528u16, + BlockKind::RedStainedGlassPane => 7560u16, + BlockKind::BlackStainedGlassPane => 7592u16, + BlockKind::AcaciaStairs => 7672u16, + BlockKind::DarkOakStairs => 7752u16, + BlockKind::SlimeBlock => 7753u16, + BlockKind::Barrier => 7754u16, + BlockKind::Light => 7786u16, + BlockKind::IronTrapdoor => 7850u16, + BlockKind::Prismarine => 7851u16, + BlockKind::PrismarineBricks => 7852u16, + BlockKind::DarkPrismarine => 7853u16, + BlockKind::PrismarineStairs => 7933u16, + BlockKind::PrismarineBrickStairs => 8013u16, + BlockKind::DarkPrismarineStairs => 8093u16, + BlockKind::PrismarineSlab => 8099u16, + BlockKind::PrismarineBrickSlab => 8105u16, + BlockKind::DarkPrismarineSlab => 8111u16, + BlockKind::SeaLantern => 8112u16, + BlockKind::HayBlock => 8115u16, + BlockKind::WhiteCarpet => 8116u16, + BlockKind::OrangeCarpet => 8117u16, + BlockKind::MagentaCarpet => 8118u16, BlockKind::LightBlueCarpet => 8119u16, - BlockKind::PolishedAndesiteStairs => 10958u16, - BlockKind::Mycelium => 5214u16, - BlockKind::LightBlueShulkerBox => 9551u16, - BlockKind::AndesiteStairs => 10798u16, - BlockKind::LightBlueCandleCake => 17639u16, + BlockKind::YellowCarpet => 8120u16, + BlockKind::LimeCarpet => 8121u16, + BlockKind::PinkCarpet => 8122u16, + BlockKind::GrayCarpet => 8123u16, + BlockKind::LightGrayCarpet => 8124u16, + BlockKind::CyanCarpet => 8125u16, + BlockKind::PurpleCarpet => 8126u16, + BlockKind::BlueCarpet => 8127u16, + BlockKind::BrownCarpet => 8128u16, + BlockKind::GreenCarpet => 8129u16, + BlockKind::RedCarpet => 8130u16, + BlockKind::BlackCarpet => 8131u16, + BlockKind::Terracotta => 8132u16, + BlockKind::CoalBlock => 8133u16, + BlockKind::PackedIce => 8134u16, + BlockKind::Sunflower => 8136u16, + BlockKind::Lilac => 8138u16, + BlockKind::RoseBush => 8140u16, + BlockKind::Peony => 8142u16, BlockKind::TallGrass => 8144u16, - BlockKind::Cornflower => 1478u16, - BlockKind::BlueOrchid => 1470u16, - BlockKind::Diorite => 4u16, - BlockKind::OrangeBed => 1112u16, - BlockKind::AzaleaLeaves => 245u16, - BlockKind::DarkOakFence => 8987u16, + BlockKind::LargeFern => 8146u16, + BlockKind::WhiteBanner => 8162u16, + BlockKind::OrangeBanner => 8178u16, + BlockKind::MagentaBanner => 8194u16, + BlockKind::LightBlueBanner => 8210u16, + BlockKind::YellowBanner => 8226u16, + BlockKind::LimeBanner => 8242u16, + BlockKind::PinkBanner => 8258u16, + BlockKind::GrayBanner => 8274u16, + BlockKind::LightGrayBanner => 8290u16, + BlockKind::CyanBanner => 8306u16, + BlockKind::PurpleBanner => 8322u16, + BlockKind::BlueBanner => 8338u16, + BlockKind::BrownBanner => 8354u16, + BlockKind::GreenBanner => 8370u16, + BlockKind::RedBanner => 8386u16, + BlockKind::BlackBanner => 8402u16, + BlockKind::WhiteWallBanner => 8406u16, + BlockKind::OrangeWallBanner => 8410u16, + BlockKind::MagentaWallBanner => 8414u16, BlockKind::LightBlueWallBanner => 8418u16, - BlockKind::MagentaShulkerBox => 9545u16, - BlockKind::BlueCandle => 17565u16, - BlockKind::Rail => 3721u16, - BlockKind::PurpleCandleCake => 17653u16, - BlockKind::WaxedWeatheredCutCopper => 18173u16, - BlockKind::CyanWool => 1449u16, - BlockKind::JungleWood => 123u16, + BlockKind::YellowWallBanner => 8422u16, + BlockKind::LimeWallBanner => 8426u16, + BlockKind::PinkWallBanner => 8430u16, + BlockKind::GrayWallBanner => 8434u16, + BlockKind::LightGrayWallBanner => 8438u16, + BlockKind::CyanWallBanner => 8442u16, + BlockKind::PurpleWallBanner => 8446u16, BlockKind::BlueWallBanner => 8450u16, - BlockKind::GrayStainedGlass => 4171u16, - BlockKind::HeavyWeightedPressurePlate => 6883u16, - BlockKind::GreenBed => 1304u16, - BlockKind::CobbledDeepslate => 18686u16, - BlockKind::DeadHornCoralFan => 9799u16, - BlockKind::Azalea => 18620u16, - BlockKind::DarkOakButton => 6695u16, - BlockKind::DeepslateBrickStairs => 19999u16, - BlockKind::LightGrayGlazedTerracotta => 9659u16, - BlockKind::Kelp => 9745u16, - BlockKind::BlueCarpet => 8127u16, - BlockKind::SmoothQuartz => 8666u16, - BlockKind::WaxedOxidizedCutCopperStairs => 18255u16, - BlockKind::QuartzBlock => 6944u16, - BlockKind::BlackstoneSlab => 16503u16, - BlockKind::BubbleCoralFan => 9805u16, - BlockKind::StoneBrickStairs => 5212u16, - BlockKind::PolishedDeepslateSlab => 19183u16, - BlockKind::StrippedDarkOakLog => 108u16, - BlockKind::PottedAllium => 6522u16, - BlockKind::Melon => 4836u16, - BlockKind::OrangeCandleCake => 17635u16, - BlockKind::StrippedOakLog => 111u16, - BlockKind::MovingPiston => 1467u16, - BlockKind::RootedDirt => 18682u16, - BlockKind::EndRod => 9313u16, - BlockKind::DeadFireCoralFan => 9797u16, - BlockKind::YellowBed => 1160u16, - BlockKind::BrownShulkerBox => 9605u16, - BlockKind::JungleLog => 87u16, - BlockKind::PolishedDeepslate => 19097u16, - BlockKind::CoarseDirt => 11u16, - BlockKind::GreenConcrete => 9701u16, - BlockKind::ExposedCopper => 17816u16, - BlockKind::BlueStainedGlassPane => 7464u16, - BlockKind::EndStoneBricks => 9468u16, - BlockKind::DeadHornCoral => 9779u16, - BlockKind::MossCarpet => 18622u16, - BlockKind::FireCoralFan => 9807u16, - BlockKind::OakDoor => 3693u16, - BlockKind::JungleSign => 3597u16, - BlockKind::DeadBubbleCoralWallFan => 9833u16, + BlockKind::BrownWallBanner => 8454u16, BlockKind::GreenWallBanner => 8458u16, + BlockKind::RedWallBanner => 8462u16, + BlockKind::BlackWallBanner => 8466u16, + BlockKind::RedSandstone => 8467u16, + BlockKind::ChiseledRedSandstone => 8468u16, + BlockKind::CutRedSandstone => 8469u16, + BlockKind::RedSandstoneStairs => 8549u16, + BlockKind::OakSlab => 8555u16, + BlockKind::SpruceSlab => 8561u16, + BlockKind::BirchSlab => 8567u16, + BlockKind::JungleSlab => 8573u16, + BlockKind::AcaciaSlab => 8579u16, BlockKind::DarkOakSlab => 8585u16, - BlockKind::WarpedFence => 15380u16, - BlockKind::NetherPortal => 4084u16, - BlockKind::BlueTerracotta => 7076u16, - BlockKind::Farmland => 3429u16, - BlockKind::SandstoneSlab => 8603u16, - BlockKind::EmeraldOre => 5455u16, - BlockKind::CrimsonFenceGate => 15540u16, - BlockKind::Glowstone => 4082u16, - BlockKind::RedstoneWire => 3409u16, + BlockKind::StoneSlab => 8591u16, BlockKind::SmoothStoneSlab => 8597u16, - BlockKind::LightWeightedPressurePlate => 6867u16, - BlockKind::LargeFern => 8146u16, - BlockKind::PrismarineBrickSlab => 8105u16, - BlockKind::BrownConcrete => 9700u16, - BlockKind::BrainCoralFan => 9803u16, - BlockKind::PolishedDioriteStairs => 10238u16, - BlockKind::WarpedDoor => 15908u16, - BlockKind::PolishedBlackstoneButton => 17030u16, - BlockKind::DeadBrainCoralFan => 9793u16, - BlockKind::LimeCandleCake => 17643u16, - BlockKind::Grindstone => 15082u16, + BlockKind::SandstoneSlab => 8603u16, + BlockKind::CutSandstoneSlab => 8609u16, + BlockKind::PetrifiedOakSlab => 8615u16, + BlockKind::CobblestoneSlab => 8621u16, + BlockKind::BrickSlab => 8627u16, + BlockKind::StoneBrickSlab => 8633u16, + BlockKind::NetherBrickSlab => 8639u16, + BlockKind::QuartzSlab => 8645u16, + BlockKind::RedSandstoneSlab => 8651u16, + BlockKind::CutRedSandstoneSlab => 8657u16, + BlockKind::PurpurSlab => 8663u16, + BlockKind::SmoothStone => 8664u16, + BlockKind::SmoothSandstone => 8665u16, + BlockKind::SmoothQuartz => 8666u16, + BlockKind::SmoothRedSandstone => 8667u16, + BlockKind::SpruceFenceGate => 8699u16, + BlockKind::BirchFenceGate => 8731u16, + BlockKind::JungleFenceGate => 8763u16, + BlockKind::AcaciaFenceGate => 8795u16, + BlockKind::DarkOakFenceGate => 8827u16, + BlockKind::SpruceFence => 8859u16, + BlockKind::BirchFence => 8891u16, + BlockKind::JungleFence => 8923u16, + BlockKind::AcaciaFence => 8955u16, + BlockKind::DarkOakFence => 8987u16, + BlockKind::SpruceDoor => 9051u16, + BlockKind::BirchDoor => 9115u16, + BlockKind::JungleDoor => 9179u16, + BlockKind::AcaciaDoor => 9243u16, + BlockKind::DarkOakDoor => 9307u16, + BlockKind::EndRod => 9313u16, + BlockKind::ChorusPlant => 9377u16, + BlockKind::ChorusFlower => 9383u16, + BlockKind::PurpurBlock => 9384u16, + BlockKind::PurpurPillar => 9387u16, + BlockKind::PurpurStairs => 9467u16, + BlockKind::EndStoneBricks => 9468u16, + BlockKind::Beetroots => 9472u16, + BlockKind::DirtPath => 9473u16, + BlockKind::EndGateway => 9474u16, + BlockKind::RepeatingCommandBlock => 9486u16, + BlockKind::ChainCommandBlock => 9498u16, + BlockKind::FrostedIce => 9502u16, + BlockKind::MagmaBlock => 9503u16, + BlockKind::NetherWartBlock => 9504u16, + BlockKind::RedNetherBricks => 9505u16, + BlockKind::BoneBlock => 9508u16, + BlockKind::StructureVoid => 9509u16, + BlockKind::Observer => 9521u16, + BlockKind::ShulkerBox => 9527u16, + BlockKind::WhiteShulkerBox => 9533u16, + BlockKind::OrangeShulkerBox => 9539u16, + BlockKind::MagentaShulkerBox => 9545u16, + BlockKind::LightBlueShulkerBox => 9551u16, + BlockKind::YellowShulkerBox => 9557u16, + BlockKind::LimeShulkerBox => 9563u16, + BlockKind::PinkShulkerBox => 9569u16, + BlockKind::GrayShulkerBox => 9575u16, + BlockKind::LightGrayShulkerBox => 9581u16, + BlockKind::CyanShulkerBox => 9587u16, + BlockKind::PurpleShulkerBox => 9593u16, + BlockKind::BlueShulkerBox => 9599u16, + BlockKind::BrownShulkerBox => 9605u16, + BlockKind::GreenShulkerBox => 9611u16, + BlockKind::RedShulkerBox => 9617u16, + BlockKind::BlackShulkerBox => 9623u16, + BlockKind::WhiteGlazedTerracotta => 9627u16, + BlockKind::OrangeGlazedTerracotta => 9631u16, + BlockKind::MagentaGlazedTerracotta => 9635u16, + BlockKind::LightBlueGlazedTerracotta => 9639u16, BlockKind::YellowGlazedTerracotta => 9643u16, + BlockKind::LimeGlazedTerracotta => 9647u16, + BlockKind::PinkGlazedTerracotta => 9651u16, + BlockKind::GrayGlazedTerracotta => 9655u16, + BlockKind::LightGrayGlazedTerracotta => 9659u16, + BlockKind::CyanGlazedTerracotta => 9663u16, + BlockKind::PurpleGlazedTerracotta => 9667u16, + BlockKind::BlueGlazedTerracotta => 9671u16, + BlockKind::BrownGlazedTerracotta => 9675u16, + BlockKind::GreenGlazedTerracotta => 9679u16, + BlockKind::RedGlazedTerracotta => 9683u16, + BlockKind::BlackGlazedTerracotta => 9687u16, + BlockKind::WhiteConcrete => 9688u16, + BlockKind::OrangeConcrete => 9689u16, + BlockKind::MagentaConcrete => 9690u16, + BlockKind::LightBlueConcrete => 9691u16, + BlockKind::YellowConcrete => 9692u16, + BlockKind::LimeConcrete => 9693u16, + BlockKind::PinkConcrete => 9694u16, + BlockKind::GrayConcrete => 9695u16, + BlockKind::LightGrayConcrete => 9696u16, + BlockKind::CyanConcrete => 9697u16, + BlockKind::PurpleConcrete => 9698u16, + BlockKind::BlueConcrete => 9699u16, + BlockKind::BrownConcrete => 9700u16, + BlockKind::GreenConcrete => 9701u16, + BlockKind::RedConcrete => 9702u16, + BlockKind::BlackConcrete => 9703u16, + BlockKind::WhiteConcretePowder => 9704u16, + BlockKind::OrangeConcretePowder => 9705u16, + BlockKind::MagentaConcretePowder => 9706u16, BlockKind::LightBlueConcretePowder => 9707u16, - BlockKind::LimeTerracotta => 7070u16, - BlockKind::MagmaBlock => 9503u16, - BlockKind::PolishedBlackstoneBricks => 16505u16, - BlockKind::IronTrapdoor => 7850u16, - BlockKind::AcaciaLog => 90u16, - BlockKind::PottedWhiteTulip => 6526u16, - BlockKind::ExposedCutCopperStairs => 18063u16, - BlockKind::PottedWarpedFungus => 16089u16, - BlockKind::PolishedBlackstoneBrickWall => 16917u16, - BlockKind::MossyStoneBricks => 4565u16, + BlockKind::YellowConcretePowder => 9708u16, + BlockKind::LimeConcretePowder => 9709u16, + BlockKind::PinkConcretePowder => 9710u16, + BlockKind::GrayConcretePowder => 9711u16, + BlockKind::LightGrayConcretePowder => 9712u16, + BlockKind::CyanConcretePowder => 9713u16, BlockKind::PurpleConcretePowder => 9714u16, - BlockKind::WeatheredCutCopperSlab => 18155u16, + BlockKind::BlueConcretePowder => 9715u16, + BlockKind::BrownConcretePowder => 9716u16, + BlockKind::GreenConcretePowder => 9717u16, + BlockKind::RedConcretePowder => 9718u16, + BlockKind::BlackConcretePowder => 9719u16, + BlockKind::Kelp => 9745u16, BlockKind::KelpPlant => 9746u16, - BlockKind::BigDripleafStem => 18663u16, - BlockKind::LimeWool => 1445u16, - BlockKind::LimeCarpet => 8121u16, + BlockKind::DriedKelpBlock => 9747u16, + BlockKind::TurtleEgg => 9759u16, + BlockKind::DeadTubeCoralBlock => 9760u16, + BlockKind::DeadBrainCoralBlock => 9761u16, + BlockKind::DeadBubbleCoralBlock => 9762u16, + BlockKind::DeadFireCoralBlock => 9763u16, + BlockKind::DeadHornCoralBlock => 9764u16, + BlockKind::TubeCoralBlock => 9765u16, BlockKind::BrainCoralBlock => 9766u16, - BlockKind::YellowStainedGlass => 4168u16, + BlockKind::BubbleCoralBlock => 9767u16, + BlockKind::FireCoralBlock => 9768u16, BlockKind::HornCoralBlock => 9769u16, - BlockKind::BlueBed => 1272u16, - BlockKind::Lever => 3873u16, + BlockKind::DeadTubeCoral => 9771u16, BlockKind::DeadBrainCoral => 9773u16, - BlockKind::CrimsonFence => 15348u16, - BlockKind::LimeWallBanner => 8426u16, - BlockKind::Lilac => 8138u16, - BlockKind::RedNetherBrickStairs => 10878u16, - BlockKind::CrimsonTrapdoor => 15444u16, - BlockKind::CoalBlock => 8133u16, - BlockKind::BambooSapling => 9901u16, - BlockKind::Netherrack => 4068u16, - BlockKind::Air => 0u16, - BlockKind::MagentaBed => 1128u16, - BlockKind::WhiteCarpet => 8116u16, - BlockKind::Bedrock => 33u16, - BlockKind::PottedCrimsonFungus => 16088u16, - BlockKind::PottedDandelion => 6519u16, - BlockKind::IronDoor => 3939u16, - BlockKind::LightGrayStainedGlassPane => 7368u16, - BlockKind::MagentaConcretePowder => 9706u16, - BlockKind::Tuff => 17714u16, - BlockKind::Grass => 1398u16, - BlockKind::LimeCandle => 17469u16, - BlockKind::WallTorch => 1495u16, - BlockKind::CyanBanner => 8306u16, + BlockKind::DeadBubbleCoral => 9775u16, + BlockKind::DeadFireCoral => 9777u16, + BlockKind::DeadHornCoral => 9779u16, + BlockKind::TubeCoral => 9781u16, + BlockKind::BrainCoral => 9783u16, BlockKind::BubbleCoral => 9785u16, - BlockKind::AzureBluet => 1472u16, - BlockKind::PottedFern => 6518u16, - BlockKind::WhiteBed => 1096u16, - BlockKind::TripwireHook => 5480u16, - BlockKind::EndPortalFrame => 5358u16, - BlockKind::Beetroots => 9472u16, - BlockKind::WarpedFenceGate => 15572u16, - BlockKind::Candle => 17373u16, - BlockKind::PottedAzureBluet => 6523u16, - BlockKind::Andesite => 6u16, - BlockKind::DragonHead => 6811u16, - BlockKind::EnchantingTable => 5333u16, - BlockKind::CyanTerracotta => 7074u16, - BlockKind::GreenShulkerBox => 9611u16, - BlockKind::Clay => 4016u16, - BlockKind::PottedAzaleaBush => 20340u16, - BlockKind::PolishedBlackstoneBrickSlab => 16513u16, - BlockKind::WhiteConcretePowder => 9704u16, - BlockKind::OxidizedCutCopperStairs => 17903u16, - BlockKind::GrayConcrete => 9695u16, - BlockKind::PlayerHead => 6771u16, - BlockKind::DeadBubbleCoralFan => 9795u16, - BlockKind::FlowerPot => 6511u16, - BlockKind::DeepslateTileStairs => 19588u16, - BlockKind::RedSandstone => 8467u16, - BlockKind::RedCandleCake => 17661u16, - BlockKind::SmoothQuartzSlab => 11086u16, - BlockKind::JungleStairs => 5849u16, - BlockKind::DarkOakWallSign => 3849u16, - BlockKind::YellowConcrete => 9692u16, - BlockKind::CrimsonPlanks => 15299u16, - BlockKind::OxeyeDaisy => 1477u16, - BlockKind::WhiteWool => 1440u16, - BlockKind::OakTrapdoor => 4243u16, - BlockKind::BirchDoor => 9115u16, - BlockKind::BlueIce => 9898u16, - BlockKind::RedMushroomBlock => 4701u16, - BlockKind::BubbleColumn => 9918u16, - BlockKind::RedNetherBrickWall => 14032u16, - BlockKind::Campfire => 15175u16, - BlockKind::PointedDripstone => 18563u16, - BlockKind::EmeraldBlock => 5609u16, - BlockKind::BlastFurnace => 15068u16, - BlockKind::Dandelion => 1468u16, - BlockKind::MagentaCarpet => 8118u16, - BlockKind::WitherSkeletonWallSkull => 6735u16, - BlockKind::StrippedJungleWood => 141u16, - BlockKind::LightBlueCandle => 17437u16, - BlockKind::CarvedPumpkin => 4088u16, - BlockKind::StoneBricks => 4564u16, - BlockKind::BirchButton => 6623u16, - BlockKind::BirchPlanks => 17u16, - BlockKind::OakLog => 78u16, - BlockKind::OxidizedCopper => 17814u16, - BlockKind::IronBars => 4797u16, - BlockKind::GraniteWall => 12736u16, - BlockKind::CopperOre => 17818u16, - BlockKind::LimeBanner => 8242u16, - BlockKind::GraniteStairs => 10718u16, - BlockKind::StrippedCrimsonStem => 15234u16, BlockKind::FireCoral => 9787u16, - BlockKind::RedStainedGlassPane => 7560u16, - BlockKind::PolishedAndesiteSlab => 11110u16, - BlockKind::WarpedTrapdoor => 15508u16, - BlockKind::StrippedWarpedStem => 15217u16, - BlockKind::RedBanner => 8386u16, - BlockKind::BlackWool => 1455u16, - BlockKind::PinkTulip => 1476u16, - BlockKind::EndPortal => 5350u16, - BlockKind::Composter => 16013u16, - BlockKind::GreenCandleCake => 17659u16, - BlockKind::TrappedChest => 6851u16, - BlockKind::OakWallSign => 3809u16, - BlockKind::AmethystBlock => 17664u16, - BlockKind::TubeCoralFan => 9801u16, - BlockKind::CrimsonSign => 15940u16, - BlockKind::AmethystCluster => 17677u16, - BlockKind::PottedCrimsonRoots => 16090u16, - BlockKind::Calcite => 17715u16, - BlockKind::LightBlueWool => 1443u16, - BlockKind::PottedCornflower => 6529u16, - BlockKind::BlackConcrete => 9703u16, - BlockKind::SnowBlock => 3999u16, - BlockKind::GrayConcretePowder => 9711u16, - BlockKind::SmallAmethystBud => 17713u16, - BlockKind::CutCopperSlab => 18167u16, - BlockKind::BigDripleaf => 18655u16, - BlockKind::GrayBanner => 8274u16, - BlockKind::Granite => 2u16, - BlockKind::PinkBed => 1192u16, - BlockKind::CrackedNetherBricks => 17356u16, - BlockKind::DeepslateBrickSlab => 20005u16, - BlockKind::CrimsonNylium => 15241u16, - BlockKind::Jigsaw => 16004u16, - BlockKind::DeepslateCopperOre => 17819u16, - BlockKind::MagentaStainedGlassPane => 7176u16, - BlockKind::Smoker => 15060u16, - BlockKind::JungleButton => 6647u16, - BlockKind::OrangeConcretePowder => 9705u16, - BlockKind::NetheriteBlock => 16080u16, - BlockKind::PottedDarkOakSapling => 6517u16, - BlockKind::BrownGlazedTerracotta => 9675u16, - BlockKind::WarpedStairs => 15732u16, - BlockKind::Cobblestone => 14u16, - BlockKind::GreenConcretePowder => 9717u16, - BlockKind::DeepslateIronOre => 72u16, - BlockKind::BlackCandleCake => 17663u16, - BlockKind::GrayCandle => 17501u16, - BlockKind::DarkOakLog => 93u16, - BlockKind::EndStone => 5359u16, - BlockKind::DamagedAnvil => 6827u16, - BlockKind::PolishedAndesite => 7u16, - BlockKind::PolishedBlackstonePressurePlate => 17006u16, - BlockKind::PottedFloweringAzaleaBush => 20341u16, - BlockKind::WhiteCandleCake => 17633u16, - BlockKind::OrangeWallBanner => 8410u16, - BlockKind::YellowWallBanner => 8422u16, - BlockKind::MossyStoneBrickWall => 12412u16, - BlockKind::LargeAmethystBud => 17689u16, - BlockKind::PowderSnow => 17717u16, - BlockKind::JungleTrapdoor => 4435u16, - BlockKind::SoulWallTorch => 4081u16, - BlockKind::DeadBush => 1400u16, - BlockKind::PottedLilyOfTheValley => 6530u16, - BlockKind::DarkOakTrapdoor => 4563u16, - BlockKind::StrippedSpruceWood => 135u16, - BlockKind::SweetBerryBush => 15211u16, - BlockKind::BirchLeaves => 189u16, - BlockKind::GrayStainedGlassPane => 7336u16, + BlockKind::HornCoral => 9789u16, BlockKind::DeadTubeCoralFan => 9791u16, - BlockKind::LightBlueBanner => 8210u16, - BlockKind::WeatheredCutCopper => 17821u16, - BlockKind::Loom => 15040u16, - BlockKind::CutCopperStairs => 18143u16, - BlockKind::YellowTerracotta => 7069u16, - BlockKind::DiamondBlock => 3412u16, - BlockKind::RedConcrete => 9702u16, - BlockKind::NetherBrickWall => 13384u16, - BlockKind::DeepslateLapisOre => 264u16, - BlockKind::InfestedMossyStoneBricks => 4571u16, - BlockKind::Cobweb => 1397u16, - BlockKind::RedNetherBrickSlab => 11104u16, - BlockKind::DeepslateGoldOre => 70u16, - BlockKind::LavaCauldron => 5346u16, - BlockKind::MagentaWallBanner => 8414u16, - BlockKind::AcaciaSign => 3565u16, - BlockKind::MagentaTerracotta => 7067u16, - BlockKind::CutSandstoneSlab => 8609u16, - BlockKind::Vine => 4892u16, - BlockKind::LilyPad => 5215u16, - BlockKind::QuartzBricks => 17357u16, - BlockKind::PolishedDeepslateWall => 19507u16, - BlockKind::LilyOfTheValley => 1480u16, - BlockKind::SoulCampfire => 15207u16, - BlockKind::SandstoneWall => 14356u16, - BlockKind::PottedPinkTulip => 6527u16, - BlockKind::BrainCoralWallFan => 9865u16, - BlockKind::PrismarineStairs => 7933u16, - BlockKind::SpruceFence => 8859u16, - BlockKind::MagentaStainedGlass => 4166u16, - BlockKind::DarkOakSapling => 32u16, - BlockKind::HoneycombBlock => 16079u16, - BlockKind::TintedGlass => 17716u16, - BlockKind::WaxedWeatheredCopper => 18169u16, - BlockKind::LightBlueBed => 1144u16, - BlockKind::OakSign => 3469u16, - BlockKind::BrownConcretePowder => 9716u16, - BlockKind::Fern => 1399u16, - BlockKind::Sand => 66u16, - BlockKind::IronOre => 71u16, - BlockKind::FrostedIce => 9502u16, - BlockKind::LightBlueGlazedTerracotta => 9639u16, - BlockKind::GreenCandle => 17597u16, + BlockKind::DeadBrainCoralFan => 9793u16, + BlockKind::DeadBubbleCoralFan => 9795u16, + BlockKind::DeadFireCoralFan => 9797u16, + BlockKind::DeadHornCoralFan => 9799u16, + BlockKind::TubeCoralFan => 9801u16, + BlockKind::BrainCoralFan => 9803u16, + BlockKind::BubbleCoralFan => 9805u16, + BlockKind::FireCoralFan => 9807u16, + BlockKind::HornCoralFan => 9809u16, + BlockKind::DeadTubeCoralWallFan => 9817u16, + BlockKind::DeadBrainCoralWallFan => 9825u16, + BlockKind::DeadBubbleCoralWallFan => 9833u16, + BlockKind::DeadFireCoralWallFan => 9841u16, + BlockKind::DeadHornCoralWallFan => 9849u16, + BlockKind::TubeCoralWallFan => 9857u16, + BlockKind::BrainCoralWallFan => 9865u16, BlockKind::BubbleCoralWallFan => 9873u16, - BlockKind::WarpedNylium => 15224u16, - BlockKind::Basalt => 4073u16, - BlockKind::StructureBlock => 15992u16, - BlockKind::RedSandstoneSlab => 8651u16, - BlockKind::Terracotta => 8132u16, - BlockKind::PinkShulkerBox => 9569u16, - BlockKind::BrickSlab => 8627u16, - BlockKind::JackOLantern => 4092u16, - BlockKind::LightBlueConcrete => 9691u16, - BlockKind::WarpedRoots => 15227u16, - BlockKind::BubbleCoralBlock => 9767u16, - BlockKind::Allium => 1471u16, - BlockKind::PurpleCandle => 17549u16, - BlockKind::StoneSlab => 8591u16, - BlockKind::YellowBanner => 8226u16, - BlockKind::IronBlock => 1484u16, - BlockKind::NetherWart => 5332u16, - BlockKind::StructureVoid => 9509u16, - BlockKind::Beacon => 5862u16, - BlockKind::PolishedBlackstoneStairs => 16998u16, - BlockKind::CaveVines => 18616u16, - BlockKind::SmallDripleaf => 18679u16, - BlockKind::DarkOakDoor => 9307u16, - BlockKind::RedWool => 1454u16, - BlockKind::WhiteWallBanner => 8406u16, - BlockKind::CommandBlock => 5861u16, - BlockKind::BrownBanner => 8354u16, - BlockKind::SmoothSandstoneSlab => 11080u16, - BlockKind::SoulFire => 2008u16, - BlockKind::GreenBanner => 8370u16, - BlockKind::OrangeStainedGlassPane => 7144u16, - BlockKind::StrippedJungleLog => 102u16, - BlockKind::DeepslateRedstoneOre => 3955u16, - BlockKind::LimeConcrete => 9693u16, - BlockKind::AcaciaPressurePlate => 3949u16, - BlockKind::InfestedCobblestone => 4569u16, - BlockKind::PurpurSlab => 8663u16, - BlockKind::Ice => 3998u16, - BlockKind::BlackStainedGlassPane => 7592u16, - BlockKind::LightGrayShulkerBox => 9581u16, + BlockKind::FireCoralWallFan => 9881u16, + BlockKind::HornCoralWallFan => 9889u16, + BlockKind::SeaPickle => 9897u16, + BlockKind::BlueIce => 9898u16, + BlockKind::Conduit => 9900u16, + BlockKind::BambooSapling => 9901u16, + BlockKind::Bamboo => 9913u16, + BlockKind::PottedBamboo => 9914u16, + BlockKind::VoidAir => 9915u16, + BlockKind::CaveAir => 9916u16, + BlockKind::BubbleColumn => 9918u16, + BlockKind::PolishedGraniteStairs => 9998u16, + BlockKind::SmoothRedSandstoneStairs => 10078u16, + BlockKind::MossyStoneBrickStairs => 10158u16, + BlockKind::PolishedDioriteStairs => 10238u16, + BlockKind::MossyCobblestoneStairs => 10318u16, + BlockKind::EndStoneBrickStairs => 10398u16, + BlockKind::StoneStairs => 10478u16, BlockKind::SmoothSandstoneStairs => 10558u16, - BlockKind::BlackConcretePowder => 9719u16, - BlockKind::AcaciaFenceGate => 8795u16, - BlockKind::CrackedPolishedBlackstoneBricks => 16506u16, - BlockKind::PurpleTerracotta => 7075u16, - BlockKind::StickyPiston => 1396u16, - BlockKind::PumpkinStem => 4852u16, - BlockKind::Beehive => 16077u16, - BlockKind::LimeGlazedTerracotta => 9647u16, - BlockKind::AcaciaTrapdoor => 4499u16, - BlockKind::EndGateway => 9474u16, - BlockKind::TwistingVinesPlant => 15297u16, - BlockKind::Sponge => 260u16, - BlockKind::PinkGlazedTerracotta => 9651u16, - BlockKind::CartographyTable => 15069u16, - BlockKind::FloweringAzaleaLeaves => 259u16, - BlockKind::ExposedCutCopper => 17822u16, - BlockKind::CrackedDeepslateBricks => 20331u16, - BlockKind::JungleLeaves => 203u16, - BlockKind::CrimsonRoots => 15298u16, - BlockKind::WhiteTerracotta => 7065u16, - BlockKind::DarkPrismarine => 7853u16, - BlockKind::BoneBlock => 9508u16, - BlockKind::YellowWool => 1444u16, BlockKind::SmoothQuartzStairs => 10638u16, - BlockKind::BlueShulkerBox => 9599u16, - BlockKind::RedTulip => 1473u16, - BlockKind::CyanCandle => 17533u16, - BlockKind::WaxedWeatheredCutCopperStairs => 18335u16, - BlockKind::StoneBrickSlab => 8633u16, - BlockKind::CrimsonStem => 15231u16, - BlockKind::BirchLog => 84u16, - BlockKind::PottedDeadBush => 6534u16, + BlockKind::GraniteStairs => 10718u16, + BlockKind::AndesiteStairs => 10798u16, + BlockKind::RedNetherBrickStairs => 10878u16, + BlockKind::PolishedAndesiteStairs => 10958u16, BlockKind::DioriteStairs => 11038u16, - BlockKind::BeeNest => 16053u16, - BlockKind::BuddingAmethyst => 17665u16, - BlockKind::OakLeaves => 161u16, + BlockKind::PolishedGraniteSlab => 11044u16, + BlockKind::SmoothRedSandstoneSlab => 11050u16, BlockKind::MossyStoneBrickSlab => 11056u16, - BlockKind::WetSponge => 261u16, - BlockKind::Poppy => 1469u16, - BlockKind::PlayerWallHead => 6775u16, - BlockKind::BlackShulkerBox => 9623u16, - BlockKind::NetherBrickFence => 5248u16, - BlockKind::OakStairs => 2089u16, - BlockKind::LightBlueStainedGlassPane => 7208u16, - BlockKind::Bricks => 1485u16, - BlockKind::CutRedSandstoneSlab => 8657u16, - BlockKind::SeaPickle => 9897u16, - BlockKind::CyanBed => 1240u16, - BlockKind::NetherWartBlock => 9504u16, - BlockKind::PottedSpruceSapling => 6513u16, - BlockKind::RoseBush => 8140u16, - BlockKind::PolishedGraniteStairs => 9998u16, - BlockKind::CobbledDeepslateSlab => 18772u16, - BlockKind::RedWallBanner => 8462u16, - BlockKind::Cake => 4099u16, - BlockKind::PottedRedMushroom => 6532u16, - BlockKind::AcaciaStairs => 7672u16, + BlockKind::PolishedDioriteSlab => 11062u16, + BlockKind::MossyCobblestoneSlab => 11068u16, + BlockKind::EndStoneBrickSlab => 11074u16, + BlockKind::SmoothSandstoneSlab => 11080u16, + BlockKind::SmoothQuartzSlab => 11086u16, + BlockKind::GraniteSlab => 11092u16, + BlockKind::AndesiteSlab => 11098u16, + BlockKind::RedNetherBrickSlab => 11104u16, + BlockKind::PolishedAndesiteSlab => 11110u16, + BlockKind::DioriteSlab => 11116u16, + BlockKind::BrickWall => 11440u16, BlockKind::PrismarineWall => 11764u16, - BlockKind::PinkWallBanner => 8430u16, - BlockKind::JunglePlanks => 18u16, - BlockKind::PolishedGraniteSlab => 11044u16, - BlockKind::BirchSapling => 26u16, - BlockKind::DarkOakLeaves => 231u16, - BlockKind::RedBed => 1320u16, - BlockKind::BrownTerracotta => 7077u16, - BlockKind::DarkPrismarineStairs => 8093u16, + BlockKind::RedSandstoneWall => 12088u16, + BlockKind::MossyStoneBrickWall => 12412u16, + BlockKind::GraniteWall => 12736u16, + BlockKind::StoneBrickWall => 13060u16, + BlockKind::NetherBrickWall => 13384u16, + BlockKind::AndesiteWall => 13708u16, + BlockKind::RedNetherBrickWall => 14032u16, + BlockKind::SandstoneWall => 14356u16, + BlockKind::EndStoneBrickWall => 14680u16, + BlockKind::DioriteWall => 15004u16, + BlockKind::Scaffolding => 15036u16, + BlockKind::Loom => 15040u16, + BlockKind::Barrel => 15052u16, + BlockKind::Smoker => 15060u16, + BlockKind::BlastFurnace => 15068u16, + BlockKind::CartographyTable => 15069u16, + BlockKind::FletchingTable => 15070u16, + BlockKind::Grindstone => 15082u16, + BlockKind::Lectern => 15098u16, + BlockKind::SmithingTable => 15099u16, BlockKind::Stonecutter => 15103u16, - BlockKind::PolishedBasalt => 4076u16, - BlockKind::BlueGlazedTerracotta => 9671u16, + BlockKind::Bell => 15135u16, + BlockKind::Lantern => 15139u16, + BlockKind::SoulLantern => 15143u16, + BlockKind::Campfire => 15175u16, + BlockKind::SoulCampfire => 15207u16, + BlockKind::SweetBerryBush => 15211u16, + BlockKind::WarpedStem => 15214u16, + BlockKind::StrippedWarpedStem => 15217u16, BlockKind::WarpedHyphae => 15220u16, - BlockKind::PurpleWallBanner => 8446u16, - BlockKind::HangingRoots => 18681u16, - BlockKind::OrangeCandle => 17405u16, - BlockKind::AcaciaPlanks => 19u16, - BlockKind::Torch => 1491u16, - BlockKind::BlackBanner => 8402u16, - BlockKind::DeadBubbleCoral => 9775u16, - BlockKind::PottedOakSapling => 6512u16, - BlockKind::CutRedSandstone => 8469u16, - BlockKind::FloweringAzalea => 18621u16, - BlockKind::YellowCarpet => 8120u16, - BlockKind::NetherBrickSlab => 8639u16, - BlockKind::WarpedSlab => 15312u16, - BlockKind::BrainCoral => 9783u16, - BlockKind::ChainCommandBlock => 9498u16, - BlockKind::WhiteGlazedTerracotta => 9627u16, - BlockKind::DeadTubeCoralBlock => 9760u16, - BlockKind::DarkOakPressurePlate => 3951u16, - BlockKind::MossyCobblestoneWall => 6510u16, - BlockKind::WaxedCutCopperStairs => 18495u16, - BlockKind::Anvil => 6819u16, - BlockKind::BirchWood => 120u16, - BlockKind::RedGlazedTerracotta => 9683u16, - BlockKind::PottedBrownMushroom => 6533u16, - BlockKind::AttachedPumpkinStem => 4840u16, - BlockKind::Stone => 1u16, - BlockKind::Bookshelf => 1488u16, - BlockKind::RedstoneOre => 3953u16, - BlockKind::DarkOakStairs => 7752u16, - BlockKind::DeadFireCoralBlock => 9763u16, - BlockKind::HoneyBlock => 16078u16, - BlockKind::BrownCandleCake => 17657u16, - BlockKind::WeatheredCopper => 17815u16, - BlockKind::PetrifiedOakSlab => 8615u16, - BlockKind::CrimsonDoor => 15844u16, - BlockKind::WhiteStainedGlassPane => 7112u16, - BlockKind::BlackCarpet => 8131u16, - BlockKind::PottedOxeyeDaisy => 6528u16, - BlockKind::PolishedGranite => 3u16, BlockKind::StrippedWarpedHyphae => 15223u16, - BlockKind::DeepslateTiles => 19508u16, - BlockKind::GreenWool => 1453u16, - BlockKind::PottedPoppy => 6520u16, - BlockKind::LightGrayTerracotta => 7073u16, - BlockKind::OrangeConcrete => 9689u16, - BlockKind::PinkStainedGlassPane => 7304u16, - BlockKind::CoalOre => 73u16, - BlockKind::CobblestoneSlab => 8621u16, - BlockKind::LimeBed => 1176u16, - BlockKind::BlackWallBanner => 8466u16, - BlockKind::OrangeTulip => 1474u16, - BlockKind::DarkOakFenceGate => 8827u16, - BlockKind::GreenTerracotta => 7078u16, - BlockKind::CaveAir => 9916u16, - BlockKind::Spawner => 2009u16, - BlockKind::Furnace => 3437u16, - BlockKind::ChiseledQuartzBlock => 6945u16, - BlockKind::CyanStainedGlass => 4173u16, - BlockKind::EndStoneBrickStairs => 10398u16, - BlockKind::MagentaGlazedTerracotta => 9635u16, - BlockKind::LightGrayCandleCake => 17649u16, - BlockKind::AttachedMelonStem => 4844u16, - BlockKind::Scaffolding => 15036u16, - BlockKind::DetectorRail => 1384u16, - BlockKind::OakPlanks => 15u16, - BlockKind::WaxedOxidizedCutCopperSlab => 18501u16, - BlockKind::Water => 49u16, + BlockKind::WarpedNylium => 15224u16, + BlockKind::WarpedFungus => 15225u16, + BlockKind::WarpedWartBlock => 15226u16, + BlockKind::WarpedRoots => 15227u16, + BlockKind::NetherSprouts => 15228u16, + BlockKind::CrimsonStem => 15231u16, + BlockKind::StrippedCrimsonStem => 15234u16, + BlockKind::CrimsonHyphae => 15237u16, + BlockKind::StrippedCrimsonHyphae => 15240u16, + BlockKind::CrimsonNylium => 15241u16, + BlockKind::CrimsonFungus => 15242u16, + BlockKind::Shroomlight => 15243u16, + BlockKind::WeepingVines => 15269u16, + BlockKind::WeepingVinesPlant => 15270u16, + BlockKind::TwistingVines => 15296u16, + BlockKind::TwistingVinesPlant => 15297u16, + BlockKind::CrimsonRoots => 15298u16, + BlockKind::CrimsonPlanks => 15299u16, + BlockKind::WarpedPlanks => 15300u16, + BlockKind::CrimsonSlab => 15306u16, + BlockKind::WarpedSlab => 15312u16, + BlockKind::CrimsonPressurePlate => 15314u16, + BlockKind::WarpedPressurePlate => 15316u16, + BlockKind::CrimsonFence => 15348u16, + BlockKind::WarpedFence => 15380u16, + BlockKind::CrimsonTrapdoor => 15444u16, + BlockKind::WarpedTrapdoor => 15508u16, + BlockKind::CrimsonFenceGate => 15540u16, + BlockKind::WarpedFenceGate => 15572u16, + BlockKind::CrimsonStairs => 15652u16, + BlockKind::WarpedStairs => 15732u16, BlockKind::CrimsonButton => 15756u16, - BlockKind::PinkCarpet => 8122u16, - BlockKind::OrangeStainedGlass => 4165u16, - BlockKind::AcaciaFence => 8955u16, - BlockKind::BlueBanner => 8338u16, - BlockKind::OakSapling => 22u16, - BlockKind::PrismarineBricks => 7852u16, - BlockKind::JungleFenceGate => 8763u16, - BlockKind::DioriteWall => 15004u16, - BlockKind::PurpurStairs => 9467u16, - BlockKind::SpruceLog => 81u16, - BlockKind::WaxedExposedCutCopperSlab => 18513u16, - BlockKind::RawCopperBlock => 20338u16, BlockKind::WarpedButton => 15780u16, - BlockKind::WhiteStainedGlass => 4164u16, - BlockKind::HornCoralFan => 9809u16, + BlockKind::CrimsonDoor => 15844u16, + BlockKind::WarpedDoor => 15908u16, + BlockKind::CrimsonSign => 15940u16, + BlockKind::WarpedSign => 15972u16, BlockKind::CrimsonWallSign => 15980u16, - BlockKind::CobblestoneWall => 6186u16, - BlockKind::CyanCandleCake => 17651u16, - BlockKind::StonePressurePlate => 3875u16, - BlockKind::Jukebox => 4034u16, - BlockKind::SpruceSlab => 8561u16, - BlockKind::BlackGlazedTerracotta => 9687u16, - BlockKind::Conduit => 9900u16, - BlockKind::TwistingVines => 15296u16, - BlockKind::SpruceSapling => 24u16, - BlockKind::OakPressurePlate => 3941u16, - BlockKind::StrippedSpruceLog => 96u16, - BlockKind::RedstoneBlock => 6932u16, - BlockKind::NoteBlock => 1080u16, - BlockKind::BrickWall => 11440u16, - BlockKind::CyanConcrete => 9697u16, - BlockKind::RedstoneWallTorch => 3965u16, - BlockKind::Seagrass => 1401u16, - BlockKind::LightGrayConcretePowder => 9712u16, - BlockKind::SmithingTable => 15099u16, - BlockKind::MelonStem => 4860u16, - BlockKind::OrangeTerracotta => 7066u16, - BlockKind::ChiseledRedSandstone => 8468u16, - BlockKind::RawIronBlock => 20337u16, - BlockKind::OakFence => 4066u16, - BlockKind::WarpedPlanks => 15300u16, - BlockKind::OrangeGlazedTerracotta => 9631u16, - BlockKind::BrownMushroom => 1481u16, - BlockKind::Fire => 2007u16, - BlockKind::PinkTerracotta => 7071u16, - BlockKind::Dirt => 10u16, - BlockKind::SmoothRedSandstone => 8667u16, - BlockKind::PurpleBed => 1256u16, - BlockKind::OakFenceGate => 5052u16, - BlockKind::OakButton => 6575u16, - BlockKind::PrismarineSlab => 8099u16, - BlockKind::AcaciaDoor => 9243u16, - BlockKind::PurpleBanner => 8322u16, - BlockKind::BrownWallBanner => 8454u16, + BlockKind::WarpedWallSign => 15988u16, + BlockKind::StructureBlock => 15992u16, + BlockKind::Jigsaw => 16004u16, + BlockKind::Composter => 16013u16, BlockKind::Target => 16029u16, - BlockKind::OxidizedCutCopper => 17820u16, - BlockKind::BirchTrapdoor => 4371u16, - BlockKind::ZombieHead => 6751u16, - BlockKind::GrayCandleCake => 17647u16, - BlockKind::BlackTerracotta => 7080u16, - BlockKind::CopperBlock => 17817u16, - BlockKind::DarkOakSign => 3629u16, - BlockKind::WhiteBanner => 8162u16, - BlockKind::InfestedStone => 4568u16, + BlockKind::BeeNest => 16053u16, + BlockKind::Beehive => 16077u16, + BlockKind::HoneyBlock => 16078u16, + BlockKind::HoneycombBlock => 16079u16, + BlockKind::NetheriteBlock => 16080u16, + BlockKind::AncientDebris => 16081u16, + BlockKind::CryingObsidian => 16082u16, + BlockKind::RespawnAnchor => 16087u16, + BlockKind::PottedCrimsonFungus => 16088u16, + BlockKind::PottedWarpedFungus => 16089u16, + BlockKind::PottedCrimsonRoots => 16090u16, + BlockKind::PottedWarpedRoots => 16091u16, + BlockKind::Lodestone => 16092u16, + BlockKind::Blackstone => 16093u16, + BlockKind::BlackstoneStairs => 16173u16, + BlockKind::BlackstoneWall => 16497u16, + BlockKind::BlackstoneSlab => 16503u16, + BlockKind::PolishedBlackstone => 16504u16, + BlockKind::PolishedBlackstoneBricks => 16505u16, + BlockKind::CrackedPolishedBlackstoneBricks => 16506u16, + BlockKind::ChiseledPolishedBlackstone => 16507u16, + BlockKind::PolishedBlackstoneBrickSlab => 16513u16, + BlockKind::PolishedBlackstoneBrickStairs => 16593u16, + BlockKind::PolishedBlackstoneBrickWall => 16917u16, + BlockKind::GildedBlackstone => 16918u16, + BlockKind::PolishedBlackstoneStairs => 16998u16, + BlockKind::PolishedBlackstoneSlab => 17004u16, + BlockKind::PolishedBlackstonePressurePlate => 17006u16, + BlockKind::PolishedBlackstoneButton => 17030u16, + BlockKind::PolishedBlackstoneWall => 17354u16, + BlockKind::ChiseledNetherBricks => 17355u16, + BlockKind::CrackedNetherBricks => 17356u16, + BlockKind::QuartzBricks => 17357u16, + BlockKind::Candle => 17373u16, BlockKind::WhiteCandle => 17389u16, - BlockKind::WhiteConcrete => 9688u16, - BlockKind::LimeStainedGlassPane => 7272u16, - BlockKind::DeadHornCoralBlock => 9764u16, - BlockKind::MagentaConcrete => 9690u16, - BlockKind::BirchSign => 3533u16, - BlockKind::BlackStainedGlass => 4179u16, - BlockKind::BlueCandleCake => 17655u16, - BlockKind::Ladder => 3701u16, - BlockKind::Observer => 9521u16, + BlockKind::OrangeCandle => 17405u16, + BlockKind::MagentaCandle => 17421u16, + BlockKind::LightBlueCandle => 17437u16, + BlockKind::YellowCandle => 17453u16, + BlockKind::LimeCandle => 17469u16, + BlockKind::PinkCandle => 17485u16, + BlockKind::GrayCandle => 17501u16, + BlockKind::LightGrayCandle => 17517u16, + BlockKind::CyanCandle => 17533u16, + BlockKind::PurpleCandle => 17549u16, + BlockKind::BlueCandle => 17565u16, + BlockKind::BrownCandle => 17581u16, + BlockKind::GreenCandle => 17597u16, + BlockKind::RedCandle => 17613u16, + BlockKind::BlackCandle => 17629u16, + BlockKind::CandleCake => 17631u16, + BlockKind::WhiteCandleCake => 17633u16, + BlockKind::OrangeCandleCake => 17635u16, + BlockKind::MagentaCandleCake => 17637u16, + BlockKind::LightBlueCandleCake => 17639u16, BlockKind::YellowCandleCake => 17641u16, - BlockKind::Sunflower => 8136u16, - BlockKind::PinkStainedGlass => 4170u16, - BlockKind::SmoothRedSandstoneStairs => 10078u16, - BlockKind::LapisOre => 263u16, - BlockKind::Lectern => 15098u16, - BlockKind::ExposedCutCopperSlab => 18161u16, - BlockKind::NetherQuartzOre => 6933u16, - BlockKind::Deepslate => 18685u16, - BlockKind::EnderChest => 5464u16, - BlockKind::WarpedSign => 15972u16, - BlockKind::PottedBlueOrchid => 6521u16, - BlockKind::RedTerracotta => 7079u16, - BlockKind::GrassBlock => 9u16, - BlockKind::PurpurBlock => 9384u16, - BlockKind::DeepslateBrickWall => 20329u16, - BlockKind::CutSandstone => 280u16, - BlockKind::OxidizedCutCopperSlab => 18149u16, - BlockKind::CyanGlazedTerracotta => 9663u16, - BlockKind::AcaciaWood => 126u16, - BlockKind::PottedRedTulip => 6524u16, - BlockKind::PolishedBlackstoneWall => 17354u16, - BlockKind::SpruceDoor => 9051u16, - BlockKind::PoweredRail => 1360u16, - BlockKind::LimeConcretePowder => 9709u16, - BlockKind::DeadTubeCoral => 9771u16, - BlockKind::JungleFence => 8923u16, + BlockKind::LimeCandleCake => 17643u16, + BlockKind::PinkCandleCake => 17645u16, + BlockKind::GrayCandleCake => 17647u16, + BlockKind::LightGrayCandleCake => 17649u16, + BlockKind::CyanCandleCake => 17651u16, + BlockKind::PurpleCandleCake => 17653u16, + BlockKind::BlueCandleCake => 17655u16, + BlockKind::BrownCandleCake => 17657u16, + BlockKind::GreenCandleCake => 17659u16, + BlockKind::RedCandleCake => 17661u16, + BlockKind::BlackCandleCake => 17663u16, + BlockKind::AmethystBlock => 17664u16, + BlockKind::BuddingAmethyst => 17665u16, + BlockKind::AmethystCluster => 17677u16, + BlockKind::LargeAmethystBud => 17689u16, BlockKind::MediumAmethystBud => 17701u16, - BlockKind::Comparator => 6899u16, - BlockKind::Sandstone => 278u16, - BlockKind::PurpurPillar => 9387u16, - BlockKind::LimeShulkerBox => 9563u16, - BlockKind::RedCarpet => 8130u16, + BlockKind::SmallAmethystBud => 17713u16, + BlockKind::Tuff => 17714u16, + BlockKind::Calcite => 17715u16, + BlockKind::TintedGlass => 17716u16, + BlockKind::PowderSnow => 17717u16, + BlockKind::SculkSensor => 17813u16, + BlockKind::OxidizedCopper => 17814u16, + BlockKind::WeatheredCopper => 17815u16, + BlockKind::ExposedCopper => 17816u16, + BlockKind::CopperBlock => 17817u16, + BlockKind::CopperOre => 17818u16, + BlockKind::DeepslateCopperOre => 17819u16, + BlockKind::OxidizedCutCopper => 17820u16, + BlockKind::WeatheredCutCopper => 17821u16, + BlockKind::ExposedCutCopper => 17822u16, + BlockKind::CutCopper => 17823u16, + BlockKind::OxidizedCutCopperStairs => 17903u16, + BlockKind::WeatheredCutCopperStairs => 17983u16, + BlockKind::ExposedCutCopperStairs => 18063u16, + BlockKind::CutCopperStairs => 18143u16, + BlockKind::OxidizedCutCopperSlab => 18149u16, + BlockKind::WeatheredCutCopperSlab => 18155u16, + BlockKind::ExposedCutCopperSlab => 18161u16, + BlockKind::CutCopperSlab => 18167u16, + BlockKind::WaxedCopperBlock => 18168u16, + BlockKind::WaxedWeatheredCopper => 18169u16, + BlockKind::WaxedExposedCopper => 18170u16, BlockKind::WaxedOxidizedCopper => 18171u16, - BlockKind::PrismarineBrickStairs => 8013u16, - BlockKind::DeadFireCoral => 9777u16, - BlockKind::GrayBed => 1208u16, - BlockKind::AcaciaSapling => 30u16, - BlockKind::CraftingTable => 3413u16, + BlockKind::WaxedOxidizedCutCopper => 18172u16, + BlockKind::WaxedWeatheredCutCopper => 18173u16, + BlockKind::WaxedExposedCutCopper => 18174u16, + BlockKind::WaxedCutCopper => 18175u16, + BlockKind::WaxedOxidizedCutCopperStairs => 18255u16, + BlockKind::WaxedWeatheredCutCopperStairs => 18335u16, + BlockKind::WaxedExposedCutCopperStairs => 18415u16, + BlockKind::WaxedCutCopperStairs => 18495u16, + BlockKind::WaxedOxidizedCutCopperSlab => 18501u16, + BlockKind::WaxedWeatheredCutCopperSlab => 18507u16, + BlockKind::WaxedExposedCutCopperSlab => 18513u16, + BlockKind::WaxedCutCopperSlab => 18519u16, + BlockKind::LightningRod => 18543u16, + BlockKind::PointedDripstone => 18563u16, BlockKind::DripstoneBlock => 18564u16, - BlockKind::DirtPath => 9473u16, + BlockKind::CaveVines => 18616u16, BlockKind::CaveVinesPlant => 18618u16, - BlockKind::QuartzStairs => 7028u16, - BlockKind::YellowShulkerBox => 9557u16, - BlockKind::StrippedAcaciaWood => 144u16, - BlockKind::SpruceTrapdoor => 4307u16, - BlockKind::GlowLichen => 5020u16, + BlockKind::SporeBlossom => 18619u16, + BlockKind::Azalea => 18620u16, + BlockKind::FloweringAzalea => 18621u16, + BlockKind::MossCarpet => 18622u16, + BlockKind::MossBlock => 18623u16, + BlockKind::BigDripleaf => 18655u16, + BlockKind::BigDripleafStem => 18663u16, + BlockKind::SmallDripleaf => 18679u16, + BlockKind::HangingRoots => 18681u16, + BlockKind::RootedDirt => 18682u16, + BlockKind::Deepslate => 18685u16, + BlockKind::CobbledDeepslate => 18686u16, + BlockKind::CobbledDeepslateStairs => 18766u16, + BlockKind::CobbledDeepslateSlab => 18772u16, + BlockKind::CobbledDeepslateWall => 19096u16, + BlockKind::PolishedDeepslate => 19097u16, + BlockKind::PolishedDeepslateStairs => 19177u16, + BlockKind::PolishedDeepslateSlab => 19183u16, + BlockKind::PolishedDeepslateWall => 19507u16, + BlockKind::DeepslateTiles => 19508u16, + BlockKind::DeepslateTileStairs => 19588u16, BlockKind::DeepslateTileSlab => 19594u16, - BlockKind::MagentaWool => 1442u16, - BlockKind::PinkCandleCake => 17645u16, - BlockKind::DarkOakWood => 129u16, - BlockKind::WaxedCutCopperSlab => 18519u16, - BlockKind::SprucePressurePlate => 3943u16, - BlockKind::Cocoa => 5374u16, - BlockKind::Hopper => 6943u16, - BlockKind::LimeStainedGlass => 4169u16, - BlockKind::DarkOakPlanks => 20u16, - BlockKind::PurpleGlazedTerracotta => 9667u16, - BlockKind::Glass => 262u16, - BlockKind::LightGrayConcrete => 9696u16, + BlockKind::DeepslateTileWall => 19918u16, + BlockKind::DeepslateBricks => 19919u16, + BlockKind::DeepslateBrickStairs => 19999u16, + BlockKind::DeepslateBrickSlab => 20005u16, + BlockKind::DeepslateBrickWall => 20329u16, + BlockKind::ChiseledDeepslate => 20330u16, + BlockKind::CrackedDeepslateBricks => 20331u16, + BlockKind::CrackedDeepslateTiles => 20332u16, + BlockKind::InfestedDeepslate => 20335u16, + BlockKind::SmoothBasalt => 20336u16, + BlockKind::RawIronBlock => 20337u16, + BlockKind::RawCopperBlock => 20338u16, + BlockKind::RawGoldBlock => 20339u16, + BlockKind::PottedAzaleaBush => 20340u16, + BlockKind::PottedFloweringAzaleaBush => 20341u16, } } } @@ -14702,2716 +14702,2716 @@ impl BlockKind { #[inline] pub fn light_emission(&self) -> u8 { match self { - BlockKind::LightBlueBanner => 0u8, - BlockKind::PottedRedMushroom => 0u8, - BlockKind::DeepslateTileSlab => 0u8, - BlockKind::QuartzPillar => 0u8, - BlockKind::MagentaBanner => 0u8, - BlockKind::CutRedSandstoneSlab => 0u8, - BlockKind::JungleLog => 0u8, - BlockKind::PolishedBlackstone => 0u8, - BlockKind::RedMushroom => 0u8, - BlockKind::GrassBlock => 0u8, - BlockKind::WhiteTulip => 0u8, - BlockKind::LavaCauldron => 15u8, - BlockKind::PottedCactus => 0u8, - BlockKind::FloweringAzalea => 0u8, - BlockKind::BlackShulkerBox => 0u8, - BlockKind::PolishedDiorite => 0u8, - BlockKind::LightGrayBed => 0u8, - BlockKind::PolishedBlackstoneWall => 0u8, - BlockKind::DarkOakTrapdoor => 0u8, - BlockKind::SlimeBlock => 0u8, - BlockKind::WarpedNylium => 0u8, - BlockKind::Candle => 0u8, - BlockKind::PottedRedTulip => 0u8, - BlockKind::PolishedAndesiteSlab => 0u8, - BlockKind::SoulSand => 0u8, - BlockKind::PointedDripstone => 0u8, - BlockKind::WeatheredCutCopperSlab => 0u8, - BlockKind::InfestedCrackedStoneBricks => 0u8, - BlockKind::Dropper => 0u8, - BlockKind::PolishedDioriteStairs => 0u8, - BlockKind::BrewingStand => 1u8, - BlockKind::CrimsonPlanks => 0u8, - BlockKind::YellowBanner => 0u8, - BlockKind::MediumAmethystBud => 2u8, - BlockKind::TintedGlass => 0u8, - BlockKind::CoalOre => 0u8, - BlockKind::Farmland => 0u8, - BlockKind::MelonStem => 0u8, - BlockKind::BlueConcretePowder => 0u8, - BlockKind::ChorusPlant => 0u8, - BlockKind::WhiteCandle => 0u8, - BlockKind::Melon => 0u8, - BlockKind::LightGrayGlazedTerracotta => 0u8, - BlockKind::BrownBanner => 0u8, - BlockKind::CrimsonFungus => 0u8, - BlockKind::JungleFenceGate => 0u8, - BlockKind::CutSandstone => 0u8, - BlockKind::Bricks => 0u8, - BlockKind::DeadFireCoral => 0u8, - BlockKind::PolishedBlackstonePressurePlate => 0u8, - BlockKind::DeepslateBrickSlab => 0u8, - BlockKind::Basalt => 0u8, - BlockKind::CandleCake => 0u8, - BlockKind::GreenConcrete => 0u8, - BlockKind::DeadFireCoralBlock => 0u8, - BlockKind::RedTulip => 0u8, - BlockKind::PolishedGraniteSlab => 0u8, - BlockKind::PottedOrangeTulip => 0u8, - BlockKind::CyanTerracotta => 0u8, - BlockKind::GrayConcretePowder => 0u8, - BlockKind::WeatheredCutCopperStairs => 0u8, - BlockKind::PurpleWallBanner => 0u8, - BlockKind::CyanWallBanner => 0u8, - BlockKind::BigDripleafStem => 0u8, - BlockKind::ChainCommandBlock => 0u8, - BlockKind::LightBlueShulkerBox => 0u8, - BlockKind::MossCarpet => 0u8, - BlockKind::OxeyeDaisy => 0u8, - BlockKind::AzaleaLeaves => 0u8, - BlockKind::CutCopperStairs => 0u8, - BlockKind::MushroomStem => 0u8, - BlockKind::GreenWool => 0u8, - BlockKind::DarkOakWallSign => 0u8, - BlockKind::CyanGlazedTerracotta => 0u8, - BlockKind::RedConcrete => 0u8, - BlockKind::DeepslateCoalOre => 0u8, - BlockKind::DeadTubeCoralFan => 0u8, - BlockKind::VoidAir => 0u8, - BlockKind::WarpedFenceGate => 0u8, - BlockKind::WarpedSign => 0u8, - BlockKind::GrayCandle => 0u8, - BlockKind::PowderSnow => 0u8, - BlockKind::RedStainedGlassPane => 0u8, - BlockKind::SandstoneWall => 0u8, - BlockKind::SoulTorch => 10u8, - BlockKind::GreenConcretePowder => 0u8, - BlockKind::Lever => 0u8, - BlockKind::PinkWallBanner => 0u8, - BlockKind::CreeperHead => 0u8, - BlockKind::DeepslateBrickStairs => 0u8, - BlockKind::RedstoneLamp => 0u8, - BlockKind::MossyCobblestoneStairs => 0u8, - BlockKind::TwistingVinesPlant => 0u8, - BlockKind::WhiteCandleCake => 0u8, - BlockKind::SpruceWood => 0u8, - BlockKind::HornCoralWallFan => 0u8, - BlockKind::HornCoralFan => 0u8, - BlockKind::NetherSprouts => 0u8, - BlockKind::SeaPickle => 6u8, - BlockKind::GreenCarpet => 0u8, - BlockKind::PurpleConcretePowder => 0u8, - BlockKind::WaxedWeatheredCutCopperSlab => 0u8, - BlockKind::Cake => 0u8, - BlockKind::GlowLichen => 0u8, - BlockKind::JungleLeaves => 0u8, - BlockKind::DragonHead => 0u8, - BlockKind::RedSandstoneSlab => 0u8, - BlockKind::LightGrayStainedGlass => 0u8, - BlockKind::AcaciaStairs => 0u8, - BlockKind::BrownConcretePowder => 0u8, - BlockKind::RedNetherBrickWall => 0u8, - BlockKind::LightGrayCandle => 0u8, - BlockKind::CrimsonStairs => 0u8, - BlockKind::PinkCandleCake => 0u8, - BlockKind::WhiteBed => 0u8, - BlockKind::SmoothRedSandstoneStairs => 0u8, - BlockKind::NetheriteBlock => 0u8, - BlockKind::PolishedBlackstoneSlab => 0u8, - BlockKind::PinkStainedGlass => 0u8, - BlockKind::WeepingVines => 0u8, - BlockKind::RedCarpet => 0u8, - BlockKind::TallSeagrass => 0u8, - BlockKind::PinkConcretePowder => 0u8, - BlockKind::GreenCandle => 0u8, - BlockKind::OakSapling => 0u8, - BlockKind::PinkConcrete => 0u8, - BlockKind::NetherBrickFence => 0u8, - BlockKind::BuddingAmethyst => 0u8, - BlockKind::PolishedBasalt => 0u8, - BlockKind::JungleWood => 0u8, - BlockKind::FireCoralWallFan => 0u8, - BlockKind::SmithingTable => 0u8, - BlockKind::Beacon => 15u8, - BlockKind::GlassPane => 0u8, - BlockKind::OrangeConcrete => 0u8, - BlockKind::BigDripleaf => 0u8, - BlockKind::CyanBanner => 0u8, - BlockKind::Sand => 0u8, - BlockKind::StoneStairs => 0u8, - BlockKind::MossyCobblestoneSlab => 0u8, - BlockKind::DarkOakFenceGate => 0u8, - BlockKind::CyanCandle => 0u8, - BlockKind::AcaciaPlanks => 0u8, - BlockKind::Dispenser => 0u8, - BlockKind::WarpedStem => 0u8, - BlockKind::GraniteStairs => 0u8, - BlockKind::PinkCarpet => 0u8, - BlockKind::OrangeCandleCake => 0u8, - BlockKind::InfestedCobblestone => 0u8, - BlockKind::DeepslateTileWall => 0u8, - BlockKind::PurpleCarpet => 0u8, - BlockKind::Cactus => 0u8, - BlockKind::YellowCarpet => 0u8, - BlockKind::BrownStainedGlassPane => 0u8, - BlockKind::CutRedSandstone => 0u8, - BlockKind::LimeConcrete => 0u8, - BlockKind::GreenStainedGlass => 0u8, - BlockKind::LightGrayWallBanner => 0u8, - BlockKind::IronOre => 0u8, - BlockKind::RedstoneOre => 0u8, - BlockKind::IronBars => 0u8, - BlockKind::InfestedChiseledStoneBricks => 0u8, - BlockKind::AcaciaWallSign => 0u8, - BlockKind::OrangeCarpet => 0u8, - BlockKind::Bell => 0u8, - BlockKind::ChiseledDeepslate => 0u8, - BlockKind::CrimsonSlab => 0u8, - BlockKind::RedSand => 0u8, - BlockKind::WhiteConcretePowder => 0u8, - BlockKind::PurpleStainedGlass => 0u8, - BlockKind::TubeCoralFan => 0u8, - BlockKind::WarpedWartBlock => 0u8, - BlockKind::OakTrapdoor => 0u8, - BlockKind::ChiseledNetherBricks => 0u8, - BlockKind::PolishedDeepslateWall => 0u8, - BlockKind::RedstoneTorch => 7u8, - BlockKind::RedMushroomBlock => 0u8, - BlockKind::EndStoneBrickStairs => 0u8, - BlockKind::Bedrock => 0u8, - BlockKind::Piston => 0u8, - BlockKind::Scaffolding => 0u8, - BlockKind::DeadTubeCoralBlock => 0u8, - BlockKind::BambooSapling => 0u8, - BlockKind::Campfire => 15u8, - BlockKind::SmoothSandstone => 0u8, - BlockKind::NetherWart => 0u8, - BlockKind::PottedAllium => 0u8, - BlockKind::PlayerWallHead => 0u8, - BlockKind::LightBlueStainedGlass => 0u8, - BlockKind::BlueWallBanner => 0u8, - BlockKind::Sunflower => 0u8, - BlockKind::LightBlueWool => 0u8, - BlockKind::Repeater => 0u8, - BlockKind::DeadBubbleCoralBlock => 0u8, - BlockKind::Deepslate => 0u8, - BlockKind::WarpedRoots => 0u8, - BlockKind::CopperOre => 0u8, - BlockKind::PottedAzaleaBush => 0u8, - BlockKind::MossyCobblestone => 0u8, - BlockKind::CrackedDeepslateTiles => 0u8, - BlockKind::PurpurPillar => 0u8, - BlockKind::WarpedButton => 0u8, - BlockKind::GrayShulkerBox => 0u8, - BlockKind::WaxedCutCopperStairs => 0u8, - BlockKind::YellowConcretePowder => 0u8, - BlockKind::DeepslateBrickWall => 0u8, - BlockKind::StrippedBirchLog => 0u8, - BlockKind::SeaLantern => 15u8, - BlockKind::CrackedNetherBricks => 0u8, - BlockKind::GreenBed => 0u8, - BlockKind::CarvedPumpkin => 0u8, - BlockKind::BrickWall => 0u8, - BlockKind::LimeBanner => 0u8, - BlockKind::WaxedCopperBlock => 0u8, - BlockKind::LargeFern => 0u8, - BlockKind::Dandelion => 0u8, + BlockKind::Air => 0u8, + BlockKind::Stone => 0u8, + BlockKind::Granite => 0u8, + BlockKind::PolishedGranite => 0u8, + BlockKind::Diorite => 0u8, + BlockKind::PolishedDiorite => 0u8, + BlockKind::Andesite => 0u8, + BlockKind::PolishedAndesite => 0u8, + BlockKind::GrassBlock => 0u8, + BlockKind::Dirt => 0u8, BlockKind::CoarseDirt => 0u8, - BlockKind::DeepslateEmeraldOre => 0u8, - BlockKind::PolishedDeepslateStairs => 0u8, - BlockKind::PottedBrownMushroom => 0u8, - BlockKind::AcaciaFence => 0u8, - BlockKind::JungleSign => 0u8, - BlockKind::StructureBlock => 0u8, - BlockKind::CartographyTable => 0u8, - BlockKind::RoseBush => 0u8, - BlockKind::MagentaStainedGlass => 0u8, - BlockKind::Fern => 0u8, - BlockKind::HeavyWeightedPressurePlate => 0u8, + BlockKind::Podzol => 0u8, + BlockKind::Cobblestone => 0u8, + BlockKind::OakPlanks => 0u8, + BlockKind::SprucePlanks => 0u8, + BlockKind::BirchPlanks => 0u8, + BlockKind::JunglePlanks => 0u8, + BlockKind::AcaciaPlanks => 0u8, + BlockKind::DarkOakPlanks => 0u8, + BlockKind::OakSapling => 0u8, + BlockKind::SpruceSapling => 0u8, + BlockKind::BirchSapling => 0u8, + BlockKind::JungleSapling => 0u8, + BlockKind::AcaciaSapling => 0u8, + BlockKind::DarkOakSapling => 0u8, + BlockKind::Bedrock => 0u8, + BlockKind::Water => 0u8, + BlockKind::Lava => 15u8, + BlockKind::Sand => 0u8, + BlockKind::RedSand => 0u8, + BlockKind::Gravel => 0u8, + BlockKind::GoldOre => 0u8, + BlockKind::DeepslateGoldOre => 0u8, + BlockKind::IronOre => 0u8, + BlockKind::DeepslateIronOre => 0u8, + BlockKind::CoalOre => 0u8, + BlockKind::DeepslateCoalOre => 0u8, + BlockKind::NetherGoldOre => 0u8, + BlockKind::OakLog => 0u8, + BlockKind::SpruceLog => 0u8, + BlockKind::BirchLog => 0u8, + BlockKind::JungleLog => 0u8, + BlockKind::AcaciaLog => 0u8, + BlockKind::DarkOakLog => 0u8, + BlockKind::StrippedSpruceLog => 0u8, + BlockKind::StrippedBirchLog => 0u8, + BlockKind::StrippedJungleLog => 0u8, + BlockKind::StrippedAcaciaLog => 0u8, + BlockKind::StrippedDarkOakLog => 0u8, + BlockKind::StrippedOakLog => 0u8, + BlockKind::OakWood => 0u8, + BlockKind::SpruceWood => 0u8, + BlockKind::BirchWood => 0u8, + BlockKind::JungleWood => 0u8, + BlockKind::AcaciaWood => 0u8, + BlockKind::DarkOakWood => 0u8, + BlockKind::StrippedOakWood => 0u8, + BlockKind::StrippedSpruceWood => 0u8, + BlockKind::StrippedBirchWood => 0u8, + BlockKind::StrippedJungleWood => 0u8, + BlockKind::StrippedAcaciaWood => 0u8, + BlockKind::StrippedDarkOakWood => 0u8, + BlockKind::OakLeaves => 0u8, + BlockKind::SpruceLeaves => 0u8, BlockKind::BirchLeaves => 0u8, - BlockKind::SpruceFenceGate => 0u8, - BlockKind::WaxedOxidizedCutCopperStairs => 0u8, - BlockKind::Beehive => 0u8, - BlockKind::CommandBlock => 0u8, - BlockKind::Hopper => 0u8, - BlockKind::CyanStainedGlassPane => 0u8, - BlockKind::Peony => 0u8, - BlockKind::BlackstoneSlab => 0u8, + BlockKind::JungleLeaves => 0u8, + BlockKind::AcaciaLeaves => 0u8, + BlockKind::DarkOakLeaves => 0u8, + BlockKind::AzaleaLeaves => 0u8, + BlockKind::FloweringAzaleaLeaves => 0u8, + BlockKind::Sponge => 0u8, + BlockKind::WetSponge => 0u8, + BlockKind::Glass => 0u8, + BlockKind::LapisOre => 0u8, BlockKind::DeepslateLapisOre => 0u8, - BlockKind::Poppy => 0u8, - BlockKind::DarkOakStairs => 0u8, - BlockKind::DetectorRail => 0u8, - BlockKind::RawIronBlock => 0u8, - BlockKind::IronTrapdoor => 0u8, + BlockKind::LapisBlock => 0u8, + BlockKind::Dispenser => 0u8, BlockKind::Sandstone => 0u8, - BlockKind::IronDoor => 0u8, - BlockKind::Vine => 0u8, - BlockKind::LightBlueCarpet => 0u8, - BlockKind::YellowTerracotta => 0u8, - BlockKind::JungleDoor => 0u8, - BlockKind::PottedAcaciaSapling => 0u8, - BlockKind::DeadHornCoral => 0u8, - BlockKind::GrayCandleCake => 0u8, - BlockKind::RedCandleCake => 0u8, - BlockKind::AcaciaTrapdoor => 0u8, - BlockKind::PinkTulip => 0u8, - BlockKind::SpruceTrapdoor => 0u8, - BlockKind::PolishedBlackstoneButton => 0u8, - BlockKind::JungleFence => 0u8, - BlockKind::Lodestone => 0u8, - BlockKind::WeatheredCopper => 0u8, - BlockKind::PottedWitherRose => 0u8, - BlockKind::MossyCobblestoneWall => 0u8, - BlockKind::BlackstoneWall => 0u8, - BlockKind::WarpedSlab => 0u8, - BlockKind::Furnace => 0u8, - BlockKind::CutCopperSlab => 0u8, - BlockKind::AcaciaLog => 0u8, - BlockKind::GraniteWall => 0u8, - BlockKind::StrippedOakLog => 0u8, - BlockKind::ExposedCutCopperSlab => 0u8, - BlockKind::PottedPinkTulip => 0u8, - BlockKind::DamagedAnvil => 0u8, - BlockKind::DragonEgg => 1u8, - BlockKind::SpruceButton => 0u8, - BlockKind::DioriteStairs => 0u8, - BlockKind::CraftingTable => 0u8, - BlockKind::BrownCandle => 0u8, - BlockKind::PurpleGlazedTerracotta => 0u8, - BlockKind::Prismarine => 0u8, - BlockKind::GrayConcrete => 0u8, - BlockKind::DeadBubbleCoralWallFan => 0u8, - BlockKind::PurpleCandleCake => 0u8, - BlockKind::BirchButton => 0u8, - BlockKind::DeepslateRedstoneOre => 0u8, - BlockKind::BlackStainedGlassPane => 0u8, - BlockKind::DirtPath => 0u8, - BlockKind::StoneSlab => 0u8, - BlockKind::BlackstoneStairs => 0u8, - BlockKind::WitherRose => 0u8, - BlockKind::BeeNest => 0u8, - BlockKind::PottedCrimsonFungus => 0u8, - BlockKind::WaxedCutCopperSlab => 0u8, - BlockKind::PinkBed => 0u8, - BlockKind::BrickSlab => 0u8, - BlockKind::BrownCandleCake => 0u8, - BlockKind::AncientDebris => 0u8, - BlockKind::PurpleShulkerBox => 0u8, + BlockKind::ChiseledSandstone => 0u8, + BlockKind::CutSandstone => 0u8, + BlockKind::NoteBlock => 0u8, + BlockKind::WhiteBed => 0u8, + BlockKind::OrangeBed => 0u8, + BlockKind::MagentaBed => 0u8, + BlockKind::LightBlueBed => 0u8, + BlockKind::YellowBed => 0u8, BlockKind::LimeBed => 0u8, - BlockKind::BrownMushroom => 1u8, - BlockKind::CreeperWallHead => 0u8, - BlockKind::PottedJungleSapling => 0u8, - BlockKind::RedGlazedTerracotta => 0u8, - BlockKind::Conduit => 15u8, + BlockKind::PinkBed => 0u8, + BlockKind::GrayBed => 0u8, + BlockKind::LightGrayBed => 0u8, + BlockKind::CyanBed => 0u8, + BlockKind::PurpleBed => 0u8, + BlockKind::BlueBed => 0u8, + BlockKind::BrownBed => 0u8, + BlockKind::GreenBed => 0u8, + BlockKind::RedBed => 0u8, + BlockKind::BlackBed => 0u8, + BlockKind::PoweredRail => 0u8, + BlockKind::DetectorRail => 0u8, + BlockKind::StickyPiston => 0u8, + BlockKind::Cobweb => 0u8, + BlockKind::Grass => 0u8, + BlockKind::Fern => 0u8, + BlockKind::DeadBush => 0u8, + BlockKind::Seagrass => 0u8, + BlockKind::TallSeagrass => 0u8, + BlockKind::Piston => 0u8, BlockKind::PistonHead => 0u8, - BlockKind::PottedBirchSapling => 0u8, - BlockKind::SkeletonSkull => 0u8, - BlockKind::Azalea => 0u8, - BlockKind::BlueCandle => 0u8, - BlockKind::LimeStainedGlassPane => 0u8, - BlockKind::BlueConcrete => 0u8, - BlockKind::EndStoneBrickSlab => 0u8, - BlockKind::BirchWallSign => 0u8, - BlockKind::AndesiteWall => 0u8, - BlockKind::WarpedHyphae => 0u8, - BlockKind::OrangeStainedGlass => 0u8, - BlockKind::AndesiteSlab => 0u8, - BlockKind::WaxedWeatheredCutCopperStairs => 0u8, - BlockKind::GoldOre => 0u8, - BlockKind::StrippedCrimsonHyphae => 0u8, - BlockKind::CrimsonTrapdoor => 0u8, - BlockKind::PrismarineSlab => 0u8, - BlockKind::ExposedCutCopper => 0u8, - BlockKind::SmallDripleaf => 0u8, - BlockKind::BirchTrapdoor => 0u8, - BlockKind::ChorusFlower => 0u8, - BlockKind::StrippedAcaciaWood => 0u8, - BlockKind::DripstoneBlock => 0u8, - BlockKind::MagentaTerracotta => 0u8, - BlockKind::RedNetherBrickStairs => 0u8, - BlockKind::OrangeBanner => 0u8, - BlockKind::SporeBlossom => 0u8, - BlockKind::InfestedStoneBricks => 0u8, + BlockKind::WhiteWool => 0u8, + BlockKind::OrangeWool => 0u8, + BlockKind::MagentaWool => 0u8, + BlockKind::LightBlueWool => 0u8, + BlockKind::YellowWool => 0u8, + BlockKind::LimeWool => 0u8, + BlockKind::PinkWool => 0u8, + BlockKind::GrayWool => 0u8, + BlockKind::LightGrayWool => 0u8, BlockKind::CyanWool => 0u8, - BlockKind::GreenTerracotta => 0u8, - BlockKind::MagentaStainedGlassPane => 0u8, - BlockKind::Observer => 0u8, - BlockKind::BlackCarpet => 0u8, - BlockKind::DarkPrismarineSlab => 0u8, - BlockKind::MagentaBed => 0u8, - BlockKind::BirchPressurePlate => 0u8, - BlockKind::JungleSlab => 0u8, - BlockKind::OakStairs => 0u8, - BlockKind::LightGrayConcrete => 0u8, - BlockKind::DarkOakSlab => 0u8, - BlockKind::BrownCarpet => 0u8, - BlockKind::OrangeShulkerBox => 0u8, - BlockKind::NetherWartBlock => 0u8, - BlockKind::FireCoralBlock => 0u8, - BlockKind::OakPressurePlate => 0u8, - BlockKind::TurtleEgg => 0u8, - BlockKind::BlackBed => 0u8, - BlockKind::RedstoneWire => 0u8, - BlockKind::SculkSensor => 1u8, + BlockKind::PurpleWool => 0u8, + BlockKind::BlueWool => 0u8, + BlockKind::BrownWool => 0u8, + BlockKind::GreenWool => 0u8, + BlockKind::RedWool => 0u8, + BlockKind::BlackWool => 0u8, BlockKind::MovingPiston => 0u8, - BlockKind::DeepslateTileStairs => 0u8, - BlockKind::StrippedAcaciaLog => 0u8, - BlockKind::CaveVinesPlant => 0u8, - BlockKind::Fire => 15u8, - BlockKind::StrippedSpruceWood => 0u8, - BlockKind::NetherPortal => 11u8, - BlockKind::CyanCandleCake => 0u8, - BlockKind::BlueTerracotta => 0u8, - BlockKind::GrayGlazedTerracotta => 0u8, + BlockKind::Dandelion => 0u8, + BlockKind::Poppy => 0u8, + BlockKind::BlueOrchid => 0u8, + BlockKind::Allium => 0u8, + BlockKind::AzureBluet => 0u8, + BlockKind::RedTulip => 0u8, + BlockKind::OrangeTulip => 0u8, + BlockKind::WhiteTulip => 0u8, + BlockKind::PinkTulip => 0u8, + BlockKind::OxeyeDaisy => 0u8, BlockKind::Cornflower => 0u8, - BlockKind::TrappedChest => 0u8, - BlockKind::WarpedDoor => 0u8, - BlockKind::Kelp => 0u8, - BlockKind::Rail => 0u8, - BlockKind::GreenBanner => 0u8, - BlockKind::OakDoor => 0u8, - BlockKind::AcaciaDoor => 0u8, - BlockKind::JungleStairs => 0u8, - BlockKind::MagentaConcrete => 0u8, - BlockKind::PinkGlazedTerracotta => 0u8, - BlockKind::BirchFenceGate => 0u8, - BlockKind::BubbleColumn => 0u8, - BlockKind::DeadBrainCoralWallFan => 0u8, - BlockKind::YellowWallBanner => 0u8, - BlockKind::CrimsonSign => 0u8, - BlockKind::CrimsonPressurePlate => 0u8, + BlockKind::WitherRose => 0u8, + BlockKind::LilyOfTheValley => 0u8, + BlockKind::BrownMushroom => 1u8, + BlockKind::RedMushroom => 0u8, + BlockKind::GoldBlock => 0u8, + BlockKind::IronBlock => 0u8, + BlockKind::Bricks => 0u8, + BlockKind::Tnt => 0u8, + BlockKind::Bookshelf => 0u8, + BlockKind::MossyCobblestone => 0u8, + BlockKind::Obsidian => 0u8, + BlockKind::Torch => 14u8, + BlockKind::WallTorch => 14u8, + BlockKind::Fire => 15u8, + BlockKind::SoulFire => 10u8, BlockKind::Spawner => 0u8, - BlockKind::PottedDandelion => 0u8, - BlockKind::CaveAir => 0u8, - BlockKind::MagentaWallBanner => 0u8, - BlockKind::OakSign => 0u8, - BlockKind::LilyPad => 0u8, - BlockKind::LightGrayShulkerBox => 0u8, - BlockKind::InfestedMossyStoneBricks => 0u8, + BlockKind::OakStairs => 0u8, + BlockKind::Chest => 0u8, + BlockKind::RedstoneWire => 0u8, + BlockKind::DiamondOre => 0u8, BlockKind::DeepslateDiamondOre => 0u8, - BlockKind::ChiseledRedSandstone => 0u8, - BlockKind::PottedFloweringAzaleaBush => 0u8, - BlockKind::CoalBlock => 0u8, - BlockKind::TripwireHook => 0u8, + BlockKind::DiamondBlock => 0u8, + BlockKind::CraftingTable => 0u8, + BlockKind::Wheat => 0u8, + BlockKind::Farmland => 0u8, + BlockKind::Furnace => 0u8, + BlockKind::OakSign => 0u8, + BlockKind::SpruceSign => 0u8, + BlockKind::BirchSign => 0u8, + BlockKind::AcaciaSign => 0u8, + BlockKind::JungleSign => 0u8, + BlockKind::DarkOakSign => 0u8, + BlockKind::OakDoor => 0u8, + BlockKind::Ladder => 0u8, + BlockKind::Rail => 0u8, + BlockKind::CobblestoneStairs => 0u8, + BlockKind::OakWallSign => 0u8, + BlockKind::SpruceWallSign => 0u8, + BlockKind::BirchWallSign => 0u8, + BlockKind::AcaciaWallSign => 0u8, + BlockKind::JungleWallSign => 0u8, + BlockKind::DarkOakWallSign => 0u8, + BlockKind::Lever => 0u8, + BlockKind::StonePressurePlate => 0u8, + BlockKind::IronDoor => 0u8, + BlockKind::OakPressurePlate => 0u8, + BlockKind::SprucePressurePlate => 0u8, + BlockKind::BirchPressurePlate => 0u8, + BlockKind::JunglePressurePlate => 0u8, + BlockKind::AcaciaPressurePlate => 0u8, + BlockKind::DarkOakPressurePlate => 0u8, + BlockKind::RedstoneOre => 0u8, + BlockKind::DeepslateRedstoneOre => 0u8, + BlockKind::RedstoneTorch => 7u8, + BlockKind::RedstoneWallTorch => 7u8, + BlockKind::StoneButton => 0u8, + BlockKind::Snow => 0u8, + BlockKind::Ice => 0u8, + BlockKind::SnowBlock => 0u8, + BlockKind::Cactus => 0u8, + BlockKind::Clay => 0u8, + BlockKind::SugarCane => 0u8, + BlockKind::Jukebox => 0u8, + BlockKind::OakFence => 0u8, + BlockKind::Pumpkin => 0u8, + BlockKind::Netherrack => 0u8, + BlockKind::SoulSand => 0u8, + BlockKind::SoulSoil => 0u8, + BlockKind::Basalt => 0u8, + BlockKind::PolishedBasalt => 0u8, + BlockKind::SoulTorch => 10u8, + BlockKind::SoulWallTorch => 10u8, + BlockKind::Glowstone => 15u8, + BlockKind::NetherPortal => 11u8, + BlockKind::CarvedPumpkin => 0u8, + BlockKind::JackOLantern => 15u8, + BlockKind::Cake => 0u8, + BlockKind::Repeater => 0u8, + BlockKind::WhiteStainedGlass => 0u8, + BlockKind::OrangeStainedGlass => 0u8, + BlockKind::MagentaStainedGlass => 0u8, + BlockKind::LightBlueStainedGlass => 0u8, + BlockKind::YellowStainedGlass => 0u8, + BlockKind::LimeStainedGlass => 0u8, + BlockKind::PinkStainedGlass => 0u8, + BlockKind::GrayStainedGlass => 0u8, + BlockKind::LightGrayStainedGlass => 0u8, + BlockKind::CyanStainedGlass => 0u8, + BlockKind::PurpleStainedGlass => 0u8, BlockKind::BlueStainedGlass => 0u8, - BlockKind::BirchSlab => 0u8, - BlockKind::ActivatorRail => 0u8, - BlockKind::BlueCandleCake => 0u8, - BlockKind::QuartzStairs => 0u8, - BlockKind::NetherGoldOre => 0u8, - BlockKind::Seagrass => 0u8, - BlockKind::HoneycombBlock => 0u8, - BlockKind::ShulkerBox => 0u8, + BlockKind::BrownStainedGlass => 0u8, + BlockKind::GreenStainedGlass => 0u8, BlockKind::RedStainedGlass => 0u8, - BlockKind::FireCoralFan => 0u8, - BlockKind::OrangeConcretePowder => 0u8, - BlockKind::Glowstone => 15u8, - BlockKind::CobblestoneWall => 0u8, - BlockKind::AndesiteStairs => 0u8, - BlockKind::Torch => 14u8, - BlockKind::GrayCarpet => 0u8, - BlockKind::EnderChest => 7u8, - BlockKind::DeepslateCopperOre => 0u8, - BlockKind::LightBlueTerracotta => 0u8, - BlockKind::Allium => 0u8, - BlockKind::SmoothRedSandstoneSlab => 0u8, - BlockKind::DeadHornCoralBlock => 0u8, - BlockKind::CrackedDeepslateBricks => 0u8, - BlockKind::PolishedDeepslate => 0u8, - BlockKind::DioriteWall => 0u8, - BlockKind::LimeCandleCake => 0u8, - BlockKind::OakWallSign => 0u8, - BlockKind::RedSandstoneWall => 0u8, - BlockKind::CrimsonDoor => 0u8, - BlockKind::Sponge => 0u8, - BlockKind::AcaciaButton => 0u8, + BlockKind::BlackStainedGlass => 0u8, + BlockKind::OakTrapdoor => 0u8, + BlockKind::SpruceTrapdoor => 0u8, + BlockKind::BirchTrapdoor => 0u8, + BlockKind::JungleTrapdoor => 0u8, + BlockKind::AcaciaTrapdoor => 0u8, + BlockKind::DarkOakTrapdoor => 0u8, + BlockKind::StoneBricks => 0u8, + BlockKind::MossyStoneBricks => 0u8, + BlockKind::CrackedStoneBricks => 0u8, + BlockKind::ChiseledStoneBricks => 0u8, + BlockKind::InfestedStone => 0u8, + BlockKind::InfestedCobblestone => 0u8, + BlockKind::InfestedStoneBricks => 0u8, + BlockKind::InfestedMossyStoneBricks => 0u8, + BlockKind::InfestedCrackedStoneBricks => 0u8, + BlockKind::InfestedChiseledStoneBricks => 0u8, + BlockKind::BrownMushroomBlock => 0u8, + BlockKind::RedMushroomBlock => 0u8, + BlockKind::MushroomStem => 0u8, + BlockKind::IronBars => 0u8, + BlockKind::Chain => 0u8, + BlockKind::GlassPane => 0u8, + BlockKind::Melon => 0u8, + BlockKind::AttachedPumpkinStem => 0u8, + BlockKind::AttachedMelonStem => 0u8, + BlockKind::PumpkinStem => 0u8, + BlockKind::MelonStem => 0u8, + BlockKind::Vine => 0u8, + BlockKind::GlowLichen => 0u8, + BlockKind::OakFenceGate => 0u8, + BlockKind::BrickStairs => 0u8, BlockKind::StoneBrickStairs => 0u8, - BlockKind::Pumpkin => 0u8, + BlockKind::Mycelium => 0u8, + BlockKind::LilyPad => 0u8, + BlockKind::NetherBricks => 0u8, + BlockKind::NetherBrickFence => 0u8, + BlockKind::NetherBrickStairs => 0u8, + BlockKind::NetherWart => 0u8, + BlockKind::EnchantingTable => 0u8, + BlockKind::BrewingStand => 1u8, + BlockKind::Cauldron => 0u8, + BlockKind::WaterCauldron => 0u8, + BlockKind::LavaCauldron => 15u8, + BlockKind::PowderSnowCauldron => 0u8, + BlockKind::EndPortal => 15u8, + BlockKind::EndPortalFrame => 1u8, + BlockKind::EndStone => 0u8, + BlockKind::DragonEgg => 1u8, + BlockKind::RedstoneLamp => 0u8, + BlockKind::Cocoa => 0u8, + BlockKind::SandstoneStairs => 0u8, + BlockKind::EmeraldOre => 0u8, + BlockKind::DeepslateEmeraldOre => 0u8, + BlockKind::EnderChest => 7u8, + BlockKind::TripwireHook => 0u8, + BlockKind::Tripwire => 0u8, + BlockKind::EmeraldBlock => 0u8, + BlockKind::SpruceStairs => 0u8, + BlockKind::BirchStairs => 0u8, + BlockKind::JungleStairs => 0u8, + BlockKind::CommandBlock => 0u8, + BlockKind::Beacon => 15u8, + BlockKind::CobblestoneWall => 0u8, + BlockKind::MossyCobblestoneWall => 0u8, + BlockKind::FlowerPot => 0u8, + BlockKind::PottedOakSapling => 0u8, + BlockKind::PottedSpruceSapling => 0u8, + BlockKind::PottedBirchSapling => 0u8, + BlockKind::PottedJungleSapling => 0u8, + BlockKind::PottedAcaciaSapling => 0u8, + BlockKind::PottedDarkOakSapling => 0u8, + BlockKind::PottedFern => 0u8, + BlockKind::PottedDandelion => 0u8, + BlockKind::PottedPoppy => 0u8, + BlockKind::PottedBlueOrchid => 0u8, + BlockKind::PottedAllium => 0u8, + BlockKind::PottedAzureBluet => 0u8, + BlockKind::PottedRedTulip => 0u8, + BlockKind::PottedOrangeTulip => 0u8, + BlockKind::PottedWhiteTulip => 0u8, + BlockKind::PottedPinkTulip => 0u8, + BlockKind::PottedOxeyeDaisy => 0u8, + BlockKind::PottedCornflower => 0u8, + BlockKind::PottedLilyOfTheValley => 0u8, + BlockKind::PottedWitherRose => 0u8, + BlockKind::PottedRedMushroom => 0u8, + BlockKind::PottedBrownMushroom => 0u8, + BlockKind::PottedDeadBush => 0u8, + BlockKind::PottedCactus => 0u8, + BlockKind::Carrots => 0u8, + BlockKind::Potatoes => 0u8, + BlockKind::OakButton => 0u8, + BlockKind::SpruceButton => 0u8, + BlockKind::BirchButton => 0u8, BlockKind::JungleButton => 0u8, - BlockKind::DarkOakSapling => 0u8, - BlockKind::RedTerracotta => 0u8, + BlockKind::AcaciaButton => 0u8, + BlockKind::DarkOakButton => 0u8, + BlockKind::SkeletonSkull => 0u8, + BlockKind::SkeletonWallSkull => 0u8, BlockKind::WitherSkeletonSkull => 0u8, - BlockKind::Chest => 0u8, - BlockKind::GrayStainedGlassPane => 0u8, - BlockKind::BirchSign => 0u8, - BlockKind::AcaciaLeaves => 0u8, - BlockKind::WhiteConcrete => 0u8, - BlockKind::MagentaCandle => 0u8, - BlockKind::Obsidian => 0u8, - BlockKind::PowderSnowCauldron => 0u8, - BlockKind::YellowConcrete => 0u8, - BlockKind::Diorite => 0u8, - BlockKind::BirchPlanks => 0u8, - BlockKind::JungleTrapdoor => 0u8, - BlockKind::WhiteBanner => 0u8, - BlockKind::BlastFurnace => 0u8, + BlockKind::WitherSkeletonWallSkull => 0u8, + BlockKind::ZombieHead => 0u8, + BlockKind::ZombieWallHead => 0u8, + BlockKind::PlayerHead => 0u8, + BlockKind::PlayerWallHead => 0u8, + BlockKind::CreeperHead => 0u8, + BlockKind::CreeperWallHead => 0u8, + BlockKind::DragonHead => 0u8, + BlockKind::DragonWallHead => 0u8, + BlockKind::Anvil => 0u8, BlockKind::ChippedAnvil => 0u8, - BlockKind::ChiseledPolishedBlackstone => 0u8, - BlockKind::SpruceLeaves => 0u8, - BlockKind::WarpedStairs => 0u8, - BlockKind::PurpurBlock => 0u8, - BlockKind::PottedOxeyeDaisy => 0u8, - BlockKind::StrippedDarkOakWood => 0u8, - BlockKind::CobblestoneSlab => 0u8, - BlockKind::PottedSpruceSapling => 0u8, - BlockKind::PottedCrimsonRoots => 0u8, - BlockKind::TwistingVines => 0u8, - BlockKind::LightBlueStainedGlassPane => 0u8, - BlockKind::OrangeGlazedTerracotta => 0u8, - BlockKind::YellowShulkerBox => 0u8, - BlockKind::Podzol => 0u8, - BlockKind::StrippedDarkOakLog => 0u8, - BlockKind::CutCopper => 0u8, - BlockKind::MagentaWool => 0u8, - BlockKind::EmeraldBlock => 0u8, - BlockKind::OxidizedCutCopper => 0u8, - BlockKind::StoneBrickSlab => 0u8, - BlockKind::DarkOakLog => 0u8, - BlockKind::DeadFireCoralFan => 0u8, - BlockKind::BrainCoralFan => 0u8, - BlockKind::PottedDarkOakSapling => 0u8, - BlockKind::SoulCampfire => 10u8, - BlockKind::RepeatingCommandBlock => 0u8, - BlockKind::Gravel => 0u8, - BlockKind::DarkOakPlanks => 0u8, - BlockKind::Shroomlight => 15u8, - BlockKind::BlackCandleCake => 0u8, - BlockKind::WarpedPressurePlate => 0u8, - BlockKind::WaxedOxidizedCopper => 0u8, - BlockKind::LightBlueGlazedTerracotta => 0u8, - BlockKind::RedBanner => 0u8, - BlockKind::Lectern => 0u8, - BlockKind::CyanConcrete => 0u8, - BlockKind::RedBed => 0u8, - BlockKind::GrayBanner => 0u8, - BlockKind::WeepingVinesPlant => 0u8, + BlockKind::DamagedAnvil => 0u8, + BlockKind::TrappedChest => 0u8, + BlockKind::LightWeightedPressurePlate => 0u8, + BlockKind::HeavyWeightedPressurePlate => 0u8, + BlockKind::Comparator => 0u8, + BlockKind::DaylightDetector => 0u8, + BlockKind::RedstoneBlock => 0u8, + BlockKind::NetherQuartzOre => 0u8, + BlockKind::Hopper => 0u8, + BlockKind::QuartzBlock => 0u8, + BlockKind::ChiseledQuartzBlock => 0u8, + BlockKind::QuartzPillar => 0u8, + BlockKind::QuartzStairs => 0u8, + BlockKind::ActivatorRail => 0u8, + BlockKind::Dropper => 0u8, + BlockKind::WhiteTerracotta => 0u8, + BlockKind::OrangeTerracotta => 0u8, + BlockKind::MagentaTerracotta => 0u8, + BlockKind::LightBlueTerracotta => 0u8, + BlockKind::YellowTerracotta => 0u8, + BlockKind::LimeTerracotta => 0u8, BlockKind::PinkTerracotta => 0u8, - BlockKind::AcaciaSapling => 0u8, - BlockKind::Cauldron => 0u8, - BlockKind::RedConcretePowder => 0u8, - BlockKind::AcaciaFenceGate => 0u8, - BlockKind::Andesite => 0u8, - BlockKind::PottedDeadBush => 0u8, - BlockKind::BubbleCoralWallFan => 0u8, - BlockKind::AcaciaWood => 0u8, - BlockKind::JunglePressurePlate => 0u8, - BlockKind::YellowCandle => 0u8, - BlockKind::GreenStainedGlassPane => 0u8, - BlockKind::SandstoneStairs => 0u8, - BlockKind::PumpkinStem => 0u8, - BlockKind::FlowerPot => 0u8, - BlockKind::SmallAmethystBud => 1u8, - BlockKind::DiamondBlock => 0u8, - BlockKind::SmoothSandstoneStairs => 0u8, - BlockKind::OxidizedCutCopperStairs => 0u8, - BlockKind::StrippedJungleWood => 0u8, + BlockKind::GrayTerracotta => 0u8, + BlockKind::LightGrayTerracotta => 0u8, + BlockKind::CyanTerracotta => 0u8, BlockKind::PurpleTerracotta => 0u8, - BlockKind::IronBlock => 0u8, - BlockKind::StrippedBirchWood => 0u8, - BlockKind::DarkOakFence => 0u8, - BlockKind::DeepslateBricks => 0u8, - BlockKind::Barrel => 0u8, - BlockKind::MagentaCandleCake => 0u8, - BlockKind::OrangeWool => 0u8, - BlockKind::PurpurSlab => 0u8, - BlockKind::BirchLog => 0u8, - BlockKind::StickyPiston => 0u8, - BlockKind::BirchDoor => 0u8, - BlockKind::PottedWarpedFungus => 0u8, - BlockKind::CobbledDeepslateStairs => 0u8, - BlockKind::SpruceFence => 0u8, + BlockKind::BlueTerracotta => 0u8, + BlockKind::BrownTerracotta => 0u8, + BlockKind::GreenTerracotta => 0u8, + BlockKind::RedTerracotta => 0u8, + BlockKind::BlackTerracotta => 0u8, + BlockKind::WhiteStainedGlassPane => 0u8, + BlockKind::OrangeStainedGlassPane => 0u8, + BlockKind::MagentaStainedGlassPane => 0u8, + BlockKind::LightBlueStainedGlassPane => 0u8, + BlockKind::YellowStainedGlassPane => 0u8, + BlockKind::LimeStainedGlassPane => 0u8, BlockKind::PinkStainedGlassPane => 0u8, - BlockKind::BrownConcrete => 0u8, - BlockKind::PlayerHead => 0u8, - BlockKind::LimeCandle => 0u8, - BlockKind::DeadFireCoralWallFan => 0u8, - BlockKind::PolishedDeepslateSlab => 0u8, - BlockKind::DeadHornCoralWallFan => 0u8, - BlockKind::WhiteTerracotta => 0u8, - BlockKind::BrownWool => 0u8, - BlockKind::MossyStoneBrickWall => 0u8, - BlockKind::Light => 15u8, - BlockKind::Calcite => 0u8, - BlockKind::Ladder => 0u8, - BlockKind::WhiteShulkerBox => 0u8, - BlockKind::Tnt => 0u8, - BlockKind::Granite => 0u8, - BlockKind::PurpleWool => 0u8, - BlockKind::CyanStainedGlass => 0u8, - BlockKind::MossyStoneBrickStairs => 0u8, - BlockKind::BrownShulkerBox => 0u8, - BlockKind::DeadBubbleCoral => 0u8, - BlockKind::GrayWool => 0u8, - BlockKind::PoweredRail => 0u8, - BlockKind::Wheat => 0u8, - BlockKind::RedCandle => 0u8, - BlockKind::Clay => 0u8, - BlockKind::Dirt => 0u8, - BlockKind::LapisOre => 0u8, - BlockKind::CyanConcretePowder => 0u8, - BlockKind::CaveVines => 0u8, - BlockKind::HoneyBlock => 0u8, - BlockKind::OakFence => 0u8, - BlockKind::DeadTubeCoralWallFan => 0u8, + BlockKind::GrayStainedGlassPane => 0u8, + BlockKind::LightGrayStainedGlassPane => 0u8, + BlockKind::CyanStainedGlassPane => 0u8, + BlockKind::PurpleStainedGlassPane => 0u8, BlockKind::BlueStainedGlassPane => 0u8, - BlockKind::WitherSkeletonWallSkull => 0u8, - BlockKind::Beetroots => 0u8, - BlockKind::LimeTerracotta => 0u8, - BlockKind::PurpleConcrete => 0u8, - BlockKind::GildedBlackstone => 0u8, - BlockKind::Chain => 0u8, - BlockKind::CyanBed => 0u8, - BlockKind::LightGrayWool => 0u8, - BlockKind::DeadBubbleCoralFan => 0u8, - BlockKind::PackedIce => 0u8, - BlockKind::BlackConcretePowder => 0u8, - BlockKind::RedNetherBrickSlab => 0u8, - BlockKind::FireCoral => 0u8, - BlockKind::LimeConcretePowder => 0u8, - BlockKind::WarpedTrapdoor => 0u8, - BlockKind::WhiteWallBanner => 0u8, - BlockKind::EndPortalFrame => 1u8, - BlockKind::PolishedBlackstoneBrickWall => 0u8, - BlockKind::InfestedStone => 0u8, - BlockKind::SpruceSlab => 0u8, - BlockKind::Anvil => 0u8, - BlockKind::ChiseledStoneBricks => 0u8, - BlockKind::CobbledDeepslate => 0u8, - BlockKind::OakSlab => 0u8, - BlockKind::HornCoral => 0u8, - BlockKind::SmoothBasalt => 0u8, - BlockKind::PetrifiedOakSlab => 0u8, - BlockKind::BlackGlazedTerracotta => 0u8, - BlockKind::Terracotta => 0u8, - BlockKind::AcaciaSlab => 0u8, - BlockKind::OrangeCandle => 0u8, - BlockKind::SpruceWallSign => 0u8, - BlockKind::DarkOakDoor => 0u8, - BlockKind::LapisBlock => 0u8, - BlockKind::OakButton => 0u8, - BlockKind::Tuff => 0u8, - BlockKind::RootedDirt => 0u8, - BlockKind::PottedBamboo => 0u8, - BlockKind::OrangeWallBanner => 0u8, - BlockKind::CobbledDeepslateSlab => 0u8, - BlockKind::Target => 0u8, - BlockKind::StrippedOakWood => 0u8, - BlockKind::CyanShulkerBox => 0u8, - BlockKind::LightBlueConcretePowder => 0u8, - BlockKind::Stonecutter => 0u8, + BlockKind::BrownStainedGlassPane => 0u8, + BlockKind::GreenStainedGlassPane => 0u8, + BlockKind::RedStainedGlassPane => 0u8, + BlockKind::BlackStainedGlassPane => 0u8, + BlockKind::AcaciaStairs => 0u8, + BlockKind::DarkOakStairs => 0u8, + BlockKind::SlimeBlock => 0u8, BlockKind::Barrier => 0u8, - BlockKind::LightBlueBed => 0u8, - BlockKind::OrangeTulip => 0u8, - BlockKind::QuartzBricks => 0u8, - BlockKind::PolishedDioriteSlab => 0u8, - BlockKind::SprucePressurePlate => 0u8, - BlockKind::BlueBed => 0u8, - BlockKind::FletchingTable => 0u8, - BlockKind::StoneBrickWall => 0u8, - BlockKind::Mycelium => 0u8, - BlockKind::JungleWallSign => 0u8, - BlockKind::BrainCoral => 0u8, - BlockKind::WhiteStainedGlass => 0u8, - BlockKind::BlueShulkerBox => 0u8, - BlockKind::LightGrayCandleCake => 0u8, - BlockKind::Glass => 0u8, - BlockKind::BlackWool => 0u8, + BlockKind::Light => 15u8, + BlockKind::IronTrapdoor => 0u8, + BlockKind::Prismarine => 0u8, + BlockKind::PrismarineBricks => 0u8, + BlockKind::DarkPrismarine => 0u8, + BlockKind::PrismarineStairs => 0u8, + BlockKind::PrismarineBrickStairs => 0u8, + BlockKind::DarkPrismarineStairs => 0u8, + BlockKind::PrismarineSlab => 0u8, + BlockKind::PrismarineBrickSlab => 0u8, + BlockKind::DarkPrismarineSlab => 0u8, + BlockKind::SeaLantern => 15u8, + BlockKind::HayBlock => 0u8, + BlockKind::WhiteCarpet => 0u8, + BlockKind::OrangeCarpet => 0u8, + BlockKind::MagentaCarpet => 0u8, + BlockKind::LightBlueCarpet => 0u8, + BlockKind::YellowCarpet => 0u8, + BlockKind::LimeCarpet => 0u8, + BlockKind::PinkCarpet => 0u8, + BlockKind::GrayCarpet => 0u8, BlockKind::LightGrayCarpet => 0u8, - BlockKind::YellowStainedGlassPane => 0u8, - BlockKind::MagentaGlazedTerracotta => 0u8, - BlockKind::WetSponge => 0u8, - BlockKind::WaxedExposedCutCopperStairs => 0u8, - BlockKind::GreenCandleCake => 0u8, - BlockKind::LimeShulkerBox => 0u8, - BlockKind::Snow => 0u8, + BlockKind::CyanCarpet => 0u8, + BlockKind::PurpleCarpet => 0u8, + BlockKind::BlueCarpet => 0u8, + BlockKind::BrownCarpet => 0u8, + BlockKind::GreenCarpet => 0u8, + BlockKind::RedCarpet => 0u8, + BlockKind::BlackCarpet => 0u8, + BlockKind::Terracotta => 0u8, + BlockKind::CoalBlock => 0u8, + BlockKind::PackedIce => 0u8, + BlockKind::Sunflower => 0u8, + BlockKind::Lilac => 0u8, + BlockKind::RoseBush => 0u8, + BlockKind::Peony => 0u8, + BlockKind::TallGrass => 0u8, + BlockKind::LargeFern => 0u8, + BlockKind::WhiteBanner => 0u8, + BlockKind::OrangeBanner => 0u8, + BlockKind::MagentaBanner => 0u8, + BlockKind::LightBlueBanner => 0u8, + BlockKind::YellowBanner => 0u8, + BlockKind::LimeBanner => 0u8, + BlockKind::PinkBanner => 0u8, + BlockKind::GrayBanner => 0u8, + BlockKind::LightGrayBanner => 0u8, + BlockKind::CyanBanner => 0u8, + BlockKind::PurpleBanner => 0u8, + BlockKind::BlueBanner => 0u8, + BlockKind::BrownBanner => 0u8, + BlockKind::GreenBanner => 0u8, + BlockKind::RedBanner => 0u8, + BlockKind::BlackBanner => 0u8, + BlockKind::WhiteWallBanner => 0u8, + BlockKind::OrangeWallBanner => 0u8, + BlockKind::MagentaWallBanner => 0u8, + BlockKind::LightBlueWallBanner => 0u8, + BlockKind::YellowWallBanner => 0u8, + BlockKind::LimeWallBanner => 0u8, + BlockKind::PinkWallBanner => 0u8, + BlockKind::GrayWallBanner => 0u8, + BlockKind::LightGrayWallBanner => 0u8, + BlockKind::CyanWallBanner => 0u8, + BlockKind::PurpleWallBanner => 0u8, + BlockKind::BlueWallBanner => 0u8, + BlockKind::BrownWallBanner => 0u8, BlockKind::GreenWallBanner => 0u8, - BlockKind::PottedPoppy => 0u8, - BlockKind::PrismarineBrickSlab => 0u8, + BlockKind::RedWallBanner => 0u8, BlockKind::BlackWallBanner => 0u8, - BlockKind::MagmaBlock => 3u8, BlockKind::RedSandstone => 0u8, - BlockKind::BrickStairs => 0u8, - BlockKind::PottedCornflower => 0u8, - BlockKind::CrimsonButton => 0u8, - BlockKind::StrippedWarpedHyphae => 0u8, - BlockKind::NetherBricks => 0u8, - BlockKind::BrownMushroomBlock => 0u8, - BlockKind::PolishedAndesiteStairs => 0u8, - BlockKind::PottedWhiteTulip => 0u8, - BlockKind::WaxedExposedCutCopperSlab => 0u8, - BlockKind::PurpurStairs => 0u8, - BlockKind::PottedLilyOfTheValley => 0u8, - BlockKind::QuartzBlock => 0u8, - BlockKind::WhiteGlazedTerracotta => 0u8, - BlockKind::WarpedPlanks => 0u8, - BlockKind::DeepslateIronOre => 0u8, - BlockKind::NetherBrickWall => 0u8, - BlockKind::EndGateway => 15u8, - BlockKind::MagentaCarpet => 0u8, - BlockKind::CryingObsidian => 10u8, - BlockKind::BubbleCoralFan => 0u8, - BlockKind::WhiteStainedGlassPane => 0u8, - BlockKind::BlackBanner => 0u8, - BlockKind::PottedBlueOrchid => 0u8, - BlockKind::GrayTerracotta => 0u8, - BlockKind::SpruceSapling => 0u8, - BlockKind::EmeraldOre => 0u8, - BlockKind::CrimsonNylium => 0u8, - BlockKind::Grindstone => 0u8, - BlockKind::CobblestoneStairs => 0u8, - BlockKind::ChiseledQuartzBlock => 0u8, - BlockKind::GoldBlock => 0u8, - BlockKind::OakLog => 0u8, - BlockKind::LightBlueWallBanner => 0u8, - BlockKind::StrippedJungleLog => 0u8, - BlockKind::BoneBlock => 0u8, - BlockKind::SmoothQuartzStairs => 0u8, - BlockKind::BlueIce => 0u8, - BlockKind::AcaciaSign => 0u8, - BlockKind::StrippedSpruceLog => 0u8, - BlockKind::KelpPlant => 0u8, - BlockKind::LightGrayBanner => 0u8, - BlockKind::OxidizedCutCopperSlab => 0u8, - BlockKind::CrackedPolishedBlackstoneBricks => 0u8, - BlockKind::EndStone => 0u8, - BlockKind::RedNetherBricks => 0u8, - BlockKind::SmoothQuartzSlab => 0u8, - BlockKind::Comparator => 0u8, - BlockKind::Cocoa => 0u8, - BlockKind::BlueBanner => 0u8, - BlockKind::BirchWood => 0u8, - BlockKind::RawCopperBlock => 0u8, - BlockKind::Lantern => 15u8, - BlockKind::PolishedAndesite => 0u8, - BlockKind::BlueCarpet => 0u8, - BlockKind::WhiteWool => 0u8, - BlockKind::CobbledDeepslateWall => 0u8, - BlockKind::SmoothSandstoneSlab => 0u8, - BlockKind::WeatheredCutCopper => 0u8, - BlockKind::DeepslateGoldOre => 0u8, - BlockKind::NoteBlock => 0u8, - BlockKind::AzureBluet => 0u8, - BlockKind::YellowGlazedTerracotta => 0u8, - BlockKind::DarkOakPressurePlate => 0u8, - BlockKind::LightBlueCandle => 0u8, - BlockKind::DarkPrismarine => 0u8, - BlockKind::WarpedWallSign => 0u8, - BlockKind::InfestedDeepslate => 0u8, - BlockKind::DeadHornCoralFan => 0u8, - BlockKind::PolishedBlackstoneStairs => 0u8, - BlockKind::EndStoneBrickWall => 0u8, - BlockKind::SpruceStairs => 0u8, - BlockKind::BlueGlazedTerracotta => 0u8, - BlockKind::RedstoneBlock => 0u8, + BlockKind::ChiseledRedSandstone => 0u8, + BlockKind::CutRedSandstone => 0u8, + BlockKind::RedSandstoneStairs => 0u8, + BlockKind::OakSlab => 0u8, + BlockKind::SpruceSlab => 0u8, + BlockKind::BirchSlab => 0u8, + BlockKind::JungleSlab => 0u8, + BlockKind::AcaciaSlab => 0u8, + BlockKind::DarkOakSlab => 0u8, + BlockKind::StoneSlab => 0u8, BlockKind::SmoothStoneSlab => 0u8, - BlockKind::TallGrass => 0u8, - BlockKind::BlackConcrete => 0u8, - BlockKind::BlueWool => 0u8, - BlockKind::BirchFence => 0u8, - BlockKind::OakPlanks => 0u8, - BlockKind::FloweringAzaleaLeaves => 0u8, - BlockKind::BlackStainedGlass => 0u8, - BlockKind::GrayBed => 0u8, - BlockKind::StoneBricks => 0u8, - BlockKind::BirchSapling => 0u8, - BlockKind::PurpleStainedGlassPane => 0u8, - BlockKind::Carrots => 0u8, - BlockKind::CrimsonStem => 0u8, - BlockKind::DaylightDetector => 0u8, - BlockKind::OrangeBed => 0u8, - BlockKind::ExposedCopper => 0u8, - BlockKind::TubeCoralWallFan => 0u8, - BlockKind::PolishedBlackstoneBrickStairs => 0u8, - BlockKind::BlueOrchid => 0u8, - BlockKind::LimeCarpet => 0u8, - BlockKind::DeadBush => 0u8, - BlockKind::DarkOakButton => 0u8, - BlockKind::Lilac => 0u8, - BlockKind::Bookshelf => 0u8, - BlockKind::Jigsaw => 0u8, - BlockKind::CrimsonFence => 0u8, - BlockKind::SoulLantern => 10u8, - BlockKind::DiamondOre => 0u8, BlockKind::SandstoneSlab => 0u8, - BlockKind::GraniteSlab => 0u8, - BlockKind::PrismarineBrickStairs => 0u8, - BlockKind::Tripwire => 0u8, - BlockKind::OrangeStainedGlassPane => 0u8, - BlockKind::MagentaConcretePowder => 0u8, - BlockKind::PottedAzureBluet => 0u8, - BlockKind::AcaciaPressurePlate => 0u8, - BlockKind::Lava => 15u8, - BlockKind::GrayStainedGlass => 0u8, - BlockKind::PrismarineStairs => 0u8, - BlockKind::YellowBed => 0u8, - BlockKind::MossyStoneBricks => 0u8, - BlockKind::RedShulkerBox => 0u8, - BlockKind::PrismarineWall => 0u8, + BlockKind::CutSandstoneSlab => 0u8, + BlockKind::PetrifiedOakSlab => 0u8, + BlockKind::CobblestoneSlab => 0u8, + BlockKind::BrickSlab => 0u8, + BlockKind::StoneBrickSlab => 0u8, + BlockKind::NetherBrickSlab => 0u8, + BlockKind::QuartzSlab => 0u8, + BlockKind::RedSandstoneSlab => 0u8, + BlockKind::CutRedSandstoneSlab => 0u8, + BlockKind::PurpurSlab => 0u8, BlockKind::SmoothStone => 0u8, - BlockKind::OakWood => 0u8, - BlockKind::AttachedMelonStem => 0u8, - BlockKind::OakFenceGate => 0u8, - BlockKind::CopperBlock => 0u8, - BlockKind::WaxedWeatheredCutCopper => 0u8, - BlockKind::BrownWallBanner => 0u8, - BlockKind::DarkOakSign => 0u8, + BlockKind::SmoothSandstone => 0u8, + BlockKind::SmoothQuartz => 0u8, + BlockKind::SmoothRedSandstone => 0u8, + BlockKind::SpruceFenceGate => 0u8, + BlockKind::BirchFenceGate => 0u8, + BlockKind::JungleFenceGate => 0u8, + BlockKind::AcaciaFenceGate => 0u8, + BlockKind::DarkOakFenceGate => 0u8, + BlockKind::SpruceFence => 0u8, + BlockKind::BirchFence => 0u8, + BlockKind::JungleFence => 0u8, + BlockKind::AcaciaFence => 0u8, + BlockKind::DarkOakFence => 0u8, + BlockKind::SpruceDoor => 0u8, + BlockKind::BirchDoor => 0u8, + BlockKind::JungleDoor => 0u8, + BlockKind::AcaciaDoor => 0u8, + BlockKind::DarkOakDoor => 0u8, + BlockKind::EndRod => 14u8, + BlockKind::ChorusPlant => 0u8, + BlockKind::ChorusFlower => 0u8, + BlockKind::PurpurBlock => 0u8, + BlockKind::PurpurPillar => 0u8, + BlockKind::PurpurStairs => 0u8, + BlockKind::EndStoneBricks => 0u8, + BlockKind::Beetroots => 0u8, + BlockKind::DirtPath => 0u8, + BlockKind::EndGateway => 15u8, + BlockKind::RepeatingCommandBlock => 0u8, + BlockKind::ChainCommandBlock => 0u8, BlockKind::FrostedIce => 0u8, - BlockKind::DarkPrismarineStairs => 0u8, - BlockKind::RedSandstoneStairs => 0u8, - BlockKind::AmethystBlock => 0u8, + BlockKind::MagmaBlock => 3u8, + BlockKind::NetherWartBlock => 0u8, + BlockKind::RedNetherBricks => 0u8, + BlockKind::BoneBlock => 0u8, + BlockKind::StructureVoid => 0u8, + BlockKind::Observer => 0u8, + BlockKind::ShulkerBox => 0u8, + BlockKind::WhiteShulkerBox => 0u8, + BlockKind::OrangeShulkerBox => 0u8, + BlockKind::MagentaShulkerBox => 0u8, + BlockKind::LightBlueShulkerBox => 0u8, + BlockKind::YellowShulkerBox => 0u8, + BlockKind::LimeShulkerBox => 0u8, + BlockKind::PinkShulkerBox => 0u8, + BlockKind::GrayShulkerBox => 0u8, + BlockKind::LightGrayShulkerBox => 0u8, + BlockKind::CyanShulkerBox => 0u8, + BlockKind::PurpleShulkerBox => 0u8, + BlockKind::BlueShulkerBox => 0u8, + BlockKind::BrownShulkerBox => 0u8, + BlockKind::GreenShulkerBox => 0u8, + BlockKind::RedShulkerBox => 0u8, + BlockKind::BlackShulkerBox => 0u8, + BlockKind::WhiteGlazedTerracotta => 0u8, + BlockKind::OrangeGlazedTerracotta => 0u8, + BlockKind::MagentaGlazedTerracotta => 0u8, + BlockKind::LightBlueGlazedTerracotta => 0u8, + BlockKind::YellowGlazedTerracotta => 0u8, + BlockKind::LimeGlazedTerracotta => 0u8, + BlockKind::PinkGlazedTerracotta => 0u8, + BlockKind::GrayGlazedTerracotta => 0u8, + BlockKind::LightGrayGlazedTerracotta => 0u8, + BlockKind::CyanGlazedTerracotta => 0u8, + BlockKind::PurpleGlazedTerracotta => 0u8, + BlockKind::BlueGlazedTerracotta => 0u8, BlockKind::BrownGlazedTerracotta => 0u8, - BlockKind::QuartzSlab => 0u8, - BlockKind::BlackCandle => 0u8, - BlockKind::PottedWarpedRoots => 0u8, - BlockKind::CyanCarpet => 0u8, - BlockKind::DioriteSlab => 0u8, - BlockKind::LightWeightedPressurePlate => 0u8, - BlockKind::LimeWallBanner => 0u8, - BlockKind::Blackstone => 0u8, + BlockKind::GreenGlazedTerracotta => 0u8, + BlockKind::RedGlazedTerracotta => 0u8, + BlockKind::BlackGlazedTerracotta => 0u8, + BlockKind::WhiteConcrete => 0u8, + BlockKind::OrangeConcrete => 0u8, + BlockKind::MagentaConcrete => 0u8, + BlockKind::LightBlueConcrete => 0u8, + BlockKind::YellowConcrete => 0u8, + BlockKind::LimeConcrete => 0u8, + BlockKind::PinkConcrete => 0u8, + BlockKind::GrayConcrete => 0u8, + BlockKind::LightGrayConcrete => 0u8, + BlockKind::CyanConcrete => 0u8, + BlockKind::PurpleConcrete => 0u8, + BlockKind::BlueConcrete => 0u8, + BlockKind::BrownConcrete => 0u8, + BlockKind::GreenConcrete => 0u8, + BlockKind::RedConcrete => 0u8, + BlockKind::BlackConcrete => 0u8, + BlockKind::WhiteConcretePowder => 0u8, + BlockKind::OrangeConcretePowder => 0u8, + BlockKind::MagentaConcretePowder => 0u8, + BlockKind::LightBlueConcretePowder => 0u8, + BlockKind::YellowConcretePowder => 0u8, + BlockKind::LimeConcretePowder => 0u8, + BlockKind::PinkConcretePowder => 0u8, + BlockKind::GrayConcretePowder => 0u8, + BlockKind::LightGrayConcretePowder => 0u8, + BlockKind::CyanConcretePowder => 0u8, + BlockKind::PurpleConcretePowder => 0u8, + BlockKind::BlueConcretePowder => 0u8, + BlockKind::BrownConcretePowder => 0u8, + BlockKind::GreenConcretePowder => 0u8, + BlockKind::RedConcretePowder => 0u8, + BlockKind::BlackConcretePowder => 0u8, + BlockKind::Kelp => 0u8, + BlockKind::KelpPlant => 0u8, + BlockKind::DriedKelpBlock => 0u8, + BlockKind::TurtleEgg => 0u8, + BlockKind::DeadTubeCoralBlock => 0u8, + BlockKind::DeadBrainCoralBlock => 0u8, + BlockKind::DeadBubbleCoralBlock => 0u8, + BlockKind::DeadFireCoralBlock => 0u8, + BlockKind::DeadHornCoralBlock => 0u8, + BlockKind::TubeCoralBlock => 0u8, + BlockKind::BrainCoralBlock => 0u8, + BlockKind::BubbleCoralBlock => 0u8, + BlockKind::FireCoralBlock => 0u8, BlockKind::HornCoralBlock => 0u8, - BlockKind::LightGrayStainedGlassPane => 0u8, - BlockKind::SweetBerryBush => 0u8, - BlockKind::DarkOakWood => 0u8, - BlockKind::JungleSapling => 0u8, - BlockKind::SmoothQuartz => 0u8, - BlockKind::BlackTerracotta => 0u8, - BlockKind::PinkWool => 0u8, BlockKind::DeadTubeCoral => 0u8, - BlockKind::WaxedExposedCopper => 0u8, - BlockKind::Composter => 0u8, - BlockKind::WhiteCarpet => 0u8, - BlockKind::StrippedCrimsonStem => 0u8, - BlockKind::LightBlueConcrete => 0u8, - BlockKind::DragonWallHead => 0u8, - BlockKind::BrainCoralWallFan => 0u8, - BlockKind::SnowBlock => 0u8, - BlockKind::TubeCoral => 0u8, - BlockKind::Air => 0u8, - BlockKind::AttachedPumpkinStem => 0u8, - BlockKind::Jukebox => 0u8, - BlockKind::AmethystCluster => 5u8, - BlockKind::ExposedCutCopperStairs => 0u8, - BlockKind::NetherQuartzOre => 0u8, - BlockKind::PolishedBlackstoneBricks => 0u8, - BlockKind::LargeAmethystBud => 4u8, - BlockKind::WallTorch => 14u8, - BlockKind::ChiseledSandstone => 0u8, - BlockKind::OrangeTerracotta => 0u8, - BlockKind::NetherBrickSlab => 0u8, - BlockKind::HangingRoots => 0u8, - BlockKind::LilyOfTheValley => 0u8, - BlockKind::MossyStoneBrickSlab => 0u8, - BlockKind::CutSandstoneSlab => 0u8, BlockKind::DeadBrainCoral => 0u8, - BlockKind::JunglePlanks => 0u8, - BlockKind::Netherrack => 0u8, + BlockKind::DeadBubbleCoral => 0u8, + BlockKind::DeadFireCoral => 0u8, + BlockKind::DeadHornCoral => 0u8, + BlockKind::TubeCoral => 0u8, + BlockKind::BrainCoral => 0u8, BlockKind::BubbleCoral => 0u8, - BlockKind::CrimsonWallSign => 0u8, - BlockKind::GrayWallBanner => 0u8, - BlockKind::CrackedStoneBricks => 0u8, - BlockKind::MagentaShulkerBox => 0u8, + BlockKind::FireCoral => 0u8, + BlockKind::HornCoral => 0u8, + BlockKind::DeadTubeCoralFan => 0u8, + BlockKind::DeadBrainCoralFan => 0u8, + BlockKind::DeadBubbleCoralFan => 0u8, + BlockKind::DeadFireCoralFan => 0u8, + BlockKind::DeadHornCoralFan => 0u8, + BlockKind::TubeCoralFan => 0u8, + BlockKind::BrainCoralFan => 0u8, + BlockKind::BubbleCoralFan => 0u8, + BlockKind::FireCoralFan => 0u8, + BlockKind::HornCoralFan => 0u8, + BlockKind::DeadTubeCoralWallFan => 0u8, + BlockKind::DeadBrainCoralWallFan => 0u8, + BlockKind::DeadBubbleCoralWallFan => 0u8, + BlockKind::DeadFireCoralWallFan => 0u8, + BlockKind::DeadHornCoralWallFan => 0u8, + BlockKind::TubeCoralWallFan => 0u8, + BlockKind::BrainCoralWallFan => 0u8, + BlockKind::BubbleCoralWallFan => 0u8, + BlockKind::FireCoralWallFan => 0u8, + BlockKind::HornCoralWallFan => 0u8, + BlockKind::SeaPickle => 6u8, + BlockKind::BlueIce => 0u8, + BlockKind::Conduit => 15u8, + BlockKind::BambooSapling => 0u8, BlockKind::Bamboo => 0u8, - BlockKind::WaxedExposedCutCopper => 0u8, - BlockKind::BubbleCoralBlock => 0u8, - BlockKind::LightGrayConcretePowder => 0u8, - BlockKind::DeadBrainCoralBlock => 0u8, - BlockKind::PottedOakSapling => 0u8, - BlockKind::HayBlock => 0u8, - BlockKind::SoulSoil => 0u8, - BlockKind::WaxedOxidizedCutCopper => 0u8, - BlockKind::CrimsonRoots => 0u8, - BlockKind::DriedKelpBlock => 0u8, - BlockKind::LimeStainedGlass => 0u8, - BlockKind::SugarCane => 0u8, - BlockKind::NetherBrickStairs => 0u8, - BlockKind::BrownTerracotta => 0u8, - BlockKind::GreenShulkerBox => 0u8, - BlockKind::SoulFire => 10u8, - BlockKind::YellowWool => 0u8, - BlockKind::Cobblestone => 0u8, + BlockKind::PottedBamboo => 0u8, + BlockKind::VoidAir => 0u8, + BlockKind::CaveAir => 0u8, + BlockKind::BubbleColumn => 0u8, BlockKind::PolishedGraniteStairs => 0u8, + BlockKind::SmoothRedSandstoneStairs => 0u8, + BlockKind::MossyStoneBrickStairs => 0u8, + BlockKind::PolishedDioriteStairs => 0u8, + BlockKind::MossyCobblestoneStairs => 0u8, + BlockKind::EndStoneBrickStairs => 0u8, + BlockKind::StoneStairs => 0u8, + BlockKind::SmoothSandstoneStairs => 0u8, + BlockKind::SmoothQuartzStairs => 0u8, + BlockKind::GraniteStairs => 0u8, + BlockKind::AndesiteStairs => 0u8, + BlockKind::RedNetherBrickStairs => 0u8, + BlockKind::PolishedAndesiteStairs => 0u8, + BlockKind::DioriteStairs => 0u8, + BlockKind::PolishedGraniteSlab => 0u8, + BlockKind::SmoothRedSandstoneSlab => 0u8, + BlockKind::MossyStoneBrickSlab => 0u8, + BlockKind::PolishedDioriteSlab => 0u8, + BlockKind::MossyCobblestoneSlab => 0u8, + BlockKind::EndStoneBrickSlab => 0u8, + BlockKind::SmoothSandstoneSlab => 0u8, + BlockKind::SmoothQuartzSlab => 0u8, + BlockKind::GraniteSlab => 0u8, + BlockKind::AndesiteSlab => 0u8, + BlockKind::RedNetherBrickSlab => 0u8, + BlockKind::PolishedAndesiteSlab => 0u8, + BlockKind::DioriteSlab => 0u8, + BlockKind::BrickWall => 0u8, + BlockKind::PrismarineWall => 0u8, + BlockKind::RedSandstoneWall => 0u8, + BlockKind::MossyStoneBrickWall => 0u8, + BlockKind::GraniteWall => 0u8, + BlockKind::StoneBrickWall => 0u8, + BlockKind::NetherBrickWall => 0u8, + BlockKind::AndesiteWall => 0u8, + BlockKind::RedNetherBrickWall => 0u8, + BlockKind::SandstoneWall => 0u8, + BlockKind::EndStoneBrickWall => 0u8, + BlockKind::DioriteWall => 0u8, + BlockKind::Scaffolding => 0u8, + BlockKind::Loom => 0u8, + BlockKind::Barrel => 0u8, BlockKind::Smoker => 0u8, - BlockKind::EndRod => 14u8, - BlockKind::PurpleBanner => 0u8, - BlockKind::SpruceLog => 0u8, - BlockKind::OakLeaves => 0u8, - BlockKind::WaxedWeatheredCopper => 0u8, - BlockKind::OxidizedCopper => 0u8, - BlockKind::BrownStainedGlass => 0u8, - BlockKind::StonePressurePlate => 0u8, - BlockKind::PinkCandle => 0u8, - BlockKind::PolishedBlackstoneBrickSlab => 0u8, - BlockKind::PottedFern => 0u8, - BlockKind::SkeletonWallSkull => 0u8, - BlockKind::CrimsonHyphae => 0u8, - BlockKind::PinkBanner => 0u8, - BlockKind::MossBlock => 0u8, - BlockKind::DeadBrainCoralFan => 0u8, - BlockKind::EndPortal => 15u8, - BlockKind::YellowStainedGlass => 0u8, - BlockKind::WaxedOxidizedCutCopperSlab => 0u8, - BlockKind::Stone => 0u8, - BlockKind::RedWallBanner => 0u8, - BlockKind::Potatoes => 0u8, - BlockKind::LimeWool => 0u8, - BlockKind::WaterCauldron => 0u8, - BlockKind::GreenGlazedTerracotta => 0u8, - BlockKind::RedstoneWallTorch => 7u8, - BlockKind::Grass => 0u8, - BlockKind::LightningRod => 0u8, - BlockKind::StoneButton => 0u8, - BlockKind::ZombieWallHead => 0u8, - BlockKind::YellowCandleCake => 0u8, - BlockKind::BirchStairs => 0u8, - BlockKind::SmoothRedSandstone => 0u8, - BlockKind::Water => 0u8, - BlockKind::ZombieHead => 0u8, - BlockKind::RespawnAnchor => 0u8, - BlockKind::Cobweb => 0u8, - BlockKind::SpruceDoor => 0u8, - BlockKind::BrownBed => 0u8, - BlockKind::PurpleBed => 0u8, - BlockKind::LimeGlazedTerracotta => 0u8, + BlockKind::BlastFurnace => 0u8, + BlockKind::CartographyTable => 0u8, + BlockKind::FletchingTable => 0u8, + BlockKind::Grindstone => 0u8, + BlockKind::Lectern => 0u8, + BlockKind::SmithingTable => 0u8, + BlockKind::Stonecutter => 0u8, + BlockKind::Bell => 0u8, + BlockKind::Lantern => 15u8, + BlockKind::SoulLantern => 10u8, + BlockKind::Campfire => 15u8, + BlockKind::SoulCampfire => 10u8, + BlockKind::SweetBerryBush => 0u8, + BlockKind::WarpedStem => 0u8, BlockKind::StrippedWarpedStem => 0u8, - BlockKind::Ice => 0u8, + BlockKind::WarpedHyphae => 0u8, + BlockKind::StrippedWarpedHyphae => 0u8, + BlockKind::WarpedNylium => 0u8, BlockKind::WarpedFungus => 0u8, - BlockKind::WarpedFence => 0u8, - BlockKind::Loom => 0u8, - BlockKind::PinkShulkerBox => 0u8, - BlockKind::PurpleCandle => 0u8, - BlockKind::StructureVoid => 0u8, - BlockKind::EnchantingTable => 0u8, - BlockKind::SprucePlanks => 0u8, - BlockKind::LightGrayTerracotta => 0u8, - BlockKind::SoulWallTorch => 10u8, - BlockKind::WaxedCutCopper => 0u8, - BlockKind::BrainCoralBlock => 0u8, - BlockKind::PolishedGranite => 0u8, - BlockKind::CrimsonFenceGate => 0u8, - BlockKind::LightBlueCandleCake => 0u8, - BlockKind::JackOLantern => 15u8, - BlockKind::DarkOakLeaves => 0u8, - BlockKind::DeepslateTiles => 0u8, - BlockKind::RawGoldBlock => 0u8, - BlockKind::SpruceSign => 0u8, - BlockKind::TubeCoralBlock => 0u8, - BlockKind::PrismarineBricks => 0u8, - BlockKind::RedWool => 0u8, - BlockKind::EndStoneBricks => 0u8, - } - } -} -impl BlockKind { - #[doc = "Returns the `light_filter` property of this `BlockKind`."] - #[inline] - pub fn light_filter(&self) -> u8 { - match self { - BlockKind::OakWallSign => 0u8, - BlockKind::OrangeCarpet => 0u8, - BlockKind::BrickSlab => 0u8, - BlockKind::WarpedPlanks => 15u8, - BlockKind::LightGrayBanner => 0u8, - BlockKind::StructureBlock => 15u8, - BlockKind::PistonHead => 0u8, - BlockKind::RedWool => 15u8, - BlockKind::PurpurPillar => 15u8, - BlockKind::LightGrayCandle => 0u8, - BlockKind::NoteBlock => 15u8, - BlockKind::PolishedBlackstoneStairs => 0u8, - BlockKind::Carrots => 0u8, - BlockKind::CaveVinesPlant => 0u8, + BlockKind::WarpedWartBlock => 0u8, + BlockKind::WarpedRoots => 0u8, + BlockKind::NetherSprouts => 0u8, + BlockKind::CrimsonStem => 0u8, + BlockKind::StrippedCrimsonStem => 0u8, + BlockKind::CrimsonHyphae => 0u8, + BlockKind::StrippedCrimsonHyphae => 0u8, + BlockKind::CrimsonNylium => 0u8, + BlockKind::CrimsonFungus => 0u8, + BlockKind::Shroomlight => 15u8, + BlockKind::WeepingVines => 0u8, + BlockKind::WeepingVinesPlant => 0u8, + BlockKind::TwistingVines => 0u8, + BlockKind::TwistingVinesPlant => 0u8, + BlockKind::CrimsonRoots => 0u8, + BlockKind::CrimsonPlanks => 0u8, + BlockKind::WarpedPlanks => 0u8, + BlockKind::CrimsonSlab => 0u8, + BlockKind::WarpedSlab => 0u8, + BlockKind::CrimsonPressurePlate => 0u8, + BlockKind::WarpedPressurePlate => 0u8, BlockKind::CrimsonFence => 0u8, - BlockKind::ZombieWallHead => 0u8, - BlockKind::OakDoor => 0u8, + BlockKind::WarpedFence => 0u8, + BlockKind::CrimsonTrapdoor => 0u8, + BlockKind::WarpedTrapdoor => 0u8, BlockKind::CrimsonFenceGate => 0u8, - BlockKind::Beacon => 1u8, - BlockKind::RedNetherBrickStairs => 0u8, - BlockKind::Peony => 0u8, - BlockKind::CopperBlock => 15u8, - BlockKind::DeadBrainCoralWallFan => 1u8, - BlockKind::Scaffolding => 0u8, + BlockKind::WarpedFenceGate => 0u8, + BlockKind::CrimsonStairs => 0u8, + BlockKind::WarpedStairs => 0u8, + BlockKind::CrimsonButton => 0u8, + BlockKind::WarpedButton => 0u8, BlockKind::CrimsonDoor => 0u8, - BlockKind::Chain => 0u8, - BlockKind::LimeTerracotta => 15u8, - BlockKind::Fern => 0u8, - BlockKind::EndRod => 0u8, - BlockKind::OakFence => 0u8, - BlockKind::InfestedCobblestone => 15u8, - BlockKind::PolishedDioriteSlab => 0u8, - BlockKind::SmallDripleaf => 0u8, - BlockKind::LightGrayGlazedTerracotta => 15u8, - BlockKind::MossyCobblestoneStairs => 0u8, - BlockKind::WarpedFence => 0u8, - BlockKind::LightBlueGlazedTerracotta => 15u8, - BlockKind::BlackWool => 15u8, - BlockKind::Potatoes => 0u8, - BlockKind::BlueStainedGlassPane => 0u8, - BlockKind::SpruceWood => 15u8, - BlockKind::RedStainedGlass => 0u8, - BlockKind::OakPlanks => 15u8, - BlockKind::LightBlueConcretePowder => 15u8, - BlockKind::SpruceSlab => 0u8, - BlockKind::CaveAir => 0u8, - BlockKind::WaxedCopperBlock => 15u8, - BlockKind::GrayBanner => 0u8, - BlockKind::CyanBed => 0u8, - BlockKind::LimeCarpet => 0u8, - BlockKind::PinkWool => 15u8, - BlockKind::RawGoldBlock => 15u8, - BlockKind::JunglePressurePlate => 0u8, - BlockKind::PurpleCandle => 0u8, - BlockKind::LimeCandle => 0u8, - BlockKind::BubbleColumn => 1u8, - BlockKind::WaxedCutCopperStairs => 0u8, - BlockKind::KelpPlant => 1u8, - BlockKind::Barrier => 0u8, - BlockKind::SprucePlanks => 15u8, - BlockKind::NetherGoldOre => 15u8, - BlockKind::Rail => 0u8, - BlockKind::MovingPiston => 0u8, - BlockKind::GoldOre => 15u8, - BlockKind::PottedAcaciaSapling => 0u8, - BlockKind::DragonWallHead => 0u8, - BlockKind::SoulSoil => 15u8, - BlockKind::PottedAzaleaBush => 0u8, - BlockKind::BrownBanner => 0u8, - BlockKind::OakFenceGate => 0u8, - BlockKind::OrangeBed => 0u8, - BlockKind::DarkPrismarine => 15u8, - BlockKind::PottedPinkTulip => 0u8, - BlockKind::CoalBlock => 15u8, - BlockKind::CutCopper => 15u8, - BlockKind::DragonEgg => 0u8, - BlockKind::EndGateway => 1u8, - BlockKind::BrownWallBanner => 0u8, - BlockKind::BlueShulkerBox => 1u8, - BlockKind::PinkCandleCake => 0u8, - BlockKind::WeatheredCutCopper => 15u8, - BlockKind::WaxedExposedCopper => 15u8, - BlockKind::BirchDoor => 0u8, - BlockKind::RedCandleCake => 0u8, - BlockKind::PrismarineStairs => 0u8, - BlockKind::DetectorRail => 0u8, - BlockKind::MossyCobblestoneWall => 0u8, - BlockKind::RedSand => 15u8, - BlockKind::GreenConcretePowder => 15u8, - BlockKind::GreenBanner => 0u8, - BlockKind::YellowStainedGlass => 0u8, - BlockKind::GrayTerracotta => 15u8, - BlockKind::BlueConcretePowder => 15u8, - BlockKind::LimeGlazedTerracotta => 15u8, - BlockKind::SpruceButton => 0u8, - BlockKind::PottedWarpedRoots => 0u8, - BlockKind::DarkOakLog => 15u8, - BlockKind::TwistingVinesPlant => 0u8, - BlockKind::AmethystBlock => 15u8, - BlockKind::GrayShulkerBox => 1u8, - BlockKind::MossyStoneBrickWall => 0u8, - BlockKind::PolishedGranite => 15u8, - BlockKind::PolishedBlackstoneButton => 0u8, - BlockKind::PinkWallBanner => 0u8, - BlockKind::RedSandstone => 15u8, - BlockKind::HayBlock => 15u8, - BlockKind::SpruceLog => 15u8, - BlockKind::NetherQuartzOre => 15u8, - BlockKind::SmoothStoneSlab => 0u8, - BlockKind::DeepslateTileWall => 0u8, - BlockKind::Bedrock => 15u8, - BlockKind::Cobblestone => 15u8, - BlockKind::CoarseDirt => 15u8, - BlockKind::GreenStainedGlassPane => 0u8, - BlockKind::Lava => 1u8, - BlockKind::PottedBirchSapling => 0u8, - BlockKind::JungleLeaves => 1u8, - BlockKind::WaxedExposedCutCopper => 15u8, - BlockKind::RedstoneOre => 15u8, - BlockKind::CryingObsidian => 15u8, - BlockKind::LilyPad => 0u8, - BlockKind::Sponge => 15u8, - BlockKind::Lever => 0u8, - BlockKind::WaterCauldron => 0u8, - BlockKind::TallGrass => 0u8, - BlockKind::SeaPickle => 1u8, - BlockKind::BirchWallSign => 0u8, - BlockKind::BlastFurnace => 15u8, - BlockKind::OakWood => 15u8, - BlockKind::BrownStainedGlassPane => 0u8, - BlockKind::WaxedExposedCutCopperStairs => 0u8, - BlockKind::Gravel => 15u8, + BlockKind::WarpedDoor => 0u8, + BlockKind::CrimsonSign => 0u8, + BlockKind::WarpedSign => 0u8, BlockKind::CrimsonWallSign => 0u8, - BlockKind::MossyCobblestone => 15u8, - BlockKind::RedTerracotta => 15u8, BlockKind::WarpedWallSign => 0u8, - BlockKind::BlackStainedGlassPane => 0u8, - BlockKind::Beehive => 15u8, - BlockKind::BrownMushroomBlock => 15u8, - BlockKind::Candle => 0u8, - BlockKind::DeadFireCoralFan => 1u8, - BlockKind::RedCandle => 0u8, - BlockKind::SandstoneStairs => 0u8, - BlockKind::EndPortal => 0u8, - BlockKind::GrayCandleCake => 0u8, - BlockKind::CutCopperSlab => 0u8, - BlockKind::GreenShulkerBox => 1u8, - BlockKind::Poppy => 0u8, - BlockKind::CandleCake => 0u8, - BlockKind::DarkOakButton => 0u8, - BlockKind::Dirt => 15u8, - BlockKind::LightGrayBed => 0u8, - BlockKind::Tripwire => 0u8, - BlockKind::LightBlueCarpet => 0u8, - BlockKind::DarkOakStairs => 0u8, - BlockKind::EndStoneBrickWall => 0u8, - BlockKind::ChorusFlower => 1u8, - BlockKind::BirchLog => 15u8, - BlockKind::EmeraldBlock => 15u8, - BlockKind::DeepslateCopperOre => 15u8, - BlockKind::Vine => 0u8, + BlockKind::StructureBlock => 0u8, + BlockKind::Jigsaw => 0u8, + BlockKind::Composter => 0u8, + BlockKind::Target => 0u8, + BlockKind::BeeNest => 0u8, + BlockKind::Beehive => 0u8, + BlockKind::HoneyBlock => 0u8, + BlockKind::HoneycombBlock => 0u8, + BlockKind::NetheriteBlock => 0u8, + BlockKind::AncientDebris => 0u8, + BlockKind::CryingObsidian => 10u8, + BlockKind::RespawnAnchor => 0u8, + BlockKind::PottedCrimsonFungus => 0u8, + BlockKind::PottedWarpedFungus => 0u8, + BlockKind::PottedCrimsonRoots => 0u8, + BlockKind::PottedWarpedRoots => 0u8, + BlockKind::Lodestone => 0u8, + BlockKind::Blackstone => 0u8, + BlockKind::BlackstoneStairs => 0u8, + BlockKind::BlackstoneWall => 0u8, + BlockKind::BlackstoneSlab => 0u8, + BlockKind::PolishedBlackstone => 0u8, + BlockKind::PolishedBlackstoneBricks => 0u8, + BlockKind::CrackedPolishedBlackstoneBricks => 0u8, + BlockKind::ChiseledPolishedBlackstone => 0u8, + BlockKind::PolishedBlackstoneBrickSlab => 0u8, + BlockKind::PolishedBlackstoneBrickStairs => 0u8, + BlockKind::PolishedBlackstoneBrickWall => 0u8, + BlockKind::GildedBlackstone => 0u8, + BlockKind::PolishedBlackstoneStairs => 0u8, + BlockKind::PolishedBlackstoneSlab => 0u8, + BlockKind::PolishedBlackstonePressurePlate => 0u8, + BlockKind::PolishedBlackstoneButton => 0u8, + BlockKind::PolishedBlackstoneWall => 0u8, + BlockKind::ChiseledNetherBricks => 0u8, + BlockKind::CrackedNetherBricks => 0u8, + BlockKind::QuartzBricks => 0u8, + BlockKind::Candle => 0u8, + BlockKind::WhiteCandle => 0u8, + BlockKind::OrangeCandle => 0u8, + BlockKind::MagentaCandle => 0u8, + BlockKind::LightBlueCandle => 0u8, + BlockKind::YellowCandle => 0u8, + BlockKind::LimeCandle => 0u8, + BlockKind::PinkCandle => 0u8, + BlockKind::GrayCandle => 0u8, + BlockKind::LightGrayCandle => 0u8, + BlockKind::CyanCandle => 0u8, + BlockKind::PurpleCandle => 0u8, + BlockKind::BlueCandle => 0u8, + BlockKind::BrownCandle => 0u8, + BlockKind::GreenCandle => 0u8, + BlockKind::RedCandle => 0u8, BlockKind::BlackCandle => 0u8, - BlockKind::DiamondBlock => 15u8, - BlockKind::DarkOakSign => 0u8, - BlockKind::Bell => 0u8, - BlockKind::PolishedBlackstoneBrickSlab => 0u8, + BlockKind::CandleCake => 0u8, + BlockKind::WhiteCandleCake => 0u8, + BlockKind::OrangeCandleCake => 0u8, + BlockKind::MagentaCandleCake => 0u8, + BlockKind::LightBlueCandleCake => 0u8, + BlockKind::YellowCandleCake => 0u8, + BlockKind::LimeCandleCake => 0u8, + BlockKind::PinkCandleCake => 0u8, + BlockKind::GrayCandleCake => 0u8, + BlockKind::LightGrayCandleCake => 0u8, + BlockKind::CyanCandleCake => 0u8, + BlockKind::PurpleCandleCake => 0u8, + BlockKind::BlueCandleCake => 0u8, BlockKind::BrownCandleCake => 0u8, - BlockKind::DarkOakPlanks => 15u8, - BlockKind::SmoothQuartz => 15u8, - BlockKind::PowderSnowCauldron => 0u8, - BlockKind::TubeCoralWallFan => 1u8, - BlockKind::RedSandstoneSlab => 0u8, - BlockKind::AcaciaDoor => 0u8, - BlockKind::MagentaStainedGlassPane => 0u8, - BlockKind::GreenBed => 0u8, - BlockKind::NetherWartBlock => 15u8, - BlockKind::PottedCrimsonRoots => 0u8, - BlockKind::DeepslateCoalOre => 15u8, - BlockKind::DarkOakWallSign => 0u8, - BlockKind::IronDoor => 0u8, - BlockKind::CyanBanner => 0u8, - BlockKind::BubbleCoralFan => 1u8, - BlockKind::Campfire => 0u8, - BlockKind::PolishedBlackstonePressurePlate => 0u8, - BlockKind::GrayBed => 0u8, - BlockKind::AndesiteWall => 0u8, - BlockKind::Glowstone => 15u8, - BlockKind::DeepslateEmeraldOre => 15u8, - BlockKind::MagentaBanner => 0u8, - BlockKind::PurpleStainedGlass => 0u8, - BlockKind::CobbledDeepslateStairs => 0u8, - BlockKind::PottedCactus => 0u8, - BlockKind::AcaciaLeaves => 1u8, + BlockKind::GreenCandleCake => 0u8, + BlockKind::RedCandleCake => 0u8, + BlockKind::BlackCandleCake => 0u8, + BlockKind::AmethystBlock => 0u8, + BlockKind::BuddingAmethyst => 0u8, + BlockKind::AmethystCluster => 5u8, + BlockKind::LargeAmethystBud => 4u8, + BlockKind::MediumAmethystBud => 2u8, + BlockKind::SmallAmethystBud => 1u8, + BlockKind::Tuff => 0u8, + BlockKind::Calcite => 0u8, + BlockKind::TintedGlass => 0u8, + BlockKind::PowderSnow => 0u8, + BlockKind::SculkSensor => 1u8, + BlockKind::OxidizedCopper => 0u8, + BlockKind::WeatheredCopper => 0u8, + BlockKind::ExposedCopper => 0u8, + BlockKind::CopperBlock => 0u8, + BlockKind::CopperOre => 0u8, + BlockKind::DeepslateCopperOre => 0u8, + BlockKind::OxidizedCutCopper => 0u8, + BlockKind::WeatheredCutCopper => 0u8, + BlockKind::ExposedCutCopper => 0u8, + BlockKind::CutCopper => 0u8, BlockKind::OxidizedCutCopperStairs => 0u8, - BlockKind::LimeShulkerBox => 1u8, - BlockKind::FrostedIce => 1u8, - BlockKind::SoulCampfire => 0u8, - BlockKind::Cake => 0u8, - BlockKind::PottedOxeyeDaisy => 0u8, - BlockKind::Jukebox => 15u8, - BlockKind::FireCoralBlock => 15u8, - BlockKind::CrackedDeepslateBricks => 15u8, - BlockKind::OakStairs => 0u8, - BlockKind::PolishedDeepslateSlab => 0u8, - BlockKind::StoneBricks => 15u8, - BlockKind::SpruceSign => 0u8, - BlockKind::BrownCandle => 0u8, - BlockKind::ChiseledPolishedBlackstone => 15u8, - BlockKind::FloweringAzaleaLeaves => 1u8, - BlockKind::ChiseledStoneBricks => 15u8, - BlockKind::DeepslateTileStairs => 0u8, - BlockKind::Bricks => 15u8, - BlockKind::PottedPoppy => 0u8, - BlockKind::WaxedOxidizedCutCopperSlab => 0u8, - BlockKind::BrownStainedGlass => 0u8, - BlockKind::BirchTrapdoor => 0u8, - BlockKind::EndStoneBrickSlab => 0u8, - BlockKind::Seagrass => 1u8, - BlockKind::AndesiteStairs => 0u8, - BlockKind::PolishedBlackstoneSlab => 0u8, - BlockKind::SmoothQuartzStairs => 0u8, - BlockKind::LightWeightedPressurePlate => 0u8, - BlockKind::SpruceWallSign => 0u8, - BlockKind::WaxedOxidizedCopper => 15u8, - BlockKind::SoulSand => 15u8, - BlockKind::BrownShulkerBox => 1u8, - BlockKind::GrayStainedGlassPane => 0u8, - BlockKind::RedMushroom => 0u8, - BlockKind::OrangeWallBanner => 0u8, - BlockKind::TubeCoralBlock => 15u8, - BlockKind::WhiteWool => 15u8, - BlockKind::Target => 15u8, - BlockKind::AcaciaTrapdoor => 0u8, - BlockKind::SmoothRedSandstone => 15u8, - BlockKind::StrippedOakLog => 15u8, - BlockKind::EndPortalFrame => 0u8, - BlockKind::BuddingAmethyst => 15u8, - BlockKind::PolishedGraniteSlab => 0u8, + BlockKind::WeatheredCutCopperStairs => 0u8, + BlockKind::ExposedCutCopperStairs => 0u8, + BlockKind::CutCopperStairs => 0u8, + BlockKind::OxidizedCutCopperSlab => 0u8, BlockKind::WeatheredCutCopperSlab => 0u8, - BlockKind::Pumpkin => 15u8, - BlockKind::BlueCarpet => 0u8, - BlockKind::Clay => 15u8, - BlockKind::GraniteWall => 0u8, - BlockKind::GrayWool => 15u8, - BlockKind::YellowShulkerBox => 1u8, - BlockKind::SmoothRedSandstoneStairs => 0u8, - BlockKind::LightBlueConcrete => 15u8, - BlockKind::StrippedWarpedStem => 15u8, - BlockKind::SandstoneSlab => 0u8, + BlockKind::ExposedCutCopperSlab => 0u8, + BlockKind::CutCopperSlab => 0u8, + BlockKind::WaxedCopperBlock => 0u8, + BlockKind::WaxedWeatheredCopper => 0u8, + BlockKind::WaxedExposedCopper => 0u8, + BlockKind::WaxedOxidizedCopper => 0u8, + BlockKind::WaxedOxidizedCutCopper => 0u8, + BlockKind::WaxedWeatheredCutCopper => 0u8, + BlockKind::WaxedExposedCutCopper => 0u8, + BlockKind::WaxedCutCopper => 0u8, + BlockKind::WaxedOxidizedCutCopperStairs => 0u8, + BlockKind::WaxedWeatheredCutCopperStairs => 0u8, + BlockKind::WaxedExposedCutCopperStairs => 0u8, + BlockKind::WaxedCutCopperStairs => 0u8, + BlockKind::WaxedOxidizedCutCopperSlab => 0u8, + BlockKind::WaxedWeatheredCutCopperSlab => 0u8, + BlockKind::WaxedExposedCutCopperSlab => 0u8, + BlockKind::WaxedCutCopperSlab => 0u8, + BlockKind::LightningRod => 0u8, + BlockKind::PointedDripstone => 0u8, + BlockKind::DripstoneBlock => 0u8, + BlockKind::CaveVines => 0u8, + BlockKind::CaveVinesPlant => 0u8, + BlockKind::SporeBlossom => 0u8, + BlockKind::Azalea => 0u8, + BlockKind::FloweringAzalea => 0u8, + BlockKind::MossCarpet => 0u8, + BlockKind::MossBlock => 0u8, + BlockKind::BigDripleaf => 0u8, BlockKind::BigDripleafStem => 0u8, - BlockKind::LimeWallBanner => 0u8, - BlockKind::WeepingVines => 0u8, - BlockKind::Composter => 0u8, - BlockKind::RawIronBlock => 15u8, - BlockKind::AcaciaStairs => 0u8, - BlockKind::DeadBubbleCoralWallFan => 1u8, - BlockKind::LightBlueWool => 15u8, - BlockKind::DeadHornCoralBlock => 15u8, - BlockKind::WetSponge => 15u8, - BlockKind::Sand => 15u8, - BlockKind::Obsidian => 15u8, - BlockKind::YellowConcretePowder => 15u8, - BlockKind::OxeyeDaisy => 0u8, - BlockKind::ExposedCopper => 15u8, - BlockKind::DeepslateBrickStairs => 0u8, - BlockKind::TubeCoralFan => 1u8, - BlockKind::WeepingVinesPlant => 0u8, - BlockKind::PottedLilyOfTheValley => 0u8, - BlockKind::LimeConcrete => 15u8, - BlockKind::FlowerPot => 0u8, - BlockKind::OrangeShulkerBox => 1u8, - BlockKind::Deepslate => 15u8, - BlockKind::WarpedFungus => 0u8, - BlockKind::Smoker => 15u8, - BlockKind::PurpleStainedGlassPane => 0u8, - BlockKind::PolishedBlackstoneBrickWall => 0u8, - BlockKind::LilyOfTheValley => 0u8, - BlockKind::DeadFireCoralWallFan => 1u8, - BlockKind::Lodestone => 15u8, - BlockKind::BlackShulkerBox => 1u8, - BlockKind::HoneycombBlock => 15u8, - BlockKind::SeaLantern => 15u8, - BlockKind::SweetBerryBush => 0u8, - BlockKind::LavaCauldron => 0u8, - BlockKind::OrangeConcrete => 15u8, - BlockKind::BrickStairs => 0u8, - BlockKind::PottedOrangeTulip => 0u8, - BlockKind::MagentaShulkerBox => 1u8, - BlockKind::BrownCarpet => 0u8, + BlockKind::SmallDripleaf => 0u8, + BlockKind::HangingRoots => 0u8, + BlockKind::RootedDirt => 0u8, + BlockKind::Deepslate => 0u8, + BlockKind::CobbledDeepslate => 0u8, + BlockKind::CobbledDeepslateStairs => 0u8, + BlockKind::CobbledDeepslateSlab => 0u8, + BlockKind::CobbledDeepslateWall => 0u8, + BlockKind::PolishedDeepslate => 0u8, + BlockKind::PolishedDeepslateStairs => 0u8, + BlockKind::PolishedDeepslateSlab => 0u8, + BlockKind::PolishedDeepslateWall => 0u8, + BlockKind::DeepslateTiles => 0u8, + BlockKind::DeepslateTileStairs => 0u8, BlockKind::DeepslateTileSlab => 0u8, - BlockKind::SpruceFenceGate => 0u8, - BlockKind::NetherPortal => 0u8, - BlockKind::GrayConcretePowder => 15u8, - BlockKind::WarpedSlab => 0u8, - BlockKind::BrickWall => 0u8, - BlockKind::SoulTorch => 0u8, + BlockKind::DeepslateTileWall => 0u8, + BlockKind::DeepslateBricks => 0u8, + BlockKind::DeepslateBrickStairs => 0u8, + BlockKind::DeepslateBrickSlab => 0u8, + BlockKind::DeepslateBrickWall => 0u8, + BlockKind::ChiseledDeepslate => 0u8, + BlockKind::CrackedDeepslateBricks => 0u8, + BlockKind::CrackedDeepslateTiles => 0u8, + BlockKind::InfestedDeepslate => 0u8, + BlockKind::SmoothBasalt => 0u8, + BlockKind::RawIronBlock => 0u8, + BlockKind::RawCopperBlock => 0u8, + BlockKind::RawGoldBlock => 0u8, + BlockKind::PottedAzaleaBush => 0u8, + BlockKind::PottedFloweringAzaleaBush => 0u8, + } + } +} +impl BlockKind { + #[doc = "Returns the `light_filter` property of this `BlockKind`."] + #[inline] + pub fn light_filter(&self) -> u8 { + match self { + BlockKind::Air => 0u8, + BlockKind::Stone => 15u8, BlockKind::Granite => 15u8, - BlockKind::WarpedSign => 0u8, - BlockKind::Ladder => 0u8, + BlockKind::PolishedGranite => 15u8, + BlockKind::Diorite => 15u8, + BlockKind::PolishedDiorite => 15u8, + BlockKind::Andesite => 15u8, + BlockKind::PolishedAndesite => 15u8, + BlockKind::GrassBlock => 15u8, + BlockKind::Dirt => 15u8, + BlockKind::CoarseDirt => 15u8, + BlockKind::Podzol => 15u8, + BlockKind::Cobblestone => 15u8, + BlockKind::OakPlanks => 15u8, + BlockKind::SprucePlanks => 15u8, + BlockKind::BirchPlanks => 15u8, + BlockKind::JunglePlanks => 15u8, BlockKind::AcaciaPlanks => 15u8, - BlockKind::CartographyTable => 15u8, - BlockKind::BlackstoneWall => 0u8, - BlockKind::LightGrayTerracotta => 15u8, - BlockKind::CopperOre => 15u8, - BlockKind::LightBlueStainedGlass => 0u8, - BlockKind::NetheriteBlock => 15u8, - BlockKind::DarkOakFenceGate => 0u8, - BlockKind::Loom => 15u8, - BlockKind::CrackedDeepslateTiles => 15u8, - BlockKind::FireCoralWallFan => 1u8, - BlockKind::StoneBrickWall => 0u8, - BlockKind::BrownMushroom => 0u8, - BlockKind::AcaciaWood => 15u8, - BlockKind::LightBlueShulkerBox => 1u8, - BlockKind::BlueStainedGlass => 0u8, - BlockKind::StrippedBirchLog => 15u8, - BlockKind::CutSandstone => 15u8, - BlockKind::LargeFern => 0u8, - BlockKind::Tnt => 15u8, - BlockKind::WhiteStainedGlassPane => 0u8, - BlockKind::WarpedRoots => 0u8, - BlockKind::PolishedDeepslateStairs => 0u8, - BlockKind::GraniteStairs => 0u8, - BlockKind::AcaciaButton => 0u8, - BlockKind::BrownGlazedTerracotta => 15u8, - BlockKind::ExposedCutCopperStairs => 0u8, - BlockKind::PinkConcrete => 15u8, - BlockKind::HornCoralBlock => 15u8, - BlockKind::DamagedAnvil => 0u8, - BlockKind::PolishedBlackstoneWall => 0u8, - BlockKind::WarpedPressurePlate => 0u8, - BlockKind::WhiteBed => 0u8, - BlockKind::PrismarineSlab => 0u8, - BlockKind::JungleTrapdoor => 0u8, - BlockKind::YellowWallBanner => 0u8, - BlockKind::WeatheredCopper => 15u8, - BlockKind::PottedBrownMushroom => 0u8, - BlockKind::WarpedStairs => 0u8, - BlockKind::Dropper => 15u8, - BlockKind::TallSeagrass => 1u8, - BlockKind::CrimsonTrapdoor => 0u8, - BlockKind::Anvil => 0u8, - BlockKind::HornCoralWallFan => 1u8, - BlockKind::RedstoneWallTorch => 0u8, - BlockKind::CobblestoneStairs => 0u8, - BlockKind::BirchSign => 0u8, - BlockKind::GrayStainedGlass => 0u8, - BlockKind::Melon => 15u8, - BlockKind::ChiseledSandstone => 15u8, - BlockKind::HangingRoots => 0u8, - BlockKind::BlueWallBanner => 0u8, - BlockKind::BrownConcretePowder => 15u8, - BlockKind::PolishedAndesiteSlab => 0u8, - BlockKind::Bookshelf => 15u8, - BlockKind::DeadBrainCoralBlock => 15u8, - BlockKind::BlackStainedGlass => 0u8, - BlockKind::BlueBanner => 0u8, - BlockKind::EnchantingTable => 0u8, + BlockKind::DarkOakPlanks => 15u8, + BlockKind::OakSapling => 0u8, BlockKind::SpruceSapling => 0u8, - BlockKind::BrownConcrete => 15u8, - BlockKind::PackedIce => 15u8, - BlockKind::WarpedNylium => 15u8, - BlockKind::CyanCandleCake => 0u8, - BlockKind::WaxedCutCopperSlab => 0u8, - BlockKind::InfestedCrackedStoneBricks => 15u8, - BlockKind::ChiseledRedSandstone => 15u8, - BlockKind::WarpedTrapdoor => 0u8, - BlockKind::CobblestoneSlab => 0u8, - BlockKind::MagentaGlazedTerracotta => 15u8, - BlockKind::DarkOakPressurePlate => 0u8, - BlockKind::CyanCarpet => 0u8, - BlockKind::PurpleBanner => 0u8, - BlockKind::StrippedCrimsonStem => 15u8, - BlockKind::MagentaStainedGlass => 0u8, - BlockKind::NetherBrickFence => 0u8, - BlockKind::YellowBanner => 0u8, - BlockKind::SoulWallTorch => 0u8, - BlockKind::SmoothSandstoneSlab => 0u8, - BlockKind::MagmaBlock => 15u8, - BlockKind::JungleFence => 0u8, - BlockKind::PinkGlazedTerracotta => 15u8, - BlockKind::BrownBed => 0u8, - BlockKind::DarkOakWood => 15u8, + BlockKind::BirchSapling => 0u8, + BlockKind::JungleSapling => 0u8, + BlockKind::AcaciaSapling => 0u8, + BlockKind::DarkOakSapling => 0u8, + BlockKind::Bedrock => 15u8, + BlockKind::Water => 1u8, + BlockKind::Lava => 1u8, + BlockKind::Sand => 15u8, + BlockKind::RedSand => 15u8, + BlockKind::Gravel => 15u8, + BlockKind::GoldOre => 15u8, + BlockKind::DeepslateGoldOre => 15u8, BlockKind::IronOre => 15u8, BlockKind::DeepslateIronOre => 15u8, - BlockKind::BlackConcrete => 15u8, - BlockKind::AcaciaFenceGate => 0u8, - BlockKind::RedCarpet => 0u8, - BlockKind::RedSandstoneWall => 0u8, BlockKind::CoalOre => 15u8, - BlockKind::LightGrayWool => 15u8, - BlockKind::PottedDeadBush => 0u8, - BlockKind::WhiteGlazedTerracotta => 15u8, - BlockKind::BrainCoralWallFan => 1u8, + BlockKind::DeepslateCoalOre => 15u8, + BlockKind::NetherGoldOre => 15u8, + BlockKind::OakLog => 15u8, + BlockKind::SpruceLog => 15u8, + BlockKind::BirchLog => 15u8, + BlockKind::JungleLog => 15u8, + BlockKind::AcaciaLog => 15u8, + BlockKind::DarkOakLog => 15u8, + BlockKind::StrippedSpruceLog => 15u8, + BlockKind::StrippedBirchLog => 15u8, + BlockKind::StrippedJungleLog => 15u8, + BlockKind::StrippedAcaciaLog => 15u8, + BlockKind::StrippedDarkOakLog => 15u8, + BlockKind::StrippedOakLog => 15u8, + BlockKind::OakWood => 15u8, + BlockKind::SpruceWood => 15u8, + BlockKind::BirchWood => 15u8, + BlockKind::JungleWood => 15u8, + BlockKind::AcaciaWood => 15u8, + BlockKind::DarkOakWood => 15u8, + BlockKind::StrippedOakWood => 15u8, + BlockKind::StrippedSpruceWood => 15u8, + BlockKind::StrippedBirchWood => 15u8, + BlockKind::StrippedJungleWood => 15u8, + BlockKind::StrippedAcaciaWood => 15u8, + BlockKind::StrippedDarkOakWood => 15u8, BlockKind::OakLeaves => 1u8, - BlockKind::RedNetherBrickWall => 0u8, - BlockKind::DripstoneBlock => 15u8, - BlockKind::SmoothStone => 15u8, - BlockKind::ChainCommandBlock => 15u8, - BlockKind::Mycelium => 15u8, + BlockKind::SpruceLeaves => 1u8, + BlockKind::BirchLeaves => 1u8, + BlockKind::JungleLeaves => 1u8, + BlockKind::AcaciaLeaves => 1u8, + BlockKind::DarkOakLeaves => 1u8, + BlockKind::AzaleaLeaves => 1u8, + BlockKind::FloweringAzaleaLeaves => 1u8, + BlockKind::Sponge => 15u8, + BlockKind::WetSponge => 15u8, + BlockKind::Glass => 0u8, + BlockKind::LapisOre => 15u8, + BlockKind::DeepslateLapisOre => 15u8, + BlockKind::LapisBlock => 15u8, + BlockKind::Dispenser => 15u8, + BlockKind::Sandstone => 15u8, + BlockKind::ChiseledSandstone => 15u8, + BlockKind::CutSandstone => 15u8, + BlockKind::NoteBlock => 15u8, + BlockKind::WhiteBed => 0u8, + BlockKind::OrangeBed => 0u8, BlockKind::MagentaBed => 0u8, - BlockKind::AncientDebris => 15u8, - BlockKind::PinkBanner => 0u8, - BlockKind::LightGrayStainedGlass => 0u8, - BlockKind::PolishedAndesite => 15u8, - BlockKind::WhiteCandle => 0u8, - BlockKind::PolishedBlackstoneBricks => 15u8, - BlockKind::CrimsonSign => 0u8, - BlockKind::DeadHornCoralWallFan => 1u8, - BlockKind::PurpleWallBanner => 0u8, - BlockKind::MossyStoneBrickStairs => 0u8, - BlockKind::LimeBanner => 0u8, - BlockKind::TurtleEgg => 0u8, - BlockKind::Diorite => 15u8, + BlockKind::LightBlueBed => 0u8, + BlockKind::YellowBed => 0u8, + BlockKind::LimeBed => 0u8, + BlockKind::PinkBed => 0u8, + BlockKind::GrayBed => 0u8, + BlockKind::LightGrayBed => 0u8, + BlockKind::CyanBed => 0u8, + BlockKind::PurpleBed => 0u8, + BlockKind::BlueBed => 0u8, + BlockKind::BrownBed => 0u8, + BlockKind::GreenBed => 0u8, + BlockKind::RedBed => 0u8, + BlockKind::BlackBed => 0u8, + BlockKind::PoweredRail => 0u8, + BlockKind::DetectorRail => 0u8, + BlockKind::StickyPiston => 15u8, + BlockKind::Cobweb => 1u8, + BlockKind::Grass => 0u8, + BlockKind::Fern => 0u8, + BlockKind::DeadBush => 0u8, + BlockKind::Seagrass => 1u8, + BlockKind::TallSeagrass => 1u8, + BlockKind::Piston => 15u8, + BlockKind::PistonHead => 0u8, + BlockKind::WhiteWool => 15u8, + BlockKind::OrangeWool => 15u8, + BlockKind::MagentaWool => 15u8, + BlockKind::LightBlueWool => 15u8, + BlockKind::YellowWool => 15u8, + BlockKind::LimeWool => 15u8, + BlockKind::PinkWool => 15u8, + BlockKind::GrayWool => 15u8, + BlockKind::LightGrayWool => 15u8, + BlockKind::CyanWool => 15u8, BlockKind::PurpleWool => 15u8, - BlockKind::SmoothSandstoneStairs => 0u8, - BlockKind::WitherSkeletonSkull => 0u8, - BlockKind::CrimsonStem => 15u8, - BlockKind::Lantern => 0u8, - BlockKind::DeepslateGoldOre => 15u8, - BlockKind::Dispenser => 15u8, - BlockKind::AcaciaPressurePlate => 0u8, - BlockKind::InfestedStoneBricks => 15u8, - BlockKind::GrayCarpet => 0u8, - BlockKind::GreenWallBanner => 0u8, - BlockKind::SpruceDoor => 0u8, - BlockKind::EndStoneBricks => 15u8, - BlockKind::IronBlock => 15u8, - BlockKind::WarpedDoor => 0u8, - BlockKind::PolishedBlackstone => 15u8, - BlockKind::OrangeCandle => 0u8, - BlockKind::OrangeCandleCake => 0u8, - BlockKind::RedMushroomBlock => 15u8, - BlockKind::PottedWhiteTulip => 0u8, - BlockKind::Air => 0u8, - BlockKind::CaveVines => 0u8, - BlockKind::PolishedBasalt => 15u8, - BlockKind::StrippedOakWood => 15u8, - BlockKind::DarkOakTrapdoor => 0u8, - BlockKind::ActivatorRail => 0u8, - BlockKind::Kelp => 1u8, - BlockKind::WhiteBanner => 0u8, - BlockKind::IronTrapdoor => 0u8, - BlockKind::DarkOakDoor => 0u8, - BlockKind::Cocoa => 0u8, - BlockKind::BlackWallBanner => 0u8, - BlockKind::OxidizedCutCopper => 15u8, + BlockKind::BlueWool => 15u8, + BlockKind::BrownWool => 15u8, + BlockKind::GreenWool => 15u8, + BlockKind::RedWool => 15u8, + BlockKind::BlackWool => 15u8, + BlockKind::MovingPiston => 0u8, + BlockKind::Dandelion => 0u8, + BlockKind::Poppy => 0u8, + BlockKind::BlueOrchid => 0u8, BlockKind::Allium => 0u8, - BlockKind::NetherBrickSlab => 0u8, - BlockKind::GreenGlazedTerracotta => 15u8, - BlockKind::PurpleTerracotta => 15u8, - BlockKind::RespawnAnchor => 15u8, - BlockKind::BirchFence => 0u8, - BlockKind::NetherBrickWall => 0u8, - BlockKind::WaxedCutCopper => 15u8, - BlockKind::BlackBed => 0u8, - BlockKind::CyanShulkerBox => 1u8, - BlockKind::DarkPrismarineSlab => 0u8, - BlockKind::Chest => 0u8, - BlockKind::LightBlueCandle => 0u8, - BlockKind::StrippedDarkOakLog => 15u8, - BlockKind::Glass => 0u8, + BlockKind::AzureBluet => 0u8, + BlockKind::RedTulip => 0u8, + BlockKind::OrangeTulip => 0u8, + BlockKind::WhiteTulip => 0u8, + BlockKind::PinkTulip => 0u8, + BlockKind::OxeyeDaisy => 0u8, + BlockKind::Cornflower => 0u8, + BlockKind::WitherRose => 0u8, + BlockKind::LilyOfTheValley => 0u8, + BlockKind::BrownMushroom => 0u8, + BlockKind::RedMushroom => 0u8, BlockKind::GoldBlock => 15u8, - BlockKind::Barrel => 15u8, - BlockKind::RawCopperBlock => 15u8, - BlockKind::OakSlab => 0u8, - BlockKind::CutRedSandstoneSlab => 0u8, - BlockKind::PinkCarpet => 0u8, - BlockKind::WhiteShulkerBox => 1u8, - BlockKind::PinkStainedGlassPane => 0u8, + BlockKind::IronBlock => 15u8, + BlockKind::Bricks => 15u8, + BlockKind::Tnt => 15u8, + BlockKind::Bookshelf => 15u8, + BlockKind::MossyCobblestone => 15u8, + BlockKind::Obsidian => 15u8, + BlockKind::Torch => 0u8, + BlockKind::WallTorch => 0u8, + BlockKind::Fire => 0u8, BlockKind::SoulFire => 0u8, - BlockKind::PottedOakSapling => 0u8, - BlockKind::DeadBubbleCoral => 1u8, - BlockKind::CrimsonPressurePlate => 0u8, - BlockKind::PolishedBlackstoneBrickStairs => 0u8, - BlockKind::PurpleBed => 0u8, - BlockKind::StoneBrickStairs => 0u8, - BlockKind::PottedRedTulip => 0u8, - BlockKind::DriedKelpBlock => 15u8, - BlockKind::YellowConcrete => 15u8, - BlockKind::SmallAmethystBud => 0u8, - BlockKind::BrainCoral => 1u8, - BlockKind::AcaciaSapling => 0u8, - BlockKind::DeepslateLapisOre => 15u8, - BlockKind::CrackedPolishedBlackstoneBricks => 15u8, - BlockKind::Furnace => 15u8, - BlockKind::FireCoral => 1u8, - BlockKind::MagentaConcretePowder => 15u8, - BlockKind::MagentaCandleCake => 0u8, - BlockKind::StrippedBirchWood => 15u8, - BlockKind::TwistingVines => 0u8, - BlockKind::SporeBlossom => 0u8, - BlockKind::CrimsonRoots => 0u8, - BlockKind::ChorusPlant => 1u8, - BlockKind::DiamondOre => 15u8, - BlockKind::LightBlueTerracotta => 15u8, - BlockKind::BlueCandle => 0u8, - BlockKind::VoidAir => 0u8, - BlockKind::PrismarineWall => 0u8, - BlockKind::Cactus => 0u8, - BlockKind::CrimsonHyphae => 15u8, - BlockKind::AttachedMelonStem => 0u8, - BlockKind::WeatheredCutCopperStairs => 0u8, - BlockKind::BlackGlazedTerracotta => 15u8, - BlockKind::BlueIce => 15u8, - BlockKind::Stonecutter => 0u8, - BlockKind::SpruceFence => 0u8, - BlockKind::Shroomlight => 15u8, - BlockKind::WhiteWallBanner => 0u8, - BlockKind::SmoothSandstone => 15u8, + BlockKind::Spawner => 1u8, + BlockKind::OakStairs => 0u8, + BlockKind::Chest => 0u8, BlockKind::RedstoneWire => 0u8, - BlockKind::SkeletonSkull => 0u8, - BlockKind::RedstoneBlock => 15u8, - BlockKind::StoneSlab => 0u8, - BlockKind::LimeCandleCake => 0u8, - BlockKind::PottedFern => 0u8, - BlockKind::PinkTulip => 0u8, + BlockKind::DiamondOre => 15u8, + BlockKind::DeepslateDiamondOre => 15u8, + BlockKind::DiamondBlock => 15u8, + BlockKind::CraftingTable => 15u8, + BlockKind::Wheat => 0u8, + BlockKind::Farmland => 0u8, + BlockKind::Furnace => 15u8, + BlockKind::OakSign => 0u8, + BlockKind::SpruceSign => 0u8, + BlockKind::BirchSign => 0u8, + BlockKind::AcaciaSign => 0u8, + BlockKind::JungleSign => 0u8, + BlockKind::DarkOakSign => 0u8, + BlockKind::OakDoor => 0u8, + BlockKind::Ladder => 0u8, + BlockKind::Rail => 0u8, + BlockKind::CobblestoneStairs => 0u8, + BlockKind::OakWallSign => 0u8, + BlockKind::SpruceWallSign => 0u8, + BlockKind::BirchWallSign => 0u8, BlockKind::AcaciaWallSign => 0u8, - BlockKind::CreeperWallHead => 0u8, - BlockKind::BirchWood => 15u8, - BlockKind::MediumAmethystBud => 0u8, - BlockKind::MossyStoneBricks => 15u8, - BlockKind::TintedGlass => 15u8, - BlockKind::OxidizedCutCopperSlab => 0u8, - BlockKind::NetherBrickStairs => 0u8, - BlockKind::AzaleaLeaves => 1u8, - BlockKind::RedTulip => 0u8, - BlockKind::LightBlueStainedGlassPane => 0u8, - BlockKind::PurpleConcrete => 15u8, - BlockKind::GreenStainedGlass => 0u8, - BlockKind::WitherRose => 0u8, - BlockKind::Dandelion => 0u8, - BlockKind::Bamboo => 0u8, - BlockKind::Stone => 15u8, - BlockKind::CyanConcrete => 15u8, - BlockKind::Cauldron => 0u8, - BlockKind::BeeNest => 15u8, BlockKind::JungleWallSign => 0u8, - BlockKind::DeepslateBricks => 15u8, - BlockKind::YellowCandle => 0u8, - BlockKind::BrownTerracotta => 15u8, - BlockKind::BirchStairs => 0u8, - BlockKind::BirchButton => 0u8, - BlockKind::PlayerHead => 0u8, - BlockKind::PolishedGraniteStairs => 0u8, - BlockKind::BlackstoneSlab => 0u8, - BlockKind::OakSapling => 0u8, - BlockKind::DeadHornCoralFan => 1u8, - BlockKind::ExposedCutCopperSlab => 0u8, - BlockKind::StrippedDarkOakWood => 15u8, - BlockKind::PetrifiedOakSlab => 0u8, - BlockKind::AzureBluet => 0u8, + BlockKind::DarkOakWallSign => 0u8, + BlockKind::Lever => 0u8, + BlockKind::StonePressurePlate => 0u8, + BlockKind::IronDoor => 0u8, BlockKind::OakPressurePlate => 0u8, - BlockKind::PinkShulkerBox => 1u8, - BlockKind::DarkOakSapling => 0u8, - BlockKind::CreeperHead => 0u8, - BlockKind::NetherWart => 0u8, - BlockKind::TripwireHook => 0u8, - BlockKind::WarpedFenceGate => 0u8, - BlockKind::CyanConcretePowder => 15u8, - BlockKind::CraftingTable => 15u8, - BlockKind::Sunflower => 0u8, - BlockKind::Observer => 15u8, - BlockKind::JungleSign => 0u8, - BlockKind::PurpleCarpet => 0u8, - BlockKind::DeadTubeCoralWallFan => 1u8, - BlockKind::EndStone => 15u8, - BlockKind::GrassBlock => 15u8, - BlockKind::Light => 0u8, - BlockKind::YellowWool => 15u8, - BlockKind::PottedFloweringAzaleaBush => 0u8, - BlockKind::Andesite => 15u8, - BlockKind::CrimsonFungus => 0u8, - BlockKind::OrangeWool => 15u8, - BlockKind::DeepslateBrickSlab => 0u8, - BlockKind::Calcite => 15u8, - BlockKind::BlackBanner => 0u8, - BlockKind::CyanWallBanner => 0u8, - BlockKind::InfestedMossyStoneBricks => 15u8, - BlockKind::MelonStem => 0u8, - BlockKind::SlimeBlock => 1u8, - BlockKind::PrismarineBricks => 15u8, - BlockKind::Beetroots => 0u8, - BlockKind::PowderSnow => 1u8, - BlockKind::DeadBrainCoralFan => 1u8, - BlockKind::InfestedChiseledStoneBricks => 15u8, - BlockKind::EnderChest => 0u8, - BlockKind::ChiseledDeepslate => 15u8, - BlockKind::CommandBlock => 15u8, - BlockKind::CarvedPumpkin => 15u8, - BlockKind::Podzol => 15u8, - BlockKind::LightGrayWallBanner => 0u8, - BlockKind::WaxedWeatheredCutCopperStairs => 0u8, - BlockKind::JungleLog => 15u8, - BlockKind::LightningRod => 0u8, - BlockKind::QuartzBricks => 15u8, - BlockKind::LapisBlock => 15u8, - BlockKind::MagentaCarpet => 0u8, - BlockKind::OrangeConcretePowder => 15u8, - BlockKind::BirchSapling => 0u8, - BlockKind::CrimsonNylium => 15u8, - BlockKind::PolishedDioriteStairs => 0u8, - BlockKind::SpruceLeaves => 1u8, - BlockKind::WhiteConcretePowder => 15u8, - BlockKind::WhiteCarpet => 0u8, - BlockKind::LightGrayStainedGlassPane => 0u8, - BlockKind::LimeWool => 15u8, - BlockKind::BrownWool => 15u8, - BlockKind::OakButton => 0u8, - BlockKind::BlackCandleCake => 0u8, - BlockKind::OxidizedCopper => 15u8, - BlockKind::YellowCandleCake => 0u8, - BlockKind::GreenCandleCake => 0u8, + BlockKind::SprucePressurePlate => 0u8, + BlockKind::BirchPressurePlate => 0u8, + BlockKind::JunglePressurePlate => 0u8, + BlockKind::AcaciaPressurePlate => 0u8, + BlockKind::DarkOakPressurePlate => 0u8, + BlockKind::RedstoneOre => 15u8, + BlockKind::DeepslateRedstoneOre => 15u8, + BlockKind::RedstoneTorch => 0u8, + BlockKind::RedstoneWallTorch => 0u8, + BlockKind::StoneButton => 0u8, BlockKind::Snow => 0u8, - BlockKind::OrangeStainedGlassPane => 0u8, - BlockKind::CutCopperStairs => 0u8, - BlockKind::CrimsonStairs => 0u8, - BlockKind::HornCoral => 1u8, - BlockKind::BlueGlazedTerracotta => 15u8, - BlockKind::PottedJungleSapling => 0u8, - BlockKind::WarpedHyphae => 15u8, - BlockKind::StrippedCrimsonHyphae => 15u8, - BlockKind::CyanWool => 15u8, - BlockKind::DeadTubeCoralBlock => 15u8, + BlockKind::Ice => 1u8, + BlockKind::SnowBlock => 15u8, + BlockKind::Cactus => 0u8, + BlockKind::Clay => 15u8, + BlockKind::SugarCane => 0u8, + BlockKind::Jukebox => 15u8, + BlockKind::OakFence => 0u8, + BlockKind::Pumpkin => 15u8, + BlockKind::Netherrack => 15u8, + BlockKind::SoulSand => 15u8, + BlockKind::SoulSoil => 15u8, BlockKind::Basalt => 15u8, - BlockKind::MossyCobblestoneSlab => 0u8, - BlockKind::GildedBlackstone => 15u8, - BlockKind::MushroomStem => 15u8, - BlockKind::PottedRedMushroom => 0u8, - BlockKind::BlueTerracotta => 15u8, - BlockKind::OrangeBanner => 0u8, - BlockKind::ExposedCutCopper => 15u8, + BlockKind::PolishedBasalt => 15u8, + BlockKind::SoulTorch => 0u8, + BlockKind::SoulWallTorch => 0u8, + BlockKind::Glowstone => 15u8, + BlockKind::NetherPortal => 0u8, + BlockKind::CarvedPumpkin => 15u8, + BlockKind::JackOLantern => 15u8, + BlockKind::Cake => 0u8, + BlockKind::Repeater => 0u8, + BlockKind::WhiteStainedGlass => 0u8, + BlockKind::OrangeStainedGlass => 0u8, + BlockKind::MagentaStainedGlass => 0u8, + BlockKind::LightBlueStainedGlass => 0u8, + BlockKind::YellowStainedGlass => 0u8, + BlockKind::LimeStainedGlass => 0u8, BlockKind::PinkStainedGlass => 0u8, - BlockKind::BlueWool => 15u8, - BlockKind::StrippedAcaciaWood => 15u8, - BlockKind::NetherSprouts => 0u8, - BlockKind::DeadBubbleCoralBlock => 15u8, - BlockKind::Water => 1u8, - BlockKind::CutSandstoneSlab => 0u8, - BlockKind::Farmland => 0u8, - BlockKind::YellowBed => 0u8, - BlockKind::GraniteSlab => 0u8, - BlockKind::WaxedOxidizedCutCopper => 15u8, - BlockKind::WaxedWeatheredCopper => 15u8, - BlockKind::DioriteSlab => 0u8, - BlockKind::Comparator => 0u8, - BlockKind::OrangeTerracotta => 15u8, - BlockKind::OrangeGlazedTerracotta => 15u8, - BlockKind::RedConcretePowder => 15u8, - BlockKind::DeadBubbleCoralFan => 1u8, - BlockKind::BrainCoralFan => 1u8, - BlockKind::CrimsonSlab => 0u8, - BlockKind::LightGrayConcretePowder => 15u8, - BlockKind::GrayCandle => 0u8, - BlockKind::PrismarineBrickStairs => 0u8, + BlockKind::GrayStainedGlass => 0u8, + BlockKind::LightGrayStainedGlass => 0u8, + BlockKind::CyanStainedGlass => 0u8, + BlockKind::PurpleStainedGlass => 0u8, + BlockKind::BlueStainedGlass => 0u8, + BlockKind::BrownStainedGlass => 0u8, + BlockKind::GreenStainedGlass => 0u8, + BlockKind::RedStainedGlass => 0u8, + BlockKind::BlackStainedGlass => 0u8, + BlockKind::OakTrapdoor => 0u8, + BlockKind::SpruceTrapdoor => 0u8, + BlockKind::BirchTrapdoor => 0u8, + BlockKind::JungleTrapdoor => 0u8, + BlockKind::AcaciaTrapdoor => 0u8, + BlockKind::DarkOakTrapdoor => 0u8, + BlockKind::StoneBricks => 15u8, + BlockKind::MossyStoneBricks => 15u8, + BlockKind::CrackedStoneBricks => 15u8, + BlockKind::ChiseledStoneBricks => 15u8, + BlockKind::InfestedStone => 15u8, + BlockKind::InfestedCobblestone => 15u8, + BlockKind::InfestedStoneBricks => 15u8, + BlockKind::InfestedMossyStoneBricks => 15u8, + BlockKind::InfestedCrackedStoneBricks => 15u8, + BlockKind::InfestedChiseledStoneBricks => 15u8, + BlockKind::BrownMushroomBlock => 15u8, + BlockKind::RedMushroomBlock => 15u8, + BlockKind::MushroomStem => 15u8, + BlockKind::IronBars => 0u8, + BlockKind::Chain => 0u8, BlockKind::GlassPane => 0u8, - BlockKind::WaxedOxidizedCutCopperStairs => 0u8, + BlockKind::Melon => 15u8, + BlockKind::AttachedPumpkinStem => 0u8, + BlockKind::AttachedMelonStem => 0u8, + BlockKind::PumpkinStem => 0u8, + BlockKind::MelonStem => 0u8, + BlockKind::Vine => 0u8, + BlockKind::GlowLichen => 0u8, + BlockKind::OakFenceGate => 0u8, + BlockKind::BrickStairs => 0u8, + BlockKind::StoneBrickStairs => 0u8, + BlockKind::Mycelium => 15u8, + BlockKind::LilyPad => 0u8, + BlockKind::NetherBricks => 15u8, + BlockKind::NetherBrickFence => 0u8, + BlockKind::NetherBrickStairs => 0u8, + BlockKind::NetherWart => 0u8, + BlockKind::EnchantingTable => 0u8, BlockKind::BrewingStand => 0u8, - BlockKind::CrimsonPlanks => 15u8, - BlockKind::JungleFenceGate => 0u8, - BlockKind::DeadTubeCoral => 1u8, - BlockKind::GreenCandle => 0u8, - BlockKind::DeepslateTiles => 15u8, - BlockKind::Jigsaw => 15u8, - BlockKind::DirtPath => 0u8, - BlockKind::WaxedWeatheredCutCopperSlab => 0u8, - BlockKind::WhiteStainedGlass => 0u8, - BlockKind::ZombieHead => 0u8, - BlockKind::JackOLantern => 15u8, + BlockKind::Cauldron => 0u8, + BlockKind::WaterCauldron => 0u8, + BlockKind::LavaCauldron => 0u8, + BlockKind::PowderSnowCauldron => 0u8, + BlockKind::EndPortal => 0u8, + BlockKind::EndPortalFrame => 0u8, + BlockKind::EndStone => 15u8, + BlockKind::DragonEgg => 0u8, + BlockKind::RedstoneLamp => 15u8, + BlockKind::Cocoa => 0u8, + BlockKind::SandstoneStairs => 0u8, + BlockKind::EmeraldOre => 15u8, + BlockKind::DeepslateEmeraldOre => 15u8, + BlockKind::EnderChest => 0u8, + BlockKind::TripwireHook => 0u8, + BlockKind::Tripwire => 0u8, + BlockKind::EmeraldBlock => 15u8, + BlockKind::SpruceStairs => 0u8, + BlockKind::BirchStairs => 0u8, + BlockKind::JungleStairs => 0u8, + BlockKind::CommandBlock => 15u8, + BlockKind::Beacon => 1u8, + BlockKind::CobblestoneWall => 0u8, + BlockKind::MossyCobblestoneWall => 0u8, + BlockKind::FlowerPot => 0u8, + BlockKind::PottedOakSapling => 0u8, + BlockKind::PottedSpruceSapling => 0u8, + BlockKind::PottedBirchSapling => 0u8, + BlockKind::PottedJungleSapling => 0u8, + BlockKind::PottedAcaciaSapling => 0u8, + BlockKind::PottedDarkOakSapling => 0u8, + BlockKind::PottedFern => 0u8, BlockKind::PottedDandelion => 0u8, - BlockKind::PottedWarpedFungus => 0u8, + BlockKind::PottedPoppy => 0u8, + BlockKind::PottedBlueOrchid => 0u8, + BlockKind::PottedAllium => 0u8, + BlockKind::PottedAzureBluet => 0u8, + BlockKind::PottedRedTulip => 0u8, + BlockKind::PottedOrangeTulip => 0u8, + BlockKind::PottedWhiteTulip => 0u8, + BlockKind::PottedPinkTulip => 0u8, + BlockKind::PottedOxeyeDaisy => 0u8, + BlockKind::PottedCornflower => 0u8, + BlockKind::PottedLilyOfTheValley => 0u8, BlockKind::PottedWitherRose => 0u8, - BlockKind::StrippedWarpedHyphae => 15u8, - BlockKind::CyanCandle => 0u8, - BlockKind::InfestedDeepslate => 15u8, - BlockKind::PolishedAndesiteStairs => 0u8, - BlockKind::RedWallBanner => 0u8, - BlockKind::ShulkerBox => 1u8, - BlockKind::Cobweb => 1u8, - BlockKind::DaylightDetector => 0u8, - BlockKind::CyanTerracotta => 15u8, - BlockKind::ChippedAnvil => 0u8, - BlockKind::RedGlazedTerracotta => 15u8, - BlockKind::FletchingTable => 15u8, - BlockKind::StonePressurePlate => 0u8, - BlockKind::CobbledDeepslate => 15u8, + BlockKind::PottedRedMushroom => 0u8, + BlockKind::PottedBrownMushroom => 0u8, + BlockKind::PottedDeadBush => 0u8, + BlockKind::PottedCactus => 0u8, + BlockKind::Carrots => 0u8, + BlockKind::Potatoes => 0u8, + BlockKind::OakButton => 0u8, + BlockKind::SpruceButton => 0u8, + BlockKind::BirchButton => 0u8, + BlockKind::JungleButton => 0u8, + BlockKind::AcaciaButton => 0u8, + BlockKind::DarkOakButton => 0u8, + BlockKind::SkeletonSkull => 0u8, + BlockKind::SkeletonWallSkull => 0u8, + BlockKind::WitherSkeletonSkull => 0u8, BlockKind::WitherSkeletonWallSkull => 0u8, - BlockKind::Netherrack => 15u8, - BlockKind::MagentaTerracotta => 15u8, - BlockKind::BlueCandleCake => 0u8, + BlockKind::ZombieHead => 0u8, + BlockKind::ZombieWallHead => 0u8, + BlockKind::PlayerHead => 0u8, + BlockKind::PlayerWallHead => 0u8, + BlockKind::CreeperHead => 0u8, + BlockKind::CreeperWallHead => 0u8, + BlockKind::DragonHead => 0u8, + BlockKind::DragonWallHead => 0u8, + BlockKind::Anvil => 0u8, + BlockKind::ChippedAnvil => 0u8, + BlockKind::DamagedAnvil => 0u8, + BlockKind::TrappedChest => 0u8, + BlockKind::LightWeightedPressurePlate => 0u8, + BlockKind::HeavyWeightedPressurePlate => 0u8, + BlockKind::Comparator => 0u8, + BlockKind::DaylightDetector => 0u8, + BlockKind::RedstoneBlock => 15u8, + BlockKind::NetherQuartzOre => 15u8, + BlockKind::Hopper => 0u8, + BlockKind::QuartzBlock => 15u8, + BlockKind::ChiseledQuartzBlock => 15u8, BlockKind::QuartzPillar => 15u8, + BlockKind::QuartzStairs => 0u8, + BlockKind::ActivatorRail => 0u8, + BlockKind::Dropper => 15u8, + BlockKind::WhiteTerracotta => 15u8, + BlockKind::OrangeTerracotta => 15u8, + BlockKind::MagentaTerracotta => 15u8, + BlockKind::LightBlueTerracotta => 15u8, + BlockKind::YellowTerracotta => 15u8, + BlockKind::LimeTerracotta => 15u8, + BlockKind::PinkTerracotta => 15u8, + BlockKind::GrayTerracotta => 15u8, + BlockKind::LightGrayTerracotta => 15u8, + BlockKind::CyanTerracotta => 15u8, + BlockKind::PurpleTerracotta => 15u8, + BlockKind::BlueTerracotta => 15u8, + BlockKind::BrownTerracotta => 15u8, + BlockKind::GreenTerracotta => 15u8, + BlockKind::RedTerracotta => 15u8, + BlockKind::BlackTerracotta => 15u8, + BlockKind::WhiteStainedGlassPane => 0u8, + BlockKind::OrangeStainedGlassPane => 0u8, + BlockKind::MagentaStainedGlassPane => 0u8, + BlockKind::LightBlueStainedGlassPane => 0u8, + BlockKind::YellowStainedGlassPane => 0u8, + BlockKind::LimeStainedGlassPane => 0u8, + BlockKind::PinkStainedGlassPane => 0u8, + BlockKind::GrayStainedGlassPane => 0u8, + BlockKind::LightGrayStainedGlassPane => 0u8, + BlockKind::CyanStainedGlassPane => 0u8, + BlockKind::PurpleStainedGlassPane => 0u8, + BlockKind::BlueStainedGlassPane => 0u8, + BlockKind::BrownStainedGlassPane => 0u8, + BlockKind::GreenStainedGlassPane => 0u8, + BlockKind::RedStainedGlassPane => 0u8, + BlockKind::BlackStainedGlassPane => 0u8, + BlockKind::AcaciaStairs => 0u8, + BlockKind::DarkOakStairs => 0u8, + BlockKind::SlimeBlock => 1u8, + BlockKind::Barrier => 0u8, + BlockKind::Light => 0u8, + BlockKind::IronTrapdoor => 0u8, + BlockKind::Prismarine => 15u8, + BlockKind::PrismarineBricks => 15u8, + BlockKind::DarkPrismarine => 15u8, + BlockKind::PrismarineStairs => 0u8, + BlockKind::PrismarineBrickStairs => 0u8, + BlockKind::DarkPrismarineStairs => 0u8, + BlockKind::PrismarineSlab => 0u8, + BlockKind::PrismarineBrickSlab => 0u8, + BlockKind::DarkPrismarineSlab => 0u8, + BlockKind::SeaLantern => 15u8, + BlockKind::HayBlock => 15u8, + BlockKind::WhiteCarpet => 0u8, + BlockKind::OrangeCarpet => 0u8, + BlockKind::MagentaCarpet => 0u8, + BlockKind::LightBlueCarpet => 0u8, + BlockKind::YellowCarpet => 0u8, + BlockKind::LimeCarpet => 0u8, + BlockKind::PinkCarpet => 0u8, + BlockKind::GrayCarpet => 0u8, + BlockKind::LightGrayCarpet => 0u8, + BlockKind::CyanCarpet => 0u8, + BlockKind::PurpleCarpet => 0u8, + BlockKind::BlueCarpet => 0u8, + BlockKind::BrownCarpet => 0u8, + BlockKind::GreenCarpet => 0u8, + BlockKind::RedCarpet => 0u8, + BlockKind::BlackCarpet => 0u8, + BlockKind::Terracotta => 15u8, + BlockKind::CoalBlock => 15u8, + BlockKind::PackedIce => 15u8, + BlockKind::Sunflower => 0u8, + BlockKind::Lilac => 0u8, + BlockKind::RoseBush => 0u8, + BlockKind::Peony => 0u8, + BlockKind::TallGrass => 0u8, + BlockKind::LargeFern => 0u8, + BlockKind::WhiteBanner => 0u8, + BlockKind::OrangeBanner => 0u8, + BlockKind::MagentaBanner => 0u8, BlockKind::LightBlueBanner => 0u8, - BlockKind::SoulLantern => 0u8, - BlockKind::MagentaWool => 15u8, - BlockKind::DeadTubeCoralFan => 1u8, - BlockKind::DragonHead => 0u8, - BlockKind::JungleButton => 0u8, - BlockKind::ChiseledQuartzBlock => 15u8, - BlockKind::BigDripleaf => 0u8, - BlockKind::BubbleCoralWallFan => 1u8, - BlockKind::PointedDripstone => 0u8, - BlockKind::DarkOakLeaves => 1u8, - BlockKind::LimeConcretePowder => 15u8, + BlockKind::YellowBanner => 0u8, + BlockKind::LimeBanner => 0u8, + BlockKind::PinkBanner => 0u8, + BlockKind::GrayBanner => 0u8, + BlockKind::LightGrayBanner => 0u8, + BlockKind::CyanBanner => 0u8, + BlockKind::PurpleBanner => 0u8, + BlockKind::BlueBanner => 0u8, + BlockKind::BrownBanner => 0u8, + BlockKind::GreenBanner => 0u8, + BlockKind::RedBanner => 0u8, + BlockKind::BlackBanner => 0u8, + BlockKind::WhiteWallBanner => 0u8, + BlockKind::OrangeWallBanner => 0u8, BlockKind::MagentaWallBanner => 0u8, + BlockKind::LightBlueWallBanner => 0u8, + BlockKind::YellowWallBanner => 0u8, + BlockKind::LimeWallBanner => 0u8, + BlockKind::PinkWallBanner => 0u8, + BlockKind::GrayWallBanner => 0u8, + BlockKind::LightGrayWallBanner => 0u8, + BlockKind::CyanWallBanner => 0u8, + BlockKind::PurpleWallBanner => 0u8, + BlockKind::BlueWallBanner => 0u8, + BlockKind::BrownWallBanner => 0u8, + BlockKind::GreenWallBanner => 0u8, + BlockKind::RedWallBanner => 0u8, + BlockKind::BlackWallBanner => 0u8, + BlockKind::RedSandstone => 15u8, + BlockKind::ChiseledRedSandstone => 15u8, + BlockKind::CutRedSandstone => 15u8, + BlockKind::RedSandstoneStairs => 0u8, + BlockKind::OakSlab => 0u8, + BlockKind::SpruceSlab => 0u8, + BlockKind::BirchSlab => 0u8, + BlockKind::JungleSlab => 0u8, + BlockKind::AcaciaSlab => 0u8, + BlockKind::DarkOakSlab => 0u8, + BlockKind::StoneSlab => 0u8, + BlockKind::SmoothStoneSlab => 0u8, + BlockKind::SandstoneSlab => 0u8, + BlockKind::CutSandstoneSlab => 0u8, + BlockKind::PetrifiedOakSlab => 0u8, + BlockKind::CobblestoneSlab => 0u8, + BlockKind::BrickSlab => 0u8, + BlockKind::StoneBrickSlab => 0u8, + BlockKind::NetherBrickSlab => 0u8, + BlockKind::QuartzSlab => 0u8, + BlockKind::RedSandstoneSlab => 0u8, + BlockKind::CutRedSandstoneSlab => 0u8, + BlockKind::PurpurSlab => 0u8, + BlockKind::SmoothStone => 15u8, + BlockKind::SmoothSandstone => 15u8, + BlockKind::SmoothQuartz => 15u8, + BlockKind::SmoothRedSandstone => 15u8, + BlockKind::SpruceFenceGate => 0u8, + BlockKind::BirchFenceGate => 0u8, + BlockKind::JungleFenceGate => 0u8, + BlockKind::AcaciaFenceGate => 0u8, + BlockKind::DarkOakFenceGate => 0u8, + BlockKind::SpruceFence => 0u8, + BlockKind::BirchFence => 0u8, + BlockKind::JungleFence => 0u8, + BlockKind::AcaciaFence => 0u8, + BlockKind::DarkOakFence => 0u8, + BlockKind::SpruceDoor => 0u8, + BlockKind::BirchDoor => 0u8, + BlockKind::JungleDoor => 0u8, + BlockKind::AcaciaDoor => 0u8, + BlockKind::DarkOakDoor => 0u8, + BlockKind::EndRod => 0u8, + BlockKind::ChorusPlant => 1u8, + BlockKind::ChorusFlower => 1u8, + BlockKind::PurpurBlock => 15u8, + BlockKind::PurpurPillar => 15u8, BlockKind::PurpurStairs => 0u8, + BlockKind::EndStoneBricks => 15u8, + BlockKind::Beetroots => 0u8, + BlockKind::DirtPath => 0u8, + BlockKind::EndGateway => 1u8, + BlockKind::RepeatingCommandBlock => 15u8, + BlockKind::ChainCommandBlock => 15u8, + BlockKind::FrostedIce => 1u8, + BlockKind::MagmaBlock => 15u8, + BlockKind::NetherWartBlock => 15u8, + BlockKind::RedNetherBricks => 15u8, + BlockKind::BoneBlock => 15u8, BlockKind::StructureVoid => 0u8, - BlockKind::LightGrayCarpet => 0u8, - BlockKind::OakSign => 0u8, - BlockKind::PolishedDeepslateWall => 0u8, - BlockKind::StrippedSpruceLog => 15u8, - BlockKind::LimeBed => 0u8, - BlockKind::PinkTerracotta => 15u8, - BlockKind::AcaciaFence => 0u8, - BlockKind::EndStoneBrickStairs => 0u8, - BlockKind::Lectern => 0u8, + BlockKind::Observer => 15u8, + BlockKind::ShulkerBox => 1u8, + BlockKind::WhiteShulkerBox => 1u8, + BlockKind::OrangeShulkerBox => 1u8, + BlockKind::MagentaShulkerBox => 1u8, + BlockKind::LightBlueShulkerBox => 1u8, + BlockKind::YellowShulkerBox => 1u8, + BlockKind::LimeShulkerBox => 1u8, + BlockKind::PinkShulkerBox => 1u8, + BlockKind::GrayShulkerBox => 1u8, + BlockKind::LightGrayShulkerBox => 1u8, + BlockKind::CyanShulkerBox => 1u8, + BlockKind::PurpleShulkerBox => 1u8, + BlockKind::BlueShulkerBox => 1u8, + BlockKind::BrownShulkerBox => 1u8, + BlockKind::GreenShulkerBox => 1u8, + BlockKind::RedShulkerBox => 1u8, + BlockKind::BlackShulkerBox => 1u8, + BlockKind::WhiteGlazedTerracotta => 15u8, + BlockKind::OrangeGlazedTerracotta => 15u8, + BlockKind::MagentaGlazedTerracotta => 15u8, + BlockKind::LightBlueGlazedTerracotta => 15u8, + BlockKind::YellowGlazedTerracotta => 15u8, + BlockKind::LimeGlazedTerracotta => 15u8, + BlockKind::PinkGlazedTerracotta => 15u8, + BlockKind::GrayGlazedTerracotta => 15u8, + BlockKind::LightGrayGlazedTerracotta => 15u8, + BlockKind::CyanGlazedTerracotta => 15u8, + BlockKind::PurpleGlazedTerracotta => 15u8, + BlockKind::BlueGlazedTerracotta => 15u8, + BlockKind::BrownGlazedTerracotta => 15u8, + BlockKind::GreenGlazedTerracotta => 15u8, + BlockKind::RedGlazedTerracotta => 15u8, + BlockKind::BlackGlazedTerracotta => 15u8, + BlockKind::WhiteConcrete => 15u8, + BlockKind::OrangeConcrete => 15u8, + BlockKind::MagentaConcrete => 15u8, + BlockKind::LightBlueConcrete => 15u8, + BlockKind::YellowConcrete => 15u8, + BlockKind::LimeConcrete => 15u8, + BlockKind::PinkConcrete => 15u8, + BlockKind::GrayConcrete => 15u8, + BlockKind::LightGrayConcrete => 15u8, + BlockKind::CyanConcrete => 15u8, + BlockKind::PurpleConcrete => 15u8, BlockKind::BlueConcrete => 15u8, - BlockKind::PlayerWallHead => 0u8, - BlockKind::RootedDirt => 15u8, - BlockKind::DeadHornCoral => 1u8, - BlockKind::ChiseledNetherBricks => 15u8, - BlockKind::BirchPressurePlate => 0u8, - BlockKind::PinkConcretePowder => 15u8, - BlockKind::RedNetherBrickSlab => 0u8, + BlockKind::BrownConcrete => 15u8, + BlockKind::GreenConcrete => 15u8, BlockKind::RedConcrete => 15u8, - BlockKind::FloweringAzalea => 0u8, - BlockKind::WallTorch => 0u8, - BlockKind::BubbleCoral => 1u8, - BlockKind::PrismarineBrickSlab => 0u8, - BlockKind::AndesiteSlab => 0u8, - BlockKind::LightGrayCandleCake => 0u8, - BlockKind::Torch => 0u8, - BlockKind::HeavyWeightedPressurePlate => 0u8, - BlockKind::DarkOakSlab => 0u8, - BlockKind::QuartzStairs => 0u8, - BlockKind::Repeater => 0u8, - BlockKind::CobbledDeepslateSlab => 0u8, - BlockKind::PurpurSlab => 0u8, - BlockKind::SprucePressurePlate => 0u8, - BlockKind::JungleSapling => 0u8, - BlockKind::PinkBed => 0u8, - BlockKind::IronBars => 0u8, - BlockKind::OrangeStainedGlass => 0u8, - BlockKind::DeadBush => 0u8, - BlockKind::OakLog => 15u8, - BlockKind::PurpurBlock => 15u8, - BlockKind::MossBlock => 15u8, - BlockKind::WarpedWartBlock => 15u8, - BlockKind::CobbledDeepslateWall => 0u8, - BlockKind::PolishedDiorite => 15u8, - BlockKind::LapisOre => 15u8, - BlockKind::GreenTerracotta => 15u8, - BlockKind::MagentaCandle => 0u8, - BlockKind::BirchPlanks => 15u8, - BlockKind::DarkOakFence => 0u8, - BlockKind::PottedBlueOrchid => 0u8, + BlockKind::BlackConcrete => 15u8, + BlockKind::WhiteConcretePowder => 15u8, + BlockKind::OrangeConcretePowder => 15u8, + BlockKind::MagentaConcretePowder => 15u8, + BlockKind::LightBlueConcretePowder => 15u8, + BlockKind::YellowConcretePowder => 15u8, + BlockKind::LimeConcretePowder => 15u8, + BlockKind::PinkConcretePowder => 15u8, + BlockKind::GrayConcretePowder => 15u8, + BlockKind::LightGrayConcretePowder => 15u8, + BlockKind::CyanConcretePowder => 15u8, + BlockKind::PurpleConcretePowder => 15u8, + BlockKind::BlueConcretePowder => 15u8, + BlockKind::BrownConcretePowder => 15u8, + BlockKind::GreenConcretePowder => 15u8, + BlockKind::RedConcretePowder => 15u8, + BlockKind::BlackConcretePowder => 15u8, + BlockKind::Kelp => 1u8, + BlockKind::KelpPlant => 1u8, + BlockKind::DriedKelpBlock => 15u8, + BlockKind::TurtleEgg => 0u8, + BlockKind::DeadTubeCoralBlock => 15u8, + BlockKind::DeadBrainCoralBlock => 15u8, + BlockKind::DeadBubbleCoralBlock => 15u8, + BlockKind::DeadFireCoralBlock => 15u8, + BlockKind::DeadHornCoralBlock => 15u8, + BlockKind::TubeCoralBlock => 15u8, + BlockKind::BrainCoralBlock => 15u8, BlockKind::BubbleCoralBlock => 15u8, + BlockKind::FireCoralBlock => 15u8, + BlockKind::HornCoralBlock => 15u8, + BlockKind::DeadTubeCoral => 1u8, + BlockKind::DeadBrainCoral => 1u8, + BlockKind::DeadBubbleCoral => 1u8, + BlockKind::DeadFireCoral => 1u8, + BlockKind::DeadHornCoral => 1u8, + BlockKind::TubeCoral => 1u8, + BlockKind::BrainCoral => 1u8, + BlockKind::BubbleCoral => 1u8, + BlockKind::FireCoral => 1u8, + BlockKind::HornCoral => 1u8, + BlockKind::DeadTubeCoralFan => 1u8, + BlockKind::DeadBrainCoralFan => 1u8, + BlockKind::DeadBubbleCoralFan => 1u8, + BlockKind::DeadFireCoralFan => 1u8, + BlockKind::DeadHornCoralFan => 1u8, + BlockKind::TubeCoralFan => 1u8, + BlockKind::BrainCoralFan => 1u8, + BlockKind::BubbleCoralFan => 1u8, + BlockKind::FireCoralFan => 1u8, + BlockKind::HornCoralFan => 1u8, + BlockKind::DeadTubeCoralWallFan => 1u8, + BlockKind::DeadBrainCoralWallFan => 1u8, + BlockKind::DeadBubbleCoralWallFan => 1u8, + BlockKind::DeadFireCoralWallFan => 1u8, + BlockKind::DeadHornCoralWallFan => 1u8, + BlockKind::TubeCoralWallFan => 1u8, + BlockKind::BrainCoralWallFan => 1u8, + BlockKind::BubbleCoralWallFan => 1u8, + BlockKind::FireCoralWallFan => 1u8, + BlockKind::HornCoralWallFan => 1u8, + BlockKind::SeaPickle => 1u8, + BlockKind::BlueIce => 15u8, + BlockKind::Conduit => 1u8, + BlockKind::BambooSapling => 0u8, + BlockKind::Bamboo => 0u8, + BlockKind::PottedBamboo => 0u8, + BlockKind::VoidAir => 0u8, + BlockKind::CaveAir => 0u8, + BlockKind::BubbleColumn => 1u8, + BlockKind::PolishedGraniteStairs => 0u8, + BlockKind::SmoothRedSandstoneStairs => 0u8, + BlockKind::MossyStoneBrickStairs => 0u8, + BlockKind::PolishedDioriteStairs => 0u8, + BlockKind::MossyCobblestoneStairs => 0u8, + BlockKind::EndStoneBrickStairs => 0u8, BlockKind::StoneStairs => 0u8, - BlockKind::SmoothBasalt => 15u8, - BlockKind::GrayGlazedTerracotta => 15u8, - BlockKind::BirchLeaves => 1u8, - BlockKind::LargeAmethystBud => 0u8, - BlockKind::SkeletonWallSkull => 0u8, + BlockKind::SmoothSandstoneStairs => 0u8, + BlockKind::SmoothQuartzStairs => 0u8, + BlockKind::GraniteStairs => 0u8, + BlockKind::AndesiteStairs => 0u8, + BlockKind::RedNetherBrickStairs => 0u8, + BlockKind::PolishedAndesiteStairs => 0u8, + BlockKind::DioriteStairs => 0u8, + BlockKind::PolishedGraniteSlab => 0u8, + BlockKind::SmoothRedSandstoneSlab => 0u8, + BlockKind::MossyStoneBrickSlab => 0u8, + BlockKind::PolishedDioriteSlab => 0u8, + BlockKind::MossyCobblestoneSlab => 0u8, + BlockKind::EndStoneBrickSlab => 0u8, + BlockKind::SmoothSandstoneSlab => 0u8, + BlockKind::SmoothQuartzSlab => 0u8, + BlockKind::GraniteSlab => 0u8, + BlockKind::AndesiteSlab => 0u8, + BlockKind::RedNetherBrickSlab => 0u8, + BlockKind::PolishedAndesiteSlab => 0u8, + BlockKind::DioriteSlab => 0u8, + BlockKind::BrickWall => 0u8, + BlockKind::PrismarineWall => 0u8, + BlockKind::RedSandstoneWall => 0u8, + BlockKind::MossyStoneBrickWall => 0u8, + BlockKind::GraniteWall => 0u8, + BlockKind::StoneBrickWall => 0u8, + BlockKind::NetherBrickWall => 0u8, + BlockKind::AndesiteWall => 0u8, + BlockKind::RedNetherBrickWall => 0u8, + BlockKind::SandstoneWall => 0u8, + BlockKind::EndStoneBrickWall => 0u8, BlockKind::DioriteWall => 0u8, - BlockKind::PottedAllium => 0u8, - BlockKind::WhiteTulip => 0u8, + BlockKind::Scaffolding => 0u8, + BlockKind::Loom => 15u8, + BlockKind::Barrel => 15u8, + BlockKind::Smoker => 15u8, + BlockKind::BlastFurnace => 15u8, + BlockKind::CartographyTable => 15u8, + BlockKind::FletchingTable => 15u8, + BlockKind::Grindstone => 0u8, + BlockKind::Lectern => 0u8, + BlockKind::SmithingTable => 15u8, + BlockKind::Stonecutter => 0u8, + BlockKind::Bell => 0u8, + BlockKind::Lantern => 0u8, + BlockKind::SoulLantern => 0u8, + BlockKind::Campfire => 0u8, + BlockKind::SoulCampfire => 0u8, + BlockKind::SweetBerryBush => 0u8, BlockKind::WarpedStem => 15u8, - BlockKind::JungleStairs => 0u8, - BlockKind::TrappedChest => 0u8, - BlockKind::SpruceTrapdoor => 0u8, - BlockKind::DeadFireCoral => 1u8, - BlockKind::GrayWallBanner => 0u8, - BlockKind::PottedAzureBluet => 0u8, - BlockKind::PurpleConcretePowder => 15u8, - BlockKind::PinkCandle => 0u8, - BlockKind::GlowLichen => 0u8, - BlockKind::PottedCornflower => 0u8, - BlockKind::RoseBush => 0u8, - BlockKind::CyanStainedGlassPane => 0u8, + BlockKind::StrippedWarpedStem => 15u8, + BlockKind::WarpedHyphae => 15u8, + BlockKind::StrippedWarpedHyphae => 15u8, + BlockKind::WarpedNylium => 15u8, + BlockKind::WarpedFungus => 0u8, + BlockKind::WarpedWartBlock => 15u8, + BlockKind::WarpedRoots => 0u8, + BlockKind::NetherSprouts => 0u8, + BlockKind::CrimsonStem => 15u8, + BlockKind::StrippedCrimsonStem => 15u8, + BlockKind::CrimsonHyphae => 15u8, + BlockKind::StrippedCrimsonHyphae => 15u8, + BlockKind::CrimsonNylium => 15u8, + BlockKind::CrimsonFungus => 0u8, + BlockKind::Shroomlight => 15u8, + BlockKind::WeepingVines => 0u8, + BlockKind::WeepingVinesPlant => 0u8, + BlockKind::TwistingVines => 0u8, + BlockKind::TwistingVinesPlant => 0u8, + BlockKind::CrimsonRoots => 0u8, + BlockKind::CrimsonPlanks => 15u8, + BlockKind::WarpedPlanks => 15u8, + BlockKind::CrimsonSlab => 0u8, + BlockKind::WarpedSlab => 0u8, + BlockKind::CrimsonPressurePlate => 0u8, + BlockKind::WarpedPressurePlate => 0u8, + BlockKind::CrimsonFence => 0u8, + BlockKind::WarpedFence => 0u8, + BlockKind::CrimsonTrapdoor => 0u8, + BlockKind::WarpedTrapdoor => 0u8, + BlockKind::CrimsonFenceGate => 0u8, + BlockKind::WarpedFenceGate => 0u8, + BlockKind::CrimsonStairs => 0u8, + BlockKind::WarpedStairs => 0u8, + BlockKind::CrimsonButton => 0u8, + BlockKind::WarpedButton => 0u8, + BlockKind::CrimsonDoor => 0u8, + BlockKind::WarpedDoor => 0u8, + BlockKind::CrimsonSign => 0u8, + BlockKind::WarpedSign => 0u8, + BlockKind::CrimsonWallSign => 0u8, + BlockKind::WarpedWallSign => 0u8, + BlockKind::StructureBlock => 15u8, + BlockKind::Jigsaw => 15u8, + BlockKind::Composter => 0u8, + BlockKind::Target => 15u8, + BlockKind::BeeNest => 15u8, + BlockKind::Beehive => 15u8, BlockKind::HoneyBlock => 1u8, - BlockKind::StoneBrickSlab => 0u8, - BlockKind::QuartzSlab => 0u8, - BlockKind::YellowGlazedTerracotta => 15u8, - BlockKind::GreenWool => 15u8, - BlockKind::WhiteConcrete => 15u8, - BlockKind::LightGrayShulkerBox => 1u8, + BlockKind::HoneycombBlock => 15u8, + BlockKind::NetheriteBlock => 15u8, + BlockKind::AncientDebris => 15u8, + BlockKind::CryingObsidian => 15u8, + BlockKind::RespawnAnchor => 15u8, + BlockKind::PottedCrimsonFungus => 0u8, + BlockKind::PottedWarpedFungus => 0u8, + BlockKind::PottedCrimsonRoots => 0u8, + BlockKind::PottedWarpedRoots => 0u8, + BlockKind::Lodestone => 15u8, BlockKind::Blackstone => 15u8, - BlockKind::StrippedAcaciaLog => 15u8, - BlockKind::Grindstone => 0u8, - BlockKind::BlueBed => 0u8, - BlockKind::LightGrayConcrete => 15u8, - BlockKind::CrackedStoneBricks => 15u8, - BlockKind::Spawner => 1u8, - BlockKind::Conduit => 1u8, - BlockKind::BrainCoralBlock => 15u8, BlockKind::BlackstoneStairs => 0u8, - BlockKind::GreenConcrete => 15u8, + BlockKind::BlackstoneWall => 0u8, + BlockKind::BlackstoneSlab => 0u8, + BlockKind::PolishedBlackstone => 15u8, + BlockKind::PolishedBlackstoneBricks => 15u8, + BlockKind::CrackedPolishedBlackstoneBricks => 15u8, + BlockKind::ChiseledPolishedBlackstone => 15u8, + BlockKind::PolishedBlackstoneBrickSlab => 0u8, + BlockKind::PolishedBlackstoneBrickStairs => 0u8, + BlockKind::PolishedBlackstoneBrickWall => 0u8, + BlockKind::GildedBlackstone => 15u8, + BlockKind::PolishedBlackstoneStairs => 0u8, + BlockKind::PolishedBlackstoneSlab => 0u8, + BlockKind::PolishedBlackstonePressurePlate => 0u8, + BlockKind::PolishedBlackstoneButton => 0u8, + BlockKind::PolishedBlackstoneWall => 0u8, + BlockKind::ChiseledNetherBricks => 15u8, BlockKind::CrackedNetherBricks => 15u8, - BlockKind::Cornflower => 0u8, - BlockKind::CutRedSandstone => 15u8, - BlockKind::SugarCane => 0u8, - BlockKind::JungleDoor => 0u8, - BlockKind::LimeStainedGlass => 0u8, - BlockKind::Piston => 15u8, - BlockKind::DioriteStairs => 0u8, - BlockKind::PottedCrimsonFungus => 0u8, - BlockKind::PurpleShulkerBox => 1u8, - BlockKind::DeadFireCoralBlock => 15u8, - BlockKind::YellowCarpet => 0u8, - BlockKind::SmoothRedSandstoneSlab => 0u8, - BlockKind::JunglePlanks => 15u8, - BlockKind::SmoothQuartzSlab => 0u8, - BlockKind::SnowBlock => 15u8, - BlockKind::PumpkinStem => 0u8, - BlockKind::CrimsonButton => 0u8, - BlockKind::GreenCarpet => 0u8, - BlockKind::Lilac => 0u8, - BlockKind::RedstoneTorch => 0u8, - BlockKind::PoweredRail => 0u8, - BlockKind::YellowStainedGlassPane => 0u8, - BlockKind::DeepslateRedstoneOre => 15u8, - BlockKind::JungleWood => 15u8, + BlockKind::QuartzBricks => 15u8, + BlockKind::Candle => 0u8, + BlockKind::WhiteCandle => 0u8, + BlockKind::OrangeCandle => 0u8, + BlockKind::MagentaCandle => 0u8, + BlockKind::LightBlueCandle => 0u8, + BlockKind::YellowCandle => 0u8, + BlockKind::LimeCandle => 0u8, + BlockKind::PinkCandle => 0u8, + BlockKind::GrayCandle => 0u8, + BlockKind::LightGrayCandle => 0u8, + BlockKind::CyanCandle => 0u8, + BlockKind::PurpleCandle => 0u8, + BlockKind::BlueCandle => 0u8, + BlockKind::BrownCandle => 0u8, + BlockKind::GreenCandle => 0u8, + BlockKind::RedCandle => 0u8, + BlockKind::BlackCandle => 0u8, + BlockKind::CandleCake => 0u8, + BlockKind::WhiteCandleCake => 0u8, + BlockKind::OrangeCandleCake => 0u8, + BlockKind::MagentaCandleCake => 0u8, BlockKind::LightBlueCandleCake => 0u8, - BlockKind::SmithingTable => 15u8, - BlockKind::MossCarpet => 0u8, - BlockKind::RedStainedGlassPane => 0u8, - BlockKind::Sandstone => 15u8, - BlockKind::PolishedDeepslate => 15u8, - BlockKind::Fire => 0u8, - BlockKind::TubeCoral => 1u8, - BlockKind::SpruceStairs => 0u8, + BlockKind::YellowCandleCake => 0u8, + BlockKind::LimeCandleCake => 0u8, + BlockKind::PinkCandleCake => 0u8, + BlockKind::GrayCandleCake => 0u8, + BlockKind::LightGrayCandleCake => 0u8, + BlockKind::CyanCandleCake => 0u8, BlockKind::PurpleCandleCake => 0u8, - BlockKind::BoneBlock => 15u8, - BlockKind::StickyPiston => 15u8, - BlockKind::RedNetherBricks => 15u8, - BlockKind::LimeStainedGlassPane => 0u8, - BlockKind::SandstoneWall => 0u8, - BlockKind::StrippedSpruceWood => 15u8, - BlockKind::YellowTerracotta => 15u8, - BlockKind::WhiteCandleCake => 0u8, - BlockKind::EmeraldOre => 15u8, - BlockKind::AcaciaSign => 0u8, - BlockKind::FireCoralFan => 1u8, - BlockKind::CobblestoneWall => 0u8, - BlockKind::PottedDarkOakSapling => 0u8, - BlockKind::Prismarine => 15u8, - BlockKind::BambooSapling => 0u8, - BlockKind::OrangeTulip => 0u8, - BlockKind::CyanGlazedTerracotta => 15u8, - BlockKind::DeepslateDiamondOre => 15u8, - BlockKind::RedShulkerBox => 1u8, - BlockKind::MossyStoneBrickSlab => 0u8, - BlockKind::PurpleGlazedTerracotta => 15u8, - BlockKind::BlackConcretePowder => 15u8, + BlockKind::BlueCandleCake => 0u8, + BlockKind::BrownCandleCake => 0u8, + BlockKind::GreenCandleCake => 0u8, + BlockKind::RedCandleCake => 0u8, + BlockKind::BlackCandleCake => 0u8, + BlockKind::AmethystBlock => 15u8, + BlockKind::BuddingAmethyst => 15u8, + BlockKind::AmethystCluster => 0u8, + BlockKind::LargeAmethystBud => 0u8, + BlockKind::MediumAmethystBud => 0u8, + BlockKind::SmallAmethystBud => 0u8, BlockKind::Tuff => 15u8, + BlockKind::Calcite => 15u8, + BlockKind::TintedGlass => 15u8, + BlockKind::PowderSnow => 1u8, + BlockKind::SculkSensor => 0u8, + BlockKind::OxidizedCopper => 15u8, + BlockKind::WeatheredCopper => 15u8, + BlockKind::ExposedCopper => 15u8, + BlockKind::CopperBlock => 15u8, + BlockKind::CopperOre => 15u8, + BlockKind::DeepslateCopperOre => 15u8, + BlockKind::OxidizedCutCopper => 15u8, + BlockKind::WeatheredCutCopper => 15u8, + BlockKind::ExposedCutCopper => 15u8, + BlockKind::CutCopper => 15u8, + BlockKind::OxidizedCutCopperStairs => 0u8, + BlockKind::WeatheredCutCopperStairs => 0u8, + BlockKind::ExposedCutCopperStairs => 0u8, + BlockKind::CutCopperStairs => 0u8, + BlockKind::OxidizedCutCopperSlab => 0u8, + BlockKind::WeatheredCutCopperSlab => 0u8, + BlockKind::ExposedCutCopperSlab => 0u8, + BlockKind::CutCopperSlab => 0u8, + BlockKind::WaxedCopperBlock => 15u8, + BlockKind::WaxedWeatheredCopper => 15u8, + BlockKind::WaxedExposedCopper => 15u8, + BlockKind::WaxedOxidizedCopper => 15u8, + BlockKind::WaxedOxidizedCutCopper => 15u8, BlockKind::WaxedWeatheredCutCopper => 15u8, - BlockKind::RedstoneLamp => 15u8, - BlockKind::AcaciaLog => 15u8, - BlockKind::Terracotta => 15u8, - BlockKind::AcaciaSlab => 0u8, - BlockKind::QuartzBlock => 15u8, - BlockKind::PottedBamboo => 0u8, - BlockKind::JungleSlab => 0u8, - BlockKind::Azalea => 0u8, - BlockKind::RedBed => 0u8, - BlockKind::CyanStainedGlass => 0u8, - BlockKind::DarkPrismarineStairs => 0u8, - BlockKind::DeepslateBrickWall => 0u8, - BlockKind::MagentaConcrete => 15u8, - BlockKind::Wheat => 0u8, - BlockKind::BirchSlab => 0u8, - BlockKind::BlackTerracotta => 15u8, - BlockKind::AttachedPumpkinStem => 0u8, - BlockKind::WhiteTerracotta => 15u8, - BlockKind::BirchFenceGate => 0u8, - BlockKind::RepeatingCommandBlock => 15u8, - BlockKind::Ice => 1u8, - BlockKind::LightBlueBed => 0u8, - BlockKind::BlackCarpet => 0u8, - BlockKind::StrippedJungleWood => 15u8, - BlockKind::PottedSpruceSapling => 0u8, - BlockKind::OakTrapdoor => 0u8, - BlockKind::DeadBrainCoral => 1u8, - BlockKind::StoneButton => 0u8, - BlockKind::StrippedJungleLog => 15u8, + BlockKind::WaxedExposedCutCopper => 15u8, + BlockKind::WaxedCutCopper => 15u8, + BlockKind::WaxedOxidizedCutCopperStairs => 0u8, + BlockKind::WaxedWeatheredCutCopperStairs => 0u8, + BlockKind::WaxedExposedCutCopperStairs => 0u8, + BlockKind::WaxedCutCopperStairs => 0u8, + BlockKind::WaxedOxidizedCutCopperSlab => 0u8, + BlockKind::WaxedWeatheredCutCopperSlab => 0u8, BlockKind::WaxedExposedCutCopperSlab => 0u8, - BlockKind::Hopper => 0u8, - BlockKind::NetherBricks => 15u8, - BlockKind::RedSandstoneStairs => 0u8, - BlockKind::HornCoralFan => 1u8, - BlockKind::GrayConcrete => 15u8, - BlockKind::RedBanner => 0u8, - BlockKind::WarpedButton => 0u8, - BlockKind::SculkSensor => 0u8, - BlockKind::Grass => 0u8, - BlockKind::InfestedStone => 15u8, - BlockKind::LightBlueWallBanner => 0u8, - BlockKind::AmethystCluster => 0u8, - BlockKind::BlueOrchid => 0u8, - } - } -} -impl BlockKind { - #[doc = "Returns the `solid` property of this `BlockKind`."] - #[inline] - pub fn solid(&self) -> bool { - match self { - BlockKind::LightGrayWool => true, - BlockKind::OakFence => true, - BlockKind::PackedIce => true, - BlockKind::YellowBed => true, - BlockKind::HornCoral => false, - BlockKind::WaxedExposedCutCopperStairs => true, - BlockKind::GreenWool => true, - BlockKind::PottedOxeyeDaisy => true, - BlockKind::BrownMushroom => false, - BlockKind::QuartzPillar => true, - BlockKind::WaxedWeatheredCutCopperSlab => true, - BlockKind::MagentaTerracotta => true, - BlockKind::GrayConcretePowder => true, - BlockKind::LargeAmethystBud => true, - BlockKind::DeepslateGoldOre => true, - BlockKind::DeepslateBricks => true, - BlockKind::JungleFenceGate => true, - BlockKind::SprucePlanks => true, - BlockKind::BrownMushroomBlock => true, - BlockKind::LightGrayCandle => true, - BlockKind::DeepslateBrickStairs => true, - BlockKind::CutCopper => true, - BlockKind::WaxedOxidizedCutCopperSlab => true, - BlockKind::PinkShulkerBox => true, - BlockKind::RedSand => true, - BlockKind::OxidizedCutCopperStairs => true, - BlockKind::BrownStainedGlass => true, - BlockKind::AttachedPumpkinStem => false, - BlockKind::CrimsonTrapdoor => true, - BlockKind::StrippedOakLog => true, - BlockKind::CyanBed => true, - BlockKind::PottedBlueOrchid => true, - BlockKind::DeadBrainCoralBlock => true, - BlockKind::CrimsonButton => false, - BlockKind::PottedDeadBush => true, - BlockKind::GreenStainedGlassPane => true, - BlockKind::LavaCauldron => true, - BlockKind::GrayStainedGlass => true, - BlockKind::DaylightDetector => true, - BlockKind::SporeBlossom => false, - BlockKind::JungleLog => true, - BlockKind::OakStairs => true, - BlockKind::Smoker => true, - BlockKind::SlimeBlock => true, - BlockKind::Snow => true, - BlockKind::AcaciaPressurePlate => false, - BlockKind::Clay => true, - BlockKind::PinkCarpet => true, - BlockKind::ChippedAnvil => true, - BlockKind::PurpleStainedGlassPane => true, - BlockKind::VoidAir => false, - BlockKind::DarkOakSign => false, - BlockKind::PottedBirchSapling => true, - BlockKind::Beehive => true, - BlockKind::LightBlueStainedGlassPane => true, - BlockKind::DragonEgg => true, - BlockKind::PinkConcrete => true, - BlockKind::GreenCarpet => true, - BlockKind::Pumpkin => true, - BlockKind::CyanShulkerBox => true, - BlockKind::GraniteSlab => true, - BlockKind::FletchingTable => true, - BlockKind::Candle => true, - BlockKind::RedTerracotta => true, - BlockKind::CyanTerracotta => true, - BlockKind::StrippedWarpedStem => true, - BlockKind::AttachedMelonStem => false, - BlockKind::LightGrayWallBanner => false, - BlockKind::SmoothSandstone => true, - BlockKind::Cauldron => true, - BlockKind::WeatheredCutCopperSlab => true, - BlockKind::Spawner => true, - BlockKind::Bell => true, - BlockKind::GreenWallBanner => false, - BlockKind::DeadTubeCoralBlock => true, - BlockKind::DarkOakButton => false, - BlockKind::BlackWool => true, - BlockKind::RedSandstoneSlab => true, - BlockKind::ChorusFlower => true, - BlockKind::BlackShulkerBox => true, - BlockKind::DiamondOre => true, - BlockKind::StonePressurePlate => false, - BlockKind::Sunflower => false, - BlockKind::DetectorRail => false, - BlockKind::JungleFence => true, - BlockKind::PolishedBasalt => true, - BlockKind::SmoothSandstoneStairs => true, - BlockKind::EndStoneBrickStairs => true, - BlockKind::BlackCarpet => true, - BlockKind::BlueConcrete => true, - BlockKind::YellowStainedGlassPane => true, - BlockKind::DeadBush => false, - BlockKind::AcaciaFenceGate => true, - BlockKind::OrangeShulkerBox => true, - BlockKind::MossCarpet => true, - BlockKind::GrayWool => true, - BlockKind::WarpedWallSign => false, - BlockKind::EndStone => true, - BlockKind::AcaciaLog => true, - BlockKind::DarkPrismarine => true, - BlockKind::BlueCandle => true, - BlockKind::PottedAzureBluet => true, - BlockKind::PowderSnowCauldron => true, - BlockKind::TubeCoralFan => false, - BlockKind::Chest => true, - BlockKind::SpruceStairs => true, - BlockKind::NetherQuartzOre => true, - BlockKind::WaxedCutCopperSlab => true, - BlockKind::StoneBrickStairs => true, - BlockKind::WarpedFungus => false, - BlockKind::AcaciaButton => false, - BlockKind::LimeWool => true, - BlockKind::Kelp => false, - BlockKind::InfestedChiseledStoneBricks => true, - BlockKind::Target => true, - BlockKind::SandstoneStairs => true, - BlockKind::CyanCandle => true, - BlockKind::BirchFenceGate => true, - BlockKind::Lilac => false, - BlockKind::RedSandstoneWall => true, - BlockKind::TubeCoralBlock => true, - BlockKind::PrismarineBrickSlab => true, - BlockKind::RedNetherBrickSlab => true, - BlockKind::RedStainedGlassPane => true, - BlockKind::YellowGlazedTerracotta => true, - BlockKind::MagentaCarpet => true, - BlockKind::BrownConcrete => true, - BlockKind::RedMushroom => false, - BlockKind::StrippedBirchLog => true, - BlockKind::Tripwire => false, - BlockKind::PinkTerracotta => true, - BlockKind::JungleStairs => true, - BlockKind::Barrel => true, - BlockKind::DeadFireCoralFan => false, - BlockKind::Barrier => true, - BlockKind::LightBlueCarpet => true, - BlockKind::PottedLilyOfTheValley => true, + BlockKind::WaxedCutCopperSlab => 0u8, + BlockKind::LightningRod => 0u8, + BlockKind::PointedDripstone => 0u8, + BlockKind::DripstoneBlock => 15u8, + BlockKind::CaveVines => 0u8, + BlockKind::CaveVinesPlant => 0u8, + BlockKind::SporeBlossom => 0u8, + BlockKind::Azalea => 0u8, + BlockKind::FloweringAzalea => 0u8, + BlockKind::MossCarpet => 0u8, + BlockKind::MossBlock => 15u8, + BlockKind::BigDripleaf => 0u8, + BlockKind::BigDripleafStem => 0u8, + BlockKind::SmallDripleaf => 0u8, + BlockKind::HangingRoots => 0u8, + BlockKind::RootedDirt => 15u8, + BlockKind::Deepslate => 15u8, + BlockKind::CobbledDeepslate => 15u8, + BlockKind::CobbledDeepslateStairs => 0u8, + BlockKind::CobbledDeepslateSlab => 0u8, + BlockKind::CobbledDeepslateWall => 0u8, + BlockKind::PolishedDeepslate => 15u8, + BlockKind::PolishedDeepslateStairs => 0u8, + BlockKind::PolishedDeepslateSlab => 0u8, + BlockKind::PolishedDeepslateWall => 0u8, + BlockKind::DeepslateTiles => 15u8, + BlockKind::DeepslateTileStairs => 0u8, + BlockKind::DeepslateTileSlab => 0u8, + BlockKind::DeepslateTileWall => 0u8, + BlockKind::DeepslateBricks => 15u8, + BlockKind::DeepslateBrickStairs => 0u8, + BlockKind::DeepslateBrickSlab => 0u8, + BlockKind::DeepslateBrickWall => 0u8, + BlockKind::ChiseledDeepslate => 15u8, + BlockKind::CrackedDeepslateBricks => 15u8, + BlockKind::CrackedDeepslateTiles => 15u8, + BlockKind::InfestedDeepslate => 15u8, + BlockKind::SmoothBasalt => 15u8, + BlockKind::RawIronBlock => 15u8, + BlockKind::RawCopperBlock => 15u8, + BlockKind::RawGoldBlock => 15u8, + BlockKind::PottedAzaleaBush => 0u8, + BlockKind::PottedFloweringAzaleaBush => 0u8, + } + } +} +impl BlockKind { + #[doc = "Returns the `solid` property of this `BlockKind`."] + #[inline] + pub fn solid(&self) -> bool { + match self { + BlockKind::Air => false, + BlockKind::Stone => true, + BlockKind::Granite => true, + BlockKind::PolishedGranite => true, + BlockKind::Diorite => true, + BlockKind::PolishedDiorite => true, + BlockKind::Andesite => true, + BlockKind::PolishedAndesite => true, + BlockKind::GrassBlock => true, + BlockKind::Dirt => true, + BlockKind::CoarseDirt => true, + BlockKind::Podzol => true, + BlockKind::Cobblestone => true, + BlockKind::OakPlanks => true, + BlockKind::SprucePlanks => true, + BlockKind::BirchPlanks => true, + BlockKind::JunglePlanks => true, + BlockKind::AcaciaPlanks => true, + BlockKind::DarkOakPlanks => true, + BlockKind::OakSapling => false, + BlockKind::SpruceSapling => false, + BlockKind::BirchSapling => false, + BlockKind::JungleSapling => false, BlockKind::AcaciaSapling => false, - BlockKind::WitherRose => false, - BlockKind::SmoothQuartz => true, - BlockKind::StructureBlock => true, + BlockKind::DarkOakSapling => false, + BlockKind::Bedrock => true, + BlockKind::Water => false, + BlockKind::Lava => false, + BlockKind::Sand => true, + BlockKind::RedSand => true, + BlockKind::Gravel => true, + BlockKind::GoldOre => true, + BlockKind::DeepslateGoldOre => true, + BlockKind::IronOre => true, BlockKind::DeepslateIronOre => true, - BlockKind::PinkWallBanner => false, - BlockKind::StrippedJungleWood => true, + BlockKind::CoalOre => true, + BlockKind::DeepslateCoalOre => true, + BlockKind::NetherGoldOre => true, + BlockKind::OakLog => true, + BlockKind::SpruceLog => true, BlockKind::BirchLog => true, - BlockKind::Diorite => true, - BlockKind::LimeShulkerBox => true, - BlockKind::BuddingAmethyst => true, - BlockKind::MushroomStem => true, - BlockKind::LightBlueTerracotta => true, - BlockKind::BlueStainedGlass => true, - BlockKind::BlackCandle => true, - BlockKind::BrownCarpet => true, - BlockKind::JunglePressurePlate => false, - BlockKind::OakDoor => true, - BlockKind::YellowWool => true, - BlockKind::Bedrock => true, - BlockKind::YellowCarpet => true, - BlockKind::CrimsonDoor => true, - BlockKind::SpruceButton => false, - BlockKind::BambooSapling => false, - BlockKind::CarvedPumpkin => true, - BlockKind::AcaciaLeaves => true, - BlockKind::ChiseledNetherBricks => true, - BlockKind::PottedOrangeTulip => true, - BlockKind::LightBlueCandle => true, - BlockKind::GraniteStairs => true, - BlockKind::Sponge => true, - BlockKind::PetrifiedOakSlab => true, - BlockKind::CobbledDeepslateSlab => true, - BlockKind::NetherWart => false, - BlockKind::PinkGlazedTerracotta => true, - BlockKind::SpruceFenceGate => true, - BlockKind::SmoothQuartzSlab => true, - BlockKind::RedMushroomBlock => true, - BlockKind::EndRod => true, - BlockKind::PinkStainedGlass => true, - BlockKind::BrewingStand => true, - BlockKind::BlackStainedGlassPane => true, - BlockKind::LimeConcretePowder => true, - BlockKind::DeadBrainCoralWallFan => false, - BlockKind::DarkOakPlanks => true, + BlockKind::JungleLog => true, + BlockKind::AcaciaLog => true, BlockKind::DarkOakLog => true, - BlockKind::JungleWallSign => false, - BlockKind::RedstoneBlock => true, - BlockKind::DriedKelpBlock => true, - BlockKind::Lantern => true, - BlockKind::LilyPad => true, - BlockKind::CreeperHead => true, - BlockKind::PolishedGraniteSlab => true, - BlockKind::WhiteTulip => false, - BlockKind::WhiteCandle => true, - BlockKind::BlueStainedGlassPane => true, - BlockKind::WhiteCarpet => true, - BlockKind::QuartzBlock => true, - BlockKind::CobbledDeepslate => true, - BlockKind::Conduit => true, - BlockKind::AndesiteWall => true, - BlockKind::OakSign => false, - BlockKind::PlayerHead => true, - BlockKind::PottedCrimsonRoots => true, - BlockKind::SmoothRedSandstoneSlab => true, - BlockKind::LightGrayStainedGlass => true, - BlockKind::StoneSlab => true, - BlockKind::Dandelion => false, - BlockKind::CobblestoneSlab => true, - BlockKind::PrismarineBricks => true, - BlockKind::PinkCandleCake => true, - BlockKind::Blackstone => true, - BlockKind::AcaciaWallSign => false, - BlockKind::CyanConcretePowder => true, - BlockKind::CandleCake => true, - BlockKind::BigDripleafStem => false, - BlockKind::StrippedOakWood => true, - BlockKind::Scaffolding => true, - BlockKind::AcaciaFence => true, - BlockKind::StrippedAcaciaLog => true, - BlockKind::BrainCoralBlock => true, - BlockKind::CaveAir => false, - BlockKind::Grindstone => true, - BlockKind::OrangeStainedGlassPane => true, - BlockKind::StrippedCrimsonHyphae => true, - BlockKind::CutSandstoneSlab => true, - BlockKind::CutSandstone => true, - BlockKind::GildedBlackstone => true, - BlockKind::CobblestoneStairs => true, - BlockKind::NetherPortal => false, - BlockKind::Carrots => false, - BlockKind::WeatheredCopper => true, - BlockKind::StrippedDarkOakWood => true, - BlockKind::AmethystCluster => true, - BlockKind::PottedPoppy => true, - BlockKind::MagmaBlock => true, - BlockKind::StructureVoid => false, - BlockKind::OrangeConcrete => true, - BlockKind::RedStainedGlass => true, - BlockKind::PurpleCarpet => true, - BlockKind::RedConcretePowder => true, - BlockKind::GrayCarpet => true, - BlockKind::StrippedBirchWood => true, - BlockKind::DeepslateLapisOre => true, - BlockKind::MagentaBanner => false, - BlockKind::CrimsonStairs => true, - BlockKind::ExposedCutCopperSlab => true, - BlockKind::MossyStoneBrickStairs => true, - BlockKind::WaxedOxidizedCutCopperStairs => true, - BlockKind::SoulSand => true, - BlockKind::SpruceSign => false, - BlockKind::LimeGlazedTerracotta => true, - BlockKind::YellowCandleCake => true, - BlockKind::GrayTerracotta => true, - BlockKind::BlueBanner => false, - BlockKind::CyanWool => true, - BlockKind::NetherSprouts => false, - BlockKind::LightningRod => true, - BlockKind::BirchButton => false, - BlockKind::NetherBrickSlab => true, - BlockKind::GrayBed => true, - BlockKind::TripwireHook => false, - BlockKind::Anvil => true, - BlockKind::MossyCobblestoneSlab => true, - BlockKind::Cactus => true, - BlockKind::CoalBlock => true, - BlockKind::PottedBamboo => true, - BlockKind::WarpedButton => false, - BlockKind::SkeletonWallSkull => true, - BlockKind::CrackedDeepslateTiles => true, - BlockKind::ChiseledStoneBricks => true, - BlockKind::OakPressurePlate => false, - BlockKind::NetherBricks => true, - BlockKind::Glass => true, - BlockKind::CyanConcrete => true, - BlockKind::YellowShulkerBox => true, - BlockKind::TubeCoral => false, - BlockKind::SmithingTable => true, - BlockKind::PottedFloweringAzaleaBush => true, - BlockKind::MossBlock => true, - BlockKind::MossyStoneBrickWall => true, - BlockKind::WarpedStairs => true, - BlockKind::Stone => true, - BlockKind::PottedDarkOakSapling => true, - BlockKind::Gravel => true, - BlockKind::CoarseDirt => true, - BlockKind::SmoothStone => true, - BlockKind::MagentaGlazedTerracotta => true, - BlockKind::ExposedCutCopperStairs => true, - BlockKind::Mycelium => true, - BlockKind::ShulkerBox => true, - BlockKind::RedstoneLamp => true, - BlockKind::WhiteWallBanner => false, - BlockKind::WhiteConcretePowder => true, - BlockKind::CrimsonStem => true, - BlockKind::Comparator => true, - BlockKind::LimeTerracotta => true, - BlockKind::BirchPlanks => true, - BlockKind::DeadBubbleCoralWallFan => false, - BlockKind::MagentaCandle => true, - BlockKind::LargeFern => false, - BlockKind::Cobblestone => true, - BlockKind::EndPortalFrame => true, - BlockKind::GreenShulkerBox => true, - BlockKind::PrismarineBrickStairs => true, - BlockKind::BirchPressurePlate => false, - BlockKind::OrangeConcretePowder => true, - BlockKind::SmoothBasalt => true, - BlockKind::Vine => false, - BlockKind::SweetBerryBush => false, - BlockKind::NetheriteBlock => true, - BlockKind::Lever => false, - BlockKind::DeadBrainCoral => false, - BlockKind::RawIronBlock => true, - BlockKind::HornCoralFan => false, - BlockKind::RedSandstone => true, - BlockKind::Light => false, - BlockKind::PurpleStainedGlass => true, - BlockKind::GrayShulkerBox => true, - BlockKind::InfestedMossyStoneBricks => true, - BlockKind::BubbleCoralWallFan => false, - BlockKind::WaxedOxidizedCopper => true, - BlockKind::OxeyeDaisy => false, - BlockKind::GoldBlock => true, - BlockKind::BlueCandleCake => true, - BlockKind::PolishedBlackstone => true, - BlockKind::Ladder => true, - BlockKind::BlackStainedGlass => true, - BlockKind::Terracotta => true, - BlockKind::PurpleConcretePowder => true, - BlockKind::PowderSnow => false, - BlockKind::SmallDripleaf => false, - BlockKind::JackOLantern => true, BlockKind::StrippedSpruceLog => true, + BlockKind::StrippedBirchLog => true, + BlockKind::StrippedJungleLog => true, + BlockKind::StrippedAcaciaLog => true, + BlockKind::StrippedDarkOakLog => true, + BlockKind::StrippedOakLog => true, + BlockKind::OakWood => true, + BlockKind::SpruceWood => true, + BlockKind::BirchWood => true, + BlockKind::JungleWood => true, BlockKind::AcaciaWood => true, - BlockKind::WhiteStainedGlass => true, - BlockKind::CopperOre => true, - BlockKind::CrimsonFenceGate => true, - BlockKind::BirchTrapdoor => true, - BlockKind::RepeatingCommandBlock => true, - BlockKind::RedCarpet => true, - BlockKind::Water => false, + BlockKind::DarkOakWood => true, + BlockKind::StrippedOakWood => true, + BlockKind::StrippedSpruceWood => true, + BlockKind::StrippedBirchWood => true, + BlockKind::StrippedJungleWood => true, + BlockKind::StrippedAcaciaWood => true, + BlockKind::StrippedDarkOakWood => true, + BlockKind::OakLeaves => true, + BlockKind::SpruceLeaves => true, BlockKind::BirchLeaves => true, - BlockKind::RoseBush => false, - BlockKind::WaxedExposedCutCopper => true, - BlockKind::AcaciaSign => false, - BlockKind::PolishedDeepslateWall => true, - BlockKind::CreeperWallHead => true, - BlockKind::AndesiteStairs => true, - BlockKind::PottedRedTulip => true, + BlockKind::JungleLeaves => true, + BlockKind::AcaciaLeaves => true, + BlockKind::DarkOakLeaves => true, + BlockKind::AzaleaLeaves => true, + BlockKind::FloweringAzaleaLeaves => true, + BlockKind::Sponge => true, BlockKind::WetSponge => true, - BlockKind::CrimsonNylium => true, - BlockKind::OakLeaves => true, - BlockKind::PottedCrimsonFungus => true, - BlockKind::BubbleCoral => false, - BlockKind::BlueCarpet => true, - BlockKind::SpruceSapling => false, + BlockKind::Glass => true, + BlockKind::LapisOre => true, + BlockKind::DeepslateLapisOre => true, + BlockKind::LapisBlock => true, + BlockKind::Dispenser => true, + BlockKind::Sandstone => true, + BlockKind::ChiseledSandstone => true, + BlockKind::CutSandstone => true, + BlockKind::NoteBlock => true, + BlockKind::WhiteBed => true, + BlockKind::OrangeBed => true, + BlockKind::MagentaBed => true, + BlockKind::LightBlueBed => true, + BlockKind::YellowBed => true, + BlockKind::LimeBed => true, + BlockKind::PinkBed => true, + BlockKind::GrayBed => true, + BlockKind::LightGrayBed => true, + BlockKind::CyanBed => true, + BlockKind::PurpleBed => true, + BlockKind::BlueBed => true, + BlockKind::BrownBed => true, + BlockKind::GreenBed => true, + BlockKind::RedBed => true, + BlockKind::BlackBed => true, + BlockKind::PoweredRail => false, + BlockKind::DetectorRail => false, + BlockKind::StickyPiston => true, + BlockKind::Cobweb => false, + BlockKind::Grass => false, + BlockKind::Fern => false, + BlockKind::DeadBush => false, + BlockKind::Seagrass => false, + BlockKind::TallSeagrass => false, + BlockKind::Piston => true, + BlockKind::PistonHead => true, + BlockKind::WhiteWool => true, + BlockKind::OrangeWool => true, + BlockKind::MagentaWool => true, + BlockKind::LightBlueWool => true, + BlockKind::YellowWool => true, + BlockKind::LimeWool => true, + BlockKind::PinkWool => true, + BlockKind::GrayWool => true, + BlockKind::LightGrayWool => true, + BlockKind::CyanWool => true, + BlockKind::PurpleWool => true, + BlockKind::BlueWool => true, + BlockKind::BrownWool => true, + BlockKind::GreenWool => true, + BlockKind::RedWool => true, + BlockKind::BlackWool => true, BlockKind::MovingPiston => false, - BlockKind::RedGlazedTerracotta => true, - BlockKind::LightGrayConcrete => true, + BlockKind::Dandelion => false, + BlockKind::Poppy => false, + BlockKind::BlueOrchid => false, BlockKind::Allium => false, - BlockKind::PurpleBanner => false, - BlockKind::PolishedGraniteStairs => true, - BlockKind::NetherBrickFence => true, - BlockKind::PurpleCandle => true, - BlockKind::DragonHead => true, - BlockKind::SandstoneWall => true, - BlockKind::DiamondBlock => true, - BlockKind::JungleTrapdoor => true, - BlockKind::CobbledDeepslateStairs => true, - BlockKind::BigDripleaf => true, - BlockKind::WaterCauldron => true, - BlockKind::ChiseledDeepslate => true, + BlockKind::AzureBluet => false, + BlockKind::RedTulip => false, + BlockKind::OrangeTulip => false, + BlockKind::WhiteTulip => false, + BlockKind::PinkTulip => false, + BlockKind::OxeyeDaisy => false, + BlockKind::Cornflower => false, + BlockKind::WitherRose => false, + BlockKind::LilyOfTheValley => false, + BlockKind::BrownMushroom => false, + BlockKind::RedMushroom => false, + BlockKind::GoldBlock => true, + BlockKind::IronBlock => true, BlockKind::Bricks => true, - BlockKind::DeadTubeCoral => false, - BlockKind::SpruceSlab => true, - BlockKind::GreenBed => true, - BlockKind::WhiteBanner => false, - BlockKind::HangingRoots => false, - BlockKind::AncientDebris => true, - BlockKind::WhiteStainedGlassPane => true, - BlockKind::DirtPath => true, - BlockKind::PottedBrownMushroom => true, - BlockKind::Bamboo => true, - BlockKind::Dispenser => true, - BlockKind::LimeBanner => false, - BlockKind::DeepslateBrickWall => true, - BlockKind::SmallAmethystBud => true, - BlockKind::ExposedCopper => true, - BlockKind::PolishedBlackstoneSlab => true, + BlockKind::Tnt => true, + BlockKind::Bookshelf => true, + BlockKind::MossyCobblestone => true, + BlockKind::Obsidian => true, + BlockKind::Torch => false, + BlockKind::WallTorch => false, + BlockKind::Fire => false, + BlockKind::SoulFire => false, + BlockKind::Spawner => true, + BlockKind::OakStairs => true, + BlockKind::Chest => true, + BlockKind::RedstoneWire => false, + BlockKind::DiamondOre => true, + BlockKind::DeepslateDiamondOre => true, + BlockKind::DiamondBlock => true, + BlockKind::CraftingTable => true, + BlockKind::Wheat => false, + BlockKind::Farmland => true, + BlockKind::Furnace => true, + BlockKind::OakSign => false, + BlockKind::SpruceSign => false, + BlockKind::BirchSign => false, + BlockKind::AcaciaSign => false, + BlockKind::JungleSign => false, + BlockKind::DarkOakSign => false, + BlockKind::OakDoor => true, + BlockKind::Ladder => true, + BlockKind::Rail => false, + BlockKind::CobblestoneStairs => true, + BlockKind::OakWallSign => false, + BlockKind::SpruceWallSign => false, + BlockKind::BirchWallSign => false, + BlockKind::AcaciaWallSign => false, + BlockKind::JungleWallSign => false, + BlockKind::DarkOakWallSign => false, + BlockKind::Lever => false, + BlockKind::StonePressurePlate => false, + BlockKind::IronDoor => true, + BlockKind::OakPressurePlate => false, + BlockKind::SprucePressurePlate => false, + BlockKind::BirchPressurePlate => false, + BlockKind::JunglePressurePlate => false, + BlockKind::AcaciaPressurePlate => false, + BlockKind::DarkOakPressurePlate => false, + BlockKind::RedstoneOre => true, + BlockKind::DeepslateRedstoneOre => true, + BlockKind::RedstoneTorch => false, + BlockKind::RedstoneWallTorch => false, + BlockKind::StoneButton => false, + BlockKind::Snow => true, + BlockKind::Ice => true, + BlockKind::SnowBlock => true, + BlockKind::Cactus => true, + BlockKind::Clay => true, + BlockKind::SugarCane => false, + BlockKind::Jukebox => true, + BlockKind::OakFence => true, + BlockKind::Pumpkin => true, + BlockKind::Netherrack => true, + BlockKind::SoulSand => true, + BlockKind::SoulSoil => true, + BlockKind::Basalt => true, + BlockKind::PolishedBasalt => true, + BlockKind::SoulTorch => false, BlockKind::SoulWallTorch => false, BlockKind::Glowstone => true, - BlockKind::RedCandle => true, - BlockKind::WeatheredCutCopper => true, - BlockKind::WaxedWeatheredCutCopperStairs => true, - BlockKind::StrippedJungleLog => true, - BlockKind::PottedSpruceSapling => true, - BlockKind::BlackstoneSlab => true, - BlockKind::PolishedBlackstoneButton => false, - BlockKind::LapisBlock => true, - BlockKind::GreenConcretePowder => true, - BlockKind::BlackWallBanner => false, - BlockKind::BlackCandleCake => true, + BlockKind::NetherPortal => false, + BlockKind::CarvedPumpkin => true, + BlockKind::JackOLantern => true, + BlockKind::Cake => true, + BlockKind::Repeater => true, + BlockKind::WhiteStainedGlass => true, + BlockKind::OrangeStainedGlass => true, + BlockKind::MagentaStainedGlass => true, + BlockKind::LightBlueStainedGlass => true, + BlockKind::YellowStainedGlass => true, + BlockKind::LimeStainedGlass => true, + BlockKind::PinkStainedGlass => true, + BlockKind::GrayStainedGlass => true, + BlockKind::LightGrayStainedGlass => true, + BlockKind::CyanStainedGlass => true, + BlockKind::PurpleStainedGlass => true, + BlockKind::BlueStainedGlass => true, + BlockKind::BrownStainedGlass => true, + BlockKind::GreenStainedGlass => true, + BlockKind::RedStainedGlass => true, + BlockKind::BlackStainedGlass => true, + BlockKind::OakTrapdoor => true, + BlockKind::SpruceTrapdoor => true, + BlockKind::BirchTrapdoor => true, + BlockKind::JungleTrapdoor => true, BlockKind::AcaciaTrapdoor => true, - BlockKind::FloweringAzalea => true, - BlockKind::PolishedBlackstoneBrickWall => true, - BlockKind::WaxedExposedCopper => true, + BlockKind::DarkOakTrapdoor => true, + BlockKind::StoneBricks => true, + BlockKind::MossyStoneBricks => true, + BlockKind::CrackedStoneBricks => true, + BlockKind::ChiseledStoneBricks => true, + BlockKind::InfestedStone => true, + BlockKind::InfestedCobblestone => true, + BlockKind::InfestedStoneBricks => true, + BlockKind::InfestedMossyStoneBricks => true, BlockKind::InfestedCrackedStoneBricks => true, + BlockKind::InfestedChiseledStoneBricks => true, + BlockKind::BrownMushroomBlock => true, + BlockKind::RedMushroomBlock => true, + BlockKind::MushroomStem => true, + BlockKind::IronBars => true, + BlockKind::Chain => true, + BlockKind::GlassPane => true, + BlockKind::Melon => true, + BlockKind::AttachedPumpkinStem => false, + BlockKind::AttachedMelonStem => false, + BlockKind::PumpkinStem => false, + BlockKind::MelonStem => false, + BlockKind::Vine => false, + BlockKind::GlowLichen => false, + BlockKind::OakFenceGate => true, + BlockKind::BrickStairs => true, + BlockKind::StoneBrickStairs => true, + BlockKind::Mycelium => true, + BlockKind::LilyPad => true, + BlockKind::NetherBricks => true, + BlockKind::NetherBrickFence => true, BlockKind::NetherBrickStairs => true, - BlockKind::TallGrass => false, - BlockKind::PurpleWool => true, - BlockKind::Netherrack => true, - BlockKind::EndStoneBricks => true, - BlockKind::CyanStainedGlassPane => true, - BlockKind::MediumAmethystBud => true, - BlockKind::StrippedCrimsonStem => true, - BlockKind::DeepslateCoalOre => true, + BlockKind::NetherWart => false, + BlockKind::EnchantingTable => true, + BlockKind::BrewingStand => true, + BlockKind::Cauldron => true, + BlockKind::WaterCauldron => true, + BlockKind::LavaCauldron => true, + BlockKind::PowderSnowCauldron => true, + BlockKind::EndPortal => false, + BlockKind::EndPortalFrame => true, + BlockKind::EndStone => true, + BlockKind::DragonEgg => true, + BlockKind::RedstoneLamp => true, + BlockKind::Cocoa => true, + BlockKind::SandstoneStairs => true, + BlockKind::EmeraldOre => true, BlockKind::DeepslateEmeraldOre => true, - BlockKind::WarpedWartBlock => true, - BlockKind::StoneStairs => true, - BlockKind::DeadBubbleCoral => false, - BlockKind::YellowWallBanner => false, - BlockKind::Melon => true, - BlockKind::PolishedDioriteSlab => true, - BlockKind::BlueGlazedTerracotta => true, - BlockKind::WeepingVines => false, - BlockKind::LightBlueConcrete => true, - BlockKind::OxidizedCutCopper => true, - BlockKind::SpruceLog => true, - BlockKind::RawCopperBlock => true, - BlockKind::SpruceLeaves => true, - BlockKind::StrippedDarkOakLog => true, + BlockKind::EnderChest => true, + BlockKind::TripwireHook => false, + BlockKind::Tripwire => false, + BlockKind::EmeraldBlock => true, + BlockKind::SpruceStairs => true, + BlockKind::BirchStairs => true, + BlockKind::JungleStairs => true, + BlockKind::CommandBlock => true, BlockKind::Beacon => true, - BlockKind::BrownWool => true, - BlockKind::SugarCane => false, - BlockKind::BrownConcretePowder => true, - BlockKind::EndStoneBrickWall => true, - BlockKind::PurpleWallBanner => false, - BlockKind::YellowCandle => true, - BlockKind::CutRedSandstoneSlab => true, - BlockKind::PottedCactus => true, - BlockKind::Tnt => true, - BlockKind::LightBlueBed => true, - BlockKind::JungleSlab => true, - BlockKind::Calcite => true, - BlockKind::MagentaConcrete => true, - BlockKind::DeepslateTiles => true, - BlockKind::HayBlock => true, - BlockKind::CrimsonHyphae => true, - BlockKind::SprucePressurePlate => false, - BlockKind::LightGrayShulkerBox => true, - BlockKind::WarpedRoots => false, - BlockKind::GrayBanner => false, - BlockKind::LightGrayCandleCake => true, - BlockKind::AcaciaDoor => true, - BlockKind::LightBlueGlazedTerracotta => true, - BlockKind::LightGrayBed => true, - BlockKind::TintedGlass => true, - BlockKind::CrackedDeepslateBricks => true, - BlockKind::StoneBrickSlab => true, + BlockKind::CobblestoneWall => true, + BlockKind::MossyCobblestoneWall => true, + BlockKind::FlowerPot => true, BlockKind::PottedOakSapling => true, - BlockKind::PurpleTerracotta => true, - BlockKind::GoldOre => true, - BlockKind::FloweringAzaleaLeaves => true, - BlockKind::LightGrayGlazedTerracotta => true, - BlockKind::PolishedDeepslate => true, - BlockKind::MagentaCandleCake => true, - BlockKind::LightBlueBanner => false, - BlockKind::ChainCommandBlock => true, - BlockKind::NetherWartBlock => true, - BlockKind::PolishedDeepslateStairs => true, - BlockKind::BubbleColumn => false, - BlockKind::StrippedSpruceWood => true, - BlockKind::RespawnAnchor => true, - BlockKind::CyanGlazedTerracotta => true, - BlockKind::StrippedWarpedHyphae => true, - BlockKind::StoneButton => false, - BlockKind::YellowStainedGlass => true, - BlockKind::PurpleGlazedTerracotta => true, - BlockKind::BrownGlazedTerracotta => true, - BlockKind::GlowLichen => false, - BlockKind::LimeStainedGlass => true, - BlockKind::PolishedAndesiteSlab => true, - BlockKind::IronBlock => true, - BlockKind::MagentaConcretePowder => true, - BlockKind::CrimsonSign => false, - BlockKind::PinkBed => true, + BlockKind::PottedSpruceSapling => true, + BlockKind::PottedBirchSapling => true, + BlockKind::PottedJungleSapling => true, + BlockKind::PottedAcaciaSapling => true, + BlockKind::PottedDarkOakSapling => true, + BlockKind::PottedFern => true, + BlockKind::PottedDandelion => true, + BlockKind::PottedPoppy => true, + BlockKind::PottedBlueOrchid => true, + BlockKind::PottedAllium => true, + BlockKind::PottedAzureBluet => true, + BlockKind::PottedRedTulip => true, + BlockKind::PottedOrangeTulip => true, + BlockKind::PottedWhiteTulip => true, + BlockKind::PottedPinkTulip => true, + BlockKind::PottedOxeyeDaisy => true, + BlockKind::PottedCornflower => true, + BlockKind::PottedLilyOfTheValley => true, + BlockKind::PottedWitherRose => true, BlockKind::PottedRedMushroom => true, - BlockKind::FlowerPot => true, - BlockKind::DeepslateCopperOre => true, - BlockKind::BirchSapling => false, - BlockKind::StoneBrickWall => true, - BlockKind::AndesiteSlab => true, - BlockKind::Stonecutter => true, - BlockKind::WarpedFence => true, - BlockKind::CrimsonPressurePlate => false, - BlockKind::BrownBed => true, - BlockKind::LightGrayCarpet => true, - BlockKind::MossyCobblestoneStairs => true, - BlockKind::CrimsonFungus => false, - BlockKind::OrangeWallBanner => false, - BlockKind::Fern => false, - BlockKind::PurpleBed => true, - BlockKind::WhiteWool => true, - BlockKind::LightGrayTerracotta => true, - BlockKind::RedSandstoneStairs => true, - BlockKind::PolishedGranite => true, - BlockKind::SnowBlock => true, + BlockKind::PottedBrownMushroom => true, + BlockKind::PottedDeadBush => true, + BlockKind::PottedCactus => true, + BlockKind::Carrots => false, + BlockKind::Potatoes => false, + BlockKind::OakButton => false, + BlockKind::SpruceButton => false, + BlockKind::BirchButton => false, + BlockKind::JungleButton => false, + BlockKind::AcaciaButton => false, + BlockKind::DarkOakButton => false, + BlockKind::SkeletonSkull => true, + BlockKind::SkeletonWallSkull => true, BlockKind::WitherSkeletonSkull => true, - BlockKind::DioriteStairs => true, - BlockKind::OrangeBanner => false, - BlockKind::PinkCandle => true, + BlockKind::WitherSkeletonWallSkull => true, + BlockKind::ZombieHead => true, + BlockKind::ZombieWallHead => true, + BlockKind::PlayerHead => true, BlockKind::PlayerWallHead => true, - BlockKind::BrownCandle => true, - BlockKind::MelonStem => false, - BlockKind::PottedWitherRose => true, - BlockKind::GreenStainedGlass => true, - BlockKind::RedNetherBricks => true, - BlockKind::RootedDirt => true, - BlockKind::BlackConcretePowder => true, - BlockKind::Jigsaw => true, - BlockKind::GrayStainedGlassPane => true, - BlockKind::PolishedBlackstonePressurePlate => false, - BlockKind::IronDoor => true, - BlockKind::PolishedAndesite => true, - BlockKind::LightBlueStainedGlass => true, - BlockKind::WeepingVinesPlant => false, - BlockKind::WarpedFenceGate => true, - BlockKind::ChiseledPolishedBlackstone => true, - BlockKind::OakLog => true, - BlockKind::GreenTerracotta => true, - BlockKind::OrangeBed => true, - BlockKind::PurpleConcrete => true, - BlockKind::SoulSoil => true, - BlockKind::DeadTubeCoralFan => false, - BlockKind::Prismarine => true, - BlockKind::DeepslateTileSlab => true, - BlockKind::Furnace => true, - BlockKind::Repeater => true, - BlockKind::WhiteBed => true, + BlockKind::CreeperHead => true, + BlockKind::CreeperWallHead => true, + BlockKind::DragonHead => true, BlockKind::DragonWallHead => true, - BlockKind::Chain => true, - BlockKind::AcaciaSlab => true, - BlockKind::JunglePlanks => true, - BlockKind::BlastFurnace => true, - BlockKind::BirchWood => true, - BlockKind::Observer => true, - BlockKind::BlueTerracotta => true, - BlockKind::GrayConcrete => true, - BlockKind::Tuff => true, - BlockKind::IronBars => true, - BlockKind::SpruceFence => true, - BlockKind::CrimsonPlanks => true, - BlockKind::StrippedAcaciaWood => true, - BlockKind::ChiseledQuartzBlock => true, - BlockKind::BirchSlab => true, - BlockKind::Cobweb => false, - BlockKind::Lodestone => true, - BlockKind::GrayWallBanner => false, - BlockKind::WeatheredCutCopperStairs => true, - BlockKind::LilyOfTheValley => false, + BlockKind::Anvil => true, + BlockKind::ChippedAnvil => true, BlockKind::DamagedAnvil => true, - BlockKind::DioriteSlab => true, - BlockKind::GlassPane => true, - BlockKind::KelpPlant => false, - BlockKind::GreenCandle => true, - BlockKind::CyanCandleCake => true, - BlockKind::EmeraldBlock => true, - BlockKind::DarkOakFence => true, - BlockKind::PrismarineWall => true, - BlockKind::PinkConcretePowder => true, - BlockKind::AcaciaPlanks => true, - BlockKind::OrangeGlazedTerracotta => true, - BlockKind::CrimsonFence => true, + BlockKind::TrappedChest => true, + BlockKind::LightWeightedPressurePlate => false, + BlockKind::HeavyWeightedPressurePlate => false, + BlockKind::Comparator => true, + BlockKind::DaylightDetector => true, + BlockKind::RedstoneBlock => true, + BlockKind::NetherQuartzOre => true, + BlockKind::Hopper => true, + BlockKind::QuartzBlock => true, + BlockKind::ChiseledQuartzBlock => true, + BlockKind::QuartzPillar => true, + BlockKind::QuartzStairs => true, + BlockKind::ActivatorRail => false, + BlockKind::Dropper => true, + BlockKind::WhiteTerracotta => true, + BlockKind::OrangeTerracotta => true, + BlockKind::MagentaTerracotta => true, + BlockKind::LightBlueTerracotta => true, BlockKind::YellowTerracotta => true, - BlockKind::Andesite => true, - BlockKind::CutCopperStairs => true, + BlockKind::LimeTerracotta => true, + BlockKind::PinkTerracotta => true, + BlockKind::GrayTerracotta => true, + BlockKind::LightGrayTerracotta => true, + BlockKind::CyanTerracotta => true, + BlockKind::PurpleTerracotta => true, + BlockKind::BlueTerracotta => true, + BlockKind::BrownTerracotta => true, + BlockKind::GreenTerracotta => true, + BlockKind::RedTerracotta => true, + BlockKind::BlackTerracotta => true, + BlockKind::WhiteStainedGlassPane => true, + BlockKind::OrangeStainedGlassPane => true, + BlockKind::MagentaStainedGlassPane => true, + BlockKind::LightBlueStainedGlassPane => true, + BlockKind::YellowStainedGlassPane => true, + BlockKind::LimeStainedGlassPane => true, + BlockKind::PinkStainedGlassPane => true, + BlockKind::GrayStainedGlassPane => true, + BlockKind::LightGrayStainedGlassPane => true, + BlockKind::CyanStainedGlassPane => true, + BlockKind::PurpleStainedGlassPane => true, + BlockKind::BlueStainedGlassPane => true, + BlockKind::BrownStainedGlassPane => true, + BlockKind::GreenStainedGlassPane => true, + BlockKind::RedStainedGlassPane => true, + BlockKind::BlackStainedGlassPane => true, + BlockKind::AcaciaStairs => true, + BlockKind::DarkOakStairs => true, + BlockKind::SlimeBlock => true, + BlockKind::Barrier => true, + BlockKind::Light => false, + BlockKind::IronTrapdoor => true, + BlockKind::Prismarine => true, + BlockKind::PrismarineBricks => true, + BlockKind::DarkPrismarine => true, + BlockKind::PrismarineStairs => true, + BlockKind::PrismarineBrickStairs => true, + BlockKind::DarkPrismarineStairs => true, BlockKind::PrismarineSlab => true, - BlockKind::CobblestoneWall => true, + BlockKind::PrismarineBrickSlab => true, + BlockKind::DarkPrismarineSlab => true, + BlockKind::SeaLantern => true, + BlockKind::HayBlock => true, + BlockKind::WhiteCarpet => true, + BlockKind::OrangeCarpet => true, + BlockKind::MagentaCarpet => true, + BlockKind::LightBlueCarpet => true, + BlockKind::YellowCarpet => true, + BlockKind::LimeCarpet => true, + BlockKind::PinkCarpet => true, + BlockKind::GrayCarpet => true, + BlockKind::LightGrayCarpet => true, + BlockKind::CyanCarpet => true, + BlockKind::PurpleCarpet => true, + BlockKind::BlueCarpet => true, + BlockKind::BrownCarpet => true, + BlockKind::GreenCarpet => true, + BlockKind::RedCarpet => true, + BlockKind::BlackCarpet => true, + BlockKind::Terracotta => true, + BlockKind::CoalBlock => true, + BlockKind::PackedIce => true, + BlockKind::Sunflower => false, + BlockKind::Lilac => false, + BlockKind::RoseBush => false, + BlockKind::Peony => false, + BlockKind::TallGrass => false, + BlockKind::LargeFern => false, + BlockKind::WhiteBanner => false, + BlockKind::OrangeBanner => false, + BlockKind::MagentaBanner => false, + BlockKind::LightBlueBanner => false, + BlockKind::YellowBanner => false, + BlockKind::LimeBanner => false, + BlockKind::PinkBanner => false, + BlockKind::GrayBanner => false, + BlockKind::LightGrayBanner => false, + BlockKind::CyanBanner => false, + BlockKind::PurpleBanner => false, + BlockKind::BlueBanner => false, + BlockKind::BrownBanner => false, + BlockKind::GreenBanner => false, + BlockKind::RedBanner => false, BlockKind::BlackBanner => false, - BlockKind::EndStoneBrickSlab => true, - BlockKind::WarpedTrapdoor => true, - BlockKind::RedNetherBrickWall => true, - BlockKind::WarpedDoor => true, - BlockKind::RedstoneTorch => false, - BlockKind::StoneBricks => true, - BlockKind::WaxedExposedCutCopperSlab => true, - BlockKind::Cocoa => true, - BlockKind::BirchSign => false, - BlockKind::Jukebox => true, - BlockKind::SoulLantern => true, - BlockKind::PottedAcaciaSapling => true, - BlockKind::Basalt => true, - BlockKind::QuartzStairs => true, - BlockKind::SoulFire => false, - BlockKind::Farmland => true, - BlockKind::LightWeightedPressurePlate => false, - BlockKind::BlackstoneWall => true, - BlockKind::PolishedDeepslateSlab => true, - BlockKind::PistonHead => true, + BlockKind::WhiteWallBanner => false, + BlockKind::OrangeWallBanner => false, BlockKind::MagentaWallBanner => false, - BlockKind::AcaciaStairs => true, - BlockKind::DeepslateRedstoneOre => true, - BlockKind::JungleSapling => false, - BlockKind::PurpurStairs => true, - BlockKind::MossyCobblestone => true, - BlockKind::DeadHornCoral => false, - BlockKind::PolishedAndesiteStairs => true, - BlockKind::LightBlueShulkerBox => true, - BlockKind::SpruceTrapdoor => true, - BlockKind::WarpedPressurePlate => false, - BlockKind::RedBed => true, - BlockKind::DeadFireCoral => false, - BlockKind::PolishedBlackstoneBrickSlab => true, - BlockKind::OakWallSign => false, - BlockKind::LightBlueCandleCake => true, - BlockKind::DarkOakWood => true, - BlockKind::SkeletonSkull => true, - BlockKind::Beetroots => false, - BlockKind::DeadBubbleCoralBlock => true, - BlockKind::GrayCandle => true, - BlockKind::FireCoralWallFan => false, + BlockKind::LightBlueWallBanner => false, + BlockKind::YellowWallBanner => false, BlockKind::LimeWallBanner => false, - BlockKind::WarpedStem => true, + BlockKind::PinkWallBanner => false, + BlockKind::GrayWallBanner => false, + BlockKind::LightGrayWallBanner => false, + BlockKind::CyanWallBanner => false, + BlockKind::PurpleWallBanner => false, + BlockKind::BlueWallBanner => false, + BlockKind::BrownWallBanner => false, + BlockKind::GreenWallBanner => false, + BlockKind::RedWallBanner => false, + BlockKind::BlackWallBanner => false, + BlockKind::RedSandstone => true, + BlockKind::ChiseledRedSandstone => true, + BlockKind::CutRedSandstone => true, + BlockKind::RedSandstoneStairs => true, + BlockKind::OakSlab => true, + BlockKind::SpruceSlab => true, + BlockKind::BirchSlab => true, + BlockKind::JungleSlab => true, + BlockKind::AcaciaSlab => true, + BlockKind::DarkOakSlab => true, + BlockKind::StoneSlab => true, + BlockKind::SmoothStoneSlab => true, + BlockKind::SandstoneSlab => true, + BlockKind::CutSandstoneSlab => true, + BlockKind::PetrifiedOakSlab => true, + BlockKind::CobblestoneSlab => true, + BlockKind::BrickSlab => true, + BlockKind::StoneBrickSlab => true, + BlockKind::NetherBrickSlab => true, + BlockKind::QuartzSlab => true, + BlockKind::RedSandstoneSlab => true, + BlockKind::CutRedSandstoneSlab => true, + BlockKind::PurpurSlab => true, + BlockKind::SmoothStone => true, + BlockKind::SmoothSandstone => true, + BlockKind::SmoothQuartz => true, + BlockKind::SmoothRedSandstone => true, + BlockKind::SpruceFenceGate => true, + BlockKind::BirchFenceGate => true, + BlockKind::JungleFenceGate => true, + BlockKind::AcaciaFenceGate => true, + BlockKind::DarkOakFenceGate => true, + BlockKind::SpruceFence => true, + BlockKind::BirchFence => true, + BlockKind::JungleFence => true, + BlockKind::AcaciaFence => true, + BlockKind::DarkOakFence => true, + BlockKind::SpruceDoor => true, + BlockKind::BirchDoor => true, + BlockKind::JungleDoor => true, + BlockKind::AcaciaDoor => true, BlockKind::DarkOakDoor => true, - BlockKind::BlackGlazedTerracotta => true, - BlockKind::WitherSkeletonWallSkull => true, - BlockKind::DioriteWall => true, - BlockKind::Torch => false, - BlockKind::SeaPickle => true, - BlockKind::JungleWood => true, - BlockKind::LightGrayConcretePowder => true, - BlockKind::BrainCoralFan => false, - BlockKind::DarkOakTrapdoor => true, - BlockKind::CobbledDeepslateWall => true, - BlockKind::LimeBed => true, - BlockKind::PinkTulip => false, + BlockKind::EndRod => true, BlockKind::ChorusPlant => true, - BlockKind::PinkBanner => false, - BlockKind::SmoothRedSandstone => true, - BlockKind::PolishedBlackstoneWall => true, - BlockKind::BoneBlock => true, - BlockKind::OxidizedCutCopperSlab => true, - BlockKind::SmoothQuartzStairs => true, + BlockKind::ChorusFlower => true, + BlockKind::PurpurBlock => true, BlockKind::PurpurPillar => true, - BlockKind::PottedAllium => true, - BlockKind::CaveVines => false, - BlockKind::DarkPrismarineStairs => true, - BlockKind::LimeStainedGlassPane => true, - BlockKind::CoalOre => true, - BlockKind::OakWood => true, - BlockKind::Cake => true, - BlockKind::Campfire => true, - BlockKind::PottedCornflower => true, - BlockKind::OakTrapdoor => true, - BlockKind::HornCoralBlock => true, - BlockKind::Grass => false, - BlockKind::LimeConcrete => true, - BlockKind::CutRedSandstone => true, - BlockKind::CryingObsidian => true, - BlockKind::WaxedCopperBlock => true, - BlockKind::WarpedNylium => true, - BlockKind::HoneyBlock => true, - BlockKind::RedWallBanner => false, - BlockKind::ChiseledRedSandstone => true, - BlockKind::Wheat => false, - BlockKind::BrickStairs => true, - BlockKind::DeepslateDiamondOre => true, + BlockKind::PurpurStairs => true, + BlockKind::EndStoneBricks => true, + BlockKind::Beetroots => false, + BlockKind::DirtPath => true, + BlockKind::EndGateway => false, + BlockKind::RepeatingCommandBlock => true, + BlockKind::ChainCommandBlock => true, + BlockKind::FrostedIce => true, + BlockKind::MagmaBlock => true, + BlockKind::NetherWartBlock => true, + BlockKind::RedNetherBricks => true, + BlockKind::BoneBlock => true, + BlockKind::StructureVoid => false, + BlockKind::Observer => true, + BlockKind::ShulkerBox => true, + BlockKind::WhiteShulkerBox => true, + BlockKind::OrangeShulkerBox => true, + BlockKind::MagentaShulkerBox => true, + BlockKind::LightBlueShulkerBox => true, + BlockKind::YellowShulkerBox => true, + BlockKind::LimeShulkerBox => true, + BlockKind::PinkShulkerBox => true, + BlockKind::GrayShulkerBox => true, + BlockKind::LightGrayShulkerBox => true, + BlockKind::CyanShulkerBox => true, + BlockKind::PurpleShulkerBox => true, + BlockKind::BlueShulkerBox => true, + BlockKind::BrownShulkerBox => true, + BlockKind::GreenShulkerBox => true, + BlockKind::RedShulkerBox => true, + BlockKind::BlackShulkerBox => true, + BlockKind::WhiteGlazedTerracotta => true, + BlockKind::OrangeGlazedTerracotta => true, + BlockKind::MagentaGlazedTerracotta => true, + BlockKind::LightBlueGlazedTerracotta => true, + BlockKind::YellowGlazedTerracotta => true, + BlockKind::LimeGlazedTerracotta => true, + BlockKind::PinkGlazedTerracotta => true, + BlockKind::GrayGlazedTerracotta => true, + BlockKind::LightGrayGlazedTerracotta => true, + BlockKind::CyanGlazedTerracotta => true, + BlockKind::PurpleGlazedTerracotta => true, + BlockKind::BlueGlazedTerracotta => true, + BlockKind::BrownGlazedTerracotta => true, BlockKind::GreenGlazedTerracotta => true, - BlockKind::Bookshelf => true, - BlockKind::GraniteWall => true, - BlockKind::InfestedDeepslate => true, - BlockKind::NoteBlock => true, - BlockKind::LimeCandle => true, - BlockKind::BlueIce => true, - BlockKind::DeadBrainCoralFan => false, - BlockKind::SoulTorch => false, - BlockKind::SpruceDoor => true, + BlockKind::RedGlazedTerracotta => true, + BlockKind::BlackGlazedTerracotta => true, + BlockKind::WhiteConcrete => true, + BlockKind::OrangeConcrete => true, + BlockKind::MagentaConcrete => true, + BlockKind::LightBlueConcrete => true, + BlockKind::YellowConcrete => true, + BlockKind::LimeConcrete => true, + BlockKind::PinkConcrete => true, + BlockKind::GrayConcrete => true, + BlockKind::LightGrayConcrete => true, + BlockKind::CyanConcrete => true, + BlockKind::PurpleConcrete => true, + BlockKind::BlueConcrete => true, + BlockKind::BrownConcrete => true, + BlockKind::GreenConcrete => true, + BlockKind::RedConcrete => true, + BlockKind::BlackConcrete => true, + BlockKind::WhiteConcretePowder => true, + BlockKind::OrangeConcretePowder => true, + BlockKind::MagentaConcretePowder => true, + BlockKind::LightBlueConcretePowder => true, + BlockKind::YellowConcretePowder => true, + BlockKind::LimeConcretePowder => true, + BlockKind::PinkConcretePowder => true, + BlockKind::GrayConcretePowder => true, + BlockKind::LightGrayConcretePowder => true, + BlockKind::CyanConcretePowder => true, + BlockKind::PurpleConcretePowder => true, + BlockKind::BlueConcretePowder => true, + BlockKind::BrownConcretePowder => true, + BlockKind::GreenConcretePowder => true, + BlockKind::RedConcretePowder => true, + BlockKind::BlackConcretePowder => true, + BlockKind::Kelp => false, + BlockKind::KelpPlant => false, + BlockKind::DriedKelpBlock => true, + BlockKind::TurtleEgg => true, + BlockKind::DeadTubeCoralBlock => true, + BlockKind::DeadBrainCoralBlock => true, + BlockKind::DeadBubbleCoralBlock => true, + BlockKind::DeadFireCoralBlock => true, BlockKind::DeadHornCoralBlock => true, - BlockKind::PointedDripstone => true, - BlockKind::Dropper => true, - BlockKind::ChiseledSandstone => true, + BlockKind::TubeCoralBlock => true, + BlockKind::BrainCoralBlock => true, + BlockKind::BubbleCoralBlock => true, BlockKind::FireCoralBlock => true, - BlockKind::MossyStoneBrickSlab => true, - BlockKind::WaxedWeatheredCutCopper => true, - BlockKind::PinkStainedGlassPane => true, + BlockKind::HornCoralBlock => true, + BlockKind::DeadTubeCoral => false, + BlockKind::DeadBrainCoral => false, + BlockKind::DeadBubbleCoral => false, + BlockKind::DeadFireCoral => false, + BlockKind::DeadHornCoral => false, + BlockKind::TubeCoral => false, BlockKind::BrainCoral => false, - BlockKind::OakSapling => false, - BlockKind::PottedJungleSapling => true, - BlockKind::DarkOakWallSign => false, - BlockKind::RedstoneWallTorch => false, - BlockKind::BubbleCoralFan => false, - BlockKind::OrangeCandle => true, - BlockKind::DeadHornCoralFan => false, - BlockKind::DarkPrismarineSlab => true, - BlockKind::Air => false, - BlockKind::CrackedStoneBricks => true, - BlockKind::Ice => true, - BlockKind::WaxedCutCopper => true, - BlockKind::RedWool => true, - BlockKind::CartographyTable => true, + BlockKind::BubbleCoral => false, BlockKind::FireCoral => false, - BlockKind::RedBanner => false, + BlockKind::HornCoral => false, + BlockKind::DeadTubeCoralFan => false, + BlockKind::DeadBrainCoralFan => false, + BlockKind::DeadBubbleCoralFan => false, + BlockKind::DeadFireCoralFan => false, + BlockKind::DeadHornCoralFan => false, + BlockKind::TubeCoralFan => false, + BlockKind::BrainCoralFan => false, + BlockKind::BubbleCoralFan => false, + BlockKind::FireCoralFan => false, + BlockKind::HornCoralFan => false, + BlockKind::DeadTubeCoralWallFan => false, + BlockKind::DeadBrainCoralWallFan => false, + BlockKind::DeadBubbleCoralWallFan => false, + BlockKind::DeadFireCoralWallFan => false, + BlockKind::DeadHornCoralWallFan => false, + BlockKind::TubeCoralWallFan => false, + BlockKind::BrainCoralWallFan => false, + BlockKind::BubbleCoralWallFan => false, + BlockKind::FireCoralWallFan => false, + BlockKind::HornCoralWallFan => false, + BlockKind::SeaPickle => true, + BlockKind::BlueIce => true, + BlockKind::Conduit => true, + BlockKind::BambooSapling => false, + BlockKind::Bamboo => true, + BlockKind::PottedBamboo => true, + BlockKind::VoidAir => false, + BlockKind::CaveAir => false, + BlockKind::BubbleColumn => false, + BlockKind::PolishedGraniteStairs => true, + BlockKind::SmoothRedSandstoneStairs => true, + BlockKind::MossyStoneBrickStairs => true, + BlockKind::PolishedDioriteStairs => true, + BlockKind::MossyCobblestoneStairs => true, + BlockKind::EndStoneBrickStairs => true, + BlockKind::StoneStairs => true, + BlockKind::SmoothSandstoneStairs => true, + BlockKind::SmoothQuartzStairs => true, + BlockKind::GraniteStairs => true, + BlockKind::AndesiteStairs => true, + BlockKind::RedNetherBrickStairs => true, + BlockKind::PolishedAndesiteStairs => true, + BlockKind::DioriteStairs => true, + BlockKind::PolishedGraniteSlab => true, + BlockKind::SmoothRedSandstoneSlab => true, + BlockKind::MossyStoneBrickSlab => true, + BlockKind::PolishedDioriteSlab => true, + BlockKind::MossyCobblestoneSlab => true, + BlockKind::EndStoneBrickSlab => true, + BlockKind::SmoothSandstoneSlab => true, + BlockKind::SmoothQuartzSlab => true, + BlockKind::GraniteSlab => true, + BlockKind::AndesiteSlab => true, + BlockKind::RedNetherBrickSlab => true, + BlockKind::PolishedAndesiteSlab => true, + BlockKind::DioriteSlab => true, + BlockKind::BrickWall => true, + BlockKind::PrismarineWall => true, + BlockKind::RedSandstoneWall => true, + BlockKind::MossyStoneBrickWall => true, + BlockKind::GraniteWall => true, + BlockKind::StoneBrickWall => true, + BlockKind::NetherBrickWall => true, + BlockKind::AndesiteWall => true, + BlockKind::RedNetherBrickWall => true, + BlockKind::SandstoneWall => true, + BlockKind::EndStoneBrickWall => true, + BlockKind::DioriteWall => true, + BlockKind::Scaffolding => true, BlockKind::Loom => true, - BlockKind::BlueOrchid => false, - BlockKind::RedTulip => false, - BlockKind::DarkOakLeaves => true, - BlockKind::BirchWallSign => false, - BlockKind::TurtleEgg => true, - BlockKind::OakFenceGate => true, - BlockKind::PurpurSlab => true, - BlockKind::GrassBlock => true, - BlockKind::PottedFern => true, - BlockKind::BlueConcretePowder => true, - BlockKind::WaxedOxidizedCutCopper => true, - BlockKind::Rail => false, + BlockKind::Barrel => true, + BlockKind::Smoker => true, + BlockKind::BlastFurnace => true, + BlockKind::CartographyTable => true, + BlockKind::FletchingTable => true, + BlockKind::Grindstone => true, + BlockKind::Lectern => true, + BlockKind::SmithingTable => true, + BlockKind::Stonecutter => true, + BlockKind::Bell => true, + BlockKind::Lantern => true, + BlockKind::SoulLantern => true, + BlockKind::Campfire => true, + BlockKind::SoulCampfire => true, + BlockKind::SweetBerryBush => false, + BlockKind::WarpedStem => true, + BlockKind::StrippedWarpedStem => true, + BlockKind::WarpedHyphae => true, + BlockKind::StrippedWarpedHyphae => true, + BlockKind::WarpedNylium => true, + BlockKind::WarpedFungus => false, + BlockKind::WarpedWartBlock => true, + BlockKind::WarpedRoots => false, + BlockKind::NetherSprouts => false, + BlockKind::CrimsonStem => true, + BlockKind::StrippedCrimsonStem => true, + BlockKind::CrimsonHyphae => true, + BlockKind::StrippedCrimsonHyphae => true, + BlockKind::CrimsonNylium => true, + BlockKind::CrimsonFungus => false, + BlockKind::Shroomlight => true, + BlockKind::WeepingVines => false, + BlockKind::WeepingVinesPlant => false, + BlockKind::TwistingVines => false, + BlockKind::TwistingVinesPlant => false, + BlockKind::CrimsonRoots => false, + BlockKind::CrimsonPlanks => true, + BlockKind::WarpedPlanks => true, BlockKind::CrimsonSlab => true, - BlockKind::OakPlanks => true, - BlockKind::LightBlueWool => true, - BlockKind::StickyPiston => true, - BlockKind::PottedPinkTulip => true, - BlockKind::Granite => true, - BlockKind::IronTrapdoor => true, - BlockKind::DarkOakPressurePlate => false, - BlockKind::SeaLantern => true, BlockKind::WarpedSlab => true, - BlockKind::Poppy => false, - BlockKind::Peony => false, - BlockKind::CopperBlock => true, - BlockKind::JungleDoor => true, - BlockKind::DarkOakSlab => true, - BlockKind::DarkOakStairs => true, - BlockKind::OrangeWool => true, - BlockKind::Piston => true, - BlockKind::GrayGlazedTerracotta => true, - BlockKind::PinkWool => true, - BlockKind::BubbleCoralBlock => true, + BlockKind::CrimsonPressurePlate => false, + BlockKind::WarpedPressurePlate => false, + BlockKind::CrimsonFence => true, + BlockKind::WarpedFence => true, + BlockKind::CrimsonTrapdoor => true, + BlockKind::WarpedTrapdoor => true, + BlockKind::CrimsonFenceGate => true, + BlockKind::WarpedFenceGate => true, + BlockKind::CrimsonStairs => true, + BlockKind::WarpedStairs => true, + BlockKind::CrimsonButton => false, + BlockKind::WarpedButton => false, + BlockKind::CrimsonDoor => true, + BlockKind::WarpedDoor => true, + BlockKind::CrimsonSign => false, + BlockKind::WarpedSign => false, BlockKind::CrimsonWallSign => false, - BlockKind::FrostedIce => true, - BlockKind::LightGrayBanner => false, - BlockKind::DeadFireCoralBlock => true, - BlockKind::WarpedHyphae => true, - BlockKind::Obsidian => true, - BlockKind::Fire => false, - BlockKind::InfestedCobblestone => true, - BlockKind::LightBlueWallBanner => false, - BlockKind::WhiteConcrete => true, - BlockKind::DeadBubbleCoralFan => false, + BlockKind::WarpedWallSign => false, + BlockKind::StructureBlock => true, + BlockKind::Jigsaw => true, + BlockKind::Composter => true, + BlockKind::Target => true, + BlockKind::BeeNest => true, + BlockKind::Beehive => true, + BlockKind::HoneyBlock => true, + BlockKind::HoneycombBlock => true, + BlockKind::NetheriteBlock => true, + BlockKind::AncientDebris => true, + BlockKind::CryingObsidian => true, + BlockKind::RespawnAnchor => true, + BlockKind::PottedCrimsonFungus => true, + BlockKind::PottedWarpedFungus => true, + BlockKind::PottedCrimsonRoots => true, + BlockKind::PottedWarpedRoots => true, + BlockKind::Lodestone => true, + BlockKind::Blackstone => true, + BlockKind::BlackstoneStairs => true, + BlockKind::BlackstoneWall => true, + BlockKind::BlackstoneSlab => true, + BlockKind::PolishedBlackstone => true, BlockKind::PolishedBlackstoneBricks => true, - BlockKind::BlackTerracotta => true, - BlockKind::TwistingVinesPlant => false, - BlockKind::LimeCarpet => true, - BlockKind::WhiteGlazedTerracotta => true, - BlockKind::Cornflower => false, - BlockKind::PolishedDiorite => true, - BlockKind::BrownBanner => false, - BlockKind::SculkSensor => true, - BlockKind::DarkOakSapling => false, - BlockKind::BirchDoor => true, - BlockKind::RedCandleCake => true, - BlockKind::Azalea => true, - BlockKind::JungleLeaves => true, - BlockKind::MagentaStainedGlassPane => true, - BlockKind::RedConcrete => true, - BlockKind::RawGoldBlock => true, - BlockKind::WallTorch => false, - BlockKind::NetherBrickWall => true, - BlockKind::SpruceWallSign => false, - BlockKind::WarpedPlanks => true, - BlockKind::AzureBluet => false, - BlockKind::Potatoes => false, - BlockKind::OrangeTerracotta => true, - BlockKind::SmoothRedSandstoneStairs => true, - BlockKind::GreenCandleCake => true, - BlockKind::MagentaStainedGlass => true, - BlockKind::Lava => false, - BlockKind::PottedDandelion => true, - BlockKind::CommandBlock => true, - BlockKind::GreenConcrete => true, - BlockKind::ZombieWallHead => true, BlockKind::CrackedPolishedBlackstoneBricks => true, - BlockKind::PottedAzaleaBush => true, - BlockKind::InfestedStoneBricks => true, - BlockKind::MagentaShulkerBox => true, - BlockKind::TwistingVines => false, - BlockKind::BrownCandleCake => true, - BlockKind::AmethystBlock => true, - BlockKind::DeadHornCoralWallFan => false, - BlockKind::SandstoneSlab => true, - BlockKind::TrappedChest => true, - BlockKind::DripstoneBlock => true, - BlockKind::MagentaWool => true, - BlockKind::MossyCobblestoneWall => true, - BlockKind::EnchantingTable => true, - BlockKind::SmoothSandstoneSlab => true, - BlockKind::PrismarineStairs => true, - BlockKind::CraftingTable => true, - BlockKind::IronOre => true, - BlockKind::PurpleShulkerBox => true, - BlockKind::OakSlab => true, - BlockKind::Composter => true, - BlockKind::Dirt => true, - BlockKind::PoweredRail => false, - BlockKind::CaveVinesPlant => false, - BlockKind::TallSeagrass => false, - BlockKind::GreenBanner => false, - BlockKind::OrangeStainedGlass => true, - BlockKind::TubeCoralWallFan => false, + BlockKind::ChiseledPolishedBlackstone => true, + BlockKind::PolishedBlackstoneBrickSlab => true, + BlockKind::PolishedBlackstoneBrickStairs => true, + BlockKind::PolishedBlackstoneBrickWall => true, + BlockKind::GildedBlackstone => true, BlockKind::PolishedBlackstoneStairs => true, - BlockKind::BlackstoneStairs => true, - BlockKind::HeavyWeightedPressurePlate => false, - BlockKind::BrainCoralWallFan => false, + BlockKind::PolishedBlackstoneSlab => true, + BlockKind::PolishedBlackstonePressurePlate => false, + BlockKind::PolishedBlackstoneButton => false, + BlockKind::PolishedBlackstoneWall => true, + BlockKind::ChiseledNetherBricks => true, + BlockKind::CrackedNetherBricks => true, BlockKind::QuartzBricks => true, - BlockKind::DarkOakFenceGate => true, - BlockKind::SoulCampfire => true, - BlockKind::BirchStairs => true, - BlockKind::FireCoralFan => false, - BlockKind::BlueShulkerBox => true, - BlockKind::OrangeTulip => false, - BlockKind::BrownStainedGlassPane => true, - BlockKind::Podzol => true, - BlockKind::BrownWallBanner => false, - BlockKind::DeepslateTileStairs => true, - BlockKind::EndPortal => false, - BlockKind::BrownShulkerBox => true, - BlockKind::CyanWallBanner => false, + BlockKind::Candle => true, + BlockKind::WhiteCandle => true, + BlockKind::OrangeCandle => true, + BlockKind::MagentaCandle => true, + BlockKind::LightBlueCandle => true, + BlockKind::YellowCandle => true, + BlockKind::LimeCandle => true, + BlockKind::PinkCandle => true, + BlockKind::GrayCandle => true, + BlockKind::LightGrayCandle => true, + BlockKind::CyanCandle => true, + BlockKind::PurpleCandle => true, + BlockKind::BlueCandle => true, + BlockKind::BrownCandle => true, + BlockKind::GreenCandle => true, + BlockKind::RedCandle => true, + BlockKind::BlackCandle => true, + BlockKind::CandleCake => true, + BlockKind::WhiteCandleCake => true, + BlockKind::OrangeCandleCake => true, + BlockKind::MagentaCandleCake => true, + BlockKind::LightBlueCandleCake => true, + BlockKind::YellowCandleCake => true, + BlockKind::LimeCandleCake => true, + BlockKind::PinkCandleCake => true, + BlockKind::GrayCandleCake => true, + BlockKind::LightGrayCandleCake => true, + BlockKind::CyanCandleCake => true, BlockKind::PurpleCandleCake => true, - BlockKind::BlackConcrete => true, - BlockKind::PumpkinStem => false, - BlockKind::OakButton => false, - BlockKind::OrangeCarpet => true, - BlockKind::WhiteTerracotta => true, - BlockKind::BirchFence => true, - BlockKind::Shroomlight => true, - BlockKind::ZombieHead => true, - BlockKind::Deepslate => true, - BlockKind::Seagrass => false, - BlockKind::PurpurBlock => true, - BlockKind::DeepslateBrickSlab => true, - BlockKind::Hopper => true, - BlockKind::HornCoralWallFan => false, - BlockKind::WaxedWeatheredCopper => true, + BlockKind::BlueCandleCake => true, + BlockKind::BrownCandleCake => true, + BlockKind::GreenCandleCake => true, + BlockKind::RedCandleCake => true, + BlockKind::BlackCandleCake => true, + BlockKind::AmethystBlock => true, + BlockKind::BuddingAmethyst => true, + BlockKind::AmethystCluster => true, + BlockKind::LargeAmethystBud => true, + BlockKind::MediumAmethystBud => true, + BlockKind::SmallAmethystBud => true, + BlockKind::Tuff => true, + BlockKind::Calcite => true, + BlockKind::TintedGlass => true, + BlockKind::PowderSnow => false, + BlockKind::SculkSensor => true, BlockKind::OxidizedCopper => true, - BlockKind::LapisOre => true, - BlockKind::BlueBed => true, - BlockKind::LightGrayStainedGlassPane => true, - BlockKind::EndGateway => false, - BlockKind::CrackedNetherBricks => true, - BlockKind::Sand => true, - BlockKind::BrickSlab => true, - BlockKind::SpruceWood => true, - BlockKind::BlueWallBanner => false, - BlockKind::YellowConcretePowder => true, - BlockKind::HoneycombBlock => true, - BlockKind::YellowConcrete => true, - BlockKind::CyanCarpet => true, - BlockKind::DeadTubeCoralWallFan => false, - BlockKind::JungleButton => false, - BlockKind::QuartzSlab => true, - BlockKind::RedNetherBrickStairs => true, - BlockKind::MagentaBed => true, - BlockKind::AzaleaLeaves => true, - BlockKind::MossyStoneBricks => true, - BlockKind::BlackBed => true, - BlockKind::JungleSign => false, - BlockKind::EnderChest => true, - BlockKind::Lectern => true, - BlockKind::ActivatorRail => false, - BlockKind::RedstoneOre => true, - BlockKind::BlueWool => true, - BlockKind::GrayCandleCake => true, - BlockKind::WhiteCandleCake => true, - BlockKind::RedShulkerBox => true, + BlockKind::WeatheredCopper => true, + BlockKind::ExposedCopper => true, + BlockKind::CopperBlock => true, + BlockKind::CopperOre => true, + BlockKind::DeepslateCopperOre => true, + BlockKind::OxidizedCutCopper => true, + BlockKind::WeatheredCutCopper => true, + BlockKind::ExposedCutCopper => true, + BlockKind::CutCopper => true, + BlockKind::OxidizedCutCopperStairs => true, + BlockKind::WeatheredCutCopperStairs => true, + BlockKind::ExposedCutCopperStairs => true, + BlockKind::CutCopperStairs => true, + BlockKind::OxidizedCutCopperSlab => true, + BlockKind::WeatheredCutCopperSlab => true, + BlockKind::ExposedCutCopperSlab => true, + BlockKind::CutCopperSlab => true, + BlockKind::WaxedCopperBlock => true, + BlockKind::WaxedWeatheredCopper => true, + BlockKind::WaxedExposedCopper => true, + BlockKind::WaxedOxidizedCopper => true, + BlockKind::WaxedOxidizedCutCopper => true, + BlockKind::WaxedWeatheredCutCopper => true, + BlockKind::WaxedExposedCutCopper => true, + BlockKind::WaxedCutCopper => true, + BlockKind::WaxedOxidizedCutCopperStairs => true, + BlockKind::WaxedWeatheredCutCopperStairs => true, + BlockKind::WaxedExposedCutCopperStairs => true, + BlockKind::WaxedCutCopperStairs => true, + BlockKind::WaxedOxidizedCutCopperSlab => true, + BlockKind::WaxedWeatheredCutCopperSlab => true, + BlockKind::WaxedExposedCutCopperSlab => true, + BlockKind::WaxedCutCopperSlab => true, + BlockKind::LightningRod => true, + BlockKind::PointedDripstone => true, + BlockKind::DripstoneBlock => true, + BlockKind::CaveVines => false, + BlockKind::CaveVinesPlant => false, + BlockKind::SporeBlossom => false, + BlockKind::Azalea => true, + BlockKind::FloweringAzalea => true, + BlockKind::MossCarpet => true, + BlockKind::MossBlock => true, + BlockKind::BigDripleaf => true, + BlockKind::BigDripleafStem => false, + BlockKind::SmallDripleaf => false, + BlockKind::HangingRoots => false, + BlockKind::RootedDirt => true, + BlockKind::Deepslate => true, + BlockKind::CobbledDeepslate => true, + BlockKind::CobbledDeepslateStairs => true, + BlockKind::CobbledDeepslateSlab => true, + BlockKind::CobbledDeepslateWall => true, + BlockKind::PolishedDeepslate => true, + BlockKind::PolishedDeepslateStairs => true, + BlockKind::PolishedDeepslateSlab => true, + BlockKind::PolishedDeepslateWall => true, + BlockKind::DeepslateTiles => true, + BlockKind::DeepslateTileStairs => true, + BlockKind::DeepslateTileSlab => true, BlockKind::DeepslateTileWall => true, - BlockKind::InfestedStone => true, - BlockKind::CutCopperSlab => true, - BlockKind::Sandstone => true, - BlockKind::RedstoneWire => false, - BlockKind::BrownTerracotta => true, - BlockKind::WarpedSign => false, - BlockKind::ExposedCutCopper => true, - BlockKind::LightBlueConcretePowder => true, - BlockKind::PolishedBlackstoneBrickStairs => true, - BlockKind::CyanStainedGlass => true, - BlockKind::WaxedCutCopperStairs => true, - BlockKind::EmeraldOre => true, - BlockKind::BrickWall => true, - BlockKind::SmoothStoneSlab => true, - BlockKind::PolishedDioriteStairs => true, - BlockKind::DeadFireCoralWallFan => false, - BlockKind::BeeNest => true, - BlockKind::CyanBanner => false, - BlockKind::WhiteShulkerBox => true, - BlockKind::CrimsonRoots => false, - BlockKind::PottedWarpedFungus => true, - BlockKind::LimeCandleCake => true, - BlockKind::PottedWarpedRoots => true, - BlockKind::NetherGoldOre => true, - BlockKind::PottedWhiteTulip => true, - BlockKind::OrangeCandleCake => true, - BlockKind::YellowBanner => false, + BlockKind::DeepslateBricks => true, + BlockKind::DeepslateBrickStairs => true, + BlockKind::DeepslateBrickSlab => true, + BlockKind::DeepslateBrickWall => true, + BlockKind::ChiseledDeepslate => true, + BlockKind::CrackedDeepslateBricks => true, + BlockKind::CrackedDeepslateTiles => true, + BlockKind::InfestedDeepslate => true, + BlockKind::SmoothBasalt => true, + BlockKind::RawIronBlock => true, + BlockKind::RawCopperBlock => true, + BlockKind::RawGoldBlock => true, + BlockKind::PottedAzaleaBush => true, + BlockKind::PottedFloweringAzaleaBush => true, } } } @@ -17420,1340 +17420,1123 @@ impl BlockKind { #[inline] pub fn dig_multipliers(&self) -> &'static [(libcraft_items::Item, f32)] { match self { - BlockKind::BlueCandle => &[], + BlockKind::Air => &[], + BlockKind::Stone => &[], + BlockKind::Granite => &[], + BlockKind::PolishedGranite => &[], + BlockKind::Diorite => &[], + BlockKind::PolishedDiorite => &[], + BlockKind::Andesite => &[], + BlockKind::PolishedAndesite => &[], + BlockKind::GrassBlock => &[], + BlockKind::Dirt => &[], + BlockKind::CoarseDirt => &[], + BlockKind::Podzol => &[], + BlockKind::Cobblestone => &[], + BlockKind::OakPlanks => &[], + BlockKind::SprucePlanks => &[], + BlockKind::BirchPlanks => &[], + BlockKind::JunglePlanks => &[], + BlockKind::AcaciaPlanks => &[], + BlockKind::DarkOakPlanks => &[], + BlockKind::OakSapling => &[], BlockKind::SpruceSapling => &[], - BlockKind::BigDripleaf => &[], - BlockKind::RedBed => &[], - BlockKind::Farmland => &[], - BlockKind::GlassPane => &[], - BlockKind::Jigsaw => &[], - BlockKind::QuartzStairs => &[], - BlockKind::SpruceSign => &[], - BlockKind::Shroomlight => &[], - BlockKind::Tripwire => &[], - BlockKind::EndStoneBrickWall => &[], - BlockKind::Beetroots => &[], - BlockKind::BrownWallBanner => &[], - BlockKind::RedMushroom => &[], - BlockKind::PolishedBlackstoneWall => &[], - BlockKind::RedWool => &[], - BlockKind::Candle => &[], - BlockKind::BlackShulkerBox => &[], - BlockKind::Kelp => &[], - BlockKind::DeepslateTileSlab => &[], - BlockKind::Clay => &[], - BlockKind::WarpedHyphae => &[], - BlockKind::DeadBrainCoralBlock => &[], - BlockKind::WarpedNylium => &[], - BlockKind::Pumpkin => &[], - BlockKind::JungleTrapdoor => &[], - BlockKind::RedConcrete => &[], - BlockKind::NetheriteBlock => &[], - BlockKind::SpruceWood => &[], + BlockKind::BirchSapling => &[], + BlockKind::JungleSapling => &[], + BlockKind::AcaciaSapling => &[], + BlockKind::DarkOakSapling => &[], + BlockKind::Bedrock => &[], + BlockKind::Water => &[], + BlockKind::Lava => &[], + BlockKind::Sand => &[], + BlockKind::RedSand => &[], + BlockKind::Gravel => &[], + BlockKind::GoldOre => &[], + BlockKind::DeepslateGoldOre => &[], + BlockKind::IronOre => &[], + BlockKind::DeepslateIronOre => &[], + BlockKind::CoalOre => &[], + BlockKind::DeepslateCoalOre => &[], + BlockKind::NetherGoldOre => &[], + BlockKind::OakLog => &[], + BlockKind::SpruceLog => &[], + BlockKind::BirchLog => &[], + BlockKind::JungleLog => &[], + BlockKind::AcaciaLog => &[], + BlockKind::DarkOakLog => &[], + BlockKind::StrippedSpruceLog => &[], + BlockKind::StrippedBirchLog => &[], + BlockKind::StrippedJungleLog => &[], + BlockKind::StrippedAcaciaLog => &[], + BlockKind::StrippedDarkOakLog => &[], BlockKind::StrippedOakLog => &[], - BlockKind::LightBlueConcretePowder => &[], - BlockKind::MediumAmethystBud => &[], - BlockKind::WaxedWeatheredCutCopper => &[], - BlockKind::WarpedFungus => &[], - BlockKind::PottedFloweringAzaleaBush => &[], - BlockKind::GrayWallBanner => &[], - BlockKind::RedstoneOre => &[], + BlockKind::OakWood => &[], + BlockKind::SpruceWood => &[], + BlockKind::BirchWood => &[], + BlockKind::JungleWood => &[], + BlockKind::AcaciaWood => &[], + BlockKind::DarkOakWood => &[], + BlockKind::StrippedOakWood => &[], + BlockKind::StrippedSpruceWood => &[], + BlockKind::StrippedBirchWood => &[], + BlockKind::StrippedJungleWood => &[], + BlockKind::StrippedAcaciaWood => &[], + BlockKind::StrippedDarkOakWood => &[], + BlockKind::OakLeaves => &[], + BlockKind::SpruceLeaves => &[], + BlockKind::BirchLeaves => &[], + BlockKind::JungleLeaves => &[], + BlockKind::AcaciaLeaves => &[], BlockKind::DarkOakLeaves => &[], - BlockKind::WaxedOxidizedCopper => &[], - BlockKind::MossBlock => &[], - BlockKind::TubeCoralWallFan => &[], - BlockKind::DeadFireCoralFan => &[], - BlockKind::Sand => &[], - BlockKind::LapisOre => &[], + BlockKind::AzaleaLeaves => &[], + BlockKind::FloweringAzaleaLeaves => &[], + BlockKind::Sponge => &[], BlockKind::WetSponge => &[], - BlockKind::Barrier => &[], - BlockKind::Smoker => &[], - BlockKind::BrownCandleCake => &[], - BlockKind::MagmaBlock => &[], - BlockKind::BrainCoralBlock => &[], - BlockKind::Cauldron => &[], - BlockKind::ChiseledRedSandstone => &[], - BlockKind::CobblestoneSlab => &[], - BlockKind::NetherBricks => &[], + BlockKind::Glass => &[], + BlockKind::LapisOre => &[], + BlockKind::DeepslateLapisOre => &[], + BlockKind::LapisBlock => &[], + BlockKind::Dispenser => &[], BlockKind::Sandstone => &[], - BlockKind::StrippedCrimsonStem => &[], - BlockKind::LightBlueCandle => &[], - BlockKind::AzaleaLeaves => &[], - BlockKind::InfestedCrackedStoneBricks => &[], - BlockKind::PottedAllium => &[], - BlockKind::BlueCandleCake => &[], - BlockKind::GreenWool => &[], - BlockKind::CrimsonFenceGate => &[], - BlockKind::PurpleBanner => &[], - BlockKind::JunglePlanks => &[], - BlockKind::WaterCauldron => &[], - BlockKind::PinkCandleCake => &[], - BlockKind::LimeCandleCake => &[], - BlockKind::PointedDripstone => &[], - BlockKind::DioriteSlab => &[], - BlockKind::TubeCoralFan => &[], - BlockKind::OxidizedCutCopper => &[], - BlockKind::YellowBanner => &[], - BlockKind::TintedGlass => &[], - BlockKind::SpruceLog => &[], - BlockKind::BlackConcretePowder => &[], + BlockKind::ChiseledSandstone => &[], + BlockKind::CutSandstone => &[], + BlockKind::NoteBlock => &[], + BlockKind::WhiteBed => &[], + BlockKind::OrangeBed => &[], + BlockKind::MagentaBed => &[], BlockKind::LightBlueBed => &[], - BlockKind::RedSandstoneWall => &[], - BlockKind::Rail => &[], - BlockKind::JungleFence => &[], - BlockKind::DeepslateTiles => &[], - BlockKind::LightGrayGlazedTerracotta => &[], - BlockKind::SandstoneSlab => &[], - BlockKind::Melon => &[], - BlockKind::SkeletonWallSkull => &[], - BlockKind::Beacon => &[], - BlockKind::LightBlueShulkerBox => &[], - BlockKind::AcaciaLog => &[], - BlockKind::PinkShulkerBox => &[], - BlockKind::GrayStainedGlassPane => &[], - BlockKind::DarkPrismarine => &[], - BlockKind::Andesite => &[], - BlockKind::BrownMushroomBlock => &[], - BlockKind::WeatheredCutCopperStairs => &[], - BlockKind::RedTulip => &[], - BlockKind::Torch => &[], - BlockKind::BirchStairs => &[], - BlockKind::WarpedPressurePlate => &[], - BlockKind::MossyCobblestoneWall => &[], - BlockKind::GrayConcretePowder => &[], - BlockKind::RedConcretePowder => &[], - BlockKind::OrangeConcrete => &[], - BlockKind::SpruceFenceGate => &[], - BlockKind::BirchFenceGate => &[], - BlockKind::SmithingTable => &[], - BlockKind::SandstoneWall => &[], - BlockKind::YellowGlazedTerracotta => &[], - BlockKind::BirchFence => &[], - BlockKind::JungleDoor => &[], - BlockKind::PolishedBlackstoneBrickSlab => &[], - BlockKind::CrimsonFence => &[], - BlockKind::MagentaWallBanner => &[], - BlockKind::DarkOakWallSign => &[], - BlockKind::BirchSapling => &[], + BlockKind::YellowBed => &[], + BlockKind::LimeBed => &[], + BlockKind::PinkBed => &[], + BlockKind::GrayBed => &[], + BlockKind::LightGrayBed => &[], + BlockKind::CyanBed => &[], + BlockKind::PurpleBed => &[], + BlockKind::BlueBed => &[], + BlockKind::BrownBed => &[], + BlockKind::GreenBed => &[], + BlockKind::RedBed => &[], + BlockKind::BlackBed => &[], + BlockKind::PoweredRail => &[], + BlockKind::DetectorRail => &[], + BlockKind::StickyPiston => &[], + BlockKind::Cobweb => &[], + BlockKind::Grass => &[], + BlockKind::Fern => &[], + BlockKind::DeadBush => &[], BlockKind::Seagrass => &[], - BlockKind::WhiteWool => &[], - BlockKind::CyanWool => &[], - BlockKind::OakPlanks => &[], - BlockKind::SmoothSandstone => &[], - BlockKind::SprucePlanks => &[], - BlockKind::GreenConcrete => &[], - BlockKind::JungleSapling => &[], - BlockKind::Lectern => &[], - BlockKind::Bricks => &[], - BlockKind::LilyOfTheValley => &[], - BlockKind::LightGrayTerracotta => &[], + BlockKind::TallSeagrass => &[], BlockKind::Piston => &[], - BlockKind::PackedIce => &[], - BlockKind::SmoothStoneSlab => &[], - BlockKind::MossyStoneBrickSlab => &[], - BlockKind::DeepslateBrickWall => &[], - BlockKind::GrayCarpet => &[], - BlockKind::RedNetherBrickWall => &[], - BlockKind::OrangeCandle => &[], - BlockKind::GreenStainedGlass => &[], BlockKind::PistonHead => &[], - BlockKind::DeadBubbleCoralFan => &[], - BlockKind::NetherBrickSlab => &[], - BlockKind::GrayGlazedTerracotta => &[], - BlockKind::DeepslateRedstoneOre => &[], - BlockKind::EnchantingTable => &[], - BlockKind::SkeletonSkull => &[], - BlockKind::DriedKelpBlock => &[], - BlockKind::EndGateway => &[], - BlockKind::Mycelium => &[], - BlockKind::ZombieWallHead => &[], - BlockKind::WhiteConcretePowder => &[], - BlockKind::YellowStainedGlassPane => &[], - BlockKind::MossyStoneBrickWall => &[], - BlockKind::CryingObsidian => &[], - BlockKind::CreeperHead => &[], - BlockKind::Glowstone => &[], - BlockKind::NetherGoldOre => &[], - BlockKind::BlackWallBanner => &[], - BlockKind::GrayBanner => &[], - BlockKind::GoldBlock => &[], - BlockKind::BirchLog => &[], - BlockKind::CarvedPumpkin => &[], - BlockKind::Fern => &[], - BlockKind::ChiseledQuartzBlock => &[], - BlockKind::LimeStainedGlassPane => &[], - BlockKind::StrippedDarkOakLog => &[], - BlockKind::LavaCauldron => &[], - BlockKind::OakStairs => &[], - BlockKind::TrappedChest => &[], - BlockKind::BirchSlab => &[], - BlockKind::DarkOakWood => &[], - BlockKind::BlueStainedGlass => &[], - BlockKind::AndesiteStairs => &[], - BlockKind::WaxedExposedCutCopperSlab => &[], - BlockKind::PolishedDeepslateWall => &[], - BlockKind::Dropper => &[], - BlockKind::RedMushroomBlock => &[], - BlockKind::RedSandstoneStairs => &[], - BlockKind::StrippedJungleLog => &[], + BlockKind::WhiteWool => &[], + BlockKind::OrangeWool => &[], + BlockKind::MagentaWool => &[], + BlockKind::LightBlueWool => &[], + BlockKind::YellowWool => &[], BlockKind::LimeWool => &[], - BlockKind::Bedrock => &[], - BlockKind::EndPortalFrame => &[], - BlockKind::Glass => &[], - BlockKind::Fire => &[], - BlockKind::GreenGlazedTerracotta => &[], - BlockKind::AcaciaFence => &[], - BlockKind::RawCopperBlock => &[], - BlockKind::AttachedPumpkinStem => &[], - BlockKind::StoneBricks => &[], - BlockKind::BubbleCoralBlock => &[], - BlockKind::StrippedAcaciaWood => &[], - BlockKind::LargeFern => &[], - BlockKind::Tuff => &[], - BlockKind::FrostedIce => &[], - BlockKind::NetherWartBlock => &[], - BlockKind::MagentaCandle => &[], - BlockKind::NetherBrickFence => &[], - BlockKind::WhiteBanner => &[], - BlockKind::PinkBanner => &[], - BlockKind::CyanConcretePowder => &[], - BlockKind::GrayCandleCake => &[], - BlockKind::WeepingVines => &[], - BlockKind::OakButton => &[], - BlockKind::CrackedPolishedBlackstoneBricks => &[], - BlockKind::DarkOakSlab => &[], - BlockKind::PottedSpruceSapling => &[], - BlockKind::PolishedDeepslateStairs => &[], - BlockKind::NoteBlock => &[], - BlockKind::SmoothBasalt => &[], + BlockKind::PinkWool => &[], + BlockKind::GrayWool => &[], + BlockKind::LightGrayWool => &[], + BlockKind::CyanWool => &[], + BlockKind::PurpleWool => &[], + BlockKind::BlueWool => &[], + BlockKind::BrownWool => &[], + BlockKind::GreenWool => &[], + BlockKind::RedWool => &[], + BlockKind::BlackWool => &[], + BlockKind::MovingPiston => &[], + BlockKind::Dandelion => &[], + BlockKind::Poppy => &[], + BlockKind::BlueOrchid => &[], + BlockKind::Allium => &[], + BlockKind::AzureBluet => &[], + BlockKind::RedTulip => &[], BlockKind::OrangeTulip => &[], - BlockKind::BrickStairs => &[], - BlockKind::CrackedNetherBricks => &[], - BlockKind::SmoothRedSandstoneStairs => &[], - BlockKind::JungleWood => &[], - BlockKind::FloweringAzalea => &[], - BlockKind::WarpedFence => &[], - BlockKind::BlackTerracotta => &[], - BlockKind::Lantern => &[], - BlockKind::GrayBed => &[], - BlockKind::PowderSnowCauldron => &[], - BlockKind::PottedPoppy => &[], - BlockKind::FireCoralFan => &[], + BlockKind::WhiteTulip => &[], + BlockKind::PinkTulip => &[], + BlockKind::OxeyeDaisy => &[], + BlockKind::Cornflower => &[], + BlockKind::WitherRose => &[], + BlockKind::LilyOfTheValley => &[], + BlockKind::BrownMushroom => &[], + BlockKind::RedMushroom => &[], + BlockKind::GoldBlock => &[], BlockKind::IronBlock => &[], - BlockKind::MagentaTerracotta => &[], - BlockKind::BrickSlab => &[], - BlockKind::PurpleGlazedTerracotta => &[], - BlockKind::OakSapling => &[], - BlockKind::Hopper => &[], - BlockKind::Peony => &[], - BlockKind::MagentaConcrete => &[], - BlockKind::CutCopper => &[], - BlockKind::WaxedExposedCutCopperStairs => &[], - BlockKind::GraniteStairs => &[], - BlockKind::DarkOakLog => &[], - BlockKind::PolishedBlackstone => &[], - BlockKind::JungleLog => &[], - BlockKind::SpruceFence => &[], - BlockKind::DarkOakSapling => &[], - BlockKind::StrippedAcaciaLog => &[], - BlockKind::PottedDarkOakSapling => &[], - BlockKind::DeadTubeCoral => &[], - BlockKind::LightGrayCandle => &[], - BlockKind::WaxedCopperBlock => &[], - BlockKind::StrippedWarpedHyphae => &[], - BlockKind::AcaciaWallSign => &[], - BlockKind::WaxedOxidizedCutCopperSlab => &[], - BlockKind::PurpurPillar => &[], - BlockKind::BlueConcretePowder => &[], - BlockKind::BrownBanner => &[], + BlockKind::Bricks => &[], + BlockKind::Tnt => &[], + BlockKind::Bookshelf => &[], + BlockKind::MossyCobblestone => &[], + BlockKind::Obsidian => &[], + BlockKind::Torch => &[], + BlockKind::WallTorch => &[], + BlockKind::Fire => &[], + BlockKind::SoulFire => &[], + BlockKind::Spawner => &[], + BlockKind::OakStairs => &[], + BlockKind::Chest => &[], + BlockKind::RedstoneWire => &[], + BlockKind::DiamondOre => &[], + BlockKind::DeepslateDiamondOre => &[], + BlockKind::DiamondBlock => &[], + BlockKind::CraftingTable => &[], + BlockKind::Wheat => &[], + BlockKind::Farmland => &[], + BlockKind::Furnace => &[], + BlockKind::OakSign => &[], + BlockKind::SpruceSign => &[], + BlockKind::BirchSign => &[], + BlockKind::AcaciaSign => &[], + BlockKind::JungleSign => &[], + BlockKind::DarkOakSign => &[], + BlockKind::OakDoor => &[], + BlockKind::Ladder => &[], + BlockKind::Rail => &[], + BlockKind::CobblestoneStairs => &[], BlockKind::OakWallSign => &[], - BlockKind::LimeTerracotta => &[], - BlockKind::PolishedBlackstoneSlab => &[], - BlockKind::RedBanner => &[], - BlockKind::AmethystCluster => &[], - BlockKind::DarkOakTrapdoor => &[], - BlockKind::FireCoralWallFan => &[], - BlockKind::ChiseledSandstone => &[], - BlockKind::Chain => &[], - BlockKind::HoneycombBlock => &[], - BlockKind::DarkOakDoor => &[], - BlockKind::LightBlueBanner => &[], - BlockKind::Azalea => &[], - BlockKind::WarpedWallSign => &[], - BlockKind::CyanCarpet => &[], - BlockKind::SpruceStairs => &[], - BlockKind::AncientDebris => &[], - BlockKind::BlackstoneSlab => &[], - BlockKind::NetherSprouts => &[], - BlockKind::WaxedWeatheredCutCopperSlab => &[], - BlockKind::BrownMushroom => &[], - BlockKind::OakTrapdoor => &[], - BlockKind::Bamboo => &[], - BlockKind::BlueTerracotta => &[], - BlockKind::BlueGlazedTerracotta => &[], - BlockKind::Cobblestone => &[], - BlockKind::TripwireHook => &[], - BlockKind::SweetBerryBush => &[], - BlockKind::Observer => &[], - BlockKind::Dirt => &[], - BlockKind::BlackStainedGlass => &[], - BlockKind::StrippedSpruceLog => &[], - BlockKind::BlackCarpet => &[], - BlockKind::LightWeightedPressurePlate => &[], - BlockKind::GreenBed => &[], - BlockKind::PrismarineStairs => &[], + BlockKind::SpruceWallSign => &[], + BlockKind::BirchWallSign => &[], + BlockKind::AcaciaWallSign => &[], + BlockKind::JungleWallSign => &[], + BlockKind::DarkOakWallSign => &[], + BlockKind::Lever => &[], + BlockKind::StonePressurePlate => &[], + BlockKind::IronDoor => &[], + BlockKind::OakPressurePlate => &[], + BlockKind::SprucePressurePlate => &[], + BlockKind::BirchPressurePlate => &[], + BlockKind::JunglePressurePlate => &[], + BlockKind::AcaciaPressurePlate => &[], + BlockKind::DarkOakPressurePlate => &[], + BlockKind::RedstoneOre => &[], + BlockKind::DeepslateRedstoneOre => &[], + BlockKind::RedstoneTorch => &[], + BlockKind::RedstoneWallTorch => &[], + BlockKind::StoneButton => &[], + BlockKind::Snow => &[], + BlockKind::Ice => &[], + BlockKind::SnowBlock => &[], + BlockKind::Cactus => &[], + BlockKind::Clay => &[], + BlockKind::SugarCane => &[], + BlockKind::Jukebox => &[], + BlockKind::OakFence => &[], + BlockKind::Pumpkin => &[], + BlockKind::Netherrack => &[], + BlockKind::SoulSand => &[], + BlockKind::SoulSoil => &[], + BlockKind::Basalt => &[], + BlockKind::PolishedBasalt => &[], + BlockKind::SoulTorch => &[], + BlockKind::SoulWallTorch => &[], + BlockKind::Glowstone => &[], BlockKind::NetherPortal => &[], - BlockKind::DeadBrainCoralFan => &[], - BlockKind::EndRod => &[], - BlockKind::RedSandstone => &[], - BlockKind::BubbleCoralWallFan => &[], - BlockKind::BrownConcretePowder => &[], - BlockKind::WaxedCutCopper => &[], - BlockKind::BlackGlazedTerracotta => &[], - BlockKind::PolishedAndesite => &[], - BlockKind::CyanBed => &[], - BlockKind::DeadTubeCoralWallFan => &[], - BlockKind::AcaciaDoor => &[], - BlockKind::WallTorch => &[], - BlockKind::OakSign => &[], - BlockKind::StrippedBirchLog => &[], - BlockKind::BirchLeaves => &[], + BlockKind::CarvedPumpkin => &[], + BlockKind::JackOLantern => &[], + BlockKind::Cake => &[], + BlockKind::Repeater => &[], + BlockKind::WhiteStainedGlass => &[], + BlockKind::OrangeStainedGlass => &[], + BlockKind::MagentaStainedGlass => &[], + BlockKind::LightBlueStainedGlass => &[], + BlockKind::YellowStainedGlass => &[], + BlockKind::LimeStainedGlass => &[], + BlockKind::PinkStainedGlass => &[], + BlockKind::GrayStainedGlass => &[], + BlockKind::LightGrayStainedGlass => &[], + BlockKind::CyanStainedGlass => &[], + BlockKind::PurpleStainedGlass => &[], + BlockKind::BlueStainedGlass => &[], + BlockKind::BrownStainedGlass => &[], + BlockKind::GreenStainedGlass => &[], BlockKind::RedStainedGlass => &[], + BlockKind::BlackStainedGlass => &[], + BlockKind::OakTrapdoor => &[], + BlockKind::SpruceTrapdoor => &[], + BlockKind::BirchTrapdoor => &[], + BlockKind::JungleTrapdoor => &[], + BlockKind::AcaciaTrapdoor => &[], + BlockKind::DarkOakTrapdoor => &[], + BlockKind::StoneBricks => &[], + BlockKind::MossyStoneBricks => &[], + BlockKind::CrackedStoneBricks => &[], + BlockKind::ChiseledStoneBricks => &[], + BlockKind::InfestedStone => &[], + BlockKind::InfestedCobblestone => &[], + BlockKind::InfestedStoneBricks => &[], + BlockKind::InfestedMossyStoneBricks => &[], + BlockKind::InfestedCrackedStoneBricks => &[], + BlockKind::InfestedChiseledStoneBricks => &[], + BlockKind::BrownMushroomBlock => &[], + BlockKind::RedMushroomBlock => &[], + BlockKind::MushroomStem => &[], + BlockKind::IronBars => &[], + BlockKind::Chain => &[], + BlockKind::GlassPane => &[], + BlockKind::Melon => &[], + BlockKind::AttachedPumpkinStem => &[], + BlockKind::AttachedMelonStem => &[], + BlockKind::PumpkinStem => &[], + BlockKind::MelonStem => &[], + BlockKind::Vine => &[], + BlockKind::GlowLichen => &[], + BlockKind::OakFenceGate => &[], + BlockKind::BrickStairs => &[], + BlockKind::StoneBrickStairs => &[], + BlockKind::Mycelium => &[], + BlockKind::LilyPad => &[], + BlockKind::NetherBricks => &[], + BlockKind::NetherBrickFence => &[], + BlockKind::NetherBrickStairs => &[], + BlockKind::NetherWart => &[], + BlockKind::EnchantingTable => &[], + BlockKind::BrewingStand => &[], + BlockKind::Cauldron => &[], + BlockKind::WaterCauldron => &[], + BlockKind::LavaCauldron => &[], + BlockKind::PowderSnowCauldron => &[], + BlockKind::EndPortal => &[], + BlockKind::EndPortalFrame => &[], + BlockKind::EndStone => &[], + BlockKind::DragonEgg => &[], + BlockKind::RedstoneLamp => &[], BlockKind::Cocoa => &[], - BlockKind::Obsidian => &[], - BlockKind::CyanCandleCake => &[], - BlockKind::PlayerHead => &[], - BlockKind::Netherrack => &[], - BlockKind::RedGlazedTerracotta => &[], - BlockKind::SoulLantern => &[], - BlockKind::Sunflower => &[], - BlockKind::WarpedDoor => &[], - BlockKind::PolishedDioriteSlab => &[], - BlockKind::YellowShulkerBox => &[], - BlockKind::WarpedTrapdoor => &[], - BlockKind::BlueWallBanner => &[], - BlockKind::LightGrayStainedGlassPane => &[], + BlockKind::SandstoneStairs => &[], + BlockKind::EmeraldOre => &[], + BlockKind::DeepslateEmeraldOre => &[], BlockKind::EnderChest => &[], - BlockKind::YellowConcrete => &[], - BlockKind::YellowWool => &[], - BlockKind::CobbledDeepslateWall => &[], - BlockKind::CrimsonStem => &[], + BlockKind::TripwireHook => &[], + BlockKind::Tripwire => &[], + BlockKind::EmeraldBlock => &[], + BlockKind::SpruceStairs => &[], + BlockKind::BirchStairs => &[], + BlockKind::JungleStairs => &[], + BlockKind::CommandBlock => &[], + BlockKind::Beacon => &[], + BlockKind::CobblestoneWall => &[], + BlockKind::MossyCobblestoneWall => &[], + BlockKind::FlowerPot => &[], + BlockKind::PottedOakSapling => &[], + BlockKind::PottedSpruceSapling => &[], + BlockKind::PottedBirchSapling => &[], + BlockKind::PottedJungleSapling => &[], + BlockKind::PottedAcaciaSapling => &[], + BlockKind::PottedDarkOakSapling => &[], + BlockKind::PottedFern => &[], + BlockKind::PottedDandelion => &[], + BlockKind::PottedPoppy => &[], + BlockKind::PottedBlueOrchid => &[], + BlockKind::PottedAllium => &[], + BlockKind::PottedAzureBluet => &[], + BlockKind::PottedRedTulip => &[], + BlockKind::PottedOrangeTulip => &[], + BlockKind::PottedWhiteTulip => &[], + BlockKind::PottedPinkTulip => &[], + BlockKind::PottedOxeyeDaisy => &[], + BlockKind::PottedCornflower => &[], + BlockKind::PottedLilyOfTheValley => &[], + BlockKind::PottedWitherRose => &[], + BlockKind::PottedRedMushroom => &[], + BlockKind::PottedBrownMushroom => &[], + BlockKind::PottedDeadBush => &[], + BlockKind::PottedCactus => &[], + BlockKind::Carrots => &[], + BlockKind::Potatoes => &[], + BlockKind::OakButton => &[], + BlockKind::SpruceButton => &[], + BlockKind::BirchButton => &[], + BlockKind::JungleButton => &[], + BlockKind::AcaciaButton => &[], + BlockKind::DarkOakButton => &[], + BlockKind::SkeletonSkull => &[], + BlockKind::SkeletonWallSkull => &[], + BlockKind::WitherSkeletonSkull => &[], + BlockKind::WitherSkeletonWallSkull => &[], + BlockKind::ZombieHead => &[], + BlockKind::ZombieWallHead => &[], + BlockKind::PlayerHead => &[], + BlockKind::PlayerWallHead => &[], + BlockKind::CreeperHead => &[], + BlockKind::CreeperWallHead => &[], + BlockKind::DragonHead => &[], + BlockKind::DragonWallHead => &[], BlockKind::Anvil => &[], - BlockKind::SmoothRedSandstone => &[], - BlockKind::GrayTerracotta => &[], - BlockKind::DeepslateCoalOre => &[], - BlockKind::GreenCarpet => &[], - BlockKind::PurpleShulkerBox => &[], - BlockKind::BlueShulkerBox => &[], - BlockKind::PottedWarpedFungus => &[], - BlockKind::WhiteStainedGlassPane => &[], + BlockKind::ChippedAnvil => &[], + BlockKind::DamagedAnvil => &[], + BlockKind::TrappedChest => &[], + BlockKind::LightWeightedPressurePlate => &[], + BlockKind::HeavyWeightedPressurePlate => &[], + BlockKind::Comparator => &[], BlockKind::DaylightDetector => &[], - BlockKind::PolishedBlackstoneBricks => &[], - BlockKind::WeatheredCopper => &[], - BlockKind::CopperBlock => &[], - BlockKind::LimeCarpet => &[], - BlockKind::BlackBed => &[], - BlockKind::BirchTrapdoor => &[], - BlockKind::CobbledDeepslate => &[], - BlockKind::SmallAmethystBud => &[], + BlockKind::RedstoneBlock => &[], + BlockKind::NetherQuartzOre => &[], + BlockKind::Hopper => &[], + BlockKind::QuartzBlock => &[], + BlockKind::ChiseledQuartzBlock => &[], + BlockKind::QuartzPillar => &[], + BlockKind::QuartzStairs => &[], + BlockKind::ActivatorRail => &[], + BlockKind::Dropper => &[], + BlockKind::WhiteTerracotta => &[], + BlockKind::OrangeTerracotta => &[], + BlockKind::MagentaTerracotta => &[], BlockKind::LightBlueTerracotta => &[], - BlockKind::Calcite => &[], - BlockKind::CutCopperStairs => &[], - BlockKind::OakLog => &[], - BlockKind::RoseBush => &[], - BlockKind::DeepslateDiamondOre => &[], - BlockKind::EndStone => &[], - BlockKind::PinkBed => &[], - BlockKind::JungleSlab => &[], - BlockKind::InfestedMossyStoneBricks => &[], - BlockKind::DarkOakStairs => &[], - BlockKind::OrangeShulkerBox => &[], - BlockKind::LightBlueWallBanner => &[], - BlockKind::SoulFire => &[], - BlockKind::SeaLantern => &[], - BlockKind::VoidAir => &[], - BlockKind::PolishedGraniteStairs => &[], - BlockKind::GrayWool => &[], - BlockKind::BambooSapling => &[], - BlockKind::BrickWall => &[], - BlockKind::SmoothRedSandstoneSlab => &[], - BlockKind::Lodestone => &[], - BlockKind::OrangeCandleCake => &[], - BlockKind::SmallDripleaf => &[], - BlockKind::CyanCandle => &[], - BlockKind::PottedCactus => &[], - BlockKind::NetherWart => &[], - BlockKind::LimeConcretePowder => &[], - BlockKind::RedWallBanner => &[], - BlockKind::HornCoralFan => &[], - BlockKind::EndStoneBrickStairs => &[], - BlockKind::BrewingStand => &[], - BlockKind::RedSand => &[], - BlockKind::WaxedExposedCopper => &[], - BlockKind::WhiteStainedGlass => &[], - BlockKind::Allium => &[], + BlockKind::YellowTerracotta => &[], + BlockKind::LimeTerracotta => &[], + BlockKind::PinkTerracotta => &[], + BlockKind::GrayTerracotta => &[], + BlockKind::LightGrayTerracotta => &[], + BlockKind::CyanTerracotta => &[], + BlockKind::PurpleTerracotta => &[], + BlockKind::BlueTerracotta => &[], + BlockKind::BrownTerracotta => &[], + BlockKind::GreenTerracotta => &[], + BlockKind::RedTerracotta => &[], + BlockKind::BlackTerracotta => &[], + BlockKind::WhiteStainedGlassPane => &[], + BlockKind::OrangeStainedGlassPane => &[], + BlockKind::MagentaStainedGlassPane => &[], + BlockKind::LightBlueStainedGlassPane => &[], + BlockKind::YellowStainedGlassPane => &[], + BlockKind::LimeStainedGlassPane => &[], + BlockKind::PinkStainedGlassPane => &[], + BlockKind::GrayStainedGlassPane => &[], + BlockKind::LightGrayStainedGlassPane => &[], + BlockKind::CyanStainedGlassPane => &[], + BlockKind::PurpleStainedGlassPane => &[], + BlockKind::BlueStainedGlassPane => &[], + BlockKind::BrownStainedGlassPane => &[], + BlockKind::GreenStainedGlassPane => &[], BlockKind::RedStainedGlassPane => &[], - BlockKind::TubeCoral => &[], - BlockKind::Deepslate => &[], - BlockKind::PurpurSlab => &[], - BlockKind::CutSandstoneSlab => &[], - BlockKind::PolishedBlackstonePressurePlate => &[], - BlockKind::CyanBanner => &[], - BlockKind::BrownCandle => &[], - BlockKind::DeepslateGoldOre => &[], - BlockKind::PottedOakSapling => &[], - BlockKind::WaxedWeatheredCopper => &[], - BlockKind::BirchDoor => &[], - BlockKind::LightGrayCarpet => &[], - BlockKind::LightningRod => &[], - BlockKind::PinkGlazedTerracotta => &[], - BlockKind::DeepslateIronOre => &[], - BlockKind::AndesiteWall => &[], - BlockKind::OakLeaves => &[], + BlockKind::BlackStainedGlassPane => &[], + BlockKind::AcaciaStairs => &[], + BlockKind::DarkOakStairs => &[], + BlockKind::SlimeBlock => &[], + BlockKind::Barrier => &[], + BlockKind::Light => &[], + BlockKind::IronTrapdoor => &[], + BlockKind::Prismarine => &[], + BlockKind::PrismarineBricks => &[], + BlockKind::DarkPrismarine => &[], + BlockKind::PrismarineStairs => &[], + BlockKind::PrismarineBrickStairs => &[], + BlockKind::DarkPrismarineStairs => &[], + BlockKind::PrismarineSlab => &[], + BlockKind::PrismarineBrickSlab => &[], + BlockKind::DarkPrismarineSlab => &[], + BlockKind::SeaLantern => &[], + BlockKind::HayBlock => &[], + BlockKind::WhiteCarpet => &[], BlockKind::OrangeCarpet => &[], - BlockKind::Dispenser => &[], - BlockKind::DeadTubeCoralFan => &[], - BlockKind::YellowCandle => &[], - BlockKind::BlueStainedGlassPane => &[], - BlockKind::PolishedBlackstoneBrickWall => &[], - BlockKind::BirchButton => &[], - BlockKind::Granite => &[], - BlockKind::CrimsonWallSign => &[], - BlockKind::OxidizedCutCopperSlab => &[], - BlockKind::WaxedCutCopperStairs => &[], - BlockKind::BrownGlazedTerracotta => &[], - BlockKind::SugarCane => &[], - BlockKind::SpruceTrapdoor => &[], - BlockKind::WeepingVinesPlant => &[], - BlockKind::LightBlueWool => &[], - BlockKind::OakPressurePlate => &[], - BlockKind::PolishedAndesiteSlab => &[], - BlockKind::Potatoes => &[], - BlockKind::WarpedRoots => &[], - BlockKind::BlueCarpet => &[], - BlockKind::WaxedWeatheredCutCopperStairs => &[], - BlockKind::StoneButton => &[], BlockKind::MagentaCarpet => &[], - BlockKind::Snow => &[], - BlockKind::SpruceLeaves => &[], - BlockKind::LightGrayShulkerBox => &[], - BlockKind::KelpPlant => &[], - BlockKind::StrippedCrimsonHyphae => &[], - BlockKind::PottedBamboo => &[], - BlockKind::ExposedCutCopper => &[], - BlockKind::ExposedCopper => &[], - BlockKind::DeepslateBrickStairs => &[], - BlockKind::AzureBluet => &[], - BlockKind::MossCarpet => &[], - BlockKind::BrainCoral => &[], - BlockKind::GlowLichen => &[], - BlockKind::GreenConcretePowder => &[], - BlockKind::WitherRose => &[], - BlockKind::OxeyeDaisy => &[], - BlockKind::Repeater => &[], - BlockKind::RedSandstoneSlab => &[], - BlockKind::CaveAir => &[], - BlockKind::PottedLilyOfTheValley => &[], - BlockKind::PurpleStainedGlassPane => &[], - BlockKind::StrippedDarkOakWood => &[], - BlockKind::SpruceButton => &[], - BlockKind::PolishedBlackstoneBrickStairs => &[], - BlockKind::PinkConcretePowder => &[], - BlockKind::Poppy => &[], - BlockKind::CobblestoneStairs => &[], - BlockKind::CyanTerracotta => &[], - BlockKind::StrippedOakWood => &[], - BlockKind::OrangeTerracotta => &[], BlockKind::LightBlueCarpet => &[], - BlockKind::CrackedStoneBricks => &[], - BlockKind::CreeperWallHead => &[], - BlockKind::Composter => &[], - BlockKind::RespawnAnchor => &[], - BlockKind::RedstoneLamp => &[], - BlockKind::BrainCoralFan => &[], - BlockKind::Blackstone => &[], - BlockKind::DeepslateTileStairs => &[], - BlockKind::Grass => &[], - BlockKind::WarpedSlab => &[], - BlockKind::FloweringAzaleaLeaves => &[], - BlockKind::BrownConcrete => &[], - BlockKind::BigDripleafStem => &[], - BlockKind::LimeStainedGlass => &[], - BlockKind::DiamondOre => &[], - BlockKind::PottedAzureBluet => &[], - BlockKind::SnowBlock => &[], - BlockKind::YellowBed => &[], - BlockKind::WhiteTulip => &[], - BlockKind::GrayStainedGlass => &[], - BlockKind::PinkStainedGlass => &[], - BlockKind::GoldOre => &[], - BlockKind::EndStoneBricks => &[], - BlockKind::Target => &[], - BlockKind::Gravel => &[], - BlockKind::PottedBlueOrchid => &[], - BlockKind::WarpedStem => &[], - BlockKind::Bookshelf => &[], - BlockKind::CrimsonTrapdoor => &[], - BlockKind::SoulCampfire => &[], - BlockKind::BlueOrchid => &[], - BlockKind::BlueIce => &[], - BlockKind::DarkOakPressurePlate => &[], - BlockKind::CutRedSandstone => &[], - BlockKind::SmoothQuartzStairs => &[], - BlockKind::StoneSlab => &[], - BlockKind::InfestedChiseledStoneBricks => &[], - BlockKind::ChiseledPolishedBlackstone => &[], - BlockKind::OrangeWool => &[], - BlockKind::PrismarineWall => &[], - BlockKind::CrimsonNylium => &[], - BlockKind::TallSeagrass => &[], - BlockKind::PolishedBlackstoneButton => &[], - BlockKind::LightBlueCandleCake => &[], - BlockKind::JungleSign => &[], + BlockKind::YellowCarpet => &[], + BlockKind::LimeCarpet => &[], + BlockKind::PinkCarpet => &[], + BlockKind::GrayCarpet => &[], + BlockKind::LightGrayCarpet => &[], + BlockKind::CyanCarpet => &[], + BlockKind::PurpleCarpet => &[], + BlockKind::BlueCarpet => &[], + BlockKind::BrownCarpet => &[], + BlockKind::GreenCarpet => &[], + BlockKind::RedCarpet => &[], + BlockKind::BlackCarpet => &[], + BlockKind::Terracotta => &[], + BlockKind::CoalBlock => &[], + BlockKind::PackedIce => &[], + BlockKind::Sunflower => &[], + BlockKind::Lilac => &[], + BlockKind::RoseBush => &[], + BlockKind::Peony => &[], + BlockKind::TallGrass => &[], + BlockKind::LargeFern => &[], + BlockKind::WhiteBanner => &[], + BlockKind::OrangeBanner => &[], BlockKind::MagentaBanner => &[], - BlockKind::DarkOakPlanks => &[], - BlockKind::PolishedGranite => &[], - BlockKind::PottedDeadBush => &[], - BlockKind::MagentaGlazedTerracotta => &[], - BlockKind::RawIronBlock => &[], - BlockKind::DeadFireCoralWallFan => &[], - BlockKind::DeepslateTileWall => &[], - BlockKind::MagentaWool => &[], - BlockKind::DeepslateCopperOre => &[], - BlockKind::OrangeConcretePowder => &[], - BlockKind::Air => &[], - BlockKind::BubbleColumn => &[], - BlockKind::BlastFurnace => &[], - BlockKind::PottedDandelion => &[], + BlockKind::LightBlueBanner => &[], + BlockKind::YellowBanner => &[], + BlockKind::LimeBanner => &[], + BlockKind::PinkBanner => &[], + BlockKind::GrayBanner => &[], + BlockKind::LightGrayBanner => &[], + BlockKind::CyanBanner => &[], + BlockKind::PurpleBanner => &[], + BlockKind::BlueBanner => &[], + BlockKind::BrownBanner => &[], + BlockKind::GreenBanner => &[], + BlockKind::RedBanner => &[], + BlockKind::BlackBanner => &[], + BlockKind::WhiteWallBanner => &[], + BlockKind::OrangeWallBanner => &[], + BlockKind::MagentaWallBanner => &[], + BlockKind::LightBlueWallBanner => &[], + BlockKind::YellowWallBanner => &[], BlockKind::LimeWallBanner => &[], + BlockKind::PinkWallBanner => &[], + BlockKind::GrayWallBanner => &[], + BlockKind::LightGrayWallBanner => &[], + BlockKind::CyanWallBanner => &[], + BlockKind::PurpleWallBanner => &[], + BlockKind::BlueWallBanner => &[], + BlockKind::BrownWallBanner => &[], + BlockKind::GreenWallBanner => &[], + BlockKind::RedWallBanner => &[], + BlockKind::BlackWallBanner => &[], + BlockKind::RedSandstone => &[], + BlockKind::ChiseledRedSandstone => &[], + BlockKind::CutRedSandstone => &[], + BlockKind::RedSandstoneStairs => &[], + BlockKind::OakSlab => &[], + BlockKind::SpruceSlab => &[], + BlockKind::BirchSlab => &[], + BlockKind::JungleSlab => &[], + BlockKind::AcaciaSlab => &[], + BlockKind::DarkOakSlab => &[], + BlockKind::StoneSlab => &[], + BlockKind::SmoothStoneSlab => &[], + BlockKind::SandstoneSlab => &[], + BlockKind::CutSandstoneSlab => &[], + BlockKind::PetrifiedOakSlab => &[], + BlockKind::CobblestoneSlab => &[], + BlockKind::BrickSlab => &[], + BlockKind::StoneBrickSlab => &[], + BlockKind::NetherBrickSlab => &[], + BlockKind::QuartzSlab => &[], + BlockKind::RedSandstoneSlab => &[], + BlockKind::CutRedSandstoneSlab => &[], + BlockKind::PurpurSlab => &[], + BlockKind::SmoothStone => &[], + BlockKind::SmoothSandstone => &[], + BlockKind::SmoothQuartz => &[], + BlockKind::SmoothRedSandstone => &[], + BlockKind::SpruceFenceGate => &[], + BlockKind::BirchFenceGate => &[], + BlockKind::JungleFenceGate => &[], + BlockKind::AcaciaFenceGate => &[], + BlockKind::DarkOakFenceGate => &[], + BlockKind::SpruceFence => &[], + BlockKind::BirchFence => &[], + BlockKind::JungleFence => &[], + BlockKind::AcaciaFence => &[], + BlockKind::DarkOakFence => &[], + BlockKind::SpruceDoor => &[], + BlockKind::BirchDoor => &[], + BlockKind::JungleDoor => &[], + BlockKind::AcaciaDoor => &[], + BlockKind::DarkOakDoor => &[], + BlockKind::EndRod => &[], + BlockKind::ChorusPlant => &[], + BlockKind::ChorusFlower => &[], BlockKind::PurpurBlock => &[], - BlockKind::DeepslateEmeraldOre => &[], - BlockKind::TallGrass => &[], + BlockKind::PurpurPillar => &[], + BlockKind::PurpurStairs => &[], + BlockKind::EndStoneBricks => &[], + BlockKind::Beetroots => &[], + BlockKind::DirtPath => &[], + BlockKind::EndGateway => &[], + BlockKind::RepeatingCommandBlock => &[], + BlockKind::ChainCommandBlock => &[], + BlockKind::FrostedIce => &[], + BlockKind::MagmaBlock => &[], + BlockKind::NetherWartBlock => &[], + BlockKind::RedNetherBricks => &[], + BlockKind::BoneBlock => &[], + BlockKind::StructureVoid => &[], + BlockKind::Observer => &[], + BlockKind::ShulkerBox => &[], + BlockKind::WhiteShulkerBox => &[], + BlockKind::OrangeShulkerBox => &[], + BlockKind::MagentaShulkerBox => &[], + BlockKind::LightBlueShulkerBox => &[], + BlockKind::YellowShulkerBox => &[], + BlockKind::LimeShulkerBox => &[], + BlockKind::PinkShulkerBox => &[], + BlockKind::GrayShulkerBox => &[], + BlockKind::LightGrayShulkerBox => &[], BlockKind::CyanShulkerBox => &[], - BlockKind::Basalt => &[], - BlockKind::WaxedOxidizedCutCopperStairs => &[], - BlockKind::RootedDirt => &[], - BlockKind::BrownCarpet => &[], - BlockKind::FlowerPot => &[], - BlockKind::Scaffolding => &[], - BlockKind::PurpleConcrete => &[], - BlockKind::PowderSnow => &[], - BlockKind::PinkTulip => &[], - BlockKind::GreenCandleCake => &[], - BlockKind::Barrel => &[], - BlockKind::RedCandleCake => &[], - BlockKind::IronBars => &[], - BlockKind::WhiteTerracotta => &[], - BlockKind::ActivatorRail => &[], - BlockKind::BlackStainedGlassPane => &[], - BlockKind::EndPortal => &[], - BlockKind::PottedWitherRose => &[], - BlockKind::StickyPiston => &[], - BlockKind::OakWood => &[], - BlockKind::LimeBed => &[], - BlockKind::AcaciaPressurePlate => &[], - BlockKind::GreenBanner => &[], - BlockKind::LimeGlazedTerracotta => &[], - BlockKind::CrimsonDoor => &[], - BlockKind::LapisBlock => &[], - BlockKind::MossyStoneBricks => &[], - BlockKind::OakFenceGate => &[], - BlockKind::BlueBanner => &[], - BlockKind::GildedBlackstone => &[], - BlockKind::RedstoneTorch => &[], - BlockKind::ChiseledStoneBricks => &[], - BlockKind::CraftingTable => &[], - BlockKind::CyanStainedGlass => &[], - BlockKind::CyanWallBanner => &[], + BlockKind::PurpleShulkerBox => &[], + BlockKind::BlueShulkerBox => &[], + BlockKind::BrownShulkerBox => &[], + BlockKind::GreenShulkerBox => &[], + BlockKind::RedShulkerBox => &[], + BlockKind::BlackShulkerBox => &[], + BlockKind::WhiteGlazedTerracotta => &[], BlockKind::OrangeGlazedTerracotta => &[], - BlockKind::CrimsonStairs => &[], - BlockKind::Beehive => &[], - BlockKind::JungleFenceGate => &[], - BlockKind::PumpkinStem => &[], - BlockKind::YellowCandleCake => &[], - BlockKind::PetrifiedOakSlab => &[], - BlockKind::JunglePressurePlate => &[], - BlockKind::BlueBed => &[], - BlockKind::PottedJungleSapling => &[], - BlockKind::EndStoneBrickSlab => &[], - BlockKind::BirchPressurePlate => &[], - BlockKind::QuartzBricks => &[], - BlockKind::PrismarineBrickStairs => &[], - BlockKind::LargeAmethystBud => &[], - BlockKind::OakDoor => &[], - BlockKind::WhiteCandleCake => &[], + BlockKind::MagentaGlazedTerracotta => &[], + BlockKind::LightBlueGlazedTerracotta => &[], + BlockKind::YellowGlazedTerracotta => &[], + BlockKind::LimeGlazedTerracotta => &[], + BlockKind::PinkGlazedTerracotta => &[], + BlockKind::GrayGlazedTerracotta => &[], + BlockKind::LightGrayGlazedTerracotta => &[], + BlockKind::CyanGlazedTerracotta => &[], + BlockKind::PurpleGlazedTerracotta => &[], + BlockKind::BlueGlazedTerracotta => &[], + BlockKind::BrownGlazedTerracotta => &[], + BlockKind::GreenGlazedTerracotta => &[], + BlockKind::RedGlazedTerracotta => &[], + BlockKind::BlackGlazedTerracotta => &[], + BlockKind::WhiteConcrete => &[], + BlockKind::OrangeConcrete => &[], + BlockKind::MagentaConcrete => &[], + BlockKind::LightBlueConcrete => &[], + BlockKind::YellowConcrete => &[], + BlockKind::LimeConcrete => &[], + BlockKind::PinkConcrete => &[], + BlockKind::GrayConcrete => &[], + BlockKind::LightGrayConcrete => &[], + BlockKind::CyanConcrete => &[], + BlockKind::PurpleConcrete => &[], + BlockKind::BlueConcrete => &[], + BlockKind::BrownConcrete => &[], + BlockKind::GreenConcrete => &[], + BlockKind::RedConcrete => &[], + BlockKind::BlackConcrete => &[], + BlockKind::WhiteConcretePowder => &[], + BlockKind::OrangeConcretePowder => &[], + BlockKind::MagentaConcretePowder => &[], + BlockKind::LightBlueConcretePowder => &[], + BlockKind::YellowConcretePowder => &[], + BlockKind::LimeConcretePowder => &[], + BlockKind::PinkConcretePowder => &[], + BlockKind::GrayConcretePowder => &[], + BlockKind::LightGrayConcretePowder => &[], + BlockKind::CyanConcretePowder => &[], + BlockKind::PurpleConcretePowder => &[], + BlockKind::BlueConcretePowder => &[], + BlockKind::BrownConcretePowder => &[], + BlockKind::GreenConcretePowder => &[], + BlockKind::RedConcretePowder => &[], + BlockKind::BlackConcretePowder => &[], + BlockKind::Kelp => &[], + BlockKind::KelpPlant => &[], + BlockKind::DriedKelpBlock => &[], + BlockKind::TurtleEgg => &[], + BlockKind::DeadTubeCoralBlock => &[], + BlockKind::DeadBrainCoralBlock => &[], + BlockKind::DeadBubbleCoralBlock => &[], + BlockKind::DeadFireCoralBlock => &[], + BlockKind::DeadHornCoralBlock => &[], + BlockKind::TubeCoralBlock => &[], + BlockKind::BrainCoralBlock => &[], + BlockKind::BubbleCoralBlock => &[], + BlockKind::FireCoralBlock => &[], + BlockKind::HornCoralBlock => &[], + BlockKind::DeadTubeCoral => &[], + BlockKind::DeadBrainCoral => &[], + BlockKind::DeadBubbleCoral => &[], + BlockKind::DeadFireCoral => &[], + BlockKind::DeadHornCoral => &[], + BlockKind::TubeCoral => &[], + BlockKind::BrainCoral => &[], + BlockKind::BubbleCoral => &[], + BlockKind::FireCoral => &[], + BlockKind::HornCoral => &[], + BlockKind::DeadTubeCoralFan => &[], + BlockKind::DeadBrainCoralFan => &[], + BlockKind::DeadBubbleCoralFan => &[], + BlockKind::DeadFireCoralFan => &[], + BlockKind::DeadHornCoralFan => &[], + BlockKind::TubeCoralFan => &[], + BlockKind::BrainCoralFan => &[], + BlockKind::BubbleCoralFan => &[], + BlockKind::FireCoralFan => &[], + BlockKind::HornCoralFan => &[], + BlockKind::DeadTubeCoralWallFan => &[], + BlockKind::DeadBrainCoralWallFan => &[], BlockKind::DeadBubbleCoralWallFan => &[], - BlockKind::Ice => &[], - BlockKind::DarkOakButton => &[], - BlockKind::MagentaStainedGlassPane => &[], - BlockKind::BlackWool => &[], - BlockKind::Bell => &[], - BlockKind::GreenCandle => &[], - BlockKind::RedstoneWallTorch => &[], - BlockKind::OrangeBed => &[], - BlockKind::BoneBlock => &[], - BlockKind::RedNetherBricks => &[], - BlockKind::RedNetherBrickStairs => &[], - BlockKind::OrangeWallBanner => &[], - BlockKind::DeepslateLapisOre => &[], - BlockKind::Prismarine => &[], - BlockKind::CrimsonSign => &[], - BlockKind::MagentaCandleCake => &[], - BlockKind::DeepslateBrickSlab => &[], - BlockKind::MushroomStem => &[], - BlockKind::PottedPinkTulip => &[], - BlockKind::SpruceSlab => &[], - BlockKind::CrimsonRoots => &[], - BlockKind::PottedWhiteTulip => &[], - BlockKind::Tnt => &[], - BlockKind::BlackstoneWall => &[], + BlockKind::DeadFireCoralWallFan => &[], + BlockKind::DeadHornCoralWallFan => &[], + BlockKind::TubeCoralWallFan => &[], BlockKind::BrainCoralWallFan => &[], - BlockKind::CrimsonSlab => &[], - BlockKind::AndesiteSlab => &[], - BlockKind::LightGrayWool => &[], - BlockKind::BrownWool => &[], - BlockKind::CommandBlock => &[], + BlockKind::BubbleCoralWallFan => &[], + BlockKind::FireCoralWallFan => &[], + BlockKind::HornCoralWallFan => &[], + BlockKind::SeaPickle => &[], + BlockKind::BlueIce => &[], BlockKind::Conduit => &[], - BlockKind::ExposedCutCopperStairs => &[], - BlockKind::WitherSkeletonSkull => &[], - BlockKind::LightGrayCandleCake => &[], - BlockKind::InfestedStoneBricks => &[], - BlockKind::PinkCandle => &[], - BlockKind::DeadTubeCoralBlock => &[], - BlockKind::SandstoneStairs => &[], - BlockKind::Chest => &[], - BlockKind::DirtPath => &[], - BlockKind::RedShulkerBox => &[], - BlockKind::CobbledDeepslateSlab => &[], - BlockKind::OakFence => &[], - BlockKind::PurpleCarpet => &[], - BlockKind::StrippedSpruceWood => &[], - BlockKind::WhiteCarpet => &[], - BlockKind::StrippedWarpedStem => &[], - BlockKind::PottedFern => &[], - BlockKind::WitherSkeletonWallSkull => &[], - BlockKind::MovingPiston => &[], - BlockKind::CopperOre => &[], + BlockKind::BambooSapling => &[], + BlockKind::Bamboo => &[], + BlockKind::PottedBamboo => &[], + BlockKind::VoidAir => &[], + BlockKind::CaveAir => &[], + BlockKind::BubbleColumn => &[], + BlockKind::PolishedGraniteStairs => &[], + BlockKind::SmoothRedSandstoneStairs => &[], + BlockKind::MossyStoneBrickStairs => &[], + BlockKind::PolishedDioriteStairs => &[], + BlockKind::MossyCobblestoneStairs => &[], + BlockKind::EndStoneBrickStairs => &[], + BlockKind::StoneStairs => &[], + BlockKind::SmoothSandstoneStairs => &[], + BlockKind::SmoothQuartzStairs => &[], + BlockKind::GraniteStairs => &[], + BlockKind::AndesiteStairs => &[], + BlockKind::RedNetherBrickStairs => &[], BlockKind::PolishedAndesiteStairs => &[], - BlockKind::LimeConcrete => &[], - BlockKind::CrackedDeepslateBricks => &[], - BlockKind::MossyCobblestone => &[], - BlockKind::CoalBlock => &[], - BlockKind::BlackCandleCake => &[], - BlockKind::StonePressurePlate => &[], - BlockKind::BeeNest => &[], - BlockKind::OxidizedCopper => &[], - BlockKind::DeepslateBricks => &[], - BlockKind::BirchWallSign => &[], - BlockKind::ChippedAnvil => &[], - BlockKind::DarkOakSign => &[], - BlockKind::WhiteGlazedTerracotta => &[], - BlockKind::StoneBrickSlab => &[], + BlockKind::DioriteStairs => &[], + BlockKind::PolishedGraniteSlab => &[], + BlockKind::SmoothRedSandstoneSlab => &[], + BlockKind::MossyStoneBrickSlab => &[], + BlockKind::PolishedDioriteSlab => &[], + BlockKind::MossyCobblestoneSlab => &[], + BlockKind::EndStoneBrickSlab => &[], + BlockKind::SmoothSandstoneSlab => &[], + BlockKind::SmoothQuartzSlab => &[], + BlockKind::GraniteSlab => &[], + BlockKind::AndesiteSlab => &[], + BlockKind::RedNetherBrickSlab => &[], + BlockKind::PolishedAndesiteSlab => &[], + BlockKind::DioriteSlab => &[], + BlockKind::BrickWall => &[], + BlockKind::PrismarineWall => &[], + BlockKind::RedSandstoneWall => &[], + BlockKind::MossyStoneBrickWall => &[], + BlockKind::GraniteWall => &[], + BlockKind::StoneBrickWall => &[], + BlockKind::NetherBrickWall => &[], + BlockKind::AndesiteWall => &[], + BlockKind::RedNetherBrickWall => &[], + BlockKind::SandstoneWall => &[], + BlockKind::EndStoneBrickWall => &[], BlockKind::DioriteWall => &[], - BlockKind::PrismarineBrickSlab => &[], + BlockKind::Scaffolding => &[], + BlockKind::Loom => &[], + BlockKind::Barrel => &[], + BlockKind::Smoker => &[], + BlockKind::BlastFurnace => &[], + BlockKind::CartographyTable => &[], + BlockKind::FletchingTable => &[], BlockKind::Grindstone => &[], - BlockKind::Ladder => &[], + BlockKind::Lectern => &[], + BlockKind::SmithingTable => &[], BlockKind::Stonecutter => &[], - BlockKind::BirchPlanks => &[], - BlockKind::DeadHornCoral => &[], - BlockKind::FireCoral => &[], - BlockKind::WeatheredCutCopperSlab => &[], - BlockKind::ChorusPlant => &[], - BlockKind::MagentaStainedGlass => &[], - BlockKind::CrimsonFungus => &[], - BlockKind::PolishedDiorite => &[], - BlockKind::BubbleCoralFan => &[], - BlockKind::LilyPad => &[], - BlockKind::CaveVinesPlant => &[], - BlockKind::GreenStainedGlassPane => &[], - BlockKind::SmoothQuartzSlab => &[], - BlockKind::HornCoral => &[], - BlockKind::LimeBanner => &[], - BlockKind::DragonHead => &[], - BlockKind::Lava => &[], - BlockKind::LightGrayBed => &[], - BlockKind::CoalOre => &[], - BlockKind::NetherQuartzOre => &[], - BlockKind::AcaciaFenceGate => &[], - BlockKind::ChainCommandBlock => &[], - BlockKind::RedstoneWire => &[], - BlockKind::CandleCake => &[], - BlockKind::LightGrayConcretePowder => &[], - BlockKind::CyanStainedGlassPane => &[], - BlockKind::Sponge => &[], - BlockKind::OrangeStainedGlass => &[], - BlockKind::JackOLantern => &[], - BlockKind::DarkPrismarineStairs => &[], - BlockKind::SculkSensor => &[], + BlockKind::Bell => &[], + BlockKind::Lantern => &[], + BlockKind::SoulLantern => &[], + BlockKind::Campfire => &[], + BlockKind::SoulCampfire => &[], + BlockKind::SweetBerryBush => &[], + BlockKind::WarpedStem => &[], + BlockKind::StrippedWarpedStem => &[], + BlockKind::WarpedHyphae => &[], + BlockKind::StrippedWarpedHyphae => &[], + BlockKind::WarpedNylium => &[], + BlockKind::WarpedFungus => &[], + BlockKind::WarpedWartBlock => &[], + BlockKind::WarpedRoots => &[], + BlockKind::NetherSprouts => &[], + BlockKind::CrimsonStem => &[], + BlockKind::StrippedCrimsonStem => &[], BlockKind::CrimsonHyphae => &[], - BlockKind::DetectorRail => &[], - BlockKind::GrassBlock => &[], - BlockKind::ShulkerBox => &[], - BlockKind::PolishedBlackstoneStairs => &[], - BlockKind::OrangeStainedGlassPane => &[], - BlockKind::Lever => &[], - BlockKind::PottedAcaciaSapling => &[], - BlockKind::DamagedAnvil => &[], - BlockKind::BlackstoneStairs => &[], - BlockKind::PlayerWallHead => &[], - BlockKind::PolishedGraniteSlab => &[], - BlockKind::StrippedBirchWood => &[], - BlockKind::SprucePressurePlate => &[], - BlockKind::BrownStainedGlass => &[], - BlockKind::StoneBrickStairs => &[], - BlockKind::DarkPrismarineSlab => &[], - BlockKind::AcaciaLeaves => &[], - BlockKind::PurpleBed => &[], - BlockKind::NetherBrickStairs => &[], - BlockKind::YellowWallBanner => &[], - BlockKind::CyanConcrete => &[], - BlockKind::PoweredRail => &[], - BlockKind::Furnace => &[], - BlockKind::Diorite => &[], - BlockKind::PinkConcrete => &[], - BlockKind::CartographyTable => &[], - BlockKind::MelonStem => &[], - BlockKind::AcaciaSign => &[], - BlockKind::PinkCarpet => &[], - BlockKind::YellowConcretePowder => &[], - BlockKind::AcaciaStairs => &[], - BlockKind::WhiteConcrete => &[], - BlockKind::WarpedButton => &[], - BlockKind::GrayCandle => &[], - BlockKind::BrownTerracotta => &[], - BlockKind::PolishedDeepslate => &[], - BlockKind::PolishedDioriteStairs => &[], - BlockKind::RedCarpet => &[], - BlockKind::GraniteWall => &[], - BlockKind::JungleLeaves => &[], - BlockKind::InfestedStone => &[], - BlockKind::GreenShulkerBox => &[], - BlockKind::Carrots => &[], - BlockKind::MagentaBed => &[], - BlockKind::QuartzBlock => &[], - BlockKind::PottedWarpedRoots => &[], - BlockKind::LightBlueStainedGlass => &[], - BlockKind::MagentaConcretePowder => &[], - BlockKind::MossyStoneBrickStairs => &[], - BlockKind::PurpleTerracotta => &[], - BlockKind::WhiteCandle => &[], - BlockKind::SoulSand => &[], - BlockKind::YellowTerracotta => &[], - BlockKind::StrippedJungleWood => &[], - BlockKind::GreenTerracotta => &[], - BlockKind::AttachedMelonStem => &[], - BlockKind::StoneStairs => &[], - BlockKind::CrimsonButton => &[], - BlockKind::WarpedPlanks => &[], - BlockKind::StructureVoid => &[], - BlockKind::YellowCarpet => &[], - BlockKind::BrownBed => &[], - BlockKind::ZombieHead => &[], - BlockKind::WhiteShulkerBox => &[], + BlockKind::StrippedCrimsonHyphae => &[], + BlockKind::CrimsonNylium => &[], + BlockKind::CrimsonFungus => &[], + BlockKind::Shroomlight => &[], + BlockKind::WeepingVines => &[], + BlockKind::WeepingVinesPlant => &[], BlockKind::TwistingVines => &[], - BlockKind::LightGrayStainedGlass => &[], - BlockKind::PolishedDeepslateSlab => &[], - BlockKind::RepeatingCommandBlock => &[], - BlockKind::PrismarineBricks => &[], - BlockKind::SmoothSandstoneStairs => &[], - BlockKind::Lilac => &[], - BlockKind::GreenWallBanner => &[], - BlockKind::CutCopperSlab => &[], - BlockKind::PinkTerracotta => &[], - BlockKind::DarkOakFenceGate => &[], - BlockKind::PurpleConcretePowder => &[], - BlockKind::BrownShulkerBox => &[], - BlockKind::JungleStairs => &[], - BlockKind::CutSandstone => &[], - BlockKind::PinkWallBanner => &[], - BlockKind::WhiteWallBanner => &[], - BlockKind::PrismarineSlab => &[], - BlockKind::JungleButton => &[], - BlockKind::RedstoneBlock => &[], - BlockKind::InfestedCobblestone => &[], - BlockKind::DeadHornCoralFan => &[], - BlockKind::AcaciaSapling => &[], - BlockKind::YellowStainedGlass => &[], - BlockKind::LightBlueConcrete => &[], - BlockKind::ChorusFlower => &[], + BlockKind::TwistingVinesPlant => &[], + BlockKind::CrimsonRoots => &[], + BlockKind::CrimsonPlanks => &[], + BlockKind::WarpedPlanks => &[], + BlockKind::CrimsonSlab => &[], + BlockKind::WarpedSlab => &[], BlockKind::CrimsonPressurePlate => &[], - BlockKind::Terracotta => &[], - BlockKind::BlackBanner => &[], - BlockKind::WarpedWartBlock => &[], - BlockKind::PottedCrimsonRoots => &[], - BlockKind::LightGrayBanner => &[], - BlockKind::ExposedCutCopperSlab => &[], - BlockKind::Water => &[], - BlockKind::Cake => &[], - BlockKind::HornCoralBlock => &[], - BlockKind::PinkStainedGlassPane => &[], - BlockKind::WaxedOxidizedCutCopper => &[], - BlockKind::CobblestoneWall => &[], - BlockKind::CaveVines => &[], - BlockKind::FletchingTable => &[], - BlockKind::HayBlock => &[], - BlockKind::OakSlab => &[], - BlockKind::BirchWood => &[], - BlockKind::DeadFireCoral => &[], - BlockKind::OrangeBanner => &[], - BlockKind::SpruceDoor => &[], - BlockKind::DiamondBlock => &[], - BlockKind::BlueWool => &[], - BlockKind::PottedRedTulip => &[], - BlockKind::CyanGlazedTerracotta => &[], - BlockKind::FireCoralBlock => &[], + BlockKind::WarpedPressurePlate => &[], + BlockKind::CrimsonFence => &[], + BlockKind::WarpedFence => &[], + BlockKind::CrimsonTrapdoor => &[], + BlockKind::WarpedTrapdoor => &[], + BlockKind::CrimsonFenceGate => &[], BlockKind::WarpedFenceGate => &[], - BlockKind::Wheat => &[], + BlockKind::CrimsonStairs => &[], + BlockKind::WarpedStairs => &[], + BlockKind::CrimsonButton => &[], + BlockKind::WarpedButton => &[], + BlockKind::CrimsonDoor => &[], + BlockKind::WarpedDoor => &[], + BlockKind::CrimsonSign => &[], + BlockKind::WarpedSign => &[], + BlockKind::CrimsonWallSign => &[], + BlockKind::WarpedWallSign => &[], + BlockKind::StructureBlock => &[], + BlockKind::Jigsaw => &[], + BlockKind::Composter => &[], + BlockKind::Target => &[], + BlockKind::BeeNest => &[], + BlockKind::Beehive => &[], + BlockKind::HoneyBlock => &[], + BlockKind::HoneycombBlock => &[], + BlockKind::NetheriteBlock => &[], + BlockKind::AncientDebris => &[], + BlockKind::CryingObsidian => &[], + BlockKind::RespawnAnchor => &[], + BlockKind::PottedCrimsonFungus => &[], + BlockKind::PottedWarpedFungus => &[], + BlockKind::PottedCrimsonRoots => &[], + BlockKind::PottedWarpedRoots => &[], + BlockKind::Lodestone => &[], + BlockKind::Blackstone => &[], + BlockKind::BlackstoneStairs => &[], + BlockKind::BlackstoneWall => &[], + BlockKind::BlackstoneSlab => &[], + BlockKind::PolishedBlackstone => &[], + BlockKind::PolishedBlackstoneBricks => &[], + BlockKind::CrackedPolishedBlackstoneBricks => &[], + BlockKind::ChiseledPolishedBlackstone => &[], + BlockKind::PolishedBlackstoneBrickSlab => &[], + BlockKind::PolishedBlackstoneBrickStairs => &[], + BlockKind::PolishedBlackstoneBrickWall => &[], + BlockKind::GildedBlackstone => &[], + BlockKind::PolishedBlackstoneStairs => &[], + BlockKind::PolishedBlackstoneSlab => &[], + BlockKind::PolishedBlackstonePressurePlate => &[], + BlockKind::PolishedBlackstoneButton => &[], + BlockKind::PolishedBlackstoneWall => &[], + BlockKind::ChiseledNetherBricks => &[], + BlockKind::CrackedNetherBricks => &[], + BlockKind::QuartzBricks => &[], + BlockKind::Candle => &[], + BlockKind::WhiteCandle => &[], + BlockKind::OrangeCandle => &[], + BlockKind::MagentaCandle => &[], + BlockKind::LightBlueCandle => &[], + BlockKind::YellowCandle => &[], BlockKind::LimeCandle => &[], - BlockKind::MagentaShulkerBox => &[], - BlockKind::DeadFireCoralBlock => &[], - BlockKind::SpruceWallSign => &[], - BlockKind::GrayConcrete => &[], - BlockKind::ChiseledDeepslate => &[], - BlockKind::NetherBrickWall => &[], + BlockKind::PinkCandle => &[], + BlockKind::GrayCandle => &[], + BlockKind::LightGrayCandle => &[], + BlockKind::CyanCandle => &[], + BlockKind::PurpleCandle => &[], + BlockKind::BlueCandle => &[], + BlockKind::BrownCandle => &[], + BlockKind::GreenCandle => &[], BlockKind::RedCandle => &[], - BlockKind::Campfire => &[], - BlockKind::Cobweb => &[], + BlockKind::BlackCandle => &[], + BlockKind::CandleCake => &[], + BlockKind::WhiteCandleCake => &[], + BlockKind::OrangeCandleCake => &[], + BlockKind::MagentaCandleCake => &[], + BlockKind::LightBlueCandleCake => &[], + BlockKind::YellowCandleCake => &[], + BlockKind::LimeCandleCake => &[], + BlockKind::PinkCandleCake => &[], + BlockKind::GrayCandleCake => &[], + BlockKind::LightGrayCandleCake => &[], + BlockKind::CyanCandleCake => &[], + BlockKind::PurpleCandleCake => &[], + BlockKind::BlueCandleCake => &[], + BlockKind::BrownCandleCake => &[], + BlockKind::GreenCandleCake => &[], + BlockKind::RedCandleCake => &[], + BlockKind::BlackCandleCake => &[], + BlockKind::AmethystBlock => &[], + BlockKind::BuddingAmethyst => &[], + BlockKind::AmethystCluster => &[], + BlockKind::LargeAmethystBud => &[], + BlockKind::MediumAmethystBud => &[], + BlockKind::SmallAmethystBud => &[], + BlockKind::Tuff => &[], + BlockKind::Calcite => &[], + BlockKind::TintedGlass => &[], + BlockKind::PowderSnow => &[], + BlockKind::SculkSensor => &[], + BlockKind::OxidizedCopper => &[], + BlockKind::WeatheredCopper => &[], + BlockKind::ExposedCopper => &[], + BlockKind::CopperBlock => &[], + BlockKind::CopperOre => &[], + BlockKind::DeepslateCopperOre => &[], + BlockKind::OxidizedCutCopper => &[], + BlockKind::WeatheredCutCopper => &[], + BlockKind::ExposedCutCopper => &[], + BlockKind::CutCopper => &[], + BlockKind::OxidizedCutCopperStairs => &[], + BlockKind::WeatheredCutCopperStairs => &[], + BlockKind::ExposedCutCopperStairs => &[], + BlockKind::CutCopperStairs => &[], + BlockKind::OxidizedCutCopperSlab => &[], + BlockKind::WeatheredCutCopperSlab => &[], + BlockKind::ExposedCutCopperSlab => &[], + BlockKind::CutCopperSlab => &[], + BlockKind::WaxedCopperBlock => &[], + BlockKind::WaxedWeatheredCopper => &[], + BlockKind::WaxedExposedCopper => &[], + BlockKind::WaxedOxidizedCopper => &[], + BlockKind::WaxedOxidizedCutCopper => &[], + BlockKind::WaxedWeatheredCutCopper => &[], BlockKind::WaxedExposedCutCopper => &[], - BlockKind::SmoothSandstoneSlab => &[], - BlockKind::SoulSoil => &[], - BlockKind::QuartzSlab => &[], - BlockKind::Dandelion => &[], - BlockKind::PottedBirchSapling => &[], - BlockKind::DeadHornCoralBlock => &[], - BlockKind::WarpedSign => &[], + BlockKind::WaxedCutCopper => &[], + BlockKind::WaxedOxidizedCutCopperStairs => &[], + BlockKind::WaxedWeatheredCutCopperStairs => &[], + BlockKind::WaxedExposedCutCopperStairs => &[], + BlockKind::WaxedCutCopperStairs => &[], + BlockKind::WaxedOxidizedCutCopperSlab => &[], + BlockKind::WaxedWeatheredCutCopperSlab => &[], + BlockKind::WaxedExposedCutCopperSlab => &[], BlockKind::WaxedCutCopperSlab => &[], - BlockKind::DragonEgg => &[], - BlockKind::RedNetherBrickSlab => &[], - BlockKind::PurpleCandle => &[], - BlockKind::WeatheredCutCopper => &[], - BlockKind::PottedOxeyeDaisy => &[], - BlockKind::RawGoldBlock => &[], - BlockKind::PinkWool => &[], - BlockKind::JungleWallSign => &[], - BlockKind::QuartzPillar => &[], + BlockKind::LightningRod => &[], + BlockKind::PointedDripstone => &[], BlockKind::DripstoneBlock => &[], - BlockKind::BlueConcrete => &[], - BlockKind::CobbledDeepslateStairs => &[], - BlockKind::DeadBrainCoral => &[], - BlockKind::DeadBubbleCoral => &[], - BlockKind::BubbleCoral => &[], - BlockKind::HoneyBlock => &[], - BlockKind::LightGrayWallBanner => &[], - BlockKind::TurtleEgg => &[], - BlockKind::LightBlueGlazedTerracotta => &[], - BlockKind::CrimsonPlanks => &[], - BlockKind::BirchSign => &[], - BlockKind::BlackConcrete => &[], - BlockKind::PurpleWool => &[], - BlockKind::TwistingVinesPlant => &[], - BlockKind::AcaciaSlab => &[], - BlockKind::AmethystBlock => &[], - BlockKind::RedTerracotta => &[], - BlockKind::EmeraldBlock => &[], - BlockKind::AcaciaButton => &[], - BlockKind::Stone => &[], - BlockKind::WhiteBed => &[], - BlockKind::DioriteStairs => &[], - BlockKind::SlimeBlock => &[], - BlockKind::MossyCobblestoneStairs => &[], - BlockKind::PurpleStainedGlass => &[], - BlockKind::IronTrapdoor => &[], - BlockKind::GraniteSlab => &[], - BlockKind::WarpedStairs => &[], - BlockKind::PottedAzaleaBush => &[], - BlockKind::StoneBrickWall => &[], - BlockKind::PurpleWallBanner => &[], - BlockKind::OxidizedCutCopperStairs => &[], - BlockKind::DeadBrainCoralWallFan => &[], - BlockKind::HangingRoots => &[], - BlockKind::CoarseDirt => &[], - BlockKind::AcaciaTrapdoor => &[], - BlockKind::SoulTorch => &[], - BlockKind::Light => &[], - BlockKind::BrownStainedGlassPane => &[], - BlockKind::SmoothStone => &[], - BlockKind::Vine => &[], - BlockKind::Loom => &[], - BlockKind::BuddingAmethyst => &[], - BlockKind::EmeraldOre => &[], - BlockKind::InfestedDeepslate => &[], - BlockKind::HeavyWeightedPressurePlate => &[], - BlockKind::LightGrayConcrete => &[], - BlockKind::MossyCobblestoneSlab => &[], - BlockKind::AcaciaPlanks => &[], - BlockKind::ChiseledNetherBricks => &[], - BlockKind::BlackCandle => &[], - BlockKind::AcaciaWood => &[], - BlockKind::GrayShulkerBox => &[], - BlockKind::PottedCrimsonFungus => &[], - BlockKind::DeadBush => &[], - BlockKind::Comparator => &[], - BlockKind::PurpurStairs => &[], - BlockKind::PurpleCandleCake => &[], - BlockKind::DeadBubbleCoralBlock => &[], - BlockKind::IronOre => &[], - BlockKind::PottedRedMushroom => &[], + BlockKind::CaveVines => &[], + BlockKind::CaveVinesPlant => &[], BlockKind::SporeBlossom => &[], - BlockKind::Jukebox => &[], - BlockKind::PottedBrownMushroom => &[], - BlockKind::PottedOrangeTulip => &[], - BlockKind::SmoothQuartz => &[], - BlockKind::CutRedSandstoneSlab => &[], - BlockKind::DragonWallHead => &[], - BlockKind::StructureBlock => &[], - BlockKind::PolishedBasalt => &[], - BlockKind::Spawner => &[], - BlockKind::HornCoralWallFan => &[], - BlockKind::PottedCornflower => &[], - BlockKind::Cornflower => &[], - BlockKind::SoulWallTorch => &[], - BlockKind::LimeShulkerBox => &[], - BlockKind::SeaPickle => &[], - BlockKind::DarkOakFence => &[], - BlockKind::Cactus => &[], + BlockKind::Azalea => &[], + BlockKind::FloweringAzalea => &[], + BlockKind::MossCarpet => &[], + BlockKind::MossBlock => &[], + BlockKind::BigDripleaf => &[], + BlockKind::BigDripleafStem => &[], + BlockKind::SmallDripleaf => &[], + BlockKind::HangingRoots => &[], + BlockKind::RootedDirt => &[], + BlockKind::Deepslate => &[], + BlockKind::CobbledDeepslate => &[], + BlockKind::CobbledDeepslateStairs => &[], + BlockKind::CobbledDeepslateSlab => &[], + BlockKind::CobbledDeepslateWall => &[], + BlockKind::PolishedDeepslate => &[], + BlockKind::PolishedDeepslateStairs => &[], + BlockKind::PolishedDeepslateSlab => &[], + BlockKind::PolishedDeepslateWall => &[], + BlockKind::DeepslateTiles => &[], + BlockKind::DeepslateTileStairs => &[], + BlockKind::DeepslateTileSlab => &[], + BlockKind::DeepslateTileWall => &[], + BlockKind::DeepslateBricks => &[], + BlockKind::DeepslateBrickStairs => &[], + BlockKind::DeepslateBrickSlab => &[], + BlockKind::DeepslateBrickWall => &[], + BlockKind::ChiseledDeepslate => &[], + BlockKind::CrackedDeepslateBricks => &[], BlockKind::CrackedDeepslateTiles => &[], - BlockKind::TubeCoralBlock => &[], - BlockKind::IronDoor => &[], - BlockKind::Podzol => &[], - BlockKind::DeadHornCoralWallFan => &[], - BlockKind::LightBlueStainedGlassPane => &[], + BlockKind::InfestedDeepslate => &[], + BlockKind::SmoothBasalt => &[], + BlockKind::RawIronBlock => &[], + BlockKind::RawCopperBlock => &[], + BlockKind::RawGoldBlock => &[], + BlockKind::PottedAzaleaBush => &[], + BlockKind::PottedFloweringAzaleaBush => &[], } - } -} -impl BlockKind { - #[doc = "Returns the `harvest_tools` property of this `BlockKind`."] - #[inline] - pub fn harvest_tools(&self) -> Option<&'static [libcraft_items::Item]> { - match self { - BlockKind::AcaciaWood => None, - BlockKind::JunglePressurePlate => None, - BlockKind::ZombieWallHead => None, - BlockKind::Dropper => Some(&[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::LimeCarpet => None, - BlockKind::AcaciaSlab => None, - BlockKind::Hopper => Some(&[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - ]), - BlockKind::PottedCrimsonRoots => None, - BlockKind::FrostedIce => None, - BlockKind::Conduit => None, - BlockKind::SpruceWallSign => None, - BlockKind::SpruceFence => None, - BlockKind::BlackstoneWall => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, + } +} +impl BlockKind { + #[doc = "Returns the `harvest_tools` property of this `BlockKind`."] + #[inline] + pub fn harvest_tools(&self) -> Option<&'static [libcraft_items::Item]> { + match self { + BlockKind::Air => None, + BlockKind::Stone => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, - ]), - BlockKind::Tuff => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, - ]), - BlockKind::SlimeBlock => None, - BlockKind::LargeAmethystBud => None, - BlockKind::RedTulip => None, - BlockKind::MovingPiston => None, - BlockKind::PinkConcrete => Some(&[ libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::BrownStainedGlassPane => None, - BlockKind::SoulCampfire => None, - BlockKind::PolishedBlackstoneStairs => Some(&[ + BlockKind::Granite => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::Cobweb => Some(&[ - libcraft_items::Item::GoldenSword, - libcraft_items::Item::Shears, - libcraft_items::Item::DiamondSword, - libcraft_items::Item::WoodenSword, - libcraft_items::Item::IronSword, - libcraft_items::Item::NetheriteSword, - libcraft_items::Item::StoneSword, - ]), - BlockKind::Bookshelf => None, - BlockKind::PottedPoppy => None, - BlockKind::DeepslateDiamondOre => Some(&[ libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::DeepslateBricks => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::StrippedJungleWood => None, - BlockKind::DeepslateLapisOre => Some(&[ libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, ]), - BlockKind::DeepslateBrickWall => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, + BlockKind::PolishedGranite => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::MagentaWallBanner => None, - BlockKind::Campfire => None, - BlockKind::CyanConcretePowder => None, - BlockKind::DragonEgg => None, - BlockKind::CrimsonHyphae => None, - BlockKind::PurpleCandle => None, - BlockKind::RawCopperBlock => Some(&[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::StrippedSpruceLog => None, - BlockKind::YellowWool => None, - BlockKind::LimeStainedGlassPane => None, - BlockKind::PurpleShulkerBox => None, - BlockKind::GreenTerracotta => Some(&[ + BlockKind::Diorite => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::OrangeWool => None, - BlockKind::BigDripleafStem => None, - BlockKind::Pumpkin => None, - BlockKind::SpruceStairs => None, - BlockKind::PurpurBlock => Some(&[ libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::OakLog => None, - BlockKind::Torch => None, - BlockKind::Glowstone => None, - BlockKind::PottedJungleSapling => None, - BlockKind::BirchWood => None, - BlockKind::NetherGoldOre => Some(&[ + BlockKind::PolishedDiorite => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, - ]), - BlockKind::LargeFern => None, - BlockKind::PurpleGlazedTerracotta => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, - ]), - BlockKind::Target => None, - BlockKind::Sunflower => None, - BlockKind::LightGrayCandleCake => None, - BlockKind::BrownTerracotta => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, - ]), - BlockKind::LightGrayGlazedTerracotta => Some(&[ libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::CreeperWallHead => None, - BlockKind::CrimsonRoots => None, - BlockKind::InfestedDeepslate => None, BlockKind::Andesite => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::DeepslateTileStairs => Some(&[ - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, - ]), - BlockKind::FloweringAzaleaLeaves => None, - BlockKind::BubbleCoralWallFan => None, - BlockKind::LightGrayConcretePowder => None, - BlockKind::AndesiteWall => Some(&[ - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::BambooSapling => None, - BlockKind::HayBlock => None, - BlockKind::SpruceSlab => None, - BlockKind::OakDoor => None, - BlockKind::SprucePlanks => None, - BlockKind::OrangeStainedGlass => None, - BlockKind::Basalt => Some(&[ libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PolishedAndesite => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, - ]), - BlockKind::WeatheredCopper => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - ]), - BlockKind::WeatheredCutCopperSlab => Some(&[ - libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::MossyStoneBricks => Some(&[ - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, + BlockKind::GrassBlock => None, + BlockKind::Dirt => None, + BlockKind::CoarseDirt => None, + BlockKind::Podzol => None, + BlockKind::Cobblestone => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, - ]), - BlockKind::IronBlock => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::LightGrayWallBanner => None, - BlockKind::PottedDeadBush => None, - BlockKind::RedBanner => None, - BlockKind::Prismarine => Some(&[ - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, - ]), - BlockKind::DarkOakSlab => None, - BlockKind::WarpedFenceGate => None, - BlockKind::WhiteWallBanner => None, - BlockKind::LightBlueShulkerBox => None, - BlockKind::ChiseledDeepslate => Some(&[ - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Wheat => None, - BlockKind::PrismarineBrickStairs => Some(&[ - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::Lilac => None, - BlockKind::BlueCandle => None, - BlockKind::JungleLeaves => None, - BlockKind::RedstoneWire => None, - BlockKind::PowderSnowCauldron => Some(&[ - libcraft_items::Item::StonePickaxe, + BlockKind::OakPlanks => None, + BlockKind::SprucePlanks => None, + BlockKind::BirchPlanks => None, + BlockKind::JunglePlanks => None, + BlockKind::AcaciaPlanks => None, + BlockKind::DarkOakPlanks => None, + BlockKind::OakSapling => None, + BlockKind::SpruceSapling => None, + BlockKind::BirchSapling => None, + BlockKind::JungleSapling => None, + BlockKind::AcaciaSapling => None, + BlockKind::DarkOakSapling => None, + BlockKind::Bedrock => None, + BlockKind::Water => None, + BlockKind::Lava => None, + BlockKind::Sand => None, + BlockKind::RedSand => None, + BlockKind::Gravel => None, + BlockKind::GoldOre => Some(&[ libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::AcaciaDoor => None, - BlockKind::EnchantingTable => Some(&[ - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::Farmland => None, - BlockKind::PolishedBlackstoneSlab => Some(&[ + BlockKind::DeepslateGoldOre => Some(&[ libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::BrownBanner => None, - BlockKind::YellowConcretePowder => None, - BlockKind::ChorusFlower => None, - BlockKind::PinkBanner => None, - BlockKind::EndStoneBricks => Some(&[ + BlockKind::IronOre => Some(&[ libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Lectern => None, - BlockKind::DeepslateCopperOre => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + BlockKind::DeepslateIronOre => Some(&[ libcraft_items::Item::StonePickaxe, - ]), - BlockKind::DeadTubeCoralFan => Some(&[ libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::TwistingVinesPlant => None, - BlockKind::PottedSpruceSapling => None, - BlockKind::MagentaCarpet => None, - BlockKind::PurpleStainedGlassPane => None, - BlockKind::ActivatorRail => None, - BlockKind::NetherWart => None, - BlockKind::SoulWallTorch => None, - BlockKind::LightBlueBanner => None, - BlockKind::PurpleBanner => None, - BlockKind::DarkOakDoor => None, - BlockKind::DarkOakPlanks => None, - BlockKind::EndStoneBrickWall => Some(&[ + BlockKind::CoalOre => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::LimeWool => None, - BlockKind::CyanBanner => None, - BlockKind::QuartzBlock => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + ]), + BlockKind::DeepslateCoalOre => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::PurpleBed => None, - BlockKind::BlueWool => None, - BlockKind::PottedLilyOfTheValley => None, - BlockKind::DeepslateCoalOre => Some(&[ + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::NetherGoldOre => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::WaxedOxidizedCutCopperSlab => Some(&[ + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::NetherBrickFence => Some(&[ + BlockKind::OakLog => None, + BlockKind::SpruceLog => None, + BlockKind::BirchLog => None, + BlockKind::JungleLog => None, + BlockKind::AcaciaLog => None, + BlockKind::DarkOakLog => None, + BlockKind::StrippedSpruceLog => None, + BlockKind::StrippedBirchLog => None, + BlockKind::StrippedJungleLog => None, + BlockKind::StrippedAcaciaLog => None, + BlockKind::StrippedDarkOakLog => None, + BlockKind::StrippedOakLog => None, + BlockKind::OakWood => None, + BlockKind::SpruceWood => None, + BlockKind::BirchWood => None, + BlockKind::JungleWood => None, + BlockKind::AcaciaWood => None, + BlockKind::DarkOakWood => None, + BlockKind::StrippedOakWood => None, + BlockKind::StrippedSpruceWood => None, + BlockKind::StrippedBirchWood => None, + BlockKind::StrippedJungleWood => None, + BlockKind::StrippedAcaciaWood => None, + BlockKind::StrippedDarkOakWood => None, + BlockKind::OakLeaves => None, + BlockKind::SpruceLeaves => None, + BlockKind::BirchLeaves => None, + BlockKind::JungleLeaves => None, + BlockKind::AcaciaLeaves => None, + BlockKind::DarkOakLeaves => None, + BlockKind::AzaleaLeaves => None, + BlockKind::FloweringAzaleaLeaves => None, + BlockKind::Sponge => None, + BlockKind::WetSponge => None, + BlockKind::Glass => None, + BlockKind::LapisOre => Some(&[ libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::OrangeCarpet => None, - BlockKind::BlackstoneStairs => Some(&[ + BlockKind::DeepslateLapisOre => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::LapisBlock => Some(&[ libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::Dispenser => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::CyanTerracotta => Some(&[ + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::Sandstone => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::DetectorRail => None, - BlockKind::GreenCandleCake => None, - BlockKind::SpruceLeaves => None, - BlockKind::CyanGlazedTerracotta => Some(&[ + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::ChiseledSandstone => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::TrappedChest => None, - BlockKind::SeaLantern => None, - BlockKind::RedCarpet => None, - BlockKind::YellowCarpet => None, - BlockKind::SmithingTable => None, - BlockKind::BrownCandleCake => None, - BlockKind::Blackstone => Some(&[ + BlockKind::CutSandstone => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, @@ -18761,368 +18544,436 @@ impl BlockKind { libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::OrangeConcretePowder => None, - BlockKind::LightBlueConcretePowder => None, - BlockKind::DioriteStairs => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, + BlockKind::NoteBlock => None, + BlockKind::WhiteBed => None, + BlockKind::OrangeBed => None, + BlockKind::MagentaBed => None, + BlockKind::LightBlueBed => None, + BlockKind::YellowBed => None, + BlockKind::LimeBed => None, + BlockKind::PinkBed => None, + BlockKind::GrayBed => None, + BlockKind::LightGrayBed => None, + BlockKind::CyanBed => None, + BlockKind::PurpleBed => None, + BlockKind::BlueBed => None, + BlockKind::BrownBed => None, + BlockKind::GreenBed => None, + BlockKind::RedBed => None, + BlockKind::BlackBed => None, + BlockKind::PoweredRail => None, + BlockKind::DetectorRail => None, + BlockKind::StickyPiston => None, + BlockKind::Cobweb => Some(&[ + libcraft_items::Item::WoodenSword, + libcraft_items::Item::StoneSword, + libcraft_items::Item::GoldenSword, + libcraft_items::Item::IronSword, + libcraft_items::Item::DiamondSword, + libcraft_items::Item::NetheriteSword, + libcraft_items::Item::Shears, + ]), + BlockKind::Grass => None, + BlockKind::Fern => None, + BlockKind::DeadBush => None, + BlockKind::Seagrass => None, + BlockKind::TallSeagrass => None, + BlockKind::Piston => None, + BlockKind::PistonHead => None, + BlockKind::WhiteWool => None, + BlockKind::OrangeWool => None, + BlockKind::MagentaWool => None, + BlockKind::LightBlueWool => None, + BlockKind::YellowWool => None, + BlockKind::LimeWool => None, + BlockKind::PinkWool => None, + BlockKind::GrayWool => None, + BlockKind::LightGrayWool => None, + BlockKind::CyanWool => None, + BlockKind::PurpleWool => None, + BlockKind::BlueWool => None, + BlockKind::BrownWool => None, + BlockKind::GreenWool => None, + BlockKind::RedWool => None, + BlockKind::BlackWool => None, + BlockKind::MovingPiston => None, + BlockKind::Dandelion => None, + BlockKind::Poppy => None, + BlockKind::BlueOrchid => None, + BlockKind::Allium => None, + BlockKind::AzureBluet => None, + BlockKind::RedTulip => None, + BlockKind::OrangeTulip => None, + BlockKind::WhiteTulip => None, + BlockKind::PinkTulip => None, + BlockKind::OxeyeDaisy => None, + BlockKind::Cornflower => None, + BlockKind::WitherRose => None, + BlockKind::LilyOfTheValley => None, + BlockKind::BrownMushroom => None, + BlockKind::RedMushroom => None, + BlockKind::GoldBlock => Some(&[ libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::AmethystBlock => Some(&[ + BlockKind::IronBlock => Some(&[ libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DamagedAnvil => Some(&[ - libcraft_items::Item::DiamondPickaxe, + BlockKind::Bricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::AcaciaFence => None, - BlockKind::HeavyWeightedPressurePlate => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, + BlockKind::Tnt => None, + BlockKind::Bookshelf => None, + BlockKind::MossyCobblestone => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Allium => None, - BlockKind::DeadBrainCoralFan => Some(&[ - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, + BlockKind::Obsidian => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::PottedAcaciaSapling => None, - BlockKind::NetherBrickWall => Some(&[ + BlockKind::Torch => None, + BlockKind::WallTorch => None, + BlockKind::Fire => None, + BlockKind::SoulFire => None, + BlockKind::Spawner => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::OakStairs => None, + BlockKind::Chest => None, + BlockKind::RedstoneWire => None, + BlockKind::DiamondOre => Some(&[ libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::GrayShulkerBox => None, - BlockKind::LightBlueTerracotta => Some(&[ - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, + BlockKind::DeepslateDiamondOre => Some(&[ libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::SoulSoil => None, - BlockKind::InfestedChiseledStoneBricks => None, - BlockKind::Glass => None, - BlockKind::RedConcretePowder => None, - BlockKind::DeepslateTileSlab => Some(&[ + BlockKind::DiamondBlock => Some(&[ libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::BlueTerracotta => Some(&[ + BlockKind::CraftingTable => None, + BlockKind::Wheat => None, + BlockKind::Farmland => None, + BlockKind::Furnace => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::CrimsonSlab => None, - BlockKind::SmallAmethystBud => None, - BlockKind::JackOLantern => None, - BlockKind::PolishedDiorite => Some(&[ + BlockKind::OakSign => None, + BlockKind::SpruceSign => None, + BlockKind::BirchSign => None, + BlockKind::AcaciaSign => None, + BlockKind::JungleSign => None, + BlockKind::DarkOakSign => None, + BlockKind::OakDoor => None, + BlockKind::Ladder => None, + BlockKind::Rail => None, + BlockKind::CobblestoneStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), + BlockKind::OakWallSign => None, + BlockKind::SpruceWallSign => None, BlockKind::BirchWallSign => None, - BlockKind::Cocoa => None, - BlockKind::StickyPiston => None, - BlockKind::NetherBricks => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, + BlockKind::AcaciaWallSign => None, + BlockKind::JungleWallSign => None, + BlockKind::DarkOakWallSign => None, + BlockKind::Lever => None, + BlockKind::StonePressurePlate => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::WhiteStainedGlassPane => None, - BlockKind::WarpedSlab => None, - BlockKind::StoneSlab => Some(&[ - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, - ]), - BlockKind::RoseBush => None, - BlockKind::GreenConcretePowder => None, - BlockKind::Dirt => None, - BlockKind::RawGoldBlock => Some(&[ libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::PlayerWallHead => None, - BlockKind::DeadFireCoralFan => Some(&[ + BlockKind::IronDoor => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::OrangeConcrete => Some(&[ + BlockKind::OakPressurePlate => None, + BlockKind::SprucePressurePlate => None, + BlockKind::BirchPressurePlate => None, + BlockKind::JunglePressurePlate => None, + BlockKind::AcaciaPressurePlate => None, + BlockKind::DarkOakPressurePlate => None, + BlockKind::RedstoneOre => Some(&[ libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::TwistingVines => None, - BlockKind::LightningRod => Some(&[ - libcraft_items::Item::StonePickaxe, + BlockKind::DeepslateRedstoneOre => Some(&[ libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::MossyCobblestoneSlab => Some(&[ - libcraft_items::Item::GoldenPickaxe, + BlockKind::RedstoneTorch => None, + BlockKind::RedstoneWallTorch => None, + BlockKind::StoneButton => None, + BlockKind::Snow => Some(&[ + libcraft_items::Item::WoodenShovel, + libcraft_items::Item::StoneShovel, + libcraft_items::Item::GoldenShovel, + libcraft_items::Item::IronShovel, + libcraft_items::Item::DiamondShovel, + libcraft_items::Item::NetheriteShovel, + ]), + BlockKind::Ice => None, + BlockKind::SnowBlock => Some(&[ + libcraft_items::Item::WoodenShovel, + libcraft_items::Item::StoneShovel, + libcraft_items::Item::GoldenShovel, + libcraft_items::Item::IronShovel, + libcraft_items::Item::DiamondShovel, + libcraft_items::Item::NetheriteShovel, + ]), + BlockKind::Cactus => None, + BlockKind::Clay => None, + BlockKind::SugarCane => None, + BlockKind::Jukebox => None, + BlockKind::OakFence => None, + BlockKind::Pumpkin => None, + BlockKind::Netherrack => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PistonHead => None, - BlockKind::InfestedStoneBricks => None, - BlockKind::TurtleEgg => None, - BlockKind::DeadBrainCoral => Some(&[ - libcraft_items::Item::IronPickaxe, + BlockKind::SoulSand => None, + BlockKind::SoulSoil => None, + BlockKind::Basalt => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Clay => None, - BlockKind::ChiseledPolishedBlackstone => Some(&[ + BlockKind::PolishedBasalt => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::MediumAmethystBud => None, - BlockKind::SpruceSapling => None, - BlockKind::IronBars => Some(&[ + BlockKind::SoulTorch => None, + BlockKind::SoulWallTorch => None, + BlockKind::Glowstone => None, + BlockKind::NetherPortal => None, + BlockKind::CarvedPumpkin => None, + BlockKind::JackOLantern => None, + BlockKind::Cake => None, + BlockKind::Repeater => None, + BlockKind::WhiteStainedGlass => None, + BlockKind::OrangeStainedGlass => None, + BlockKind::MagentaStainedGlass => None, + BlockKind::LightBlueStainedGlass => None, + BlockKind::YellowStainedGlass => None, + BlockKind::LimeStainedGlass => None, + BlockKind::PinkStainedGlass => None, + BlockKind::GrayStainedGlass => None, + BlockKind::LightGrayStainedGlass => None, + BlockKind::CyanStainedGlass => None, + BlockKind::PurpleStainedGlass => None, + BlockKind::BlueStainedGlass => None, + BlockKind::BrownStainedGlass => None, + BlockKind::GreenStainedGlass => None, + BlockKind::RedStainedGlass => None, + BlockKind::BlackStainedGlass => None, + BlockKind::OakTrapdoor => None, + BlockKind::SpruceTrapdoor => None, + BlockKind::BirchTrapdoor => None, + BlockKind::JungleTrapdoor => None, + BlockKind::AcaciaTrapdoor => None, + BlockKind::DarkOakTrapdoor => None, + BlockKind::StoneBricks => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::MossyCobblestoneStairs => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::MossyStoneBricks => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::OrangeBed => None, - BlockKind::StructureBlock => Some(&[]), - BlockKind::LightGrayStainedGlassPane => None, - BlockKind::CyanWallBanner => None, - BlockKind::DeadHornCoralWallFan => Some(&[ libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BirchLog => None, - BlockKind::PrismarineBrickSlab => Some(&[ + BlockKind::CrackedStoneBricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::ChiseledStoneBricks => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::CreeperHead => None, - BlockKind::Deepslate => Some(&[ - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::MagentaWool => None, - BlockKind::YellowBanner => None, - BlockKind::YellowWallBanner => None, - BlockKind::SmoothStone => Some(&[ - libcraft_items::Item::GoldenPickaxe, + BlockKind::InfestedStone => None, + BlockKind::InfestedCobblestone => None, + BlockKind::InfestedStoneBricks => None, + BlockKind::InfestedMossyStoneBricks => None, + BlockKind::InfestedCrackedStoneBricks => None, + BlockKind::InfestedChiseledStoneBricks => None, + BlockKind::BrownMushroomBlock => None, + BlockKind::RedMushroomBlock => None, + BlockKind::MushroomStem => None, + BlockKind::IronBars => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WeatheredCutCopper => Some(&[ + BlockKind::Chain => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + ]), + BlockKind::GlassPane => None, + BlockKind::Melon => None, + BlockKind::AttachedPumpkinStem => None, + BlockKind::AttachedMelonStem => None, + BlockKind::PumpkinStem => None, + BlockKind::MelonStem => None, + BlockKind::Vine => None, + BlockKind::GlowLichen => None, + BlockKind::OakFenceGate => None, + BlockKind::BrickStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::BubbleColumn => None, - BlockKind::YellowCandle => None, - BlockKind::CrimsonSign => None, - BlockKind::LightGrayStainedGlass => None, - BlockKind::GrayStainedGlassPane => None, - BlockKind::WarpedTrapdoor => None, - BlockKind::WaxedWeatheredCutCopper => Some(&[ + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::YellowStainedGlassPane => None, - BlockKind::Smoker => Some(&[ + BlockKind::StoneBrickStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, - ]), - BlockKind::BlackConcretePowder => None, - BlockKind::JungleTrapdoor => None, - BlockKind::CrackedStoneBricks => Some(&[ libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::TallSeagrass => None, - BlockKind::CobblestoneWall => Some(&[ + BlockKind::Mycelium => None, + BlockKind::LilyPad => None, + BlockKind::NetherBricks => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PinkStainedGlassPane => None, - BlockKind::RedWallBanner => None, - BlockKind::StructureVoid => None, - BlockKind::Sand => None, - BlockKind::PolishedDioriteSlab => Some(&[ + BlockKind::NetherBrickFence => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::PolishedBlackstoneBrickWall => Some(&[ - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::BlackCandleCake => None, - BlockKind::DarkOakWood => None, - BlockKind::BubbleCoral => None, - BlockKind::BirchFenceGate => None, - BlockKind::MossBlock => None, - BlockKind::DarkOakLog => None, - BlockKind::CutSandstoneSlab => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, + BlockKind::NetherBrickStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::MagentaShulkerBox => None, - BlockKind::LightBlueBed => None, - BlockKind::PolishedBlackstoneBrickSlab => Some(&[ + BlockKind::NetherWart => None, + BlockKind::EnchantingTable => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::PinkCarpet => None, - BlockKind::Bricks => Some(&[ + BlockKind::BrewingStand => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::HornCoral => None, - BlockKind::Composter => None, - BlockKind::BlueBanner => None, - BlockKind::AmethystCluster => None, - BlockKind::BlackWool => None, - BlockKind::Spawner => Some(&[ - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, + BlockKind::Cauldron => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::OxidizedCutCopper => Some(&[ + BlockKind::WaterCauldron => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PolishedDeepslateStairs => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, + BlockKind::LavaCauldron => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PottedCrimsonFungus => None, - BlockKind::GrayBanner => None, - BlockKind::DeadTubeCoral => Some(&[ + BlockKind::PowderSnowCauldron => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, @@ -19130,1230 +18981,1227 @@ impl BlockKind { libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::AcaciaFenceGate => None, - BlockKind::PolishedDeepslateSlab => Some(&[ - libcraft_items::Item::DiamondPickaxe, + BlockKind::EndPortal => None, + BlockKind::EndPortalFrame => None, + BlockKind::EndStone => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::Melon => None, - BlockKind::OrangeShulkerBox => None, - BlockKind::Lever => None, - BlockKind::IronOre => Some(&[ - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DarkOakTrapdoor => None, - BlockKind::WhiteConcretePowder => None, - BlockKind::WaterCauldron => Some(&[ + BlockKind::DragonEgg => None, + BlockKind::RedstoneLamp => None, + BlockKind::Cocoa => None, + BlockKind::SandstoneStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::RedStainedGlassPane => None, - BlockKind::BlackGlazedTerracotta => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + BlockKind::EmeraldOre => Some(&[ libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::Kelp => None, - BlockKind::PurpleCandleCake => None, - BlockKind::Cauldron => Some(&[ + BlockKind::DeepslateEmeraldOre => Some(&[ + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::EnderChest => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - ]), - BlockKind::RedTerracotta => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::TripwireHook => None, + BlockKind::Tripwire => None, + BlockKind::EmeraldBlock => Some(&[ libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::SpruceStairs => None, + BlockKind::BirchStairs => None, + BlockKind::JungleStairs => None, + BlockKind::CommandBlock => Some(&[]), + BlockKind::Beacon => None, + BlockKind::CobblestoneWall => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::BigDripleaf => None, - BlockKind::BlueCarpet => None, - BlockKind::DarkPrismarineSlab => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DiamondBlock => Some(&[ + BlockKind::MossyCobblestoneWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), + BlockKind::FlowerPot => None, + BlockKind::PottedOakSapling => None, + BlockKind::PottedSpruceSapling => None, + BlockKind::PottedBirchSapling => None, + BlockKind::PottedJungleSapling => None, + BlockKind::PottedAcaciaSapling => None, + BlockKind::PottedDarkOakSapling => None, + BlockKind::PottedFern => None, + BlockKind::PottedDandelion => None, + BlockKind::PottedPoppy => None, + BlockKind::PottedBlueOrchid => None, + BlockKind::PottedAllium => None, + BlockKind::PottedAzureBluet => None, + BlockKind::PottedRedTulip => None, + BlockKind::PottedOrangeTulip => None, + BlockKind::PottedWhiteTulip => None, + BlockKind::PottedPinkTulip => None, + BlockKind::PottedOxeyeDaisy => None, + BlockKind::PottedCornflower => None, + BlockKind::PottedLilyOfTheValley => None, + BlockKind::PottedWitherRose => None, + BlockKind::PottedRedMushroom => None, + BlockKind::PottedBrownMushroom => None, + BlockKind::PottedDeadBush => None, + BlockKind::PottedCactus => None, + BlockKind::Carrots => None, + BlockKind::Potatoes => None, BlockKind::OakButton => None, + BlockKind::SpruceButton => None, + BlockKind::BirchButton => None, + BlockKind::JungleButton => None, BlockKind::AcaciaButton => None, BlockKind::DarkOakButton => None, - BlockKind::DioriteWall => Some(&[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, + BlockKind::SkeletonSkull => None, + BlockKind::SkeletonWallSkull => None, + BlockKind::WitherSkeletonSkull => None, + BlockKind::WitherSkeletonWallSkull => None, + BlockKind::ZombieHead => None, + BlockKind::ZombieWallHead => None, + BlockKind::PlayerHead => None, + BlockKind::PlayerWallHead => None, + BlockKind::CreeperHead => None, + BlockKind::CreeperWallHead => None, + BlockKind::DragonHead => None, + BlockKind::DragonWallHead => None, + BlockKind::Anvil => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, - ]), - BlockKind::CobblestoneSlab => Some(&[ libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::ChippedAnvil => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::JungleLog => None, - BlockKind::GoldBlock => Some(&[ + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DamagedAnvil => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BlueWallBanner => None, - BlockKind::Water => None, - BlockKind::StoneBricks => Some(&[ + BlockKind::TrappedChest => None, + BlockKind::LightWeightedPressurePlate => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::HeavyWeightedPressurePlate => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::AttachedPumpkinStem => None, - BlockKind::ChiseledQuartzBlock => Some(&[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, + BlockKind::Comparator => None, + BlockKind::DaylightDetector => None, + BlockKind::RedstoneBlock => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PrismarineSlab => Some(&[ - libcraft_items::Item::GoldenPickaxe, + BlockKind::NetherQuartzOre => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::Hopper => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BubbleCoralFan => None, - BlockKind::PolishedDioriteStairs => Some(&[ + BlockKind::QuartzBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::ChiseledQuartzBlock => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::Barrel => None, - BlockKind::Poppy => None, - BlockKind::ChainCommandBlock => Some(&[]), - BlockKind::JungleSign => None, - BlockKind::GreenCarpet => None, - BlockKind::JungleFence => None, - BlockKind::HornCoralBlock => Some(&[ + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::QuartzPillar => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WarpedButton => None, - BlockKind::PolishedGraniteSlab => Some(&[ + BlockKind::QuartzStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::StrippedOakWood => None, - BlockKind::GrayBed => None, - BlockKind::AcaciaPressurePlate => None, - BlockKind::SandstoneStairs => Some(&[ + BlockKind::ActivatorRail => None, + BlockKind::Dropper => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::RedSandstoneWall => Some(&[ + BlockKind::WhiteTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::Beetroots => None, - BlockKind::SmoothRedSandstoneStairs => Some(&[ + BlockKind::OrangeTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::MagentaTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::Tnt => None, - BlockKind::PrismarineBricks => Some(&[ - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::LightBlueTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - ]), - BlockKind::SoulSand => None, - BlockKind::RespawnAnchor => Some(&[ - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BrainCoralWallFan => None, - BlockKind::AcaciaSign => None, - BlockKind::EndStoneBrickStairs => Some(&[ + BlockKind::YellowTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::LimeTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::SpruceSign => None, - BlockKind::BrownShulkerBox => None, - BlockKind::PottedCactus => None, - BlockKind::AncientDebris => Some(&[ + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DragonWallHead => None, - BlockKind::WitherRose => None, - BlockKind::LightGrayConcrete => Some(&[ + BlockKind::PinkTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::RedSandstoneSlab => Some(&[ + BlockKind::GrayTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::Beacon => None, - BlockKind::CrimsonStem => None, BlockKind::LightGrayTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::LightBlueCandle => None, - BlockKind::DeepslateBrickStairs => Some(&[ - libcraft_items::Item::DiamondPickaxe, + BlockKind::CyanTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::WaxedWeatheredCopper => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::PurpleTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::StoneStairs => Some(&[ + BlockKind::BlueTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::PurpleTerracotta => Some(&[ libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::GrassBlock => None, - BlockKind::PinkWallBanner => None, - BlockKind::EmeraldOre => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::BrownTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::BrainCoralFan => None, - BlockKind::Shroomlight => None, - BlockKind::CobbledDeepslateWall => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + ]), + BlockKind::GreenTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::CrimsonButton => None, - BlockKind::BrownWool => None, - BlockKind::DeadHornCoralFan => Some(&[ + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::RedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::LightGrayBed => None, - BlockKind::CarvedPumpkin => None, - BlockKind::WhiteShulkerBox => None, - BlockKind::Carrots => None, - BlockKind::LightWeightedPressurePlate => Some(&[ - libcraft_items::Item::IronPickaxe, + BlockKind::BlackTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::SmoothQuartzStairs => Some(&[ + BlockKind::WhiteStainedGlassPane => None, + BlockKind::OrangeStainedGlassPane => None, + BlockKind::MagentaStainedGlassPane => None, + BlockKind::LightBlueStainedGlassPane => None, + BlockKind::YellowStainedGlassPane => None, + BlockKind::LimeStainedGlassPane => None, + BlockKind::PinkStainedGlassPane => None, + BlockKind::GrayStainedGlassPane => None, + BlockKind::LightGrayStainedGlassPane => None, + BlockKind::CyanStainedGlassPane => None, + BlockKind::PurpleStainedGlassPane => None, + BlockKind::BlueStainedGlassPane => None, + BlockKind::BrownStainedGlassPane => None, + BlockKind::GreenStainedGlassPane => None, + BlockKind::RedStainedGlassPane => None, + BlockKind::BlackStainedGlassPane => None, + BlockKind::AcaciaStairs => None, + BlockKind::DarkOakStairs => None, + BlockKind::SlimeBlock => None, + BlockKind::Barrier => None, + BlockKind::Light => None, + BlockKind::IronTrapdoor => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::AcaciaPlanks => None, - BlockKind::StrippedWarpedStem => None, - BlockKind::CraftingTable => None, - BlockKind::NetherSprouts => None, - BlockKind::Barrier => None, - BlockKind::BirchDoor => None, - BlockKind::BoneBlock => Some(&[ + BlockKind::Prismarine => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PrismarineBricks => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::GildedBlackstone => Some(&[ - libcraft_items::Item::StonePickaxe, + BlockKind::DarkPrismarine => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::OxidizedCutCopperSlab => Some(&[ + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PrismarineStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::RedSandstone => Some(&[ libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, + ]), + BlockKind::PrismarineBrickStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::Beehive => None, - BlockKind::CyanShulkerBox => None, - BlockKind::WaxedCutCopperStairs => Some(&[ libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::GreenCandle => None, - BlockKind::MossyStoneBrickWall => Some(&[ + BlockKind::DarkPrismarineStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::CandleCake => None, - BlockKind::WaxedExposedCopper => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::PrismarineSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::AcaciaTrapdoor => None, - BlockKind::Dandelion => None, - BlockKind::WarpedHyphae => None, - BlockKind::BrickSlab => Some(&[ + BlockKind::PrismarineBrickSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::SmoothBasalt => Some(&[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, + BlockKind::DarkPrismarineSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BlueOrchid => None, - BlockKind::PinkConcretePowder => None, - BlockKind::OakFence => None, - BlockKind::YellowGlazedTerracotta => Some(&[ + BlockKind::SeaLantern => None, + BlockKind::HayBlock => None, + BlockKind::WhiteCarpet => None, + BlockKind::OrangeCarpet => None, + BlockKind::MagentaCarpet => None, + BlockKind::LightBlueCarpet => None, + BlockKind::YellowCarpet => None, + BlockKind::LimeCarpet => None, + BlockKind::PinkCarpet => None, + BlockKind::GrayCarpet => None, + BlockKind::LightGrayCarpet => None, + BlockKind::CyanCarpet => None, + BlockKind::PurpleCarpet => None, + BlockKind::BlueCarpet => None, + BlockKind::BrownCarpet => None, + BlockKind::GreenCarpet => None, + BlockKind::RedCarpet => None, + BlockKind::BlackCarpet => None, + BlockKind::Terracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::TubeCoralBlock => Some(&[ libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WhiteBed => None, - BlockKind::CyanBed => None, - BlockKind::OakPlanks => None, - BlockKind::CutCopperSlab => Some(&[ + BlockKind::CoalBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PinkShulkerBox => None, - BlockKind::RedWool => None, - BlockKind::DeadBubbleCoralFan => Some(&[ + BlockKind::PackedIce => None, + BlockKind::Sunflower => None, + BlockKind::Lilac => None, + BlockKind::RoseBush => None, + BlockKind::Peony => None, + BlockKind::TallGrass => None, + BlockKind::LargeFern => None, + BlockKind::WhiteBanner => None, + BlockKind::OrangeBanner => None, + BlockKind::MagentaBanner => None, + BlockKind::LightBlueBanner => None, + BlockKind::YellowBanner => None, + BlockKind::LimeBanner => None, + BlockKind::PinkBanner => None, + BlockKind::GrayBanner => None, + BlockKind::LightGrayBanner => None, + BlockKind::CyanBanner => None, + BlockKind::PurpleBanner => None, + BlockKind::BlueBanner => None, + BlockKind::BrownBanner => None, + BlockKind::GreenBanner => None, + BlockKind::RedBanner => None, + BlockKind::BlackBanner => None, + BlockKind::WhiteWallBanner => None, + BlockKind::OrangeWallBanner => None, + BlockKind::MagentaWallBanner => None, + BlockKind::LightBlueWallBanner => None, + BlockKind::YellowWallBanner => None, + BlockKind::LimeWallBanner => None, + BlockKind::PinkWallBanner => None, + BlockKind::GrayWallBanner => None, + BlockKind::LightGrayWallBanner => None, + BlockKind::CyanWallBanner => None, + BlockKind::PurpleWallBanner => None, + BlockKind::BlueWallBanner => None, + BlockKind::BrownWallBanner => None, + BlockKind::GreenWallBanner => None, + BlockKind::RedWallBanner => None, + BlockKind::BlackWallBanner => None, + BlockKind::RedSandstone => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::LightGrayCarpet => None, - BlockKind::GreenStainedGlass => None, - BlockKind::DarkOakLeaves => None, - BlockKind::GreenConcrete => Some(&[ - libcraft_items::Item::IronPickaxe, + BlockKind::ChiseledRedSandstone => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::WarpedPlanks => None, - BlockKind::PowderSnow => None, - BlockKind::OakWood => None, - BlockKind::CobbledDeepslate => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, - ]), - BlockKind::CrimsonPressurePlate => None, - BlockKind::RedstoneLamp => None, - BlockKind::StrippedWarpedHyphae => None, - BlockKind::GrayCarpet => None, - BlockKind::TintedGlass => None, - BlockKind::LightBlueCandleCake => None, - BlockKind::LightGrayWool => None, - BlockKind::CutCopper => Some(&[ libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::StrippedCrimsonHyphae => None, - BlockKind::CrackedDeepslateBricks => Some(&[ - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, + BlockKind::CutRedSandstone => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::Obsidian => Some(&[ + BlockKind::RedSandstoneStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::QuartzBricks => Some(&[ + BlockKind::OakSlab => None, + BlockKind::SpruceSlab => None, + BlockKind::BirchSlab => None, + BlockKind::JungleSlab => None, + BlockKind::AcaciaSlab => None, + BlockKind::DarkOakSlab => None, + BlockKind::StoneSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, ]), BlockKind::SmoothStoneSlab => Some(&[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, - ]), - BlockKind::PlayerHead => None, - BlockKind::CaveVines => None, - BlockKind::PolishedGranite => Some(&[ libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::MossyCobblestone => Some(&[ + BlockKind::SandstoneSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PottedOxeyeDaisy => None, - BlockKind::Cobblestone => Some(&[ + BlockKind::CutSandstoneSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PetrifiedOakSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::CyanCandle => None, - BlockKind::CaveVinesPlant => None, - BlockKind::SandstoneWall => Some(&[ + BlockKind::CobblestoneSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::EndStone => Some(&[ + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::BrickSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::WaxedOxidizedCopper => Some(&[ - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::StoneBrickSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::DeadBush => None, - BlockKind::GrayCandleCake => None, - BlockKind::Loom => None, - BlockKind::BrickStairs => Some(&[ + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::NetherBrickSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::QuartzSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::CyanWool => None, - BlockKind::MagentaGlazedTerracotta => Some(&[ - libcraft_items::Item::IronPickaxe, + BlockKind::RedSandstoneSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PetrifiedOakSlab => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::CutRedSandstoneSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::MagentaCandleCake => None, - BlockKind::CrimsonFenceGate => None, - BlockKind::BlackBed => None, - BlockKind::ChiseledSandstone => Some(&[ - libcraft_items::Item::StonePickaxe, + BlockKind::PurpurSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::SmoothStone => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::GrayStainedGlass => None, - BlockKind::SpruceLog => None, - BlockKind::WarpedWallSign => None, - BlockKind::PolishedDeepslateWall => Some(&[ - libcraft_items::Item::GoldenPickaxe, + BlockKind::SmoothSandstone => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::DeepslateGoldOre => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::WeepingVinesPlant => None, - BlockKind::SmoothQuartzSlab => Some(&[ + BlockKind::SmoothQuartz => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::SmoothRedSandstone => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), + BlockKind::SpruceFenceGate => None, + BlockKind::BirchFenceGate => None, + BlockKind::JungleFenceGate => None, + BlockKind::AcaciaFenceGate => None, BlockKind::DarkOakFenceGate => None, - BlockKind::DeepslateTiles => Some(&[ + BlockKind::SpruceFence => None, + BlockKind::BirchFence => None, + BlockKind::JungleFence => None, + BlockKind::AcaciaFence => None, + BlockKind::DarkOakFence => None, + BlockKind::SpruceDoor => None, + BlockKind::BirchDoor => None, + BlockKind::JungleDoor => None, + BlockKind::AcaciaDoor => None, + BlockKind::DarkOakDoor => None, + BlockKind::EndRod => None, + BlockKind::ChorusPlant => None, + BlockKind::ChorusFlower => None, + BlockKind::PurpurBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WaxedOxidizedCutCopper => Some(&[ + BlockKind::PurpurPillar => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::DeadHornCoral => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PurpurStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::BrewingStand => Some(&[ + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::EndStoneBricks => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::Potatoes => None, - BlockKind::OrangeBanner => None, - BlockKind::LimeShulkerBox => None, - BlockKind::BlackWallBanner => None, - BlockKind::BlackShulkerBox => None, - BlockKind::Chest => None, - BlockKind::PolishedBlackstoneWall => Some(&[ - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::BlueGlazedTerracotta => Some(&[ + BlockKind::Beetroots => None, + BlockKind::DirtPath => None, + BlockKind::EndGateway => None, + BlockKind::RepeatingCommandBlock => Some(&[]), + BlockKind::ChainCommandBlock => Some(&[]), + BlockKind::FrostedIce => None, + BlockKind::MagmaBlock => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::LightGrayShulkerBox => None, - BlockKind::OrangeCandleCake => None, - BlockKind::FloweringAzalea => None, - BlockKind::CopperOre => Some(&[ libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::LapisOre => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, + BlockKind::NetherWartBlock => None, + BlockKind::RedNetherBricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::BrownBed => None, - BlockKind::Podzol => None, - BlockKind::RedNetherBrickStairs => Some(&[ libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::FlowerPot => None, - BlockKind::SculkSensor => None, - BlockKind::CopperBlock => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::BoneBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::SkeletonWallSkull => None, + BlockKind::StructureVoid => None, BlockKind::Observer => Some(&[ - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PolishedBlackstonePressurePlate => Some(&[ + BlockKind::ShulkerBox => None, + BlockKind::WhiteShulkerBox => None, + BlockKind::OrangeShulkerBox => None, + BlockKind::MagentaShulkerBox => None, + BlockKind::LightBlueShulkerBox => None, + BlockKind::YellowShulkerBox => None, + BlockKind::LimeShulkerBox => None, + BlockKind::PinkShulkerBox => None, + BlockKind::GrayShulkerBox => None, + BlockKind::LightGrayShulkerBox => None, + BlockKind::CyanShulkerBox => None, + BlockKind::PurpleShulkerBox => None, + BlockKind::BlueShulkerBox => None, + BlockKind::BrownShulkerBox => None, + BlockKind::GreenShulkerBox => None, + BlockKind::RedShulkerBox => None, + BlockKind::BlackShulkerBox => None, + BlockKind::WhiteGlazedTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::ExposedCutCopper => Some(&[ - libcraft_items::Item::IronPickaxe, + BlockKind::OrangeGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::StrippedDarkOakWood => None, - BlockKind::MagentaConcrete => Some(&[ libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + ]), + BlockKind::MagentaGlazedTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::OakSapling => None, - BlockKind::AndesiteSlab => Some(&[ libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::LapisBlock => Some(&[ - libcraft_items::Item::DiamondPickaxe, + BlockKind::LightBlueGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::SeaPickle => None, - BlockKind::RedBed => None, - BlockKind::Dispenser => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::YellowGlazedTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::BrownGlazedTerracotta => Some(&[ libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::SmallDripleaf => None, - BlockKind::StonePressurePlate => Some(&[ + BlockKind::LimeGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PinkGlazedTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BlueCandleCake => None, - BlockKind::SnowBlock => Some(&[ - libcraft_items::Item::IronShovel, - libcraft_items::Item::DiamondShovel, - libcraft_items::Item::NetheriteShovel, - libcraft_items::Item::WoodenShovel, - libcraft_items::Item::StoneShovel, - libcraft_items::Item::GoldenShovel, - ]), - BlockKind::DeepslateRedstoneOre => Some(&[ + BlockKind::GrayGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::Stonecutter => Some(&[ + BlockKind::LightGrayGlazedTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::Cornflower => None, - BlockKind::OakTrapdoor => None, - BlockKind::BuddingAmethyst => Some(&[ libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + ]), + BlockKind::CyanGlazedTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::Chain => Some(&[ - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PurpleGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - ]), - BlockKind::BlackCarpet => None, - BlockKind::ExposedCutCopperStairs => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::MagentaTerracotta => Some(&[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, + BlockKind::BlueGlazedTerracotta => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::WarpedStairs => None, - BlockKind::DarkOakSapling => None, - BlockKind::EmeraldBlock => Some(&[ - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WaxedExposedCutCopperSlab => Some(&[ + BlockKind::BrownGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::HoneyBlock => None, - BlockKind::SpruceWood => None, - BlockKind::CutCopperStairs => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::GreenGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::CryingObsidian => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Mycelium => None, - BlockKind::BrownWallBanner => None, - BlockKind::JungleWallSign => None, - BlockKind::BlackTerracotta => Some(&[ + BlockKind::RedGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::BlackGlazedTerracotta => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - ]), - BlockKind::SmoothSandstoneSlab => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + ]), + BlockKind::WhiteConcrete => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BlueStainedGlass => None, - BlockKind::MossyStoneBrickStairs => Some(&[ + BlockKind::OrangeConcrete => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::RedstoneWallTorch => None, - BlockKind::Ladder => None, - BlockKind::RedNetherBrickSlab => Some(&[ + BlockKind::MagentaConcrete => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, ]), BlockKind::LightBlueConcrete => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::LilyPad => None, - BlockKind::WarpedNylium => Some(&[ + BlockKind::YellowConcrete => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::EndPortalFrame => None, - BlockKind::Sandstone => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::DiamondPickaxe, + BlockKind::LimeConcrete => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::LimeCandleCake => None, - BlockKind::CobbledDeepslateStairs => Some(&[ + BlockKind::PinkConcrete => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::BrainCoral => None, - BlockKind::RedstoneOre => Some(&[ + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::GrayTerracotta => Some(&[ + BlockKind::GrayConcrete => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::PottedBrownMushroom => None, - BlockKind::PottedWarpedFungus => None, - BlockKind::SoulFire => None, - BlockKind::OakSign => None, - BlockKind::InfestedCrackedStoneBricks => None, - BlockKind::Netherrack => Some(&[ libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + ]), + BlockKind::LightGrayConcrete => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PurpleWool => None, - BlockKind::SmoothSandstone => Some(&[ + BlockKind::CyanConcrete => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WhiteTerracotta => Some(&[ - libcraft_items::Item::GoldenPickaxe, + BlockKind::PurpleConcrete => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PinkWool => None, - BlockKind::SkeletonSkull => None, - BlockKind::Air => None, - BlockKind::JungleDoor => None, - BlockKind::BlueIce => None, - BlockKind::StrippedBirchLog => None, - BlockKind::PinkCandleCake => None, - BlockKind::Bell => Some(&[ + BlockKind::BlueConcrete => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::BrownConcrete => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Rail => None, - BlockKind::CrimsonStairs => None, - BlockKind::DarkPrismarine => Some(&[ + BlockKind::GreenConcrete => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::WarpedFungus => None, - BlockKind::PottedCornflower => None, - BlockKind::ExposedCopper => Some(&[ libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + ]), + BlockKind::RedConcrete => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::PolishedBasalt => Some(&[ libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::BlackConcrete => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::MossCarpet => None, - BlockKind::MagentaBanner => None, - BlockKind::PottedAzureBluet => None, - BlockKind::AcaciaLog => None, - BlockKind::ChippedAnvil => Some(&[ + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::WhiteConcretePowder => None, + BlockKind::OrangeConcretePowder => None, + BlockKind::MagentaConcretePowder => None, + BlockKind::LightBlueConcretePowder => None, + BlockKind::YellowConcretePowder => None, + BlockKind::LimeConcretePowder => None, + BlockKind::PinkConcretePowder => None, + BlockKind::GrayConcretePowder => None, + BlockKind::LightGrayConcretePowder => None, + BlockKind::CyanConcretePowder => None, + BlockKind::PurpleConcretePowder => None, + BlockKind::BlueConcretePowder => None, + BlockKind::BrownConcretePowder => None, + BlockKind::GreenConcretePowder => None, + BlockKind::RedConcretePowder => None, + BlockKind::BlackConcretePowder => None, + BlockKind::Kelp => None, + BlockKind::KelpPlant => None, + BlockKind::DriedKelpBlock => None, + BlockKind::TurtleEgg => None, + BlockKind::DeadTubeCoralBlock => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DarkOakFence => None, - BlockKind::StrippedAcaciaWood => None, - BlockKind::NoteBlock => None, - BlockKind::StoneBrickWall => Some(&[ + BlockKind::DeadBrainCoralBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::AcaciaWallSign => None, - BlockKind::StoneBrickStairs => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + BlockKind::DeadBubbleCoralBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, - ]), - BlockKind::GreenStainedGlassPane => None, - BlockKind::GlassPane => None, - BlockKind::Jigsaw => Some(&[]), - BlockKind::OrangeTulip => None, - BlockKind::RedGlazedTerracotta => Some(&[ libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DeadFireCoralBlock => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::StrippedDarkOakLog => None, - BlockKind::YellowTerracotta => Some(&[ + BlockKind::DeadHornCoralBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BrownConcretePowder => None, - BlockKind::EndPortal => None, - BlockKind::PurpurSlab => Some(&[ + BlockKind::TubeCoralBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::NetherBrickSlab => Some(&[ libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::DeadBubbleCoral => Some(&[ + BlockKind::BrainCoralBlock => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BirchPressurePlate => None, - BlockKind::GreenShulkerBox => None, - BlockKind::WhiteCandleCake => None, - BlockKind::InfestedMossyStoneBricks => None, - BlockKind::RedStainedGlass => None, - BlockKind::CyanCandleCake => None, - BlockKind::LimeTerracotta => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, + BlockKind::BubbleCoralBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::AcaciaStairs => None, - BlockKind::EndRod => None, - BlockKind::BirchTrapdoor => None, - BlockKind::PinkBed => None, - BlockKind::TripwireHook => None, - BlockKind::OakStairs => None, - BlockKind::GreenWool => None, - BlockKind::AcaciaSapling => None, - BlockKind::BirchPlanks => None, - BlockKind::Snow => Some(&[ - libcraft_items::Item::StoneShovel, - libcraft_items::Item::GoldenShovel, - libcraft_items::Item::NetheriteShovel, - libcraft_items::Item::IronShovel, - libcraft_items::Item::WoodenShovel, - libcraft_items::Item::DiamondShovel, - ]), - BlockKind::DeadTubeCoralBlock => Some(&[ + BlockKind::FireCoralBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::PottedAzaleaBush => None, - BlockKind::MagentaStainedGlass => None, - BlockKind::GraniteStairs => Some(&[ + BlockKind::HornCoralBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::PurpleConcrete => Some(&[ libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::JunglePlanks => None, - BlockKind::StoneBrickSlab => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, + BlockKind::DeadTubeCoral => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::DarkOakStairs => None, - BlockKind::PointedDripstone => None, - BlockKind::DeadFireCoralBlock => Some(&[ + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::SprucePressurePlate => None, - BlockKind::WaxedCutCopperSlab => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + BlockKind::DeadBrainCoral => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::CaveAir => None, - BlockKind::QuartzSlab => Some(&[ + BlockKind::DeadBubbleCoral => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::RedstoneTorch => None, - BlockKind::Grass => None, - BlockKind::CobblestoneStairs => Some(&[ + BlockKind::DeadFireCoral => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DeadHornCoral => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::PottedBlueOrchid => None, - BlockKind::MelonStem => None, - BlockKind::RedConcrete => Some(&[ libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::TubeCoral => None, + BlockKind::BrainCoral => None, + BlockKind::BubbleCoral => None, + BlockKind::FireCoral => None, + BlockKind::HornCoral => None, + BlockKind::DeadTubeCoralFan => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::MushroomStem => None, - BlockKind::CommandBlock => Some(&[]), - BlockKind::WhiteWool => None, - BlockKind::BrownMushroomBlock => None, - BlockKind::JungleStairs => None, - BlockKind::PottedOrangeTulip => None, - BlockKind::BlueConcretePowder => None, - BlockKind::SporeBlossom => None, - BlockKind::OakFenceGate => None, - BlockKind::DriedKelpBlock => None, - BlockKind::CutSandstone => Some(&[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, + BlockKind::DeadBrainCoralFan => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::HornCoralWallFan => None, - BlockKind::MossyCobblestoneWall => Some(&[ + BlockKind::DeadBubbleCoralFan => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, @@ -20361,1045 +20209,1197 @@ impl BlockKind { libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::ZombieHead => None, - BlockKind::RedMushroomBlock => None, - BlockKind::DarkPrismarineStairs => Some(&[ + BlockKind::DeadFireCoralFan => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DeadHornCoralFan => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PolishedAndesiteSlab => Some(&[ + BlockKind::TubeCoralFan => None, + BlockKind::BrainCoralFan => None, + BlockKind::BubbleCoralFan => None, + BlockKind::FireCoralFan => None, + BlockKind::HornCoralFan => None, + BlockKind::DeadTubeCoralWallFan => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::AcaciaLeaves => None, - BlockKind::PolishedGraniteStairs => Some(&[ + BlockKind::DeadBrainCoralWallFan => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DeadBubbleCoralWallFan => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::StrippedAcaciaLog => None, - BlockKind::PrismarineStairs => Some(&[ - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DeadFireCoralWallFan => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::SmoothRedSandstone => Some(&[ + BlockKind::DeadHornCoralWallFan => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::RedCandleCake => None, - BlockKind::Vine => None, - BlockKind::Candle => None, - BlockKind::PurpurStairs => Some(&[ + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, + ]), + BlockKind::TubeCoralWallFan => None, + BlockKind::BrainCoralWallFan => None, + BlockKind::BubbleCoralWallFan => None, + BlockKind::FireCoralWallFan => None, + BlockKind::HornCoralWallFan => None, + BlockKind::SeaPickle => None, + BlockKind::BlueIce => None, + BlockKind::Conduit => None, + BlockKind::BambooSapling => None, + BlockKind::Bamboo => None, + BlockKind::PottedBamboo => None, + BlockKind::VoidAir => None, + BlockKind::CaveAir => None, + BlockKind::BubbleColumn => None, + BlockKind::PolishedGraniteStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::YellowConcrete => Some(&[ + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::SmoothRedSandstoneStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::MossyStoneBrickStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WeatheredCutCopperStairs => Some(&[ + BlockKind::PolishedDioriteStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::WhiteTulip => None, - BlockKind::ChiseledNetherBricks => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::MossyCobblestoneStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - ]), - BlockKind::AttachedMelonStem => None, - BlockKind::DioriteSlab => Some(&[ libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::EndStoneBrickStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::Granite => Some(&[ + BlockKind::StoneStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::SmoothSandstoneStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Fire => None, - BlockKind::Bamboo => None, - BlockKind::BlueShulkerBox => None, - BlockKind::PottedPinkTulip => None, - BlockKind::DiamondOre => Some(&[ + BlockKind::SmoothQuartzStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::LavaCauldron => Some(&[ + BlockKind::GraniteStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::CyanStainedGlassPane => None, - BlockKind::Lava => None, - BlockKind::EndGateway => None, - BlockKind::BrownConcrete => Some(&[ - libcraft_items::Item::IronPickaxe, + BlockKind::AndesiteStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::RedNetherBrickStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::GlowLichen => None, - BlockKind::FireCoralBlock => Some(&[ - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PolishedAndesiteStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::LimeCandle => None, - BlockKind::Grindstone => Some(&[ + BlockKind::DioriteStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::GrayWallBanner => None, - BlockKind::EndStoneBrickSlab => Some(&[ + BlockKind::PolishedGraniteSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::HornCoralFan => None, - BlockKind::CrimsonWallSign => None, - BlockKind::Azalea => None, - BlockKind::CyanConcrete => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, + BlockKind::SmoothRedSandstoneSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::Repeater => None, - BlockKind::SweetBerryBush => None, - BlockKind::PumpkinStem => None, - BlockKind::LimeGlazedTerracotta => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, + ]), + BlockKind::MossyStoneBrickSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DeadFireCoral => Some(&[ + BlockKind::PolishedDioriteSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::Diorite => Some(&[ + BlockKind::MossyCobblestoneSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::EndStoneBrickSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Tripwire => None, - BlockKind::PinkTerracotta => Some(&[ + BlockKind::SmoothSandstoneSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::OakLeaves => None, - BlockKind::ShulkerBox => None, - BlockKind::YellowBed => None, - BlockKind::WhiteConcrete => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::SmoothQuartzSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PottedWhiteTulip => None, - BlockKind::Seagrass => None, - BlockKind::PottedOakSapling => None, - BlockKind::GreenGlazedTerracotta => Some(&[ - libcraft_items::Item::IronPickaxe, + BlockKind::GraniteSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::CoalOre => Some(&[ + BlockKind::AndesiteSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BrownStainedGlass => None, - BlockKind::CobbledDeepslateSlab => Some(&[ + BlockKind::RedNetherBrickSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PolishedAndesiteSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WarpedWartBlock => None, - BlockKind::JungleButton => None, - BlockKind::BlueStainedGlassPane => None, - BlockKind::MagentaConcretePowder => None, - BlockKind::OrangeStainedGlassPane => None, - BlockKind::StrippedJungleLog => None, - BlockKind::WaxedCopperBlock => Some(&[ + BlockKind::DioriteSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::NetherBrickStairs => Some(&[ - libcraft_items::Item::IronPickaxe, + BlockKind::BrickWall => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DeepslateTileWall => Some(&[ + BlockKind::PrismarineWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::RedSandstoneWall => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BlackStainedGlass => None, - BlockKind::JungleWood => None, - BlockKind::OakSlab => None, - BlockKind::RepeatingCommandBlock => Some(&[]), - BlockKind::SpruceButton => None, - BlockKind::YellowStainedGlass => None, - BlockKind::Anvil => Some(&[ + BlockKind::MossyStoneBrickWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::GraniteWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::StoneBrickWall => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::BirchSapling => None, - BlockKind::StrippedCrimsonStem => None, - BlockKind::GraniteSlab => Some(&[ libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::NetherBrickWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::AndesiteWall => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::Light => None, - BlockKind::SmoothSandstoneStairs => Some(&[ libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::RedNetherBrickWall => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::AzaleaLeaves => None, - BlockKind::WaxedWeatheredCutCopperSlab => Some(&[ libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::SandstoneWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Sponge => None, - BlockKind::WaxedWeatheredCutCopperStairs => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::EndStoneBrickWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::MagentaBed => None, - BlockKind::FireCoral => None, - BlockKind::LightBlueGlazedTerracotta => Some(&[ - libcraft_items::Item::DiamondPickaxe, + BlockKind::DioriteWall => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::OrangeGlazedTerracotta => Some(&[ + BlockKind::Scaffolding => None, + BlockKind::Loom => None, + BlockKind::Barrel => None, + BlockKind::Smoker => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::StoneButton => None, - BlockKind::LimeConcrete => Some(&[ + BlockKind::BlastFurnace => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::CartographyTable => None, + BlockKind::FletchingTable => None, + BlockKind::Grindstone => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::SugarCane => None, - BlockKind::PottedWarpedRoots => None, - BlockKind::OrangeWallBanner => None, - BlockKind::AndesiteStairs => Some(&[ - libcraft_items::Item::IronPickaxe, + BlockKind::Lectern => None, + BlockKind::SmithingTable => None, + BlockKind::Stonecutter => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::Bell => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Gravel => None, - BlockKind::CyanCarpet => None, - BlockKind::Fern => None, - BlockKind::BirchFence => None, - BlockKind::Bedrock => None, - BlockKind::QuartzStairs => Some(&[ + BlockKind::Lantern => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::TubeCoralFan => None, - BlockKind::WarpedPressurePlate => None, - BlockKind::BrainCoralBlock => Some(&[ - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, + BlockKind::SoulLantern => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DripstoneBlock => Some(&[ + BlockKind::Campfire => None, + BlockKind::SoulCampfire => None, + BlockKind::SweetBerryBush => None, + BlockKind::WarpedStem => None, + BlockKind::StrippedWarpedStem => None, + BlockKind::WarpedHyphae => None, + BlockKind::StrippedWarpedHyphae => None, + BlockKind::WarpedNylium => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::WarpedFungus => None, + BlockKind::WarpedWartBlock => None, + BlockKind::WarpedRoots => None, + BlockKind::NetherSprouts => None, + BlockKind::CrimsonStem => None, + BlockKind::StrippedCrimsonStem => None, + BlockKind::CrimsonHyphae => None, + BlockKind::StrippedCrimsonHyphae => None, + BlockKind::CrimsonNylium => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), + BlockKind::CrimsonFungus => None, + BlockKind::Shroomlight => None, + BlockKind::WeepingVines => None, + BlockKind::WeepingVinesPlant => None, + BlockKind::TwistingVines => None, + BlockKind::TwistingVinesPlant => None, + BlockKind::CrimsonRoots => None, + BlockKind::CrimsonPlanks => None, + BlockKind::WarpedPlanks => None, + BlockKind::CrimsonSlab => None, + BlockKind::WarpedSlab => None, + BlockKind::CrimsonPressurePlate => None, + BlockKind::WarpedPressurePlate => None, + BlockKind::CrimsonFence => None, + BlockKind::WarpedFence => None, + BlockKind::CrimsonTrapdoor => None, + BlockKind::WarpedTrapdoor => None, + BlockKind::CrimsonFenceGate => None, + BlockKind::WarpedFenceGate => None, + BlockKind::CrimsonStairs => None, + BlockKind::WarpedStairs => None, + BlockKind::CrimsonButton => None, + BlockKind::WarpedButton => None, + BlockKind::CrimsonDoor => None, + BlockKind::WarpedDoor => None, + BlockKind::CrimsonSign => None, + BlockKind::WarpedSign => None, + BlockKind::CrimsonWallSign => None, + BlockKind::WarpedWallSign => None, + BlockKind::StructureBlock => Some(&[]), + BlockKind::Jigsaw => Some(&[]), + BlockKind::Composter => None, + BlockKind::Target => None, BlockKind::BeeNest => None, - BlockKind::GrayCandle => None, - BlockKind::MagentaStainedGlassPane => None, - BlockKind::SpruceFenceGate => None, - BlockKind::RedstoneBlock => Some(&[ - libcraft_items::Item::StonePickaxe, + BlockKind::Beehive => None, + BlockKind::HoneyBlock => None, + BlockKind::HoneycombBlock => None, + BlockKind::NetheriteBlock => Some(&[ libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::RedSand => None, - BlockKind::RawIronBlock => Some(&[ + BlockKind::AncientDebris => Some(&[ libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PolishedAndesiteStairs => Some(&[ + BlockKind::CryingObsidian => Some(&[ + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, + ]), + BlockKind::RespawnAnchor => Some(&[ libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PottedCrimsonFungus => None, + BlockKind::PottedWarpedFungus => None, + BlockKind::PottedCrimsonRoots => None, + BlockKind::PottedWarpedRoots => None, + BlockKind::Lodestone => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::AzureBluet => None, - BlockKind::LightBlueWool => None, - BlockKind::PurpleCarpet => None, - BlockKind::BlueBed => None, - BlockKind::NetherPortal => None, - BlockKind::PackedIce => None, - BlockKind::InfestedStone => None, - BlockKind::RedShulkerBox => None, - BlockKind::LimeWallBanner => None, - BlockKind::OakWallSign => None, - BlockKind::WhiteGlazedTerracotta => Some(&[ + BlockKind::Blackstone => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::KelpPlant => None, - BlockKind::FletchingTable => None, - BlockKind::WarpedDoor => None, - BlockKind::ChorusPlant => None, - BlockKind::ChiseledStoneBricks => Some(&[ + BlockKind::BlackstoneStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, + ]), + BlockKind::BlackstoneWall => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BlackBanner => None, - BlockKind::PrismarineWall => Some(&[ + BlockKind::BlackstoneSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::GreenBed => None, - BlockKind::CrimsonTrapdoor => None, - BlockKind::CyanStainedGlass => None, - BlockKind::CrimsonFungus => None, - BlockKind::OrangeCandle => None, - BlockKind::DarkOakPressurePlate => None, - BlockKind::PurpleConcretePowder => None, - BlockKind::HoneycombBlock => None, - BlockKind::CrimsonNylium => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, + BlockKind::PolishedBlackstone => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DeadBubbleCoralBlock => Some(&[ + BlockKind::PolishedBlackstoneBricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::CrackedPolishedBlackstoneBricks => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, - ]), - BlockKind::ExposedCutCopperSlab => Some(&[ - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::LimeStainedGlass => None, - BlockKind::RedCandle => None, - BlockKind::WaxedOxidizedCutCopperStairs => Some(&[ libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::ChiseledPolishedBlackstone => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PolishedBlackstoneBrickSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), BlockKind::PolishedBlackstoneBrickStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, + ]), + BlockKind::PolishedBlackstoneBrickWall => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::FireCoralWallFan => None, - BlockKind::BlackStainedGlassPane => None, - BlockKind::Peony => None, - BlockKind::WitherSkeletonSkull => None, - BlockKind::Cactus => None, - BlockKind::GrayGlazedTerracotta => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::GildedBlackstone => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, - ]), - BlockKind::OxidizedCopper => Some(&[ + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PolishedBlackstoneStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::GrayConcrete => Some(&[ + BlockKind::PolishedBlackstoneSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PolishedBlackstonePressurePlate => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::Calcite => Some(&[ + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PolishedBlackstoneButton => None, + BlockKind::PolishedBlackstoneWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Jukebox => None, - BlockKind::JungleFenceGate => None, - BlockKind::BubbleCoralBlock => Some(&[ + BlockKind::ChiseledNetherBricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::CrackedNetherBricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PoweredRail => None, - BlockKind::LimeBed => None, - BlockKind::Piston => None, - BlockKind::VoidAir => None, - BlockKind::SmoothRedSandstoneSlab => Some(&[ + BlockKind::QuartzBricks => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::WarpedSign => None, + BlockKind::Candle => None, + BlockKind::WhiteCandle => None, + BlockKind::OrangeCandle => None, + BlockKind::MagentaCandle => None, + BlockKind::LightBlueCandle => None, + BlockKind::YellowCandle => None, + BlockKind::LimeCandle => None, + BlockKind::PinkCandle => None, + BlockKind::GrayCandle => None, + BlockKind::LightGrayCandle => None, + BlockKind::CyanCandle => None, + BlockKind::PurpleCandle => None, + BlockKind::BlueCandle => None, BlockKind::BrownCandle => None, - BlockKind::PolishedDeepslate => Some(&[ - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, + BlockKind::GreenCandle => None, + BlockKind::RedCandle => None, + BlockKind::BlackCandle => None, + BlockKind::CandleCake => None, + BlockKind::WhiteCandleCake => None, + BlockKind::OrangeCandleCake => None, + BlockKind::MagentaCandleCake => None, + BlockKind::LightBlueCandleCake => None, + BlockKind::YellowCandleCake => None, + BlockKind::LimeCandleCake => None, + BlockKind::PinkCandleCake => None, + BlockKind::GrayCandleCake => None, + BlockKind::LightGrayCandleCake => None, + BlockKind::CyanCandleCake => None, + BlockKind::PurpleCandleCake => None, + BlockKind::BlueCandleCake => None, + BlockKind::BrownCandleCake => None, + BlockKind::GreenCandleCake => None, + BlockKind::RedCandleCake => None, + BlockKind::BlackCandleCake => None, + BlockKind::AmethystBlock => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::Cake => None, - BlockKind::Terracotta => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::WoodenPickaxe, - ]), - BlockKind::PurpleWallBanner => None, - BlockKind::MagmaBlock => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::CrackedNetherBricks => Some(&[ + BlockKind::BuddingAmethyst => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::GreenWallBanner => None, - BlockKind::RedMushroom => None, - BlockKind::PottedWitherRose => None, - BlockKind::PolishedBlackstoneButton => None, - BlockKind::RedNetherBrickWall => Some(&[ + BlockKind::AmethystCluster => None, + BlockKind::LargeAmethystBud => None, + BlockKind::MediumAmethystBud => None, + BlockKind::SmallAmethystBud => None, + BlockKind::Tuff => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DirtPath => None, - BlockKind::PottedRedMushroom => None, - BlockKind::BirchButton => None, - BlockKind::CoalBlock => Some(&[ + BlockKind::Calcite => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, ]), - BlockKind::WeepingVines => None, - BlockKind::CutRedSandstone => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, + BlockKind::TintedGlass => None, + BlockKind::PowderSnow => None, + BlockKind::SculkSensor => None, + BlockKind::OxidizedCopper => Some(&[ libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::CrimsonDoor => None, - BlockKind::WarpedStem => None, - BlockKind::CrackedPolishedBlackstoneBricks => Some(&[ + BlockKind::WeatheredCopper => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::MossyStoneBrickSlab => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, + BlockKind::ExposedCopper => Some(&[ libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::CopperBlock => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BirchSlab => None, - BlockKind::PinkStainedGlass => None, - BlockKind::CrackedDeepslateTiles => Some(&[ + BlockKind::CopperOre => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DeepslateCopperOre => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WitherSkeletonWallSkull => None, - BlockKind::MagentaCandle => None, - BlockKind::BrownMushroom => None, - BlockKind::SoulTorch => None, - BlockKind::PurpurPillar => Some(&[ + BlockKind::OxidizedCutCopper => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::WeatheredCutCopper => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::ExposedCutCopper => Some(&[ libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DarkOakWallSign => None, - BlockKind::DeepslateBrickSlab => Some(&[ + BlockKind::CutCopper => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::OxidizedCutCopperStairs => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::WeatheredCutCopperStairs => Some(&[ libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PolishedAndesite => Some(&[ - libcraft_items::Item::GoldenPickaxe, + BlockKind::ExposedCutCopperStairs => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::CutCopperStairs => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::OxidizedCutCopperSlab => Some(&[ libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::RootedDirt => None, - BlockKind::OxidizedCutCopperStairs => Some(&[ + BlockKind::WeatheredCutCopperSlab => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::WaxedCutCopper => Some(&[ libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::ExposedCutCopperSlab => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BrickWall => Some(&[ + BlockKind::CutCopperSlab => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, ]), - BlockKind::InfestedCobblestone => None, - BlockKind::CutRedSandstoneSlab => Some(&[ + BlockKind::WaxedCopperBlock => Some(&[ libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::DeepslateEmeraldOre => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, + BlockKind::WaxedWeatheredCopper => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::YellowShulkerBox => None, - BlockKind::StrippedSpruceWood => None, - BlockKind::LimeConcretePowder => None, - BlockKind::LightGrayCandle => None, - BlockKind::NetherWartBlock => None, - BlockKind::IronTrapdoor => Some(&[ + BlockKind::WaxedExposedCopper => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BlackConcrete => Some(&[ - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, + BlockKind::WaxedOxidizedCopper => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DeepslateIronOre => Some(&[ + BlockKind::WaxedOxidizedCutCopper => Some(&[ + libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::WaxedWeatheredCutCopper => Some(&[ libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WhiteCarpet => None, - BlockKind::LightBlueCarpet => None, - BlockKind::PottedRedTulip => None, - BlockKind::SmoothQuartz => Some(&[ - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::IronPickaxe, + BlockKind::WaxedExposedCutCopper => Some(&[ libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::StrippedOakLog => None, - BlockKind::LimeBanner => None, - BlockKind::DeadBrainCoralBlock => Some(&[ + BlockKind::WaxedCutCopper => Some(&[ libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::PottedBamboo => None, - BlockKind::PottedAllium => None, - BlockKind::CartographyTable => None, - BlockKind::PurpleStainedGlass => None, - BlockKind::DragonHead => None, - BlockKind::PinkCandle => None, - BlockKind::WarpedRoots => None, - BlockKind::QuartzPillar => Some(&[ + BlockKind::WaxedOxidizedCutCopperStairs => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::SpruceDoor => None, - BlockKind::Lantern => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::WaxedWeatheredCutCopperStairs => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), BlockKind::WaxedExposedCutCopperStairs => Some(&[ - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Lodestone => Some(&[ + BlockKind::WaxedCutCopperStairs => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WetSponge => None, - BlockKind::FireCoralFan => None, - BlockKind::PolishedBlackstoneBricks => Some(&[ - libcraft_items::Item::WoodenPickaxe, + BlockKind::WaxedOxidizedCutCopperSlab => Some(&[ + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::WaxedWeatheredCutCopperSlab => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::Scaffolding => None, - BlockKind::WhiteCandle => None, - BlockKind::PottedDandelion => None, - BlockKind::StrippedBirchWood => None, - BlockKind::WhiteBanner => None, - BlockKind::JungleSlab => None, - BlockKind::BlastFurnace => Some(&[ - libcraft_items::Item::WoodenPickaxe, + BlockKind::WaxedExposedCutCopperSlab => Some(&[ libcraft_items::Item::StonePickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, ]), - BlockKind::RedNetherBricks => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + BlockKind::WaxedCutCopperSlab => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::RedSandstoneStairs => Some(&[ libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::LightningRod => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::GoldOre => Some(&[ + BlockKind::PointedDripstone => None, + BlockKind::DripstoneBlock => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::TubeCoralWallFan => None, - BlockKind::DeadFireCoralWallFan => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, + BlockKind::CaveVines => None, + BlockKind::CaveVinesPlant => None, + BlockKind::SporeBlossom => None, + BlockKind::Azalea => None, + BlockKind::FloweringAzalea => None, + BlockKind::MossCarpet => None, + BlockKind::MossBlock => None, + BlockKind::BigDripleaf => None, + BlockKind::BigDripleafStem => None, + BlockKind::SmallDripleaf => None, + BlockKind::HangingRoots => None, + BlockKind::RootedDirt => None, + BlockKind::Deepslate => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, - ]), - BlockKind::Stone => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, + ]), + BlockKind::CobbledDeepslate => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PinkGlazedTerracotta => Some(&[ + BlockKind::CobbledDeepslateStairs => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::WoodenPickaxe, ]), - BlockKind::DeadTubeCoralWallFan => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::CobbledDeepslateSlab => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::CobbledDeepslateWall => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::OxeyeDaisy => None, - BlockKind::LilyOfTheValley => None, - BlockKind::BirchStairs => None, - BlockKind::SoulLantern => Some(&[ + BlockKind::PolishedDeepslate => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::PolishedDeepslateStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - ]), - BlockKind::LightBlueStainedGlassPane => None, - BlockKind::ChiseledRedSandstone => Some(&[ libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::PolishedDeepslateSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::JungleSapling => None, - BlockKind::TallGrass => None, - BlockKind::LightBlueWallBanner => None, - BlockKind::BirchSign => None, - BlockKind::NetherQuartzOre => Some(&[ + BlockKind::PolishedDeepslateWall => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::NetheritePickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BlueConcrete => Some(&[ + BlockKind::DeepslateTiles => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::OakPressurePlate => None, - BlockKind::DeadBrainCoralWallFan => Some(&[ + BlockKind::DeepslateTileStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::WallTorch => None, - BlockKind::CrimsonPlanks => None, - BlockKind::GraniteWall => Some(&[ - libcraft_items::Item::GoldenPickaxe, + BlockKind::DeepslateTileSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::DeepslateTileWall => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::CrimsonFence => None, - BlockKind::PolishedBlackstone => Some(&[ + BlockKind::DeepslateBricks => Some(&[ + libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, + ]), + BlockKind::DeepslateBrickStairs => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::PottedDarkOakSapling => None, - BlockKind::Furnace => Some(&[ + BlockKind::DeepslateBrickSlab => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::IronDoor => Some(&[ - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::NetheritePickaxe, + BlockKind::DeepslateBrickWall => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::IronPickaxe, - ]), - BlockKind::TubeCoral => None, - BlockKind::PottedBirchSapling => None, - BlockKind::LightGrayBanner => None, - BlockKind::DarkOakSign => None, - BlockKind::DeadBubbleCoralWallFan => Some(&[ + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::ChiseledDeepslate => Some(&[ libcraft_items::Item::WoodenPickaxe, + libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::StonePickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::SpruceTrapdoor => None, - BlockKind::GreenBanner => None, - BlockKind::BlackCandle => None, - BlockKind::OrangeTerracotta => Some(&[ + BlockKind::CrackedDeepslateBricks => Some(&[ libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::IronPickaxe, libcraft_items::Item::StonePickaxe, libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::Ice => None, - BlockKind::PottedFern => None, - BlockKind::GrayWool => None, - BlockKind::PinkTulip => None, - BlockKind::WhiteStainedGlass => None, - BlockKind::Comparator => None, - BlockKind::DeadHornCoralBlock => Some(&[ - libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::StonePickaxe, libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::DaylightDetector => None, - BlockKind::BirchLeaves => None, - BlockKind::LightBlueStainedGlass => None, - BlockKind::BrownCarpet => None, - BlockKind::WaxedExposedCutCopper => Some(&[ - libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::DiamondPickaxe, + BlockKind::CrackedDeepslateTiles => Some(&[ + libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, - ]), - BlockKind::WarpedFence => None, - BlockKind::NetheriteBlock => Some(&[ libcraft_items::Item::DiamondPickaxe, libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::HangingRoots => None, - BlockKind::GrayConcretePowder => None, - BlockKind::YellowCandleCake => None, - BlockKind::EnderChest => Some(&[ - libcraft_items::Item::NetheritePickaxe, + BlockKind::InfestedDeepslate => None, + BlockKind::SmoothBasalt => Some(&[ libcraft_items::Item::WoodenPickaxe, libcraft_items::Item::StonePickaxe, + libcraft_items::Item::GoldenPickaxe, libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::GoldenPickaxe, - ]), - BlockKind::PottedFloweringAzaleaBush => None, - BlockKind::CoarseDirt => None, - BlockKind::SandstoneSlab => Some(&[ libcraft_items::Item::NetheritePickaxe, - libcraft_items::Item::GoldenPickaxe, - libcraft_items::Item::IronPickaxe, - libcraft_items::Item::WoodenPickaxe, + ]), + BlockKind::RawIronBlock => Some(&[ libcraft_items::Item::StonePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), - BlockKind::BlackstoneSlab => Some(&[ + BlockKind::RawCopperBlock => Some(&[ libcraft_items::Item::StonePickaxe, - libcraft_items::Item::NetheritePickaxe, + libcraft_items::Item::IronPickaxe, libcraft_items::Item::DiamondPickaxe, - libcraft_items::Item::WoodenPickaxe, - libcraft_items::Item::GoldenPickaxe, + libcraft_items::Item::NetheritePickaxe, + ]), + BlockKind::RawGoldBlock => Some(&[ libcraft_items::Item::IronPickaxe, + libcraft_items::Item::DiamondPickaxe, + libcraft_items::Item::NetheritePickaxe, ]), + BlockKind::PottedAzaleaBush => None, + BlockKind::PottedFloweringAzaleaBush => None, } } } @@ -21408,904 +21408,904 @@ impl BlockKind { #[inline] pub fn drops(&self) -> &'static [libcraft_items::Item] { match self { - BlockKind::SeaPickle => &[], - BlockKind::MagentaCandleCake => &[], - BlockKind::LightGrayConcrete => &[], - BlockKind::BubbleCoralFan => &[], - BlockKind::CraftingTable => &[], - BlockKind::LargeAmethystBud => &[], - BlockKind::GreenStainedGlass => &[], - BlockKind::Melon => &[], - BlockKind::ChiseledPolishedBlackstone => &[], - BlockKind::PottedOrangeTulip => &[], - BlockKind::GrayGlazedTerracotta => &[], - BlockKind::Tripwire => &[], - BlockKind::DriedKelpBlock => &[], - BlockKind::BlueBanner => &[], - BlockKind::ZombieWallHead => &[], - BlockKind::GrayConcretePowder => &[], - BlockKind::GrayStainedGlassPane => &[], - BlockKind::LilyOfTheValley => &[], - BlockKind::PurpleWallBanner => &[], - BlockKind::WeatheredCutCopperStairs => &[], - BlockKind::WarpedWartBlock => &[], - BlockKind::MagentaStainedGlass => &[], - BlockKind::RedWallBanner => &[], - BlockKind::AcaciaSapling => &[], - BlockKind::PottedPinkTulip => &[], + BlockKind::Air => &[], BlockKind::Stone => &[], - BlockKind::CreeperWallHead => &[], - BlockKind::FireCoralFan => &[], - BlockKind::BirchPressurePlate => &[], - BlockKind::AndesiteSlab => &[], - BlockKind::Sunflower => &[], - BlockKind::GreenCandle => &[], BlockKind::Granite => &[], - BlockKind::BirchButton => &[], - BlockKind::Anvil => &[], - BlockKind::PurpurSlab => &[], - BlockKind::PinkCandleCake => &[], - BlockKind::CaveVinesPlant => &[], - BlockKind::JungleWallSign => &[], - BlockKind::Candle => &[], - BlockKind::WaxedOxidizedCutCopperStairs => &[], - BlockKind::CrackedDeepslateTiles => &[], - BlockKind::Barrel => &[], - BlockKind::StonePressurePlate => &[], - BlockKind::GildedBlackstone => &[], - BlockKind::Farmland => &[], - BlockKind::OrangeTerracotta => &[], - BlockKind::BlueOrchid => &[], - BlockKind::BlueStainedGlass => &[], - BlockKind::CyanCandle => &[], - BlockKind::InfestedCobblestone => &[], - BlockKind::Clay => &[], - BlockKind::StrippedDarkOakWood => &[], - BlockKind::CyanTerracotta => &[], - BlockKind::Gravel => &[], - BlockKind::CyanCandleCake => &[], - BlockKind::OakLeaves => &[], - BlockKind::CrimsonFungus => &[], - BlockKind::RedNetherBrickWall => &[], - BlockKind::AcaciaFence => &[], - BlockKind::TwistingVines => &[], - BlockKind::PinkTulip => &[], - BlockKind::RedBed => &[], - BlockKind::Observer => &[], - BlockKind::PinkGlazedTerracotta => &[], - BlockKind::PurpleConcretePowder => &[], - BlockKind::Cactus => &[], - BlockKind::Fern => &[], - BlockKind::DarkPrismarineStairs => &[], - BlockKind::RedSandstoneSlab => &[], - BlockKind::DioriteStairs => &[], - BlockKind::PottedRedMushroom => &[], - BlockKind::OrangeConcretePowder => &[], - BlockKind::CryingObsidian => &[], - BlockKind::CobbledDeepslateWall => &[], - BlockKind::Chest => &[], - BlockKind::PrismarineBricks => &[], - BlockKind::Bricks => &[], - BlockKind::OakWallSign => &[], - BlockKind::RedStainedGlassPane => &[], - BlockKind::TrappedChest => &[], - BlockKind::OxidizedCutCopperSlab => &[], - BlockKind::CobbledDeepslateSlab => &[], - BlockKind::LightGrayTerracotta => &[], - BlockKind::GrayShulkerBox => &[], - BlockKind::DeadHornCoralFan => &[], - BlockKind::LightBlueCandleCake => &[], - BlockKind::CrimsonButton => &[], - BlockKind::DeepslateEmeraldOre => &[], - BlockKind::WaxedCutCopperStairs => &[], - BlockKind::SkeletonWallSkull => &[], - BlockKind::CoalOre => &[], - BlockKind::RedNetherBrickStairs => &[], - BlockKind::Bell => &[], - BlockKind::AttachedMelonStem => &[], - BlockKind::NoteBlock => &[], - BlockKind::LightGrayBanner => &[], - BlockKind::Conduit => &[], - BlockKind::ExposedCopper => &[], - BlockKind::ActivatorRail => &[], - BlockKind::Dropper => &[], - BlockKind::BlackConcretePowder => &[], - BlockKind::LimeConcrete => &[], - BlockKind::BirchDoor => &[], - BlockKind::CobbledDeepslateStairs => &[], - BlockKind::WaxedExposedCutCopperSlab => &[], - BlockKind::GreenCandleCake => &[], - BlockKind::YellowBanner => &[], - BlockKind::BlackStainedGlass => &[], - BlockKind::ChiseledStoneBricks => &[], - BlockKind::SoulWallTorch => &[], - BlockKind::WhiteBanner => &[], - BlockKind::RedGlazedTerracotta => &[], - BlockKind::PinkCarpet => &[], - BlockKind::DarkOakTrapdoor => &[], - BlockKind::BirchLog => &[], - BlockKind::MossyCobblestoneWall => &[], - BlockKind::BrownCarpet => &[], - BlockKind::BrownMushroomBlock => &[], - BlockKind::MossyStoneBricks => &[], - BlockKind::CyanGlazedTerracotta => &[], - BlockKind::RootedDirt => &[], - BlockKind::NetherWart => &[], - BlockKind::WarpedPlanks => &[], - BlockKind::CyanWallBanner => &[], - BlockKind::GoldOre => &[], - BlockKind::Stonecutter => &[], - BlockKind::NetherWartBlock => &[], - BlockKind::EmeraldBlock => &[], - BlockKind::MagentaTerracotta => &[], - BlockKind::OrangeGlazedTerracotta => &[], - BlockKind::LightBlueConcrete => &[], - BlockKind::SmoothRedSandstoneStairs => &[], - BlockKind::CyanConcrete => &[], - BlockKind::BrownCandleCake => &[], - BlockKind::BlueWool => &[], - BlockKind::NetherBrickWall => &[], - BlockKind::OakPressurePlate => &[], - BlockKind::FireCoralBlock => &[], - BlockKind::LightBlueWallBanner => &[], - BlockKind::NetherBrickSlab => &[], - BlockKind::HoneyBlock => &[], - BlockKind::GraniteWall => &[], - BlockKind::SkeletonSkull => &[], - BlockKind::CyanConcretePowder => &[], - BlockKind::QuartzBlock => &[], - BlockKind::RedMushroomBlock => &[], - BlockKind::SoulTorch => &[], - BlockKind::RedSandstoneWall => &[], - BlockKind::DeadTubeCoralWallFan => &[], - BlockKind::AcaciaFenceGate => &[], - BlockKind::PinkTerracotta => &[], - BlockKind::StoneBrickSlab => &[], - BlockKind::SpruceDoor => &[], - BlockKind::AmethystCluster => &[], - BlockKind::BlueStainedGlassPane => &[], + BlockKind::PolishedGranite => &[], + BlockKind::Diorite => &[], + BlockKind::PolishedDiorite => &[], + BlockKind::Andesite => &[], + BlockKind::PolishedAndesite => &[], + BlockKind::GrassBlock => &[], + BlockKind::Dirt => &[], + BlockKind::CoarseDirt => &[], + BlockKind::Podzol => &[], + BlockKind::Cobblestone => &[], + BlockKind::OakPlanks => &[], + BlockKind::SprucePlanks => &[], + BlockKind::BirchPlanks => &[], + BlockKind::JunglePlanks => &[], + BlockKind::AcaciaPlanks => &[], + BlockKind::DarkOakPlanks => &[], + BlockKind::OakSapling => &[], + BlockKind::SpruceSapling => &[], + BlockKind::BirchSapling => &[], + BlockKind::JungleSapling => &[], + BlockKind::AcaciaSapling => &[], + BlockKind::DarkOakSapling => &[], + BlockKind::Bedrock => &[], + BlockKind::Water => &[], + BlockKind::Lava => &[], + BlockKind::Sand => &[], + BlockKind::RedSand => &[], + BlockKind::Gravel => &[], + BlockKind::GoldOre => &[], + BlockKind::DeepslateGoldOre => &[], + BlockKind::IronOre => &[], + BlockKind::DeepslateIronOre => &[], + BlockKind::CoalOre => &[], + BlockKind::DeepslateCoalOre => &[], + BlockKind::NetherGoldOre => &[], + BlockKind::OakLog => &[], + BlockKind::SpruceLog => &[], + BlockKind::BirchLog => &[], + BlockKind::JungleLog => &[], BlockKind::AcaciaLog => &[], - BlockKind::Barrier => &[], - BlockKind::WaxedWeatheredCopper => &[], - BlockKind::PottedCactus => &[], - BlockKind::YellowWallBanner => &[], - BlockKind::DarkOakSign => &[], - BlockKind::LightBlueCarpet => &[], - BlockKind::Lantern => &[], - BlockKind::DetectorRail => &[], - BlockKind::AndesiteStairs => &[], - BlockKind::BlackstoneWall => &[], - BlockKind::RespawnAnchor => &[], - BlockKind::SmallAmethystBud => &[], - BlockKind::BlackTerracotta => &[], - BlockKind::StructureVoid => &[], - BlockKind::PackedIce => &[], - BlockKind::HornCoralFan => &[], - BlockKind::NetherBricks => &[], - BlockKind::TallSeagrass => &[], - BlockKind::JungleSign => &[], + BlockKind::DarkOakLog => &[], + BlockKind::StrippedSpruceLog => &[], + BlockKind::StrippedBirchLog => &[], + BlockKind::StrippedJungleLog => &[], BlockKind::StrippedAcaciaLog => &[], - BlockKind::BlueCandle => &[], - BlockKind::BlueConcrete => &[], - BlockKind::PottedCrimsonRoots => &[], - BlockKind::BubbleColumn => &[], - BlockKind::DioriteWall => &[], - BlockKind::SmoothQuartz => &[], - BlockKind::Deepslate => &[], - BlockKind::DeepslateGoldOre => &[], - BlockKind::StrippedWarpedHyphae => &[], - BlockKind::RedCarpet => &[], - BlockKind::PottedCrimsonFungus => &[], - BlockKind::CobbledDeepslate => &[], - BlockKind::Poppy => &[], - BlockKind::BlackCandle => &[], - BlockKind::MagentaShulkerBox => &[], - BlockKind::InfestedMossyStoneBricks => &[], - BlockKind::MagentaGlazedTerracotta => &[], - BlockKind::DeadHornCoralBlock => &[], - BlockKind::HornCoralWallFan => &[], + BlockKind::StrippedDarkOakLog => &[], + BlockKind::StrippedOakLog => &[], + BlockKind::OakWood => &[], + BlockKind::SpruceWood => &[], + BlockKind::BirchWood => &[], + BlockKind::JungleWood => &[], + BlockKind::AcaciaWood => &[], BlockKind::DarkOakWood => &[], - BlockKind::OakButton => &[], - BlockKind::OrangeWool => &[], - BlockKind::Lilac => &[], - BlockKind::YellowGlazedTerracotta => &[], - BlockKind::Bookshelf => &[], - BlockKind::WarpedDoor => &[], - BlockKind::PottedAzureBluet => &[], + BlockKind::StrippedOakWood => &[], BlockKind::StrippedSpruceWood => &[], - BlockKind::TallGrass => &[], - BlockKind::BrainCoralFan => &[], - BlockKind::StoneStairs => &[], - BlockKind::CrimsonSlab => &[], - BlockKind::DarkPrismarine => &[], - BlockKind::WaxedWeatheredCutCopperSlab => &[], - BlockKind::AcaciaSlab => &[], - BlockKind::BrownMushroom => &[], - BlockKind::SmallDripleaf => &[], - BlockKind::PottedBlueOrchid => &[], - BlockKind::SmoothBasalt => &[], - BlockKind::IronBlock => &[], - BlockKind::Tnt => &[], - BlockKind::Diorite => &[], - BlockKind::DeadTubeCoralFan => &[], - BlockKind::JackOLantern => &[], - BlockKind::OrangeShulkerBox => &[], - BlockKind::Composter => &[], - BlockKind::DeepslateLapisOre => &[], - BlockKind::Allium => &[], - BlockKind::SoulFire => &[], - BlockKind::DeepslateTileSlab => &[], - BlockKind::YellowStainedGlass => &[], - BlockKind::PottedPoppy => &[], - BlockKind::WhiteConcretePowder => &[], - BlockKind::YellowCandle => &[], - BlockKind::NetherQuartzOre => &[], - BlockKind::HayBlock => &[], - BlockKind::RoseBush => &[], - BlockKind::SmoothStoneSlab => &[], - BlockKind::MagentaCarpet => &[], - BlockKind::DeadBrainCoralBlock => &[], - BlockKind::EndStoneBricks => &[], - BlockKind::CrimsonDoor => &[], - BlockKind::LargeFern => &[], - BlockKind::DarkOakStairs => &[], - BlockKind::OrangeBanner => &[], - BlockKind::JungleTrapdoor => &[], - BlockKind::ExposedCutCopperStairs => &[], - BlockKind::BlueTerracotta => &[], + BlockKind::StrippedBirchWood => &[], BlockKind::StrippedJungleWood => &[], - BlockKind::RedSand => &[], - BlockKind::SpruceButton => &[], - BlockKind::WhiteCarpet => &[], - BlockKind::CyanCarpet => &[], - BlockKind::PowderSnowCauldron => &[], - BlockKind::WarpedStem => &[], - BlockKind::CrimsonSign => &[], - BlockKind::GrayCandle => &[], - BlockKind::AcaciaWood => &[], - BlockKind::ZombieHead => &[], - BlockKind::YellowCarpet => &[], - BlockKind::AzureBluet => &[], - BlockKind::LilyPad => &[], - BlockKind::Comparator => &[], - BlockKind::WaxedExposedCutCopperStairs => &[], - BlockKind::Jigsaw => &[], + BlockKind::StrippedAcaciaWood => &[], + BlockKind::StrippedDarkOakWood => &[], + BlockKind::OakLeaves => &[], + BlockKind::SpruceLeaves => &[], + BlockKind::BirchLeaves => &[], + BlockKind::JungleLeaves => &[], + BlockKind::AcaciaLeaves => &[], + BlockKind::DarkOakLeaves => &[], + BlockKind::AzaleaLeaves => &[], + BlockKind::FloweringAzaleaLeaves => &[], + BlockKind::Sponge => &[], + BlockKind::WetSponge => &[], + BlockKind::Glass => &[], + BlockKind::LapisOre => &[], + BlockKind::DeepslateLapisOre => &[], + BlockKind::LapisBlock => &[], + BlockKind::Dispenser => &[], + BlockKind::Sandstone => &[], + BlockKind::ChiseledSandstone => &[], + BlockKind::CutSandstone => &[], + BlockKind::NoteBlock => &[], + BlockKind::WhiteBed => &[], + BlockKind::OrangeBed => &[], + BlockKind::MagentaBed => &[], + BlockKind::LightBlueBed => &[], + BlockKind::YellowBed => &[], + BlockKind::LimeBed => &[], + BlockKind::PinkBed => &[], + BlockKind::GrayBed => &[], + BlockKind::LightGrayBed => &[], + BlockKind::CyanBed => &[], BlockKind::PurpleBed => &[], + BlockKind::BlueBed => &[], + BlockKind::BrownBed => &[], + BlockKind::GreenBed => &[], + BlockKind::RedBed => &[], + BlockKind::BlackBed => &[], + BlockKind::PoweredRail => &[], + BlockKind::DetectorRail => &[], + BlockKind::StickyPiston => &[], + BlockKind::Cobweb => &[], + BlockKind::Grass => &[], + BlockKind::Fern => &[], + BlockKind::DeadBush => &[], + BlockKind::Seagrass => &[], + BlockKind::TallSeagrass => &[], + BlockKind::Piston => &[], + BlockKind::PistonHead => &[], + BlockKind::WhiteWool => &[], + BlockKind::OrangeWool => &[], + BlockKind::MagentaWool => &[], + BlockKind::LightBlueWool => &[], + BlockKind::YellowWool => &[], + BlockKind::LimeWool => &[], + BlockKind::PinkWool => &[], + BlockKind::GrayWool => &[], BlockKind::LightGrayWool => &[], - BlockKind::PrismarineBrickStairs => &[], - BlockKind::BirchStairs => &[], - BlockKind::GreenShulkerBox => &[], - BlockKind::WhiteConcrete => &[], - BlockKind::TubeCoral => &[], - BlockKind::DeadTubeCoral => &[], - BlockKind::Cauldron => &[], + BlockKind::CyanWool => &[], BlockKind::PurpleWool => &[], - BlockKind::DarkOakButton => &[], - BlockKind::HornCoralBlock => &[], - BlockKind::PumpkinStem => &[], - BlockKind::WeatheredCopper => &[], - BlockKind::Pumpkin => &[], - BlockKind::DeadBrainCoralFan => &[], - BlockKind::FlowerPot => &[], - BlockKind::LightBlueBanner => &[], - BlockKind::WarpedSlab => &[], - BlockKind::BlueIce => &[], - BlockKind::Prismarine => &[], - BlockKind::BlackBanner => &[], - BlockKind::NetherSprouts => &[], - BlockKind::BrainCoralWallFan => &[], - BlockKind::OakSlab => &[], - BlockKind::StrippedSpruceLog => &[], - BlockKind::TubeCoralFan => &[], - BlockKind::RedNetherBricks => &[], - BlockKind::EndPortal => &[], - BlockKind::BrownBanner => &[], - BlockKind::WhiteCandleCake => &[], - BlockKind::DarkOakLeaves => &[], - BlockKind::CreeperHead => &[], - BlockKind::MagentaBanner => &[], - BlockKind::MossyStoneBrickSlab => &[], - BlockKind::MagentaWool => &[], - BlockKind::OrangeWallBanner => &[], - BlockKind::PolishedBlackstone => &[], - BlockKind::LightGrayShulkerBox => &[], - BlockKind::JungleWood => &[], - BlockKind::EndStoneBrickWall => &[], - BlockKind::MossCarpet => &[], - BlockKind::IronBars => &[], - BlockKind::BirchWallSign => &[], - BlockKind::WarpedFenceGate => &[], - BlockKind::DarkOakDoor => &[], - BlockKind::WaxedOxidizedCutCopper => &[], - BlockKind::YellowStainedGlassPane => &[], - BlockKind::DeadTubeCoralBlock => &[], - BlockKind::PlayerHead => &[], + BlockKind::BlueWool => &[], BlockKind::BrownWool => &[], - BlockKind::SpruceLeaves => &[], - BlockKind::Loom => &[], - BlockKind::SmoothRedSandstone => &[], + BlockKind::GreenWool => &[], + BlockKind::RedWool => &[], + BlockKind::BlackWool => &[], + BlockKind::MovingPiston => &[], + BlockKind::Dandelion => &[], + BlockKind::Poppy => &[], + BlockKind::BlueOrchid => &[], + BlockKind::Allium => &[], + BlockKind::AzureBluet => &[], + BlockKind::RedTulip => &[], + BlockKind::OrangeTulip => &[], + BlockKind::WhiteTulip => &[], + BlockKind::PinkTulip => &[], + BlockKind::OxeyeDaisy => &[], + BlockKind::Cornflower => &[], + BlockKind::WitherRose => &[], + BlockKind::LilyOfTheValley => &[], + BlockKind::BrownMushroom => &[], + BlockKind::RedMushroom => &[], + BlockKind::GoldBlock => &[], + BlockKind::IronBlock => &[], + BlockKind::Bricks => &[], + BlockKind::Tnt => &[], + BlockKind::Bookshelf => &[], + BlockKind::MossyCobblestone => &[], + BlockKind::Obsidian => &[], + BlockKind::Torch => &[], + BlockKind::WallTorch => &[], + BlockKind::Fire => &[], + BlockKind::SoulFire => &[], + BlockKind::Spawner => &[], + BlockKind::OakStairs => &[], + BlockKind::Chest => &[], + BlockKind::RedstoneWire => &[], + BlockKind::DiamondOre => &[], + BlockKind::DeepslateDiamondOre => &[], + BlockKind::DiamondBlock => &[], + BlockKind::CraftingTable => &[], + BlockKind::Wheat => &[], + BlockKind::Farmland => &[], + BlockKind::Furnace => &[], + BlockKind::OakSign => &[], + BlockKind::SpruceSign => &[], + BlockKind::BirchSign => &[], + BlockKind::AcaciaSign => &[], + BlockKind::JungleSign => &[], + BlockKind::DarkOakSign => &[], + BlockKind::OakDoor => &[], + BlockKind::Ladder => &[], + BlockKind::Rail => &[], BlockKind::CobblestoneStairs => &[], - BlockKind::MagentaWallBanner => &[], - BlockKind::AmethystBlock => &[], - BlockKind::PolishedBlackstoneBrickWall => &[], - BlockKind::WaxedWeatheredCutCopper => &[], - BlockKind::PistonHead => &[], - BlockKind::PottedAllium => &[], - BlockKind::SweetBerryBush => &[], - BlockKind::BirchPlanks => &[], - BlockKind::CutSandstone => &[], - BlockKind::MagentaConcretePowder => &[], - BlockKind::LightBlueStainedGlassPane => &[], - BlockKind::LightGrayCandle => &[], - BlockKind::WaxedWeatheredCutCopperStairs => &[], - BlockKind::RawIronBlock => &[], - BlockKind::EndPortalFrame => &[], - BlockKind::Chain => &[], - BlockKind::RedstoneLamp => &[], - BlockKind::SmoothQuartzStairs => &[], - BlockKind::Scaffolding => &[], - BlockKind::FletchingTable => &[], - BlockKind::PointedDripstone => &[], - BlockKind::CutRedSandstone => &[], - BlockKind::HornCoral => &[], - BlockKind::Dispenser => &[], + BlockKind::OakWallSign => &[], + BlockKind::SpruceWallSign => &[], + BlockKind::BirchWallSign => &[], + BlockKind::AcaciaWallSign => &[], + BlockKind::JungleWallSign => &[], + BlockKind::DarkOakWallSign => &[], + BlockKind::Lever => &[], + BlockKind::StonePressurePlate => &[], + BlockKind::IronDoor => &[], + BlockKind::OakPressurePlate => &[], + BlockKind::SprucePressurePlate => &[], + BlockKind::BirchPressurePlate => &[], + BlockKind::JunglePressurePlate => &[], + BlockKind::AcaciaPressurePlate => &[], + BlockKind::DarkOakPressurePlate => &[], + BlockKind::RedstoneOre => &[], + BlockKind::DeepslateRedstoneOre => &[], + BlockKind::RedstoneTorch => &[], + BlockKind::RedstoneWallTorch => &[], + BlockKind::StoneButton => &[], BlockKind::Snow => &[], - BlockKind::PowderSnow => &[], - BlockKind::BlackCarpet => &[], - BlockKind::DeadFireCoralFan => &[], - BlockKind::CandleCake => &[], - BlockKind::WarpedWallSign => &[], - BlockKind::IronOre => &[], - BlockKind::BirchSapling => &[], - BlockKind::SmoothSandstone => &[], - BlockKind::DeepslateBrickStairs => &[], - BlockKind::SpruceSapling => &[], - BlockKind::CrackedStoneBricks => &[], - BlockKind::OrangeBed => &[], - BlockKind::PolishedAndesite => &[], - BlockKind::GreenWool => &[], + BlockKind::Ice => &[], + BlockKind::SnowBlock => &[], + BlockKind::Cactus => &[], + BlockKind::Clay => &[], + BlockKind::SugarCane => &[], + BlockKind::Jukebox => &[], + BlockKind::OakFence => &[], + BlockKind::Pumpkin => &[], + BlockKind::Netherrack => &[], + BlockKind::SoulSand => &[], + BlockKind::SoulSoil => &[], + BlockKind::Basalt => &[], + BlockKind::PolishedBasalt => &[], + BlockKind::SoulTorch => &[], + BlockKind::SoulWallTorch => &[], + BlockKind::Glowstone => &[], + BlockKind::NetherPortal => &[], + BlockKind::CarvedPumpkin => &[], + BlockKind::JackOLantern => &[], + BlockKind::Cake => &[], + BlockKind::Repeater => &[], + BlockKind::WhiteStainedGlass => &[], + BlockKind::OrangeStainedGlass => &[], + BlockKind::MagentaStainedGlass => &[], + BlockKind::LightBlueStainedGlass => &[], + BlockKind::YellowStainedGlass => &[], + BlockKind::LimeStainedGlass => &[], BlockKind::PinkStainedGlass => &[], - BlockKind::DragonHead => &[], - BlockKind::ChiseledSandstone => &[], - BlockKind::PrismarineBrickSlab => &[], - BlockKind::Water => &[], - BlockKind::RawCopperBlock => &[], - BlockKind::RedConcrete => &[], - BlockKind::Sponge => &[], - BlockKind::AzaleaLeaves => &[], - BlockKind::RedShulkerBox => &[], - BlockKind::AcaciaLeaves => &[], - BlockKind::InfestedStone => &[], - BlockKind::DarkOakFence => &[], - BlockKind::SmoothStone => &[], - BlockKind::BlackGlazedTerracotta => &[], - BlockKind::PinkConcrete => &[], + BlockKind::GrayStainedGlass => &[], BlockKind::LightGrayStainedGlass => &[], - BlockKind::GreenWallBanner => &[], - BlockKind::SmoothQuartzSlab => &[], - BlockKind::SeaLantern => &[], - BlockKind::PurpurStairs => &[], - BlockKind::BambooSapling => &[], - BlockKind::SpruceSlab => &[], - BlockKind::YellowCandleCake => &[], - BlockKind::CutRedSandstoneSlab => &[], - BlockKind::PottedWarpedRoots => &[], - BlockKind::Calcite => &[], - BlockKind::PrismarineWall => &[], + BlockKind::CyanStainedGlass => &[], + BlockKind::PurpleStainedGlass => &[], + BlockKind::BlueStainedGlass => &[], + BlockKind::BrownStainedGlass => &[], + BlockKind::GreenStainedGlass => &[], + BlockKind::RedStainedGlass => &[], + BlockKind::BlackStainedGlass => &[], BlockKind::OakTrapdoor => &[], - BlockKind::PolishedDiorite => &[], - BlockKind::DeadBubbleCoralFan => &[], - BlockKind::YellowWool => &[], - BlockKind::RedNetherBrickSlab => &[], - BlockKind::GreenStainedGlassPane => &[], - BlockKind::ChiseledDeepslate => &[], - BlockKind::PolishedBlackstoneBricks => &[], - BlockKind::PottedDeadBush => &[], - BlockKind::PinkWool => &[], - BlockKind::NetherBrickFence => &[], - BlockKind::DeepslateTileStairs => &[], - BlockKind::WarpedButton => &[], - BlockKind::GrayCandleCake => &[], - BlockKind::QuartzSlab => &[], - BlockKind::PottedFern => &[], - BlockKind::RedSandstone => &[], - BlockKind::LimeStainedGlass => &[], - BlockKind::IronTrapdoor => &[], - BlockKind::Repeater => &[], - BlockKind::DragonEgg => &[], - BlockKind::RedTerracotta => &[], - BlockKind::Air => &[], - BlockKind::EnderChest => &[], + BlockKind::SpruceTrapdoor => &[], + BlockKind::BirchTrapdoor => &[], + BlockKind::JungleTrapdoor => &[], + BlockKind::AcaciaTrapdoor => &[], + BlockKind::DarkOakTrapdoor => &[], + BlockKind::StoneBricks => &[], + BlockKind::MossyStoneBricks => &[], + BlockKind::CrackedStoneBricks => &[], + BlockKind::ChiseledStoneBricks => &[], + BlockKind::InfestedStone => &[], + BlockKind::InfestedCobblestone => &[], + BlockKind::InfestedStoneBricks => &[], + BlockKind::InfestedMossyStoneBricks => &[], BlockKind::InfestedCrackedStoneBricks => &[], - BlockKind::StoneBrickWall => &[], - BlockKind::WhiteCandle => &[], - BlockKind::Terracotta => &[], - BlockKind::BlueWallBanner => &[], - BlockKind::Lodestone => &[], - BlockKind::PurpleStainedGlassPane => &[], - BlockKind::DripstoneBlock => &[], - BlockKind::LightBlueWool => &[], - BlockKind::CrackedPolishedBlackstoneBricks => &[], - BlockKind::StoneBrickStairs => &[], - BlockKind::GreenBed => &[], - BlockKind::CoarseDirt => &[], - BlockKind::StrippedOakWood => &[], - BlockKind::WarpedSign => &[], - BlockKind::WarpedStairs => &[], - BlockKind::Lectern => &[], - BlockKind::BubbleCoral => &[], - BlockKind::LightGrayConcretePowder => &[], - BlockKind::TwistingVinesPlant => &[], - BlockKind::JungleFenceGate => &[], - BlockKind::AcaciaPressurePlate => &[], + BlockKind::InfestedChiseledStoneBricks => &[], + BlockKind::BrownMushroomBlock => &[], + BlockKind::RedMushroomBlock => &[], + BlockKind::MushroomStem => &[], + BlockKind::IronBars => &[], + BlockKind::Chain => &[], + BlockKind::GlassPane => &[], + BlockKind::Melon => &[], + BlockKind::AttachedPumpkinStem => &[], + BlockKind::AttachedMelonStem => &[], + BlockKind::PumpkinStem => &[], + BlockKind::MelonStem => &[], + BlockKind::Vine => &[], BlockKind::GlowLichen => &[], - BlockKind::Carrots => &[], - BlockKind::SpruceFenceGate => &[], - BlockKind::GrayBanner => &[], - BlockKind::PolishedBlackstoneBrickStairs => &[], - BlockKind::Torch => &[], - BlockKind::PottedDandelion => &[], - BlockKind::OakPlanks => &[], - BlockKind::StrippedCrimsonHyphae => &[], - BlockKind::Spawner => &[], - BlockKind::GrassBlock => &[], + BlockKind::OakFenceGate => &[], + BlockKind::BrickStairs => &[], + BlockKind::StoneBrickStairs => &[], + BlockKind::Mycelium => &[], + BlockKind::LilyPad => &[], + BlockKind::NetherBricks => &[], + BlockKind::NetherBrickFence => &[], + BlockKind::NetherBrickStairs => &[], + BlockKind::NetherWart => &[], + BlockKind::EnchantingTable => &[], + BlockKind::BrewingStand => &[], + BlockKind::Cauldron => &[], + BlockKind::WaterCauldron => &[], + BlockKind::LavaCauldron => &[], + BlockKind::PowderSnowCauldron => &[], + BlockKind::EndPortal => &[], + BlockKind::EndPortalFrame => &[], + BlockKind::EndStone => &[], + BlockKind::DragonEgg => &[], + BlockKind::RedstoneLamp => &[], + BlockKind::Cocoa => &[], + BlockKind::SandstoneStairs => &[], + BlockKind::EmeraldOre => &[], + BlockKind::DeepslateEmeraldOre => &[], + BlockKind::EnderChest => &[], + BlockKind::TripwireHook => &[], + BlockKind::Tripwire => &[], + BlockKind::EmeraldBlock => &[], + BlockKind::SpruceStairs => &[], + BlockKind::BirchStairs => &[], + BlockKind::JungleStairs => &[], BlockKind::CommandBlock => &[], + BlockKind::Beacon => &[], BlockKind::CobblestoneWall => &[], - BlockKind::SpruceWood => &[], - BlockKind::LavaCauldron => &[], - BlockKind::DamagedAnvil => &[], + BlockKind::MossyCobblestoneWall => &[], + BlockKind::FlowerPot => &[], + BlockKind::PottedOakSapling => &[], + BlockKind::PottedSpruceSapling => &[], + BlockKind::PottedBirchSapling => &[], + BlockKind::PottedJungleSapling => &[], + BlockKind::PottedAcaciaSapling => &[], + BlockKind::PottedDarkOakSapling => &[], + BlockKind::PottedFern => &[], + BlockKind::PottedDandelion => &[], + BlockKind::PottedPoppy => &[], + BlockKind::PottedBlueOrchid => &[], + BlockKind::PottedAllium => &[], + BlockKind::PottedAzureBluet => &[], + BlockKind::PottedRedTulip => &[], + BlockKind::PottedOrangeTulip => &[], + BlockKind::PottedWhiteTulip => &[], + BlockKind::PottedPinkTulip => &[], + BlockKind::PottedOxeyeDaisy => &[], + BlockKind::PottedCornflower => &[], + BlockKind::PottedLilyOfTheValley => &[], + BlockKind::PottedWitherRose => &[], + BlockKind::PottedRedMushroom => &[], BlockKind::PottedBrownMushroom => &[], - BlockKind::LimeConcretePowder => &[], - BlockKind::GreenCarpet => &[], - BlockKind::ExposedCutCopper => &[], - BlockKind::BirchFenceGate => &[], + BlockKind::PottedDeadBush => &[], + BlockKind::PottedCactus => &[], + BlockKind::Carrots => &[], + BlockKind::Potatoes => &[], + BlockKind::OakButton => &[], + BlockKind::SpruceButton => &[], + BlockKind::BirchButton => &[], + BlockKind::JungleButton => &[], BlockKind::AcaciaButton => &[], + BlockKind::DarkOakButton => &[], + BlockKind::SkeletonSkull => &[], + BlockKind::SkeletonWallSkull => &[], + BlockKind::WitherSkeletonSkull => &[], + BlockKind::WitherSkeletonWallSkull => &[], + BlockKind::ZombieHead => &[], + BlockKind::ZombieWallHead => &[], + BlockKind::PlayerHead => &[], + BlockKind::PlayerWallHead => &[], + BlockKind::CreeperHead => &[], + BlockKind::CreeperWallHead => &[], + BlockKind::DragonHead => &[], + BlockKind::DragonWallHead => &[], + BlockKind::Anvil => &[], + BlockKind::ChippedAnvil => &[], + BlockKind::DamagedAnvil => &[], + BlockKind::TrappedChest => &[], + BlockKind::LightWeightedPressurePlate => &[], + BlockKind::HeavyWeightedPressurePlate => &[], + BlockKind::Comparator => &[], + BlockKind::DaylightDetector => &[], + BlockKind::RedstoneBlock => &[], + BlockKind::NetherQuartzOre => &[], + BlockKind::Hopper => &[], + BlockKind::QuartzBlock => &[], + BlockKind::ChiseledQuartzBlock => &[], + BlockKind::QuartzPillar => &[], + BlockKind::QuartzStairs => &[], + BlockKind::ActivatorRail => &[], + BlockKind::Dropper => &[], + BlockKind::WhiteTerracotta => &[], + BlockKind::OrangeTerracotta => &[], + BlockKind::MagentaTerracotta => &[], + BlockKind::LightBlueTerracotta => &[], + BlockKind::YellowTerracotta => &[], + BlockKind::LimeTerracotta => &[], + BlockKind::PinkTerracotta => &[], + BlockKind::GrayTerracotta => &[], + BlockKind::LightGrayTerracotta => &[], + BlockKind::CyanTerracotta => &[], + BlockKind::PurpleTerracotta => &[], + BlockKind::BlueTerracotta => &[], + BlockKind::BrownTerracotta => &[], + BlockKind::GreenTerracotta => &[], + BlockKind::RedTerracotta => &[], + BlockKind::BlackTerracotta => &[], BlockKind::WhiteStainedGlassPane => &[], - BlockKind::GraniteStairs => &[], - BlockKind::GlassPane => &[], - BlockKind::GreenBanner => &[], - BlockKind::JungleLeaves => &[], - BlockKind::NetherGoldOre => &[], - BlockKind::StoneButton => &[], - BlockKind::Kelp => &[], - BlockKind::LimeGlazedTerracotta => &[], - BlockKind::DeepslateCopperOre => &[], - BlockKind::StrippedAcaciaWood => &[], - BlockKind::PottedDarkOakSapling => &[], - BlockKind::BlackBed => &[], - BlockKind::AcaciaDoor => &[], - BlockKind::WarpedPressurePlate => &[], - BlockKind::JungleDoor => &[], - BlockKind::PrismarineSlab => &[], - BlockKind::RedWool => &[], + BlockKind::OrangeStainedGlassPane => &[], + BlockKind::MagentaStainedGlassPane => &[], + BlockKind::LightBlueStainedGlassPane => &[], + BlockKind::YellowStainedGlassPane => &[], + BlockKind::LimeStainedGlassPane => &[], + BlockKind::PinkStainedGlassPane => &[], + BlockKind::GrayStainedGlassPane => &[], + BlockKind::LightGrayStainedGlassPane => &[], + BlockKind::CyanStainedGlassPane => &[], + BlockKind::PurpleStainedGlassPane => &[], + BlockKind::BlueStainedGlassPane => &[], + BlockKind::BrownStainedGlassPane => &[], + BlockKind::GreenStainedGlassPane => &[], + BlockKind::RedStainedGlassPane => &[], + BlockKind::BlackStainedGlassPane => &[], + BlockKind::AcaciaStairs => &[], + BlockKind::DarkOakStairs => &[], BlockKind::SlimeBlock => &[], - BlockKind::LimeShulkerBox => &[], - BlockKind::SpruceTrapdoor => &[], - BlockKind::Basalt => &[], - BlockKind::CaveAir => &[], - BlockKind::QuartzBricks => &[], + BlockKind::Barrier => &[], + BlockKind::Light => &[], + BlockKind::IronTrapdoor => &[], + BlockKind::Prismarine => &[], + BlockKind::PrismarineBricks => &[], + BlockKind::DarkPrismarine => &[], + BlockKind::PrismarineStairs => &[], + BlockKind::PrismarineBrickStairs => &[], + BlockKind::DarkPrismarineStairs => &[], + BlockKind::PrismarineSlab => &[], + BlockKind::PrismarineBrickSlab => &[], BlockKind::DarkPrismarineSlab => &[], - BlockKind::BeeNest => &[], - BlockKind::CyanWool => &[], - BlockKind::WaxedCopperBlock => &[], - BlockKind::SoulLantern => &[], - BlockKind::CrimsonStem => &[], - BlockKind::Smoker => &[], - BlockKind::Obsidian => &[], - BlockKind::PottedCornflower => &[], - BlockKind::LightGrayStainedGlassPane => &[], - BlockKind::PolishedBlackstonePressurePlate => &[], - BlockKind::BoneBlock => &[], - BlockKind::Dandelion => &[], - BlockKind::StrippedBirchLog => &[], - BlockKind::StrippedJungleLog => &[], - BlockKind::BlueConcretePowder => &[], - BlockKind::PolishedDioriteSlab => &[], - BlockKind::OxeyeDaisy => &[], - BlockKind::SandstoneStairs => &[], - BlockKind::WitherSkeletonWallSkull => &[], - BlockKind::MagentaStainedGlassPane => &[], + BlockKind::SeaLantern => &[], + BlockKind::HayBlock => &[], + BlockKind::WhiteCarpet => &[], + BlockKind::OrangeCarpet => &[], + BlockKind::MagentaCarpet => &[], + BlockKind::LightBlueCarpet => &[], + BlockKind::YellowCarpet => &[], + BlockKind::LimeCarpet => &[], + BlockKind::PinkCarpet => &[], + BlockKind::GrayCarpet => &[], + BlockKind::LightGrayCarpet => &[], + BlockKind::CyanCarpet => &[], + BlockKind::PurpleCarpet => &[], + BlockKind::BlueCarpet => &[], + BlockKind::BrownCarpet => &[], + BlockKind::GreenCarpet => &[], + BlockKind::RedCarpet => &[], + BlockKind::BlackCarpet => &[], + BlockKind::Terracotta => &[], + BlockKind::CoalBlock => &[], + BlockKind::PackedIce => &[], + BlockKind::Sunflower => &[], + BlockKind::Lilac => &[], + BlockKind::RoseBush => &[], + BlockKind::Peony => &[], + BlockKind::TallGrass => &[], + BlockKind::LargeFern => &[], + BlockKind::WhiteBanner => &[], + BlockKind::OrangeBanner => &[], + BlockKind::MagentaBanner => &[], + BlockKind::LightBlueBanner => &[], + BlockKind::YellowBanner => &[], + BlockKind::LimeBanner => &[], + BlockKind::PinkBanner => &[], + BlockKind::GrayBanner => &[], + BlockKind::LightGrayBanner => &[], + BlockKind::CyanBanner => &[], + BlockKind::PurpleBanner => &[], + BlockKind::BlueBanner => &[], + BlockKind::BrownBanner => &[], + BlockKind::GreenBanner => &[], + BlockKind::RedBanner => &[], + BlockKind::BlackBanner => &[], + BlockKind::WhiteWallBanner => &[], + BlockKind::OrangeWallBanner => &[], + BlockKind::MagentaWallBanner => &[], + BlockKind::LightBlueWallBanner => &[], + BlockKind::YellowWallBanner => &[], + BlockKind::LimeWallBanner => &[], + BlockKind::PinkWallBanner => &[], + BlockKind::GrayWallBanner => &[], + BlockKind::LightGrayWallBanner => &[], + BlockKind::CyanWallBanner => &[], + BlockKind::PurpleWallBanner => &[], + BlockKind::BlueWallBanner => &[], + BlockKind::BrownWallBanner => &[], + BlockKind::GreenWallBanner => &[], + BlockKind::RedWallBanner => &[], + BlockKind::BlackWallBanner => &[], + BlockKind::RedSandstone => &[], + BlockKind::ChiseledRedSandstone => &[], + BlockKind::CutRedSandstone => &[], + BlockKind::RedSandstoneStairs => &[], + BlockKind::OakSlab => &[], + BlockKind::SpruceSlab => &[], + BlockKind::BirchSlab => &[], + BlockKind::JungleSlab => &[], + BlockKind::AcaciaSlab => &[], + BlockKind::DarkOakSlab => &[], + BlockKind::StoneSlab => &[], + BlockKind::SmoothStoneSlab => &[], + BlockKind::SandstoneSlab => &[], + BlockKind::CutSandstoneSlab => &[], BlockKind::PetrifiedOakSlab => &[], + BlockKind::CobblestoneSlab => &[], + BlockKind::BrickSlab => &[], + BlockKind::StoneBrickSlab => &[], + BlockKind::NetherBrickSlab => &[], + BlockKind::QuartzSlab => &[], + BlockKind::RedSandstoneSlab => &[], + BlockKind::CutRedSandstoneSlab => &[], + BlockKind::PurpurSlab => &[], + BlockKind::SmoothStone => &[], + BlockKind::SmoothSandstone => &[], + BlockKind::SmoothQuartz => &[], + BlockKind::SmoothRedSandstone => &[], + BlockKind::SpruceFenceGate => &[], + BlockKind::BirchFenceGate => &[], + BlockKind::JungleFenceGate => &[], + BlockKind::AcaciaFenceGate => &[], + BlockKind::DarkOakFenceGate => &[], + BlockKind::SpruceFence => &[], + BlockKind::BirchFence => &[], + BlockKind::JungleFence => &[], + BlockKind::AcaciaFence => &[], + BlockKind::DarkOakFence => &[], + BlockKind::SpruceDoor => &[], + BlockKind::BirchDoor => &[], + BlockKind::JungleDoor => &[], + BlockKind::AcaciaDoor => &[], + BlockKind::DarkOakDoor => &[], + BlockKind::EndRod => &[], + BlockKind::ChorusPlant => &[], + BlockKind::ChorusFlower => &[], BlockKind::PurpurBlock => &[], - BlockKind::MossyCobblestoneSlab => &[], - BlockKind::Ice => &[], - BlockKind::AncientDebris => &[], - BlockKind::PurpleConcrete => &[], - BlockKind::DeepslateBrickSlab => &[], - BlockKind::DeepslateBrickWall => &[], - BlockKind::PurpleCandleCake => &[], + BlockKind::PurpurPillar => &[], + BlockKind::PurpurStairs => &[], + BlockKind::EndStoneBricks => &[], BlockKind::Beetroots => &[], - BlockKind::PurpleGlazedTerracotta => &[], - BlockKind::CaveVines => &[], - BlockKind::LimeCandleCake => &[], - BlockKind::CopperOre => &[], - BlockKind::CyanShulkerBox => &[], - BlockKind::DarkOakPressurePlate => &[], - BlockKind::StoneSlab => &[], - BlockKind::WhiteTulip => &[], - BlockKind::StrippedWarpedStem => &[], - BlockKind::GrayCarpet => &[], - BlockKind::Sandstone => &[], - BlockKind::QuartzStairs => &[], - BlockKind::PinkStainedGlassPane => &[], + BlockKind::DirtPath => &[], + BlockKind::EndGateway => &[], + BlockKind::RepeatingCommandBlock => &[], + BlockKind::ChainCommandBlock => &[], + BlockKind::FrostedIce => &[], + BlockKind::MagmaBlock => &[], + BlockKind::NetherWartBlock => &[], + BlockKind::RedNetherBricks => &[], + BlockKind::BoneBlock => &[], + BlockKind::StructureVoid => &[], + BlockKind::Observer => &[], + BlockKind::ShulkerBox => &[], + BlockKind::WhiteShulkerBox => &[], + BlockKind::OrangeShulkerBox => &[], + BlockKind::MagentaShulkerBox => &[], + BlockKind::LightBlueShulkerBox => &[], BlockKind::YellowShulkerBox => &[], - BlockKind::Sand => &[], - BlockKind::GreenConcrete => &[], - BlockKind::SoulSoil => &[], - BlockKind::EndRod => &[], - BlockKind::FireCoralWallFan => &[], - BlockKind::PolishedGraniteStairs => &[], - BlockKind::PolishedDeepslateStairs => &[], - BlockKind::BrewingStand => &[], - BlockKind::SandstoneSlab => &[], - BlockKind::DeepslateRedstoneOre => &[], - BlockKind::LimeCarpet => &[], - BlockKind::AcaciaStairs => &[], - BlockKind::BigDripleaf => &[], - BlockKind::SpruceWallSign => &[], - BlockKind::LightGrayCarpet => &[], - BlockKind::PottedWitherRose => &[], - BlockKind::Netherrack => &[], - BlockKind::KelpPlant => &[], - BlockKind::Dirt => &[], - BlockKind::CyanStainedGlass => &[], - BlockKind::LimeBed => &[], - BlockKind::CutCopperStairs => &[], - BlockKind::WaxedOxidizedCopper => &[], + BlockKind::LimeShulkerBox => &[], + BlockKind::PinkShulkerBox => &[], + BlockKind::GrayShulkerBox => &[], + BlockKind::LightGrayShulkerBox => &[], + BlockKind::CyanShulkerBox => &[], + BlockKind::PurpleShulkerBox => &[], + BlockKind::BlueShulkerBox => &[], BlockKind::BrownShulkerBox => &[], - BlockKind::AcaciaPlanks => &[], - BlockKind::PurpleTerracotta => &[], - BlockKind::RedstoneOre => &[], - BlockKind::TurtleEgg => &[], - BlockKind::PurpleStainedGlass => &[], - BlockKind::OakFenceGate => &[], - BlockKind::RepeatingCommandBlock => &[], - BlockKind::CobblestoneSlab => &[], - BlockKind::PinkCandle => &[], - BlockKind::BrownTerracotta => &[], - BlockKind::CopperBlock => &[], + BlockKind::GreenShulkerBox => &[], + BlockKind::RedShulkerBox => &[], + BlockKind::BlackShulkerBox => &[], + BlockKind::WhiteGlazedTerracotta => &[], + BlockKind::OrangeGlazedTerracotta => &[], + BlockKind::MagentaGlazedTerracotta => &[], + BlockKind::LightBlueGlazedTerracotta => &[], + BlockKind::YellowGlazedTerracotta => &[], + BlockKind::LimeGlazedTerracotta => &[], + BlockKind::PinkGlazedTerracotta => &[], + BlockKind::GrayGlazedTerracotta => &[], BlockKind::LightGrayGlazedTerracotta => &[], - BlockKind::Mycelium => &[], - BlockKind::PolishedDioriteStairs => &[], - BlockKind::LapisBlock => &[], - BlockKind::OxidizedCutCopper => &[], - BlockKind::Furnace => &[], - BlockKind::MagmaBlock => &[], - BlockKind::Ladder => &[], + BlockKind::CyanGlazedTerracotta => &[], + BlockKind::PurpleGlazedTerracotta => &[], BlockKind::BlueGlazedTerracotta => &[], - BlockKind::WaxedCutCopperSlab => &[], - BlockKind::WitherRose => &[], - BlockKind::AcaciaTrapdoor => &[], - BlockKind::OrangeStainedGlassPane => &[], - BlockKind::BlackCandleCake => &[], - BlockKind::PolishedBlackstoneSlab => &[], - BlockKind::ChippedAnvil => &[], - BlockKind::BirchLeaves => &[], - BlockKind::DeepslateTiles => &[], - BlockKind::Rail => &[], - BlockKind::BirchFence => &[], - BlockKind::LightBlueStainedGlass => &[], - BlockKind::MossyStoneBrickStairs => &[], - BlockKind::PottedAzaleaBush => &[], - BlockKind::FireCoral => &[], - BlockKind::BirchWood => &[], - BlockKind::WhiteBed => &[], - BlockKind::Shroomlight => &[], - BlockKind::StrippedDarkOakLog => &[], - BlockKind::DaylightDetector => &[], - BlockKind::OxidizedCopper => &[], - BlockKind::WeatheredCutCopper => &[], - BlockKind::LightBlueTerracotta => &[], + BlockKind::BrownGlazedTerracotta => &[], + BlockKind::GreenGlazedTerracotta => &[], + BlockKind::RedGlazedTerracotta => &[], + BlockKind::BlackGlazedTerracotta => &[], + BlockKind::WhiteConcrete => &[], + BlockKind::OrangeConcrete => &[], + BlockKind::MagentaConcrete => &[], + BlockKind::LightBlueConcrete => &[], + BlockKind::YellowConcrete => &[], + BlockKind::LimeConcrete => &[], + BlockKind::PinkConcrete => &[], + BlockKind::GrayConcrete => &[], + BlockKind::LightGrayConcrete => &[], + BlockKind::CyanConcrete => &[], + BlockKind::PurpleConcrete => &[], + BlockKind::BlueConcrete => &[], + BlockKind::BrownConcrete => &[], + BlockKind::GreenConcrete => &[], + BlockKind::RedConcrete => &[], + BlockKind::BlackConcrete => &[], + BlockKind::WhiteConcretePowder => &[], + BlockKind::OrangeConcretePowder => &[], + BlockKind::MagentaConcretePowder => &[], + BlockKind::LightBlueConcretePowder => &[], + BlockKind::YellowConcretePowder => &[], + BlockKind::LimeConcretePowder => &[], + BlockKind::PinkConcretePowder => &[], + BlockKind::GrayConcretePowder => &[], + BlockKind::LightGrayConcretePowder => &[], + BlockKind::CyanConcretePowder => &[], + BlockKind::PurpleConcretePowder => &[], + BlockKind::BlueConcretePowder => &[], + BlockKind::BrownConcretePowder => &[], + BlockKind::GreenConcretePowder => &[], + BlockKind::RedConcretePowder => &[], + BlockKind::BlackConcretePowder => &[], + BlockKind::Kelp => &[], + BlockKind::KelpPlant => &[], + BlockKind::DriedKelpBlock => &[], + BlockKind::TurtleEgg => &[], + BlockKind::DeadTubeCoralBlock => &[], + BlockKind::DeadBrainCoralBlock => &[], + BlockKind::DeadBubbleCoralBlock => &[], BlockKind::DeadFireCoralBlock => &[], + BlockKind::DeadHornCoralBlock => &[], + BlockKind::TubeCoralBlock => &[], + BlockKind::BrainCoralBlock => &[], + BlockKind::BubbleCoralBlock => &[], + BlockKind::FireCoralBlock => &[], + BlockKind::HornCoralBlock => &[], + BlockKind::DeadTubeCoral => &[], + BlockKind::DeadBrainCoral => &[], + BlockKind::DeadBubbleCoral => &[], + BlockKind::DeadFireCoral => &[], + BlockKind::DeadHornCoral => &[], + BlockKind::TubeCoral => &[], + BlockKind::BrainCoral => &[], + BlockKind::BubbleCoral => &[], + BlockKind::FireCoral => &[], + BlockKind::HornCoral => &[], + BlockKind::DeadTubeCoralFan => &[], + BlockKind::DeadBrainCoralFan => &[], + BlockKind::DeadBubbleCoralFan => &[], + BlockKind::DeadFireCoralFan => &[], + BlockKind::DeadHornCoralFan => &[], + BlockKind::TubeCoralFan => &[], + BlockKind::BrainCoralFan => &[], + BlockKind::BubbleCoralFan => &[], + BlockKind::FireCoralFan => &[], + BlockKind::HornCoralFan => &[], + BlockKind::DeadTubeCoralWallFan => &[], + BlockKind::DeadBrainCoralWallFan => &[], + BlockKind::DeadBubbleCoralWallFan => &[], + BlockKind::DeadFireCoralWallFan => &[], + BlockKind::DeadHornCoralWallFan => &[], + BlockKind::TubeCoralWallFan => &[], + BlockKind::BrainCoralWallFan => &[], + BlockKind::BubbleCoralWallFan => &[], + BlockKind::FireCoralWallFan => &[], + BlockKind::HornCoralWallFan => &[], + BlockKind::SeaPickle => &[], + BlockKind::BlueIce => &[], + BlockKind::Conduit => &[], + BlockKind::BambooSapling => &[], + BlockKind::Bamboo => &[], + BlockKind::PottedBamboo => &[], + BlockKind::VoidAir => &[], + BlockKind::CaveAir => &[], + BlockKind::BubbleColumn => &[], + BlockKind::PolishedGraniteStairs => &[], + BlockKind::SmoothRedSandstoneStairs => &[], + BlockKind::MossyStoneBrickStairs => &[], + BlockKind::PolishedDioriteStairs => &[], + BlockKind::MossyCobblestoneStairs => &[], BlockKind::EndStoneBrickStairs => &[], - BlockKind::CrackedNetherBricks => &[], - BlockKind::MagentaBed => &[], - BlockKind::BlackWool => &[], - BlockKind::StructureBlock => &[], - BlockKind::WhiteGlazedTerracotta => &[], - BlockKind::PurpleBanner => &[], - BlockKind::ChiseledRedSandstone => &[], - BlockKind::Glass => &[], - BlockKind::PottedWhiteTulip => &[], - BlockKind::LightGrayCandleCake => &[], + BlockKind::StoneStairs => &[], + BlockKind::SmoothSandstoneStairs => &[], + BlockKind::SmoothQuartzStairs => &[], + BlockKind::GraniteStairs => &[], + BlockKind::AndesiteStairs => &[], + BlockKind::RedNetherBrickStairs => &[], + BlockKind::PolishedAndesiteStairs => &[], + BlockKind::DioriteStairs => &[], + BlockKind::PolishedGraniteSlab => &[], + BlockKind::SmoothRedSandstoneSlab => &[], + BlockKind::MossyStoneBrickSlab => &[], + BlockKind::PolishedDioriteSlab => &[], + BlockKind::MossyCobblestoneSlab => &[], + BlockKind::EndStoneBrickSlab => &[], BlockKind::SmoothSandstoneSlab => &[], - BlockKind::EndStone => &[], - BlockKind::CrackedDeepslateBricks => &[], - BlockKind::DarkOakFenceGate => &[], + BlockKind::SmoothQuartzSlab => &[], + BlockKind::GraniteSlab => &[], + BlockKind::AndesiteSlab => &[], + BlockKind::RedNetherBrickSlab => &[], + BlockKind::PolishedAndesiteSlab => &[], + BlockKind::DioriteSlab => &[], + BlockKind::BrickWall => &[], + BlockKind::PrismarineWall => &[], + BlockKind::RedSandstoneWall => &[], + BlockKind::MossyStoneBrickWall => &[], + BlockKind::GraniteWall => &[], + BlockKind::StoneBrickWall => &[], + BlockKind::NetherBrickWall => &[], + BlockKind::AndesiteWall => &[], + BlockKind::RedNetherBrickWall => &[], + BlockKind::SandstoneWall => &[], + BlockKind::EndStoneBrickWall => &[], + BlockKind::DioriteWall => &[], + BlockKind::Scaffolding => &[], + BlockKind::Loom => &[], + BlockKind::Barrel => &[], + BlockKind::Smoker => &[], BlockKind::BlastFurnace => &[], - BlockKind::CrimsonRoots => &[], - BlockKind::Bamboo => &[], - BlockKind::SoulSand => &[], - BlockKind::BrownStainedGlass => &[], - BlockKind::PottedAcaciaSapling => &[], - BlockKind::FloweringAzaleaLeaves => &[], - BlockKind::WhiteStainedGlass => &[], - BlockKind::MossyCobblestone => &[], - BlockKind::GrayConcrete => &[], - BlockKind::JunglePressurePlate => &[], - BlockKind::LimeWool => &[], - BlockKind::SprucePlanks => &[], - BlockKind::LimeCandle => &[], - BlockKind::LightBlueBed => &[], - BlockKind::BubbleCoralBlock => &[], - BlockKind::CrimsonStairs => &[], - BlockKind::BlueShulkerBox => &[], - BlockKind::OxidizedCutCopperStairs => &[], - BlockKind::BlackWallBanner => &[], - BlockKind::InfestedStoneBricks => &[], - BlockKind::PinkConcretePowder => &[], - BlockKind::Cocoa => &[], - BlockKind::PurpleCandle => &[], - BlockKind::ChorusPlant => &[], - BlockKind::WaxedCutCopper => &[], - BlockKind::GrayWool => &[], - BlockKind::WarpedTrapdoor => &[], - BlockKind::CarvedPumpkin => &[], - BlockKind::StrippedBirchWood => &[], - BlockKind::Potatoes => &[], - BlockKind::OrangeCarpet => &[], - BlockKind::EndGateway => &[], - BlockKind::Light => &[], + BlockKind::CartographyTable => &[], + BlockKind::FletchingTable => &[], + BlockKind::Grindstone => &[], + BlockKind::Lectern => &[], + BlockKind::SmithingTable => &[], + BlockKind::Stonecutter => &[], + BlockKind::Bell => &[], + BlockKind::Lantern => &[], + BlockKind::SoulLantern => &[], + BlockKind::Campfire => &[], + BlockKind::SoulCampfire => &[], + BlockKind::SweetBerryBush => &[], + BlockKind::WarpedStem => &[], + BlockKind::StrippedWarpedStem => &[], + BlockKind::WarpedHyphae => &[], + BlockKind::StrippedWarpedHyphae => &[], + BlockKind::WarpedNylium => &[], + BlockKind::WarpedFungus => &[], + BlockKind::WarpedWartBlock => &[], BlockKind::WarpedRoots => &[], - BlockKind::CyanStainedGlassPane => &[], - BlockKind::EmeraldOre => &[], - BlockKind::PolishedBlackstoneBrickSlab => &[], - BlockKind::DirtPath => &[], - BlockKind::DeadHornCoralWallFan => &[], - BlockKind::Lava => &[], - BlockKind::GrayBed => &[], - BlockKind::TripwireHook => &[], - BlockKind::WaxedExposedCutCopper => &[], - BlockKind::SmoothRedSandstoneSlab => &[], + BlockKind::NetherSprouts => &[], + BlockKind::CrimsonStem => &[], + BlockKind::StrippedCrimsonStem => &[], + BlockKind::CrimsonHyphae => &[], + BlockKind::StrippedCrimsonHyphae => &[], BlockKind::CrimsonNylium => &[], - BlockKind::OakLog => &[], + BlockKind::CrimsonFungus => &[], + BlockKind::Shroomlight => &[], BlockKind::WeepingVines => &[], - BlockKind::PolishedBasalt => &[], - BlockKind::LightWeightedPressurePlate => &[], - BlockKind::SculkSensor => &[], - BlockKind::BlackstoneStairs => &[], - BlockKind::StoneBricks => &[], - BlockKind::BrownConcrete => &[], - BlockKind::CyanBed => &[], - BlockKind::AcaciaWallSign => &[], - BlockKind::RedConcretePowder => &[], - BlockKind::Glowstone => &[], + BlockKind::WeepingVinesPlant => &[], + BlockKind::TwistingVines => &[], + BlockKind::TwistingVinesPlant => &[], + BlockKind::CrimsonRoots => &[], + BlockKind::CrimsonPlanks => &[], + BlockKind::WarpedPlanks => &[], + BlockKind::CrimsonSlab => &[], + BlockKind::WarpedSlab => &[], BlockKind::CrimsonPressurePlate => &[], + BlockKind::WarpedPressurePlate => &[], + BlockKind::CrimsonFence => &[], + BlockKind::WarpedFence => &[], + BlockKind::CrimsonTrapdoor => &[], + BlockKind::WarpedTrapdoor => &[], + BlockKind::CrimsonFenceGate => &[], + BlockKind::WarpedFenceGate => &[], + BlockKind::CrimsonStairs => &[], + BlockKind::WarpedStairs => &[], + BlockKind::CrimsonButton => &[], + BlockKind::WarpedButton => &[], + BlockKind::CrimsonDoor => &[], + BlockKind::WarpedDoor => &[], + BlockKind::CrimsonSign => &[], + BlockKind::WarpedSign => &[], + BlockKind::CrimsonWallSign => &[], + BlockKind::WarpedWallSign => &[], + BlockKind::StructureBlock => &[], + BlockKind::Jigsaw => &[], + BlockKind::Composter => &[], + BlockKind::Target => &[], + BlockKind::BeeNest => &[], + BlockKind::Beehive => &[], + BlockKind::HoneyBlock => &[], + BlockKind::HoneycombBlock => &[], + BlockKind::NetheriteBlock => &[], + BlockKind::AncientDebris => &[], + BlockKind::CryingObsidian => &[], + BlockKind::RespawnAnchor => &[], + BlockKind::PottedCrimsonFungus => &[], + BlockKind::PottedWarpedFungus => &[], + BlockKind::PottedCrimsonRoots => &[], + BlockKind::PottedWarpedRoots => &[], + BlockKind::Lodestone => &[], + BlockKind::Blackstone => &[], + BlockKind::BlackstoneStairs => &[], + BlockKind::BlackstoneWall => &[], + BlockKind::BlackstoneSlab => &[], + BlockKind::PolishedBlackstone => &[], + BlockKind::PolishedBlackstoneBricks => &[], + BlockKind::CrackedPolishedBlackstoneBricks => &[], + BlockKind::ChiseledPolishedBlackstone => &[], + BlockKind::PolishedBlackstoneBrickSlab => &[], + BlockKind::PolishedBlackstoneBrickStairs => &[], + BlockKind::PolishedBlackstoneBrickWall => &[], + BlockKind::GildedBlackstone => &[], + BlockKind::PolishedBlackstoneStairs => &[], + BlockKind::PolishedBlackstoneSlab => &[], + BlockKind::PolishedBlackstonePressurePlate => &[], + BlockKind::PolishedBlackstoneButton => &[], + BlockKind::PolishedBlackstoneWall => &[], + BlockKind::ChiseledNetherBricks => &[], + BlockKind::CrackedNetherBricks => &[], + BlockKind::QuartzBricks => &[], + BlockKind::Candle => &[], + BlockKind::WhiteCandle => &[], + BlockKind::OrangeCandle => &[], + BlockKind::MagentaCandle => &[], + BlockKind::LightBlueCandle => &[], + BlockKind::YellowCandle => &[], + BlockKind::LimeCandle => &[], + BlockKind::PinkCandle => &[], + BlockKind::GrayCandle => &[], + BlockKind::LightGrayCandle => &[], + BlockKind::CyanCandle => &[], + BlockKind::PurpleCandle => &[], + BlockKind::BlueCandle => &[], + BlockKind::BrownCandle => &[], + BlockKind::GreenCandle => &[], + BlockKind::RedCandle => &[], + BlockKind::BlackCandle => &[], + BlockKind::CandleCake => &[], + BlockKind::WhiteCandleCake => &[], + BlockKind::OrangeCandleCake => &[], + BlockKind::MagentaCandleCake => &[], + BlockKind::LightBlueCandleCake => &[], + BlockKind::YellowCandleCake => &[], + BlockKind::LimeCandleCake => &[], + BlockKind::PinkCandleCake => &[], + BlockKind::GrayCandleCake => &[], + BlockKind::LightGrayCandleCake => &[], + BlockKind::CyanCandleCake => &[], + BlockKind::PurpleCandleCake => &[], BlockKind::BlueCandleCake => &[], - BlockKind::DeepslateDiamondOre => &[], - BlockKind::OakFence => &[], - BlockKind::HeavyWeightedPressurePlate => &[], - BlockKind::LimeWallBanner => &[], - BlockKind::DeadBush => &[], - BlockKind::DeadBrainCoral => &[], - BlockKind::Peony => &[], - BlockKind::CyanBanner => &[], - BlockKind::PottedOakSapling => &[], - BlockKind::BirchSign => &[], - BlockKind::WaxedOxidizedCutCopperSlab => &[], - BlockKind::Grindstone => &[], - BlockKind::OakSapling => &[], - BlockKind::ChainCommandBlock => &[], - BlockKind::PinkBed => &[], - BlockKind::DarkOakWallSign => &[], - BlockKind::DarkOakSapling => &[], - BlockKind::YellowConcrete => &[], - BlockKind::IronDoor => &[], - BlockKind::GraniteSlab => &[], - BlockKind::SpruceLog => &[], - BlockKind::WaterCauldron => &[], - BlockKind::YellowTerracotta => &[], - BlockKind::LimeTerracotta => &[], - BlockKind::DeadBubbleCoralBlock => &[], - BlockKind::CartographyTable => &[], - BlockKind::InfestedChiseledStoneBricks => &[], - BlockKind::DragonWallHead => &[], - BlockKind::MelonStem => &[], - BlockKind::RedStainedGlass => &[], - BlockKind::SoulCampfire => &[], - BlockKind::DarkOakSlab => &[], - BlockKind::PinkShulkerBox => &[], - BlockKind::DeepslateCoalOre => &[], - BlockKind::BrainCoral => &[], - BlockKind::LightGrayBed => &[], + BlockKind::BrownCandleCake => &[], + BlockKind::GreenCandleCake => &[], + BlockKind::RedCandleCake => &[], + BlockKind::BlackCandleCake => &[], + BlockKind::AmethystBlock => &[], + BlockKind::BuddingAmethyst => &[], + BlockKind::AmethystCluster => &[], + BlockKind::LargeAmethystBud => &[], + BlockKind::MediumAmethystBud => &[], + BlockKind::SmallAmethystBud => &[], + BlockKind::Tuff => &[], + BlockKind::Calcite => &[], + BlockKind::TintedGlass => &[], + BlockKind::PowderSnow => &[], + BlockKind::SculkSensor => &[], + BlockKind::OxidizedCopper => &[], + BlockKind::WeatheredCopper => &[], + BlockKind::ExposedCopper => &[], + BlockKind::CopperBlock => &[], + BlockKind::CopperOre => &[], + BlockKind::DeepslateCopperOre => &[], + BlockKind::OxidizedCutCopper => &[], + BlockKind::WeatheredCutCopper => &[], + BlockKind::ExposedCutCopper => &[], BlockKind::CutCopper => &[], - BlockKind::PurpurPillar => &[], - BlockKind::CrimsonFenceGate => &[], - BlockKind::BuddingAmethyst => &[], - BlockKind::Cornflower => &[], - BlockKind::BrickWall => &[], - BlockKind::StrippedCrimsonStem => &[], - BlockKind::PlayerWallHead => &[], - BlockKind::HoneycombBlock => &[], - BlockKind::OrangeCandle => &[], - BlockKind::RedstoneTorch => &[], - BlockKind::WitherSkeletonSkull => &[], - BlockKind::QuartzPillar => &[], - BlockKind::LimeBanner => &[], - BlockKind::JunglePlanks => &[], - BlockKind::SpruceFence => &[], - BlockKind::WeepingVinesPlant => &[], + BlockKind::OxidizedCutCopperStairs => &[], + BlockKind::WeatheredCutCopperStairs => &[], + BlockKind::ExposedCutCopperStairs => &[], + BlockKind::CutCopperStairs => &[], + BlockKind::OxidizedCutCopperSlab => &[], + BlockKind::WeatheredCutCopperSlab => &[], + BlockKind::ExposedCutCopperSlab => &[], + BlockKind::CutCopperSlab => &[], + BlockKind::WaxedCopperBlock => &[], + BlockKind::WaxedWeatheredCopper => &[], BlockKind::WaxedExposedCopper => &[], - BlockKind::DeadBrainCoralWallFan => &[], - BlockKind::Cake => &[], - BlockKind::RedBanner => &[], - BlockKind::RedCandle => &[], - BlockKind::PolishedDeepslateWall => &[], + BlockKind::WaxedOxidizedCopper => &[], + BlockKind::WaxedOxidizedCutCopper => &[], + BlockKind::WaxedWeatheredCutCopper => &[], + BlockKind::WaxedExposedCutCopper => &[], + BlockKind::WaxedCutCopper => &[], + BlockKind::WaxedOxidizedCutCopperStairs => &[], + BlockKind::WaxedWeatheredCutCopperStairs => &[], + BlockKind::WaxedExposedCutCopperStairs => &[], + BlockKind::WaxedCutCopperStairs => &[], + BlockKind::WaxedOxidizedCutCopperSlab => &[], + BlockKind::WaxedWeatheredCutCopperSlab => &[], + BlockKind::WaxedExposedCutCopperSlab => &[], + BlockKind::WaxedCutCopperSlab => &[], + BlockKind::LightningRod => &[], + BlockKind::PointedDripstone => &[], + BlockKind::DripstoneBlock => &[], + BlockKind::CaveVines => &[], + BlockKind::CaveVinesPlant => &[], BlockKind::SporeBlossom => &[], - BlockKind::Vine => &[], - BlockKind::PolishedAndesiteSlab => &[], - BlockKind::OrangeStainedGlass => &[], - BlockKind::JungleButton => &[], - BlockKind::OakSign => &[], - BlockKind::PoweredRail => &[], - BlockKind::MushroomStem => &[], - BlockKind::AttachedPumpkinStem => &[], - BlockKind::LimeStainedGlassPane => &[], - BlockKind::LightBlueShulkerBox => &[], - BlockKind::DeepslateBricks => &[], - BlockKind::Fire => &[], - BlockKind::WhiteTerracotta => &[], - BlockKind::BrickSlab => &[], - BlockKind::PottedJungleSapling => &[], - BlockKind::JungleStairs => &[], - BlockKind::DeadHornCoral => &[], - BlockKind::AndesiteWall => &[], - BlockKind::Wheat => &[], - BlockKind::Bedrock => &[], - BlockKind::SprucePressurePlate => &[], + BlockKind::Azalea => &[], BlockKind::FloweringAzalea => &[], - BlockKind::RawGoldBlock => &[], - BlockKind::MovingPiston => &[], - BlockKind::PottedLilyOfTheValley => &[], - BlockKind::BrownStainedGlassPane => &[], - BlockKind::RedstoneWire => &[], - BlockKind::WetSponge => &[], - BlockKind::LightBlueConcretePowder => &[], - BlockKind::OakWood => &[], - BlockKind::OakDoor => &[], - BlockKind::VoidAir => &[], - BlockKind::CrimsonPlanks => &[], - BlockKind::OakStairs => &[], - BlockKind::FrostedIce => &[], - BlockKind::Jukebox => &[], - BlockKind::JungleSapling => &[], - BlockKind::Cobweb => &[], - BlockKind::DeadBubbleCoral => &[], - BlockKind::MossyStoneBrickWall => &[], - BlockKind::Andesite => &[], - BlockKind::LightningRod => &[], - BlockKind::MagentaConcrete => &[], - BlockKind::WarpedFungus => &[], - BlockKind::LightBlueCandle => &[], - BlockKind::GrayTerracotta => &[], - BlockKind::RedTulip => &[], - BlockKind::YellowConcretePowder => &[], - BlockKind::ChiseledNetherBricks => &[], - BlockKind::PolishedDeepslate => &[], - BlockKind::PurpleShulkerBox => &[], - BlockKind::PottedBirchSapling => &[], - BlockKind::MossyCobblestoneStairs => &[], - BlockKind::PolishedAndesiteStairs => &[], - BlockKind::SmithingTable => &[], - BlockKind::MagentaCandle => &[], - BlockKind::DeadBubbleCoralWallFan => &[], - BlockKind::BrownGlazedTerracotta => &[], - BlockKind::CutCopperSlab => &[], + BlockKind::MossCarpet => &[], BlockKind::MossBlock => &[], - BlockKind::CrimsonTrapdoor => &[], - BlockKind::PinkBanner => &[], - BlockKind::DeadFireCoralWallFan => &[], + BlockKind::BigDripleaf => &[], BlockKind::BigDripleafStem => &[], - BlockKind::RedSandstoneStairs => &[], - BlockKind::TintedGlass => &[], - BlockKind::PurpleCarpet => &[], - BlockKind::CrimsonFence => &[], - BlockKind::BlueCarpet => &[], + BlockKind::SmallDripleaf => &[], + BlockKind::HangingRoots => &[], + BlockKind::RootedDirt => &[], + BlockKind::Deepslate => &[], + BlockKind::CobbledDeepslate => &[], + BlockKind::CobbledDeepslateStairs => &[], + BlockKind::CobbledDeepslateSlab => &[], + BlockKind::CobbledDeepslateWall => &[], + BlockKind::PolishedDeepslate => &[], + BlockKind::PolishedDeepslateStairs => &[], BlockKind::PolishedDeepslateSlab => &[], - BlockKind::SpruceSign => &[], + BlockKind::PolishedDeepslateWall => &[], + BlockKind::DeepslateTiles => &[], + BlockKind::DeepslateTileStairs => &[], + BlockKind::DeepslateTileSlab => &[], BlockKind::DeepslateTileWall => &[], - BlockKind::JungleLog => &[], - BlockKind::WeatheredCutCopperSlab => &[], - BlockKind::NetherBrickStairs => &[], - BlockKind::DarkOakPlanks => &[], - BlockKind::GoldBlock => &[], - BlockKind::Piston => &[], - BlockKind::Seagrass => &[], - BlockKind::PottedOxeyeDaisy => &[], - BlockKind::Campfire => &[], - BlockKind::WarpedNylium => &[], - BlockKind::Beehive => &[], - BlockKind::PolishedGranite => &[], - BlockKind::OrangeTulip => &[], - BlockKind::BlackStainedGlassPane => &[], - BlockKind::SmoothSandstoneStairs => &[], - BlockKind::GreenGlazedTerracotta => &[], - BlockKind::Grass => &[], - BlockKind::ChiseledQuartzBlock => &[], - BlockKind::WhiteWallBanner => &[], - BlockKind::Cobblestone => &[], - BlockKind::BlackstoneSlab => &[], - BlockKind::LightBlueGlazedTerracotta => &[], - BlockKind::EndStoneBrickSlab => &[], - BlockKind::Target => &[], - BlockKind::PolishedBlackstoneStairs => &[], - BlockKind::WarpedHyphae => &[], - BlockKind::StrippedOakLog => &[], - BlockKind::BrickStairs => &[], - BlockKind::CutSandstoneSlab => &[], - BlockKind::YellowBed => &[], - BlockKind::StickyPiston => &[], - BlockKind::TubeCoralWallFan => &[], - BlockKind::Tuff => &[], - BlockKind::OrangeConcrete => &[], - BlockKind::AcaciaSign => &[], - BlockKind::BlackConcrete => &[], - BlockKind::BirchTrapdoor => &[], - BlockKind::GrayStainedGlass => &[], - BlockKind::TubeCoralBlock => &[], - BlockKind::CrimsonWallSign => &[], - BlockKind::ShulkerBox => &[], - BlockKind::BrainCoralBlock => &[], - BlockKind::JungleSlab => &[], - BlockKind::HangingRoots => &[], - BlockKind::PottedWarpedFungus => &[], - BlockKind::Podzol => &[], - BlockKind::PottedFloweringAzaleaBush => &[], - BlockKind::BrownBed => &[], - BlockKind::WhiteWool => &[], - BlockKind::LapisOre => &[], - BlockKind::SpruceStairs => &[], - BlockKind::CoalBlock => &[], - BlockKind::DiamondOre => &[], - BlockKind::SnowBlock => &[], - BlockKind::WarpedFence => &[], - BlockKind::PottedBamboo => &[], - BlockKind::DarkOakLog => &[], - BlockKind::LightGrayWallBanner => &[], - BlockKind::WallTorch => &[], - BlockKind::SandstoneWall => &[], - BlockKind::BrownCandle => &[], - BlockKind::Azalea => &[], - BlockKind::DeadFireCoral => &[], - BlockKind::PinkWallBanner => &[], - BlockKind::ExposedCutCopperSlab => &[], - BlockKind::DiamondBlock => &[], - BlockKind::Lever => &[], - BlockKind::RedMushroom => &[], - BlockKind::PottedSpruceSapling => &[], - BlockKind::RedstoneBlock => &[], - BlockKind::PolishedGraniteSlab => &[], - BlockKind::WhiteShulkerBox => &[], - BlockKind::DioriteSlab => &[], - BlockKind::Hopper => &[], - BlockKind::CrimsonHyphae => &[], - BlockKind::ChorusFlower => &[], - BlockKind::RedstoneWallTorch => &[], - BlockKind::GrayWallBanner => &[], - BlockKind::MediumAmethystBud => &[], - BlockKind::BrownWallBanner => &[], - BlockKind::NetheriteBlock => &[], - BlockKind::RedCandleCake => &[], - BlockKind::BirchSlab => &[], - BlockKind::BubbleCoralWallFan => &[], - BlockKind::BlueBed => &[], - BlockKind::PolishedBlackstoneWall => &[], - BlockKind::GreenConcretePowder => &[], - BlockKind::PolishedBlackstoneButton => &[], - BlockKind::NetherPortal => &[], - BlockKind::PrismarineStairs => &[], - BlockKind::OrangeCandleCake => &[], - BlockKind::SugarCane => &[], - BlockKind::PottedRedTulip => &[], - BlockKind::JungleFence => &[], - BlockKind::DeepslateIronOre => &[], - BlockKind::EnchantingTable => &[], - BlockKind::GreenTerracotta => &[], - BlockKind::BlackShulkerBox => &[], - BlockKind::Beacon => &[], - BlockKind::BrownConcretePowder => &[], - BlockKind::Blackstone => &[], + BlockKind::DeepslateBricks => &[], + BlockKind::DeepslateBrickStairs => &[], + BlockKind::DeepslateBrickSlab => &[], + BlockKind::DeepslateBrickWall => &[], + BlockKind::ChiseledDeepslate => &[], + BlockKind::CrackedDeepslateBricks => &[], + BlockKind::CrackedDeepslateTiles => &[], BlockKind::InfestedDeepslate => &[], + BlockKind::SmoothBasalt => &[], + BlockKind::RawIronBlock => &[], + BlockKind::RawCopperBlock => &[], + BlockKind::RawGoldBlock => &[], + BlockKind::PottedAzaleaBush => &[], + BlockKind::PottedFloweringAzaleaBush => &[], } } } diff --git a/libcraft/blocks/src/simplified_block.rs b/libcraft/blocks/src/simplified_block.rs index 8eb713c23..8ce738b7e 100644 --- a/libcraft/blocks/src/simplified_block.rs +++ b/libcraft/blocks/src/simplified_block.rs @@ -936,920 +936,920 @@ impl BlockKind { #[inline] pub fn simplified_kind(&self) -> SimplifiedBlockKind { match self { - BlockKind::SmoothQuartz => SimplifiedBlockKind::SmoothQuartz, - BlockKind::LimeTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::CutSandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::ZombieWallHead => SimplifiedBlockKind::ZombieWallHead, - BlockKind::BlueOrchid => SimplifiedBlockKind::Flower, - BlockKind::OakFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::WaxedCutCopper => SimplifiedBlockKind::WaxedCutCopper, - BlockKind::PistonHead => SimplifiedBlockKind::PistonHead, - BlockKind::DarkPrismarineStairs => SimplifiedBlockKind::Stairs, - BlockKind::BirchLog => SimplifiedBlockKind::Log, - BlockKind::LightBlueBanner => SimplifiedBlockKind::Banner, - BlockKind::Bamboo => SimplifiedBlockKind::Bamboo, - BlockKind::CaveAir => SimplifiedBlockKind::Air, - BlockKind::GoldOre => SimplifiedBlockKind::GoldOre, - BlockKind::SmoothBasalt => SimplifiedBlockKind::SmoothBasalt, - BlockKind::DeadBubbleCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::Shroomlight => SimplifiedBlockKind::Shroomlight, - BlockKind::BrainCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::SmoothSandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::OxeyeDaisy => SimplifiedBlockKind::Flower, - BlockKind::Cocoa => SimplifiedBlockKind::Cocoa, - BlockKind::AcaciaLeaves => SimplifiedBlockKind::Leaves, - BlockKind::PolishedBlackstoneBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::YellowBed => SimplifiedBlockKind::Bed, - BlockKind::MagentaCandleCake => SimplifiedBlockKind::MagentaCandleCake, - BlockKind::Chain => SimplifiedBlockKind::Chain, - BlockKind::WaxedOxidizedCutCopper => SimplifiedBlockKind::WaxedOxidizedCutCopper, - BlockKind::MagentaGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::WeatheredCutCopper => SimplifiedBlockKind::WeatheredCutCopper, - BlockKind::NetherBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::Lantern => SimplifiedBlockKind::Lantern, - BlockKind::DarkOakFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::RedNetherBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::BrownBanner => SimplifiedBlockKind::Banner, - BlockKind::BrickSlab => SimplifiedBlockKind::Slab, - BlockKind::WitherSkeletonSkull => SimplifiedBlockKind::WitherSkeletonSkull, - BlockKind::MagentaStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::SeaPickle => SimplifiedBlockKind::SeaPickle, - BlockKind::RepeatingCommandBlock => SimplifiedBlockKind::RepeatingCommandBlock, - BlockKind::WarpedHyphae => SimplifiedBlockKind::WarpedHyphae, - BlockKind::MagentaStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::MagentaWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::WarpedWartBlock => SimplifiedBlockKind::WarpedWartBlock, - BlockKind::MushroomStem => SimplifiedBlockKind::MushroomStem, - BlockKind::SoulLantern => SimplifiedBlockKind::SoulLantern, - BlockKind::InfestedCobblestone => SimplifiedBlockKind::InfestedCobblestone, - BlockKind::GlassPane => SimplifiedBlockKind::GlassPane, - BlockKind::BirchLeaves => SimplifiedBlockKind::Leaves, - BlockKind::LightGrayTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::StrippedCrimsonHyphae => SimplifiedBlockKind::StrippedCrimsonHyphae, - BlockKind::PottedLilyOfTheValley => SimplifiedBlockKind::PottedLilyOfTheValley, - BlockKind::StrippedBirchLog => SimplifiedBlockKind::Log, - BlockKind::LightGrayStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::StrippedWarpedHyphae => SimplifiedBlockKind::StrippedWarpedHyphae, + BlockKind::Air => SimplifiedBlockKind::Air, BlockKind::Stone => SimplifiedBlockKind::Stone, - BlockKind::CommandBlock => SimplifiedBlockKind::CommandBlock, - BlockKind::LapisBlock => SimplifiedBlockKind::LapisBlock, - BlockKind::PottedBirchSapling => SimplifiedBlockKind::Sapling, - BlockKind::WarpedPlanks => SimplifiedBlockKind::Planks, + BlockKind::Granite => SimplifiedBlockKind::Granite, + BlockKind::PolishedGranite => SimplifiedBlockKind::PolishedGranite, + BlockKind::Diorite => SimplifiedBlockKind::Diorite, + BlockKind::PolishedDiorite => SimplifiedBlockKind::PolishedDiorite, + BlockKind::Andesite => SimplifiedBlockKind::Andesite, + BlockKind::PolishedAndesite => SimplifiedBlockKind::PolishedAndesite, + BlockKind::GrassBlock => SimplifiedBlockKind::GrassBlock, + BlockKind::Dirt => SimplifiedBlockKind::Dirt, + BlockKind::CoarseDirt => SimplifiedBlockKind::CoarseDirt, + BlockKind::Podzol => SimplifiedBlockKind::Podzol, + BlockKind::Cobblestone => SimplifiedBlockKind::Cobblestone, + BlockKind::OakPlanks => SimplifiedBlockKind::Planks, + BlockKind::SprucePlanks => SimplifiedBlockKind::Planks, + BlockKind::BirchPlanks => SimplifiedBlockKind::Planks, + BlockKind::JunglePlanks => SimplifiedBlockKind::Planks, BlockKind::AcaciaPlanks => SimplifiedBlockKind::Planks, - BlockKind::SpruceTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::RedstoneOre => SimplifiedBlockKind::RedstoneOre, - BlockKind::LimeConcrete => SimplifiedBlockKind::Concrete, - BlockKind::OrangeTulip => SimplifiedBlockKind::Flower, - BlockKind::CrackedDeepslateBricks => SimplifiedBlockKind::CrackedDeepslateBricks, - BlockKind::PottedWitherRose => SimplifiedBlockKind::PottedWitherRose, - BlockKind::DeadBubbleCoral => SimplifiedBlockKind::Coral, - BlockKind::JungleFence => SimplifiedBlockKind::Fence, - BlockKind::SpruceWallSign => SimplifiedBlockKind::WallSign, - BlockKind::WhiteCandleCake => SimplifiedBlockKind::WhiteCandleCake, - BlockKind::JunglePressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::FrostedIce => SimplifiedBlockKind::FrostedIce, - BlockKind::Smoker => SimplifiedBlockKind::Smoker, - BlockKind::Target => SimplifiedBlockKind::Target, - BlockKind::ChiseledRedSandstone => SimplifiedBlockKind::ChiseledRedSandstone, - BlockKind::GreenConcrete => SimplifiedBlockKind::Concrete, - BlockKind::CrackedStoneBricks => SimplifiedBlockKind::CrackedStoneBricks, - BlockKind::GrayTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::PoweredRail => SimplifiedBlockKind::PoweredRail, - BlockKind::DarkPrismarineSlab => SimplifiedBlockKind::Slab, - BlockKind::RedstoneWallTorch => SimplifiedBlockKind::RedstoneWallTorch, - BlockKind::Kelp => SimplifiedBlockKind::Kelp, - BlockKind::DaylightDetector => SimplifiedBlockKind::DaylightDetector, - BlockKind::GrayConcrete => SimplifiedBlockKind::Concrete, - BlockKind::BlackCandle => SimplifiedBlockKind::BlackCandle, - BlockKind::Furnace => SimplifiedBlockKind::Furnace, - BlockKind::PolishedBlackstone => SimplifiedBlockKind::PolishedBlackstone, - BlockKind::DriedKelpBlock => SimplifiedBlockKind::DriedKelpBlock, - BlockKind::DarkOakWood => SimplifiedBlockKind::Log, - BlockKind::WaxedWeatheredCutCopper => SimplifiedBlockKind::WaxedWeatheredCutCopper, - BlockKind::MagentaShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::DarkOakPlanks => SimplifiedBlockKind::Planks, + BlockKind::OakSapling => SimplifiedBlockKind::Sapling, + BlockKind::SpruceSapling => SimplifiedBlockKind::Sapling, + BlockKind::BirchSapling => SimplifiedBlockKind::Sapling, BlockKind::JungleSapling => SimplifiedBlockKind::Sapling, - BlockKind::BlackShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::SpruceLeaves => SimplifiedBlockKind::Leaves, - BlockKind::DeadHornCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::PurpleBed => SimplifiedBlockKind::Bed, - BlockKind::PolishedGraniteStairs => SimplifiedBlockKind::Stairs, - BlockKind::TubeCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::OrangeGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::BlueBed => SimplifiedBlockKind::Bed, - BlockKind::PetrifiedOakSlab => SimplifiedBlockKind::Slab, - BlockKind::SoulSand => SimplifiedBlockKind::SoulSand, - BlockKind::BirchPlanks => SimplifiedBlockKind::Planks, + BlockKind::AcaciaSapling => SimplifiedBlockKind::Sapling, + BlockKind::DarkOakSapling => SimplifiedBlockKind::Sapling, + BlockKind::Bedrock => SimplifiedBlockKind::Bedrock, + BlockKind::Water => SimplifiedBlockKind::Water, + BlockKind::Lava => SimplifiedBlockKind::Lava, + BlockKind::Sand => SimplifiedBlockKind::Sand, + BlockKind::RedSand => SimplifiedBlockKind::RedSand, + BlockKind::Gravel => SimplifiedBlockKind::Gravel, + BlockKind::GoldOre => SimplifiedBlockKind::GoldOre, + BlockKind::DeepslateGoldOre => SimplifiedBlockKind::DeepslateGoldOre, + BlockKind::IronOre => SimplifiedBlockKind::IronOre, + BlockKind::DeepslateIronOre => SimplifiedBlockKind::DeepslateIronOre, + BlockKind::CoalOre => SimplifiedBlockKind::CoalOre, + BlockKind::DeepslateCoalOre => SimplifiedBlockKind::DeepslateCoalOre, + BlockKind::NetherGoldOre => SimplifiedBlockKind::NetherGoldOre, + BlockKind::OakLog => SimplifiedBlockKind::Log, + BlockKind::SpruceLog => SimplifiedBlockKind::Log, + BlockKind::BirchLog => SimplifiedBlockKind::Log, + BlockKind::JungleLog => SimplifiedBlockKind::Log, + BlockKind::AcaciaLog => SimplifiedBlockKind::Log, + BlockKind::DarkOakLog => SimplifiedBlockKind::Log, + BlockKind::StrippedSpruceLog => SimplifiedBlockKind::Log, + BlockKind::StrippedBirchLog => SimplifiedBlockKind::Log, + BlockKind::StrippedJungleLog => SimplifiedBlockKind::Log, + BlockKind::StrippedAcaciaLog => SimplifiedBlockKind::Log, + BlockKind::StrippedDarkOakLog => SimplifiedBlockKind::Log, + BlockKind::StrippedOakLog => SimplifiedBlockKind::Log, + BlockKind::OakWood => SimplifiedBlockKind::Log, + BlockKind::SpruceWood => SimplifiedBlockKind::Log, + BlockKind::BirchWood => SimplifiedBlockKind::Log, + BlockKind::JungleWood => SimplifiedBlockKind::Log, BlockKind::AcaciaWood => SimplifiedBlockKind::Log, - BlockKind::FlowerPot => SimplifiedBlockKind::FlowerPot, - BlockKind::Campfire => SimplifiedBlockKind::Campfire, - BlockKind::NetherBricks => SimplifiedBlockKind::NetherBricks, - BlockKind::JungleSlab => SimplifiedBlockKind::Slab, - BlockKind::OrangeCandle => SimplifiedBlockKind::OrangeCandle, - BlockKind::BirchSapling => SimplifiedBlockKind::Sapling, - BlockKind::DarkPrismarine => SimplifiedBlockKind::DarkPrismarine, - BlockKind::GrayCandle => SimplifiedBlockKind::GrayCandle, - BlockKind::WeepingVinesPlant => SimplifiedBlockKind::WeepingVinesPlant, - BlockKind::CrimsonFence => SimplifiedBlockKind::Fence, - BlockKind::AttachedPumpkinStem => SimplifiedBlockKind::AttachedPumpkinStem, - BlockKind::PottedFloweringAzaleaBush => SimplifiedBlockKind::PottedFloweringAzaleaBush, - BlockKind::YellowCandleCake => SimplifiedBlockKind::YellowCandleCake, - BlockKind::BlackWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::DarkOakWood => SimplifiedBlockKind::Log, + BlockKind::StrippedOakWood => SimplifiedBlockKind::Log, + BlockKind::StrippedSpruceWood => SimplifiedBlockKind::Log, + BlockKind::StrippedBirchWood => SimplifiedBlockKind::Log, + BlockKind::StrippedJungleWood => SimplifiedBlockKind::Log, + BlockKind::StrippedAcaciaWood => SimplifiedBlockKind::Log, + BlockKind::StrippedDarkOakWood => SimplifiedBlockKind::Log, + BlockKind::OakLeaves => SimplifiedBlockKind::Leaves, + BlockKind::SpruceLeaves => SimplifiedBlockKind::Leaves, + BlockKind::BirchLeaves => SimplifiedBlockKind::Leaves, + BlockKind::JungleLeaves => SimplifiedBlockKind::Leaves, + BlockKind::AcaciaLeaves => SimplifiedBlockKind::Leaves, + BlockKind::DarkOakLeaves => SimplifiedBlockKind::Leaves, + BlockKind::AzaleaLeaves => SimplifiedBlockKind::Leaves, + BlockKind::FloweringAzaleaLeaves => SimplifiedBlockKind::Leaves, BlockKind::Sponge => SimplifiedBlockKind::Sponge, - BlockKind::SmoothSandstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::PottedDandelion => SimplifiedBlockKind::PottedDandelion, - BlockKind::PottedAllium => SimplifiedBlockKind::PottedAllium, - BlockKind::JungleWood => SimplifiedBlockKind::Log, - BlockKind::PottedRedTulip => SimplifiedBlockKind::Flower, - BlockKind::PottedSpruceSapling => SimplifiedBlockKind::Sapling, - BlockKind::Beetroots => SimplifiedBlockKind::Beetroots, - BlockKind::KelpPlant => SimplifiedBlockKind::KelpPlant, - BlockKind::WarpedStem => SimplifiedBlockKind::WarpedStem, - BlockKind::MossyStoneBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::PurpleBanner => SimplifiedBlockKind::Banner, - BlockKind::LightningRod => SimplifiedBlockKind::LightningRod, - BlockKind::Conduit => SimplifiedBlockKind::Conduit, - BlockKind::HornCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::Beehive => SimplifiedBlockKind::Beehive, - BlockKind::PolishedAndesite => SimplifiedBlockKind::PolishedAndesite, - BlockKind::Calcite => SimplifiedBlockKind::Calcite, - BlockKind::PinkGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::Sand => SimplifiedBlockKind::Sand, - BlockKind::Clay => SimplifiedBlockKind::Clay, - BlockKind::DirtPath => SimplifiedBlockKind::DirtPath, - BlockKind::MagentaCandle => SimplifiedBlockKind::MagentaCandle, + BlockKind::WetSponge => SimplifiedBlockKind::WetSponge, + BlockKind::Glass => SimplifiedBlockKind::Glass, + BlockKind::LapisOre => SimplifiedBlockKind::LapisOre, + BlockKind::DeepslateLapisOre => SimplifiedBlockKind::DeepslateLapisOre, + BlockKind::LapisBlock => SimplifiedBlockKind::LapisBlock, + BlockKind::Dispenser => SimplifiedBlockKind::Dispenser, + BlockKind::Sandstone => SimplifiedBlockKind::Sandstone, + BlockKind::ChiseledSandstone => SimplifiedBlockKind::ChiseledSandstone, + BlockKind::CutSandstone => SimplifiedBlockKind::CutSandstone, + BlockKind::NoteBlock => SimplifiedBlockKind::NoteBlock, + BlockKind::WhiteBed => SimplifiedBlockKind::Bed, + BlockKind::OrangeBed => SimplifiedBlockKind::Bed, + BlockKind::MagentaBed => SimplifiedBlockKind::Bed, + BlockKind::LightBlueBed => SimplifiedBlockKind::Bed, + BlockKind::YellowBed => SimplifiedBlockKind::Bed, + BlockKind::LimeBed => SimplifiedBlockKind::Bed, BlockKind::PinkBed => SimplifiedBlockKind::Bed, - BlockKind::SmallAmethystBud => SimplifiedBlockKind::SmallAmethystBud, - BlockKind::WitherRose => SimplifiedBlockKind::WitherRose, - BlockKind::StoneBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::RedSandstoneWall => SimplifiedBlockKind::RedSandstoneWall, - BlockKind::WhiteTulip => SimplifiedBlockKind::Flower, - BlockKind::BlackBed => SimplifiedBlockKind::Bed, - BlockKind::JungleWallSign => SimplifiedBlockKind::WallSign, - BlockKind::PinkStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::RawIronBlock => SimplifiedBlockKind::RawIronBlock, - BlockKind::PinkStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::DeepslateTileWall => SimplifiedBlockKind::DeepslateTileWall, - BlockKind::InfestedDeepslate => SimplifiedBlockKind::InfestedDeepslate, - BlockKind::GreenCandleCake => SimplifiedBlockKind::GreenCandleCake, - BlockKind::PottedRedMushroom => SimplifiedBlockKind::Mushroom, - BlockKind::GrayGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::RawGoldBlock => SimplifiedBlockKind::RawGoldBlock, - BlockKind::LightGrayCandle => SimplifiedBlockKind::LightGrayCandle, - BlockKind::RedSandstone => SimplifiedBlockKind::RedSandstone, - BlockKind::OrangeTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::WhiteStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::Tnt => SimplifiedBlockKind::Tnt, - BlockKind::CrimsonDoor => SimplifiedBlockKind::CrimsonDoor, - BlockKind::SugarCane => SimplifiedBlockKind::SugarCane, - BlockKind::BlackstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::EndGateway => SimplifiedBlockKind::EndGateway, - BlockKind::LightGrayBanner => SimplifiedBlockKind::Banner, - BlockKind::Cobblestone => SimplifiedBlockKind::Cobblestone, - BlockKind::WarpedWallSign => SimplifiedBlockKind::WallSign, - BlockKind::PottedDeadBush => SimplifiedBlockKind::PottedDeadBush, - BlockKind::RedstoneLamp => SimplifiedBlockKind::RedstoneLamp, - BlockKind::PinkCandleCake => SimplifiedBlockKind::PinkCandleCake, - BlockKind::SoulCampfire => SimplifiedBlockKind::SoulCampfire, + BlockKind::GrayBed => SimplifiedBlockKind::Bed, + BlockKind::LightGrayBed => SimplifiedBlockKind::Bed, + BlockKind::CyanBed => SimplifiedBlockKind::Bed, + BlockKind::PurpleBed => SimplifiedBlockKind::Bed, + BlockKind::BlueBed => SimplifiedBlockKind::Bed, + BlockKind::BrownBed => SimplifiedBlockKind::Bed, BlockKind::GreenBed => SimplifiedBlockKind::Bed, - BlockKind::WaxedExposedCopper => SimplifiedBlockKind::WaxedExposedCopper, - BlockKind::SeaLantern => SimplifiedBlockKind::SeaLantern, - BlockKind::PinkWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::Granite => SimplifiedBlockKind::Granite, + BlockKind::RedBed => SimplifiedBlockKind::Bed, + BlockKind::BlackBed => SimplifiedBlockKind::Bed, + BlockKind::PoweredRail => SimplifiedBlockKind::PoweredRail, + BlockKind::DetectorRail => SimplifiedBlockKind::DetectorRail, + BlockKind::StickyPiston => SimplifiedBlockKind::StickyPiston, + BlockKind::Cobweb => SimplifiedBlockKind::Cobweb, + BlockKind::Grass => SimplifiedBlockKind::Grass, + BlockKind::Fern => SimplifiedBlockKind::Fern, BlockKind::DeadBush => SimplifiedBlockKind::DeadBush, - BlockKind::Wheat => SimplifiedBlockKind::Wheat, - BlockKind::Candle => SimplifiedBlockKind::Candle, - BlockKind::HeavyWeightedPressurePlate => { - SimplifiedBlockKind::HeavyWeightedPressurePlate - } - BlockKind::Glass => SimplifiedBlockKind::Glass, - BlockKind::BlackStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::CyanShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::InfestedChiseledStoneBricks => { - SimplifiedBlockKind::InfestedChiseledStoneBricks - } - BlockKind::RedSand => SimplifiedBlockKind::RedSand, - BlockKind::CrimsonHyphae => SimplifiedBlockKind::CrimsonHyphae, - BlockKind::DeepslateCoalOre => SimplifiedBlockKind::DeepslateCoalOre, - BlockKind::PinkConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::FireCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::Jigsaw => SimplifiedBlockKind::Jigsaw, - BlockKind::BlackStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::DioriteWall => SimplifiedBlockKind::DioriteWall, - BlockKind::BirchButton => SimplifiedBlockKind::WoodenButton, - BlockKind::RedNetherBricks => SimplifiedBlockKind::RedNetherBricks, - BlockKind::Sandstone => SimplifiedBlockKind::Sandstone, - BlockKind::AndesiteSlab => SimplifiedBlockKind::Slab, - BlockKind::OakTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::BrownMushroom => SimplifiedBlockKind::Mushroom, - BlockKind::CyanGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::WarpedRoots => SimplifiedBlockKind::WarpedRoots, - BlockKind::IronOre => SimplifiedBlockKind::IronOre, - BlockKind::PottedPoppy => SimplifiedBlockKind::PottedPoppy, - BlockKind::CrimsonRoots => SimplifiedBlockKind::CrimsonRoots, - BlockKind::OakSapling => SimplifiedBlockKind::Sapling, - BlockKind::DeadBrainCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::PurpurSlab => SimplifiedBlockKind::Slab, - BlockKind::RedShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::Seagrass => SimplifiedBlockKind::Seagrass, + BlockKind::TallSeagrass => SimplifiedBlockKind::TallSeagrass, BlockKind::Piston => SimplifiedBlockKind::Piston, - BlockKind::InfestedStone => SimplifiedBlockKind::InfestedStone, - BlockKind::QuartzStairs => SimplifiedBlockKind::Stairs, - BlockKind::DeadTubeCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::PistonHead => SimplifiedBlockKind::PistonHead, BlockKind::WhiteWool => SimplifiedBlockKind::Wool, - BlockKind::StoneBricks => SimplifiedBlockKind::StoneBricks, - BlockKind::HoneyBlock => SimplifiedBlockKind::HoneyBlock, - BlockKind::PurpleCarpet => SimplifiedBlockKind::Carpet, - BlockKind::IronDoor => SimplifiedBlockKind::IronDoor, - BlockKind::StrippedAcaciaWood => SimplifiedBlockKind::Log, - BlockKind::BrickWall => SimplifiedBlockKind::BrickWall, - BlockKind::PolishedBlackstoneBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::TubeCoral => SimplifiedBlockKind::Coral, - BlockKind::PurpleStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::DeadFireCoral => SimplifiedBlockKind::Coral, - BlockKind::LavaCauldron => SimplifiedBlockKind::LavaCauldron, - BlockKind::WarpedSlab => SimplifiedBlockKind::Slab, - BlockKind::BubbleCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::LimeBed => SimplifiedBlockKind::Bed, - BlockKind::QuartzBricks => SimplifiedBlockKind::QuartzBricks, - BlockKind::CutRedSandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::Prismarine => SimplifiedBlockKind::Prismarine, - BlockKind::PrismarineBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::SprucePlanks => SimplifiedBlockKind::Planks, - BlockKind::JackOLantern => SimplifiedBlockKind::JackOLantern, - BlockKind::BlueCandleCake => SimplifiedBlockKind::BlueCandleCake, - BlockKind::StoneBrickWall => SimplifiedBlockKind::StoneBrickWall, - BlockKind::GrayShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::OrangeCarpet => SimplifiedBlockKind::Carpet, - BlockKind::LargeAmethystBud => SimplifiedBlockKind::LargeAmethystBud, - BlockKind::OakButton => SimplifiedBlockKind::WoodenButton, - BlockKind::OakWallSign => SimplifiedBlockKind::WallSign, - BlockKind::EmeraldOre => SimplifiedBlockKind::EmeraldOre, - BlockKind::SmoothQuartzStairs => SimplifiedBlockKind::Stairs, - BlockKind::CutCopper => SimplifiedBlockKind::CutCopper, - BlockKind::BubbleCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::PinkShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::DiamondBlock => SimplifiedBlockKind::DiamondBlock, - BlockKind::PurpurStairs => SimplifiedBlockKind::Stairs, - BlockKind::OrangeStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::CrimsonPlanks => SimplifiedBlockKind::Planks, - BlockKind::EndPortal => SimplifiedBlockKind::EndPortal, - BlockKind::OxidizedCutCopper => SimplifiedBlockKind::OxidizedCutCopper, - BlockKind::CyanConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::DeepslateBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::MelonStem => SimplifiedBlockKind::MelonStem, - BlockKind::LightGrayCarpet => SimplifiedBlockKind::Carpet, - BlockKind::ZombieHead => SimplifiedBlockKind::ZombieHead, - BlockKind::BirchWood => SimplifiedBlockKind::Log, - BlockKind::PurpleConcrete => SimplifiedBlockKind::Concrete, - BlockKind::Torch => SimplifiedBlockKind::Torch, - BlockKind::Grass => SimplifiedBlockKind::Grass, - BlockKind::FireCoral => SimplifiedBlockKind::Coral, - BlockKind::StrippedWarpedStem => SimplifiedBlockKind::StrippedWarpedStem, - BlockKind::CrackedDeepslateTiles => SimplifiedBlockKind::CrackedDeepslateTiles, - BlockKind::CaveVines => SimplifiedBlockKind::CaveVines, - BlockKind::DarkOakPlanks => SimplifiedBlockKind::Planks, - BlockKind::ShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::PurpurBlock => SimplifiedBlockKind::PurpurBlock, - BlockKind::DeadBubbleCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::Dropper => SimplifiedBlockKind::Dropper, - BlockKind::MagentaCarpet => SimplifiedBlockKind::Carpet, - BlockKind::GreenGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::YellowBanner => SimplifiedBlockKind::Banner, BlockKind::OrangeWool => SimplifiedBlockKind::Wool, - BlockKind::PurpurPillar => SimplifiedBlockKind::PurpurPillar, - BlockKind::SmoothStone => SimplifiedBlockKind::SmoothStone, - BlockKind::YellowStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::Snow => SimplifiedBlockKind::Snow, - BlockKind::OakLog => SimplifiedBlockKind::Log, - BlockKind::Stonecutter => SimplifiedBlockKind::Stonecutter, - BlockKind::Barrel => SimplifiedBlockKind::Barrel, - BlockKind::StoneBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::HornCoral => SimplifiedBlockKind::Coral, - BlockKind::RedCandle => SimplifiedBlockKind::RedCandle, - BlockKind::BlastFurnace => SimplifiedBlockKind::BlastFurnace, - BlockKind::Diorite => SimplifiedBlockKind::Diorite, - BlockKind::YellowStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::LightGrayStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::BirchDoor => SimplifiedBlockKind::WoodenDoor, - BlockKind::RedCandleCake => SimplifiedBlockKind::RedCandleCake, - BlockKind::PottedWhiteTulip => SimplifiedBlockKind::Flower, - BlockKind::OakSlab => SimplifiedBlockKind::Slab, - BlockKind::NetherBrickWall => SimplifiedBlockKind::NetherBrickWall, - BlockKind::StrippedJungleWood => SimplifiedBlockKind::Log, - BlockKind::Repeater => SimplifiedBlockKind::Repeater, - BlockKind::GoldBlock => SimplifiedBlockKind::GoldBlock, - BlockKind::WarpedSign => SimplifiedBlockKind::Sign, - BlockKind::NetherPortal => SimplifiedBlockKind::NetherPortal, - BlockKind::CobblestoneWall => SimplifiedBlockKind::CobblestoneWall, - BlockKind::CreeperHead => SimplifiedBlockKind::CreeperHead, - BlockKind::EndRod => SimplifiedBlockKind::EndRod, - BlockKind::WhiteWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::MagentaWool => SimplifiedBlockKind::Wool, + BlockKind::LightBlueWool => SimplifiedBlockKind::Wool, + BlockKind::YellowWool => SimplifiedBlockKind::Wool, + BlockKind::LimeWool => SimplifiedBlockKind::Wool, BlockKind::PinkWool => SimplifiedBlockKind::Wool, - BlockKind::WhiteStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::OrangeConcrete => SimplifiedBlockKind::Concrete, - BlockKind::PottedBrownMushroom => SimplifiedBlockKind::Mushroom, - BlockKind::SpruceFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::GrayWool => SimplifiedBlockKind::Wool, + BlockKind::LightGrayWool => SimplifiedBlockKind::Wool, + BlockKind::CyanWool => SimplifiedBlockKind::Wool, + BlockKind::PurpleWool => SimplifiedBlockKind::Wool, + BlockKind::BlueWool => SimplifiedBlockKind::Wool, + BlockKind::BrownWool => SimplifiedBlockKind::Wool, + BlockKind::GreenWool => SimplifiedBlockKind::Wool, + BlockKind::RedWool => SimplifiedBlockKind::Wool, + BlockKind::BlackWool => SimplifiedBlockKind::Wool, + BlockKind::MovingPiston => SimplifiedBlockKind::MovingPiston, + BlockKind::Dandelion => SimplifiedBlockKind::Flower, + BlockKind::Poppy => SimplifiedBlockKind::Flower, + BlockKind::BlueOrchid => SimplifiedBlockKind::Flower, + BlockKind::Allium => SimplifiedBlockKind::Flower, + BlockKind::AzureBluet => SimplifiedBlockKind::Flower, + BlockKind::RedTulip => SimplifiedBlockKind::Flower, + BlockKind::OrangeTulip => SimplifiedBlockKind::Flower, + BlockKind::WhiteTulip => SimplifiedBlockKind::Flower, + BlockKind::PinkTulip => SimplifiedBlockKind::Flower, + BlockKind::OxeyeDaisy => SimplifiedBlockKind::Flower, + BlockKind::Cornflower => SimplifiedBlockKind::Cornflower, + BlockKind::WitherRose => SimplifiedBlockKind::WitherRose, + BlockKind::LilyOfTheValley => SimplifiedBlockKind::LilyOfTheValley, + BlockKind::BrownMushroom => SimplifiedBlockKind::Mushroom, + BlockKind::RedMushroom => SimplifiedBlockKind::Mushroom, + BlockKind::GoldBlock => SimplifiedBlockKind::GoldBlock, + BlockKind::IronBlock => SimplifiedBlockKind::IronBlock, + BlockKind::Bricks => SimplifiedBlockKind::Bricks, + BlockKind::Tnt => SimplifiedBlockKind::Tnt, + BlockKind::Bookshelf => SimplifiedBlockKind::Bookshelf, + BlockKind::MossyCobblestone => SimplifiedBlockKind::MossyCobblestone, + BlockKind::Obsidian => SimplifiedBlockKind::Obsidian, + BlockKind::Torch => SimplifiedBlockKind::Torch, + BlockKind::WallTorch => SimplifiedBlockKind::WallTorch, + BlockKind::Fire => SimplifiedBlockKind::Fire, + BlockKind::SoulFire => SimplifiedBlockKind::SoulFire, + BlockKind::Spawner => SimplifiedBlockKind::Spawner, + BlockKind::OakStairs => SimplifiedBlockKind::Stairs, + BlockKind::Chest => SimplifiedBlockKind::Chest, + BlockKind::RedstoneWire => SimplifiedBlockKind::RedstoneWire, + BlockKind::DiamondOre => SimplifiedBlockKind::DiamondOre, + BlockKind::DeepslateDiamondOre => SimplifiedBlockKind::DeepslateDiamondOre, + BlockKind::DiamondBlock => SimplifiedBlockKind::DiamondBlock, + BlockKind::CraftingTable => SimplifiedBlockKind::CraftingTable, + BlockKind::Wheat => SimplifiedBlockKind::Wheat, + BlockKind::Farmland => SimplifiedBlockKind::Farmland, + BlockKind::Furnace => SimplifiedBlockKind::Furnace, + BlockKind::OakSign => SimplifiedBlockKind::Sign, + BlockKind::SpruceSign => SimplifiedBlockKind::Sign, + BlockKind::BirchSign => SimplifiedBlockKind::Sign, + BlockKind::AcaciaSign => SimplifiedBlockKind::Sign, + BlockKind::JungleSign => SimplifiedBlockKind::Sign, + BlockKind::DarkOakSign => SimplifiedBlockKind::Sign, + BlockKind::OakDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::Ladder => SimplifiedBlockKind::Ladder, + BlockKind::Rail => SimplifiedBlockKind::Rail, + BlockKind::CobblestoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::OakWallSign => SimplifiedBlockKind::WallSign, + BlockKind::SpruceWallSign => SimplifiedBlockKind::WallSign, + BlockKind::BirchWallSign => SimplifiedBlockKind::WallSign, + BlockKind::AcaciaWallSign => SimplifiedBlockKind::WallSign, + BlockKind::JungleWallSign => SimplifiedBlockKind::WallSign, + BlockKind::DarkOakWallSign => SimplifiedBlockKind::WallSign, + BlockKind::Lever => SimplifiedBlockKind::Lever, + BlockKind::StonePressurePlate => SimplifiedBlockKind::StonePressurePlate, + BlockKind::IronDoor => SimplifiedBlockKind::IronDoor, + BlockKind::OakPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, BlockKind::SprucePressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::BambooSapling => SimplifiedBlockKind::Sapling, - BlockKind::GrayCandleCake => SimplifiedBlockKind::GrayCandleCake, - BlockKind::RedstoneBlock => SimplifiedBlockKind::RedstoneBlock, - BlockKind::PolishedDiorite => SimplifiedBlockKind::PolishedDiorite, - BlockKind::BeeNest => SimplifiedBlockKind::BeeNest, - BlockKind::Blackstone => SimplifiedBlockKind::Blackstone, - BlockKind::JungleStairs => SimplifiedBlockKind::Stairs, - BlockKind::MossyCobblestoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::CopperBlock => SimplifiedBlockKind::CopperBlock, - BlockKind::CyanCandle => SimplifiedBlockKind::CyanCandle, - BlockKind::PurpleGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::ExposedCopper => SimplifiedBlockKind::ExposedCopper, - BlockKind::WeatheredCutCopperSlab => SimplifiedBlockKind::Slab, - BlockKind::Scaffolding => SimplifiedBlockKind::Scaffolding, - BlockKind::BirchSlab => SimplifiedBlockKind::Slab, - BlockKind::PottedBamboo => SimplifiedBlockKind::PottedBamboo, - BlockKind::CrimsonButton => SimplifiedBlockKind::CrimsonButton, - BlockKind::YellowConcrete => SimplifiedBlockKind::Concrete, - BlockKind::RedWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::RedstoneTorch => SimplifiedBlockKind::RedstoneTorch, + BlockKind::BirchPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, + BlockKind::JunglePressurePlate => SimplifiedBlockKind::WoodenPressurePlate, + BlockKind::AcaciaPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, + BlockKind::DarkOakPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, + BlockKind::RedstoneOre => SimplifiedBlockKind::RedstoneOre, BlockKind::DeepslateRedstoneOre => SimplifiedBlockKind::DeepslateRedstoneOre, - BlockKind::SpruceWood => SimplifiedBlockKind::Log, - BlockKind::AcaciaSlab => SimplifiedBlockKind::Slab, - BlockKind::JungleLog => SimplifiedBlockKind::Log, + BlockKind::RedstoneTorch => SimplifiedBlockKind::RedstoneTorch, + BlockKind::RedstoneWallTorch => SimplifiedBlockKind::RedstoneWallTorch, + BlockKind::StoneButton => SimplifiedBlockKind::StoneButton, + BlockKind::Snow => SimplifiedBlockKind::Snow, + BlockKind::Ice => SimplifiedBlockKind::Ice, + BlockKind::SnowBlock => SimplifiedBlockKind::SnowBlock, + BlockKind::Cactus => SimplifiedBlockKind::Cactus, + BlockKind::Clay => SimplifiedBlockKind::Clay, + BlockKind::SugarCane => SimplifiedBlockKind::SugarCane, + BlockKind::Jukebox => SimplifiedBlockKind::Jukebox, + BlockKind::OakFence => SimplifiedBlockKind::Fence, + BlockKind::Pumpkin => SimplifiedBlockKind::Pumpkin, + BlockKind::Netherrack => SimplifiedBlockKind::Netherrack, + BlockKind::SoulSand => SimplifiedBlockKind::SoulSand, + BlockKind::SoulSoil => SimplifiedBlockKind::SoulSoil, + BlockKind::Basalt => SimplifiedBlockKind::Basalt, + BlockKind::PolishedBasalt => SimplifiedBlockKind::PolishedBasalt, + BlockKind::SoulTorch => SimplifiedBlockKind::SoulTorch, + BlockKind::SoulWallTorch => SimplifiedBlockKind::SoulWallTorch, + BlockKind::Glowstone => SimplifiedBlockKind::Glowstone, + BlockKind::NetherPortal => SimplifiedBlockKind::NetherPortal, + BlockKind::CarvedPumpkin => SimplifiedBlockKind::CarvedPumpkin, + BlockKind::JackOLantern => SimplifiedBlockKind::JackOLantern, + BlockKind::Cake => SimplifiedBlockKind::Cake, + BlockKind::Repeater => SimplifiedBlockKind::Repeater, + BlockKind::WhiteStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::OrangeStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::MagentaStainedGlass => SimplifiedBlockKind::StainedGlass, BlockKind::LightBlueStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::Gravel => SimplifiedBlockKind::Gravel, - BlockKind::EndStone => SimplifiedBlockKind::EndStone, - BlockKind::BirchWallSign => SimplifiedBlockKind::WallSign, - BlockKind::QuartzPillar => SimplifiedBlockKind::QuartzPillar, - BlockKind::RootedDirt => SimplifiedBlockKind::RootedDirt, - BlockKind::MediumAmethystBud => SimplifiedBlockKind::MediumAmethystBud, - BlockKind::SandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::WhiteCandle => SimplifiedBlockKind::WhiteCandle, - BlockKind::BirchFence => SimplifiedBlockKind::Fence, - BlockKind::MossBlock => SimplifiedBlockKind::MossBlock, - BlockKind::PurpleCandle => SimplifiedBlockKind::PurpleCandle, - BlockKind::EndPortalFrame => SimplifiedBlockKind::EndPortalFrame, - BlockKind::OrangeBed => SimplifiedBlockKind::Bed, - BlockKind::DeepslateGoldOre => SimplifiedBlockKind::DeepslateGoldOre, - BlockKind::LimeBanner => SimplifiedBlockKind::Banner, - BlockKind::DeepslateBricks => SimplifiedBlockKind::DeepslateBricks, - BlockKind::LilyOfTheValley => SimplifiedBlockKind::LilyOfTheValley, - BlockKind::CrackedPolishedBlackstoneBricks => { - SimplifiedBlockKind::CrackedPolishedBlackstoneBricks - } - BlockKind::StrippedSpruceWood => SimplifiedBlockKind::Log, - BlockKind::RedBanner => SimplifiedBlockKind::Banner, - BlockKind::MagentaConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::SpruceFence => SimplifiedBlockKind::Fence, - BlockKind::Composter => SimplifiedBlockKind::Composter, - BlockKind::BrainCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::Rail => SimplifiedBlockKind::Rail, - BlockKind::PottedAzureBluet => SimplifiedBlockKind::Flower, - BlockKind::JungleFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::Lectern => SimplifiedBlockKind::Lectern, - BlockKind::LightGrayConcrete => SimplifiedBlockKind::Concrete, - BlockKind::Lodestone => SimplifiedBlockKind::Lodestone, - BlockKind::LightGrayBed => SimplifiedBlockKind::Bed, - BlockKind::ExposedCutCopperStairs => SimplifiedBlockKind::Stairs, - BlockKind::DarkOakTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::RedNetherBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::DiamondOre => SimplifiedBlockKind::DiamondOre, - BlockKind::YellowCarpet => SimplifiedBlockKind::Carpet, - BlockKind::ChippedAnvil => SimplifiedBlockKind::Anvil, - BlockKind::GreenStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::YellowStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::LimeStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::PinkStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::GrayStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::LightGrayStainedGlass => SimplifiedBlockKind::StainedGlass, BlockKind::CyanStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::PurpleStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::BlueStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::BrownStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::GreenStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::RedStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::BlackStainedGlass => SimplifiedBlockKind::StainedGlass, + BlockKind::OakTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::SpruceTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::BirchTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::JungleTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::AcaciaTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::DarkOakTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::StoneBricks => SimplifiedBlockKind::StoneBricks, + BlockKind::MossyStoneBricks => SimplifiedBlockKind::MossyStoneBricks, + BlockKind::CrackedStoneBricks => SimplifiedBlockKind::CrackedStoneBricks, + BlockKind::ChiseledStoneBricks => SimplifiedBlockKind::ChiseledStoneBricks, + BlockKind::InfestedStone => SimplifiedBlockKind::InfestedStone, + BlockKind::InfestedCobblestone => SimplifiedBlockKind::InfestedCobblestone, + BlockKind::InfestedStoneBricks => SimplifiedBlockKind::InfestedStoneBricks, + BlockKind::InfestedMossyStoneBricks => SimplifiedBlockKind::InfestedMossyStoneBricks, + BlockKind::InfestedCrackedStoneBricks => { + SimplifiedBlockKind::InfestedCrackedStoneBricks + } + BlockKind::InfestedChiseledStoneBricks => { + SimplifiedBlockKind::InfestedChiseledStoneBricks + } + BlockKind::BrownMushroomBlock => SimplifiedBlockKind::BrownMushroomBlock, + BlockKind::RedMushroomBlock => SimplifiedBlockKind::RedMushroomBlock, + BlockKind::MushroomStem => SimplifiedBlockKind::MushroomStem, + BlockKind::IronBars => SimplifiedBlockKind::IronBars, + BlockKind::Chain => SimplifiedBlockKind::Chain, + BlockKind::GlassPane => SimplifiedBlockKind::GlassPane, + BlockKind::Melon => SimplifiedBlockKind::Melon, + BlockKind::AttachedPumpkinStem => SimplifiedBlockKind::AttachedPumpkinStem, + BlockKind::AttachedMelonStem => SimplifiedBlockKind::AttachedMelonStem, + BlockKind::PumpkinStem => SimplifiedBlockKind::PumpkinStem, + BlockKind::MelonStem => SimplifiedBlockKind::MelonStem, + BlockKind::Vine => SimplifiedBlockKind::Vine, + BlockKind::GlowLichen => SimplifiedBlockKind::GlowLichen, + BlockKind::OakFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::BrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::StoneBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::Mycelium => SimplifiedBlockKind::Mycelium, + BlockKind::LilyPad => SimplifiedBlockKind::LilyPad, + BlockKind::NetherBricks => SimplifiedBlockKind::NetherBricks, BlockKind::NetherBrickFence => SimplifiedBlockKind::Fence, - BlockKind::BlackConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::PinkCandle => SimplifiedBlockKind::PinkCandle, - BlockKind::CryingObsidian => SimplifiedBlockKind::CryingObsidian, - BlockKind::LightBlueCandle => SimplifiedBlockKind::LightBlueCandle, - BlockKind::NetherGoldOre => SimplifiedBlockKind::NetherGoldOre, - BlockKind::BrownCarpet => SimplifiedBlockKind::Carpet, - BlockKind::PinkConcrete => SimplifiedBlockKind::Concrete, - BlockKind::PolishedGranite => SimplifiedBlockKind::PolishedGranite, - BlockKind::GreenWool => SimplifiedBlockKind::Wool, + BlockKind::NetherBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::NetherWart => SimplifiedBlockKind::NetherWart, + BlockKind::EnchantingTable => SimplifiedBlockKind::EnchantingTable, + BlockKind::BrewingStand => SimplifiedBlockKind::BrewingStand, + BlockKind::Cauldron => SimplifiedBlockKind::Cauldron, + BlockKind::WaterCauldron => SimplifiedBlockKind::WaterCauldron, + BlockKind::LavaCauldron => SimplifiedBlockKind::LavaCauldron, + BlockKind::PowderSnowCauldron => SimplifiedBlockKind::PowderSnowCauldron, + BlockKind::EndPortal => SimplifiedBlockKind::EndPortal, + BlockKind::EndPortalFrame => SimplifiedBlockKind::EndPortalFrame, + BlockKind::EndStone => SimplifiedBlockKind::EndStone, + BlockKind::DragonEgg => SimplifiedBlockKind::DragonEgg, + BlockKind::RedstoneLamp => SimplifiedBlockKind::RedstoneLamp, + BlockKind::Cocoa => SimplifiedBlockKind::Cocoa, + BlockKind::SandstoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::EmeraldOre => SimplifiedBlockKind::EmeraldOre, BlockKind::DeepslateEmeraldOre => SimplifiedBlockKind::DeepslateEmeraldOre, + BlockKind::EnderChest => SimplifiedBlockKind::EnderChest, + BlockKind::TripwireHook => SimplifiedBlockKind::TripwireHook, + BlockKind::Tripwire => SimplifiedBlockKind::Tripwire, + BlockKind::EmeraldBlock => SimplifiedBlockKind::EmeraldBlock, + BlockKind::SpruceStairs => SimplifiedBlockKind::Stairs, + BlockKind::BirchStairs => SimplifiedBlockKind::Stairs, + BlockKind::JungleStairs => SimplifiedBlockKind::Stairs, + BlockKind::CommandBlock => SimplifiedBlockKind::CommandBlock, + BlockKind::Beacon => SimplifiedBlockKind::Beacon, + BlockKind::CobblestoneWall => SimplifiedBlockKind::CobblestoneWall, + BlockKind::MossyCobblestoneWall => SimplifiedBlockKind::MossyCobblestoneWall, + BlockKind::FlowerPot => SimplifiedBlockKind::FlowerPot, + BlockKind::PottedOakSapling => SimplifiedBlockKind::Sapling, + BlockKind::PottedSpruceSapling => SimplifiedBlockKind::Sapling, + BlockKind::PottedBirchSapling => SimplifiedBlockKind::Sapling, + BlockKind::PottedJungleSapling => SimplifiedBlockKind::Sapling, + BlockKind::PottedAcaciaSapling => SimplifiedBlockKind::Sapling, + BlockKind::PottedDarkOakSapling => SimplifiedBlockKind::Sapling, + BlockKind::PottedFern => SimplifiedBlockKind::PottedFern, + BlockKind::PottedDandelion => SimplifiedBlockKind::PottedDandelion, + BlockKind::PottedPoppy => SimplifiedBlockKind::PottedPoppy, + BlockKind::PottedBlueOrchid => SimplifiedBlockKind::Flower, + BlockKind::PottedAllium => SimplifiedBlockKind::PottedAllium, + BlockKind::PottedAzureBluet => SimplifiedBlockKind::Flower, + BlockKind::PottedRedTulip => SimplifiedBlockKind::Flower, + BlockKind::PottedOrangeTulip => SimplifiedBlockKind::Flower, + BlockKind::PottedWhiteTulip => SimplifiedBlockKind::Flower, + BlockKind::PottedPinkTulip => SimplifiedBlockKind::Flower, + BlockKind::PottedOxeyeDaisy => SimplifiedBlockKind::Flower, + BlockKind::PottedCornflower => SimplifiedBlockKind::PottedCornflower, + BlockKind::PottedLilyOfTheValley => SimplifiedBlockKind::PottedLilyOfTheValley, + BlockKind::PottedWitherRose => SimplifiedBlockKind::PottedWitherRose, + BlockKind::PottedRedMushroom => SimplifiedBlockKind::Mushroom, + BlockKind::PottedBrownMushroom => SimplifiedBlockKind::Mushroom, + BlockKind::PottedDeadBush => SimplifiedBlockKind::PottedDeadBush, + BlockKind::PottedCactus => SimplifiedBlockKind::PottedCactus, + BlockKind::Carrots => SimplifiedBlockKind::Carrots, + BlockKind::Potatoes => SimplifiedBlockKind::Potatoes, + BlockKind::OakButton => SimplifiedBlockKind::WoodenButton, + BlockKind::SpruceButton => SimplifiedBlockKind::WoodenButton, + BlockKind::BirchButton => SimplifiedBlockKind::WoodenButton, + BlockKind::JungleButton => SimplifiedBlockKind::WoodenButton, + BlockKind::AcaciaButton => SimplifiedBlockKind::WoodenButton, + BlockKind::DarkOakButton => SimplifiedBlockKind::WoodenButton, BlockKind::SkeletonSkull => SimplifiedBlockKind::SkeletonSkull, - BlockKind::ChiseledPolishedBlackstone => { - SimplifiedBlockKind::ChiseledPolishedBlackstone + BlockKind::SkeletonWallSkull => SimplifiedBlockKind::SkeletonWallSkull, + BlockKind::WitherSkeletonSkull => SimplifiedBlockKind::WitherSkeletonSkull, + BlockKind::WitherSkeletonWallSkull => SimplifiedBlockKind::WitherSkeletonWallSkull, + BlockKind::ZombieHead => SimplifiedBlockKind::ZombieHead, + BlockKind::ZombieWallHead => SimplifiedBlockKind::ZombieWallHead, + BlockKind::PlayerHead => SimplifiedBlockKind::PlayerHead, + BlockKind::PlayerWallHead => SimplifiedBlockKind::PlayerWallHead, + BlockKind::CreeperHead => SimplifiedBlockKind::CreeperHead, + BlockKind::CreeperWallHead => SimplifiedBlockKind::CreeperWallHead, + BlockKind::DragonHead => SimplifiedBlockKind::DragonHead, + BlockKind::DragonWallHead => SimplifiedBlockKind::DragonWallHead, + BlockKind::Anvil => SimplifiedBlockKind::Anvil, + BlockKind::ChippedAnvil => SimplifiedBlockKind::Anvil, + BlockKind::DamagedAnvil => SimplifiedBlockKind::Anvil, + BlockKind::TrappedChest => SimplifiedBlockKind::TrappedChest, + BlockKind::LightWeightedPressurePlate => { + SimplifiedBlockKind::LightWeightedPressurePlate } - BlockKind::IronTrapdoor => SimplifiedBlockKind::IronTrapdoor, - BlockKind::EmeraldBlock => SimplifiedBlockKind::EmeraldBlock, - BlockKind::BlueCandle => SimplifiedBlockKind::BlueCandle, - BlockKind::SoulSoil => SimplifiedBlockKind::SoulSoil, - BlockKind::MossyStoneBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::PolishedDeepslateWall => SimplifiedBlockKind::PolishedDeepslateWall, - BlockKind::Dispenser => SimplifiedBlockKind::Dispenser, - BlockKind::Farmland => SimplifiedBlockKind::Farmland, - BlockKind::Peony => SimplifiedBlockKind::Peony, - BlockKind::PowderSnowCauldron => SimplifiedBlockKind::PowderSnowCauldron, - BlockKind::DeepslateLapisOre => SimplifiedBlockKind::DeepslateLapisOre, - BlockKind::CyanWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::CobblestoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::HeavyWeightedPressurePlate => { + SimplifiedBlockKind::HeavyWeightedPressurePlate + } + BlockKind::Comparator => SimplifiedBlockKind::Comparator, + BlockKind::DaylightDetector => SimplifiedBlockKind::DaylightDetector, + BlockKind::RedstoneBlock => SimplifiedBlockKind::RedstoneBlock, BlockKind::NetherQuartzOre => SimplifiedBlockKind::NetherQuartzOre, - BlockKind::PottedDarkOakSapling => SimplifiedBlockKind::Sapling, + BlockKind::Hopper => SimplifiedBlockKind::Hopper, + BlockKind::QuartzBlock => SimplifiedBlockKind::QuartzBlock, + BlockKind::ChiseledQuartzBlock => SimplifiedBlockKind::ChiseledQuartzBlock, + BlockKind::QuartzPillar => SimplifiedBlockKind::QuartzPillar, + BlockKind::QuartzStairs => SimplifiedBlockKind::Stairs, + BlockKind::ActivatorRail => SimplifiedBlockKind::ActivatorRail, + BlockKind::Dropper => SimplifiedBlockKind::Dropper, + BlockKind::WhiteTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::OrangeTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::MagentaTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::LightBlueTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::YellowTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::LimeTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::PinkTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::GrayTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::LightGrayTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::CyanTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::PurpleTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::BlueTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::BrownTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::GreenTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::RedTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::BlackTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::WhiteStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::OrangeStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::MagentaStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::LightBlueStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::YellowStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::LimeStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::PinkStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::GrayStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::LightGrayStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::CyanStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::PurpleStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::BlueStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::BrownStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::GreenStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, BlockKind::RedStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::InfestedStoneBricks => SimplifiedBlockKind::InfestedStoneBricks, - BlockKind::LightBlueShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::Mycelium => SimplifiedBlockKind::Mycelium, + BlockKind::BlackStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, + BlockKind::AcaciaStairs => SimplifiedBlockKind::Stairs, + BlockKind::DarkOakStairs => SimplifiedBlockKind::Stairs, + BlockKind::SlimeBlock => SimplifiedBlockKind::SlimeBlock, + BlockKind::Barrier => SimplifiedBlockKind::Barrier, + BlockKind::Light => SimplifiedBlockKind::Light, + BlockKind::IronTrapdoor => SimplifiedBlockKind::IronTrapdoor, + BlockKind::Prismarine => SimplifiedBlockKind::Prismarine, + BlockKind::PrismarineBricks => SimplifiedBlockKind::PrismarineBricks, + BlockKind::DarkPrismarine => SimplifiedBlockKind::DarkPrismarine, + BlockKind::PrismarineStairs => SimplifiedBlockKind::Stairs, + BlockKind::PrismarineBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::DarkPrismarineStairs => SimplifiedBlockKind::Stairs, + BlockKind::PrismarineSlab => SimplifiedBlockKind::Slab, + BlockKind::PrismarineBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::DarkPrismarineSlab => SimplifiedBlockKind::Slab, + BlockKind::SeaLantern => SimplifiedBlockKind::SeaLantern, BlockKind::HayBlock => SimplifiedBlockKind::HayBlock, - BlockKind::FireCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::MossCarpet => SimplifiedBlockKind::Carpet, - BlockKind::WhiteBanner => SimplifiedBlockKind::Banner, + BlockKind::WhiteCarpet => SimplifiedBlockKind::Carpet, + BlockKind::OrangeCarpet => SimplifiedBlockKind::Carpet, + BlockKind::MagentaCarpet => SimplifiedBlockKind::Carpet, + BlockKind::LightBlueCarpet => SimplifiedBlockKind::Carpet, + BlockKind::YellowCarpet => SimplifiedBlockKind::Carpet, + BlockKind::LimeCarpet => SimplifiedBlockKind::Carpet, + BlockKind::PinkCarpet => SimplifiedBlockKind::Carpet, + BlockKind::GrayCarpet => SimplifiedBlockKind::Carpet, + BlockKind::LightGrayCarpet => SimplifiedBlockKind::Carpet, + BlockKind::CyanCarpet => SimplifiedBlockKind::Carpet, + BlockKind::PurpleCarpet => SimplifiedBlockKind::Carpet, + BlockKind::BlueCarpet => SimplifiedBlockKind::Carpet, + BlockKind::BrownCarpet => SimplifiedBlockKind::Carpet, + BlockKind::GreenCarpet => SimplifiedBlockKind::Carpet, BlockKind::RedCarpet => SimplifiedBlockKind::Carpet, - BlockKind::BrownWool => SimplifiedBlockKind::Wool, - BlockKind::SmoothQuartzSlab => SimplifiedBlockKind::Slab, - BlockKind::RoseBush => SimplifiedBlockKind::RoseBush, - BlockKind::GildedBlackstone => SimplifiedBlockKind::GildedBlackstone, - BlockKind::CrimsonStem => SimplifiedBlockKind::CrimsonStem, - BlockKind::InfestedCrackedStoneBricks => { - SimplifiedBlockKind::InfestedCrackedStoneBricks - } - BlockKind::JunglePlanks => SimplifiedBlockKind::Planks, - BlockKind::BlackCandleCake => SimplifiedBlockKind::BlackCandleCake, - BlockKind::MossyCobblestoneSlab => SimplifiedBlockKind::Slab, - BlockKind::YellowCandle => SimplifiedBlockKind::YellowCandle, - BlockKind::PurpleStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::Seagrass => SimplifiedBlockKind::Seagrass, - BlockKind::WaxedCopperBlock => SimplifiedBlockKind::WaxedCopperBlock, - BlockKind::ChiseledQuartzBlock => SimplifiedBlockKind::ChiseledQuartzBlock, - BlockKind::PrismarineSlab => SimplifiedBlockKind::Slab, - BlockKind::PurpleWool => SimplifiedBlockKind::Wool, - BlockKind::PottedBlueOrchid => SimplifiedBlockKind::Flower, - BlockKind::QuartzSlab => SimplifiedBlockKind::Slab, - BlockKind::Basalt => SimplifiedBlockKind::Basalt, - BlockKind::YellowWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::Light => SimplifiedBlockKind::Light, - BlockKind::SnowBlock => SimplifiedBlockKind::SnowBlock, + BlockKind::BlackCarpet => SimplifiedBlockKind::Carpet, + BlockKind::Terracotta => SimplifiedBlockKind::Teracotta, + BlockKind::CoalBlock => SimplifiedBlockKind::CoalBlock, + BlockKind::PackedIce => SimplifiedBlockKind::PackedIce, + BlockKind::Sunflower => SimplifiedBlockKind::Sunflower, BlockKind::Lilac => SimplifiedBlockKind::Lilac, - BlockKind::OrangeCandleCake => SimplifiedBlockKind::OrangeCandleCake, - BlockKind::DeadHornCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::StructureBlock => SimplifiedBlockKind::StructureBlock, - BlockKind::TubeCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::WaxedExposedCutCopper => SimplifiedBlockKind::WaxedExposedCutCopper, - BlockKind::BirchPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::LightGrayWool => SimplifiedBlockKind::Wool, - BlockKind::Podzol => SimplifiedBlockKind::Podzol, - BlockKind::PlayerHead => SimplifiedBlockKind::PlayerHead, - BlockKind::Cobweb => SimplifiedBlockKind::Cobweb, - BlockKind::YellowGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::OakPlanks => SimplifiedBlockKind::Planks, + BlockKind::RoseBush => SimplifiedBlockKind::RoseBush, + BlockKind::Peony => SimplifiedBlockKind::Peony, + BlockKind::TallGrass => SimplifiedBlockKind::TallGrass, + BlockKind::LargeFern => SimplifiedBlockKind::LargeFern, + BlockKind::WhiteBanner => SimplifiedBlockKind::Banner, + BlockKind::OrangeBanner => SimplifiedBlockKind::Banner, + BlockKind::MagentaBanner => SimplifiedBlockKind::Banner, + BlockKind::LightBlueBanner => SimplifiedBlockKind::Banner, + BlockKind::YellowBanner => SimplifiedBlockKind::Banner, + BlockKind::LimeBanner => SimplifiedBlockKind::Banner, + BlockKind::PinkBanner => SimplifiedBlockKind::Banner, + BlockKind::GrayBanner => SimplifiedBlockKind::Banner, + BlockKind::LightGrayBanner => SimplifiedBlockKind::Banner, + BlockKind::CyanBanner => SimplifiedBlockKind::Banner, + BlockKind::PurpleBanner => SimplifiedBlockKind::Banner, BlockKind::BlueBanner => SimplifiedBlockKind::Banner, - BlockKind::DeepslateBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::LimeStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::LightBlueGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::BrainCoral => SimplifiedBlockKind::Coral, - BlockKind::SpruceLog => SimplifiedBlockKind::Log, - BlockKind::YellowConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::Allium => SimplifiedBlockKind::Flower, - BlockKind::CrimsonFungus => SimplifiedBlockKind::CrimsonFungus, - BlockKind::PolishedBlackstoneBrickWall => { - SimplifiedBlockKind::PolishedBlackstoneBrickWall - } - BlockKind::CyanStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::DeadFireCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::AncientDebris => SimplifiedBlockKind::AncientDebris, - BlockKind::PottedCornflower => SimplifiedBlockKind::PottedCornflower, - BlockKind::RedSandstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::PackedIce => SimplifiedBlockKind::PackedIce, - BlockKind::PottedCrimsonRoots => SimplifiedBlockKind::PottedCrimsonRoots, - BlockKind::SkeletonWallSkull => SimplifiedBlockKind::SkeletonWallSkull, - BlockKind::Barrier => SimplifiedBlockKind::Barrier, - BlockKind::CutCopperSlab => SimplifiedBlockKind::Slab, - BlockKind::Bedrock => SimplifiedBlockKind::Bedrock, - BlockKind::Azalea => SimplifiedBlockKind::Azalea, - BlockKind::SpruceButton => SimplifiedBlockKind::WoodenButton, - BlockKind::StructureVoid => SimplifiedBlockKind::StructureVoid, - BlockKind::LightGrayCandleCake => SimplifiedBlockKind::LightGrayCandleCake, - BlockKind::NetherWart => SimplifiedBlockKind::NetherWart, - BlockKind::StrippedCrimsonStem => SimplifiedBlockKind::StrippedCrimsonStem, - BlockKind::WallTorch => SimplifiedBlockKind::WallTorch, - BlockKind::GlowLichen => SimplifiedBlockKind::GlowLichen, - BlockKind::BlackTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::CrackedNetherBricks => SimplifiedBlockKind::CrackedNetherBricks, - BlockKind::WarpedFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::PolishedBlackstoneWall => SimplifiedBlockKind::PolishedBlackstoneWall, - BlockKind::BirchSign => SimplifiedBlockKind::Sign, - BlockKind::PottedCactus => SimplifiedBlockKind::PottedCactus, - BlockKind::BlueShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::CoarseDirt => SimplifiedBlockKind::CoarseDirt, - BlockKind::TwistingVinesPlant => SimplifiedBlockKind::TwistingVinesPlant, - BlockKind::TallSeagrass => SimplifiedBlockKind::TallSeagrass, - BlockKind::WaxedOxidizedCopper => SimplifiedBlockKind::WaxedOxidizedCopper, + BlockKind::BrownBanner => SimplifiedBlockKind::Banner, + BlockKind::GreenBanner => SimplifiedBlockKind::Banner, + BlockKind::RedBanner => SimplifiedBlockKind::Banner, BlockKind::BlackBanner => SimplifiedBlockKind::Banner, - BlockKind::SoulTorch => SimplifiedBlockKind::SoulTorch, - BlockKind::CobbledDeepslateSlab => SimplifiedBlockKind::Slab, - BlockKind::WarpedDoor => SimplifiedBlockKind::WarpedDoor, - BlockKind::ChiseledDeepslate => SimplifiedBlockKind::ChiseledDeepslate, - BlockKind::BuddingAmethyst => SimplifiedBlockKind::BuddingAmethyst, - BlockKind::Lava => SimplifiedBlockKind::Lava, - BlockKind::Potatoes => SimplifiedBlockKind::Potatoes, - BlockKind::AzureBluet => SimplifiedBlockKind::Flower, - BlockKind::RedConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::RedGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::Netherrack => SimplifiedBlockKind::Netherrack, - BlockKind::BlackWool => SimplifiedBlockKind::Wool, - BlockKind::WaxedWeatheredCutCopperSlab => SimplifiedBlockKind::Slab, - BlockKind::RespawnAnchor => SimplifiedBlockKind::RespawnAnchor, - BlockKind::Andesite => SimplifiedBlockKind::Andesite, - BlockKind::BrewingStand => SimplifiedBlockKind::BrewingStand, - BlockKind::YellowShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::GreenConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::LimeWool => SimplifiedBlockKind::Wool, - BlockKind::Bricks => SimplifiedBlockKind::Bricks, + BlockKind::WhiteWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::OrangeWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::MagentaWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::LightBlueWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::YellowWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::LimeWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::PinkWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::GrayWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::LightGrayWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::CyanWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::PurpleWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::BlueWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::BrownWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::GreenWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::RedWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::BlackWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::RedSandstone => SimplifiedBlockKind::RedSandstone, + BlockKind::ChiseledRedSandstone => SimplifiedBlockKind::ChiseledRedSandstone, + BlockKind::CutRedSandstone => SimplifiedBlockKind::CutRedSandstone, + BlockKind::RedSandstoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::OakSlab => SimplifiedBlockKind::Slab, + BlockKind::SpruceSlab => SimplifiedBlockKind::Slab, + BlockKind::BirchSlab => SimplifiedBlockKind::Slab, + BlockKind::JungleSlab => SimplifiedBlockKind::Slab, + BlockKind::AcaciaSlab => SimplifiedBlockKind::Slab, + BlockKind::DarkOakSlab => SimplifiedBlockKind::Slab, + BlockKind::StoneSlab => SimplifiedBlockKind::Slab, + BlockKind::SmoothStoneSlab => SimplifiedBlockKind::Slab, + BlockKind::SandstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::CutSandstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::PetrifiedOakSlab => SimplifiedBlockKind::Slab, + BlockKind::CobblestoneSlab => SimplifiedBlockKind::Slab, + BlockKind::BrickSlab => SimplifiedBlockKind::Slab, + BlockKind::StoneBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::NetherBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::QuartzSlab => SimplifiedBlockKind::Slab, BlockKind::RedSandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::MossyStoneBricks => SimplifiedBlockKind::MossyStoneBricks, - BlockKind::DeadFireCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::CutRedSandstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::PurpurSlab => SimplifiedBlockKind::Slab, + BlockKind::SmoothStone => SimplifiedBlockKind::SmoothStone, + BlockKind::SmoothSandstone => SimplifiedBlockKind::SmoothSandstone, + BlockKind::SmoothQuartz => SimplifiedBlockKind::SmoothQuartz, + BlockKind::SmoothRedSandstone => SimplifiedBlockKind::SmoothRedSandstone, + BlockKind::SpruceFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::BirchFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::JungleFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::AcaciaFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::DarkOakFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::SpruceFence => SimplifiedBlockKind::Fence, + BlockKind::BirchFence => SimplifiedBlockKind::Fence, + BlockKind::JungleFence => SimplifiedBlockKind::Fence, + BlockKind::AcaciaFence => SimplifiedBlockKind::Fence, + BlockKind::DarkOakFence => SimplifiedBlockKind::Fence, + BlockKind::SpruceDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::BirchDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::JungleDoor => SimplifiedBlockKind::WoodenDoor, + BlockKind::AcaciaDoor => SimplifiedBlockKind::WoodenDoor, BlockKind::DarkOakDoor => SimplifiedBlockKind::WoodenDoor, - BlockKind::OakFence => SimplifiedBlockKind::Fence, - BlockKind::Sunflower => SimplifiedBlockKind::Sunflower, - BlockKind::GrayStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::BlueWool => SimplifiedBlockKind::Wool, - BlockKind::ChiseledSandstone => SimplifiedBlockKind::ChiseledSandstone, - BlockKind::AcaciaLog => SimplifiedBlockKind::Log, - BlockKind::GraniteStairs => SimplifiedBlockKind::Stairs, - BlockKind::CyanCandleCake => SimplifiedBlockKind::CyanCandleCake, + BlockKind::EndRod => SimplifiedBlockKind::EndRod, + BlockKind::ChorusPlant => SimplifiedBlockKind::ChorusPlant, + BlockKind::ChorusFlower => SimplifiedBlockKind::ChorusFlower, + BlockKind::PurpurBlock => SimplifiedBlockKind::PurpurBlock, + BlockKind::PurpurPillar => SimplifiedBlockKind::PurpurPillar, + BlockKind::PurpurStairs => SimplifiedBlockKind::Stairs, + BlockKind::EndStoneBricks => SimplifiedBlockKind::EndStoneBricks, + BlockKind::Beetroots => SimplifiedBlockKind::Beetroots, + BlockKind::DirtPath => SimplifiedBlockKind::DirtPath, + BlockKind::EndGateway => SimplifiedBlockKind::EndGateway, + BlockKind::RepeatingCommandBlock => SimplifiedBlockKind::RepeatingCommandBlock, + BlockKind::ChainCommandBlock => SimplifiedBlockKind::ChainCommandBlock, + BlockKind::FrostedIce => SimplifiedBlockKind::FrostedIce, + BlockKind::MagmaBlock => SimplifiedBlockKind::MagmaBlock, + BlockKind::NetherWartBlock => SimplifiedBlockKind::NetherWartBlock, + BlockKind::RedNetherBricks => SimplifiedBlockKind::RedNetherBricks, + BlockKind::BoneBlock => SimplifiedBlockKind::BoneBlock, + BlockKind::StructureVoid => SimplifiedBlockKind::StructureVoid, + BlockKind::Observer => SimplifiedBlockKind::Observer, + BlockKind::ShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::WhiteShulkerBox => SimplifiedBlockKind::ShulkerBox, BlockKind::OrangeShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::MossyCobblestoneWall => SimplifiedBlockKind::MossyCobblestoneWall, - BlockKind::BlueIce => SimplifiedBlockKind::BlueIce, - BlockKind::DeepslateBrickWall => SimplifiedBlockKind::DeepslateBrickWall, - BlockKind::FloweringAzaleaLeaves => SimplifiedBlockKind::Leaves, - BlockKind::OakStairs => SimplifiedBlockKind::Stairs, - BlockKind::PinkTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::TubeCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::GrassBlock => SimplifiedBlockKind::GrassBlock, - BlockKind::AzaleaLeaves => SimplifiedBlockKind::Leaves, - BlockKind::Melon => SimplifiedBlockKind::Melon, + BlockKind::MagentaShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::LightBlueShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::YellowShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::LimeShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::PinkShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::GrayShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::LightGrayShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::CyanShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::PurpleShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::BlueShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::BrownShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::GreenShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::RedShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::BlackShulkerBox => SimplifiedBlockKind::ShulkerBox, + BlockKind::WhiteGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::OrangeGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::MagentaGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::LightBlueGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::YellowGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::LimeGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::PinkGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::GrayGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::LightGrayGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::CyanGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::PurpleGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::BlueGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::BrownGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::GreenGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::RedGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, + BlockKind::BlackGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, BlockKind::WhiteConcrete => SimplifiedBlockKind::Concrete, - BlockKind::PurpleTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::SculkSensor => SimplifiedBlockKind::SculkSensor, - BlockKind::CyanWool => SimplifiedBlockKind::Wool, - BlockKind::WarpedTrapdoor => SimplifiedBlockKind::WarpedTrapdoor, - BlockKind::SporeBlossom => SimplifiedBlockKind::SporeBlossom, - BlockKind::Bookshelf => SimplifiedBlockKind::Bookshelf, - BlockKind::PottedFern => SimplifiedBlockKind::PottedFern, - BlockKind::EndStoneBrickWall => SimplifiedBlockKind::EndStoneBrickWall, - BlockKind::FletchingTable => SimplifiedBlockKind::FletchingTable, - BlockKind::BlueStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::BrownCandle => SimplifiedBlockKind::BrownCandle, - BlockKind::Carrots => SimplifiedBlockKind::Carrots, - BlockKind::LightBlueWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::StrippedDarkOakLog => SimplifiedBlockKind::Log, - BlockKind::Hopper => SimplifiedBlockKind::Hopper, - BlockKind::PolishedDioriteSlab => SimplifiedBlockKind::Slab, - BlockKind::TripwireHook => SimplifiedBlockKind::TripwireHook, - BlockKind::AcaciaDoor => SimplifiedBlockKind::WoodenDoor, - BlockKind::NetheriteBlock => SimplifiedBlockKind::NetheriteBlock, - BlockKind::WitherSkeletonWallSkull => SimplifiedBlockKind::WitherSkeletonWallSkull, - BlockKind::AcaciaFence => SimplifiedBlockKind::Fence, - BlockKind::DeepslateIronOre => SimplifiedBlockKind::DeepslateIronOre, - BlockKind::Dandelion => SimplifiedBlockKind::Flower, - BlockKind::BrownBed => SimplifiedBlockKind::Bed, - BlockKind::BrownMushroomBlock => SimplifiedBlockKind::BrownMushroomBlock, - BlockKind::DeadBubbleCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::OrangeConcrete => SimplifiedBlockKind::Concrete, + BlockKind::MagentaConcrete => SimplifiedBlockKind::Concrete, + BlockKind::LightBlueConcrete => SimplifiedBlockKind::Concrete, + BlockKind::YellowConcrete => SimplifiedBlockKind::Concrete, + BlockKind::LimeConcrete => SimplifiedBlockKind::Concrete, + BlockKind::PinkConcrete => SimplifiedBlockKind::Concrete, + BlockKind::GrayConcrete => SimplifiedBlockKind::Concrete, + BlockKind::LightGrayConcrete => SimplifiedBlockKind::Concrete, + BlockKind::CyanConcrete => SimplifiedBlockKind::Concrete, + BlockKind::PurpleConcrete => SimplifiedBlockKind::Concrete, BlockKind::BlueConcrete => SimplifiedBlockKind::Concrete, - BlockKind::Fern => SimplifiedBlockKind::Fern, - BlockKind::GreenBanner => SimplifiedBlockKind::Banner, - BlockKind::JungleTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::PolishedBlackstoneButton => SimplifiedBlockKind::PolishedBlackstoneButton, - BlockKind::InfestedMossyStoneBricks => SimplifiedBlockKind::InfestedMossyStoneBricks, - BlockKind::WeatheredCopper => SimplifiedBlockKind::WeatheredCopper, + BlockKind::BrownConcrete => SimplifiedBlockKind::Concrete, + BlockKind::GreenConcrete => SimplifiedBlockKind::Concrete, + BlockKind::RedConcrete => SimplifiedBlockKind::Concrete, + BlockKind::BlackConcrete => SimplifiedBlockKind::Concrete, + BlockKind::WhiteConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::OrangeConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::MagentaConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::LightBlueConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::YellowConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::LimeConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::PinkConcretePowder => SimplifiedBlockKind::ConcretePowder, BlockKind::GrayConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::StoneSlab => SimplifiedBlockKind::Slab, - BlockKind::AmethystBlock => SimplifiedBlockKind::AmethystBlock, - BlockKind::SandstoneWall => SimplifiedBlockKind::SandstoneWall, - BlockKind::LightBlueBed => SimplifiedBlockKind::Bed, - BlockKind::EnchantingTable => SimplifiedBlockKind::EnchantingTable, - BlockKind::DioriteStairs => SimplifiedBlockKind::Stairs, - BlockKind::CoalBlock => SimplifiedBlockKind::CoalBlock, - BlockKind::HangingRoots => SimplifiedBlockKind::HangingRoots, - BlockKind::Spawner => SimplifiedBlockKind::Spawner, - BlockKind::LightBlueConcrete => SimplifiedBlockKind::Concrete, - BlockKind::WhiteCarpet => SimplifiedBlockKind::Carpet, - BlockKind::LimeCandleCake => SimplifiedBlockKind::LimeCandleCake, - BlockKind::JungleButton => SimplifiedBlockKind::WoodenButton, - BlockKind::PottedWarpedRoots => SimplifiedBlockKind::PottedWarpedRoots, - BlockKind::PolishedAndesiteStairs => SimplifiedBlockKind::Stairs, - BlockKind::WarpedFungus => SimplifiedBlockKind::WarpedFungus, - BlockKind::Beacon => SimplifiedBlockKind::Beacon, BlockKind::LightGrayConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::PinkTulip => SimplifiedBlockKind::Flower, - BlockKind::NetherSprouts => SimplifiedBlockKind::NetherSprouts, - BlockKind::MossyStoneBrickWall => SimplifiedBlockKind::MossyStoneBrickWall, - BlockKind::LightBlueCarpet => SimplifiedBlockKind::Carpet, - BlockKind::PointedDripstone => SimplifiedBlockKind::PointedDripstone, - BlockKind::RedMushroomBlock => SimplifiedBlockKind::RedMushroomBlock, - BlockKind::CyanTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::PottedJungleSapling => SimplifiedBlockKind::Sapling, - BlockKind::WaxedCutCopperSlab => SimplifiedBlockKind::Slab, - BlockKind::BoneBlock => SimplifiedBlockKind::BoneBlock, - BlockKind::CaveVinesPlant => SimplifiedBlockKind::CaveVinesPlant, - BlockKind::NetherWartBlock => SimplifiedBlockKind::NetherWartBlock, - BlockKind::WaterCauldron => SimplifiedBlockKind::WaterCauldron, - BlockKind::BrownGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::FireCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::Lever => SimplifiedBlockKind::Lever, - BlockKind::BlackstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::PurpleCandleCake => SimplifiedBlockKind::PurpleCandleCake, - BlockKind::AcaciaWallSign => SimplifiedBlockKind::WallSign, - BlockKind::LightBlueCandleCake => SimplifiedBlockKind::LightBlueCandleCake, - BlockKind::DripstoneBlock => SimplifiedBlockKind::DripstoneBlock, - BlockKind::AmethystCluster => SimplifiedBlockKind::AmethystCluster, - BlockKind::DeadFireCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::DarkOakButton => SimplifiedBlockKind::WoodenButton, + BlockKind::CyanConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::PurpleConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::BlueConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::BrownConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::GreenConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::RedConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::BlackConcretePowder => SimplifiedBlockKind::ConcretePowder, + BlockKind::Kelp => SimplifiedBlockKind::Kelp, + BlockKind::KelpPlant => SimplifiedBlockKind::KelpPlant, + BlockKind::DriedKelpBlock => SimplifiedBlockKind::DriedKelpBlock, + BlockKind::TurtleEgg => SimplifiedBlockKind::TurtleEgg, BlockKind::DeadTubeCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::FloweringAzalea => SimplifiedBlockKind::FloweringAzalea, - BlockKind::LimeGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::Bell => SimplifiedBlockKind::Bell, - BlockKind::AttachedMelonStem => SimplifiedBlockKind::AttachedMelonStem, - BlockKind::AcaciaButton => SimplifiedBlockKind::WoodenButton, - BlockKind::BrownConcrete => SimplifiedBlockKind::Concrete, - BlockKind::CraftingTable => SimplifiedBlockKind::CraftingTable, - BlockKind::DarkOakFence => SimplifiedBlockKind::Fence, - BlockKind::Observer => SimplifiedBlockKind::Observer, - BlockKind::RedBed => SimplifiedBlockKind::Bed, - BlockKind::YellowTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::LargeFern => SimplifiedBlockKind::LargeFern, - BlockKind::ChorusFlower => SimplifiedBlockKind::ChorusFlower, + BlockKind::DeadBrainCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::DeadBubbleCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::DeadFireCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::DeadHornCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::TubeCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::BrainCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::BubbleCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::FireCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::HornCoralBlock => SimplifiedBlockKind::CoralBlock, + BlockKind::DeadTubeCoral => SimplifiedBlockKind::Coral, + BlockKind::DeadBrainCoral => SimplifiedBlockKind::Coral, + BlockKind::DeadBubbleCoral => SimplifiedBlockKind::Coral, + BlockKind::DeadFireCoral => SimplifiedBlockKind::Coral, + BlockKind::DeadHornCoral => SimplifiedBlockKind::Coral, + BlockKind::TubeCoral => SimplifiedBlockKind::Coral, + BlockKind::BrainCoral => SimplifiedBlockKind::Coral, + BlockKind::BubbleCoral => SimplifiedBlockKind::Coral, + BlockKind::FireCoral => SimplifiedBlockKind::Coral, + BlockKind::HornCoral => SimplifiedBlockKind::Coral, + BlockKind::DeadTubeCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::DeadBrainCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::DeadBubbleCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::DeadFireCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::DeadHornCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::TubeCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::BrainCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::BubbleCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::FireCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::HornCoralFan => SimplifiedBlockKind::CoralFan, + BlockKind::DeadTubeCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::DeadBrainCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::DeadBubbleCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::DeadFireCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::DeadHornCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::TubeCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::BrainCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::BubbleCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::FireCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::HornCoralWallFan => SimplifiedBlockKind::CoralWallFan, + BlockKind::SeaPickle => SimplifiedBlockKind::SeaPickle, + BlockKind::BlueIce => SimplifiedBlockKind::BlueIce, + BlockKind::Conduit => SimplifiedBlockKind::Conduit, + BlockKind::BambooSapling => SimplifiedBlockKind::Sapling, + BlockKind::Bamboo => SimplifiedBlockKind::Bamboo, + BlockKind::PottedBamboo => SimplifiedBlockKind::PottedBamboo, + BlockKind::VoidAir => SimplifiedBlockKind::Air, + BlockKind::CaveAir => SimplifiedBlockKind::Air, + BlockKind::BubbleColumn => SimplifiedBlockKind::BubbleColumn, + BlockKind::PolishedGraniteStairs => SimplifiedBlockKind::Stairs, BlockKind::SmoothRedSandstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::DarkOakSapling => SimplifiedBlockKind::Sapling, - BlockKind::StrippedDarkOakWood => SimplifiedBlockKind::Log, - BlockKind::PolishedDeepslate => SimplifiedBlockKind::PolishedDeepslate, - BlockKind::WarpedButton => SimplifiedBlockKind::WarpedButton, - BlockKind::DarkOakSign => SimplifiedBlockKind::Sign, - BlockKind::LightGrayWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::StrippedOakLog => SimplifiedBlockKind::Log, - BlockKind::GreenTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::StickyPiston => SimplifiedBlockKind::StickyPiston, - BlockKind::CreeperWallHead => SimplifiedBlockKind::CreeperWallHead, - BlockKind::LightGrayGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::DamagedAnvil => SimplifiedBlockKind::Anvil, + BlockKind::MossyStoneBrickStairs => SimplifiedBlockKind::Stairs, BlockKind::PolishedDioriteStairs => SimplifiedBlockKind::Stairs, - BlockKind::NoteBlock => SimplifiedBlockKind::NoteBlock, - BlockKind::GreenShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::PottedOrangeTulip => SimplifiedBlockKind::Flower, - BlockKind::BubbleColumn => SimplifiedBlockKind::BubbleColumn, - BlockKind::CobbledDeepslateWall => SimplifiedBlockKind::CobbledDeepslateWall, - BlockKind::WeatheredCutCopperStairs => SimplifiedBlockKind::Stairs, - BlockKind::AcaciaTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, - BlockKind::LapisOre => SimplifiedBlockKind::LapisOre, - BlockKind::DeepslateTileSlab => SimplifiedBlockKind::Slab, - BlockKind::BlackGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::WhiteGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::DarkOakLeaves => SimplifiedBlockKind::Leaves, - BlockKind::WaxedCutCopperStairs => SimplifiedBlockKind::Stairs, - BlockKind::MagmaBlock => SimplifiedBlockKind::MagmaBlock, - BlockKind::SpruceSign => SimplifiedBlockKind::Sign, - BlockKind::SmoothStoneSlab => SimplifiedBlockKind::Slab, - BlockKind::OakPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::DarkOakLog => SimplifiedBlockKind::Log, - BlockKind::WaxedOxidizedCutCopperSlab => SimplifiedBlockKind::Slab, - BlockKind::LightBlueWool => SimplifiedBlockKind::Wool, - BlockKind::OrangeBanner => SimplifiedBlockKind::Banner, + BlockKind::MossyCobblestoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::EndStoneBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::StoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::SmoothSandstoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::SmoothQuartzStairs => SimplifiedBlockKind::Stairs, + BlockKind::GraniteStairs => SimplifiedBlockKind::Stairs, + BlockKind::AndesiteStairs => SimplifiedBlockKind::Stairs, + BlockKind::RedNetherBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::PolishedAndesiteStairs => SimplifiedBlockKind::Stairs, + BlockKind::DioriteStairs => SimplifiedBlockKind::Stairs, + BlockKind::PolishedGraniteSlab => SimplifiedBlockKind::Slab, BlockKind::SmoothRedSandstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::PrismarineWall => SimplifiedBlockKind::PrismarineWall, - BlockKind::NetherBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::MossyStoneBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::PolishedDioriteSlab => SimplifiedBlockKind::Slab, + BlockKind::MossyCobblestoneSlab => SimplifiedBlockKind::Slab, + BlockKind::EndStoneBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::SmoothSandstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::SmoothQuartzSlab => SimplifiedBlockKind::Slab, BlockKind::GraniteSlab => SimplifiedBlockKind::Slab, - BlockKind::Water => SimplifiedBlockKind::Water, - BlockKind::PolishedBasalt => SimplifiedBlockKind::PolishedBasalt, - BlockKind::ChiseledNetherBricks => SimplifiedBlockKind::ChiseledNetherBricks, - BlockKind::CobbledDeepslate => SimplifiedBlockKind::CobbledDeepslate, - BlockKind::LilyPad => SimplifiedBlockKind::LilyPad, - BlockKind::SmallDripleaf => SimplifiedBlockKind::SmallDripleaf, - BlockKind::WhiteShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::BrownWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::Comparator => SimplifiedBlockKind::Comparator, - BlockKind::CrimsonStairs => SimplifiedBlockKind::Stairs, - BlockKind::WetSponge => SimplifiedBlockKind::WetSponge, + BlockKind::AndesiteSlab => SimplifiedBlockKind::Slab, + BlockKind::RedNetherBrickSlab => SimplifiedBlockKind::Slab, BlockKind::PolishedAndesiteSlab => SimplifiedBlockKind::Slab, - BlockKind::PlayerWallHead => SimplifiedBlockKind::PlayerWallHead, - BlockKind::SpruceStairs => SimplifiedBlockKind::Stairs, - BlockKind::OxidizedCopper => SimplifiedBlockKind::OxidizedCopper, - BlockKind::CrimsonNylium => SimplifiedBlockKind::CrimsonNylium, - BlockKind::OrangeConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::PrismarineBricks => SimplifiedBlockKind::PrismarineBricks, - BlockKind::LimeConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::MagentaBed => SimplifiedBlockKind::Bed, - BlockKind::AcaciaPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::RedStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::DeepslateTiles => SimplifiedBlockKind::DeepslateTiles, - BlockKind::GrayCarpet => SimplifiedBlockKind::Carpet, - BlockKind::DeadHornCoral => SimplifiedBlockKind::Coral, BlockKind::DioriteSlab => SimplifiedBlockKind::Slab, - BlockKind::BirchTrapdoor => SimplifiedBlockKind::WoodenTrapdoor, + BlockKind::BrickWall => SimplifiedBlockKind::BrickWall, + BlockKind::PrismarineWall => SimplifiedBlockKind::PrismarineWall, + BlockKind::RedSandstoneWall => SimplifiedBlockKind::RedSandstoneWall, + BlockKind::MossyStoneBrickWall => SimplifiedBlockKind::MossyStoneBrickWall, + BlockKind::GraniteWall => SimplifiedBlockKind::GraniteWall, + BlockKind::StoneBrickWall => SimplifiedBlockKind::StoneBrickWall, + BlockKind::NetherBrickWall => SimplifiedBlockKind::NetherBrickWall, + BlockKind::AndesiteWall => SimplifiedBlockKind::AndesiteWall, BlockKind::RedNetherBrickWall => SimplifiedBlockKind::RedNetherBrickWall, - BlockKind::Tuff => SimplifiedBlockKind::Tuff, - BlockKind::OxidizedCutCopperStairs => SimplifiedBlockKind::Stairs, - BlockKind::CutRedSandstone => SimplifiedBlockKind::CutRedSandstone, - BlockKind::WarpedStairs => SimplifiedBlockKind::Stairs, - BlockKind::LightBlueStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::EndStoneBrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::MagentaWool => SimplifiedBlockKind::Wool, - BlockKind::SmoothRedSandstone => SimplifiedBlockKind::SmoothRedSandstone, - BlockKind::GreenCarpet => SimplifiedBlockKind::Carpet, - BlockKind::SweetBerryBush => SimplifiedBlockKind::SweetBerryBush, - BlockKind::Ladder => SimplifiedBlockKind::Ladder, - BlockKind::CrimsonFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::WhiteBed => SimplifiedBlockKind::Bed, - BlockKind::Fire => SimplifiedBlockKind::Fire, - BlockKind::GrayWool => SimplifiedBlockKind::Wool, - BlockKind::TurtleEgg => SimplifiedBlockKind::TurtleEgg, - BlockKind::EndStoneBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::Air => SimplifiedBlockKind::Air, - BlockKind::BlackstoneWall => SimplifiedBlockKind::BlackstoneWall, - BlockKind::Deepslate => SimplifiedBlockKind::Deepslate, - BlockKind::PottedPinkTulip => SimplifiedBlockKind::Flower, - BlockKind::SlimeBlock => SimplifiedBlockKind::SlimeBlock, - BlockKind::ExposedCutCopper => SimplifiedBlockKind::ExposedCutCopper, - BlockKind::WaxedWeatheredCutCopperStairs => SimplifiedBlockKind::Stairs, - BlockKind::CrimsonPressurePlate => SimplifiedBlockKind::CrimsonPressurePlate, - BlockKind::GrayWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::Cactus => SimplifiedBlockKind::Cactus, - BlockKind::PolishedDeepslateSlab => SimplifiedBlockKind::Slab, - BlockKind::HornCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::StrippedOakWood => SimplifiedBlockKind::Log, - BlockKind::DragonHead => SimplifiedBlockKind::DragonHead, - BlockKind::DarkOakPressurePlate => SimplifiedBlockKind::WoodenPressurePlate, - BlockKind::QuartzBlock => SimplifiedBlockKind::QuartzBlock, - BlockKind::SpruceDoor => SimplifiedBlockKind::WoodenDoor, - BlockKind::TallGrass => SimplifiedBlockKind::TallGrass, - BlockKind::MagentaConcrete => SimplifiedBlockKind::Concrete, - BlockKind::WhiteConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::GrayBed => SimplifiedBlockKind::Bed, - BlockKind::OakDoor => SimplifiedBlockKind::WoodenDoor, - BlockKind::DeepslateTileStairs => SimplifiedBlockKind::Stairs, - BlockKind::OakSign => SimplifiedBlockKind::Sign, - BlockKind::LimeWallBanner => SimplifiedBlockKind::WallBanner, + BlockKind::SandstoneWall => SimplifiedBlockKind::SandstoneWall, + BlockKind::EndStoneBrickWall => SimplifiedBlockKind::EndStoneBrickWall, + BlockKind::DioriteWall => SimplifiedBlockKind::DioriteWall, + BlockKind::Scaffolding => SimplifiedBlockKind::Scaffolding, BlockKind::Loom => SimplifiedBlockKind::Loom, - BlockKind::StrippedSpruceLog => SimplifiedBlockKind::Log, - BlockKind::BlackCarpet => SimplifiedBlockKind::Carpet, - BlockKind::SmoothSandstone => SimplifiedBlockKind::SmoothSandstone, - BlockKind::PolishedBlackstonePressurePlate => { - SimplifiedBlockKind::PolishedBlackstonePressurePlate - } - BlockKind::HoneycombBlock => SimplifiedBlockKind::HoneycombBlock, - BlockKind::PinkBanner => SimplifiedBlockKind::Banner, - BlockKind::Poppy => SimplifiedBlockKind::Flower, - BlockKind::PolishedGraniteSlab => SimplifiedBlockKind::Slab, - BlockKind::DarkOakStairs => SimplifiedBlockKind::Stairs, - BlockKind::PrismarineStairs => SimplifiedBlockKind::Stairs, - BlockKind::DarkOakSlab => SimplifiedBlockKind::Slab, - BlockKind::WaxedOxidizedCutCopperStairs => SimplifiedBlockKind::Stairs, - BlockKind::DarkOakWallSign => SimplifiedBlockKind::WallSign, - BlockKind::BlueWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::PurpleWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::BlueStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::RedTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::BrickStairs => SimplifiedBlockKind::Stairs, - BlockKind::RedstoneWire => SimplifiedBlockKind::RedstoneWire, - BlockKind::PottedOakSapling => SimplifiedBlockKind::Sapling, - BlockKind::BrownConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::WarpedNylium => SimplifiedBlockKind::WarpedNylium, - BlockKind::Cake => SimplifiedBlockKind::Cake, - BlockKind::GrayBanner => SimplifiedBlockKind::Banner, - BlockKind::RedMushroom => SimplifiedBlockKind::Mushroom, - BlockKind::YellowWool => SimplifiedBlockKind::Wool, - BlockKind::CrimsonWallSign => SimplifiedBlockKind::WallSign, - BlockKind::Tripwire => SimplifiedBlockKind::Tripwire, - BlockKind::StonePressurePlate => SimplifiedBlockKind::StonePressurePlate, - BlockKind::MagentaBanner => SimplifiedBlockKind::Banner, - BlockKind::WarpedFence => SimplifiedBlockKind::Fence, - BlockKind::OxidizedCutCopperSlab => SimplifiedBlockKind::Slab, - BlockKind::BlueCarpet => SimplifiedBlockKind::Carpet, - BlockKind::PottedCrimsonFungus => SimplifiedBlockKind::PottedCrimsonFungus, - BlockKind::RedTulip => SimplifiedBlockKind::Flower, - BlockKind::BlueTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::JungleLeaves => SimplifiedBlockKind::Leaves, - BlockKind::BlackConcrete => SimplifiedBlockKind::Concrete, - BlockKind::Dirt => SimplifiedBlockKind::Dirt, - BlockKind::AcaciaStairs => SimplifiedBlockKind::Stairs, - BlockKind::BirchStairs => SimplifiedBlockKind::Stairs, - BlockKind::PinkCarpet => SimplifiedBlockKind::Carpet, - BlockKind::ChorusPlant => SimplifiedBlockKind::ChorusPlant, - BlockKind::BrownCandleCake => SimplifiedBlockKind::BrownCandleCake, - BlockKind::DeepslateCopperOre => SimplifiedBlockKind::DeepslateCopperOre, - BlockKind::WaxedExposedCutCopperStairs => SimplifiedBlockKind::Stairs, - BlockKind::PottedAcaciaSapling => SimplifiedBlockKind::Sapling, - BlockKind::OrangeWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::HornCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::DetectorRail => SimplifiedBlockKind::DetectorRail, - BlockKind::IronBlock => SimplifiedBlockKind::IronBlock, - BlockKind::LightBlueTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::GrayStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::LightBlueConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::TrappedChest => SimplifiedBlockKind::TrappedChest, - BlockKind::CrimsonSign => SimplifiedBlockKind::Sign, - BlockKind::CandleCake => SimplifiedBlockKind::CandleCake, - BlockKind::PurpleConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::StoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::PolishedBlackstoneBricks => SimplifiedBlockKind::PolishedBlackstoneBricks, - BlockKind::Cauldron => SimplifiedBlockKind::Cauldron, - BlockKind::RedConcrete => SimplifiedBlockKind::Concrete, - BlockKind::BrownStainedGlass => SimplifiedBlockKind::StainedGlass, - BlockKind::CyanCarpet => SimplifiedBlockKind::Carpet, - BlockKind::WeepingVines => SimplifiedBlockKind::WeepingVines, - BlockKind::DragonWallHead => SimplifiedBlockKind::DragonWallHead, - BlockKind::CrimsonSlab => SimplifiedBlockKind::Slab, - BlockKind::LimeShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::RawCopperBlock => SimplifiedBlockKind::RawCopperBlock, - BlockKind::PottedWarpedFungus => SimplifiedBlockKind::PottedWarpedFungus, - BlockKind::DeadBrainCoralWallFan => SimplifiedBlockKind::CoralWallFan, - BlockKind::WaxedExposedCutCopperSlab => SimplifiedBlockKind::Slab, - BlockKind::ExposedCutCopperSlab => SimplifiedBlockKind::Slab, - BlockKind::Pumpkin => SimplifiedBlockKind::Pumpkin, - BlockKind::PumpkinStem => SimplifiedBlockKind::PumpkinStem, - BlockKind::JungleDoor => SimplifiedBlockKind::WoodenDoor, - BlockKind::GreenWallBanner => SimplifiedBlockKind::WallBanner, - BlockKind::DeadTubeCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::Obsidian => SimplifiedBlockKind::Obsidian, - BlockKind::AcaciaSapling => SimplifiedBlockKind::Sapling, - BlockKind::SandstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::RedWool => SimplifiedBlockKind::Wool, - BlockKind::BrainCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::Terracotta => SimplifiedBlockKind::Teracotta, - BlockKind::Vine => SimplifiedBlockKind::Vine, - BlockKind::CrimsonTrapdoor => SimplifiedBlockKind::CrimsonTrapdoor, - BlockKind::IronBars => SimplifiedBlockKind::IronBars, - BlockKind::AcaciaFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::Barrel => SimplifiedBlockKind::Barrel, + BlockKind::Smoker => SimplifiedBlockKind::Smoker, + BlockKind::BlastFurnace => SimplifiedBlockKind::BlastFurnace, BlockKind::CartographyTable => SimplifiedBlockKind::CartographyTable, - BlockKind::BubbleCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::CutSandstone => SimplifiedBlockKind::CutSandstone, - BlockKind::StrippedBirchWood => SimplifiedBlockKind::Log, - BlockKind::DeadHornCoralBlock => SimplifiedBlockKind::CoralBlock, - BlockKind::DeadBrainCoral => SimplifiedBlockKind::Coral, - BlockKind::Glowstone => SimplifiedBlockKind::Glowstone, - BlockKind::StrippedAcaciaLog => SimplifiedBlockKind::Log, - BlockKind::AndesiteStairs => SimplifiedBlockKind::Stairs, + BlockKind::FletchingTable => SimplifiedBlockKind::FletchingTable, + BlockKind::Grindstone => SimplifiedBlockKind::Grindstone, + BlockKind::Lectern => SimplifiedBlockKind::Lectern, + BlockKind::SmithingTable => SimplifiedBlockKind::SmithingTable, + BlockKind::Stonecutter => SimplifiedBlockKind::Stonecutter, + BlockKind::Bell => SimplifiedBlockKind::Bell, + BlockKind::Lantern => SimplifiedBlockKind::Lantern, + BlockKind::SoulLantern => SimplifiedBlockKind::SoulLantern, + BlockKind::Campfire => SimplifiedBlockKind::Campfire, + BlockKind::SoulCampfire => SimplifiedBlockKind::SoulCampfire, + BlockKind::SweetBerryBush => SimplifiedBlockKind::SweetBerryBush, + BlockKind::WarpedStem => SimplifiedBlockKind::WarpedStem, + BlockKind::StrippedWarpedStem => SimplifiedBlockKind::StrippedWarpedStem, + BlockKind::WarpedHyphae => SimplifiedBlockKind::WarpedHyphae, + BlockKind::StrippedWarpedHyphae => SimplifiedBlockKind::StrippedWarpedHyphae, + BlockKind::WarpedNylium => SimplifiedBlockKind::WarpedNylium, + BlockKind::WarpedFungus => SimplifiedBlockKind::WarpedFungus, + BlockKind::WarpedWartBlock => SimplifiedBlockKind::WarpedWartBlock, + BlockKind::WarpedRoots => SimplifiedBlockKind::WarpedRoots, + BlockKind::NetherSprouts => SimplifiedBlockKind::NetherSprouts, + BlockKind::CrimsonStem => SimplifiedBlockKind::CrimsonStem, + BlockKind::StrippedCrimsonStem => SimplifiedBlockKind::StrippedCrimsonStem, + BlockKind::CrimsonHyphae => SimplifiedBlockKind::CrimsonHyphae, + BlockKind::StrippedCrimsonHyphae => SimplifiedBlockKind::StrippedCrimsonHyphae, + BlockKind::CrimsonNylium => SimplifiedBlockKind::CrimsonNylium, + BlockKind::CrimsonFungus => SimplifiedBlockKind::CrimsonFungus, + BlockKind::Shroomlight => SimplifiedBlockKind::Shroomlight, + BlockKind::WeepingVines => SimplifiedBlockKind::WeepingVines, + BlockKind::WeepingVinesPlant => SimplifiedBlockKind::WeepingVinesPlant, + BlockKind::TwistingVines => SimplifiedBlockKind::TwistingVines, + BlockKind::TwistingVinesPlant => SimplifiedBlockKind::TwistingVinesPlant, + BlockKind::CrimsonRoots => SimplifiedBlockKind::CrimsonRoots, + BlockKind::CrimsonPlanks => SimplifiedBlockKind::Planks, + BlockKind::WarpedPlanks => SimplifiedBlockKind::Planks, + BlockKind::CrimsonSlab => SimplifiedBlockKind::Slab, + BlockKind::WarpedSlab => SimplifiedBlockKind::Slab, + BlockKind::CrimsonPressurePlate => SimplifiedBlockKind::CrimsonPressurePlate, BlockKind::WarpedPressurePlate => SimplifiedBlockKind::WarpedPressurePlate, + BlockKind::CrimsonFence => SimplifiedBlockKind::Fence, + BlockKind::WarpedFence => SimplifiedBlockKind::Fence, + BlockKind::CrimsonTrapdoor => SimplifiedBlockKind::CrimsonTrapdoor, + BlockKind::WarpedTrapdoor => SimplifiedBlockKind::WarpedTrapdoor, + BlockKind::CrimsonFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::WarpedFenceGate => SimplifiedBlockKind::FenceGate, + BlockKind::CrimsonStairs => SimplifiedBlockKind::Stairs, + BlockKind::WarpedStairs => SimplifiedBlockKind::Stairs, + BlockKind::CrimsonButton => SimplifiedBlockKind::CrimsonButton, + BlockKind::WarpedButton => SimplifiedBlockKind::WarpedButton, + BlockKind::CrimsonDoor => SimplifiedBlockKind::CrimsonDoor, + BlockKind::WarpedDoor => SimplifiedBlockKind::WarpedDoor, + BlockKind::CrimsonSign => SimplifiedBlockKind::Sign, + BlockKind::WarpedSign => SimplifiedBlockKind::Sign, + BlockKind::CrimsonWallSign => SimplifiedBlockKind::WallSign, + BlockKind::WarpedWallSign => SimplifiedBlockKind::WallSign, + BlockKind::StructureBlock => SimplifiedBlockKind::StructureBlock, + BlockKind::Jigsaw => SimplifiedBlockKind::Jigsaw, + BlockKind::Composter => SimplifiedBlockKind::Composter, + BlockKind::Target => SimplifiedBlockKind::Target, + BlockKind::BeeNest => SimplifiedBlockKind::BeeNest, + BlockKind::Beehive => SimplifiedBlockKind::Beehive, + BlockKind::HoneyBlock => SimplifiedBlockKind::HoneyBlock, + BlockKind::HoneycombBlock => SimplifiedBlockKind::HoneycombBlock, + BlockKind::NetheriteBlock => SimplifiedBlockKind::NetheriteBlock, + BlockKind::AncientDebris => SimplifiedBlockKind::AncientDebris, + BlockKind::CryingObsidian => SimplifiedBlockKind::CryingObsidian, + BlockKind::RespawnAnchor => SimplifiedBlockKind::RespawnAnchor, + BlockKind::PottedCrimsonFungus => SimplifiedBlockKind::PottedCrimsonFungus, + BlockKind::PottedWarpedFungus => SimplifiedBlockKind::PottedWarpedFungus, + BlockKind::PottedCrimsonRoots => SimplifiedBlockKind::PottedCrimsonRoots, + BlockKind::PottedWarpedRoots => SimplifiedBlockKind::PottedWarpedRoots, + BlockKind::Lodestone => SimplifiedBlockKind::Lodestone, + BlockKind::Blackstone => SimplifiedBlockKind::Blackstone, + BlockKind::BlackstoneStairs => SimplifiedBlockKind::Stairs, + BlockKind::BlackstoneWall => SimplifiedBlockKind::BlackstoneWall, + BlockKind::BlackstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::PolishedBlackstone => SimplifiedBlockKind::PolishedBlackstone, + BlockKind::PolishedBlackstoneBricks => SimplifiedBlockKind::PolishedBlackstoneBricks, + BlockKind::CrackedPolishedBlackstoneBricks => { + SimplifiedBlockKind::CrackedPolishedBlackstoneBricks + } + BlockKind::ChiseledPolishedBlackstone => { + SimplifiedBlockKind::ChiseledPolishedBlackstone + } + BlockKind::PolishedBlackstoneBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::PolishedBlackstoneBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::PolishedBlackstoneBrickWall => { + SimplifiedBlockKind::PolishedBlackstoneBrickWall + } + BlockKind::GildedBlackstone => SimplifiedBlockKind::GildedBlackstone, BlockKind::PolishedBlackstoneStairs => SimplifiedBlockKind::Stairs, - BlockKind::LimeCarpet => SimplifiedBlockKind::Carpet, + BlockKind::PolishedBlackstoneSlab => SimplifiedBlockKind::Slab, + BlockKind::PolishedBlackstonePressurePlate => { + SimplifiedBlockKind::PolishedBlackstonePressurePlate + } + BlockKind::PolishedBlackstoneButton => SimplifiedBlockKind::PolishedBlackstoneButton, + BlockKind::PolishedBlackstoneWall => SimplifiedBlockKind::PolishedBlackstoneWall, + BlockKind::ChiseledNetherBricks => SimplifiedBlockKind::ChiseledNetherBricks, + BlockKind::CrackedNetherBricks => SimplifiedBlockKind::CrackedNetherBricks, + BlockKind::QuartzBricks => SimplifiedBlockKind::QuartzBricks, + BlockKind::Candle => SimplifiedBlockKind::Candle, + BlockKind::WhiteCandle => SimplifiedBlockKind::WhiteCandle, + BlockKind::OrangeCandle => SimplifiedBlockKind::OrangeCandle, + BlockKind::MagentaCandle => SimplifiedBlockKind::MagentaCandle, + BlockKind::LightBlueCandle => SimplifiedBlockKind::LightBlueCandle, + BlockKind::YellowCandle => SimplifiedBlockKind::YellowCandle, BlockKind::LimeCandle => SimplifiedBlockKind::LimeCandle, + BlockKind::PinkCandle => SimplifiedBlockKind::PinkCandle, + BlockKind::GrayCandle => SimplifiedBlockKind::GrayCandle, + BlockKind::LightGrayCandle => SimplifiedBlockKind::LightGrayCandle, + BlockKind::CyanCandle => SimplifiedBlockKind::CyanCandle, + BlockKind::PurpleCandle => SimplifiedBlockKind::PurpleCandle, + BlockKind::BlueCandle => SimplifiedBlockKind::BlueCandle, + BlockKind::BrownCandle => SimplifiedBlockKind::BrownCandle, + BlockKind::GreenCandle => SimplifiedBlockKind::GreenCandle, + BlockKind::RedCandle => SimplifiedBlockKind::RedCandle, + BlockKind::BlackCandle => SimplifiedBlockKind::BlackCandle, + BlockKind::CandleCake => SimplifiedBlockKind::CandleCake, + BlockKind::WhiteCandleCake => SimplifiedBlockKind::WhiteCandleCake, + BlockKind::OrangeCandleCake => SimplifiedBlockKind::OrangeCandleCake, + BlockKind::MagentaCandleCake => SimplifiedBlockKind::MagentaCandleCake, + BlockKind::LightBlueCandleCake => SimplifiedBlockKind::LightBlueCandleCake, + BlockKind::YellowCandleCake => SimplifiedBlockKind::YellowCandleCake, + BlockKind::LimeCandleCake => SimplifiedBlockKind::LimeCandleCake, + BlockKind::PinkCandleCake => SimplifiedBlockKind::PinkCandleCake, + BlockKind::GrayCandleCake => SimplifiedBlockKind::GrayCandleCake, + BlockKind::LightGrayCandleCake => SimplifiedBlockKind::LightGrayCandleCake, + BlockKind::CyanCandleCake => SimplifiedBlockKind::CyanCandleCake, + BlockKind::PurpleCandleCake => SimplifiedBlockKind::PurpleCandleCake, + BlockKind::BlueCandleCake => SimplifiedBlockKind::BlueCandleCake, + BlockKind::BrownCandleCake => SimplifiedBlockKind::BrownCandleCake, + BlockKind::GreenCandleCake => SimplifiedBlockKind::GreenCandleCake, + BlockKind::RedCandleCake => SimplifiedBlockKind::RedCandleCake, + BlockKind::BlackCandleCake => SimplifiedBlockKind::BlackCandleCake, + BlockKind::AmethystBlock => SimplifiedBlockKind::AmethystBlock, + BlockKind::BuddingAmethyst => SimplifiedBlockKind::BuddingAmethyst, + BlockKind::AmethystCluster => SimplifiedBlockKind::AmethystCluster, + BlockKind::LargeAmethystBud => SimplifiedBlockKind::LargeAmethystBud, + BlockKind::MediumAmethystBud => SimplifiedBlockKind::MediumAmethystBud, + BlockKind::SmallAmethystBud => SimplifiedBlockKind::SmallAmethystBud, + BlockKind::Tuff => SimplifiedBlockKind::Tuff, + BlockKind::Calcite => SimplifiedBlockKind::Calcite, BlockKind::TintedGlass => SimplifiedBlockKind::TintedGlass, - BlockKind::BrownTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::EndStoneBricks => SimplifiedBlockKind::EndStoneBricks, - BlockKind::Ice => SimplifiedBlockKind::Ice, - BlockKind::WaxedWeatheredCopper => SimplifiedBlockKind::WaxedWeatheredCopper, - BlockKind::OakLeaves => SimplifiedBlockKind::Leaves, BlockKind::PowderSnow => SimplifiedBlockKind::PowderSnow, - BlockKind::OrangeStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::SpruceSlab => SimplifiedBlockKind::Slab, - BlockKind::AcaciaSign => SimplifiedBlockKind::Sign, - BlockKind::CyanBanner => SimplifiedBlockKind::Banner, - BlockKind::LimeStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::SoulWallTorch => SimplifiedBlockKind::SoulWallTorch, - BlockKind::OakWood => SimplifiedBlockKind::Log, - BlockKind::ActivatorRail => SimplifiedBlockKind::ActivatorRail, - BlockKind::DeadBrainCoralFan => SimplifiedBlockKind::CoralFan, - BlockKind::PurpleShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::SpruceSapling => SimplifiedBlockKind::Sapling, - BlockKind::JungleSign => SimplifiedBlockKind::Sign, - BlockKind::CyanBed => SimplifiedBlockKind::Bed, - BlockKind::EnderChest => SimplifiedBlockKind::EnderChest, - BlockKind::Chest => SimplifiedBlockKind::Chest, - BlockKind::PrismarineBrickSlab => SimplifiedBlockKind::Slab, - BlockKind::PottedOxeyeDaisy => SimplifiedBlockKind::Flower, - BlockKind::Anvil => SimplifiedBlockKind::Anvil, - BlockKind::SoulFire => SimplifiedBlockKind::SoulFire, - BlockKind::CobbledDeepslateStairs => SimplifiedBlockKind::Stairs, - BlockKind::GraniteWall => SimplifiedBlockKind::GraniteWall, - BlockKind::DeadTubeCoral => SimplifiedBlockKind::Coral, - BlockKind::BubbleCoral => SimplifiedBlockKind::Coral, - BlockKind::Jukebox => SimplifiedBlockKind::Jukebox, - BlockKind::CyanConcrete => SimplifiedBlockKind::Concrete, - BlockKind::TwistingVines => SimplifiedBlockKind::TwistingVines, - BlockKind::MossyCobblestone => SimplifiedBlockKind::MossyCobblestone, - BlockKind::BrownShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::LightGrayShulkerBox => SimplifiedBlockKind::ShulkerBox, - BlockKind::StrippedJungleLog => SimplifiedBlockKind::Log, - BlockKind::DeepslateDiamondOre => SimplifiedBlockKind::DeepslateDiamondOre, - BlockKind::LightWeightedPressurePlate => { - SimplifiedBlockKind::LightWeightedPressurePlate - } - BlockKind::BlueGlazedTerracotta => SimplifiedBlockKind::GlazedTeracotta, - BlockKind::Grindstone => SimplifiedBlockKind::Grindstone, - BlockKind::DragonEgg => SimplifiedBlockKind::DragonEgg, - BlockKind::Cornflower => SimplifiedBlockKind::Cornflower, - BlockKind::CobblestoneSlab => SimplifiedBlockKind::Slab, - BlockKind::PottedAzaleaBush => SimplifiedBlockKind::PottedAzaleaBush, - BlockKind::CutCopperStairs => SimplifiedBlockKind::Stairs, - BlockKind::MovingPiston => SimplifiedBlockKind::MovingPiston, - BlockKind::CarvedPumpkin => SimplifiedBlockKind::CarvedPumpkin, - BlockKind::BlueConcretePowder => SimplifiedBlockKind::ConcretePowder, - BlockKind::CoalOre => SimplifiedBlockKind::CoalOre, + BlockKind::SculkSensor => SimplifiedBlockKind::SculkSensor, + BlockKind::OxidizedCopper => SimplifiedBlockKind::OxidizedCopper, + BlockKind::WeatheredCopper => SimplifiedBlockKind::WeatheredCopper, + BlockKind::ExposedCopper => SimplifiedBlockKind::ExposedCopper, + BlockKind::CopperBlock => SimplifiedBlockKind::CopperBlock, BlockKind::CopperOre => SimplifiedBlockKind::CopperOre, - BlockKind::PolishedBlackstoneSlab => SimplifiedBlockKind::Slab, - BlockKind::WhiteTerracotta => SimplifiedBlockKind::Teracotta, + BlockKind::DeepslateCopperOre => SimplifiedBlockKind::DeepslateCopperOre, + BlockKind::OxidizedCutCopper => SimplifiedBlockKind::OxidizedCutCopper, + BlockKind::WeatheredCutCopper => SimplifiedBlockKind::WeatheredCutCopper, + BlockKind::ExposedCutCopper => SimplifiedBlockKind::ExposedCutCopper, + BlockKind::CutCopper => SimplifiedBlockKind::CutCopper, + BlockKind::OxidizedCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::WeatheredCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::ExposedCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::CutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::OxidizedCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::WeatheredCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::ExposedCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::CutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::WaxedCopperBlock => SimplifiedBlockKind::WaxedCopperBlock, + BlockKind::WaxedWeatheredCopper => SimplifiedBlockKind::WaxedWeatheredCopper, + BlockKind::WaxedExposedCopper => SimplifiedBlockKind::WaxedExposedCopper, + BlockKind::WaxedOxidizedCopper => SimplifiedBlockKind::WaxedOxidizedCopper, + BlockKind::WaxedOxidizedCutCopper => SimplifiedBlockKind::WaxedOxidizedCutCopper, + BlockKind::WaxedWeatheredCutCopper => SimplifiedBlockKind::WaxedWeatheredCutCopper, + BlockKind::WaxedExposedCutCopper => SimplifiedBlockKind::WaxedExposedCutCopper, + BlockKind::WaxedCutCopper => SimplifiedBlockKind::WaxedCutCopper, + BlockKind::WaxedOxidizedCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::WaxedWeatheredCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::WaxedExposedCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::WaxedCutCopperStairs => SimplifiedBlockKind::Stairs, + BlockKind::WaxedOxidizedCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::WaxedWeatheredCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::WaxedExposedCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::WaxedCutCopperSlab => SimplifiedBlockKind::Slab, + BlockKind::LightningRod => SimplifiedBlockKind::LightningRod, + BlockKind::PointedDripstone => SimplifiedBlockKind::PointedDripstone, + BlockKind::DripstoneBlock => SimplifiedBlockKind::DripstoneBlock, + BlockKind::CaveVines => SimplifiedBlockKind::CaveVines, + BlockKind::CaveVinesPlant => SimplifiedBlockKind::CaveVinesPlant, + BlockKind::SporeBlossom => SimplifiedBlockKind::SporeBlossom, + BlockKind::Azalea => SimplifiedBlockKind::Azalea, + BlockKind::FloweringAzalea => SimplifiedBlockKind::FloweringAzalea, + BlockKind::MossCarpet => SimplifiedBlockKind::Carpet, + BlockKind::MossBlock => SimplifiedBlockKind::MossBlock, BlockKind::BigDripleaf => SimplifiedBlockKind::BigDripleaf, - BlockKind::ChainCommandBlock => SimplifiedBlockKind::ChainCommandBlock, - BlockKind::BrownStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::BirchFenceGate => SimplifiedBlockKind::FenceGate, - BlockKind::PolishedDeepslateStairs => SimplifiedBlockKind::Stairs, BlockKind::BigDripleafStem => SimplifiedBlockKind::BigDripleafStem, - BlockKind::GreenStainedGlassPane => SimplifiedBlockKind::StainedGlassPane, - BlockKind::GreenCandle => SimplifiedBlockKind::GreenCandle, - BlockKind::StoneButton => SimplifiedBlockKind::StoneButton, - BlockKind::VoidAir => SimplifiedBlockKind::Air, - BlockKind::ChiseledStoneBricks => SimplifiedBlockKind::ChiseledStoneBricks, - BlockKind::SmithingTable => SimplifiedBlockKind::SmithingTable, - BlockKind::MagentaTerracotta => SimplifiedBlockKind::Teracotta, - BlockKind::AndesiteWall => SimplifiedBlockKind::AndesiteWall, + BlockKind::SmallDripleaf => SimplifiedBlockKind::SmallDripleaf, + BlockKind::HangingRoots => SimplifiedBlockKind::HangingRoots, + BlockKind::RootedDirt => SimplifiedBlockKind::RootedDirt, + BlockKind::Deepslate => SimplifiedBlockKind::Deepslate, + BlockKind::CobbledDeepslate => SimplifiedBlockKind::CobbledDeepslate, + BlockKind::CobbledDeepslateStairs => SimplifiedBlockKind::Stairs, + BlockKind::CobbledDeepslateSlab => SimplifiedBlockKind::Slab, + BlockKind::CobbledDeepslateWall => SimplifiedBlockKind::CobbledDeepslateWall, + BlockKind::PolishedDeepslate => SimplifiedBlockKind::PolishedDeepslate, + BlockKind::PolishedDeepslateStairs => SimplifiedBlockKind::Stairs, + BlockKind::PolishedDeepslateSlab => SimplifiedBlockKind::Slab, + BlockKind::PolishedDeepslateWall => SimplifiedBlockKind::PolishedDeepslateWall, + BlockKind::DeepslateTiles => SimplifiedBlockKind::DeepslateTiles, + BlockKind::DeepslateTileStairs => SimplifiedBlockKind::Stairs, + BlockKind::DeepslateTileSlab => SimplifiedBlockKind::Slab, + BlockKind::DeepslateTileWall => SimplifiedBlockKind::DeepslateTileWall, + BlockKind::DeepslateBricks => SimplifiedBlockKind::DeepslateBricks, + BlockKind::DeepslateBrickStairs => SimplifiedBlockKind::Stairs, + BlockKind::DeepslateBrickSlab => SimplifiedBlockKind::Slab, + BlockKind::DeepslateBrickWall => SimplifiedBlockKind::DeepslateBrickWall, + BlockKind::ChiseledDeepslate => SimplifiedBlockKind::ChiseledDeepslate, + BlockKind::CrackedDeepslateBricks => SimplifiedBlockKind::CrackedDeepslateBricks, + BlockKind::CrackedDeepslateTiles => SimplifiedBlockKind::CrackedDeepslateTiles, + BlockKind::InfestedDeepslate => SimplifiedBlockKind::InfestedDeepslate, + BlockKind::SmoothBasalt => SimplifiedBlockKind::SmoothBasalt, + BlockKind::RawIronBlock => SimplifiedBlockKind::RawIronBlock, + BlockKind::RawCopperBlock => SimplifiedBlockKind::RawCopperBlock, + BlockKind::RawGoldBlock => SimplifiedBlockKind::RawGoldBlock, + BlockKind::PottedAzaleaBush => SimplifiedBlockKind::PottedAzaleaBush, + BlockKind::PottedFloweringAzaleaBush => SimplifiedBlockKind::PottedFloweringAzaleaBush, } } } diff --git a/libcraft/core/src/entity.rs b/libcraft/core/src/entity.rs index 365b5436f..a7befba1a 100644 --- a/libcraft/core/src/entity.rs +++ b/libcraft/core/src/entity.rs @@ -253,118 +253,118 @@ impl EntityKind { #[inline] pub fn id(&self) -> u32 { match self { - EntityKind::Spider => 85, - EntityKind::ZombieHorse => 108, - EntityKind::Egg => 89, - EntityKind::SkeletonHorse => 79, - EntityKind::Turtle => 96, + EntityKind::AreaEffectCloud => 0, + EntityKind::ArmorStand => 1, + EntityKind::Arrow => 2, + EntityKind::Axolotl => 3, + EntityKind::Bat => 4, EntityKind::Bee => 5, - EntityKind::MagmaCube => 48, - EntityKind::Giant => 31, - EntityKind::FireworkRocket => 28, - EntityKind::Strider => 88, - EntityKind::EnderPearl => 90, - EntityKind::Pig => 64, - EntityKind::Cow => 12, - EntityKind::Wolf => 105, + EntityKind::Blaze => 6, EntityKind::Boat => 7, - EntityKind::Parrot => 62, - EntityKind::TropicalFish => 95, - EntityKind::SpectralArrow => 84, - EntityKind::Painting => 60, - EntityKind::FurnaceMinecart => 53, - EntityKind::Phantom => 63, - EntityKind::Rabbit => 71, - EntityKind::LightningBolt => 45, - EntityKind::Horse => 37, - EntityKind::Minecart => 50, - EntityKind::SpawnerMinecart => 55, + EntityKind::Cat => 8, + EntityKind::CaveSpider => 9, + EntityKind::Chicken => 10, EntityKind::Cod => 11, - EntityKind::Slime => 80, + EntityKind::Cow => 12, + EntityKind::Creeper => 13, + EntityKind::Dolphin => 14, + EntityKind::Donkey => 15, + EntityKind::DragonFireball => 16, + EntityKind::Drowned => 17, + EntityKind::ElderGuardian => 18, + EntityKind::EndCrystal => 19, EntityKind::EnderDragon => 20, - EntityKind::ChestMinecart => 51, + EntityKind::Enderman => 21, + EntityKind::Endermite => 22, + EntityKind::Evoker => 23, + EntityKind::EvokerFangs => 24, + EntityKind::ExperienceOrb => 25, + EntityKind::EyeOfEnder => 26, EntityKind::FallingBlock => 27, - EntityKind::Shulker => 75, - EntityKind::Squid => 86, - EntityKind::Husk => 38, + EntityKind::FireworkRocket => 28, + EntityKind::Fox => 29, + EntityKind::Ghast => 30, + EntityKind::Giant => 31, EntityKind::GlowItemFrame => 32, - EntityKind::Endermite => 22, - EntityKind::Creeper => 13, + EntityKind::GlowSquid => 33, EntityKind::Goat => 34, - EntityKind::Fireball => 43, - EntityKind::Cat => 8, - EntityKind::SmallFireball => 81, - EntityKind::WanderingTrader => 100, - EntityKind::TntMinecart => 56, - EntityKind::Player => 111, - EntityKind::Tnt => 69, - EntityKind::CaveSpider => 9, - EntityKind::Ghast => 30, - EntityKind::Ocelot => 59, - EntityKind::ExperienceBottle => 91, - EntityKind::ShulkerBullet => 76, - EntityKind::Donkey => 15, - EntityKind::Stray => 87, + EntityKind::Guardian => 35, + EntityKind::Hoglin => 36, + EntityKind::Horse => 37, + EntityKind::Husk => 38, EntityKind::Illusioner => 39, EntityKind::IronGolem => 40, - EntityKind::TraderLlama => 94, - EntityKind::PolarBear => 68, - EntityKind::ExperienceOrb => 25, - EntityKind::WitherSkeleton => 103, - EntityKind::CommandBlockMinecart => 52, - EntityKind::Ravager => 72, - EntityKind::Blaze => 6, - EntityKind::ElderGuardian => 18, + EntityKind::Item => 41, EntityKind::ItemFrame => 42, - EntityKind::Enderman => 21, - EntityKind::Villager => 98, - EntityKind::EndCrystal => 19, - EntityKind::EyeOfEnder => 26, - EntityKind::Witch => 101, - EntityKind::Trident => 93, + EntityKind::Fireball => 43, + EntityKind::LeashKnot => 44, + EntityKind::LightningBolt => 45, + EntityKind::Llama => 46, + EntityKind::LlamaSpit => 47, + EntityKind::MagmaCube => 48, EntityKind::Marker => 49, - EntityKind::Evoker => 23, - EntityKind::Fox => 29, + EntityKind::Minecart => 50, + EntityKind::ChestMinecart => 51, + EntityKind::CommandBlockMinecart => 52, + EntityKind::FurnaceMinecart => 53, + EntityKind::HopperMinecart => 54, + EntityKind::SpawnerMinecart => 55, + EntityKind::TntMinecart => 56, EntityKind::Mule => 57, - EntityKind::Skeleton => 78, - EntityKind::Drowned => 17, + EntityKind::Mooshroom => 58, + EntityKind::Ocelot => 59, + EntityKind::Painting => 60, + EntityKind::Panda => 61, + EntityKind::Parrot => 62, + EntityKind::Phantom => 63, + EntityKind::Pig => 64, + EntityKind::Piglin => 65, + EntityKind::PiglinBrute => 66, + EntityKind::Pillager => 67, + EntityKind::PolarBear => 68, + EntityKind::Tnt => 69, + EntityKind::Pufferfish => 70, + EntityKind::Rabbit => 71, + EntityKind::Ravager => 72, + EntityKind::Salmon => 73, EntityKind::Sheep => 74, - EntityKind::EvokerFangs => 24, - EntityKind::Arrow => 2, - EntityKind::Bat => 4, - EntityKind::Zombie => 107, - EntityKind::Llama => 46, + EntityKind::Shulker => 75, + EntityKind::ShulkerBullet => 76, + EntityKind::Silverfish => 77, + EntityKind::Skeleton => 78, + EntityKind::SkeletonHorse => 79, + EntityKind::Slime => 80, + EntityKind::SmallFireball => 81, EntityKind::SnowGolem => 82, - EntityKind::LeashKnot => 44, + EntityKind::Snowball => 83, + EntityKind::SpectralArrow => 84, + EntityKind::Spider => 85, + EntityKind::Squid => 86, + EntityKind::Stray => 87, + EntityKind::Strider => 88, + EntityKind::Egg => 89, + EntityKind::EnderPearl => 90, + EntityKind::ExperienceBottle => 91, EntityKind::Potion => 92, - EntityKind::Zoglin => 106, - EntityKind::Guardian => 35, - EntityKind::Salmon => 73, - EntityKind::WitherSkull => 104, - EntityKind::Vindicator => 99, - EntityKind::Silverfish => 77, + EntityKind::Trident => 93, + EntityKind::TraderLlama => 94, + EntityKind::TropicalFish => 95, + EntityKind::Turtle => 96, EntityKind::Vex => 97, - EntityKind::HopperMinecart => 54, - EntityKind::AreaEffectCloud => 0, - EntityKind::Chicken => 10, - EntityKind::DragonFireball => 16, + EntityKind::Villager => 98, + EntityKind::Vindicator => 99, + EntityKind::WanderingTrader => 100, + EntityKind::Witch => 101, EntityKind::Wither => 102, - EntityKind::Pufferfish => 70, - EntityKind::PiglinBrute => 66, - EntityKind::Pillager => 67, - EntityKind::Snowball => 83, + EntityKind::WitherSkeleton => 103, + EntityKind::WitherSkull => 104, + EntityKind::Wolf => 105, + EntityKind::Zoglin => 106, + EntityKind::Zombie => 107, + EntityKind::ZombieHorse => 108, EntityKind::ZombieVillager => 109, - EntityKind::Dolphin => 14, EntityKind::ZombifiedPiglin => 110, - EntityKind::Axolotl => 3, - EntityKind::LlamaSpit => 47, - EntityKind::Panda => 61, - EntityKind::Piglin => 65, - EntityKind::Item => 41, - EntityKind::ArmorStand => 1, - EntityKind::GlowSquid => 33, - EntityKind::Hoglin => 36, - EntityKind::Mooshroom => 58, + EntityKind::Player => 111, EntityKind::FishingBobber => 112, } } @@ -372,118 +372,118 @@ impl EntityKind { #[inline] pub fn from_id(id: u32) -> Option { match id { - 85 => Some(EntityKind::Spider), - 108 => Some(EntityKind::ZombieHorse), - 89 => Some(EntityKind::Egg), - 79 => Some(EntityKind::SkeletonHorse), - 96 => Some(EntityKind::Turtle), + 0 => Some(EntityKind::AreaEffectCloud), + 1 => Some(EntityKind::ArmorStand), + 2 => Some(EntityKind::Arrow), + 3 => Some(EntityKind::Axolotl), + 4 => Some(EntityKind::Bat), 5 => Some(EntityKind::Bee), - 48 => Some(EntityKind::MagmaCube), - 31 => Some(EntityKind::Giant), - 28 => Some(EntityKind::FireworkRocket), - 88 => Some(EntityKind::Strider), - 90 => Some(EntityKind::EnderPearl), - 64 => Some(EntityKind::Pig), - 12 => Some(EntityKind::Cow), - 105 => Some(EntityKind::Wolf), + 6 => Some(EntityKind::Blaze), 7 => Some(EntityKind::Boat), - 62 => Some(EntityKind::Parrot), - 95 => Some(EntityKind::TropicalFish), - 84 => Some(EntityKind::SpectralArrow), - 60 => Some(EntityKind::Painting), - 53 => Some(EntityKind::FurnaceMinecart), - 63 => Some(EntityKind::Phantom), - 71 => Some(EntityKind::Rabbit), - 45 => Some(EntityKind::LightningBolt), - 37 => Some(EntityKind::Horse), - 50 => Some(EntityKind::Minecart), - 55 => Some(EntityKind::SpawnerMinecart), + 8 => Some(EntityKind::Cat), + 9 => Some(EntityKind::CaveSpider), + 10 => Some(EntityKind::Chicken), 11 => Some(EntityKind::Cod), - 80 => Some(EntityKind::Slime), + 12 => Some(EntityKind::Cow), + 13 => Some(EntityKind::Creeper), + 14 => Some(EntityKind::Dolphin), + 15 => Some(EntityKind::Donkey), + 16 => Some(EntityKind::DragonFireball), + 17 => Some(EntityKind::Drowned), + 18 => Some(EntityKind::ElderGuardian), + 19 => Some(EntityKind::EndCrystal), 20 => Some(EntityKind::EnderDragon), - 51 => Some(EntityKind::ChestMinecart), + 21 => Some(EntityKind::Enderman), + 22 => Some(EntityKind::Endermite), + 23 => Some(EntityKind::Evoker), + 24 => Some(EntityKind::EvokerFangs), + 25 => Some(EntityKind::ExperienceOrb), + 26 => Some(EntityKind::EyeOfEnder), 27 => Some(EntityKind::FallingBlock), - 75 => Some(EntityKind::Shulker), - 86 => Some(EntityKind::Squid), - 38 => Some(EntityKind::Husk), + 28 => Some(EntityKind::FireworkRocket), + 29 => Some(EntityKind::Fox), + 30 => Some(EntityKind::Ghast), + 31 => Some(EntityKind::Giant), 32 => Some(EntityKind::GlowItemFrame), - 22 => Some(EntityKind::Endermite), - 13 => Some(EntityKind::Creeper), + 33 => Some(EntityKind::GlowSquid), 34 => Some(EntityKind::Goat), + 35 => Some(EntityKind::Guardian), + 36 => Some(EntityKind::Hoglin), + 37 => Some(EntityKind::Horse), + 38 => Some(EntityKind::Husk), + 39 => Some(EntityKind::Illusioner), + 40 => Some(EntityKind::IronGolem), + 41 => Some(EntityKind::Item), + 42 => Some(EntityKind::ItemFrame), 43 => Some(EntityKind::Fireball), - 8 => Some(EntityKind::Cat), - 81 => Some(EntityKind::SmallFireball), - 100 => Some(EntityKind::WanderingTrader), + 44 => Some(EntityKind::LeashKnot), + 45 => Some(EntityKind::LightningBolt), + 46 => Some(EntityKind::Llama), + 47 => Some(EntityKind::LlamaSpit), + 48 => Some(EntityKind::MagmaCube), + 49 => Some(EntityKind::Marker), + 50 => Some(EntityKind::Minecart), + 51 => Some(EntityKind::ChestMinecart), + 52 => Some(EntityKind::CommandBlockMinecart), + 53 => Some(EntityKind::FurnaceMinecart), + 54 => Some(EntityKind::HopperMinecart), + 55 => Some(EntityKind::SpawnerMinecart), 56 => Some(EntityKind::TntMinecart), - 111 => Some(EntityKind::Player), - 69 => Some(EntityKind::Tnt), - 9 => Some(EntityKind::CaveSpider), - 30 => Some(EntityKind::Ghast), + 57 => Some(EntityKind::Mule), + 58 => Some(EntityKind::Mooshroom), 59 => Some(EntityKind::Ocelot), - 91 => Some(EntityKind::ExperienceBottle), - 76 => Some(EntityKind::ShulkerBullet), - 15 => Some(EntityKind::Donkey), - 87 => Some(EntityKind::Stray), - 39 => Some(EntityKind::Illusioner), - 40 => Some(EntityKind::IronGolem), - 94 => Some(EntityKind::TraderLlama), + 60 => Some(EntityKind::Painting), + 61 => Some(EntityKind::Panda), + 62 => Some(EntityKind::Parrot), + 63 => Some(EntityKind::Phantom), + 64 => Some(EntityKind::Pig), + 65 => Some(EntityKind::Piglin), + 66 => Some(EntityKind::PiglinBrute), + 67 => Some(EntityKind::Pillager), 68 => Some(EntityKind::PolarBear), - 25 => Some(EntityKind::ExperienceOrb), - 103 => Some(EntityKind::WitherSkeleton), - 52 => Some(EntityKind::CommandBlockMinecart), + 69 => Some(EntityKind::Tnt), + 70 => Some(EntityKind::Pufferfish), + 71 => Some(EntityKind::Rabbit), 72 => Some(EntityKind::Ravager), - 6 => Some(EntityKind::Blaze), - 18 => Some(EntityKind::ElderGuardian), - 42 => Some(EntityKind::ItemFrame), - 21 => Some(EntityKind::Enderman), - 98 => Some(EntityKind::Villager), - 19 => Some(EntityKind::EndCrystal), - 26 => Some(EntityKind::EyeOfEnder), - 101 => Some(EntityKind::Witch), - 93 => Some(EntityKind::Trident), - 49 => Some(EntityKind::Marker), - 23 => Some(EntityKind::Evoker), - 29 => Some(EntityKind::Fox), - 57 => Some(EntityKind::Mule), - 78 => Some(EntityKind::Skeleton), - 17 => Some(EntityKind::Drowned), + 73 => Some(EntityKind::Salmon), 74 => Some(EntityKind::Sheep), - 24 => Some(EntityKind::EvokerFangs), - 2 => Some(EntityKind::Arrow), - 4 => Some(EntityKind::Bat), - 107 => Some(EntityKind::Zombie), - 46 => Some(EntityKind::Llama), + 75 => Some(EntityKind::Shulker), + 76 => Some(EntityKind::ShulkerBullet), + 77 => Some(EntityKind::Silverfish), + 78 => Some(EntityKind::Skeleton), + 79 => Some(EntityKind::SkeletonHorse), + 80 => Some(EntityKind::Slime), + 81 => Some(EntityKind::SmallFireball), 82 => Some(EntityKind::SnowGolem), - 44 => Some(EntityKind::LeashKnot), + 83 => Some(EntityKind::Snowball), + 84 => Some(EntityKind::SpectralArrow), + 85 => Some(EntityKind::Spider), + 86 => Some(EntityKind::Squid), + 87 => Some(EntityKind::Stray), + 88 => Some(EntityKind::Strider), + 89 => Some(EntityKind::Egg), + 90 => Some(EntityKind::EnderPearl), + 91 => Some(EntityKind::ExperienceBottle), 92 => Some(EntityKind::Potion), - 106 => Some(EntityKind::Zoglin), - 35 => Some(EntityKind::Guardian), - 73 => Some(EntityKind::Salmon), - 104 => Some(EntityKind::WitherSkull), - 99 => Some(EntityKind::Vindicator), - 77 => Some(EntityKind::Silverfish), + 93 => Some(EntityKind::Trident), + 94 => Some(EntityKind::TraderLlama), + 95 => Some(EntityKind::TropicalFish), + 96 => Some(EntityKind::Turtle), 97 => Some(EntityKind::Vex), - 54 => Some(EntityKind::HopperMinecart), - 0 => Some(EntityKind::AreaEffectCloud), - 10 => Some(EntityKind::Chicken), - 16 => Some(EntityKind::DragonFireball), + 98 => Some(EntityKind::Villager), + 99 => Some(EntityKind::Vindicator), + 100 => Some(EntityKind::WanderingTrader), + 101 => Some(EntityKind::Witch), 102 => Some(EntityKind::Wither), - 70 => Some(EntityKind::Pufferfish), - 66 => Some(EntityKind::PiglinBrute), - 67 => Some(EntityKind::Pillager), - 83 => Some(EntityKind::Snowball), + 103 => Some(EntityKind::WitherSkeleton), + 104 => Some(EntityKind::WitherSkull), + 105 => Some(EntityKind::Wolf), + 106 => Some(EntityKind::Zoglin), + 107 => Some(EntityKind::Zombie), + 108 => Some(EntityKind::ZombieHorse), 109 => Some(EntityKind::ZombieVillager), - 14 => Some(EntityKind::Dolphin), 110 => Some(EntityKind::ZombifiedPiglin), - 3 => Some(EntityKind::Axolotl), - 47 => Some(EntityKind::LlamaSpit), - 61 => Some(EntityKind::Panda), - 65 => Some(EntityKind::Piglin), - 41 => Some(EntityKind::Item), - 1 => Some(EntityKind::ArmorStand), - 33 => Some(EntityKind::GlowSquid), - 36 => Some(EntityKind::Hoglin), - 58 => Some(EntityKind::Mooshroom), + 111 => Some(EntityKind::Player), 112 => Some(EntityKind::FishingBobber), _ => None, } @@ -494,119 +494,119 @@ impl EntityKind { #[inline] pub fn width(&self) -> f32 { match self { - EntityKind::TropicalFish => 0.5f32, + EntityKind::AreaEffectCloud => 6f32, + EntityKind::ArmorStand => 0.5f32, + EntityKind::Arrow => 0.5f32, + EntityKind::Axolotl => 0.75f32, EntityKind::Bat => 0.5f32, - EntityKind::Sheep => 0.9f32, - EntityKind::Goat => 0.9f32, - EntityKind::TraderLlama => 0.9f32, - EntityKind::Zoglin => 1.39648f32, EntityKind::Bee => 0.7f32, - EntityKind::Enderman => 0.6f32, - EntityKind::LeashKnot => 0.375f32, + EntityKind::Blaze => 0.6f32, + EntityKind::Boat => 1.375f32, + EntityKind::Cat => 0.6f32, EntityKind::CaveSpider => 0.7f32, - EntityKind::LightningBolt => 0f32, + EntityKind::Chicken => 0.4f32, + EntityKind::Cod => 0.5f32, + EntityKind::Cow => 0.9f32, + EntityKind::Creeper => 0.6f32, + EntityKind::Dolphin => 0.9f32, + EntityKind::Donkey => 1.39648f32, + EntityKind::DragonFireball => 1f32, + EntityKind::Drowned => 0.6f32, + EntityKind::ElderGuardian => 1.9975f32, EntityKind::EndCrystal => 2f32, - EntityKind::Skeleton => 0.6f32, + EntityKind::EnderDragon => 16f32, + EntityKind::Enderman => 0.6f32, + EntityKind::Endermite => 0.4f32, + EntityKind::Evoker => 0.6f32, + EntityKind::EvokerFangs => 0.5f32, + EntityKind::ExperienceOrb => 0.5f32, + EntityKind::EyeOfEnder => 0.25f32, + EntityKind::FallingBlock => 0.98f32, + EntityKind::FireworkRocket => 0.25f32, + EntityKind::Fox => 0.6f32, + EntityKind::Ghast => 4f32, + EntityKind::Giant => 3.6f32, + EntityKind::GlowItemFrame => 0.5f32, + EntityKind::GlowSquid => 0.8f32, + EntityKind::Goat => 0.9f32, + EntityKind::Guardian => 0.85f32, + EntityKind::Hoglin => 1.39648f32, + EntityKind::Horse => 1.39648f32, EntityKind::Husk => 0.6f32, + EntityKind::Illusioner => 0.6f32, + EntityKind::IronGolem => 1.4f32, + EntityKind::Item => 0.25f32, + EntityKind::ItemFrame => 0.5f32, + EntityKind::Fireball => 1f32, + EntityKind::LeashKnot => 0.375f32, + EntityKind::LightningBolt => 0f32, + EntityKind::Llama => 0.9f32, + EntityKind::LlamaSpit => 0.25f32, + EntityKind::MagmaCube => 2.04f32, + EntityKind::Marker => 0f32, + EntityKind::Minecart => 0.98f32, + EntityKind::ChestMinecart => 0.98f32, + EntityKind::CommandBlockMinecart => 0.98f32, + EntityKind::FurnaceMinecart => 0.98f32, + EntityKind::HopperMinecart => 0.98f32, + EntityKind::SpawnerMinecart => 0.98f32, + EntityKind::TntMinecart => 0.98f32, + EntityKind::Mule => 1.39648f32, + EntityKind::Mooshroom => 0.9f32, + EntityKind::Ocelot => 0.6f32, EntityKind::Painting => 0.5f32, - EntityKind::Boat => 1.375f32, + EntityKind::Panda => 1.3f32, + EntityKind::Parrot => 0.5f32, EntityKind::Phantom => 0.9f32, - EntityKind::Axolotl => 0.75f32, - EntityKind::Mooshroom => 0.9f32, - EntityKind::GlowItemFrame => 0.5f32, + EntityKind::Pig => 0.9f32, EntityKind::Piglin => 0.6f32, + EntityKind::PiglinBrute => 0.6f32, + EntityKind::Pillager => 0.6f32, + EntityKind::PolarBear => 1.4f32, EntityKind::Tnt => 0.98f32, - EntityKind::Squid => 0.8f32, - EntityKind::Fireball => 1f32, - EntityKind::EvokerFangs => 0.5f32, - EntityKind::SmallFireball => 0.3125f32, - EntityKind::Horse => 1.39648f32, EntityKind::Pufferfish => 0.7f32, - EntityKind::SpectralArrow => 0.5f32, - EntityKind::Donkey => 1.39648f32, - EntityKind::Player => 0.6f32, - EntityKind::Hoglin => 1.39648f32, - EntityKind::PolarBear => 1.4f32, - EntityKind::Drowned => 0.6f32, - EntityKind::Evoker => 0.6f32, - EntityKind::DragonFireball => 1f32, - EntityKind::Creeper => 0.6f32, - EntityKind::EyeOfEnder => 0.25f32, - EntityKind::Strider => 0.9f32, + EntityKind::Rabbit => 0.4f32, + EntityKind::Ravager => 1.95f32, + EntityKind::Salmon => 0.7f32, + EntityKind::Sheep => 0.9f32, EntityKind::Shulker => 1f32, - EntityKind::FishingBobber => 0.25f32, + EntityKind::ShulkerBullet => 0.3125f32, + EntityKind::Silverfish => 0.4f32, + EntityKind::Skeleton => 0.6f32, + EntityKind::SkeletonHorse => 1.39648f32, EntityKind::Slime => 2.04f32, + EntityKind::SmallFireball => 0.3125f32, + EntityKind::SnowGolem => 0.7f32, + EntityKind::Snowball => 0.25f32, + EntityKind::SpectralArrow => 0.5f32, + EntityKind::Spider => 1.4f32, + EntityKind::Squid => 0.8f32, + EntityKind::Stray => 0.6f32, + EntityKind::Strider => 0.9f32, EntityKind::Egg => 0.25f32, + EntityKind::EnderPearl => 0.25f32, + EntityKind::ExperienceBottle => 0.25f32, EntityKind::Potion => 0.25f32, + EntityKind::Trident => 0.5f32, + EntityKind::TraderLlama => 0.9f32, + EntityKind::TropicalFish => 0.5f32, EntityKind::Turtle => 1.2f32, - EntityKind::ZombieHorse => 1.39648f32, - EntityKind::ElderGuardian => 1.9975f32, + EntityKind::Vex => 0.4f32, + EntityKind::Villager => 0.6f32, EntityKind::Vindicator => 0.6f32, - EntityKind::SpawnerMinecart => 0.98f32, - EntityKind::Stray => 0.6f32, - EntityKind::ExperienceBottle => 0.25f32, - EntityKind::Parrot => 0.5f32, - EntityKind::Pig => 0.9f32, + EntityKind::WanderingTrader => 0.6f32, + EntityKind::Witch => 0.6f32, + EntityKind::Wither => 0.9f32, + EntityKind::WitherSkeleton => 0.7f32, EntityKind::WitherSkull => 0.3125f32, - EntityKind::GlowSquid => 0.8f32, - EntityKind::Ocelot => 0.6f32, - EntityKind::Ghast => 4f32, - EntityKind::Cow => 0.9f32, - EntityKind::EnderDragon => 16f32, - EntityKind::Pillager => 0.6f32, - EntityKind::SnowGolem => 0.7f32, - EntityKind::Trident => 0.5f32, - EntityKind::SkeletonHorse => 1.39648f32, - EntityKind::Illusioner => 0.6f32, - EntityKind::Blaze => 0.6f32, EntityKind::Wolf => 0.6f32, - EntityKind::Guardian => 0.85f32, - EntityKind::Spider => 1.4f32, - EntityKind::Dolphin => 0.9f32, - EntityKind::CommandBlockMinecart => 0.98f32, - EntityKind::Panda => 1.3f32, - EntityKind::Rabbit => 0.4f32, - EntityKind::WitherSkeleton => 0.7f32, - EntityKind::ArmorStand => 0.5f32, - EntityKind::FireworkRocket => 0.25f32, - EntityKind::Item => 0.25f32, - EntityKind::ChestMinecart => 0.98f32, - EntityKind::IronGolem => 1.4f32, - EntityKind::AreaEffectCloud => 6f32, - EntityKind::LlamaSpit => 0.25f32, - EntityKind::Minecart => 0.98f32, - EntityKind::Ravager => 1.95f32, - EntityKind::EnderPearl => 0.25f32, - EntityKind::HopperMinecart => 0.98f32, - EntityKind::Marker => 0f32, - EntityKind::FallingBlock => 0.98f32, - EntityKind::ZombifiedPiglin => 0.6f32, - EntityKind::FurnaceMinecart => 0.98f32, - EntityKind::Cod => 0.5f32, - EntityKind::TntMinecart => 0.98f32, - EntityKind::Mule => 1.39648f32, - EntityKind::ShulkerBullet => 0.3125f32, - EntityKind::ExperienceOrb => 0.5f32, - EntityKind::Vex => 0.4f32, - EntityKind::Chicken => 0.4f32, - EntityKind::ItemFrame => 0.5f32, - EntityKind::Salmon => 0.7f32, - EntityKind::Wither => 0.9f32, - EntityKind::Endermite => 0.4f32, - EntityKind::Villager => 0.6f32, - EntityKind::MagmaCube => 2.04f32, - EntityKind::Snowball => 0.25f32, - EntityKind::WanderingTrader => 0.6f32, - EntityKind::Arrow => 0.5f32, - EntityKind::Fox => 0.6f32, - EntityKind::Witch => 0.6f32, - EntityKind::Giant => 3.6f32, + EntityKind::Zoglin => 1.39648f32, EntityKind::Zombie => 0.6f32, + EntityKind::ZombieHorse => 1.39648f32, EntityKind::ZombieVillager => 0.6f32, - EntityKind::Llama => 0.9f32, - EntityKind::PiglinBrute => 0.6f32, - EntityKind::Silverfish => 0.4f32, - EntityKind::Cat => 0.6f32, + EntityKind::ZombifiedPiglin => 0.6f32, + EntityKind::Player => 0.6f32, + EntityKind::FishingBobber => 0.25f32, } } } @@ -615,119 +615,119 @@ impl EntityKind { #[inline] pub fn height(&self) -> f32 { match self { - EntityKind::Villager => 1.95f32, - EntityKind::EvokerFangs => 0.8f32, + EntityKind::AreaEffectCloud => 0.5f32, + EntityKind::ArmorStand => 1.975f32, EntityKind::Arrow => 0.5f32, - EntityKind::Shulker => 1f32, - EntityKind::Guardian => 0.85f32, - EntityKind::SpectralArrow => 0.5f32, - EntityKind::Wither => 3.5f32, - EntityKind::ZombieHorse => 1.6f32, - EntityKind::Parrot => 0.9f32, - EntityKind::Stray => 1.99f32, - EntityKind::Zoglin => 1.4f32, + EntityKind::Axolotl => 0.42f32, + EntityKind::Bat => 0.9f32, + EntityKind::Bee => 0.6f32, + EntityKind::Blaze => 1.8f32, + EntityKind::Boat => 0.5625f32, + EntityKind::Cat => 0.7f32, + EntityKind::CaveSpider => 0.5f32, + EntityKind::Chicken => 0.7f32, + EntityKind::Cod => 0.3f32, + EntityKind::Cow => 1.4f32, + EntityKind::Creeper => 1.7f32, + EntityKind::Dolphin => 0.6f32, + EntityKind::Donkey => 1.5f32, + EntityKind::DragonFireball => 1f32, + EntityKind::Drowned => 1.95f32, + EntityKind::ElderGuardian => 1.9975f32, + EntityKind::EndCrystal => 2f32, + EntityKind::EnderDragon => 8f32, + EntityKind::Enderman => 2.9f32, + EntityKind::Endermite => 0.3f32, + EntityKind::Evoker => 1.95f32, + EntityKind::EvokerFangs => 0.8f32, + EntityKind::ExperienceOrb => 0.5f32, + EntityKind::EyeOfEnder => 0.25f32, EntityKind::FallingBlock => 0.98f32, - EntityKind::Snowball => 0.25f32, - EntityKind::Mule => 1.6f32, - EntityKind::Spider => 0.9f32, - EntityKind::TraderLlama => 1.87f32, - EntityKind::Panda => 1.25f32, + EntityKind::FireworkRocket => 0.25f32, + EntityKind::Fox => 0.7f32, + EntityKind::Ghast => 4f32, EntityKind::Giant => 12f32, + EntityKind::GlowItemFrame => 0.5f32, + EntityKind::GlowSquid => 0.8f32, + EntityKind::Goat => 1.3f32, + EntityKind::Guardian => 0.85f32, + EntityKind::Hoglin => 1.4f32, EntityKind::Horse => 1.6f32, + EntityKind::Husk => 1.95f32, + EntityKind::Illusioner => 1.95f32, + EntityKind::IronGolem => 2.7f32, + EntityKind::Item => 0.25f32, EntityKind::ItemFrame => 0.5f32, - EntityKind::SpawnerMinecart => 0.7f32, - EntityKind::Cod => 0.3f32, - EntityKind::GlowSquid => 0.8f32, + EntityKind::Fireball => 1f32, + EntityKind::LeashKnot => 0.5f32, + EntityKind::LightningBolt => 0f32, + EntityKind::Llama => 1.87f32, + EntityKind::LlamaSpit => 0.25f32, + EntityKind::MagmaCube => 2.04f32, + EntityKind::Marker => 0f32, + EntityKind::Minecart => 0.7f32, EntityKind::ChestMinecart => 0.7f32, - EntityKind::Slime => 2.04f32, + EntityKind::CommandBlockMinecart => 0.7f32, + EntityKind::FurnaceMinecart => 0.7f32, + EntityKind::HopperMinecart => 0.7f32, + EntityKind::SpawnerMinecart => 0.7f32, EntityKind::TntMinecart => 0.7f32, - EntityKind::Bee => 0.6f32, - EntityKind::Dolphin => 0.6f32, + EntityKind::Mule => 1.6f32, EntityKind::Mooshroom => 1.4f32, - EntityKind::Vex => 0.8f32, - EntityKind::Witch => 1.95f32, - EntityKind::ExperienceBottle => 0.25f32, - EntityKind::Rabbit => 0.5f32, - EntityKind::Player => 1.8f32, - EntityKind::WitherSkeleton => 2.4f32, - EntityKind::Endermite => 0.3f32, - EntityKind::Illusioner => 1.95f32, - EntityKind::Tnt => 0.98f32, - EntityKind::SmallFireball => 0.3125f32, - EntityKind::Cat => 0.7f32, - EntityKind::SkeletonHorse => 1.6f32, - EntityKind::LightningBolt => 0f32, - EntityKind::EnderPearl => 0.25f32, - EntityKind::SnowGolem => 1.9f32, + EntityKind::Ocelot => 0.7f32, + EntityKind::Painting => 0.5f32, + EntityKind::Panda => 1.25f32, + EntityKind::Parrot => 0.9f32, EntityKind::Phantom => 0.5f32, - EntityKind::EyeOfEnder => 0.25f32, - EntityKind::LlamaSpit => 0.25f32, - EntityKind::Squid => 0.8f32, + EntityKind::Pig => 0.9f32, EntityKind::Piglin => 1.95f32, - EntityKind::Ocelot => 0.7f32, - EntityKind::Fireball => 1f32, - EntityKind::CommandBlockMinecart => 0.7f32, - EntityKind::Item => 0.25f32, - EntityKind::EnderDragon => 8f32, - EntityKind::Enderman => 2.9f32, - EntityKind::Husk => 1.95f32, - EntityKind::Zombie => 1.95f32, - EntityKind::FireworkRocket => 0.25f32, - EntityKind::ZombifiedPiglin => 1.95f32, - EntityKind::ShulkerBullet => 0.3125f32, - EntityKind::CaveSpider => 0.5f32, + EntityKind::PiglinBrute => 1.95f32, + EntityKind::Pillager => 1.95f32, + EntityKind::PolarBear => 1.4f32, + EntityKind::Tnt => 0.98f32, + EntityKind::Pufferfish => 0.7f32, + EntityKind::Rabbit => 0.5f32, + EntityKind::Ravager => 2.2f32, + EntityKind::Salmon => 0.4f32, EntityKind::Sheep => 1.3f32, + EntityKind::Shulker => 1f32, + EntityKind::ShulkerBullet => 0.3125f32, + EntityKind::Silverfish => 0.3f32, EntityKind::Skeleton => 1.99f32, - EntityKind::HopperMinecart => 0.7f32, + EntityKind::SkeletonHorse => 1.6f32, + EntityKind::Slime => 2.04f32, + EntityKind::SmallFireball => 0.3125f32, + EntityKind::SnowGolem => 1.9f32, + EntityKind::Snowball => 0.25f32, + EntityKind::SpectralArrow => 0.5f32, + EntityKind::Spider => 0.9f32, + EntityKind::Squid => 0.8f32, + EntityKind::Stray => 1.99f32, + EntityKind::Strider => 1.7f32, EntityKind::Egg => 0.25f32, + EntityKind::EnderPearl => 0.25f32, + EntityKind::ExperienceBottle => 0.25f32, + EntityKind::Potion => 0.25f32, EntityKind::Trident => 0.5f32, - EntityKind::Goat => 1.3f32, - EntityKind::EndCrystal => 2f32, - EntityKind::Chicken => 0.7f32, - EntityKind::LeashKnot => 0.5f32, + EntityKind::TraderLlama => 1.87f32, + EntityKind::TropicalFish => 0.4f32, + EntityKind::Turtle => 0.4f32, + EntityKind::Vex => 0.8f32, + EntityKind::Villager => 1.95f32, EntityKind::Vindicator => 1.95f32, - EntityKind::Minecart => 0.7f32, - EntityKind::ZombieVillager => 1.95f32, - EntityKind::MagmaCube => 2.04f32, - EntityKind::Hoglin => 1.4f32, - EntityKind::DragonFireball => 1f32, - EntityKind::ElderGuardian => 1.9975f32, - EntityKind::Ravager => 2.2f32, - EntityKind::Silverfish => 0.3f32, - EntityKind::Cow => 1.4f32, - EntityKind::FurnaceMinecart => 0.7f32, EntityKind::WanderingTrader => 1.95f32, - EntityKind::Creeper => 1.7f32, - EntityKind::Pillager => 1.95f32, - EntityKind::Evoker => 1.95f32, + EntityKind::Witch => 1.95f32, + EntityKind::Wither => 3.5f32, + EntityKind::WitherSkeleton => 2.4f32, EntityKind::WitherSkull => 0.3125f32, - EntityKind::Pig => 0.9f32, - EntityKind::AreaEffectCloud => 0.5f32, - EntityKind::PolarBear => 1.4f32, - EntityKind::Axolotl => 0.42f32, - EntityKind::Boat => 0.5625f32, - EntityKind::Marker => 0f32, - EntityKind::Pufferfish => 0.7f32, - EntityKind::GlowItemFrame => 0.5f32, - EntityKind::Potion => 0.25f32, - EntityKind::Llama => 1.87f32, EntityKind::Wolf => 0.85f32, - EntityKind::IronGolem => 2.7f32, - EntityKind::Painting => 0.5f32, - EntityKind::Bat => 0.9f32, - EntityKind::Blaze => 1.8f32, - EntityKind::Turtle => 0.4f32, - EntityKind::Ghast => 4f32, - EntityKind::Fox => 0.7f32, - EntityKind::ArmorStand => 1.975f32, - EntityKind::Drowned => 1.95f32, - EntityKind::Salmon => 0.4f32, + EntityKind::Zoglin => 1.4f32, + EntityKind::Zombie => 1.95f32, + EntityKind::ZombieHorse => 1.6f32, + EntityKind::ZombieVillager => 1.95f32, + EntityKind::ZombifiedPiglin => 1.95f32, + EntityKind::Player => 1.8f32, EntityKind::FishingBobber => 0.25f32, - EntityKind::PiglinBrute => 1.95f32, - EntityKind::Donkey => 1.5f32, - EntityKind::Strider => 1.7f32, - EntityKind::ExperienceOrb => 0.5f32, - EntityKind::TropicalFish => 0.4f32, } } } @@ -736,238 +736,238 @@ impl EntityKind { #[inline] pub fn name(&self) -> &'static str { match self { - EntityKind::Turtle => "turtle", - EntityKind::Spider => "spider", - EntityKind::EndCrystal => "end_crystal", - EntityKind::WitherSkull => "wither_skull", - EntityKind::ItemFrame => "item_frame", - EntityKind::Ghast => "ghast", - EntityKind::Phantom => "phantom", - EntityKind::ExperienceOrb => "experience_orb", - EntityKind::Pillager => "pillager", - EntityKind::EyeOfEnder => "eye_of_ender", - EntityKind::Cow => "cow", + EntityKind::AreaEffectCloud => "area_effect_cloud", + EntityKind::ArmorStand => "armor_stand", + EntityKind::Arrow => "arrow", + EntityKind::Axolotl => "axolotl", + EntityKind::Bat => "bat", + EntityKind::Bee => "bee", + EntityKind::Blaze => "blaze", + EntityKind::Boat => "boat", + EntityKind::Cat => "cat", EntityKind::CaveSpider => "cave_spider", - EntityKind::Salmon => "salmon", - EntityKind::PolarBear => "polar_bear", - EntityKind::Panda => "panda", - EntityKind::Hoglin => "hoglin", - EntityKind::PiglinBrute => "piglin_brute", - EntityKind::Player => "player", - EntityKind::Evoker => "evoker", - EntityKind::Drowned => "drowned", - EntityKind::Cod => "cod", - EntityKind::GlowItemFrame => "glow_item_frame", - EntityKind::Illusioner => "illusioner", - EntityKind::Slime => "slime", EntityKind::Chicken => "chicken", + EntityKind::Cod => "cod", + EntityKind::Cow => "cow", + EntityKind::Creeper => "creeper", + EntityKind::Dolphin => "dolphin", EntityKind::Donkey => "donkey", - EntityKind::Snowball => "snowball", - EntityKind::ArmorStand => "armor_stand", - EntityKind::GlowSquid => "glow_squid", - EntityKind::Witch => "witch", - EntityKind::SnowGolem => "snow_golem", - EntityKind::Painting => "painting", - EntityKind::IronGolem => "iron_golem", - EntityKind::Rabbit => "rabbit", - EntityKind::Arrow => "arrow", - EntityKind::Husk => "husk", - EntityKind::Vindicator => "vindicator", - EntityKind::Zombie => "zombie", - EntityKind::Parrot => "parrot", - EntityKind::Squid => "squid", - EntityKind::Enderman => "enderman", - EntityKind::FurnaceMinecart => "furnace_minecart", - EntityKind::Ocelot => "ocelot", - EntityKind::SkeletonHorse => "skeleton_horse", - EntityKind::Sheep => "sheep", - EntityKind::TntMinecart => "tnt_minecart", - EntityKind::Axolotl => "axolotl", - EntityKind::Fox => "fox", - EntityKind::Bee => "bee", + EntityKind::DragonFireball => "dragon_fireball", + EntityKind::Drowned => "drowned", EntityKind::ElderGuardian => "elder_guardian", - EntityKind::TropicalFish => "tropical_fish", - EntityKind::Dolphin => "dolphin", - EntityKind::Wolf => "wolf", - EntityKind::Egg => "egg", - EntityKind::Vex => "vex", - EntityKind::Llama => "llama", - EntityKind::Minecart => "minecart", - EntityKind::Silverfish => "silverfish", - EntityKind::Tnt => "tnt", - EntityKind::ShulkerBullet => "shulker_bullet", - EntityKind::Boat => "boat", + EntityKind::EndCrystal => "end_crystal", + EntityKind::EnderDragon => "ender_dragon", + EntityKind::Enderman => "enderman", + EntityKind::Endermite => "endermite", + EntityKind::Evoker => "evoker", + EntityKind::EvokerFangs => "evoker_fangs", + EntityKind::ExperienceOrb => "experience_orb", + EntityKind::EyeOfEnder => "eye_of_ender", EntityKind::FallingBlock => "falling_block", + EntityKind::FireworkRocket => "firework_rocket", + EntityKind::Fox => "fox", + EntityKind::Ghast => "ghast", + EntityKind::Giant => "giant", + EntityKind::GlowItemFrame => "glow_item_frame", + EntityKind::GlowSquid => "glow_squid", + EntityKind::Goat => "goat", EntityKind::Guardian => "guardian", - EntityKind::Potion => "potion", - EntityKind::TraderLlama => "trader_llama", - EntityKind::ChestMinecart => "chest_minecart", + EntityKind::Hoglin => "hoglin", EntityKind::Horse => "horse", - EntityKind::Stray => "stray", - EntityKind::FireworkRocket => "firework_rocket", - EntityKind::SpectralArrow => "spectral_arrow", - EntityKind::EnderDragon => "ender_dragon", - EntityKind::LightningBolt => "lightning_bolt", + EntityKind::Husk => "husk", + EntityKind::Illusioner => "illusioner", + EntityKind::IronGolem => "iron_golem", + EntityKind::Item => "item", + EntityKind::ItemFrame => "item_frame", EntityKind::Fireball => "fireball", - EntityKind::Goat => "goat", - EntityKind::Mooshroom => "mooshroom", - EntityKind::ZombifiedPiglin => "zombified_piglin", + EntityKind::LeashKnot => "leash_knot", + EntityKind::LightningBolt => "lightning_bolt", + EntityKind::Llama => "llama", + EntityKind::LlamaSpit => "llama_spit", + EntityKind::MagmaCube => "magma_cube", EntityKind::Marker => "marker", - EntityKind::Pig => "pig", - EntityKind::ZombieVillager => "zombie_villager", - EntityKind::FishingBobber => "fishing_bobber", - EntityKind::Zoglin => "zoglin", - EntityKind::Endermite => "endermite", - EntityKind::Piglin => "piglin", - EntityKind::SmallFireball => "small_fireball", - EntityKind::ZombieHorse => "zombie_horse", - EntityKind::Skeleton => "skeleton", - EntityKind::WanderingTrader => "wandering_trader", + EntityKind::Minecart => "minecart", + EntityKind::ChestMinecart => "chest_minecart", EntityKind::CommandBlockMinecart => "command_block_minecart", - EntityKind::Wither => "wither", - EntityKind::MagmaCube => "magma_cube", - EntityKind::Cat => "cat", - EntityKind::Item => "item", - EntityKind::AreaEffectCloud => "area_effect_cloud", - EntityKind::WitherSkeleton => "wither_skeleton", - EntityKind::Mule => "mule", + EntityKind::FurnaceMinecart => "furnace_minecart", + EntityKind::HopperMinecart => "hopper_minecart", EntityKind::SpawnerMinecart => "spawner_minecart", - EntityKind::Giant => "giant", - EntityKind::LeashKnot => "leash_knot", + EntityKind::TntMinecart => "tnt_minecart", + EntityKind::Mule => "mule", + EntityKind::Mooshroom => "mooshroom", + EntityKind::Ocelot => "ocelot", + EntityKind::Painting => "painting", + EntityKind::Panda => "panda", + EntityKind::Parrot => "parrot", + EntityKind::Phantom => "phantom", + EntityKind::Pig => "pig", + EntityKind::Piglin => "piglin", + EntityKind::PiglinBrute => "piglin_brute", + EntityKind::Pillager => "pillager", + EntityKind::PolarBear => "polar_bear", + EntityKind::Tnt => "tnt", + EntityKind::Pufferfish => "pufferfish", + EntityKind::Rabbit => "rabbit", EntityKind::Ravager => "ravager", - EntityKind::LlamaSpit => "llama_spit", - EntityKind::EnderPearl => "ender_pearl", - EntityKind::Strider => "strider", + EntityKind::Salmon => "salmon", + EntityKind::Sheep => "sheep", EntityKind::Shulker => "shulker", - EntityKind::Villager => "villager", - EntityKind::HopperMinecart => "hopper_minecart", - EntityKind::Bat => "bat", - EntityKind::Blaze => "blaze", - EntityKind::Pufferfish => "pufferfish", + EntityKind::ShulkerBullet => "shulker_bullet", + EntityKind::Silverfish => "silverfish", + EntityKind::Skeleton => "skeleton", + EntityKind::SkeletonHorse => "skeleton_horse", + EntityKind::Slime => "slime", + EntityKind::SmallFireball => "small_fireball", + EntityKind::SnowGolem => "snow_golem", + EntityKind::Snowball => "snowball", + EntityKind::SpectralArrow => "spectral_arrow", + EntityKind::Spider => "spider", + EntityKind::Squid => "squid", + EntityKind::Stray => "stray", + EntityKind::Strider => "strider", + EntityKind::Egg => "egg", + EntityKind::EnderPearl => "ender_pearl", EntityKind::ExperienceBottle => "experience_bottle", - EntityKind::Creeper => "creeper", + EntityKind::Potion => "potion", EntityKind::Trident => "trident", - EntityKind::DragonFireball => "dragon_fireball", - EntityKind::EvokerFangs => "evoker_fangs", + EntityKind::TraderLlama => "trader_llama", + EntityKind::TropicalFish => "tropical_fish", + EntityKind::Turtle => "turtle", + EntityKind::Vex => "vex", + EntityKind::Villager => "villager", + EntityKind::Vindicator => "vindicator", + EntityKind::WanderingTrader => "wandering_trader", + EntityKind::Witch => "witch", + EntityKind::Wither => "wither", + EntityKind::WitherSkeleton => "wither_skeleton", + EntityKind::WitherSkull => "wither_skull", + EntityKind::Wolf => "wolf", + EntityKind::Zoglin => "zoglin", + EntityKind::Zombie => "zombie", + EntityKind::ZombieHorse => "zombie_horse", + EntityKind::ZombieVillager => "zombie_villager", + EntityKind::ZombifiedPiglin => "zombified_piglin", + EntityKind::Player => "player", + EntityKind::FishingBobber => "fishing_bobber", } } #[doc = "Gets a `EntityKind` by its `name`."] #[inline] pub fn from_name(name: &str) -> Option { match name { - "turtle" => Some(EntityKind::Turtle), - "spider" => Some(EntityKind::Spider), - "end_crystal" => Some(EntityKind::EndCrystal), - "wither_skull" => Some(EntityKind::WitherSkull), - "item_frame" => Some(EntityKind::ItemFrame), - "ghast" => Some(EntityKind::Ghast), - "phantom" => Some(EntityKind::Phantom), - "experience_orb" => Some(EntityKind::ExperienceOrb), - "pillager" => Some(EntityKind::Pillager), - "eye_of_ender" => Some(EntityKind::EyeOfEnder), - "cow" => Some(EntityKind::Cow), - "cave_spider" => Some(EntityKind::CaveSpider), - "salmon" => Some(EntityKind::Salmon), - "polar_bear" => Some(EntityKind::PolarBear), - "panda" => Some(EntityKind::Panda), - "hoglin" => Some(EntityKind::Hoglin), - "piglin_brute" => Some(EntityKind::PiglinBrute), - "player" => Some(EntityKind::Player), - "evoker" => Some(EntityKind::Evoker), - "drowned" => Some(EntityKind::Drowned), - "cod" => Some(EntityKind::Cod), - "glow_item_frame" => Some(EntityKind::GlowItemFrame), - "illusioner" => Some(EntityKind::Illusioner), - "slime" => Some(EntityKind::Slime), - "chicken" => Some(EntityKind::Chicken), - "donkey" => Some(EntityKind::Donkey), - "snowball" => Some(EntityKind::Snowball), + "area_effect_cloud" => Some(EntityKind::AreaEffectCloud), "armor_stand" => Some(EntityKind::ArmorStand), - "glow_squid" => Some(EntityKind::GlowSquid), - "witch" => Some(EntityKind::Witch), - "snow_golem" => Some(EntityKind::SnowGolem), - "painting" => Some(EntityKind::Painting), - "iron_golem" => Some(EntityKind::IronGolem), - "rabbit" => Some(EntityKind::Rabbit), "arrow" => Some(EntityKind::Arrow), - "husk" => Some(EntityKind::Husk), - "vindicator" => Some(EntityKind::Vindicator), - "zombie" => Some(EntityKind::Zombie), - "parrot" => Some(EntityKind::Parrot), - "squid" => Some(EntityKind::Squid), - "enderman" => Some(EntityKind::Enderman), - "furnace_minecart" => Some(EntityKind::FurnaceMinecart), - "ocelot" => Some(EntityKind::Ocelot), - "skeleton_horse" => Some(EntityKind::SkeletonHorse), - "sheep" => Some(EntityKind::Sheep), - "tnt_minecart" => Some(EntityKind::TntMinecart), "axolotl" => Some(EntityKind::Axolotl), - "fox" => Some(EntityKind::Fox), + "bat" => Some(EntityKind::Bat), "bee" => Some(EntityKind::Bee), - "elder_guardian" => Some(EntityKind::ElderGuardian), - "tropical_fish" => Some(EntityKind::TropicalFish), - "dolphin" => Some(EntityKind::Dolphin), - "wolf" => Some(EntityKind::Wolf), - "egg" => Some(EntityKind::Egg), - "vex" => Some(EntityKind::Vex), - "llama" => Some(EntityKind::Llama), - "minecart" => Some(EntityKind::Minecart), - "silverfish" => Some(EntityKind::Silverfish), - "tnt" => Some(EntityKind::Tnt), - "shulker_bullet" => Some(EntityKind::ShulkerBullet), + "blaze" => Some(EntityKind::Blaze), "boat" => Some(EntityKind::Boat), + "cat" => Some(EntityKind::Cat), + "cave_spider" => Some(EntityKind::CaveSpider), + "chicken" => Some(EntityKind::Chicken), + "cod" => Some(EntityKind::Cod), + "cow" => Some(EntityKind::Cow), + "creeper" => Some(EntityKind::Creeper), + "dolphin" => Some(EntityKind::Dolphin), + "donkey" => Some(EntityKind::Donkey), + "dragon_fireball" => Some(EntityKind::DragonFireball), + "drowned" => Some(EntityKind::Drowned), + "elder_guardian" => Some(EntityKind::ElderGuardian), + "end_crystal" => Some(EntityKind::EndCrystal), + "ender_dragon" => Some(EntityKind::EnderDragon), + "enderman" => Some(EntityKind::Enderman), + "endermite" => Some(EntityKind::Endermite), + "evoker" => Some(EntityKind::Evoker), + "evoker_fangs" => Some(EntityKind::EvokerFangs), + "experience_orb" => Some(EntityKind::ExperienceOrb), + "eye_of_ender" => Some(EntityKind::EyeOfEnder), "falling_block" => Some(EntityKind::FallingBlock), + "firework_rocket" => Some(EntityKind::FireworkRocket), + "fox" => Some(EntityKind::Fox), + "ghast" => Some(EntityKind::Ghast), + "giant" => Some(EntityKind::Giant), + "glow_item_frame" => Some(EntityKind::GlowItemFrame), + "glow_squid" => Some(EntityKind::GlowSquid), + "goat" => Some(EntityKind::Goat), "guardian" => Some(EntityKind::Guardian), - "potion" => Some(EntityKind::Potion), - "trader_llama" => Some(EntityKind::TraderLlama), - "chest_minecart" => Some(EntityKind::ChestMinecart), + "hoglin" => Some(EntityKind::Hoglin), "horse" => Some(EntityKind::Horse), - "stray" => Some(EntityKind::Stray), - "firework_rocket" => Some(EntityKind::FireworkRocket), - "spectral_arrow" => Some(EntityKind::SpectralArrow), - "ender_dragon" => Some(EntityKind::EnderDragon), - "lightning_bolt" => Some(EntityKind::LightningBolt), + "husk" => Some(EntityKind::Husk), + "illusioner" => Some(EntityKind::Illusioner), + "iron_golem" => Some(EntityKind::IronGolem), + "item" => Some(EntityKind::Item), + "item_frame" => Some(EntityKind::ItemFrame), "fireball" => Some(EntityKind::Fireball), - "goat" => Some(EntityKind::Goat), - "mooshroom" => Some(EntityKind::Mooshroom), - "zombified_piglin" => Some(EntityKind::ZombifiedPiglin), + "leash_knot" => Some(EntityKind::LeashKnot), + "lightning_bolt" => Some(EntityKind::LightningBolt), + "llama" => Some(EntityKind::Llama), + "llama_spit" => Some(EntityKind::LlamaSpit), + "magma_cube" => Some(EntityKind::MagmaCube), "marker" => Some(EntityKind::Marker), - "pig" => Some(EntityKind::Pig), - "zombie_villager" => Some(EntityKind::ZombieVillager), - "fishing_bobber" => Some(EntityKind::FishingBobber), - "zoglin" => Some(EntityKind::Zoglin), - "endermite" => Some(EntityKind::Endermite), - "piglin" => Some(EntityKind::Piglin), - "small_fireball" => Some(EntityKind::SmallFireball), - "zombie_horse" => Some(EntityKind::ZombieHorse), - "skeleton" => Some(EntityKind::Skeleton), - "wandering_trader" => Some(EntityKind::WanderingTrader), + "minecart" => Some(EntityKind::Minecart), + "chest_minecart" => Some(EntityKind::ChestMinecart), "command_block_minecart" => Some(EntityKind::CommandBlockMinecart), - "wither" => Some(EntityKind::Wither), - "magma_cube" => Some(EntityKind::MagmaCube), - "cat" => Some(EntityKind::Cat), - "item" => Some(EntityKind::Item), - "area_effect_cloud" => Some(EntityKind::AreaEffectCloud), - "wither_skeleton" => Some(EntityKind::WitherSkeleton), - "mule" => Some(EntityKind::Mule), + "furnace_minecart" => Some(EntityKind::FurnaceMinecart), + "hopper_minecart" => Some(EntityKind::HopperMinecart), "spawner_minecart" => Some(EntityKind::SpawnerMinecart), - "giant" => Some(EntityKind::Giant), - "leash_knot" => Some(EntityKind::LeashKnot), + "tnt_minecart" => Some(EntityKind::TntMinecart), + "mule" => Some(EntityKind::Mule), + "mooshroom" => Some(EntityKind::Mooshroom), + "ocelot" => Some(EntityKind::Ocelot), + "painting" => Some(EntityKind::Painting), + "panda" => Some(EntityKind::Panda), + "parrot" => Some(EntityKind::Parrot), + "phantom" => Some(EntityKind::Phantom), + "pig" => Some(EntityKind::Pig), + "piglin" => Some(EntityKind::Piglin), + "piglin_brute" => Some(EntityKind::PiglinBrute), + "pillager" => Some(EntityKind::Pillager), + "polar_bear" => Some(EntityKind::PolarBear), + "tnt" => Some(EntityKind::Tnt), + "pufferfish" => Some(EntityKind::Pufferfish), + "rabbit" => Some(EntityKind::Rabbit), "ravager" => Some(EntityKind::Ravager), - "llama_spit" => Some(EntityKind::LlamaSpit), - "ender_pearl" => Some(EntityKind::EnderPearl), - "strider" => Some(EntityKind::Strider), + "salmon" => Some(EntityKind::Salmon), + "sheep" => Some(EntityKind::Sheep), "shulker" => Some(EntityKind::Shulker), - "villager" => Some(EntityKind::Villager), - "hopper_minecart" => Some(EntityKind::HopperMinecart), - "bat" => Some(EntityKind::Bat), - "blaze" => Some(EntityKind::Blaze), - "pufferfish" => Some(EntityKind::Pufferfish), + "shulker_bullet" => Some(EntityKind::ShulkerBullet), + "silverfish" => Some(EntityKind::Silverfish), + "skeleton" => Some(EntityKind::Skeleton), + "skeleton_horse" => Some(EntityKind::SkeletonHorse), + "slime" => Some(EntityKind::Slime), + "small_fireball" => Some(EntityKind::SmallFireball), + "snow_golem" => Some(EntityKind::SnowGolem), + "snowball" => Some(EntityKind::Snowball), + "spectral_arrow" => Some(EntityKind::SpectralArrow), + "spider" => Some(EntityKind::Spider), + "squid" => Some(EntityKind::Squid), + "stray" => Some(EntityKind::Stray), + "strider" => Some(EntityKind::Strider), + "egg" => Some(EntityKind::Egg), + "ender_pearl" => Some(EntityKind::EnderPearl), "experience_bottle" => Some(EntityKind::ExperienceBottle), - "creeper" => Some(EntityKind::Creeper), + "potion" => Some(EntityKind::Potion), "trident" => Some(EntityKind::Trident), - "dragon_fireball" => Some(EntityKind::DragonFireball), - "evoker_fangs" => Some(EntityKind::EvokerFangs), + "trader_llama" => Some(EntityKind::TraderLlama), + "tropical_fish" => Some(EntityKind::TropicalFish), + "turtle" => Some(EntityKind::Turtle), + "vex" => Some(EntityKind::Vex), + "villager" => Some(EntityKind::Villager), + "vindicator" => Some(EntityKind::Vindicator), + "wandering_trader" => Some(EntityKind::WanderingTrader), + "witch" => Some(EntityKind::Witch), + "wither" => Some(EntityKind::Wither), + "wither_skeleton" => Some(EntityKind::WitherSkeleton), + "wither_skull" => Some(EntityKind::WitherSkull), + "wolf" => Some(EntityKind::Wolf), + "zoglin" => Some(EntityKind::Zoglin), + "zombie" => Some(EntityKind::Zombie), + "zombie_horse" => Some(EntityKind::ZombieHorse), + "zombie_villager" => Some(EntityKind::ZombieVillager), + "zombified_piglin" => Some(EntityKind::ZombifiedPiglin), + "player" => Some(EntityKind::Player), + "fishing_bobber" => Some(EntityKind::FishingBobber), _ => None, } } @@ -977,238 +977,238 @@ impl EntityKind { #[inline] pub fn namespaced_id(&self) -> &'static str { match self { - EntityKind::Boat => "minecraft:boat", - EntityKind::FurnaceMinecart => "minecraft:furnace_minecart", - EntityKind::FishingBobber => "minecraft:fishing_bobber", + EntityKind::AreaEffectCloud => "minecraft:area_effect_cloud", + EntityKind::ArmorStand => "minecraft:armor_stand", + EntityKind::Arrow => "minecraft:arrow", + EntityKind::Axolotl => "minecraft:axolotl", EntityKind::Bat => "minecraft:bat", - EntityKind::Pig => "minecraft:pig", - EntityKind::Rabbit => "minecraft:rabbit", - EntityKind::DragonFireball => "minecraft:dragon_fireball", - EntityKind::Marker => "minecraft:marker", - EntityKind::Horse => "minecraft:horse", - EntityKind::SnowGolem => "minecraft:snow_golem", - EntityKind::GlowItemFrame => "minecraft:glow_item_frame", - EntityKind::Evoker => "minecraft:evoker", EntityKind::Bee => "minecraft:bee", + EntityKind::Blaze => "minecraft:blaze", + EntityKind::Boat => "minecraft:boat", + EntityKind::Cat => "minecraft:cat", + EntityKind::CaveSpider => "minecraft:cave_spider", + EntityKind::Chicken => "minecraft:chicken", + EntityKind::Cod => "minecraft:cod", + EntityKind::Cow => "minecraft:cow", + EntityKind::Creeper => "minecraft:creeper", + EntityKind::Dolphin => "minecraft:dolphin", + EntityKind::Donkey => "minecraft:donkey", + EntityKind::DragonFireball => "minecraft:dragon_fireball", EntityKind::Drowned => "minecraft:drowned", - EntityKind::SmallFireball => "minecraft:small_fireball", - EntityKind::Slime => "minecraft:slime", - EntityKind::Skeleton => "minecraft:skeleton", - EntityKind::ExperienceBottle => "minecraft:experience_bottle", - EntityKind::HopperMinecart => "minecraft:hopper_minecart", - EntityKind::Tnt => "minecraft:tnt", - EntityKind::TraderLlama => "minecraft:trader_llama", - EntityKind::ZombieHorse => "minecraft:zombie_horse", - EntityKind::TropicalFish => "minecraft:tropical_fish", - EntityKind::Arrow => "minecraft:arrow", - EntityKind::Potion => "minecraft:potion", - EntityKind::ZombieVillager => "minecraft:zombie_villager", + EntityKind::ElderGuardian => "minecraft:elder_guardian", + EntityKind::EndCrystal => "minecraft:end_crystal", + EntityKind::EnderDragon => "minecraft:ender_dragon", + EntityKind::Enderman => "minecraft:enderman", EntityKind::Endermite => "minecraft:endermite", - EntityKind::CommandBlockMinecart => "minecraft:command_block_minecart", + EntityKind::Evoker => "minecraft:evoker", + EntityKind::EvokerFangs => "minecraft:evoker_fangs", EntityKind::ExperienceOrb => "minecraft:experience_orb", - EntityKind::Pufferfish => "minecraft:pufferfish", - EntityKind::ShulkerBullet => "minecraft:shulker_bullet", - EntityKind::Strider => "minecraft:strider", - EntityKind::WitherSkeleton => "minecraft:wither_skeleton", + EntityKind::EyeOfEnder => "minecraft:eye_of_ender", + EntityKind::FallingBlock => "minecraft:falling_block", + EntityKind::FireworkRocket => "minecraft:firework_rocket", + EntityKind::Fox => "minecraft:fox", + EntityKind::Ghast => "minecraft:ghast", + EntityKind::Giant => "minecraft:giant", + EntityKind::GlowItemFrame => "minecraft:glow_item_frame", + EntityKind::GlowSquid => "minecraft:glow_squid", + EntityKind::Goat => "minecraft:goat", + EntityKind::Guardian => "minecraft:guardian", + EntityKind::Hoglin => "minecraft:hoglin", + EntityKind::Horse => "minecraft:horse", EntityKind::Husk => "minecraft:husk", - EntityKind::Panda => "minecraft:panda", - EntityKind::Cod => "minecraft:cod", - EntityKind::Donkey => "minecraft:donkey", EntityKind::Illusioner => "minecraft:illusioner", - EntityKind::Chicken => "minecraft:chicken", - EntityKind::EvokerFangs => "minecraft:evoker_fangs", EntityKind::IronGolem => "minecraft:iron_golem", - EntityKind::Squid => "minecraft:squid", - EntityKind::Mule => "minecraft:mule", - EntityKind::ZombifiedPiglin => "minecraft:zombified_piglin", - EntityKind::Player => "minecraft:player", - EntityKind::Snowball => "minecraft:snowball", - EntityKind::EndCrystal => "minecraft:end_crystal", + EntityKind::Item => "minecraft:item", + EntityKind::ItemFrame => "minecraft:item_frame", EntityKind::Fireball => "minecraft:fireball", - EntityKind::Zoglin => "minecraft:zoglin", - EntityKind::Creeper => "minecraft:creeper", - EntityKind::EnderPearl => "minecraft:ender_pearl", - EntityKind::MagmaCube => "minecraft:magma_cube", - EntityKind::Fox => "minecraft:fox", - EntityKind::Vex => "minecraft:vex", - EntityKind::Zombie => "minecraft:zombie", - EntityKind::Painting => "minecraft:painting", - EntityKind::Spider => "minecraft:spider", - EntityKind::Phantom => "minecraft:phantom", - EntityKind::Cat => "minecraft:cat", - EntityKind::FallingBlock => "minecraft:falling_block", - EntityKind::CaveSpider => "minecraft:cave_spider", - EntityKind::Wolf => "minecraft:wolf", EntityKind::LeashKnot => "minecraft:leash_knot", - EntityKind::Ocelot => "minecraft:ocelot", - EntityKind::AreaEffectCloud => "minecraft:area_effect_cloud", - EntityKind::PolarBear => "minecraft:polar_bear", - EntityKind::GlowSquid => "minecraft:glow_squid", - EntityKind::ArmorStand => "minecraft:armor_stand", - EntityKind::EyeOfEnder => "minecraft:eye_of_ender", - EntityKind::Axolotl => "minecraft:axolotl", + EntityKind::LightningBolt => "minecraft:lightning_bolt", + EntityKind::Llama => "minecraft:llama", + EntityKind::LlamaSpit => "minecraft:llama_spit", + EntityKind::MagmaCube => "minecraft:magma_cube", + EntityKind::Marker => "minecraft:marker", + EntityKind::Minecart => "minecraft:minecart", + EntityKind::ChestMinecart => "minecraft:chest_minecart", + EntityKind::CommandBlockMinecart => "minecraft:command_block_minecart", + EntityKind::FurnaceMinecart => "minecraft:furnace_minecart", + EntityKind::HopperMinecart => "minecraft:hopper_minecart", EntityKind::SpawnerMinecart => "minecraft:spawner_minecart", EntityKind::TntMinecart => "minecraft:tnt_minecart", - EntityKind::Ravager => "minecraft:ravager", - EntityKind::Dolphin => "minecraft:dolphin", + EntityKind::Mule => "minecraft:mule", + EntityKind::Mooshroom => "minecraft:mooshroom", + EntityKind::Ocelot => "minecraft:ocelot", + EntityKind::Painting => "minecraft:painting", + EntityKind::Panda => "minecraft:panda", + EntityKind::Parrot => "minecraft:parrot", + EntityKind::Phantom => "minecraft:phantom", + EntityKind::Pig => "minecraft:pig", EntityKind::Piglin => "minecraft:piglin", - EntityKind::Stray => "minecraft:stray", EntityKind::PiglinBrute => "minecraft:piglin_brute", - EntityKind::Ghast => "minecraft:ghast", - EntityKind::Wither => "minecraft:wither", - EntityKind::SpectralArrow => "minecraft:spectral_arrow", - EntityKind::Silverfish => "minecraft:silverfish", - EntityKind::FireworkRocket => "minecraft:firework_rocket", - EntityKind::Turtle => "minecraft:turtle", - EntityKind::Cow => "minecraft:cow", EntityKind::Pillager => "minecraft:pillager", - EntityKind::Llama => "minecraft:llama", - EntityKind::Mooshroom => "minecraft:mooshroom", - EntityKind::SkeletonHorse => "minecraft:skeleton_horse", - EntityKind::WanderingTrader => "minecraft:wandering_trader", - EntityKind::ElderGuardian => "minecraft:elder_guardian", - EntityKind::Villager => "minecraft:villager", - EntityKind::WitherSkull => "minecraft:wither_skull", - EntityKind::Blaze => "minecraft:blaze", - EntityKind::Goat => "minecraft:goat", - EntityKind::ChestMinecart => "minecraft:chest_minecart", + EntityKind::PolarBear => "minecraft:polar_bear", + EntityKind::Tnt => "minecraft:tnt", + EntityKind::Pufferfish => "minecraft:pufferfish", + EntityKind::Rabbit => "minecraft:rabbit", + EntityKind::Ravager => "minecraft:ravager", + EntityKind::Salmon => "minecraft:salmon", EntityKind::Sheep => "minecraft:sheep", - EntityKind::Enderman => "minecraft:enderman", + EntityKind::Shulker => "minecraft:shulker", + EntityKind::ShulkerBullet => "minecraft:shulker_bullet", + EntityKind::Silverfish => "minecraft:silverfish", + EntityKind::Skeleton => "minecraft:skeleton", + EntityKind::SkeletonHorse => "minecraft:skeleton_horse", + EntityKind::Slime => "minecraft:slime", + EntityKind::SmallFireball => "minecraft:small_fireball", + EntityKind::SnowGolem => "minecraft:snow_golem", + EntityKind::Snowball => "minecraft:snowball", + EntityKind::SpectralArrow => "minecraft:spectral_arrow", + EntityKind::Spider => "minecraft:spider", + EntityKind::Squid => "minecraft:squid", + EntityKind::Stray => "minecraft:stray", + EntityKind::Strider => "minecraft:strider", EntityKind::Egg => "minecraft:egg", - EntityKind::LlamaSpit => "minecraft:llama_spit", - EntityKind::Minecart => "minecraft:minecart", + EntityKind::EnderPearl => "minecraft:ender_pearl", + EntityKind::ExperienceBottle => "minecraft:experience_bottle", + EntityKind::Potion => "minecraft:potion", EntityKind::Trident => "minecraft:trident", - EntityKind::Parrot => "minecraft:parrot", - EntityKind::Shulker => "minecraft:shulker", + EntityKind::TraderLlama => "minecraft:trader_llama", + EntityKind::TropicalFish => "minecraft:tropical_fish", + EntityKind::Turtle => "minecraft:turtle", + EntityKind::Vex => "minecraft:vex", + EntityKind::Villager => "minecraft:villager", EntityKind::Vindicator => "minecraft:vindicator", - EntityKind::ItemFrame => "minecraft:item_frame", - EntityKind::LightningBolt => "minecraft:lightning_bolt", - EntityKind::Giant => "minecraft:giant", - EntityKind::EnderDragon => "minecraft:ender_dragon", - EntityKind::Hoglin => "minecraft:hoglin", - EntityKind::Salmon => "minecraft:salmon", + EntityKind::WanderingTrader => "minecraft:wandering_trader", EntityKind::Witch => "minecraft:witch", - EntityKind::Item => "minecraft:item", - EntityKind::Guardian => "minecraft:guardian", + EntityKind::Wither => "minecraft:wither", + EntityKind::WitherSkeleton => "minecraft:wither_skeleton", + EntityKind::WitherSkull => "minecraft:wither_skull", + EntityKind::Wolf => "minecraft:wolf", + EntityKind::Zoglin => "minecraft:zoglin", + EntityKind::Zombie => "minecraft:zombie", + EntityKind::ZombieHorse => "minecraft:zombie_horse", + EntityKind::ZombieVillager => "minecraft:zombie_villager", + EntityKind::ZombifiedPiglin => "minecraft:zombified_piglin", + EntityKind::Player => "minecraft:player", + EntityKind::FishingBobber => "minecraft:fishing_bobber", } } #[doc = "Gets a `EntityKind` by its `namespaced_id`."] #[inline] pub fn from_namespaced_id(namespaced_id: &str) -> Option { match namespaced_id { - "minecraft:boat" => Some(EntityKind::Boat), - "minecraft:furnace_minecart" => Some(EntityKind::FurnaceMinecart), - "minecraft:fishing_bobber" => Some(EntityKind::FishingBobber), + "minecraft:area_effect_cloud" => Some(EntityKind::AreaEffectCloud), + "minecraft:armor_stand" => Some(EntityKind::ArmorStand), + "minecraft:arrow" => Some(EntityKind::Arrow), + "minecraft:axolotl" => Some(EntityKind::Axolotl), "minecraft:bat" => Some(EntityKind::Bat), - "minecraft:pig" => Some(EntityKind::Pig), - "minecraft:rabbit" => Some(EntityKind::Rabbit), - "minecraft:dragon_fireball" => Some(EntityKind::DragonFireball), - "minecraft:marker" => Some(EntityKind::Marker), - "minecraft:horse" => Some(EntityKind::Horse), - "minecraft:snow_golem" => Some(EntityKind::SnowGolem), - "minecraft:glow_item_frame" => Some(EntityKind::GlowItemFrame), - "minecraft:evoker" => Some(EntityKind::Evoker), "minecraft:bee" => Some(EntityKind::Bee), + "minecraft:blaze" => Some(EntityKind::Blaze), + "minecraft:boat" => Some(EntityKind::Boat), + "minecraft:cat" => Some(EntityKind::Cat), + "minecraft:cave_spider" => Some(EntityKind::CaveSpider), + "minecraft:chicken" => Some(EntityKind::Chicken), + "minecraft:cod" => Some(EntityKind::Cod), + "minecraft:cow" => Some(EntityKind::Cow), + "minecraft:creeper" => Some(EntityKind::Creeper), + "minecraft:dolphin" => Some(EntityKind::Dolphin), + "minecraft:donkey" => Some(EntityKind::Donkey), + "minecraft:dragon_fireball" => Some(EntityKind::DragonFireball), "minecraft:drowned" => Some(EntityKind::Drowned), - "minecraft:small_fireball" => Some(EntityKind::SmallFireball), - "minecraft:slime" => Some(EntityKind::Slime), - "minecraft:skeleton" => Some(EntityKind::Skeleton), - "minecraft:experience_bottle" => Some(EntityKind::ExperienceBottle), - "minecraft:hopper_minecart" => Some(EntityKind::HopperMinecart), - "minecraft:tnt" => Some(EntityKind::Tnt), - "minecraft:trader_llama" => Some(EntityKind::TraderLlama), - "minecraft:zombie_horse" => Some(EntityKind::ZombieHorse), - "minecraft:tropical_fish" => Some(EntityKind::TropicalFish), - "minecraft:arrow" => Some(EntityKind::Arrow), - "minecraft:potion" => Some(EntityKind::Potion), - "minecraft:zombie_villager" => Some(EntityKind::ZombieVillager), + "minecraft:elder_guardian" => Some(EntityKind::ElderGuardian), + "minecraft:end_crystal" => Some(EntityKind::EndCrystal), + "minecraft:ender_dragon" => Some(EntityKind::EnderDragon), + "minecraft:enderman" => Some(EntityKind::Enderman), "minecraft:endermite" => Some(EntityKind::Endermite), - "minecraft:command_block_minecart" => Some(EntityKind::CommandBlockMinecart), + "minecraft:evoker" => Some(EntityKind::Evoker), + "minecraft:evoker_fangs" => Some(EntityKind::EvokerFangs), "minecraft:experience_orb" => Some(EntityKind::ExperienceOrb), - "minecraft:pufferfish" => Some(EntityKind::Pufferfish), - "minecraft:shulker_bullet" => Some(EntityKind::ShulkerBullet), - "minecraft:strider" => Some(EntityKind::Strider), - "minecraft:wither_skeleton" => Some(EntityKind::WitherSkeleton), + "minecraft:eye_of_ender" => Some(EntityKind::EyeOfEnder), + "minecraft:falling_block" => Some(EntityKind::FallingBlock), + "minecraft:firework_rocket" => Some(EntityKind::FireworkRocket), + "minecraft:fox" => Some(EntityKind::Fox), + "minecraft:ghast" => Some(EntityKind::Ghast), + "minecraft:giant" => Some(EntityKind::Giant), + "minecraft:glow_item_frame" => Some(EntityKind::GlowItemFrame), + "minecraft:glow_squid" => Some(EntityKind::GlowSquid), + "minecraft:goat" => Some(EntityKind::Goat), + "minecraft:guardian" => Some(EntityKind::Guardian), + "minecraft:hoglin" => Some(EntityKind::Hoglin), + "minecraft:horse" => Some(EntityKind::Horse), "minecraft:husk" => Some(EntityKind::Husk), - "minecraft:panda" => Some(EntityKind::Panda), - "minecraft:cod" => Some(EntityKind::Cod), - "minecraft:donkey" => Some(EntityKind::Donkey), "minecraft:illusioner" => Some(EntityKind::Illusioner), - "minecraft:chicken" => Some(EntityKind::Chicken), - "minecraft:evoker_fangs" => Some(EntityKind::EvokerFangs), "minecraft:iron_golem" => Some(EntityKind::IronGolem), - "minecraft:squid" => Some(EntityKind::Squid), - "minecraft:mule" => Some(EntityKind::Mule), - "minecraft:zombified_piglin" => Some(EntityKind::ZombifiedPiglin), - "minecraft:player" => Some(EntityKind::Player), - "minecraft:snowball" => Some(EntityKind::Snowball), - "minecraft:end_crystal" => Some(EntityKind::EndCrystal), + "minecraft:item" => Some(EntityKind::Item), + "minecraft:item_frame" => Some(EntityKind::ItemFrame), "minecraft:fireball" => Some(EntityKind::Fireball), - "minecraft:zoglin" => Some(EntityKind::Zoglin), - "minecraft:creeper" => Some(EntityKind::Creeper), - "minecraft:ender_pearl" => Some(EntityKind::EnderPearl), - "minecraft:magma_cube" => Some(EntityKind::MagmaCube), - "minecraft:fox" => Some(EntityKind::Fox), - "minecraft:vex" => Some(EntityKind::Vex), - "minecraft:zombie" => Some(EntityKind::Zombie), - "minecraft:painting" => Some(EntityKind::Painting), - "minecraft:spider" => Some(EntityKind::Spider), - "minecraft:phantom" => Some(EntityKind::Phantom), - "minecraft:cat" => Some(EntityKind::Cat), - "minecraft:falling_block" => Some(EntityKind::FallingBlock), - "minecraft:cave_spider" => Some(EntityKind::CaveSpider), - "minecraft:wolf" => Some(EntityKind::Wolf), "minecraft:leash_knot" => Some(EntityKind::LeashKnot), - "minecraft:ocelot" => Some(EntityKind::Ocelot), - "minecraft:area_effect_cloud" => Some(EntityKind::AreaEffectCloud), - "minecraft:polar_bear" => Some(EntityKind::PolarBear), - "minecraft:glow_squid" => Some(EntityKind::GlowSquid), - "minecraft:armor_stand" => Some(EntityKind::ArmorStand), - "minecraft:eye_of_ender" => Some(EntityKind::EyeOfEnder), - "minecraft:axolotl" => Some(EntityKind::Axolotl), + "minecraft:lightning_bolt" => Some(EntityKind::LightningBolt), + "minecraft:llama" => Some(EntityKind::Llama), + "minecraft:llama_spit" => Some(EntityKind::LlamaSpit), + "minecraft:magma_cube" => Some(EntityKind::MagmaCube), + "minecraft:marker" => Some(EntityKind::Marker), + "minecraft:minecart" => Some(EntityKind::Minecart), + "minecraft:chest_minecart" => Some(EntityKind::ChestMinecart), + "minecraft:command_block_minecart" => Some(EntityKind::CommandBlockMinecart), + "minecraft:furnace_minecart" => Some(EntityKind::FurnaceMinecart), + "minecraft:hopper_minecart" => Some(EntityKind::HopperMinecart), "minecraft:spawner_minecart" => Some(EntityKind::SpawnerMinecart), "minecraft:tnt_minecart" => Some(EntityKind::TntMinecart), - "minecraft:ravager" => Some(EntityKind::Ravager), - "minecraft:dolphin" => Some(EntityKind::Dolphin), + "minecraft:mule" => Some(EntityKind::Mule), + "minecraft:mooshroom" => Some(EntityKind::Mooshroom), + "minecraft:ocelot" => Some(EntityKind::Ocelot), + "minecraft:painting" => Some(EntityKind::Painting), + "minecraft:panda" => Some(EntityKind::Panda), + "minecraft:parrot" => Some(EntityKind::Parrot), + "minecraft:phantom" => Some(EntityKind::Phantom), + "minecraft:pig" => Some(EntityKind::Pig), "minecraft:piglin" => Some(EntityKind::Piglin), - "minecraft:stray" => Some(EntityKind::Stray), "minecraft:piglin_brute" => Some(EntityKind::PiglinBrute), - "minecraft:ghast" => Some(EntityKind::Ghast), - "minecraft:wither" => Some(EntityKind::Wither), - "minecraft:spectral_arrow" => Some(EntityKind::SpectralArrow), - "minecraft:silverfish" => Some(EntityKind::Silverfish), - "minecraft:firework_rocket" => Some(EntityKind::FireworkRocket), - "minecraft:turtle" => Some(EntityKind::Turtle), - "minecraft:cow" => Some(EntityKind::Cow), "minecraft:pillager" => Some(EntityKind::Pillager), - "minecraft:llama" => Some(EntityKind::Llama), - "minecraft:mooshroom" => Some(EntityKind::Mooshroom), - "minecraft:skeleton_horse" => Some(EntityKind::SkeletonHorse), - "minecraft:wandering_trader" => Some(EntityKind::WanderingTrader), - "minecraft:elder_guardian" => Some(EntityKind::ElderGuardian), - "minecraft:villager" => Some(EntityKind::Villager), - "minecraft:wither_skull" => Some(EntityKind::WitherSkull), - "minecraft:blaze" => Some(EntityKind::Blaze), - "minecraft:goat" => Some(EntityKind::Goat), - "minecraft:chest_minecart" => Some(EntityKind::ChestMinecart), + "minecraft:polar_bear" => Some(EntityKind::PolarBear), + "minecraft:tnt" => Some(EntityKind::Tnt), + "minecraft:pufferfish" => Some(EntityKind::Pufferfish), + "minecraft:rabbit" => Some(EntityKind::Rabbit), + "minecraft:ravager" => Some(EntityKind::Ravager), + "minecraft:salmon" => Some(EntityKind::Salmon), "minecraft:sheep" => Some(EntityKind::Sheep), - "minecraft:enderman" => Some(EntityKind::Enderman), + "minecraft:shulker" => Some(EntityKind::Shulker), + "minecraft:shulker_bullet" => Some(EntityKind::ShulkerBullet), + "minecraft:silverfish" => Some(EntityKind::Silverfish), + "minecraft:skeleton" => Some(EntityKind::Skeleton), + "minecraft:skeleton_horse" => Some(EntityKind::SkeletonHorse), + "minecraft:slime" => Some(EntityKind::Slime), + "minecraft:small_fireball" => Some(EntityKind::SmallFireball), + "minecraft:snow_golem" => Some(EntityKind::SnowGolem), + "minecraft:snowball" => Some(EntityKind::Snowball), + "minecraft:spectral_arrow" => Some(EntityKind::SpectralArrow), + "minecraft:spider" => Some(EntityKind::Spider), + "minecraft:squid" => Some(EntityKind::Squid), + "minecraft:stray" => Some(EntityKind::Stray), + "minecraft:strider" => Some(EntityKind::Strider), "minecraft:egg" => Some(EntityKind::Egg), - "minecraft:llama_spit" => Some(EntityKind::LlamaSpit), - "minecraft:minecart" => Some(EntityKind::Minecart), + "minecraft:ender_pearl" => Some(EntityKind::EnderPearl), + "minecraft:experience_bottle" => Some(EntityKind::ExperienceBottle), + "minecraft:potion" => Some(EntityKind::Potion), "minecraft:trident" => Some(EntityKind::Trident), - "minecraft:parrot" => Some(EntityKind::Parrot), - "minecraft:shulker" => Some(EntityKind::Shulker), + "minecraft:trader_llama" => Some(EntityKind::TraderLlama), + "minecraft:tropical_fish" => Some(EntityKind::TropicalFish), + "minecraft:turtle" => Some(EntityKind::Turtle), + "minecraft:vex" => Some(EntityKind::Vex), + "minecraft:villager" => Some(EntityKind::Villager), "minecraft:vindicator" => Some(EntityKind::Vindicator), - "minecraft:item_frame" => Some(EntityKind::ItemFrame), - "minecraft:lightning_bolt" => Some(EntityKind::LightningBolt), - "minecraft:giant" => Some(EntityKind::Giant), - "minecraft:ender_dragon" => Some(EntityKind::EnderDragon), - "minecraft:hoglin" => Some(EntityKind::Hoglin), - "minecraft:salmon" => Some(EntityKind::Salmon), + "minecraft:wandering_trader" => Some(EntityKind::WanderingTrader), "minecraft:witch" => Some(EntityKind::Witch), - "minecraft:item" => Some(EntityKind::Item), - "minecraft:guardian" => Some(EntityKind::Guardian), + "minecraft:wither" => Some(EntityKind::Wither), + "minecraft:wither_skeleton" => Some(EntityKind::WitherSkeleton), + "minecraft:wither_skull" => Some(EntityKind::WitherSkull), + "minecraft:wolf" => Some(EntityKind::Wolf), + "minecraft:zoglin" => Some(EntityKind::Zoglin), + "minecraft:zombie" => Some(EntityKind::Zombie), + "minecraft:zombie_horse" => Some(EntityKind::ZombieHorse), + "minecraft:zombie_villager" => Some(EntityKind::ZombieVillager), + "minecraft:zombified_piglin" => Some(EntityKind::ZombifiedPiglin), + "minecraft:player" => Some(EntityKind::Player), + "minecraft:fishing_bobber" => Some(EntityKind::FishingBobber), _ => None, } } diff --git a/libcraft/inventory/src/inventory.rs b/libcraft/inventory/src/inventory.rs index f32107484..80ce3ea36 100644 --- a/libcraft/inventory/src/inventory.rs +++ b/libcraft/inventory/src/inventory.rs @@ -90,102 +90,147 @@ impl Area { } #[derive(Debug, Clone)] pub enum Window { - Generic9X3 { - block: crate::Inventory, + Player { player: crate::Inventory, }, - Generic9X6 { - left_chest: crate::Inventory, - right_chest: crate::Inventory, + Generic9X1 { + block: crate::Inventory, player: crate::Inventory, }, - Hopper { - hopper: crate::Inventory, + Generic9X2 { + block: crate::Inventory, player: crate::Inventory, }, - Grindstone { - grindstone: crate::Inventory, + Generic9X3 { + block: crate::Inventory, player: crate::Inventory, }, - Furnace { - furnace: crate::Inventory, + Generic9X4 { + block: crate::Inventory, player: crate::Inventory, }, - Generic3X3 { + Generic9X5 { block: crate::Inventory, player: crate::Inventory, }, - Smoker { - smoker: crate::Inventory, + Generic9X6 { + left_chest: crate::Inventory, + right_chest: crate::Inventory, player: crate::Inventory, }, - Anvil { - anvil: crate::Inventory, + Generic3X3 { + block: crate::Inventory, player: crate::Inventory, }, - Lectern { - lectern: crate::Inventory, + Crafting { + crafting_table: crate::Inventory, player: crate::Inventory, }, - Generic9X4 { - block: crate::Inventory, + Furnace { + furnace: crate::Inventory, player: crate::Inventory, }, - ShulkerBox { - shulker_box: crate::Inventory, + BlastFurnace { + blast_furnace: crate::Inventory, player: crate::Inventory, }, - BrewingStand { - brewing_stand: crate::Inventory, + Smoker { + smoker: crate::Inventory, player: crate::Inventory, }, - Generic9X5 { - block: crate::Inventory, + Enchantment { + enchantment_table: crate::Inventory, player: crate::Inventory, }, - Generic9X2 { - block: crate::Inventory, + BrewingStand { + brewing_stand: crate::Inventory, player: crate::Inventory, }, - Stonecutter { - stonecutter: crate::Inventory, + Beacon { + beacon: crate::Inventory, player: crate::Inventory, }, - Crafting { - crafting_table: crate::Inventory, + Anvil { + anvil: crate::Inventory, player: crate::Inventory, }, - Player { + Hopper { + hopper: crate::Inventory, player: crate::Inventory, }, - BlastFurnace { - blast_furnace: crate::Inventory, + ShulkerBox { + shulker_box: crate::Inventory, player: crate::Inventory, }, - Loom { - loom: crate::Inventory, + Cartography { + cartography_table: crate::Inventory, player: crate::Inventory, }, - Generic9X1 { - block: crate::Inventory, + Grindstone { + grindstone: crate::Inventory, player: crate::Inventory, }, - Enchantment { - enchantment_table: crate::Inventory, + Lectern { + lectern: crate::Inventory, player: crate::Inventory, }, - Cartography { - cartography_table: crate::Inventory, + Loom { + loom: crate::Inventory, player: crate::Inventory, }, - Beacon { - beacon: crate::Inventory, + Stonecutter { + stonecutter: crate::Inventory, player: crate::Inventory, }, } impl Window { pub fn index_to_slot(&self, index: usize) -> Option<(&crate::Inventory, Area, usize)> { match (self, index) { + (Window::Player { player }, 0usize..=0usize) => { + Some((player, Area::CraftingOutput, index - 0usize)) + } + (Window::Player { player }, 1usize..=4usize) => { + Some((player, Area::CraftingInput, index - 1usize)) + } + (Window::Player { player }, 5usize..=5usize) => { + Some((player, Area::Helmet, index - 5usize)) + } + (Window::Player { player }, 6usize..=6usize) => { + Some((player, Area::Chestplate, index - 6usize)) + } + (Window::Player { player }, 7usize..=7usize) => { + Some((player, Area::Leggings, index - 7usize)) + } + (Window::Player { player }, 8usize..=8usize) => { + Some((player, Area::Boots, index - 8usize)) + } + (Window::Player { player }, 9usize..=35usize) => { + Some((player, Area::Storage, index - 9usize)) + } + (Window::Player { player }, 36usize..=44usize) => { + Some((player, Area::Hotbar, index - 36usize)) + } + (Window::Player { player }, 45usize..=45usize) => { + Some((player, Area::Offhand, index - 45usize)) + } + (Window::Generic9X1 { block, player }, 0usize..=8usize) => { + Some((block, Area::Storage, index - 0usize)) + } + (Window::Generic9X1 { block, player }, 9usize..=35usize) => { + Some((player, Area::Storage, index - 9usize)) + } + (Window::Generic9X1 { block, player }, 36usize..=44usize) => { + Some((player, Area::Hotbar, index - 36usize)) + } + (Window::Generic9X2 { block, player }, 0usize..=17usize) => { + Some((block, Area::Storage, index - 0usize)) + } + (Window::Generic9X2 { block, player }, 18usize..=44usize) => { + Some((player, Area::Storage, index - 18usize)) + } + (Window::Generic9X2 { block, player }, 45usize..=53usize) => { + Some((player, Area::Hotbar, index - 45usize)) + } (Window::Generic9X3 { block, player }, 0usize..=26usize) => { Some((block, Area::Storage, index - 0usize)) } @@ -195,6 +240,24 @@ impl Window { (Window::Generic9X3 { block, player }, 54usize..=62usize) => { Some((player, Area::Hotbar, index - 54usize)) } + (Window::Generic9X4 { block, player }, 0usize..=35usize) => { + Some((block, Area::Storage, index - 0usize)) + } + (Window::Generic9X4 { block, player }, 36usize..=62usize) => { + Some((player, Area::Storage, index - 36usize)) + } + (Window::Generic9X4 { block, player }, 63usize..=71usize) => { + Some((player, Area::Hotbar, index - 63usize)) + } + (Window::Generic9X5 { block, player }, 0usize..=44usize) => { + Some((block, Area::Storage, index - 0usize)) + } + (Window::Generic9X5 { block, player }, 45usize..=71usize) => { + Some((player, Area::Storage, index - 45usize)) + } + (Window::Generic9X5 { block, player }, 72usize..=80usize) => { + Some((player, Area::Hotbar, index - 72usize)) + } ( Window::Generic9X6 { left_chest, @@ -227,30 +290,43 @@ impl Window { }, 81usize..=89usize, ) => Some((player, Area::Hotbar, index - 81usize)), - (Window::Hopper { hopper, player }, 0usize..=3usize) => { - Some((hopper, Area::Storage, index - 0usize)) - } - (Window::Hopper { hopper, player }, 4usize..=30usize) => { - Some((player, Area::Storage, index - 4usize)) - } - (Window::Hopper { hopper, player }, 31usize..=39usize) => { - Some((player, Area::Hotbar, index - 31usize)) - } - (Window::Grindstone { grindstone, player }, 0usize..=0usize) => { - Some((grindstone, Area::GrindstoneInput1, index - 0usize)) - } - (Window::Grindstone { grindstone, player }, 1usize..=1usize) => { - Some((grindstone, Area::GrindstoneInput2, index - 1usize)) - } - (Window::Grindstone { grindstone, player }, 2usize..=2usize) => { - Some((grindstone, Area::GrindstoneOutput, index - 2usize)) + (Window::Generic3X3 { block, player }, 0usize..=8usize) => { + Some((block, Area::Storage, index - 0usize)) } - (Window::Grindstone { grindstone, player }, 3usize..=29usize) => { - Some((player, Area::Storage, index - 3usize)) + (Window::Generic3X3 { block, player }, 9usize..=35usize) => { + Some((player, Area::Storage, index - 9usize)) } - (Window::Grindstone { grindstone, player }, 30usize..=38usize) => { - Some((player, Area::Hotbar, index - 30usize)) + (Window::Generic3X3 { block, player }, 36usize..=44usize) => { + Some((player, Area::Hotbar, index - 36usize)) } + ( + Window::Crafting { + crafting_table, + player, + }, + 0usize..=0usize, + ) => Some((crafting_table, Area::CraftingOutput, index - 0usize)), + ( + Window::Crafting { + crafting_table, + player, + }, + 1usize..=9usize, + ) => Some((crafting_table, Area::CraftingInput, index - 1usize)), + ( + Window::Crafting { + crafting_table, + player, + }, + 10usize..=36usize, + ) => Some((player, Area::Storage, index - 10usize)), + ( + Window::Crafting { + crafting_table, + player, + }, + 37usize..=45usize, + ) => Some((player, Area::Hotbar, index - 37usize)), (Window::Furnace { furnace, player }, 0usize..=0usize) => { Some((furnace, Area::FurnaceIngredient, index - 0usize)) } @@ -266,15 +342,41 @@ impl Window { (Window::Furnace { furnace, player }, 30usize..=38usize) => { Some((player, Area::Hotbar, index - 30usize)) } - (Window::Generic3X3 { block, player }, 0usize..=8usize) => { - Some((block, Area::Storage, index - 0usize)) - } - (Window::Generic3X3 { block, player }, 9usize..=35usize) => { - Some((player, Area::Storage, index - 9usize)) - } - (Window::Generic3X3 { block, player }, 36usize..=44usize) => { - Some((player, Area::Hotbar, index - 36usize)) - } + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + 0usize..=0usize, + ) => Some((blast_furnace, Area::FurnaceIngredient, index - 0usize)), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + 1usize..=1usize, + ) => Some((blast_furnace, Area::FurnaceFuel, index - 1usize)), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + 2usize..=2usize, + ) => Some((blast_furnace, Area::FurnaceOutput, index - 2usize)), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + 3usize..=29usize, + ) => Some((player, Area::Storage, index - 3usize)), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + 30usize..=38usize, + ) => Some((player, Area::Hotbar, index - 30usize)), (Window::Smoker { smoker, player }, 0usize..=0usize) => { Some((smoker, Area::FurnaceIngredient, index - 0usize)) } @@ -290,60 +392,34 @@ impl Window { (Window::Smoker { smoker, player }, 30usize..=38usize) => { Some((player, Area::Hotbar, index - 30usize)) } - (Window::Anvil { anvil, player }, 0usize..=0usize) => { - Some((anvil, Area::AnvilInput1, index - 0usize)) - } - (Window::Anvil { anvil, player }, 1usize..=1usize) => { - Some((anvil, Area::AnvilInput2, index - 1usize)) - } - (Window::Anvil { anvil, player }, 2usize..=2usize) => { - Some((anvil, Area::AnvilOutput, index - 2usize)) - } - (Window::Anvil { anvil, player }, 3usize..=29usize) => { - Some((player, Area::Storage, index - 3usize)) - } - (Window::Anvil { anvil, player }, 30usize..=38usize) => { - Some((player, Area::Hotbar, index - 30usize)) - } - (Window::Lectern { lectern, player }, 0usize..=0usize) => { - Some((lectern, Area::LecternBook, index - 0usize)) - } - (Window::Lectern { lectern, player }, 1usize..=27usize) => { - Some((player, Area::Storage, index - 1usize)) - } - (Window::Lectern { lectern, player }, 28usize..=36usize) => { - Some((player, Area::Hotbar, index - 28usize)) - } - (Window::Generic9X4 { block, player }, 0usize..=35usize) => { - Some((block, Area::Storage, index - 0usize)) - } - (Window::Generic9X4 { block, player }, 36usize..=62usize) => { - Some((player, Area::Storage, index - 36usize)) - } - (Window::Generic9X4 { block, player }, 63usize..=71usize) => { - Some((player, Area::Hotbar, index - 63usize)) - } ( - Window::ShulkerBox { - shulker_box, + Window::Enchantment { + enchantment_table, player, }, - 0usize..=26usize, - ) => Some((shulker_box, Area::Storage, index - 0usize)), + 0usize..=0usize, + ) => Some((enchantment_table, Area::EnchantmentItem, index - 0usize)), ( - Window::ShulkerBox { - shulker_box, + Window::Enchantment { + enchantment_table, player, }, - 27usize..=53usize, - ) => Some((player, Area::Storage, index - 27usize)), + 1usize..=1usize, + ) => Some((enchantment_table, Area::EnchantmentLapis, index - 1usize)), ( - Window::ShulkerBox { - shulker_box, + Window::Enchantment { + enchantment_table, player, }, - 54usize..=62usize, - ) => Some((player, Area::Hotbar, index - 54usize)), + 2usize..=28usize, + ) => Some((player, Area::Storage, index - 2usize)), + ( + Window::Enchantment { + enchantment_table, + player, + }, + 29usize..=37usize, + ) => Some((player, Area::Hotbar, index - 29usize)), ( Window::BrewingStand { brewing_stand, @@ -379,142 +455,119 @@ impl Window { }, 32usize..=40usize, ) => Some((player, Area::Hotbar, index - 32usize)), - (Window::Generic9X5 { block, player }, 0usize..=44usize) => { - Some((block, Area::Storage, index - 0usize)) + (Window::Beacon { beacon, player }, 0usize..=0usize) => { + Some((beacon, Area::BeaconPayment, index - 0usize)) } - (Window::Generic9X5 { block, player }, 45usize..=71usize) => { - Some((player, Area::Storage, index - 45usize)) + (Window::Beacon { beacon, player }, 1usize..=27usize) => { + Some((player, Area::Storage, index - 1usize)) } - (Window::Generic9X5 { block, player }, 72usize..=80usize) => { - Some((player, Area::Hotbar, index - 72usize)) + (Window::Beacon { beacon, player }, 28usize..=36usize) => { + Some((player, Area::Hotbar, index - 28usize)) } - (Window::Generic9X2 { block, player }, 0usize..=17usize) => { - Some((block, Area::Storage, index - 0usize)) + (Window::Anvil { anvil, player }, 0usize..=0usize) => { + Some((anvil, Area::AnvilInput1, index - 0usize)) } - (Window::Generic9X2 { block, player }, 18usize..=44usize) => { - Some((player, Area::Storage, index - 18usize)) + (Window::Anvil { anvil, player }, 1usize..=1usize) => { + Some((anvil, Area::AnvilInput2, index - 1usize)) } - (Window::Generic9X2 { block, player }, 45usize..=53usize) => { - Some((player, Area::Hotbar, index - 45usize)) + (Window::Anvil { anvil, player }, 2usize..=2usize) => { + Some((anvil, Area::AnvilOutput, index - 2usize)) + } + (Window::Anvil { anvil, player }, 3usize..=29usize) => { + Some((player, Area::Storage, index - 3usize)) + } + (Window::Anvil { anvil, player }, 30usize..=38usize) => { + Some((player, Area::Hotbar, index - 30usize)) + } + (Window::Hopper { hopper, player }, 0usize..=3usize) => { + Some((hopper, Area::Storage, index - 0usize)) + } + (Window::Hopper { hopper, player }, 4usize..=30usize) => { + Some((player, Area::Storage, index - 4usize)) + } + (Window::Hopper { hopper, player }, 31usize..=39usize) => { + Some((player, Area::Hotbar, index - 31usize)) } ( - Window::Stonecutter { - stonecutter, + Window::ShulkerBox { + shulker_box, player, }, - 0usize..=0usize, - ) => Some((stonecutter, Area::StonecutterInput, index - 0usize)), + 0usize..=26usize, + ) => Some((shulker_box, Area::Storage, index - 0usize)), ( - Window::Stonecutter { - stonecutter, + Window::ShulkerBox { + shulker_box, player, }, - 1usize..=1usize, - ) => Some((stonecutter, Area::StonecutterOutput, index - 1usize)), + 27usize..=53usize, + ) => Some((player, Area::Storage, index - 27usize)), ( - Window::Stonecutter { - stonecutter, + Window::ShulkerBox { + shulker_box, player, }, - 2usize..=28usize, - ) => Some((player, Area::Storage, index - 2usize)), + 54usize..=62usize, + ) => Some((player, Area::Hotbar, index - 54usize)), ( - Window::Stonecutter { - stonecutter, + Window::Cartography { + cartography_table, player, }, - 29usize..=37usize, - ) => Some((player, Area::Hotbar, index - 29usize)), + 0usize..=0usize, + ) => Some((cartography_table, Area::CartographyMap, index - 0usize)), ( - Window::Crafting { - crafting_table, + Window::Cartography { + cartography_table, player, }, - 0usize..=0usize, - ) => Some((crafting_table, Area::CraftingOutput, index - 0usize)), + 1usize..=1usize, + ) => Some((cartography_table, Area::CartographyPaper, index - 1usize)), ( - Window::Crafting { - crafting_table, + Window::Cartography { + cartography_table, player, }, - 1usize..=9usize, - ) => Some((crafting_table, Area::CraftingInput, index - 1usize)), + 2usize..=2usize, + ) => Some((cartography_table, Area::CartographyOutput, index - 2usize)), ( - Window::Crafting { - crafting_table, + Window::Cartography { + cartography_table, player, }, - 10usize..=36usize, - ) => Some((player, Area::Storage, index - 10usize)), + 3usize..=29usize, + ) => Some((player, Area::Storage, index - 3usize)), ( - Window::Crafting { - crafting_table, + Window::Cartography { + cartography_table, player, }, - 37usize..=45usize, - ) => Some((player, Area::Hotbar, index - 37usize)), - (Window::Player { player }, 0usize..=0usize) => { - Some((player, Area::CraftingOutput, index - 0usize)) - } - (Window::Player { player }, 1usize..=4usize) => { - Some((player, Area::CraftingInput, index - 1usize)) + 30usize..=38usize, + ) => Some((player, Area::Hotbar, index - 30usize)), + (Window::Grindstone { grindstone, player }, 0usize..=0usize) => { + Some((grindstone, Area::GrindstoneInput1, index - 0usize)) } - (Window::Player { player }, 5usize..=5usize) => { - Some((player, Area::Helmet, index - 5usize)) + (Window::Grindstone { grindstone, player }, 1usize..=1usize) => { + Some((grindstone, Area::GrindstoneInput2, index - 1usize)) } - (Window::Player { player }, 6usize..=6usize) => { - Some((player, Area::Chestplate, index - 6usize)) + (Window::Grindstone { grindstone, player }, 2usize..=2usize) => { + Some((grindstone, Area::GrindstoneOutput, index - 2usize)) } - (Window::Player { player }, 7usize..=7usize) => { - Some((player, Area::Leggings, index - 7usize)) + (Window::Grindstone { grindstone, player }, 3usize..=29usize) => { + Some((player, Area::Storage, index - 3usize)) } - (Window::Player { player }, 8usize..=8usize) => { - Some((player, Area::Boots, index - 8usize)) + (Window::Grindstone { grindstone, player }, 30usize..=38usize) => { + Some((player, Area::Hotbar, index - 30usize)) } - (Window::Player { player }, 9usize..=35usize) => { - Some((player, Area::Storage, index - 9usize)) + (Window::Lectern { lectern, player }, 0usize..=0usize) => { + Some((lectern, Area::LecternBook, index - 0usize)) } - (Window::Player { player }, 36usize..=44usize) => { - Some((player, Area::Hotbar, index - 36usize)) + (Window::Lectern { lectern, player }, 1usize..=27usize) => { + Some((player, Area::Storage, index - 1usize)) } - (Window::Player { player }, 45usize..=45usize) => { - Some((player, Area::Offhand, index - 45usize)) + (Window::Lectern { lectern, player }, 28usize..=36usize) => { + Some((player, Area::Hotbar, index - 28usize)) } - ( - Window::BlastFurnace { - blast_furnace, - player, - }, - 0usize..=0usize, - ) => Some((blast_furnace, Area::FurnaceIngredient, index - 0usize)), - ( - Window::BlastFurnace { - blast_furnace, - player, - }, - 1usize..=1usize, - ) => Some((blast_furnace, Area::FurnaceFuel, index - 1usize)), - ( - Window::BlastFurnace { - blast_furnace, - player, - }, - 2usize..=2usize, - ) => Some((blast_furnace, Area::FurnaceOutput, index - 2usize)), - ( - Window::BlastFurnace { - blast_furnace, - player, - }, - 3usize..=29usize, - ) => Some((player, Area::Storage, index - 3usize)), - ( - Window::BlastFurnace { - blast_furnace, - player, - }, - 30usize..=38usize, - ) => Some((player, Area::Hotbar, index - 30usize)), (Window::Loom { loom, player }, 0usize..=0usize) => { Some((loom, Area::LoomBanner, index - 0usize)) } @@ -533,87 +586,34 @@ impl Window { (Window::Loom { loom, player }, 31usize..=39usize) => { Some((player, Area::Hotbar, index - 31usize)) } - (Window::Generic9X1 { block, player }, 0usize..=8usize) => { - Some((block, Area::Storage, index - 0usize)) - } - (Window::Generic9X1 { block, player }, 9usize..=35usize) => { - Some((player, Area::Storage, index - 9usize)) - } - (Window::Generic9X1 { block, player }, 36usize..=44usize) => { - Some((player, Area::Hotbar, index - 36usize)) - } ( - Window::Enchantment { - enchantment_table, + Window::Stonecutter { + stonecutter, player, }, 0usize..=0usize, - ) => Some((enchantment_table, Area::EnchantmentItem, index - 0usize)), + ) => Some((stonecutter, Area::StonecutterInput, index - 0usize)), ( - Window::Enchantment { - enchantment_table, + Window::Stonecutter { + stonecutter, player, }, 1usize..=1usize, - ) => Some((enchantment_table, Area::EnchantmentLapis, index - 1usize)), + ) => Some((stonecutter, Area::StonecutterOutput, index - 1usize)), ( - Window::Enchantment { - enchantment_table, + Window::Stonecutter { + stonecutter, player, }, 2usize..=28usize, ) => Some((player, Area::Storage, index - 2usize)), ( - Window::Enchantment { - enchantment_table, + Window::Stonecutter { + stonecutter, player, }, 29usize..=37usize, ) => Some((player, Area::Hotbar, index - 29usize)), - ( - Window::Cartography { - cartography_table, - player, - }, - 0usize..=0usize, - ) => Some((cartography_table, Area::CartographyMap, index - 0usize)), - ( - Window::Cartography { - cartography_table, - player, - }, - 1usize..=1usize, - ) => Some((cartography_table, Area::CartographyPaper, index - 1usize)), - ( - Window::Cartography { - cartography_table, - player, - }, - 2usize..=2usize, - ) => Some((cartography_table, Area::CartographyOutput, index - 2usize)), - ( - Window::Cartography { - cartography_table, - player, - }, - 3usize..=29usize, - ) => Some((player, Area::Storage, index - 3usize)), - ( - Window::Cartography { - cartography_table, - player, - }, - 30usize..=38usize, - ) => Some((player, Area::Hotbar, index - 30usize)), - (Window::Beacon { beacon, player }, 0usize..=0usize) => { - Some((beacon, Area::BeaconPayment, index - 0usize)) - } - (Window::Beacon { beacon, player }, 1usize..=27usize) => { - Some((player, Area::Storage, index - 1usize)) - } - (Window::Beacon { beacon, player }, 28usize..=36usize) => { - Some((player, Area::Hotbar, index - 28usize)) - } _ => None, } } @@ -624,155 +624,59 @@ impl Window { slot: usize, ) -> Option { match (self, area) { - (Window::Generic9X3 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { - Some(slot + 0usize) - } - (Window::Generic9X3 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { - Some(slot + 27usize) - } - (Window::Generic9X3 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { - Some(slot + 54usize) - } - ( - Window::Generic9X6 { - left_chest, - right_chest, - player, - }, - Area::Storage, - ) if left_chest.ptr_eq(inventory) => Some(slot + 0usize), - ( - Window::Generic9X6 { - left_chest, - right_chest, - player, - }, - Area::Storage, - ) if right_chest.ptr_eq(inventory) => Some(slot + 27usize), - ( - Window::Generic9X6 { - left_chest, - right_chest, - player, - }, - Area::Storage, - ) if player.ptr_eq(inventory) => Some(slot + 54usize), - ( - Window::Generic9X6 { - left_chest, - right_chest, - player, - }, - Area::Hotbar, - ) if player.ptr_eq(inventory) => Some(slot + 81usize), - (Window::Hopper { hopper, player }, Area::Storage) if hopper.ptr_eq(inventory) => { - Some(slot + 0usize) - } - (Window::Hopper { hopper, player }, Area::Storage) if player.ptr_eq(inventory) => { - Some(slot + 4usize) - } - (Window::Hopper { hopper, player }, Area::Hotbar) if player.ptr_eq(inventory) => { - Some(slot + 31usize) - } - (Window::Grindstone { grindstone, player }, Area::GrindstoneInput1) - if grindstone.ptr_eq(inventory) => - { + (Window::Player { player }, Area::CraftingOutput) if player.ptr_eq(inventory) => { Some(slot + 0usize) } - (Window::Grindstone { grindstone, player }, Area::GrindstoneInput2) - if grindstone.ptr_eq(inventory) => - { + (Window::Player { player }, Area::CraftingInput) if player.ptr_eq(inventory) => { Some(slot + 1usize) } - (Window::Grindstone { grindstone, player }, Area::GrindstoneOutput) - if grindstone.ptr_eq(inventory) => - { - Some(slot + 2usize) - } - (Window::Grindstone { grindstone, player }, Area::Storage) - if player.ptr_eq(inventory) => - { - Some(slot + 3usize) + (Window::Player { player }, Area::Helmet) if player.ptr_eq(inventory) => { + Some(slot + 5usize) } - (Window::Grindstone { grindstone, player }, Area::Hotbar) - if player.ptr_eq(inventory) => - { - Some(slot + 30usize) + (Window::Player { player }, Area::Chestplate) if player.ptr_eq(inventory) => { + Some(slot + 6usize) } - (Window::Furnace { furnace, player }, Area::FurnaceIngredient) - if furnace.ptr_eq(inventory) => - { - Some(slot + 0usize) + (Window::Player { player }, Area::Leggings) if player.ptr_eq(inventory) => { + Some(slot + 7usize) } - (Window::Furnace { furnace, player }, Area::FurnaceFuel) - if furnace.ptr_eq(inventory) => - { - Some(slot + 1usize) + (Window::Player { player }, Area::Boots) if player.ptr_eq(inventory) => { + Some(slot + 8usize) } - (Window::Furnace { furnace, player }, Area::FurnaceOutput) - if furnace.ptr_eq(inventory) => - { - Some(slot + 2usize) + (Window::Player { player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 9usize) } - (Window::Furnace { furnace, player }, Area::Storage) if player.ptr_eq(inventory) => { - Some(slot + 3usize) + (Window::Player { player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 36usize) } - (Window::Furnace { furnace, player }, Area::Hotbar) if player.ptr_eq(inventory) => { - Some(slot + 30usize) + (Window::Player { player }, Area::Offhand) if player.ptr_eq(inventory) => { + Some(slot + 45usize) } - (Window::Generic3X3 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { + (Window::Generic9X1 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { Some(slot + 0usize) } - (Window::Generic3X3 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { + (Window::Generic9X1 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { Some(slot + 9usize) } - (Window::Generic3X3 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + (Window::Generic9X1 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { Some(slot + 36usize) } - (Window::Smoker { smoker, player }, Area::FurnaceIngredient) - if smoker.ptr_eq(inventory) => - { - Some(slot + 0usize) - } - (Window::Smoker { smoker, player }, Area::FurnaceFuel) if smoker.ptr_eq(inventory) => { - Some(slot + 1usize) - } - (Window::Smoker { smoker, player }, Area::FurnaceOutput) - if smoker.ptr_eq(inventory) => - { - Some(slot + 2usize) - } - (Window::Smoker { smoker, player }, Area::Storage) if player.ptr_eq(inventory) => { - Some(slot + 3usize) - } - (Window::Smoker { smoker, player }, Area::Hotbar) if player.ptr_eq(inventory) => { - Some(slot + 30usize) - } - (Window::Anvil { anvil, player }, Area::AnvilInput1) if anvil.ptr_eq(inventory) => { + (Window::Generic9X2 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { Some(slot + 0usize) } - (Window::Anvil { anvil, player }, Area::AnvilInput2) if anvil.ptr_eq(inventory) => { - Some(slot + 1usize) - } - (Window::Anvil { anvil, player }, Area::AnvilOutput) if anvil.ptr_eq(inventory) => { - Some(slot + 2usize) - } - (Window::Anvil { anvil, player }, Area::Storage) if player.ptr_eq(inventory) => { - Some(slot + 3usize) + (Window::Generic9X2 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 18usize) } - (Window::Anvil { anvil, player }, Area::Hotbar) if player.ptr_eq(inventory) => { - Some(slot + 30usize) + (Window::Generic9X2 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 45usize) } - (Window::Lectern { lectern, player }, Area::LecternBook) - if lectern.ptr_eq(inventory) => - { + (Window::Generic9X3 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { Some(slot + 0usize) } - (Window::Lectern { lectern, player }, Area::Storage) if player.ptr_eq(inventory) => { - Some(slot + 1usize) + (Window::Generic9X3 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 27usize) } - (Window::Lectern { lectern, player }, Area::Hotbar) if player.ptr_eq(inventory) => { - Some(slot + 28usize) + (Window::Generic9X3 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 54usize) } (Window::Generic9X4 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { Some(slot + 0usize) @@ -783,62 +687,6 @@ impl Window { (Window::Generic9X4 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { Some(slot + 63usize) } - ( - Window::ShulkerBox { - shulker_box, - player, - }, - Area::Storage, - ) if shulker_box.ptr_eq(inventory) => Some(slot + 0usize), - ( - Window::ShulkerBox { - shulker_box, - player, - }, - Area::Storage, - ) if player.ptr_eq(inventory) => Some(slot + 27usize), - ( - Window::ShulkerBox { - shulker_box, - player, - }, - Area::Hotbar, - ) if player.ptr_eq(inventory) => Some(slot + 54usize), - ( - Window::BrewingStand { - brewing_stand, - player, - }, - Area::BrewingBottle, - ) if brewing_stand.ptr_eq(inventory) => Some(slot + 0usize), - ( - Window::BrewingStand { - brewing_stand, - player, - }, - Area::BrewingIngredient, - ) if brewing_stand.ptr_eq(inventory) => Some(slot + 3usize), - ( - Window::BrewingStand { - brewing_stand, - player, - }, - Area::BrewingBlazePowder, - ) if brewing_stand.ptr_eq(inventory) => Some(slot + 4usize), - ( - Window::BrewingStand { - brewing_stand, - player, - }, - Area::Storage, - ) if player.ptr_eq(inventory) => Some(slot + 5usize), - ( - Window::BrewingStand { - brewing_stand, - player, - }, - Area::Hotbar, - ) if player.ptr_eq(inventory) => Some(slot + 32usize), (Window::Generic9X5 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { Some(slot + 0usize) } @@ -848,43 +696,47 @@ impl Window { (Window::Generic9X5 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { Some(slot + 72usize) } - (Window::Generic9X2 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { - Some(slot + 0usize) - } - (Window::Generic9X2 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { - Some(slot + 18usize) - } - (Window::Generic9X2 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { - Some(slot + 45usize) - } ( - Window::Stonecutter { - stonecutter, + Window::Generic9X6 { + left_chest, + right_chest, player, }, - Area::StonecutterInput, - ) if stonecutter.ptr_eq(inventory) => Some(slot + 0usize), + Area::Storage, + ) if left_chest.ptr_eq(inventory) => Some(slot + 0usize), ( - Window::Stonecutter { - stonecutter, + Window::Generic9X6 { + left_chest, + right_chest, player, }, - Area::StonecutterOutput, - ) if stonecutter.ptr_eq(inventory) => Some(slot + 1usize), + Area::Storage, + ) if right_chest.ptr_eq(inventory) => Some(slot + 27usize), ( - Window::Stonecutter { - stonecutter, + Window::Generic9X6 { + left_chest, + right_chest, player, }, Area::Storage, - ) if player.ptr_eq(inventory) => Some(slot + 2usize), + ) if player.ptr_eq(inventory) => Some(slot + 54usize), ( - Window::Stonecutter { - stonecutter, + Window::Generic9X6 { + left_chest, + right_chest, player, }, Area::Hotbar, - ) if player.ptr_eq(inventory) => Some(slot + 29usize), + ) if player.ptr_eq(inventory) => Some(slot + 81usize), + (Window::Generic3X3 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Generic3X3 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 9usize) + } + (Window::Generic3X3 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 36usize) + } ( Window::Crafting { crafting_table, @@ -913,123 +765,200 @@ impl Window { }, Area::Hotbar, ) if player.ptr_eq(inventory) => Some(slot + 37usize), - (Window::Player { player }, Area::CraftingOutput) if player.ptr_eq(inventory) => { + (Window::Furnace { furnace, player }, Area::FurnaceIngredient) + if furnace.ptr_eq(inventory) => + { Some(slot + 0usize) } - (Window::Player { player }, Area::CraftingInput) if player.ptr_eq(inventory) => { + (Window::Furnace { furnace, player }, Area::FurnaceFuel) + if furnace.ptr_eq(inventory) => + { Some(slot + 1usize) } - (Window::Player { player }, Area::Helmet) if player.ptr_eq(inventory) => { - Some(slot + 5usize) + (Window::Furnace { furnace, player }, Area::FurnaceOutput) + if furnace.ptr_eq(inventory) => + { + Some(slot + 2usize) } - (Window::Player { player }, Area::Chestplate) if player.ptr_eq(inventory) => { - Some(slot + 6usize) + (Window::Furnace { furnace, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 3usize) } - (Window::Player { player }, Area::Leggings) if player.ptr_eq(inventory) => { - Some(slot + 7usize) + (Window::Furnace { furnace, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 30usize) } - (Window::Player { player }, Area::Boots) if player.ptr_eq(inventory) => { - Some(slot + 8usize) + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + Area::FurnaceIngredient, + ) if blast_furnace.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + Area::FurnaceFuel, + ) if blast_furnace.ptr_eq(inventory) => Some(slot + 1usize), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + Area::FurnaceOutput, + ) if blast_furnace.ptr_eq(inventory) => Some(slot + 2usize), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 3usize), + ( + Window::BlastFurnace { + blast_furnace, + player, + }, + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 30usize), + (Window::Smoker { smoker, player }, Area::FurnaceIngredient) + if smoker.ptr_eq(inventory) => + { + Some(slot + 0usize) } - (Window::Player { player }, Area::Storage) if player.ptr_eq(inventory) => { - Some(slot + 9usize) + (Window::Smoker { smoker, player }, Area::FurnaceFuel) if smoker.ptr_eq(inventory) => { + Some(slot + 1usize) } - (Window::Player { player }, Area::Hotbar) if player.ptr_eq(inventory) => { - Some(slot + 36usize) + (Window::Smoker { smoker, player }, Area::FurnaceOutput) + if smoker.ptr_eq(inventory) => + { + Some(slot + 2usize) } - (Window::Player { player }, Area::Offhand) if player.ptr_eq(inventory) => { - Some(slot + 45usize) + (Window::Smoker { smoker, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 3usize) } + (Window::Smoker { smoker, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 30usize) + } + ( + Window::Enchantment { + enchantment_table, + player, + }, + Area::EnchantmentItem, + ) if enchantment_table.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::Enchantment { + enchantment_table, + player, + }, + Area::EnchantmentLapis, + ) if enchantment_table.ptr_eq(inventory) => Some(slot + 1usize), + ( + Window::Enchantment { + enchantment_table, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 2usize), ( - Window::BlastFurnace { - blast_furnace, + Window::Enchantment { + enchantment_table, player, }, - Area::FurnaceIngredient, - ) if blast_furnace.ptr_eq(inventory) => Some(slot + 0usize), + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 29usize), ( - Window::BlastFurnace { - blast_furnace, + Window::BrewingStand { + brewing_stand, player, }, - Area::FurnaceFuel, - ) if blast_furnace.ptr_eq(inventory) => Some(slot + 1usize), + Area::BrewingBottle, + ) if brewing_stand.ptr_eq(inventory) => Some(slot + 0usize), ( - Window::BlastFurnace { - blast_furnace, + Window::BrewingStand { + brewing_stand, player, }, - Area::FurnaceOutput, - ) if blast_furnace.ptr_eq(inventory) => Some(slot + 2usize), + Area::BrewingIngredient, + ) if brewing_stand.ptr_eq(inventory) => Some(slot + 3usize), ( - Window::BlastFurnace { - blast_furnace, + Window::BrewingStand { + brewing_stand, + player, + }, + Area::BrewingBlazePowder, + ) if brewing_stand.ptr_eq(inventory) => Some(slot + 4usize), + ( + Window::BrewingStand { + brewing_stand, player, }, Area::Storage, - ) if player.ptr_eq(inventory) => Some(slot + 3usize), + ) if player.ptr_eq(inventory) => Some(slot + 5usize), ( - Window::BlastFurnace { - blast_furnace, + Window::BrewingStand { + brewing_stand, player, }, Area::Hotbar, - ) if player.ptr_eq(inventory) => Some(slot + 30usize), - (Window::Loom { loom, player }, Area::LoomBanner) if loom.ptr_eq(inventory) => { + ) if player.ptr_eq(inventory) => Some(slot + 32usize), + (Window::Beacon { beacon, player }, Area::BeaconPayment) + if beacon.ptr_eq(inventory) => + { Some(slot + 0usize) } - (Window::Loom { loom, player }, Area::LoomDye) if loom.ptr_eq(inventory) => { + (Window::Beacon { beacon, player }, Area::Storage) if player.ptr_eq(inventory) => { Some(slot + 1usize) } - (Window::Loom { loom, player }, Area::LoomPattern) if loom.ptr_eq(inventory) => { + (Window::Beacon { beacon, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 28usize) + } + (Window::Anvil { anvil, player }, Area::AnvilInput1) if anvil.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Anvil { anvil, player }, Area::AnvilInput2) if anvil.ptr_eq(inventory) => { + Some(slot + 1usize) + } + (Window::Anvil { anvil, player }, Area::AnvilOutput) if anvil.ptr_eq(inventory) => { Some(slot + 2usize) } - (Window::Loom { loom, player }, Area::LoomOutput) if loom.ptr_eq(inventory) => { + (Window::Anvil { anvil, player }, Area::Storage) if player.ptr_eq(inventory) => { Some(slot + 3usize) } - (Window::Loom { loom, player }, Area::Storage) if player.ptr_eq(inventory) => { - Some(slot + 4usize) - } - (Window::Loom { loom, player }, Area::Hotbar) if player.ptr_eq(inventory) => { - Some(slot + 31usize) + (Window::Anvil { anvil, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 30usize) } - (Window::Generic9X1 { block, player }, Area::Storage) if block.ptr_eq(inventory) => { + (Window::Hopper { hopper, player }, Area::Storage) if hopper.ptr_eq(inventory) => { Some(slot + 0usize) } - (Window::Generic9X1 { block, player }, Area::Storage) if player.ptr_eq(inventory) => { - Some(slot + 9usize) + (Window::Hopper { hopper, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 4usize) } - (Window::Generic9X1 { block, player }, Area::Hotbar) if player.ptr_eq(inventory) => { - Some(slot + 36usize) + (Window::Hopper { hopper, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 31usize) } ( - Window::Enchantment { - enchantment_table, - player, - }, - Area::EnchantmentItem, - ) if enchantment_table.ptr_eq(inventory) => Some(slot + 0usize), - ( - Window::Enchantment { - enchantment_table, + Window::ShulkerBox { + shulker_box, player, }, - Area::EnchantmentLapis, - ) if enchantment_table.ptr_eq(inventory) => Some(slot + 1usize), + Area::Storage, + ) if shulker_box.ptr_eq(inventory) => Some(slot + 0usize), ( - Window::Enchantment { - enchantment_table, + Window::ShulkerBox { + shulker_box, player, }, Area::Storage, - ) if player.ptr_eq(inventory) => Some(slot + 2usize), + ) if player.ptr_eq(inventory) => Some(slot + 27usize), ( - Window::Enchantment { - enchantment_table, + Window::ShulkerBox { + shulker_box, player, }, Area::Hotbar, - ) if player.ptr_eq(inventory) => Some(slot + 29usize), + ) if player.ptr_eq(inventory) => Some(slot + 54usize), ( Window::Cartography { cartography_table, @@ -1065,27 +994,94 @@ impl Window { }, Area::Hotbar, ) if player.ptr_eq(inventory) => Some(slot + 30usize), - (Window::Beacon { beacon, player }, Area::BeaconPayment) - if beacon.ptr_eq(inventory) => + (Window::Grindstone { grindstone, player }, Area::GrindstoneInput1) + if grindstone.ptr_eq(inventory) => { Some(slot + 0usize) } - (Window::Beacon { beacon, player }, Area::Storage) if player.ptr_eq(inventory) => { + (Window::Grindstone { grindstone, player }, Area::GrindstoneInput2) + if grindstone.ptr_eq(inventory) => + { Some(slot + 1usize) } - (Window::Beacon { beacon, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + (Window::Grindstone { grindstone, player }, Area::GrindstoneOutput) + if grindstone.ptr_eq(inventory) => + { + Some(slot + 2usize) + } + (Window::Grindstone { grindstone, player }, Area::Storage) + if player.ptr_eq(inventory) => + { + Some(slot + 3usize) + } + (Window::Grindstone { grindstone, player }, Area::Hotbar) + if player.ptr_eq(inventory) => + { + Some(slot + 30usize) + } + (Window::Lectern { lectern, player }, Area::LecternBook) + if lectern.ptr_eq(inventory) => + { + Some(slot + 0usize) + } + (Window::Lectern { lectern, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 1usize) + } + (Window::Lectern { lectern, player }, Area::Hotbar) if player.ptr_eq(inventory) => { Some(slot + 28usize) } + (Window::Loom { loom, player }, Area::LoomBanner) if loom.ptr_eq(inventory) => { + Some(slot + 0usize) + } + (Window::Loom { loom, player }, Area::LoomDye) if loom.ptr_eq(inventory) => { + Some(slot + 1usize) + } + (Window::Loom { loom, player }, Area::LoomPattern) if loom.ptr_eq(inventory) => { + Some(slot + 2usize) + } + (Window::Loom { loom, player }, Area::LoomOutput) if loom.ptr_eq(inventory) => { + Some(slot + 3usize) + } + (Window::Loom { loom, player }, Area::Storage) if player.ptr_eq(inventory) => { + Some(slot + 4usize) + } + (Window::Loom { loom, player }, Area::Hotbar) if player.ptr_eq(inventory) => { + Some(slot + 31usize) + } + ( + Window::Stonecutter { + stonecutter, + player, + }, + Area::StonecutterInput, + ) if stonecutter.ptr_eq(inventory) => Some(slot + 0usize), + ( + Window::Stonecutter { + stonecutter, + player, + }, + Area::StonecutterOutput, + ) if stonecutter.ptr_eq(inventory) => Some(slot + 1usize), + ( + Window::Stonecutter { + stonecutter, + player, + }, + Area::Storage, + ) if player.ptr_eq(inventory) => Some(slot + 2usize), + ( + Window::Stonecutter { + stonecutter, + player, + }, + Area::Hotbar, + ) if player.ptr_eq(inventory) => Some(slot + 29usize), _ => None, } } } #[derive(Debug, Clone)] pub enum InventoryBacking { - CraftingTable { - crafting_input: [T; 9usize], - crafting_output: [T; 1usize], - }, Player { crafting_input: [T; 4usize], crafting_output: [T; 1usize], @@ -1100,6 +1096,10 @@ pub enum InventoryBacking { Chest { storage: [T; 27usize], }, + CraftingTable { + crafting_input: [T; 9usize], + crafting_output: [T; 1usize], + }, Furnace { furnace_ingredient: [T; 1usize], furnace_fuel: [T; 1usize], @@ -1107,15 +1107,6 @@ pub enum InventoryBacking { }, } impl InventoryBacking { - pub fn crafting_table() -> Self - where - T: Default, - { - InventoryBacking::CraftingTable { - crafting_input: Default::default(), - crafting_output: Default::default(), - } - } pub fn player() -> Self where T: Default, @@ -1140,6 +1131,15 @@ impl InventoryBacking { storage: Default::default(), } } + pub fn crafting_table() -> Self + where + T: Default, + { + InventoryBacking::CraftingTable { + crafting_input: Default::default(), + crafting_output: Default::default(), + } + } pub fn furnace() -> Self where T: Default, @@ -1152,20 +1152,6 @@ impl InventoryBacking { } pub fn area_slice(&self, area: Area) -> Option<&[T]> { match (self, area) { - ( - InventoryBacking::CraftingTable { - crafting_input, - crafting_output, - }, - Area::CraftingInput, - ) => Some(crafting_input), - ( - InventoryBacking::CraftingTable { - crafting_input, - crafting_output, - }, - Area::CraftingOutput, - ) => Some(crafting_output), ( InventoryBacking::Player { crafting_input, @@ -1293,6 +1279,20 @@ impl InventoryBacking { Area::Offhand, ) => Some(offhand), (InventoryBacking::Chest { storage }, Area::Storage) => Some(storage), + ( + InventoryBacking::CraftingTable { + crafting_input, + crafting_output, + }, + Area::CraftingInput, + ) => Some(crafting_input), + ( + InventoryBacking::CraftingTable { + crafting_input, + crafting_output, + }, + Area::CraftingOutput, + ) => Some(crafting_output), ( InventoryBacking::Furnace { furnace_ingredient, @@ -1322,7 +1322,6 @@ impl InventoryBacking { } pub fn areas(&self) -> &'static [Area] { match self { - InventoryBacking::CraftingTable { .. } => &[Area::CraftingInput, Area::CraftingOutput], InventoryBacking::Player { .. } => &[ Area::CraftingInput, Area::CraftingOutput, @@ -1335,6 +1334,7 @@ impl InventoryBacking { Area::Offhand, ], InventoryBacking::Chest { .. } => &[Area::Storage], + InventoryBacking::CraftingTable { .. } => &[Area::CraftingInput, Area::CraftingOutput], InventoryBacking::Furnace { .. } => &[ Area::FurnaceIngredient, Area::FurnaceFuel, @@ -1344,11 +1344,6 @@ impl InventoryBacking { } } impl crate::Inventory { - pub fn crafting_table() -> Self { - Self { - backing: std::sync::Arc::new(InventoryBacking::crafting_table()), - } - } pub fn player() -> Self { Self { backing: std::sync::Arc::new(InventoryBacking::player()), @@ -1359,6 +1354,11 @@ impl crate::Inventory { backing: std::sync::Arc::new(InventoryBacking::chest()), } } + pub fn crafting_table() -> Self { + Self { + backing: std::sync::Arc::new(InventoryBacking::crafting_table()), + } + } pub fn furnace() -> Self { Self { backing: std::sync::Arc::new(InventoryBacking::furnace()), diff --git a/libcraft/items/src/item.rs b/libcraft/items/src/item.rs index fc4a09ee7..50f040c9e 100644 --- a/libcraft/items/src/item.rs +++ b/libcraft/items/src/item.rs @@ -2227,8869 +2227,8869 @@ impl Item { #[inline] pub fn id(&self) -> u32 { match self { - Item::CraftingTable => 246, - Item::PinkTerracotta => 360, - Item::BirchFence => 259, - Item::OrangeTerracotta => 355, - Item::Spyglass => 799, - Item::LingeringPotion => 1008, - Item::BlackBanner => 997, - Item::BlueStainedGlass => 411, - Item::StoneHoe => 708, - Item::CyanTerracotta => 363, - Item::WeepingVines => 194, - Item::LightGrayWool => 165, - Item::Crossbow => 1033, - Item::SprucePressurePlate => 624, - Item::StoneSword => 704, - Item::JackOLantern => 267, - Item::CowSpawnEgg => 881, - Item::HornCoral => 531, - Item::MagentaCarpet => 375, - Item::PurpleCandle => 1090, - Item::SpruceStairs => 318, - Item::StrippedSpruceLog => 110, - Item::NetheriteHelmet => 758, - Item::EnderEye => 871, - Item::Beetroot => 1001, - Item::BlueTerracotta => 365, - Item::WaxedOxidizedCutCopperStairs => 96, - Item::DarkOakDoor => 637, - Item::MossyCobblestoneSlab => 571, - Item::CyanShulkerBox => 461, - Item::Observer => 594, - Item::IronBlock => 65, - Item::CyanDye => 819, - Item::Grindstone => 1048, - Item::GildedBlackstone => 1069, - Item::NetheriteBlock => 69, - Item::HornCoralBlock => 526, - Item::Shroomlight => 1058, - Item::CopperOre => 44, - Item::CobblestoneWall => 325, - Item::Campfire => 1056, - Item::PolishedBlackstoneWall => 340, - Item::OxeyeDaisy => 182, - Item::OakFenceGate => 649, - Item::PufferfishBucket => 783, - Item::YellowStainedGlassPane => 420, - Item::SeaLantern => 438, - Item::WarpedStairs => 322, - Item::LimeGlazedTerracotta => 473, - Item::RabbitFoot => 970, - Item::GoldenAxe => 712, - Item::Andesite => 6, - Item::GlowSquidSpawnEgg => 892, - Item::NoteBlock => 608, - Item::OrangeShulkerBox => 453, - Item::DarkOakTrapdoor => 646, - Item::DriedKelpBlock => 790, - Item::DeadHornCoralBlock => 521, - Item::CrimsonSlab => 210, - Item::GreenStainedGlassPane => 429, - Item::BrownTerracotta => 366, - Item::Bricks => 232, - Item::IronSword => 714, - Item::FlowerBannerPattern => 1036, - Item::Bell => 1051, - Item::AmethystCluster => 1099, - Item::RedstoneOre => 48, + Item::Stone => 1, + Item::Granite => 2, + Item::PolishedGranite => 3, + Item::Diorite => 4, Item::PolishedDiorite => 5, - Item::CrackedStoneBricks => 285, - Item::MushroomStew => 731, - Item::LightBlueCandle => 1083, - Item::OakSlab => 204, - Item::Clay => 255, + Item::Andesite => 6, + Item::PolishedAndesite => 7, + Item::Deepslate => 8, + Item::CobbledDeepslate => 9, + Item::PolishedDeepslate => 10, + Item::Calcite => 11, + Item::Tuff => 12, + Item::DripstoneBlock => 13, + Item::GrassBlock => 14, + Item::Dirt => 15, + Item::CoarseDirt => 16, + Item::Podzol => 17, + Item::RootedDirt => 18, + Item::CrimsonNylium => 19, + Item::WarpedNylium => 20, + Item::Cobblestone => 21, + Item::OakPlanks => 22, + Item::SprucePlanks => 23, Item::BirchPlanks => 24, - Item::BuddingAmethyst => 64, - Item::StoneButton => 609, - Item::SlimeBlock => 592, + Item::JunglePlanks => 25, + Item::AcaciaPlanks => 26, + Item::DarkOakPlanks => 27, + Item::CrimsonPlanks => 28, + Item::WarpedPlanks => 29, + Item::OakSapling => 30, + Item::SpruceSapling => 31, + Item::BirchSapling => 32, + Item::JungleSapling => 33, + Item::AcaciaSapling => 34, + Item::DarkOakSapling => 35, + Item::Bedrock => 36, + Item::Sand => 37, + Item::RedSand => 38, + Item::Gravel => 39, + Item::CoalOre => 40, Item::DeepslateCoalOre => 41, - Item::CutSandstoneSlab => 215, - Item::RedDye => 824, - Item::OakLeaves => 133, - Item::WhiteBed => 830, - Item::MusicDiscPigstep => 1028, - Item::WitherSkeletonSpawnEgg => 933, - Item::MagentaDye => 812, - Item::Vine => 299, - Item::StrippedCrimsonHyphae => 123, - Item::SmoothSandstoneStairs => 556, - Item::SpruceButton => 612, - Item::ClayBall => 789, - Item::MushroomStem => 294, - Item::HangingRoots => 200, - Item::LimeTerracotta => 359, - Item::BrewingStand => 869, - Item::Loom => 1035, - Item::WaxedExposedCutCopperStairs => 94, - Item::PolishedBlackstoneBricks => 1074, - Item::BrownStainedGlassPane => 428, + Item::IronOre => 42, + Item::DeepslateIronOre => 43, + Item::CopperOre => 44, + Item::DeepslateCopperOre => 45, + Item::GoldOre => 46, + Item::DeepslateGoldOre => 47, + Item::RedstoneOre => 48, + Item::DeepslateRedstoneOre => 49, + Item::EmeraldOre => 50, + Item::DeepslateEmeraldOre => 51, + Item::LapisOre => 52, + Item::DeepslateLapisOre => 53, + Item::DiamondOre => 54, + Item::DeepslateDiamondOre => 55, + Item::NetherGoldOre => 56, + Item::NetherQuartzOre => 57, + Item::AncientDebris => 58, + Item::CoalBlock => 59, + Item::RawIronBlock => 60, + Item::RawCopperBlock => 61, + Item::RawGoldBlock => 62, Item::AmethystBlock => 63, - Item::DragonHead => 958, - Item::OrangeDye => 811, - Item::SmallDripleaf => 202, - Item::ChorusPlant => 238, - Item::PolishedDeepslateSlab => 581, - Item::Bone => 827, - Item::CookedMutton => 981, - Item::WarpedStem => 108, - Item::BrownMushroom => 187, - Item::Pumpkin => 265, - Item::WaxedCopperBlock => 85, - Item::TurtleEgg => 516, - Item::Azalea => 152, - Item::LightBlueBed => 833, - Item::Honeycomb => 1059, - Item::CatSpawnEgg => 877, - Item::MossyCobblestoneWall => 326, - Item::CobblestoneSlab => 217, - Item::Obsidian => 235, - Item::GrayStainedGlass => 407, - Item::PolishedAndesiteSlab => 578, - Item::CrimsonTrapdoor => 647, - Item::GoldenHorseArmor => 974, - Item::SpruceDoor => 633, - Item::IronPickaxe => 716, - Item::CrimsonButton => 617, - Item::BirchFenceGate => 651, - Item::Mycelium => 303, - Item::CreeperHead => 957, - Item::BlackTerracotta => 369, - Item::HoglinSpawnEgg => 895, - Item::InfestedStone => 276, - Item::FermentedSpiderEye => 866, - Item::TrappedChest => 605, - Item::VindicatorSpawnEgg => 930, - Item::RawCopper => 693, - Item::NetheriteAxe => 727, - Item::LimeWool => 162, - Item::PinkWool => 163, - Item::OakPlanks => 22, + Item::BuddingAmethyst => 64, + Item::IronBlock => 65, + Item::CopperBlock => 66, + Item::GoldBlock => 67, + Item::DiamondBlock => 68, + Item::NetheriteBlock => 69, + Item::ExposedCopper => 70, + Item::WeatheredCopper => 71, + Item::OxidizedCopper => 72, + Item::CutCopper => 73, + Item::ExposedCutCopper => 74, + Item::WeatheredCutCopper => 75, + Item::OxidizedCutCopper => 76, + Item::CutCopperStairs => 77, + Item::ExposedCutCopperStairs => 78, Item::WeatheredCutCopperStairs => 79, - Item::Wheat => 736, - Item::GreenStainedGlass => 413, - Item::DamagedAnvil => 348, - Item::CreeperBannerPattern => 1037, - Item::PolishedBlackstoneStairs => 1072, - Item::BlackstoneSlab => 1067, - Item::Podzol => 17, - Item::SoulSand => 269, - Item::GreenShulkerBox => 465, - Item::PolishedBlackstonePressurePlate => 620, + Item::OxidizedCutCopperStairs => 80, + Item::CutCopperSlab => 81, + Item::ExposedCutCopperSlab => 82, + Item::WeatheredCutCopperSlab => 83, + Item::OxidizedCutCopperSlab => 84, + Item::WaxedCopperBlock => 85, + Item::WaxedExposedCopper => 86, + Item::WaxedWeatheredCopper => 87, + Item::WaxedOxidizedCopper => 88, + Item::WaxedCutCopper => 89, + Item::WaxedExposedCutCopper => 90, + Item::WaxedWeatheredCutCopper => 91, + Item::WaxedOxidizedCutCopper => 92, + Item::WaxedCutCopperStairs => 93, + Item::WaxedExposedCutCopperStairs => 94, + Item::WaxedWeatheredCutCopperStairs => 95, + Item::WaxedOxidizedCutCopperStairs => 96, + Item::WaxedCutCopperSlab => 97, + Item::WaxedExposedCutCopperSlab => 98, + Item::WaxedWeatheredCutCopperSlab => 99, + Item::WaxedOxidizedCutCopperSlab => 100, + Item::OakLog => 101, Item::SpruceLog => 102, - Item::WarpedRoots => 192, - Item::RedBanner => 996, - Item::Salmon => 802, - Item::OrangeCandle => 1081, - Item::IronTrapdoor => 640, - Item::IronAxe => 717, - Item::PhantomMembrane => 1030, - Item::LimeBanner => 987, - Item::PurpleBed => 840, - Item::Bowl => 730, - Item::RedBed => 844, - Item::PolishedAndesite => 7, - Item::BirchStairs => 319, - Item::BrownCarpet => 385, - Item::CrimsonStairs => 321, - Item::Chain => 296, - Item::PrismarineBrickStairs => 436, - Item::DeepslateCopperOre => 45, - Item::ShulkerBox => 451, - Item::BoneBlock => 449, - Item::Leather => 781, - Item::WarpedWartBlock => 447, - Item::MagentaConcrete => 486, - Item::WritableBook => 942, - Item::ChiseledQuartzBlock => 349, - Item::ChiseledSandstone => 147, - Item::OrangeCarpet => 374, - Item::DeepslateGoldOre => 47, - Item::RedstoneLamp => 607, - Item::WarpedButton => 618, - Item::DirtPath => 393, - Item::BirchTrapdoor => 643, - Item::WarpedFungusOnAStick => 668, - Item::BrickSlab => 218, - Item::GlowstoneDust => 800, - Item::YellowBanner => 986, - Item::SplashPotion => 1005, - Item::LapisBlock => 145, - Item::Lodestone => 1064, - Item::Cornflower => 183, - Item::PointedDripstone => 1100, - Item::WhiteStainedGlassPane => 416, - Item::HayBlock => 372, - Item::GoldenChestplate => 755, Item::BirchLog => 103, - Item::Chicken => 855, - Item::StrippedCrimsonStem => 115, - Item::OrangeStainedGlassPane => 417, - Item::GrayWool => 164, - Item::CyanGlazedTerracotta => 477, - Item::RepeatingCommandBlock => 443, - Item::BlueIce => 547, - Item::FireCharge => 941, - Item::Candle => 1079, - Item::ExposedCutCopperSlab => 82, - Item::MooshroomSpawnEgg => 900, - Item::BakedPotato => 949, - Item::RedShulkerBox => 466, - Item::Hopper => 595, - Item::OrangeConcrete => 485, - Item::StoneShovel => 705, - Item::OakPressurePlate => 623, - Item::EndStone => 312, - Item::BrickStairs => 301, - Item::DeadBrainCoral => 532, - Item::ElderGuardianSpawnEgg => 886, - Item::Light => 371, - Item::WarpedFence => 264, - Item::QuartzSlab => 221, - Item::Gunpowder => 734, - Item::Bow => 682, - Item::BrownDye => 822, - Item::Cod => 801, - Item::RedNetherBrickSlab => 577, - Item::MagentaBed => 832, + Item::JungleLog => 104, Item::AcaciaLog => 105, - Item::GrayBed => 837, - Item::InfestedStoneBricks => 278, - Item::LightGrayStainedGlass => 408, - Item::TubeCoralBlock => 522, - Item::InkSac => 807, - Item::MusicDisc11 => 1025, - Item::SandstoneSlab => 214, - Item::BeeNest => 1060, - Item::LightBlueStainedGlass => 403, - Item::OakSign => 768, - Item::ChiseledPolishedBlackstone => 1073, - Item::PrismarineSlab => 225, - Item::DarkOakLeaves => 138, - Item::NetherBrickStairs => 309, - Item::ZombieHead => 956, - Item::GraniteWall => 331, - Item::DeadTubeCoral => 536, - Item::SpruceSlab => 205, - Item::PolishedDioriteStairs => 552, - Item::GuardianSpawnEgg => 894, - Item::WolfSpawnEgg => 934, - Item::SquidSpawnEgg => 922, - Item::PurpleTerracotta => 364, - Item::TropicalFish => 803, - Item::FireworkRocket => 961, - Item::BlueShulkerBox => 463, - Item::SlimeSpawnEgg => 920, - Item::DarkOakSlab => 209, - Item::GoldenHelmet => 754, - Item::YellowDye => 814, - Item::StoneBricks => 283, - Item::DeadHornCoralFan => 546, - Item::FlowerPot => 946, - Item::GoldNugget => 861, - Item::MediumAmethystBud => 1097, - Item::TntMinecart => 665, + Item::DarkOakLog => 106, + Item::CrimsonStem => 107, + Item::WarpedStem => 108, + Item::StrippedOakLog => 109, + Item::StrippedSpruceLog => 110, + Item::StrippedBirchLog => 111, + Item::StrippedJungleLog => 112, + Item::StrippedAcaciaLog => 113, + Item::StrippedDarkOakLog => 114, + Item::StrippedCrimsonStem => 115, Item::StrippedWarpedStem => 116, - Item::Chest => 245, - Item::SculkSensor => 603, - Item::PolishedBlackstoneBrickSlab => 1075, - Item::Cobweb => 149, - Item::DeadFireCoralBlock => 520, - Item::BlazePowder => 867, - Item::JungleButton => 614, - Item::SkeletonSkull => 953, - Item::LimeDye => 815, - Item::PigSpawnEgg => 906, - Item::Diorite => 4, - Item::PoweredRail => 657, - Item::YellowWool => 161, - Item::RabbitSpawnEgg => 912, - Item::LightBlueStainedGlassPane => 419, - Item::LavaBucket => 778, - Item::AcaciaLeaves => 137, - Item::Beacon => 324, - Item::DeadBubbleCoral => 533, - Item::DarkOakPlanks => 27, - Item::RoseBush => 396, - Item::Porkchop => 763, - Item::HopperMinecart => 666, - Item::JungleDoor => 635, - Item::WaterBucket => 777, - Item::Beef => 853, - Item::SkeletonSpawnEgg => 918, - Item::OxidizedCopper => 72, - Item::MusicDisc13 => 1015, - Item::PrismarineCrystals => 966, - Item::NetherQuartzOre => 57, - Item::WhiteStainedGlass => 400, - Item::AxolotlSpawnEgg => 873, - Item::Lilac => 395, - Item::BoneMeal => 826, - Item::BrownMushroomBlock => 292, - Item::GoldenCarrot => 952, - Item::QuartzPillar => 352, - Item::IronNugget => 1012, - Item::Potion => 863, - Item::GraniteStairs => 558, - Item::PurpleConcrete => 494, - Item::NameTag => 978, - Item::DeepslateTiles => 289, - Item::DarkOakBoat => 675, - Item::CommandBlock => 323, - Item::MusicDiscBlocks => 1017, - Item::StructureBlock => 676, - Item::Conduit => 548, - Item::GoldenPickaxe => 711, - Item::DiamondChestplate => 751, - Item::JungleSlab => 207, - Item::YellowConcrete => 488, - Item::Redstone => 585, - Item::IronIngot => 692, - Item::CodBucket => 785, - Item::FishingRod => 797, - Item::GreenDye => 823, - Item::ChainmailBoots => 745, - Item::Minecart => 662, - Item::Terracotta => 389, - Item::NetherGoldOre => 56, + Item::StrippedOakWood => 117, + Item::StrippedSpruceWood => 118, + Item::StrippedBirchWood => 119, + Item::StrippedJungleWood => 120, + Item::StrippedAcaciaWood => 121, + Item::StrippedDarkOakWood => 122, + Item::StrippedCrimsonHyphae => 123, + Item::StrippedWarpedHyphae => 124, + Item::OakWood => 125, + Item::SpruceWood => 126, + Item::BirchWood => 127, + Item::JungleWood => 128, + Item::AcaciaWood => 129, + Item::DarkOakWood => 130, + Item::CrimsonHyphae => 131, + Item::WarpedHyphae => 132, + Item::OakLeaves => 133, + Item::SpruceLeaves => 134, Item::BirchLeaves => 135, - Item::LightGrayStainedGlassPane => 424, - Item::DarkOakButton => 616, - Item::LightBlueDye => 813, - Item::MusicDiscMellohi => 1021, - Item::CobbledDeepslateSlab => 580, - Item::CrackedPolishedBlackstoneBricks => 1077, - Item::WitchSpawnEgg => 932, - Item::DeadTubeCoralFan => 542, - Item::WhiteCandle => 1080, - Item::WeatheredCutCopperSlab => 83, - Item::GlowItemFrame => 945, - Item::DeepslateBricks => 287, - Item::RespawnAnchor => 1078, - Item::StrippedJungleLog => 112, + Item::JungleLeaves => 136, + Item::AcaciaLeaves => 137, + Item::DarkOakLeaves => 138, + Item::AzaleaLeaves => 139, + Item::FloweringAzaleaLeaves => 140, + Item::Sponge => 141, + Item::WetSponge => 142, + Item::Glass => 143, + Item::TintedGlass => 144, + Item::LapisBlock => 145, + Item::Sandstone => 146, + Item::ChiseledSandstone => 147, + Item::CutSandstone => 148, + Item::Cobweb => 149, + Item::Grass => 150, + Item::Fern => 151, + Item::Azalea => 152, + Item::FloweringAzalea => 153, + Item::DeadBush => 154, + Item::Seagrass => 155, Item::SeaPickle => 156, - Item::DeepslateEmeraldOre => 51, - Item::RedCarpet => 387, - Item::PrismarineBricks => 433, - Item::MossCarpet => 198, - Item::NetheriteHoe => 728, - Item::GoldBlock => 67, - Item::InfestedCrackedStoneBricks => 280, - Item::RawGoldBlock => 62, - Item::JungleSign => 771, - Item::EnchantedBook => 963, - Item::BlueBed => 841, - Item::EndCrystal => 998, - Item::SandstoneWall => 336, - Item::ChiseledStoneBricks => 286, - Item::Torch => 236, - Item::OakBoat => 670, - Item::SoulCampfire => 1057, + Item::WhiteWool => 157, + Item::OrangeWool => 158, + Item::MagentaWool => 159, + Item::LightBlueWool => 160, + Item::YellowWool => 161, + Item::LimeWool => 162, + Item::PinkWool => 163, + Item::GrayWool => 164, + Item::LightGrayWool => 165, + Item::CyanWool => 166, + Item::PurpleWool => 167, + Item::BlueWool => 168, + Item::BrownWool => 169, + Item::GreenWool => 170, + Item::RedWool => 171, + Item::BlackWool => 172, + Item::Dandelion => 173, Item::Poppy => 174, - Item::BlueGlazedTerracotta => 479, - Item::BeetrootSeeds => 1002, - Item::WeatheredCopper => 71, - Item::WaxedExposedCutCopperSlab => 98, - Item::NetherBrickSlab => 220, + Item::BlueOrchid => 175, + Item::Allium => 176, + Item::AzureBluet => 177, + Item::RedTulip => 178, + Item::OrangeTulip => 179, + Item::WhiteTulip => 180, + Item::PinkTulip => 181, + Item::OxeyeDaisy => 182, + Item::Cornflower => 183, + Item::LilyOfTheValley => 184, + Item::WitherRose => 185, + Item::SporeBlossom => 186, + Item::BrownMushroom => 187, + Item::RedMushroom => 188, + Item::CrimsonFungus => 189, + Item::WarpedFungus => 190, + Item::CrimsonRoots => 191, + Item::WarpedRoots => 192, Item::NetherSprouts => 193, - Item::BlackGlazedTerracotta => 483, - Item::HoneyBlock => 593, - Item::OrangeBanner => 983, - Item::HornCoralFan => 541, - Item::MagentaCandle => 1082, - Item::AzaleaLeaves => 139, - Item::FlintAndSteel => 680, - Item::GrayStainedGlassPane => 423, - Item::JungleSapling => 33, - Item::WaxedWeatheredCutCopperStairs => 95, - Item::EvokerSpawnEgg => 889, - Item::SkeletonHorseSpawnEgg => 919, - Item::MagentaWool => 159, - Item::WarpedDoor => 639, - Item::FireCoralFan => 540, - Item::Lectern => 598, - Item::Shield => 1009, - Item::Comparator => 589, - Item::DeepslateTileWall => 345, - Item::PolishedGraniteStairs => 549, - Item::DarkOakLog => 106, - Item::SmoothSandstoneSlab => 573, - Item::Glowstone => 275, - Item::RedstoneTorch => 586, - Item::Scute => 679, - Item::GraniteSlab => 575, - Item::Mutton => 980, - Item::BatSpawnEgg => 874, - Item::MagentaStainedGlassPane => 418, - Item::BlackWool => 172, - Item::Pufferfish => 804, - Item::GlowInkSac => 808, - Item::TubeCoralFan => 537, - Item::DaylightDetector => 602, - Item::ChestMinecart => 663, - Item::ParrotSpawnEgg => 904, - Item::ItemFrame => 944, + Item::WeepingVines => 194, + Item::TwistingVines => 195, Item::SugarCane => 196, - Item::RedMushroom => 188, - Item::LightBlueCarpet => 376, + Item::Kelp => 197, + Item::MossCarpet => 198, + Item::MossBlock => 199, + Item::HangingRoots => 200, + Item::BigDripleaf => 201, + Item::SmallDripleaf => 202, + Item::Bamboo => 203, + Item::OakSlab => 204, + Item::SpruceSlab => 205, + Item::BirchSlab => 206, + Item::JungleSlab => 207, + Item::AcaciaSlab => 208, + Item::DarkOakSlab => 209, + Item::CrimsonSlab => 210, + Item::WarpedSlab => 211, + Item::StoneSlab => 212, + Item::SmoothStoneSlab => 213, + Item::SandstoneSlab => 214, + Item::CutSandstoneSlab => 215, Item::PetrifiedOakSlab => 216, - Item::CopperIngot => 694, - Item::StonePickaxe => 706, - Item::ChiseledRedSandstone => 440, + Item::CobblestoneSlab => 217, + Item::BrickSlab => 218, + Item::StoneBrickSlab => 219, + Item::NetherBrickSlab => 220, + Item::QuartzSlab => 221, + Item::RedSandstoneSlab => 222, + Item::CutRedSandstoneSlab => 223, + Item::PurpurSlab => 224, + Item::PrismarineSlab => 225, Item::PrismarineBrickSlab => 226, - Item::StrippedOakWood => 117, - Item::PolishedDeepslateStairs => 564, - Item::AxolotlBucket => 787, + Item::DarkPrismarineSlab => 227, + Item::SmoothQuartz => 228, + Item::SmoothRedSandstone => 229, Item::SmoothSandstone => 230, - Item::DioriteStairs => 562, - Item::JungleFence => 260, - Item::CutCopperStairs => 77, - Item::StrippedOakLog => 109, - Item::Charcoal => 685, - Item::IronHelmet => 746, - Item::PolishedDioriteSlab => 570, - Item::MelonSlice => 849, - Item::WaxedExposedCutCopper => 90, - Item::CutRedSandstoneSlab => 223, - Item::Apple => 681, - Item::WaxedOxidizedCutCopperSlab => 100, - Item::CoalBlock => 59, - Item::MossBlock => 199, - Item::BrainCoralFan => 538, - Item::ExposedCutCopper => 74, - Item::AcaciaBoat => 674, - Item::TippedArrow => 1007, - Item::BrickWall => 327, - Item::SandstoneStairs => 315, - Item::NetheriteScrap => 698, - Item::SmoothQuartzStairs => 557, - Item::OakSapling => 30, - Item::Ice => 252, - Item::AcaciaButton => 615, - Item::YellowConcretePowder => 504, - Item::GrayConcretePowder => 507, - Item::Basalt => 271, - Item::AncientDebris => 58, - Item::EndStoneBrickWall => 337, - Item::PinkConcrete => 490, - Item::BlackConcretePowder => 515, - Item::DeepslateBrickWall => 344, - Item::LightGrayTerracotta => 362, - Item::Cake => 829, - Item::MusicDiscWard => 1024, - Item::StrippedJungleWood => 120, - Item::RedTulip => 178, - Item::Peony => 397, - Item::Emerald => 687, - Item::PinkTulip => 181, - Item::CreeperSpawnEgg => 882, - Item::Egg => 794, - Item::StoneBrickSlab => 219, + Item::SmoothStone => 231, + Item::Bricks => 232, + Item::Bookshelf => 233, + Item::MossyCobblestone => 234, + Item::Obsidian => 235, + Item::Torch => 236, + Item::EndRod => 237, + Item::ChorusPlant => 238, + Item::ChorusFlower => 239, + Item::PurpurBlock => 240, + Item::PurpurPillar => 241, + Item::PurpurStairs => 242, Item::Spawner => 243, - Item::BlueStainedGlassPane => 427, - Item::MagentaShulkerBox => 454, - Item::Diamond => 686, - Item::CrimsonFence => 263, - Item::JungleLeaves => 136, - Item::StrippedWarpedHyphae => 124, - Item::WaxedCutCopperSlab => 97, - Item::PolishedGranite => 3, - Item::Snow => 251, - Item::BlueConcrete => 495, - Item::OakButton => 611, - Item::AndesiteStairs => 559, - Item::OrangeGlazedTerracotta => 469, - Item::Compass => 795, - Item::MagmaCream => 868, - Item::RedSand => 38, - Item::NetheriteBoots => 761, + Item::OakStairs => 244, + Item::Chest => 245, + Item::CraftingTable => 246, Item::Farmland => 247, - Item::AcaciaStairs => 391, - Item::SmoothQuartzSlab => 574, - Item::WarpedPlanks => 29, - Item::FloweringAzalea => 153, - Item::LeatherHorseArmor => 976, - Item::DarkOakSapling => 35, - Item::YellowGlazedTerracotta => 472, - Item::BirchSlab => 206, - Item::GoldenShovel => 710, + Item::Furnace => 248, + Item::Ladder => 249, + Item::CobblestoneStairs => 250, + Item::Snow => 251, + Item::Ice => 252, + Item::SnowBlock => 253, + Item::Cactus => 254, + Item::Clay => 255, + Item::Jukebox => 256, + Item::OakFence => 257, + Item::SpruceFence => 258, + Item::BirchFence => 259, + Item::JungleFence => 260, + Item::AcaciaFence => 261, + Item::DarkOakFence => 262, + Item::CrimsonFence => 263, + Item::WarpedFence => 264, + Item::Pumpkin => 265, Item::CarvedPumpkin => 266, - Item::JungleTrapdoor => 644, - Item::WoodenHoe => 703, - Item::CobbledDeepslateWall => 342, - Item::PumpkinSeeds => 851, + Item::JackOLantern => 267, + Item::Netherrack => 268, + Item::SoulSand => 269, + Item::SoulSoil => 270, + Item::Basalt => 271, + Item::PolishedBasalt => 272, + Item::SmoothBasalt => 273, + Item::SoulTorch => 274, + Item::Glowstone => 275, + Item::InfestedStone => 276, + Item::InfestedCobblestone => 277, + Item::InfestedStoneBricks => 278, Item::InfestedMossyStoneBricks => 279, - Item::PiglinSpawnEgg => 907, - Item::CyanBanner => 991, - Item::CookedBeef => 854, - Item::DiamondBlock => 68, - Item::StructureVoid => 450, - Item::WarpedNylium => 20, - Item::DarkPrismarine => 434, - Item::WaxedOxidizedCopper => 88, - Item::JunglePressurePlate => 626, - Item::NetheriteLeggings => 760, - Item::StraySpawnEgg => 923, - Item::DarkOakSign => 773, - Item::Carrot => 947, - Item::Lantern => 1052, - Item::DiamondHelmet => 750, - Item::Brick => 788, - Item::PolishedBlackstoneBrickStairs => 1076, - Item::Granite => 2, - Item::GrayGlazedTerracotta => 475, - Item::CyanStainedGlass => 409, - Item::LightGrayShulkerBox => 460, - Item::Sand => 37, - Item::RedConcrete => 498, - Item::ZombieHorseSpawnEgg => 937, - Item::StrippedAcaciaWood => 121, - Item::GrayTerracotta => 361, - Item::DarkPrismarineStairs => 437, - Item::SpectralArrow => 1006, - Item::Seagrass => 155, - Item::Anvil => 346, - Item::DeadHornCoral => 535, - Item::DiamondSword => 719, - Item::BlueConcretePowder => 511, + Item::InfestedCrackedStoneBricks => 280, + Item::InfestedChiseledStoneBricks => 281, + Item::InfestedDeepslate => 282, + Item::StoneBricks => 283, Item::MossyStoneBricks => 284, - Item::MilkBucket => 782, - Item::DeadBubbleCoralBlock => 519, - Item::ExposedCutCopperStairs => 78, - Item::DeepslateRedstoneOre => 49, - Item::YellowTerracotta => 358, - Item::BirchSign => 770, - Item::Deepslate => 8, - Item::RawIronBlock => 60, - Item::CrimsonPressurePlate => 629, - Item::AcaciaDoor => 636, - Item::MagentaConcretePowder => 502, - Item::ZombieSpawnEgg => 936, - Item::WitherSkeletonSkull => 954, - Item::BlackShulkerBox => 467, + Item::CrackedStoneBricks => 285, + Item::ChiseledStoneBricks => 286, + Item::DeepslateBricks => 287, + Item::CrackedDeepslateBricks => 288, + Item::DeepslateTiles => 289, + Item::CrackedDeepslateTiles => 290, + Item::ChiseledDeepslate => 291, + Item::BrownMushroomBlock => 292, Item::RedMushroomBlock => 293, - Item::SuspiciousStew => 1034, - Item::YellowShulkerBox => 456, - Item::LightWeightedPressurePlate => 621, - Item::ChainmailLeggings => 744, - Item::CrimsonFenceGate => 655, - Item::GrayConcrete => 491, - Item::DeepslateBrickStairs => 565, - Item::PurpleStainedGlassPane => 426, - Item::DarkOakWood => 130, - Item::Painting => 765, - Item::SmoothRedSandstoneSlab => 568, - Item::CookedSalmon => 806, - Item::Map => 951, - Item::Dandelion => 173, - Item::ShulkerShell => 1011, - Item::MusicDiscWait => 1026, - Item::LightGrayDye => 818, - Item::GhastTear => 860, - Item::ChainmailHelmet => 742, - Item::Bread => 737, - Item::PoisonousPotato => 950, - Item::IronShovel => 715, - Item::EndermiteSpawnEgg => 888, - Item::LightGrayGlazedTerracotta => 476, - Item::NetherBrickWall => 333, - Item::GrayDye => 817, - Item::Elytra => 669, - Item::Snowball => 780, + Item::MushroomStem => 294, + Item::IronBars => 295, + Item::Chain => 296, + Item::GlassPane => 297, Item::Melon => 298, - Item::ZoglinSpawnEgg => 935, - Item::BrownWool => 169, - Item::WitherRose => 185, - Item::TallGrass => 398, - Item::Rabbit => 967, - Item::PolishedBlackstoneButton => 610, - Item::WeatheredCutCopper => 75, - Item::EndRod => 237, - Item::Calcite => 11, - Item::BirchButton => 613, - Item::ShulkerSpawnEgg => 916, - Item::DarkPrismarineSlab => 227, - Item::TropicalFishSpawnEgg => 926, - Item::DiamondShovel => 720, - Item::HorseSpawnEgg => 896, - Item::GreenWool => 170, - Item::OrangeTulip => 179, - Item::CobblestoneStairs => 250, - Item::LimeStainedGlass => 405, - Item::BrownConcrete => 496, - Item::BrownGlazedTerracotta => 480, - Item::TraderLlamaSpawnEgg => 925, - Item::PurpleGlazedTerracotta => 478, - Item::RedNetherBrickStairs => 560, - Item::BirchPressurePlate => 625, - Item::WarpedFenceGate => 656, - Item::DiamondPickaxe => 721, + Item::Vine => 299, + Item::GlowLichen => 300, + Item::BrickStairs => 301, + Item::StoneBrickStairs => 302, + Item::Mycelium => 303, + Item::LilyPad => 304, + Item::NetherBricks => 305, + Item::CrackedNetherBricks => 306, + Item::ChiseledNetherBricks => 307, + Item::NetherBrickFence => 308, + Item::NetherBrickStairs => 309, + Item::EnchantingTable => 310, + Item::EndPortalFrame => 311, + Item::EndStone => 312, + Item::EndStoneBricks => 313, + Item::DragonEgg => 314, + Item::SandstoneStairs => 315, + Item::EnderChest => 316, + Item::EmeraldBlock => 317, + Item::SpruceStairs => 318, + Item::BirchStairs => 319, + Item::JungleStairs => 320, + Item::CrimsonStairs => 321, + Item::WarpedStairs => 322, + Item::CommandBlock => 323, + Item::Beacon => 324, + Item::CobblestoneWall => 325, + Item::MossyCobblestoneWall => 326, + Item::BrickWall => 327, + Item::PrismarineWall => 328, + Item::RedSandstoneWall => 329, Item::MossyStoneBrickWall => 330, - Item::CookedChicken => 856, - Item::MagmaCubeSpawnEgg => 899, - Item::NetherBrick => 964, - Item::LightningRod => 601, - Item::BlastFurnace => 1045, - Item::PurpleDye => 820, - Item::ChorusFruit => 999, - Item::DioriteWall => 338, - Item::TotemOfUndying => 1010, - Item::PurpurSlab => 224, - Item::BrownConcretePowder => 512, - Item::BlueCandle => 1091, - Item::WarpedSlab => 211, - Item::PinkConcretePowder => 506, - Item::GoldenHoe => 713, - Item::SlimeBall => 793, - Item::PurpleConcretePowder => 510, - Item::Jigsaw => 677, - Item::CookedCod => 805, + Item::GraniteWall => 331, + Item::StoneBrickWall => 332, + Item::NetherBrickWall => 333, Item::AndesiteWall => 334, + Item::RedNetherBrickWall => 335, + Item::SandstoneWall => 336, + Item::EndStoneBrickWall => 337, + Item::DioriteWall => 338, + Item::BlackstoneWall => 339, + Item::PolishedBlackstoneWall => 340, + Item::PolishedBlackstoneBrickWall => 341, + Item::CobbledDeepslateWall => 342, Item::PolishedDeepslateWall => 343, - Item::Grass => 150, - Item::AcaciaWood => 129, - Item::RedWool => 171, - Item::SalmonBucket => 784, - Item::NetherStar => 959, - Item::Sandstone => 146, - Item::GhastSpawnEgg => 891, - Item::StoneSlab => 212, + Item::DeepslateBrickWall => 344, + Item::DeepslateTileWall => 345, + Item::Anvil => 346, + Item::ChippedAnvil => 347, + Item::DamagedAnvil => 348, + Item::ChiseledQuartzBlock => 349, Item::QuartzBlock => 350, - Item::Furnace => 248, - Item::Clock => 798, - Item::DragonEgg => 314, - Item::Scaffolding => 584, - Item::PiglinBannerPattern => 1041, - Item::HoneyBottle => 1062, - Item::PurpleShulkerBox => 462, - Item::StonePressurePlate => 619, - Item::OakStairs => 244, - Item::SpruceTrapdoor => 642, - Item::PolishedBlackstoneSlab => 1071, - Item::OrangeWool => 158, - Item::SoulSoil => 270, - Item::DeepslateIronOre => 43, + Item::QuartzBricks => 351, + Item::QuartzPillar => 352, + Item::QuartzStairs => 353, + Item::WhiteTerracotta => 354, + Item::OrangeTerracotta => 355, + Item::MagentaTerracotta => 356, + Item::LightBlueTerracotta => 357, + Item::YellowTerracotta => 358, + Item::LimeTerracotta => 359, + Item::PinkTerracotta => 360, + Item::GrayTerracotta => 361, + Item::LightGrayTerracotta => 362, + Item::CyanTerracotta => 363, + Item::PurpleTerracotta => 364, + Item::BlueTerracotta => 365, + Item::BrownTerracotta => 366, + Item::GreenTerracotta => 367, + Item::RedTerracotta => 368, + Item::BlackTerracotta => 369, Item::Barrier => 370, - Item::LlamaSpawnEgg => 898, - Item::HuskSpawnEgg => 897, - Item::CommandBlockMinecart => 979, - Item::LightBlueConcrete => 487, - Item::CocoaBeans => 809, - Item::WrittenBook => 943, - Item::HoneycombBlock => 1063, - Item::BubbleCoralBlock => 524, - Item::DeadFireCoral => 534, - Item::LimeConcretePowder => 505, - Item::WaxedCutCopperStairs => 93, - Item::RedstoneBlock => 587, - Item::WarpedPressurePlate => 630, - Item::RedSandstoneStairs => 442, - Item::StoneBrickWall => 332, - Item::LightGrayBed => 838, - Item::MossyCobblestone => 234, - Item::FoxSpawnEgg => 890, - Item::AcaciaFenceGate => 653, - Item::WarpedSign => 775, - Item::Bundle => 796, - Item::SmoothRedSandstone => 229, - Item::ChiseledNetherBricks => 307, - Item::OxidizedCutCopper => 76, - Item::Bookshelf => 233, - Item::NetheriteSword => 724, - Item::AcaciaSign => 772, - Item::Arrow => 683, - Item::OrangeBed => 831, - Item::SilverfishSpawnEgg => 917, - Item::SoulLantern => 1053, - Item::PinkCandle => 1086, - Item::DriedKelp => 850, - Item::SpruceSign => 769, + Item::Light => 371, + Item::HayBlock => 372, + Item::WhiteCarpet => 373, + Item::OrangeCarpet => 374, + Item::MagentaCarpet => 375, + Item::LightBlueCarpet => 376, + Item::YellowCarpet => 377, + Item::LimeCarpet => 378, + Item::PinkCarpet => 379, + Item::GrayCarpet => 380, + Item::LightGrayCarpet => 381, + Item::CyanCarpet => 382, Item::PurpleCarpet => 383, - Item::EndStoneBrickSlab => 572, - Item::BirchSapling => 32, + Item::BlueCarpet => 384, + Item::BrownCarpet => 385, + Item::GreenCarpet => 386, + Item::RedCarpet => 387, + Item::BlackCarpet => 388, + Item::Terracotta => 389, + Item::PackedIce => 390, + Item::AcaciaStairs => 391, + Item::DarkOakStairs => 392, + Item::DirtPath => 393, Item::Sunflower => 394, - Item::Book => 792, - Item::CrimsonFungus => 189, - Item::RabbitHide => 971, - Item::EndStoneBrickStairs => 554, - Item::StoneStairs => 555, - Item::Piston => 590, - Item::WhiteWool => 157, - Item::SnowBlock => 253, - Item::AzureBluet => 177, - Item::ExposedCopper => 70, - Item::CutCopper => 73, - Item::GreenCandle => 1093, - Item::ChainCommandBlock => 444, + Item::Lilac => 395, + Item::RoseBush => 396, + Item::Peony => 397, + Item::TallGrass => 398, + Item::LargeFern => 399, + Item::WhiteStainedGlass => 400, + Item::OrangeStainedGlass => 401, + Item::MagentaStainedGlass => 402, + Item::LightBlueStainedGlass => 403, Item::YellowStainedGlass => 404, - Item::GreenTerracotta => 367, - Item::LapisLazuli => 688, - Item::NetheriteIngot => 697, - Item::PufferfishSpawnEgg => 911, - Item::RedTerracotta => 368, - Item::InfestedDeepslate => 282, - Item::PackedIce => 390, - Item::InfestedCobblestone => 277, - Item::AcaciaPlanks => 26, - Item::WoodenPickaxe => 701, - Item::StrippedAcaciaLog => 113, - Item::HeavyWeightedPressurePlate => 622, - Item::MossyCobblestoneStairs => 553, - Item::Bamboo => 203, - Item::FloweringAzaleaLeaves => 140, - Item::CrimsonSign => 774, - Item::MusicDiscChirp => 1018, - Item::IronLeggings => 748, - Item::LightBlueGlazedTerracotta => 471, + Item::LimeStainedGlass => 405, + Item::PinkStainedGlass => 406, + Item::GrayStainedGlass => 407, + Item::LightGrayStainedGlass => 408, + Item::CyanStainedGlass => 409, + Item::PurpleStainedGlass => 410, + Item::BlueStainedGlass => 411, + Item::BrownStainedGlass => 412, + Item::GreenStainedGlass => 413, + Item::RedStainedGlass => 414, + Item::BlackStainedGlass => 415, + Item::WhiteStainedGlassPane => 416, + Item::OrangeStainedGlassPane => 417, + Item::MagentaStainedGlassPane => 418, + Item::LightBlueStainedGlassPane => 419, + Item::YellowStainedGlassPane => 420, + Item::LimeStainedGlassPane => 421, + Item::PinkStainedGlassPane => 422, + Item::GrayStainedGlassPane => 423, + Item::LightGrayStainedGlassPane => 424, + Item::CyanStainedGlassPane => 425, + Item::PurpleStainedGlassPane => 426, + Item::BlueStainedGlassPane => 427, + Item::BrownStainedGlassPane => 428, + Item::GreenStainedGlassPane => 429, + Item::RedStainedGlassPane => 430, Item::BlackStainedGlassPane => 431, - Item::PinkBed => 836, - Item::NautilusShell => 1031, - Item::EnchantingTable => 310, - Item::PurpurBlock => 240, - Item::PlayerHead => 955, - Item::WhiteTulip => 180, - Item::IronBars => 295, - Item::StoneAxe => 707, - Item::EnchantedGoldenApple => 767, - Item::DeadBubbleCoralFan => 544, - Item::BlackCarpet => 388, - Item::WaxedWeatheredCutCopperSlab => 99, - Item::BlueDye => 821, - Item::SmoothBasalt => 273, - Item::CoarseDirt => 16, - Item::Repeater => 588, - Item::TwistingVines => 195, - Item::PinkCarpet => 379, + Item::Prismarine => 432, + Item::PrismarineBricks => 433, + Item::DarkPrismarine => 434, + Item::PrismarineStairs => 435, + Item::PrismarineBrickStairs => 436, + Item::DarkPrismarineStairs => 437, + Item::SeaLantern => 438, Item::RedSandstone => 439, - Item::OakWood => 125, - Item::SpruceSapling => 31, - Item::CrimsonNylium => 19, - Item::JungleBoat => 673, - Item::WheatSeeds => 735, - Item::CartographyTable => 1046, - Item::DetectorRail => 658, - Item::AmethystShard => 690, - Item::IronHoe => 718, - Item::JunglePlanks => 25, - Item::RedSandstoneSlab => 222, - Item::YellowCarpet => 377, + Item::ChiseledRedSandstone => 440, + Item::CutRedSandstone => 441, + Item::RedSandstoneStairs => 442, + Item::RepeatingCommandBlock => 443, + Item::ChainCommandBlock => 444, + Item::MagmaBlock => 445, Item::NetherWartBlock => 446, - Item::Jukebox => 256, - Item::WoodenShovel => 700, - Item::CookedPorkchop => 764, - Item::JungleWood => 128, - Item::NetherBricks => 305, - Item::SpiderEye => 865, - Item::SmallAmethystBud => 1096, - Item::Potato => 948, - Item::Barrel => 1043, - Item::Cactus => 254, - Item::WarpedHyphae => 132, - Item::ZombieVillagerSpawnEgg => 938, - Item::Flint => 762, - Item::WaxedWeatheredCopper => 87, - Item::IronChestplate => 747, - Item::LeatherHelmet => 738, - Item::LightBlueBanner => 985, - Item::SpruceFenceGate => 650, - Item::DeepslateTileStairs => 566, - Item::FireworkStar => 962, - Item::TubeCoral => 527, - Item::ChippedAnvil => 347, - Item::StrippedDarkOakWood => 122, - Item::PurpurStairs => 242, - Item::BlueCarpet => 384, - Item::CyanStainedGlassPane => 425, - Item::PinkShulkerBox => 458, - Item::EnderPearl => 858, - Item::BlazeRod => 859, - Item::DeadTubeCoralBlock => 517, - Item::Tuff => 12, - Item::IronHorseArmor => 973, - Item::PinkGlazedTerracotta => 474, - Item::ActivatorRail => 660, - Item::WhiteGlazedTerracotta => 468, - Item::BigDripleaf => 201, - Item::MusicDiscStal => 1022, - Item::RedSandstoneWall => 329, - Item::EmeraldOre => 50, - Item::GoldenSword => 709, - Item::LeatherBoots => 741, - Item::AcaciaSapling => 34, - Item::EmeraldBlock => 317, - Item::FireCoral => 530, - Item::PinkDye => 816, - Item::BrownBed => 842, - Item::PrismarineShard => 965, - Item::DebugStick => 1014, - Item::DiamondHoe => 723, - Item::CyanConcrete => 493, - Item::WhiteTerracotta => 354, - Item::Glass => 143, - Item::PinkBanner => 988, - Item::Blackstone => 1066, - Item::MusicDiscOtherside => 1027, - Item::CobbledDeepslate => 9, - Item::RabbitStew => 969, - Item::LightGrayBanner => 990, - Item::StrippedDarkOakLog => 114, - Item::PrismarineWall => 328, - Item::SoulTorch => 274, - Item::Lever => 600, - Item::BlueBanner => 993, - Item::PurpurPillar => 241, - Item::PiglinBruteSpawnEgg => 908, - Item::CrimsonHyphae => 131, - Item::DrownedSpawnEgg => 885, - Item::CyanCarpet => 382, - Item::NetherWart => 862, + Item::WarpedWartBlock => 447, + Item::RedNetherBricks => 448, + Item::BoneBlock => 449, + Item::StructureVoid => 450, + Item::ShulkerBox => 451, Item::WhiteShulkerBox => 452, - Item::Cookie => 846, - Item::BlazeSpawnEgg => 876, - Item::GreenCarpet => 386, - Item::OakTrapdoor => 641, - Item::GlobeBannerPattern => 1040, - Item::DeadBush => 154, - Item::PinkStainedGlass => 406, - Item::RawIron => 691, - Item::BlueOrchid => 175, - Item::Saddle => 661, - Item::WoodenSword => 699, - Item::MusicDiscFar => 1019, - Item::WanderingTraderSpawnEgg => 931, - Item::PurpleWool => 167, - Item::LimeCandle => 1085, - Item::DeepslateLapisOre => 53, - Item::AcaciaPressurePlate => 627, - Item::CyanBed => 839, - Item::BrainCoral => 528, - Item::QuartzBricks => 351, - Item::MagentaTerracotta => 356, - Item::PowderSnowBucket => 779, - Item::GlisteringMelonSlice => 872, - Item::PurpleBanner => 992, + Item::OrangeShulkerBox => 453, + Item::MagentaShulkerBox => 454, + Item::LightBlueShulkerBox => 455, + Item::YellowShulkerBox => 456, + Item::LimeShulkerBox => 457, + Item::PinkShulkerBox => 458, Item::GrayShulkerBox => 459, - Item::Allium => 176, - Item::BlackstoneWall => 339, - Item::IronBoots => 749, - Item::PoppedChorusFruit => 1000, - Item::MagentaStainedGlass => 402, - Item::Smoker => 1044, - Item::PandaSpawnEgg => 903, - Item::InfestedChiseledStoneBricks => 281, - Item::CobbledDeepslateStairs => 563, - Item::PolishedBlackstoneBrickWall => 341, - Item::NetheritePickaxe => 726, - Item::LightGrayConcretePowder => 508, - Item::CaveSpiderSpawnEgg => 878, - Item::PolishedBlackstone => 1070, + Item::LightGrayShulkerBox => 460, + Item::CyanShulkerBox => 461, + Item::PurpleShulkerBox => 462, + Item::BlueShulkerBox => 463, + Item::BrownShulkerBox => 464, + Item::GreenShulkerBox => 465, + Item::RedShulkerBox => 466, + Item::BlackShulkerBox => 467, + Item::WhiteGlazedTerracotta => 468, + Item::OrangeGlazedTerracotta => 469, + Item::MagentaGlazedTerracotta => 470, + Item::LightBlueGlazedTerracotta => 471, + Item::YellowGlazedTerracotta => 472, + Item::LimeGlazedTerracotta => 473, + Item::PinkGlazedTerracotta => 474, + Item::GrayGlazedTerracotta => 475, + Item::LightGrayGlazedTerracotta => 476, + Item::CyanGlazedTerracotta => 477, + Item::PurpleGlazedTerracotta => 478, + Item::BlueGlazedTerracotta => 479, + Item::BrownGlazedTerracotta => 480, + Item::GreenGlazedTerracotta => 481, + Item::RedGlazedTerracotta => 482, + Item::BlackGlazedTerracotta => 483, + Item::WhiteConcrete => 484, + Item::OrangeConcrete => 485, + Item::MagentaConcrete => 486, + Item::LightBlueConcrete => 487, + Item::YellowConcrete => 488, Item::LimeConcrete => 489, - Item::Cobblestone => 21, - Item::CoalOre => 40, - Item::Stone => 1, - Item::BirchWood => 127, - Item::PinkStainedGlassPane => 422, - Item::RedConcretePowder => 514, - Item::Stick => 729, - Item::BlackConcrete => 499, - Item::RootedDirt => 18, + Item::PinkConcrete => 490, + Item::GrayConcrete => 491, + Item::LightGrayConcrete => 492, + Item::CyanConcrete => 493, + Item::PurpleConcrete => 494, + Item::BlueConcrete => 495, + Item::BrownConcrete => 496, + Item::GreenConcrete => 497, + Item::RedConcrete => 498, + Item::BlackConcrete => 499, + Item::WhiteConcretePowder => 500, + Item::OrangeConcretePowder => 501, + Item::MagentaConcretePowder => 502, + Item::LightBlueConcretePowder => 503, + Item::YellowConcretePowder => 504, + Item::LimeConcretePowder => 505, + Item::PinkConcretePowder => 506, + Item::GrayConcretePowder => 507, + Item::LightGrayConcretePowder => 508, Item::CyanConcretePowder => 509, - Item::CodSpawnEgg => 880, - Item::SalmonSpawnEgg => 914, - Item::EndPortalFrame => 311, - Item::SmithingTable => 1049, - Item::SpruceFence => 258, - Item::GrayCarpet => 380, - Item::CarrotOnAStick => 667, + Item::PurpleConcretePowder => 510, + Item::BlueConcretePowder => 511, + Item::BrownConcretePowder => 512, + Item::GreenConcretePowder => 513, + Item::RedConcretePowder => 514, + Item::BlackConcretePowder => 515, + Item::TurtleEgg => 516, + Item::DeadTubeCoralBlock => 517, + Item::DeadBrainCoralBlock => 518, + Item::DeadBubbleCoralBlock => 519, + Item::DeadFireCoralBlock => 520, + Item::DeadHornCoralBlock => 521, + Item::TubeCoralBlock => 522, + Item::BrainCoralBlock => 523, + Item::BubbleCoralBlock => 524, + Item::FireCoralBlock => 525, + Item::HornCoralBlock => 526, + Item::TubeCoral => 527, + Item::BrainCoral => 528, + Item::BubbleCoral => 529, + Item::FireCoral => 530, + Item::HornCoral => 531, + Item::DeadBrainCoral => 532, + Item::DeadBubbleCoral => 533, + Item::DeadFireCoral => 534, + Item::DeadHornCoral => 535, + Item::DeadTubeCoral => 536, + Item::TubeCoralFan => 537, + Item::BrainCoralFan => 538, Item::BubbleCoralFan => 539, + Item::FireCoralFan => 540, + Item::HornCoralFan => 541, + Item::DeadTubeCoralFan => 542, + Item::DeadBrainCoralFan => 543, + Item::DeadBubbleCoralFan => 544, + Item::DeadFireCoralFan => 545, + Item::DeadHornCoralFan => 546, + Item::BlueIce => 547, + Item::Conduit => 548, + Item::PolishedGraniteStairs => 549, + Item::SmoothRedSandstoneStairs => 550, + Item::MossyStoneBrickStairs => 551, + Item::PolishedDioriteStairs => 552, + Item::MossyCobblestoneStairs => 553, + Item::EndStoneBrickStairs => 554, + Item::StoneStairs => 555, + Item::SmoothSandstoneStairs => 556, + Item::SmoothQuartzStairs => 557, + Item::GraniteStairs => 558, + Item::AndesiteStairs => 559, + Item::RedNetherBrickStairs => 560, Item::PolishedAndesiteStairs => 561, - Item::Quartz => 689, - Item::StoneBrickStairs => 302, + Item::DioriteStairs => 562, + Item::CobbledDeepslateStairs => 563, + Item::PolishedDeepslateStairs => 564, + Item::DeepslateBrickStairs => 565, + Item::DeepslateTileStairs => 566, + Item::PolishedGraniteSlab => 567, + Item::SmoothRedSandstoneSlab => 568, + Item::MossyStoneBrickSlab => 569, + Item::PolishedDioriteSlab => 570, + Item::MossyCobblestoneSlab => 571, + Item::EndStoneBrickSlab => 572, + Item::SmoothSandstoneSlab => 573, + Item::SmoothQuartzSlab => 574, + Item::GraniteSlab => 575, Item::AndesiteSlab => 576, - Item::WhiteDye => 810, - Item::YellowBed => 834, - Item::CryingObsidian => 1065, - Item::MelonSeeds => 852, + Item::RedNetherBrickSlab => 577, + Item::PolishedAndesiteSlab => 578, + Item::DioriteSlab => 579, + Item::CobbledDeepslateSlab => 580, + Item::PolishedDeepslateSlab => 581, + Item::DeepslateBrickSlab => 582, + Item::DeepslateTileSlab => 583, + Item::Scaffolding => 584, + Item::Redstone => 585, + Item::RedstoneTorch => 586, + Item::RedstoneBlock => 587, + Item::Repeater => 588, + Item::Comparator => 589, + Item::Piston => 590, + Item::StickyPiston => 591, + Item::SlimeBlock => 592, + Item::HoneyBlock => 593, + Item::Observer => 594, + Item::Hopper => 595, + Item::Dispenser => 596, + Item::Dropper => 597, + Item::Lectern => 598, Item::Target => 599, - Item::RawCopperBlock => 61, - Item::GoldenApple => 766, - Item::SmoothStone => 231, - Item::OakFence => 257, - Item::OakLog => 101, - Item::VillagerSpawnEgg => 929, - Item::MusicDiscStrad => 1023, - Item::SpruceLeaves => 134, - Item::WhiteConcretePowder => 500, - Item::BrownShulkerBox => 464, + Item::Lever => 600, + Item::LightningRod => 601, + Item::DaylightDetector => 602, + Item::SculkSensor => 603, + Item::TripwireHook => 604, + Item::TrappedChest => 605, + Item::Tnt => 606, + Item::RedstoneLamp => 607, + Item::NoteBlock => 608, + Item::StoneButton => 609, + Item::PolishedBlackstoneButton => 610, + Item::OakButton => 611, + Item::SpruceButton => 612, + Item::BirchButton => 613, + Item::JungleButton => 614, + Item::AcaciaButton => 615, + Item::DarkOakButton => 616, + Item::CrimsonButton => 617, + Item::WarpedButton => 618, + Item::StonePressurePlate => 619, + Item::PolishedBlackstonePressurePlate => 620, + Item::LightWeightedPressurePlate => 621, + Item::HeavyWeightedPressurePlate => 622, + Item::OakPressurePlate => 623, + Item::SprucePressurePlate => 624, + Item::BirchPressurePlate => 625, + Item::JunglePressurePlate => 626, + Item::AcaciaPressurePlate => 627, + Item::DarkOakPressurePlate => 628, + Item::CrimsonPressurePlate => 629, + Item::WarpedPressurePlate => 630, + Item::IronDoor => 631, + Item::OakDoor => 632, + Item::SpruceDoor => 633, + Item::BirchDoor => 634, + Item::JungleDoor => 635, + Item::AcaciaDoor => 636, + Item::DarkOakDoor => 637, + Item::CrimsonDoor => 638, + Item::WarpedDoor => 639, + Item::IronTrapdoor => 640, + Item::OakTrapdoor => 641, + Item::SpruceTrapdoor => 642, + Item::BirchTrapdoor => 643, + Item::JungleTrapdoor => 644, + Item::AcaciaTrapdoor => 645, + Item::DarkOakTrapdoor => 646, + Item::CrimsonTrapdoor => 647, + Item::WarpedTrapdoor => 648, + Item::OakFenceGate => 649, + Item::SpruceFenceGate => 650, + Item::BirchFenceGate => 651, Item::JungleFenceGate => 652, - Item::GreenBed => 843, - Item::RavagerSpawnEgg => 913, - Item::Fern => 151, - Item::WarpedFungus => 190, - Item::GlowLichen => 300, - Item::GreenGlazedTerracotta => 481, - Item::OrangeConcretePowder => 501, - Item::SpruceBoat => 671, - Item::Trident => 1029, - Item::AcaciaFence => 261, - Item::CrackedNetherBricks => 306, - Item::FilledMap => 847, - Item::PolishedGraniteSlab => 567, - Item::Lead => 977, - Item::EndStoneBricks => 313, - Item::CrackedDeepslateBricks => 288, - Item::BlackBed => 845, - Item::BubbleCoral => 529, - Item::FletchingTable => 1047, - Item::DeadBrainCoralBlock => 518, - Item::SkullBannerPattern => 1038, - Item::Paper => 791, - Item::GlowBerries => 1055, - Item::WaxedOxidizedCutCopper => 92, - Item::LightBlueConcretePowder => 503, - Item::BeetrootSoup => 1003, - Item::QuartzStairs => 353, - Item::ChainmailChestplate => 743, - Item::PolishedDeepslate => 10, - Item::OxidizedCutCopperSlab => 84, - Item::LimeStainedGlassPane => 421, - Item::MusicDiscCat => 1016, + Item::AcaciaFenceGate => 653, Item::DarkOakFenceGate => 654, - Item::DeepslateTileSlab => 583, - Item::WoodenAxe => 702, - Item::DiamondBoots => 753, - Item::LightGrayCandle => 1088, - Item::WetSponge => 142, - Item::GrayCandle => 1087, - Item::LargeAmethystBud => 1098, - Item::AcaciaSlab => 208, - Item::Composter => 1042, - Item::LightGrayConcrete => 492, - Item::MuleSpawnEgg => 901, - Item::DiamondAxe => 722, - Item::LeatherChestplate => 739, - Item::YellowCandle => 1084, - Item::WhiteCarpet => 373, - Item::NetheriteShovel => 725, - Item::OakDoor => 632, - Item::LimeBed => 835, - Item::LilyOfTheValley => 184, - Item::TintedGlass => 144, + Item::CrimsonFenceGate => 655, + Item::WarpedFenceGate => 656, + Item::PoweredRail => 657, + Item::DetectorRail => 658, Item::Rail => 659, - Item::LimeShulkerBox => 457, - Item::LilyPad => 304, - Item::MusicDiscMall => 1020, - Item::RedGlazedTerracotta => 482, - Item::CrimsonPlanks => 28, - Item::Dropper => 597, - Item::Cauldron => 870, - Item::MojangBannerPattern => 1039, - Item::CyanWool => 166, - Item::Coal => 684, - Item::IronOre => 42, - Item::WaxedCutCopper => 89, - Item::LargeFern => 399, - Item::RedNetherBrickWall => 335, - Item::WarpedTrapdoor => 648, - Item::SmoothQuartz => 228, - Item::RedNetherBricks => 448, - Item::Dirt => 15, - Item::DeepslateDiamondOre => 55, - Item::DeadFireCoralFan => 545, - Item::WaxedExposedCopper => 86, - Item::DarkOakPressurePlate => 628, - Item::BlueWool => 168, - Item::BeeSpawnEgg => 875, - Item::SpiderSpawnEgg => 921, - Item::RawGold => 695, - Item::CrimsonStem => 107, - Item::TripwireHook => 604, - Item::ArmorStand => 972, - Item::RedStainedGlassPane => 430, - Item::GreenBanner => 995, - Item::RedStainedGlass => 414, - Item::TurtleHelmet => 678, - Item::SpruceWood => 126, - Item::CutRedSandstone => 441, - Item::DiamondOre => 54, - Item::LightBlueWool => 160, - Item::BrownStainedGlass => 412, - Item::GrayBanner => 989, - Item::HeartOfTheSea => 1032, - Item::ChorusFlower => 239, - Item::Sugar => 828, - Item::GrassBlock => 14, - Item::BirchBoat => 672, - Item::CookedRabbit => 968, - Item::StrippedSpruceWood => 118, - Item::DeepslateBrickSlab => 582, - Item::EndermanSpawnEgg => 887, - Item::MagentaGlazedTerracotta => 470, + Item::ActivatorRail => 660, + Item::Saddle => 661, + Item::Minecart => 662, + Item::ChestMinecart => 663, Item::FurnaceMinecart => 664, - Item::ZombifiedPiglinSpawnEgg => 939, - Item::SweetBerries => 1054, - Item::String => 732, - Item::GoldenLeggings => 756, - Item::MagentaBanner => 984, - Item::OxidizedCutCopperStairs => 80, + Item::TntMinecart => 665, + Item::HopperMinecart => 666, + Item::CarrotOnAStick => 667, + Item::WarpedFungusOnAStick => 668, + Item::Elytra => 669, + Item::OakBoat => 670, + Item::SpruceBoat => 671, + Item::BirchBoat => 672, + Item::JungleBoat => 673, + Item::AcaciaBoat => 674, + Item::DarkOakBoat => 675, + Item::StructureBlock => 676, + Item::Jigsaw => 677, + Item::TurtleHelmet => 678, + Item::Scute => 679, + Item::FlintAndSteel => 680, + Item::Apple => 681, + Item::Bow => 682, + Item::Arrow => 683, + Item::Coal => 684, + Item::Charcoal => 685, + Item::Diamond => 686, + Item::Emerald => 687, + Item::LapisLazuli => 688, + Item::Quartz => 689, + Item::AmethystShard => 690, + Item::RawIron => 691, + Item::IronIngot => 692, + Item::RawCopper => 693, + Item::CopperIngot => 694, + Item::RawGold => 695, Item::GoldIngot => 696, - Item::RottenFlesh => 857, - Item::Bedrock => 36, - Item::AcaciaTrapdoor => 645, - Item::EnderChest => 316, - Item::PurpleStainedGlass => 410, - Item::DonkeySpawnEgg => 884, - Item::Stonecutter => 1050, - Item::CutSandstone => 148, - Item::GlassBottle => 864, - Item::SprucePlanks => 23, - Item::GreenConcretePowder => 513, - Item::DiamondLeggings => 752, - Item::BlackCandle => 1095, - Item::OrangeStainedGlass => 401, - Item::DragonBreath => 1004, - Item::Shears => 848, - Item::StrippedBirchLog => 111, - Item::Prismarine => 432, - Item::BlackStainedGlass => 415, - Item::WaxedWeatheredCutCopper => 91, - Item::CrimsonDoor => 638, - Item::BlackstoneStairs => 1068, - Item::PumpkinPie => 960, - Item::IronDoor => 631, - Item::PhantomSpawnEgg => 905, - Item::DiamondHorseArmor => 975, - Item::Kelp => 197, - Item::LeatherLeggings => 740, - Item::VexSpawnEgg => 928, - Item::LightBlueShulkerBox => 455, - Item::StickyPiston => 591, - Item::StrippedBirchWood => 119, - Item::WhiteConcrete => 484, - Item::MossyStoneBrickStairs => 551, - Item::CopperBlock => 66, - Item::Ladder => 249, - Item::CrimsonRoots => 191, - Item::FireCoralBlock => 525, + Item::NetheriteIngot => 697, + Item::NetheriteScrap => 698, + Item::WoodenSword => 699, + Item::WoodenShovel => 700, + Item::WoodenPickaxe => 701, + Item::WoodenAxe => 702, + Item::WoodenHoe => 703, + Item::StoneSword => 704, + Item::StoneShovel => 705, + Item::StonePickaxe => 706, + Item::StoneAxe => 707, + Item::StoneHoe => 708, + Item::GoldenSword => 709, + Item::GoldenShovel => 710, + Item::GoldenPickaxe => 711, + Item::GoldenAxe => 712, + Item::GoldenHoe => 713, + Item::IronSword => 714, + Item::IronShovel => 715, + Item::IronPickaxe => 716, + Item::IronAxe => 717, + Item::IronHoe => 718, + Item::DiamondSword => 719, + Item::DiamondShovel => 720, + Item::DiamondPickaxe => 721, + Item::DiamondAxe => 722, + Item::DiamondHoe => 723, + Item::NetheriteSword => 724, + Item::NetheriteShovel => 725, + Item::NetheritePickaxe => 726, + Item::NetheriteAxe => 727, + Item::NetheriteHoe => 728, + Item::Stick => 729, + Item::Bowl => 730, + Item::MushroomStew => 731, + Item::String => 732, Item::Feather => 733, + Item::Gunpowder => 734, + Item::WheatSeeds => 735, + Item::Wheat => 736, + Item::Bread => 737, + Item::LeatherHelmet => 738, + Item::LeatherChestplate => 739, + Item::LeatherLeggings => 740, + Item::LeatherBoots => 741, + Item::ChainmailHelmet => 742, + Item::ChainmailChestplate => 743, + Item::ChainmailLeggings => 744, + Item::ChainmailBoots => 745, + Item::IronHelmet => 746, + Item::IronChestplate => 747, + Item::IronLeggings => 748, + Item::IronBoots => 749, + Item::DiamondHelmet => 750, + Item::DiamondChestplate => 751, + Item::DiamondLeggings => 752, + Item::DiamondBoots => 753, + Item::GoldenHelmet => 754, + Item::GoldenChestplate => 755, + Item::GoldenLeggings => 756, + Item::GoldenBoots => 757, + Item::NetheriteHelmet => 758, Item::NetheriteChestplate => 759, - Item::OcelotSpawnEgg => 902, - Item::NetherBrickFence => 308, - Item::LightBlueTerracotta => 357, - Item::SporeBlossom => 186, - Item::SmoothStoneSlab => 213, - Item::KnowledgeBook => 1013, - Item::Beehive => 1061, - Item::LapisOre => 52, - Item::JungleLog => 104, - Item::GoatSpawnEgg => 893, - Item::RedCandle => 1094, - Item::ChiseledDeepslate => 291, - Item::LightGrayCarpet => 381, - Item::DolphinSpawnEgg => 883, - Item::DioriteSlab => 579, - Item::Sponge => 141, - Item::ExperienceBottle => 940, - Item::Tnt => 606, - Item::Dispenser => 596, - Item::Netherrack => 268, - Item::PolishedBasalt => 272, - Item::GoldOre => 46, - Item::CyanCandle => 1089, - Item::LimeCarpet => 378, - Item::GlassPane => 297, - Item::PillagerSpawnEgg => 909, + Item::NetheriteLeggings => 760, + Item::NetheriteBoots => 761, + Item::Flint => 762, + Item::Porkchop => 763, + Item::CookedPorkchop => 764, + Item::Painting => 765, + Item::GoldenApple => 766, + Item::EnchantedGoldenApple => 767, + Item::OakSign => 768, + Item::SpruceSign => 769, + Item::BirchSign => 770, + Item::JungleSign => 771, + Item::AcaciaSign => 772, + Item::DarkOakSign => 773, + Item::CrimsonSign => 774, + Item::WarpedSign => 775, Item::Bucket => 776, - Item::BlackDye => 825, - Item::JungleStairs => 320, - Item::WhiteBanner => 982, - Item::BrownBanner => 994, - Item::PolarBearSpawnEgg => 910, - Item::ChickenSpawnEgg => 879, - Item::BirchDoor => 634, - Item::DeadBrainCoralFan => 543, - Item::StriderSpawnEgg => 924, - Item::MagmaBlock => 445, - Item::DarkOakFence => 262, - Item::DarkOakStairs => 392, - Item::MossyStoneBrickSlab => 569, - Item::CutCopperSlab => 81, - Item::BrainCoralBlock => 523, + Item::WaterBucket => 777, + Item::LavaBucket => 778, + Item::PowderSnowBucket => 779, + Item::Snowball => 780, + Item::Leather => 781, + Item::MilkBucket => 782, + Item::PufferfishBucket => 783, + Item::SalmonBucket => 784, + Item::CodBucket => 785, Item::TropicalFishBucket => 786, - Item::PrismarineStairs => 435, - Item::CrackedDeepslateTiles => 290, - Item::DripstoneBlock => 13, - Item::GoldenBoots => 757, - Item::BrownCandle => 1092, - Item::TurtleSpawnEgg => 927, - Item::SmoothRedSandstoneStairs => 550, - Item::SheepSpawnEgg => 915, - Item::GreenConcrete => 497, - Item::Gravel => 39, - } - } - #[doc = "Gets a `Item` by its `id`."] - #[inline] - pub fn from_id(id: u32) -> Option { - match id { - 246 => Some(Item::CraftingTable), - 360 => Some(Item::PinkTerracotta), - 259 => Some(Item::BirchFence), - 355 => Some(Item::OrangeTerracotta), - 799 => Some(Item::Spyglass), - 1008 => Some(Item::LingeringPotion), - 997 => Some(Item::BlackBanner), - 411 => Some(Item::BlueStainedGlass), - 708 => Some(Item::StoneHoe), - 363 => Some(Item::CyanTerracotta), - 194 => Some(Item::WeepingVines), - 165 => Some(Item::LightGrayWool), - 1033 => Some(Item::Crossbow), - 624 => Some(Item::SprucePressurePlate), - 704 => Some(Item::StoneSword), - 267 => Some(Item::JackOLantern), - 881 => Some(Item::CowSpawnEgg), - 531 => Some(Item::HornCoral), - 375 => Some(Item::MagentaCarpet), - 1090 => Some(Item::PurpleCandle), - 318 => Some(Item::SpruceStairs), - 110 => Some(Item::StrippedSpruceLog), - 758 => Some(Item::NetheriteHelmet), - 871 => Some(Item::EnderEye), - 1001 => Some(Item::Beetroot), - 365 => Some(Item::BlueTerracotta), - 96 => Some(Item::WaxedOxidizedCutCopperStairs), - 637 => Some(Item::DarkOakDoor), - 571 => Some(Item::MossyCobblestoneSlab), - 461 => Some(Item::CyanShulkerBox), - 594 => Some(Item::Observer), - 65 => Some(Item::IronBlock), - 819 => Some(Item::CyanDye), - 1048 => Some(Item::Grindstone), - 1069 => Some(Item::GildedBlackstone), - 69 => Some(Item::NetheriteBlock), - 526 => Some(Item::HornCoralBlock), - 1058 => Some(Item::Shroomlight), - 44 => Some(Item::CopperOre), - 325 => Some(Item::CobblestoneWall), - 1056 => Some(Item::Campfire), - 340 => Some(Item::PolishedBlackstoneWall), - 182 => Some(Item::OxeyeDaisy), - 649 => Some(Item::OakFenceGate), - 783 => Some(Item::PufferfishBucket), - 420 => Some(Item::YellowStainedGlassPane), - 438 => Some(Item::SeaLantern), - 322 => Some(Item::WarpedStairs), - 473 => Some(Item::LimeGlazedTerracotta), - 970 => Some(Item::RabbitFoot), - 712 => Some(Item::GoldenAxe), - 6 => Some(Item::Andesite), - 892 => Some(Item::GlowSquidSpawnEgg), - 608 => Some(Item::NoteBlock), - 453 => Some(Item::OrangeShulkerBox), - 646 => Some(Item::DarkOakTrapdoor), - 790 => Some(Item::DriedKelpBlock), - 521 => Some(Item::DeadHornCoralBlock), - 210 => Some(Item::CrimsonSlab), - 429 => Some(Item::GreenStainedGlassPane), - 366 => Some(Item::BrownTerracotta), - 232 => Some(Item::Bricks), - 714 => Some(Item::IronSword), - 1036 => Some(Item::FlowerBannerPattern), - 1051 => Some(Item::Bell), - 1099 => Some(Item::AmethystCluster), - 48 => Some(Item::RedstoneOre), - 5 => Some(Item::PolishedDiorite), - 285 => Some(Item::CrackedStoneBricks), - 731 => Some(Item::MushroomStew), - 1083 => Some(Item::LightBlueCandle), - 204 => Some(Item::OakSlab), - 255 => Some(Item::Clay), - 24 => Some(Item::BirchPlanks), - 64 => Some(Item::BuddingAmethyst), - 609 => Some(Item::StoneButton), - 592 => Some(Item::SlimeBlock), - 41 => Some(Item::DeepslateCoalOre), - 215 => Some(Item::CutSandstoneSlab), - 824 => Some(Item::RedDye), - 133 => Some(Item::OakLeaves), - 830 => Some(Item::WhiteBed), - 1028 => Some(Item::MusicDiscPigstep), - 933 => Some(Item::WitherSkeletonSpawnEgg), - 812 => Some(Item::MagentaDye), - 299 => Some(Item::Vine), - 123 => Some(Item::StrippedCrimsonHyphae), - 556 => Some(Item::SmoothSandstoneStairs), - 612 => Some(Item::SpruceButton), - 789 => Some(Item::ClayBall), - 294 => Some(Item::MushroomStem), - 200 => Some(Item::HangingRoots), - 359 => Some(Item::LimeTerracotta), - 869 => Some(Item::BrewingStand), - 1035 => Some(Item::Loom), - 94 => Some(Item::WaxedExposedCutCopperStairs), - 1074 => Some(Item::PolishedBlackstoneBricks), - 428 => Some(Item::BrownStainedGlassPane), - 63 => Some(Item::AmethystBlock), - 958 => Some(Item::DragonHead), - 811 => Some(Item::OrangeDye), - 202 => Some(Item::SmallDripleaf), - 238 => Some(Item::ChorusPlant), - 581 => Some(Item::PolishedDeepslateSlab), - 827 => Some(Item::Bone), - 981 => Some(Item::CookedMutton), - 108 => Some(Item::WarpedStem), - 187 => Some(Item::BrownMushroom), - 265 => Some(Item::Pumpkin), - 85 => Some(Item::WaxedCopperBlock), - 516 => Some(Item::TurtleEgg), - 152 => Some(Item::Azalea), - 833 => Some(Item::LightBlueBed), - 1059 => Some(Item::Honeycomb), - 877 => Some(Item::CatSpawnEgg), - 326 => Some(Item::MossyCobblestoneWall), - 217 => Some(Item::CobblestoneSlab), - 235 => Some(Item::Obsidian), - 407 => Some(Item::GrayStainedGlass), - 578 => Some(Item::PolishedAndesiteSlab), - 647 => Some(Item::CrimsonTrapdoor), - 974 => Some(Item::GoldenHorseArmor), - 633 => Some(Item::SpruceDoor), - 716 => Some(Item::IronPickaxe), - 617 => Some(Item::CrimsonButton), - 651 => Some(Item::BirchFenceGate), - 303 => Some(Item::Mycelium), - 957 => Some(Item::CreeperHead), - 369 => Some(Item::BlackTerracotta), - 895 => Some(Item::HoglinSpawnEgg), - 276 => Some(Item::InfestedStone), - 866 => Some(Item::FermentedSpiderEye), - 605 => Some(Item::TrappedChest), - 930 => Some(Item::VindicatorSpawnEgg), - 693 => Some(Item::RawCopper), - 727 => Some(Item::NetheriteAxe), - 162 => Some(Item::LimeWool), - 163 => Some(Item::PinkWool), - 22 => Some(Item::OakPlanks), - 79 => Some(Item::WeatheredCutCopperStairs), - 736 => Some(Item::Wheat), - 413 => Some(Item::GreenStainedGlass), - 348 => Some(Item::DamagedAnvil), - 1037 => Some(Item::CreeperBannerPattern), - 1072 => Some(Item::PolishedBlackstoneStairs), - 1067 => Some(Item::BlackstoneSlab), - 17 => Some(Item::Podzol), - 269 => Some(Item::SoulSand), - 465 => Some(Item::GreenShulkerBox), - 620 => Some(Item::PolishedBlackstonePressurePlate), - 102 => Some(Item::SpruceLog), - 192 => Some(Item::WarpedRoots), - 996 => Some(Item::RedBanner), - 802 => Some(Item::Salmon), - 1081 => Some(Item::OrangeCandle), - 640 => Some(Item::IronTrapdoor), - 717 => Some(Item::IronAxe), - 1030 => Some(Item::PhantomMembrane), - 987 => Some(Item::LimeBanner), - 840 => Some(Item::PurpleBed), - 730 => Some(Item::Bowl), - 844 => Some(Item::RedBed), - 7 => Some(Item::PolishedAndesite), - 319 => Some(Item::BirchStairs), - 385 => Some(Item::BrownCarpet), - 321 => Some(Item::CrimsonStairs), - 296 => Some(Item::Chain), - 436 => Some(Item::PrismarineBrickStairs), - 45 => Some(Item::DeepslateCopperOre), - 451 => Some(Item::ShulkerBox), - 449 => Some(Item::BoneBlock), - 781 => Some(Item::Leather), - 447 => Some(Item::WarpedWartBlock), - 486 => Some(Item::MagentaConcrete), - 942 => Some(Item::WritableBook), - 349 => Some(Item::ChiseledQuartzBlock), - 147 => Some(Item::ChiseledSandstone), - 374 => Some(Item::OrangeCarpet), - 47 => Some(Item::DeepslateGoldOre), - 607 => Some(Item::RedstoneLamp), - 618 => Some(Item::WarpedButton), - 393 => Some(Item::DirtPath), - 643 => Some(Item::BirchTrapdoor), - 668 => Some(Item::WarpedFungusOnAStick), - 218 => Some(Item::BrickSlab), - 800 => Some(Item::GlowstoneDust), - 986 => Some(Item::YellowBanner), - 1005 => Some(Item::SplashPotion), - 145 => Some(Item::LapisBlock), - 1064 => Some(Item::Lodestone), - 183 => Some(Item::Cornflower), - 1100 => Some(Item::PointedDripstone), - 416 => Some(Item::WhiteStainedGlassPane), - 372 => Some(Item::HayBlock), - 755 => Some(Item::GoldenChestplate), - 103 => Some(Item::BirchLog), - 855 => Some(Item::Chicken), - 115 => Some(Item::StrippedCrimsonStem), - 417 => Some(Item::OrangeStainedGlassPane), - 164 => Some(Item::GrayWool), - 477 => Some(Item::CyanGlazedTerracotta), - 443 => Some(Item::RepeatingCommandBlock), - 547 => Some(Item::BlueIce), - 941 => Some(Item::FireCharge), - 1079 => Some(Item::Candle), - 82 => Some(Item::ExposedCutCopperSlab), - 900 => Some(Item::MooshroomSpawnEgg), - 949 => Some(Item::BakedPotato), - 466 => Some(Item::RedShulkerBox), - 595 => Some(Item::Hopper), - 485 => Some(Item::OrangeConcrete), - 705 => Some(Item::StoneShovel), - 623 => Some(Item::OakPressurePlate), - 312 => Some(Item::EndStone), - 301 => Some(Item::BrickStairs), - 532 => Some(Item::DeadBrainCoral), - 886 => Some(Item::ElderGuardianSpawnEgg), - 371 => Some(Item::Light), - 264 => Some(Item::WarpedFence), - 221 => Some(Item::QuartzSlab), - 734 => Some(Item::Gunpowder), - 682 => Some(Item::Bow), - 822 => Some(Item::BrownDye), - 801 => Some(Item::Cod), - 577 => Some(Item::RedNetherBrickSlab), - 832 => Some(Item::MagentaBed), - 105 => Some(Item::AcaciaLog), - 837 => Some(Item::GrayBed), - 278 => Some(Item::InfestedStoneBricks), - 408 => Some(Item::LightGrayStainedGlass), - 522 => Some(Item::TubeCoralBlock), - 807 => Some(Item::InkSac), - 1025 => Some(Item::MusicDisc11), - 214 => Some(Item::SandstoneSlab), - 1060 => Some(Item::BeeNest), - 403 => Some(Item::LightBlueStainedGlass), - 768 => Some(Item::OakSign), - 1073 => Some(Item::ChiseledPolishedBlackstone), - 225 => Some(Item::PrismarineSlab), - 138 => Some(Item::DarkOakLeaves), - 309 => Some(Item::NetherBrickStairs), - 956 => Some(Item::ZombieHead), - 331 => Some(Item::GraniteWall), - 536 => Some(Item::DeadTubeCoral), - 205 => Some(Item::SpruceSlab), - 552 => Some(Item::PolishedDioriteStairs), - 894 => Some(Item::GuardianSpawnEgg), - 934 => Some(Item::WolfSpawnEgg), - 922 => Some(Item::SquidSpawnEgg), - 364 => Some(Item::PurpleTerracotta), - 803 => Some(Item::TropicalFish), - 961 => Some(Item::FireworkRocket), - 463 => Some(Item::BlueShulkerBox), - 920 => Some(Item::SlimeSpawnEgg), - 209 => Some(Item::DarkOakSlab), - 754 => Some(Item::GoldenHelmet), - 814 => Some(Item::YellowDye), - 283 => Some(Item::StoneBricks), - 546 => Some(Item::DeadHornCoralFan), - 946 => Some(Item::FlowerPot), - 861 => Some(Item::GoldNugget), - 1097 => Some(Item::MediumAmethystBud), - 665 => Some(Item::TntMinecart), - 116 => Some(Item::StrippedWarpedStem), - 245 => Some(Item::Chest), - 603 => Some(Item::SculkSensor), - 1075 => Some(Item::PolishedBlackstoneBrickSlab), - 149 => Some(Item::Cobweb), - 520 => Some(Item::DeadFireCoralBlock), - 867 => Some(Item::BlazePowder), - 614 => Some(Item::JungleButton), - 953 => Some(Item::SkeletonSkull), - 815 => Some(Item::LimeDye), - 906 => Some(Item::PigSpawnEgg), - 4 => Some(Item::Diorite), - 657 => Some(Item::PoweredRail), - 161 => Some(Item::YellowWool), - 912 => Some(Item::RabbitSpawnEgg), - 419 => Some(Item::LightBlueStainedGlassPane), - 778 => Some(Item::LavaBucket), - 137 => Some(Item::AcaciaLeaves), - 324 => Some(Item::Beacon), - 533 => Some(Item::DeadBubbleCoral), - 27 => Some(Item::DarkOakPlanks), - 396 => Some(Item::RoseBush), - 763 => Some(Item::Porkchop), - 666 => Some(Item::HopperMinecart), - 635 => Some(Item::JungleDoor), - 777 => Some(Item::WaterBucket), - 853 => Some(Item::Beef), - 918 => Some(Item::SkeletonSpawnEgg), - 72 => Some(Item::OxidizedCopper), - 1015 => Some(Item::MusicDisc13), - 966 => Some(Item::PrismarineCrystals), - 57 => Some(Item::NetherQuartzOre), - 400 => Some(Item::WhiteStainedGlass), - 873 => Some(Item::AxolotlSpawnEgg), - 395 => Some(Item::Lilac), - 826 => Some(Item::BoneMeal), - 292 => Some(Item::BrownMushroomBlock), - 952 => Some(Item::GoldenCarrot), - 352 => Some(Item::QuartzPillar), - 1012 => Some(Item::IronNugget), - 863 => Some(Item::Potion), - 558 => Some(Item::GraniteStairs), - 494 => Some(Item::PurpleConcrete), - 978 => Some(Item::NameTag), - 289 => Some(Item::DeepslateTiles), - 675 => Some(Item::DarkOakBoat), - 323 => Some(Item::CommandBlock), - 1017 => Some(Item::MusicDiscBlocks), - 676 => Some(Item::StructureBlock), - 548 => Some(Item::Conduit), - 711 => Some(Item::GoldenPickaxe), - 751 => Some(Item::DiamondChestplate), - 207 => Some(Item::JungleSlab), - 488 => Some(Item::YellowConcrete), - 585 => Some(Item::Redstone), - 692 => Some(Item::IronIngot), - 785 => Some(Item::CodBucket), - 797 => Some(Item::FishingRod), - 823 => Some(Item::GreenDye), - 745 => Some(Item::ChainmailBoots), - 662 => Some(Item::Minecart), - 389 => Some(Item::Terracotta), - 56 => Some(Item::NetherGoldOre), - 135 => Some(Item::BirchLeaves), - 424 => Some(Item::LightGrayStainedGlassPane), - 616 => Some(Item::DarkOakButton), - 813 => Some(Item::LightBlueDye), - 1021 => Some(Item::MusicDiscMellohi), - 580 => Some(Item::CobbledDeepslateSlab), - 1077 => Some(Item::CrackedPolishedBlackstoneBricks), - 932 => Some(Item::WitchSpawnEgg), - 542 => Some(Item::DeadTubeCoralFan), - 1080 => Some(Item::WhiteCandle), - 83 => Some(Item::WeatheredCutCopperSlab), - 945 => Some(Item::GlowItemFrame), - 287 => Some(Item::DeepslateBricks), - 1078 => Some(Item::RespawnAnchor), - 112 => Some(Item::StrippedJungleLog), - 156 => Some(Item::SeaPickle), - 51 => Some(Item::DeepslateEmeraldOre), - 387 => Some(Item::RedCarpet), - 433 => Some(Item::PrismarineBricks), - 198 => Some(Item::MossCarpet), - 728 => Some(Item::NetheriteHoe), - 67 => Some(Item::GoldBlock), - 280 => Some(Item::InfestedCrackedStoneBricks), - 62 => Some(Item::RawGoldBlock), - 771 => Some(Item::JungleSign), - 963 => Some(Item::EnchantedBook), - 841 => Some(Item::BlueBed), - 998 => Some(Item::EndCrystal), - 336 => Some(Item::SandstoneWall), - 286 => Some(Item::ChiseledStoneBricks), - 236 => Some(Item::Torch), - 670 => Some(Item::OakBoat), - 1057 => Some(Item::SoulCampfire), - 174 => Some(Item::Poppy), - 479 => Some(Item::BlueGlazedTerracotta), - 1002 => Some(Item::BeetrootSeeds), - 71 => Some(Item::WeatheredCopper), - 98 => Some(Item::WaxedExposedCutCopperSlab), - 220 => Some(Item::NetherBrickSlab), - 193 => Some(Item::NetherSprouts), - 483 => Some(Item::BlackGlazedTerracotta), - 593 => Some(Item::HoneyBlock), - 983 => Some(Item::OrangeBanner), - 541 => Some(Item::HornCoralFan), - 1082 => Some(Item::MagentaCandle), - 139 => Some(Item::AzaleaLeaves), - 680 => Some(Item::FlintAndSteel), - 423 => Some(Item::GrayStainedGlassPane), - 33 => Some(Item::JungleSapling), - 95 => Some(Item::WaxedWeatheredCutCopperStairs), - 889 => Some(Item::EvokerSpawnEgg), - 919 => Some(Item::SkeletonHorseSpawnEgg), - 159 => Some(Item::MagentaWool), - 639 => Some(Item::WarpedDoor), - 540 => Some(Item::FireCoralFan), - 598 => Some(Item::Lectern), - 1009 => Some(Item::Shield), - 589 => Some(Item::Comparator), - 345 => Some(Item::DeepslateTileWall), - 549 => Some(Item::PolishedGraniteStairs), - 106 => Some(Item::DarkOakLog), - 573 => Some(Item::SmoothSandstoneSlab), - 275 => Some(Item::Glowstone), - 586 => Some(Item::RedstoneTorch), - 679 => Some(Item::Scute), - 575 => Some(Item::GraniteSlab), - 980 => Some(Item::Mutton), - 874 => Some(Item::BatSpawnEgg), - 418 => Some(Item::MagentaStainedGlassPane), - 172 => Some(Item::BlackWool), - 804 => Some(Item::Pufferfish), - 808 => Some(Item::GlowInkSac), - 537 => Some(Item::TubeCoralFan), - 602 => Some(Item::DaylightDetector), - 663 => Some(Item::ChestMinecart), - 904 => Some(Item::ParrotSpawnEgg), - 944 => Some(Item::ItemFrame), - 196 => Some(Item::SugarCane), - 188 => Some(Item::RedMushroom), - 376 => Some(Item::LightBlueCarpet), - 216 => Some(Item::PetrifiedOakSlab), - 694 => Some(Item::CopperIngot), - 706 => Some(Item::StonePickaxe), - 440 => Some(Item::ChiseledRedSandstone), - 226 => Some(Item::PrismarineBrickSlab), - 117 => Some(Item::StrippedOakWood), - 564 => Some(Item::PolishedDeepslateStairs), - 787 => Some(Item::AxolotlBucket), - 230 => Some(Item::SmoothSandstone), - 562 => Some(Item::DioriteStairs), - 260 => Some(Item::JungleFence), - 77 => Some(Item::CutCopperStairs), - 109 => Some(Item::StrippedOakLog), - 685 => Some(Item::Charcoal), - 746 => Some(Item::IronHelmet), - 570 => Some(Item::PolishedDioriteSlab), - 849 => Some(Item::MelonSlice), - 90 => Some(Item::WaxedExposedCutCopper), - 223 => Some(Item::CutRedSandstoneSlab), - 681 => Some(Item::Apple), - 100 => Some(Item::WaxedOxidizedCutCopperSlab), - 59 => Some(Item::CoalBlock), - 199 => Some(Item::MossBlock), - 538 => Some(Item::BrainCoralFan), - 74 => Some(Item::ExposedCutCopper), - 674 => Some(Item::AcaciaBoat), - 1007 => Some(Item::TippedArrow), - 327 => Some(Item::BrickWall), - 315 => Some(Item::SandstoneStairs), - 698 => Some(Item::NetheriteScrap), - 557 => Some(Item::SmoothQuartzStairs), - 30 => Some(Item::OakSapling), - 252 => Some(Item::Ice), - 615 => Some(Item::AcaciaButton), - 504 => Some(Item::YellowConcretePowder), - 507 => Some(Item::GrayConcretePowder), - 271 => Some(Item::Basalt), - 58 => Some(Item::AncientDebris), - 337 => Some(Item::EndStoneBrickWall), - 490 => Some(Item::PinkConcrete), - 515 => Some(Item::BlackConcretePowder), - 344 => Some(Item::DeepslateBrickWall), - 362 => Some(Item::LightGrayTerracotta), - 829 => Some(Item::Cake), - 1024 => Some(Item::MusicDiscWard), - 120 => Some(Item::StrippedJungleWood), - 178 => Some(Item::RedTulip), - 397 => Some(Item::Peony), - 687 => Some(Item::Emerald), - 181 => Some(Item::PinkTulip), - 882 => Some(Item::CreeperSpawnEgg), - 794 => Some(Item::Egg), - 219 => Some(Item::StoneBrickSlab), - 243 => Some(Item::Spawner), - 427 => Some(Item::BlueStainedGlassPane), - 454 => Some(Item::MagentaShulkerBox), - 686 => Some(Item::Diamond), - 263 => Some(Item::CrimsonFence), - 136 => Some(Item::JungleLeaves), - 124 => Some(Item::StrippedWarpedHyphae), - 97 => Some(Item::WaxedCutCopperSlab), - 3 => Some(Item::PolishedGranite), - 251 => Some(Item::Snow), - 495 => Some(Item::BlueConcrete), - 611 => Some(Item::OakButton), - 559 => Some(Item::AndesiteStairs), - 469 => Some(Item::OrangeGlazedTerracotta), - 795 => Some(Item::Compass), - 868 => Some(Item::MagmaCream), - 38 => Some(Item::RedSand), - 761 => Some(Item::NetheriteBoots), - 247 => Some(Item::Farmland), - 391 => Some(Item::AcaciaStairs), - 574 => Some(Item::SmoothQuartzSlab), - 29 => Some(Item::WarpedPlanks), - 153 => Some(Item::FloweringAzalea), - 976 => Some(Item::LeatherHorseArmor), - 35 => Some(Item::DarkOakSapling), - 472 => Some(Item::YellowGlazedTerracotta), - 206 => Some(Item::BirchSlab), - 710 => Some(Item::GoldenShovel), - 266 => Some(Item::CarvedPumpkin), - 644 => Some(Item::JungleTrapdoor), - 703 => Some(Item::WoodenHoe), - 342 => Some(Item::CobbledDeepslateWall), - 851 => Some(Item::PumpkinSeeds), - 279 => Some(Item::InfestedMossyStoneBricks), - 907 => Some(Item::PiglinSpawnEgg), - 991 => Some(Item::CyanBanner), - 854 => Some(Item::CookedBeef), - 68 => Some(Item::DiamondBlock), - 450 => Some(Item::StructureVoid), - 20 => Some(Item::WarpedNylium), - 434 => Some(Item::DarkPrismarine), - 88 => Some(Item::WaxedOxidizedCopper), - 626 => Some(Item::JunglePressurePlate), - 760 => Some(Item::NetheriteLeggings), - 923 => Some(Item::StraySpawnEgg), - 773 => Some(Item::DarkOakSign), - 947 => Some(Item::Carrot), - 1052 => Some(Item::Lantern), - 750 => Some(Item::DiamondHelmet), - 788 => Some(Item::Brick), - 1076 => Some(Item::PolishedBlackstoneBrickStairs), - 2 => Some(Item::Granite), - 475 => Some(Item::GrayGlazedTerracotta), - 409 => Some(Item::CyanStainedGlass), - 460 => Some(Item::LightGrayShulkerBox), - 37 => Some(Item::Sand), - 498 => Some(Item::RedConcrete), - 937 => Some(Item::ZombieHorseSpawnEgg), - 121 => Some(Item::StrippedAcaciaWood), - 361 => Some(Item::GrayTerracotta), - 437 => Some(Item::DarkPrismarineStairs), - 1006 => Some(Item::SpectralArrow), - 155 => Some(Item::Seagrass), - 346 => Some(Item::Anvil), - 535 => Some(Item::DeadHornCoral), - 719 => Some(Item::DiamondSword), - 511 => Some(Item::BlueConcretePowder), - 284 => Some(Item::MossyStoneBricks), - 782 => Some(Item::MilkBucket), - 519 => Some(Item::DeadBubbleCoralBlock), - 78 => Some(Item::ExposedCutCopperStairs), - 49 => Some(Item::DeepslateRedstoneOre), - 358 => Some(Item::YellowTerracotta), - 770 => Some(Item::BirchSign), - 8 => Some(Item::Deepslate), - 60 => Some(Item::RawIronBlock), - 629 => Some(Item::CrimsonPressurePlate), - 636 => Some(Item::AcaciaDoor), - 502 => Some(Item::MagentaConcretePowder), - 936 => Some(Item::ZombieSpawnEgg), - 954 => Some(Item::WitherSkeletonSkull), - 467 => Some(Item::BlackShulkerBox), - 293 => Some(Item::RedMushroomBlock), - 1034 => Some(Item::SuspiciousStew), - 456 => Some(Item::YellowShulkerBox), - 621 => Some(Item::LightWeightedPressurePlate), - 744 => Some(Item::ChainmailLeggings), - 655 => Some(Item::CrimsonFenceGate), - 491 => Some(Item::GrayConcrete), - 565 => Some(Item::DeepslateBrickStairs), - 426 => Some(Item::PurpleStainedGlassPane), - 130 => Some(Item::DarkOakWood), - 765 => Some(Item::Painting), - 568 => Some(Item::SmoothRedSandstoneSlab), - 806 => Some(Item::CookedSalmon), - 951 => Some(Item::Map), - 173 => Some(Item::Dandelion), - 1011 => Some(Item::ShulkerShell), - 1026 => Some(Item::MusicDiscWait), - 818 => Some(Item::LightGrayDye), - 860 => Some(Item::GhastTear), - 742 => Some(Item::ChainmailHelmet), - 737 => Some(Item::Bread), - 950 => Some(Item::PoisonousPotato), - 715 => Some(Item::IronShovel), - 888 => Some(Item::EndermiteSpawnEgg), - 476 => Some(Item::LightGrayGlazedTerracotta), - 333 => Some(Item::NetherBrickWall), - 817 => Some(Item::GrayDye), - 669 => Some(Item::Elytra), - 780 => Some(Item::Snowball), - 298 => Some(Item::Melon), - 935 => Some(Item::ZoglinSpawnEgg), - 169 => Some(Item::BrownWool), - 185 => Some(Item::WitherRose), - 398 => Some(Item::TallGrass), - 967 => Some(Item::Rabbit), - 610 => Some(Item::PolishedBlackstoneButton), - 75 => Some(Item::WeatheredCutCopper), - 237 => Some(Item::EndRod), - 11 => Some(Item::Calcite), - 613 => Some(Item::BirchButton), - 916 => Some(Item::ShulkerSpawnEgg), - 227 => Some(Item::DarkPrismarineSlab), - 926 => Some(Item::TropicalFishSpawnEgg), - 720 => Some(Item::DiamondShovel), - 896 => Some(Item::HorseSpawnEgg), - 170 => Some(Item::GreenWool), - 179 => Some(Item::OrangeTulip), - 250 => Some(Item::CobblestoneStairs), - 405 => Some(Item::LimeStainedGlass), - 496 => Some(Item::BrownConcrete), - 480 => Some(Item::BrownGlazedTerracotta), - 925 => Some(Item::TraderLlamaSpawnEgg), - 478 => Some(Item::PurpleGlazedTerracotta), - 560 => Some(Item::RedNetherBrickStairs), - 625 => Some(Item::BirchPressurePlate), - 656 => Some(Item::WarpedFenceGate), - 721 => Some(Item::DiamondPickaxe), - 330 => Some(Item::MossyStoneBrickWall), - 856 => Some(Item::CookedChicken), - 899 => Some(Item::MagmaCubeSpawnEgg), - 964 => Some(Item::NetherBrick), - 601 => Some(Item::LightningRod), - 1045 => Some(Item::BlastFurnace), - 820 => Some(Item::PurpleDye), - 999 => Some(Item::ChorusFruit), - 338 => Some(Item::DioriteWall), - 1010 => Some(Item::TotemOfUndying), - 224 => Some(Item::PurpurSlab), - 512 => Some(Item::BrownConcretePowder), - 1091 => Some(Item::BlueCandle), - 211 => Some(Item::WarpedSlab), - 506 => Some(Item::PinkConcretePowder), - 713 => Some(Item::GoldenHoe), - 793 => Some(Item::SlimeBall), - 510 => Some(Item::PurpleConcretePowder), - 677 => Some(Item::Jigsaw), - 805 => Some(Item::CookedCod), - 334 => Some(Item::AndesiteWall), - 343 => Some(Item::PolishedDeepslateWall), - 150 => Some(Item::Grass), - 129 => Some(Item::AcaciaWood), - 171 => Some(Item::RedWool), - 784 => Some(Item::SalmonBucket), - 959 => Some(Item::NetherStar), - 146 => Some(Item::Sandstone), - 891 => Some(Item::GhastSpawnEgg), - 212 => Some(Item::StoneSlab), - 350 => Some(Item::QuartzBlock), - 248 => Some(Item::Furnace), - 798 => Some(Item::Clock), - 314 => Some(Item::DragonEgg), - 584 => Some(Item::Scaffolding), - 1041 => Some(Item::PiglinBannerPattern), - 1062 => Some(Item::HoneyBottle), - 462 => Some(Item::PurpleShulkerBox), - 619 => Some(Item::StonePressurePlate), - 244 => Some(Item::OakStairs), - 642 => Some(Item::SpruceTrapdoor), - 1071 => Some(Item::PolishedBlackstoneSlab), - 158 => Some(Item::OrangeWool), - 270 => Some(Item::SoulSoil), - 43 => Some(Item::DeepslateIronOre), - 370 => Some(Item::Barrier), - 898 => Some(Item::LlamaSpawnEgg), - 897 => Some(Item::HuskSpawnEgg), - 979 => Some(Item::CommandBlockMinecart), - 487 => Some(Item::LightBlueConcrete), - 809 => Some(Item::CocoaBeans), - 943 => Some(Item::WrittenBook), - 1063 => Some(Item::HoneycombBlock), - 524 => Some(Item::BubbleCoralBlock), - 534 => Some(Item::DeadFireCoral), - 505 => Some(Item::LimeConcretePowder), - 93 => Some(Item::WaxedCutCopperStairs), - 587 => Some(Item::RedstoneBlock), - 630 => Some(Item::WarpedPressurePlate), - 442 => Some(Item::RedSandstoneStairs), - 332 => Some(Item::StoneBrickWall), - 838 => Some(Item::LightGrayBed), - 234 => Some(Item::MossyCobblestone), - 890 => Some(Item::FoxSpawnEgg), - 653 => Some(Item::AcaciaFenceGate), - 775 => Some(Item::WarpedSign), - 796 => Some(Item::Bundle), - 229 => Some(Item::SmoothRedSandstone), - 307 => Some(Item::ChiseledNetherBricks), - 76 => Some(Item::OxidizedCutCopper), - 233 => Some(Item::Bookshelf), - 724 => Some(Item::NetheriteSword), - 772 => Some(Item::AcaciaSign), - 683 => Some(Item::Arrow), - 831 => Some(Item::OrangeBed), - 917 => Some(Item::SilverfishSpawnEgg), - 1053 => Some(Item::SoulLantern), - 1086 => Some(Item::PinkCandle), - 850 => Some(Item::DriedKelp), - 769 => Some(Item::SpruceSign), - 383 => Some(Item::PurpleCarpet), - 572 => Some(Item::EndStoneBrickSlab), - 32 => Some(Item::BirchSapling), - 394 => Some(Item::Sunflower), - 792 => Some(Item::Book), - 189 => Some(Item::CrimsonFungus), - 971 => Some(Item::RabbitHide), - 554 => Some(Item::EndStoneBrickStairs), - 555 => Some(Item::StoneStairs), - 590 => Some(Item::Piston), - 157 => Some(Item::WhiteWool), - 253 => Some(Item::SnowBlock), - 177 => Some(Item::AzureBluet), - 70 => Some(Item::ExposedCopper), - 73 => Some(Item::CutCopper), - 1093 => Some(Item::GreenCandle), - 444 => Some(Item::ChainCommandBlock), - 404 => Some(Item::YellowStainedGlass), - 367 => Some(Item::GreenTerracotta), - 688 => Some(Item::LapisLazuli), - 697 => Some(Item::NetheriteIngot), - 911 => Some(Item::PufferfishSpawnEgg), - 368 => Some(Item::RedTerracotta), - 282 => Some(Item::InfestedDeepslate), - 390 => Some(Item::PackedIce), - 277 => Some(Item::InfestedCobblestone), - 26 => Some(Item::AcaciaPlanks), - 701 => Some(Item::WoodenPickaxe), - 113 => Some(Item::StrippedAcaciaLog), - 622 => Some(Item::HeavyWeightedPressurePlate), - 553 => Some(Item::MossyCobblestoneStairs), - 203 => Some(Item::Bamboo), - 140 => Some(Item::FloweringAzaleaLeaves), - 774 => Some(Item::CrimsonSign), - 1018 => Some(Item::MusicDiscChirp), - 748 => Some(Item::IronLeggings), - 471 => Some(Item::LightBlueGlazedTerracotta), - 431 => Some(Item::BlackStainedGlassPane), - 836 => Some(Item::PinkBed), - 1031 => Some(Item::NautilusShell), - 310 => Some(Item::EnchantingTable), - 240 => Some(Item::PurpurBlock), - 955 => Some(Item::PlayerHead), - 180 => Some(Item::WhiteTulip), - 295 => Some(Item::IronBars), - 707 => Some(Item::StoneAxe), - 767 => Some(Item::EnchantedGoldenApple), - 544 => Some(Item::DeadBubbleCoralFan), - 388 => Some(Item::BlackCarpet), - 99 => Some(Item::WaxedWeatheredCutCopperSlab), - 821 => Some(Item::BlueDye), - 273 => Some(Item::SmoothBasalt), - 16 => Some(Item::CoarseDirt), - 588 => Some(Item::Repeater), - 195 => Some(Item::TwistingVines), - 379 => Some(Item::PinkCarpet), - 439 => Some(Item::RedSandstone), - 125 => Some(Item::OakWood), - 31 => Some(Item::SpruceSapling), - 19 => Some(Item::CrimsonNylium), - 673 => Some(Item::JungleBoat), - 735 => Some(Item::WheatSeeds), - 1046 => Some(Item::CartographyTable), - 658 => Some(Item::DetectorRail), - 690 => Some(Item::AmethystShard), - 718 => Some(Item::IronHoe), - 25 => Some(Item::JunglePlanks), - 222 => Some(Item::RedSandstoneSlab), - 377 => Some(Item::YellowCarpet), - 446 => Some(Item::NetherWartBlock), - 256 => Some(Item::Jukebox), - 700 => Some(Item::WoodenShovel), - 764 => Some(Item::CookedPorkchop), - 128 => Some(Item::JungleWood), - 305 => Some(Item::NetherBricks), - 865 => Some(Item::SpiderEye), - 1096 => Some(Item::SmallAmethystBud), - 948 => Some(Item::Potato), - 1043 => Some(Item::Barrel), - 254 => Some(Item::Cactus), - 132 => Some(Item::WarpedHyphae), - 938 => Some(Item::ZombieVillagerSpawnEgg), - 762 => Some(Item::Flint), - 87 => Some(Item::WaxedWeatheredCopper), - 747 => Some(Item::IronChestplate), - 738 => Some(Item::LeatherHelmet), - 985 => Some(Item::LightBlueBanner), - 650 => Some(Item::SpruceFenceGate), - 566 => Some(Item::DeepslateTileStairs), - 962 => Some(Item::FireworkStar), - 527 => Some(Item::TubeCoral), - 347 => Some(Item::ChippedAnvil), - 122 => Some(Item::StrippedDarkOakWood), - 242 => Some(Item::PurpurStairs), - 384 => Some(Item::BlueCarpet), - 425 => Some(Item::CyanStainedGlassPane), - 458 => Some(Item::PinkShulkerBox), - 858 => Some(Item::EnderPearl), - 859 => Some(Item::BlazeRod), - 517 => Some(Item::DeadTubeCoralBlock), - 12 => Some(Item::Tuff), - 973 => Some(Item::IronHorseArmor), - 474 => Some(Item::PinkGlazedTerracotta), - 660 => Some(Item::ActivatorRail), - 468 => Some(Item::WhiteGlazedTerracotta), - 201 => Some(Item::BigDripleaf), - 1022 => Some(Item::MusicDiscStal), - 329 => Some(Item::RedSandstoneWall), - 50 => Some(Item::EmeraldOre), - 709 => Some(Item::GoldenSword), - 741 => Some(Item::LeatherBoots), - 34 => Some(Item::AcaciaSapling), - 317 => Some(Item::EmeraldBlock), - 530 => Some(Item::FireCoral), - 816 => Some(Item::PinkDye), - 842 => Some(Item::BrownBed), - 965 => Some(Item::PrismarineShard), - 1014 => Some(Item::DebugStick), - 723 => Some(Item::DiamondHoe), - 493 => Some(Item::CyanConcrete), - 354 => Some(Item::WhiteTerracotta), - 143 => Some(Item::Glass), - 988 => Some(Item::PinkBanner), - 1066 => Some(Item::Blackstone), - 1027 => Some(Item::MusicDiscOtherside), - 9 => Some(Item::CobbledDeepslate), - 969 => Some(Item::RabbitStew), - 990 => Some(Item::LightGrayBanner), - 114 => Some(Item::StrippedDarkOakLog), - 328 => Some(Item::PrismarineWall), - 274 => Some(Item::SoulTorch), - 600 => Some(Item::Lever), - 993 => Some(Item::BlueBanner), - 241 => Some(Item::PurpurPillar), - 908 => Some(Item::PiglinBruteSpawnEgg), - 131 => Some(Item::CrimsonHyphae), - 885 => Some(Item::DrownedSpawnEgg), - 382 => Some(Item::CyanCarpet), - 862 => Some(Item::NetherWart), - 452 => Some(Item::WhiteShulkerBox), - 846 => Some(Item::Cookie), - 876 => Some(Item::BlazeSpawnEgg), - 386 => Some(Item::GreenCarpet), - 641 => Some(Item::OakTrapdoor), - 1040 => Some(Item::GlobeBannerPattern), - 154 => Some(Item::DeadBush), - 406 => Some(Item::PinkStainedGlass), - 691 => Some(Item::RawIron), - 175 => Some(Item::BlueOrchid), - 661 => Some(Item::Saddle), - 699 => Some(Item::WoodenSword), - 1019 => Some(Item::MusicDiscFar), - 931 => Some(Item::WanderingTraderSpawnEgg), - 167 => Some(Item::PurpleWool), - 1085 => Some(Item::LimeCandle), - 53 => Some(Item::DeepslateLapisOre), - 627 => Some(Item::AcaciaPressurePlate), - 839 => Some(Item::CyanBed), - 528 => Some(Item::BrainCoral), - 351 => Some(Item::QuartzBricks), - 356 => Some(Item::MagentaTerracotta), - 779 => Some(Item::PowderSnowBucket), - 872 => Some(Item::GlisteringMelonSlice), - 992 => Some(Item::PurpleBanner), - 459 => Some(Item::GrayShulkerBox), - 176 => Some(Item::Allium), - 339 => Some(Item::BlackstoneWall), - 749 => Some(Item::IronBoots), - 1000 => Some(Item::PoppedChorusFruit), - 402 => Some(Item::MagentaStainedGlass), - 1044 => Some(Item::Smoker), - 903 => Some(Item::PandaSpawnEgg), - 281 => Some(Item::InfestedChiseledStoneBricks), - 563 => Some(Item::CobbledDeepslateStairs), - 341 => Some(Item::PolishedBlackstoneBrickWall), - 726 => Some(Item::NetheritePickaxe), - 508 => Some(Item::LightGrayConcretePowder), - 878 => Some(Item::CaveSpiderSpawnEgg), - 1070 => Some(Item::PolishedBlackstone), - 489 => Some(Item::LimeConcrete), - 21 => Some(Item::Cobblestone), - 40 => Some(Item::CoalOre), - 1 => Some(Item::Stone), - 127 => Some(Item::BirchWood), - 422 => Some(Item::PinkStainedGlassPane), - 514 => Some(Item::RedConcretePowder), - 729 => Some(Item::Stick), - 499 => Some(Item::BlackConcrete), - 18 => Some(Item::RootedDirt), - 509 => Some(Item::CyanConcretePowder), - 880 => Some(Item::CodSpawnEgg), - 914 => Some(Item::SalmonSpawnEgg), - 311 => Some(Item::EndPortalFrame), - 1049 => Some(Item::SmithingTable), - 258 => Some(Item::SpruceFence), - 380 => Some(Item::GrayCarpet), - 667 => Some(Item::CarrotOnAStick), - 539 => Some(Item::BubbleCoralFan), - 561 => Some(Item::PolishedAndesiteStairs), - 689 => Some(Item::Quartz), - 302 => Some(Item::StoneBrickStairs), - 576 => Some(Item::AndesiteSlab), - 810 => Some(Item::WhiteDye), - 834 => Some(Item::YellowBed), - 1065 => Some(Item::CryingObsidian), - 852 => Some(Item::MelonSeeds), - 599 => Some(Item::Target), - 61 => Some(Item::RawCopperBlock), - 766 => Some(Item::GoldenApple), - 231 => Some(Item::SmoothStone), - 257 => Some(Item::OakFence), - 101 => Some(Item::OakLog), - 929 => Some(Item::VillagerSpawnEgg), - 1023 => Some(Item::MusicDiscStrad), - 134 => Some(Item::SpruceLeaves), - 500 => Some(Item::WhiteConcretePowder), - 464 => Some(Item::BrownShulkerBox), - 652 => Some(Item::JungleFenceGate), - 843 => Some(Item::GreenBed), - 913 => Some(Item::RavagerSpawnEgg), - 151 => Some(Item::Fern), - 190 => Some(Item::WarpedFungus), - 300 => Some(Item::GlowLichen), - 481 => Some(Item::GreenGlazedTerracotta), - 501 => Some(Item::OrangeConcretePowder), - 671 => Some(Item::SpruceBoat), - 1029 => Some(Item::Trident), - 261 => Some(Item::AcaciaFence), - 306 => Some(Item::CrackedNetherBricks), - 847 => Some(Item::FilledMap), - 567 => Some(Item::PolishedGraniteSlab), - 977 => Some(Item::Lead), - 313 => Some(Item::EndStoneBricks), - 288 => Some(Item::CrackedDeepslateBricks), - 845 => Some(Item::BlackBed), - 529 => Some(Item::BubbleCoral), - 1047 => Some(Item::FletchingTable), - 518 => Some(Item::DeadBrainCoralBlock), - 1038 => Some(Item::SkullBannerPattern), - 791 => Some(Item::Paper), - 1055 => Some(Item::GlowBerries), - 92 => Some(Item::WaxedOxidizedCutCopper), - 503 => Some(Item::LightBlueConcretePowder), - 1003 => Some(Item::BeetrootSoup), - 353 => Some(Item::QuartzStairs), - 743 => Some(Item::ChainmailChestplate), - 10 => Some(Item::PolishedDeepslate), - 84 => Some(Item::OxidizedCutCopperSlab), - 421 => Some(Item::LimeStainedGlassPane), - 1016 => Some(Item::MusicDiscCat), - 654 => Some(Item::DarkOakFenceGate), - 583 => Some(Item::DeepslateTileSlab), - 702 => Some(Item::WoodenAxe), - 753 => Some(Item::DiamondBoots), - 1088 => Some(Item::LightGrayCandle), - 142 => Some(Item::WetSponge), - 1087 => Some(Item::GrayCandle), - 1098 => Some(Item::LargeAmethystBud), - 208 => Some(Item::AcaciaSlab), - 1042 => Some(Item::Composter), - 492 => Some(Item::LightGrayConcrete), - 901 => Some(Item::MuleSpawnEgg), - 722 => Some(Item::DiamondAxe), - 739 => Some(Item::LeatherChestplate), - 1084 => Some(Item::YellowCandle), - 373 => Some(Item::WhiteCarpet), - 725 => Some(Item::NetheriteShovel), - 632 => Some(Item::OakDoor), - 835 => Some(Item::LimeBed), - 184 => Some(Item::LilyOfTheValley), - 144 => Some(Item::TintedGlass), - 659 => Some(Item::Rail), - 457 => Some(Item::LimeShulkerBox), - 304 => Some(Item::LilyPad), - 1020 => Some(Item::MusicDiscMall), - 482 => Some(Item::RedGlazedTerracotta), - 28 => Some(Item::CrimsonPlanks), - 597 => Some(Item::Dropper), - 870 => Some(Item::Cauldron), - 1039 => Some(Item::MojangBannerPattern), - 166 => Some(Item::CyanWool), - 684 => Some(Item::Coal), - 42 => Some(Item::IronOre), - 89 => Some(Item::WaxedCutCopper), - 399 => Some(Item::LargeFern), - 335 => Some(Item::RedNetherBrickWall), - 648 => Some(Item::WarpedTrapdoor), - 228 => Some(Item::SmoothQuartz), - 448 => Some(Item::RedNetherBricks), - 15 => Some(Item::Dirt), - 55 => Some(Item::DeepslateDiamondOre), - 545 => Some(Item::DeadFireCoralFan), - 86 => Some(Item::WaxedExposedCopper), - 628 => Some(Item::DarkOakPressurePlate), - 168 => Some(Item::BlueWool), - 875 => Some(Item::BeeSpawnEgg), - 921 => Some(Item::SpiderSpawnEgg), - 695 => Some(Item::RawGold), - 107 => Some(Item::CrimsonStem), - 604 => Some(Item::TripwireHook), - 972 => Some(Item::ArmorStand), - 430 => Some(Item::RedStainedGlassPane), - 995 => Some(Item::GreenBanner), - 414 => Some(Item::RedStainedGlass), - 678 => Some(Item::TurtleHelmet), - 126 => Some(Item::SpruceWood), - 441 => Some(Item::CutRedSandstone), - 54 => Some(Item::DiamondOre), - 160 => Some(Item::LightBlueWool), - 412 => Some(Item::BrownStainedGlass), - 989 => Some(Item::GrayBanner), - 1032 => Some(Item::HeartOfTheSea), - 239 => Some(Item::ChorusFlower), - 828 => Some(Item::Sugar), - 14 => Some(Item::GrassBlock), - 672 => Some(Item::BirchBoat), - 968 => Some(Item::CookedRabbit), - 118 => Some(Item::StrippedSpruceWood), - 582 => Some(Item::DeepslateBrickSlab), - 887 => Some(Item::EndermanSpawnEgg), - 470 => Some(Item::MagentaGlazedTerracotta), - 664 => Some(Item::FurnaceMinecart), - 939 => Some(Item::ZombifiedPiglinSpawnEgg), - 1054 => Some(Item::SweetBerries), - 732 => Some(Item::String), - 756 => Some(Item::GoldenLeggings), - 984 => Some(Item::MagentaBanner), - 80 => Some(Item::OxidizedCutCopperStairs), - 696 => Some(Item::GoldIngot), - 857 => Some(Item::RottenFlesh), - 36 => Some(Item::Bedrock), - 645 => Some(Item::AcaciaTrapdoor), - 316 => Some(Item::EnderChest), - 410 => Some(Item::PurpleStainedGlass), - 884 => Some(Item::DonkeySpawnEgg), - 1050 => Some(Item::Stonecutter), - 148 => Some(Item::CutSandstone), - 864 => Some(Item::GlassBottle), - 23 => Some(Item::SprucePlanks), - 513 => Some(Item::GreenConcretePowder), - 752 => Some(Item::DiamondLeggings), - 1095 => Some(Item::BlackCandle), - 401 => Some(Item::OrangeStainedGlass), - 1004 => Some(Item::DragonBreath), - 848 => Some(Item::Shears), - 111 => Some(Item::StrippedBirchLog), - 432 => Some(Item::Prismarine), - 415 => Some(Item::BlackStainedGlass), - 91 => Some(Item::WaxedWeatheredCutCopper), - 638 => Some(Item::CrimsonDoor), - 1068 => Some(Item::BlackstoneStairs), - 960 => Some(Item::PumpkinPie), - 631 => Some(Item::IronDoor), - 905 => Some(Item::PhantomSpawnEgg), - 975 => Some(Item::DiamondHorseArmor), - 197 => Some(Item::Kelp), - 740 => Some(Item::LeatherLeggings), - 928 => Some(Item::VexSpawnEgg), - 455 => Some(Item::LightBlueShulkerBox), - 591 => Some(Item::StickyPiston), - 119 => Some(Item::StrippedBirchWood), - 484 => Some(Item::WhiteConcrete), - 551 => Some(Item::MossyStoneBrickStairs), - 66 => Some(Item::CopperBlock), - 249 => Some(Item::Ladder), - 191 => Some(Item::CrimsonRoots), - 525 => Some(Item::FireCoralBlock), - 733 => Some(Item::Feather), - 759 => Some(Item::NetheriteChestplate), - 902 => Some(Item::OcelotSpawnEgg), - 308 => Some(Item::NetherBrickFence), - 357 => Some(Item::LightBlueTerracotta), - 186 => Some(Item::SporeBlossom), - 213 => Some(Item::SmoothStoneSlab), - 1013 => Some(Item::KnowledgeBook), - 1061 => Some(Item::Beehive), - 52 => Some(Item::LapisOre), - 104 => Some(Item::JungleLog), - 893 => Some(Item::GoatSpawnEgg), - 1094 => Some(Item::RedCandle), - 291 => Some(Item::ChiseledDeepslate), - 381 => Some(Item::LightGrayCarpet), - 883 => Some(Item::DolphinSpawnEgg), - 579 => Some(Item::DioriteSlab), - 141 => Some(Item::Sponge), - 940 => Some(Item::ExperienceBottle), - 606 => Some(Item::Tnt), - 596 => Some(Item::Dispenser), - 268 => Some(Item::Netherrack), - 272 => Some(Item::PolishedBasalt), - 46 => Some(Item::GoldOre), - 1089 => Some(Item::CyanCandle), - 378 => Some(Item::LimeCarpet), - 297 => Some(Item::GlassPane), - 909 => Some(Item::PillagerSpawnEgg), - 776 => Some(Item::Bucket), - 825 => Some(Item::BlackDye), - 320 => Some(Item::JungleStairs), - 982 => Some(Item::WhiteBanner), - 994 => Some(Item::BrownBanner), - 910 => Some(Item::PolarBearSpawnEgg), - 879 => Some(Item::ChickenSpawnEgg), - 634 => Some(Item::BirchDoor), - 543 => Some(Item::DeadBrainCoralFan), - 924 => Some(Item::StriderSpawnEgg), - 445 => Some(Item::MagmaBlock), - 262 => Some(Item::DarkOakFence), - 392 => Some(Item::DarkOakStairs), - 569 => Some(Item::MossyStoneBrickSlab), - 81 => Some(Item::CutCopperSlab), - 523 => Some(Item::BrainCoralBlock), - 786 => Some(Item::TropicalFishBucket), - 435 => Some(Item::PrismarineStairs), - 290 => Some(Item::CrackedDeepslateTiles), - 13 => Some(Item::DripstoneBlock), - 757 => Some(Item::GoldenBoots), - 1092 => Some(Item::BrownCandle), - 927 => Some(Item::TurtleSpawnEgg), - 550 => Some(Item::SmoothRedSandstoneStairs), - 915 => Some(Item::SheepSpawnEgg), - 497 => Some(Item::GreenConcrete), - 39 => Some(Item::Gravel), - _ => None, - } - } -} -impl Item { - #[doc = "Returns the `name` property of this `Item`."] - #[inline] - pub fn name(&self) -> &'static str { - match self { - Item::AncientDebris => "ancient_debris", - Item::ShulkerShell => "shulker_shell", - Item::QuartzBlock => "quartz_block", - Item::CrackedNetherBricks => "cracked_nether_bricks", - Item::Saddle => "saddle", - Item::GoldenAxe => "golden_axe", - Item::ExperienceBottle => "experience_bottle", - Item::PolishedBasalt => "polished_basalt", - Item::String => "string", - Item::OrangeStainedGlass => "orange_stained_glass", - Item::PhantomSpawnEgg => "phantom_spawn_egg", - Item::RabbitFoot => "rabbit_foot", - Item::LightBlueStainedGlassPane => "light_blue_stained_glass_pane", - Item::DarkOakTrapdoor => "dark_oak_trapdoor", - Item::NetherBrickSlab => "nether_brick_slab", - Item::StrippedBirchWood => "stripped_birch_wood", - Item::RawIronBlock => "raw_iron_block", - Item::PolishedBlackstoneWall => "polished_blackstone_wall", - Item::WarpedSign => "warped_sign", - Item::DiamondOre => "diamond_ore", - Item::WarpedFence => "warped_fence", - Item::PolishedAndesiteStairs => "polished_andesite_stairs", - Item::NetheriteSword => "netherite_sword", - Item::PurpleConcrete => "purple_concrete", - Item::StructureVoid => "structure_void", - Item::OakButton => "oak_button", - Item::Scute => "scute", - Item::CobbledDeepslateStairs => "cobbled_deepslate_stairs", - Item::Bedrock => "bedrock", - Item::MediumAmethystBud => "medium_amethyst_bud", - Item::NetherBrickStairs => "nether_brick_stairs", - Item::GreenBed => "green_bed", - Item::SmoothQuartzStairs => "smooth_quartz_stairs", - Item::LimeGlazedTerracotta => "lime_glazed_terracotta", - Item::SalmonBucket => "salmon_bucket", - Item::BlazePowder => "blaze_powder", - Item::PiglinBannerPattern => "piglin_banner_pattern", - Item::SmoothQuartz => "smooth_quartz", - Item::DriedKelp => "dried_kelp", - Item::CoalOre => "coal_ore", - Item::DarkOakPlanks => "dark_oak_planks", - Item::OrangeGlazedTerracotta => "orange_glazed_terracotta", - Item::PurpleStainedGlassPane => "purple_stained_glass_pane", - Item::DirtPath => "dirt_path", - Item::DeadFireCoralBlock => "dead_fire_coral_block", - Item::GoldenHorseArmor => "golden_horse_armor", - Item::Painting => "painting", - Item::BlackConcrete => "black_concrete", - Item::DaylightDetector => "daylight_detector", - Item::NetheritePickaxe => "netherite_pickaxe", - Item::MooshroomSpawnEgg => "mooshroom_spawn_egg", - Item::WaxedOxidizedCopper => "waxed_oxidized_copper", - Item::GlowItemFrame => "glow_item_frame", - Item::OakLog => "oak_log", - Item::Anvil => "anvil", - Item::NetheriteAxe => "netherite_axe", - Item::GoldenHelmet => "golden_helmet", - Item::Stonecutter => "stonecutter", - Item::ChiseledStoneBricks => "chiseled_stone_bricks", - Item::MossyCobblestone => "mossy_cobblestone", - Item::GrayConcretePowder => "gray_concrete_powder", - Item::DeepslateBrickSlab => "deepslate_brick_slab", - Item::Mycelium => "mycelium", - Item::MushroomStem => "mushroom_stem", - Item::GraniteWall => "granite_wall", - Item::PinkBanner => "pink_banner", - Item::ZombifiedPiglinSpawnEgg => "zombified_piglin_spawn_egg", - Item::MusicDiscWait => "music_disc_wait", - Item::BirchPlanks => "birch_planks", - Item::AcaciaWood => "acacia_wood", - Item::DeepslateTileSlab => "deepslate_tile_slab", - Item::YellowShulkerBox => "yellow_shulker_box", - Item::LeatherLeggings => "leather_leggings", - Item::DragonHead => "dragon_head", - Item::DarkPrismarine => "dark_prismarine", - Item::Azalea => "azalea", - Item::HoneycombBlock => "honeycomb_block", - Item::GreenTerracotta => "green_terracotta", - Item::Dispenser => "dispenser", - Item::AndesiteWall => "andesite_wall", - Item::BlackStainedGlassPane => "black_stained_glass_pane", - Item::PinkShulkerBox => "pink_shulker_box", - Item::BubbleCoralBlock => "bubble_coral_block", - Item::CrimsonNylium => "crimson_nylium", - Item::CyanStainedGlass => "cyan_stained_glass", - Item::PrismarineBrickSlab => "prismarine_brick_slab", - Item::LargeAmethystBud => "large_amethyst_bud", - Item::FermentedSpiderEye => "fermented_spider_eye", - Item::BubbleCoral => "bubble_coral", - Item::PillagerSpawnEgg => "pillager_spawn_egg", - Item::GoldenBoots => "golden_boots", - Item::BlueBed => "blue_bed", - Item::PetrifiedOakSlab => "petrified_oak_slab", - Item::MagentaCandle => "magenta_candle", - Item::SlimeBall => "slime_ball", - Item::TropicalFishBucket => "tropical_fish_bucket", - Item::GraniteStairs => "granite_stairs", - Item::PurpleCandle => "purple_candle", - Item::WhiteWool => "white_wool", - Item::Blackstone => "blackstone", - Item::Poppy => "poppy", - Item::BirchWood => "birch_wood", - Item::Netherrack => "netherrack", - Item::Glass => "glass", - Item::MagentaConcretePowder => "magenta_concrete_powder", - Item::YellowBanner => "yellow_banner", - Item::BrownBanner => "brown_banner", - Item::StraySpawnEgg => "stray_spawn_egg", - Item::PolishedBlackstoneBricks => "polished_blackstone_bricks", - Item::OxidizedCutCopper => "oxidized_cut_copper", - Item::HornCoral => "horn_coral", - Item::WeatheredCutCopperSlab => "weathered_cut_copper_slab", - Item::SmallAmethystBud => "small_amethyst_bud", - Item::CopperIngot => "copper_ingot", - Item::Target => "target", - Item::NetherSprouts => "nether_sprouts", - Item::PandaSpawnEgg => "panda_spawn_egg", - Item::BlazeRod => "blaze_rod", - Item::BirchLog => "birch_log", - Item::PurpleTerracotta => "purple_terracotta", - Item::CyanGlazedTerracotta => "cyan_glazed_terracotta", - Item::StrippedCrimsonHyphae => "stripped_crimson_hyphae", - Item::AcaciaButton => "acacia_button", - Item::AcaciaLog => "acacia_log", - Item::WaxedExposedCutCopperStairs => "waxed_exposed_cut_copper_stairs", - Item::MusicDiscFar => "music_disc_far", - Item::LavaBucket => "lava_bucket", - Item::WaxedWeatheredCutCopperSlab => "waxed_weathered_cut_copper_slab", - Item::ChiseledSandstone => "chiseled_sandstone", - Item::InfestedStoneBricks => "infested_stone_bricks", - Item::OxeyeDaisy => "oxeye_daisy", - Item::Cactus => "cactus", - Item::JungleSign => "jungle_sign", - Item::WaxedOxidizedCutCopper => "waxed_oxidized_cut_copper", - Item::FloweringAzaleaLeaves => "flowering_azalea_leaves", - Item::SmoothStoneSlab => "smooth_stone_slab", - Item::StrippedDarkOakWood => "stripped_dark_oak_wood", - Item::SoulCampfire => "soul_campfire", - Item::MagentaConcrete => "magenta_concrete", - Item::PolishedDioriteStairs => "polished_diorite_stairs", - Item::OakPressurePlate => "oak_pressure_plate", - Item::PrismarineShard => "prismarine_shard", - Item::MojangBannerPattern => "mojang_banner_pattern", - Item::OrangeCarpet => "orange_carpet", - Item::StrippedDarkOakLog => "stripped_dark_oak_log", - Item::SlimeBlock => "slime_block", - Item::StonePickaxe => "stone_pickaxe", - Item::HeartOfTheSea => "heart_of_the_sea", - Item::Quartz => "quartz", - Item::SoulSoil => "soul_soil", - Item::Cauldron => "cauldron", - Item::RepeatingCommandBlock => "repeating_command_block", - Item::WoodenPickaxe => "wooden_pickaxe", - Item::GlowLichen => "glow_lichen", - Item::SpruceDoor => "spruce_door", - Item::MusicDiscWard => "music_disc_ward", - Item::SoulTorch => "soul_torch", - Item::GoldenPickaxe => "golden_pickaxe", - Item::LimeCarpet => "lime_carpet", - Item::AndesiteSlab => "andesite_slab", - Item::Composter => "composter", - Item::WeatheredCutCopper => "weathered_cut_copper", - Item::LimeShulkerBox => "lime_shulker_box", - Item::StrippedAcaciaWood => "stripped_acacia_wood", - Item::Sponge => "sponge", - Item::StrippedSpruceWood => "stripped_spruce_wood", - Item::Snow => "snow", - Item::YellowTerracotta => "yellow_terracotta", - Item::AcaciaBoat => "acacia_boat", - Item::StriderSpawnEgg => "strider_spawn_egg", - Item::LightGrayCandle => "light_gray_candle", - Item::IronBoots => "iron_boots", - Item::TurtleEgg => "turtle_egg", - Item::MossyStoneBrickStairs => "mossy_stone_brick_stairs", - Item::WaxedCutCopperSlab => "waxed_cut_copper_slab", - Item::PolishedGraniteStairs => "polished_granite_stairs", - Item::InfestedChiseledStoneBricks => "infested_chiseled_stone_bricks", - Item::OxidizedCopper => "oxidized_copper", - Item::CrackedStoneBricks => "cracked_stone_bricks", - Item::Scaffolding => "scaffolding", - Item::CodBucket => "cod_bucket", - Item::HuskSpawnEgg => "husk_spawn_egg", - Item::StrippedBirchLog => "stripped_birch_log", - Item::LimeConcretePowder => "lime_concrete_powder", - Item::CreeperSpawnEgg => "creeper_spawn_egg", - Item::GoatSpawnEgg => "goat_spawn_egg", - Item::SpruceLeaves => "spruce_leaves", - Item::Sugar => "sugar", - Item::CodSpawnEgg => "cod_spawn_egg", - Item::RabbitHide => "rabbit_hide", - Item::MusicDiscOtherside => "music_disc_otherside", - Item::CyanCandle => "cyan_candle", - Item::DarkPrismarineSlab => "dark_prismarine_slab", - Item::SkullBannerPattern => "skull_banner_pattern", - Item::Bricks => "bricks", - Item::Shield => "shield", - Item::LlamaSpawnEgg => "llama_spawn_egg", - Item::GrassBlock => "grass_block", - Item::Book => "book", - Item::Bell => "bell", - Item::RedNetherBrickWall => "red_nether_brick_wall", - Item::BlackBed => "black_bed", - Item::JungleLeaves => "jungle_leaves", - Item::DeadFireCoralFan => "dead_fire_coral_fan", - Item::TropicalFish => "tropical_fish", - Item::BoneMeal => "bone_meal", - Item::OrangeBed => "orange_bed", - Item::Chest => "chest", - Item::RedCarpet => "red_carpet", - Item::LightBlueConcrete => "light_blue_concrete", - Item::WeepingVines => "weeping_vines", - Item::Crossbow => "crossbow", - Item::TintedGlass => "tinted_glass", - Item::LimeBanner => "lime_banner", - Item::CrimsonButton => "crimson_button", - Item::PrismarineBricks => "prismarine_bricks", - Item::StoneHoe => "stone_hoe", - Item::BlackConcretePowder => "black_concrete_powder", - Item::Porkchop => "porkchop", - Item::WeatheredCutCopperStairs => "weathered_cut_copper_stairs", - Item::PurpleCarpet => "purple_carpet", - Item::FireCharge => "fire_charge", - Item::MossyStoneBrickWall => "mossy_stone_brick_wall", - Item::MagentaStainedGlassPane => "magenta_stained_glass_pane", - Item::RedConcretePowder => "red_concrete_powder", - Item::AcaciaSign => "acacia_sign", - Item::LightGrayWool => "light_gray_wool", - Item::PurpurBlock => "purpur_block", - Item::GoldenSword => "golden_sword", - Item::PurpleDye => "purple_dye", - Item::NetherBricks => "nether_bricks", - Item::LightBlueBed => "light_blue_bed", - Item::DarkOakLeaves => "dark_oak_leaves", - Item::ZombieSpawnEgg => "zombie_spawn_egg", - Item::MusicDiscMellohi => "music_disc_mellohi", - Item::DetectorRail => "detector_rail", - Item::WhiteBed => "white_bed", - Item::Minecart => "minecart", - Item::CartographyTable => "cartography_table", - Item::DeepslateIronOre => "deepslate_iron_ore", - Item::DarkOakPressurePlate => "dark_oak_pressure_plate", - Item::CrackedDeepslateBricks => "cracked_deepslate_bricks", - Item::BlackStainedGlass => "black_stained_glass", - Item::IronChestplate => "iron_chestplate", - Item::Chicken => "chicken", - Item::SmoothRedSandstoneStairs => "smooth_red_sandstone_stairs", - Item::WarpedFungus => "warped_fungus", - Item::MusicDisc13 => "music_disc_13", - Item::DeepslateBrickStairs => "deepslate_brick_stairs", - Item::TallGrass => "tall_grass", - Item::MagentaDye => "magenta_dye", - Item::Dandelion => "dandelion", - Item::WrittenBook => "written_book", - Item::JungleFence => "jungle_fence", - Item::OakPlanks => "oak_planks", - Item::GlassBottle => "glass_bottle", - Item::LightBlueGlazedTerracotta => "light_blue_glazed_terracotta", - Item::RedstoneTorch => "redstone_torch", - Item::RedMushroomBlock => "red_mushroom_block", - Item::DeadBubbleCoralBlock => "dead_bubble_coral_block", - Item::Bookshelf => "bookshelf", - Item::DiamondHoe => "diamond_hoe", - Item::DeepslateBrickWall => "deepslate_brick_wall", - Item::Light => "light", - Item::WaterBucket => "water_bucket", - Item::DeepslateEmeraldOre => "deepslate_emerald_ore", - Item::DeadBubbleCoralFan => "dead_bubble_coral_fan", - Item::GuardianSpawnEgg => "guardian_spawn_egg", - Item::MuleSpawnEgg => "mule_spawn_egg", - Item::RawCopperBlock => "raw_copper_block", - Item::JungleWood => "jungle_wood", - Item::RedStainedGlass => "red_stained_glass", - Item::DeadBubbleCoral => "dead_bubble_coral", - Item::Potato => "potato", - Item::Compass => "compass", - Item::PinkDye => "pink_dye", - Item::Observer => "observer", - Item::MagentaGlazedTerracotta => "magenta_glazed_terracotta", - Item::DeadBush => "dead_bush", - Item::PolishedBlackstoneSlab => "polished_blackstone_slab", - Item::VindicatorSpawnEgg => "vindicator_spawn_egg", - Item::ChainmailLeggings => "chainmail_leggings", - Item::DarkOakDoor => "dark_oak_door", - Item::BlueOrchid => "blue_orchid", - Item::BrownMushroomBlock => "brown_mushroom_block", - Item::RedSandstoneWall => "red_sandstone_wall", - Item::WhiteStainedGlass => "white_stained_glass", - Item::Beetroot => "beetroot", - Item::Rail => "rail", - Item::PhantomMembrane => "phantom_membrane", - Item::WhiteShulkerBox => "white_shulker_box", - Item::BlueBanner => "blue_banner", - Item::Farmland => "farmland", - Item::RedNetherBrickSlab => "red_nether_brick_slab", - Item::PolishedAndesiteSlab => "polished_andesite_slab", - Item::BlueStainedGlass => "blue_stained_glass", - Item::DragonBreath => "dragon_breath", - Item::WritableBook => "writable_book", - Item::GreenGlazedTerracotta => "green_glazed_terracotta", - Item::DeepslateRedstoneOre => "deepslate_redstone_ore", - Item::Prismarine => "prismarine", - Item::PurpleBed => "purple_bed", - Item::BlastFurnace => "blast_furnace", - Item::BrickSlab => "brick_slab", - Item::GreenStainedGlassPane => "green_stained_glass_pane", - Item::ChiseledRedSandstone => "chiseled_red_sandstone", - Item::MossyCobblestoneSlab => "mossy_cobblestone_slab", - Item::BlackDye => "black_dye", - Item::DeepslateBricks => "deepslate_bricks", - Item::HeavyWeightedPressurePlate => "heavy_weighted_pressure_plate", - Item::BeetrootSeeds => "beetroot_seeds", - Item::PolishedGraniteSlab => "polished_granite_slab", - Item::Bow => "bow", - Item::LightGrayGlazedTerracotta => "light_gray_glazed_terracotta", - Item::TripwireHook => "tripwire_hook", - Item::IronNugget => "iron_nugget", - Item::Granite => "granite", - Item::IronBlock => "iron_block", - Item::WarpedSlab => "warped_slab", - Item::SmallDripleaf => "small_dripleaf", - Item::PolishedDeepslate => "polished_deepslate", - Item::RedWool => "red_wool", - Item::OakBoat => "oak_boat", - Item::WhiteCarpet => "white_carpet", - Item::OrangeDye => "orange_dye", - Item::SmoothQuartzSlab => "smooth_quartz_slab", - Item::CowSpawnEgg => "cow_spawn_egg", - Item::SeaLantern => "sea_lantern", - Item::LightWeightedPressurePlate => "light_weighted_pressure_plate", - Item::RoseBush => "rose_bush", - Item::PinkBed => "pink_bed", - Item::CookedMutton => "cooked_mutton", - Item::DeepslateLapisOre => "deepslate_lapis_ore", - Item::Seagrass => "seagrass", - Item::PolishedBlackstoneButton => "polished_blackstone_button", - Item::CocoaBeans => "cocoa_beans", - Item::ExposedCopper => "exposed_copper", - Item::PolishedDeepslateStairs => "polished_deepslate_stairs", - Item::GoldenApple => "golden_apple", - Item::Clock => "clock", - Item::PurpleStainedGlass => "purple_stained_glass", - Item::KnowledgeBook => "knowledge_book", - Item::Coal => "coal", - Item::EmeraldBlock => "emerald_block", - Item::PowderSnowBucket => "powder_snow_bucket", - Item::LightBlueBanner => "light_blue_banner", - Item::CutCopper => "cut_copper", - Item::CrimsonPlanks => "crimson_planks", - Item::JungleFenceGate => "jungle_fence_gate", - Item::Candle => "candle", - Item::PolishedBlackstoneStairs => "polished_blackstone_stairs", - Item::HornCoralFan => "horn_coral_fan", - Item::WeatheredCopper => "weathered_copper", - Item::WarpedPlanks => "warped_planks", - Item::EndStoneBrickWall => "end_stone_brick_wall", - Item::JungleButton => "jungle_button", - Item::DeepslateTiles => "deepslate_tiles", - Item::Ice => "ice", - Item::CutRedSandstoneSlab => "cut_red_sandstone_slab", - Item::LimeCandle => "lime_candle", - Item::SoulLantern => "soul_lantern", - Item::Tnt => "tnt", - Item::AcaciaPlanks => "acacia_planks", - Item::WheatSeeds => "wheat_seeds", - Item::StoneStairs => "stone_stairs", - Item::MagmaCubeSpawnEgg => "magma_cube_spawn_egg", - Item::LimeTerracotta => "lime_terracotta", - Item::LightGrayBed => "light_gray_bed", - Item::MushroomStew => "mushroom_stew", - Item::RedSandstone => "red_sandstone", - Item::SpectralArrow => "spectral_arrow", - Item::MusicDiscStrad => "music_disc_strad", - Item::Emerald => "emerald", - Item::GlassPane => "glass_pane", - Item::PolishedBlackstonePressurePlate => "polished_blackstone_pressure_plate", - Item::Stick => "stick", - Item::LightGrayShulkerBox => "light_gray_shulker_box", - Item::StoneBricks => "stone_bricks", - Item::Vine => "vine", - Item::Comparator => "comparator", - Item::EndCrystal => "end_crystal", - Item::DeepslateCoalOre => "deepslate_coal_ore", - Item::Smoker => "smoker", - Item::DeepslateDiamondOre => "deepslate_diamond_ore", - Item::LimeStainedGlass => "lime_stained_glass", - Item::Melon => "melon", - Item::IronAxe => "iron_axe", - Item::WaxedOxidizedCutCopperStairs => "waxed_oxidized_cut_copper_stairs", - Item::RedNetherBrickStairs => "red_nether_brick_stairs", - Item::LapisLazuli => "lapis_lazuli", - Item::BlackstoneStairs => "blackstone_stairs", - Item::OcelotSpawnEgg => "ocelot_spawn_egg", - Item::RedConcrete => "red_concrete", - Item::DripstoneBlock => "dripstone_block", - Item::InfestedDeepslate => "infested_deepslate", - Item::ShulkerSpawnEgg => "shulker_spawn_egg", - Item::JungleSapling => "jungle_sapling", - Item::SpiderEye => "spider_eye", - Item::YellowCandle => "yellow_candle", - Item::Deepslate => "deepslate", - Item::Fern => "fern", - Item::BrownConcretePowder => "brown_concrete_powder", - Item::DeepslateTileStairs => "deepslate_tile_stairs", - Item::Cookie => "cookie", - Item::EnchantedBook => "enchanted_book", - Item::CutSandstone => "cut_sandstone", - Item::LilyPad => "lily_pad", - Item::Cornflower => "cornflower", - Item::NetherBrickWall => "nether_brick_wall", - Item::Loom => "loom", - Item::JungleBoat => "jungle_boat", - Item::YellowDye => "yellow_dye", - Item::OakFence => "oak_fence", - Item::FlintAndSteel => "flint_and_steel", - Item::GreenStainedGlass => "green_stained_glass", - Item::Lodestone => "lodestone", - Item::SporeBlossom => "spore_blossom", - Item::YellowGlazedTerracotta => "yellow_glazed_terracotta", - Item::PolishedBlackstoneBrickWall => "polished_blackstone_brick_wall", - Item::DiamondBoots => "diamond_boots", - Item::HangingRoots => "hanging_roots", - Item::BlueIce => "blue_ice", - Item::MilkBucket => "milk_bucket", - Item::DiamondBlock => "diamond_block", - Item::ZombieVillagerSpawnEgg => "zombie_villager_spawn_egg", - Item::GoldenCarrot => "golden_carrot", - Item::Pufferfish => "pufferfish", - Item::LightGrayConcretePowder => "light_gray_concrete_powder", - Item::OrangeTerracotta => "orange_terracotta", - Item::DeepslateGoldOre => "deepslate_gold_ore", - Item::PrismarineBrickStairs => "prismarine_brick_stairs", - Item::BirchSign => "birch_sign", - Item::MelonSlice => "melon_slice", - Item::CookedChicken => "cooked_chicken", - Item::PolarBearSpawnEgg => "polar_bear_spawn_egg", - Item::BrownCandle => "brown_candle", - Item::BirchFence => "birch_fence", - Item::EndStone => "end_stone", - Item::CyanBed => "cyan_bed", - Item::OrangeStainedGlassPane => "orange_stained_glass_pane", - Item::DeadTubeCoral => "dead_tube_coral", - Item::WarpedDoor => "warped_door", - Item::BirchStairs => "birch_stairs", - Item::EndStoneBrickStairs => "end_stone_brick_stairs", - Item::Gunpowder => "gunpowder", - Item::BeetrootSoup => "beetroot_soup", - Item::GreenDye => "green_dye", - Item::LightBlueCandle => "light_blue_candle", - Item::Apple => "apple", - Item::SkeletonSkull => "skeleton_skull", - Item::BrainCoralFan => "brain_coral_fan", - Item::LightGrayCarpet => "light_gray_carpet", - Item::SprucePlanks => "spruce_planks", - Item::Snowball => "snowball", - Item::Piston => "piston", - Item::SpruceSign => "spruce_sign", - Item::LightGrayConcrete => "light_gray_concrete", - Item::StoneAxe => "stone_axe", - Item::MusicDiscChirp => "music_disc_chirp", - Item::EnderPearl => "ender_pearl", - Item::GoldNugget => "gold_nugget", - Item::WaxedExposedCopper => "waxed_exposed_copper", - Item::GoldenShovel => "golden_shovel", - Item::TwistingVines => "twisting_vines", - Item::PiglinBruteSpawnEgg => "piglin_brute_spawn_egg", - Item::Lever => "lever", - Item::PumpkinSeeds => "pumpkin_seeds", - Item::BlueDye => "blue_dye", - Item::Peony => "peony", - Item::Cake => "cake", - Item::OrangeBanner => "orange_banner", - Item::MusicDiscCat => "music_disc_cat", - Item::SmoothStone => "smooth_stone", - Item::BrainCoral => "brain_coral", - Item::OakDoor => "oak_door", - Item::TubeCoral => "tube_coral", - Item::FurnaceMinecart => "furnace_minecart", - Item::Leather => "leather", - Item::NautilusShell => "nautilus_shell", - Item::Kelp => "kelp", - Item::SandstoneWall => "sandstone_wall", - Item::RawGold => "raw_gold", - Item::PumpkinPie => "pumpkin_pie", - Item::AcaciaSapling => "acacia_sapling", - Item::GrayCarpet => "gray_carpet", - Item::RedstoneBlock => "redstone_block", - Item::MossyStoneBrickSlab => "mossy_stone_brick_slab", - Item::PoweredRail => "powered_rail", - Item::LightGrayStainedGlass => "light_gray_stained_glass", - Item::NetheriteChestplate => "netherite_chestplate", - Item::LightBlueTerracotta => "light_blue_terracotta", - Item::BakedPotato => "baked_potato", - Item::PurpleConcretePowder => "purple_concrete_powder", - Item::Stone => "stone", - Item::SmithingTable => "smithing_table", - Item::TrappedChest => "trapped_chest", - Item::GrayTerracotta => "gray_terracotta", - Item::WaxedOxidizedCutCopperSlab => "waxed_oxidized_cut_copper_slab", - Item::GildedBlackstone => "gilded_blackstone", - Item::TropicalFishSpawnEgg => "tropical_fish_spawn_egg", - Item::AcaciaLeaves => "acacia_leaves", - Item::BlackCarpet => "black_carpet", - Item::GoldIngot => "gold_ingot", - Item::CommandBlockMinecart => "command_block_minecart", - Item::BubbleCoralFan => "bubble_coral_fan", - Item::MusicDisc11 => "music_disc_11", - Item::PurpleBanner => "purple_banner", - Item::PolishedBlackstone => "polished_blackstone", - Item::RedGlazedTerracotta => "red_glazed_terracotta", - Item::BlueStainedGlassPane => "blue_stained_glass_pane", - Item::MagmaBlock => "magma_block", - Item::Podzol => "podzol", - Item::StickyPiston => "sticky_piston", - Item::GhastTear => "ghast_tear", - Item::BigDripleaf => "big_dripleaf", - Item::BlueCarpet => "blue_carpet", - Item::CyanStainedGlassPane => "cyan_stained_glass_pane", - Item::YellowConcretePowder => "yellow_concrete_powder", - Item::DiamondChestplate => "diamond_chestplate", - Item::ZombieHorseSpawnEgg => "zombie_horse_spawn_egg", - Item::WarpedFenceGate => "warped_fence_gate", - Item::SweetBerries => "sweet_berries", - Item::StrippedSpruceLog => "stripped_spruce_log", - Item::CoalBlock => "coal_block", - Item::RedSandstoneSlab => "red_sandstone_slab", - Item::DarkOakBoat => "dark_oak_boat", - Item::Bundle => "bundle", - Item::NetheriteIngot => "netherite_ingot", - Item::CrimsonStairs => "crimson_stairs", - Item::WhiteConcretePowder => "white_concrete_powder", - Item::PufferfishBucket => "pufferfish_bucket", - Item::CobblestoneStairs => "cobblestone_stairs", - Item::WarpedWartBlock => "warped_wart_block", - Item::ChickenSpawnEgg => "chicken_spawn_egg", - Item::OrangeTulip => "orange_tulip", - Item::Glowstone => "glowstone", - Item::Chain => "chain", - Item::BirchTrapdoor => "birch_trapdoor", - Item::MagmaCream => "magma_cream", - Item::AxolotlSpawnEgg => "axolotl_spawn_egg", - Item::StoneButton => "stone_button", - Item::CopperBlock => "copper_block", - Item::SculkSensor => "sculk_sensor", - Item::OakStairs => "oak_stairs", - Item::BirchDoor => "birch_door", - Item::PinkCarpet => "pink_carpet", - Item::StrippedWarpedHyphae => "stripped_warped_hyphae", - Item::BirchSapling => "birch_sapling", - Item::PinkConcretePowder => "pink_concrete_powder", - Item::JungleStairs => "jungle_stairs", - Item::BlueConcretePowder => "blue_concrete_powder", - Item::PolishedBlackstoneBrickSlab => "polished_blackstone_brick_slab", - Item::FlowerPot => "flower_pot", - Item::Jigsaw => "jigsaw", - Item::LightGrayBanner => "light_gray_banner", - Item::ZoglinSpawnEgg => "zoglin_spawn_egg", - Item::CreeperBannerPattern => "creeper_banner_pattern", - Item::LapisBlock => "lapis_block", - Item::AmethystShard => "amethyst_shard", - Item::PufferfishSpawnEgg => "pufferfish_spawn_egg", - Item::PurpurPillar => "purpur_pillar", - Item::Furnace => "furnace", - Item::OakWood => "oak_wood", - Item::CutSandstoneSlab => "cut_sandstone_slab", - Item::BlueShulkerBox => "blue_shulker_box", - Item::RottenFlesh => "rotten_flesh", - Item::WaxedWeatheredCutCopperStairs => "waxed_weathered_cut_copper_stairs", - Item::SpruceLog => "spruce_log", - Item::NetheriteLeggings => "netherite_leggings", - Item::ShulkerBox => "shulker_box", - Item::JunglePressurePlate => "jungle_pressure_plate", - Item::DiamondSword => "diamond_sword", - Item::RedMushroom => "red_mushroom", - Item::HopperMinecart => "hopper_minecart", - Item::WanderingTraderSpawnEgg => "wandering_trader_spawn_egg", - Item::Map => "map", - Item::EndermanSpawnEgg => "enderman_spawn_egg", - Item::Shears => "shears", - Item::RedSand => "red_sand", - Item::WhiteTulip => "white_tulip", - Item::BrownStainedGlass => "brown_stained_glass", - Item::LeatherChestplate => "leather_chestplate", - Item::CraftingTable => "crafting_table", - Item::DarkOakSign => "dark_oak_sign", - Item::Campfire => "campfire", - Item::DonkeySpawnEgg => "donkey_spawn_egg", - Item::Trident => "trident", - Item::FireCoralFan => "fire_coral_fan", - Item::GrayCandle => "gray_candle", - Item::BrownConcrete => "brown_concrete", - Item::NetheriteShovel => "netherite_shovel", - Item::PrismarineStairs => "prismarine_stairs", - Item::AmethystCluster => "amethyst_cluster", - Item::InfestedCrackedStoneBricks => "infested_cracked_stone_bricks", - Item::MossyStoneBricks => "mossy_stone_bricks", - Item::BrewingStand => "brewing_stand", - Item::SmoothSandstone => "smooth_sandstone", - Item::RawGoldBlock => "raw_gold_block", - Item::BrownStainedGlassPane => "brown_stained_glass_pane", - Item::GreenCarpet => "green_carpet", - Item::StoneShovel => "stone_shovel", - Item::CrackedPolishedBlackstoneBricks => "cracked_polished_blackstone_bricks", - Item::YellowConcrete => "yellow_concrete", - Item::MagentaWool => "magenta_wool", - Item::WhiteStainedGlassPane => "white_stained_glass_pane", - Item::Sandstone => "sandstone", - Item::GreenWool => "green_wool", - Item::SlimeSpawnEgg => "slime_spawn_egg", - Item::SmoothSandstoneSlab => "smooth_sandstone_slab", - Item::EnchantingTable => "enchanting_table", - Item::FireworkRocket => "firework_rocket", - Item::SmoothRedSandstoneSlab => "smooth_red_sandstone_slab", - Item::Bucket => "bucket", - Item::WaxedCutCopperStairs => "waxed_cut_copper_stairs", - Item::ChainmailChestplate => "chainmail_chestplate", - Item::EndPortalFrame => "end_portal_frame", - Item::WhiteConcrete => "white_concrete", - Item::CrimsonTrapdoor => "crimson_trapdoor", - Item::IronOre => "iron_ore", - Item::RedstoneLamp => "redstone_lamp", - Item::RedNetherBricks => "red_nether_bricks", - Item::VexSpawnEgg => "vex_spawn_egg", - Item::PrismarineSlab => "prismarine_slab", - Item::EndStoneBricks => "end_stone_bricks", - Item::FoxSpawnEgg => "fox_spawn_egg", - Item::Basalt => "basalt", - Item::OrangeShulkerBox => "orange_shulker_box", - Item::Charcoal => "charcoal", - Item::BlackShulkerBox => "black_shulker_box", - Item::GrayBed => "gray_bed", - Item::Calcite => "calcite", - Item::PrismarineCrystals => "prismarine_crystals", - Item::WarpedHyphae => "warped_hyphae", - Item::CrimsonFence => "crimson_fence", - Item::LightBlueCarpet => "light_blue_carpet", - Item::LightBlueDye => "light_blue_dye", - Item::BlueWool => "blue_wool", - Item::NetherWartBlock => "nether_wart_block", - Item::RedCandle => "red_candle", - Item::SpruceFenceGate => "spruce_fence_gate", - Item::LeatherHorseArmor => "leather_horse_armor", - Item::HoneyBottle => "honey_bottle", - Item::PinkStainedGlassPane => "pink_stained_glass_pane", - Item::InfestedStone => "infested_stone", - Item::DolphinSpawnEgg => "dolphin_spawn_egg", - Item::DarkOakStairs => "dark_oak_stairs", - Item::DamagedAnvil => "damaged_anvil", - Item::Sunflower => "sunflower", - Item::GlowInkSac => "glow_ink_sac", - Item::AcaciaSlab => "acacia_slab", - Item::WhiteCandle => "white_candle", - Item::OrangeCandle => "orange_candle", - Item::WarpedTrapdoor => "warped_trapdoor", - Item::StrippedJungleWood => "stripped_jungle_wood", - Item::DeadHornCoralBlock => "dead_horn_coral_block", - Item::SpruceSapling => "spruce_sapling", - Item::BeeNest => "bee_nest", - Item::ChippedAnvil => "chipped_anvil", - Item::DeadBrainCoral => "dead_brain_coral", - Item::SpruceBoat => "spruce_boat", - Item::IronSword => "iron_sword", - Item::IronHelmet => "iron_helmet", - Item::DeadTubeCoralFan => "dead_tube_coral_fan", - Item::FletchingTable => "fletching_table", - Item::CookedSalmon => "cooked_salmon", - Item::DarkPrismarineStairs => "dark_prismarine_stairs", - Item::Brick => "brick", - Item::AxolotlBucket => "axolotl_bucket", - Item::BrownMushroom => "brown_mushroom", - Item::FishingRod => "fishing_rod", - Item::DioriteWall => "diorite_wall", - Item::Honeycomb => "honeycomb", - Item::RedStainedGlassPane => "red_stained_glass_pane", - Item::RabbitSpawnEgg => "rabbit_spawn_egg", - Item::WitherSkeletonSkull => "wither_skeleton_skull", - Item::WarpedFungusOnAStick => "warped_fungus_on_a_stick", - Item::IronBars => "iron_bars", - Item::HornCoralBlock => "horn_coral_block", - Item::IronShovel => "iron_shovel", - Item::AcaciaStairs => "acacia_stairs", - Item::SpruceStairs => "spruce_stairs", - Item::TubeCoralBlock => "tube_coral_block", - Item::Dropper => "dropper", - Item::CyanCarpet => "cyan_carpet", - Item::OakSign => "oak_sign", - Item::Jukebox => "jukebox", - Item::FireworkStar => "firework_star", - Item::Rabbit => "rabbit", - Item::MusicDiscStal => "music_disc_stal", - Item::PolishedBlackstoneBrickStairs => "polished_blackstone_brick_stairs", - Item::SpruceFence => "spruce_fence", - Item::StoneSword => "stone_sword", - Item::MagentaTerracotta => "magenta_terracotta", - Item::JackOLantern => "jack_o_lantern", - Item::WoodenHoe => "wooden_hoe", - Item::DiamondAxe => "diamond_axe", - Item::RedBed => "red_bed", - Item::Dirt => "dirt", - Item::PurpurSlab => "purpur_slab", - Item::PolishedDeepslateSlab => "polished_deepslate_slab", - Item::JungleDoor => "jungle_door", - Item::PoisonousPotato => "poisonous_potato", - Item::DeadHornCoralFan => "dead_horn_coral_fan", - Item::HorseSpawnEgg => "horse_spawn_egg", - Item::TraderLlamaSpawnEgg => "trader_llama_spawn_egg", - Item::CobblestoneSlab => "cobblestone_slab", - Item::WitherRose => "wither_rose", - Item::StrippedOakWood => "stripped_oak_wood", - Item::GlobeBannerPattern => "globe_banner_pattern", - Item::GrayDye => "gray_dye", - Item::ChiseledQuartzBlock => "chiseled_quartz_block", - Item::DeadBrainCoralBlock => "dead_brain_coral_block", - Item::AzureBluet => "azure_bluet", - Item::EmeraldOre => "emerald_ore", - Item::InfestedCobblestone => "infested_cobblestone", - Item::WhiteDye => "white_dye", - Item::CookedCod => "cooked_cod", - Item::DarkOakSapling => "dark_oak_sapling", - Item::LightGrayStainedGlassPane => "light_gray_stained_glass_pane", - Item::PinkGlazedTerracotta => "pink_glazed_terracotta", - Item::DioriteSlab => "diorite_slab", - Item::OrangeConcrete => "orange_concrete", - Item::EnchantedGoldenApple => "enchanted_golden_apple", - Item::BoneBlock => "bone_block", - Item::Hopper => "hopper", - Item::SpruceWood => "spruce_wood", - Item::SeaPickle => "sea_pickle", - Item::EnderChest => "ender_chest", - Item::DiamondLeggings => "diamond_leggings", - Item::CobbledDeepslateWall => "cobbled_deepslate_wall", - Item::CyanConcrete => "cyan_concrete", - Item::BrickWall => "brick_wall", - Item::LimeBed => "lime_bed", - Item::SkeletonHorseSpawnEgg => "skeleton_horse_spawn_egg", - Item::CobbledDeepslateSlab => "cobbled_deepslate_slab", - Item::WhiteGlazedTerracotta => "white_glazed_terracotta", - Item::SplashPotion => "splash_potion", - Item::Bone => "bone", - Item::AcaciaPressurePlate => "acacia_pressure_plate", - Item::GrayShulkerBox => "gray_shulker_box", - Item::LightBlueConcretePowder => "light_blue_concrete_powder", - Item::WarpedPressurePlate => "warped_pressure_plate", - Item::Andesite => "andesite", - Item::TntMinecart => "tnt_minecart", - Item::BlueTerracotta => "blue_terracotta", - Item::WoodenAxe => "wooden_axe", - Item::ExposedCutCopperStairs => "exposed_cut_copper_stairs", - Item::SpruceTrapdoor => "spruce_trapdoor", - Item::Potion => "potion", - Item::CoarseDirt => "coarse_dirt", - Item::DeepslateTileWall => "deepslate_tile_wall", - Item::BrownWool => "brown_wool", - Item::SmoothSandstoneStairs => "smooth_sandstone_stairs", - Item::Lantern => "lantern", - Item::BrownTerracotta => "brown_terracotta", - Item::CatSpawnEgg => "cat_spawn_egg", - Item::WaxedExposedCutCopperSlab => "waxed_exposed_cut_copper_slab", - Item::PinkCandle => "pink_candle", - Item::ExposedCutCopper => "exposed_cut_copper", - Item::GlowBerries => "glow_berries", - Item::SnowBlock => "snow_block", - Item::StoneSlab => "stone_slab", - Item::DriedKelpBlock => "dried_kelp_block", - Item::CrimsonFungus => "crimson_fungus", - Item::OxidizedCutCopperSlab => "oxidized_cut_copper_slab", - Item::WaxedExposedCutCopper => "waxed_exposed_cut_copper", - Item::LargeFern => "large_fern", - Item::GoldBlock => "gold_block", - Item::Repeater => "repeater", - Item::GoldenHoe => "golden_hoe", - Item::BlackWool => "black_wool", - Item::NetherQuartzOre => "nether_quartz_ore", - Item::WarpedButton => "warped_button", - Item::BirchFenceGate => "birch_fence_gate", - Item::Elytra => "elytra", - Item::LingeringPotion => "lingering_potion", - Item::LeatherHelmet => "leather_helmet", - Item::Barrier => "barrier", - Item::BrownDye => "brown_dye", - Item::PolishedDioriteSlab => "polished_diorite_slab", - Item::ActivatorRail => "activator_rail", - Item::DrownedSpawnEgg => "drowned_spawn_egg", - Item::DarkOakLog => "dark_oak_log", - Item::GlowSquidSpawnEgg => "glow_squid_spawn_egg", - Item::GreenCandle => "green_candle", - Item::Tuff => "tuff", - Item::ChainCommandBlock => "chain_command_block", - Item::BlazeSpawnEgg => "blaze_spawn_egg", - Item::DioriteStairs => "diorite_stairs", - Item::Pumpkin => "pumpkin", - Item::BlackstoneWall => "blackstone_wall", - Item::HoglinSpawnEgg => "hoglin_spawn_egg", - Item::ChainmailHelmet => "chainmail_helmet", - Item::DarkOakButton => "dark_oak_button", - Item::YellowWool => "yellow_wool", - Item::GoldenChestplate => "golden_chestplate", - Item::QuartzSlab => "quartz_slab", - Item::Cod => "cod", - Item::InkSac => "ink_sac", - Item::CrimsonDoor => "crimson_door", - Item::Arrow => "arrow", - Item::PigSpawnEgg => "pig_spawn_egg", - Item::CyanTerracotta => "cyan_terracotta", - Item::NetherStar => "nether_star", - Item::OakSapling => "oak_sapling", - Item::HoneyBlock => "honey_block", - Item::CutRedSandstone => "cut_red_sandstone", - Item::Paper => "paper", - Item::ExposedCutCopperSlab => "exposed_cut_copper_slab", - Item::SuspiciousStew => "suspicious_stew", - Item::FlowerBannerPattern => "flower_banner_pattern", - Item::RawIron => "raw_iron", - Item::BlackGlazedTerracotta => "black_glazed_terracotta", - Item::SheepSpawnEgg => "sheep_spawn_egg", - Item::BlackBanner => "black_banner", - Item::Spyglass => "spyglass", - Item::PinkTulip => "pink_tulip", - Item::PinkWool => "pink_wool", - Item::NetheriteScrap => "netherite_scrap", - Item::DiamondHorseArmor => "diamond_horse_armor", - Item::ChiseledPolishedBlackstone => "chiseled_polished_blackstone", - Item::LimeConcrete => "lime_concrete", - Item::ChiseledNetherBricks => "chiseled_nether_bricks", - Item::PolishedDeepslateWall => "polished_deepslate_wall", - Item::GraniteSlab => "granite_slab", - Item::LightningRod => "lightning_rod", - Item::MagentaBed => "magenta_bed", - Item::QuartzBricks => "quartz_bricks", - Item::SoulSand => "soul_sand", - Item::RedSandstoneStairs => "red_sandstone_stairs", - Item::LimeStainedGlassPane => "lime_stained_glass_pane", - Item::BlackCandle => "black_candle", - Item::WaxedWeatheredCutCopper => "waxed_weathered_cut_copper", - Item::RawCopper => "raw_copper", - Item::DeepslateCopperOre => "deepslate_copper_ore", - Item::GrayGlazedTerracotta => "gray_glazed_terracotta", - Item::Cobblestone => "cobblestone", - Item::GreenBanner => "green_banner", - Item::LilyOfTheValley => "lily_of_the_valley", - Item::FloweringAzalea => "flowering_azalea", - Item::PolishedAndesite => "polished_andesite", - Item::WetSponge => "wet_sponge", - Item::Grindstone => "grindstone", - Item::Wheat => "wheat", - Item::Beef => "beef", - Item::WoodenSword => "wooden_sword", - Item::LightGrayTerracotta => "light_gray_terracotta", - Item::Diorite => "diorite", - Item::NetherBrick => "nether_brick", - Item::BirchButton => "birch_button", - Item::AcaciaFenceGate => "acacia_fence_gate", - Item::WolfSpawnEgg => "wolf_spawn_egg", - Item::CrimsonPressurePlate => "crimson_pressure_plate", - Item::CobblestoneWall => "cobblestone_wall", - Item::LightBlueStainedGlass => "light_blue_stained_glass", - Item::BrownShulkerBox => "brown_shulker_box", - Item::WaxedWeatheredCopper => "waxed_weathered_copper", - Item::Conduit => "conduit", - Item::DiamondPickaxe => "diamond_pickaxe", - Item::EndStoneBrickSlab => "end_stone_brick_slab", - Item::IronLeggings => "iron_leggings", - Item::Flint => "flint", - Item::WarpedNylium => "warped_nylium", - Item::BrownCarpet => "brown_carpet", - Item::StrippedWarpedStem => "stripped_warped_stem", - Item::WhiteBanner => "white_banner", - Item::WhiteTerracotta => "white_terracotta", - Item::CreeperHead => "creeper_head", - Item::RedShulkerBox => "red_shulker_box", - Item::WoodenShovel => "wooden_shovel", - Item::AndesiteStairs => "andesite_stairs", - Item::JungleSlab => "jungle_slab", - Item::SpiderSpawnEgg => "spider_spawn_egg", - Item::MossyCobblestoneStairs => "mossy_cobblestone_stairs", - Item::QuartzPillar => "quartz_pillar", - Item::AcaciaFence => "acacia_fence", - Item::BrainCoralBlock => "brain_coral_block", - Item::CyanBanner => "cyan_banner", - Item::BirchSlab => "birch_slab", - Item::CrimsonSlab => "crimson_slab", - Item::AmethystBlock => "amethyst_block", - Item::StoneBrickStairs => "stone_brick_stairs", - Item::CrackedDeepslateTiles => "cracked_deepslate_tiles", - Item::RedTulip => "red_tulip", - Item::Allium => "allium", - Item::GreenConcretePowder => "green_concrete_powder", - Item::MusicDiscBlocks => "music_disc_blocks", - Item::Salmon => "salmon", - Item::RedTerracotta => "red_terracotta", - Item::SandstoneStairs => "sandstone_stairs", - Item::GhastSpawnEgg => "ghast_spawn_egg", - Item::GrayStainedGlassPane => "gray_stained_glass_pane", - Item::EnderEye => "ender_eye", - Item::CookedRabbit => "cooked_rabbit", - Item::Beehive => "beehive", - Item::NetheriteHelmet => "netherite_helmet", - Item::TurtleSpawnEgg => "turtle_spawn_egg", - Item::LeatherBoots => "leather_boots", - Item::CrimsonStem => "crimson_stem", - Item::TubeCoralFan => "tube_coral_fan", - Item::EndermiteSpawnEgg => "endermite_spawn_egg", - Item::WitherSkeletonSpawnEgg => "wither_skeleton_spawn_egg", - Item::PurpleShulkerBox => "purple_shulker_box", - Item::NetheriteBlock => "netherite_block", - Item::SprucePressurePlate => "spruce_pressure_plate", - Item::CyanConcretePowder => "cyan_concrete_powder", - Item::Egg => "egg", - Item::PinkStainedGlass => "pink_stained_glass", - Item::RedBanner => "red_banner", - Item::JunglePlanks => "jungle_planks", - Item::RespawnAnchor => "respawn_anchor", - Item::BatSpawnEgg => "bat_spawn_egg", - Item::PointedDripstone => "pointed_dripstone", - Item::Gravel => "gravel", - Item::Bowl => "bowl", - Item::CaveSpiderSpawnEgg => "cave_spider_spawn_egg", - Item::QuartzStairs => "quartz_stairs", - Item::SpruceButton => "spruce_button", - Item::CarvedPumpkin => "carved_pumpkin", - Item::LightBlueShulkerBox => "light_blue_shulker_box", - Item::BeeSpawnEgg => "bee_spawn_egg", - Item::OakFenceGate => "oak_fence_gate", - Item::NetherBrickFence => "nether_brick_fence", - Item::IronHorseArmor => "iron_horse_armor", - Item::DeadHornCoral => "dead_horn_coral", - Item::PolishedDiorite => "polished_diorite", - Item::RavagerSpawnEgg => "ravager_spawn_egg", - Item::EndRod => "end_rod", - Item::MagentaStainedGlass => "magenta_stained_glass", - Item::ChorusPlant => "chorus_plant", - Item::OrangeConcretePowder => "orange_concrete_powder", - Item::DragonEgg => "dragon_egg", - Item::GreenConcrete => "green_concrete", - Item::StrippedAcaciaLog => "stripped_acacia_log", - Item::Diamond => "diamond", - Item::Ladder => "ladder", - Item::PrismarineWall => "prismarine_wall", - Item::MossBlock => "moss_block", - Item::OakLeaves => "oak_leaves", - Item::CookedPorkchop => "cooked_porkchop", - Item::YellowStainedGlassPane => "yellow_stained_glass_pane", - Item::SalmonSpawnEgg => "salmon_spawn_egg", - Item::ChainmailBoots => "chainmail_boots", - Item::WitchSpawnEgg => "witch_spawn_egg", - Item::OxidizedCutCopperStairs => "oxidized_cut_copper_stairs", - Item::LapisOre => "lapis_ore", - Item::SmoothRedSandstone => "smooth_red_sandstone", - Item::JungleTrapdoor => "jungle_trapdoor", - Item::Shroomlight => "shroomlight", - Item::BlackstoneSlab => "blackstone_slab", - Item::Mutton => "mutton", - Item::StrippedOakLog => "stripped_oak_log", - Item::YellowStainedGlass => "yellow_stained_glass", - Item::CryingObsidian => "crying_obsidian", - Item::SpruceSlab => "spruce_slab", - Item::GrayConcrete => "gray_concrete", - Item::ChorusFruit => "chorus_fruit", - Item::SilverfishSpawnEgg => "silverfish_spawn_egg", - Item::CyanShulkerBox => "cyan_shulker_box", - Item::BlackTerracotta => "black_terracotta", - Item::RedstoneOre => "redstone_ore", - Item::RedDye => "red_dye", - Item::SmoothBasalt => "smooth_basalt", - Item::PurpleGlazedTerracotta => "purple_glazed_terracotta", - Item::PoppedChorusFruit => "popped_chorus_fruit", - Item::DebugStick => "debug_stick", - Item::WaxedCopperBlock => "waxed_copper_block", - Item::WarpedRoots => "warped_roots", - Item::DiamondHelmet => "diamond_helmet", - Item::BirchPressurePlate => "birch_pressure_plate", - Item::PinkConcrete => "pink_concrete", - Item::ChestMinecart => "chest_minecart", - Item::Torch => "torch", - Item::AcaciaDoor => "acacia_door", - Item::DiamondShovel => "diamond_shovel", - Item::Bamboo => "bamboo", - Item::IronTrapdoor => "iron_trapdoor", - Item::DarkOakSlab => "dark_oak_slab", - Item::BrownBed => "brown_bed", - Item::RootedDirt => "rooted_dirt", - Item::AcaciaTrapdoor => "acacia_trapdoor", - Item::Carrot => "carrot", - Item::CobbledDeepslate => "cobbled_deepslate", - Item::CrimsonRoots => "crimson_roots", - Item::GoldenLeggings => "golden_leggings", - Item::Grass => "grass", - Item::MusicDiscPigstep => "music_disc_pigstep", - Item::CommandBlock => "command_block", - Item::CutCopperSlab => "cut_copper_slab", - Item::PinkTerracotta => "pink_terracotta", - Item::LimeWool => "lime_wool", - Item::FireCoral => "fire_coral", - Item::BirchBoat => "birch_boat", - Item::LightGrayDye => "light_gray_dye", - Item::Obsidian => "obsidian", - Item::Spawner => "spawner", - Item::GreenShulkerBox => "green_shulker_box", - Item::FilledMap => "filled_map", - Item::BlueCandle => "blue_candle", - Item::JungleLog => "jungle_log", - Item::SkeletonSpawnEgg => "skeleton_spawn_egg", - Item::SquidSpawnEgg => "squid_spawn_egg", - Item::BlueGlazedTerracotta => "blue_glazed_terracotta", - Item::MagentaShulkerBox => "magenta_shulker_box", - Item::NetherGoldOre => "nether_gold_ore", - Item::StonePressurePlate => "stone_pressure_plate", - Item::ItemFrame => "item_frame", - Item::Lectern => "lectern", - Item::NetheriteHoe => "netherite_hoe", - Item::DarkOakFence => "dark_oak_fence", - Item::WarpedStairs => "warped_stairs", - Item::TippedArrow => "tipped_arrow", - Item::CrimsonHyphae => "crimson_hyphae", - Item::ChorusFlower => "chorus_flower", - Item::SandstoneSlab => "sandstone_slab", - Item::BrownGlazedTerracotta => "brown_glazed_terracotta", - Item::DeadFireCoral => "dead_fire_coral", - Item::GoldOre => "gold_ore", - Item::StrippedCrimsonStem => "stripped_crimson_stem", - Item::StoneBrickWall => "stone_brick_wall", - Item::DeadTubeCoralBlock => "dead_tube_coral_block", - Item::NetheriteBoots => "netherite_boots", - Item::CopperOre => "copper_ore", - Item::DeadBrainCoralFan => "dead_brain_coral_fan", - Item::YellowCarpet => "yellow_carpet", - Item::VillagerSpawnEgg => "villager_spawn_egg", - Item::ArmorStand => "armor_stand", - Item::GrayBanner => "gray_banner", - Item::NoteBlock => "note_block", - Item::MagentaBanner => "magenta_banner", - Item::GlisteringMelonSlice => "glistering_melon_slice", - Item::EvokerSpawnEgg => "evoker_spawn_egg", - Item::HayBlock => "hay_block", - Item::BlueConcrete => "blue_concrete", - Item::CookedBeef => "cooked_beef", - Item::RabbitStew => "rabbit_stew", - Item::PackedIce => "packed_ice", - Item::BirchLeaves => "birch_leaves", - Item::MossCarpet => "moss_carpet", - Item::GrayWool => "gray_wool", - Item::MossyCobblestoneWall => "mossy_cobblestone_wall", - Item::Lilac => "lilac", - Item::StoneBrickSlab => "stone_brick_slab", - Item::CarrotOnAStick => "carrot_on_a_stick", - Item::CrimsonFenceGate => "crimson_fence_gate", - Item::InfestedMossyStoneBricks => "infested_mossy_stone_bricks", - Item::Cobweb => "cobweb", - Item::TurtleHelmet => "turtle_helmet", - Item::OakSlab => "oak_slab", - Item::PolishedGranite => "polished_granite", - Item::Clay => "clay", - Item::OrangeWool => "orange_wool", - Item::Sand => "sand", - Item::FireCoralBlock => "fire_coral_block", - Item::Barrel => "barrel", - Item::Lead => "lead", - Item::CutCopperStairs => "cut_copper_stairs", - Item::WaxedCutCopper => "waxed_cut_copper", - Item::WarpedStem => "warped_stem", - Item::LightBlueWool => "light_blue_wool", - Item::DarkOakWood => "dark_oak_wood", - Item::SugarCane => "sugar_cane", - Item::CyanDye => "cyan_dye", - Item::ZombieHead => "zombie_head", - Item::NetherWart => "nether_wart", - Item::Feather => "feather", - Item::IronPickaxe => "iron_pickaxe", - Item::TotemOfUndying => "totem_of_undying", - Item::NameTag => "name_tag", - Item::GlowstoneDust => "glowstone_dust", - Item::MelonSeeds => "melon_seeds", - Item::StrippedJungleLog => "stripped_jungle_log", - Item::BrickStairs => "brick_stairs", - Item::PurpleWool => "purple_wool", - Item::MagentaCarpet => "magenta_carpet", - Item::IronDoor => "iron_door", - Item::CyanWool => "cyan_wool", - Item::Terracotta => "terracotta", - Item::Bread => "bread", - Item::ClayBall => "clay_ball", - Item::MusicDiscMall => "music_disc_mall", - Item::BuddingAmethyst => "budding_amethyst", - Item::CrimsonSign => "crimson_sign", - Item::LimeDye => "lime_dye", - Item::PurpurStairs => "purpur_stairs", - Item::StructureBlock => "structure_block", - Item::PlayerHead => "player_head", - Item::OakTrapdoor => "oak_trapdoor", - Item::ParrotSpawnEgg => "parrot_spawn_egg", - Item::AzaleaLeaves => "azalea_leaves", - Item::YellowBed => "yellow_bed", - Item::IronIngot => "iron_ingot", - Item::Redstone => "redstone", - Item::Beacon => "beacon", - Item::ChiseledDeepslate => "chiseled_deepslate", - Item::GrayStainedGlass => "gray_stained_glass", - Item::IronHoe => "iron_hoe", - Item::PiglinSpawnEgg => "piglin_spawn_egg", - Item::ElderGuardianSpawnEgg => "elder_guardian_spawn_egg", - Item::DarkOakFenceGate => "dark_oak_fence_gate", - } - } - #[doc = "Gets a `Item` by its `name`."] - #[inline] - pub fn from_name(name: &str) -> Option { - match name { - "ancient_debris" => Some(Item::AncientDebris), - "shulker_shell" => Some(Item::ShulkerShell), - "quartz_block" => Some(Item::QuartzBlock), - "cracked_nether_bricks" => Some(Item::CrackedNetherBricks), - "saddle" => Some(Item::Saddle), - "golden_axe" => Some(Item::GoldenAxe), - "experience_bottle" => Some(Item::ExperienceBottle), - "polished_basalt" => Some(Item::PolishedBasalt), - "string" => Some(Item::String), - "orange_stained_glass" => Some(Item::OrangeStainedGlass), - "phantom_spawn_egg" => Some(Item::PhantomSpawnEgg), - "rabbit_foot" => Some(Item::RabbitFoot), - "light_blue_stained_glass_pane" => Some(Item::LightBlueStainedGlassPane), - "dark_oak_trapdoor" => Some(Item::DarkOakTrapdoor), - "nether_brick_slab" => Some(Item::NetherBrickSlab), - "stripped_birch_wood" => Some(Item::StrippedBirchWood), - "raw_iron_block" => Some(Item::RawIronBlock), - "polished_blackstone_wall" => Some(Item::PolishedBlackstoneWall), - "warped_sign" => Some(Item::WarpedSign), - "diamond_ore" => Some(Item::DiamondOre), - "warped_fence" => Some(Item::WarpedFence), - "polished_andesite_stairs" => Some(Item::PolishedAndesiteStairs), - "netherite_sword" => Some(Item::NetheriteSword), - "purple_concrete" => Some(Item::PurpleConcrete), - "structure_void" => Some(Item::StructureVoid), - "oak_button" => Some(Item::OakButton), - "scute" => Some(Item::Scute), - "cobbled_deepslate_stairs" => Some(Item::CobbledDeepslateStairs), - "bedrock" => Some(Item::Bedrock), - "medium_amethyst_bud" => Some(Item::MediumAmethystBud), - "nether_brick_stairs" => Some(Item::NetherBrickStairs), - "green_bed" => Some(Item::GreenBed), - "smooth_quartz_stairs" => Some(Item::SmoothQuartzStairs), - "lime_glazed_terracotta" => Some(Item::LimeGlazedTerracotta), - "salmon_bucket" => Some(Item::SalmonBucket), - "blaze_powder" => Some(Item::BlazePowder), - "piglin_banner_pattern" => Some(Item::PiglinBannerPattern), - "smooth_quartz" => Some(Item::SmoothQuartz), - "dried_kelp" => Some(Item::DriedKelp), - "coal_ore" => Some(Item::CoalOre), - "dark_oak_planks" => Some(Item::DarkOakPlanks), - "orange_glazed_terracotta" => Some(Item::OrangeGlazedTerracotta), - "purple_stained_glass_pane" => Some(Item::PurpleStainedGlassPane), - "dirt_path" => Some(Item::DirtPath), - "dead_fire_coral_block" => Some(Item::DeadFireCoralBlock), - "golden_horse_armor" => Some(Item::GoldenHorseArmor), - "painting" => Some(Item::Painting), - "black_concrete" => Some(Item::BlackConcrete), - "daylight_detector" => Some(Item::DaylightDetector), - "netherite_pickaxe" => Some(Item::NetheritePickaxe), - "mooshroom_spawn_egg" => Some(Item::MooshroomSpawnEgg), - "waxed_oxidized_copper" => Some(Item::WaxedOxidizedCopper), - "glow_item_frame" => Some(Item::GlowItemFrame), - "oak_log" => Some(Item::OakLog), - "anvil" => Some(Item::Anvil), - "netherite_axe" => Some(Item::NetheriteAxe), - "golden_helmet" => Some(Item::GoldenHelmet), - "stonecutter" => Some(Item::Stonecutter), - "chiseled_stone_bricks" => Some(Item::ChiseledStoneBricks), - "mossy_cobblestone" => Some(Item::MossyCobblestone), - "gray_concrete_powder" => Some(Item::GrayConcretePowder), - "deepslate_brick_slab" => Some(Item::DeepslateBrickSlab), - "mycelium" => Some(Item::Mycelium), - "mushroom_stem" => Some(Item::MushroomStem), - "granite_wall" => Some(Item::GraniteWall), - "pink_banner" => Some(Item::PinkBanner), - "zombified_piglin_spawn_egg" => Some(Item::ZombifiedPiglinSpawnEgg), - "music_disc_wait" => Some(Item::MusicDiscWait), - "birch_planks" => Some(Item::BirchPlanks), - "acacia_wood" => Some(Item::AcaciaWood), - "deepslate_tile_slab" => Some(Item::DeepslateTileSlab), - "yellow_shulker_box" => Some(Item::YellowShulkerBox), - "leather_leggings" => Some(Item::LeatherLeggings), - "dragon_head" => Some(Item::DragonHead), - "dark_prismarine" => Some(Item::DarkPrismarine), - "azalea" => Some(Item::Azalea), - "honeycomb_block" => Some(Item::HoneycombBlock), - "green_terracotta" => Some(Item::GreenTerracotta), - "dispenser" => Some(Item::Dispenser), - "andesite_wall" => Some(Item::AndesiteWall), - "black_stained_glass_pane" => Some(Item::BlackStainedGlassPane), - "pink_shulker_box" => Some(Item::PinkShulkerBox), - "bubble_coral_block" => Some(Item::BubbleCoralBlock), - "crimson_nylium" => Some(Item::CrimsonNylium), - "cyan_stained_glass" => Some(Item::CyanStainedGlass), - "prismarine_brick_slab" => Some(Item::PrismarineBrickSlab), - "large_amethyst_bud" => Some(Item::LargeAmethystBud), - "fermented_spider_eye" => Some(Item::FermentedSpiderEye), - "bubble_coral" => Some(Item::BubbleCoral), - "pillager_spawn_egg" => Some(Item::PillagerSpawnEgg), - "golden_boots" => Some(Item::GoldenBoots), - "blue_bed" => Some(Item::BlueBed), - "petrified_oak_slab" => Some(Item::PetrifiedOakSlab), - "magenta_candle" => Some(Item::MagentaCandle), - "slime_ball" => Some(Item::SlimeBall), - "tropical_fish_bucket" => Some(Item::TropicalFishBucket), - "granite_stairs" => Some(Item::GraniteStairs), - "purple_candle" => Some(Item::PurpleCandle), - "white_wool" => Some(Item::WhiteWool), - "blackstone" => Some(Item::Blackstone), - "poppy" => Some(Item::Poppy), - "birch_wood" => Some(Item::BirchWood), - "netherrack" => Some(Item::Netherrack), - "glass" => Some(Item::Glass), - "magenta_concrete_powder" => Some(Item::MagentaConcretePowder), - "yellow_banner" => Some(Item::YellowBanner), - "brown_banner" => Some(Item::BrownBanner), - "stray_spawn_egg" => Some(Item::StraySpawnEgg), - "polished_blackstone_bricks" => Some(Item::PolishedBlackstoneBricks), - "oxidized_cut_copper" => Some(Item::OxidizedCutCopper), - "horn_coral" => Some(Item::HornCoral), - "weathered_cut_copper_slab" => Some(Item::WeatheredCutCopperSlab), - "small_amethyst_bud" => Some(Item::SmallAmethystBud), - "copper_ingot" => Some(Item::CopperIngot), - "target" => Some(Item::Target), - "nether_sprouts" => Some(Item::NetherSprouts), - "panda_spawn_egg" => Some(Item::PandaSpawnEgg), - "blaze_rod" => Some(Item::BlazeRod), - "birch_log" => Some(Item::BirchLog), - "purple_terracotta" => Some(Item::PurpleTerracotta), - "cyan_glazed_terracotta" => Some(Item::CyanGlazedTerracotta), - "stripped_crimson_hyphae" => Some(Item::StrippedCrimsonHyphae), - "acacia_button" => Some(Item::AcaciaButton), - "acacia_log" => Some(Item::AcaciaLog), - "waxed_exposed_cut_copper_stairs" => Some(Item::WaxedExposedCutCopperStairs), - "music_disc_far" => Some(Item::MusicDiscFar), - "lava_bucket" => Some(Item::LavaBucket), - "waxed_weathered_cut_copper_slab" => Some(Item::WaxedWeatheredCutCopperSlab), - "chiseled_sandstone" => Some(Item::ChiseledSandstone), - "infested_stone_bricks" => Some(Item::InfestedStoneBricks), - "oxeye_daisy" => Some(Item::OxeyeDaisy), - "cactus" => Some(Item::Cactus), - "jungle_sign" => Some(Item::JungleSign), - "waxed_oxidized_cut_copper" => Some(Item::WaxedOxidizedCutCopper), - "flowering_azalea_leaves" => Some(Item::FloweringAzaleaLeaves), - "smooth_stone_slab" => Some(Item::SmoothStoneSlab), - "stripped_dark_oak_wood" => Some(Item::StrippedDarkOakWood), - "soul_campfire" => Some(Item::SoulCampfire), - "magenta_concrete" => Some(Item::MagentaConcrete), - "polished_diorite_stairs" => Some(Item::PolishedDioriteStairs), - "oak_pressure_plate" => Some(Item::OakPressurePlate), - "prismarine_shard" => Some(Item::PrismarineShard), - "mojang_banner_pattern" => Some(Item::MojangBannerPattern), - "orange_carpet" => Some(Item::OrangeCarpet), - "stripped_dark_oak_log" => Some(Item::StrippedDarkOakLog), - "slime_block" => Some(Item::SlimeBlock), - "stone_pickaxe" => Some(Item::StonePickaxe), - "heart_of_the_sea" => Some(Item::HeartOfTheSea), - "quartz" => Some(Item::Quartz), - "soul_soil" => Some(Item::SoulSoil), - "cauldron" => Some(Item::Cauldron), - "repeating_command_block" => Some(Item::RepeatingCommandBlock), - "wooden_pickaxe" => Some(Item::WoodenPickaxe), - "glow_lichen" => Some(Item::GlowLichen), - "spruce_door" => Some(Item::SpruceDoor), - "music_disc_ward" => Some(Item::MusicDiscWard), - "soul_torch" => Some(Item::SoulTorch), - "golden_pickaxe" => Some(Item::GoldenPickaxe), - "lime_carpet" => Some(Item::LimeCarpet), - "andesite_slab" => Some(Item::AndesiteSlab), - "composter" => Some(Item::Composter), - "weathered_cut_copper" => Some(Item::WeatheredCutCopper), - "lime_shulker_box" => Some(Item::LimeShulkerBox), - "stripped_acacia_wood" => Some(Item::StrippedAcaciaWood), - "sponge" => Some(Item::Sponge), - "stripped_spruce_wood" => Some(Item::StrippedSpruceWood), - "snow" => Some(Item::Snow), - "yellow_terracotta" => Some(Item::YellowTerracotta), - "acacia_boat" => Some(Item::AcaciaBoat), - "strider_spawn_egg" => Some(Item::StriderSpawnEgg), - "light_gray_candle" => Some(Item::LightGrayCandle), - "iron_boots" => Some(Item::IronBoots), - "turtle_egg" => Some(Item::TurtleEgg), - "mossy_stone_brick_stairs" => Some(Item::MossyStoneBrickStairs), - "waxed_cut_copper_slab" => Some(Item::WaxedCutCopperSlab), - "polished_granite_stairs" => Some(Item::PolishedGraniteStairs), - "infested_chiseled_stone_bricks" => Some(Item::InfestedChiseledStoneBricks), - "oxidized_copper" => Some(Item::OxidizedCopper), - "cracked_stone_bricks" => Some(Item::CrackedStoneBricks), - "scaffolding" => Some(Item::Scaffolding), - "cod_bucket" => Some(Item::CodBucket), - "husk_spawn_egg" => Some(Item::HuskSpawnEgg), - "stripped_birch_log" => Some(Item::StrippedBirchLog), - "lime_concrete_powder" => Some(Item::LimeConcretePowder), - "creeper_spawn_egg" => Some(Item::CreeperSpawnEgg), - "goat_spawn_egg" => Some(Item::GoatSpawnEgg), - "spruce_leaves" => Some(Item::SpruceLeaves), - "sugar" => Some(Item::Sugar), - "cod_spawn_egg" => Some(Item::CodSpawnEgg), - "rabbit_hide" => Some(Item::RabbitHide), - "music_disc_otherside" => Some(Item::MusicDiscOtherside), - "cyan_candle" => Some(Item::CyanCandle), - "dark_prismarine_slab" => Some(Item::DarkPrismarineSlab), - "skull_banner_pattern" => Some(Item::SkullBannerPattern), - "bricks" => Some(Item::Bricks), - "shield" => Some(Item::Shield), - "llama_spawn_egg" => Some(Item::LlamaSpawnEgg), - "grass_block" => Some(Item::GrassBlock), - "book" => Some(Item::Book), - "bell" => Some(Item::Bell), - "red_nether_brick_wall" => Some(Item::RedNetherBrickWall), - "black_bed" => Some(Item::BlackBed), - "jungle_leaves" => Some(Item::JungleLeaves), - "dead_fire_coral_fan" => Some(Item::DeadFireCoralFan), - "tropical_fish" => Some(Item::TropicalFish), - "bone_meal" => Some(Item::BoneMeal), - "orange_bed" => Some(Item::OrangeBed), - "chest" => Some(Item::Chest), - "red_carpet" => Some(Item::RedCarpet), - "light_blue_concrete" => Some(Item::LightBlueConcrete), - "weeping_vines" => Some(Item::WeepingVines), - "crossbow" => Some(Item::Crossbow), - "tinted_glass" => Some(Item::TintedGlass), - "lime_banner" => Some(Item::LimeBanner), - "crimson_button" => Some(Item::CrimsonButton), - "prismarine_bricks" => Some(Item::PrismarineBricks), - "stone_hoe" => Some(Item::StoneHoe), - "black_concrete_powder" => Some(Item::BlackConcretePowder), - "porkchop" => Some(Item::Porkchop), - "weathered_cut_copper_stairs" => Some(Item::WeatheredCutCopperStairs), - "purple_carpet" => Some(Item::PurpleCarpet), - "fire_charge" => Some(Item::FireCharge), - "mossy_stone_brick_wall" => Some(Item::MossyStoneBrickWall), - "magenta_stained_glass_pane" => Some(Item::MagentaStainedGlassPane), - "red_concrete_powder" => Some(Item::RedConcretePowder), - "acacia_sign" => Some(Item::AcaciaSign), - "light_gray_wool" => Some(Item::LightGrayWool), - "purpur_block" => Some(Item::PurpurBlock), - "golden_sword" => Some(Item::GoldenSword), - "purple_dye" => Some(Item::PurpleDye), - "nether_bricks" => Some(Item::NetherBricks), - "light_blue_bed" => Some(Item::LightBlueBed), - "dark_oak_leaves" => Some(Item::DarkOakLeaves), - "zombie_spawn_egg" => Some(Item::ZombieSpawnEgg), - "music_disc_mellohi" => Some(Item::MusicDiscMellohi), - "detector_rail" => Some(Item::DetectorRail), - "white_bed" => Some(Item::WhiteBed), - "minecart" => Some(Item::Minecart), - "cartography_table" => Some(Item::CartographyTable), - "deepslate_iron_ore" => Some(Item::DeepslateIronOre), - "dark_oak_pressure_plate" => Some(Item::DarkOakPressurePlate), - "cracked_deepslate_bricks" => Some(Item::CrackedDeepslateBricks), - "black_stained_glass" => Some(Item::BlackStainedGlass), - "iron_chestplate" => Some(Item::IronChestplate), - "chicken" => Some(Item::Chicken), - "smooth_red_sandstone_stairs" => Some(Item::SmoothRedSandstoneStairs), - "warped_fungus" => Some(Item::WarpedFungus), - "music_disc_13" => Some(Item::MusicDisc13), - "deepslate_brick_stairs" => Some(Item::DeepslateBrickStairs), - "tall_grass" => Some(Item::TallGrass), - "magenta_dye" => Some(Item::MagentaDye), - "dandelion" => Some(Item::Dandelion), - "written_book" => Some(Item::WrittenBook), - "jungle_fence" => Some(Item::JungleFence), - "oak_planks" => Some(Item::OakPlanks), - "glass_bottle" => Some(Item::GlassBottle), - "light_blue_glazed_terracotta" => Some(Item::LightBlueGlazedTerracotta), - "redstone_torch" => Some(Item::RedstoneTorch), - "red_mushroom_block" => Some(Item::RedMushroomBlock), - "dead_bubble_coral_block" => Some(Item::DeadBubbleCoralBlock), - "bookshelf" => Some(Item::Bookshelf), - "diamond_hoe" => Some(Item::DiamondHoe), - "deepslate_brick_wall" => Some(Item::DeepslateBrickWall), - "light" => Some(Item::Light), - "water_bucket" => Some(Item::WaterBucket), - "deepslate_emerald_ore" => Some(Item::DeepslateEmeraldOre), - "dead_bubble_coral_fan" => Some(Item::DeadBubbleCoralFan), - "guardian_spawn_egg" => Some(Item::GuardianSpawnEgg), - "mule_spawn_egg" => Some(Item::MuleSpawnEgg), - "raw_copper_block" => Some(Item::RawCopperBlock), - "jungle_wood" => Some(Item::JungleWood), - "red_stained_glass" => Some(Item::RedStainedGlass), - "dead_bubble_coral" => Some(Item::DeadBubbleCoral), - "potato" => Some(Item::Potato), - "compass" => Some(Item::Compass), - "pink_dye" => Some(Item::PinkDye), - "observer" => Some(Item::Observer), - "magenta_glazed_terracotta" => Some(Item::MagentaGlazedTerracotta), - "dead_bush" => Some(Item::DeadBush), - "polished_blackstone_slab" => Some(Item::PolishedBlackstoneSlab), - "vindicator_spawn_egg" => Some(Item::VindicatorSpawnEgg), - "chainmail_leggings" => Some(Item::ChainmailLeggings), - "dark_oak_door" => Some(Item::DarkOakDoor), - "blue_orchid" => Some(Item::BlueOrchid), - "brown_mushroom_block" => Some(Item::BrownMushroomBlock), - "red_sandstone_wall" => Some(Item::RedSandstoneWall), - "white_stained_glass" => Some(Item::WhiteStainedGlass), - "beetroot" => Some(Item::Beetroot), - "rail" => Some(Item::Rail), - "phantom_membrane" => Some(Item::PhantomMembrane), - "white_shulker_box" => Some(Item::WhiteShulkerBox), - "blue_banner" => Some(Item::BlueBanner), - "farmland" => Some(Item::Farmland), - "red_nether_brick_slab" => Some(Item::RedNetherBrickSlab), - "polished_andesite_slab" => Some(Item::PolishedAndesiteSlab), - "blue_stained_glass" => Some(Item::BlueStainedGlass), - "dragon_breath" => Some(Item::DragonBreath), - "writable_book" => Some(Item::WritableBook), - "green_glazed_terracotta" => Some(Item::GreenGlazedTerracotta), - "deepslate_redstone_ore" => Some(Item::DeepslateRedstoneOre), - "prismarine" => Some(Item::Prismarine), - "purple_bed" => Some(Item::PurpleBed), - "blast_furnace" => Some(Item::BlastFurnace), - "brick_slab" => Some(Item::BrickSlab), - "green_stained_glass_pane" => Some(Item::GreenStainedGlassPane), - "chiseled_red_sandstone" => Some(Item::ChiseledRedSandstone), - "mossy_cobblestone_slab" => Some(Item::MossyCobblestoneSlab), - "black_dye" => Some(Item::BlackDye), - "deepslate_bricks" => Some(Item::DeepslateBricks), - "heavy_weighted_pressure_plate" => Some(Item::HeavyWeightedPressurePlate), - "beetroot_seeds" => Some(Item::BeetrootSeeds), - "polished_granite_slab" => Some(Item::PolishedGraniteSlab), - "bow" => Some(Item::Bow), - "light_gray_glazed_terracotta" => Some(Item::LightGrayGlazedTerracotta), - "tripwire_hook" => Some(Item::TripwireHook), - "iron_nugget" => Some(Item::IronNugget), - "granite" => Some(Item::Granite), - "iron_block" => Some(Item::IronBlock), - "warped_slab" => Some(Item::WarpedSlab), - "small_dripleaf" => Some(Item::SmallDripleaf), - "polished_deepslate" => Some(Item::PolishedDeepslate), - "red_wool" => Some(Item::RedWool), - "oak_boat" => Some(Item::OakBoat), - "white_carpet" => Some(Item::WhiteCarpet), - "orange_dye" => Some(Item::OrangeDye), - "smooth_quartz_slab" => Some(Item::SmoothQuartzSlab), - "cow_spawn_egg" => Some(Item::CowSpawnEgg), - "sea_lantern" => Some(Item::SeaLantern), - "light_weighted_pressure_plate" => Some(Item::LightWeightedPressurePlate), - "rose_bush" => Some(Item::RoseBush), - "pink_bed" => Some(Item::PinkBed), - "cooked_mutton" => Some(Item::CookedMutton), - "deepslate_lapis_ore" => Some(Item::DeepslateLapisOre), - "seagrass" => Some(Item::Seagrass), - "polished_blackstone_button" => Some(Item::PolishedBlackstoneButton), - "cocoa_beans" => Some(Item::CocoaBeans), - "exposed_copper" => Some(Item::ExposedCopper), - "polished_deepslate_stairs" => Some(Item::PolishedDeepslateStairs), - "golden_apple" => Some(Item::GoldenApple), - "clock" => Some(Item::Clock), - "purple_stained_glass" => Some(Item::PurpleStainedGlass), - "knowledge_book" => Some(Item::KnowledgeBook), - "coal" => Some(Item::Coal), - "emerald_block" => Some(Item::EmeraldBlock), - "powder_snow_bucket" => Some(Item::PowderSnowBucket), - "light_blue_banner" => Some(Item::LightBlueBanner), - "cut_copper" => Some(Item::CutCopper), - "crimson_planks" => Some(Item::CrimsonPlanks), - "jungle_fence_gate" => Some(Item::JungleFenceGate), - "candle" => Some(Item::Candle), - "polished_blackstone_stairs" => Some(Item::PolishedBlackstoneStairs), - "horn_coral_fan" => Some(Item::HornCoralFan), - "weathered_copper" => Some(Item::WeatheredCopper), - "warped_planks" => Some(Item::WarpedPlanks), - "end_stone_brick_wall" => Some(Item::EndStoneBrickWall), - "jungle_button" => Some(Item::JungleButton), - "deepslate_tiles" => Some(Item::DeepslateTiles), - "ice" => Some(Item::Ice), - "cut_red_sandstone_slab" => Some(Item::CutRedSandstoneSlab), - "lime_candle" => Some(Item::LimeCandle), - "soul_lantern" => Some(Item::SoulLantern), - "tnt" => Some(Item::Tnt), - "acacia_planks" => Some(Item::AcaciaPlanks), - "wheat_seeds" => Some(Item::WheatSeeds), - "stone_stairs" => Some(Item::StoneStairs), - "magma_cube_spawn_egg" => Some(Item::MagmaCubeSpawnEgg), - "lime_terracotta" => Some(Item::LimeTerracotta), - "light_gray_bed" => Some(Item::LightGrayBed), - "mushroom_stew" => Some(Item::MushroomStew), - "red_sandstone" => Some(Item::RedSandstone), - "spectral_arrow" => Some(Item::SpectralArrow), - "music_disc_strad" => Some(Item::MusicDiscStrad), - "emerald" => Some(Item::Emerald), - "glass_pane" => Some(Item::GlassPane), - "polished_blackstone_pressure_plate" => Some(Item::PolishedBlackstonePressurePlate), - "stick" => Some(Item::Stick), - "light_gray_shulker_box" => Some(Item::LightGrayShulkerBox), - "stone_bricks" => Some(Item::StoneBricks), - "vine" => Some(Item::Vine), - "comparator" => Some(Item::Comparator), - "end_crystal" => Some(Item::EndCrystal), - "deepslate_coal_ore" => Some(Item::DeepslateCoalOre), - "smoker" => Some(Item::Smoker), - "deepslate_diamond_ore" => Some(Item::DeepslateDiamondOre), - "lime_stained_glass" => Some(Item::LimeStainedGlass), - "melon" => Some(Item::Melon), - "iron_axe" => Some(Item::IronAxe), - "waxed_oxidized_cut_copper_stairs" => Some(Item::WaxedOxidizedCutCopperStairs), - "red_nether_brick_stairs" => Some(Item::RedNetherBrickStairs), - "lapis_lazuli" => Some(Item::LapisLazuli), - "blackstone_stairs" => Some(Item::BlackstoneStairs), - "ocelot_spawn_egg" => Some(Item::OcelotSpawnEgg), - "red_concrete" => Some(Item::RedConcrete), - "dripstone_block" => Some(Item::DripstoneBlock), - "infested_deepslate" => Some(Item::InfestedDeepslate), - "shulker_spawn_egg" => Some(Item::ShulkerSpawnEgg), - "jungle_sapling" => Some(Item::JungleSapling), - "spider_eye" => Some(Item::SpiderEye), - "yellow_candle" => Some(Item::YellowCandle), - "deepslate" => Some(Item::Deepslate), - "fern" => Some(Item::Fern), - "brown_concrete_powder" => Some(Item::BrownConcretePowder), - "deepslate_tile_stairs" => Some(Item::DeepslateTileStairs), - "cookie" => Some(Item::Cookie), - "enchanted_book" => Some(Item::EnchantedBook), - "cut_sandstone" => Some(Item::CutSandstone), - "lily_pad" => Some(Item::LilyPad), - "cornflower" => Some(Item::Cornflower), - "nether_brick_wall" => Some(Item::NetherBrickWall), - "loom" => Some(Item::Loom), - "jungle_boat" => Some(Item::JungleBoat), - "yellow_dye" => Some(Item::YellowDye), - "oak_fence" => Some(Item::OakFence), - "flint_and_steel" => Some(Item::FlintAndSteel), - "green_stained_glass" => Some(Item::GreenStainedGlass), - "lodestone" => Some(Item::Lodestone), - "spore_blossom" => Some(Item::SporeBlossom), - "yellow_glazed_terracotta" => Some(Item::YellowGlazedTerracotta), - "polished_blackstone_brick_wall" => Some(Item::PolishedBlackstoneBrickWall), - "diamond_boots" => Some(Item::DiamondBoots), - "hanging_roots" => Some(Item::HangingRoots), - "blue_ice" => Some(Item::BlueIce), - "milk_bucket" => Some(Item::MilkBucket), - "diamond_block" => Some(Item::DiamondBlock), - "zombie_villager_spawn_egg" => Some(Item::ZombieVillagerSpawnEgg), - "golden_carrot" => Some(Item::GoldenCarrot), - "pufferfish" => Some(Item::Pufferfish), - "light_gray_concrete_powder" => Some(Item::LightGrayConcretePowder), - "orange_terracotta" => Some(Item::OrangeTerracotta), - "deepslate_gold_ore" => Some(Item::DeepslateGoldOre), - "prismarine_brick_stairs" => Some(Item::PrismarineBrickStairs), - "birch_sign" => Some(Item::BirchSign), - "melon_slice" => Some(Item::MelonSlice), - "cooked_chicken" => Some(Item::CookedChicken), - "polar_bear_spawn_egg" => Some(Item::PolarBearSpawnEgg), - "brown_candle" => Some(Item::BrownCandle), - "birch_fence" => Some(Item::BirchFence), - "end_stone" => Some(Item::EndStone), - "cyan_bed" => Some(Item::CyanBed), - "orange_stained_glass_pane" => Some(Item::OrangeStainedGlassPane), - "dead_tube_coral" => Some(Item::DeadTubeCoral), - "warped_door" => Some(Item::WarpedDoor), - "birch_stairs" => Some(Item::BirchStairs), - "end_stone_brick_stairs" => Some(Item::EndStoneBrickStairs), - "gunpowder" => Some(Item::Gunpowder), - "beetroot_soup" => Some(Item::BeetrootSoup), - "green_dye" => Some(Item::GreenDye), - "light_blue_candle" => Some(Item::LightBlueCandle), - "apple" => Some(Item::Apple), - "skeleton_skull" => Some(Item::SkeletonSkull), - "brain_coral_fan" => Some(Item::BrainCoralFan), - "light_gray_carpet" => Some(Item::LightGrayCarpet), - "spruce_planks" => Some(Item::SprucePlanks), - "snowball" => Some(Item::Snowball), - "piston" => Some(Item::Piston), - "spruce_sign" => Some(Item::SpruceSign), - "light_gray_concrete" => Some(Item::LightGrayConcrete), - "stone_axe" => Some(Item::StoneAxe), - "music_disc_chirp" => Some(Item::MusicDiscChirp), - "ender_pearl" => Some(Item::EnderPearl), - "gold_nugget" => Some(Item::GoldNugget), - "waxed_exposed_copper" => Some(Item::WaxedExposedCopper), - "golden_shovel" => Some(Item::GoldenShovel), - "twisting_vines" => Some(Item::TwistingVines), - "piglin_brute_spawn_egg" => Some(Item::PiglinBruteSpawnEgg), - "lever" => Some(Item::Lever), - "pumpkin_seeds" => Some(Item::PumpkinSeeds), - "blue_dye" => Some(Item::BlueDye), - "peony" => Some(Item::Peony), - "cake" => Some(Item::Cake), - "orange_banner" => Some(Item::OrangeBanner), - "music_disc_cat" => Some(Item::MusicDiscCat), - "smooth_stone" => Some(Item::SmoothStone), - "brain_coral" => Some(Item::BrainCoral), - "oak_door" => Some(Item::OakDoor), - "tube_coral" => Some(Item::TubeCoral), - "furnace_minecart" => Some(Item::FurnaceMinecart), - "leather" => Some(Item::Leather), - "nautilus_shell" => Some(Item::NautilusShell), - "kelp" => Some(Item::Kelp), - "sandstone_wall" => Some(Item::SandstoneWall), - "raw_gold" => Some(Item::RawGold), - "pumpkin_pie" => Some(Item::PumpkinPie), - "acacia_sapling" => Some(Item::AcaciaSapling), - "gray_carpet" => Some(Item::GrayCarpet), - "redstone_block" => Some(Item::RedstoneBlock), - "mossy_stone_brick_slab" => Some(Item::MossyStoneBrickSlab), - "powered_rail" => Some(Item::PoweredRail), - "light_gray_stained_glass" => Some(Item::LightGrayStainedGlass), - "netherite_chestplate" => Some(Item::NetheriteChestplate), - "light_blue_terracotta" => Some(Item::LightBlueTerracotta), - "baked_potato" => Some(Item::BakedPotato), - "purple_concrete_powder" => Some(Item::PurpleConcretePowder), - "stone" => Some(Item::Stone), - "smithing_table" => Some(Item::SmithingTable), - "trapped_chest" => Some(Item::TrappedChest), - "gray_terracotta" => Some(Item::GrayTerracotta), - "waxed_oxidized_cut_copper_slab" => Some(Item::WaxedOxidizedCutCopperSlab), - "gilded_blackstone" => Some(Item::GildedBlackstone), - "tropical_fish_spawn_egg" => Some(Item::TropicalFishSpawnEgg), - "acacia_leaves" => Some(Item::AcaciaLeaves), - "black_carpet" => Some(Item::BlackCarpet), - "gold_ingot" => Some(Item::GoldIngot), - "command_block_minecart" => Some(Item::CommandBlockMinecart), - "bubble_coral_fan" => Some(Item::BubbleCoralFan), - "music_disc_11" => Some(Item::MusicDisc11), - "purple_banner" => Some(Item::PurpleBanner), - "polished_blackstone" => Some(Item::PolishedBlackstone), - "red_glazed_terracotta" => Some(Item::RedGlazedTerracotta), - "blue_stained_glass_pane" => Some(Item::BlueStainedGlassPane), - "magma_block" => Some(Item::MagmaBlock), - "podzol" => Some(Item::Podzol), - "sticky_piston" => Some(Item::StickyPiston), - "ghast_tear" => Some(Item::GhastTear), - "big_dripleaf" => Some(Item::BigDripleaf), - "blue_carpet" => Some(Item::BlueCarpet), - "cyan_stained_glass_pane" => Some(Item::CyanStainedGlassPane), - "yellow_concrete_powder" => Some(Item::YellowConcretePowder), - "diamond_chestplate" => Some(Item::DiamondChestplate), - "zombie_horse_spawn_egg" => Some(Item::ZombieHorseSpawnEgg), - "warped_fence_gate" => Some(Item::WarpedFenceGate), - "sweet_berries" => Some(Item::SweetBerries), - "stripped_spruce_log" => Some(Item::StrippedSpruceLog), - "coal_block" => Some(Item::CoalBlock), - "red_sandstone_slab" => Some(Item::RedSandstoneSlab), - "dark_oak_boat" => Some(Item::DarkOakBoat), - "bundle" => Some(Item::Bundle), - "netherite_ingot" => Some(Item::NetheriteIngot), - "crimson_stairs" => Some(Item::CrimsonStairs), - "white_concrete_powder" => Some(Item::WhiteConcretePowder), - "pufferfish_bucket" => Some(Item::PufferfishBucket), - "cobblestone_stairs" => Some(Item::CobblestoneStairs), - "warped_wart_block" => Some(Item::WarpedWartBlock), - "chicken_spawn_egg" => Some(Item::ChickenSpawnEgg), - "orange_tulip" => Some(Item::OrangeTulip), - "glowstone" => Some(Item::Glowstone), - "chain" => Some(Item::Chain), - "birch_trapdoor" => Some(Item::BirchTrapdoor), - "magma_cream" => Some(Item::MagmaCream), - "axolotl_spawn_egg" => Some(Item::AxolotlSpawnEgg), - "stone_button" => Some(Item::StoneButton), - "copper_block" => Some(Item::CopperBlock), - "sculk_sensor" => Some(Item::SculkSensor), - "oak_stairs" => Some(Item::OakStairs), - "birch_door" => Some(Item::BirchDoor), - "pink_carpet" => Some(Item::PinkCarpet), - "stripped_warped_hyphae" => Some(Item::StrippedWarpedHyphae), - "birch_sapling" => Some(Item::BirchSapling), - "pink_concrete_powder" => Some(Item::PinkConcretePowder), - "jungle_stairs" => Some(Item::JungleStairs), - "blue_concrete_powder" => Some(Item::BlueConcretePowder), - "polished_blackstone_brick_slab" => Some(Item::PolishedBlackstoneBrickSlab), - "flower_pot" => Some(Item::FlowerPot), - "jigsaw" => Some(Item::Jigsaw), - "light_gray_banner" => Some(Item::LightGrayBanner), - "zoglin_spawn_egg" => Some(Item::ZoglinSpawnEgg), - "creeper_banner_pattern" => Some(Item::CreeperBannerPattern), - "lapis_block" => Some(Item::LapisBlock), - "amethyst_shard" => Some(Item::AmethystShard), - "pufferfish_spawn_egg" => Some(Item::PufferfishSpawnEgg), - "purpur_pillar" => Some(Item::PurpurPillar), - "furnace" => Some(Item::Furnace), - "oak_wood" => Some(Item::OakWood), - "cut_sandstone_slab" => Some(Item::CutSandstoneSlab), - "blue_shulker_box" => Some(Item::BlueShulkerBox), - "rotten_flesh" => Some(Item::RottenFlesh), - "waxed_weathered_cut_copper_stairs" => Some(Item::WaxedWeatheredCutCopperStairs), - "spruce_log" => Some(Item::SpruceLog), - "netherite_leggings" => Some(Item::NetheriteLeggings), - "shulker_box" => Some(Item::ShulkerBox), - "jungle_pressure_plate" => Some(Item::JunglePressurePlate), - "diamond_sword" => Some(Item::DiamondSword), - "red_mushroom" => Some(Item::RedMushroom), - "hopper_minecart" => Some(Item::HopperMinecart), - "wandering_trader_spawn_egg" => Some(Item::WanderingTraderSpawnEgg), - "map" => Some(Item::Map), - "enderman_spawn_egg" => Some(Item::EndermanSpawnEgg), - "shears" => Some(Item::Shears), - "red_sand" => Some(Item::RedSand), - "white_tulip" => Some(Item::WhiteTulip), - "brown_stained_glass" => Some(Item::BrownStainedGlass), - "leather_chestplate" => Some(Item::LeatherChestplate), - "crafting_table" => Some(Item::CraftingTable), - "dark_oak_sign" => Some(Item::DarkOakSign), - "campfire" => Some(Item::Campfire), - "donkey_spawn_egg" => Some(Item::DonkeySpawnEgg), - "trident" => Some(Item::Trident), - "fire_coral_fan" => Some(Item::FireCoralFan), - "gray_candle" => Some(Item::GrayCandle), - "brown_concrete" => Some(Item::BrownConcrete), - "netherite_shovel" => Some(Item::NetheriteShovel), - "prismarine_stairs" => Some(Item::PrismarineStairs), - "amethyst_cluster" => Some(Item::AmethystCluster), - "infested_cracked_stone_bricks" => Some(Item::InfestedCrackedStoneBricks), - "mossy_stone_bricks" => Some(Item::MossyStoneBricks), - "brewing_stand" => Some(Item::BrewingStand), - "smooth_sandstone" => Some(Item::SmoothSandstone), - "raw_gold_block" => Some(Item::RawGoldBlock), - "brown_stained_glass_pane" => Some(Item::BrownStainedGlassPane), - "green_carpet" => Some(Item::GreenCarpet), - "stone_shovel" => Some(Item::StoneShovel), - "cracked_polished_blackstone_bricks" => Some(Item::CrackedPolishedBlackstoneBricks), - "yellow_concrete" => Some(Item::YellowConcrete), - "magenta_wool" => Some(Item::MagentaWool), - "white_stained_glass_pane" => Some(Item::WhiteStainedGlassPane), - "sandstone" => Some(Item::Sandstone), - "green_wool" => Some(Item::GreenWool), - "slime_spawn_egg" => Some(Item::SlimeSpawnEgg), - "smooth_sandstone_slab" => Some(Item::SmoothSandstoneSlab), - "enchanting_table" => Some(Item::EnchantingTable), - "firework_rocket" => Some(Item::FireworkRocket), - "smooth_red_sandstone_slab" => Some(Item::SmoothRedSandstoneSlab), - "bucket" => Some(Item::Bucket), - "waxed_cut_copper_stairs" => Some(Item::WaxedCutCopperStairs), - "chainmail_chestplate" => Some(Item::ChainmailChestplate), - "end_portal_frame" => Some(Item::EndPortalFrame), - "white_concrete" => Some(Item::WhiteConcrete), - "crimson_trapdoor" => Some(Item::CrimsonTrapdoor), - "iron_ore" => Some(Item::IronOre), - "redstone_lamp" => Some(Item::RedstoneLamp), - "red_nether_bricks" => Some(Item::RedNetherBricks), - "vex_spawn_egg" => Some(Item::VexSpawnEgg), - "prismarine_slab" => Some(Item::PrismarineSlab), - "end_stone_bricks" => Some(Item::EndStoneBricks), - "fox_spawn_egg" => Some(Item::FoxSpawnEgg), - "basalt" => Some(Item::Basalt), - "orange_shulker_box" => Some(Item::OrangeShulkerBox), - "charcoal" => Some(Item::Charcoal), - "black_shulker_box" => Some(Item::BlackShulkerBox), - "gray_bed" => Some(Item::GrayBed), - "calcite" => Some(Item::Calcite), - "prismarine_crystals" => Some(Item::PrismarineCrystals), - "warped_hyphae" => Some(Item::WarpedHyphae), - "crimson_fence" => Some(Item::CrimsonFence), - "light_blue_carpet" => Some(Item::LightBlueCarpet), - "light_blue_dye" => Some(Item::LightBlueDye), - "blue_wool" => Some(Item::BlueWool), - "nether_wart_block" => Some(Item::NetherWartBlock), - "red_candle" => Some(Item::RedCandle), - "spruce_fence_gate" => Some(Item::SpruceFenceGate), - "leather_horse_armor" => Some(Item::LeatherHorseArmor), - "honey_bottle" => Some(Item::HoneyBottle), - "pink_stained_glass_pane" => Some(Item::PinkStainedGlassPane), - "infested_stone" => Some(Item::InfestedStone), - "dolphin_spawn_egg" => Some(Item::DolphinSpawnEgg), - "dark_oak_stairs" => Some(Item::DarkOakStairs), - "damaged_anvil" => Some(Item::DamagedAnvil), - "sunflower" => Some(Item::Sunflower), - "glow_ink_sac" => Some(Item::GlowInkSac), - "acacia_slab" => Some(Item::AcaciaSlab), - "white_candle" => Some(Item::WhiteCandle), - "orange_candle" => Some(Item::OrangeCandle), - "warped_trapdoor" => Some(Item::WarpedTrapdoor), - "stripped_jungle_wood" => Some(Item::StrippedJungleWood), - "dead_horn_coral_block" => Some(Item::DeadHornCoralBlock), - "spruce_sapling" => Some(Item::SpruceSapling), - "bee_nest" => Some(Item::BeeNest), - "chipped_anvil" => Some(Item::ChippedAnvil), - "dead_brain_coral" => Some(Item::DeadBrainCoral), - "spruce_boat" => Some(Item::SpruceBoat), - "iron_sword" => Some(Item::IronSword), - "iron_helmet" => Some(Item::IronHelmet), - "dead_tube_coral_fan" => Some(Item::DeadTubeCoralFan), - "fletching_table" => Some(Item::FletchingTable), - "cooked_salmon" => Some(Item::CookedSalmon), - "dark_prismarine_stairs" => Some(Item::DarkPrismarineStairs), - "brick" => Some(Item::Brick), - "axolotl_bucket" => Some(Item::AxolotlBucket), - "brown_mushroom" => Some(Item::BrownMushroom), - "fishing_rod" => Some(Item::FishingRod), - "diorite_wall" => Some(Item::DioriteWall), - "honeycomb" => Some(Item::Honeycomb), - "red_stained_glass_pane" => Some(Item::RedStainedGlassPane), - "rabbit_spawn_egg" => Some(Item::RabbitSpawnEgg), - "wither_skeleton_skull" => Some(Item::WitherSkeletonSkull), - "warped_fungus_on_a_stick" => Some(Item::WarpedFungusOnAStick), - "iron_bars" => Some(Item::IronBars), - "horn_coral_block" => Some(Item::HornCoralBlock), - "iron_shovel" => Some(Item::IronShovel), - "acacia_stairs" => Some(Item::AcaciaStairs), - "spruce_stairs" => Some(Item::SpruceStairs), - "tube_coral_block" => Some(Item::TubeCoralBlock), - "dropper" => Some(Item::Dropper), - "cyan_carpet" => Some(Item::CyanCarpet), - "oak_sign" => Some(Item::OakSign), - "jukebox" => Some(Item::Jukebox), - "firework_star" => Some(Item::FireworkStar), - "rabbit" => Some(Item::Rabbit), - "music_disc_stal" => Some(Item::MusicDiscStal), - "polished_blackstone_brick_stairs" => Some(Item::PolishedBlackstoneBrickStairs), - "spruce_fence" => Some(Item::SpruceFence), - "stone_sword" => Some(Item::StoneSword), - "magenta_terracotta" => Some(Item::MagentaTerracotta), - "jack_o_lantern" => Some(Item::JackOLantern), - "wooden_hoe" => Some(Item::WoodenHoe), - "diamond_axe" => Some(Item::DiamondAxe), - "red_bed" => Some(Item::RedBed), - "dirt" => Some(Item::Dirt), - "purpur_slab" => Some(Item::PurpurSlab), - "polished_deepslate_slab" => Some(Item::PolishedDeepslateSlab), - "jungle_door" => Some(Item::JungleDoor), - "poisonous_potato" => Some(Item::PoisonousPotato), - "dead_horn_coral_fan" => Some(Item::DeadHornCoralFan), - "horse_spawn_egg" => Some(Item::HorseSpawnEgg), - "trader_llama_spawn_egg" => Some(Item::TraderLlamaSpawnEgg), - "cobblestone_slab" => Some(Item::CobblestoneSlab), - "wither_rose" => Some(Item::WitherRose), - "stripped_oak_wood" => Some(Item::StrippedOakWood), - "globe_banner_pattern" => Some(Item::GlobeBannerPattern), - "gray_dye" => Some(Item::GrayDye), - "chiseled_quartz_block" => Some(Item::ChiseledQuartzBlock), - "dead_brain_coral_block" => Some(Item::DeadBrainCoralBlock), - "azure_bluet" => Some(Item::AzureBluet), - "emerald_ore" => Some(Item::EmeraldOre), - "infested_cobblestone" => Some(Item::InfestedCobblestone), - "white_dye" => Some(Item::WhiteDye), - "cooked_cod" => Some(Item::CookedCod), - "dark_oak_sapling" => Some(Item::DarkOakSapling), - "light_gray_stained_glass_pane" => Some(Item::LightGrayStainedGlassPane), - "pink_glazed_terracotta" => Some(Item::PinkGlazedTerracotta), - "diorite_slab" => Some(Item::DioriteSlab), - "orange_concrete" => Some(Item::OrangeConcrete), - "enchanted_golden_apple" => Some(Item::EnchantedGoldenApple), - "bone_block" => Some(Item::BoneBlock), - "hopper" => Some(Item::Hopper), - "spruce_wood" => Some(Item::SpruceWood), - "sea_pickle" => Some(Item::SeaPickle), - "ender_chest" => Some(Item::EnderChest), - "diamond_leggings" => Some(Item::DiamondLeggings), - "cobbled_deepslate_wall" => Some(Item::CobbledDeepslateWall), - "cyan_concrete" => Some(Item::CyanConcrete), - "brick_wall" => Some(Item::BrickWall), - "lime_bed" => Some(Item::LimeBed), - "skeleton_horse_spawn_egg" => Some(Item::SkeletonHorseSpawnEgg), - "cobbled_deepslate_slab" => Some(Item::CobbledDeepslateSlab), - "white_glazed_terracotta" => Some(Item::WhiteGlazedTerracotta), - "splash_potion" => Some(Item::SplashPotion), - "bone" => Some(Item::Bone), - "acacia_pressure_plate" => Some(Item::AcaciaPressurePlate), - "gray_shulker_box" => Some(Item::GrayShulkerBox), - "light_blue_concrete_powder" => Some(Item::LightBlueConcretePowder), - "warped_pressure_plate" => Some(Item::WarpedPressurePlate), - "andesite" => Some(Item::Andesite), - "tnt_minecart" => Some(Item::TntMinecart), - "blue_terracotta" => Some(Item::BlueTerracotta), - "wooden_axe" => Some(Item::WoodenAxe), - "exposed_cut_copper_stairs" => Some(Item::ExposedCutCopperStairs), - "spruce_trapdoor" => Some(Item::SpruceTrapdoor), - "potion" => Some(Item::Potion), - "coarse_dirt" => Some(Item::CoarseDirt), - "deepslate_tile_wall" => Some(Item::DeepslateTileWall), - "brown_wool" => Some(Item::BrownWool), - "smooth_sandstone_stairs" => Some(Item::SmoothSandstoneStairs), - "lantern" => Some(Item::Lantern), - "brown_terracotta" => Some(Item::BrownTerracotta), - "cat_spawn_egg" => Some(Item::CatSpawnEgg), - "waxed_exposed_cut_copper_slab" => Some(Item::WaxedExposedCutCopperSlab), - "pink_candle" => Some(Item::PinkCandle), - "exposed_cut_copper" => Some(Item::ExposedCutCopper), - "glow_berries" => Some(Item::GlowBerries), - "snow_block" => Some(Item::SnowBlock), - "stone_slab" => Some(Item::StoneSlab), - "dried_kelp_block" => Some(Item::DriedKelpBlock), - "crimson_fungus" => Some(Item::CrimsonFungus), - "oxidized_cut_copper_slab" => Some(Item::OxidizedCutCopperSlab), - "waxed_exposed_cut_copper" => Some(Item::WaxedExposedCutCopper), - "large_fern" => Some(Item::LargeFern), - "gold_block" => Some(Item::GoldBlock), - "repeater" => Some(Item::Repeater), - "golden_hoe" => Some(Item::GoldenHoe), - "black_wool" => Some(Item::BlackWool), - "nether_quartz_ore" => Some(Item::NetherQuartzOre), - "warped_button" => Some(Item::WarpedButton), - "birch_fence_gate" => Some(Item::BirchFenceGate), - "elytra" => Some(Item::Elytra), - "lingering_potion" => Some(Item::LingeringPotion), - "leather_helmet" => Some(Item::LeatherHelmet), - "barrier" => Some(Item::Barrier), - "brown_dye" => Some(Item::BrownDye), - "polished_diorite_slab" => Some(Item::PolishedDioriteSlab), - "activator_rail" => Some(Item::ActivatorRail), - "drowned_spawn_egg" => Some(Item::DrownedSpawnEgg), - "dark_oak_log" => Some(Item::DarkOakLog), - "glow_squid_spawn_egg" => Some(Item::GlowSquidSpawnEgg), - "green_candle" => Some(Item::GreenCandle), - "tuff" => Some(Item::Tuff), - "chain_command_block" => Some(Item::ChainCommandBlock), - "blaze_spawn_egg" => Some(Item::BlazeSpawnEgg), - "diorite_stairs" => Some(Item::DioriteStairs), - "pumpkin" => Some(Item::Pumpkin), - "blackstone_wall" => Some(Item::BlackstoneWall), - "hoglin_spawn_egg" => Some(Item::HoglinSpawnEgg), - "chainmail_helmet" => Some(Item::ChainmailHelmet), - "dark_oak_button" => Some(Item::DarkOakButton), - "yellow_wool" => Some(Item::YellowWool), - "golden_chestplate" => Some(Item::GoldenChestplate), - "quartz_slab" => Some(Item::QuartzSlab), - "cod" => Some(Item::Cod), - "ink_sac" => Some(Item::InkSac), - "crimson_door" => Some(Item::CrimsonDoor), - "arrow" => Some(Item::Arrow), - "pig_spawn_egg" => Some(Item::PigSpawnEgg), - "cyan_terracotta" => Some(Item::CyanTerracotta), - "nether_star" => Some(Item::NetherStar), - "oak_sapling" => Some(Item::OakSapling), - "honey_block" => Some(Item::HoneyBlock), - "cut_red_sandstone" => Some(Item::CutRedSandstone), - "paper" => Some(Item::Paper), - "exposed_cut_copper_slab" => Some(Item::ExposedCutCopperSlab), - "suspicious_stew" => Some(Item::SuspiciousStew), - "flower_banner_pattern" => Some(Item::FlowerBannerPattern), - "raw_iron" => Some(Item::RawIron), - "black_glazed_terracotta" => Some(Item::BlackGlazedTerracotta), - "sheep_spawn_egg" => Some(Item::SheepSpawnEgg), - "black_banner" => Some(Item::BlackBanner), - "spyglass" => Some(Item::Spyglass), - "pink_tulip" => Some(Item::PinkTulip), - "pink_wool" => Some(Item::PinkWool), - "netherite_scrap" => Some(Item::NetheriteScrap), - "diamond_horse_armor" => Some(Item::DiamondHorseArmor), - "chiseled_polished_blackstone" => Some(Item::ChiseledPolishedBlackstone), - "lime_concrete" => Some(Item::LimeConcrete), - "chiseled_nether_bricks" => Some(Item::ChiseledNetherBricks), - "polished_deepslate_wall" => Some(Item::PolishedDeepslateWall), - "granite_slab" => Some(Item::GraniteSlab), - "lightning_rod" => Some(Item::LightningRod), - "magenta_bed" => Some(Item::MagentaBed), - "quartz_bricks" => Some(Item::QuartzBricks), - "soul_sand" => Some(Item::SoulSand), - "red_sandstone_stairs" => Some(Item::RedSandstoneStairs), - "lime_stained_glass_pane" => Some(Item::LimeStainedGlassPane), - "black_candle" => Some(Item::BlackCandle), - "waxed_weathered_cut_copper" => Some(Item::WaxedWeatheredCutCopper), - "raw_copper" => Some(Item::RawCopper), - "deepslate_copper_ore" => Some(Item::DeepslateCopperOre), - "gray_glazed_terracotta" => Some(Item::GrayGlazedTerracotta), - "cobblestone" => Some(Item::Cobblestone), - "green_banner" => Some(Item::GreenBanner), - "lily_of_the_valley" => Some(Item::LilyOfTheValley), - "flowering_azalea" => Some(Item::FloweringAzalea), - "polished_andesite" => Some(Item::PolishedAndesite), - "wet_sponge" => Some(Item::WetSponge), - "grindstone" => Some(Item::Grindstone), - "wheat" => Some(Item::Wheat), - "beef" => Some(Item::Beef), - "wooden_sword" => Some(Item::WoodenSword), - "light_gray_terracotta" => Some(Item::LightGrayTerracotta), - "diorite" => Some(Item::Diorite), - "nether_brick" => Some(Item::NetherBrick), - "birch_button" => Some(Item::BirchButton), - "acacia_fence_gate" => Some(Item::AcaciaFenceGate), - "wolf_spawn_egg" => Some(Item::WolfSpawnEgg), - "crimson_pressure_plate" => Some(Item::CrimsonPressurePlate), - "cobblestone_wall" => Some(Item::CobblestoneWall), - "light_blue_stained_glass" => Some(Item::LightBlueStainedGlass), - "brown_shulker_box" => Some(Item::BrownShulkerBox), - "waxed_weathered_copper" => Some(Item::WaxedWeatheredCopper), - "conduit" => Some(Item::Conduit), - "diamond_pickaxe" => Some(Item::DiamondPickaxe), - "end_stone_brick_slab" => Some(Item::EndStoneBrickSlab), - "iron_leggings" => Some(Item::IronLeggings), - "flint" => Some(Item::Flint), - "warped_nylium" => Some(Item::WarpedNylium), - "brown_carpet" => Some(Item::BrownCarpet), - "stripped_warped_stem" => Some(Item::StrippedWarpedStem), - "white_banner" => Some(Item::WhiteBanner), - "white_terracotta" => Some(Item::WhiteTerracotta), - "creeper_head" => Some(Item::CreeperHead), - "red_shulker_box" => Some(Item::RedShulkerBox), - "wooden_shovel" => Some(Item::WoodenShovel), - "andesite_stairs" => Some(Item::AndesiteStairs), - "jungle_slab" => Some(Item::JungleSlab), - "spider_spawn_egg" => Some(Item::SpiderSpawnEgg), - "mossy_cobblestone_stairs" => Some(Item::MossyCobblestoneStairs), - "quartz_pillar" => Some(Item::QuartzPillar), - "acacia_fence" => Some(Item::AcaciaFence), - "brain_coral_block" => Some(Item::BrainCoralBlock), - "cyan_banner" => Some(Item::CyanBanner), - "birch_slab" => Some(Item::BirchSlab), - "crimson_slab" => Some(Item::CrimsonSlab), - "amethyst_block" => Some(Item::AmethystBlock), - "stone_brick_stairs" => Some(Item::StoneBrickStairs), - "cracked_deepslate_tiles" => Some(Item::CrackedDeepslateTiles), - "red_tulip" => Some(Item::RedTulip), - "allium" => Some(Item::Allium), - "green_concrete_powder" => Some(Item::GreenConcretePowder), - "music_disc_blocks" => Some(Item::MusicDiscBlocks), - "salmon" => Some(Item::Salmon), - "red_terracotta" => Some(Item::RedTerracotta), - "sandstone_stairs" => Some(Item::SandstoneStairs), - "ghast_spawn_egg" => Some(Item::GhastSpawnEgg), - "gray_stained_glass_pane" => Some(Item::GrayStainedGlassPane), - "ender_eye" => Some(Item::EnderEye), - "cooked_rabbit" => Some(Item::CookedRabbit), - "beehive" => Some(Item::Beehive), - "netherite_helmet" => Some(Item::NetheriteHelmet), - "turtle_spawn_egg" => Some(Item::TurtleSpawnEgg), - "leather_boots" => Some(Item::LeatherBoots), - "crimson_stem" => Some(Item::CrimsonStem), - "tube_coral_fan" => Some(Item::TubeCoralFan), - "endermite_spawn_egg" => Some(Item::EndermiteSpawnEgg), - "wither_skeleton_spawn_egg" => Some(Item::WitherSkeletonSpawnEgg), - "purple_shulker_box" => Some(Item::PurpleShulkerBox), - "netherite_block" => Some(Item::NetheriteBlock), - "spruce_pressure_plate" => Some(Item::SprucePressurePlate), - "cyan_concrete_powder" => Some(Item::CyanConcretePowder), - "egg" => Some(Item::Egg), - "pink_stained_glass" => Some(Item::PinkStainedGlass), - "red_banner" => Some(Item::RedBanner), - "jungle_planks" => Some(Item::JunglePlanks), - "respawn_anchor" => Some(Item::RespawnAnchor), - "bat_spawn_egg" => Some(Item::BatSpawnEgg), - "pointed_dripstone" => Some(Item::PointedDripstone), - "gravel" => Some(Item::Gravel), - "bowl" => Some(Item::Bowl), - "cave_spider_spawn_egg" => Some(Item::CaveSpiderSpawnEgg), - "quartz_stairs" => Some(Item::QuartzStairs), - "spruce_button" => Some(Item::SpruceButton), - "carved_pumpkin" => Some(Item::CarvedPumpkin), - "light_blue_shulker_box" => Some(Item::LightBlueShulkerBox), - "bee_spawn_egg" => Some(Item::BeeSpawnEgg), - "oak_fence_gate" => Some(Item::OakFenceGate), - "nether_brick_fence" => Some(Item::NetherBrickFence), - "iron_horse_armor" => Some(Item::IronHorseArmor), - "dead_horn_coral" => Some(Item::DeadHornCoral), - "polished_diorite" => Some(Item::PolishedDiorite), - "ravager_spawn_egg" => Some(Item::RavagerSpawnEgg), - "end_rod" => Some(Item::EndRod), - "magenta_stained_glass" => Some(Item::MagentaStainedGlass), - "chorus_plant" => Some(Item::ChorusPlant), - "orange_concrete_powder" => Some(Item::OrangeConcretePowder), - "dragon_egg" => Some(Item::DragonEgg), - "green_concrete" => Some(Item::GreenConcrete), - "stripped_acacia_log" => Some(Item::StrippedAcaciaLog), - "diamond" => Some(Item::Diamond), - "ladder" => Some(Item::Ladder), - "prismarine_wall" => Some(Item::PrismarineWall), - "moss_block" => Some(Item::MossBlock), - "oak_leaves" => Some(Item::OakLeaves), - "cooked_porkchop" => Some(Item::CookedPorkchop), - "yellow_stained_glass_pane" => Some(Item::YellowStainedGlassPane), - "salmon_spawn_egg" => Some(Item::SalmonSpawnEgg), - "chainmail_boots" => Some(Item::ChainmailBoots), - "witch_spawn_egg" => Some(Item::WitchSpawnEgg), - "oxidized_cut_copper_stairs" => Some(Item::OxidizedCutCopperStairs), - "lapis_ore" => Some(Item::LapisOre), - "smooth_red_sandstone" => Some(Item::SmoothRedSandstone), - "jungle_trapdoor" => Some(Item::JungleTrapdoor), - "shroomlight" => Some(Item::Shroomlight), - "blackstone_slab" => Some(Item::BlackstoneSlab), - "mutton" => Some(Item::Mutton), - "stripped_oak_log" => Some(Item::StrippedOakLog), - "yellow_stained_glass" => Some(Item::YellowStainedGlass), - "crying_obsidian" => Some(Item::CryingObsidian), - "spruce_slab" => Some(Item::SpruceSlab), - "gray_concrete" => Some(Item::GrayConcrete), - "chorus_fruit" => Some(Item::ChorusFruit), - "silverfish_spawn_egg" => Some(Item::SilverfishSpawnEgg), - "cyan_shulker_box" => Some(Item::CyanShulkerBox), - "black_terracotta" => Some(Item::BlackTerracotta), - "redstone_ore" => Some(Item::RedstoneOre), - "red_dye" => Some(Item::RedDye), - "smooth_basalt" => Some(Item::SmoothBasalt), - "purple_glazed_terracotta" => Some(Item::PurpleGlazedTerracotta), - "popped_chorus_fruit" => Some(Item::PoppedChorusFruit), - "debug_stick" => Some(Item::DebugStick), - "waxed_copper_block" => Some(Item::WaxedCopperBlock), - "warped_roots" => Some(Item::WarpedRoots), - "diamond_helmet" => Some(Item::DiamondHelmet), - "birch_pressure_plate" => Some(Item::BirchPressurePlate), - "pink_concrete" => Some(Item::PinkConcrete), - "chest_minecart" => Some(Item::ChestMinecart), - "torch" => Some(Item::Torch), - "acacia_door" => Some(Item::AcaciaDoor), - "diamond_shovel" => Some(Item::DiamondShovel), - "bamboo" => Some(Item::Bamboo), - "iron_trapdoor" => Some(Item::IronTrapdoor), - "dark_oak_slab" => Some(Item::DarkOakSlab), - "brown_bed" => Some(Item::BrownBed), - "rooted_dirt" => Some(Item::RootedDirt), - "acacia_trapdoor" => Some(Item::AcaciaTrapdoor), - "carrot" => Some(Item::Carrot), - "cobbled_deepslate" => Some(Item::CobbledDeepslate), - "crimson_roots" => Some(Item::CrimsonRoots), - "golden_leggings" => Some(Item::GoldenLeggings), - "grass" => Some(Item::Grass), - "music_disc_pigstep" => Some(Item::MusicDiscPigstep), - "command_block" => Some(Item::CommandBlock), - "cut_copper_slab" => Some(Item::CutCopperSlab), - "pink_terracotta" => Some(Item::PinkTerracotta), - "lime_wool" => Some(Item::LimeWool), - "fire_coral" => Some(Item::FireCoral), - "birch_boat" => Some(Item::BirchBoat), - "light_gray_dye" => Some(Item::LightGrayDye), - "obsidian" => Some(Item::Obsidian), - "spawner" => Some(Item::Spawner), - "green_shulker_box" => Some(Item::GreenShulkerBox), - "filled_map" => Some(Item::FilledMap), - "blue_candle" => Some(Item::BlueCandle), - "jungle_log" => Some(Item::JungleLog), - "skeleton_spawn_egg" => Some(Item::SkeletonSpawnEgg), - "squid_spawn_egg" => Some(Item::SquidSpawnEgg), - "blue_glazed_terracotta" => Some(Item::BlueGlazedTerracotta), - "magenta_shulker_box" => Some(Item::MagentaShulkerBox), - "nether_gold_ore" => Some(Item::NetherGoldOre), - "stone_pressure_plate" => Some(Item::StonePressurePlate), - "item_frame" => Some(Item::ItemFrame), - "lectern" => Some(Item::Lectern), - "netherite_hoe" => Some(Item::NetheriteHoe), - "dark_oak_fence" => Some(Item::DarkOakFence), - "warped_stairs" => Some(Item::WarpedStairs), - "tipped_arrow" => Some(Item::TippedArrow), - "crimson_hyphae" => Some(Item::CrimsonHyphae), - "chorus_flower" => Some(Item::ChorusFlower), - "sandstone_slab" => Some(Item::SandstoneSlab), - "brown_glazed_terracotta" => Some(Item::BrownGlazedTerracotta), - "dead_fire_coral" => Some(Item::DeadFireCoral), - "gold_ore" => Some(Item::GoldOre), - "stripped_crimson_stem" => Some(Item::StrippedCrimsonStem), - "stone_brick_wall" => Some(Item::StoneBrickWall), - "dead_tube_coral_block" => Some(Item::DeadTubeCoralBlock), - "netherite_boots" => Some(Item::NetheriteBoots), - "copper_ore" => Some(Item::CopperOre), - "dead_brain_coral_fan" => Some(Item::DeadBrainCoralFan), - "yellow_carpet" => Some(Item::YellowCarpet), - "villager_spawn_egg" => Some(Item::VillagerSpawnEgg), - "armor_stand" => Some(Item::ArmorStand), - "gray_banner" => Some(Item::GrayBanner), - "note_block" => Some(Item::NoteBlock), - "magenta_banner" => Some(Item::MagentaBanner), - "glistering_melon_slice" => Some(Item::GlisteringMelonSlice), - "evoker_spawn_egg" => Some(Item::EvokerSpawnEgg), - "hay_block" => Some(Item::HayBlock), - "blue_concrete" => Some(Item::BlueConcrete), - "cooked_beef" => Some(Item::CookedBeef), - "rabbit_stew" => Some(Item::RabbitStew), - "packed_ice" => Some(Item::PackedIce), - "birch_leaves" => Some(Item::BirchLeaves), - "moss_carpet" => Some(Item::MossCarpet), - "gray_wool" => Some(Item::GrayWool), - "mossy_cobblestone_wall" => Some(Item::MossyCobblestoneWall), - "lilac" => Some(Item::Lilac), - "stone_brick_slab" => Some(Item::StoneBrickSlab), - "carrot_on_a_stick" => Some(Item::CarrotOnAStick), - "crimson_fence_gate" => Some(Item::CrimsonFenceGate), - "infested_mossy_stone_bricks" => Some(Item::InfestedMossyStoneBricks), - "cobweb" => Some(Item::Cobweb), - "turtle_helmet" => Some(Item::TurtleHelmet), - "oak_slab" => Some(Item::OakSlab), - "polished_granite" => Some(Item::PolishedGranite), - "clay" => Some(Item::Clay), - "orange_wool" => Some(Item::OrangeWool), - "sand" => Some(Item::Sand), - "fire_coral_block" => Some(Item::FireCoralBlock), - "barrel" => Some(Item::Barrel), - "lead" => Some(Item::Lead), - "cut_copper_stairs" => Some(Item::CutCopperStairs), - "waxed_cut_copper" => Some(Item::WaxedCutCopper), - "warped_stem" => Some(Item::WarpedStem), - "light_blue_wool" => Some(Item::LightBlueWool), - "dark_oak_wood" => Some(Item::DarkOakWood), - "sugar_cane" => Some(Item::SugarCane), - "cyan_dye" => Some(Item::CyanDye), - "zombie_head" => Some(Item::ZombieHead), - "nether_wart" => Some(Item::NetherWart), - "feather" => Some(Item::Feather), - "iron_pickaxe" => Some(Item::IronPickaxe), - "totem_of_undying" => Some(Item::TotemOfUndying), - "name_tag" => Some(Item::NameTag), - "glowstone_dust" => Some(Item::GlowstoneDust), - "melon_seeds" => Some(Item::MelonSeeds), - "stripped_jungle_log" => Some(Item::StrippedJungleLog), - "brick_stairs" => Some(Item::BrickStairs), - "purple_wool" => Some(Item::PurpleWool), - "magenta_carpet" => Some(Item::MagentaCarpet), - "iron_door" => Some(Item::IronDoor), - "cyan_wool" => Some(Item::CyanWool), - "terracotta" => Some(Item::Terracotta), - "bread" => Some(Item::Bread), - "clay_ball" => Some(Item::ClayBall), - "music_disc_mall" => Some(Item::MusicDiscMall), - "budding_amethyst" => Some(Item::BuddingAmethyst), - "crimson_sign" => Some(Item::CrimsonSign), - "lime_dye" => Some(Item::LimeDye), - "purpur_stairs" => Some(Item::PurpurStairs), - "structure_block" => Some(Item::StructureBlock), - "player_head" => Some(Item::PlayerHead), - "oak_trapdoor" => Some(Item::OakTrapdoor), - "parrot_spawn_egg" => Some(Item::ParrotSpawnEgg), - "azalea_leaves" => Some(Item::AzaleaLeaves), - "yellow_bed" => Some(Item::YellowBed), - "iron_ingot" => Some(Item::IronIngot), - "redstone" => Some(Item::Redstone), - "beacon" => Some(Item::Beacon), - "chiseled_deepslate" => Some(Item::ChiseledDeepslate), - "gray_stained_glass" => Some(Item::GrayStainedGlass), - "iron_hoe" => Some(Item::IronHoe), - "piglin_spawn_egg" => Some(Item::PiglinSpawnEgg), - "elder_guardian_spawn_egg" => Some(Item::ElderGuardianSpawnEgg), - "dark_oak_fence_gate" => Some(Item::DarkOakFenceGate), - _ => None, - } - } -} -impl Item { - #[doc = "Returns the `namespaced_id` property of this `Item`."] - #[inline] - pub fn namespaced_id(&self) -> &'static str { - match self { - Item::DeepslateIronOre => "minecraft:deepslate_iron_ore", - Item::IronHoe => "minecraft:iron_hoe", - Item::GoldenBoots => "minecraft:golden_boots", - Item::BoneBlock => "minecraft:bone_block", - Item::BirchPressurePlate => "minecraft:birch_pressure_plate", - Item::CraftingTable => "minecraft:crafting_table", - Item::IronHorseArmor => "minecraft:iron_horse_armor", - Item::NetherStar => "minecraft:nether_star", - Item::NetherQuartzOre => "minecraft:nether_quartz_ore", - Item::WoodenSword => "minecraft:wooden_sword", - Item::ZombieHead => "minecraft:zombie_head", - Item::RavagerSpawnEgg => "minecraft:ravager_spawn_egg", - Item::ChorusFlower => "minecraft:chorus_flower", - Item::PiglinBannerPattern => "minecraft:piglin_banner_pattern", - Item::BrownCandle => "minecraft:brown_candle", - Item::Map => "minecraft:map", - Item::BirchTrapdoor => "minecraft:birch_trapdoor", - Item::VexSpawnEgg => "minecraft:vex_spawn_egg", - Item::ActivatorRail => "minecraft:activator_rail", - Item::JunglePlanks => "minecraft:jungle_planks", - Item::NetherSprouts => "minecraft:nether_sprouts", - Item::CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", - Item::MossyStoneBrickStairs => "minecraft:mossy_stone_brick_stairs", - Item::LeatherChestplate => "minecraft:leather_chestplate", - Item::YellowStainedGlassPane => "minecraft:yellow_stained_glass_pane", - Item::GrayConcrete => "minecraft:gray_concrete", - Item::CyanCandle => "minecraft:cyan_candle", - Item::WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", - Item::BlackConcrete => "minecraft:black_concrete", - Item::DeadBrainCoral => "minecraft:dead_brain_coral", - Item::Honeycomb => "minecraft:honeycomb", - Item::Jukebox => "minecraft:jukebox", - Item::Farmland => "minecraft:farmland", - Item::WhiteTerracotta => "minecraft:white_terracotta", - Item::GoldenChestplate => "minecraft:golden_chestplate", - Item::CrackedPolishedBlackstoneBricks => "minecraft:cracked_polished_blackstone_bricks", - Item::Lectern => "minecraft:lectern", - Item::RedCarpet => "minecraft:red_carpet", - Item::PrismarineBrickSlab => "minecraft:prismarine_brick_slab", - Item::EndStoneBrickWall => "minecraft:end_stone_brick_wall", - Item::SoulSoil => "minecraft:soul_soil", - Item::PinkCarpet => "minecraft:pink_carpet", - Item::Charcoal => "minecraft:charcoal", - Item::Bone => "minecraft:bone", - Item::WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", - Item::MossyCobblestoneSlab => "minecraft:mossy_cobblestone_slab", - Item::BrewingStand => "minecraft:brewing_stand", - Item::RedTerracotta => "minecraft:red_terracotta", - Item::Elytra => "minecraft:elytra", - Item::TropicalFish => "minecraft:tropical_fish", - Item::ChainmailHelmet => "minecraft:chainmail_helmet", - Item::Jigsaw => "minecraft:jigsaw", - Item::OrangeShulkerBox => "minecraft:orange_shulker_box", - Item::DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", - Item::DeepslateLapisOre => "minecraft:deepslate_lapis_ore", - Item::OrangeStainedGlassPane => "minecraft:orange_stained_glass_pane", - Item::CarvedPumpkin => "minecraft:carved_pumpkin", - Item::WhiteShulkerBox => "minecraft:white_shulker_box", - Item::MossyCobblestoneStairs => "minecraft:mossy_cobblestone_stairs", - Item::DeepslateTiles => "minecraft:deepslate_tiles", - Item::MelonSeeds => "minecraft:melon_seeds", - Item::LimeCandle => "minecraft:lime_candle", - Item::EnderPearl => "minecraft:ender_pearl", - Item::Shroomlight => "minecraft:shroomlight", - Item::WhiteWool => "minecraft:white_wool", - Item::Sandstone => "minecraft:sandstone", - Item::WhiteCandle => "minecraft:white_candle", - Item::SalmonBucket => "minecraft:salmon_bucket", - Item::AcaciaLeaves => "minecraft:acacia_leaves", - Item::OakLog => "minecraft:oak_log", - Item::Beef => "minecraft:beef", - Item::MusicDiscBlocks => "minecraft:music_disc_blocks", - Item::AndesiteStairs => "minecraft:andesite_stairs", - Item::EndRod => "minecraft:end_rod", - Item::EndStoneBricks => "minecraft:end_stone_bricks", - Item::CrimsonDoor => "minecraft:crimson_door", - Item::Stonecutter => "minecraft:stonecutter", - Item::WaterBucket => "minecraft:water_bucket", - Item::Poppy => "minecraft:poppy", - Item::StoneBrickWall => "minecraft:stone_brick_wall", - Item::BlackBed => "minecraft:black_bed", - Item::Prismarine => "minecraft:prismarine", - Item::ExposedCutCopper => "minecraft:exposed_cut_copper", - Item::PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", - Item::Arrow => "minecraft:arrow", - Item::GreenStainedGlassPane => "minecraft:green_stained_glass_pane", - Item::BlueBed => "minecraft:blue_bed", - Item::StrippedWarpedStem => "minecraft:stripped_warped_stem", - Item::PolishedBlackstone => "minecraft:polished_blackstone", - Item::BirchSlab => "minecraft:birch_slab", - Item::WhiteConcretePowder => "minecraft:white_concrete_powder", - Item::Loom => "minecraft:loom", - Item::LilyOfTheValley => "minecraft:lily_of_the_valley", - Item::DioriteWall => "minecraft:diorite_wall", - Item::BlackGlazedTerracotta => "minecraft:black_glazed_terracotta", - Item::RoseBush => "minecraft:rose_bush", - Item::GreenShulkerBox => "minecraft:green_shulker_box", - Item::BlazeRod => "minecraft:blaze_rod", - Item::Clock => "minecraft:clock", - Item::SpruceLeaves => "minecraft:spruce_leaves", - Item::LightGrayDye => "minecraft:light_gray_dye", - Item::Mutton => "minecraft:mutton", - Item::MusicDisc11 => "minecraft:music_disc_11", - Item::RedMushroomBlock => "minecraft:red_mushroom_block", - Item::BrownWool => "minecraft:brown_wool", - Item::CutCopper => "minecraft:cut_copper", - Item::CartographyTable => "minecraft:cartography_table", - Item::LilyPad => "minecraft:lily_pad", - Item::GreenCarpet => "minecraft:green_carpet", - Item::LightWeightedPressurePlate => "minecraft:light_weighted_pressure_plate", - Item::DarkOakSapling => "minecraft:dark_oak_sapling", - Item::MagentaShulkerBox => "minecraft:magenta_shulker_box", - Item::LeatherBoots => "minecraft:leather_boots", - Item::DeepslateBricks => "minecraft:deepslate_bricks", - Item::AmethystShard => "minecraft:amethyst_shard", - Item::JungleSign => "minecraft:jungle_sign", - Item::Cake => "minecraft:cake", - Item::NetheriteBlock => "minecraft:netherite_block", - Item::LightGrayConcrete => "minecraft:light_gray_concrete", - Item::DarkOakWood => "minecraft:dark_oak_wood", - Item::IronTrapdoor => "minecraft:iron_trapdoor", - Item::DeadTubeCoralBlock => "minecraft:dead_tube_coral_block", - Item::PinkCandle => "minecraft:pink_candle", - Item::ExposedCopper => "minecraft:exposed_copper", - Item::DarkOakPlanks => "minecraft:dark_oak_planks", - Item::CrackedNetherBricks => "minecraft:cracked_nether_bricks", - Item::DebugStick => "minecraft:debug_stick", - Item::PolishedDeepslateWall => "minecraft:polished_deepslate_wall", - Item::PowderSnowBucket => "minecraft:powder_snow_bucket", - Item::CyanBed => "minecraft:cyan_bed", - Item::CatSpawnEgg => "minecraft:cat_spawn_egg", - Item::FloweringAzalea => "minecraft:flowering_azalea", - Item::Cod => "minecraft:cod", - Item::MusicDiscChirp => "minecraft:music_disc_chirp", - Item::LightBlueTerracotta => "minecraft:light_blue_terracotta", - Item::PinkBanner => "minecraft:pink_banner", - Item::LightBlueDye => "minecraft:light_blue_dye", - Item::PurpleDye => "minecraft:purple_dye", - Item::CommandBlock => "minecraft:command_block", - Item::DirtPath => "minecraft:dirt_path", - Item::StoneButton => "minecraft:stone_button", - Item::StoneBricks => "minecraft:stone_bricks", - Item::MushroomStem => "minecraft:mushroom_stem", - Item::SmoothSandstone => "minecraft:smooth_sandstone", - Item::StriderSpawnEgg => "minecraft:strider_spawn_egg", - Item::GlassBottle => "minecraft:glass_bottle", - Item::SkeletonSkull => "minecraft:skeleton_skull", - Item::RottenFlesh => "minecraft:rotten_flesh", - Item::BubbleCoralBlock => "minecraft:bubble_coral_block", - Item::SoulCampfire => "minecraft:soul_campfire", - Item::RedstoneOre => "minecraft:redstone_ore", - Item::YellowGlazedTerracotta => "minecraft:yellow_glazed_terracotta", - Item::FireCoralBlock => "minecraft:fire_coral_block", - Item::ChorusPlant => "minecraft:chorus_plant", - Item::BlueConcrete => "minecraft:blue_concrete", - Item::RawCopper => "minecraft:raw_copper", - Item::Blackstone => "minecraft:blackstone", - Item::PurpleCandle => "minecraft:purple_candle", - Item::Rabbit => "minecraft:rabbit", - Item::WaxedExposedCopper => "minecraft:waxed_exposed_copper", - Item::IronPickaxe => "minecraft:iron_pickaxe", - Item::GraniteWall => "minecraft:granite_wall", - Item::ZombieVillagerSpawnEgg => "minecraft:zombie_villager_spawn_egg", - Item::DetectorRail => "minecraft:detector_rail", - Item::MusicDiscOtherside => "minecraft:music_disc_otherside", - Item::SpruceStairs => "minecraft:spruce_stairs", - Item::NetherBrickStairs => "minecraft:nether_brick_stairs", - Item::PurpleConcrete => "minecraft:purple_concrete", - Item::ChiseledSandstone => "minecraft:chiseled_sandstone", - Item::PurpleWool => "minecraft:purple_wool", - Item::Paper => "minecraft:paper", - Item::RedNetherBrickWall => "minecraft:red_nether_brick_wall", - Item::JungleButton => "minecraft:jungle_button", - Item::ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", - Item::GlowInkSac => "minecraft:glow_ink_sac", - Item::MagentaStainedGlassPane => "minecraft:magenta_stained_glass_pane", - Item::Furnace => "minecraft:furnace", - Item::BrownMushroom => "minecraft:brown_mushroom", - Item::Sponge => "minecraft:sponge", - Item::StonePressurePlate => "minecraft:stone_pressure_plate", - Item::NetheriteSword => "minecraft:netherite_sword", - Item::Pumpkin => "minecraft:pumpkin", - Item::ArmorStand => "minecraft:armor_stand", - Item::BatSpawnEgg => "minecraft:bat_spawn_egg", - Item::DarkOakSlab => "minecraft:dark_oak_slab", - Item::LeatherLeggings => "minecraft:leather_leggings", - Item::HorseSpawnEgg => "minecraft:horse_spawn_egg", - Item::Bread => "minecraft:bread", - Item::WaxedCopperBlock => "minecraft:waxed_copper_block", - Item::WaxedCutCopper => "minecraft:waxed_cut_copper", - Item::WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", - Item::WeepingVines => "minecraft:weeping_vines", - Item::EnchantingTable => "minecraft:enchanting_table", - Item::CyanConcrete => "minecraft:cyan_concrete", - Item::OcelotSpawnEgg => "minecraft:ocelot_spawn_egg", - Item::Beetroot => "minecraft:beetroot", - Item::PinkConcretePowder => "minecraft:pink_concrete_powder", - Item::NetheriteBoots => "minecraft:netherite_boots", - Item::GoldenShovel => "minecraft:golden_shovel", - Item::AzureBluet => "minecraft:azure_bluet", - Item::PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", - Item::WarpedTrapdoor => "minecraft:warped_trapdoor", - Item::BlueCandle => "minecraft:blue_candle", - Item::Potion => "minecraft:potion", - Item::MediumAmethystBud => "minecraft:medium_amethyst_bud", - Item::BlueGlazedTerracotta => "minecraft:blue_glazed_terracotta", - Item::Feather => "minecraft:feather", - Item::Gunpowder => "minecraft:gunpowder", - Item::AcaciaSign => "minecraft:acacia_sign", - Item::GhastSpawnEgg => "minecraft:ghast_spawn_egg", - Item::TropicalFishSpawnEgg => "minecraft:tropical_fish_spawn_egg", - Item::PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", - Item::OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", - Item::DarkOakFenceGate => "minecraft:dark_oak_fence_gate", - Item::LightBlueGlazedTerracotta => "minecraft:light_blue_glazed_terracotta", - Item::BlackShulkerBox => "minecraft:black_shulker_box", - Item::GoatSpawnEgg => "minecraft:goat_spawn_egg", - Item::BrickWall => "minecraft:brick_wall", - Item::Leather => "minecraft:leather", - Item::CopperOre => "minecraft:copper_ore", - Item::PurpleBed => "minecraft:purple_bed", - Item::LlamaSpawnEgg => "minecraft:llama_spawn_egg", - Item::LingeringPotion => "minecraft:lingering_potion", - Item::SuspiciousStew => "minecraft:suspicious_stew", - Item::YellowTerracotta => "minecraft:yellow_terracotta", - Item::ChickenSpawnEgg => "minecraft:chicken_spawn_egg", - Item::StrippedCrimsonStem => "minecraft:stripped_crimson_stem", - Item::WhiteStainedGlassPane => "minecraft:white_stained_glass_pane", - Item::AndesiteSlab => "minecraft:andesite_slab", - Item::DiamondLeggings => "minecraft:diamond_leggings", - Item::Carrot => "minecraft:carrot", - Item::WarpedStem => "minecraft:warped_stem", - Item::WarpedStairs => "minecraft:warped_stairs", - Item::LightBlueStainedGlass => "minecraft:light_blue_stained_glass", - Item::OakSign => "minecraft:oak_sign", - Item::FletchingTable => "minecraft:fletching_table", - Item::GreenGlazedTerracotta => "minecraft:green_glazed_terracotta", - Item::GrayCandle => "minecraft:gray_candle", - Item::MojangBannerPattern => "minecraft:mojang_banner_pattern", - Item::DripstoneBlock => "minecraft:dripstone_block", - Item::WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", - Item::WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", - Item::CrimsonNylium => "minecraft:crimson_nylium", - Item::RepeatingCommandBlock => "minecraft:repeating_command_block", - Item::OakButton => "minecraft:oak_button", - Item::OrangeTulip => "minecraft:orange_tulip", - Item::LightBlueConcretePowder => "minecraft:light_blue_concrete_powder", - Item::Sand => "minecraft:sand", - Item::CopperBlock => "minecraft:copper_block", - Item::GoldIngot => "minecraft:gold_ingot", - Item::Apple => "minecraft:apple", - Item::BlackCandle => "minecraft:black_candle", - Item::CyanShulkerBox => "minecraft:cyan_shulker_box", - Item::BirchDoor => "minecraft:birch_door", - Item::StoneSword => "minecraft:stone_sword", - Item::JungleSlab => "minecraft:jungle_slab", - Item::PurpleConcretePowder => "minecraft:purple_concrete_powder", - Item::LightGrayConcretePowder => "minecraft:light_gray_concrete_powder", - Item::SpiderSpawnEgg => "minecraft:spider_spawn_egg", - Item::LargeAmethystBud => "minecraft:large_amethyst_bud", - Item::PinkBed => "minecraft:pink_bed", - Item::JungleTrapdoor => "minecraft:jungle_trapdoor", - Item::CaveSpiderSpawnEgg => "minecraft:cave_spider_spawn_egg", - Item::NetherBrickFence => "minecraft:nether_brick_fence", - Item::PigSpawnEgg => "minecraft:pig_spawn_egg", - Item::BirchWood => "minecraft:birch_wood", - Item::JungleStairs => "minecraft:jungle_stairs", - Item::Beehive => "minecraft:beehive", - Item::RedSandstoneStairs => "minecraft:red_sandstone_stairs", - Item::VillagerSpawnEgg => "minecraft:villager_spawn_egg", - Item::CutSandstoneSlab => "minecraft:cut_sandstone_slab", - Item::WarpedFungus => "minecraft:warped_fungus", - Item::SlimeSpawnEgg => "minecraft:slime_spawn_egg", - Item::SpruceWood => "minecraft:spruce_wood", - Item::Deepslate => "minecraft:deepslate", - Item::YellowShulkerBox => "minecraft:yellow_shulker_box", - Item::DarkPrismarineStairs => "minecraft:dark_prismarine_stairs", - Item::HopperMinecart => "minecraft:hopper_minecart", - Item::DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block", - Item::RawCopperBlock => "minecraft:raw_copper_block", - Item::Flint => "minecraft:flint", - Item::SmoothQuartzSlab => "minecraft:smooth_quartz_slab", - Item::StructureBlock => "minecraft:structure_block", - Item::IronSword => "minecraft:iron_sword", - Item::Compass => "minecraft:compass", - Item::GoldenHoe => "minecraft:golden_hoe", - Item::Peony => "minecraft:peony", - Item::NetheriteChestplate => "minecraft:netherite_chestplate", - Item::IronBlock => "minecraft:iron_block", - Item::CrimsonTrapdoor => "minecraft:crimson_trapdoor", - Item::GlobeBannerPattern => "minecraft:globe_banner_pattern", - Item::LightGrayTerracotta => "minecraft:light_gray_terracotta", - Item::MossyStoneBricks => "minecraft:mossy_stone_bricks", - Item::LightGrayBed => "minecraft:light_gray_bed", - Item::StickyPiston => "minecraft:sticky_piston", - Item::CyanStainedGlassPane => "minecraft:cyan_stained_glass_pane", - Item::PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", - Item::SprucePressurePlate => "minecraft:spruce_pressure_plate", - Item::CookedSalmon => "minecraft:cooked_salmon", - Item::Granite => "minecraft:granite", - Item::RedMushroom => "minecraft:red_mushroom", - Item::EndStone => "minecraft:end_stone", - Item::NetherBrick => "minecraft:nether_brick", - Item::CrimsonButton => "minecraft:crimson_button", - Item::DriedKelp => "minecraft:dried_kelp", - Item::SugarCane => "minecraft:sugar_cane", - Item::FireCoralFan => "minecraft:fire_coral_fan", - Item::BlueShulkerBox => "minecraft:blue_shulker_box", - Item::CreeperHead => "minecraft:creeper_head", - Item::SmithingTable => "minecraft:smithing_table", - Item::Azalea => "minecraft:azalea", - Item::FermentedSpiderEye => "minecraft:fermented_spider_eye", - Item::BirchBoat => "minecraft:birch_boat", - Item::DeepslateTileWall => "minecraft:deepslate_tile_wall", - Item::StoneHoe => "minecraft:stone_hoe", - Item::GrayStainedGlassPane => "minecraft:gray_stained_glass_pane", - Item::DiamondHelmet => "minecraft:diamond_helmet", - Item::DeadBrainCoralBlock => "minecraft:dead_brain_coral_block", - Item::CutSandstone => "minecraft:cut_sandstone", - Item::SlimeBall => "minecraft:slime_ball", - Item::GildedBlackstone => "minecraft:gilded_blackstone", - Item::WitchSpawnEgg => "minecraft:witch_spawn_egg", - Item::BlackstoneWall => "minecraft:blackstone_wall", - Item::FireCoral => "minecraft:fire_coral", - Item::Redstone => "minecraft:redstone", - Item::WrittenBook => "minecraft:written_book", - Item::WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", - Item::GraniteSlab => "minecraft:granite_slab", - Item::Scaffolding => "minecraft:scaffolding", - Item::LimeDye => "minecraft:lime_dye", - Item::PolishedBlackstoneButton => "minecraft:polished_blackstone_button", - Item::DeadBubbleCoralFan => "minecraft:dead_bubble_coral_fan", - Item::Glowstone => "minecraft:glowstone", - Item::HornCoral => "minecraft:horn_coral", - Item::SquidSpawnEgg => "minecraft:squid_spawn_egg", - Item::YellowCarpet => "minecraft:yellow_carpet", - Item::LapisLazuli => "minecraft:lapis_lazuli", - Item::WarpedWartBlock => "minecraft:warped_wart_block", - Item::SmoothQuartz => "minecraft:smooth_quartz", - Item::CobbledDeepslate => "minecraft:cobbled_deepslate", - Item::TripwireHook => "minecraft:tripwire_hook", - Item::Dropper => "minecraft:dropper", - Item::MagentaGlazedTerracotta => "minecraft:magenta_glazed_terracotta", - Item::SoulSand => "minecraft:soul_sand", - Item::Potato => "minecraft:potato", - Item::MagmaCream => "minecraft:magma_cream", - Item::CowSpawnEgg => "minecraft:cow_spawn_egg", - Item::TrappedChest => "minecraft:trapped_chest", - Item::JungleFenceGate => "minecraft:jungle_fence_gate", - Item::GoldenApple => "minecraft:golden_apple", - Item::DarkOakFence => "minecraft:dark_oak_fence", - Item::DeadHornCoral => "minecraft:dead_horn_coral", - Item::DarkOakLeaves => "minecraft:dark_oak_leaves", - Item::DeadFireCoral => "minecraft:dead_fire_coral", - Item::IronShovel => "minecraft:iron_shovel", - Item::EnchantedBook => "minecraft:enchanted_book", - Item::WhiteTulip => "minecraft:white_tulip", - Item::AcaciaButton => "minecraft:acacia_button", - Item::Emerald => "minecraft:emerald", - Item::SandstoneSlab => "minecraft:sandstone_slab", - Item::IronDoor => "minecraft:iron_door", - Item::RawIron => "minecraft:raw_iron", - Item::LapisBlock => "minecraft:lapis_block", - Item::BigDripleaf => "minecraft:big_dripleaf", - Item::BlueConcretePowder => "minecraft:blue_concrete_powder", - Item::Barrel => "minecraft:barrel", - Item::MagentaStainedGlass => "minecraft:magenta_stained_glass", - Item::BrownConcrete => "minecraft:brown_concrete", - Item::PinkTulip => "minecraft:pink_tulip", - Item::GrayBanner => "minecraft:gray_banner", - Item::Bedrock => "minecraft:bedrock", - Item::DeadFireCoralBlock => "minecraft:dead_fire_coral_block", - Item::Anvil => "minecraft:anvil", - Item::StonePickaxe => "minecraft:stone_pickaxe", - Item::LeatherHelmet => "minecraft:leather_helmet", - Item::Porkchop => "minecraft:porkchop", - Item::StoneBrickSlab => "minecraft:stone_brick_slab", - Item::OrangeCandle => "minecraft:orange_candle", - Item::BlueWool => "minecraft:blue_wool", - Item::MossCarpet => "minecraft:moss_carpet", - Item::SilverfishSpawnEgg => "minecraft:silverfish_spawn_egg", - Item::SpectralArrow => "minecraft:spectral_arrow", - Item::CookedRabbit => "minecraft:cooked_rabbit", - Item::IronChestplate => "minecraft:iron_chestplate", - Item::GrayConcretePowder => "minecraft:gray_concrete_powder", - Item::WarpedPlanks => "minecraft:warped_planks", - Item::DeadTubeCoral => "minecraft:dead_tube_coral", - Item::DrownedSpawnEgg => "minecraft:drowned_spawn_egg", - Item::SplashPotion => "minecraft:splash_potion", - Item::WoodenShovel => "minecraft:wooden_shovel", - Item::WarpedRoots => "minecraft:warped_roots", - Item::QuartzPillar => "minecraft:quartz_pillar", - Item::GlisteringMelonSlice => "minecraft:glistering_melon_slice", - Item::CrimsonStairs => "minecraft:crimson_stairs", - Item::Obsidian => "minecraft:obsidian", - Item::RedCandle => "minecraft:red_candle", - Item::SoulTorch => "minecraft:soul_torch", - Item::GhastTear => "minecraft:ghast_tear", - Item::Diamond => "minecraft:diamond", - Item::EndStoneBrickSlab => "minecraft:end_stone_brick_slab", - Item::GrayGlazedTerracotta => "minecraft:gray_glazed_terracotta", - Item::OakTrapdoor => "minecraft:oak_trapdoor", - Item::LimeBanner => "minecraft:lime_banner", - Item::DarkOakTrapdoor => "minecraft:dark_oak_trapdoor", - Item::OakSapling => "minecraft:oak_sapling", - Item::PufferfishBucket => "minecraft:pufferfish_bucket", - Item::Clay => "minecraft:clay", - Item::CyanConcretePowder => "minecraft:cyan_concrete_powder", - Item::Gravel => "minecraft:gravel", - Item::YellowStainedGlass => "minecraft:yellow_stained_glass", - Item::GrayWool => "minecraft:gray_wool", - Item::BlueIce => "minecraft:blue_ice", - Item::StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", - Item::Fern => "minecraft:fern", - Item::MilkBucket => "minecraft:milk_bucket", - Item::BrainCoralBlock => "minecraft:brain_coral_block", - Item::OrangeBanner => "minecraft:orange_banner", - Item::FilledMap => "minecraft:filled_map", - Item::RedNetherBrickSlab => "minecraft:red_nether_brick_slab", - Item::PolishedGraniteStairs => "minecraft:polished_granite_stairs", - Item::ChainmailBoots => "minecraft:chainmail_boots", - Item::OakDoor => "minecraft:oak_door", - Item::SheepSpawnEgg => "minecraft:sheep_spawn_egg", - Item::OakWood => "minecraft:oak_wood", - Item::Shield => "minecraft:shield", - Item::BlastFurnace => "minecraft:blast_furnace", - Item::RedStainedGlassPane => "minecraft:red_stained_glass_pane", - Item::Spyglass => "minecraft:spyglass", - Item::WanderingTraderSpawnEgg => "minecraft:wandering_trader_spawn_egg", - Item::Repeater => "minecraft:repeater", - Item::Ladder => "minecraft:ladder", - Item::HornCoralFan => "minecraft:horn_coral_fan", - Item::WhiteConcrete => "minecraft:white_concrete", - Item::SprucePlanks => "minecraft:spruce_planks", - Item::PurpurPillar => "minecraft:purpur_pillar", - Item::BlackstoneSlab => "minecraft:blackstone_slab", - Item::DarkOakDoor => "minecraft:dark_oak_door", - Item::Seagrass => "minecraft:seagrass", - Item::DeepslateBrickSlab => "minecraft:deepslate_brick_slab", - Item::CutCopperStairs => "minecraft:cut_copper_stairs", - Item::StoneStairs => "minecraft:stone_stairs", - Item::DioriteSlab => "minecraft:diorite_slab", - Item::PolishedBlackstoneBrickStairs => "minecraft:polished_blackstone_brick_stairs", - Item::AndesiteWall => "minecraft:andesite_wall", - Item::PinkDye => "minecraft:pink_dye", - Item::PhantomSpawnEgg => "minecraft:phantom_spawn_egg", - Item::LimeStainedGlass => "minecraft:lime_stained_glass", - Item::SkeletonHorseSpawnEgg => "minecraft:skeleton_horse_spawn_egg", - Item::SpruceFenceGate => "minecraft:spruce_fence_gate", - Item::Bamboo => "minecraft:bamboo", - Item::DarkOakStairs => "minecraft:dark_oak_stairs", - Item::LightBlueBanner => "minecraft:light_blue_banner", - Item::Conduit => "minecraft:conduit", - Item::PurpleCarpet => "minecraft:purple_carpet", - Item::Cornflower => "minecraft:cornflower", - Item::WheatSeeds => "minecraft:wheat_seeds", - Item::MusicDiscMellohi => "minecraft:music_disc_mellohi", - Item::Smoker => "minecraft:smoker", - Item::MossyCobblestone => "minecraft:mossy_cobblestone", - Item::WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", - Item::Netherrack => "minecraft:netherrack", - Item::BrownTerracotta => "minecraft:brown_terracotta", - Item::Piston => "minecraft:piston", - Item::ChorusFruit => "minecraft:chorus_fruit", - Item::RedstoneLamp => "minecraft:redstone_lamp", - Item::AcaciaPressurePlate => "minecraft:acacia_pressure_plate", - Item::PurpleBanner => "minecraft:purple_banner", - Item::LightBlueCarpet => "minecraft:light_blue_carpet", - Item::CyanWool => "minecraft:cyan_wool", - Item::CocoaBeans => "minecraft:cocoa_beans", - Item::BrownStainedGlassPane => "minecraft:brown_stained_glass_pane", - Item::CodSpawnEgg => "minecraft:cod_spawn_egg", - Item::CrimsonFence => "minecraft:crimson_fence", - Item::LeatherHorseArmor => "minecraft:leather_horse_armor", - Item::Andesite => "minecraft:andesite", - Item::OakSlab => "minecraft:oak_slab", - Item::WitherSkeletonSkull => "minecraft:wither_skeleton_skull", - Item::HayBlock => "minecraft:hay_block", - Item::BrownGlazedTerracotta => "minecraft:brown_glazed_terracotta", - Item::PinkWool => "minecraft:pink_wool", - Item::InkSac => "minecraft:ink_sac", - Item::AcaciaPlanks => "minecraft:acacia_planks", - Item::EndPortalFrame => "minecraft:end_portal_frame", - Item::Cookie => "minecraft:cookie", - Item::CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", - Item::FireworkStar => "minecraft:firework_star", - Item::LightBlueCandle => "minecraft:light_blue_candle", - Item::NetherGoldOre => "minecraft:nether_gold_ore", - Item::CutRedSandstone => "minecraft:cut_red_sandstone", - Item::CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", - Item::CrimsonFenceGate => "minecraft:crimson_fence_gate", - Item::DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", - Item::JungleBoat => "minecraft:jungle_boat", - Item::StructureVoid => "minecraft:structure_void", - Item::PinkGlazedTerracotta => "minecraft:pink_glazed_terracotta", - Item::DioriteStairs => "minecraft:diorite_stairs", - Item::WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", - Item::MagentaCarpet => "minecraft:magenta_carpet", - Item::WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", - Item::PurpleStainedGlass => "minecraft:purple_stained_glass", - Item::LimeShulkerBox => "minecraft:lime_shulker_box", - Item::BlackConcretePowder => "minecraft:black_concrete_powder", - Item::Rail => "minecraft:rail", - Item::DriedKelpBlock => "minecraft:dried_kelp_block", - Item::AcaciaLog => "minecraft:acacia_log", - Item::ChiseledQuartzBlock => "minecraft:chiseled_quartz_block", - Item::PiglinBruteSpawnEgg => "minecraft:piglin_brute_spawn_egg", - Item::DeepslateCoalOre => "minecraft:deepslate_coal_ore", - Item::PlayerHead => "minecraft:player_head", - Item::ChiseledStoneBricks => "minecraft:chiseled_stone_bricks", - Item::AcaciaSapling => "minecraft:acacia_sapling", - Item::BrownCarpet => "minecraft:brown_carpet", - Item::CobblestoneStairs => "minecraft:cobblestone_stairs", - Item::Beacon => "minecraft:beacon", - Item::CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", - Item::InfestedCobblestone => "minecraft:infested_cobblestone", - Item::WarpedPressurePlate => "minecraft:warped_pressure_plate", - Item::NetheritePickaxe => "minecraft:netherite_pickaxe", - Item::EndermiteSpawnEgg => "minecraft:endermite_spawn_egg", - Item::OakFence => "minecraft:oak_fence", - Item::BrownBed => "minecraft:brown_bed", - Item::StrippedWarpedHyphae => "minecraft:stripped_warped_hyphae", - Item::WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", - Item::RedNetherBricks => "minecraft:red_nether_bricks", - Item::RedWool => "minecraft:red_wool", - Item::PolishedAndesiteSlab => "minecraft:polished_andesite_slab", - Item::NetherWart => "minecraft:nether_wart", - Item::YellowWool => "minecraft:yellow_wool", - Item::BlackCarpet => "minecraft:black_carpet", - Item::EmeraldBlock => "minecraft:emerald_block", - Item::LightGrayWool => "minecraft:light_gray_wool", - Item::InfestedDeepslate => "minecraft:infested_deepslate", - Item::SmoothSandstoneSlab => "minecraft:smooth_sandstone_slab", - Item::AcaciaTrapdoor => "minecraft:acacia_trapdoor", - Item::BrownDye => "minecraft:brown_dye", - Item::EmeraldOre => "minecraft:emerald_ore", - Item::NautilusShell => "minecraft:nautilus_shell", - Item::Tuff => "minecraft:tuff", - Item::Chest => "minecraft:chest", - Item::Snow => "minecraft:snow", - Item::TwistingVines => "minecraft:twisting_vines", - Item::GrayDye => "minecraft:gray_dye", - Item::SmoothRedSandstone => "minecraft:smooth_red_sandstone", - Item::RootedDirt => "minecraft:rooted_dirt", - Item::RawIronBlock => "minecraft:raw_iron_block", - Item::Painting => "minecraft:painting", - Item::ShulkerSpawnEgg => "minecraft:shulker_spawn_egg", - Item::FlintAndSteel => "minecraft:flint_and_steel", - Item::OrangeStainedGlass => "minecraft:orange_stained_glass", - Item::AmethystBlock => "minecraft:amethyst_block", - Item::ChiseledRedSandstone => "minecraft:chiseled_red_sandstone", - Item::LimeConcrete => "minecraft:lime_concrete", - Item::SpruceTrapdoor => "minecraft:spruce_trapdoor", - Item::AncientDebris => "minecraft:ancient_debris", - Item::LightGrayStainedGlassPane => "minecraft:light_gray_stained_glass_pane", - Item::RedstoneBlock => "minecraft:redstone_block", - Item::PiglinSpawnEgg => "minecraft:piglin_spawn_egg", - Item::NameTag => "minecraft:name_tag", - Item::SmoothRedSandstoneSlab => "minecraft:smooth_red_sandstone_slab", - Item::WarpedSign => "minecraft:warped_sign", - Item::Crossbow => "minecraft:crossbow", - Item::AxolotlSpawnEgg => "minecraft:axolotl_spawn_egg", - Item::NetheriteHelmet => "minecraft:netherite_helmet", - Item::GoldenAxe => "minecraft:golden_axe", - Item::MusicDiscCat => "minecraft:music_disc_cat", - Item::Diorite => "minecraft:diorite", - Item::WarpedSlab => "minecraft:warped_slab", - Item::NetherBrickSlab => "minecraft:nether_brick_slab", - Item::SmoothSandstoneStairs => "minecraft:smooth_sandstone_stairs", - Item::NetheriteIngot => "minecraft:netherite_ingot", - Item::HangingRoots => "minecraft:hanging_roots", - Item::DeadHornCoralBlock => "minecraft:dead_horn_coral_block", - Item::ZoglinSpawnEgg => "minecraft:zoglin_spawn_egg", - Item::DiamondBlock => "minecraft:diamond_block", - Item::StrippedBirchWood => "minecraft:stripped_birch_wood", - Item::OrangeGlazedTerracotta => "minecraft:orange_glazed_terracotta", - Item::NetheriteLeggings => "minecraft:netherite_leggings", - Item::DiamondShovel => "minecraft:diamond_shovel", - Item::Trident => "minecraft:trident", - Item::BirchFence => "minecraft:birch_fence", - Item::WetSponge => "minecraft:wet_sponge", - Item::RabbitHide => "minecraft:rabbit_hide", - Item::InfestedStoneBricks => "minecraft:infested_stone_bricks", - Item::MagentaTerracotta => "minecraft:magenta_terracotta", - Item::WeatheredCopper => "minecraft:weathered_copper", - Item::GrayCarpet => "minecraft:gray_carpet", - Item::JungleLeaves => "minecraft:jungle_leaves", - Item::BlueOrchid => "minecraft:blue_orchid", - Item::Spawner => "minecraft:spawner", - Item::CyanGlazedTerracotta => "minecraft:cyan_glazed_terracotta", - Item::CookedPorkchop => "minecraft:cooked_porkchop", - Item::HuskSpawnEgg => "minecraft:husk_spawn_egg", - Item::SkeletonSpawnEgg => "minecraft:skeleton_spawn_egg", - Item::GoldenHorseArmor => "minecraft:golden_horse_armor", - Item::OrangeWool => "minecraft:orange_wool", - Item::HeartOfTheSea => "minecraft:heart_of_the_sea", - Item::SpruceLog => "minecraft:spruce_log", - Item::CobblestoneSlab => "minecraft:cobblestone_slab", - Item::BoneMeal => "minecraft:bone_meal", - Item::NetheriteScrap => "minecraft:netherite_scrap", - Item::MusicDiscWait => "minecraft:music_disc_wait", - Item::LimeWool => "minecraft:lime_wool", - Item::RawGoldBlock => "minecraft:raw_gold_block", - Item::LightBlueStainedGlassPane => "minecraft:light_blue_stained_glass_pane", - Item::OakPressurePlate => "minecraft:oak_pressure_plate", - Item::WoodenPickaxe => "minecraft:wooden_pickaxe", - Item::EnchantedGoldenApple => "minecraft:enchanted_golden_apple", - Item::SweetBerries => "minecraft:sweet_berries", - Item::RedDye => "minecraft:red_dye", - Item::PrismarineBrickStairs => "minecraft:prismarine_brick_stairs", - Item::CutRedSandstoneSlab => "minecraft:cut_red_sandstone_slab", - Item::GoldBlock => "minecraft:gold_block", - Item::IronHelmet => "minecraft:iron_helmet", - Item::GlowLichen => "minecraft:glow_lichen", - Item::MossyStoneBrickWall => "minecraft:mossy_stone_brick_wall", - Item::StrippedBirchLog => "minecraft:stripped_birch_log", - Item::ChainmailChestplate => "minecraft:chainmail_chestplate", - Item::PumpkinSeeds => "minecraft:pumpkin_seeds", - Item::IronAxe => "minecraft:iron_axe", - Item::CutCopperSlab => "minecraft:cut_copper_slab", - Item::BakedPotato => "minecraft:baked_potato", - Item::DiamondSword => "minecraft:diamond_sword", - Item::BubbleCoral => "minecraft:bubble_coral", - Item::RedNetherBrickStairs => "minecraft:red_nether_brick_stairs", - Item::WoodenHoe => "minecraft:wooden_hoe", - Item::Lantern => "minecraft:lantern", - Item::DragonEgg => "minecraft:dragon_egg", - Item::ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", - Item::MagentaConcrete => "minecraft:magenta_concrete", - Item::AxolotlBucket => "minecraft:axolotl_bucket", - Item::MuleSpawnEgg => "minecraft:mule_spawn_egg", - Item::PumpkinPie => "minecraft:pumpkin_pie", - Item::InfestedStone => "minecraft:infested_stone", - Item::MagmaCubeSpawnEgg => "minecraft:magma_cube_spawn_egg", - Item::TubeCoralBlock => "minecraft:tube_coral_block", - Item::BlueBanner => "minecraft:blue_banner", - Item::CoalBlock => "minecraft:coal_block", - Item::StrippedAcaciaWood => "minecraft:stripped_acacia_wood", - Item::BeetrootSoup => "minecraft:beetroot_soup", - Item::Barrier => "minecraft:barrier", - Item::EndCrystal => "minecraft:end_crystal", - Item::Mycelium => "minecraft:mycelium", - Item::SporeBlossom => "minecraft:spore_blossom", - Item::Wheat => "minecraft:wheat", - Item::PrismarineStairs => "minecraft:prismarine_stairs", - Item::PurpleTerracotta => "minecraft:purple_terracotta", - Item::TropicalFishBucket => "minecraft:tropical_fish_bucket", - Item::Lever => "minecraft:lever", - Item::OrangeDye => "minecraft:orange_dye", - Item::GreenBed => "minecraft:green_bed", - Item::PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", - Item::RedConcretePowder => "minecraft:red_concrete_powder", - Item::MusicDiscStal => "minecraft:music_disc_stal", - Item::CrimsonHyphae => "minecraft:crimson_hyphae", - Item::FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", - Item::PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", - Item::PolishedDioriteStairs => "minecraft:polished_diorite_stairs", - Item::BlackStainedGlass => "minecraft:black_stained_glass", - Item::GreenWool => "minecraft:green_wool", - Item::AcaciaStairs => "minecraft:acacia_stairs", - Item::Chain => "minecraft:chain", - Item::LightBlueWool => "minecraft:light_blue_wool", - Item::BlackStainedGlassPane => "minecraft:black_stained_glass_pane", - Item::Candle => "minecraft:candle", - Item::ChippedAnvil => "minecraft:chipped_anvil", - Item::LavaBucket => "minecraft:lava_bucket", - Item::SalmonSpawnEgg => "minecraft:salmon_spawn_egg", - Item::Stick => "minecraft:stick", - Item::Dirt => "minecraft:dirt", - Item::CyanStainedGlass => "minecraft:cyan_stained_glass", - Item::StrippedJungleWood => "minecraft:stripped_jungle_wood", - Item::CrimsonRoots => "minecraft:crimson_roots", - Item::SeaLantern => "minecraft:sea_lantern", - Item::HeavyWeightedPressurePlate => "minecraft:heavy_weighted_pressure_plate", - Item::WhiteDye => "minecraft:white_dye", - Item::GreenDye => "minecraft:green_dye", - Item::JungleWood => "minecraft:jungle_wood", - Item::BeeNest => "minecraft:bee_nest", - Item::DarkPrismarine => "minecraft:dark_prismarine", - Item::DarkPrismarineSlab => "minecraft:dark_prismarine_slab", - Item::ChainmailLeggings => "minecraft:chainmail_leggings", - Item::TntMinecart => "minecraft:tnt_minecart", - Item::DarkOakBoat => "minecraft:dark_oak_boat", - Item::IronBars => "minecraft:iron_bars", - Item::Lilac => "minecraft:lilac", - Item::CyanBanner => "minecraft:cyan_banner", - Item::YellowConcrete => "minecraft:yellow_concrete", - Item::LightGrayStainedGlass => "minecraft:light_gray_stained_glass", - Item::Cobblestone => "minecraft:cobblestone", - Item::GrassBlock => "minecraft:grass_block", - Item::WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", - Item::GrayStainedGlass => "minecraft:gray_stained_glass", - Item::BlackWool => "minecraft:black_wool", - Item::BlazeSpawnEgg => "minecraft:blaze_spawn_egg", - Item::BirchSign => "minecraft:birch_sign", - Item::InfestedCrackedStoneBricks => "minecraft:infested_cracked_stone_bricks", - Item::MusicDiscStrad => "minecraft:music_disc_strad", - Item::BrownMushroomBlock => "minecraft:brown_mushroom_block", - Item::BrownStainedGlass => "minecraft:brown_stained_glass", - Item::BeetrootSeeds => "minecraft:beetroot_seeds", - Item::StrippedOakLog => "minecraft:stripped_oak_log", - Item::PurpurStairs => "minecraft:purpur_stairs", - Item::GlowstoneDust => "minecraft:glowstone_dust", - Item::SmoothQuartzStairs => "minecraft:smooth_quartz_stairs", - Item::Stone => "minecraft:stone", - Item::SandstoneWall => "minecraft:sandstone_wall", - Item::TurtleSpawnEgg => "minecraft:turtle_spawn_egg", - Item::DarkOakLog => "minecraft:dark_oak_log", - Item::ClayBall => "minecraft:clay_ball", - Item::CrimsonSlab => "minecraft:crimson_slab", - Item::WarpedDoor => "minecraft:warped_door", - Item::StoneShovel => "minecraft:stone_shovel", - Item::ShulkerBox => "minecraft:shulker_box", - Item::Egg => "minecraft:egg", - Item::MossBlock => "minecraft:moss_block", - Item::WhiteGlazedTerracotta => "minecraft:white_glazed_terracotta", - Item::EndStoneBrickStairs => "minecraft:end_stone_brick_stairs", - Item::PoisonousPotato => "minecraft:poisonous_potato", - Item::RedTulip => "minecraft:red_tulip", - Item::PolishedBasalt => "minecraft:polished_basalt", - Item::BlackstoneStairs => "minecraft:blackstone_stairs", - Item::SnowBlock => "minecraft:snow_block", - Item::Ice => "minecraft:ice", - Item::WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", - Item::DiamondHorseArmor => "minecraft:diamond_horse_armor", - Item::BirchLog => "minecraft:birch_log", - Item::InfestedMossyStoneBricks => "minecraft:infested_mossy_stone_bricks", - Item::OrangeTerracotta => "minecraft:orange_terracotta", - Item::PinkTerracotta => "minecraft:pink_terracotta", - Item::Composter => "minecraft:composter", - Item::IronLeggings => "minecraft:iron_leggings", - Item::MagentaWool => "minecraft:magenta_wool", - Item::GoldenHelmet => "minecraft:golden_helmet", - Item::LimeBed => "minecraft:lime_bed", - Item::ChainCommandBlock => "minecraft:chain_command_block", - Item::Podzol => "minecraft:podzol", - Item::Hopper => "minecraft:hopper", - Item::CopperIngot => "minecraft:copper_ingot", - Item::SlimeBlock => "minecraft:slime_block", - Item::TraderLlamaSpawnEgg => "minecraft:trader_llama_spawn_egg", - Item::LightBlueConcrete => "minecraft:light_blue_concrete", - Item::GlowSquidSpawnEgg => "minecraft:glow_squid_spawn_egg", - Item::PolishedDiorite => "minecraft:polished_diorite", - Item::Melon => "minecraft:melon", - Item::WhiteBed => "minecraft:white_bed", - Item::PetrifiedOakSlab => "minecraft:petrified_oak_slab", - Item::CrimsonSign => "minecraft:crimson_sign", - Item::PrismarineSlab => "minecraft:prismarine_slab", - Item::LightGrayBanner => "minecraft:light_gray_banner", - Item::CrimsonFungus => "minecraft:crimson_fungus", - Item::RabbitSpawnEgg => "minecraft:rabbit_spawn_egg", - Item::RedBanner => "minecraft:red_banner", - Item::PoppedChorusFruit => "minecraft:popped_chorus_fruit", - Item::LimeCarpet => "minecraft:lime_carpet", - Item::IronNugget => "minecraft:iron_nugget", - Item::StrippedCrimsonHyphae => "minecraft:stripped_crimson_hyphae", - Item::Dandelion => "minecraft:dandelion", - Item::CreeperBannerPattern => "minecraft:creeper_banner_pattern", - Item::IronBoots => "minecraft:iron_boots", - Item::OxidizedCutCopper => "minecraft:oxidized_cut_copper", - Item::GoldenSword => "minecraft:golden_sword", - Item::DiamondPickaxe => "minecraft:diamond_pickaxe", - Item::Target => "minecraft:target", - Item::Terracotta => "minecraft:terracotta", - Item::GreenBanner => "minecraft:green_banner", - Item::DolphinSpawnEgg => "minecraft:dolphin_spawn_egg", - Item::RedSand => "minecraft:red_sand", - Item::BrickStairs => "minecraft:brick_stairs", - Item::FireworkRocket => "minecraft:firework_rocket", - Item::RedShulkerBox => "minecraft:red_shulker_box", - Item::PointedDripstone => "minecraft:pointed_dripstone", - Item::LightGrayCarpet => "minecraft:light_gray_carpet", - Item::JungleFence => "minecraft:jungle_fence", - Item::CoalOre => "minecraft:coal_ore", - Item::JungleDoor => "minecraft:jungle_door", - Item::LightningRod => "minecraft:lightning_rod", - Item::GoldenCarrot => "minecraft:golden_carrot", - Item::Grindstone => "minecraft:grindstone", - Item::RedSandstoneSlab => "minecraft:red_sandstone_slab", - Item::DeadBrainCoralFan => "minecraft:dead_brain_coral_fan", - Item::OrangeConcretePowder => "minecraft:orange_concrete_powder", - Item::WarpedButton => "minecraft:warped_button", - Item::DeadTubeCoralFan => "minecraft:dead_tube_coral_fan", - Item::PolishedBlackstonePressurePlate => "minecraft:polished_blackstone_pressure_plate", - Item::GreenTerracotta => "minecraft:green_terracotta", - Item::TubeCoral => "minecraft:tube_coral", - Item::JungleLog => "minecraft:jungle_log", - Item::WarpedNylium => "minecraft:warped_nylium", - Item::GuardianSpawnEgg => "minecraft:guardian_spawn_egg", - Item::BrickSlab => "minecraft:brick_slab", - Item::StrippedOakWood => "minecraft:stripped_oak_wood", - Item::SculkSensor => "minecraft:sculk_sensor", - Item::BirchStairs => "minecraft:birch_stairs", - Item::MooshroomSpawnEgg => "minecraft:mooshroom_spawn_egg", - Item::FlowerBannerPattern => "minecraft:flower_banner_pattern", - Item::CryingObsidian => "minecraft:crying_obsidian", - Item::QuartzBlock => "minecraft:quartz_block", - Item::CyanTerracotta => "minecraft:cyan_terracotta", - Item::Observer => "minecraft:observer", - Item::InfestedChiseledStoneBricks => "minecraft:infested_chiseled_stone_bricks", - Item::WoodenAxe => "minecraft:wooden_axe", - Item::YellowCandle => "minecraft:yellow_candle", - Item::WritableBook => "minecraft:writable_book", - Item::CreeperSpawnEgg => "minecraft:creeper_spawn_egg", - Item::NetherBricks => "minecraft:nether_bricks", - Item::BlackTerracotta => "minecraft:black_terracotta", - Item::DeadBubbleCoral => "minecraft:dead_bubble_coral", - Item::CrimsonPressurePlate => "minecraft:crimson_pressure_plate", - Item::GoldOre => "minecraft:gold_ore", - Item::DeadHornCoralFan => "minecraft:dead_horn_coral_fan", - Item::FurnaceMinecart => "minecraft:furnace_minecart", - Item::Shears => "minecraft:shears", - Item::SmoothStoneSlab => "minecraft:smooth_stone_slab", - Item::WitherRose => "minecraft:wither_rose", - Item::DeepslateBrickWall => "minecraft:deepslate_brick_wall", - Item::PurpleGlazedTerracotta => "minecraft:purple_glazed_terracotta", - Item::JackOLantern => "minecraft:jack_o_lantern", - Item::HornCoralBlock => "minecraft:horn_coral_block", - Item::SpruceFence => "minecraft:spruce_fence", - Item::LightGrayGlazedTerracotta => "minecraft:light_gray_glazed_terracotta", - Item::GlowBerries => "minecraft:glow_berries", - Item::CodBucket => "minecraft:cod_bucket", - Item::Sunflower => "minecraft:sunflower", - Item::OrangeCarpet => "minecraft:orange_carpet", - Item::BlueCarpet => "minecraft:blue_carpet", - Item::SeaPickle => "minecraft:sea_pickle", - Item::PinkShulkerBox => "minecraft:pink_shulker_box", - Item::RedGlazedTerracotta => "minecraft:red_glazed_terracotta", - Item::BrainCoral => "minecraft:brain_coral", - Item::DragonHead => "minecraft:dragon_head", - Item::MagentaCandle => "minecraft:magenta_candle", - Item::DeepslateGoldOre => "minecraft:deepslate_gold_ore", - Item::StrippedSpruceLog => "minecraft:stripped_spruce_log", - Item::DonkeySpawnEgg => "minecraft:donkey_spawn_egg", - Item::LimeConcretePowder => "minecraft:lime_concrete_powder", - Item::PrismarineBricks => "minecraft:prismarine_bricks", - Item::BrownBanner => "minecraft:brown_banner", - Item::WhiteStainedGlass => "minecraft:white_stained_glass", - Item::BlueStainedGlass => "minecraft:blue_stained_glass", - Item::DiamondHoe => "minecraft:diamond_hoe", - Item::SpruceSign => "minecraft:spruce_sign", - Item::Lodestone => "minecraft:lodestone", - Item::Sugar => "minecraft:sugar", - Item::SmoothRedSandstoneStairs => "minecraft:smooth_red_sandstone_stairs", - Item::LightBlueShulkerBox => "minecraft:light_blue_shulker_box", - Item::CyanDye => "minecraft:cyan_dye", - Item::WeatheredCutCopper => "minecraft:weathered_cut_copper", - Item::SpruceBoat => "minecraft:spruce_boat", - Item::SandstoneStairs => "minecraft:sandstone_stairs", - Item::MagmaBlock => "minecraft:magma_block", - Item::LightGrayShulkerBox => "minecraft:light_gray_shulker_box", - Item::PrismarineWall => "minecraft:prismarine_wall", - Item::TubeCoralFan => "minecraft:tube_coral_fan", - Item::Coal => "minecraft:coal", - Item::ItemFrame => "minecraft:item_frame", - Item::YellowBanner => "minecraft:yellow_banner", - Item::SmallAmethystBud => "minecraft:small_amethyst_bud", - Item::BrownShulkerBox => "minecraft:brown_shulker_box", - Item::IronOre => "minecraft:iron_ore", - Item::SoulLantern => "minecraft:soul_lantern", - Item::GoldenPickaxe => "minecraft:golden_pickaxe", - Item::QuartzSlab => "minecraft:quartz_slab", - Item::LimeTerracotta => "minecraft:lime_terracotta", - Item::BrainCoralFan => "minecraft:brain_coral_fan", - Item::StrippedJungleLog => "minecraft:stripped_jungle_log", - Item::TurtleHelmet => "minecraft:turtle_helmet", - Item::PurpurSlab => "minecraft:purpur_slab", - Item::MagentaBed => "minecraft:magenta_bed", - Item::WarpedHyphae => "minecraft:warped_hyphae", - Item::HoneycombBlock => "minecraft:honeycomb_block", - Item::PurpleStainedGlassPane => "minecraft:purple_stained_glass_pane", - Item::DiamondOre => "minecraft:diamond_ore", - Item::Calcite => "minecraft:calcite", - Item::OakBoat => "minecraft:oak_boat", - Item::HoglinSpawnEgg => "minecraft:hoglin_spawn_egg", - Item::RespawnAnchor => "minecraft:respawn_anchor", - Item::MagentaBanner => "minecraft:magenta_banner", - Item::ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", - Item::BuddingAmethyst => "minecraft:budding_amethyst", - Item::Glass => "minecraft:glass", - Item::IronIngot => "minecraft:iron_ingot", - Item::DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", - Item::AcaciaDoor => "minecraft:acacia_door", - Item::GrayBed => "minecraft:gray_bed", - Item::LargeFern => "minecraft:large_fern", - Item::RedStainedGlass => "minecraft:red_stained_glass", - Item::Brick => "minecraft:brick", - Item::OakLeaves => "minecraft:oak_leaves", - Item::ElderGuardianSpawnEgg => "minecraft:elder_guardian_spawn_egg", - Item::GoldenLeggings => "minecraft:golden_leggings", - Item::PinkStainedGlass => "minecraft:pink_stained_glass", - Item::RedSandstoneWall => "minecraft:red_sandstone_wall", - Item::GlowItemFrame => "minecraft:glow_item_frame", - Item::Bell => "minecraft:bell", - Item::CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", - Item::WolfSpawnEgg => "minecraft:wolf_spawn_egg", - Item::KnowledgeBook => "minecraft:knowledge_book", - Item::CookedMutton => "minecraft:cooked_mutton", - Item::SmoothStone => "minecraft:smooth_stone", - Item::LimeGlazedTerracotta => "minecraft:lime_glazed_terracotta", - Item::NetheriteHoe => "minecraft:netherite_hoe", - Item::OakPlanks => "minecraft:oak_planks", - Item::MagentaDye => "minecraft:magenta_dye", - Item::CrackedStoneBricks => "minecraft:cracked_stone_bricks", - Item::CookedBeef => "minecraft:cooked_beef", - Item::CoarseDirt => "minecraft:coarse_dirt", - Item::EnderChest => "minecraft:ender_chest", - Item::ZombieSpawnEgg => "minecraft:zombie_spawn_egg", - Item::WarpedFenceGate => "minecraft:warped_fence_gate", - Item::Bucket => "minecraft:bucket", - Item::BlueDye => "minecraft:blue_dye", - Item::Cactus => "minecraft:cactus", - Item::Lead => "minecraft:lead", - Item::MushroomStew => "minecraft:mushroom_stew", - Item::LightBlueBed => "minecraft:light_blue_bed", - Item::BeeSpawnEgg => "minecraft:bee_spawn_egg", - Item::OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", - Item::Kelp => "minecraft:kelp", - Item::GreenConcretePowder => "minecraft:green_concrete_powder", - Item::RedstoneTorch => "minecraft:redstone_torch", - Item::Snowball => "minecraft:snowball", - Item::SpruceSapling => "minecraft:spruce_sapling", - Item::GreenCandle => "minecraft:green_candle", - Item::OxidizedCopper => "minecraft:oxidized_copper", - Item::StrippedAcaciaLog => "minecraft:stripped_acacia_log", - Item::ZombieHorseSpawnEgg => "minecraft:zombie_horse_spawn_egg", - Item::AcaciaSlab => "minecraft:acacia_slab", - Item::SpruceDoor => "minecraft:spruce_door", - Item::DarkOakSign => "minecraft:dark_oak_sign", - Item::GreenConcrete => "minecraft:green_concrete", - Item::Salmon => "minecraft:salmon", - Item::DeadFireCoralFan => "minecraft:dead_fire_coral_fan", - Item::BlueStainedGlassPane => "minecraft:blue_stained_glass_pane", - Item::OakFenceGate => "minecraft:oak_fence_gate", - Item::Minecart => "minecraft:minecart", - Item::FishingRod => "minecraft:fishing_rod", - Item::VindicatorSpawnEgg => "minecraft:vindicator_spawn_egg", - Item::Cauldron => "minecraft:cauldron", - Item::SpruceButton => "minecraft:spruce_button", - Item::Dispenser => "minecraft:dispenser", - Item::StrippedSpruceWood => "minecraft:stripped_spruce_wood", - Item::YellowBed => "minecraft:yellow_bed", - Item::NetherBrickWall => "minecraft:nether_brick_wall", - Item::JungleSapling => "minecraft:jungle_sapling", - Item::DamagedAnvil => "minecraft:damaged_anvil", - Item::Quartz => "minecraft:quartz", - Item::BrownConcretePowder => "minecraft:brown_concrete_powder", - Item::TallGrass => "minecraft:tall_grass", - Item::PolishedAndesiteStairs => "minecraft:polished_andesite_stairs", - Item::RawGold => "minecraft:raw_gold", - Item::Cobweb => "minecraft:cobweb", - Item::BirchLeaves => "minecraft:birch_leaves", - Item::NetherWartBlock => "minecraft:nether_wart_block", - Item::GreenStainedGlass => "minecraft:green_stained_glass", - Item::Bow => "minecraft:bow", - Item::CrimsonPlanks => "minecraft:crimson_planks", - Item::DeepslateCopperOre => "minecraft:deepslate_copper_ore", - Item::FlowerPot => "minecraft:flower_pot", - Item::WhiteCarpet => "minecraft:white_carpet", - Item::Allium => "minecraft:allium", - Item::StrippedDarkOakWood => "minecraft:stripped_dark_oak_wood", - Item::Basalt => "minecraft:basalt", - Item::PolishedAndesite => "minecraft:polished_andesite", - Item::Saddle => "minecraft:saddle", - Item::Bowl => "minecraft:bowl", - Item::EnderEye => "minecraft:ender_eye", - Item::DaylightDetector => "minecraft:daylight_detector", - Item::Grass => "minecraft:grass", - Item::MossyCobblestoneWall => "minecraft:mossy_cobblestone_wall", - Item::YellowDye => "minecraft:yellow_dye", - Item::EndermanSpawnEgg => "minecraft:enderman_spawn_egg", - Item::ParrotSpawnEgg => "minecraft:parrot_spawn_egg", - Item::JunglePressurePlate => "minecraft:jungle_pressure_plate", - Item::WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", - Item::Vine => "minecraft:vine", - Item::PurpurBlock => "minecraft:purpur_block", - Item::RabbitFoot => "minecraft:rabbit_foot", - Item::DiamondChestplate => "minecraft:diamond_chestplate", - Item::Bricks => "minecraft:bricks", - Item::MusicDiscFar => "minecraft:music_disc_far", - Item::OakStairs => "minecraft:oak_stairs", - Item::HoneyBlock => "minecraft:honey_block", - Item::CarrotOnAStick => "minecraft:carrot_on_a_stick", - Item::QuartzStairs => "minecraft:quartz_stairs", - Item::AcaciaFenceGate => "minecraft:acacia_fence_gate", - Item::DeadBush => "minecraft:dead_bush", - Item::CookedChicken => "minecraft:cooked_chicken", - Item::PurpleShulkerBox => "minecraft:purple_shulker_box", - Item::PackedIce => "minecraft:packed_ice", - Item::ChiseledDeepslate => "minecraft:chiseled_deepslate", - Item::PhantomMembrane => "minecraft:phantom_membrane", - Item::SkullBannerPattern => "minecraft:skull_banner_pattern", - Item::WaxedWeatheredCutCopperStairs => "minecraft:waxed_weathered_cut_copper_stairs", - Item::ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", - Item::CyanCarpet => "minecraft:cyan_carpet", - Item::SmoothBasalt => "minecraft:smooth_basalt", - Item::OrangeBed => "minecraft:orange_bed", - Item::PandaSpawnEgg => "minecraft:panda_spawn_egg", - Item::AcaciaBoat => "minecraft:acacia_boat", - Item::AcaciaFence => "minecraft:acacia_fence", - Item::WitherSkeletonSpawnEgg => "minecraft:wither_skeleton_spawn_egg", - Item::Torch => "minecraft:torch", - Item::RabbitStew => "minecraft:rabbit_stew", - Item::NetheriteShovel => "minecraft:netherite_shovel", - Item::Campfire => "minecraft:campfire", - Item::BirchSapling => "minecraft:birch_sapling", - Item::WhiteBanner => "minecraft:white_banner", - Item::WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", - Item::AzaleaLeaves => "minecraft:azalea_leaves", - Item::GraniteStairs => "minecraft:granite_stairs", - Item::GrayShulkerBox => "minecraft:gray_shulker_box", - Item::OxeyeDaisy => "minecraft:oxeye_daisy", - Item::DeepslateTileStairs => "minecraft:deepslate_tile_stairs", - Item::GrayTerracotta => "minecraft:gray_terracotta", - Item::PinkStainedGlassPane => "minecraft:pink_stained_glass_pane", - Item::Bookshelf => "minecraft:bookshelf", - Item::PolishedGraniteSlab => "minecraft:polished_granite_slab", - Item::DeepslateTileSlab => "minecraft:deepslate_tile_slab", - Item::Pufferfish => "minecraft:pufferfish", - Item::DiamondAxe => "minecraft:diamond_axe", - Item::BlueTerracotta => "minecraft:blue_terracotta", - Item::RedConcrete => "minecraft:red_concrete", - Item::CookedCod => "minecraft:cooked_cod", - Item::PillagerSpawnEgg => "minecraft:pillager_spawn_egg", - Item::GoldNugget => "minecraft:gold_nugget", - Item::WarpedFence => "minecraft:warped_fence", - Item::SpiderEye => "minecraft:spider_eye", - Item::PrismarineCrystals => "minecraft:prismarine_crystals", - Item::PolishedGranite => "minecraft:polished_granite", - Item::LimeStainedGlassPane => "minecraft:lime_stained_glass_pane", - Item::BirchFenceGate => "minecraft:birch_fence_gate", - Item::NoteBlock => "minecraft:note_block", - Item::ShulkerShell => "minecraft:shulker_shell", - Item::BlazePowder => "minecraft:blaze_powder", - Item::RedBed => "minecraft:red_bed", - Item::PolishedDeepslate => "minecraft:polished_deepslate", - Item::BirchButton => "minecraft:birch_button", - Item::MusicDiscMall => "minecraft:music_disc_mall", - Item::FoxSpawnEgg => "minecraft:fox_spawn_egg", - Item::TippedArrow => "minecraft:tipped_arrow", - Item::PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", - Item::ZombifiedPiglinSpawnEgg => "minecraft:zombified_piglin_spawn_egg", - Item::SmallDripleaf => "minecraft:small_dripleaf", - Item::PinkConcrete => "minecraft:pink_concrete", - Item::LapisOre => "minecraft:lapis_ore", - Item::BirchPlanks => "minecraft:birch_planks", - Item::MelonSlice => "minecraft:melon_slice", - Item::PolarBearSpawnEgg => "minecraft:polar_bear_spawn_egg", - Item::CommandBlockMinecart => "minecraft:command_block_minecart", - Item::MusicDiscPigstep => "minecraft:music_disc_pigstep", - Item::TintedGlass => "minecraft:tinted_glass", - Item::WarpedFungusOnAStick => "minecraft:warped_fungus_on_a_stick", - Item::DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", - Item::Bundle => "minecraft:bundle", - Item::MusicDiscWard => "minecraft:music_disc_ward", - Item::AmethystCluster => "minecraft:amethyst_cluster", - Item::StoneAxe => "minecraft:stone_axe", - Item::StraySpawnEgg => "minecraft:stray_spawn_egg", - Item::PolishedDioriteSlab => "minecraft:polished_diorite_slab", - Item::MossyStoneBrickSlab => "minecraft:mossy_stone_brick_slab", - Item::BlackBanner => "minecraft:black_banner", - Item::EvokerSpawnEgg => "minecraft:evoker_spawn_egg", - Item::LightGrayCandle => "minecraft:light_gray_candle", - Item::PufferfishSpawnEgg => "minecraft:pufferfish_spawn_egg", - Item::ExperienceBottle => "minecraft:experience_bottle", - Item::BlackDye => "minecraft:black_dye", - Item::PrismarineShard => "minecraft:prismarine_shard", - Item::TurtleEgg => "minecraft:turtle_egg", - Item::SpruceSlab => "minecraft:spruce_slab", - Item::Chicken => "minecraft:chicken", - Item::AcaciaWood => "minecraft:acacia_wood", - Item::FireCharge => "minecraft:fire_charge", - Item::Comparator => "minecraft:comparator", - Item::PoweredRail => "minecraft:powered_rail", - Item::StoneBrickStairs => "minecraft:stone_brick_stairs", - Item::BubbleCoralFan => "minecraft:bubble_coral_fan", - Item::MusicDisc13 => "minecraft:music_disc_13", - Item::QuartzBricks => "minecraft:quartz_bricks", - Item::HoneyBottle => "minecraft:honey_bottle", - Item::YellowConcretePowder => "minecraft:yellow_concrete_powder", - Item::DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", - Item::Book => "minecraft:book", - Item::Tnt => "minecraft:tnt", - Item::Scute => "minecraft:scute", - Item::ChestMinecart => "minecraft:chest_minecart", - Item::NetheriteAxe => "minecraft:netherite_axe", - Item::DarkOakButton => "minecraft:dark_oak_button", - Item::DiamondBoots => "minecraft:diamond_boots", - Item::TotemOfUndying => "minecraft:totem_of_undying", - Item::GlassPane => "minecraft:glass_pane", - Item::PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", - Item::CobblestoneWall => "minecraft:cobblestone_wall", - Item::MagentaConcretePowder => "minecraft:magenta_concrete_powder", - Item::RedSandstone => "minecraft:red_sandstone", - Item::OrangeConcrete => "minecraft:orange_concrete", - Item::Light => "minecraft:light", - Item::StoneSlab => "minecraft:stone_slab", - Item::String => "minecraft:string", - Item::DragonBreath => "minecraft:dragon_breath", - Item::CrimsonStem => "minecraft:crimson_stem", - } - } - #[doc = "Gets a `Item` by its `namespaced_id`."] - #[inline] - pub fn from_namespaced_id(namespaced_id: &str) -> Option { - match namespaced_id { - "minecraft:deepslate_iron_ore" => Some(Item::DeepslateIronOre), - "minecraft:iron_hoe" => Some(Item::IronHoe), - "minecraft:golden_boots" => Some(Item::GoldenBoots), - "minecraft:bone_block" => Some(Item::BoneBlock), - "minecraft:birch_pressure_plate" => Some(Item::BirchPressurePlate), - "minecraft:crafting_table" => Some(Item::CraftingTable), - "minecraft:iron_horse_armor" => Some(Item::IronHorseArmor), - "minecraft:nether_star" => Some(Item::NetherStar), - "minecraft:nether_quartz_ore" => Some(Item::NetherQuartzOre), - "minecraft:wooden_sword" => Some(Item::WoodenSword), - "minecraft:zombie_head" => Some(Item::ZombieHead), - "minecraft:ravager_spawn_egg" => Some(Item::RavagerSpawnEgg), - "minecraft:chorus_flower" => Some(Item::ChorusFlower), - "minecraft:piglin_banner_pattern" => Some(Item::PiglinBannerPattern), - "minecraft:brown_candle" => Some(Item::BrownCandle), - "minecraft:map" => Some(Item::Map), - "minecraft:birch_trapdoor" => Some(Item::BirchTrapdoor), - "minecraft:vex_spawn_egg" => Some(Item::VexSpawnEgg), - "minecraft:activator_rail" => Some(Item::ActivatorRail), - "minecraft:jungle_planks" => Some(Item::JunglePlanks), - "minecraft:nether_sprouts" => Some(Item::NetherSprouts), - "minecraft:cracked_deepslate_tiles" => Some(Item::CrackedDeepslateTiles), - "minecraft:mossy_stone_brick_stairs" => Some(Item::MossyStoneBrickStairs), - "minecraft:leather_chestplate" => Some(Item::LeatherChestplate), - "minecraft:yellow_stained_glass_pane" => Some(Item::YellowStainedGlassPane), - "minecraft:gray_concrete" => Some(Item::GrayConcrete), - "minecraft:cyan_candle" => Some(Item::CyanCandle), - "minecraft:waxed_cut_copper_slab" => Some(Item::WaxedCutCopperSlab), - "minecraft:black_concrete" => Some(Item::BlackConcrete), - "minecraft:dead_brain_coral" => Some(Item::DeadBrainCoral), - "minecraft:honeycomb" => Some(Item::Honeycomb), - "minecraft:jukebox" => Some(Item::Jukebox), - "minecraft:farmland" => Some(Item::Farmland), - "minecraft:white_terracotta" => Some(Item::WhiteTerracotta), - "minecraft:golden_chestplate" => Some(Item::GoldenChestplate), - "minecraft:cracked_polished_blackstone_bricks" => { - Some(Item::CrackedPolishedBlackstoneBricks) - } - "minecraft:lectern" => Some(Item::Lectern), - "minecraft:red_carpet" => Some(Item::RedCarpet), - "minecraft:prismarine_brick_slab" => Some(Item::PrismarineBrickSlab), - "minecraft:end_stone_brick_wall" => Some(Item::EndStoneBrickWall), - "minecraft:soul_soil" => Some(Item::SoulSoil), - "minecraft:pink_carpet" => Some(Item::PinkCarpet), - "minecraft:charcoal" => Some(Item::Charcoal), - "minecraft:bone" => Some(Item::Bone), - "minecraft:waxed_exposed_cut_copper_stairs" => Some(Item::WaxedExposedCutCopperStairs), - "minecraft:mossy_cobblestone_slab" => Some(Item::MossyCobblestoneSlab), - "minecraft:brewing_stand" => Some(Item::BrewingStand), - "minecraft:red_terracotta" => Some(Item::RedTerracotta), - "minecraft:elytra" => Some(Item::Elytra), - "minecraft:tropical_fish" => Some(Item::TropicalFish), - "minecraft:chainmail_helmet" => Some(Item::ChainmailHelmet), - "minecraft:jigsaw" => Some(Item::Jigsaw), - "minecraft:orange_shulker_box" => Some(Item::OrangeShulkerBox), - "minecraft:dark_oak_pressure_plate" => Some(Item::DarkOakPressurePlate), - "minecraft:deepslate_lapis_ore" => Some(Item::DeepslateLapisOre), - "minecraft:orange_stained_glass_pane" => Some(Item::OrangeStainedGlassPane), - "minecraft:carved_pumpkin" => Some(Item::CarvedPumpkin), - "minecraft:white_shulker_box" => Some(Item::WhiteShulkerBox), - "minecraft:mossy_cobblestone_stairs" => Some(Item::MossyCobblestoneStairs), - "minecraft:deepslate_tiles" => Some(Item::DeepslateTiles), - "minecraft:melon_seeds" => Some(Item::MelonSeeds), - "minecraft:lime_candle" => Some(Item::LimeCandle), - "minecraft:ender_pearl" => Some(Item::EnderPearl), - "minecraft:shroomlight" => Some(Item::Shroomlight), - "minecraft:white_wool" => Some(Item::WhiteWool), - "minecraft:sandstone" => Some(Item::Sandstone), - "minecraft:white_candle" => Some(Item::WhiteCandle), - "minecraft:salmon_bucket" => Some(Item::SalmonBucket), - "minecraft:acacia_leaves" => Some(Item::AcaciaLeaves), - "minecraft:oak_log" => Some(Item::OakLog), - "minecraft:beef" => Some(Item::Beef), - "minecraft:music_disc_blocks" => Some(Item::MusicDiscBlocks), - "minecraft:andesite_stairs" => Some(Item::AndesiteStairs), - "minecraft:end_rod" => Some(Item::EndRod), - "minecraft:end_stone_bricks" => Some(Item::EndStoneBricks), - "minecraft:crimson_door" => Some(Item::CrimsonDoor), - "minecraft:stonecutter" => Some(Item::Stonecutter), - "minecraft:water_bucket" => Some(Item::WaterBucket), - "minecraft:poppy" => Some(Item::Poppy), - "minecraft:stone_brick_wall" => Some(Item::StoneBrickWall), - "minecraft:black_bed" => Some(Item::BlackBed), - "minecraft:prismarine" => Some(Item::Prismarine), - "minecraft:exposed_cut_copper" => Some(Item::ExposedCutCopper), - "minecraft:polished_deepslate_slab" => Some(Item::PolishedDeepslateSlab), - "minecraft:arrow" => Some(Item::Arrow), - "minecraft:green_stained_glass_pane" => Some(Item::GreenStainedGlassPane), - "minecraft:blue_bed" => Some(Item::BlueBed), - "minecraft:stripped_warped_stem" => Some(Item::StrippedWarpedStem), - "minecraft:polished_blackstone" => Some(Item::PolishedBlackstone), - "minecraft:birch_slab" => Some(Item::BirchSlab), - "minecraft:white_concrete_powder" => Some(Item::WhiteConcretePowder), - "minecraft:loom" => Some(Item::Loom), - "minecraft:lily_of_the_valley" => Some(Item::LilyOfTheValley), - "minecraft:diorite_wall" => Some(Item::DioriteWall), - "minecraft:black_glazed_terracotta" => Some(Item::BlackGlazedTerracotta), - "minecraft:rose_bush" => Some(Item::RoseBush), - "minecraft:green_shulker_box" => Some(Item::GreenShulkerBox), - "minecraft:blaze_rod" => Some(Item::BlazeRod), - "minecraft:clock" => Some(Item::Clock), - "minecraft:spruce_leaves" => Some(Item::SpruceLeaves), - "minecraft:light_gray_dye" => Some(Item::LightGrayDye), - "minecraft:mutton" => Some(Item::Mutton), - "minecraft:music_disc_11" => Some(Item::MusicDisc11), - "minecraft:red_mushroom_block" => Some(Item::RedMushroomBlock), - "minecraft:brown_wool" => Some(Item::BrownWool), - "minecraft:cut_copper" => Some(Item::CutCopper), - "minecraft:cartography_table" => Some(Item::CartographyTable), - "minecraft:lily_pad" => Some(Item::LilyPad), - "minecraft:green_carpet" => Some(Item::GreenCarpet), - "minecraft:light_weighted_pressure_plate" => Some(Item::LightWeightedPressurePlate), - "minecraft:dark_oak_sapling" => Some(Item::DarkOakSapling), - "minecraft:magenta_shulker_box" => Some(Item::MagentaShulkerBox), - "minecraft:leather_boots" => Some(Item::LeatherBoots), - "minecraft:deepslate_bricks" => Some(Item::DeepslateBricks), - "minecraft:amethyst_shard" => Some(Item::AmethystShard), - "minecraft:jungle_sign" => Some(Item::JungleSign), - "minecraft:cake" => Some(Item::Cake), - "minecraft:netherite_block" => Some(Item::NetheriteBlock), - "minecraft:light_gray_concrete" => Some(Item::LightGrayConcrete), - "minecraft:dark_oak_wood" => Some(Item::DarkOakWood), - "minecraft:iron_trapdoor" => Some(Item::IronTrapdoor), - "minecraft:dead_tube_coral_block" => Some(Item::DeadTubeCoralBlock), - "minecraft:pink_candle" => Some(Item::PinkCandle), - "minecraft:exposed_copper" => Some(Item::ExposedCopper), - "minecraft:dark_oak_planks" => Some(Item::DarkOakPlanks), - "minecraft:cracked_nether_bricks" => Some(Item::CrackedNetherBricks), - "minecraft:debug_stick" => Some(Item::DebugStick), - "minecraft:polished_deepslate_wall" => Some(Item::PolishedDeepslateWall), - "minecraft:powder_snow_bucket" => Some(Item::PowderSnowBucket), - "minecraft:cyan_bed" => Some(Item::CyanBed), - "minecraft:cat_spawn_egg" => Some(Item::CatSpawnEgg), - "minecraft:flowering_azalea" => Some(Item::FloweringAzalea), - "minecraft:cod" => Some(Item::Cod), - "minecraft:music_disc_chirp" => Some(Item::MusicDiscChirp), - "minecraft:light_blue_terracotta" => Some(Item::LightBlueTerracotta), - "minecraft:pink_banner" => Some(Item::PinkBanner), - "minecraft:light_blue_dye" => Some(Item::LightBlueDye), - "minecraft:purple_dye" => Some(Item::PurpleDye), - "minecraft:command_block" => Some(Item::CommandBlock), - "minecraft:dirt_path" => Some(Item::DirtPath), - "minecraft:stone_button" => Some(Item::StoneButton), - "minecraft:stone_bricks" => Some(Item::StoneBricks), - "minecraft:mushroom_stem" => Some(Item::MushroomStem), - "minecraft:smooth_sandstone" => Some(Item::SmoothSandstone), - "minecraft:strider_spawn_egg" => Some(Item::StriderSpawnEgg), - "minecraft:glass_bottle" => Some(Item::GlassBottle), - "minecraft:skeleton_skull" => Some(Item::SkeletonSkull), - "minecraft:rotten_flesh" => Some(Item::RottenFlesh), - "minecraft:bubble_coral_block" => Some(Item::BubbleCoralBlock), - "minecraft:soul_campfire" => Some(Item::SoulCampfire), - "minecraft:redstone_ore" => Some(Item::RedstoneOre), - "minecraft:yellow_glazed_terracotta" => Some(Item::YellowGlazedTerracotta), - "minecraft:fire_coral_block" => Some(Item::FireCoralBlock), - "minecraft:chorus_plant" => Some(Item::ChorusPlant), - "minecraft:blue_concrete" => Some(Item::BlueConcrete), - "minecraft:raw_copper" => Some(Item::RawCopper), - "minecraft:blackstone" => Some(Item::Blackstone), - "minecraft:purple_candle" => Some(Item::PurpleCandle), - "minecraft:rabbit" => Some(Item::Rabbit), - "minecraft:waxed_exposed_copper" => Some(Item::WaxedExposedCopper), - "minecraft:iron_pickaxe" => Some(Item::IronPickaxe), - "minecraft:granite_wall" => Some(Item::GraniteWall), - "minecraft:zombie_villager_spawn_egg" => Some(Item::ZombieVillagerSpawnEgg), - "minecraft:detector_rail" => Some(Item::DetectorRail), - "minecraft:music_disc_otherside" => Some(Item::MusicDiscOtherside), - "minecraft:spruce_stairs" => Some(Item::SpruceStairs), - "minecraft:nether_brick_stairs" => Some(Item::NetherBrickStairs), - "minecraft:purple_concrete" => Some(Item::PurpleConcrete), - "minecraft:chiseled_sandstone" => Some(Item::ChiseledSandstone), - "minecraft:purple_wool" => Some(Item::PurpleWool), - "minecraft:paper" => Some(Item::Paper), - "minecraft:red_nether_brick_wall" => Some(Item::RedNetherBrickWall), - "minecraft:jungle_button" => Some(Item::JungleButton), - "minecraft:chiseled_nether_bricks" => Some(Item::ChiseledNetherBricks), - "minecraft:glow_ink_sac" => Some(Item::GlowInkSac), - "minecraft:magenta_stained_glass_pane" => Some(Item::MagentaStainedGlassPane), - "minecraft:furnace" => Some(Item::Furnace), - "minecraft:brown_mushroom" => Some(Item::BrownMushroom), - "minecraft:sponge" => Some(Item::Sponge), - "minecraft:stone_pressure_plate" => Some(Item::StonePressurePlate), - "minecraft:netherite_sword" => Some(Item::NetheriteSword), - "minecraft:pumpkin" => Some(Item::Pumpkin), - "minecraft:armor_stand" => Some(Item::ArmorStand), - "minecraft:bat_spawn_egg" => Some(Item::BatSpawnEgg), - "minecraft:dark_oak_slab" => Some(Item::DarkOakSlab), - "minecraft:leather_leggings" => Some(Item::LeatherLeggings), - "minecraft:horse_spawn_egg" => Some(Item::HorseSpawnEgg), - "minecraft:bread" => Some(Item::Bread), - "minecraft:waxed_copper_block" => Some(Item::WaxedCopperBlock), - "minecraft:waxed_cut_copper" => Some(Item::WaxedCutCopper), - "minecraft:waxed_weathered_cut_copper_slab" => Some(Item::WaxedWeatheredCutCopperSlab), - "minecraft:weeping_vines" => Some(Item::WeepingVines), - "minecraft:enchanting_table" => Some(Item::EnchantingTable), - "minecraft:cyan_concrete" => Some(Item::CyanConcrete), - "minecraft:ocelot_spawn_egg" => Some(Item::OcelotSpawnEgg), - "minecraft:beetroot" => Some(Item::Beetroot), - "minecraft:pink_concrete_powder" => Some(Item::PinkConcretePowder), - "minecraft:netherite_boots" => Some(Item::NetheriteBoots), - "minecraft:golden_shovel" => Some(Item::GoldenShovel), - "minecraft:azure_bluet" => Some(Item::AzureBluet), - "minecraft:polished_blackstone_brick_wall" => Some(Item::PolishedBlackstoneBrickWall), - "minecraft:warped_trapdoor" => Some(Item::WarpedTrapdoor), - "minecraft:blue_candle" => Some(Item::BlueCandle), - "minecraft:potion" => Some(Item::Potion), - "minecraft:medium_amethyst_bud" => Some(Item::MediumAmethystBud), - "minecraft:blue_glazed_terracotta" => Some(Item::BlueGlazedTerracotta), - "minecraft:feather" => Some(Item::Feather), - "minecraft:gunpowder" => Some(Item::Gunpowder), - "minecraft:acacia_sign" => Some(Item::AcaciaSign), - "minecraft:ghast_spawn_egg" => Some(Item::GhastSpawnEgg), - "minecraft:tropical_fish_spawn_egg" => Some(Item::TropicalFishSpawnEgg), - "minecraft:polished_blackstone_brick_slab" => Some(Item::PolishedBlackstoneBrickSlab), - "minecraft:oxidized_cut_copper_slab" => Some(Item::OxidizedCutCopperSlab), - "minecraft:dark_oak_fence_gate" => Some(Item::DarkOakFenceGate), - "minecraft:light_blue_glazed_terracotta" => Some(Item::LightBlueGlazedTerracotta), - "minecraft:black_shulker_box" => Some(Item::BlackShulkerBox), - "minecraft:goat_spawn_egg" => Some(Item::GoatSpawnEgg), - "minecraft:brick_wall" => Some(Item::BrickWall), - "minecraft:leather" => Some(Item::Leather), - "minecraft:copper_ore" => Some(Item::CopperOre), - "minecraft:purple_bed" => Some(Item::PurpleBed), - "minecraft:llama_spawn_egg" => Some(Item::LlamaSpawnEgg), - "minecraft:lingering_potion" => Some(Item::LingeringPotion), - "minecraft:suspicious_stew" => Some(Item::SuspiciousStew), - "minecraft:yellow_terracotta" => Some(Item::YellowTerracotta), - "minecraft:chicken_spawn_egg" => Some(Item::ChickenSpawnEgg), - "minecraft:stripped_crimson_stem" => Some(Item::StrippedCrimsonStem), - "minecraft:white_stained_glass_pane" => Some(Item::WhiteStainedGlassPane), - "minecraft:andesite_slab" => Some(Item::AndesiteSlab), - "minecraft:diamond_leggings" => Some(Item::DiamondLeggings), - "minecraft:carrot" => Some(Item::Carrot), - "minecraft:warped_stem" => Some(Item::WarpedStem), - "minecraft:warped_stairs" => Some(Item::WarpedStairs), - "minecraft:light_blue_stained_glass" => Some(Item::LightBlueStainedGlass), - "minecraft:oak_sign" => Some(Item::OakSign), - "minecraft:fletching_table" => Some(Item::FletchingTable), - "minecraft:green_glazed_terracotta" => Some(Item::GreenGlazedTerracotta), - "minecraft:gray_candle" => Some(Item::GrayCandle), - "minecraft:mojang_banner_pattern" => Some(Item::MojangBannerPattern), - "minecraft:dripstone_block" => Some(Item::DripstoneBlock), - "minecraft:waxed_weathered_copper" => Some(Item::WaxedWeatheredCopper), - "minecraft:waxed_oxidized_cut_copper" => Some(Item::WaxedOxidizedCutCopper), - "minecraft:crimson_nylium" => Some(Item::CrimsonNylium), - "minecraft:repeating_command_block" => Some(Item::RepeatingCommandBlock), - "minecraft:oak_button" => Some(Item::OakButton), - "minecraft:orange_tulip" => Some(Item::OrangeTulip), - "minecraft:light_blue_concrete_powder" => Some(Item::LightBlueConcretePowder), - "minecraft:sand" => Some(Item::Sand), - "minecraft:copper_block" => Some(Item::CopperBlock), - "minecraft:gold_ingot" => Some(Item::GoldIngot), - "minecraft:apple" => Some(Item::Apple), - "minecraft:black_candle" => Some(Item::BlackCandle), - "minecraft:cyan_shulker_box" => Some(Item::CyanShulkerBox), - "minecraft:birch_door" => Some(Item::BirchDoor), - "minecraft:stone_sword" => Some(Item::StoneSword), - "minecraft:jungle_slab" => Some(Item::JungleSlab), - "minecraft:purple_concrete_powder" => Some(Item::PurpleConcretePowder), - "minecraft:light_gray_concrete_powder" => Some(Item::LightGrayConcretePowder), - "minecraft:spider_spawn_egg" => Some(Item::SpiderSpawnEgg), - "minecraft:large_amethyst_bud" => Some(Item::LargeAmethystBud), - "minecraft:pink_bed" => Some(Item::PinkBed), - "minecraft:jungle_trapdoor" => Some(Item::JungleTrapdoor), - "minecraft:cave_spider_spawn_egg" => Some(Item::CaveSpiderSpawnEgg), - "minecraft:nether_brick_fence" => Some(Item::NetherBrickFence), - "minecraft:pig_spawn_egg" => Some(Item::PigSpawnEgg), - "minecraft:birch_wood" => Some(Item::BirchWood), - "minecraft:jungle_stairs" => Some(Item::JungleStairs), - "minecraft:beehive" => Some(Item::Beehive), - "minecraft:red_sandstone_stairs" => Some(Item::RedSandstoneStairs), - "minecraft:villager_spawn_egg" => Some(Item::VillagerSpawnEgg), - "minecraft:cut_sandstone_slab" => Some(Item::CutSandstoneSlab), - "minecraft:warped_fungus" => Some(Item::WarpedFungus), - "minecraft:slime_spawn_egg" => Some(Item::SlimeSpawnEgg), - "minecraft:spruce_wood" => Some(Item::SpruceWood), - "minecraft:deepslate" => Some(Item::Deepslate), - "minecraft:yellow_shulker_box" => Some(Item::YellowShulkerBox), - "minecraft:dark_prismarine_stairs" => Some(Item::DarkPrismarineStairs), - "minecraft:hopper_minecart" => Some(Item::HopperMinecart), - "minecraft:dead_bubble_coral_block" => Some(Item::DeadBubbleCoralBlock), - "minecraft:raw_copper_block" => Some(Item::RawCopperBlock), - "minecraft:flint" => Some(Item::Flint), - "minecraft:smooth_quartz_slab" => Some(Item::SmoothQuartzSlab), - "minecraft:structure_block" => Some(Item::StructureBlock), - "minecraft:iron_sword" => Some(Item::IronSword), - "minecraft:compass" => Some(Item::Compass), - "minecraft:golden_hoe" => Some(Item::GoldenHoe), - "minecraft:peony" => Some(Item::Peony), - "minecraft:netherite_chestplate" => Some(Item::NetheriteChestplate), - "minecraft:iron_block" => Some(Item::IronBlock), - "minecraft:crimson_trapdoor" => Some(Item::CrimsonTrapdoor), - "minecraft:globe_banner_pattern" => Some(Item::GlobeBannerPattern), - "minecraft:light_gray_terracotta" => Some(Item::LightGrayTerracotta), - "minecraft:mossy_stone_bricks" => Some(Item::MossyStoneBricks), - "minecraft:light_gray_bed" => Some(Item::LightGrayBed), - "minecraft:sticky_piston" => Some(Item::StickyPiston), - "minecraft:cyan_stained_glass_pane" => Some(Item::CyanStainedGlassPane), - "minecraft:polished_deepslate_stairs" => Some(Item::PolishedDeepslateStairs), - "minecraft:spruce_pressure_plate" => Some(Item::SprucePressurePlate), - "minecraft:cooked_salmon" => Some(Item::CookedSalmon), - "minecraft:granite" => Some(Item::Granite), - "minecraft:red_mushroom" => Some(Item::RedMushroom), - "minecraft:end_stone" => Some(Item::EndStone), - "minecraft:nether_brick" => Some(Item::NetherBrick), - "minecraft:crimson_button" => Some(Item::CrimsonButton), - "minecraft:dried_kelp" => Some(Item::DriedKelp), - "minecraft:sugar_cane" => Some(Item::SugarCane), - "minecraft:fire_coral_fan" => Some(Item::FireCoralFan), - "minecraft:blue_shulker_box" => Some(Item::BlueShulkerBox), - "minecraft:creeper_head" => Some(Item::CreeperHead), - "minecraft:smithing_table" => Some(Item::SmithingTable), - "minecraft:azalea" => Some(Item::Azalea), - "minecraft:fermented_spider_eye" => Some(Item::FermentedSpiderEye), - "minecraft:birch_boat" => Some(Item::BirchBoat), - "minecraft:deepslate_tile_wall" => Some(Item::DeepslateTileWall), - "minecraft:stone_hoe" => Some(Item::StoneHoe), - "minecraft:gray_stained_glass_pane" => Some(Item::GrayStainedGlassPane), - "minecraft:diamond_helmet" => Some(Item::DiamondHelmet), - "minecraft:dead_brain_coral_block" => Some(Item::DeadBrainCoralBlock), - "minecraft:cut_sandstone" => Some(Item::CutSandstone), - "minecraft:slime_ball" => Some(Item::SlimeBall), - "minecraft:gilded_blackstone" => Some(Item::GildedBlackstone), - "minecraft:witch_spawn_egg" => Some(Item::WitchSpawnEgg), - "minecraft:blackstone_wall" => Some(Item::BlackstoneWall), - "minecraft:fire_coral" => Some(Item::FireCoral), - "minecraft:redstone" => Some(Item::Redstone), - "minecraft:written_book" => Some(Item::WrittenBook), - "minecraft:waxed_cut_copper_stairs" => Some(Item::WaxedCutCopperStairs), - "minecraft:granite_slab" => Some(Item::GraniteSlab), - "minecraft:scaffolding" => Some(Item::Scaffolding), - "minecraft:lime_dye" => Some(Item::LimeDye), - "minecraft:polished_blackstone_button" => Some(Item::PolishedBlackstoneButton), - "minecraft:dead_bubble_coral_fan" => Some(Item::DeadBubbleCoralFan), - "minecraft:glowstone" => Some(Item::Glowstone), - "minecraft:horn_coral" => Some(Item::HornCoral), - "minecraft:squid_spawn_egg" => Some(Item::SquidSpawnEgg), - "minecraft:yellow_carpet" => Some(Item::YellowCarpet), - "minecraft:lapis_lazuli" => Some(Item::LapisLazuli), - "minecraft:warped_wart_block" => Some(Item::WarpedWartBlock), - "minecraft:smooth_quartz" => Some(Item::SmoothQuartz), - "minecraft:cobbled_deepslate" => Some(Item::CobbledDeepslate), - "minecraft:tripwire_hook" => Some(Item::TripwireHook), - "minecraft:dropper" => Some(Item::Dropper), - "minecraft:magenta_glazed_terracotta" => Some(Item::MagentaGlazedTerracotta), - "minecraft:soul_sand" => Some(Item::SoulSand), - "minecraft:potato" => Some(Item::Potato), - "minecraft:magma_cream" => Some(Item::MagmaCream), - "minecraft:cow_spawn_egg" => Some(Item::CowSpawnEgg), - "minecraft:trapped_chest" => Some(Item::TrappedChest), - "minecraft:jungle_fence_gate" => Some(Item::JungleFenceGate), - "minecraft:golden_apple" => Some(Item::GoldenApple), - "minecraft:dark_oak_fence" => Some(Item::DarkOakFence), - "minecraft:dead_horn_coral" => Some(Item::DeadHornCoral), - "minecraft:dark_oak_leaves" => Some(Item::DarkOakLeaves), - "minecraft:dead_fire_coral" => Some(Item::DeadFireCoral), - "minecraft:iron_shovel" => Some(Item::IronShovel), - "minecraft:enchanted_book" => Some(Item::EnchantedBook), - "minecraft:white_tulip" => Some(Item::WhiteTulip), - "minecraft:acacia_button" => Some(Item::AcaciaButton), - "minecraft:emerald" => Some(Item::Emerald), - "minecraft:sandstone_slab" => Some(Item::SandstoneSlab), - "minecraft:iron_door" => Some(Item::IronDoor), - "minecraft:raw_iron" => Some(Item::RawIron), - "minecraft:lapis_block" => Some(Item::LapisBlock), - "minecraft:big_dripleaf" => Some(Item::BigDripleaf), - "minecraft:blue_concrete_powder" => Some(Item::BlueConcretePowder), - "minecraft:barrel" => Some(Item::Barrel), - "minecraft:magenta_stained_glass" => Some(Item::MagentaStainedGlass), - "minecraft:brown_concrete" => Some(Item::BrownConcrete), - "minecraft:pink_tulip" => Some(Item::PinkTulip), - "minecraft:gray_banner" => Some(Item::GrayBanner), - "minecraft:bedrock" => Some(Item::Bedrock), - "minecraft:dead_fire_coral_block" => Some(Item::DeadFireCoralBlock), - "minecraft:anvil" => Some(Item::Anvil), - "minecraft:stone_pickaxe" => Some(Item::StonePickaxe), - "minecraft:leather_helmet" => Some(Item::LeatherHelmet), - "minecraft:porkchop" => Some(Item::Porkchop), - "minecraft:stone_brick_slab" => Some(Item::StoneBrickSlab), - "minecraft:orange_candle" => Some(Item::OrangeCandle), - "minecraft:blue_wool" => Some(Item::BlueWool), - "minecraft:moss_carpet" => Some(Item::MossCarpet), - "minecraft:silverfish_spawn_egg" => Some(Item::SilverfishSpawnEgg), - "minecraft:spectral_arrow" => Some(Item::SpectralArrow), - "minecraft:cooked_rabbit" => Some(Item::CookedRabbit), - "minecraft:iron_chestplate" => Some(Item::IronChestplate), - "minecraft:gray_concrete_powder" => Some(Item::GrayConcretePowder), - "minecraft:warped_planks" => Some(Item::WarpedPlanks), - "minecraft:dead_tube_coral" => Some(Item::DeadTubeCoral), - "minecraft:drowned_spawn_egg" => Some(Item::DrownedSpawnEgg), - "minecraft:splash_potion" => Some(Item::SplashPotion), - "minecraft:wooden_shovel" => Some(Item::WoodenShovel), - "minecraft:warped_roots" => Some(Item::WarpedRoots), - "minecraft:quartz_pillar" => Some(Item::QuartzPillar), - "minecraft:glistering_melon_slice" => Some(Item::GlisteringMelonSlice), - "minecraft:crimson_stairs" => Some(Item::CrimsonStairs), - "minecraft:obsidian" => Some(Item::Obsidian), - "minecraft:red_candle" => Some(Item::RedCandle), - "minecraft:soul_torch" => Some(Item::SoulTorch), - "minecraft:ghast_tear" => Some(Item::GhastTear), - "minecraft:diamond" => Some(Item::Diamond), - "minecraft:end_stone_brick_slab" => Some(Item::EndStoneBrickSlab), - "minecraft:gray_glazed_terracotta" => Some(Item::GrayGlazedTerracotta), - "minecraft:oak_trapdoor" => Some(Item::OakTrapdoor), - "minecraft:lime_banner" => Some(Item::LimeBanner), - "minecraft:dark_oak_trapdoor" => Some(Item::DarkOakTrapdoor), - "minecraft:oak_sapling" => Some(Item::OakSapling), - "minecraft:pufferfish_bucket" => Some(Item::PufferfishBucket), - "minecraft:clay" => Some(Item::Clay), - "minecraft:cyan_concrete_powder" => Some(Item::CyanConcretePowder), - "minecraft:gravel" => Some(Item::Gravel), - "minecraft:yellow_stained_glass" => Some(Item::YellowStainedGlass), - "minecraft:gray_wool" => Some(Item::GrayWool), - "minecraft:blue_ice" => Some(Item::BlueIce), - "minecraft:stripped_dark_oak_log" => Some(Item::StrippedDarkOakLog), - "minecraft:fern" => Some(Item::Fern), - "minecraft:milk_bucket" => Some(Item::MilkBucket), - "minecraft:brain_coral_block" => Some(Item::BrainCoralBlock), - "minecraft:orange_banner" => Some(Item::OrangeBanner), - "minecraft:filled_map" => Some(Item::FilledMap), - "minecraft:red_nether_brick_slab" => Some(Item::RedNetherBrickSlab), - "minecraft:polished_granite_stairs" => Some(Item::PolishedGraniteStairs), - "minecraft:chainmail_boots" => Some(Item::ChainmailBoots), - "minecraft:oak_door" => Some(Item::OakDoor), - "minecraft:sheep_spawn_egg" => Some(Item::SheepSpawnEgg), - "minecraft:oak_wood" => Some(Item::OakWood), - "minecraft:shield" => Some(Item::Shield), - "minecraft:blast_furnace" => Some(Item::BlastFurnace), - "minecraft:red_stained_glass_pane" => Some(Item::RedStainedGlassPane), - "minecraft:spyglass" => Some(Item::Spyglass), - "minecraft:wandering_trader_spawn_egg" => Some(Item::WanderingTraderSpawnEgg), - "minecraft:repeater" => Some(Item::Repeater), - "minecraft:ladder" => Some(Item::Ladder), - "minecraft:horn_coral_fan" => Some(Item::HornCoralFan), - "minecraft:white_concrete" => Some(Item::WhiteConcrete), - "minecraft:spruce_planks" => Some(Item::SprucePlanks), - "minecraft:purpur_pillar" => Some(Item::PurpurPillar), - "minecraft:blackstone_slab" => Some(Item::BlackstoneSlab), - "minecraft:dark_oak_door" => Some(Item::DarkOakDoor), - "minecraft:seagrass" => Some(Item::Seagrass), - "minecraft:deepslate_brick_slab" => Some(Item::DeepslateBrickSlab), - "minecraft:cut_copper_stairs" => Some(Item::CutCopperStairs), - "minecraft:stone_stairs" => Some(Item::StoneStairs), - "minecraft:diorite_slab" => Some(Item::DioriteSlab), - "minecraft:polished_blackstone_brick_stairs" => { - Some(Item::PolishedBlackstoneBrickStairs) - } - "minecraft:andesite_wall" => Some(Item::AndesiteWall), - "minecraft:pink_dye" => Some(Item::PinkDye), - "minecraft:phantom_spawn_egg" => Some(Item::PhantomSpawnEgg), - "minecraft:lime_stained_glass" => Some(Item::LimeStainedGlass), - "minecraft:skeleton_horse_spawn_egg" => Some(Item::SkeletonHorseSpawnEgg), - "minecraft:spruce_fence_gate" => Some(Item::SpruceFenceGate), - "minecraft:bamboo" => Some(Item::Bamboo), - "minecraft:dark_oak_stairs" => Some(Item::DarkOakStairs), - "minecraft:light_blue_banner" => Some(Item::LightBlueBanner), - "minecraft:conduit" => Some(Item::Conduit), - "minecraft:purple_carpet" => Some(Item::PurpleCarpet), - "minecraft:cornflower" => Some(Item::Cornflower), - "minecraft:wheat_seeds" => Some(Item::WheatSeeds), - "minecraft:music_disc_mellohi" => Some(Item::MusicDiscMellohi), - "minecraft:smoker" => Some(Item::Smoker), - "minecraft:mossy_cobblestone" => Some(Item::MossyCobblestone), - "minecraft:waxed_weathered_cut_copper" => Some(Item::WaxedWeatheredCutCopper), - "minecraft:netherrack" => Some(Item::Netherrack), - "minecraft:brown_terracotta" => Some(Item::BrownTerracotta), - "minecraft:piston" => Some(Item::Piston), - "minecraft:chorus_fruit" => Some(Item::ChorusFruit), - "minecraft:redstone_lamp" => Some(Item::RedstoneLamp), - "minecraft:acacia_pressure_plate" => Some(Item::AcaciaPressurePlate), - "minecraft:purple_banner" => Some(Item::PurpleBanner), - "minecraft:light_blue_carpet" => Some(Item::LightBlueCarpet), - "minecraft:cyan_wool" => Some(Item::CyanWool), - "minecraft:cocoa_beans" => Some(Item::CocoaBeans), - "minecraft:brown_stained_glass_pane" => Some(Item::BrownStainedGlassPane), - "minecraft:cod_spawn_egg" => Some(Item::CodSpawnEgg), - "minecraft:crimson_fence" => Some(Item::CrimsonFence), - "minecraft:leather_horse_armor" => Some(Item::LeatherHorseArmor), - "minecraft:andesite" => Some(Item::Andesite), - "minecraft:oak_slab" => Some(Item::OakSlab), - "minecraft:wither_skeleton_skull" => Some(Item::WitherSkeletonSkull), - "minecraft:hay_block" => Some(Item::HayBlock), - "minecraft:brown_glazed_terracotta" => Some(Item::BrownGlazedTerracotta), - "minecraft:pink_wool" => Some(Item::PinkWool), - "minecraft:ink_sac" => Some(Item::InkSac), - "minecraft:acacia_planks" => Some(Item::AcaciaPlanks), - "minecraft:end_portal_frame" => Some(Item::EndPortalFrame), - "minecraft:cookie" => Some(Item::Cookie), - "minecraft:cracked_deepslate_bricks" => Some(Item::CrackedDeepslateBricks), - "minecraft:firework_star" => Some(Item::FireworkStar), - "minecraft:light_blue_candle" => Some(Item::LightBlueCandle), - "minecraft:nether_gold_ore" => Some(Item::NetherGoldOre), - "minecraft:cut_red_sandstone" => Some(Item::CutRedSandstone), - "minecraft:cobbled_deepslate_slab" => Some(Item::CobbledDeepslateSlab), - "minecraft:crimson_fence_gate" => Some(Item::CrimsonFenceGate), - "minecraft:deepslate_brick_stairs" => Some(Item::DeepslateBrickStairs), - "minecraft:jungle_boat" => Some(Item::JungleBoat), - "minecraft:structure_void" => Some(Item::StructureVoid), - "minecraft:pink_glazed_terracotta" => Some(Item::PinkGlazedTerracotta), - "minecraft:diorite_stairs" => Some(Item::DioriteStairs), - "minecraft:weathered_cut_copper_slab" => Some(Item::WeatheredCutCopperSlab), - "minecraft:magenta_carpet" => Some(Item::MagentaCarpet), - "minecraft:waxed_oxidized_cut_copper_slab" => Some(Item::WaxedOxidizedCutCopperSlab), - "minecraft:purple_stained_glass" => Some(Item::PurpleStainedGlass), - "minecraft:lime_shulker_box" => Some(Item::LimeShulkerBox), - "minecraft:black_concrete_powder" => Some(Item::BlackConcretePowder), - "minecraft:rail" => Some(Item::Rail), - "minecraft:dried_kelp_block" => Some(Item::DriedKelpBlock), - "minecraft:acacia_log" => Some(Item::AcaciaLog), - "minecraft:chiseled_quartz_block" => Some(Item::ChiseledQuartzBlock), - "minecraft:piglin_brute_spawn_egg" => Some(Item::PiglinBruteSpawnEgg), - "minecraft:deepslate_coal_ore" => Some(Item::DeepslateCoalOre), - "minecraft:player_head" => Some(Item::PlayerHead), - "minecraft:chiseled_stone_bricks" => Some(Item::ChiseledStoneBricks), - "minecraft:acacia_sapling" => Some(Item::AcaciaSapling), - "minecraft:brown_carpet" => Some(Item::BrownCarpet), - "minecraft:cobblestone_stairs" => Some(Item::CobblestoneStairs), - "minecraft:beacon" => Some(Item::Beacon), - "minecraft:cobbled_deepslate_wall" => Some(Item::CobbledDeepslateWall), - "minecraft:infested_cobblestone" => Some(Item::InfestedCobblestone), - "minecraft:warped_pressure_plate" => Some(Item::WarpedPressurePlate), - "minecraft:netherite_pickaxe" => Some(Item::NetheritePickaxe), - "minecraft:endermite_spawn_egg" => Some(Item::EndermiteSpawnEgg), - "minecraft:oak_fence" => Some(Item::OakFence), - "minecraft:brown_bed" => Some(Item::BrownBed), - "minecraft:stripped_warped_hyphae" => Some(Item::StrippedWarpedHyphae), - "minecraft:waxed_exposed_cut_copper" => Some(Item::WaxedExposedCutCopper), - "minecraft:red_nether_bricks" => Some(Item::RedNetherBricks), - "minecraft:red_wool" => Some(Item::RedWool), - "minecraft:polished_andesite_slab" => Some(Item::PolishedAndesiteSlab), - "minecraft:nether_wart" => Some(Item::NetherWart), - "minecraft:yellow_wool" => Some(Item::YellowWool), - "minecraft:black_carpet" => Some(Item::BlackCarpet), - "minecraft:emerald_block" => Some(Item::EmeraldBlock), - "minecraft:light_gray_wool" => Some(Item::LightGrayWool), - "minecraft:infested_deepslate" => Some(Item::InfestedDeepslate), - "minecraft:smooth_sandstone_slab" => Some(Item::SmoothSandstoneSlab), - "minecraft:acacia_trapdoor" => Some(Item::AcaciaTrapdoor), - "minecraft:brown_dye" => Some(Item::BrownDye), - "minecraft:emerald_ore" => Some(Item::EmeraldOre), - "minecraft:nautilus_shell" => Some(Item::NautilusShell), - "minecraft:tuff" => Some(Item::Tuff), - "minecraft:chest" => Some(Item::Chest), - "minecraft:snow" => Some(Item::Snow), - "minecraft:twisting_vines" => Some(Item::TwistingVines), - "minecraft:gray_dye" => Some(Item::GrayDye), - "minecraft:smooth_red_sandstone" => Some(Item::SmoothRedSandstone), - "minecraft:rooted_dirt" => Some(Item::RootedDirt), - "minecraft:raw_iron_block" => Some(Item::RawIronBlock), - "minecraft:painting" => Some(Item::Painting), - "minecraft:shulker_spawn_egg" => Some(Item::ShulkerSpawnEgg), - "minecraft:flint_and_steel" => Some(Item::FlintAndSteel), - "minecraft:orange_stained_glass" => Some(Item::OrangeStainedGlass), - "minecraft:amethyst_block" => Some(Item::AmethystBlock), - "minecraft:chiseled_red_sandstone" => Some(Item::ChiseledRedSandstone), - "minecraft:lime_concrete" => Some(Item::LimeConcrete), - "minecraft:spruce_trapdoor" => Some(Item::SpruceTrapdoor), - "minecraft:ancient_debris" => Some(Item::AncientDebris), - "minecraft:light_gray_stained_glass_pane" => Some(Item::LightGrayStainedGlassPane), - "minecraft:redstone_block" => Some(Item::RedstoneBlock), - "minecraft:piglin_spawn_egg" => Some(Item::PiglinSpawnEgg), - "minecraft:name_tag" => Some(Item::NameTag), - "minecraft:smooth_red_sandstone_slab" => Some(Item::SmoothRedSandstoneSlab), - "minecraft:warped_sign" => Some(Item::WarpedSign), - "minecraft:crossbow" => Some(Item::Crossbow), - "minecraft:axolotl_spawn_egg" => Some(Item::AxolotlSpawnEgg), - "minecraft:netherite_helmet" => Some(Item::NetheriteHelmet), - "minecraft:golden_axe" => Some(Item::GoldenAxe), - "minecraft:music_disc_cat" => Some(Item::MusicDiscCat), - "minecraft:diorite" => Some(Item::Diorite), - "minecraft:warped_slab" => Some(Item::WarpedSlab), - "minecraft:nether_brick_slab" => Some(Item::NetherBrickSlab), - "minecraft:smooth_sandstone_stairs" => Some(Item::SmoothSandstoneStairs), - "minecraft:netherite_ingot" => Some(Item::NetheriteIngot), - "minecraft:hanging_roots" => Some(Item::HangingRoots), - "minecraft:dead_horn_coral_block" => Some(Item::DeadHornCoralBlock), - "minecraft:zoglin_spawn_egg" => Some(Item::ZoglinSpawnEgg), - "minecraft:diamond_block" => Some(Item::DiamondBlock), - "minecraft:stripped_birch_wood" => Some(Item::StrippedBirchWood), - "minecraft:orange_glazed_terracotta" => Some(Item::OrangeGlazedTerracotta), - "minecraft:netherite_leggings" => Some(Item::NetheriteLeggings), - "minecraft:diamond_shovel" => Some(Item::DiamondShovel), - "minecraft:trident" => Some(Item::Trident), - "minecraft:birch_fence" => Some(Item::BirchFence), - "minecraft:wet_sponge" => Some(Item::WetSponge), - "minecraft:rabbit_hide" => Some(Item::RabbitHide), - "minecraft:infested_stone_bricks" => Some(Item::InfestedStoneBricks), - "minecraft:magenta_terracotta" => Some(Item::MagentaTerracotta), - "minecraft:weathered_copper" => Some(Item::WeatheredCopper), - "minecraft:gray_carpet" => Some(Item::GrayCarpet), - "minecraft:jungle_leaves" => Some(Item::JungleLeaves), - "minecraft:blue_orchid" => Some(Item::BlueOrchid), - "minecraft:spawner" => Some(Item::Spawner), - "minecraft:cyan_glazed_terracotta" => Some(Item::CyanGlazedTerracotta), - "minecraft:cooked_porkchop" => Some(Item::CookedPorkchop), - "minecraft:husk_spawn_egg" => Some(Item::HuskSpawnEgg), - "minecraft:skeleton_spawn_egg" => Some(Item::SkeletonSpawnEgg), - "minecraft:golden_horse_armor" => Some(Item::GoldenHorseArmor), - "minecraft:orange_wool" => Some(Item::OrangeWool), - "minecraft:heart_of_the_sea" => Some(Item::HeartOfTheSea), - "minecraft:spruce_log" => Some(Item::SpruceLog), - "minecraft:cobblestone_slab" => Some(Item::CobblestoneSlab), - "minecraft:bone_meal" => Some(Item::BoneMeal), - "minecraft:netherite_scrap" => Some(Item::NetheriteScrap), - "minecraft:music_disc_wait" => Some(Item::MusicDiscWait), - "minecraft:lime_wool" => Some(Item::LimeWool), - "minecraft:raw_gold_block" => Some(Item::RawGoldBlock), - "minecraft:light_blue_stained_glass_pane" => Some(Item::LightBlueStainedGlassPane), - "minecraft:oak_pressure_plate" => Some(Item::OakPressurePlate), - "minecraft:wooden_pickaxe" => Some(Item::WoodenPickaxe), - "minecraft:enchanted_golden_apple" => Some(Item::EnchantedGoldenApple), - "minecraft:sweet_berries" => Some(Item::SweetBerries), - "minecraft:red_dye" => Some(Item::RedDye), - "minecraft:prismarine_brick_stairs" => Some(Item::PrismarineBrickStairs), - "minecraft:cut_red_sandstone_slab" => Some(Item::CutRedSandstoneSlab), - "minecraft:gold_block" => Some(Item::GoldBlock), - "minecraft:iron_helmet" => Some(Item::IronHelmet), - "minecraft:glow_lichen" => Some(Item::GlowLichen), - "minecraft:mossy_stone_brick_wall" => Some(Item::MossyStoneBrickWall), - "minecraft:stripped_birch_log" => Some(Item::StrippedBirchLog), - "minecraft:chainmail_chestplate" => Some(Item::ChainmailChestplate), - "minecraft:pumpkin_seeds" => Some(Item::PumpkinSeeds), - "minecraft:iron_axe" => Some(Item::IronAxe), - "minecraft:cut_copper_slab" => Some(Item::CutCopperSlab), - "minecraft:baked_potato" => Some(Item::BakedPotato), - "minecraft:diamond_sword" => Some(Item::DiamondSword), - "minecraft:bubble_coral" => Some(Item::BubbleCoral), - "minecraft:red_nether_brick_stairs" => Some(Item::RedNetherBrickStairs), - "minecraft:wooden_hoe" => Some(Item::WoodenHoe), - "minecraft:lantern" => Some(Item::Lantern), - "minecraft:dragon_egg" => Some(Item::DragonEgg), - "minecraft:exposed_cut_copper_slab" => Some(Item::ExposedCutCopperSlab), - "minecraft:magenta_concrete" => Some(Item::MagentaConcrete), - "minecraft:axolotl_bucket" => Some(Item::AxolotlBucket), - "minecraft:mule_spawn_egg" => Some(Item::MuleSpawnEgg), - "minecraft:pumpkin_pie" => Some(Item::PumpkinPie), - "minecraft:infested_stone" => Some(Item::InfestedStone), - "minecraft:magma_cube_spawn_egg" => Some(Item::MagmaCubeSpawnEgg), - "minecraft:tube_coral_block" => Some(Item::TubeCoralBlock), - "minecraft:blue_banner" => Some(Item::BlueBanner), - "minecraft:coal_block" => Some(Item::CoalBlock), - "minecraft:stripped_acacia_wood" => Some(Item::StrippedAcaciaWood), - "minecraft:beetroot_soup" => Some(Item::BeetrootSoup), - "minecraft:barrier" => Some(Item::Barrier), - "minecraft:end_crystal" => Some(Item::EndCrystal), - "minecraft:mycelium" => Some(Item::Mycelium), - "minecraft:spore_blossom" => Some(Item::SporeBlossom), - "minecraft:wheat" => Some(Item::Wheat), - "minecraft:prismarine_stairs" => Some(Item::PrismarineStairs), - "minecraft:purple_terracotta" => Some(Item::PurpleTerracotta), - "minecraft:tropical_fish_bucket" => Some(Item::TropicalFishBucket), - "minecraft:lever" => Some(Item::Lever), - "minecraft:orange_dye" => Some(Item::OrangeDye), - "minecraft:green_bed" => Some(Item::GreenBed), - "minecraft:polished_blackstone_bricks" => Some(Item::PolishedBlackstoneBricks), - "minecraft:red_concrete_powder" => Some(Item::RedConcretePowder), - "minecraft:music_disc_stal" => Some(Item::MusicDiscStal), - "minecraft:crimson_hyphae" => Some(Item::CrimsonHyphae), - "minecraft:flowering_azalea_leaves" => Some(Item::FloweringAzaleaLeaves), - "minecraft:polished_blackstone_wall" => Some(Item::PolishedBlackstoneWall), - "minecraft:polished_diorite_stairs" => Some(Item::PolishedDioriteStairs), - "minecraft:black_stained_glass" => Some(Item::BlackStainedGlass), - "minecraft:green_wool" => Some(Item::GreenWool), - "minecraft:acacia_stairs" => Some(Item::AcaciaStairs), - "minecraft:chain" => Some(Item::Chain), - "minecraft:light_blue_wool" => Some(Item::LightBlueWool), - "minecraft:black_stained_glass_pane" => Some(Item::BlackStainedGlassPane), - "minecraft:candle" => Some(Item::Candle), - "minecraft:chipped_anvil" => Some(Item::ChippedAnvil), - "minecraft:lava_bucket" => Some(Item::LavaBucket), - "minecraft:salmon_spawn_egg" => Some(Item::SalmonSpawnEgg), - "minecraft:stick" => Some(Item::Stick), - "minecraft:dirt" => Some(Item::Dirt), - "minecraft:cyan_stained_glass" => Some(Item::CyanStainedGlass), - "minecraft:stripped_jungle_wood" => Some(Item::StrippedJungleWood), - "minecraft:crimson_roots" => Some(Item::CrimsonRoots), - "minecraft:sea_lantern" => Some(Item::SeaLantern), - "minecraft:heavy_weighted_pressure_plate" => Some(Item::HeavyWeightedPressurePlate), - "minecraft:white_dye" => Some(Item::WhiteDye), - "minecraft:green_dye" => Some(Item::GreenDye), - "minecraft:jungle_wood" => Some(Item::JungleWood), - "minecraft:bee_nest" => Some(Item::BeeNest), - "minecraft:dark_prismarine" => Some(Item::DarkPrismarine), - "minecraft:dark_prismarine_slab" => Some(Item::DarkPrismarineSlab), - "minecraft:chainmail_leggings" => Some(Item::ChainmailLeggings), - "minecraft:tnt_minecart" => Some(Item::TntMinecart), - "minecraft:dark_oak_boat" => Some(Item::DarkOakBoat), - "minecraft:iron_bars" => Some(Item::IronBars), - "minecraft:lilac" => Some(Item::Lilac), - "minecraft:cyan_banner" => Some(Item::CyanBanner), - "minecraft:yellow_concrete" => Some(Item::YellowConcrete), - "minecraft:light_gray_stained_glass" => Some(Item::LightGrayStainedGlass), - "minecraft:cobblestone" => Some(Item::Cobblestone), - "minecraft:grass_block" => Some(Item::GrassBlock), - "minecraft:waxed_oxidized_cut_copper_stairs" => { - Some(Item::WaxedOxidizedCutCopperStairs) - } - "minecraft:gray_stained_glass" => Some(Item::GrayStainedGlass), - "minecraft:black_wool" => Some(Item::BlackWool), - "minecraft:blaze_spawn_egg" => Some(Item::BlazeSpawnEgg), - "minecraft:birch_sign" => Some(Item::BirchSign), - "minecraft:infested_cracked_stone_bricks" => Some(Item::InfestedCrackedStoneBricks), - "minecraft:music_disc_strad" => Some(Item::MusicDiscStrad), - "minecraft:brown_mushroom_block" => Some(Item::BrownMushroomBlock), - "minecraft:brown_stained_glass" => Some(Item::BrownStainedGlass), - "minecraft:beetroot_seeds" => Some(Item::BeetrootSeeds), - "minecraft:stripped_oak_log" => Some(Item::StrippedOakLog), - "minecraft:purpur_stairs" => Some(Item::PurpurStairs), - "minecraft:glowstone_dust" => Some(Item::GlowstoneDust), - "minecraft:smooth_quartz_stairs" => Some(Item::SmoothQuartzStairs), - "minecraft:stone" => Some(Item::Stone), - "minecraft:sandstone_wall" => Some(Item::SandstoneWall), - "minecraft:turtle_spawn_egg" => Some(Item::TurtleSpawnEgg), - "minecraft:dark_oak_log" => Some(Item::DarkOakLog), - "minecraft:clay_ball" => Some(Item::ClayBall), - "minecraft:crimson_slab" => Some(Item::CrimsonSlab), - "minecraft:warped_door" => Some(Item::WarpedDoor), - "minecraft:stone_shovel" => Some(Item::StoneShovel), - "minecraft:shulker_box" => Some(Item::ShulkerBox), - "minecraft:egg" => Some(Item::Egg), - "minecraft:moss_block" => Some(Item::MossBlock), - "minecraft:white_glazed_terracotta" => Some(Item::WhiteGlazedTerracotta), - "minecraft:end_stone_brick_stairs" => Some(Item::EndStoneBrickStairs), - "minecraft:poisonous_potato" => Some(Item::PoisonousPotato), - "minecraft:red_tulip" => Some(Item::RedTulip), - "minecraft:polished_basalt" => Some(Item::PolishedBasalt), - "minecraft:blackstone_stairs" => Some(Item::BlackstoneStairs), - "minecraft:snow_block" => Some(Item::SnowBlock), - "minecraft:ice" => Some(Item::Ice), - "minecraft:weathered_cut_copper_stairs" => Some(Item::WeatheredCutCopperStairs), - "minecraft:diamond_horse_armor" => Some(Item::DiamondHorseArmor), - "minecraft:birch_log" => Some(Item::BirchLog), - "minecraft:infested_mossy_stone_bricks" => Some(Item::InfestedMossyStoneBricks), - "minecraft:orange_terracotta" => Some(Item::OrangeTerracotta), - "minecraft:pink_terracotta" => Some(Item::PinkTerracotta), - "minecraft:composter" => Some(Item::Composter), - "minecraft:iron_leggings" => Some(Item::IronLeggings), - "minecraft:magenta_wool" => Some(Item::MagentaWool), - "minecraft:golden_helmet" => Some(Item::GoldenHelmet), - "minecraft:lime_bed" => Some(Item::LimeBed), - "minecraft:chain_command_block" => Some(Item::ChainCommandBlock), - "minecraft:podzol" => Some(Item::Podzol), - "minecraft:hopper" => Some(Item::Hopper), - "minecraft:copper_ingot" => Some(Item::CopperIngot), - "minecraft:slime_block" => Some(Item::SlimeBlock), - "minecraft:trader_llama_spawn_egg" => Some(Item::TraderLlamaSpawnEgg), - "minecraft:light_blue_concrete" => Some(Item::LightBlueConcrete), - "minecraft:glow_squid_spawn_egg" => Some(Item::GlowSquidSpawnEgg), - "minecraft:polished_diorite" => Some(Item::PolishedDiorite), - "minecraft:melon" => Some(Item::Melon), - "minecraft:white_bed" => Some(Item::WhiteBed), - "minecraft:petrified_oak_slab" => Some(Item::PetrifiedOakSlab), - "minecraft:crimson_sign" => Some(Item::CrimsonSign), - "minecraft:prismarine_slab" => Some(Item::PrismarineSlab), - "minecraft:light_gray_banner" => Some(Item::LightGrayBanner), - "minecraft:crimson_fungus" => Some(Item::CrimsonFungus), - "minecraft:rabbit_spawn_egg" => Some(Item::RabbitSpawnEgg), - "minecraft:red_banner" => Some(Item::RedBanner), - "minecraft:popped_chorus_fruit" => Some(Item::PoppedChorusFruit), - "minecraft:lime_carpet" => Some(Item::LimeCarpet), - "minecraft:iron_nugget" => Some(Item::IronNugget), - "minecraft:stripped_crimson_hyphae" => Some(Item::StrippedCrimsonHyphae), - "minecraft:dandelion" => Some(Item::Dandelion), - "minecraft:creeper_banner_pattern" => Some(Item::CreeperBannerPattern), - "minecraft:iron_boots" => Some(Item::IronBoots), - "minecraft:oxidized_cut_copper" => Some(Item::OxidizedCutCopper), - "minecraft:golden_sword" => Some(Item::GoldenSword), - "minecraft:diamond_pickaxe" => Some(Item::DiamondPickaxe), - "minecraft:target" => Some(Item::Target), - "minecraft:terracotta" => Some(Item::Terracotta), - "minecraft:green_banner" => Some(Item::GreenBanner), - "minecraft:dolphin_spawn_egg" => Some(Item::DolphinSpawnEgg), - "minecraft:red_sand" => Some(Item::RedSand), - "minecraft:brick_stairs" => Some(Item::BrickStairs), - "minecraft:firework_rocket" => Some(Item::FireworkRocket), - "minecraft:red_shulker_box" => Some(Item::RedShulkerBox), - "minecraft:pointed_dripstone" => Some(Item::PointedDripstone), - "minecraft:light_gray_carpet" => Some(Item::LightGrayCarpet), - "minecraft:jungle_fence" => Some(Item::JungleFence), - "minecraft:coal_ore" => Some(Item::CoalOre), - "minecraft:jungle_door" => Some(Item::JungleDoor), - "minecraft:lightning_rod" => Some(Item::LightningRod), - "minecraft:golden_carrot" => Some(Item::GoldenCarrot), - "minecraft:grindstone" => Some(Item::Grindstone), - "minecraft:red_sandstone_slab" => Some(Item::RedSandstoneSlab), - "minecraft:dead_brain_coral_fan" => Some(Item::DeadBrainCoralFan), - "minecraft:orange_concrete_powder" => Some(Item::OrangeConcretePowder), - "minecraft:warped_button" => Some(Item::WarpedButton), - "minecraft:dead_tube_coral_fan" => Some(Item::DeadTubeCoralFan), - "minecraft:polished_blackstone_pressure_plate" => { - Some(Item::PolishedBlackstonePressurePlate) - } - "minecraft:green_terracotta" => Some(Item::GreenTerracotta), - "minecraft:tube_coral" => Some(Item::TubeCoral), - "minecraft:jungle_log" => Some(Item::JungleLog), - "minecraft:warped_nylium" => Some(Item::WarpedNylium), - "minecraft:guardian_spawn_egg" => Some(Item::GuardianSpawnEgg), - "minecraft:brick_slab" => Some(Item::BrickSlab), - "minecraft:stripped_oak_wood" => Some(Item::StrippedOakWood), - "minecraft:sculk_sensor" => Some(Item::SculkSensor), - "minecraft:birch_stairs" => Some(Item::BirchStairs), - "minecraft:mooshroom_spawn_egg" => Some(Item::MooshroomSpawnEgg), - "minecraft:flower_banner_pattern" => Some(Item::FlowerBannerPattern), - "minecraft:crying_obsidian" => Some(Item::CryingObsidian), - "minecraft:quartz_block" => Some(Item::QuartzBlock), - "minecraft:cyan_terracotta" => Some(Item::CyanTerracotta), - "minecraft:observer" => Some(Item::Observer), - "minecraft:infested_chiseled_stone_bricks" => Some(Item::InfestedChiseledStoneBricks), - "minecraft:wooden_axe" => Some(Item::WoodenAxe), - "minecraft:yellow_candle" => Some(Item::YellowCandle), - "minecraft:writable_book" => Some(Item::WritableBook), - "minecraft:creeper_spawn_egg" => Some(Item::CreeperSpawnEgg), - "minecraft:nether_bricks" => Some(Item::NetherBricks), - "minecraft:black_terracotta" => Some(Item::BlackTerracotta), - "minecraft:dead_bubble_coral" => Some(Item::DeadBubbleCoral), - "minecraft:crimson_pressure_plate" => Some(Item::CrimsonPressurePlate), - "minecraft:gold_ore" => Some(Item::GoldOre), - "minecraft:dead_horn_coral_fan" => Some(Item::DeadHornCoralFan), - "minecraft:furnace_minecart" => Some(Item::FurnaceMinecart), - "minecraft:shears" => Some(Item::Shears), - "minecraft:smooth_stone_slab" => Some(Item::SmoothStoneSlab), - "minecraft:wither_rose" => Some(Item::WitherRose), - "minecraft:deepslate_brick_wall" => Some(Item::DeepslateBrickWall), - "minecraft:purple_glazed_terracotta" => Some(Item::PurpleGlazedTerracotta), - "minecraft:jack_o_lantern" => Some(Item::JackOLantern), - "minecraft:horn_coral_block" => Some(Item::HornCoralBlock), - "minecraft:spruce_fence" => Some(Item::SpruceFence), - "minecraft:light_gray_glazed_terracotta" => Some(Item::LightGrayGlazedTerracotta), - "minecraft:glow_berries" => Some(Item::GlowBerries), - "minecraft:cod_bucket" => Some(Item::CodBucket), - "minecraft:sunflower" => Some(Item::Sunflower), - "minecraft:orange_carpet" => Some(Item::OrangeCarpet), - "minecraft:blue_carpet" => Some(Item::BlueCarpet), - "minecraft:sea_pickle" => Some(Item::SeaPickle), - "minecraft:pink_shulker_box" => Some(Item::PinkShulkerBox), - "minecraft:red_glazed_terracotta" => Some(Item::RedGlazedTerracotta), - "minecraft:brain_coral" => Some(Item::BrainCoral), - "minecraft:dragon_head" => Some(Item::DragonHead), - "minecraft:magenta_candle" => Some(Item::MagentaCandle), - "minecraft:deepslate_gold_ore" => Some(Item::DeepslateGoldOre), - "minecraft:stripped_spruce_log" => Some(Item::StrippedSpruceLog), - "minecraft:donkey_spawn_egg" => Some(Item::DonkeySpawnEgg), - "minecraft:lime_concrete_powder" => Some(Item::LimeConcretePowder), - "minecraft:prismarine_bricks" => Some(Item::PrismarineBricks), - "minecraft:brown_banner" => Some(Item::BrownBanner), - "minecraft:white_stained_glass" => Some(Item::WhiteStainedGlass), - "minecraft:blue_stained_glass" => Some(Item::BlueStainedGlass), - "minecraft:diamond_hoe" => Some(Item::DiamondHoe), - "minecraft:spruce_sign" => Some(Item::SpruceSign), - "minecraft:lodestone" => Some(Item::Lodestone), - "minecraft:sugar" => Some(Item::Sugar), - "minecraft:smooth_red_sandstone_stairs" => Some(Item::SmoothRedSandstoneStairs), - "minecraft:light_blue_shulker_box" => Some(Item::LightBlueShulkerBox), - "minecraft:cyan_dye" => Some(Item::CyanDye), - "minecraft:weathered_cut_copper" => Some(Item::WeatheredCutCopper), - "minecraft:spruce_boat" => Some(Item::SpruceBoat), - "minecraft:sandstone_stairs" => Some(Item::SandstoneStairs), - "minecraft:magma_block" => Some(Item::MagmaBlock), - "minecraft:light_gray_shulker_box" => Some(Item::LightGrayShulkerBox), - "minecraft:prismarine_wall" => Some(Item::PrismarineWall), - "minecraft:tube_coral_fan" => Some(Item::TubeCoralFan), - "minecraft:coal" => Some(Item::Coal), - "minecraft:item_frame" => Some(Item::ItemFrame), - "minecraft:yellow_banner" => Some(Item::YellowBanner), - "minecraft:small_amethyst_bud" => Some(Item::SmallAmethystBud), - "minecraft:brown_shulker_box" => Some(Item::BrownShulkerBox), - "minecraft:iron_ore" => Some(Item::IronOre), - "minecraft:soul_lantern" => Some(Item::SoulLantern), - "minecraft:golden_pickaxe" => Some(Item::GoldenPickaxe), - "minecraft:quartz_slab" => Some(Item::QuartzSlab), - "minecraft:lime_terracotta" => Some(Item::LimeTerracotta), - "minecraft:brain_coral_fan" => Some(Item::BrainCoralFan), - "minecraft:stripped_jungle_log" => Some(Item::StrippedJungleLog), - "minecraft:turtle_helmet" => Some(Item::TurtleHelmet), - "minecraft:purpur_slab" => Some(Item::PurpurSlab), - "minecraft:magenta_bed" => Some(Item::MagentaBed), - "minecraft:warped_hyphae" => Some(Item::WarpedHyphae), - "minecraft:honeycomb_block" => Some(Item::HoneycombBlock), - "minecraft:purple_stained_glass_pane" => Some(Item::PurpleStainedGlassPane), - "minecraft:diamond_ore" => Some(Item::DiamondOre), - "minecraft:calcite" => Some(Item::Calcite), - "minecraft:oak_boat" => Some(Item::OakBoat), - "minecraft:hoglin_spawn_egg" => Some(Item::HoglinSpawnEgg), - "minecraft:respawn_anchor" => Some(Item::RespawnAnchor), - "minecraft:magenta_banner" => Some(Item::MagentaBanner), - "minecraft:chiseled_polished_blackstone" => Some(Item::ChiseledPolishedBlackstone), - "minecraft:budding_amethyst" => Some(Item::BuddingAmethyst), - "minecraft:glass" => Some(Item::Glass), - "minecraft:iron_ingot" => Some(Item::IronIngot), - "minecraft:deepslate_diamond_ore" => Some(Item::DeepslateDiamondOre), - "minecraft:acacia_door" => Some(Item::AcaciaDoor), - "minecraft:gray_bed" => Some(Item::GrayBed), - "minecraft:large_fern" => Some(Item::LargeFern), - "minecraft:red_stained_glass" => Some(Item::RedStainedGlass), - "minecraft:brick" => Some(Item::Brick), - "minecraft:oak_leaves" => Some(Item::OakLeaves), - "minecraft:elder_guardian_spawn_egg" => Some(Item::ElderGuardianSpawnEgg), - "minecraft:golden_leggings" => Some(Item::GoldenLeggings), - "minecraft:pink_stained_glass" => Some(Item::PinkStainedGlass), - "minecraft:red_sandstone_wall" => Some(Item::RedSandstoneWall), - "minecraft:glow_item_frame" => Some(Item::GlowItemFrame), - "minecraft:bell" => Some(Item::Bell), - "minecraft:cobbled_deepslate_stairs" => Some(Item::CobbledDeepslateStairs), - "minecraft:wolf_spawn_egg" => Some(Item::WolfSpawnEgg), - "minecraft:knowledge_book" => Some(Item::KnowledgeBook), - "minecraft:cooked_mutton" => Some(Item::CookedMutton), - "minecraft:smooth_stone" => Some(Item::SmoothStone), - "minecraft:lime_glazed_terracotta" => Some(Item::LimeGlazedTerracotta), - "minecraft:netherite_hoe" => Some(Item::NetheriteHoe), - "minecraft:oak_planks" => Some(Item::OakPlanks), - "minecraft:magenta_dye" => Some(Item::MagentaDye), - "minecraft:cracked_stone_bricks" => Some(Item::CrackedStoneBricks), - "minecraft:cooked_beef" => Some(Item::CookedBeef), - "minecraft:coarse_dirt" => Some(Item::CoarseDirt), - "minecraft:ender_chest" => Some(Item::EnderChest), - "minecraft:zombie_spawn_egg" => Some(Item::ZombieSpawnEgg), - "minecraft:warped_fence_gate" => Some(Item::WarpedFenceGate), - "minecraft:bucket" => Some(Item::Bucket), - "minecraft:blue_dye" => Some(Item::BlueDye), - "minecraft:cactus" => Some(Item::Cactus), - "minecraft:lead" => Some(Item::Lead), - "minecraft:mushroom_stew" => Some(Item::MushroomStew), - "minecraft:light_blue_bed" => Some(Item::LightBlueBed), - "minecraft:bee_spawn_egg" => Some(Item::BeeSpawnEgg), - "minecraft:oxidized_cut_copper_stairs" => Some(Item::OxidizedCutCopperStairs), - "minecraft:kelp" => Some(Item::Kelp), - "minecraft:green_concrete_powder" => Some(Item::GreenConcretePowder), - "minecraft:redstone_torch" => Some(Item::RedstoneTorch), - "minecraft:snowball" => Some(Item::Snowball), - "minecraft:spruce_sapling" => Some(Item::SpruceSapling), - "minecraft:green_candle" => Some(Item::GreenCandle), - "minecraft:oxidized_copper" => Some(Item::OxidizedCopper), - "minecraft:stripped_acacia_log" => Some(Item::StrippedAcaciaLog), - "minecraft:zombie_horse_spawn_egg" => Some(Item::ZombieHorseSpawnEgg), - "minecraft:acacia_slab" => Some(Item::AcaciaSlab), - "minecraft:spruce_door" => Some(Item::SpruceDoor), - "minecraft:dark_oak_sign" => Some(Item::DarkOakSign), - "minecraft:green_concrete" => Some(Item::GreenConcrete), - "minecraft:salmon" => Some(Item::Salmon), - "minecraft:dead_fire_coral_fan" => Some(Item::DeadFireCoralFan), - "minecraft:blue_stained_glass_pane" => Some(Item::BlueStainedGlassPane), - "minecraft:oak_fence_gate" => Some(Item::OakFenceGate), - "minecraft:minecart" => Some(Item::Minecart), - "minecraft:fishing_rod" => Some(Item::FishingRod), - "minecraft:vindicator_spawn_egg" => Some(Item::VindicatorSpawnEgg), - "minecraft:cauldron" => Some(Item::Cauldron), - "minecraft:spruce_button" => Some(Item::SpruceButton), - "minecraft:dispenser" => Some(Item::Dispenser), - "minecraft:stripped_spruce_wood" => Some(Item::StrippedSpruceWood), - "minecraft:yellow_bed" => Some(Item::YellowBed), - "minecraft:nether_brick_wall" => Some(Item::NetherBrickWall), - "minecraft:jungle_sapling" => Some(Item::JungleSapling), - "minecraft:damaged_anvil" => Some(Item::DamagedAnvil), - "minecraft:quartz" => Some(Item::Quartz), - "minecraft:brown_concrete_powder" => Some(Item::BrownConcretePowder), - "minecraft:tall_grass" => Some(Item::TallGrass), - "minecraft:polished_andesite_stairs" => Some(Item::PolishedAndesiteStairs), - "minecraft:raw_gold" => Some(Item::RawGold), - "minecraft:cobweb" => Some(Item::Cobweb), - "minecraft:birch_leaves" => Some(Item::BirchLeaves), - "minecraft:nether_wart_block" => Some(Item::NetherWartBlock), - "minecraft:green_stained_glass" => Some(Item::GreenStainedGlass), - "minecraft:bow" => Some(Item::Bow), - "minecraft:crimson_planks" => Some(Item::CrimsonPlanks), - "minecraft:deepslate_copper_ore" => Some(Item::DeepslateCopperOre), - "minecraft:flower_pot" => Some(Item::FlowerPot), - "minecraft:white_carpet" => Some(Item::WhiteCarpet), - "minecraft:allium" => Some(Item::Allium), - "minecraft:stripped_dark_oak_wood" => Some(Item::StrippedDarkOakWood), - "minecraft:basalt" => Some(Item::Basalt), - "minecraft:polished_andesite" => Some(Item::PolishedAndesite), - "minecraft:saddle" => Some(Item::Saddle), - "minecraft:bowl" => Some(Item::Bowl), - "minecraft:ender_eye" => Some(Item::EnderEye), - "minecraft:daylight_detector" => Some(Item::DaylightDetector), - "minecraft:grass" => Some(Item::Grass), - "minecraft:mossy_cobblestone_wall" => Some(Item::MossyCobblestoneWall), - "minecraft:yellow_dye" => Some(Item::YellowDye), - "minecraft:enderman_spawn_egg" => Some(Item::EndermanSpawnEgg), - "minecraft:parrot_spawn_egg" => Some(Item::ParrotSpawnEgg), - "minecraft:jungle_pressure_plate" => Some(Item::JunglePressurePlate), - "minecraft:waxed_exposed_cut_copper_slab" => Some(Item::WaxedExposedCutCopperSlab), - "minecraft:vine" => Some(Item::Vine), - "minecraft:purpur_block" => Some(Item::PurpurBlock), - "minecraft:rabbit_foot" => Some(Item::RabbitFoot), - "minecraft:diamond_chestplate" => Some(Item::DiamondChestplate), - "minecraft:bricks" => Some(Item::Bricks), - "minecraft:music_disc_far" => Some(Item::MusicDiscFar), - "minecraft:oak_stairs" => Some(Item::OakStairs), - "minecraft:honey_block" => Some(Item::HoneyBlock), - "minecraft:carrot_on_a_stick" => Some(Item::CarrotOnAStick), - "minecraft:quartz_stairs" => Some(Item::QuartzStairs), - "minecraft:acacia_fence_gate" => Some(Item::AcaciaFenceGate), - "minecraft:dead_bush" => Some(Item::DeadBush), - "minecraft:cooked_chicken" => Some(Item::CookedChicken), - "minecraft:purple_shulker_box" => Some(Item::PurpleShulkerBox), - "minecraft:packed_ice" => Some(Item::PackedIce), - "minecraft:chiseled_deepslate" => Some(Item::ChiseledDeepslate), - "minecraft:phantom_membrane" => Some(Item::PhantomMembrane), - "minecraft:skull_banner_pattern" => Some(Item::SkullBannerPattern), - "minecraft:waxed_weathered_cut_copper_stairs" => { - Some(Item::WaxedWeatheredCutCopperStairs) - } - "minecraft:exposed_cut_copper_stairs" => Some(Item::ExposedCutCopperStairs), - "minecraft:cyan_carpet" => Some(Item::CyanCarpet), - "minecraft:smooth_basalt" => Some(Item::SmoothBasalt), - "minecraft:orange_bed" => Some(Item::OrangeBed), - "minecraft:panda_spawn_egg" => Some(Item::PandaSpawnEgg), - "minecraft:acacia_boat" => Some(Item::AcaciaBoat), - "minecraft:acacia_fence" => Some(Item::AcaciaFence), - "minecraft:wither_skeleton_spawn_egg" => Some(Item::WitherSkeletonSpawnEgg), - "minecraft:torch" => Some(Item::Torch), - "minecraft:rabbit_stew" => Some(Item::RabbitStew), - "minecraft:netherite_shovel" => Some(Item::NetheriteShovel), - "minecraft:campfire" => Some(Item::Campfire), - "minecraft:birch_sapling" => Some(Item::BirchSapling), - "minecraft:white_banner" => Some(Item::WhiteBanner), - "minecraft:waxed_oxidized_copper" => Some(Item::WaxedOxidizedCopper), - "minecraft:azalea_leaves" => Some(Item::AzaleaLeaves), - "minecraft:granite_stairs" => Some(Item::GraniteStairs), - "minecraft:gray_shulker_box" => Some(Item::GrayShulkerBox), - "minecraft:oxeye_daisy" => Some(Item::OxeyeDaisy), - "minecraft:deepslate_tile_stairs" => Some(Item::DeepslateTileStairs), - "minecraft:gray_terracotta" => Some(Item::GrayTerracotta), - "minecraft:pink_stained_glass_pane" => Some(Item::PinkStainedGlassPane), - "minecraft:bookshelf" => Some(Item::Bookshelf), - "minecraft:polished_granite_slab" => Some(Item::PolishedGraniteSlab), - "minecraft:deepslate_tile_slab" => Some(Item::DeepslateTileSlab), - "minecraft:pufferfish" => Some(Item::Pufferfish), - "minecraft:diamond_axe" => Some(Item::DiamondAxe), - "minecraft:blue_terracotta" => Some(Item::BlueTerracotta), - "minecraft:red_concrete" => Some(Item::RedConcrete), - "minecraft:cooked_cod" => Some(Item::CookedCod), - "minecraft:pillager_spawn_egg" => Some(Item::PillagerSpawnEgg), - "minecraft:gold_nugget" => Some(Item::GoldNugget), - "minecraft:warped_fence" => Some(Item::WarpedFence), - "minecraft:spider_eye" => Some(Item::SpiderEye), - "minecraft:prismarine_crystals" => Some(Item::PrismarineCrystals), - "minecraft:polished_granite" => Some(Item::PolishedGranite), - "minecraft:lime_stained_glass_pane" => Some(Item::LimeStainedGlassPane), - "minecraft:birch_fence_gate" => Some(Item::BirchFenceGate), - "minecraft:note_block" => Some(Item::NoteBlock), - "minecraft:shulker_shell" => Some(Item::ShulkerShell), - "minecraft:blaze_powder" => Some(Item::BlazePowder), - "minecraft:red_bed" => Some(Item::RedBed), - "minecraft:polished_deepslate" => Some(Item::PolishedDeepslate), - "minecraft:birch_button" => Some(Item::BirchButton), - "minecraft:music_disc_mall" => Some(Item::MusicDiscMall), - "minecraft:fox_spawn_egg" => Some(Item::FoxSpawnEgg), - "minecraft:tipped_arrow" => Some(Item::TippedArrow), - "minecraft:polished_blackstone_stairs" => Some(Item::PolishedBlackstoneStairs), - "minecraft:zombified_piglin_spawn_egg" => Some(Item::ZombifiedPiglinSpawnEgg), - "minecraft:small_dripleaf" => Some(Item::SmallDripleaf), - "minecraft:pink_concrete" => Some(Item::PinkConcrete), - "minecraft:lapis_ore" => Some(Item::LapisOre), - "minecraft:birch_planks" => Some(Item::BirchPlanks), - "minecraft:melon_slice" => Some(Item::MelonSlice), - "minecraft:polar_bear_spawn_egg" => Some(Item::PolarBearSpawnEgg), - "minecraft:command_block_minecart" => Some(Item::CommandBlockMinecart), - "minecraft:music_disc_pigstep" => Some(Item::MusicDiscPigstep), - "minecraft:tinted_glass" => Some(Item::TintedGlass), - "minecraft:warped_fungus_on_a_stick" => Some(Item::WarpedFungusOnAStick), - "minecraft:deepslate_redstone_ore" => Some(Item::DeepslateRedstoneOre), - "minecraft:bundle" => Some(Item::Bundle), - "minecraft:music_disc_ward" => Some(Item::MusicDiscWard), - "minecraft:amethyst_cluster" => Some(Item::AmethystCluster), - "minecraft:stone_axe" => Some(Item::StoneAxe), - "minecraft:stray_spawn_egg" => Some(Item::StraySpawnEgg), - "minecraft:polished_diorite_slab" => Some(Item::PolishedDioriteSlab), - "minecraft:mossy_stone_brick_slab" => Some(Item::MossyStoneBrickSlab), - "minecraft:black_banner" => Some(Item::BlackBanner), - "minecraft:evoker_spawn_egg" => Some(Item::EvokerSpawnEgg), - "minecraft:light_gray_candle" => Some(Item::LightGrayCandle), - "minecraft:pufferfish_spawn_egg" => Some(Item::PufferfishSpawnEgg), - "minecraft:experience_bottle" => Some(Item::ExperienceBottle), - "minecraft:black_dye" => Some(Item::BlackDye), - "minecraft:prismarine_shard" => Some(Item::PrismarineShard), - "minecraft:turtle_egg" => Some(Item::TurtleEgg), - "minecraft:spruce_slab" => Some(Item::SpruceSlab), - "minecraft:chicken" => Some(Item::Chicken), - "minecraft:acacia_wood" => Some(Item::AcaciaWood), - "minecraft:fire_charge" => Some(Item::FireCharge), - "minecraft:comparator" => Some(Item::Comparator), - "minecraft:powered_rail" => Some(Item::PoweredRail), - "minecraft:stone_brick_stairs" => Some(Item::StoneBrickStairs), - "minecraft:bubble_coral_fan" => Some(Item::BubbleCoralFan), - "minecraft:music_disc_13" => Some(Item::MusicDisc13), - "minecraft:quartz_bricks" => Some(Item::QuartzBricks), - "minecraft:honey_bottle" => Some(Item::HoneyBottle), - "minecraft:yellow_concrete_powder" => Some(Item::YellowConcretePowder), - "minecraft:deepslate_emerald_ore" => Some(Item::DeepslateEmeraldOre), - "minecraft:book" => Some(Item::Book), - "minecraft:tnt" => Some(Item::Tnt), - "minecraft:scute" => Some(Item::Scute), - "minecraft:chest_minecart" => Some(Item::ChestMinecart), - "minecraft:netherite_axe" => Some(Item::NetheriteAxe), - "minecraft:dark_oak_button" => Some(Item::DarkOakButton), - "minecraft:diamond_boots" => Some(Item::DiamondBoots), - "minecraft:totem_of_undying" => Some(Item::TotemOfUndying), - "minecraft:glass_pane" => Some(Item::GlassPane), - "minecraft:polished_blackstone_slab" => Some(Item::PolishedBlackstoneSlab), - "minecraft:cobblestone_wall" => Some(Item::CobblestoneWall), - "minecraft:magenta_concrete_powder" => Some(Item::MagentaConcretePowder), - "minecraft:red_sandstone" => Some(Item::RedSandstone), - "minecraft:orange_concrete" => Some(Item::OrangeConcrete), - "minecraft:light" => Some(Item::Light), - "minecraft:stone_slab" => Some(Item::StoneSlab), - "minecraft:string" => Some(Item::String), - "minecraft:dragon_breath" => Some(Item::DragonBreath), - "minecraft:crimson_stem" => Some(Item::CrimsonStem), - _ => None, - } - } -} -impl Item { - #[doc = "Returns the `stack_size` property of this `Item`."] - #[inline] - pub fn stack_size(&self) -> u32 { - match self { - Item::WhiteStainedGlassPane => 64, - Item::LightGrayShulkerBox => 1, - Item::NetherWart => 64, - Item::Chest => 64, - Item::Cactus => 64, - Item::MelonSeeds => 64, - Item::SpectralArrow => 64, - Item::Kelp => 64, - Item::OrangeConcretePowder => 64, - Item::PurpleConcrete => 64, - Item::DiamondHelmet => 1, - Item::Chicken => 64, - Item::PinkBanner => 16, - Item::DebugStick => 1, - Item::SpruceButton => 64, - Item::PinkTulip => 64, - Item::EndStone => 64, - Item::LightBlueConcrete => 64, - Item::Clock => 64, - Item::NetherBrickFence => 64, - Item::DeadFireCoralFan => 64, - Item::ChainmailLeggings => 1, - Item::AcaciaSapling => 64, - Item::MossyCobblestoneSlab => 64, - Item::ExposedCutCopperSlab => 64, - Item::OrangeWool => 64, - Item::NetherSprouts => 64, - Item::MossyStoneBrickStairs => 64, - Item::IronHoe => 1, - Item::TurtleSpawnEgg => 64, - Item::IronSword => 1, - Item::OrangeCandle => 64, - Item::Jigsaw => 64, - Item::MagentaBed => 1, - Item::StrippedWarpedStem => 64, - Item::GrayWool => 64, - Item::WhiteShulkerBox => 1, - Item::CreeperSpawnEgg => 64, - Item::Cake => 1, - Item::PolishedGranite => 64, - Item::PurpleCarpet => 64, - Item::Minecart => 1, - Item::DeepslateCoalOre => 64, - Item::OakStairs => 64, - Item::ZombifiedPiglinSpawnEgg => 64, - Item::DarkOakBoat => 1, - Item::RepeatingCommandBlock => 64, - Item::Sunflower => 64, - Item::MagmaBlock => 64, - Item::PowderSnowBucket => 1, - Item::FishingRod => 1, - Item::GlowstoneDust => 64, - Item::ZoglinSpawnEgg => 64, - Item::Lantern => 64, - Item::DeepslateTileWall => 64, - Item::PhantomMembrane => 64, - Item::QuartzPillar => 64, - Item::GrayTerracotta => 64, - Item::DiamondBlock => 64, - Item::CarrotOnAStick => 1, - Item::MagentaConcrete => 64, - Item::Potato => 64, - Item::Bow => 1, - Item::StoneShovel => 1, - Item::PolishedBlackstoneBrickStairs => 64, - Item::CutSandstoneSlab => 64, - Item::BrownBed => 1, - Item::GreenConcretePowder => 64, - Item::GreenTerracotta => 64, - Item::LightGrayCandle => 64, - Item::LingeringPotion => 1, - Item::SpruceSlab => 64, - Item::LeatherHorseArmor => 1, - Item::RedSand => 64, - Item::CrimsonFenceGate => 64, - Item::CyanDye => 64, - Item::BlazeRod => 64, - Item::WeatheredCutCopper => 64, - Item::Seagrass => 64, - Item::SmoothQuartzStairs => 64, - Item::RawGold => 64, - Item::CookedPorkchop => 64, - Item::ChorusFlower => 64, - Item::SkeletonSpawnEgg => 64, - Item::KnowledgeBook => 1, - Item::StoneBricks => 64, - Item::RawIronBlock => 64, - Item::GoldenShovel => 1, - Item::RedSandstoneSlab => 64, - Item::GreenCarpet => 64, - Item::DeepslateCopperOre => 64, - Item::JungleBoat => 1, - Item::TropicalFish => 64, - Item::EnderPearl => 16, - Item::SmoothSandstoneStairs => 64, - Item::WaxedExposedCopper => 64, - Item::DeadBubbleCoralFan => 64, - Item::LightBlueCandle => 64, - Item::Beacon => 64, - Item::PinkTerracotta => 64, - Item::DarkOakLeaves => 64, - Item::LightBlueShulkerBox => 1, - Item::RawGoldBlock => 64, - Item::PolishedBlackstoneStairs => 64, - Item::LightBlueStainedGlassPane => 64, - Item::DeadFireCoral => 64, - Item::DiamondChestplate => 1, - Item::AcaciaBoat => 1, - Item::Emerald => 64, - Item::RespawnAnchor => 64, - Item::IronDoor => 64, - Item::ZombieSpawnEgg => 64, - Item::MusicDiscBlocks => 1, - Item::Andesite => 64, - Item::Campfire => 64, - Item::GrayStainedGlass => 64, - Item::Saddle => 1, - Item::VindicatorSpawnEgg => 64, - Item::LapisBlock => 64, - Item::SlimeBlock => 64, - Item::DarkOakSign => 16, - Item::PolishedDioriteStairs => 64, - Item::BirchSign => 16, - Item::Stonecutter => 64, - Item::VexSpawnEgg => 64, - Item::CutCopper => 64, - Item::InfestedMossyStoneBricks => 64, - Item::LightBlueStainedGlass => 64, - Item::SpruceDoor => 64, - Item::WarpedFenceGate => 64, - Item::LeatherHelmet => 1, - Item::ElderGuardianSpawnEgg => 64, - Item::PolishedGraniteSlab => 64, - Item::MossCarpet => 64, - Item::CrackedPolishedBlackstoneBricks => 64, - Item::LimeWool => 64, - Item::RedMushroomBlock => 64, - Item::EndermanSpawnEgg => 64, - Item::Candle => 64, - Item::OxeyeDaisy => 64, - Item::JungleLeaves => 64, - Item::Bedrock => 64, - Item::MagentaDye => 64, - Item::BuddingAmethyst => 64, - Item::OxidizedCopper => 64, - Item::PinkCarpet => 64, - Item::CreeperHead => 64, - Item::Cauldron => 64, - Item::Sandstone => 64, - Item::SmoothBasalt => 64, - Item::Calcite => 64, - Item::BlackWool => 64, - Item::IronPickaxe => 1, - Item::PoweredRail => 64, - Item::Egg => 16, - Item::BirchTrapdoor => 64, - Item::StrippedAcaciaWood => 64, - Item::LightBlueGlazedTerracotta => 64, - Item::LightBlueCarpet => 64, - Item::Coal => 64, - Item::Mycelium => 64, - Item::MusicDisc11 => 1, - Item::HopperMinecart => 1, - Item::DolphinSpawnEgg => 64, - Item::SoulSoil => 64, - Item::NetherBrickSlab => 64, - Item::PolishedDiorite => 64, - Item::SoulTorch => 64, - Item::RedGlazedTerracotta => 64, - Item::Glowstone => 64, - Item::RawIron => 64, - Item::JungleSlab => 64, - Item::IronNugget => 64, - Item::CrimsonFence => 64, - Item::CyanBed => 1, - Item::BirchLog => 64, - Item::LightGrayGlazedTerracotta => 64, - Item::CobbledDeepslateWall => 64, - Item::PinkStainedGlassPane => 64, - Item::SmallAmethystBud => 64, - Item::AmethystCluster => 64, - Item::DarkOakButton => 64, - Item::SkeletonSkull => 64, - Item::RedSandstone => 64, - Item::SplashPotion => 1, - Item::PurpurPillar => 64, - Item::ChiseledDeepslate => 64, - Item::Porkchop => 64, - Item::GlowInkSac => 64, - Item::Clay => 64, - Item::Carrot => 64, - Item::BrownBanner => 16, - Item::Loom => 64, - Item::LapisOre => 64, - Item::SprucePlanks => 64, - Item::LightGrayConcrete => 64, - Item::Salmon => 64, - Item::MooshroomSpawnEgg => 64, - Item::WhiteDye => 64, - Item::ShulkerShell => 64, - Item::BrownCandle => 64, - Item::PolishedBlackstone => 64, - Item::GlobeBannerPattern => 1, - Item::PolishedGraniteStairs => 64, - Item::YellowGlazedTerracotta => 64, - Item::DiamondOre => 64, - Item::DarkPrismarineStairs => 64, - Item::DragonEgg => 64, - Item::AcaciaTrapdoor => 64, - Item::NetheritePickaxe => 1, - Item::JungleStairs => 64, - Item::Honeycomb => 64, - Item::ChippedAnvil => 64, - Item::WaxedOxidizedCutCopper => 64, - Item::FermentedSpiderEye => 64, - Item::BlazeSpawnEgg => 64, - Item::OrangeBed => 1, - Item::Shroomlight => 64, - Item::OakSapling => 64, - Item::CutCopperSlab => 64, - Item::HangingRoots => 64, - Item::DeadBrainCoralBlock => 64, - Item::DeadBubbleCoralBlock => 64, - Item::OakButton => 64, - Item::OakTrapdoor => 64, - Item::RedSandstoneWall => 64, - Item::DonkeySpawnEgg => 64, - Item::OrangeBanner => 16, - Item::PurpurBlock => 64, - Item::RootedDirt => 64, - Item::DeadTubeCoral => 64, - Item::RedstoneBlock => 64, - Item::OrangeShulkerBox => 1, - Item::BlueWool => 64, - Item::String => 64, - Item::JunglePlanks => 64, - Item::FloweringAzalea => 64, - Item::OrangeTerracotta => 64, - Item::MusicDiscWait => 1, - Item::CrimsonPlanks => 64, - Item::BrownStainedGlass => 64, - Item::Cod => 64, - Item::Repeater => 64, - Item::CowSpawnEgg => 64, - Item::GreenShulkerBox => 1, - Item::WaxedWeatheredCutCopperSlab => 64, - Item::BlazePowder => 64, - Item::CrackedDeepslateTiles => 64, - Item::PrismarineWall => 64, - Item::BlackGlazedTerracotta => 64, - Item::CyanCandle => 64, - Item::HuskSpawnEgg => 64, - Item::YellowStainedGlass => 64, - Item::Beetroot => 64, - Item::Apple => 64, - Item::CommandBlockMinecart => 1, - Item::SeaPickle => 64, - Item::Shield => 1, - Item::CrimsonFungus => 64, - Item::InfestedStone => 64, - Item::LimeCarpet => 64, - Item::CrimsonPressurePlate => 64, - Item::BrownMushroom => 64, - Item::Grindstone => 64, - Item::Conduit => 64, - Item::BrownConcrete => 64, - Item::StrippedAcaciaLog => 64, - Item::LilyPad => 64, - Item::MagentaStainedGlassPane => 64, - Item::PolishedBasalt => 64, - Item::MojangBannerPattern => 1, - Item::HornCoralBlock => 64, - Item::Netherrack => 64, - Item::WanderingTraderSpawnEgg => 64, - Item::LightBlueTerracotta => 64, - Item::Barrel => 64, - Item::DeepslateBricks => 64, - Item::CyanStainedGlass => 64, - Item::YellowStainedGlassPane => 64, - Item::StructureVoid => 64, - Item::SkeletonHorseSpawnEgg => 64, - Item::EndStoneBricks => 64, - Item::CobblestoneStairs => 64, - Item::DeepslateEmeraldOre => 64, - Item::BlueTerracotta => 64, - Item::RedConcretePowder => 64, - Item::SmoothQuartz => 64, - Item::NetherBrickStairs => 64, - Item::Dandelion => 64, - Item::Flint => 64, - Item::InfestedCrackedStoneBricks => 64, - Item::DeadHornCoralFan => 64, - Item::Pufferfish => 64, - Item::MushroomStem => 64, - Item::BrainCoralFan => 64, - Item::SpiderEye => 64, - Item::WarpedDoor => 64, - Item::DeepslateBrickWall => 64, - Item::DarkOakStairs => 64, - Item::ChorusFruit => 64, - Item::BlueConcretePowder => 64, - Item::Obsidian => 64, - Item::SmoothStoneSlab => 64, - Item::Bell => 64, - Item::RedNetherBrickSlab => 64, - Item::OakBoat => 1, - Item::EndStoneBrickSlab => 64, - Item::MagentaShulkerBox => 1, - Item::ShulkerSpawnEgg => 64, - Item::DiamondAxe => 1, - Item::DarkOakFence => 64, - Item::CrackedNetherBricks => 64, - Item::BlastFurnace => 64, - Item::Furnace => 64, - Item::CrackedStoneBricks => 64, - Item::GraniteWall => 64, - Item::ParrotSpawnEgg => 64, - Item::SmoothRedSandstoneStairs => 64, - Item::WaxedExposedCutCopper => 64, - Item::NetherGoldOre => 64, - Item::CrimsonTrapdoor => 64, - Item::BirchBoat => 1, - Item::HorseSpawnEgg => 64, - Item::PandaSpawnEgg => 64, - Item::OxidizedCutCopperSlab => 64, - Item::HoneycombBlock => 64, - Item::BoneBlock => 64, - Item::CookedBeef => 64, - Item::YellowTerracotta => 64, - Item::AncientDebris => 64, - Item::SmoothRedSandstoneSlab => 64, - Item::StoneAxe => 1, - Item::DeepslateTiles => 64, - Item::BlackstoneWall => 64, - Item::StonePickaxe => 1, - Item::EnchantingTable => 64, - Item::SmoothSandstone => 64, - Item::Cobblestone => 64, - Item::ShulkerBox => 1, - Item::WoodenHoe => 1, - Item::Terracotta => 64, - Item::OakLeaves => 64, - Item::AmethystBlock => 64, - Item::Dirt => 64, - Item::InfestedStoneBricks => 64, - Item::AndesiteStairs => 64, - Item::Light => 64, - Item::Lead => 64, - Item::HoneyBottle => 16, - Item::EmeraldBlock => 64, - Item::Diamond => 64, - Item::AzaleaLeaves => 64, - Item::LimeCandle => 64, - Item::MagentaStainedGlass => 64, - Item::PolishedBlackstoneBrickSlab => 64, - Item::BirchWood => 64, - Item::Comparator => 64, - Item::DeepslateDiamondOre => 64, - Item::MossyCobblestoneWall => 64, - Item::Chain => 64, - Item::RavagerSpawnEgg => 64, - Item::CryingObsidian => 64, - Item::YellowCandle => 64, - Item::MushroomStew => 1, - Item::SandstoneStairs => 64, - Item::Lectern => 64, - Item::GoldenSword => 1, - Item::SpruceStairs => 64, - Item::SquidSpawnEgg => 64, - Item::BlackShulkerBox => 1, - Item::WitherSkeletonSkull => 64, - Item::EndRod => 64, - Item::LimeShulkerBox => 1, - Item::DeepslateTileSlab => 64, - Item::MusicDiscPigstep => 1, - Item::WaxedWeatheredCopper => 64, - Item::BlackConcretePowder => 64, - Item::GoldBlock => 64, - Item::AcaciaPlanks => 64, - Item::MusicDiscChirp => 1, - Item::AcaciaSign => 16, - Item::StrippedCrimsonHyphae => 64, - Item::Composter => 64, - Item::PetrifiedOakSlab => 64, - Item::Rail => 64, - Item::WitchSpawnEgg => 64, - Item::CopperBlock => 64, - Item::IronHelmet => 1, - Item::NetheriteLeggings => 1, - Item::Cobweb => 64, - Item::BirchFenceGate => 64, - Item::BubbleCoral => 64, - Item::WhiteTerracotta => 64, - Item::ZombieHead => 64, - Item::NetheriteBoots => 1, - Item::PolishedBlackstoneBricks => 64, - Item::StrippedBirchWood => 64, - Item::HornCoralFan => 64, - Item::RedWool => 64, - Item::Gravel => 64, - Item::RedDye => 64, - Item::WarpedRoots => 64, - Item::StrippedOakWood => 64, - Item::WarpedButton => 64, - Item::NautilusShell => 64, - Item::StructureBlock => 64, - Item::HornCoral => 64, - Item::Sand => 64, - Item::ActivatorRail => 64, - Item::BigDripleaf => 64, - Item::AndesiteSlab => 64, - Item::WhiteConcrete => 64, - Item::QuartzSlab => 64, - Item::ChestMinecart => 1, - Item::RedStainedGlassPane => 64, - Item::WaterBucket => 1, - Item::BoneMeal => 64, - Item::RoseBush => 64, - Item::PiglinBannerPattern => 1, - Item::WaxedCutCopper => 64, - Item::WhiteTulip => 64, - Item::WaxedCutCopperStairs => 64, - Item::SugarCane => 64, - Item::WarpedSign => 16, - Item::ChiseledPolishedBlackstone => 64, - Item::GhastSpawnEgg => 64, - Item::Cornflower => 64, - Item::MossyCobblestoneStairs => 64, - Item::LimeConcrete => 64, - Item::Lever => 64, - Item::Feather => 64, - Item::QuartzBlock => 64, - Item::AzureBluet => 64, - Item::WaxedOxidizedCopper => 64, - Item::YellowShulkerBox => 1, - Item::DeepslateTileStairs => 64, - Item::WetSponge => 64, - Item::SculkSensor => 64, - Item::RawCopper => 64, - Item::BlackStainedGlassPane => 64, - Item::TropicalFishBucket => 1, - Item::Beehive => 64, - Item::WarpedFungusOnAStick => 64, - Item::GraniteSlab => 64, - Item::CutRedSandstone => 64, - Item::GreenCandle => 64, - Item::CookedCod => 64, - Item::CobblestoneSlab => 64, - Item::SlimeBall => 64, - Item::WeepingVines => 64, - Item::StrippedSpruceLog => 64, - Item::PurpleCandle => 64, - Item::PolishedDeepslateWall => 64, - Item::Bricks => 64, - Item::BrownTerracotta => 64, - Item::TripwireHook => 64, - Item::MediumAmethystBud => 64, - Item::NetheriteBlock => 64, - Item::PolishedBlackstoneWall => 64, - Item::WaxedOxidizedCutCopperStairs => 64, - Item::BubbleCoralFan => 64, - Item::PurpleDye => 64, - Item::StoneBrickSlab => 64, - Item::Brick => 64, - Item::SkullBannerPattern => 1, - Item::SoulCampfire => 64, - Item::WhiteWool => 64, - Item::FireCoralBlock => 64, - Item::SalmonBucket => 1, - Item::CookedRabbit => 64, - Item::RedNetherBrickWall => 64, - Item::IronBars => 64, - Item::BrownShulkerBox => 1, - Item::DeadBrainCoral => 64, - Item::Barrier => 64, - Item::DeepslateBrickStairs => 64, - Item::NetheriteSword => 1, - Item::CyanStainedGlassPane => 64, - Item::LightGrayBanner => 16, - Item::WitherRose => 64, - Item::NetheriteHoe => 1, - Item::DeepslateGoldOre => 64, - Item::BirchPressurePlate => 64, - Item::IronIngot => 64, - Item::OrangeConcrete => 64, - Item::ChiseledStoneBricks => 64, - Item::GrayConcrete => 64, - Item::SlimeSpawnEgg => 64, - Item::TrappedChest => 64, - Item::SandstoneWall => 64, - Item::BlackBed => 1, - Item::NetherStar => 64, - Item::BrainCoralBlock => 64, - Item::DetectorRail => 64, - Item::YellowBanner => 16, - Item::SmoothSandstoneSlab => 64, - Item::DarkOakSapling => 64, - Item::YellowConcretePowder => 64, - Item::PolishedAndesiteSlab => 64, - Item::NetheriteIngot => 64, - Item::EmeraldOre => 64, - Item::HeavyWeightedPressurePlate => 64, - Item::DarkOakSlab => 64, - Item::PinkConcretePowder => 64, - Item::CookedChicken => 64, - Item::SilverfishSpawnEgg => 64, - Item::PoppedChorusFruit => 64, - Item::WarpedStem => 64, - Item::NoteBlock => 64, - Item::NetherQuartzOre => 64, - Item::JackOLantern => 64, - Item::BlueStainedGlass => 64, - Item::HayBlock => 64, - Item::ChiseledQuartzBlock => 64, - Item::MagentaGlazedTerracotta => 64, - Item::RedNetherBrickStairs => 64, - Item::StoneSword => 1, - Item::NetherBrick => 64, - Item::Snowball => 16, - Item::TurtleEgg => 64, - Item::PolishedDioriteSlab => 64, - Item::BrownWool => 64, - Item::LimeBanner => 16, - Item::BrickSlab => 64, - Item::SmoothQuartzSlab => 64, - Item::FireworkRocket => 64, - Item::MossyStoneBrickSlab => 64, - Item::Granite => 64, - Item::ExperienceBottle => 64, - Item::BlackCandle => 64, - Item::GoldenCarrot => 64, - Item::NetheriteShovel => 1, - Item::Scute => 64, - Item::CyanTerracotta => 64, - Item::CobbledDeepslate => 64, - Item::EndPortalFrame => 64, - Item::PinkStainedGlass => 64, - Item::GrayStainedGlassPane => 64, - Item::GoldIngot => 64, - Item::IronOre => 64, - Item::QuartzBricks => 64, - Item::StraySpawnEgg => 64, - Item::JungleDoor => 64, - Item::IronLeggings => 1, - Item::RabbitSpawnEgg => 64, - Item::GlowLichen => 64, - Item::DarkOakDoor => 64, - Item::EndStoneBrickStairs => 64, - Item::PurpleBanner => 16, - Item::Fern => 64, - Item::Compass => 64, - Item::OrangeStainedGlass => 64, - Item::OrangeStainedGlassPane => 64, - Item::IronHorseArmor => 1, - Item::MossyStoneBricks => 64, - Item::CyanConcrete => 64, - Item::NameTag => 64, - Item::InfestedCobblestone => 64, - Item::JungleWood => 64, - Item::Peony => 64, - Item::SeaLantern => 64, - Item::MusicDisc13 => 1, - Item::ChickenSpawnEgg => 64, - Item::GoldenHoe => 1, - Item::Diorite => 64, - Item::BrownCarpet => 64, - Item::CrimsonHyphae => 64, - Item::NetheriteScrap => 64, - Item::DeadHornCoralBlock => 64, - Item::OrangeGlazedTerracotta => 64, - Item::PhantomSpawnEgg => 64, - Item::AcaciaWood => 64, - Item::OakSlab => 64, - Item::AndesiteWall => 64, - Item::LightningRod => 64, - Item::MusicDiscFar => 1, - Item::WolfSpawnEgg => 64, - Item::Piston => 64, - Item::ChiseledNetherBricks => 64, - Item::BlueConcrete => 64, - Item::CookedMutton => 64, - Item::WoodenShovel => 1, - Item::JungleSign => 16, - Item::SweetBerries => 64, - Item::EndermiteSpawnEgg => 64, - Item::TropicalFishSpawnEgg => 64, - Item::SpruceBoat => 1, - Item::MossyCobblestone => 64, - Item::Elytra => 1, - Item::SmithingTable => 64, - Item::DaylightDetector => 64, - Item::RabbitHide => 64, - Item::CrimsonDoor => 64, - Item::BrewingStand => 64, - Item::GoatSpawnEgg => 64, - Item::Vine => 64, - Item::PolishedDeepslateSlab => 64, - Item::DarkPrismarine => 64, - Item::LlamaSpawnEgg => 64, - Item::DeepslateRedstoneOre => 64, - Item::GlassPane => 64, - Item::OrangeCarpet => 64, - Item::PolishedDeepslate => 64, - Item::OrangeTulip => 64, - Item::CrimsonButton => 64, - Item::Arrow => 64, - Item::LimeTerracotta => 64, - Item::MagentaTerracotta => 64, - Item::Spyglass => 1, - Item::Potion => 1, - Item::CutRedSandstoneSlab => 64, - Item::PolishedBlackstoneBrickWall => 64, - Item::DarkOakLog => 64, - Item::LapisLazuli => 64, - Item::BeeSpawnEgg => 64, - Item::RedBanner => 16, - Item::EnderEye => 64, - Item::ExposedCopper => 64, - Item::GuardianSpawnEgg => 64, - Item::PinkCandle => 64, - Item::CutCopperStairs => 64, - Item::CodBucket => 1, - Item::MagmaCubeSpawnEgg => 64, - Item::DragonHead => 64, - Item::IronBlock => 64, - Item::PackedIce => 64, - Item::JungleFence => 64, - Item::CraftingTable => 64, - Item::WhiteGlazedTerracotta => 64, - Item::LightWeightedPressurePlate => 64, - Item::IronShovel => 1, - Item::PrismarineSlab => 64, - Item::DeadBush => 64, - Item::RabbitStew => 1, - Item::Allium => 64, - Item::TwistingVines => 64, - Item::StoneBrickStairs => 64, - Item::PufferfishSpawnEgg => 64, - Item::CatSpawnEgg => 64, - Item::DriedKelp => 64, - Item::TintedGlass => 64, - Item::OxidizedCutCopperStairs => 64, - Item::DeadHornCoral => 64, - Item::FireworkStar => 64, - Item::RedNetherBricks => 64, - Item::SalmonSpawnEgg => 64, - Item::LightBlueDye => 64, - Item::PrismarineShard => 64, - Item::RottenFlesh => 64, - Item::LimeStainedGlass => 64, - Item::CoalOre => 64, - Item::LightGrayWool => 64, - Item::DarkOakPressurePlate => 64, - Item::Bowl => 64, - Item::Sugar => 64, - Item::BlueDye => 64, - Item::Blackstone => 64, - Item::Snow => 64, - Item::CobblestoneWall => 64, - Item::AcaciaFence => 64, - Item::WhiteConcretePowder => 64, - Item::PolishedBlackstoneButton => 64, - Item::Rabbit => 64, - Item::MusicDiscCat => 1, - Item::WhiteCandle => 64, - Item::PiglinBruteSpawnEgg => 64, - Item::WaxedWeatheredCutCopper => 64, - Item::CoarseDirt => 64, - Item::DripstoneBlock => 64, - Item::YellowCarpet => 64, - Item::TubeCoralBlock => 64, - Item::WarpedPlanks => 64, - Item::CyanCarpet => 64, - Item::DeadBubbleCoral => 64, - Item::FlintAndSteel => 1, - Item::WheatSeeds => 64, - Item::PurpleBed => 1, - Item::Crossbow => 1, - Item::Redstone => 64, - Item::JunglePressurePlate => 64, - Item::EnderChest => 64, - Item::Leather => 64, - Item::RedstoneLamp => 64, - Item::CookedSalmon => 64, - Item::CocoaBeans => 64, - Item::MusicDiscWard => 1, - Item::WaxedExposedCutCopperSlab => 64, - Item::PurpleStainedGlass => 64, - Item::SprucePressurePlate => 64, - Item::WaxedCutCopperSlab => 64, - Item::NetherBrickWall => 64, - Item::InkSac => 64, - Item::TraderLlamaSpawnEgg => 64, - Item::BeetrootSeeds => 64, - Item::LightBlueBed => 1, - Item::IronBoots => 1, - Item::NetherWartBlock => 64, - Item::PolishedAndesiteStairs => 64, - Item::GoldenApple => 64, - Item::GrayDye => 64, - Item::PurpleShulkerBox => 1, - Item::ZombieVillagerSpawnEgg => 64, - Item::BirchSapling => 64, - Item::LightGrayCarpet => 64, - Item::GreenStainedGlass => 64, - Item::LeatherBoots => 1, - Item::ChainmailHelmet => 1, - Item::ClayBall => 64, - Item::OakFenceGate => 64, - Item::FlowerBannerPattern => 1, - Item::LargeAmethystBud => 64, - Item::DeepslateBrickSlab => 64, - Item::DeepslateIronOre => 64, - Item::Jukebox => 64, - Item::GoldenPickaxe => 1, - Item::VillagerSpawnEgg => 64, - Item::BlackDye => 64, - Item::Deepslate => 64, - Item::LightGrayBed => 1, - Item::BlueOrchid => 64, - Item::DeadFireCoralBlock => 64, - Item::WoodenPickaxe => 1, - Item::CrackedDeepslateBricks => 64, - Item::PrismarineStairs => 64, - Item::AcaciaPressurePlate => 64, - Item::LilyOfTheValley => 64, - Item::BlueStainedGlassPane => 64, - Item::SpruceFenceGate => 64, - Item::Painting => 64, - Item::Bundle => 1, - Item::CaveSpiderSpawnEgg => 64, - Item::DragonBreath => 64, - Item::CyanBanner => 16, - Item::PrismarineBrickStairs => 64, - Item::MuleSpawnEgg => 64, - Item::DioriteStairs => 64, - Item::PiglinSpawnEgg => 64, - Item::LightBlueWool => 64, - Item::WoodenSword => 1, - Item::MusicDiscMall => 1, - Item::GrayConcretePowder => 64, - Item::MossBlock => 64, - Item::PrismarineBrickSlab => 64, - Item::MagentaCarpet => 64, - Item::WaxedOxidizedCutCopperSlab => 64, - Item::WrittenBook => 16, - Item::PrismarineCrystals => 64, - Item::StoneButton => 64, - Item::BlueShulkerBox => 1, - Item::MusicDiscOtherside => 1, - Item::SporeBlossom => 64, - Item::DriedKelpBlock => 64, - Item::GlowBerries => 64, - Item::StoneStairs => 64, - Item::Quartz => 64, - Item::StrippedJungleLog => 64, - Item::WaxedWeatheredCutCopperStairs => 64, - Item::PinkGlazedTerracotta => 64, - Item::TippedArrow => 64, - Item::BlueIce => 64, - Item::StickyPiston => 64, - Item::JungleFenceGate => 64, - Item::CarvedPumpkin => 64, - Item::RedConcrete => 64, - Item::RedSandstoneStairs => 64, - Item::DiamondBoots => 1, - Item::OakFence => 64, - Item::Smoker => 64, - Item::CommandBlock => 64, - Item::LightBlueBanner => 16, - Item::DirtPath => 64, - Item::BrownConcretePowder => 64, - Item::TubeCoral => 64, - Item::GlowItemFrame => 64, - Item::PlayerHead => 64, - Item::BrownDye => 64, - Item::HoglinSpawnEgg => 64, - Item::Ice => 64, - Item::StoneHoe => 1, - Item::RawCopperBlock => 64, - Item::SmoothRedSandstone => 64, - Item::PolishedDeepslateStairs => 64, - Item::GreenBanner => 16, - Item::LargeFern => 64, - Item::PurpurStairs => 64, - Item::CyanShulkerBox => 1, - Item::PolarBearSpawnEgg => 64, - Item::DeadBrainCoralFan => 64, - Item::BirchPlanks => 64, - Item::YellowConcrete => 64, - Item::IronAxe => 1, - Item::RedTerracotta => 64, - Item::BlueBanner => 16, - Item::CyanGlazedTerracotta => 64, - Item::GrayBed => 1, - Item::Dispenser => 64, - Item::DiamondLeggings => 1, - Item::BirchFence => 64, - Item::Bucket => 16, - Item::PolishedAndesite => 64, - Item::RedstoneOre => 64, - Item::WarpedPressurePlate => 64, - Item::DiamondHoe => 1, - Item::BeeNest => 64, - Item::Anvil => 64, - Item::ZombieHorseSpawnEgg => 64, - Item::BlueCandle => 64, - Item::BrownStainedGlassPane => 64, - Item::RedStainedGlass => 64, - Item::DrownedSpawnEgg => 64, - Item::BakedPotato => 64, - Item::FletchingTable => 64, - Item::ChainmailBoots => 1, - Item::SpruceLog => 64, - Item::BlackstoneStairs => 64, - Item::AcaciaSlab => 64, - Item::StrippedOakLog => 64, - Item::WaxedCopperBlock => 64, - Item::Bookshelf => 64, - Item::StrippedBirchLog => 64, - Item::PinkShulkerBox => 1, - Item::GlisteringMelonSlice => 64, - Item::Basalt => 64, - Item::GoldenLeggings => 1, - Item::AcaciaLog => 64, - Item::PinkBed => 1, - Item::Glass => 64, - Item::CopperOre => 64, - Item::LimeConcretePowder => 64, - Item::Podzol => 64, - Item::GreenBed => 1, - Item::BlackConcrete => 64, - Item::BirchLeaves => 64, - Item::ChainCommandBlock => 64, - Item::Scaffolding => 64, - Item::DeadTubeCoralBlock => 64, - Item::Bread => 64, - Item::PufferfishBucket => 1, - Item::BirchSlab => 64, - Item::SmoothStone => 64, - Item::LightGrayDye => 64, - Item::PinkConcrete => 64, - Item::QuartzStairs => 64, - Item::MagmaCream => 64, - Item::WhiteBanner => 16, - Item::SuspiciousStew => 1, - Item::EndStoneBrickWall => 64, - Item::Wheat => 64, - Item::MelonSlice => 64, - Item::SpruceFence => 64, - Item::WeatheredCutCopperSlab => 64, - Item::OakDoor => 64, - Item::GrayBanner => 16, - Item::BlackstoneSlab => 64, - Item::DarkOakWood => 64, - Item::PigSpawnEgg => 64, - Item::StriderSpawnEgg => 64, - Item::DarkOakFenceGate => 64, - Item::CrimsonStairs => 64, - Item::NetheriteChestplate => 1, - Item::ChorusPlant => 64, - Item::ExposedCutCopperStairs => 64, - Item::MossyStoneBrickWall => 64, - Item::OakWood => 64, - Item::LimeBed => 1, - Item::Charcoal => 64, - Item::Hopper => 64, - Item::NetheriteHelmet => 1, - Item::Cookie => 64, - Item::EnchantedBook => 1, - Item::WhiteCarpet => 64, - Item::Ladder => 64, - Item::LightGrayConcretePowder => 64, - Item::GreenWool => 64, - Item::Shears => 1, - Item::JungleButton => 64, - Item::Gunpowder => 64, - Item::CutSandstone => 64, - Item::CrimsonNylium => 64, - Item::DiamondHorseArmor => 1, - Item::MusicDiscMellohi => 1, - Item::GoldenBoots => 1, - Item::AcaciaFenceGate => 64, - Item::MilkBucket => 1, - Item::BrownGlazedTerracotta => 64, - Item::Stick => 64, - Item::RedCandle => 64, - Item::Grass => 64, - Item::MagentaBanner => 16, - Item::PumpkinSeeds => 64, - Item::GlowSquidSpawnEgg => 64, - Item::CobbledDeepslateStairs => 64, - Item::JungleTrapdoor => 64, - Item::MusicDiscStrad => 1, - Item::OcelotSpawnEgg => 64, - Item::Map => 64, - Item::GoldenHelmet => 1, - Item::StoneSlab => 64, - Item::Sponge => 64, - Item::PurpleStainedGlassPane => 64, - Item::PurpleConcretePowder => 64, - Item::SpruceSapling => 64, - Item::MusicDiscStal => 1, - Item::BubbleCoralBlock => 64, - Item::GhastTear => 64, - Item::SpruceTrapdoor => 64, - Item::EvokerSpawnEgg => 64, - Item::DiamondPickaxe => 1, - Item::OxidizedCutCopper => 64, - Item::BrickStairs => 64, - Item::AcaciaButton => 64, - Item::AmethystShard => 64, - Item::Paper => 64, - Item::GreenGlazedTerracotta => 64, - Item::GraniteStairs => 64, - Item::Melon => 64, - Item::EnchantedGoldenApple => 64, - Item::NetheriteAxe => 1, - Item::DiamondSword => 1, - Item::GrayCarpet => 64, - Item::SpruceSign => 16, - Item::CrimsonSign => 16, - Item::Beef => 64, - Item::JungleLog => 64, - Item::StrippedDarkOakLog => 64, - Item::EndCrystal => 64, - Item::FoxSpawnEgg => 64, - Item::CreeperBannerPattern => 1, - Item::WeatheredCopper => 64, - Item::WeatheredCutCopperStairs => 64, - Item::WarpedFungus => 64, - Item::HeartOfTheSea => 64, - Item::WhiteBed => 1, - Item::BlueGlazedTerracotta => 64, - Item::WitherSkeletonSpawnEgg => 64, - Item::DamagedAnvil => 64, - Item::FurnaceMinecart => 1, - Item::OakSign => 16, - Item::StrippedDarkOakWood => 64, - Item::MagentaConcretePowder => 64, - Item::SpiderSpawnEgg => 64, - Item::FireCoralFan => 64, - Item::PurpleGlazedTerracotta => 64, - Item::ExposedCutCopper => 64, - Item::PolishedBlackstonePressurePlate => 64, - Item::Bone => 64, - Item::OakLog => 64, - Item::BrainCoral => 64, - Item::Trident => 1, - Item::FireCharge => 64, - Item::SoulSand => 64, - Item::GrayShulkerBox => 1, - Item::LightGrayTerracotta => 64, - Item::DarkPrismarineSlab => 64, - Item::GreenStainedGlassPane => 64, - Item::Prismarine => 64, - Item::PrismarineBricks => 64, - Item::GrayGlazedTerracotta => 64, - Item::RedCarpet => 64, - Item::StrippedSpruceWood => 64, - Item::ChiseledRedSandstone => 64, - Item::ChainmailChestplate => 1, - Item::GoldenChestplate => 1, - Item::LavaBucket => 1, - Item::RabbitFoot => 64, - Item::CartographyTable => 64, - Item::BirchDoor => 64, - Item::SmallDripleaf => 64, - Item::TntMinecart => 1, - Item::WoodenAxe => 1, - Item::CyanConcretePowder => 64, - Item::SoulLantern => 64, - Item::PinkWool => 64, - Item::BrownMushroomBlock => 64, - Item::DeadTubeCoralFan => 64, - Item::OakPressurePlate => 64, - Item::BeetrootSoup => 1, - Item::OakPlanks => 64, - Item::LightGrayStainedGlass => 64, - Item::Observer => 64, - Item::FlowerPot => 64, - Item::RedBed => 1, - Item::BlueBed => 1, - Item::DarkOakPlanks => 64, - Item::DioriteWall => 64, - Item::Poppy => 64, - Item::Spawner => 64, - Item::WarpedTrapdoor => 64, - Item::PinkDye => 64, - Item::BlackTerracotta => 64, - Item::RedShulkerBox => 1, - Item::CrimsonRoots => 64, - Item::Bamboo => 64, - Item::AcaciaDoor => 64, - Item::Tuff => 64, - Item::CrimsonStem => 64, - Item::SnowBlock => 64, - Item::AcaciaStairs => 64, - Item::YellowBed => 1, - Item::TallGrass => 64, - Item::OrangeDye => 64, - Item::StoneBrickWall => 64, - Item::GrassBlock => 64, - Item::PurpleTerracotta => 64, - Item::GreenConcrete => 64, - Item::Target => 64, - Item::RedstoneTorch => 64, - Item::PurpurSlab => 64, - Item::GreenDye => 64, - Item::HoneyBlock => 64, - Item::PoisonousPotato => 64, - Item::FilledMap => 64, - Item::WarpedStairs => 64, - Item::StrippedWarpedHyphae => 64, - Item::SpruceLeaves => 64, - Item::BlackCarpet => 64, - Item::PolishedBlackstoneSlab => 64, - Item::SheepSpawnEgg => 64, - Item::JungleSapling => 64, - Item::MagentaWool => 64, - Item::WarpedFence => 64, - Item::ArmorStand => 16, - Item::InfestedDeepslate => 64, - Item::GlassBottle => 64, - Item::WhiteStainedGlass => 64, - Item::MagentaCandle => 64, - Item::RedMushroom => 64, - Item::CopperIngot => 64, - Item::DioriteSlab => 64, - Item::TurtleHelmet => 1, - Item::GoldNugget => 64, - Item::StonePressurePlate => 64, - Item::NetherBricks => 64, - Item::Dropper => 64, - Item::Stone => 64, - Item::PointedDripstone => 64, - Item::PurpleWool => 64, - Item::LimeDye => 64, - Item::DeepslateLapisOre => 64, - Item::CrimsonSlab => 64, - Item::GoldOre => 64, - Item::BlackStainedGlass => 64, - Item::Tnt => 64, - Item::WarpedNylium => 64, - Item::IronChestplate => 1, - Item::SandstoneSlab => 64, - Item::IronTrapdoor => 64, - Item::GoldenAxe => 1, - Item::FloweringAzaleaLeaves => 64, - Item::AxolotlSpawnEgg => 64, - Item::AxolotlBucket => 1, - Item::GoldenHorseArmor => 1, - Item::StrippedJungleWood => 64, - Item::LeatherChestplate => 1, - Item::AcaciaLeaves => 64, - Item::InfestedChiseledStoneBricks => 64, - Item::GrayCandle => 64, - Item::Lilac => 64, - Item::LimeGlazedTerracotta => 64, - Item::TubeCoralFan => 64, - Item::CodSpawnEgg => 64, - Item::LimeStainedGlassPane => 64, - Item::RedTulip => 64, - Item::LightGrayStainedGlassPane => 64, - Item::DiamondShovel => 1, - Item::WarpedWartBlock => 64, - Item::YellowDye => 64, - Item::SpruceWood => 64, - Item::CoalBlock => 64, - Item::ChiseledSandstone => 64, - Item::WaxedExposedCutCopperStairs => 64, - Item::GildedBlackstone => 64, - Item::Torch => 64, - Item::WritableBook => 1, - Item::TotemOfUndying => 1, - Item::WarpedHyphae => 64, - Item::PillagerSpawnEgg => 64, - Item::BirchButton => 64, - Item::CyanWool => 64, - Item::Mutton => 64, - Item::FireCoral => 64, - Item::Lodestone => 64, - Item::WarpedSlab => 64, - Item::BlueCarpet => 64, - Item::Azalea => 64, - Item::BirchStairs => 64, - Item::Pumpkin => 64, - Item::StrippedCrimsonStem => 64, - Item::YellowWool => 64, - Item::CobbledDeepslateSlab => 64, - Item::DarkOakTrapdoor => 64, - Item::BrickWall => 64, - Item::LightBlueConcretePowder => 64, - Item::Farmland => 64, - Item::Book => 64, - Item::BatSpawnEgg => 64, - Item::ItemFrame => 64, - Item::BlackBanner => 16, - Item::LeatherLeggings => 1, - Item::PumpkinPie => 64, - } - } -} -impl Item { - #[doc = "Returns the `max_durability` property of this `Item`."] - #[inline] - pub fn max_durability(&self) -> Option { - match self { - Item::IronBars => None, - Item::PinkGlazedTerracotta => None, - Item::WarpedPlanks => None, - Item::IronNugget => None, - Item::EndStoneBrickSlab => None, - Item::CobbledDeepslateStairs => None, - Item::StrippedOakLog => None, - Item::PolishedBlackstone => None, - Item::DeepslateBrickStairs => None, - Item::StoneShovel => Some(131), - Item::OakSign => None, - Item::SporeBlossom => None, - Item::SlimeBall => None, - Item::WeepingVines => None, - Item::Compass => None, - Item::CodSpawnEgg => None, - Item::QuartzBricks => None, - Item::Map => None, - Item::PiglinBannerPattern => None, - Item::NetheriteShovel => Some(2031), - Item::CyanWool => None, - Item::RedSandstoneSlab => None, - Item::PinkDye => None, - Item::SplashPotion => None, - Item::PolishedBlackstoneSlab => None, - Item::WaxedWeatheredCopper => None, - Item::BrownTerracotta => None, - Item::PoweredRail => None, - Item::JungleSign => None, - Item::Tnt => None, - Item::BlackTerracotta => None, - Item::AcaciaDoor => None, - Item::LightGrayBanner => None, - Item::CrimsonStairs => None, - Item::MossyStoneBricks => None, - Item::SandstoneSlab => None, - Item::InfestedCobblestone => None, - Item::BlackShulkerBox => None, - Item::MagentaBed => None, - Item::Tuff => None, - Item::BlueCarpet => None, - Item::BirchFenceGate => None, - Item::GreenDye => None, - Item::MusicDiscFar => None, - Item::SpruceFenceGate => None, - Item::PinkStainedGlass => None, - Item::JackOLantern => None, - Item::Pumpkin => None, - Item::AndesiteWall => None, - Item::DripstoneBlock => None, - Item::CutCopperSlab => None, - Item::RedCandle => None, - Item::PinkWool => None, - Item::DeadFireCoral => None, - Item::BlackstoneWall => None, - Item::EndPortalFrame => None, - Item::RedstoneTorch => None, - Item::BatSpawnEgg => None, - Item::BrownBed => None, - Item::SmoothSandstone => None, - Item::ExposedCutCopperSlab => None, - Item::DarkOakWood => None, - Item::DiamondAxe => Some(1561), - Item::ZombieVillagerSpawnEgg => None, - Item::Comparator => None, - Item::JungleSapling => None, - Item::EndStoneBricks => None, - Item::BlueStainedGlassPane => None, - Item::Cod => None, - Item::BrownDye => None, - Item::DeadFireCoralBlock => None, - Item::Quartz => None, - Item::AcaciaSapling => None, - Item::OakSapling => None, - Item::DeadHornCoralBlock => None, - Item::DiamondPickaxe => Some(1561), - Item::ChainmailLeggings => Some(225), - Item::PurpurStairs => None, - Item::BlackStainedGlass => None, - Item::DiamondHorseArmor => None, - Item::Dispenser => None, - Item::CookedPorkchop => None, - Item::WaxedWeatheredCutCopperSlab => None, - Item::AcaciaSign => None, - Item::Chicken => None, - Item::YellowBanner => None, - Item::LargeAmethystBud => None, - Item::Beehive => None, - Item::SpruceSign => None, - Item::PurpleStainedGlass => None, - Item::WarpedTrapdoor => None, - Item::PolishedGranite => None, - Item::PolishedBlackstoneWall => None, - Item::WitherSkeletonSpawnEgg => None, - Item::Bricks => None, - Item::BrownShulkerBox => None, - Item::PolishedBlackstoneButton => None, - Item::Snow => None, - Item::TurtleHelmet => Some(275), - Item::FilledMap => None, - Item::StoneButton => None, - Item::DeepslateRedstoneOre => None, - Item::AcaciaLeaves => None, - Item::EndRod => None, - Item::BrownGlazedTerracotta => None, - Item::HornCoral => None, - Item::RawCopper => None, - Item::OrangeStainedGlass => None, - Item::RawGold => None, - Item::BlackBed => None, - Item::SalmonSpawnEgg => None, - Item::EnchantingTable => None, - Item::AmethystCluster => None, - Item::SmoothStoneSlab => None, - Item::StoneBrickWall => None, - Item::GreenStainedGlassPane => None, - Item::PolishedAndesiteStairs => None, - Item::CobblestoneStairs => None, - Item::Coal => None, - Item::PhantomMembrane => None, - Item::Lantern => None, - Item::MagmaCubeSpawnEgg => None, - Item::RawIronBlock => None, - Item::GoatSpawnEgg => None, - Item::PrismarineBricks => None, - Item::MossyStoneBrickStairs => None, - Item::CutSandstone => None, - Item::CarrotOnAStick => Some(25), - Item::GoldenShovel => Some(32), - Item::GoldNugget => None, - Item::CreeperBannerPattern => None, - Item::DeepslateGoldOre => None, - Item::OrangeStainedGlassPane => None, - Item::DeadFireCoralFan => None, - Item::PrismarineWall => None, - Item::SmoothRedSandstone => None, - Item::Charcoal => None, - Item::MagmaBlock => None, - Item::DarkOakSign => None, - Item::IronLeggings => Some(225), - Item::SkeletonHorseSpawnEgg => None, - Item::BlueStainedGlass => None, - Item::StrippedSpruceWood => None, - Item::RedSandstone => None, - Item::NetheriteScrap => None, - Item::PolarBearSpawnEgg => None, - Item::FireCoralFan => None, - Item::GoldenCarrot => None, - Item::LeatherChestplate => Some(80), - Item::WaxedCopperBlock => None, - Item::OrangeBed => None, - Item::BlueConcrete => None, - Item::PrismarineBrickSlab => None, - Item::WeatheredCutCopperSlab => None, - Item::DirtPath => None, - Item::BirchBoat => None, - Item::DeepslateBrickWall => None, - Item::SpectralArrow => None, - Item::BeetrootSeeds => None, - Item::YellowTerracotta => None, - Item::WhiteConcrete => None, - Item::OrangeTulip => None, - Item::Scaffolding => None, - Item::BirchDoor => None, - Item::DriedKelpBlock => None, - Item::WhiteCarpet => None, - Item::StoneHoe => Some(131), - Item::WetSponge => None, - Item::LimeWool => None, - Item::SmoothStone => None, - Item::BirchStairs => None, - Item::LightGrayStainedGlassPane => None, - Item::RedMushroom => None, - Item::PufferfishSpawnEgg => None, - Item::DiamondChestplate => Some(528), - Item::VindicatorSpawnEgg => None, - Item::CutSandstoneSlab => None, - Item::NetherQuartzOre => None, - Item::SoulSand => None, - Item::MushroomStem => None, - Item::ChippedAnvil => None, - Item::Terracotta => None, - Item::WeatheredCopper => None, - Item::GlowItemFrame => None, - Item::KnowledgeBook => None, - Item::Jukebox => None, - Item::MusicDiscStrad => None, - Item::NetherWart => None, - Item::RootedDirt => None, - Item::EmeraldBlock => None, - Item::HayBlock => None, - Item::LightBlueConcretePowder => None, - Item::ParrotSpawnEgg => None, - Item::DeepslateDiamondOre => None, - Item::PinkStainedGlassPane => None, - Item::PurpleCarpet => None, - Item::ChiseledSandstone => None, - Item::MagentaCandle => None, - Item::NetheriteChestplate => Some(592), - Item::WhiteTerracotta => None, - Item::YellowConcrete => None, - Item::CrimsonStem => None, - Item::DarkPrismarine => None, - Item::GoldIngot => None, - Item::EnchantedBook => None, - Item::MagmaCream => None, - Item::SeaPickle => None, - Item::CookedMutton => None, - Item::GoldenLeggings => Some(105), - Item::ChiseledStoneBricks => None, - Item::RabbitSpawnEgg => None, - Item::LimeStainedGlassPane => None, - Item::LeatherBoots => Some(65), - Item::CrimsonNylium => None, - Item::TotemOfUndying => None, - Item::JungleFence => None, - Item::AxolotlBucket => None, - Item::WaxedOxidizedCopper => None, - Item::RedCarpet => None, - Item::EvokerSpawnEgg => None, - Item::GrayConcretePowder => None, - Item::JungleButton => None, - Item::AncientDebris => None, - Item::InfestedCrackedStoneBricks => None, - Item::DolphinSpawnEgg => None, - Item::MooshroomSpawnEgg => None, - Item::FireCoralBlock => None, - Item::IronChestplate => Some(240), - Item::AmethystShard => None, - Item::NetheritePickaxe => Some(2031), - Item::HopperMinecart => None, - Item::ShulkerShell => None, - Item::PhantomSpawnEgg => None, - Item::StoneBrickStairs => None, - Item::LimeShulkerBox => None, - Item::PurpleBanner => None, - Item::BrainCoralFan => None, - Item::RedConcretePowder => None, - Item::EndCrystal => None, - Item::CutCopperStairs => None, - Item::RedStainedGlassPane => None, - Item::AcaciaFence => None, - Item::CyanDye => None, - Item::BeeNest => None, - Item::JunglePlanks => None, - Item::Mycelium => None, - Item::GoldenPickaxe => Some(32), - Item::RepeatingCommandBlock => None, - Item::StrippedBirchLog => None, - Item::DeadTubeCoralBlock => None, - Item::LargeFern => None, - Item::LightWeightedPressurePlate => None, - Item::CrimsonTrapdoor => None, - Item::DarkOakSlab => None, - Item::CrackedDeepslateBricks => None, - Item::CobbledDeepslateSlab => None, - Item::StrippedOakWood => None, - Item::NetherWartBlock => None, - Item::Shroomlight => None, - Item::HoglinSpawnEgg => None, - Item::SpiderSpawnEgg => None, - Item::GlassBottle => None, - Item::BubbleCoral => None, - Item::BlackCandle => None, - Item::DeepslateTileSlab => None, - Item::GreenConcretePowder => None, - Item::PackedIce => None, - Item::DarkOakLog => None, - Item::NetheriteLeggings => Some(555), - Item::Salmon => None, - Item::WrittenBook => None, - Item::RabbitFoot => None, - Item::SlimeBlock => None, - Item::IronHelmet => Some(165), - Item::JungleFenceGate => None, - Item::SweetBerries => None, - Item::LightBlueTerracotta => None, - Item::BrickWall => None, - Item::Grass => None, - Item::LightGrayCarpet => None, - Item::RoseBush => None, - Item::ExposedCutCopperStairs => None, - Item::StonePressurePlate => None, - Item::SkullBannerPattern => None, - Item::HoneyBottle => None, - Item::AcaciaStairs => None, - Item::GrayShulkerBox => None, - Item::BlackstoneStairs => None, - Item::BirchSapling => None, - Item::YellowStainedGlass => None, - Item::FishingRod => Some(64), - Item::LlamaSpawnEgg => None, - Item::PolishedDeepslateStairs => None, - Item::Peony => None, - Item::Calcite => None, - Item::RedTerracotta => None, - Item::PinkTulip => None, - Item::BrickSlab => None, - Item::WarpedDoor => None, - Item::WaxedOxidizedCutCopper => None, - Item::DebugStick => None, - Item::StoneSword => Some(131), - Item::Emerald => None, - Item::BrownCarpet => None, - Item::LightBlueWool => None, - Item::Barrier => None, - Item::RedstoneLamp => None, - Item::YellowConcretePowder => None, - Item::BubbleCoralBlock => None, - Item::WhiteTulip => None, - Item::BrownMushroom => None, - Item::DarkOakFenceGate => None, - Item::StoneStairs => None, - Item::WaterBucket => None, - Item::SpruceBoat => None, - Item::CatSpawnEgg => None, - Item::BlueBanner => None, - Item::CrimsonPressurePlate => None, - Item::MusicDisc11 => None, - Item::ChainmailBoots => Some(195), - Item::CoalOre => None, - Item::LimeStainedGlass => None, - Item::BirchLeaves => None, - Item::ChainmailHelmet => Some(165), - Item::InfestedStone => None, - Item::HoneyBlock => None, - Item::PinkBanner => None, - Item::TallGrass => None, - Item::RedConcrete => None, - Item::LightGrayConcretePowder => None, - Item::StoneAxe => Some(131), - Item::ExposedCopper => None, - Item::SmoothRedSandstoneSlab => None, - Item::SandstoneWall => None, - Item::EndStoneBrickWall => None, - Item::DiamondShovel => Some(1561), - Item::CyanStainedGlassPane => None, - Item::Scute => None, - Item::SprucePlanks => None, - Item::PurpurBlock => None, - Item::GreenStainedGlass => None, - Item::OakDoor => None, - Item::GrassBlock => None, - Item::BlueShulkerBox => None, - Item::WarpedNylium => None, - Item::Cookie => None, - Item::CopperBlock => None, - Item::DragonHead => None, - Item::OrangeConcretePowder => None, - Item::DeepslateCopperOre => None, - Item::TropicalFishBucket => None, - Item::Cactus => None, - Item::BrownStainedGlass => None, - Item::GrayBed => None, - Item::CreeperHead => None, - Item::DioriteStairs => None, - Item::DeepslateBricks => None, - Item::AcaciaWood => None, - Item::BrownStainedGlassPane => None, - Item::PinkCarpet => None, - Item::CodBucket => None, - Item::ChiseledPolishedBlackstone => None, - Item::DioriteSlab => None, - Item::GoldenHelmet => Some(77), - Item::CutRedSandstone => None, - Item::FireCoral => None, - Item::DiamondSword => Some(1561), - Item::DeadBubbleCoral => None, - Item::Bell => None, - Item::BirchButton => None, - Item::Candle => None, - Item::ChorusFlower => None, - Item::Sugar => None, - Item::MelonSeeds => None, - Item::OakPlanks => None, - Item::NetheriteBlock => None, - Item::LightBlueConcrete => None, - Item::DeadBrainCoralFan => None, - Item::Jigsaw => None, - Item::Mutton => None, - Item::WaxedOxidizedCutCopperSlab => None, - Item::Loom => None, - Item::FloweringAzaleaLeaves => None, - Item::WarpedFungus => None, - Item::Barrel => None, - Item::OakWood => None, - Item::BrainCoralBlock => None, - Item::Saddle => None, - Item::LilyOfTheValley => None, - Item::LightGrayDye => None, - Item::SpiderEye => None, - Item::BlueDye => None, - Item::DeepslateTiles => None, - Item::LeatherHorseArmor => None, - Item::CopperOre => None, - Item::IronBlock => None, - Item::GoldenSword => Some(32), - Item::GraniteSlab => None, - Item::WheatSeeds => None, - Item::Bowl => None, - Item::RedNetherBricks => None, - Item::StrippedSpruceLog => None, - Item::InfestedStoneBricks => None, - Item::DeepslateEmeraldOre => None, - Item::GreenShulkerBox => None, - Item::YellowGlazedTerracotta => None, - Item::GlowBerries => None, - Item::WaxedOxidizedCutCopperStairs => None, - Item::OakStairs => None, - Item::MagentaStainedGlassPane => None, - Item::ChainmailChestplate => Some(240), - Item::RedStainedGlass => None, - Item::DiamondHoe => Some(1561), - Item::WaxedWeatheredCutCopper => None, - Item::Paper => None, - Item::GoldenChestplate => Some(112), - Item::BlueTerracotta => None, - Item::OcelotSpawnEgg => None, - Item::LightBlueShulkerBox => None, - Item::DiamondOre => None, - Item::FloweringAzalea => None, - Item::PrismarineBrickStairs => None, - Item::CrimsonSign => None, - Item::LimeGlazedTerracotta => None, - Item::BlackGlazedTerracotta => None, - Item::BoneMeal => None, - Item::BirchFence => None, - Item::CobblestoneWall => None, - Item::GraniteWall => None, - Item::Cake => None, - Item::SmoothBasalt => None, - Item::NetheriteIngot => None, - Item::PumpkinSeeds => None, - Item::Redstone => None, - Item::WaxedCutCopperSlab => None, - Item::DarkOakButton => None, - Item::MossCarpet => None, - Item::GreenGlazedTerracotta => None, - Item::BakedPotato => None, - Item::OxidizedCutCopper => None, - Item::CrimsonButton => None, - Item::Painting => None, - Item::SpruceLeaves => None, - Item::SuspiciousStew => None, - Item::GrayWool => None, - Item::CoalBlock => None, - Item::CartographyTable => None, - Item::WarpedFungusOnAStick => Some(100), - Item::StrippedCrimsonHyphae => None, - Item::IronSword => Some(250), - Item::SoulCampfire => None, - Item::AcaciaBoat => None, - Item::SmithingTable => None, - Item::SpruceStairs => None, - Item::PinkConcretePowder => None, - Item::PurpurSlab => None, - Item::Spyglass => None, - Item::Stonecutter => None, - Item::RedSandstoneWall => None, - Item::Bamboo => None, - Item::WhiteBed => None, - Item::NetherBrickSlab => None, - Item::BlackConcretePowder => None, - Item::MusicDisc13 => None, - Item::OrangeWool => None, - Item::GoldenHorseArmor => None, - Item::BlueGlazedTerracotta => None, - Item::RedNetherBrickSlab => None, - Item::Lodestone => None, - Item::GrayCarpet => None, - Item::CyanShulkerBox => None, - Item::TripwireHook => None, - Item::Seagrass => None, - Item::BirchLog => None, - Item::IronHoe => Some(250), - Item::YellowCarpet => None, - Item::PolishedGraniteSlab => None, - Item::Bow => Some(384), - Item::JungleDoor => None, - Item::PinkCandle => None, - Item::CutRedSandstoneSlab => None, + Item::AxolotlBucket => 787, + Item::Brick => 788, + Item::ClayBall => 789, + Item::DriedKelpBlock => 790, + Item::Paper => 791, + Item::Book => 792, + Item::SlimeBall => 793, + Item::Egg => 794, + Item::Compass => 795, + Item::Bundle => 796, + Item::FishingRod => 797, + Item::Clock => 798, + Item::Spyglass => 799, + Item::GlowstoneDust => 800, + Item::Cod => 801, + Item::Salmon => 802, + Item::TropicalFish => 803, + Item::Pufferfish => 804, + Item::CookedCod => 805, + Item::CookedSalmon => 806, + Item::InkSac => 807, + Item::GlowInkSac => 808, + Item::CocoaBeans => 809, + Item::WhiteDye => 810, + Item::OrangeDye => 811, + Item::MagentaDye => 812, + Item::LightBlueDye => 813, + Item::YellowDye => 814, + Item::LimeDye => 815, + Item::PinkDye => 816, + Item::GrayDye => 817, + Item::LightGrayDye => 818, + Item::CyanDye => 819, + Item::PurpleDye => 820, + Item::BlueDye => 821, + Item::BrownDye => 822, + Item::GreenDye => 823, + Item::RedDye => 824, + Item::BlackDye => 825, + Item::BoneMeal => 826, + Item::Bone => 827, + Item::Sugar => 828, + Item::Cake => 829, + Item::WhiteBed => 830, + Item::OrangeBed => 831, + Item::MagentaBed => 832, + Item::LightBlueBed => 833, + Item::YellowBed => 834, + Item::LimeBed => 835, + Item::PinkBed => 836, + Item::GrayBed => 837, + Item::LightGrayBed => 838, + Item::CyanBed => 839, + Item::PurpleBed => 840, + Item::BlueBed => 841, + Item::BrownBed => 842, + Item::GreenBed => 843, + Item::RedBed => 844, + Item::BlackBed => 845, + Item::Cookie => 846, + Item::FilledMap => 847, + Item::Shears => 848, + Item::MelonSlice => 849, + Item::DriedKelp => 850, + Item::PumpkinSeeds => 851, + Item::MelonSeeds => 852, + Item::Beef => 853, + Item::CookedBeef => 854, + Item::Chicken => 855, + Item::CookedChicken => 856, + Item::RottenFlesh => 857, + Item::EnderPearl => 858, + Item::BlazeRod => 859, + Item::GhastTear => 860, + Item::GoldNugget => 861, + Item::NetherWart => 862, + Item::Potion => 863, + Item::GlassBottle => 864, + Item::SpiderEye => 865, + Item::FermentedSpiderEye => 866, + Item::BlazePowder => 867, + Item::MagmaCream => 868, + Item::BrewingStand => 869, + Item::Cauldron => 870, + Item::EnderEye => 871, + Item::GlisteringMelonSlice => 872, + Item::AxolotlSpawnEgg => 873, + Item::BatSpawnEgg => 874, + Item::BeeSpawnEgg => 875, + Item::BlazeSpawnEgg => 876, + Item::CatSpawnEgg => 877, + Item::CaveSpiderSpawnEgg => 878, + Item::ChickenSpawnEgg => 879, + Item::CodSpawnEgg => 880, + Item::CowSpawnEgg => 881, + Item::CreeperSpawnEgg => 882, + Item::DolphinSpawnEgg => 883, + Item::DonkeySpawnEgg => 884, + Item::DrownedSpawnEgg => 885, + Item::ElderGuardianSpawnEgg => 886, + Item::EndermanSpawnEgg => 887, + Item::EndermiteSpawnEgg => 888, + Item::EvokerSpawnEgg => 889, + Item::FoxSpawnEgg => 890, + Item::GhastSpawnEgg => 891, + Item::GlowSquidSpawnEgg => 892, + Item::GoatSpawnEgg => 893, + Item::GuardianSpawnEgg => 894, + Item::HoglinSpawnEgg => 895, + Item::HorseSpawnEgg => 896, + Item::HuskSpawnEgg => 897, + Item::LlamaSpawnEgg => 898, + Item::MagmaCubeSpawnEgg => 899, + Item::MooshroomSpawnEgg => 900, + Item::MuleSpawnEgg => 901, + Item::OcelotSpawnEgg => 902, + Item::PandaSpawnEgg => 903, + Item::ParrotSpawnEgg => 904, + Item::PhantomSpawnEgg => 905, + Item::PigSpawnEgg => 906, + Item::PiglinSpawnEgg => 907, + Item::PiglinBruteSpawnEgg => 908, + Item::PillagerSpawnEgg => 909, + Item::PolarBearSpawnEgg => 910, + Item::PufferfishSpawnEgg => 911, + Item::RabbitSpawnEgg => 912, + Item::RavagerSpawnEgg => 913, + Item::SalmonSpawnEgg => 914, + Item::SheepSpawnEgg => 915, + Item::ShulkerSpawnEgg => 916, + Item::SilverfishSpawnEgg => 917, + Item::SkeletonSpawnEgg => 918, + Item::SkeletonHorseSpawnEgg => 919, + Item::SlimeSpawnEgg => 920, + Item::SpiderSpawnEgg => 921, + Item::SquidSpawnEgg => 922, + Item::StraySpawnEgg => 923, + Item::StriderSpawnEgg => 924, + Item::TraderLlamaSpawnEgg => 925, + Item::TropicalFishSpawnEgg => 926, + Item::TurtleSpawnEgg => 927, + Item::VexSpawnEgg => 928, + Item::VillagerSpawnEgg => 929, + Item::VindicatorSpawnEgg => 930, + Item::WanderingTraderSpawnEgg => 931, + Item::WitchSpawnEgg => 932, + Item::WitherSkeletonSpawnEgg => 933, + Item::WolfSpawnEgg => 934, + Item::ZoglinSpawnEgg => 935, + Item::ZombieSpawnEgg => 936, + Item::ZombieHorseSpawnEgg => 937, + Item::ZombieVillagerSpawnEgg => 938, + Item::ZombifiedPiglinSpawnEgg => 939, + Item::ExperienceBottle => 940, + Item::FireCharge => 941, + Item::WritableBook => 942, + Item::WrittenBook => 943, + Item::ItemFrame => 944, + Item::GlowItemFrame => 945, + Item::FlowerPot => 946, + Item::Carrot => 947, + Item::Potato => 948, + Item::BakedPotato => 949, + Item::PoisonousPotato => 950, + Item::Map => 951, + Item::GoldenCarrot => 952, + Item::SkeletonSkull => 953, + Item::WitherSkeletonSkull => 954, + Item::PlayerHead => 955, + Item::ZombieHead => 956, + Item::CreeperHead => 957, + Item::DragonHead => 958, + Item::NetherStar => 959, + Item::PumpkinPie => 960, + Item::FireworkRocket => 961, + Item::FireworkStar => 962, + Item::EnchantedBook => 963, + Item::NetherBrick => 964, + Item::PrismarineShard => 965, + Item::PrismarineCrystals => 966, + Item::Rabbit => 967, + Item::CookedRabbit => 968, + Item::RabbitStew => 969, + Item::RabbitFoot => 970, + Item::RabbitHide => 971, + Item::ArmorStand => 972, + Item::IronHorseArmor => 973, + Item::GoldenHorseArmor => 974, + Item::DiamondHorseArmor => 975, + Item::LeatherHorseArmor => 976, + Item::Lead => 977, + Item::NameTag => 978, + Item::CommandBlockMinecart => 979, + Item::Mutton => 980, + Item::CookedMutton => 981, + Item::WhiteBanner => 982, + Item::OrangeBanner => 983, + Item::MagentaBanner => 984, + Item::LightBlueBanner => 985, + Item::YellowBanner => 986, + Item::LimeBanner => 987, + Item::PinkBanner => 988, + Item::GrayBanner => 989, + Item::LightGrayBanner => 990, + Item::CyanBanner => 991, + Item::PurpleBanner => 992, + Item::BlueBanner => 993, + Item::BrownBanner => 994, + Item::GreenBanner => 995, + Item::RedBanner => 996, + Item::BlackBanner => 997, + Item::EndCrystal => 998, + Item::ChorusFruit => 999, + Item::PoppedChorusFruit => 1000, + Item::Beetroot => 1001, + Item::BeetrootSeeds => 1002, + Item::BeetrootSoup => 1003, + Item::DragonBreath => 1004, + Item::SplashPotion => 1005, + Item::SpectralArrow => 1006, + Item::TippedArrow => 1007, + Item::LingeringPotion => 1008, + Item::Shield => 1009, + Item::TotemOfUndying => 1010, + Item::ShulkerShell => 1011, + Item::IronNugget => 1012, + Item::KnowledgeBook => 1013, + Item::DebugStick => 1014, + Item::MusicDisc13 => 1015, + Item::MusicDiscCat => 1016, + Item::MusicDiscBlocks => 1017, + Item::MusicDiscChirp => 1018, + Item::MusicDiscFar => 1019, + Item::MusicDiscMall => 1020, + Item::MusicDiscMellohi => 1021, + Item::MusicDiscStal => 1022, + Item::MusicDiscStrad => 1023, + Item::MusicDiscWard => 1024, + Item::MusicDisc11 => 1025, + Item::MusicDiscWait => 1026, + Item::MusicDiscOtherside => 1027, + Item::MusicDiscPigstep => 1028, + Item::Trident => 1029, + Item::PhantomMembrane => 1030, + Item::NautilusShell => 1031, + Item::HeartOfTheSea => 1032, + Item::Crossbow => 1033, + Item::SuspiciousStew => 1034, + Item::Loom => 1035, + Item::FlowerBannerPattern => 1036, + Item::CreeperBannerPattern => 1037, + Item::SkullBannerPattern => 1038, + Item::MojangBannerPattern => 1039, + Item::GlobeBannerPattern => 1040, + Item::PiglinBannerPattern => 1041, + Item::Composter => 1042, + Item::Barrel => 1043, + Item::Smoker => 1044, + Item::BlastFurnace => 1045, + Item::CartographyTable => 1046, + Item::FletchingTable => 1047, + Item::Grindstone => 1048, + Item::SmithingTable => 1049, + Item::Stonecutter => 1050, + Item::Bell => 1051, + Item::Lantern => 1052, + Item::SoulLantern => 1053, + Item::SweetBerries => 1054, + Item::GlowBerries => 1055, + Item::Campfire => 1056, + Item::SoulCampfire => 1057, + Item::Shroomlight => 1058, + Item::Honeycomb => 1059, + Item::BeeNest => 1060, + Item::Beehive => 1061, + Item::HoneyBottle => 1062, + Item::HoneycombBlock => 1063, + Item::Lodestone => 1064, + Item::CryingObsidian => 1065, + Item::Blackstone => 1066, + Item::BlackstoneSlab => 1067, + Item::BlackstoneStairs => 1068, + Item::GildedBlackstone => 1069, + Item::PolishedBlackstone => 1070, + Item::PolishedBlackstoneSlab => 1071, + Item::PolishedBlackstoneStairs => 1072, + Item::ChiseledPolishedBlackstone => 1073, + Item::PolishedBlackstoneBricks => 1074, + Item::PolishedBlackstoneBrickSlab => 1075, + Item::PolishedBlackstoneBrickStairs => 1076, + Item::CrackedPolishedBlackstoneBricks => 1077, + Item::RespawnAnchor => 1078, + Item::Candle => 1079, + Item::WhiteCandle => 1080, + Item::OrangeCandle => 1081, + Item::MagentaCandle => 1082, + Item::LightBlueCandle => 1083, + Item::YellowCandle => 1084, + Item::LimeCandle => 1085, + Item::PinkCandle => 1086, + Item::GrayCandle => 1087, + Item::LightGrayCandle => 1088, + Item::CyanCandle => 1089, + Item::PurpleCandle => 1090, + Item::BlueCandle => 1091, + Item::BrownCandle => 1092, + Item::GreenCandle => 1093, + Item::RedCandle => 1094, + Item::BlackCandle => 1095, + Item::SmallAmethystBud => 1096, + Item::MediumAmethystBud => 1097, + Item::LargeAmethystBud => 1098, + Item::AmethystCluster => 1099, + Item::PointedDripstone => 1100, + } + } + #[doc = "Gets a `Item` by its `id`."] + #[inline] + pub fn from_id(id: u32) -> Option { + match id { + 1 => Some(Item::Stone), + 2 => Some(Item::Granite), + 3 => Some(Item::PolishedGranite), + 4 => Some(Item::Diorite), + 5 => Some(Item::PolishedDiorite), + 6 => Some(Item::Andesite), + 7 => Some(Item::PolishedAndesite), + 8 => Some(Item::Deepslate), + 9 => Some(Item::CobbledDeepslate), + 10 => Some(Item::PolishedDeepslate), + 11 => Some(Item::Calcite), + 12 => Some(Item::Tuff), + 13 => Some(Item::DripstoneBlock), + 14 => Some(Item::GrassBlock), + 15 => Some(Item::Dirt), + 16 => Some(Item::CoarseDirt), + 17 => Some(Item::Podzol), + 18 => Some(Item::RootedDirt), + 19 => Some(Item::CrimsonNylium), + 20 => Some(Item::WarpedNylium), + 21 => Some(Item::Cobblestone), + 22 => Some(Item::OakPlanks), + 23 => Some(Item::SprucePlanks), + 24 => Some(Item::BirchPlanks), + 25 => Some(Item::JunglePlanks), + 26 => Some(Item::AcaciaPlanks), + 27 => Some(Item::DarkOakPlanks), + 28 => Some(Item::CrimsonPlanks), + 29 => Some(Item::WarpedPlanks), + 30 => Some(Item::OakSapling), + 31 => Some(Item::SpruceSapling), + 32 => Some(Item::BirchSapling), + 33 => Some(Item::JungleSapling), + 34 => Some(Item::AcaciaSapling), + 35 => Some(Item::DarkOakSapling), + 36 => Some(Item::Bedrock), + 37 => Some(Item::Sand), + 38 => Some(Item::RedSand), + 39 => Some(Item::Gravel), + 40 => Some(Item::CoalOre), + 41 => Some(Item::DeepslateCoalOre), + 42 => Some(Item::IronOre), + 43 => Some(Item::DeepslateIronOre), + 44 => Some(Item::CopperOre), + 45 => Some(Item::DeepslateCopperOre), + 46 => Some(Item::GoldOre), + 47 => Some(Item::DeepslateGoldOre), + 48 => Some(Item::RedstoneOre), + 49 => Some(Item::DeepslateRedstoneOre), + 50 => Some(Item::EmeraldOre), + 51 => Some(Item::DeepslateEmeraldOre), + 52 => Some(Item::LapisOre), + 53 => Some(Item::DeepslateLapisOre), + 54 => Some(Item::DiamondOre), + 55 => Some(Item::DeepslateDiamondOre), + 56 => Some(Item::NetherGoldOre), + 57 => Some(Item::NetherQuartzOre), + 58 => Some(Item::AncientDebris), + 59 => Some(Item::CoalBlock), + 60 => Some(Item::RawIronBlock), + 61 => Some(Item::RawCopperBlock), + 62 => Some(Item::RawGoldBlock), + 63 => Some(Item::AmethystBlock), + 64 => Some(Item::BuddingAmethyst), + 65 => Some(Item::IronBlock), + 66 => Some(Item::CopperBlock), + 67 => Some(Item::GoldBlock), + 68 => Some(Item::DiamondBlock), + 69 => Some(Item::NetheriteBlock), + 70 => Some(Item::ExposedCopper), + 71 => Some(Item::WeatheredCopper), + 72 => Some(Item::OxidizedCopper), + 73 => Some(Item::CutCopper), + 74 => Some(Item::ExposedCutCopper), + 75 => Some(Item::WeatheredCutCopper), + 76 => Some(Item::OxidizedCutCopper), + 77 => Some(Item::CutCopperStairs), + 78 => Some(Item::ExposedCutCopperStairs), + 79 => Some(Item::WeatheredCutCopperStairs), + 80 => Some(Item::OxidizedCutCopperStairs), + 81 => Some(Item::CutCopperSlab), + 82 => Some(Item::ExposedCutCopperSlab), + 83 => Some(Item::WeatheredCutCopperSlab), + 84 => Some(Item::OxidizedCutCopperSlab), + 85 => Some(Item::WaxedCopperBlock), + 86 => Some(Item::WaxedExposedCopper), + 87 => Some(Item::WaxedWeatheredCopper), + 88 => Some(Item::WaxedOxidizedCopper), + 89 => Some(Item::WaxedCutCopper), + 90 => Some(Item::WaxedExposedCutCopper), + 91 => Some(Item::WaxedWeatheredCutCopper), + 92 => Some(Item::WaxedOxidizedCutCopper), + 93 => Some(Item::WaxedCutCopperStairs), + 94 => Some(Item::WaxedExposedCutCopperStairs), + 95 => Some(Item::WaxedWeatheredCutCopperStairs), + 96 => Some(Item::WaxedOxidizedCutCopperStairs), + 97 => Some(Item::WaxedCutCopperSlab), + 98 => Some(Item::WaxedExposedCutCopperSlab), + 99 => Some(Item::WaxedWeatheredCutCopperSlab), + 100 => Some(Item::WaxedOxidizedCutCopperSlab), + 101 => Some(Item::OakLog), + 102 => Some(Item::SpruceLog), + 103 => Some(Item::BirchLog), + 104 => Some(Item::JungleLog), + 105 => Some(Item::AcaciaLog), + 106 => Some(Item::DarkOakLog), + 107 => Some(Item::CrimsonStem), + 108 => Some(Item::WarpedStem), + 109 => Some(Item::StrippedOakLog), + 110 => Some(Item::StrippedSpruceLog), + 111 => Some(Item::StrippedBirchLog), + 112 => Some(Item::StrippedJungleLog), + 113 => Some(Item::StrippedAcaciaLog), + 114 => Some(Item::StrippedDarkOakLog), + 115 => Some(Item::StrippedCrimsonStem), + 116 => Some(Item::StrippedWarpedStem), + 117 => Some(Item::StrippedOakWood), + 118 => Some(Item::StrippedSpruceWood), + 119 => Some(Item::StrippedBirchWood), + 120 => Some(Item::StrippedJungleWood), + 121 => Some(Item::StrippedAcaciaWood), + 122 => Some(Item::StrippedDarkOakWood), + 123 => Some(Item::StrippedCrimsonHyphae), + 124 => Some(Item::StrippedWarpedHyphae), + 125 => Some(Item::OakWood), + 126 => Some(Item::SpruceWood), + 127 => Some(Item::BirchWood), + 128 => Some(Item::JungleWood), + 129 => Some(Item::AcaciaWood), + 130 => Some(Item::DarkOakWood), + 131 => Some(Item::CrimsonHyphae), + 132 => Some(Item::WarpedHyphae), + 133 => Some(Item::OakLeaves), + 134 => Some(Item::SpruceLeaves), + 135 => Some(Item::BirchLeaves), + 136 => Some(Item::JungleLeaves), + 137 => Some(Item::AcaciaLeaves), + 138 => Some(Item::DarkOakLeaves), + 139 => Some(Item::AzaleaLeaves), + 140 => Some(Item::FloweringAzaleaLeaves), + 141 => Some(Item::Sponge), + 142 => Some(Item::WetSponge), + 143 => Some(Item::Glass), + 144 => Some(Item::TintedGlass), + 145 => Some(Item::LapisBlock), + 146 => Some(Item::Sandstone), + 147 => Some(Item::ChiseledSandstone), + 148 => Some(Item::CutSandstone), + 149 => Some(Item::Cobweb), + 150 => Some(Item::Grass), + 151 => Some(Item::Fern), + 152 => Some(Item::Azalea), + 153 => Some(Item::FloweringAzalea), + 154 => Some(Item::DeadBush), + 155 => Some(Item::Seagrass), + 156 => Some(Item::SeaPickle), + 157 => Some(Item::WhiteWool), + 158 => Some(Item::OrangeWool), + 159 => Some(Item::MagentaWool), + 160 => Some(Item::LightBlueWool), + 161 => Some(Item::YellowWool), + 162 => Some(Item::LimeWool), + 163 => Some(Item::PinkWool), + 164 => Some(Item::GrayWool), + 165 => Some(Item::LightGrayWool), + 166 => Some(Item::CyanWool), + 167 => Some(Item::PurpleWool), + 168 => Some(Item::BlueWool), + 169 => Some(Item::BrownWool), + 170 => Some(Item::GreenWool), + 171 => Some(Item::RedWool), + 172 => Some(Item::BlackWool), + 173 => Some(Item::Dandelion), + 174 => Some(Item::Poppy), + 175 => Some(Item::BlueOrchid), + 176 => Some(Item::Allium), + 177 => Some(Item::AzureBluet), + 178 => Some(Item::RedTulip), + 179 => Some(Item::OrangeTulip), + 180 => Some(Item::WhiteTulip), + 181 => Some(Item::PinkTulip), + 182 => Some(Item::OxeyeDaisy), + 183 => Some(Item::Cornflower), + 184 => Some(Item::LilyOfTheValley), + 185 => Some(Item::WitherRose), + 186 => Some(Item::SporeBlossom), + 187 => Some(Item::BrownMushroom), + 188 => Some(Item::RedMushroom), + 189 => Some(Item::CrimsonFungus), + 190 => Some(Item::WarpedFungus), + 191 => Some(Item::CrimsonRoots), + 192 => Some(Item::WarpedRoots), + 193 => Some(Item::NetherSprouts), + 194 => Some(Item::WeepingVines), + 195 => Some(Item::TwistingVines), + 196 => Some(Item::SugarCane), + 197 => Some(Item::Kelp), + 198 => Some(Item::MossCarpet), + 199 => Some(Item::MossBlock), + 200 => Some(Item::HangingRoots), + 201 => Some(Item::BigDripleaf), + 202 => Some(Item::SmallDripleaf), + 203 => Some(Item::Bamboo), + 204 => Some(Item::OakSlab), + 205 => Some(Item::SpruceSlab), + 206 => Some(Item::BirchSlab), + 207 => Some(Item::JungleSlab), + 208 => Some(Item::AcaciaSlab), + 209 => Some(Item::DarkOakSlab), + 210 => Some(Item::CrimsonSlab), + 211 => Some(Item::WarpedSlab), + 212 => Some(Item::StoneSlab), + 213 => Some(Item::SmoothStoneSlab), + 214 => Some(Item::SandstoneSlab), + 215 => Some(Item::CutSandstoneSlab), + 216 => Some(Item::PetrifiedOakSlab), + 217 => Some(Item::CobblestoneSlab), + 218 => Some(Item::BrickSlab), + 219 => Some(Item::StoneBrickSlab), + 220 => Some(Item::NetherBrickSlab), + 221 => Some(Item::QuartzSlab), + 222 => Some(Item::RedSandstoneSlab), + 223 => Some(Item::CutRedSandstoneSlab), + 224 => Some(Item::PurpurSlab), + 225 => Some(Item::PrismarineSlab), + 226 => Some(Item::PrismarineBrickSlab), + 227 => Some(Item::DarkPrismarineSlab), + 228 => Some(Item::SmoothQuartz), + 229 => Some(Item::SmoothRedSandstone), + 230 => Some(Item::SmoothSandstone), + 231 => Some(Item::SmoothStone), + 232 => Some(Item::Bricks), + 233 => Some(Item::Bookshelf), + 234 => Some(Item::MossyCobblestone), + 235 => Some(Item::Obsidian), + 236 => Some(Item::Torch), + 237 => Some(Item::EndRod), + 238 => Some(Item::ChorusPlant), + 239 => Some(Item::ChorusFlower), + 240 => Some(Item::PurpurBlock), + 241 => Some(Item::PurpurPillar), + 242 => Some(Item::PurpurStairs), + 243 => Some(Item::Spawner), + 244 => Some(Item::OakStairs), + 245 => Some(Item::Chest), + 246 => Some(Item::CraftingTable), + 247 => Some(Item::Farmland), + 248 => Some(Item::Furnace), + 249 => Some(Item::Ladder), + 250 => Some(Item::CobblestoneStairs), + 251 => Some(Item::Snow), + 252 => Some(Item::Ice), + 253 => Some(Item::SnowBlock), + 254 => Some(Item::Cactus), + 255 => Some(Item::Clay), + 256 => Some(Item::Jukebox), + 257 => Some(Item::OakFence), + 258 => Some(Item::SpruceFence), + 259 => Some(Item::BirchFence), + 260 => Some(Item::JungleFence), + 261 => Some(Item::AcaciaFence), + 262 => Some(Item::DarkOakFence), + 263 => Some(Item::CrimsonFence), + 264 => Some(Item::WarpedFence), + 265 => Some(Item::Pumpkin), + 266 => Some(Item::CarvedPumpkin), + 267 => Some(Item::JackOLantern), + 268 => Some(Item::Netherrack), + 269 => Some(Item::SoulSand), + 270 => Some(Item::SoulSoil), + 271 => Some(Item::Basalt), + 272 => Some(Item::PolishedBasalt), + 273 => Some(Item::SmoothBasalt), + 274 => Some(Item::SoulTorch), + 275 => Some(Item::Glowstone), + 276 => Some(Item::InfestedStone), + 277 => Some(Item::InfestedCobblestone), + 278 => Some(Item::InfestedStoneBricks), + 279 => Some(Item::InfestedMossyStoneBricks), + 280 => Some(Item::InfestedCrackedStoneBricks), + 281 => Some(Item::InfestedChiseledStoneBricks), + 282 => Some(Item::InfestedDeepslate), + 283 => Some(Item::StoneBricks), + 284 => Some(Item::MossyStoneBricks), + 285 => Some(Item::CrackedStoneBricks), + 286 => Some(Item::ChiseledStoneBricks), + 287 => Some(Item::DeepslateBricks), + 288 => Some(Item::CrackedDeepslateBricks), + 289 => Some(Item::DeepslateTiles), + 290 => Some(Item::CrackedDeepslateTiles), + 291 => Some(Item::ChiseledDeepslate), + 292 => Some(Item::BrownMushroomBlock), + 293 => Some(Item::RedMushroomBlock), + 294 => Some(Item::MushroomStem), + 295 => Some(Item::IronBars), + 296 => Some(Item::Chain), + 297 => Some(Item::GlassPane), + 298 => Some(Item::Melon), + 299 => Some(Item::Vine), + 300 => Some(Item::GlowLichen), + 301 => Some(Item::BrickStairs), + 302 => Some(Item::StoneBrickStairs), + 303 => Some(Item::Mycelium), + 304 => Some(Item::LilyPad), + 305 => Some(Item::NetherBricks), + 306 => Some(Item::CrackedNetherBricks), + 307 => Some(Item::ChiseledNetherBricks), + 308 => Some(Item::NetherBrickFence), + 309 => Some(Item::NetherBrickStairs), + 310 => Some(Item::EnchantingTable), + 311 => Some(Item::EndPortalFrame), + 312 => Some(Item::EndStone), + 313 => Some(Item::EndStoneBricks), + 314 => Some(Item::DragonEgg), + 315 => Some(Item::SandstoneStairs), + 316 => Some(Item::EnderChest), + 317 => Some(Item::EmeraldBlock), + 318 => Some(Item::SpruceStairs), + 319 => Some(Item::BirchStairs), + 320 => Some(Item::JungleStairs), + 321 => Some(Item::CrimsonStairs), + 322 => Some(Item::WarpedStairs), + 323 => Some(Item::CommandBlock), + 324 => Some(Item::Beacon), + 325 => Some(Item::CobblestoneWall), + 326 => Some(Item::MossyCobblestoneWall), + 327 => Some(Item::BrickWall), + 328 => Some(Item::PrismarineWall), + 329 => Some(Item::RedSandstoneWall), + 330 => Some(Item::MossyStoneBrickWall), + 331 => Some(Item::GraniteWall), + 332 => Some(Item::StoneBrickWall), + 333 => Some(Item::NetherBrickWall), + 334 => Some(Item::AndesiteWall), + 335 => Some(Item::RedNetherBrickWall), + 336 => Some(Item::SandstoneWall), + 337 => Some(Item::EndStoneBrickWall), + 338 => Some(Item::DioriteWall), + 339 => Some(Item::BlackstoneWall), + 340 => Some(Item::PolishedBlackstoneWall), + 341 => Some(Item::PolishedBlackstoneBrickWall), + 342 => Some(Item::CobbledDeepslateWall), + 343 => Some(Item::PolishedDeepslateWall), + 344 => Some(Item::DeepslateBrickWall), + 345 => Some(Item::DeepslateTileWall), + 346 => Some(Item::Anvil), + 347 => Some(Item::ChippedAnvil), + 348 => Some(Item::DamagedAnvil), + 349 => Some(Item::ChiseledQuartzBlock), + 350 => Some(Item::QuartzBlock), + 351 => Some(Item::QuartzBricks), + 352 => Some(Item::QuartzPillar), + 353 => Some(Item::QuartzStairs), + 354 => Some(Item::WhiteTerracotta), + 355 => Some(Item::OrangeTerracotta), + 356 => Some(Item::MagentaTerracotta), + 357 => Some(Item::LightBlueTerracotta), + 358 => Some(Item::YellowTerracotta), + 359 => Some(Item::LimeTerracotta), + 360 => Some(Item::PinkTerracotta), + 361 => Some(Item::GrayTerracotta), + 362 => Some(Item::LightGrayTerracotta), + 363 => Some(Item::CyanTerracotta), + 364 => Some(Item::PurpleTerracotta), + 365 => Some(Item::BlueTerracotta), + 366 => Some(Item::BrownTerracotta), + 367 => Some(Item::GreenTerracotta), + 368 => Some(Item::RedTerracotta), + 369 => Some(Item::BlackTerracotta), + 370 => Some(Item::Barrier), + 371 => Some(Item::Light), + 372 => Some(Item::HayBlock), + 373 => Some(Item::WhiteCarpet), + 374 => Some(Item::OrangeCarpet), + 375 => Some(Item::MagentaCarpet), + 376 => Some(Item::LightBlueCarpet), + 377 => Some(Item::YellowCarpet), + 378 => Some(Item::LimeCarpet), + 379 => Some(Item::PinkCarpet), + 380 => Some(Item::GrayCarpet), + 381 => Some(Item::LightGrayCarpet), + 382 => Some(Item::CyanCarpet), + 383 => Some(Item::PurpleCarpet), + 384 => Some(Item::BlueCarpet), + 385 => Some(Item::BrownCarpet), + 386 => Some(Item::GreenCarpet), + 387 => Some(Item::RedCarpet), + 388 => Some(Item::BlackCarpet), + 389 => Some(Item::Terracotta), + 390 => Some(Item::PackedIce), + 391 => Some(Item::AcaciaStairs), + 392 => Some(Item::DarkOakStairs), + 393 => Some(Item::DirtPath), + 394 => Some(Item::Sunflower), + 395 => Some(Item::Lilac), + 396 => Some(Item::RoseBush), + 397 => Some(Item::Peony), + 398 => Some(Item::TallGrass), + 399 => Some(Item::LargeFern), + 400 => Some(Item::WhiteStainedGlass), + 401 => Some(Item::OrangeStainedGlass), + 402 => Some(Item::MagentaStainedGlass), + 403 => Some(Item::LightBlueStainedGlass), + 404 => Some(Item::YellowStainedGlass), + 405 => Some(Item::LimeStainedGlass), + 406 => Some(Item::PinkStainedGlass), + 407 => Some(Item::GrayStainedGlass), + 408 => Some(Item::LightGrayStainedGlass), + 409 => Some(Item::CyanStainedGlass), + 410 => Some(Item::PurpleStainedGlass), + 411 => Some(Item::BlueStainedGlass), + 412 => Some(Item::BrownStainedGlass), + 413 => Some(Item::GreenStainedGlass), + 414 => Some(Item::RedStainedGlass), + 415 => Some(Item::BlackStainedGlass), + 416 => Some(Item::WhiteStainedGlassPane), + 417 => Some(Item::OrangeStainedGlassPane), + 418 => Some(Item::MagentaStainedGlassPane), + 419 => Some(Item::LightBlueStainedGlassPane), + 420 => Some(Item::YellowStainedGlassPane), + 421 => Some(Item::LimeStainedGlassPane), + 422 => Some(Item::PinkStainedGlassPane), + 423 => Some(Item::GrayStainedGlassPane), + 424 => Some(Item::LightGrayStainedGlassPane), + 425 => Some(Item::CyanStainedGlassPane), + 426 => Some(Item::PurpleStainedGlassPane), + 427 => Some(Item::BlueStainedGlassPane), + 428 => Some(Item::BrownStainedGlassPane), + 429 => Some(Item::GreenStainedGlassPane), + 430 => Some(Item::RedStainedGlassPane), + 431 => Some(Item::BlackStainedGlassPane), + 432 => Some(Item::Prismarine), + 433 => Some(Item::PrismarineBricks), + 434 => Some(Item::DarkPrismarine), + 435 => Some(Item::PrismarineStairs), + 436 => Some(Item::PrismarineBrickStairs), + 437 => Some(Item::DarkPrismarineStairs), + 438 => Some(Item::SeaLantern), + 439 => Some(Item::RedSandstone), + 440 => Some(Item::ChiseledRedSandstone), + 441 => Some(Item::CutRedSandstone), + 442 => Some(Item::RedSandstoneStairs), + 443 => Some(Item::RepeatingCommandBlock), + 444 => Some(Item::ChainCommandBlock), + 445 => Some(Item::MagmaBlock), + 446 => Some(Item::NetherWartBlock), + 447 => Some(Item::WarpedWartBlock), + 448 => Some(Item::RedNetherBricks), + 449 => Some(Item::BoneBlock), + 450 => Some(Item::StructureVoid), + 451 => Some(Item::ShulkerBox), + 452 => Some(Item::WhiteShulkerBox), + 453 => Some(Item::OrangeShulkerBox), + 454 => Some(Item::MagentaShulkerBox), + 455 => Some(Item::LightBlueShulkerBox), + 456 => Some(Item::YellowShulkerBox), + 457 => Some(Item::LimeShulkerBox), + 458 => Some(Item::PinkShulkerBox), + 459 => Some(Item::GrayShulkerBox), + 460 => Some(Item::LightGrayShulkerBox), + 461 => Some(Item::CyanShulkerBox), + 462 => Some(Item::PurpleShulkerBox), + 463 => Some(Item::BlueShulkerBox), + 464 => Some(Item::BrownShulkerBox), + 465 => Some(Item::GreenShulkerBox), + 466 => Some(Item::RedShulkerBox), + 467 => Some(Item::BlackShulkerBox), + 468 => Some(Item::WhiteGlazedTerracotta), + 469 => Some(Item::OrangeGlazedTerracotta), + 470 => Some(Item::MagentaGlazedTerracotta), + 471 => Some(Item::LightBlueGlazedTerracotta), + 472 => Some(Item::YellowGlazedTerracotta), + 473 => Some(Item::LimeGlazedTerracotta), + 474 => Some(Item::PinkGlazedTerracotta), + 475 => Some(Item::GrayGlazedTerracotta), + 476 => Some(Item::LightGrayGlazedTerracotta), + 477 => Some(Item::CyanGlazedTerracotta), + 478 => Some(Item::PurpleGlazedTerracotta), + 479 => Some(Item::BlueGlazedTerracotta), + 480 => Some(Item::BrownGlazedTerracotta), + 481 => Some(Item::GreenGlazedTerracotta), + 482 => Some(Item::RedGlazedTerracotta), + 483 => Some(Item::BlackGlazedTerracotta), + 484 => Some(Item::WhiteConcrete), + 485 => Some(Item::OrangeConcrete), + 486 => Some(Item::MagentaConcrete), + 487 => Some(Item::LightBlueConcrete), + 488 => Some(Item::YellowConcrete), + 489 => Some(Item::LimeConcrete), + 490 => Some(Item::PinkConcrete), + 491 => Some(Item::GrayConcrete), + 492 => Some(Item::LightGrayConcrete), + 493 => Some(Item::CyanConcrete), + 494 => Some(Item::PurpleConcrete), + 495 => Some(Item::BlueConcrete), + 496 => Some(Item::BrownConcrete), + 497 => Some(Item::GreenConcrete), + 498 => Some(Item::RedConcrete), + 499 => Some(Item::BlackConcrete), + 500 => Some(Item::WhiteConcretePowder), + 501 => Some(Item::OrangeConcretePowder), + 502 => Some(Item::MagentaConcretePowder), + 503 => Some(Item::LightBlueConcretePowder), + 504 => Some(Item::YellowConcretePowder), + 505 => Some(Item::LimeConcretePowder), + 506 => Some(Item::PinkConcretePowder), + 507 => Some(Item::GrayConcretePowder), + 508 => Some(Item::LightGrayConcretePowder), + 509 => Some(Item::CyanConcretePowder), + 510 => Some(Item::PurpleConcretePowder), + 511 => Some(Item::BlueConcretePowder), + 512 => Some(Item::BrownConcretePowder), + 513 => Some(Item::GreenConcretePowder), + 514 => Some(Item::RedConcretePowder), + 515 => Some(Item::BlackConcretePowder), + 516 => Some(Item::TurtleEgg), + 517 => Some(Item::DeadTubeCoralBlock), + 518 => Some(Item::DeadBrainCoralBlock), + 519 => Some(Item::DeadBubbleCoralBlock), + 520 => Some(Item::DeadFireCoralBlock), + 521 => Some(Item::DeadHornCoralBlock), + 522 => Some(Item::TubeCoralBlock), + 523 => Some(Item::BrainCoralBlock), + 524 => Some(Item::BubbleCoralBlock), + 525 => Some(Item::FireCoralBlock), + 526 => Some(Item::HornCoralBlock), + 527 => Some(Item::TubeCoral), + 528 => Some(Item::BrainCoral), + 529 => Some(Item::BubbleCoral), + 530 => Some(Item::FireCoral), + 531 => Some(Item::HornCoral), + 532 => Some(Item::DeadBrainCoral), + 533 => Some(Item::DeadBubbleCoral), + 534 => Some(Item::DeadFireCoral), + 535 => Some(Item::DeadHornCoral), + 536 => Some(Item::DeadTubeCoral), + 537 => Some(Item::TubeCoralFan), + 538 => Some(Item::BrainCoralFan), + 539 => Some(Item::BubbleCoralFan), + 540 => Some(Item::FireCoralFan), + 541 => Some(Item::HornCoralFan), + 542 => Some(Item::DeadTubeCoralFan), + 543 => Some(Item::DeadBrainCoralFan), + 544 => Some(Item::DeadBubbleCoralFan), + 545 => Some(Item::DeadFireCoralFan), + 546 => Some(Item::DeadHornCoralFan), + 547 => Some(Item::BlueIce), + 548 => Some(Item::Conduit), + 549 => Some(Item::PolishedGraniteStairs), + 550 => Some(Item::SmoothRedSandstoneStairs), + 551 => Some(Item::MossyStoneBrickStairs), + 552 => Some(Item::PolishedDioriteStairs), + 553 => Some(Item::MossyCobblestoneStairs), + 554 => Some(Item::EndStoneBrickStairs), + 555 => Some(Item::StoneStairs), + 556 => Some(Item::SmoothSandstoneStairs), + 557 => Some(Item::SmoothQuartzStairs), + 558 => Some(Item::GraniteStairs), + 559 => Some(Item::AndesiteStairs), + 560 => Some(Item::RedNetherBrickStairs), + 561 => Some(Item::PolishedAndesiteStairs), + 562 => Some(Item::DioriteStairs), + 563 => Some(Item::CobbledDeepslateStairs), + 564 => Some(Item::PolishedDeepslateStairs), + 565 => Some(Item::DeepslateBrickStairs), + 566 => Some(Item::DeepslateTileStairs), + 567 => Some(Item::PolishedGraniteSlab), + 568 => Some(Item::SmoothRedSandstoneSlab), + 569 => Some(Item::MossyStoneBrickSlab), + 570 => Some(Item::PolishedDioriteSlab), + 571 => Some(Item::MossyCobblestoneSlab), + 572 => Some(Item::EndStoneBrickSlab), + 573 => Some(Item::SmoothSandstoneSlab), + 574 => Some(Item::SmoothQuartzSlab), + 575 => Some(Item::GraniteSlab), + 576 => Some(Item::AndesiteSlab), + 577 => Some(Item::RedNetherBrickSlab), + 578 => Some(Item::PolishedAndesiteSlab), + 579 => Some(Item::DioriteSlab), + 580 => Some(Item::CobbledDeepslateSlab), + 581 => Some(Item::PolishedDeepslateSlab), + 582 => Some(Item::DeepslateBrickSlab), + 583 => Some(Item::DeepslateTileSlab), + 584 => Some(Item::Scaffolding), + 585 => Some(Item::Redstone), + 586 => Some(Item::RedstoneTorch), + 587 => Some(Item::RedstoneBlock), + 588 => Some(Item::Repeater), + 589 => Some(Item::Comparator), + 590 => Some(Item::Piston), + 591 => Some(Item::StickyPiston), + 592 => Some(Item::SlimeBlock), + 593 => Some(Item::HoneyBlock), + 594 => Some(Item::Observer), + 595 => Some(Item::Hopper), + 596 => Some(Item::Dispenser), + 597 => Some(Item::Dropper), + 598 => Some(Item::Lectern), + 599 => Some(Item::Target), + 600 => Some(Item::Lever), + 601 => Some(Item::LightningRod), + 602 => Some(Item::DaylightDetector), + 603 => Some(Item::SculkSensor), + 604 => Some(Item::TripwireHook), + 605 => Some(Item::TrappedChest), + 606 => Some(Item::Tnt), + 607 => Some(Item::RedstoneLamp), + 608 => Some(Item::NoteBlock), + 609 => Some(Item::StoneButton), + 610 => Some(Item::PolishedBlackstoneButton), + 611 => Some(Item::OakButton), + 612 => Some(Item::SpruceButton), + 613 => Some(Item::BirchButton), + 614 => Some(Item::JungleButton), + 615 => Some(Item::AcaciaButton), + 616 => Some(Item::DarkOakButton), + 617 => Some(Item::CrimsonButton), + 618 => Some(Item::WarpedButton), + 619 => Some(Item::StonePressurePlate), + 620 => Some(Item::PolishedBlackstonePressurePlate), + 621 => Some(Item::LightWeightedPressurePlate), + 622 => Some(Item::HeavyWeightedPressurePlate), + 623 => Some(Item::OakPressurePlate), + 624 => Some(Item::SprucePressurePlate), + 625 => Some(Item::BirchPressurePlate), + 626 => Some(Item::JunglePressurePlate), + 627 => Some(Item::AcaciaPressurePlate), + 628 => Some(Item::DarkOakPressurePlate), + 629 => Some(Item::CrimsonPressurePlate), + 630 => Some(Item::WarpedPressurePlate), + 631 => Some(Item::IronDoor), + 632 => Some(Item::OakDoor), + 633 => Some(Item::SpruceDoor), + 634 => Some(Item::BirchDoor), + 635 => Some(Item::JungleDoor), + 636 => Some(Item::AcaciaDoor), + 637 => Some(Item::DarkOakDoor), + 638 => Some(Item::CrimsonDoor), + 639 => Some(Item::WarpedDoor), + 640 => Some(Item::IronTrapdoor), + 641 => Some(Item::OakTrapdoor), + 642 => Some(Item::SpruceTrapdoor), + 643 => Some(Item::BirchTrapdoor), + 644 => Some(Item::JungleTrapdoor), + 645 => Some(Item::AcaciaTrapdoor), + 646 => Some(Item::DarkOakTrapdoor), + 647 => Some(Item::CrimsonTrapdoor), + 648 => Some(Item::WarpedTrapdoor), + 649 => Some(Item::OakFenceGate), + 650 => Some(Item::SpruceFenceGate), + 651 => Some(Item::BirchFenceGate), + 652 => Some(Item::JungleFenceGate), + 653 => Some(Item::AcaciaFenceGate), + 654 => Some(Item::DarkOakFenceGate), + 655 => Some(Item::CrimsonFenceGate), + 656 => Some(Item::WarpedFenceGate), + 657 => Some(Item::PoweredRail), + 658 => Some(Item::DetectorRail), + 659 => Some(Item::Rail), + 660 => Some(Item::ActivatorRail), + 661 => Some(Item::Saddle), + 662 => Some(Item::Minecart), + 663 => Some(Item::ChestMinecart), + 664 => Some(Item::FurnaceMinecart), + 665 => Some(Item::TntMinecart), + 666 => Some(Item::HopperMinecart), + 667 => Some(Item::CarrotOnAStick), + 668 => Some(Item::WarpedFungusOnAStick), + 669 => Some(Item::Elytra), + 670 => Some(Item::OakBoat), + 671 => Some(Item::SpruceBoat), + 672 => Some(Item::BirchBoat), + 673 => Some(Item::JungleBoat), + 674 => Some(Item::AcaciaBoat), + 675 => Some(Item::DarkOakBoat), + 676 => Some(Item::StructureBlock), + 677 => Some(Item::Jigsaw), + 678 => Some(Item::TurtleHelmet), + 679 => Some(Item::Scute), + 680 => Some(Item::FlintAndSteel), + 681 => Some(Item::Apple), + 682 => Some(Item::Bow), + 683 => Some(Item::Arrow), + 684 => Some(Item::Coal), + 685 => Some(Item::Charcoal), + 686 => Some(Item::Diamond), + 687 => Some(Item::Emerald), + 688 => Some(Item::LapisLazuli), + 689 => Some(Item::Quartz), + 690 => Some(Item::AmethystShard), + 691 => Some(Item::RawIron), + 692 => Some(Item::IronIngot), + 693 => Some(Item::RawCopper), + 694 => Some(Item::CopperIngot), + 695 => Some(Item::RawGold), + 696 => Some(Item::GoldIngot), + 697 => Some(Item::NetheriteIngot), + 698 => Some(Item::NetheriteScrap), + 699 => Some(Item::WoodenSword), + 700 => Some(Item::WoodenShovel), + 701 => Some(Item::WoodenPickaxe), + 702 => Some(Item::WoodenAxe), + 703 => Some(Item::WoodenHoe), + 704 => Some(Item::StoneSword), + 705 => Some(Item::StoneShovel), + 706 => Some(Item::StonePickaxe), + 707 => Some(Item::StoneAxe), + 708 => Some(Item::StoneHoe), + 709 => Some(Item::GoldenSword), + 710 => Some(Item::GoldenShovel), + 711 => Some(Item::GoldenPickaxe), + 712 => Some(Item::GoldenAxe), + 713 => Some(Item::GoldenHoe), + 714 => Some(Item::IronSword), + 715 => Some(Item::IronShovel), + 716 => Some(Item::IronPickaxe), + 717 => Some(Item::IronAxe), + 718 => Some(Item::IronHoe), + 719 => Some(Item::DiamondSword), + 720 => Some(Item::DiamondShovel), + 721 => Some(Item::DiamondPickaxe), + 722 => Some(Item::DiamondAxe), + 723 => Some(Item::DiamondHoe), + 724 => Some(Item::NetheriteSword), + 725 => Some(Item::NetheriteShovel), + 726 => Some(Item::NetheritePickaxe), + 727 => Some(Item::NetheriteAxe), + 728 => Some(Item::NetheriteHoe), + 729 => Some(Item::Stick), + 730 => Some(Item::Bowl), + 731 => Some(Item::MushroomStew), + 732 => Some(Item::String), + 733 => Some(Item::Feather), + 734 => Some(Item::Gunpowder), + 735 => Some(Item::WheatSeeds), + 736 => Some(Item::Wheat), + 737 => Some(Item::Bread), + 738 => Some(Item::LeatherHelmet), + 739 => Some(Item::LeatherChestplate), + 740 => Some(Item::LeatherLeggings), + 741 => Some(Item::LeatherBoots), + 742 => Some(Item::ChainmailHelmet), + 743 => Some(Item::ChainmailChestplate), + 744 => Some(Item::ChainmailLeggings), + 745 => Some(Item::ChainmailBoots), + 746 => Some(Item::IronHelmet), + 747 => Some(Item::IronChestplate), + 748 => Some(Item::IronLeggings), + 749 => Some(Item::IronBoots), + 750 => Some(Item::DiamondHelmet), + 751 => Some(Item::DiamondChestplate), + 752 => Some(Item::DiamondLeggings), + 753 => Some(Item::DiamondBoots), + 754 => Some(Item::GoldenHelmet), + 755 => Some(Item::GoldenChestplate), + 756 => Some(Item::GoldenLeggings), + 757 => Some(Item::GoldenBoots), + 758 => Some(Item::NetheriteHelmet), + 759 => Some(Item::NetheriteChestplate), + 760 => Some(Item::NetheriteLeggings), + 761 => Some(Item::NetheriteBoots), + 762 => Some(Item::Flint), + 763 => Some(Item::Porkchop), + 764 => Some(Item::CookedPorkchop), + 765 => Some(Item::Painting), + 766 => Some(Item::GoldenApple), + 767 => Some(Item::EnchantedGoldenApple), + 768 => Some(Item::OakSign), + 769 => Some(Item::SpruceSign), + 770 => Some(Item::BirchSign), + 771 => Some(Item::JungleSign), + 772 => Some(Item::AcaciaSign), + 773 => Some(Item::DarkOakSign), + 774 => Some(Item::CrimsonSign), + 775 => Some(Item::WarpedSign), + 776 => Some(Item::Bucket), + 777 => Some(Item::WaterBucket), + 778 => Some(Item::LavaBucket), + 779 => Some(Item::PowderSnowBucket), + 780 => Some(Item::Snowball), + 781 => Some(Item::Leather), + 782 => Some(Item::MilkBucket), + 783 => Some(Item::PufferfishBucket), + 784 => Some(Item::SalmonBucket), + 785 => Some(Item::CodBucket), + 786 => Some(Item::TropicalFishBucket), + 787 => Some(Item::AxolotlBucket), + 788 => Some(Item::Brick), + 789 => Some(Item::ClayBall), + 790 => Some(Item::DriedKelpBlock), + 791 => Some(Item::Paper), + 792 => Some(Item::Book), + 793 => Some(Item::SlimeBall), + 794 => Some(Item::Egg), + 795 => Some(Item::Compass), + 796 => Some(Item::Bundle), + 797 => Some(Item::FishingRod), + 798 => Some(Item::Clock), + 799 => Some(Item::Spyglass), + 800 => Some(Item::GlowstoneDust), + 801 => Some(Item::Cod), + 802 => Some(Item::Salmon), + 803 => Some(Item::TropicalFish), + 804 => Some(Item::Pufferfish), + 805 => Some(Item::CookedCod), + 806 => Some(Item::CookedSalmon), + 807 => Some(Item::InkSac), + 808 => Some(Item::GlowInkSac), + 809 => Some(Item::CocoaBeans), + 810 => Some(Item::WhiteDye), + 811 => Some(Item::OrangeDye), + 812 => Some(Item::MagentaDye), + 813 => Some(Item::LightBlueDye), + 814 => Some(Item::YellowDye), + 815 => Some(Item::LimeDye), + 816 => Some(Item::PinkDye), + 817 => Some(Item::GrayDye), + 818 => Some(Item::LightGrayDye), + 819 => Some(Item::CyanDye), + 820 => Some(Item::PurpleDye), + 821 => Some(Item::BlueDye), + 822 => Some(Item::BrownDye), + 823 => Some(Item::GreenDye), + 824 => Some(Item::RedDye), + 825 => Some(Item::BlackDye), + 826 => Some(Item::BoneMeal), + 827 => Some(Item::Bone), + 828 => Some(Item::Sugar), + 829 => Some(Item::Cake), + 830 => Some(Item::WhiteBed), + 831 => Some(Item::OrangeBed), + 832 => Some(Item::MagentaBed), + 833 => Some(Item::LightBlueBed), + 834 => Some(Item::YellowBed), + 835 => Some(Item::LimeBed), + 836 => Some(Item::PinkBed), + 837 => Some(Item::GrayBed), + 838 => Some(Item::LightGrayBed), + 839 => Some(Item::CyanBed), + 840 => Some(Item::PurpleBed), + 841 => Some(Item::BlueBed), + 842 => Some(Item::BrownBed), + 843 => Some(Item::GreenBed), + 844 => Some(Item::RedBed), + 845 => Some(Item::BlackBed), + 846 => Some(Item::Cookie), + 847 => Some(Item::FilledMap), + 848 => Some(Item::Shears), + 849 => Some(Item::MelonSlice), + 850 => Some(Item::DriedKelp), + 851 => Some(Item::PumpkinSeeds), + 852 => Some(Item::MelonSeeds), + 853 => Some(Item::Beef), + 854 => Some(Item::CookedBeef), + 855 => Some(Item::Chicken), + 856 => Some(Item::CookedChicken), + 857 => Some(Item::RottenFlesh), + 858 => Some(Item::EnderPearl), + 859 => Some(Item::BlazeRod), + 860 => Some(Item::GhastTear), + 861 => Some(Item::GoldNugget), + 862 => Some(Item::NetherWart), + 863 => Some(Item::Potion), + 864 => Some(Item::GlassBottle), + 865 => Some(Item::SpiderEye), + 866 => Some(Item::FermentedSpiderEye), + 867 => Some(Item::BlazePowder), + 868 => Some(Item::MagmaCream), + 869 => Some(Item::BrewingStand), + 870 => Some(Item::Cauldron), + 871 => Some(Item::EnderEye), + 872 => Some(Item::GlisteringMelonSlice), + 873 => Some(Item::AxolotlSpawnEgg), + 874 => Some(Item::BatSpawnEgg), + 875 => Some(Item::BeeSpawnEgg), + 876 => Some(Item::BlazeSpawnEgg), + 877 => Some(Item::CatSpawnEgg), + 878 => Some(Item::CaveSpiderSpawnEgg), + 879 => Some(Item::ChickenSpawnEgg), + 880 => Some(Item::CodSpawnEgg), + 881 => Some(Item::CowSpawnEgg), + 882 => Some(Item::CreeperSpawnEgg), + 883 => Some(Item::DolphinSpawnEgg), + 884 => Some(Item::DonkeySpawnEgg), + 885 => Some(Item::DrownedSpawnEgg), + 886 => Some(Item::ElderGuardianSpawnEgg), + 887 => Some(Item::EndermanSpawnEgg), + 888 => Some(Item::EndermiteSpawnEgg), + 889 => Some(Item::EvokerSpawnEgg), + 890 => Some(Item::FoxSpawnEgg), + 891 => Some(Item::GhastSpawnEgg), + 892 => Some(Item::GlowSquidSpawnEgg), + 893 => Some(Item::GoatSpawnEgg), + 894 => Some(Item::GuardianSpawnEgg), + 895 => Some(Item::HoglinSpawnEgg), + 896 => Some(Item::HorseSpawnEgg), + 897 => Some(Item::HuskSpawnEgg), + 898 => Some(Item::LlamaSpawnEgg), + 899 => Some(Item::MagmaCubeSpawnEgg), + 900 => Some(Item::MooshroomSpawnEgg), + 901 => Some(Item::MuleSpawnEgg), + 902 => Some(Item::OcelotSpawnEgg), + 903 => Some(Item::PandaSpawnEgg), + 904 => Some(Item::ParrotSpawnEgg), + 905 => Some(Item::PhantomSpawnEgg), + 906 => Some(Item::PigSpawnEgg), + 907 => Some(Item::PiglinSpawnEgg), + 908 => Some(Item::PiglinBruteSpawnEgg), + 909 => Some(Item::PillagerSpawnEgg), + 910 => Some(Item::PolarBearSpawnEgg), + 911 => Some(Item::PufferfishSpawnEgg), + 912 => Some(Item::RabbitSpawnEgg), + 913 => Some(Item::RavagerSpawnEgg), + 914 => Some(Item::SalmonSpawnEgg), + 915 => Some(Item::SheepSpawnEgg), + 916 => Some(Item::ShulkerSpawnEgg), + 917 => Some(Item::SilverfishSpawnEgg), + 918 => Some(Item::SkeletonSpawnEgg), + 919 => Some(Item::SkeletonHorseSpawnEgg), + 920 => Some(Item::SlimeSpawnEgg), + 921 => Some(Item::SpiderSpawnEgg), + 922 => Some(Item::SquidSpawnEgg), + 923 => Some(Item::StraySpawnEgg), + 924 => Some(Item::StriderSpawnEgg), + 925 => Some(Item::TraderLlamaSpawnEgg), + 926 => Some(Item::TropicalFishSpawnEgg), + 927 => Some(Item::TurtleSpawnEgg), + 928 => Some(Item::VexSpawnEgg), + 929 => Some(Item::VillagerSpawnEgg), + 930 => Some(Item::VindicatorSpawnEgg), + 931 => Some(Item::WanderingTraderSpawnEgg), + 932 => Some(Item::WitchSpawnEgg), + 933 => Some(Item::WitherSkeletonSpawnEgg), + 934 => Some(Item::WolfSpawnEgg), + 935 => Some(Item::ZoglinSpawnEgg), + 936 => Some(Item::ZombieSpawnEgg), + 937 => Some(Item::ZombieHorseSpawnEgg), + 938 => Some(Item::ZombieVillagerSpawnEgg), + 939 => Some(Item::ZombifiedPiglinSpawnEgg), + 940 => Some(Item::ExperienceBottle), + 941 => Some(Item::FireCharge), + 942 => Some(Item::WritableBook), + 943 => Some(Item::WrittenBook), + 944 => Some(Item::ItemFrame), + 945 => Some(Item::GlowItemFrame), + 946 => Some(Item::FlowerPot), + 947 => Some(Item::Carrot), + 948 => Some(Item::Potato), + 949 => Some(Item::BakedPotato), + 950 => Some(Item::PoisonousPotato), + 951 => Some(Item::Map), + 952 => Some(Item::GoldenCarrot), + 953 => Some(Item::SkeletonSkull), + 954 => Some(Item::WitherSkeletonSkull), + 955 => Some(Item::PlayerHead), + 956 => Some(Item::ZombieHead), + 957 => Some(Item::CreeperHead), + 958 => Some(Item::DragonHead), + 959 => Some(Item::NetherStar), + 960 => Some(Item::PumpkinPie), + 961 => Some(Item::FireworkRocket), + 962 => Some(Item::FireworkStar), + 963 => Some(Item::EnchantedBook), + 964 => Some(Item::NetherBrick), + 965 => Some(Item::PrismarineShard), + 966 => Some(Item::PrismarineCrystals), + 967 => Some(Item::Rabbit), + 968 => Some(Item::CookedRabbit), + 969 => Some(Item::RabbitStew), + 970 => Some(Item::RabbitFoot), + 971 => Some(Item::RabbitHide), + 972 => Some(Item::ArmorStand), + 973 => Some(Item::IronHorseArmor), + 974 => Some(Item::GoldenHorseArmor), + 975 => Some(Item::DiamondHorseArmor), + 976 => Some(Item::LeatherHorseArmor), + 977 => Some(Item::Lead), + 978 => Some(Item::NameTag), + 979 => Some(Item::CommandBlockMinecart), + 980 => Some(Item::Mutton), + 981 => Some(Item::CookedMutton), + 982 => Some(Item::WhiteBanner), + 983 => Some(Item::OrangeBanner), + 984 => Some(Item::MagentaBanner), + 985 => Some(Item::LightBlueBanner), + 986 => Some(Item::YellowBanner), + 987 => Some(Item::LimeBanner), + 988 => Some(Item::PinkBanner), + 989 => Some(Item::GrayBanner), + 990 => Some(Item::LightGrayBanner), + 991 => Some(Item::CyanBanner), + 992 => Some(Item::PurpleBanner), + 993 => Some(Item::BlueBanner), + 994 => Some(Item::BrownBanner), + 995 => Some(Item::GreenBanner), + 996 => Some(Item::RedBanner), + 997 => Some(Item::BlackBanner), + 998 => Some(Item::EndCrystal), + 999 => Some(Item::ChorusFruit), + 1000 => Some(Item::PoppedChorusFruit), + 1001 => Some(Item::Beetroot), + 1002 => Some(Item::BeetrootSeeds), + 1003 => Some(Item::BeetrootSoup), + 1004 => Some(Item::DragonBreath), + 1005 => Some(Item::SplashPotion), + 1006 => Some(Item::SpectralArrow), + 1007 => Some(Item::TippedArrow), + 1008 => Some(Item::LingeringPotion), + 1009 => Some(Item::Shield), + 1010 => Some(Item::TotemOfUndying), + 1011 => Some(Item::ShulkerShell), + 1012 => Some(Item::IronNugget), + 1013 => Some(Item::KnowledgeBook), + 1014 => Some(Item::DebugStick), + 1015 => Some(Item::MusicDisc13), + 1016 => Some(Item::MusicDiscCat), + 1017 => Some(Item::MusicDiscBlocks), + 1018 => Some(Item::MusicDiscChirp), + 1019 => Some(Item::MusicDiscFar), + 1020 => Some(Item::MusicDiscMall), + 1021 => Some(Item::MusicDiscMellohi), + 1022 => Some(Item::MusicDiscStal), + 1023 => Some(Item::MusicDiscStrad), + 1024 => Some(Item::MusicDiscWard), + 1025 => Some(Item::MusicDisc11), + 1026 => Some(Item::MusicDiscWait), + 1027 => Some(Item::MusicDiscOtherside), + 1028 => Some(Item::MusicDiscPigstep), + 1029 => Some(Item::Trident), + 1030 => Some(Item::PhantomMembrane), + 1031 => Some(Item::NautilusShell), + 1032 => Some(Item::HeartOfTheSea), + 1033 => Some(Item::Crossbow), + 1034 => Some(Item::SuspiciousStew), + 1035 => Some(Item::Loom), + 1036 => Some(Item::FlowerBannerPattern), + 1037 => Some(Item::CreeperBannerPattern), + 1038 => Some(Item::SkullBannerPattern), + 1039 => Some(Item::MojangBannerPattern), + 1040 => Some(Item::GlobeBannerPattern), + 1041 => Some(Item::PiglinBannerPattern), + 1042 => Some(Item::Composter), + 1043 => Some(Item::Barrel), + 1044 => Some(Item::Smoker), + 1045 => Some(Item::BlastFurnace), + 1046 => Some(Item::CartographyTable), + 1047 => Some(Item::FletchingTable), + 1048 => Some(Item::Grindstone), + 1049 => Some(Item::SmithingTable), + 1050 => Some(Item::Stonecutter), + 1051 => Some(Item::Bell), + 1052 => Some(Item::Lantern), + 1053 => Some(Item::SoulLantern), + 1054 => Some(Item::SweetBerries), + 1055 => Some(Item::GlowBerries), + 1056 => Some(Item::Campfire), + 1057 => Some(Item::SoulCampfire), + 1058 => Some(Item::Shroomlight), + 1059 => Some(Item::Honeycomb), + 1060 => Some(Item::BeeNest), + 1061 => Some(Item::Beehive), + 1062 => Some(Item::HoneyBottle), + 1063 => Some(Item::HoneycombBlock), + 1064 => Some(Item::Lodestone), + 1065 => Some(Item::CryingObsidian), + 1066 => Some(Item::Blackstone), + 1067 => Some(Item::BlackstoneSlab), + 1068 => Some(Item::BlackstoneStairs), + 1069 => Some(Item::GildedBlackstone), + 1070 => Some(Item::PolishedBlackstone), + 1071 => Some(Item::PolishedBlackstoneSlab), + 1072 => Some(Item::PolishedBlackstoneStairs), + 1073 => Some(Item::ChiseledPolishedBlackstone), + 1074 => Some(Item::PolishedBlackstoneBricks), + 1075 => Some(Item::PolishedBlackstoneBrickSlab), + 1076 => Some(Item::PolishedBlackstoneBrickStairs), + 1077 => Some(Item::CrackedPolishedBlackstoneBricks), + 1078 => Some(Item::RespawnAnchor), + 1079 => Some(Item::Candle), + 1080 => Some(Item::WhiteCandle), + 1081 => Some(Item::OrangeCandle), + 1082 => Some(Item::MagentaCandle), + 1083 => Some(Item::LightBlueCandle), + 1084 => Some(Item::YellowCandle), + 1085 => Some(Item::LimeCandle), + 1086 => Some(Item::PinkCandle), + 1087 => Some(Item::GrayCandle), + 1088 => Some(Item::LightGrayCandle), + 1089 => Some(Item::CyanCandle), + 1090 => Some(Item::PurpleCandle), + 1091 => Some(Item::BlueCandle), + 1092 => Some(Item::BrownCandle), + 1093 => Some(Item::GreenCandle), + 1094 => Some(Item::RedCandle), + 1095 => Some(Item::BlackCandle), + 1096 => Some(Item::SmallAmethystBud), + 1097 => Some(Item::MediumAmethystBud), + 1098 => Some(Item::LargeAmethystBud), + 1099 => Some(Item::AmethystCluster), + 1100 => Some(Item::PointedDripstone), + _ => None, + } + } +} +impl Item { + #[doc = "Returns the `name` property of this `Item`."] + #[inline] + pub fn name(&self) -> &'static str { + match self { + Item::Stone => "stone", + Item::Granite => "granite", + Item::PolishedGranite => "polished_granite", + Item::Diorite => "diorite", + Item::PolishedDiorite => "polished_diorite", + Item::Andesite => "andesite", + Item::PolishedAndesite => "polished_andesite", + Item::Deepslate => "deepslate", + Item::CobbledDeepslate => "cobbled_deepslate", + Item::PolishedDeepslate => "polished_deepslate", + Item::Calcite => "calcite", + Item::Tuff => "tuff", + Item::DripstoneBlock => "dripstone_block", + Item::GrassBlock => "grass_block", + Item::Dirt => "dirt", + Item::CoarseDirt => "coarse_dirt", + Item::Podzol => "podzol", + Item::RootedDirt => "rooted_dirt", + Item::CrimsonNylium => "crimson_nylium", + Item::WarpedNylium => "warped_nylium", + Item::Cobblestone => "cobblestone", + Item::OakPlanks => "oak_planks", + Item::SprucePlanks => "spruce_planks", + Item::BirchPlanks => "birch_planks", + Item::JunglePlanks => "jungle_planks", + Item::AcaciaPlanks => "acacia_planks", + Item::DarkOakPlanks => "dark_oak_planks", + Item::CrimsonPlanks => "crimson_planks", + Item::WarpedPlanks => "warped_planks", + Item::OakSapling => "oak_sapling", + Item::SpruceSapling => "spruce_sapling", + Item::BirchSapling => "birch_sapling", + Item::JungleSapling => "jungle_sapling", + Item::AcaciaSapling => "acacia_sapling", + Item::DarkOakSapling => "dark_oak_sapling", + Item::Bedrock => "bedrock", + Item::Sand => "sand", + Item::RedSand => "red_sand", + Item::Gravel => "gravel", + Item::CoalOre => "coal_ore", + Item::DeepslateCoalOre => "deepslate_coal_ore", + Item::IronOre => "iron_ore", + Item::DeepslateIronOre => "deepslate_iron_ore", + Item::CopperOre => "copper_ore", + Item::DeepslateCopperOre => "deepslate_copper_ore", + Item::GoldOre => "gold_ore", + Item::DeepslateGoldOre => "deepslate_gold_ore", + Item::RedstoneOre => "redstone_ore", + Item::DeepslateRedstoneOre => "deepslate_redstone_ore", + Item::EmeraldOre => "emerald_ore", + Item::DeepslateEmeraldOre => "deepslate_emerald_ore", + Item::LapisOre => "lapis_ore", + Item::DeepslateLapisOre => "deepslate_lapis_ore", + Item::DiamondOre => "diamond_ore", + Item::DeepslateDiamondOre => "deepslate_diamond_ore", + Item::NetherGoldOre => "nether_gold_ore", + Item::NetherQuartzOre => "nether_quartz_ore", + Item::AncientDebris => "ancient_debris", + Item::CoalBlock => "coal_block", + Item::RawIronBlock => "raw_iron_block", + Item::RawCopperBlock => "raw_copper_block", + Item::RawGoldBlock => "raw_gold_block", + Item::AmethystBlock => "amethyst_block", + Item::BuddingAmethyst => "budding_amethyst", + Item::IronBlock => "iron_block", + Item::CopperBlock => "copper_block", + Item::GoldBlock => "gold_block", + Item::DiamondBlock => "diamond_block", + Item::NetheriteBlock => "netherite_block", + Item::ExposedCopper => "exposed_copper", + Item::WeatheredCopper => "weathered_copper", + Item::OxidizedCopper => "oxidized_copper", + Item::CutCopper => "cut_copper", + Item::ExposedCutCopper => "exposed_cut_copper", + Item::WeatheredCutCopper => "weathered_cut_copper", + Item::OxidizedCutCopper => "oxidized_cut_copper", + Item::CutCopperStairs => "cut_copper_stairs", + Item::ExposedCutCopperStairs => "exposed_cut_copper_stairs", + Item::WeatheredCutCopperStairs => "weathered_cut_copper_stairs", + Item::OxidizedCutCopperStairs => "oxidized_cut_copper_stairs", + Item::CutCopperSlab => "cut_copper_slab", + Item::ExposedCutCopperSlab => "exposed_cut_copper_slab", + Item::WeatheredCutCopperSlab => "weathered_cut_copper_slab", + Item::OxidizedCutCopperSlab => "oxidized_cut_copper_slab", + Item::WaxedCopperBlock => "waxed_copper_block", + Item::WaxedExposedCopper => "waxed_exposed_copper", + Item::WaxedWeatheredCopper => "waxed_weathered_copper", + Item::WaxedOxidizedCopper => "waxed_oxidized_copper", + Item::WaxedCutCopper => "waxed_cut_copper", + Item::WaxedExposedCutCopper => "waxed_exposed_cut_copper", + Item::WaxedWeatheredCutCopper => "waxed_weathered_cut_copper", + Item::WaxedOxidizedCutCopper => "waxed_oxidized_cut_copper", + Item::WaxedCutCopperStairs => "waxed_cut_copper_stairs", + Item::WaxedExposedCutCopperStairs => "waxed_exposed_cut_copper_stairs", + Item::WaxedWeatheredCutCopperStairs => "waxed_weathered_cut_copper_stairs", + Item::WaxedOxidizedCutCopperStairs => "waxed_oxidized_cut_copper_stairs", + Item::WaxedCutCopperSlab => "waxed_cut_copper_slab", + Item::WaxedExposedCutCopperSlab => "waxed_exposed_cut_copper_slab", + Item::WaxedWeatheredCutCopperSlab => "waxed_weathered_cut_copper_slab", + Item::WaxedOxidizedCutCopperSlab => "waxed_oxidized_cut_copper_slab", + Item::OakLog => "oak_log", + Item::SpruceLog => "spruce_log", + Item::BirchLog => "birch_log", + Item::JungleLog => "jungle_log", + Item::AcaciaLog => "acacia_log", + Item::DarkOakLog => "dark_oak_log", + Item::CrimsonStem => "crimson_stem", + Item::WarpedStem => "warped_stem", + Item::StrippedOakLog => "stripped_oak_log", + Item::StrippedSpruceLog => "stripped_spruce_log", + Item::StrippedBirchLog => "stripped_birch_log", + Item::StrippedJungleLog => "stripped_jungle_log", + Item::StrippedAcaciaLog => "stripped_acacia_log", + Item::StrippedDarkOakLog => "stripped_dark_oak_log", + Item::StrippedCrimsonStem => "stripped_crimson_stem", + Item::StrippedWarpedStem => "stripped_warped_stem", + Item::StrippedOakWood => "stripped_oak_wood", + Item::StrippedSpruceWood => "stripped_spruce_wood", + Item::StrippedBirchWood => "stripped_birch_wood", + Item::StrippedJungleWood => "stripped_jungle_wood", + Item::StrippedAcaciaWood => "stripped_acacia_wood", + Item::StrippedDarkOakWood => "stripped_dark_oak_wood", + Item::StrippedCrimsonHyphae => "stripped_crimson_hyphae", + Item::StrippedWarpedHyphae => "stripped_warped_hyphae", + Item::OakWood => "oak_wood", + Item::SpruceWood => "spruce_wood", + Item::BirchWood => "birch_wood", + Item::JungleWood => "jungle_wood", + Item::AcaciaWood => "acacia_wood", + Item::DarkOakWood => "dark_oak_wood", + Item::CrimsonHyphae => "crimson_hyphae", + Item::WarpedHyphae => "warped_hyphae", + Item::OakLeaves => "oak_leaves", + Item::SpruceLeaves => "spruce_leaves", + Item::BirchLeaves => "birch_leaves", + Item::JungleLeaves => "jungle_leaves", + Item::AcaciaLeaves => "acacia_leaves", + Item::DarkOakLeaves => "dark_oak_leaves", + Item::AzaleaLeaves => "azalea_leaves", + Item::FloweringAzaleaLeaves => "flowering_azalea_leaves", + Item::Sponge => "sponge", + Item::WetSponge => "wet_sponge", + Item::Glass => "glass", + Item::TintedGlass => "tinted_glass", + Item::LapisBlock => "lapis_block", + Item::Sandstone => "sandstone", + Item::ChiseledSandstone => "chiseled_sandstone", + Item::CutSandstone => "cut_sandstone", + Item::Cobweb => "cobweb", + Item::Grass => "grass", + Item::Fern => "fern", + Item::Azalea => "azalea", + Item::FloweringAzalea => "flowering_azalea", + Item::DeadBush => "dead_bush", + Item::Seagrass => "seagrass", + Item::SeaPickle => "sea_pickle", + Item::WhiteWool => "white_wool", + Item::OrangeWool => "orange_wool", + Item::MagentaWool => "magenta_wool", + Item::LightBlueWool => "light_blue_wool", + Item::YellowWool => "yellow_wool", + Item::LimeWool => "lime_wool", + Item::PinkWool => "pink_wool", + Item::GrayWool => "gray_wool", + Item::LightGrayWool => "light_gray_wool", + Item::CyanWool => "cyan_wool", + Item::PurpleWool => "purple_wool", + Item::BlueWool => "blue_wool", + Item::BrownWool => "brown_wool", + Item::GreenWool => "green_wool", + Item::RedWool => "red_wool", + Item::BlackWool => "black_wool", + Item::Dandelion => "dandelion", + Item::Poppy => "poppy", + Item::BlueOrchid => "blue_orchid", + Item::Allium => "allium", + Item::AzureBluet => "azure_bluet", + Item::RedTulip => "red_tulip", + Item::OrangeTulip => "orange_tulip", + Item::WhiteTulip => "white_tulip", + Item::PinkTulip => "pink_tulip", + Item::OxeyeDaisy => "oxeye_daisy", + Item::Cornflower => "cornflower", + Item::LilyOfTheValley => "lily_of_the_valley", + Item::WitherRose => "wither_rose", + Item::SporeBlossom => "spore_blossom", + Item::BrownMushroom => "brown_mushroom", + Item::RedMushroom => "red_mushroom", + Item::CrimsonFungus => "crimson_fungus", + Item::WarpedFungus => "warped_fungus", + Item::CrimsonRoots => "crimson_roots", + Item::WarpedRoots => "warped_roots", + Item::NetherSprouts => "nether_sprouts", + Item::WeepingVines => "weeping_vines", + Item::TwistingVines => "twisting_vines", + Item::SugarCane => "sugar_cane", + Item::Kelp => "kelp", + Item::MossCarpet => "moss_carpet", + Item::MossBlock => "moss_block", + Item::HangingRoots => "hanging_roots", + Item::BigDripleaf => "big_dripleaf", + Item::SmallDripleaf => "small_dripleaf", + Item::Bamboo => "bamboo", + Item::OakSlab => "oak_slab", + Item::SpruceSlab => "spruce_slab", + Item::BirchSlab => "birch_slab", + Item::JungleSlab => "jungle_slab", + Item::AcaciaSlab => "acacia_slab", + Item::DarkOakSlab => "dark_oak_slab", + Item::CrimsonSlab => "crimson_slab", + Item::WarpedSlab => "warped_slab", + Item::StoneSlab => "stone_slab", + Item::SmoothStoneSlab => "smooth_stone_slab", + Item::SandstoneSlab => "sandstone_slab", + Item::CutSandstoneSlab => "cut_sandstone_slab", + Item::PetrifiedOakSlab => "petrified_oak_slab", + Item::CobblestoneSlab => "cobblestone_slab", + Item::BrickSlab => "brick_slab", + Item::StoneBrickSlab => "stone_brick_slab", + Item::NetherBrickSlab => "nether_brick_slab", + Item::QuartzSlab => "quartz_slab", + Item::RedSandstoneSlab => "red_sandstone_slab", + Item::CutRedSandstoneSlab => "cut_red_sandstone_slab", + Item::PurpurSlab => "purpur_slab", + Item::PrismarineSlab => "prismarine_slab", + Item::PrismarineBrickSlab => "prismarine_brick_slab", + Item::DarkPrismarineSlab => "dark_prismarine_slab", + Item::SmoothQuartz => "smooth_quartz", + Item::SmoothRedSandstone => "smooth_red_sandstone", + Item::SmoothSandstone => "smooth_sandstone", + Item::SmoothStone => "smooth_stone", + Item::Bricks => "bricks", + Item::Bookshelf => "bookshelf", + Item::MossyCobblestone => "mossy_cobblestone", + Item::Obsidian => "obsidian", + Item::Torch => "torch", + Item::EndRod => "end_rod", + Item::ChorusPlant => "chorus_plant", + Item::ChorusFlower => "chorus_flower", + Item::PurpurBlock => "purpur_block", + Item::PurpurPillar => "purpur_pillar", + Item::PurpurStairs => "purpur_stairs", + Item::Spawner => "spawner", + Item::OakStairs => "oak_stairs", + Item::Chest => "chest", + Item::CraftingTable => "crafting_table", + Item::Farmland => "farmland", + Item::Furnace => "furnace", + Item::Ladder => "ladder", + Item::CobblestoneStairs => "cobblestone_stairs", + Item::Snow => "snow", + Item::Ice => "ice", + Item::SnowBlock => "snow_block", + Item::Cactus => "cactus", + Item::Clay => "clay", + Item::Jukebox => "jukebox", + Item::OakFence => "oak_fence", + Item::SpruceFence => "spruce_fence", + Item::BirchFence => "birch_fence", + Item::JungleFence => "jungle_fence", + Item::AcaciaFence => "acacia_fence", + Item::DarkOakFence => "dark_oak_fence", + Item::CrimsonFence => "crimson_fence", + Item::WarpedFence => "warped_fence", + Item::Pumpkin => "pumpkin", + Item::CarvedPumpkin => "carved_pumpkin", + Item::JackOLantern => "jack_o_lantern", + Item::Netherrack => "netherrack", + Item::SoulSand => "soul_sand", + Item::SoulSoil => "soul_soil", + Item::Basalt => "basalt", + Item::PolishedBasalt => "polished_basalt", + Item::SmoothBasalt => "smooth_basalt", + Item::SoulTorch => "soul_torch", + Item::Glowstone => "glowstone", + Item::InfestedStone => "infested_stone", + Item::InfestedCobblestone => "infested_cobblestone", + Item::InfestedStoneBricks => "infested_stone_bricks", + Item::InfestedMossyStoneBricks => "infested_mossy_stone_bricks", + Item::InfestedCrackedStoneBricks => "infested_cracked_stone_bricks", + Item::InfestedChiseledStoneBricks => "infested_chiseled_stone_bricks", + Item::InfestedDeepslate => "infested_deepslate", + Item::StoneBricks => "stone_bricks", + Item::MossyStoneBricks => "mossy_stone_bricks", + Item::CrackedStoneBricks => "cracked_stone_bricks", + Item::ChiseledStoneBricks => "chiseled_stone_bricks", + Item::DeepslateBricks => "deepslate_bricks", + Item::CrackedDeepslateBricks => "cracked_deepslate_bricks", + Item::DeepslateTiles => "deepslate_tiles", + Item::CrackedDeepslateTiles => "cracked_deepslate_tiles", + Item::ChiseledDeepslate => "chiseled_deepslate", + Item::BrownMushroomBlock => "brown_mushroom_block", + Item::RedMushroomBlock => "red_mushroom_block", + Item::MushroomStem => "mushroom_stem", + Item::IronBars => "iron_bars", + Item::Chain => "chain", + Item::GlassPane => "glass_pane", + Item::Melon => "melon", + Item::Vine => "vine", + Item::GlowLichen => "glow_lichen", + Item::BrickStairs => "brick_stairs", + Item::StoneBrickStairs => "stone_brick_stairs", + Item::Mycelium => "mycelium", + Item::LilyPad => "lily_pad", + Item::NetherBricks => "nether_bricks", + Item::CrackedNetherBricks => "cracked_nether_bricks", + Item::ChiseledNetherBricks => "chiseled_nether_bricks", + Item::NetherBrickFence => "nether_brick_fence", + Item::NetherBrickStairs => "nether_brick_stairs", + Item::EnchantingTable => "enchanting_table", + Item::EndPortalFrame => "end_portal_frame", + Item::EndStone => "end_stone", + Item::EndStoneBricks => "end_stone_bricks", + Item::DragonEgg => "dragon_egg", + Item::SandstoneStairs => "sandstone_stairs", + Item::EnderChest => "ender_chest", + Item::EmeraldBlock => "emerald_block", + Item::SpruceStairs => "spruce_stairs", + Item::BirchStairs => "birch_stairs", + Item::JungleStairs => "jungle_stairs", + Item::CrimsonStairs => "crimson_stairs", + Item::WarpedStairs => "warped_stairs", + Item::CommandBlock => "command_block", + Item::Beacon => "beacon", + Item::CobblestoneWall => "cobblestone_wall", + Item::MossyCobblestoneWall => "mossy_cobblestone_wall", + Item::BrickWall => "brick_wall", + Item::PrismarineWall => "prismarine_wall", + Item::RedSandstoneWall => "red_sandstone_wall", + Item::MossyStoneBrickWall => "mossy_stone_brick_wall", + Item::GraniteWall => "granite_wall", + Item::StoneBrickWall => "stone_brick_wall", + Item::NetherBrickWall => "nether_brick_wall", + Item::AndesiteWall => "andesite_wall", + Item::RedNetherBrickWall => "red_nether_brick_wall", + Item::SandstoneWall => "sandstone_wall", + Item::EndStoneBrickWall => "end_stone_brick_wall", + Item::DioriteWall => "diorite_wall", + Item::BlackstoneWall => "blackstone_wall", + Item::PolishedBlackstoneWall => "polished_blackstone_wall", + Item::PolishedBlackstoneBrickWall => "polished_blackstone_brick_wall", + Item::CobbledDeepslateWall => "cobbled_deepslate_wall", + Item::PolishedDeepslateWall => "polished_deepslate_wall", + Item::DeepslateBrickWall => "deepslate_brick_wall", + Item::DeepslateTileWall => "deepslate_tile_wall", + Item::Anvil => "anvil", + Item::ChippedAnvil => "chipped_anvil", + Item::DamagedAnvil => "damaged_anvil", + Item::ChiseledQuartzBlock => "chiseled_quartz_block", + Item::QuartzBlock => "quartz_block", + Item::QuartzBricks => "quartz_bricks", + Item::QuartzPillar => "quartz_pillar", + Item::QuartzStairs => "quartz_stairs", + Item::WhiteTerracotta => "white_terracotta", + Item::OrangeTerracotta => "orange_terracotta", + Item::MagentaTerracotta => "magenta_terracotta", + Item::LightBlueTerracotta => "light_blue_terracotta", + Item::YellowTerracotta => "yellow_terracotta", + Item::LimeTerracotta => "lime_terracotta", + Item::PinkTerracotta => "pink_terracotta", + Item::GrayTerracotta => "gray_terracotta", + Item::LightGrayTerracotta => "light_gray_terracotta", + Item::CyanTerracotta => "cyan_terracotta", + Item::PurpleTerracotta => "purple_terracotta", + Item::BlueTerracotta => "blue_terracotta", + Item::BrownTerracotta => "brown_terracotta", + Item::GreenTerracotta => "green_terracotta", + Item::RedTerracotta => "red_terracotta", + Item::BlackTerracotta => "black_terracotta", + Item::Barrier => "barrier", + Item::Light => "light", + Item::HayBlock => "hay_block", + Item::WhiteCarpet => "white_carpet", + Item::OrangeCarpet => "orange_carpet", + Item::MagentaCarpet => "magenta_carpet", + Item::LightBlueCarpet => "light_blue_carpet", + Item::YellowCarpet => "yellow_carpet", + Item::LimeCarpet => "lime_carpet", + Item::PinkCarpet => "pink_carpet", + Item::GrayCarpet => "gray_carpet", + Item::LightGrayCarpet => "light_gray_carpet", + Item::CyanCarpet => "cyan_carpet", + Item::PurpleCarpet => "purple_carpet", + Item::BlueCarpet => "blue_carpet", + Item::BrownCarpet => "brown_carpet", + Item::GreenCarpet => "green_carpet", + Item::RedCarpet => "red_carpet", + Item::BlackCarpet => "black_carpet", + Item::Terracotta => "terracotta", + Item::PackedIce => "packed_ice", + Item::AcaciaStairs => "acacia_stairs", + Item::DarkOakStairs => "dark_oak_stairs", + Item::DirtPath => "dirt_path", + Item::Sunflower => "sunflower", + Item::Lilac => "lilac", + Item::RoseBush => "rose_bush", + Item::Peony => "peony", + Item::TallGrass => "tall_grass", + Item::LargeFern => "large_fern", + Item::WhiteStainedGlass => "white_stained_glass", + Item::OrangeStainedGlass => "orange_stained_glass", + Item::MagentaStainedGlass => "magenta_stained_glass", + Item::LightBlueStainedGlass => "light_blue_stained_glass", + Item::YellowStainedGlass => "yellow_stained_glass", + Item::LimeStainedGlass => "lime_stained_glass", + Item::PinkStainedGlass => "pink_stained_glass", + Item::GrayStainedGlass => "gray_stained_glass", + Item::LightGrayStainedGlass => "light_gray_stained_glass", + Item::CyanStainedGlass => "cyan_stained_glass", + Item::PurpleStainedGlass => "purple_stained_glass", + Item::BlueStainedGlass => "blue_stained_glass", + Item::BrownStainedGlass => "brown_stained_glass", + Item::GreenStainedGlass => "green_stained_glass", + Item::RedStainedGlass => "red_stained_glass", + Item::BlackStainedGlass => "black_stained_glass", + Item::WhiteStainedGlassPane => "white_stained_glass_pane", + Item::OrangeStainedGlassPane => "orange_stained_glass_pane", + Item::MagentaStainedGlassPane => "magenta_stained_glass_pane", + Item::LightBlueStainedGlassPane => "light_blue_stained_glass_pane", + Item::YellowStainedGlassPane => "yellow_stained_glass_pane", + Item::LimeStainedGlassPane => "lime_stained_glass_pane", + Item::PinkStainedGlassPane => "pink_stained_glass_pane", + Item::GrayStainedGlassPane => "gray_stained_glass_pane", + Item::LightGrayStainedGlassPane => "light_gray_stained_glass_pane", + Item::CyanStainedGlassPane => "cyan_stained_glass_pane", + Item::PurpleStainedGlassPane => "purple_stained_glass_pane", + Item::BlueStainedGlassPane => "blue_stained_glass_pane", + Item::BrownStainedGlassPane => "brown_stained_glass_pane", + Item::GreenStainedGlassPane => "green_stained_glass_pane", + Item::RedStainedGlassPane => "red_stained_glass_pane", + Item::BlackStainedGlassPane => "black_stained_glass_pane", + Item::Prismarine => "prismarine", + Item::PrismarineBricks => "prismarine_bricks", + Item::DarkPrismarine => "dark_prismarine", + Item::PrismarineStairs => "prismarine_stairs", + Item::PrismarineBrickStairs => "prismarine_brick_stairs", + Item::DarkPrismarineStairs => "dark_prismarine_stairs", + Item::SeaLantern => "sea_lantern", + Item::RedSandstone => "red_sandstone", + Item::ChiseledRedSandstone => "chiseled_red_sandstone", + Item::CutRedSandstone => "cut_red_sandstone", + Item::RedSandstoneStairs => "red_sandstone_stairs", + Item::RepeatingCommandBlock => "repeating_command_block", + Item::ChainCommandBlock => "chain_command_block", + Item::MagmaBlock => "magma_block", + Item::NetherWartBlock => "nether_wart_block", + Item::WarpedWartBlock => "warped_wart_block", + Item::RedNetherBricks => "red_nether_bricks", + Item::BoneBlock => "bone_block", + Item::StructureVoid => "structure_void", + Item::ShulkerBox => "shulker_box", + Item::WhiteShulkerBox => "white_shulker_box", + Item::OrangeShulkerBox => "orange_shulker_box", + Item::MagentaShulkerBox => "magenta_shulker_box", + Item::LightBlueShulkerBox => "light_blue_shulker_box", + Item::YellowShulkerBox => "yellow_shulker_box", + Item::LimeShulkerBox => "lime_shulker_box", + Item::PinkShulkerBox => "pink_shulker_box", + Item::GrayShulkerBox => "gray_shulker_box", + Item::LightGrayShulkerBox => "light_gray_shulker_box", + Item::CyanShulkerBox => "cyan_shulker_box", + Item::PurpleShulkerBox => "purple_shulker_box", + Item::BlueShulkerBox => "blue_shulker_box", + Item::BrownShulkerBox => "brown_shulker_box", + Item::GreenShulkerBox => "green_shulker_box", + Item::RedShulkerBox => "red_shulker_box", + Item::BlackShulkerBox => "black_shulker_box", + Item::WhiteGlazedTerracotta => "white_glazed_terracotta", + Item::OrangeGlazedTerracotta => "orange_glazed_terracotta", + Item::MagentaGlazedTerracotta => "magenta_glazed_terracotta", + Item::LightBlueGlazedTerracotta => "light_blue_glazed_terracotta", + Item::YellowGlazedTerracotta => "yellow_glazed_terracotta", + Item::LimeGlazedTerracotta => "lime_glazed_terracotta", + Item::PinkGlazedTerracotta => "pink_glazed_terracotta", + Item::GrayGlazedTerracotta => "gray_glazed_terracotta", + Item::LightGrayGlazedTerracotta => "light_gray_glazed_terracotta", + Item::CyanGlazedTerracotta => "cyan_glazed_terracotta", + Item::PurpleGlazedTerracotta => "purple_glazed_terracotta", + Item::BlueGlazedTerracotta => "blue_glazed_terracotta", + Item::BrownGlazedTerracotta => "brown_glazed_terracotta", + Item::GreenGlazedTerracotta => "green_glazed_terracotta", + Item::RedGlazedTerracotta => "red_glazed_terracotta", + Item::BlackGlazedTerracotta => "black_glazed_terracotta", + Item::WhiteConcrete => "white_concrete", + Item::OrangeConcrete => "orange_concrete", + Item::MagentaConcrete => "magenta_concrete", + Item::LightBlueConcrete => "light_blue_concrete", + Item::YellowConcrete => "yellow_concrete", + Item::LimeConcrete => "lime_concrete", + Item::PinkConcrete => "pink_concrete", + Item::GrayConcrete => "gray_concrete", + Item::LightGrayConcrete => "light_gray_concrete", + Item::CyanConcrete => "cyan_concrete", + Item::PurpleConcrete => "purple_concrete", + Item::BlueConcrete => "blue_concrete", + Item::BrownConcrete => "brown_concrete", + Item::GreenConcrete => "green_concrete", + Item::RedConcrete => "red_concrete", + Item::BlackConcrete => "black_concrete", + Item::WhiteConcretePowder => "white_concrete_powder", + Item::OrangeConcretePowder => "orange_concrete_powder", + Item::MagentaConcretePowder => "magenta_concrete_powder", + Item::LightBlueConcretePowder => "light_blue_concrete_powder", + Item::YellowConcretePowder => "yellow_concrete_powder", + Item::LimeConcretePowder => "lime_concrete_powder", + Item::PinkConcretePowder => "pink_concrete_powder", + Item::GrayConcretePowder => "gray_concrete_powder", + Item::LightGrayConcretePowder => "light_gray_concrete_powder", + Item::CyanConcretePowder => "cyan_concrete_powder", + Item::PurpleConcretePowder => "purple_concrete_powder", + Item::BlueConcretePowder => "blue_concrete_powder", + Item::BrownConcretePowder => "brown_concrete_powder", + Item::GreenConcretePowder => "green_concrete_powder", + Item::RedConcretePowder => "red_concrete_powder", + Item::BlackConcretePowder => "black_concrete_powder", + Item::TurtleEgg => "turtle_egg", + Item::DeadTubeCoralBlock => "dead_tube_coral_block", + Item::DeadBrainCoralBlock => "dead_brain_coral_block", + Item::DeadBubbleCoralBlock => "dead_bubble_coral_block", + Item::DeadFireCoralBlock => "dead_fire_coral_block", + Item::DeadHornCoralBlock => "dead_horn_coral_block", + Item::TubeCoralBlock => "tube_coral_block", + Item::BrainCoralBlock => "brain_coral_block", + Item::BubbleCoralBlock => "bubble_coral_block", + Item::FireCoralBlock => "fire_coral_block", + Item::HornCoralBlock => "horn_coral_block", + Item::TubeCoral => "tube_coral", + Item::BrainCoral => "brain_coral", + Item::BubbleCoral => "bubble_coral", + Item::FireCoral => "fire_coral", + Item::HornCoral => "horn_coral", + Item::DeadBrainCoral => "dead_brain_coral", + Item::DeadBubbleCoral => "dead_bubble_coral", + Item::DeadFireCoral => "dead_fire_coral", + Item::DeadHornCoral => "dead_horn_coral", + Item::DeadTubeCoral => "dead_tube_coral", + Item::TubeCoralFan => "tube_coral_fan", + Item::BrainCoralFan => "brain_coral_fan", + Item::BubbleCoralFan => "bubble_coral_fan", + Item::FireCoralFan => "fire_coral_fan", + Item::HornCoralFan => "horn_coral_fan", + Item::DeadTubeCoralFan => "dead_tube_coral_fan", + Item::DeadBrainCoralFan => "dead_brain_coral_fan", + Item::DeadBubbleCoralFan => "dead_bubble_coral_fan", + Item::DeadFireCoralFan => "dead_fire_coral_fan", + Item::DeadHornCoralFan => "dead_horn_coral_fan", + Item::BlueIce => "blue_ice", + Item::Conduit => "conduit", + Item::PolishedGraniteStairs => "polished_granite_stairs", + Item::SmoothRedSandstoneStairs => "smooth_red_sandstone_stairs", + Item::MossyStoneBrickStairs => "mossy_stone_brick_stairs", + Item::PolishedDioriteStairs => "polished_diorite_stairs", + Item::MossyCobblestoneStairs => "mossy_cobblestone_stairs", + Item::EndStoneBrickStairs => "end_stone_brick_stairs", + Item::StoneStairs => "stone_stairs", + Item::SmoothSandstoneStairs => "smooth_sandstone_stairs", + Item::SmoothQuartzStairs => "smooth_quartz_stairs", + Item::GraniteStairs => "granite_stairs", + Item::AndesiteStairs => "andesite_stairs", + Item::RedNetherBrickStairs => "red_nether_brick_stairs", + Item::PolishedAndesiteStairs => "polished_andesite_stairs", + Item::DioriteStairs => "diorite_stairs", + Item::CobbledDeepslateStairs => "cobbled_deepslate_stairs", + Item::PolishedDeepslateStairs => "polished_deepslate_stairs", + Item::DeepslateBrickStairs => "deepslate_brick_stairs", + Item::DeepslateTileStairs => "deepslate_tile_stairs", + Item::PolishedGraniteSlab => "polished_granite_slab", + Item::SmoothRedSandstoneSlab => "smooth_red_sandstone_slab", + Item::MossyStoneBrickSlab => "mossy_stone_brick_slab", + Item::PolishedDioriteSlab => "polished_diorite_slab", + Item::MossyCobblestoneSlab => "mossy_cobblestone_slab", + Item::EndStoneBrickSlab => "end_stone_brick_slab", + Item::SmoothSandstoneSlab => "smooth_sandstone_slab", + Item::SmoothQuartzSlab => "smooth_quartz_slab", + Item::GraniteSlab => "granite_slab", + Item::AndesiteSlab => "andesite_slab", + Item::RedNetherBrickSlab => "red_nether_brick_slab", + Item::PolishedAndesiteSlab => "polished_andesite_slab", + Item::DioriteSlab => "diorite_slab", + Item::CobbledDeepslateSlab => "cobbled_deepslate_slab", + Item::PolishedDeepslateSlab => "polished_deepslate_slab", + Item::DeepslateBrickSlab => "deepslate_brick_slab", + Item::DeepslateTileSlab => "deepslate_tile_slab", + Item::Scaffolding => "scaffolding", + Item::Redstone => "redstone", + Item::RedstoneTorch => "redstone_torch", + Item::RedstoneBlock => "redstone_block", + Item::Repeater => "repeater", + Item::Comparator => "comparator", + Item::Piston => "piston", + Item::StickyPiston => "sticky_piston", + Item::SlimeBlock => "slime_block", + Item::HoneyBlock => "honey_block", + Item::Observer => "observer", + Item::Hopper => "hopper", + Item::Dispenser => "dispenser", + Item::Dropper => "dropper", + Item::Lectern => "lectern", + Item::Target => "target", + Item::Lever => "lever", + Item::LightningRod => "lightning_rod", + Item::DaylightDetector => "daylight_detector", + Item::SculkSensor => "sculk_sensor", + Item::TripwireHook => "tripwire_hook", + Item::TrappedChest => "trapped_chest", + Item::Tnt => "tnt", + Item::RedstoneLamp => "redstone_lamp", + Item::NoteBlock => "note_block", + Item::StoneButton => "stone_button", + Item::PolishedBlackstoneButton => "polished_blackstone_button", + Item::OakButton => "oak_button", + Item::SpruceButton => "spruce_button", + Item::BirchButton => "birch_button", + Item::JungleButton => "jungle_button", + Item::AcaciaButton => "acacia_button", + Item::DarkOakButton => "dark_oak_button", + Item::CrimsonButton => "crimson_button", + Item::WarpedButton => "warped_button", + Item::StonePressurePlate => "stone_pressure_plate", + Item::PolishedBlackstonePressurePlate => "polished_blackstone_pressure_plate", + Item::LightWeightedPressurePlate => "light_weighted_pressure_plate", + Item::HeavyWeightedPressurePlate => "heavy_weighted_pressure_plate", + Item::OakPressurePlate => "oak_pressure_plate", + Item::SprucePressurePlate => "spruce_pressure_plate", + Item::BirchPressurePlate => "birch_pressure_plate", + Item::JunglePressurePlate => "jungle_pressure_plate", + Item::AcaciaPressurePlate => "acacia_pressure_plate", + Item::DarkOakPressurePlate => "dark_oak_pressure_plate", + Item::CrimsonPressurePlate => "crimson_pressure_plate", + Item::WarpedPressurePlate => "warped_pressure_plate", + Item::IronDoor => "iron_door", + Item::OakDoor => "oak_door", + Item::SpruceDoor => "spruce_door", + Item::BirchDoor => "birch_door", + Item::JungleDoor => "jungle_door", + Item::AcaciaDoor => "acacia_door", + Item::DarkOakDoor => "dark_oak_door", + Item::CrimsonDoor => "crimson_door", + Item::WarpedDoor => "warped_door", + Item::IronTrapdoor => "iron_trapdoor", + Item::OakTrapdoor => "oak_trapdoor", + Item::SpruceTrapdoor => "spruce_trapdoor", + Item::BirchTrapdoor => "birch_trapdoor", + Item::JungleTrapdoor => "jungle_trapdoor", + Item::AcaciaTrapdoor => "acacia_trapdoor", + Item::DarkOakTrapdoor => "dark_oak_trapdoor", + Item::CrimsonTrapdoor => "crimson_trapdoor", + Item::WarpedTrapdoor => "warped_trapdoor", + Item::OakFenceGate => "oak_fence_gate", + Item::SpruceFenceGate => "spruce_fence_gate", + Item::BirchFenceGate => "birch_fence_gate", + Item::JungleFenceGate => "jungle_fence_gate", + Item::AcaciaFenceGate => "acacia_fence_gate", + Item::DarkOakFenceGate => "dark_oak_fence_gate", + Item::CrimsonFenceGate => "crimson_fence_gate", + Item::WarpedFenceGate => "warped_fence_gate", + Item::PoweredRail => "powered_rail", + Item::DetectorRail => "detector_rail", + Item::Rail => "rail", + Item::ActivatorRail => "activator_rail", + Item::Saddle => "saddle", + Item::Minecart => "minecart", + Item::ChestMinecart => "chest_minecart", + Item::FurnaceMinecart => "furnace_minecart", + Item::TntMinecart => "tnt_minecart", + Item::HopperMinecart => "hopper_minecart", + Item::CarrotOnAStick => "carrot_on_a_stick", + Item::WarpedFungusOnAStick => "warped_fungus_on_a_stick", + Item::Elytra => "elytra", + Item::OakBoat => "oak_boat", + Item::SpruceBoat => "spruce_boat", + Item::BirchBoat => "birch_boat", + Item::JungleBoat => "jungle_boat", + Item::AcaciaBoat => "acacia_boat", + Item::DarkOakBoat => "dark_oak_boat", + Item::StructureBlock => "structure_block", + Item::Jigsaw => "jigsaw", + Item::TurtleHelmet => "turtle_helmet", + Item::Scute => "scute", + Item::FlintAndSteel => "flint_and_steel", + Item::Apple => "apple", + Item::Bow => "bow", + Item::Arrow => "arrow", + Item::Coal => "coal", + Item::Charcoal => "charcoal", + Item::Diamond => "diamond", + Item::Emerald => "emerald", + Item::LapisLazuli => "lapis_lazuli", + Item::Quartz => "quartz", + Item::AmethystShard => "amethyst_shard", + Item::RawIron => "raw_iron", + Item::IronIngot => "iron_ingot", + Item::RawCopper => "raw_copper", + Item::CopperIngot => "copper_ingot", + Item::RawGold => "raw_gold", + Item::GoldIngot => "gold_ingot", + Item::NetheriteIngot => "netherite_ingot", + Item::NetheriteScrap => "netherite_scrap", + Item::WoodenSword => "wooden_sword", + Item::WoodenShovel => "wooden_shovel", + Item::WoodenPickaxe => "wooden_pickaxe", + Item::WoodenAxe => "wooden_axe", + Item::WoodenHoe => "wooden_hoe", + Item::StoneSword => "stone_sword", + Item::StoneShovel => "stone_shovel", + Item::StonePickaxe => "stone_pickaxe", + Item::StoneAxe => "stone_axe", + Item::StoneHoe => "stone_hoe", + Item::GoldenSword => "golden_sword", + Item::GoldenShovel => "golden_shovel", + Item::GoldenPickaxe => "golden_pickaxe", + Item::GoldenAxe => "golden_axe", + Item::GoldenHoe => "golden_hoe", + Item::IronSword => "iron_sword", + Item::IronShovel => "iron_shovel", + Item::IronPickaxe => "iron_pickaxe", + Item::IronAxe => "iron_axe", + Item::IronHoe => "iron_hoe", + Item::DiamondSword => "diamond_sword", + Item::DiamondShovel => "diamond_shovel", + Item::DiamondPickaxe => "diamond_pickaxe", + Item::DiamondAxe => "diamond_axe", + Item::DiamondHoe => "diamond_hoe", + Item::NetheriteSword => "netherite_sword", + Item::NetheriteShovel => "netherite_shovel", + Item::NetheritePickaxe => "netherite_pickaxe", + Item::NetheriteAxe => "netherite_axe", + Item::NetheriteHoe => "netherite_hoe", + Item::Stick => "stick", + Item::Bowl => "bowl", + Item::MushroomStew => "mushroom_stew", + Item::String => "string", + Item::Feather => "feather", + Item::Gunpowder => "gunpowder", + Item::WheatSeeds => "wheat_seeds", + Item::Wheat => "wheat", + Item::Bread => "bread", + Item::LeatherHelmet => "leather_helmet", + Item::LeatherChestplate => "leather_chestplate", + Item::LeatherLeggings => "leather_leggings", + Item::LeatherBoots => "leather_boots", + Item::ChainmailHelmet => "chainmail_helmet", + Item::ChainmailChestplate => "chainmail_chestplate", + Item::ChainmailLeggings => "chainmail_leggings", + Item::ChainmailBoots => "chainmail_boots", + Item::IronHelmet => "iron_helmet", + Item::IronChestplate => "iron_chestplate", + Item::IronLeggings => "iron_leggings", + Item::IronBoots => "iron_boots", + Item::DiamondHelmet => "diamond_helmet", + Item::DiamondChestplate => "diamond_chestplate", + Item::DiamondLeggings => "diamond_leggings", + Item::DiamondBoots => "diamond_boots", + Item::GoldenHelmet => "golden_helmet", + Item::GoldenChestplate => "golden_chestplate", + Item::GoldenLeggings => "golden_leggings", + Item::GoldenBoots => "golden_boots", + Item::NetheriteHelmet => "netherite_helmet", + Item::NetheriteChestplate => "netherite_chestplate", + Item::NetheriteLeggings => "netherite_leggings", + Item::NetheriteBoots => "netherite_boots", + Item::Flint => "flint", + Item::Porkchop => "porkchop", + Item::CookedPorkchop => "cooked_porkchop", + Item::Painting => "painting", + Item::GoldenApple => "golden_apple", + Item::EnchantedGoldenApple => "enchanted_golden_apple", + Item::OakSign => "oak_sign", + Item::SpruceSign => "spruce_sign", + Item::BirchSign => "birch_sign", + Item::JungleSign => "jungle_sign", + Item::AcaciaSign => "acacia_sign", + Item::DarkOakSign => "dark_oak_sign", + Item::CrimsonSign => "crimson_sign", + Item::WarpedSign => "warped_sign", + Item::Bucket => "bucket", + Item::WaterBucket => "water_bucket", + Item::LavaBucket => "lava_bucket", + Item::PowderSnowBucket => "powder_snow_bucket", + Item::Snowball => "snowball", + Item::Leather => "leather", + Item::MilkBucket => "milk_bucket", + Item::PufferfishBucket => "pufferfish_bucket", + Item::SalmonBucket => "salmon_bucket", + Item::CodBucket => "cod_bucket", + Item::TropicalFishBucket => "tropical_fish_bucket", + Item::AxolotlBucket => "axolotl_bucket", + Item::Brick => "brick", + Item::ClayBall => "clay_ball", + Item::DriedKelpBlock => "dried_kelp_block", + Item::Paper => "paper", + Item::Book => "book", + Item::SlimeBall => "slime_ball", + Item::Egg => "egg", + Item::Compass => "compass", + Item::Bundle => "bundle", + Item::FishingRod => "fishing_rod", + Item::Clock => "clock", + Item::Spyglass => "spyglass", + Item::GlowstoneDust => "glowstone_dust", + Item::Cod => "cod", + Item::Salmon => "salmon", + Item::TropicalFish => "tropical_fish", + Item::Pufferfish => "pufferfish", + Item::CookedCod => "cooked_cod", + Item::CookedSalmon => "cooked_salmon", + Item::InkSac => "ink_sac", + Item::GlowInkSac => "glow_ink_sac", + Item::CocoaBeans => "cocoa_beans", + Item::WhiteDye => "white_dye", + Item::OrangeDye => "orange_dye", + Item::MagentaDye => "magenta_dye", + Item::LightBlueDye => "light_blue_dye", + Item::YellowDye => "yellow_dye", + Item::LimeDye => "lime_dye", + Item::PinkDye => "pink_dye", + Item::GrayDye => "gray_dye", + Item::LightGrayDye => "light_gray_dye", + Item::CyanDye => "cyan_dye", + Item::PurpleDye => "purple_dye", + Item::BlueDye => "blue_dye", + Item::BrownDye => "brown_dye", + Item::GreenDye => "green_dye", + Item::RedDye => "red_dye", + Item::BlackDye => "black_dye", + Item::BoneMeal => "bone_meal", + Item::Bone => "bone", + Item::Sugar => "sugar", + Item::Cake => "cake", + Item::WhiteBed => "white_bed", + Item::OrangeBed => "orange_bed", + Item::MagentaBed => "magenta_bed", + Item::LightBlueBed => "light_blue_bed", + Item::YellowBed => "yellow_bed", + Item::LimeBed => "lime_bed", + Item::PinkBed => "pink_bed", + Item::GrayBed => "gray_bed", + Item::LightGrayBed => "light_gray_bed", + Item::CyanBed => "cyan_bed", + Item::PurpleBed => "purple_bed", + Item::BlueBed => "blue_bed", + Item::BrownBed => "brown_bed", + Item::GreenBed => "green_bed", + Item::RedBed => "red_bed", + Item::BlackBed => "black_bed", + Item::Cookie => "cookie", + Item::FilledMap => "filled_map", + Item::Shears => "shears", + Item::MelonSlice => "melon_slice", + Item::DriedKelp => "dried_kelp", + Item::PumpkinSeeds => "pumpkin_seeds", + Item::MelonSeeds => "melon_seeds", + Item::Beef => "beef", + Item::CookedBeef => "cooked_beef", + Item::Chicken => "chicken", + Item::CookedChicken => "cooked_chicken", + Item::RottenFlesh => "rotten_flesh", + Item::EnderPearl => "ender_pearl", + Item::BlazeRod => "blaze_rod", + Item::GhastTear => "ghast_tear", + Item::GoldNugget => "gold_nugget", + Item::NetherWart => "nether_wart", + Item::Potion => "potion", + Item::GlassBottle => "glass_bottle", + Item::SpiderEye => "spider_eye", + Item::FermentedSpiderEye => "fermented_spider_eye", + Item::BlazePowder => "blaze_powder", + Item::MagmaCream => "magma_cream", + Item::BrewingStand => "brewing_stand", + Item::Cauldron => "cauldron", + Item::EnderEye => "ender_eye", + Item::GlisteringMelonSlice => "glistering_melon_slice", + Item::AxolotlSpawnEgg => "axolotl_spawn_egg", + Item::BatSpawnEgg => "bat_spawn_egg", + Item::BeeSpawnEgg => "bee_spawn_egg", + Item::BlazeSpawnEgg => "blaze_spawn_egg", + Item::CatSpawnEgg => "cat_spawn_egg", + Item::CaveSpiderSpawnEgg => "cave_spider_spawn_egg", + Item::ChickenSpawnEgg => "chicken_spawn_egg", + Item::CodSpawnEgg => "cod_spawn_egg", + Item::CowSpawnEgg => "cow_spawn_egg", + Item::CreeperSpawnEgg => "creeper_spawn_egg", + Item::DolphinSpawnEgg => "dolphin_spawn_egg", + Item::DonkeySpawnEgg => "donkey_spawn_egg", + Item::DrownedSpawnEgg => "drowned_spawn_egg", + Item::ElderGuardianSpawnEgg => "elder_guardian_spawn_egg", + Item::EndermanSpawnEgg => "enderman_spawn_egg", + Item::EndermiteSpawnEgg => "endermite_spawn_egg", + Item::EvokerSpawnEgg => "evoker_spawn_egg", + Item::FoxSpawnEgg => "fox_spawn_egg", + Item::GhastSpawnEgg => "ghast_spawn_egg", + Item::GlowSquidSpawnEgg => "glow_squid_spawn_egg", + Item::GoatSpawnEgg => "goat_spawn_egg", + Item::GuardianSpawnEgg => "guardian_spawn_egg", + Item::HoglinSpawnEgg => "hoglin_spawn_egg", + Item::HorseSpawnEgg => "horse_spawn_egg", + Item::HuskSpawnEgg => "husk_spawn_egg", + Item::LlamaSpawnEgg => "llama_spawn_egg", + Item::MagmaCubeSpawnEgg => "magma_cube_spawn_egg", + Item::MooshroomSpawnEgg => "mooshroom_spawn_egg", + Item::MuleSpawnEgg => "mule_spawn_egg", + Item::OcelotSpawnEgg => "ocelot_spawn_egg", + Item::PandaSpawnEgg => "panda_spawn_egg", + Item::ParrotSpawnEgg => "parrot_spawn_egg", + Item::PhantomSpawnEgg => "phantom_spawn_egg", + Item::PigSpawnEgg => "pig_spawn_egg", + Item::PiglinSpawnEgg => "piglin_spawn_egg", + Item::PiglinBruteSpawnEgg => "piglin_brute_spawn_egg", + Item::PillagerSpawnEgg => "pillager_spawn_egg", + Item::PolarBearSpawnEgg => "polar_bear_spawn_egg", + Item::PufferfishSpawnEgg => "pufferfish_spawn_egg", + Item::RabbitSpawnEgg => "rabbit_spawn_egg", + Item::RavagerSpawnEgg => "ravager_spawn_egg", + Item::SalmonSpawnEgg => "salmon_spawn_egg", + Item::SheepSpawnEgg => "sheep_spawn_egg", + Item::ShulkerSpawnEgg => "shulker_spawn_egg", + Item::SilverfishSpawnEgg => "silverfish_spawn_egg", + Item::SkeletonSpawnEgg => "skeleton_spawn_egg", + Item::SkeletonHorseSpawnEgg => "skeleton_horse_spawn_egg", + Item::SlimeSpawnEgg => "slime_spawn_egg", + Item::SpiderSpawnEgg => "spider_spawn_egg", + Item::SquidSpawnEgg => "squid_spawn_egg", + Item::StraySpawnEgg => "stray_spawn_egg", + Item::StriderSpawnEgg => "strider_spawn_egg", + Item::TraderLlamaSpawnEgg => "trader_llama_spawn_egg", + Item::TropicalFishSpawnEgg => "tropical_fish_spawn_egg", + Item::TurtleSpawnEgg => "turtle_spawn_egg", + Item::VexSpawnEgg => "vex_spawn_egg", + Item::VillagerSpawnEgg => "villager_spawn_egg", + Item::VindicatorSpawnEgg => "vindicator_spawn_egg", + Item::WanderingTraderSpawnEgg => "wandering_trader_spawn_egg", + Item::WitchSpawnEgg => "witch_spawn_egg", + Item::WitherSkeletonSpawnEgg => "wither_skeleton_spawn_egg", + Item::WolfSpawnEgg => "wolf_spawn_egg", + Item::ZoglinSpawnEgg => "zoglin_spawn_egg", + Item::ZombieSpawnEgg => "zombie_spawn_egg", + Item::ZombieHorseSpawnEgg => "zombie_horse_spawn_egg", + Item::ZombieVillagerSpawnEgg => "zombie_villager_spawn_egg", + Item::ZombifiedPiglinSpawnEgg => "zombified_piglin_spawn_egg", + Item::ExperienceBottle => "experience_bottle", + Item::FireCharge => "fire_charge", + Item::WritableBook => "writable_book", + Item::WrittenBook => "written_book", + Item::ItemFrame => "item_frame", + Item::GlowItemFrame => "glow_item_frame", + Item::FlowerPot => "flower_pot", + Item::Carrot => "carrot", + Item::Potato => "potato", + Item::BakedPotato => "baked_potato", + Item::PoisonousPotato => "poisonous_potato", + Item::Map => "map", + Item::GoldenCarrot => "golden_carrot", + Item::SkeletonSkull => "skeleton_skull", + Item::WitherSkeletonSkull => "wither_skeleton_skull", + Item::PlayerHead => "player_head", + Item::ZombieHead => "zombie_head", + Item::CreeperHead => "creeper_head", + Item::DragonHead => "dragon_head", + Item::NetherStar => "nether_star", + Item::PumpkinPie => "pumpkin_pie", + Item::FireworkRocket => "firework_rocket", + Item::FireworkStar => "firework_star", + Item::EnchantedBook => "enchanted_book", + Item::NetherBrick => "nether_brick", + Item::PrismarineShard => "prismarine_shard", + Item::PrismarineCrystals => "prismarine_crystals", + Item::Rabbit => "rabbit", + Item::CookedRabbit => "cooked_rabbit", + Item::RabbitStew => "rabbit_stew", + Item::RabbitFoot => "rabbit_foot", + Item::RabbitHide => "rabbit_hide", + Item::ArmorStand => "armor_stand", + Item::IronHorseArmor => "iron_horse_armor", + Item::GoldenHorseArmor => "golden_horse_armor", + Item::DiamondHorseArmor => "diamond_horse_armor", + Item::LeatherHorseArmor => "leather_horse_armor", + Item::Lead => "lead", + Item::NameTag => "name_tag", + Item::CommandBlockMinecart => "command_block_minecart", + Item::Mutton => "mutton", + Item::CookedMutton => "cooked_mutton", + Item::WhiteBanner => "white_banner", + Item::OrangeBanner => "orange_banner", + Item::MagentaBanner => "magenta_banner", + Item::LightBlueBanner => "light_blue_banner", + Item::YellowBanner => "yellow_banner", + Item::LimeBanner => "lime_banner", + Item::PinkBanner => "pink_banner", + Item::GrayBanner => "gray_banner", + Item::LightGrayBanner => "light_gray_banner", + Item::CyanBanner => "cyan_banner", + Item::PurpleBanner => "purple_banner", + Item::BlueBanner => "blue_banner", + Item::BrownBanner => "brown_banner", + Item::GreenBanner => "green_banner", + Item::RedBanner => "red_banner", + Item::BlackBanner => "black_banner", + Item::EndCrystal => "end_crystal", + Item::ChorusFruit => "chorus_fruit", + Item::PoppedChorusFruit => "popped_chorus_fruit", + Item::Beetroot => "beetroot", + Item::BeetrootSeeds => "beetroot_seeds", + Item::BeetrootSoup => "beetroot_soup", + Item::DragonBreath => "dragon_breath", + Item::SplashPotion => "splash_potion", + Item::SpectralArrow => "spectral_arrow", + Item::TippedArrow => "tipped_arrow", + Item::LingeringPotion => "lingering_potion", + Item::Shield => "shield", + Item::TotemOfUndying => "totem_of_undying", + Item::ShulkerShell => "shulker_shell", + Item::IronNugget => "iron_nugget", + Item::KnowledgeBook => "knowledge_book", + Item::DebugStick => "debug_stick", + Item::MusicDisc13 => "music_disc_13", + Item::MusicDiscCat => "music_disc_cat", + Item::MusicDiscBlocks => "music_disc_blocks", + Item::MusicDiscChirp => "music_disc_chirp", + Item::MusicDiscFar => "music_disc_far", + Item::MusicDiscMall => "music_disc_mall", + Item::MusicDiscMellohi => "music_disc_mellohi", + Item::MusicDiscStal => "music_disc_stal", + Item::MusicDiscStrad => "music_disc_strad", + Item::MusicDiscWard => "music_disc_ward", + Item::MusicDisc11 => "music_disc_11", + Item::MusicDiscWait => "music_disc_wait", + Item::MusicDiscOtherside => "music_disc_otherside", + Item::MusicDiscPigstep => "music_disc_pigstep", + Item::Trident => "trident", + Item::PhantomMembrane => "phantom_membrane", + Item::NautilusShell => "nautilus_shell", + Item::HeartOfTheSea => "heart_of_the_sea", + Item::Crossbow => "crossbow", + Item::SuspiciousStew => "suspicious_stew", + Item::Loom => "loom", + Item::FlowerBannerPattern => "flower_banner_pattern", + Item::CreeperBannerPattern => "creeper_banner_pattern", + Item::SkullBannerPattern => "skull_banner_pattern", + Item::MojangBannerPattern => "mojang_banner_pattern", + Item::GlobeBannerPattern => "globe_banner_pattern", + Item::PiglinBannerPattern => "piglin_banner_pattern", + Item::Composter => "composter", + Item::Barrel => "barrel", + Item::Smoker => "smoker", + Item::BlastFurnace => "blast_furnace", + Item::CartographyTable => "cartography_table", + Item::FletchingTable => "fletching_table", + Item::Grindstone => "grindstone", + Item::SmithingTable => "smithing_table", + Item::Stonecutter => "stonecutter", + Item::Bell => "bell", + Item::Lantern => "lantern", + Item::SoulLantern => "soul_lantern", + Item::SweetBerries => "sweet_berries", + Item::GlowBerries => "glow_berries", + Item::Campfire => "campfire", + Item::SoulCampfire => "soul_campfire", + Item::Shroomlight => "shroomlight", + Item::Honeycomb => "honeycomb", + Item::BeeNest => "bee_nest", + Item::Beehive => "beehive", + Item::HoneyBottle => "honey_bottle", + Item::HoneycombBlock => "honeycomb_block", + Item::Lodestone => "lodestone", + Item::CryingObsidian => "crying_obsidian", + Item::Blackstone => "blackstone", + Item::BlackstoneSlab => "blackstone_slab", + Item::BlackstoneStairs => "blackstone_stairs", + Item::GildedBlackstone => "gilded_blackstone", + Item::PolishedBlackstone => "polished_blackstone", + Item::PolishedBlackstoneSlab => "polished_blackstone_slab", + Item::PolishedBlackstoneStairs => "polished_blackstone_stairs", + Item::ChiseledPolishedBlackstone => "chiseled_polished_blackstone", + Item::PolishedBlackstoneBricks => "polished_blackstone_bricks", + Item::PolishedBlackstoneBrickSlab => "polished_blackstone_brick_slab", + Item::PolishedBlackstoneBrickStairs => "polished_blackstone_brick_stairs", + Item::CrackedPolishedBlackstoneBricks => "cracked_polished_blackstone_bricks", + Item::RespawnAnchor => "respawn_anchor", + Item::Candle => "candle", + Item::WhiteCandle => "white_candle", + Item::OrangeCandle => "orange_candle", + Item::MagentaCandle => "magenta_candle", + Item::LightBlueCandle => "light_blue_candle", + Item::YellowCandle => "yellow_candle", + Item::LimeCandle => "lime_candle", + Item::PinkCandle => "pink_candle", + Item::GrayCandle => "gray_candle", + Item::LightGrayCandle => "light_gray_candle", + Item::CyanCandle => "cyan_candle", + Item::PurpleCandle => "purple_candle", + Item::BlueCandle => "blue_candle", + Item::BrownCandle => "brown_candle", + Item::GreenCandle => "green_candle", + Item::RedCandle => "red_candle", + Item::BlackCandle => "black_candle", + Item::SmallAmethystBud => "small_amethyst_bud", + Item::MediumAmethystBud => "medium_amethyst_bud", + Item::LargeAmethystBud => "large_amethyst_bud", + Item::AmethystCluster => "amethyst_cluster", + Item::PointedDripstone => "pointed_dripstone", + } + } + #[doc = "Gets a `Item` by its `name`."] + #[inline] + pub fn from_name(name: &str) -> Option { + match name { + "stone" => Some(Item::Stone), + "granite" => Some(Item::Granite), + "polished_granite" => Some(Item::PolishedGranite), + "diorite" => Some(Item::Diorite), + "polished_diorite" => Some(Item::PolishedDiorite), + "andesite" => Some(Item::Andesite), + "polished_andesite" => Some(Item::PolishedAndesite), + "deepslate" => Some(Item::Deepslate), + "cobbled_deepslate" => Some(Item::CobbledDeepslate), + "polished_deepslate" => Some(Item::PolishedDeepslate), + "calcite" => Some(Item::Calcite), + "tuff" => Some(Item::Tuff), + "dripstone_block" => Some(Item::DripstoneBlock), + "grass_block" => Some(Item::GrassBlock), + "dirt" => Some(Item::Dirt), + "coarse_dirt" => Some(Item::CoarseDirt), + "podzol" => Some(Item::Podzol), + "rooted_dirt" => Some(Item::RootedDirt), + "crimson_nylium" => Some(Item::CrimsonNylium), + "warped_nylium" => Some(Item::WarpedNylium), + "cobblestone" => Some(Item::Cobblestone), + "oak_planks" => Some(Item::OakPlanks), + "spruce_planks" => Some(Item::SprucePlanks), + "birch_planks" => Some(Item::BirchPlanks), + "jungle_planks" => Some(Item::JunglePlanks), + "acacia_planks" => Some(Item::AcaciaPlanks), + "dark_oak_planks" => Some(Item::DarkOakPlanks), + "crimson_planks" => Some(Item::CrimsonPlanks), + "warped_planks" => Some(Item::WarpedPlanks), + "oak_sapling" => Some(Item::OakSapling), + "spruce_sapling" => Some(Item::SpruceSapling), + "birch_sapling" => Some(Item::BirchSapling), + "jungle_sapling" => Some(Item::JungleSapling), + "acacia_sapling" => Some(Item::AcaciaSapling), + "dark_oak_sapling" => Some(Item::DarkOakSapling), + "bedrock" => Some(Item::Bedrock), + "sand" => Some(Item::Sand), + "red_sand" => Some(Item::RedSand), + "gravel" => Some(Item::Gravel), + "coal_ore" => Some(Item::CoalOre), + "deepslate_coal_ore" => Some(Item::DeepslateCoalOre), + "iron_ore" => Some(Item::IronOre), + "deepslate_iron_ore" => Some(Item::DeepslateIronOre), + "copper_ore" => Some(Item::CopperOre), + "deepslate_copper_ore" => Some(Item::DeepslateCopperOre), + "gold_ore" => Some(Item::GoldOre), + "deepslate_gold_ore" => Some(Item::DeepslateGoldOre), + "redstone_ore" => Some(Item::RedstoneOre), + "deepslate_redstone_ore" => Some(Item::DeepslateRedstoneOre), + "emerald_ore" => Some(Item::EmeraldOre), + "deepslate_emerald_ore" => Some(Item::DeepslateEmeraldOre), + "lapis_ore" => Some(Item::LapisOre), + "deepslate_lapis_ore" => Some(Item::DeepslateLapisOre), + "diamond_ore" => Some(Item::DiamondOre), + "deepslate_diamond_ore" => Some(Item::DeepslateDiamondOre), + "nether_gold_ore" => Some(Item::NetherGoldOre), + "nether_quartz_ore" => Some(Item::NetherQuartzOre), + "ancient_debris" => Some(Item::AncientDebris), + "coal_block" => Some(Item::CoalBlock), + "raw_iron_block" => Some(Item::RawIronBlock), + "raw_copper_block" => Some(Item::RawCopperBlock), + "raw_gold_block" => Some(Item::RawGoldBlock), + "amethyst_block" => Some(Item::AmethystBlock), + "budding_amethyst" => Some(Item::BuddingAmethyst), + "iron_block" => Some(Item::IronBlock), + "copper_block" => Some(Item::CopperBlock), + "gold_block" => Some(Item::GoldBlock), + "diamond_block" => Some(Item::DiamondBlock), + "netherite_block" => Some(Item::NetheriteBlock), + "exposed_copper" => Some(Item::ExposedCopper), + "weathered_copper" => Some(Item::WeatheredCopper), + "oxidized_copper" => Some(Item::OxidizedCopper), + "cut_copper" => Some(Item::CutCopper), + "exposed_cut_copper" => Some(Item::ExposedCutCopper), + "weathered_cut_copper" => Some(Item::WeatheredCutCopper), + "oxidized_cut_copper" => Some(Item::OxidizedCutCopper), + "cut_copper_stairs" => Some(Item::CutCopperStairs), + "exposed_cut_copper_stairs" => Some(Item::ExposedCutCopperStairs), + "weathered_cut_copper_stairs" => Some(Item::WeatheredCutCopperStairs), + "oxidized_cut_copper_stairs" => Some(Item::OxidizedCutCopperStairs), + "cut_copper_slab" => Some(Item::CutCopperSlab), + "exposed_cut_copper_slab" => Some(Item::ExposedCutCopperSlab), + "weathered_cut_copper_slab" => Some(Item::WeatheredCutCopperSlab), + "oxidized_cut_copper_slab" => Some(Item::OxidizedCutCopperSlab), + "waxed_copper_block" => Some(Item::WaxedCopperBlock), + "waxed_exposed_copper" => Some(Item::WaxedExposedCopper), + "waxed_weathered_copper" => Some(Item::WaxedWeatheredCopper), + "waxed_oxidized_copper" => Some(Item::WaxedOxidizedCopper), + "waxed_cut_copper" => Some(Item::WaxedCutCopper), + "waxed_exposed_cut_copper" => Some(Item::WaxedExposedCutCopper), + "waxed_weathered_cut_copper" => Some(Item::WaxedWeatheredCutCopper), + "waxed_oxidized_cut_copper" => Some(Item::WaxedOxidizedCutCopper), + "waxed_cut_copper_stairs" => Some(Item::WaxedCutCopperStairs), + "waxed_exposed_cut_copper_stairs" => Some(Item::WaxedExposedCutCopperStairs), + "waxed_weathered_cut_copper_stairs" => Some(Item::WaxedWeatheredCutCopperStairs), + "waxed_oxidized_cut_copper_stairs" => Some(Item::WaxedOxidizedCutCopperStairs), + "waxed_cut_copper_slab" => Some(Item::WaxedCutCopperSlab), + "waxed_exposed_cut_copper_slab" => Some(Item::WaxedExposedCutCopperSlab), + "waxed_weathered_cut_copper_slab" => Some(Item::WaxedWeatheredCutCopperSlab), + "waxed_oxidized_cut_copper_slab" => Some(Item::WaxedOxidizedCutCopperSlab), + "oak_log" => Some(Item::OakLog), + "spruce_log" => Some(Item::SpruceLog), + "birch_log" => Some(Item::BirchLog), + "jungle_log" => Some(Item::JungleLog), + "acacia_log" => Some(Item::AcaciaLog), + "dark_oak_log" => Some(Item::DarkOakLog), + "crimson_stem" => Some(Item::CrimsonStem), + "warped_stem" => Some(Item::WarpedStem), + "stripped_oak_log" => Some(Item::StrippedOakLog), + "stripped_spruce_log" => Some(Item::StrippedSpruceLog), + "stripped_birch_log" => Some(Item::StrippedBirchLog), + "stripped_jungle_log" => Some(Item::StrippedJungleLog), + "stripped_acacia_log" => Some(Item::StrippedAcaciaLog), + "stripped_dark_oak_log" => Some(Item::StrippedDarkOakLog), + "stripped_crimson_stem" => Some(Item::StrippedCrimsonStem), + "stripped_warped_stem" => Some(Item::StrippedWarpedStem), + "stripped_oak_wood" => Some(Item::StrippedOakWood), + "stripped_spruce_wood" => Some(Item::StrippedSpruceWood), + "stripped_birch_wood" => Some(Item::StrippedBirchWood), + "stripped_jungle_wood" => Some(Item::StrippedJungleWood), + "stripped_acacia_wood" => Some(Item::StrippedAcaciaWood), + "stripped_dark_oak_wood" => Some(Item::StrippedDarkOakWood), + "stripped_crimson_hyphae" => Some(Item::StrippedCrimsonHyphae), + "stripped_warped_hyphae" => Some(Item::StrippedWarpedHyphae), + "oak_wood" => Some(Item::OakWood), + "spruce_wood" => Some(Item::SpruceWood), + "birch_wood" => Some(Item::BirchWood), + "jungle_wood" => Some(Item::JungleWood), + "acacia_wood" => Some(Item::AcaciaWood), + "dark_oak_wood" => Some(Item::DarkOakWood), + "crimson_hyphae" => Some(Item::CrimsonHyphae), + "warped_hyphae" => Some(Item::WarpedHyphae), + "oak_leaves" => Some(Item::OakLeaves), + "spruce_leaves" => Some(Item::SpruceLeaves), + "birch_leaves" => Some(Item::BirchLeaves), + "jungle_leaves" => Some(Item::JungleLeaves), + "acacia_leaves" => Some(Item::AcaciaLeaves), + "dark_oak_leaves" => Some(Item::DarkOakLeaves), + "azalea_leaves" => Some(Item::AzaleaLeaves), + "flowering_azalea_leaves" => Some(Item::FloweringAzaleaLeaves), + "sponge" => Some(Item::Sponge), + "wet_sponge" => Some(Item::WetSponge), + "glass" => Some(Item::Glass), + "tinted_glass" => Some(Item::TintedGlass), + "lapis_block" => Some(Item::LapisBlock), + "sandstone" => Some(Item::Sandstone), + "chiseled_sandstone" => Some(Item::ChiseledSandstone), + "cut_sandstone" => Some(Item::CutSandstone), + "cobweb" => Some(Item::Cobweb), + "grass" => Some(Item::Grass), + "fern" => Some(Item::Fern), + "azalea" => Some(Item::Azalea), + "flowering_azalea" => Some(Item::FloweringAzalea), + "dead_bush" => Some(Item::DeadBush), + "seagrass" => Some(Item::Seagrass), + "sea_pickle" => Some(Item::SeaPickle), + "white_wool" => Some(Item::WhiteWool), + "orange_wool" => Some(Item::OrangeWool), + "magenta_wool" => Some(Item::MagentaWool), + "light_blue_wool" => Some(Item::LightBlueWool), + "yellow_wool" => Some(Item::YellowWool), + "lime_wool" => Some(Item::LimeWool), + "pink_wool" => Some(Item::PinkWool), + "gray_wool" => Some(Item::GrayWool), + "light_gray_wool" => Some(Item::LightGrayWool), + "cyan_wool" => Some(Item::CyanWool), + "purple_wool" => Some(Item::PurpleWool), + "blue_wool" => Some(Item::BlueWool), + "brown_wool" => Some(Item::BrownWool), + "green_wool" => Some(Item::GreenWool), + "red_wool" => Some(Item::RedWool), + "black_wool" => Some(Item::BlackWool), + "dandelion" => Some(Item::Dandelion), + "poppy" => Some(Item::Poppy), + "blue_orchid" => Some(Item::BlueOrchid), + "allium" => Some(Item::Allium), + "azure_bluet" => Some(Item::AzureBluet), + "red_tulip" => Some(Item::RedTulip), + "orange_tulip" => Some(Item::OrangeTulip), + "white_tulip" => Some(Item::WhiteTulip), + "pink_tulip" => Some(Item::PinkTulip), + "oxeye_daisy" => Some(Item::OxeyeDaisy), + "cornflower" => Some(Item::Cornflower), + "lily_of_the_valley" => Some(Item::LilyOfTheValley), + "wither_rose" => Some(Item::WitherRose), + "spore_blossom" => Some(Item::SporeBlossom), + "brown_mushroom" => Some(Item::BrownMushroom), + "red_mushroom" => Some(Item::RedMushroom), + "crimson_fungus" => Some(Item::CrimsonFungus), + "warped_fungus" => Some(Item::WarpedFungus), + "crimson_roots" => Some(Item::CrimsonRoots), + "warped_roots" => Some(Item::WarpedRoots), + "nether_sprouts" => Some(Item::NetherSprouts), + "weeping_vines" => Some(Item::WeepingVines), + "twisting_vines" => Some(Item::TwistingVines), + "sugar_cane" => Some(Item::SugarCane), + "kelp" => Some(Item::Kelp), + "moss_carpet" => Some(Item::MossCarpet), + "moss_block" => Some(Item::MossBlock), + "hanging_roots" => Some(Item::HangingRoots), + "big_dripleaf" => Some(Item::BigDripleaf), + "small_dripleaf" => Some(Item::SmallDripleaf), + "bamboo" => Some(Item::Bamboo), + "oak_slab" => Some(Item::OakSlab), + "spruce_slab" => Some(Item::SpruceSlab), + "birch_slab" => Some(Item::BirchSlab), + "jungle_slab" => Some(Item::JungleSlab), + "acacia_slab" => Some(Item::AcaciaSlab), + "dark_oak_slab" => Some(Item::DarkOakSlab), + "crimson_slab" => Some(Item::CrimsonSlab), + "warped_slab" => Some(Item::WarpedSlab), + "stone_slab" => Some(Item::StoneSlab), + "smooth_stone_slab" => Some(Item::SmoothStoneSlab), + "sandstone_slab" => Some(Item::SandstoneSlab), + "cut_sandstone_slab" => Some(Item::CutSandstoneSlab), + "petrified_oak_slab" => Some(Item::PetrifiedOakSlab), + "cobblestone_slab" => Some(Item::CobblestoneSlab), + "brick_slab" => Some(Item::BrickSlab), + "stone_brick_slab" => Some(Item::StoneBrickSlab), + "nether_brick_slab" => Some(Item::NetherBrickSlab), + "quartz_slab" => Some(Item::QuartzSlab), + "red_sandstone_slab" => Some(Item::RedSandstoneSlab), + "cut_red_sandstone_slab" => Some(Item::CutRedSandstoneSlab), + "purpur_slab" => Some(Item::PurpurSlab), + "prismarine_slab" => Some(Item::PrismarineSlab), + "prismarine_brick_slab" => Some(Item::PrismarineBrickSlab), + "dark_prismarine_slab" => Some(Item::DarkPrismarineSlab), + "smooth_quartz" => Some(Item::SmoothQuartz), + "smooth_red_sandstone" => Some(Item::SmoothRedSandstone), + "smooth_sandstone" => Some(Item::SmoothSandstone), + "smooth_stone" => Some(Item::SmoothStone), + "bricks" => Some(Item::Bricks), + "bookshelf" => Some(Item::Bookshelf), + "mossy_cobblestone" => Some(Item::MossyCobblestone), + "obsidian" => Some(Item::Obsidian), + "torch" => Some(Item::Torch), + "end_rod" => Some(Item::EndRod), + "chorus_plant" => Some(Item::ChorusPlant), + "chorus_flower" => Some(Item::ChorusFlower), + "purpur_block" => Some(Item::PurpurBlock), + "purpur_pillar" => Some(Item::PurpurPillar), + "purpur_stairs" => Some(Item::PurpurStairs), + "spawner" => Some(Item::Spawner), + "oak_stairs" => Some(Item::OakStairs), + "chest" => Some(Item::Chest), + "crafting_table" => Some(Item::CraftingTable), + "farmland" => Some(Item::Farmland), + "furnace" => Some(Item::Furnace), + "ladder" => Some(Item::Ladder), + "cobblestone_stairs" => Some(Item::CobblestoneStairs), + "snow" => Some(Item::Snow), + "ice" => Some(Item::Ice), + "snow_block" => Some(Item::SnowBlock), + "cactus" => Some(Item::Cactus), + "clay" => Some(Item::Clay), + "jukebox" => Some(Item::Jukebox), + "oak_fence" => Some(Item::OakFence), + "spruce_fence" => Some(Item::SpruceFence), + "birch_fence" => Some(Item::BirchFence), + "jungle_fence" => Some(Item::JungleFence), + "acacia_fence" => Some(Item::AcaciaFence), + "dark_oak_fence" => Some(Item::DarkOakFence), + "crimson_fence" => Some(Item::CrimsonFence), + "warped_fence" => Some(Item::WarpedFence), + "pumpkin" => Some(Item::Pumpkin), + "carved_pumpkin" => Some(Item::CarvedPumpkin), + "jack_o_lantern" => Some(Item::JackOLantern), + "netherrack" => Some(Item::Netherrack), + "soul_sand" => Some(Item::SoulSand), + "soul_soil" => Some(Item::SoulSoil), + "basalt" => Some(Item::Basalt), + "polished_basalt" => Some(Item::PolishedBasalt), + "smooth_basalt" => Some(Item::SmoothBasalt), + "soul_torch" => Some(Item::SoulTorch), + "glowstone" => Some(Item::Glowstone), + "infested_stone" => Some(Item::InfestedStone), + "infested_cobblestone" => Some(Item::InfestedCobblestone), + "infested_stone_bricks" => Some(Item::InfestedStoneBricks), + "infested_mossy_stone_bricks" => Some(Item::InfestedMossyStoneBricks), + "infested_cracked_stone_bricks" => Some(Item::InfestedCrackedStoneBricks), + "infested_chiseled_stone_bricks" => Some(Item::InfestedChiseledStoneBricks), + "infested_deepslate" => Some(Item::InfestedDeepslate), + "stone_bricks" => Some(Item::StoneBricks), + "mossy_stone_bricks" => Some(Item::MossyStoneBricks), + "cracked_stone_bricks" => Some(Item::CrackedStoneBricks), + "chiseled_stone_bricks" => Some(Item::ChiseledStoneBricks), + "deepslate_bricks" => Some(Item::DeepslateBricks), + "cracked_deepslate_bricks" => Some(Item::CrackedDeepslateBricks), + "deepslate_tiles" => Some(Item::DeepslateTiles), + "cracked_deepslate_tiles" => Some(Item::CrackedDeepslateTiles), + "chiseled_deepslate" => Some(Item::ChiseledDeepslate), + "brown_mushroom_block" => Some(Item::BrownMushroomBlock), + "red_mushroom_block" => Some(Item::RedMushroomBlock), + "mushroom_stem" => Some(Item::MushroomStem), + "iron_bars" => Some(Item::IronBars), + "chain" => Some(Item::Chain), + "glass_pane" => Some(Item::GlassPane), + "melon" => Some(Item::Melon), + "vine" => Some(Item::Vine), + "glow_lichen" => Some(Item::GlowLichen), + "brick_stairs" => Some(Item::BrickStairs), + "stone_brick_stairs" => Some(Item::StoneBrickStairs), + "mycelium" => Some(Item::Mycelium), + "lily_pad" => Some(Item::LilyPad), + "nether_bricks" => Some(Item::NetherBricks), + "cracked_nether_bricks" => Some(Item::CrackedNetherBricks), + "chiseled_nether_bricks" => Some(Item::ChiseledNetherBricks), + "nether_brick_fence" => Some(Item::NetherBrickFence), + "nether_brick_stairs" => Some(Item::NetherBrickStairs), + "enchanting_table" => Some(Item::EnchantingTable), + "end_portal_frame" => Some(Item::EndPortalFrame), + "end_stone" => Some(Item::EndStone), + "end_stone_bricks" => Some(Item::EndStoneBricks), + "dragon_egg" => Some(Item::DragonEgg), + "sandstone_stairs" => Some(Item::SandstoneStairs), + "ender_chest" => Some(Item::EnderChest), + "emerald_block" => Some(Item::EmeraldBlock), + "spruce_stairs" => Some(Item::SpruceStairs), + "birch_stairs" => Some(Item::BirchStairs), + "jungle_stairs" => Some(Item::JungleStairs), + "crimson_stairs" => Some(Item::CrimsonStairs), + "warped_stairs" => Some(Item::WarpedStairs), + "command_block" => Some(Item::CommandBlock), + "beacon" => Some(Item::Beacon), + "cobblestone_wall" => Some(Item::CobblestoneWall), + "mossy_cobblestone_wall" => Some(Item::MossyCobblestoneWall), + "brick_wall" => Some(Item::BrickWall), + "prismarine_wall" => Some(Item::PrismarineWall), + "red_sandstone_wall" => Some(Item::RedSandstoneWall), + "mossy_stone_brick_wall" => Some(Item::MossyStoneBrickWall), + "granite_wall" => Some(Item::GraniteWall), + "stone_brick_wall" => Some(Item::StoneBrickWall), + "nether_brick_wall" => Some(Item::NetherBrickWall), + "andesite_wall" => Some(Item::AndesiteWall), + "red_nether_brick_wall" => Some(Item::RedNetherBrickWall), + "sandstone_wall" => Some(Item::SandstoneWall), + "end_stone_brick_wall" => Some(Item::EndStoneBrickWall), + "diorite_wall" => Some(Item::DioriteWall), + "blackstone_wall" => Some(Item::BlackstoneWall), + "polished_blackstone_wall" => Some(Item::PolishedBlackstoneWall), + "polished_blackstone_brick_wall" => Some(Item::PolishedBlackstoneBrickWall), + "cobbled_deepslate_wall" => Some(Item::CobbledDeepslateWall), + "polished_deepslate_wall" => Some(Item::PolishedDeepslateWall), + "deepslate_brick_wall" => Some(Item::DeepslateBrickWall), + "deepslate_tile_wall" => Some(Item::DeepslateTileWall), + "anvil" => Some(Item::Anvil), + "chipped_anvil" => Some(Item::ChippedAnvil), + "damaged_anvil" => Some(Item::DamagedAnvil), + "chiseled_quartz_block" => Some(Item::ChiseledQuartzBlock), + "quartz_block" => Some(Item::QuartzBlock), + "quartz_bricks" => Some(Item::QuartzBricks), + "quartz_pillar" => Some(Item::QuartzPillar), + "quartz_stairs" => Some(Item::QuartzStairs), + "white_terracotta" => Some(Item::WhiteTerracotta), + "orange_terracotta" => Some(Item::OrangeTerracotta), + "magenta_terracotta" => Some(Item::MagentaTerracotta), + "light_blue_terracotta" => Some(Item::LightBlueTerracotta), + "yellow_terracotta" => Some(Item::YellowTerracotta), + "lime_terracotta" => Some(Item::LimeTerracotta), + "pink_terracotta" => Some(Item::PinkTerracotta), + "gray_terracotta" => Some(Item::GrayTerracotta), + "light_gray_terracotta" => Some(Item::LightGrayTerracotta), + "cyan_terracotta" => Some(Item::CyanTerracotta), + "purple_terracotta" => Some(Item::PurpleTerracotta), + "blue_terracotta" => Some(Item::BlueTerracotta), + "brown_terracotta" => Some(Item::BrownTerracotta), + "green_terracotta" => Some(Item::GreenTerracotta), + "red_terracotta" => Some(Item::RedTerracotta), + "black_terracotta" => Some(Item::BlackTerracotta), + "barrier" => Some(Item::Barrier), + "light" => Some(Item::Light), + "hay_block" => Some(Item::HayBlock), + "white_carpet" => Some(Item::WhiteCarpet), + "orange_carpet" => Some(Item::OrangeCarpet), + "magenta_carpet" => Some(Item::MagentaCarpet), + "light_blue_carpet" => Some(Item::LightBlueCarpet), + "yellow_carpet" => Some(Item::YellowCarpet), + "lime_carpet" => Some(Item::LimeCarpet), + "pink_carpet" => Some(Item::PinkCarpet), + "gray_carpet" => Some(Item::GrayCarpet), + "light_gray_carpet" => Some(Item::LightGrayCarpet), + "cyan_carpet" => Some(Item::CyanCarpet), + "purple_carpet" => Some(Item::PurpleCarpet), + "blue_carpet" => Some(Item::BlueCarpet), + "brown_carpet" => Some(Item::BrownCarpet), + "green_carpet" => Some(Item::GreenCarpet), + "red_carpet" => Some(Item::RedCarpet), + "black_carpet" => Some(Item::BlackCarpet), + "terracotta" => Some(Item::Terracotta), + "packed_ice" => Some(Item::PackedIce), + "acacia_stairs" => Some(Item::AcaciaStairs), + "dark_oak_stairs" => Some(Item::DarkOakStairs), + "dirt_path" => Some(Item::DirtPath), + "sunflower" => Some(Item::Sunflower), + "lilac" => Some(Item::Lilac), + "rose_bush" => Some(Item::RoseBush), + "peony" => Some(Item::Peony), + "tall_grass" => Some(Item::TallGrass), + "large_fern" => Some(Item::LargeFern), + "white_stained_glass" => Some(Item::WhiteStainedGlass), + "orange_stained_glass" => Some(Item::OrangeStainedGlass), + "magenta_stained_glass" => Some(Item::MagentaStainedGlass), + "light_blue_stained_glass" => Some(Item::LightBlueStainedGlass), + "yellow_stained_glass" => Some(Item::YellowStainedGlass), + "lime_stained_glass" => Some(Item::LimeStainedGlass), + "pink_stained_glass" => Some(Item::PinkStainedGlass), + "gray_stained_glass" => Some(Item::GrayStainedGlass), + "light_gray_stained_glass" => Some(Item::LightGrayStainedGlass), + "cyan_stained_glass" => Some(Item::CyanStainedGlass), + "purple_stained_glass" => Some(Item::PurpleStainedGlass), + "blue_stained_glass" => Some(Item::BlueStainedGlass), + "brown_stained_glass" => Some(Item::BrownStainedGlass), + "green_stained_glass" => Some(Item::GreenStainedGlass), + "red_stained_glass" => Some(Item::RedStainedGlass), + "black_stained_glass" => Some(Item::BlackStainedGlass), + "white_stained_glass_pane" => Some(Item::WhiteStainedGlassPane), + "orange_stained_glass_pane" => Some(Item::OrangeStainedGlassPane), + "magenta_stained_glass_pane" => Some(Item::MagentaStainedGlassPane), + "light_blue_stained_glass_pane" => Some(Item::LightBlueStainedGlassPane), + "yellow_stained_glass_pane" => Some(Item::YellowStainedGlassPane), + "lime_stained_glass_pane" => Some(Item::LimeStainedGlassPane), + "pink_stained_glass_pane" => Some(Item::PinkStainedGlassPane), + "gray_stained_glass_pane" => Some(Item::GrayStainedGlassPane), + "light_gray_stained_glass_pane" => Some(Item::LightGrayStainedGlassPane), + "cyan_stained_glass_pane" => Some(Item::CyanStainedGlassPane), + "purple_stained_glass_pane" => Some(Item::PurpleStainedGlassPane), + "blue_stained_glass_pane" => Some(Item::BlueStainedGlassPane), + "brown_stained_glass_pane" => Some(Item::BrownStainedGlassPane), + "green_stained_glass_pane" => Some(Item::GreenStainedGlassPane), + "red_stained_glass_pane" => Some(Item::RedStainedGlassPane), + "black_stained_glass_pane" => Some(Item::BlackStainedGlassPane), + "prismarine" => Some(Item::Prismarine), + "prismarine_bricks" => Some(Item::PrismarineBricks), + "dark_prismarine" => Some(Item::DarkPrismarine), + "prismarine_stairs" => Some(Item::PrismarineStairs), + "prismarine_brick_stairs" => Some(Item::PrismarineBrickStairs), + "dark_prismarine_stairs" => Some(Item::DarkPrismarineStairs), + "sea_lantern" => Some(Item::SeaLantern), + "red_sandstone" => Some(Item::RedSandstone), + "chiseled_red_sandstone" => Some(Item::ChiseledRedSandstone), + "cut_red_sandstone" => Some(Item::CutRedSandstone), + "red_sandstone_stairs" => Some(Item::RedSandstoneStairs), + "repeating_command_block" => Some(Item::RepeatingCommandBlock), + "chain_command_block" => Some(Item::ChainCommandBlock), + "magma_block" => Some(Item::MagmaBlock), + "nether_wart_block" => Some(Item::NetherWartBlock), + "warped_wart_block" => Some(Item::WarpedWartBlock), + "red_nether_bricks" => Some(Item::RedNetherBricks), + "bone_block" => Some(Item::BoneBlock), + "structure_void" => Some(Item::StructureVoid), + "shulker_box" => Some(Item::ShulkerBox), + "white_shulker_box" => Some(Item::WhiteShulkerBox), + "orange_shulker_box" => Some(Item::OrangeShulkerBox), + "magenta_shulker_box" => Some(Item::MagentaShulkerBox), + "light_blue_shulker_box" => Some(Item::LightBlueShulkerBox), + "yellow_shulker_box" => Some(Item::YellowShulkerBox), + "lime_shulker_box" => Some(Item::LimeShulkerBox), + "pink_shulker_box" => Some(Item::PinkShulkerBox), + "gray_shulker_box" => Some(Item::GrayShulkerBox), + "light_gray_shulker_box" => Some(Item::LightGrayShulkerBox), + "cyan_shulker_box" => Some(Item::CyanShulkerBox), + "purple_shulker_box" => Some(Item::PurpleShulkerBox), + "blue_shulker_box" => Some(Item::BlueShulkerBox), + "brown_shulker_box" => Some(Item::BrownShulkerBox), + "green_shulker_box" => Some(Item::GreenShulkerBox), + "red_shulker_box" => Some(Item::RedShulkerBox), + "black_shulker_box" => Some(Item::BlackShulkerBox), + "white_glazed_terracotta" => Some(Item::WhiteGlazedTerracotta), + "orange_glazed_terracotta" => Some(Item::OrangeGlazedTerracotta), + "magenta_glazed_terracotta" => Some(Item::MagentaGlazedTerracotta), + "light_blue_glazed_terracotta" => Some(Item::LightBlueGlazedTerracotta), + "yellow_glazed_terracotta" => Some(Item::YellowGlazedTerracotta), + "lime_glazed_terracotta" => Some(Item::LimeGlazedTerracotta), + "pink_glazed_terracotta" => Some(Item::PinkGlazedTerracotta), + "gray_glazed_terracotta" => Some(Item::GrayGlazedTerracotta), + "light_gray_glazed_terracotta" => Some(Item::LightGrayGlazedTerracotta), + "cyan_glazed_terracotta" => Some(Item::CyanGlazedTerracotta), + "purple_glazed_terracotta" => Some(Item::PurpleGlazedTerracotta), + "blue_glazed_terracotta" => Some(Item::BlueGlazedTerracotta), + "brown_glazed_terracotta" => Some(Item::BrownGlazedTerracotta), + "green_glazed_terracotta" => Some(Item::GreenGlazedTerracotta), + "red_glazed_terracotta" => Some(Item::RedGlazedTerracotta), + "black_glazed_terracotta" => Some(Item::BlackGlazedTerracotta), + "white_concrete" => Some(Item::WhiteConcrete), + "orange_concrete" => Some(Item::OrangeConcrete), + "magenta_concrete" => Some(Item::MagentaConcrete), + "light_blue_concrete" => Some(Item::LightBlueConcrete), + "yellow_concrete" => Some(Item::YellowConcrete), + "lime_concrete" => Some(Item::LimeConcrete), + "pink_concrete" => Some(Item::PinkConcrete), + "gray_concrete" => Some(Item::GrayConcrete), + "light_gray_concrete" => Some(Item::LightGrayConcrete), + "cyan_concrete" => Some(Item::CyanConcrete), + "purple_concrete" => Some(Item::PurpleConcrete), + "blue_concrete" => Some(Item::BlueConcrete), + "brown_concrete" => Some(Item::BrownConcrete), + "green_concrete" => Some(Item::GreenConcrete), + "red_concrete" => Some(Item::RedConcrete), + "black_concrete" => Some(Item::BlackConcrete), + "white_concrete_powder" => Some(Item::WhiteConcretePowder), + "orange_concrete_powder" => Some(Item::OrangeConcretePowder), + "magenta_concrete_powder" => Some(Item::MagentaConcretePowder), + "light_blue_concrete_powder" => Some(Item::LightBlueConcretePowder), + "yellow_concrete_powder" => Some(Item::YellowConcretePowder), + "lime_concrete_powder" => Some(Item::LimeConcretePowder), + "pink_concrete_powder" => Some(Item::PinkConcretePowder), + "gray_concrete_powder" => Some(Item::GrayConcretePowder), + "light_gray_concrete_powder" => Some(Item::LightGrayConcretePowder), + "cyan_concrete_powder" => Some(Item::CyanConcretePowder), + "purple_concrete_powder" => Some(Item::PurpleConcretePowder), + "blue_concrete_powder" => Some(Item::BlueConcretePowder), + "brown_concrete_powder" => Some(Item::BrownConcretePowder), + "green_concrete_powder" => Some(Item::GreenConcretePowder), + "red_concrete_powder" => Some(Item::RedConcretePowder), + "black_concrete_powder" => Some(Item::BlackConcretePowder), + "turtle_egg" => Some(Item::TurtleEgg), + "dead_tube_coral_block" => Some(Item::DeadTubeCoralBlock), + "dead_brain_coral_block" => Some(Item::DeadBrainCoralBlock), + "dead_bubble_coral_block" => Some(Item::DeadBubbleCoralBlock), + "dead_fire_coral_block" => Some(Item::DeadFireCoralBlock), + "dead_horn_coral_block" => Some(Item::DeadHornCoralBlock), + "tube_coral_block" => Some(Item::TubeCoralBlock), + "brain_coral_block" => Some(Item::BrainCoralBlock), + "bubble_coral_block" => Some(Item::BubbleCoralBlock), + "fire_coral_block" => Some(Item::FireCoralBlock), + "horn_coral_block" => Some(Item::HornCoralBlock), + "tube_coral" => Some(Item::TubeCoral), + "brain_coral" => Some(Item::BrainCoral), + "bubble_coral" => Some(Item::BubbleCoral), + "fire_coral" => Some(Item::FireCoral), + "horn_coral" => Some(Item::HornCoral), + "dead_brain_coral" => Some(Item::DeadBrainCoral), + "dead_bubble_coral" => Some(Item::DeadBubbleCoral), + "dead_fire_coral" => Some(Item::DeadFireCoral), + "dead_horn_coral" => Some(Item::DeadHornCoral), + "dead_tube_coral" => Some(Item::DeadTubeCoral), + "tube_coral_fan" => Some(Item::TubeCoralFan), + "brain_coral_fan" => Some(Item::BrainCoralFan), + "bubble_coral_fan" => Some(Item::BubbleCoralFan), + "fire_coral_fan" => Some(Item::FireCoralFan), + "horn_coral_fan" => Some(Item::HornCoralFan), + "dead_tube_coral_fan" => Some(Item::DeadTubeCoralFan), + "dead_brain_coral_fan" => Some(Item::DeadBrainCoralFan), + "dead_bubble_coral_fan" => Some(Item::DeadBubbleCoralFan), + "dead_fire_coral_fan" => Some(Item::DeadFireCoralFan), + "dead_horn_coral_fan" => Some(Item::DeadHornCoralFan), + "blue_ice" => Some(Item::BlueIce), + "conduit" => Some(Item::Conduit), + "polished_granite_stairs" => Some(Item::PolishedGraniteStairs), + "smooth_red_sandstone_stairs" => Some(Item::SmoothRedSandstoneStairs), + "mossy_stone_brick_stairs" => Some(Item::MossyStoneBrickStairs), + "polished_diorite_stairs" => Some(Item::PolishedDioriteStairs), + "mossy_cobblestone_stairs" => Some(Item::MossyCobblestoneStairs), + "end_stone_brick_stairs" => Some(Item::EndStoneBrickStairs), + "stone_stairs" => Some(Item::StoneStairs), + "smooth_sandstone_stairs" => Some(Item::SmoothSandstoneStairs), + "smooth_quartz_stairs" => Some(Item::SmoothQuartzStairs), + "granite_stairs" => Some(Item::GraniteStairs), + "andesite_stairs" => Some(Item::AndesiteStairs), + "red_nether_brick_stairs" => Some(Item::RedNetherBrickStairs), + "polished_andesite_stairs" => Some(Item::PolishedAndesiteStairs), + "diorite_stairs" => Some(Item::DioriteStairs), + "cobbled_deepslate_stairs" => Some(Item::CobbledDeepslateStairs), + "polished_deepslate_stairs" => Some(Item::PolishedDeepslateStairs), + "deepslate_brick_stairs" => Some(Item::DeepslateBrickStairs), + "deepslate_tile_stairs" => Some(Item::DeepslateTileStairs), + "polished_granite_slab" => Some(Item::PolishedGraniteSlab), + "smooth_red_sandstone_slab" => Some(Item::SmoothRedSandstoneSlab), + "mossy_stone_brick_slab" => Some(Item::MossyStoneBrickSlab), + "polished_diorite_slab" => Some(Item::PolishedDioriteSlab), + "mossy_cobblestone_slab" => Some(Item::MossyCobblestoneSlab), + "end_stone_brick_slab" => Some(Item::EndStoneBrickSlab), + "smooth_sandstone_slab" => Some(Item::SmoothSandstoneSlab), + "smooth_quartz_slab" => Some(Item::SmoothQuartzSlab), + "granite_slab" => Some(Item::GraniteSlab), + "andesite_slab" => Some(Item::AndesiteSlab), + "red_nether_brick_slab" => Some(Item::RedNetherBrickSlab), + "polished_andesite_slab" => Some(Item::PolishedAndesiteSlab), + "diorite_slab" => Some(Item::DioriteSlab), + "cobbled_deepslate_slab" => Some(Item::CobbledDeepslateSlab), + "polished_deepslate_slab" => Some(Item::PolishedDeepslateSlab), + "deepslate_brick_slab" => Some(Item::DeepslateBrickSlab), + "deepslate_tile_slab" => Some(Item::DeepslateTileSlab), + "scaffolding" => Some(Item::Scaffolding), + "redstone" => Some(Item::Redstone), + "redstone_torch" => Some(Item::RedstoneTorch), + "redstone_block" => Some(Item::RedstoneBlock), + "repeater" => Some(Item::Repeater), + "comparator" => Some(Item::Comparator), + "piston" => Some(Item::Piston), + "sticky_piston" => Some(Item::StickyPiston), + "slime_block" => Some(Item::SlimeBlock), + "honey_block" => Some(Item::HoneyBlock), + "observer" => Some(Item::Observer), + "hopper" => Some(Item::Hopper), + "dispenser" => Some(Item::Dispenser), + "dropper" => Some(Item::Dropper), + "lectern" => Some(Item::Lectern), + "target" => Some(Item::Target), + "lever" => Some(Item::Lever), + "lightning_rod" => Some(Item::LightningRod), + "daylight_detector" => Some(Item::DaylightDetector), + "sculk_sensor" => Some(Item::SculkSensor), + "tripwire_hook" => Some(Item::TripwireHook), + "trapped_chest" => Some(Item::TrappedChest), + "tnt" => Some(Item::Tnt), + "redstone_lamp" => Some(Item::RedstoneLamp), + "note_block" => Some(Item::NoteBlock), + "stone_button" => Some(Item::StoneButton), + "polished_blackstone_button" => Some(Item::PolishedBlackstoneButton), + "oak_button" => Some(Item::OakButton), + "spruce_button" => Some(Item::SpruceButton), + "birch_button" => Some(Item::BirchButton), + "jungle_button" => Some(Item::JungleButton), + "acacia_button" => Some(Item::AcaciaButton), + "dark_oak_button" => Some(Item::DarkOakButton), + "crimson_button" => Some(Item::CrimsonButton), + "warped_button" => Some(Item::WarpedButton), + "stone_pressure_plate" => Some(Item::StonePressurePlate), + "polished_blackstone_pressure_plate" => Some(Item::PolishedBlackstonePressurePlate), + "light_weighted_pressure_plate" => Some(Item::LightWeightedPressurePlate), + "heavy_weighted_pressure_plate" => Some(Item::HeavyWeightedPressurePlate), + "oak_pressure_plate" => Some(Item::OakPressurePlate), + "spruce_pressure_plate" => Some(Item::SprucePressurePlate), + "birch_pressure_plate" => Some(Item::BirchPressurePlate), + "jungle_pressure_plate" => Some(Item::JunglePressurePlate), + "acacia_pressure_plate" => Some(Item::AcaciaPressurePlate), + "dark_oak_pressure_plate" => Some(Item::DarkOakPressurePlate), + "crimson_pressure_plate" => Some(Item::CrimsonPressurePlate), + "warped_pressure_plate" => Some(Item::WarpedPressurePlate), + "iron_door" => Some(Item::IronDoor), + "oak_door" => Some(Item::OakDoor), + "spruce_door" => Some(Item::SpruceDoor), + "birch_door" => Some(Item::BirchDoor), + "jungle_door" => Some(Item::JungleDoor), + "acacia_door" => Some(Item::AcaciaDoor), + "dark_oak_door" => Some(Item::DarkOakDoor), + "crimson_door" => Some(Item::CrimsonDoor), + "warped_door" => Some(Item::WarpedDoor), + "iron_trapdoor" => Some(Item::IronTrapdoor), + "oak_trapdoor" => Some(Item::OakTrapdoor), + "spruce_trapdoor" => Some(Item::SpruceTrapdoor), + "birch_trapdoor" => Some(Item::BirchTrapdoor), + "jungle_trapdoor" => Some(Item::JungleTrapdoor), + "acacia_trapdoor" => Some(Item::AcaciaTrapdoor), + "dark_oak_trapdoor" => Some(Item::DarkOakTrapdoor), + "crimson_trapdoor" => Some(Item::CrimsonTrapdoor), + "warped_trapdoor" => Some(Item::WarpedTrapdoor), + "oak_fence_gate" => Some(Item::OakFenceGate), + "spruce_fence_gate" => Some(Item::SpruceFenceGate), + "birch_fence_gate" => Some(Item::BirchFenceGate), + "jungle_fence_gate" => Some(Item::JungleFenceGate), + "acacia_fence_gate" => Some(Item::AcaciaFenceGate), + "dark_oak_fence_gate" => Some(Item::DarkOakFenceGate), + "crimson_fence_gate" => Some(Item::CrimsonFenceGate), + "warped_fence_gate" => Some(Item::WarpedFenceGate), + "powered_rail" => Some(Item::PoweredRail), + "detector_rail" => Some(Item::DetectorRail), + "rail" => Some(Item::Rail), + "activator_rail" => Some(Item::ActivatorRail), + "saddle" => Some(Item::Saddle), + "minecart" => Some(Item::Minecart), + "chest_minecart" => Some(Item::ChestMinecart), + "furnace_minecart" => Some(Item::FurnaceMinecart), + "tnt_minecart" => Some(Item::TntMinecart), + "hopper_minecart" => Some(Item::HopperMinecart), + "carrot_on_a_stick" => Some(Item::CarrotOnAStick), + "warped_fungus_on_a_stick" => Some(Item::WarpedFungusOnAStick), + "elytra" => Some(Item::Elytra), + "oak_boat" => Some(Item::OakBoat), + "spruce_boat" => Some(Item::SpruceBoat), + "birch_boat" => Some(Item::BirchBoat), + "jungle_boat" => Some(Item::JungleBoat), + "acacia_boat" => Some(Item::AcaciaBoat), + "dark_oak_boat" => Some(Item::DarkOakBoat), + "structure_block" => Some(Item::StructureBlock), + "jigsaw" => Some(Item::Jigsaw), + "turtle_helmet" => Some(Item::TurtleHelmet), + "scute" => Some(Item::Scute), + "flint_and_steel" => Some(Item::FlintAndSteel), + "apple" => Some(Item::Apple), + "bow" => Some(Item::Bow), + "arrow" => Some(Item::Arrow), + "coal" => Some(Item::Coal), + "charcoal" => Some(Item::Charcoal), + "diamond" => Some(Item::Diamond), + "emerald" => Some(Item::Emerald), + "lapis_lazuli" => Some(Item::LapisLazuli), + "quartz" => Some(Item::Quartz), + "amethyst_shard" => Some(Item::AmethystShard), + "raw_iron" => Some(Item::RawIron), + "iron_ingot" => Some(Item::IronIngot), + "raw_copper" => Some(Item::RawCopper), + "copper_ingot" => Some(Item::CopperIngot), + "raw_gold" => Some(Item::RawGold), + "gold_ingot" => Some(Item::GoldIngot), + "netherite_ingot" => Some(Item::NetheriteIngot), + "netherite_scrap" => Some(Item::NetheriteScrap), + "wooden_sword" => Some(Item::WoodenSword), + "wooden_shovel" => Some(Item::WoodenShovel), + "wooden_pickaxe" => Some(Item::WoodenPickaxe), + "wooden_axe" => Some(Item::WoodenAxe), + "wooden_hoe" => Some(Item::WoodenHoe), + "stone_sword" => Some(Item::StoneSword), + "stone_shovel" => Some(Item::StoneShovel), + "stone_pickaxe" => Some(Item::StonePickaxe), + "stone_axe" => Some(Item::StoneAxe), + "stone_hoe" => Some(Item::StoneHoe), + "golden_sword" => Some(Item::GoldenSword), + "golden_shovel" => Some(Item::GoldenShovel), + "golden_pickaxe" => Some(Item::GoldenPickaxe), + "golden_axe" => Some(Item::GoldenAxe), + "golden_hoe" => Some(Item::GoldenHoe), + "iron_sword" => Some(Item::IronSword), + "iron_shovel" => Some(Item::IronShovel), + "iron_pickaxe" => Some(Item::IronPickaxe), + "iron_axe" => Some(Item::IronAxe), + "iron_hoe" => Some(Item::IronHoe), + "diamond_sword" => Some(Item::DiamondSword), + "diamond_shovel" => Some(Item::DiamondShovel), + "diamond_pickaxe" => Some(Item::DiamondPickaxe), + "diamond_axe" => Some(Item::DiamondAxe), + "diamond_hoe" => Some(Item::DiamondHoe), + "netherite_sword" => Some(Item::NetheriteSword), + "netherite_shovel" => Some(Item::NetheriteShovel), + "netherite_pickaxe" => Some(Item::NetheritePickaxe), + "netherite_axe" => Some(Item::NetheriteAxe), + "netherite_hoe" => Some(Item::NetheriteHoe), + "stick" => Some(Item::Stick), + "bowl" => Some(Item::Bowl), + "mushroom_stew" => Some(Item::MushroomStew), + "string" => Some(Item::String), + "feather" => Some(Item::Feather), + "gunpowder" => Some(Item::Gunpowder), + "wheat_seeds" => Some(Item::WheatSeeds), + "wheat" => Some(Item::Wheat), + "bread" => Some(Item::Bread), + "leather_helmet" => Some(Item::LeatherHelmet), + "leather_chestplate" => Some(Item::LeatherChestplate), + "leather_leggings" => Some(Item::LeatherLeggings), + "leather_boots" => Some(Item::LeatherBoots), + "chainmail_helmet" => Some(Item::ChainmailHelmet), + "chainmail_chestplate" => Some(Item::ChainmailChestplate), + "chainmail_leggings" => Some(Item::ChainmailLeggings), + "chainmail_boots" => Some(Item::ChainmailBoots), + "iron_helmet" => Some(Item::IronHelmet), + "iron_chestplate" => Some(Item::IronChestplate), + "iron_leggings" => Some(Item::IronLeggings), + "iron_boots" => Some(Item::IronBoots), + "diamond_helmet" => Some(Item::DiamondHelmet), + "diamond_chestplate" => Some(Item::DiamondChestplate), + "diamond_leggings" => Some(Item::DiamondLeggings), + "diamond_boots" => Some(Item::DiamondBoots), + "golden_helmet" => Some(Item::GoldenHelmet), + "golden_chestplate" => Some(Item::GoldenChestplate), + "golden_leggings" => Some(Item::GoldenLeggings), + "golden_boots" => Some(Item::GoldenBoots), + "netherite_helmet" => Some(Item::NetheriteHelmet), + "netherite_chestplate" => Some(Item::NetheriteChestplate), + "netherite_leggings" => Some(Item::NetheriteLeggings), + "netherite_boots" => Some(Item::NetheriteBoots), + "flint" => Some(Item::Flint), + "porkchop" => Some(Item::Porkchop), + "cooked_porkchop" => Some(Item::CookedPorkchop), + "painting" => Some(Item::Painting), + "golden_apple" => Some(Item::GoldenApple), + "enchanted_golden_apple" => Some(Item::EnchantedGoldenApple), + "oak_sign" => Some(Item::OakSign), + "spruce_sign" => Some(Item::SpruceSign), + "birch_sign" => Some(Item::BirchSign), + "jungle_sign" => Some(Item::JungleSign), + "acacia_sign" => Some(Item::AcaciaSign), + "dark_oak_sign" => Some(Item::DarkOakSign), + "crimson_sign" => Some(Item::CrimsonSign), + "warped_sign" => Some(Item::WarpedSign), + "bucket" => Some(Item::Bucket), + "water_bucket" => Some(Item::WaterBucket), + "lava_bucket" => Some(Item::LavaBucket), + "powder_snow_bucket" => Some(Item::PowderSnowBucket), + "snowball" => Some(Item::Snowball), + "leather" => Some(Item::Leather), + "milk_bucket" => Some(Item::MilkBucket), + "pufferfish_bucket" => Some(Item::PufferfishBucket), + "salmon_bucket" => Some(Item::SalmonBucket), + "cod_bucket" => Some(Item::CodBucket), + "tropical_fish_bucket" => Some(Item::TropicalFishBucket), + "axolotl_bucket" => Some(Item::AxolotlBucket), + "brick" => Some(Item::Brick), + "clay_ball" => Some(Item::ClayBall), + "dried_kelp_block" => Some(Item::DriedKelpBlock), + "paper" => Some(Item::Paper), + "book" => Some(Item::Book), + "slime_ball" => Some(Item::SlimeBall), + "egg" => Some(Item::Egg), + "compass" => Some(Item::Compass), + "bundle" => Some(Item::Bundle), + "fishing_rod" => Some(Item::FishingRod), + "clock" => Some(Item::Clock), + "spyglass" => Some(Item::Spyglass), + "glowstone_dust" => Some(Item::GlowstoneDust), + "cod" => Some(Item::Cod), + "salmon" => Some(Item::Salmon), + "tropical_fish" => Some(Item::TropicalFish), + "pufferfish" => Some(Item::Pufferfish), + "cooked_cod" => Some(Item::CookedCod), + "cooked_salmon" => Some(Item::CookedSalmon), + "ink_sac" => Some(Item::InkSac), + "glow_ink_sac" => Some(Item::GlowInkSac), + "cocoa_beans" => Some(Item::CocoaBeans), + "white_dye" => Some(Item::WhiteDye), + "orange_dye" => Some(Item::OrangeDye), + "magenta_dye" => Some(Item::MagentaDye), + "light_blue_dye" => Some(Item::LightBlueDye), + "yellow_dye" => Some(Item::YellowDye), + "lime_dye" => Some(Item::LimeDye), + "pink_dye" => Some(Item::PinkDye), + "gray_dye" => Some(Item::GrayDye), + "light_gray_dye" => Some(Item::LightGrayDye), + "cyan_dye" => Some(Item::CyanDye), + "purple_dye" => Some(Item::PurpleDye), + "blue_dye" => Some(Item::BlueDye), + "brown_dye" => Some(Item::BrownDye), + "green_dye" => Some(Item::GreenDye), + "red_dye" => Some(Item::RedDye), + "black_dye" => Some(Item::BlackDye), + "bone_meal" => Some(Item::BoneMeal), + "bone" => Some(Item::Bone), + "sugar" => Some(Item::Sugar), + "cake" => Some(Item::Cake), + "white_bed" => Some(Item::WhiteBed), + "orange_bed" => Some(Item::OrangeBed), + "magenta_bed" => Some(Item::MagentaBed), + "light_blue_bed" => Some(Item::LightBlueBed), + "yellow_bed" => Some(Item::YellowBed), + "lime_bed" => Some(Item::LimeBed), + "pink_bed" => Some(Item::PinkBed), + "gray_bed" => Some(Item::GrayBed), + "light_gray_bed" => Some(Item::LightGrayBed), + "cyan_bed" => Some(Item::CyanBed), + "purple_bed" => Some(Item::PurpleBed), + "blue_bed" => Some(Item::BlueBed), + "brown_bed" => Some(Item::BrownBed), + "green_bed" => Some(Item::GreenBed), + "red_bed" => Some(Item::RedBed), + "black_bed" => Some(Item::BlackBed), + "cookie" => Some(Item::Cookie), + "filled_map" => Some(Item::FilledMap), + "shears" => Some(Item::Shears), + "melon_slice" => Some(Item::MelonSlice), + "dried_kelp" => Some(Item::DriedKelp), + "pumpkin_seeds" => Some(Item::PumpkinSeeds), + "melon_seeds" => Some(Item::MelonSeeds), + "beef" => Some(Item::Beef), + "cooked_beef" => Some(Item::CookedBeef), + "chicken" => Some(Item::Chicken), + "cooked_chicken" => Some(Item::CookedChicken), + "rotten_flesh" => Some(Item::RottenFlesh), + "ender_pearl" => Some(Item::EnderPearl), + "blaze_rod" => Some(Item::BlazeRod), + "ghast_tear" => Some(Item::GhastTear), + "gold_nugget" => Some(Item::GoldNugget), + "nether_wart" => Some(Item::NetherWart), + "potion" => Some(Item::Potion), + "glass_bottle" => Some(Item::GlassBottle), + "spider_eye" => Some(Item::SpiderEye), + "fermented_spider_eye" => Some(Item::FermentedSpiderEye), + "blaze_powder" => Some(Item::BlazePowder), + "magma_cream" => Some(Item::MagmaCream), + "brewing_stand" => Some(Item::BrewingStand), + "cauldron" => Some(Item::Cauldron), + "ender_eye" => Some(Item::EnderEye), + "glistering_melon_slice" => Some(Item::GlisteringMelonSlice), + "axolotl_spawn_egg" => Some(Item::AxolotlSpawnEgg), + "bat_spawn_egg" => Some(Item::BatSpawnEgg), + "bee_spawn_egg" => Some(Item::BeeSpawnEgg), + "blaze_spawn_egg" => Some(Item::BlazeSpawnEgg), + "cat_spawn_egg" => Some(Item::CatSpawnEgg), + "cave_spider_spawn_egg" => Some(Item::CaveSpiderSpawnEgg), + "chicken_spawn_egg" => Some(Item::ChickenSpawnEgg), + "cod_spawn_egg" => Some(Item::CodSpawnEgg), + "cow_spawn_egg" => Some(Item::CowSpawnEgg), + "creeper_spawn_egg" => Some(Item::CreeperSpawnEgg), + "dolphin_spawn_egg" => Some(Item::DolphinSpawnEgg), + "donkey_spawn_egg" => Some(Item::DonkeySpawnEgg), + "drowned_spawn_egg" => Some(Item::DrownedSpawnEgg), + "elder_guardian_spawn_egg" => Some(Item::ElderGuardianSpawnEgg), + "enderman_spawn_egg" => Some(Item::EndermanSpawnEgg), + "endermite_spawn_egg" => Some(Item::EndermiteSpawnEgg), + "evoker_spawn_egg" => Some(Item::EvokerSpawnEgg), + "fox_spawn_egg" => Some(Item::FoxSpawnEgg), + "ghast_spawn_egg" => Some(Item::GhastSpawnEgg), + "glow_squid_spawn_egg" => Some(Item::GlowSquidSpawnEgg), + "goat_spawn_egg" => Some(Item::GoatSpawnEgg), + "guardian_spawn_egg" => Some(Item::GuardianSpawnEgg), + "hoglin_spawn_egg" => Some(Item::HoglinSpawnEgg), + "horse_spawn_egg" => Some(Item::HorseSpawnEgg), + "husk_spawn_egg" => Some(Item::HuskSpawnEgg), + "llama_spawn_egg" => Some(Item::LlamaSpawnEgg), + "magma_cube_spawn_egg" => Some(Item::MagmaCubeSpawnEgg), + "mooshroom_spawn_egg" => Some(Item::MooshroomSpawnEgg), + "mule_spawn_egg" => Some(Item::MuleSpawnEgg), + "ocelot_spawn_egg" => Some(Item::OcelotSpawnEgg), + "panda_spawn_egg" => Some(Item::PandaSpawnEgg), + "parrot_spawn_egg" => Some(Item::ParrotSpawnEgg), + "phantom_spawn_egg" => Some(Item::PhantomSpawnEgg), + "pig_spawn_egg" => Some(Item::PigSpawnEgg), + "piglin_spawn_egg" => Some(Item::PiglinSpawnEgg), + "piglin_brute_spawn_egg" => Some(Item::PiglinBruteSpawnEgg), + "pillager_spawn_egg" => Some(Item::PillagerSpawnEgg), + "polar_bear_spawn_egg" => Some(Item::PolarBearSpawnEgg), + "pufferfish_spawn_egg" => Some(Item::PufferfishSpawnEgg), + "rabbit_spawn_egg" => Some(Item::RabbitSpawnEgg), + "ravager_spawn_egg" => Some(Item::RavagerSpawnEgg), + "salmon_spawn_egg" => Some(Item::SalmonSpawnEgg), + "sheep_spawn_egg" => Some(Item::SheepSpawnEgg), + "shulker_spawn_egg" => Some(Item::ShulkerSpawnEgg), + "silverfish_spawn_egg" => Some(Item::SilverfishSpawnEgg), + "skeleton_spawn_egg" => Some(Item::SkeletonSpawnEgg), + "skeleton_horse_spawn_egg" => Some(Item::SkeletonHorseSpawnEgg), + "slime_spawn_egg" => Some(Item::SlimeSpawnEgg), + "spider_spawn_egg" => Some(Item::SpiderSpawnEgg), + "squid_spawn_egg" => Some(Item::SquidSpawnEgg), + "stray_spawn_egg" => Some(Item::StraySpawnEgg), + "strider_spawn_egg" => Some(Item::StriderSpawnEgg), + "trader_llama_spawn_egg" => Some(Item::TraderLlamaSpawnEgg), + "tropical_fish_spawn_egg" => Some(Item::TropicalFishSpawnEgg), + "turtle_spawn_egg" => Some(Item::TurtleSpawnEgg), + "vex_spawn_egg" => Some(Item::VexSpawnEgg), + "villager_spawn_egg" => Some(Item::VillagerSpawnEgg), + "vindicator_spawn_egg" => Some(Item::VindicatorSpawnEgg), + "wandering_trader_spawn_egg" => Some(Item::WanderingTraderSpawnEgg), + "witch_spawn_egg" => Some(Item::WitchSpawnEgg), + "wither_skeleton_spawn_egg" => Some(Item::WitherSkeletonSpawnEgg), + "wolf_spawn_egg" => Some(Item::WolfSpawnEgg), + "zoglin_spawn_egg" => Some(Item::ZoglinSpawnEgg), + "zombie_spawn_egg" => Some(Item::ZombieSpawnEgg), + "zombie_horse_spawn_egg" => Some(Item::ZombieHorseSpawnEgg), + "zombie_villager_spawn_egg" => Some(Item::ZombieVillagerSpawnEgg), + "zombified_piglin_spawn_egg" => Some(Item::ZombifiedPiglinSpawnEgg), + "experience_bottle" => Some(Item::ExperienceBottle), + "fire_charge" => Some(Item::FireCharge), + "writable_book" => Some(Item::WritableBook), + "written_book" => Some(Item::WrittenBook), + "item_frame" => Some(Item::ItemFrame), + "glow_item_frame" => Some(Item::GlowItemFrame), + "flower_pot" => Some(Item::FlowerPot), + "carrot" => Some(Item::Carrot), + "potato" => Some(Item::Potato), + "baked_potato" => Some(Item::BakedPotato), + "poisonous_potato" => Some(Item::PoisonousPotato), + "map" => Some(Item::Map), + "golden_carrot" => Some(Item::GoldenCarrot), + "skeleton_skull" => Some(Item::SkeletonSkull), + "wither_skeleton_skull" => Some(Item::WitherSkeletonSkull), + "player_head" => Some(Item::PlayerHead), + "zombie_head" => Some(Item::ZombieHead), + "creeper_head" => Some(Item::CreeperHead), + "dragon_head" => Some(Item::DragonHead), + "nether_star" => Some(Item::NetherStar), + "pumpkin_pie" => Some(Item::PumpkinPie), + "firework_rocket" => Some(Item::FireworkRocket), + "firework_star" => Some(Item::FireworkStar), + "enchanted_book" => Some(Item::EnchantedBook), + "nether_brick" => Some(Item::NetherBrick), + "prismarine_shard" => Some(Item::PrismarineShard), + "prismarine_crystals" => Some(Item::PrismarineCrystals), + "rabbit" => Some(Item::Rabbit), + "cooked_rabbit" => Some(Item::CookedRabbit), + "rabbit_stew" => Some(Item::RabbitStew), + "rabbit_foot" => Some(Item::RabbitFoot), + "rabbit_hide" => Some(Item::RabbitHide), + "armor_stand" => Some(Item::ArmorStand), + "iron_horse_armor" => Some(Item::IronHorseArmor), + "golden_horse_armor" => Some(Item::GoldenHorseArmor), + "diamond_horse_armor" => Some(Item::DiamondHorseArmor), + "leather_horse_armor" => Some(Item::LeatherHorseArmor), + "lead" => Some(Item::Lead), + "name_tag" => Some(Item::NameTag), + "command_block_minecart" => Some(Item::CommandBlockMinecart), + "mutton" => Some(Item::Mutton), + "cooked_mutton" => Some(Item::CookedMutton), + "white_banner" => Some(Item::WhiteBanner), + "orange_banner" => Some(Item::OrangeBanner), + "magenta_banner" => Some(Item::MagentaBanner), + "light_blue_banner" => Some(Item::LightBlueBanner), + "yellow_banner" => Some(Item::YellowBanner), + "lime_banner" => Some(Item::LimeBanner), + "pink_banner" => Some(Item::PinkBanner), + "gray_banner" => Some(Item::GrayBanner), + "light_gray_banner" => Some(Item::LightGrayBanner), + "cyan_banner" => Some(Item::CyanBanner), + "purple_banner" => Some(Item::PurpleBanner), + "blue_banner" => Some(Item::BlueBanner), + "brown_banner" => Some(Item::BrownBanner), + "green_banner" => Some(Item::GreenBanner), + "red_banner" => Some(Item::RedBanner), + "black_banner" => Some(Item::BlackBanner), + "end_crystal" => Some(Item::EndCrystal), + "chorus_fruit" => Some(Item::ChorusFruit), + "popped_chorus_fruit" => Some(Item::PoppedChorusFruit), + "beetroot" => Some(Item::Beetroot), + "beetroot_seeds" => Some(Item::BeetrootSeeds), + "beetroot_soup" => Some(Item::BeetrootSoup), + "dragon_breath" => Some(Item::DragonBreath), + "splash_potion" => Some(Item::SplashPotion), + "spectral_arrow" => Some(Item::SpectralArrow), + "tipped_arrow" => Some(Item::TippedArrow), + "lingering_potion" => Some(Item::LingeringPotion), + "shield" => Some(Item::Shield), + "totem_of_undying" => Some(Item::TotemOfUndying), + "shulker_shell" => Some(Item::ShulkerShell), + "iron_nugget" => Some(Item::IronNugget), + "knowledge_book" => Some(Item::KnowledgeBook), + "debug_stick" => Some(Item::DebugStick), + "music_disc_13" => Some(Item::MusicDisc13), + "music_disc_cat" => Some(Item::MusicDiscCat), + "music_disc_blocks" => Some(Item::MusicDiscBlocks), + "music_disc_chirp" => Some(Item::MusicDiscChirp), + "music_disc_far" => Some(Item::MusicDiscFar), + "music_disc_mall" => Some(Item::MusicDiscMall), + "music_disc_mellohi" => Some(Item::MusicDiscMellohi), + "music_disc_stal" => Some(Item::MusicDiscStal), + "music_disc_strad" => Some(Item::MusicDiscStrad), + "music_disc_ward" => Some(Item::MusicDiscWard), + "music_disc_11" => Some(Item::MusicDisc11), + "music_disc_wait" => Some(Item::MusicDiscWait), + "music_disc_otherside" => Some(Item::MusicDiscOtherside), + "music_disc_pigstep" => Some(Item::MusicDiscPigstep), + "trident" => Some(Item::Trident), + "phantom_membrane" => Some(Item::PhantomMembrane), + "nautilus_shell" => Some(Item::NautilusShell), + "heart_of_the_sea" => Some(Item::HeartOfTheSea), + "crossbow" => Some(Item::Crossbow), + "suspicious_stew" => Some(Item::SuspiciousStew), + "loom" => Some(Item::Loom), + "flower_banner_pattern" => Some(Item::FlowerBannerPattern), + "creeper_banner_pattern" => Some(Item::CreeperBannerPattern), + "skull_banner_pattern" => Some(Item::SkullBannerPattern), + "mojang_banner_pattern" => Some(Item::MojangBannerPattern), + "globe_banner_pattern" => Some(Item::GlobeBannerPattern), + "piglin_banner_pattern" => Some(Item::PiglinBannerPattern), + "composter" => Some(Item::Composter), + "barrel" => Some(Item::Barrel), + "smoker" => Some(Item::Smoker), + "blast_furnace" => Some(Item::BlastFurnace), + "cartography_table" => Some(Item::CartographyTable), + "fletching_table" => Some(Item::FletchingTable), + "grindstone" => Some(Item::Grindstone), + "smithing_table" => Some(Item::SmithingTable), + "stonecutter" => Some(Item::Stonecutter), + "bell" => Some(Item::Bell), + "lantern" => Some(Item::Lantern), + "soul_lantern" => Some(Item::SoulLantern), + "sweet_berries" => Some(Item::SweetBerries), + "glow_berries" => Some(Item::GlowBerries), + "campfire" => Some(Item::Campfire), + "soul_campfire" => Some(Item::SoulCampfire), + "shroomlight" => Some(Item::Shroomlight), + "honeycomb" => Some(Item::Honeycomb), + "bee_nest" => Some(Item::BeeNest), + "beehive" => Some(Item::Beehive), + "honey_bottle" => Some(Item::HoneyBottle), + "honeycomb_block" => Some(Item::HoneycombBlock), + "lodestone" => Some(Item::Lodestone), + "crying_obsidian" => Some(Item::CryingObsidian), + "blackstone" => Some(Item::Blackstone), + "blackstone_slab" => Some(Item::BlackstoneSlab), + "blackstone_stairs" => Some(Item::BlackstoneStairs), + "gilded_blackstone" => Some(Item::GildedBlackstone), + "polished_blackstone" => Some(Item::PolishedBlackstone), + "polished_blackstone_slab" => Some(Item::PolishedBlackstoneSlab), + "polished_blackstone_stairs" => Some(Item::PolishedBlackstoneStairs), + "chiseled_polished_blackstone" => Some(Item::ChiseledPolishedBlackstone), + "polished_blackstone_bricks" => Some(Item::PolishedBlackstoneBricks), + "polished_blackstone_brick_slab" => Some(Item::PolishedBlackstoneBrickSlab), + "polished_blackstone_brick_stairs" => Some(Item::PolishedBlackstoneBrickStairs), + "cracked_polished_blackstone_bricks" => Some(Item::CrackedPolishedBlackstoneBricks), + "respawn_anchor" => Some(Item::RespawnAnchor), + "candle" => Some(Item::Candle), + "white_candle" => Some(Item::WhiteCandle), + "orange_candle" => Some(Item::OrangeCandle), + "magenta_candle" => Some(Item::MagentaCandle), + "light_blue_candle" => Some(Item::LightBlueCandle), + "yellow_candle" => Some(Item::YellowCandle), + "lime_candle" => Some(Item::LimeCandle), + "pink_candle" => Some(Item::PinkCandle), + "gray_candle" => Some(Item::GrayCandle), + "light_gray_candle" => Some(Item::LightGrayCandle), + "cyan_candle" => Some(Item::CyanCandle), + "purple_candle" => Some(Item::PurpleCandle), + "blue_candle" => Some(Item::BlueCandle), + "brown_candle" => Some(Item::BrownCandle), + "green_candle" => Some(Item::GreenCandle), + "red_candle" => Some(Item::RedCandle), + "black_candle" => Some(Item::BlackCandle), + "small_amethyst_bud" => Some(Item::SmallAmethystBud), + "medium_amethyst_bud" => Some(Item::MediumAmethystBud), + "large_amethyst_bud" => Some(Item::LargeAmethystBud), + "amethyst_cluster" => Some(Item::AmethystCluster), + "pointed_dripstone" => Some(Item::PointedDripstone), + _ => None, + } + } +} +impl Item { + #[doc = "Returns the `namespaced_id` property of this `Item`."] + #[inline] + pub fn namespaced_id(&self) -> &'static str { + match self { + Item::Stone => "minecraft:stone", + Item::Granite => "minecraft:granite", + Item::PolishedGranite => "minecraft:polished_granite", + Item::Diorite => "minecraft:diorite", + Item::PolishedDiorite => "minecraft:polished_diorite", + Item::Andesite => "minecraft:andesite", + Item::PolishedAndesite => "minecraft:polished_andesite", + Item::Deepslate => "minecraft:deepslate", + Item::CobbledDeepslate => "minecraft:cobbled_deepslate", + Item::PolishedDeepslate => "minecraft:polished_deepslate", + Item::Calcite => "minecraft:calcite", + Item::Tuff => "minecraft:tuff", + Item::DripstoneBlock => "minecraft:dripstone_block", + Item::GrassBlock => "minecraft:grass_block", + Item::Dirt => "minecraft:dirt", + Item::CoarseDirt => "minecraft:coarse_dirt", + Item::Podzol => "minecraft:podzol", + Item::RootedDirt => "minecraft:rooted_dirt", + Item::CrimsonNylium => "minecraft:crimson_nylium", + Item::WarpedNylium => "minecraft:warped_nylium", + Item::Cobblestone => "minecraft:cobblestone", + Item::OakPlanks => "minecraft:oak_planks", + Item::SprucePlanks => "minecraft:spruce_planks", + Item::BirchPlanks => "minecraft:birch_planks", + Item::JunglePlanks => "minecraft:jungle_planks", + Item::AcaciaPlanks => "minecraft:acacia_planks", + Item::DarkOakPlanks => "minecraft:dark_oak_planks", + Item::CrimsonPlanks => "minecraft:crimson_planks", + Item::WarpedPlanks => "minecraft:warped_planks", + Item::OakSapling => "minecraft:oak_sapling", + Item::SpruceSapling => "minecraft:spruce_sapling", + Item::BirchSapling => "minecraft:birch_sapling", + Item::JungleSapling => "minecraft:jungle_sapling", + Item::AcaciaSapling => "minecraft:acacia_sapling", + Item::DarkOakSapling => "minecraft:dark_oak_sapling", + Item::Bedrock => "minecraft:bedrock", + Item::Sand => "minecraft:sand", + Item::RedSand => "minecraft:red_sand", + Item::Gravel => "minecraft:gravel", + Item::CoalOre => "minecraft:coal_ore", + Item::DeepslateCoalOre => "minecraft:deepslate_coal_ore", + Item::IronOre => "minecraft:iron_ore", + Item::DeepslateIronOre => "minecraft:deepslate_iron_ore", + Item::CopperOre => "minecraft:copper_ore", + Item::DeepslateCopperOre => "minecraft:deepslate_copper_ore", + Item::GoldOre => "minecraft:gold_ore", + Item::DeepslateGoldOre => "minecraft:deepslate_gold_ore", + Item::RedstoneOre => "minecraft:redstone_ore", + Item::DeepslateRedstoneOre => "minecraft:deepslate_redstone_ore", + Item::EmeraldOre => "minecraft:emerald_ore", + Item::DeepslateEmeraldOre => "minecraft:deepslate_emerald_ore", + Item::LapisOre => "minecraft:lapis_ore", + Item::DeepslateLapisOre => "minecraft:deepslate_lapis_ore", + Item::DiamondOre => "minecraft:diamond_ore", + Item::DeepslateDiamondOre => "minecraft:deepslate_diamond_ore", + Item::NetherGoldOre => "minecraft:nether_gold_ore", + Item::NetherQuartzOre => "minecraft:nether_quartz_ore", + Item::AncientDebris => "minecraft:ancient_debris", + Item::CoalBlock => "minecraft:coal_block", + Item::RawIronBlock => "minecraft:raw_iron_block", + Item::RawCopperBlock => "minecraft:raw_copper_block", + Item::RawGoldBlock => "minecraft:raw_gold_block", + Item::AmethystBlock => "minecraft:amethyst_block", + Item::BuddingAmethyst => "minecraft:budding_amethyst", + Item::IronBlock => "minecraft:iron_block", + Item::CopperBlock => "minecraft:copper_block", + Item::GoldBlock => "minecraft:gold_block", + Item::DiamondBlock => "minecraft:diamond_block", + Item::NetheriteBlock => "minecraft:netherite_block", + Item::ExposedCopper => "minecraft:exposed_copper", + Item::WeatheredCopper => "minecraft:weathered_copper", + Item::OxidizedCopper => "minecraft:oxidized_copper", + Item::CutCopper => "minecraft:cut_copper", + Item::ExposedCutCopper => "minecraft:exposed_cut_copper", + Item::WeatheredCutCopper => "minecraft:weathered_cut_copper", + Item::OxidizedCutCopper => "minecraft:oxidized_cut_copper", + Item::CutCopperStairs => "minecraft:cut_copper_stairs", + Item::ExposedCutCopperStairs => "minecraft:exposed_cut_copper_stairs", + Item::WeatheredCutCopperStairs => "minecraft:weathered_cut_copper_stairs", + Item::OxidizedCutCopperStairs => "minecraft:oxidized_cut_copper_stairs", + Item::CutCopperSlab => "minecraft:cut_copper_slab", + Item::ExposedCutCopperSlab => "minecraft:exposed_cut_copper_slab", + Item::WeatheredCutCopperSlab => "minecraft:weathered_cut_copper_slab", + Item::OxidizedCutCopperSlab => "minecraft:oxidized_cut_copper_slab", + Item::WaxedCopperBlock => "minecraft:waxed_copper_block", + Item::WaxedExposedCopper => "minecraft:waxed_exposed_copper", + Item::WaxedWeatheredCopper => "minecraft:waxed_weathered_copper", + Item::WaxedOxidizedCopper => "minecraft:waxed_oxidized_copper", + Item::WaxedCutCopper => "minecraft:waxed_cut_copper", + Item::WaxedExposedCutCopper => "minecraft:waxed_exposed_cut_copper", + Item::WaxedWeatheredCutCopper => "minecraft:waxed_weathered_cut_copper", + Item::WaxedOxidizedCutCopper => "minecraft:waxed_oxidized_cut_copper", + Item::WaxedCutCopperStairs => "minecraft:waxed_cut_copper_stairs", + Item::WaxedExposedCutCopperStairs => "minecraft:waxed_exposed_cut_copper_stairs", + Item::WaxedWeatheredCutCopperStairs => "minecraft:waxed_weathered_cut_copper_stairs", + Item::WaxedOxidizedCutCopperStairs => "minecraft:waxed_oxidized_cut_copper_stairs", + Item::WaxedCutCopperSlab => "minecraft:waxed_cut_copper_slab", + Item::WaxedExposedCutCopperSlab => "minecraft:waxed_exposed_cut_copper_slab", + Item::WaxedWeatheredCutCopperSlab => "minecraft:waxed_weathered_cut_copper_slab", + Item::WaxedOxidizedCutCopperSlab => "minecraft:waxed_oxidized_cut_copper_slab", + Item::OakLog => "minecraft:oak_log", + Item::SpruceLog => "minecraft:spruce_log", + Item::BirchLog => "minecraft:birch_log", + Item::JungleLog => "minecraft:jungle_log", + Item::AcaciaLog => "minecraft:acacia_log", + Item::DarkOakLog => "minecraft:dark_oak_log", + Item::CrimsonStem => "minecraft:crimson_stem", + Item::WarpedStem => "minecraft:warped_stem", + Item::StrippedOakLog => "minecraft:stripped_oak_log", + Item::StrippedSpruceLog => "minecraft:stripped_spruce_log", + Item::StrippedBirchLog => "minecraft:stripped_birch_log", + Item::StrippedJungleLog => "minecraft:stripped_jungle_log", + Item::StrippedAcaciaLog => "minecraft:stripped_acacia_log", + Item::StrippedDarkOakLog => "minecraft:stripped_dark_oak_log", + Item::StrippedCrimsonStem => "minecraft:stripped_crimson_stem", + Item::StrippedWarpedStem => "minecraft:stripped_warped_stem", + Item::StrippedOakWood => "minecraft:stripped_oak_wood", + Item::StrippedSpruceWood => "minecraft:stripped_spruce_wood", + Item::StrippedBirchWood => "minecraft:stripped_birch_wood", + Item::StrippedJungleWood => "minecraft:stripped_jungle_wood", + Item::StrippedAcaciaWood => "minecraft:stripped_acacia_wood", + Item::StrippedDarkOakWood => "minecraft:stripped_dark_oak_wood", + Item::StrippedCrimsonHyphae => "minecraft:stripped_crimson_hyphae", + Item::StrippedWarpedHyphae => "minecraft:stripped_warped_hyphae", + Item::OakWood => "minecraft:oak_wood", + Item::SpruceWood => "minecraft:spruce_wood", + Item::BirchWood => "minecraft:birch_wood", + Item::JungleWood => "minecraft:jungle_wood", + Item::AcaciaWood => "minecraft:acacia_wood", + Item::DarkOakWood => "minecraft:dark_oak_wood", + Item::CrimsonHyphae => "minecraft:crimson_hyphae", + Item::WarpedHyphae => "minecraft:warped_hyphae", + Item::OakLeaves => "minecraft:oak_leaves", + Item::SpruceLeaves => "minecraft:spruce_leaves", + Item::BirchLeaves => "minecraft:birch_leaves", + Item::JungleLeaves => "minecraft:jungle_leaves", + Item::AcaciaLeaves => "minecraft:acacia_leaves", + Item::DarkOakLeaves => "minecraft:dark_oak_leaves", + Item::AzaleaLeaves => "minecraft:azalea_leaves", + Item::FloweringAzaleaLeaves => "minecraft:flowering_azalea_leaves", + Item::Sponge => "minecraft:sponge", + Item::WetSponge => "minecraft:wet_sponge", + Item::Glass => "minecraft:glass", + Item::TintedGlass => "minecraft:tinted_glass", + Item::LapisBlock => "minecraft:lapis_block", + Item::Sandstone => "minecraft:sandstone", + Item::ChiseledSandstone => "minecraft:chiseled_sandstone", + Item::CutSandstone => "minecraft:cut_sandstone", + Item::Cobweb => "minecraft:cobweb", + Item::Grass => "minecraft:grass", + Item::Fern => "minecraft:fern", + Item::Azalea => "minecraft:azalea", + Item::FloweringAzalea => "minecraft:flowering_azalea", + Item::DeadBush => "minecraft:dead_bush", + Item::Seagrass => "minecraft:seagrass", + Item::SeaPickle => "minecraft:sea_pickle", + Item::WhiteWool => "minecraft:white_wool", + Item::OrangeWool => "minecraft:orange_wool", + Item::MagentaWool => "minecraft:magenta_wool", + Item::LightBlueWool => "minecraft:light_blue_wool", + Item::YellowWool => "minecraft:yellow_wool", + Item::LimeWool => "minecraft:lime_wool", + Item::PinkWool => "minecraft:pink_wool", + Item::GrayWool => "minecraft:gray_wool", + Item::LightGrayWool => "minecraft:light_gray_wool", + Item::CyanWool => "minecraft:cyan_wool", + Item::PurpleWool => "minecraft:purple_wool", + Item::BlueWool => "minecraft:blue_wool", + Item::BrownWool => "minecraft:brown_wool", + Item::GreenWool => "minecraft:green_wool", + Item::RedWool => "minecraft:red_wool", + Item::BlackWool => "minecraft:black_wool", + Item::Dandelion => "minecraft:dandelion", + Item::Poppy => "minecraft:poppy", + Item::BlueOrchid => "minecraft:blue_orchid", + Item::Allium => "minecraft:allium", + Item::AzureBluet => "minecraft:azure_bluet", + Item::RedTulip => "minecraft:red_tulip", + Item::OrangeTulip => "minecraft:orange_tulip", + Item::WhiteTulip => "minecraft:white_tulip", + Item::PinkTulip => "minecraft:pink_tulip", + Item::OxeyeDaisy => "minecraft:oxeye_daisy", + Item::Cornflower => "minecraft:cornflower", + Item::LilyOfTheValley => "minecraft:lily_of_the_valley", + Item::WitherRose => "minecraft:wither_rose", + Item::SporeBlossom => "minecraft:spore_blossom", + Item::BrownMushroom => "minecraft:brown_mushroom", + Item::RedMushroom => "minecraft:red_mushroom", + Item::CrimsonFungus => "minecraft:crimson_fungus", + Item::WarpedFungus => "minecraft:warped_fungus", + Item::CrimsonRoots => "minecraft:crimson_roots", + Item::WarpedRoots => "minecraft:warped_roots", + Item::NetherSprouts => "minecraft:nether_sprouts", + Item::WeepingVines => "minecraft:weeping_vines", + Item::TwistingVines => "minecraft:twisting_vines", + Item::SugarCane => "minecraft:sugar_cane", + Item::Kelp => "minecraft:kelp", + Item::MossCarpet => "minecraft:moss_carpet", + Item::MossBlock => "minecraft:moss_block", + Item::HangingRoots => "minecraft:hanging_roots", + Item::BigDripleaf => "minecraft:big_dripleaf", + Item::SmallDripleaf => "minecraft:small_dripleaf", + Item::Bamboo => "minecraft:bamboo", + Item::OakSlab => "minecraft:oak_slab", + Item::SpruceSlab => "minecraft:spruce_slab", + Item::BirchSlab => "minecraft:birch_slab", + Item::JungleSlab => "minecraft:jungle_slab", + Item::AcaciaSlab => "minecraft:acacia_slab", + Item::DarkOakSlab => "minecraft:dark_oak_slab", + Item::CrimsonSlab => "minecraft:crimson_slab", + Item::WarpedSlab => "minecraft:warped_slab", + Item::StoneSlab => "minecraft:stone_slab", + Item::SmoothStoneSlab => "minecraft:smooth_stone_slab", + Item::SandstoneSlab => "minecraft:sandstone_slab", + Item::CutSandstoneSlab => "minecraft:cut_sandstone_slab", + Item::PetrifiedOakSlab => "minecraft:petrified_oak_slab", + Item::CobblestoneSlab => "minecraft:cobblestone_slab", + Item::BrickSlab => "minecraft:brick_slab", + Item::StoneBrickSlab => "minecraft:stone_brick_slab", + Item::NetherBrickSlab => "minecraft:nether_brick_slab", + Item::QuartzSlab => "minecraft:quartz_slab", + Item::RedSandstoneSlab => "minecraft:red_sandstone_slab", + Item::CutRedSandstoneSlab => "minecraft:cut_red_sandstone_slab", + Item::PurpurSlab => "minecraft:purpur_slab", + Item::PrismarineSlab => "minecraft:prismarine_slab", + Item::PrismarineBrickSlab => "minecraft:prismarine_brick_slab", + Item::DarkPrismarineSlab => "minecraft:dark_prismarine_slab", + Item::SmoothQuartz => "minecraft:smooth_quartz", + Item::SmoothRedSandstone => "minecraft:smooth_red_sandstone", + Item::SmoothSandstone => "minecraft:smooth_sandstone", + Item::SmoothStone => "minecraft:smooth_stone", + Item::Bricks => "minecraft:bricks", + Item::Bookshelf => "minecraft:bookshelf", + Item::MossyCobblestone => "minecraft:mossy_cobblestone", + Item::Obsidian => "minecraft:obsidian", + Item::Torch => "minecraft:torch", + Item::EndRod => "minecraft:end_rod", + Item::ChorusPlant => "minecraft:chorus_plant", + Item::ChorusFlower => "minecraft:chorus_flower", + Item::PurpurBlock => "minecraft:purpur_block", + Item::PurpurPillar => "minecraft:purpur_pillar", + Item::PurpurStairs => "minecraft:purpur_stairs", + Item::Spawner => "minecraft:spawner", + Item::OakStairs => "minecraft:oak_stairs", + Item::Chest => "minecraft:chest", + Item::CraftingTable => "minecraft:crafting_table", + Item::Farmland => "minecraft:farmland", + Item::Furnace => "minecraft:furnace", + Item::Ladder => "minecraft:ladder", + Item::CobblestoneStairs => "minecraft:cobblestone_stairs", + Item::Snow => "minecraft:snow", + Item::Ice => "minecraft:ice", + Item::SnowBlock => "minecraft:snow_block", + Item::Cactus => "minecraft:cactus", + Item::Clay => "minecraft:clay", + Item::Jukebox => "minecraft:jukebox", + Item::OakFence => "minecraft:oak_fence", + Item::SpruceFence => "minecraft:spruce_fence", + Item::BirchFence => "minecraft:birch_fence", + Item::JungleFence => "minecraft:jungle_fence", + Item::AcaciaFence => "minecraft:acacia_fence", + Item::DarkOakFence => "minecraft:dark_oak_fence", + Item::CrimsonFence => "minecraft:crimson_fence", + Item::WarpedFence => "minecraft:warped_fence", + Item::Pumpkin => "minecraft:pumpkin", + Item::CarvedPumpkin => "minecraft:carved_pumpkin", + Item::JackOLantern => "minecraft:jack_o_lantern", + Item::Netherrack => "minecraft:netherrack", + Item::SoulSand => "minecraft:soul_sand", + Item::SoulSoil => "minecraft:soul_soil", + Item::Basalt => "minecraft:basalt", + Item::PolishedBasalt => "minecraft:polished_basalt", + Item::SmoothBasalt => "minecraft:smooth_basalt", + Item::SoulTorch => "minecraft:soul_torch", + Item::Glowstone => "minecraft:glowstone", + Item::InfestedStone => "minecraft:infested_stone", + Item::InfestedCobblestone => "minecraft:infested_cobblestone", + Item::InfestedStoneBricks => "minecraft:infested_stone_bricks", + Item::InfestedMossyStoneBricks => "minecraft:infested_mossy_stone_bricks", + Item::InfestedCrackedStoneBricks => "minecraft:infested_cracked_stone_bricks", + Item::InfestedChiseledStoneBricks => "minecraft:infested_chiseled_stone_bricks", + Item::InfestedDeepslate => "minecraft:infested_deepslate", + Item::StoneBricks => "minecraft:stone_bricks", + Item::MossyStoneBricks => "minecraft:mossy_stone_bricks", + Item::CrackedStoneBricks => "minecraft:cracked_stone_bricks", + Item::ChiseledStoneBricks => "minecraft:chiseled_stone_bricks", + Item::DeepslateBricks => "minecraft:deepslate_bricks", + Item::CrackedDeepslateBricks => "minecraft:cracked_deepslate_bricks", + Item::DeepslateTiles => "minecraft:deepslate_tiles", + Item::CrackedDeepslateTiles => "minecraft:cracked_deepslate_tiles", + Item::ChiseledDeepslate => "minecraft:chiseled_deepslate", + Item::BrownMushroomBlock => "minecraft:brown_mushroom_block", + Item::RedMushroomBlock => "minecraft:red_mushroom_block", + Item::MushroomStem => "minecraft:mushroom_stem", + Item::IronBars => "minecraft:iron_bars", + Item::Chain => "minecraft:chain", + Item::GlassPane => "minecraft:glass_pane", + Item::Melon => "minecraft:melon", + Item::Vine => "minecraft:vine", + Item::GlowLichen => "minecraft:glow_lichen", + Item::BrickStairs => "minecraft:brick_stairs", + Item::StoneBrickStairs => "minecraft:stone_brick_stairs", + Item::Mycelium => "minecraft:mycelium", + Item::LilyPad => "minecraft:lily_pad", + Item::NetherBricks => "minecraft:nether_bricks", + Item::CrackedNetherBricks => "minecraft:cracked_nether_bricks", + Item::ChiseledNetherBricks => "minecraft:chiseled_nether_bricks", + Item::NetherBrickFence => "minecraft:nether_brick_fence", + Item::NetherBrickStairs => "minecraft:nether_brick_stairs", + Item::EnchantingTable => "minecraft:enchanting_table", + Item::EndPortalFrame => "minecraft:end_portal_frame", + Item::EndStone => "minecraft:end_stone", + Item::EndStoneBricks => "minecraft:end_stone_bricks", + Item::DragonEgg => "minecraft:dragon_egg", + Item::SandstoneStairs => "minecraft:sandstone_stairs", + Item::EnderChest => "minecraft:ender_chest", + Item::EmeraldBlock => "minecraft:emerald_block", + Item::SpruceStairs => "minecraft:spruce_stairs", + Item::BirchStairs => "minecraft:birch_stairs", + Item::JungleStairs => "minecraft:jungle_stairs", + Item::CrimsonStairs => "minecraft:crimson_stairs", + Item::WarpedStairs => "minecraft:warped_stairs", + Item::CommandBlock => "minecraft:command_block", + Item::Beacon => "minecraft:beacon", + Item::CobblestoneWall => "minecraft:cobblestone_wall", + Item::MossyCobblestoneWall => "minecraft:mossy_cobblestone_wall", + Item::BrickWall => "minecraft:brick_wall", + Item::PrismarineWall => "minecraft:prismarine_wall", + Item::RedSandstoneWall => "minecraft:red_sandstone_wall", + Item::MossyStoneBrickWall => "minecraft:mossy_stone_brick_wall", + Item::GraniteWall => "minecraft:granite_wall", + Item::StoneBrickWall => "minecraft:stone_brick_wall", + Item::NetherBrickWall => "minecraft:nether_brick_wall", + Item::AndesiteWall => "minecraft:andesite_wall", + Item::RedNetherBrickWall => "minecraft:red_nether_brick_wall", + Item::SandstoneWall => "minecraft:sandstone_wall", + Item::EndStoneBrickWall => "minecraft:end_stone_brick_wall", + Item::DioriteWall => "minecraft:diorite_wall", + Item::BlackstoneWall => "minecraft:blackstone_wall", + Item::PolishedBlackstoneWall => "minecraft:polished_blackstone_wall", + Item::PolishedBlackstoneBrickWall => "minecraft:polished_blackstone_brick_wall", + Item::CobbledDeepslateWall => "minecraft:cobbled_deepslate_wall", + Item::PolishedDeepslateWall => "minecraft:polished_deepslate_wall", + Item::DeepslateBrickWall => "minecraft:deepslate_brick_wall", + Item::DeepslateTileWall => "minecraft:deepslate_tile_wall", + Item::Anvil => "minecraft:anvil", + Item::ChippedAnvil => "minecraft:chipped_anvil", + Item::DamagedAnvil => "minecraft:damaged_anvil", + Item::ChiseledQuartzBlock => "minecraft:chiseled_quartz_block", + Item::QuartzBlock => "minecraft:quartz_block", + Item::QuartzBricks => "minecraft:quartz_bricks", + Item::QuartzPillar => "minecraft:quartz_pillar", + Item::QuartzStairs => "minecraft:quartz_stairs", + Item::WhiteTerracotta => "minecraft:white_terracotta", + Item::OrangeTerracotta => "minecraft:orange_terracotta", + Item::MagentaTerracotta => "minecraft:magenta_terracotta", + Item::LightBlueTerracotta => "minecraft:light_blue_terracotta", + Item::YellowTerracotta => "minecraft:yellow_terracotta", + Item::LimeTerracotta => "minecraft:lime_terracotta", + Item::PinkTerracotta => "minecraft:pink_terracotta", + Item::GrayTerracotta => "minecraft:gray_terracotta", + Item::LightGrayTerracotta => "minecraft:light_gray_terracotta", + Item::CyanTerracotta => "minecraft:cyan_terracotta", + Item::PurpleTerracotta => "minecraft:purple_terracotta", + Item::BlueTerracotta => "minecraft:blue_terracotta", + Item::BrownTerracotta => "minecraft:brown_terracotta", + Item::GreenTerracotta => "minecraft:green_terracotta", + Item::RedTerracotta => "minecraft:red_terracotta", + Item::BlackTerracotta => "minecraft:black_terracotta", + Item::Barrier => "minecraft:barrier", + Item::Light => "minecraft:light", + Item::HayBlock => "minecraft:hay_block", + Item::WhiteCarpet => "minecraft:white_carpet", + Item::OrangeCarpet => "minecraft:orange_carpet", + Item::MagentaCarpet => "minecraft:magenta_carpet", + Item::LightBlueCarpet => "minecraft:light_blue_carpet", + Item::YellowCarpet => "minecraft:yellow_carpet", + Item::LimeCarpet => "minecraft:lime_carpet", + Item::PinkCarpet => "minecraft:pink_carpet", + Item::GrayCarpet => "minecraft:gray_carpet", + Item::LightGrayCarpet => "minecraft:light_gray_carpet", + Item::CyanCarpet => "minecraft:cyan_carpet", + Item::PurpleCarpet => "minecraft:purple_carpet", + Item::BlueCarpet => "minecraft:blue_carpet", + Item::BrownCarpet => "minecraft:brown_carpet", + Item::GreenCarpet => "minecraft:green_carpet", + Item::RedCarpet => "minecraft:red_carpet", + Item::BlackCarpet => "minecraft:black_carpet", + Item::Terracotta => "minecraft:terracotta", + Item::PackedIce => "minecraft:packed_ice", + Item::AcaciaStairs => "minecraft:acacia_stairs", + Item::DarkOakStairs => "minecraft:dark_oak_stairs", + Item::DirtPath => "minecraft:dirt_path", + Item::Sunflower => "minecraft:sunflower", + Item::Lilac => "minecraft:lilac", + Item::RoseBush => "minecraft:rose_bush", + Item::Peony => "minecraft:peony", + Item::TallGrass => "minecraft:tall_grass", + Item::LargeFern => "minecraft:large_fern", + Item::WhiteStainedGlass => "minecraft:white_stained_glass", + Item::OrangeStainedGlass => "minecraft:orange_stained_glass", + Item::MagentaStainedGlass => "minecraft:magenta_stained_glass", + Item::LightBlueStainedGlass => "minecraft:light_blue_stained_glass", + Item::YellowStainedGlass => "minecraft:yellow_stained_glass", + Item::LimeStainedGlass => "minecraft:lime_stained_glass", + Item::PinkStainedGlass => "minecraft:pink_stained_glass", + Item::GrayStainedGlass => "minecraft:gray_stained_glass", + Item::LightGrayStainedGlass => "minecraft:light_gray_stained_glass", + Item::CyanStainedGlass => "minecraft:cyan_stained_glass", + Item::PurpleStainedGlass => "minecraft:purple_stained_glass", + Item::BlueStainedGlass => "minecraft:blue_stained_glass", + Item::BrownStainedGlass => "minecraft:brown_stained_glass", + Item::GreenStainedGlass => "minecraft:green_stained_glass", + Item::RedStainedGlass => "minecraft:red_stained_glass", + Item::BlackStainedGlass => "minecraft:black_stained_glass", + Item::WhiteStainedGlassPane => "minecraft:white_stained_glass_pane", + Item::OrangeStainedGlassPane => "minecraft:orange_stained_glass_pane", + Item::MagentaStainedGlassPane => "minecraft:magenta_stained_glass_pane", + Item::LightBlueStainedGlassPane => "minecraft:light_blue_stained_glass_pane", + Item::YellowStainedGlassPane => "minecraft:yellow_stained_glass_pane", + Item::LimeStainedGlassPane => "minecraft:lime_stained_glass_pane", + Item::PinkStainedGlassPane => "minecraft:pink_stained_glass_pane", + Item::GrayStainedGlassPane => "minecraft:gray_stained_glass_pane", + Item::LightGrayStainedGlassPane => "minecraft:light_gray_stained_glass_pane", + Item::CyanStainedGlassPane => "minecraft:cyan_stained_glass_pane", + Item::PurpleStainedGlassPane => "minecraft:purple_stained_glass_pane", + Item::BlueStainedGlassPane => "minecraft:blue_stained_glass_pane", + Item::BrownStainedGlassPane => "minecraft:brown_stained_glass_pane", + Item::GreenStainedGlassPane => "minecraft:green_stained_glass_pane", + Item::RedStainedGlassPane => "minecraft:red_stained_glass_pane", + Item::BlackStainedGlassPane => "minecraft:black_stained_glass_pane", + Item::Prismarine => "minecraft:prismarine", + Item::PrismarineBricks => "minecraft:prismarine_bricks", + Item::DarkPrismarine => "minecraft:dark_prismarine", + Item::PrismarineStairs => "minecraft:prismarine_stairs", + Item::PrismarineBrickStairs => "minecraft:prismarine_brick_stairs", + Item::DarkPrismarineStairs => "minecraft:dark_prismarine_stairs", + Item::SeaLantern => "minecraft:sea_lantern", + Item::RedSandstone => "minecraft:red_sandstone", + Item::ChiseledRedSandstone => "minecraft:chiseled_red_sandstone", + Item::CutRedSandstone => "minecraft:cut_red_sandstone", + Item::RedSandstoneStairs => "minecraft:red_sandstone_stairs", + Item::RepeatingCommandBlock => "minecraft:repeating_command_block", + Item::ChainCommandBlock => "minecraft:chain_command_block", + Item::MagmaBlock => "minecraft:magma_block", + Item::NetherWartBlock => "minecraft:nether_wart_block", + Item::WarpedWartBlock => "minecraft:warped_wart_block", + Item::RedNetherBricks => "minecraft:red_nether_bricks", + Item::BoneBlock => "minecraft:bone_block", + Item::StructureVoid => "minecraft:structure_void", + Item::ShulkerBox => "minecraft:shulker_box", + Item::WhiteShulkerBox => "minecraft:white_shulker_box", + Item::OrangeShulkerBox => "minecraft:orange_shulker_box", + Item::MagentaShulkerBox => "minecraft:magenta_shulker_box", + Item::LightBlueShulkerBox => "minecraft:light_blue_shulker_box", + Item::YellowShulkerBox => "minecraft:yellow_shulker_box", + Item::LimeShulkerBox => "minecraft:lime_shulker_box", + Item::PinkShulkerBox => "minecraft:pink_shulker_box", + Item::GrayShulkerBox => "minecraft:gray_shulker_box", + Item::LightGrayShulkerBox => "minecraft:light_gray_shulker_box", + Item::CyanShulkerBox => "minecraft:cyan_shulker_box", + Item::PurpleShulkerBox => "minecraft:purple_shulker_box", + Item::BlueShulkerBox => "minecraft:blue_shulker_box", + Item::BrownShulkerBox => "minecraft:brown_shulker_box", + Item::GreenShulkerBox => "minecraft:green_shulker_box", + Item::RedShulkerBox => "minecraft:red_shulker_box", + Item::BlackShulkerBox => "minecraft:black_shulker_box", + Item::WhiteGlazedTerracotta => "minecraft:white_glazed_terracotta", + Item::OrangeGlazedTerracotta => "minecraft:orange_glazed_terracotta", + Item::MagentaGlazedTerracotta => "minecraft:magenta_glazed_terracotta", + Item::LightBlueGlazedTerracotta => "minecraft:light_blue_glazed_terracotta", + Item::YellowGlazedTerracotta => "minecraft:yellow_glazed_terracotta", + Item::LimeGlazedTerracotta => "minecraft:lime_glazed_terracotta", + Item::PinkGlazedTerracotta => "minecraft:pink_glazed_terracotta", + Item::GrayGlazedTerracotta => "minecraft:gray_glazed_terracotta", + Item::LightGrayGlazedTerracotta => "minecraft:light_gray_glazed_terracotta", + Item::CyanGlazedTerracotta => "minecraft:cyan_glazed_terracotta", + Item::PurpleGlazedTerracotta => "minecraft:purple_glazed_terracotta", + Item::BlueGlazedTerracotta => "minecraft:blue_glazed_terracotta", + Item::BrownGlazedTerracotta => "minecraft:brown_glazed_terracotta", + Item::GreenGlazedTerracotta => "minecraft:green_glazed_terracotta", + Item::RedGlazedTerracotta => "minecraft:red_glazed_terracotta", + Item::BlackGlazedTerracotta => "minecraft:black_glazed_terracotta", + Item::WhiteConcrete => "minecraft:white_concrete", + Item::OrangeConcrete => "minecraft:orange_concrete", + Item::MagentaConcrete => "minecraft:magenta_concrete", + Item::LightBlueConcrete => "minecraft:light_blue_concrete", + Item::YellowConcrete => "minecraft:yellow_concrete", + Item::LimeConcrete => "minecraft:lime_concrete", + Item::PinkConcrete => "minecraft:pink_concrete", + Item::GrayConcrete => "minecraft:gray_concrete", + Item::LightGrayConcrete => "minecraft:light_gray_concrete", + Item::CyanConcrete => "minecraft:cyan_concrete", + Item::PurpleConcrete => "minecraft:purple_concrete", + Item::BlueConcrete => "minecraft:blue_concrete", + Item::BrownConcrete => "minecraft:brown_concrete", + Item::GreenConcrete => "minecraft:green_concrete", + Item::RedConcrete => "minecraft:red_concrete", + Item::BlackConcrete => "minecraft:black_concrete", + Item::WhiteConcretePowder => "minecraft:white_concrete_powder", + Item::OrangeConcretePowder => "minecraft:orange_concrete_powder", + Item::MagentaConcretePowder => "minecraft:magenta_concrete_powder", + Item::LightBlueConcretePowder => "minecraft:light_blue_concrete_powder", + Item::YellowConcretePowder => "minecraft:yellow_concrete_powder", + Item::LimeConcretePowder => "minecraft:lime_concrete_powder", + Item::PinkConcretePowder => "minecraft:pink_concrete_powder", + Item::GrayConcretePowder => "minecraft:gray_concrete_powder", + Item::LightGrayConcretePowder => "minecraft:light_gray_concrete_powder", + Item::CyanConcretePowder => "minecraft:cyan_concrete_powder", + Item::PurpleConcretePowder => "minecraft:purple_concrete_powder", + Item::BlueConcretePowder => "minecraft:blue_concrete_powder", + Item::BrownConcretePowder => "minecraft:brown_concrete_powder", + Item::GreenConcretePowder => "minecraft:green_concrete_powder", + Item::RedConcretePowder => "minecraft:red_concrete_powder", + Item::BlackConcretePowder => "minecraft:black_concrete_powder", + Item::TurtleEgg => "minecraft:turtle_egg", + Item::DeadTubeCoralBlock => "minecraft:dead_tube_coral_block", + Item::DeadBrainCoralBlock => "minecraft:dead_brain_coral_block", + Item::DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block", + Item::DeadFireCoralBlock => "minecraft:dead_fire_coral_block", + Item::DeadHornCoralBlock => "minecraft:dead_horn_coral_block", + Item::TubeCoralBlock => "minecraft:tube_coral_block", + Item::BrainCoralBlock => "minecraft:brain_coral_block", + Item::BubbleCoralBlock => "minecraft:bubble_coral_block", + Item::FireCoralBlock => "minecraft:fire_coral_block", + Item::HornCoralBlock => "minecraft:horn_coral_block", + Item::TubeCoral => "minecraft:tube_coral", + Item::BrainCoral => "minecraft:brain_coral", + Item::BubbleCoral => "minecraft:bubble_coral", + Item::FireCoral => "minecraft:fire_coral", + Item::HornCoral => "minecraft:horn_coral", + Item::DeadBrainCoral => "minecraft:dead_brain_coral", + Item::DeadBubbleCoral => "minecraft:dead_bubble_coral", + Item::DeadFireCoral => "minecraft:dead_fire_coral", + Item::DeadHornCoral => "minecraft:dead_horn_coral", + Item::DeadTubeCoral => "minecraft:dead_tube_coral", + Item::TubeCoralFan => "minecraft:tube_coral_fan", + Item::BrainCoralFan => "minecraft:brain_coral_fan", + Item::BubbleCoralFan => "minecraft:bubble_coral_fan", + Item::FireCoralFan => "minecraft:fire_coral_fan", + Item::HornCoralFan => "minecraft:horn_coral_fan", + Item::DeadTubeCoralFan => "minecraft:dead_tube_coral_fan", + Item::DeadBrainCoralFan => "minecraft:dead_brain_coral_fan", + Item::DeadBubbleCoralFan => "minecraft:dead_bubble_coral_fan", + Item::DeadFireCoralFan => "minecraft:dead_fire_coral_fan", + Item::DeadHornCoralFan => "minecraft:dead_horn_coral_fan", + Item::BlueIce => "minecraft:blue_ice", + Item::Conduit => "minecraft:conduit", + Item::PolishedGraniteStairs => "minecraft:polished_granite_stairs", + Item::SmoothRedSandstoneStairs => "minecraft:smooth_red_sandstone_stairs", + Item::MossyStoneBrickStairs => "minecraft:mossy_stone_brick_stairs", + Item::PolishedDioriteStairs => "minecraft:polished_diorite_stairs", + Item::MossyCobblestoneStairs => "minecraft:mossy_cobblestone_stairs", + Item::EndStoneBrickStairs => "minecraft:end_stone_brick_stairs", + Item::StoneStairs => "minecraft:stone_stairs", + Item::SmoothSandstoneStairs => "minecraft:smooth_sandstone_stairs", + Item::SmoothQuartzStairs => "minecraft:smooth_quartz_stairs", + Item::GraniteStairs => "minecraft:granite_stairs", + Item::AndesiteStairs => "minecraft:andesite_stairs", + Item::RedNetherBrickStairs => "minecraft:red_nether_brick_stairs", + Item::PolishedAndesiteStairs => "minecraft:polished_andesite_stairs", + Item::DioriteStairs => "minecraft:diorite_stairs", + Item::CobbledDeepslateStairs => "minecraft:cobbled_deepslate_stairs", + Item::PolishedDeepslateStairs => "minecraft:polished_deepslate_stairs", + Item::DeepslateBrickStairs => "minecraft:deepslate_brick_stairs", + Item::DeepslateTileStairs => "minecraft:deepslate_tile_stairs", + Item::PolishedGraniteSlab => "minecraft:polished_granite_slab", + Item::SmoothRedSandstoneSlab => "minecraft:smooth_red_sandstone_slab", + Item::MossyStoneBrickSlab => "minecraft:mossy_stone_brick_slab", + Item::PolishedDioriteSlab => "minecraft:polished_diorite_slab", + Item::MossyCobblestoneSlab => "minecraft:mossy_cobblestone_slab", + Item::EndStoneBrickSlab => "minecraft:end_stone_brick_slab", + Item::SmoothSandstoneSlab => "minecraft:smooth_sandstone_slab", + Item::SmoothQuartzSlab => "minecraft:smooth_quartz_slab", + Item::GraniteSlab => "minecraft:granite_slab", + Item::AndesiteSlab => "minecraft:andesite_slab", + Item::RedNetherBrickSlab => "minecraft:red_nether_brick_slab", + Item::PolishedAndesiteSlab => "minecraft:polished_andesite_slab", + Item::DioriteSlab => "minecraft:diorite_slab", + Item::CobbledDeepslateSlab => "minecraft:cobbled_deepslate_slab", + Item::PolishedDeepslateSlab => "minecraft:polished_deepslate_slab", + Item::DeepslateBrickSlab => "minecraft:deepslate_brick_slab", + Item::DeepslateTileSlab => "minecraft:deepslate_tile_slab", + Item::Scaffolding => "minecraft:scaffolding", + Item::Redstone => "minecraft:redstone", + Item::RedstoneTorch => "minecraft:redstone_torch", + Item::RedstoneBlock => "minecraft:redstone_block", + Item::Repeater => "minecraft:repeater", + Item::Comparator => "minecraft:comparator", + Item::Piston => "minecraft:piston", + Item::StickyPiston => "minecraft:sticky_piston", + Item::SlimeBlock => "minecraft:slime_block", + Item::HoneyBlock => "minecraft:honey_block", + Item::Observer => "minecraft:observer", + Item::Hopper => "minecraft:hopper", + Item::Dispenser => "minecraft:dispenser", + Item::Dropper => "minecraft:dropper", + Item::Lectern => "minecraft:lectern", + Item::Target => "minecraft:target", + Item::Lever => "minecraft:lever", + Item::LightningRod => "minecraft:lightning_rod", + Item::DaylightDetector => "minecraft:daylight_detector", + Item::SculkSensor => "minecraft:sculk_sensor", + Item::TripwireHook => "minecraft:tripwire_hook", + Item::TrappedChest => "minecraft:trapped_chest", + Item::Tnt => "minecraft:tnt", + Item::RedstoneLamp => "minecraft:redstone_lamp", + Item::NoteBlock => "minecraft:note_block", + Item::StoneButton => "minecraft:stone_button", + Item::PolishedBlackstoneButton => "minecraft:polished_blackstone_button", + Item::OakButton => "minecraft:oak_button", + Item::SpruceButton => "minecraft:spruce_button", + Item::BirchButton => "minecraft:birch_button", + Item::JungleButton => "minecraft:jungle_button", + Item::AcaciaButton => "minecraft:acacia_button", + Item::DarkOakButton => "minecraft:dark_oak_button", + Item::CrimsonButton => "minecraft:crimson_button", + Item::WarpedButton => "minecraft:warped_button", + Item::StonePressurePlate => "minecraft:stone_pressure_plate", + Item::PolishedBlackstonePressurePlate => "minecraft:polished_blackstone_pressure_plate", + Item::LightWeightedPressurePlate => "minecraft:light_weighted_pressure_plate", + Item::HeavyWeightedPressurePlate => "minecraft:heavy_weighted_pressure_plate", + Item::OakPressurePlate => "minecraft:oak_pressure_plate", + Item::SprucePressurePlate => "minecraft:spruce_pressure_plate", + Item::BirchPressurePlate => "minecraft:birch_pressure_plate", + Item::JunglePressurePlate => "minecraft:jungle_pressure_plate", + Item::AcaciaPressurePlate => "minecraft:acacia_pressure_plate", + Item::DarkOakPressurePlate => "minecraft:dark_oak_pressure_plate", + Item::CrimsonPressurePlate => "minecraft:crimson_pressure_plate", + Item::WarpedPressurePlate => "minecraft:warped_pressure_plate", + Item::IronDoor => "minecraft:iron_door", + Item::OakDoor => "minecraft:oak_door", + Item::SpruceDoor => "minecraft:spruce_door", + Item::BirchDoor => "minecraft:birch_door", + Item::JungleDoor => "minecraft:jungle_door", + Item::AcaciaDoor => "minecraft:acacia_door", + Item::DarkOakDoor => "minecraft:dark_oak_door", + Item::CrimsonDoor => "minecraft:crimson_door", + Item::WarpedDoor => "minecraft:warped_door", + Item::IronTrapdoor => "minecraft:iron_trapdoor", + Item::OakTrapdoor => "minecraft:oak_trapdoor", + Item::SpruceTrapdoor => "minecraft:spruce_trapdoor", + Item::BirchTrapdoor => "minecraft:birch_trapdoor", + Item::JungleTrapdoor => "minecraft:jungle_trapdoor", + Item::AcaciaTrapdoor => "minecraft:acacia_trapdoor", + Item::DarkOakTrapdoor => "minecraft:dark_oak_trapdoor", + Item::CrimsonTrapdoor => "minecraft:crimson_trapdoor", + Item::WarpedTrapdoor => "minecraft:warped_trapdoor", + Item::OakFenceGate => "minecraft:oak_fence_gate", + Item::SpruceFenceGate => "minecraft:spruce_fence_gate", + Item::BirchFenceGate => "minecraft:birch_fence_gate", + Item::JungleFenceGate => "minecraft:jungle_fence_gate", + Item::AcaciaFenceGate => "minecraft:acacia_fence_gate", + Item::DarkOakFenceGate => "minecraft:dark_oak_fence_gate", + Item::CrimsonFenceGate => "minecraft:crimson_fence_gate", + Item::WarpedFenceGate => "minecraft:warped_fence_gate", + Item::PoweredRail => "minecraft:powered_rail", + Item::DetectorRail => "minecraft:detector_rail", + Item::Rail => "minecraft:rail", + Item::ActivatorRail => "minecraft:activator_rail", + Item::Saddle => "minecraft:saddle", + Item::Minecart => "minecraft:minecart", + Item::ChestMinecart => "minecraft:chest_minecart", + Item::FurnaceMinecart => "minecraft:furnace_minecart", + Item::TntMinecart => "minecraft:tnt_minecart", + Item::HopperMinecart => "minecraft:hopper_minecart", + Item::CarrotOnAStick => "minecraft:carrot_on_a_stick", + Item::WarpedFungusOnAStick => "minecraft:warped_fungus_on_a_stick", + Item::Elytra => "minecraft:elytra", + Item::OakBoat => "minecraft:oak_boat", + Item::SpruceBoat => "minecraft:spruce_boat", + Item::BirchBoat => "minecraft:birch_boat", + Item::JungleBoat => "minecraft:jungle_boat", + Item::AcaciaBoat => "minecraft:acacia_boat", + Item::DarkOakBoat => "minecraft:dark_oak_boat", + Item::StructureBlock => "minecraft:structure_block", + Item::Jigsaw => "minecraft:jigsaw", + Item::TurtleHelmet => "minecraft:turtle_helmet", + Item::Scute => "minecraft:scute", + Item::FlintAndSteel => "minecraft:flint_and_steel", + Item::Apple => "minecraft:apple", + Item::Bow => "minecraft:bow", + Item::Arrow => "minecraft:arrow", + Item::Coal => "minecraft:coal", + Item::Charcoal => "minecraft:charcoal", + Item::Diamond => "minecraft:diamond", + Item::Emerald => "minecraft:emerald", + Item::LapisLazuli => "minecraft:lapis_lazuli", + Item::Quartz => "minecraft:quartz", + Item::AmethystShard => "minecraft:amethyst_shard", + Item::RawIron => "minecraft:raw_iron", + Item::IronIngot => "minecraft:iron_ingot", + Item::RawCopper => "minecraft:raw_copper", + Item::CopperIngot => "minecraft:copper_ingot", + Item::RawGold => "minecraft:raw_gold", + Item::GoldIngot => "minecraft:gold_ingot", + Item::NetheriteIngot => "minecraft:netherite_ingot", + Item::NetheriteScrap => "minecraft:netherite_scrap", + Item::WoodenSword => "minecraft:wooden_sword", + Item::WoodenShovel => "minecraft:wooden_shovel", + Item::WoodenPickaxe => "minecraft:wooden_pickaxe", + Item::WoodenAxe => "minecraft:wooden_axe", + Item::WoodenHoe => "minecraft:wooden_hoe", + Item::StoneSword => "minecraft:stone_sword", + Item::StoneShovel => "minecraft:stone_shovel", + Item::StonePickaxe => "minecraft:stone_pickaxe", + Item::StoneAxe => "minecraft:stone_axe", + Item::StoneHoe => "minecraft:stone_hoe", + Item::GoldenSword => "minecraft:golden_sword", + Item::GoldenShovel => "minecraft:golden_shovel", + Item::GoldenPickaxe => "minecraft:golden_pickaxe", + Item::GoldenAxe => "minecraft:golden_axe", + Item::GoldenHoe => "minecraft:golden_hoe", + Item::IronSword => "minecraft:iron_sword", + Item::IronShovel => "minecraft:iron_shovel", + Item::IronPickaxe => "minecraft:iron_pickaxe", + Item::IronAxe => "minecraft:iron_axe", + Item::IronHoe => "minecraft:iron_hoe", + Item::DiamondSword => "minecraft:diamond_sword", + Item::DiamondShovel => "minecraft:diamond_shovel", + Item::DiamondPickaxe => "minecraft:diamond_pickaxe", + Item::DiamondAxe => "minecraft:diamond_axe", + Item::DiamondHoe => "minecraft:diamond_hoe", + Item::NetheriteSword => "minecraft:netherite_sword", + Item::NetheriteShovel => "minecraft:netherite_shovel", + Item::NetheritePickaxe => "minecraft:netherite_pickaxe", + Item::NetheriteAxe => "minecraft:netherite_axe", + Item::NetheriteHoe => "minecraft:netherite_hoe", + Item::Stick => "minecraft:stick", + Item::Bowl => "minecraft:bowl", + Item::MushroomStew => "minecraft:mushroom_stew", + Item::String => "minecraft:string", + Item::Feather => "minecraft:feather", + Item::Gunpowder => "minecraft:gunpowder", + Item::WheatSeeds => "minecraft:wheat_seeds", + Item::Wheat => "minecraft:wheat", + Item::Bread => "minecraft:bread", + Item::LeatherHelmet => "minecraft:leather_helmet", + Item::LeatherChestplate => "minecraft:leather_chestplate", + Item::LeatherLeggings => "minecraft:leather_leggings", + Item::LeatherBoots => "minecraft:leather_boots", + Item::ChainmailHelmet => "minecraft:chainmail_helmet", + Item::ChainmailChestplate => "minecraft:chainmail_chestplate", + Item::ChainmailLeggings => "minecraft:chainmail_leggings", + Item::ChainmailBoots => "minecraft:chainmail_boots", + Item::IronHelmet => "minecraft:iron_helmet", + Item::IronChestplate => "minecraft:iron_chestplate", + Item::IronLeggings => "minecraft:iron_leggings", + Item::IronBoots => "minecraft:iron_boots", + Item::DiamondHelmet => "minecraft:diamond_helmet", + Item::DiamondChestplate => "minecraft:diamond_chestplate", + Item::DiamondLeggings => "minecraft:diamond_leggings", + Item::DiamondBoots => "minecraft:diamond_boots", + Item::GoldenHelmet => "minecraft:golden_helmet", + Item::GoldenChestplate => "minecraft:golden_chestplate", + Item::GoldenLeggings => "minecraft:golden_leggings", + Item::GoldenBoots => "minecraft:golden_boots", + Item::NetheriteHelmet => "minecraft:netherite_helmet", + Item::NetheriteChestplate => "minecraft:netherite_chestplate", + Item::NetheriteLeggings => "minecraft:netherite_leggings", + Item::NetheriteBoots => "minecraft:netherite_boots", + Item::Flint => "minecraft:flint", + Item::Porkchop => "minecraft:porkchop", + Item::CookedPorkchop => "minecraft:cooked_porkchop", + Item::Painting => "minecraft:painting", + Item::GoldenApple => "minecraft:golden_apple", + Item::EnchantedGoldenApple => "minecraft:enchanted_golden_apple", + Item::OakSign => "minecraft:oak_sign", + Item::SpruceSign => "minecraft:spruce_sign", + Item::BirchSign => "minecraft:birch_sign", + Item::JungleSign => "minecraft:jungle_sign", + Item::AcaciaSign => "minecraft:acacia_sign", + Item::DarkOakSign => "minecraft:dark_oak_sign", + Item::CrimsonSign => "minecraft:crimson_sign", + Item::WarpedSign => "minecraft:warped_sign", + Item::Bucket => "minecraft:bucket", + Item::WaterBucket => "minecraft:water_bucket", + Item::LavaBucket => "minecraft:lava_bucket", + Item::PowderSnowBucket => "minecraft:powder_snow_bucket", + Item::Snowball => "minecraft:snowball", + Item::Leather => "minecraft:leather", + Item::MilkBucket => "minecraft:milk_bucket", + Item::PufferfishBucket => "minecraft:pufferfish_bucket", + Item::SalmonBucket => "minecraft:salmon_bucket", + Item::CodBucket => "minecraft:cod_bucket", + Item::TropicalFishBucket => "minecraft:tropical_fish_bucket", + Item::AxolotlBucket => "minecraft:axolotl_bucket", + Item::Brick => "minecraft:brick", + Item::ClayBall => "minecraft:clay_ball", + Item::DriedKelpBlock => "minecraft:dried_kelp_block", + Item::Paper => "minecraft:paper", + Item::Book => "minecraft:book", + Item::SlimeBall => "minecraft:slime_ball", + Item::Egg => "minecraft:egg", + Item::Compass => "minecraft:compass", + Item::Bundle => "minecraft:bundle", + Item::FishingRod => "minecraft:fishing_rod", + Item::Clock => "minecraft:clock", + Item::Spyglass => "minecraft:spyglass", + Item::GlowstoneDust => "minecraft:glowstone_dust", + Item::Cod => "minecraft:cod", + Item::Salmon => "minecraft:salmon", + Item::TropicalFish => "minecraft:tropical_fish", + Item::Pufferfish => "minecraft:pufferfish", + Item::CookedCod => "minecraft:cooked_cod", + Item::CookedSalmon => "minecraft:cooked_salmon", + Item::InkSac => "minecraft:ink_sac", + Item::GlowInkSac => "minecraft:glow_ink_sac", + Item::CocoaBeans => "minecraft:cocoa_beans", + Item::WhiteDye => "minecraft:white_dye", + Item::OrangeDye => "minecraft:orange_dye", + Item::MagentaDye => "minecraft:magenta_dye", + Item::LightBlueDye => "minecraft:light_blue_dye", + Item::YellowDye => "minecraft:yellow_dye", + Item::LimeDye => "minecraft:lime_dye", + Item::PinkDye => "minecraft:pink_dye", + Item::GrayDye => "minecraft:gray_dye", + Item::LightGrayDye => "minecraft:light_gray_dye", + Item::CyanDye => "minecraft:cyan_dye", + Item::PurpleDye => "minecraft:purple_dye", + Item::BlueDye => "minecraft:blue_dye", + Item::BrownDye => "minecraft:brown_dye", + Item::GreenDye => "minecraft:green_dye", + Item::RedDye => "minecraft:red_dye", + Item::BlackDye => "minecraft:black_dye", + Item::BoneMeal => "minecraft:bone_meal", + Item::Bone => "minecraft:bone", + Item::Sugar => "minecraft:sugar", + Item::Cake => "minecraft:cake", + Item::WhiteBed => "minecraft:white_bed", + Item::OrangeBed => "minecraft:orange_bed", + Item::MagentaBed => "minecraft:magenta_bed", + Item::LightBlueBed => "minecraft:light_blue_bed", + Item::YellowBed => "minecraft:yellow_bed", + Item::LimeBed => "minecraft:lime_bed", + Item::PinkBed => "minecraft:pink_bed", + Item::GrayBed => "minecraft:gray_bed", + Item::LightGrayBed => "minecraft:light_gray_bed", + Item::CyanBed => "minecraft:cyan_bed", + Item::PurpleBed => "minecraft:purple_bed", + Item::BlueBed => "minecraft:blue_bed", + Item::BrownBed => "minecraft:brown_bed", + Item::GreenBed => "minecraft:green_bed", + Item::RedBed => "minecraft:red_bed", + Item::BlackBed => "minecraft:black_bed", + Item::Cookie => "minecraft:cookie", + Item::FilledMap => "minecraft:filled_map", + Item::Shears => "minecraft:shears", + Item::MelonSlice => "minecraft:melon_slice", + Item::DriedKelp => "minecraft:dried_kelp", + Item::PumpkinSeeds => "minecraft:pumpkin_seeds", + Item::MelonSeeds => "minecraft:melon_seeds", + Item::Beef => "minecraft:beef", + Item::CookedBeef => "minecraft:cooked_beef", + Item::Chicken => "minecraft:chicken", + Item::CookedChicken => "minecraft:cooked_chicken", + Item::RottenFlesh => "minecraft:rotten_flesh", + Item::EnderPearl => "minecraft:ender_pearl", + Item::BlazeRod => "minecraft:blaze_rod", + Item::GhastTear => "minecraft:ghast_tear", + Item::GoldNugget => "minecraft:gold_nugget", + Item::NetherWart => "minecraft:nether_wart", + Item::Potion => "minecraft:potion", + Item::GlassBottle => "minecraft:glass_bottle", + Item::SpiderEye => "minecraft:spider_eye", + Item::FermentedSpiderEye => "minecraft:fermented_spider_eye", + Item::BlazePowder => "minecraft:blaze_powder", + Item::MagmaCream => "minecraft:magma_cream", + Item::BrewingStand => "minecraft:brewing_stand", + Item::Cauldron => "minecraft:cauldron", + Item::EnderEye => "minecraft:ender_eye", + Item::GlisteringMelonSlice => "minecraft:glistering_melon_slice", + Item::AxolotlSpawnEgg => "minecraft:axolotl_spawn_egg", + Item::BatSpawnEgg => "minecraft:bat_spawn_egg", + Item::BeeSpawnEgg => "minecraft:bee_spawn_egg", + Item::BlazeSpawnEgg => "minecraft:blaze_spawn_egg", + Item::CatSpawnEgg => "minecraft:cat_spawn_egg", + Item::CaveSpiderSpawnEgg => "minecraft:cave_spider_spawn_egg", + Item::ChickenSpawnEgg => "minecraft:chicken_spawn_egg", + Item::CodSpawnEgg => "minecraft:cod_spawn_egg", + Item::CowSpawnEgg => "minecraft:cow_spawn_egg", + Item::CreeperSpawnEgg => "minecraft:creeper_spawn_egg", + Item::DolphinSpawnEgg => "minecraft:dolphin_spawn_egg", + Item::DonkeySpawnEgg => "minecraft:donkey_spawn_egg", + Item::DrownedSpawnEgg => "minecraft:drowned_spawn_egg", + Item::ElderGuardianSpawnEgg => "minecraft:elder_guardian_spawn_egg", + Item::EndermanSpawnEgg => "minecraft:enderman_spawn_egg", + Item::EndermiteSpawnEgg => "minecraft:endermite_spawn_egg", + Item::EvokerSpawnEgg => "minecraft:evoker_spawn_egg", + Item::FoxSpawnEgg => "minecraft:fox_spawn_egg", + Item::GhastSpawnEgg => "minecraft:ghast_spawn_egg", + Item::GlowSquidSpawnEgg => "minecraft:glow_squid_spawn_egg", + Item::GoatSpawnEgg => "minecraft:goat_spawn_egg", + Item::GuardianSpawnEgg => "minecraft:guardian_spawn_egg", + Item::HoglinSpawnEgg => "minecraft:hoglin_spawn_egg", + Item::HorseSpawnEgg => "minecraft:horse_spawn_egg", + Item::HuskSpawnEgg => "minecraft:husk_spawn_egg", + Item::LlamaSpawnEgg => "minecraft:llama_spawn_egg", + Item::MagmaCubeSpawnEgg => "minecraft:magma_cube_spawn_egg", + Item::MooshroomSpawnEgg => "minecraft:mooshroom_spawn_egg", + Item::MuleSpawnEgg => "minecraft:mule_spawn_egg", + Item::OcelotSpawnEgg => "minecraft:ocelot_spawn_egg", + Item::PandaSpawnEgg => "minecraft:panda_spawn_egg", + Item::ParrotSpawnEgg => "minecraft:parrot_spawn_egg", + Item::PhantomSpawnEgg => "minecraft:phantom_spawn_egg", + Item::PigSpawnEgg => "minecraft:pig_spawn_egg", + Item::PiglinSpawnEgg => "minecraft:piglin_spawn_egg", + Item::PiglinBruteSpawnEgg => "minecraft:piglin_brute_spawn_egg", + Item::PillagerSpawnEgg => "minecraft:pillager_spawn_egg", + Item::PolarBearSpawnEgg => "minecraft:polar_bear_spawn_egg", + Item::PufferfishSpawnEgg => "minecraft:pufferfish_spawn_egg", + Item::RabbitSpawnEgg => "minecraft:rabbit_spawn_egg", + Item::RavagerSpawnEgg => "minecraft:ravager_spawn_egg", + Item::SalmonSpawnEgg => "minecraft:salmon_spawn_egg", + Item::SheepSpawnEgg => "minecraft:sheep_spawn_egg", + Item::ShulkerSpawnEgg => "minecraft:shulker_spawn_egg", + Item::SilverfishSpawnEgg => "minecraft:silverfish_spawn_egg", + Item::SkeletonSpawnEgg => "minecraft:skeleton_spawn_egg", + Item::SkeletonHorseSpawnEgg => "minecraft:skeleton_horse_spawn_egg", + Item::SlimeSpawnEgg => "minecraft:slime_spawn_egg", + Item::SpiderSpawnEgg => "minecraft:spider_spawn_egg", + Item::SquidSpawnEgg => "minecraft:squid_spawn_egg", + Item::StraySpawnEgg => "minecraft:stray_spawn_egg", + Item::StriderSpawnEgg => "minecraft:strider_spawn_egg", + Item::TraderLlamaSpawnEgg => "minecraft:trader_llama_spawn_egg", + Item::TropicalFishSpawnEgg => "minecraft:tropical_fish_spawn_egg", + Item::TurtleSpawnEgg => "minecraft:turtle_spawn_egg", + Item::VexSpawnEgg => "minecraft:vex_spawn_egg", + Item::VillagerSpawnEgg => "minecraft:villager_spawn_egg", + Item::VindicatorSpawnEgg => "minecraft:vindicator_spawn_egg", + Item::WanderingTraderSpawnEgg => "minecraft:wandering_trader_spawn_egg", + Item::WitchSpawnEgg => "minecraft:witch_spawn_egg", + Item::WitherSkeletonSpawnEgg => "minecraft:wither_skeleton_spawn_egg", + Item::WolfSpawnEgg => "minecraft:wolf_spawn_egg", + Item::ZoglinSpawnEgg => "minecraft:zoglin_spawn_egg", + Item::ZombieSpawnEgg => "minecraft:zombie_spawn_egg", + Item::ZombieHorseSpawnEgg => "minecraft:zombie_horse_spawn_egg", + Item::ZombieVillagerSpawnEgg => "minecraft:zombie_villager_spawn_egg", + Item::ZombifiedPiglinSpawnEgg => "minecraft:zombified_piglin_spawn_egg", + Item::ExperienceBottle => "minecraft:experience_bottle", + Item::FireCharge => "minecraft:fire_charge", + Item::WritableBook => "minecraft:writable_book", + Item::WrittenBook => "minecraft:written_book", + Item::ItemFrame => "minecraft:item_frame", + Item::GlowItemFrame => "minecraft:glow_item_frame", + Item::FlowerPot => "minecraft:flower_pot", + Item::Carrot => "minecraft:carrot", + Item::Potato => "minecraft:potato", + Item::BakedPotato => "minecraft:baked_potato", + Item::PoisonousPotato => "minecraft:poisonous_potato", + Item::Map => "minecraft:map", + Item::GoldenCarrot => "minecraft:golden_carrot", + Item::SkeletonSkull => "minecraft:skeleton_skull", + Item::WitherSkeletonSkull => "minecraft:wither_skeleton_skull", + Item::PlayerHead => "minecraft:player_head", + Item::ZombieHead => "minecraft:zombie_head", + Item::CreeperHead => "minecraft:creeper_head", + Item::DragonHead => "minecraft:dragon_head", + Item::NetherStar => "minecraft:nether_star", + Item::PumpkinPie => "minecraft:pumpkin_pie", + Item::FireworkRocket => "minecraft:firework_rocket", + Item::FireworkStar => "minecraft:firework_star", + Item::EnchantedBook => "minecraft:enchanted_book", + Item::NetherBrick => "minecraft:nether_brick", + Item::PrismarineShard => "minecraft:prismarine_shard", + Item::PrismarineCrystals => "minecraft:prismarine_crystals", + Item::Rabbit => "minecraft:rabbit", + Item::CookedRabbit => "minecraft:cooked_rabbit", + Item::RabbitStew => "minecraft:rabbit_stew", + Item::RabbitFoot => "minecraft:rabbit_foot", + Item::RabbitHide => "minecraft:rabbit_hide", + Item::ArmorStand => "minecraft:armor_stand", + Item::IronHorseArmor => "minecraft:iron_horse_armor", + Item::GoldenHorseArmor => "minecraft:golden_horse_armor", + Item::DiamondHorseArmor => "minecraft:diamond_horse_armor", + Item::LeatherHorseArmor => "minecraft:leather_horse_armor", + Item::Lead => "minecraft:lead", + Item::NameTag => "minecraft:name_tag", + Item::CommandBlockMinecart => "minecraft:command_block_minecart", + Item::Mutton => "minecraft:mutton", + Item::CookedMutton => "minecraft:cooked_mutton", + Item::WhiteBanner => "minecraft:white_banner", + Item::OrangeBanner => "minecraft:orange_banner", + Item::MagentaBanner => "minecraft:magenta_banner", + Item::LightBlueBanner => "minecraft:light_blue_banner", + Item::YellowBanner => "minecraft:yellow_banner", + Item::LimeBanner => "minecraft:lime_banner", + Item::PinkBanner => "minecraft:pink_banner", + Item::GrayBanner => "minecraft:gray_banner", + Item::LightGrayBanner => "minecraft:light_gray_banner", + Item::CyanBanner => "minecraft:cyan_banner", + Item::PurpleBanner => "minecraft:purple_banner", + Item::BlueBanner => "minecraft:blue_banner", + Item::BrownBanner => "minecraft:brown_banner", + Item::GreenBanner => "minecraft:green_banner", + Item::RedBanner => "minecraft:red_banner", + Item::BlackBanner => "minecraft:black_banner", + Item::EndCrystal => "minecraft:end_crystal", + Item::ChorusFruit => "minecraft:chorus_fruit", + Item::PoppedChorusFruit => "minecraft:popped_chorus_fruit", + Item::Beetroot => "minecraft:beetroot", + Item::BeetrootSeeds => "minecraft:beetroot_seeds", + Item::BeetrootSoup => "minecraft:beetroot_soup", + Item::DragonBreath => "minecraft:dragon_breath", + Item::SplashPotion => "minecraft:splash_potion", + Item::SpectralArrow => "minecraft:spectral_arrow", + Item::TippedArrow => "minecraft:tipped_arrow", + Item::LingeringPotion => "minecraft:lingering_potion", + Item::Shield => "minecraft:shield", + Item::TotemOfUndying => "minecraft:totem_of_undying", + Item::ShulkerShell => "minecraft:shulker_shell", + Item::IronNugget => "minecraft:iron_nugget", + Item::KnowledgeBook => "minecraft:knowledge_book", + Item::DebugStick => "minecraft:debug_stick", + Item::MusicDisc13 => "minecraft:music_disc_13", + Item::MusicDiscCat => "minecraft:music_disc_cat", + Item::MusicDiscBlocks => "minecraft:music_disc_blocks", + Item::MusicDiscChirp => "minecraft:music_disc_chirp", + Item::MusicDiscFar => "minecraft:music_disc_far", + Item::MusicDiscMall => "minecraft:music_disc_mall", + Item::MusicDiscMellohi => "minecraft:music_disc_mellohi", + Item::MusicDiscStal => "minecraft:music_disc_stal", + Item::MusicDiscStrad => "minecraft:music_disc_strad", + Item::MusicDiscWard => "minecraft:music_disc_ward", + Item::MusicDisc11 => "minecraft:music_disc_11", + Item::MusicDiscWait => "minecraft:music_disc_wait", + Item::MusicDiscOtherside => "minecraft:music_disc_otherside", + Item::MusicDiscPigstep => "minecraft:music_disc_pigstep", + Item::Trident => "minecraft:trident", + Item::PhantomMembrane => "minecraft:phantom_membrane", + Item::NautilusShell => "minecraft:nautilus_shell", + Item::HeartOfTheSea => "minecraft:heart_of_the_sea", + Item::Crossbow => "minecraft:crossbow", + Item::SuspiciousStew => "minecraft:suspicious_stew", + Item::Loom => "minecraft:loom", + Item::FlowerBannerPattern => "minecraft:flower_banner_pattern", + Item::CreeperBannerPattern => "minecraft:creeper_banner_pattern", + Item::SkullBannerPattern => "minecraft:skull_banner_pattern", + Item::MojangBannerPattern => "minecraft:mojang_banner_pattern", + Item::GlobeBannerPattern => "minecraft:globe_banner_pattern", + Item::PiglinBannerPattern => "minecraft:piglin_banner_pattern", + Item::Composter => "minecraft:composter", + Item::Barrel => "minecraft:barrel", + Item::Smoker => "minecraft:smoker", + Item::BlastFurnace => "minecraft:blast_furnace", + Item::CartographyTable => "minecraft:cartography_table", + Item::FletchingTable => "minecraft:fletching_table", + Item::Grindstone => "minecraft:grindstone", + Item::SmithingTable => "minecraft:smithing_table", + Item::Stonecutter => "minecraft:stonecutter", + Item::Bell => "minecraft:bell", + Item::Lantern => "minecraft:lantern", + Item::SoulLantern => "minecraft:soul_lantern", + Item::SweetBerries => "minecraft:sweet_berries", + Item::GlowBerries => "minecraft:glow_berries", + Item::Campfire => "minecraft:campfire", + Item::SoulCampfire => "minecraft:soul_campfire", + Item::Shroomlight => "minecraft:shroomlight", + Item::Honeycomb => "minecraft:honeycomb", + Item::BeeNest => "minecraft:bee_nest", + Item::Beehive => "minecraft:beehive", + Item::HoneyBottle => "minecraft:honey_bottle", + Item::HoneycombBlock => "minecraft:honeycomb_block", + Item::Lodestone => "minecraft:lodestone", + Item::CryingObsidian => "minecraft:crying_obsidian", + Item::Blackstone => "minecraft:blackstone", + Item::BlackstoneSlab => "minecraft:blackstone_slab", + Item::BlackstoneStairs => "minecraft:blackstone_stairs", + Item::GildedBlackstone => "minecraft:gilded_blackstone", + Item::PolishedBlackstone => "minecraft:polished_blackstone", + Item::PolishedBlackstoneSlab => "minecraft:polished_blackstone_slab", + Item::PolishedBlackstoneStairs => "minecraft:polished_blackstone_stairs", + Item::ChiseledPolishedBlackstone => "minecraft:chiseled_polished_blackstone", + Item::PolishedBlackstoneBricks => "minecraft:polished_blackstone_bricks", + Item::PolishedBlackstoneBrickSlab => "minecraft:polished_blackstone_brick_slab", + Item::PolishedBlackstoneBrickStairs => "minecraft:polished_blackstone_brick_stairs", + Item::CrackedPolishedBlackstoneBricks => "minecraft:cracked_polished_blackstone_bricks", + Item::RespawnAnchor => "minecraft:respawn_anchor", + Item::Candle => "minecraft:candle", + Item::WhiteCandle => "minecraft:white_candle", + Item::OrangeCandle => "minecraft:orange_candle", + Item::MagentaCandle => "minecraft:magenta_candle", + Item::LightBlueCandle => "minecraft:light_blue_candle", + Item::YellowCandle => "minecraft:yellow_candle", + Item::LimeCandle => "minecraft:lime_candle", + Item::PinkCandle => "minecraft:pink_candle", + Item::GrayCandle => "minecraft:gray_candle", + Item::LightGrayCandle => "minecraft:light_gray_candle", + Item::CyanCandle => "minecraft:cyan_candle", + Item::PurpleCandle => "minecraft:purple_candle", + Item::BlueCandle => "minecraft:blue_candle", + Item::BrownCandle => "minecraft:brown_candle", + Item::GreenCandle => "minecraft:green_candle", + Item::RedCandle => "minecraft:red_candle", + Item::BlackCandle => "minecraft:black_candle", + Item::SmallAmethystBud => "minecraft:small_amethyst_bud", + Item::MediumAmethystBud => "minecraft:medium_amethyst_bud", + Item::LargeAmethystBud => "minecraft:large_amethyst_bud", + Item::AmethystCluster => "minecraft:amethyst_cluster", + Item::PointedDripstone => "minecraft:pointed_dripstone", + } + } + #[doc = "Gets a `Item` by its `namespaced_id`."] + #[inline] + pub fn from_namespaced_id(namespaced_id: &str) -> Option { + match namespaced_id { + "minecraft:stone" => Some(Item::Stone), + "minecraft:granite" => Some(Item::Granite), + "minecraft:polished_granite" => Some(Item::PolishedGranite), + "minecraft:diorite" => Some(Item::Diorite), + "minecraft:polished_diorite" => Some(Item::PolishedDiorite), + "minecraft:andesite" => Some(Item::Andesite), + "minecraft:polished_andesite" => Some(Item::PolishedAndesite), + "minecraft:deepslate" => Some(Item::Deepslate), + "minecraft:cobbled_deepslate" => Some(Item::CobbledDeepslate), + "minecraft:polished_deepslate" => Some(Item::PolishedDeepslate), + "minecraft:calcite" => Some(Item::Calcite), + "minecraft:tuff" => Some(Item::Tuff), + "minecraft:dripstone_block" => Some(Item::DripstoneBlock), + "minecraft:grass_block" => Some(Item::GrassBlock), + "minecraft:dirt" => Some(Item::Dirt), + "minecraft:coarse_dirt" => Some(Item::CoarseDirt), + "minecraft:podzol" => Some(Item::Podzol), + "minecraft:rooted_dirt" => Some(Item::RootedDirt), + "minecraft:crimson_nylium" => Some(Item::CrimsonNylium), + "minecraft:warped_nylium" => Some(Item::WarpedNylium), + "minecraft:cobblestone" => Some(Item::Cobblestone), + "minecraft:oak_planks" => Some(Item::OakPlanks), + "minecraft:spruce_planks" => Some(Item::SprucePlanks), + "minecraft:birch_planks" => Some(Item::BirchPlanks), + "minecraft:jungle_planks" => Some(Item::JunglePlanks), + "minecraft:acacia_planks" => Some(Item::AcaciaPlanks), + "minecraft:dark_oak_planks" => Some(Item::DarkOakPlanks), + "minecraft:crimson_planks" => Some(Item::CrimsonPlanks), + "minecraft:warped_planks" => Some(Item::WarpedPlanks), + "minecraft:oak_sapling" => Some(Item::OakSapling), + "minecraft:spruce_sapling" => Some(Item::SpruceSapling), + "minecraft:birch_sapling" => Some(Item::BirchSapling), + "minecraft:jungle_sapling" => Some(Item::JungleSapling), + "minecraft:acacia_sapling" => Some(Item::AcaciaSapling), + "minecraft:dark_oak_sapling" => Some(Item::DarkOakSapling), + "minecraft:bedrock" => Some(Item::Bedrock), + "minecraft:sand" => Some(Item::Sand), + "minecraft:red_sand" => Some(Item::RedSand), + "minecraft:gravel" => Some(Item::Gravel), + "minecraft:coal_ore" => Some(Item::CoalOre), + "minecraft:deepslate_coal_ore" => Some(Item::DeepslateCoalOre), + "minecraft:iron_ore" => Some(Item::IronOre), + "minecraft:deepslate_iron_ore" => Some(Item::DeepslateIronOre), + "minecraft:copper_ore" => Some(Item::CopperOre), + "minecraft:deepslate_copper_ore" => Some(Item::DeepslateCopperOre), + "minecraft:gold_ore" => Some(Item::GoldOre), + "minecraft:deepslate_gold_ore" => Some(Item::DeepslateGoldOre), + "minecraft:redstone_ore" => Some(Item::RedstoneOre), + "minecraft:deepslate_redstone_ore" => Some(Item::DeepslateRedstoneOre), + "minecraft:emerald_ore" => Some(Item::EmeraldOre), + "minecraft:deepslate_emerald_ore" => Some(Item::DeepslateEmeraldOre), + "minecraft:lapis_ore" => Some(Item::LapisOre), + "minecraft:deepslate_lapis_ore" => Some(Item::DeepslateLapisOre), + "minecraft:diamond_ore" => Some(Item::DiamondOre), + "minecraft:deepslate_diamond_ore" => Some(Item::DeepslateDiamondOre), + "minecraft:nether_gold_ore" => Some(Item::NetherGoldOre), + "minecraft:nether_quartz_ore" => Some(Item::NetherQuartzOre), + "minecraft:ancient_debris" => Some(Item::AncientDebris), + "minecraft:coal_block" => Some(Item::CoalBlock), + "minecraft:raw_iron_block" => Some(Item::RawIronBlock), + "minecraft:raw_copper_block" => Some(Item::RawCopperBlock), + "minecraft:raw_gold_block" => Some(Item::RawGoldBlock), + "minecraft:amethyst_block" => Some(Item::AmethystBlock), + "minecraft:budding_amethyst" => Some(Item::BuddingAmethyst), + "minecraft:iron_block" => Some(Item::IronBlock), + "minecraft:copper_block" => Some(Item::CopperBlock), + "minecraft:gold_block" => Some(Item::GoldBlock), + "minecraft:diamond_block" => Some(Item::DiamondBlock), + "minecraft:netherite_block" => Some(Item::NetheriteBlock), + "minecraft:exposed_copper" => Some(Item::ExposedCopper), + "minecraft:weathered_copper" => Some(Item::WeatheredCopper), + "minecraft:oxidized_copper" => Some(Item::OxidizedCopper), + "minecraft:cut_copper" => Some(Item::CutCopper), + "minecraft:exposed_cut_copper" => Some(Item::ExposedCutCopper), + "minecraft:weathered_cut_copper" => Some(Item::WeatheredCutCopper), + "minecraft:oxidized_cut_copper" => Some(Item::OxidizedCutCopper), + "minecraft:cut_copper_stairs" => Some(Item::CutCopperStairs), + "minecraft:exposed_cut_copper_stairs" => Some(Item::ExposedCutCopperStairs), + "minecraft:weathered_cut_copper_stairs" => Some(Item::WeatheredCutCopperStairs), + "minecraft:oxidized_cut_copper_stairs" => Some(Item::OxidizedCutCopperStairs), + "minecraft:cut_copper_slab" => Some(Item::CutCopperSlab), + "minecraft:exposed_cut_copper_slab" => Some(Item::ExposedCutCopperSlab), + "minecraft:weathered_cut_copper_slab" => Some(Item::WeatheredCutCopperSlab), + "minecraft:oxidized_cut_copper_slab" => Some(Item::OxidizedCutCopperSlab), + "minecraft:waxed_copper_block" => Some(Item::WaxedCopperBlock), + "minecraft:waxed_exposed_copper" => Some(Item::WaxedExposedCopper), + "minecraft:waxed_weathered_copper" => Some(Item::WaxedWeatheredCopper), + "minecraft:waxed_oxidized_copper" => Some(Item::WaxedOxidizedCopper), + "minecraft:waxed_cut_copper" => Some(Item::WaxedCutCopper), + "minecraft:waxed_exposed_cut_copper" => Some(Item::WaxedExposedCutCopper), + "minecraft:waxed_weathered_cut_copper" => Some(Item::WaxedWeatheredCutCopper), + "minecraft:waxed_oxidized_cut_copper" => Some(Item::WaxedOxidizedCutCopper), + "minecraft:waxed_cut_copper_stairs" => Some(Item::WaxedCutCopperStairs), + "minecraft:waxed_exposed_cut_copper_stairs" => Some(Item::WaxedExposedCutCopperStairs), + "minecraft:waxed_weathered_cut_copper_stairs" => { + Some(Item::WaxedWeatheredCutCopperStairs) + } + "minecraft:waxed_oxidized_cut_copper_stairs" => { + Some(Item::WaxedOxidizedCutCopperStairs) + } + "minecraft:waxed_cut_copper_slab" => Some(Item::WaxedCutCopperSlab), + "minecraft:waxed_exposed_cut_copper_slab" => Some(Item::WaxedExposedCutCopperSlab), + "minecraft:waxed_weathered_cut_copper_slab" => Some(Item::WaxedWeatheredCutCopperSlab), + "minecraft:waxed_oxidized_cut_copper_slab" => Some(Item::WaxedOxidizedCutCopperSlab), + "minecraft:oak_log" => Some(Item::OakLog), + "minecraft:spruce_log" => Some(Item::SpruceLog), + "minecraft:birch_log" => Some(Item::BirchLog), + "minecraft:jungle_log" => Some(Item::JungleLog), + "minecraft:acacia_log" => Some(Item::AcaciaLog), + "minecraft:dark_oak_log" => Some(Item::DarkOakLog), + "minecraft:crimson_stem" => Some(Item::CrimsonStem), + "minecraft:warped_stem" => Some(Item::WarpedStem), + "minecraft:stripped_oak_log" => Some(Item::StrippedOakLog), + "minecraft:stripped_spruce_log" => Some(Item::StrippedSpruceLog), + "minecraft:stripped_birch_log" => Some(Item::StrippedBirchLog), + "minecraft:stripped_jungle_log" => Some(Item::StrippedJungleLog), + "minecraft:stripped_acacia_log" => Some(Item::StrippedAcaciaLog), + "minecraft:stripped_dark_oak_log" => Some(Item::StrippedDarkOakLog), + "minecraft:stripped_crimson_stem" => Some(Item::StrippedCrimsonStem), + "minecraft:stripped_warped_stem" => Some(Item::StrippedWarpedStem), + "minecraft:stripped_oak_wood" => Some(Item::StrippedOakWood), + "minecraft:stripped_spruce_wood" => Some(Item::StrippedSpruceWood), + "minecraft:stripped_birch_wood" => Some(Item::StrippedBirchWood), + "minecraft:stripped_jungle_wood" => Some(Item::StrippedJungleWood), + "minecraft:stripped_acacia_wood" => Some(Item::StrippedAcaciaWood), + "minecraft:stripped_dark_oak_wood" => Some(Item::StrippedDarkOakWood), + "minecraft:stripped_crimson_hyphae" => Some(Item::StrippedCrimsonHyphae), + "minecraft:stripped_warped_hyphae" => Some(Item::StrippedWarpedHyphae), + "minecraft:oak_wood" => Some(Item::OakWood), + "minecraft:spruce_wood" => Some(Item::SpruceWood), + "minecraft:birch_wood" => Some(Item::BirchWood), + "minecraft:jungle_wood" => Some(Item::JungleWood), + "minecraft:acacia_wood" => Some(Item::AcaciaWood), + "minecraft:dark_oak_wood" => Some(Item::DarkOakWood), + "minecraft:crimson_hyphae" => Some(Item::CrimsonHyphae), + "minecraft:warped_hyphae" => Some(Item::WarpedHyphae), + "minecraft:oak_leaves" => Some(Item::OakLeaves), + "minecraft:spruce_leaves" => Some(Item::SpruceLeaves), + "minecraft:birch_leaves" => Some(Item::BirchLeaves), + "minecraft:jungle_leaves" => Some(Item::JungleLeaves), + "minecraft:acacia_leaves" => Some(Item::AcaciaLeaves), + "minecraft:dark_oak_leaves" => Some(Item::DarkOakLeaves), + "minecraft:azalea_leaves" => Some(Item::AzaleaLeaves), + "minecraft:flowering_azalea_leaves" => Some(Item::FloweringAzaleaLeaves), + "minecraft:sponge" => Some(Item::Sponge), + "minecraft:wet_sponge" => Some(Item::WetSponge), + "minecraft:glass" => Some(Item::Glass), + "minecraft:tinted_glass" => Some(Item::TintedGlass), + "minecraft:lapis_block" => Some(Item::LapisBlock), + "minecraft:sandstone" => Some(Item::Sandstone), + "minecraft:chiseled_sandstone" => Some(Item::ChiseledSandstone), + "minecraft:cut_sandstone" => Some(Item::CutSandstone), + "minecraft:cobweb" => Some(Item::Cobweb), + "minecraft:grass" => Some(Item::Grass), + "minecraft:fern" => Some(Item::Fern), + "minecraft:azalea" => Some(Item::Azalea), + "minecraft:flowering_azalea" => Some(Item::FloweringAzalea), + "minecraft:dead_bush" => Some(Item::DeadBush), + "minecraft:seagrass" => Some(Item::Seagrass), + "minecraft:sea_pickle" => Some(Item::SeaPickle), + "minecraft:white_wool" => Some(Item::WhiteWool), + "minecraft:orange_wool" => Some(Item::OrangeWool), + "minecraft:magenta_wool" => Some(Item::MagentaWool), + "minecraft:light_blue_wool" => Some(Item::LightBlueWool), + "minecraft:yellow_wool" => Some(Item::YellowWool), + "minecraft:lime_wool" => Some(Item::LimeWool), + "minecraft:pink_wool" => Some(Item::PinkWool), + "minecraft:gray_wool" => Some(Item::GrayWool), + "minecraft:light_gray_wool" => Some(Item::LightGrayWool), + "minecraft:cyan_wool" => Some(Item::CyanWool), + "minecraft:purple_wool" => Some(Item::PurpleWool), + "minecraft:blue_wool" => Some(Item::BlueWool), + "minecraft:brown_wool" => Some(Item::BrownWool), + "minecraft:green_wool" => Some(Item::GreenWool), + "minecraft:red_wool" => Some(Item::RedWool), + "minecraft:black_wool" => Some(Item::BlackWool), + "minecraft:dandelion" => Some(Item::Dandelion), + "minecraft:poppy" => Some(Item::Poppy), + "minecraft:blue_orchid" => Some(Item::BlueOrchid), + "minecraft:allium" => Some(Item::Allium), + "minecraft:azure_bluet" => Some(Item::AzureBluet), + "minecraft:red_tulip" => Some(Item::RedTulip), + "minecraft:orange_tulip" => Some(Item::OrangeTulip), + "minecraft:white_tulip" => Some(Item::WhiteTulip), + "minecraft:pink_tulip" => Some(Item::PinkTulip), + "minecraft:oxeye_daisy" => Some(Item::OxeyeDaisy), + "minecraft:cornflower" => Some(Item::Cornflower), + "minecraft:lily_of_the_valley" => Some(Item::LilyOfTheValley), + "minecraft:wither_rose" => Some(Item::WitherRose), + "minecraft:spore_blossom" => Some(Item::SporeBlossom), + "minecraft:brown_mushroom" => Some(Item::BrownMushroom), + "minecraft:red_mushroom" => Some(Item::RedMushroom), + "minecraft:crimson_fungus" => Some(Item::CrimsonFungus), + "minecraft:warped_fungus" => Some(Item::WarpedFungus), + "minecraft:crimson_roots" => Some(Item::CrimsonRoots), + "minecraft:warped_roots" => Some(Item::WarpedRoots), + "minecraft:nether_sprouts" => Some(Item::NetherSprouts), + "minecraft:weeping_vines" => Some(Item::WeepingVines), + "minecraft:twisting_vines" => Some(Item::TwistingVines), + "minecraft:sugar_cane" => Some(Item::SugarCane), + "minecraft:kelp" => Some(Item::Kelp), + "minecraft:moss_carpet" => Some(Item::MossCarpet), + "minecraft:moss_block" => Some(Item::MossBlock), + "minecraft:hanging_roots" => Some(Item::HangingRoots), + "minecraft:big_dripleaf" => Some(Item::BigDripleaf), + "minecraft:small_dripleaf" => Some(Item::SmallDripleaf), + "minecraft:bamboo" => Some(Item::Bamboo), + "minecraft:oak_slab" => Some(Item::OakSlab), + "minecraft:spruce_slab" => Some(Item::SpruceSlab), + "minecraft:birch_slab" => Some(Item::BirchSlab), + "minecraft:jungle_slab" => Some(Item::JungleSlab), + "minecraft:acacia_slab" => Some(Item::AcaciaSlab), + "minecraft:dark_oak_slab" => Some(Item::DarkOakSlab), + "minecraft:crimson_slab" => Some(Item::CrimsonSlab), + "minecraft:warped_slab" => Some(Item::WarpedSlab), + "minecraft:stone_slab" => Some(Item::StoneSlab), + "minecraft:smooth_stone_slab" => Some(Item::SmoothStoneSlab), + "minecraft:sandstone_slab" => Some(Item::SandstoneSlab), + "minecraft:cut_sandstone_slab" => Some(Item::CutSandstoneSlab), + "minecraft:petrified_oak_slab" => Some(Item::PetrifiedOakSlab), + "minecraft:cobblestone_slab" => Some(Item::CobblestoneSlab), + "minecraft:brick_slab" => Some(Item::BrickSlab), + "minecraft:stone_brick_slab" => Some(Item::StoneBrickSlab), + "minecraft:nether_brick_slab" => Some(Item::NetherBrickSlab), + "minecraft:quartz_slab" => Some(Item::QuartzSlab), + "minecraft:red_sandstone_slab" => Some(Item::RedSandstoneSlab), + "minecraft:cut_red_sandstone_slab" => Some(Item::CutRedSandstoneSlab), + "minecraft:purpur_slab" => Some(Item::PurpurSlab), + "minecraft:prismarine_slab" => Some(Item::PrismarineSlab), + "minecraft:prismarine_brick_slab" => Some(Item::PrismarineBrickSlab), + "minecraft:dark_prismarine_slab" => Some(Item::DarkPrismarineSlab), + "minecraft:smooth_quartz" => Some(Item::SmoothQuartz), + "minecraft:smooth_red_sandstone" => Some(Item::SmoothRedSandstone), + "minecraft:smooth_sandstone" => Some(Item::SmoothSandstone), + "minecraft:smooth_stone" => Some(Item::SmoothStone), + "minecraft:bricks" => Some(Item::Bricks), + "minecraft:bookshelf" => Some(Item::Bookshelf), + "minecraft:mossy_cobblestone" => Some(Item::MossyCobblestone), + "minecraft:obsidian" => Some(Item::Obsidian), + "minecraft:torch" => Some(Item::Torch), + "minecraft:end_rod" => Some(Item::EndRod), + "minecraft:chorus_plant" => Some(Item::ChorusPlant), + "minecraft:chorus_flower" => Some(Item::ChorusFlower), + "minecraft:purpur_block" => Some(Item::PurpurBlock), + "minecraft:purpur_pillar" => Some(Item::PurpurPillar), + "minecraft:purpur_stairs" => Some(Item::PurpurStairs), + "minecraft:spawner" => Some(Item::Spawner), + "minecraft:oak_stairs" => Some(Item::OakStairs), + "minecraft:chest" => Some(Item::Chest), + "minecraft:crafting_table" => Some(Item::CraftingTable), + "minecraft:farmland" => Some(Item::Farmland), + "minecraft:furnace" => Some(Item::Furnace), + "minecraft:ladder" => Some(Item::Ladder), + "minecraft:cobblestone_stairs" => Some(Item::CobblestoneStairs), + "minecraft:snow" => Some(Item::Snow), + "minecraft:ice" => Some(Item::Ice), + "minecraft:snow_block" => Some(Item::SnowBlock), + "minecraft:cactus" => Some(Item::Cactus), + "minecraft:clay" => Some(Item::Clay), + "minecraft:jukebox" => Some(Item::Jukebox), + "minecraft:oak_fence" => Some(Item::OakFence), + "minecraft:spruce_fence" => Some(Item::SpruceFence), + "minecraft:birch_fence" => Some(Item::BirchFence), + "minecraft:jungle_fence" => Some(Item::JungleFence), + "minecraft:acacia_fence" => Some(Item::AcaciaFence), + "minecraft:dark_oak_fence" => Some(Item::DarkOakFence), + "minecraft:crimson_fence" => Some(Item::CrimsonFence), + "minecraft:warped_fence" => Some(Item::WarpedFence), + "minecraft:pumpkin" => Some(Item::Pumpkin), + "minecraft:carved_pumpkin" => Some(Item::CarvedPumpkin), + "minecraft:jack_o_lantern" => Some(Item::JackOLantern), + "minecraft:netherrack" => Some(Item::Netherrack), + "minecraft:soul_sand" => Some(Item::SoulSand), + "minecraft:soul_soil" => Some(Item::SoulSoil), + "minecraft:basalt" => Some(Item::Basalt), + "minecraft:polished_basalt" => Some(Item::PolishedBasalt), + "minecraft:smooth_basalt" => Some(Item::SmoothBasalt), + "minecraft:soul_torch" => Some(Item::SoulTorch), + "minecraft:glowstone" => Some(Item::Glowstone), + "minecraft:infested_stone" => Some(Item::InfestedStone), + "minecraft:infested_cobblestone" => Some(Item::InfestedCobblestone), + "minecraft:infested_stone_bricks" => Some(Item::InfestedStoneBricks), + "minecraft:infested_mossy_stone_bricks" => Some(Item::InfestedMossyStoneBricks), + "minecraft:infested_cracked_stone_bricks" => Some(Item::InfestedCrackedStoneBricks), + "minecraft:infested_chiseled_stone_bricks" => Some(Item::InfestedChiseledStoneBricks), + "minecraft:infested_deepslate" => Some(Item::InfestedDeepslate), + "minecraft:stone_bricks" => Some(Item::StoneBricks), + "minecraft:mossy_stone_bricks" => Some(Item::MossyStoneBricks), + "minecraft:cracked_stone_bricks" => Some(Item::CrackedStoneBricks), + "minecraft:chiseled_stone_bricks" => Some(Item::ChiseledStoneBricks), + "minecraft:deepslate_bricks" => Some(Item::DeepslateBricks), + "minecraft:cracked_deepslate_bricks" => Some(Item::CrackedDeepslateBricks), + "minecraft:deepslate_tiles" => Some(Item::DeepslateTiles), + "minecraft:cracked_deepslate_tiles" => Some(Item::CrackedDeepslateTiles), + "minecraft:chiseled_deepslate" => Some(Item::ChiseledDeepslate), + "minecraft:brown_mushroom_block" => Some(Item::BrownMushroomBlock), + "minecraft:red_mushroom_block" => Some(Item::RedMushroomBlock), + "minecraft:mushroom_stem" => Some(Item::MushroomStem), + "minecraft:iron_bars" => Some(Item::IronBars), + "minecraft:chain" => Some(Item::Chain), + "minecraft:glass_pane" => Some(Item::GlassPane), + "minecraft:melon" => Some(Item::Melon), + "minecraft:vine" => Some(Item::Vine), + "minecraft:glow_lichen" => Some(Item::GlowLichen), + "minecraft:brick_stairs" => Some(Item::BrickStairs), + "minecraft:stone_brick_stairs" => Some(Item::StoneBrickStairs), + "minecraft:mycelium" => Some(Item::Mycelium), + "minecraft:lily_pad" => Some(Item::LilyPad), + "minecraft:nether_bricks" => Some(Item::NetherBricks), + "minecraft:cracked_nether_bricks" => Some(Item::CrackedNetherBricks), + "minecraft:chiseled_nether_bricks" => Some(Item::ChiseledNetherBricks), + "minecraft:nether_brick_fence" => Some(Item::NetherBrickFence), + "minecraft:nether_brick_stairs" => Some(Item::NetherBrickStairs), + "minecraft:enchanting_table" => Some(Item::EnchantingTable), + "minecraft:end_portal_frame" => Some(Item::EndPortalFrame), + "minecraft:end_stone" => Some(Item::EndStone), + "minecraft:end_stone_bricks" => Some(Item::EndStoneBricks), + "minecraft:dragon_egg" => Some(Item::DragonEgg), + "minecraft:sandstone_stairs" => Some(Item::SandstoneStairs), + "minecraft:ender_chest" => Some(Item::EnderChest), + "minecraft:emerald_block" => Some(Item::EmeraldBlock), + "minecraft:spruce_stairs" => Some(Item::SpruceStairs), + "minecraft:birch_stairs" => Some(Item::BirchStairs), + "minecraft:jungle_stairs" => Some(Item::JungleStairs), + "minecraft:crimson_stairs" => Some(Item::CrimsonStairs), + "minecraft:warped_stairs" => Some(Item::WarpedStairs), + "minecraft:command_block" => Some(Item::CommandBlock), + "minecraft:beacon" => Some(Item::Beacon), + "minecraft:cobblestone_wall" => Some(Item::CobblestoneWall), + "minecraft:mossy_cobblestone_wall" => Some(Item::MossyCobblestoneWall), + "minecraft:brick_wall" => Some(Item::BrickWall), + "minecraft:prismarine_wall" => Some(Item::PrismarineWall), + "minecraft:red_sandstone_wall" => Some(Item::RedSandstoneWall), + "minecraft:mossy_stone_brick_wall" => Some(Item::MossyStoneBrickWall), + "minecraft:granite_wall" => Some(Item::GraniteWall), + "minecraft:stone_brick_wall" => Some(Item::StoneBrickWall), + "minecraft:nether_brick_wall" => Some(Item::NetherBrickWall), + "minecraft:andesite_wall" => Some(Item::AndesiteWall), + "minecraft:red_nether_brick_wall" => Some(Item::RedNetherBrickWall), + "minecraft:sandstone_wall" => Some(Item::SandstoneWall), + "minecraft:end_stone_brick_wall" => Some(Item::EndStoneBrickWall), + "minecraft:diorite_wall" => Some(Item::DioriteWall), + "minecraft:blackstone_wall" => Some(Item::BlackstoneWall), + "minecraft:polished_blackstone_wall" => Some(Item::PolishedBlackstoneWall), + "minecraft:polished_blackstone_brick_wall" => Some(Item::PolishedBlackstoneBrickWall), + "minecraft:cobbled_deepslate_wall" => Some(Item::CobbledDeepslateWall), + "minecraft:polished_deepslate_wall" => Some(Item::PolishedDeepslateWall), + "minecraft:deepslate_brick_wall" => Some(Item::DeepslateBrickWall), + "minecraft:deepslate_tile_wall" => Some(Item::DeepslateTileWall), + "minecraft:anvil" => Some(Item::Anvil), + "minecraft:chipped_anvil" => Some(Item::ChippedAnvil), + "minecraft:damaged_anvil" => Some(Item::DamagedAnvil), + "minecraft:chiseled_quartz_block" => Some(Item::ChiseledQuartzBlock), + "minecraft:quartz_block" => Some(Item::QuartzBlock), + "minecraft:quartz_bricks" => Some(Item::QuartzBricks), + "minecraft:quartz_pillar" => Some(Item::QuartzPillar), + "minecraft:quartz_stairs" => Some(Item::QuartzStairs), + "minecraft:white_terracotta" => Some(Item::WhiteTerracotta), + "minecraft:orange_terracotta" => Some(Item::OrangeTerracotta), + "minecraft:magenta_terracotta" => Some(Item::MagentaTerracotta), + "minecraft:light_blue_terracotta" => Some(Item::LightBlueTerracotta), + "minecraft:yellow_terracotta" => Some(Item::YellowTerracotta), + "minecraft:lime_terracotta" => Some(Item::LimeTerracotta), + "minecraft:pink_terracotta" => Some(Item::PinkTerracotta), + "minecraft:gray_terracotta" => Some(Item::GrayTerracotta), + "minecraft:light_gray_terracotta" => Some(Item::LightGrayTerracotta), + "minecraft:cyan_terracotta" => Some(Item::CyanTerracotta), + "minecraft:purple_terracotta" => Some(Item::PurpleTerracotta), + "minecraft:blue_terracotta" => Some(Item::BlueTerracotta), + "minecraft:brown_terracotta" => Some(Item::BrownTerracotta), + "minecraft:green_terracotta" => Some(Item::GreenTerracotta), + "minecraft:red_terracotta" => Some(Item::RedTerracotta), + "minecraft:black_terracotta" => Some(Item::BlackTerracotta), + "minecraft:barrier" => Some(Item::Barrier), + "minecraft:light" => Some(Item::Light), + "minecraft:hay_block" => Some(Item::HayBlock), + "minecraft:white_carpet" => Some(Item::WhiteCarpet), + "minecraft:orange_carpet" => Some(Item::OrangeCarpet), + "minecraft:magenta_carpet" => Some(Item::MagentaCarpet), + "minecraft:light_blue_carpet" => Some(Item::LightBlueCarpet), + "minecraft:yellow_carpet" => Some(Item::YellowCarpet), + "minecraft:lime_carpet" => Some(Item::LimeCarpet), + "minecraft:pink_carpet" => Some(Item::PinkCarpet), + "minecraft:gray_carpet" => Some(Item::GrayCarpet), + "minecraft:light_gray_carpet" => Some(Item::LightGrayCarpet), + "minecraft:cyan_carpet" => Some(Item::CyanCarpet), + "minecraft:purple_carpet" => Some(Item::PurpleCarpet), + "minecraft:blue_carpet" => Some(Item::BlueCarpet), + "minecraft:brown_carpet" => Some(Item::BrownCarpet), + "minecraft:green_carpet" => Some(Item::GreenCarpet), + "minecraft:red_carpet" => Some(Item::RedCarpet), + "minecraft:black_carpet" => Some(Item::BlackCarpet), + "minecraft:terracotta" => Some(Item::Terracotta), + "minecraft:packed_ice" => Some(Item::PackedIce), + "minecraft:acacia_stairs" => Some(Item::AcaciaStairs), + "minecraft:dark_oak_stairs" => Some(Item::DarkOakStairs), + "minecraft:dirt_path" => Some(Item::DirtPath), + "minecraft:sunflower" => Some(Item::Sunflower), + "minecraft:lilac" => Some(Item::Lilac), + "minecraft:rose_bush" => Some(Item::RoseBush), + "minecraft:peony" => Some(Item::Peony), + "minecraft:tall_grass" => Some(Item::TallGrass), + "minecraft:large_fern" => Some(Item::LargeFern), + "minecraft:white_stained_glass" => Some(Item::WhiteStainedGlass), + "minecraft:orange_stained_glass" => Some(Item::OrangeStainedGlass), + "minecraft:magenta_stained_glass" => Some(Item::MagentaStainedGlass), + "minecraft:light_blue_stained_glass" => Some(Item::LightBlueStainedGlass), + "minecraft:yellow_stained_glass" => Some(Item::YellowStainedGlass), + "minecraft:lime_stained_glass" => Some(Item::LimeStainedGlass), + "minecraft:pink_stained_glass" => Some(Item::PinkStainedGlass), + "minecraft:gray_stained_glass" => Some(Item::GrayStainedGlass), + "minecraft:light_gray_stained_glass" => Some(Item::LightGrayStainedGlass), + "minecraft:cyan_stained_glass" => Some(Item::CyanStainedGlass), + "minecraft:purple_stained_glass" => Some(Item::PurpleStainedGlass), + "minecraft:blue_stained_glass" => Some(Item::BlueStainedGlass), + "minecraft:brown_stained_glass" => Some(Item::BrownStainedGlass), + "minecraft:green_stained_glass" => Some(Item::GreenStainedGlass), + "minecraft:red_stained_glass" => Some(Item::RedStainedGlass), + "minecraft:black_stained_glass" => Some(Item::BlackStainedGlass), + "minecraft:white_stained_glass_pane" => Some(Item::WhiteStainedGlassPane), + "minecraft:orange_stained_glass_pane" => Some(Item::OrangeStainedGlassPane), + "minecraft:magenta_stained_glass_pane" => Some(Item::MagentaStainedGlassPane), + "minecraft:light_blue_stained_glass_pane" => Some(Item::LightBlueStainedGlassPane), + "minecraft:yellow_stained_glass_pane" => Some(Item::YellowStainedGlassPane), + "minecraft:lime_stained_glass_pane" => Some(Item::LimeStainedGlassPane), + "minecraft:pink_stained_glass_pane" => Some(Item::PinkStainedGlassPane), + "minecraft:gray_stained_glass_pane" => Some(Item::GrayStainedGlassPane), + "minecraft:light_gray_stained_glass_pane" => Some(Item::LightGrayStainedGlassPane), + "minecraft:cyan_stained_glass_pane" => Some(Item::CyanStainedGlassPane), + "minecraft:purple_stained_glass_pane" => Some(Item::PurpleStainedGlassPane), + "minecraft:blue_stained_glass_pane" => Some(Item::BlueStainedGlassPane), + "minecraft:brown_stained_glass_pane" => Some(Item::BrownStainedGlassPane), + "minecraft:green_stained_glass_pane" => Some(Item::GreenStainedGlassPane), + "minecraft:red_stained_glass_pane" => Some(Item::RedStainedGlassPane), + "minecraft:black_stained_glass_pane" => Some(Item::BlackStainedGlassPane), + "minecraft:prismarine" => Some(Item::Prismarine), + "minecraft:prismarine_bricks" => Some(Item::PrismarineBricks), + "minecraft:dark_prismarine" => Some(Item::DarkPrismarine), + "minecraft:prismarine_stairs" => Some(Item::PrismarineStairs), + "minecraft:prismarine_brick_stairs" => Some(Item::PrismarineBrickStairs), + "minecraft:dark_prismarine_stairs" => Some(Item::DarkPrismarineStairs), + "minecraft:sea_lantern" => Some(Item::SeaLantern), + "minecraft:red_sandstone" => Some(Item::RedSandstone), + "minecraft:chiseled_red_sandstone" => Some(Item::ChiseledRedSandstone), + "minecraft:cut_red_sandstone" => Some(Item::CutRedSandstone), + "minecraft:red_sandstone_stairs" => Some(Item::RedSandstoneStairs), + "minecraft:repeating_command_block" => Some(Item::RepeatingCommandBlock), + "minecraft:chain_command_block" => Some(Item::ChainCommandBlock), + "minecraft:magma_block" => Some(Item::MagmaBlock), + "minecraft:nether_wart_block" => Some(Item::NetherWartBlock), + "minecraft:warped_wart_block" => Some(Item::WarpedWartBlock), + "minecraft:red_nether_bricks" => Some(Item::RedNetherBricks), + "minecraft:bone_block" => Some(Item::BoneBlock), + "minecraft:structure_void" => Some(Item::StructureVoid), + "minecraft:shulker_box" => Some(Item::ShulkerBox), + "minecraft:white_shulker_box" => Some(Item::WhiteShulkerBox), + "minecraft:orange_shulker_box" => Some(Item::OrangeShulkerBox), + "minecraft:magenta_shulker_box" => Some(Item::MagentaShulkerBox), + "minecraft:light_blue_shulker_box" => Some(Item::LightBlueShulkerBox), + "minecraft:yellow_shulker_box" => Some(Item::YellowShulkerBox), + "minecraft:lime_shulker_box" => Some(Item::LimeShulkerBox), + "minecraft:pink_shulker_box" => Some(Item::PinkShulkerBox), + "minecraft:gray_shulker_box" => Some(Item::GrayShulkerBox), + "minecraft:light_gray_shulker_box" => Some(Item::LightGrayShulkerBox), + "minecraft:cyan_shulker_box" => Some(Item::CyanShulkerBox), + "minecraft:purple_shulker_box" => Some(Item::PurpleShulkerBox), + "minecraft:blue_shulker_box" => Some(Item::BlueShulkerBox), + "minecraft:brown_shulker_box" => Some(Item::BrownShulkerBox), + "minecraft:green_shulker_box" => Some(Item::GreenShulkerBox), + "minecraft:red_shulker_box" => Some(Item::RedShulkerBox), + "minecraft:black_shulker_box" => Some(Item::BlackShulkerBox), + "minecraft:white_glazed_terracotta" => Some(Item::WhiteGlazedTerracotta), + "minecraft:orange_glazed_terracotta" => Some(Item::OrangeGlazedTerracotta), + "minecraft:magenta_glazed_terracotta" => Some(Item::MagentaGlazedTerracotta), + "minecraft:light_blue_glazed_terracotta" => Some(Item::LightBlueGlazedTerracotta), + "minecraft:yellow_glazed_terracotta" => Some(Item::YellowGlazedTerracotta), + "minecraft:lime_glazed_terracotta" => Some(Item::LimeGlazedTerracotta), + "minecraft:pink_glazed_terracotta" => Some(Item::PinkGlazedTerracotta), + "minecraft:gray_glazed_terracotta" => Some(Item::GrayGlazedTerracotta), + "minecraft:light_gray_glazed_terracotta" => Some(Item::LightGrayGlazedTerracotta), + "minecraft:cyan_glazed_terracotta" => Some(Item::CyanGlazedTerracotta), + "minecraft:purple_glazed_terracotta" => Some(Item::PurpleGlazedTerracotta), + "minecraft:blue_glazed_terracotta" => Some(Item::BlueGlazedTerracotta), + "minecraft:brown_glazed_terracotta" => Some(Item::BrownGlazedTerracotta), + "minecraft:green_glazed_terracotta" => Some(Item::GreenGlazedTerracotta), + "minecraft:red_glazed_terracotta" => Some(Item::RedGlazedTerracotta), + "minecraft:black_glazed_terracotta" => Some(Item::BlackGlazedTerracotta), + "minecraft:white_concrete" => Some(Item::WhiteConcrete), + "minecraft:orange_concrete" => Some(Item::OrangeConcrete), + "minecraft:magenta_concrete" => Some(Item::MagentaConcrete), + "minecraft:light_blue_concrete" => Some(Item::LightBlueConcrete), + "minecraft:yellow_concrete" => Some(Item::YellowConcrete), + "minecraft:lime_concrete" => Some(Item::LimeConcrete), + "minecraft:pink_concrete" => Some(Item::PinkConcrete), + "minecraft:gray_concrete" => Some(Item::GrayConcrete), + "minecraft:light_gray_concrete" => Some(Item::LightGrayConcrete), + "minecraft:cyan_concrete" => Some(Item::CyanConcrete), + "minecraft:purple_concrete" => Some(Item::PurpleConcrete), + "minecraft:blue_concrete" => Some(Item::BlueConcrete), + "minecraft:brown_concrete" => Some(Item::BrownConcrete), + "minecraft:green_concrete" => Some(Item::GreenConcrete), + "minecraft:red_concrete" => Some(Item::RedConcrete), + "minecraft:black_concrete" => Some(Item::BlackConcrete), + "minecraft:white_concrete_powder" => Some(Item::WhiteConcretePowder), + "minecraft:orange_concrete_powder" => Some(Item::OrangeConcretePowder), + "minecraft:magenta_concrete_powder" => Some(Item::MagentaConcretePowder), + "minecraft:light_blue_concrete_powder" => Some(Item::LightBlueConcretePowder), + "minecraft:yellow_concrete_powder" => Some(Item::YellowConcretePowder), + "minecraft:lime_concrete_powder" => Some(Item::LimeConcretePowder), + "minecraft:pink_concrete_powder" => Some(Item::PinkConcretePowder), + "minecraft:gray_concrete_powder" => Some(Item::GrayConcretePowder), + "minecraft:light_gray_concrete_powder" => Some(Item::LightGrayConcretePowder), + "minecraft:cyan_concrete_powder" => Some(Item::CyanConcretePowder), + "minecraft:purple_concrete_powder" => Some(Item::PurpleConcretePowder), + "minecraft:blue_concrete_powder" => Some(Item::BlueConcretePowder), + "minecraft:brown_concrete_powder" => Some(Item::BrownConcretePowder), + "minecraft:green_concrete_powder" => Some(Item::GreenConcretePowder), + "minecraft:red_concrete_powder" => Some(Item::RedConcretePowder), + "minecraft:black_concrete_powder" => Some(Item::BlackConcretePowder), + "minecraft:turtle_egg" => Some(Item::TurtleEgg), + "minecraft:dead_tube_coral_block" => Some(Item::DeadTubeCoralBlock), + "minecraft:dead_brain_coral_block" => Some(Item::DeadBrainCoralBlock), + "minecraft:dead_bubble_coral_block" => Some(Item::DeadBubbleCoralBlock), + "minecraft:dead_fire_coral_block" => Some(Item::DeadFireCoralBlock), + "minecraft:dead_horn_coral_block" => Some(Item::DeadHornCoralBlock), + "minecraft:tube_coral_block" => Some(Item::TubeCoralBlock), + "minecraft:brain_coral_block" => Some(Item::BrainCoralBlock), + "minecraft:bubble_coral_block" => Some(Item::BubbleCoralBlock), + "minecraft:fire_coral_block" => Some(Item::FireCoralBlock), + "minecraft:horn_coral_block" => Some(Item::HornCoralBlock), + "minecraft:tube_coral" => Some(Item::TubeCoral), + "minecraft:brain_coral" => Some(Item::BrainCoral), + "minecraft:bubble_coral" => Some(Item::BubbleCoral), + "minecraft:fire_coral" => Some(Item::FireCoral), + "minecraft:horn_coral" => Some(Item::HornCoral), + "minecraft:dead_brain_coral" => Some(Item::DeadBrainCoral), + "minecraft:dead_bubble_coral" => Some(Item::DeadBubbleCoral), + "minecraft:dead_fire_coral" => Some(Item::DeadFireCoral), + "minecraft:dead_horn_coral" => Some(Item::DeadHornCoral), + "minecraft:dead_tube_coral" => Some(Item::DeadTubeCoral), + "minecraft:tube_coral_fan" => Some(Item::TubeCoralFan), + "minecraft:brain_coral_fan" => Some(Item::BrainCoralFan), + "minecraft:bubble_coral_fan" => Some(Item::BubbleCoralFan), + "minecraft:fire_coral_fan" => Some(Item::FireCoralFan), + "minecraft:horn_coral_fan" => Some(Item::HornCoralFan), + "minecraft:dead_tube_coral_fan" => Some(Item::DeadTubeCoralFan), + "minecraft:dead_brain_coral_fan" => Some(Item::DeadBrainCoralFan), + "minecraft:dead_bubble_coral_fan" => Some(Item::DeadBubbleCoralFan), + "minecraft:dead_fire_coral_fan" => Some(Item::DeadFireCoralFan), + "minecraft:dead_horn_coral_fan" => Some(Item::DeadHornCoralFan), + "minecraft:blue_ice" => Some(Item::BlueIce), + "minecraft:conduit" => Some(Item::Conduit), + "minecraft:polished_granite_stairs" => Some(Item::PolishedGraniteStairs), + "minecraft:smooth_red_sandstone_stairs" => Some(Item::SmoothRedSandstoneStairs), + "minecraft:mossy_stone_brick_stairs" => Some(Item::MossyStoneBrickStairs), + "minecraft:polished_diorite_stairs" => Some(Item::PolishedDioriteStairs), + "minecraft:mossy_cobblestone_stairs" => Some(Item::MossyCobblestoneStairs), + "minecraft:end_stone_brick_stairs" => Some(Item::EndStoneBrickStairs), + "minecraft:stone_stairs" => Some(Item::StoneStairs), + "minecraft:smooth_sandstone_stairs" => Some(Item::SmoothSandstoneStairs), + "minecraft:smooth_quartz_stairs" => Some(Item::SmoothQuartzStairs), + "minecraft:granite_stairs" => Some(Item::GraniteStairs), + "minecraft:andesite_stairs" => Some(Item::AndesiteStairs), + "minecraft:red_nether_brick_stairs" => Some(Item::RedNetherBrickStairs), + "minecraft:polished_andesite_stairs" => Some(Item::PolishedAndesiteStairs), + "minecraft:diorite_stairs" => Some(Item::DioriteStairs), + "minecraft:cobbled_deepslate_stairs" => Some(Item::CobbledDeepslateStairs), + "minecraft:polished_deepslate_stairs" => Some(Item::PolishedDeepslateStairs), + "minecraft:deepslate_brick_stairs" => Some(Item::DeepslateBrickStairs), + "minecraft:deepslate_tile_stairs" => Some(Item::DeepslateTileStairs), + "minecraft:polished_granite_slab" => Some(Item::PolishedGraniteSlab), + "minecraft:smooth_red_sandstone_slab" => Some(Item::SmoothRedSandstoneSlab), + "minecraft:mossy_stone_brick_slab" => Some(Item::MossyStoneBrickSlab), + "minecraft:polished_diorite_slab" => Some(Item::PolishedDioriteSlab), + "minecraft:mossy_cobblestone_slab" => Some(Item::MossyCobblestoneSlab), + "minecraft:end_stone_brick_slab" => Some(Item::EndStoneBrickSlab), + "minecraft:smooth_sandstone_slab" => Some(Item::SmoothSandstoneSlab), + "minecraft:smooth_quartz_slab" => Some(Item::SmoothQuartzSlab), + "minecraft:granite_slab" => Some(Item::GraniteSlab), + "minecraft:andesite_slab" => Some(Item::AndesiteSlab), + "minecraft:red_nether_brick_slab" => Some(Item::RedNetherBrickSlab), + "minecraft:polished_andesite_slab" => Some(Item::PolishedAndesiteSlab), + "minecraft:diorite_slab" => Some(Item::DioriteSlab), + "minecraft:cobbled_deepslate_slab" => Some(Item::CobbledDeepslateSlab), + "minecraft:polished_deepslate_slab" => Some(Item::PolishedDeepslateSlab), + "minecraft:deepslate_brick_slab" => Some(Item::DeepslateBrickSlab), + "minecraft:deepslate_tile_slab" => Some(Item::DeepslateTileSlab), + "minecraft:scaffolding" => Some(Item::Scaffolding), + "minecraft:redstone" => Some(Item::Redstone), + "minecraft:redstone_torch" => Some(Item::RedstoneTorch), + "minecraft:redstone_block" => Some(Item::RedstoneBlock), + "minecraft:repeater" => Some(Item::Repeater), + "minecraft:comparator" => Some(Item::Comparator), + "minecraft:piston" => Some(Item::Piston), + "minecraft:sticky_piston" => Some(Item::StickyPiston), + "minecraft:slime_block" => Some(Item::SlimeBlock), + "minecraft:honey_block" => Some(Item::HoneyBlock), + "minecraft:observer" => Some(Item::Observer), + "minecraft:hopper" => Some(Item::Hopper), + "minecraft:dispenser" => Some(Item::Dispenser), + "minecraft:dropper" => Some(Item::Dropper), + "minecraft:lectern" => Some(Item::Lectern), + "minecraft:target" => Some(Item::Target), + "minecraft:lever" => Some(Item::Lever), + "minecraft:lightning_rod" => Some(Item::LightningRod), + "minecraft:daylight_detector" => Some(Item::DaylightDetector), + "minecraft:sculk_sensor" => Some(Item::SculkSensor), + "minecraft:tripwire_hook" => Some(Item::TripwireHook), + "minecraft:trapped_chest" => Some(Item::TrappedChest), + "minecraft:tnt" => Some(Item::Tnt), + "minecraft:redstone_lamp" => Some(Item::RedstoneLamp), + "minecraft:note_block" => Some(Item::NoteBlock), + "minecraft:stone_button" => Some(Item::StoneButton), + "minecraft:polished_blackstone_button" => Some(Item::PolishedBlackstoneButton), + "minecraft:oak_button" => Some(Item::OakButton), + "minecraft:spruce_button" => Some(Item::SpruceButton), + "minecraft:birch_button" => Some(Item::BirchButton), + "minecraft:jungle_button" => Some(Item::JungleButton), + "minecraft:acacia_button" => Some(Item::AcaciaButton), + "minecraft:dark_oak_button" => Some(Item::DarkOakButton), + "minecraft:crimson_button" => Some(Item::CrimsonButton), + "minecraft:warped_button" => Some(Item::WarpedButton), + "minecraft:stone_pressure_plate" => Some(Item::StonePressurePlate), + "minecraft:polished_blackstone_pressure_plate" => { + Some(Item::PolishedBlackstonePressurePlate) + } + "minecraft:light_weighted_pressure_plate" => Some(Item::LightWeightedPressurePlate), + "minecraft:heavy_weighted_pressure_plate" => Some(Item::HeavyWeightedPressurePlate), + "minecraft:oak_pressure_plate" => Some(Item::OakPressurePlate), + "minecraft:spruce_pressure_plate" => Some(Item::SprucePressurePlate), + "minecraft:birch_pressure_plate" => Some(Item::BirchPressurePlate), + "minecraft:jungle_pressure_plate" => Some(Item::JunglePressurePlate), + "minecraft:acacia_pressure_plate" => Some(Item::AcaciaPressurePlate), + "minecraft:dark_oak_pressure_plate" => Some(Item::DarkOakPressurePlate), + "minecraft:crimson_pressure_plate" => Some(Item::CrimsonPressurePlate), + "minecraft:warped_pressure_plate" => Some(Item::WarpedPressurePlate), + "minecraft:iron_door" => Some(Item::IronDoor), + "minecraft:oak_door" => Some(Item::OakDoor), + "minecraft:spruce_door" => Some(Item::SpruceDoor), + "minecraft:birch_door" => Some(Item::BirchDoor), + "minecraft:jungle_door" => Some(Item::JungleDoor), + "minecraft:acacia_door" => Some(Item::AcaciaDoor), + "minecraft:dark_oak_door" => Some(Item::DarkOakDoor), + "minecraft:crimson_door" => Some(Item::CrimsonDoor), + "minecraft:warped_door" => Some(Item::WarpedDoor), + "minecraft:iron_trapdoor" => Some(Item::IronTrapdoor), + "minecraft:oak_trapdoor" => Some(Item::OakTrapdoor), + "minecraft:spruce_trapdoor" => Some(Item::SpruceTrapdoor), + "minecraft:birch_trapdoor" => Some(Item::BirchTrapdoor), + "minecraft:jungle_trapdoor" => Some(Item::JungleTrapdoor), + "minecraft:acacia_trapdoor" => Some(Item::AcaciaTrapdoor), + "minecraft:dark_oak_trapdoor" => Some(Item::DarkOakTrapdoor), + "minecraft:crimson_trapdoor" => Some(Item::CrimsonTrapdoor), + "minecraft:warped_trapdoor" => Some(Item::WarpedTrapdoor), + "minecraft:oak_fence_gate" => Some(Item::OakFenceGate), + "minecraft:spruce_fence_gate" => Some(Item::SpruceFenceGate), + "minecraft:birch_fence_gate" => Some(Item::BirchFenceGate), + "minecraft:jungle_fence_gate" => Some(Item::JungleFenceGate), + "minecraft:acacia_fence_gate" => Some(Item::AcaciaFenceGate), + "minecraft:dark_oak_fence_gate" => Some(Item::DarkOakFenceGate), + "minecraft:crimson_fence_gate" => Some(Item::CrimsonFenceGate), + "minecraft:warped_fence_gate" => Some(Item::WarpedFenceGate), + "minecraft:powered_rail" => Some(Item::PoweredRail), + "minecraft:detector_rail" => Some(Item::DetectorRail), + "minecraft:rail" => Some(Item::Rail), + "minecraft:activator_rail" => Some(Item::ActivatorRail), + "minecraft:saddle" => Some(Item::Saddle), + "minecraft:minecart" => Some(Item::Minecart), + "minecraft:chest_minecart" => Some(Item::ChestMinecart), + "minecraft:furnace_minecart" => Some(Item::FurnaceMinecart), + "minecraft:tnt_minecart" => Some(Item::TntMinecart), + "minecraft:hopper_minecart" => Some(Item::HopperMinecart), + "minecraft:carrot_on_a_stick" => Some(Item::CarrotOnAStick), + "minecraft:warped_fungus_on_a_stick" => Some(Item::WarpedFungusOnAStick), + "minecraft:elytra" => Some(Item::Elytra), + "minecraft:oak_boat" => Some(Item::OakBoat), + "minecraft:spruce_boat" => Some(Item::SpruceBoat), + "minecraft:birch_boat" => Some(Item::BirchBoat), + "minecraft:jungle_boat" => Some(Item::JungleBoat), + "minecraft:acacia_boat" => Some(Item::AcaciaBoat), + "minecraft:dark_oak_boat" => Some(Item::DarkOakBoat), + "minecraft:structure_block" => Some(Item::StructureBlock), + "minecraft:jigsaw" => Some(Item::Jigsaw), + "minecraft:turtle_helmet" => Some(Item::TurtleHelmet), + "minecraft:scute" => Some(Item::Scute), + "minecraft:flint_and_steel" => Some(Item::FlintAndSteel), + "minecraft:apple" => Some(Item::Apple), + "minecraft:bow" => Some(Item::Bow), + "minecraft:arrow" => Some(Item::Arrow), + "minecraft:coal" => Some(Item::Coal), + "minecraft:charcoal" => Some(Item::Charcoal), + "minecraft:diamond" => Some(Item::Diamond), + "minecraft:emerald" => Some(Item::Emerald), + "minecraft:lapis_lazuli" => Some(Item::LapisLazuli), + "minecraft:quartz" => Some(Item::Quartz), + "minecraft:amethyst_shard" => Some(Item::AmethystShard), + "minecraft:raw_iron" => Some(Item::RawIron), + "minecraft:iron_ingot" => Some(Item::IronIngot), + "minecraft:raw_copper" => Some(Item::RawCopper), + "minecraft:copper_ingot" => Some(Item::CopperIngot), + "minecraft:raw_gold" => Some(Item::RawGold), + "minecraft:gold_ingot" => Some(Item::GoldIngot), + "minecraft:netherite_ingot" => Some(Item::NetheriteIngot), + "minecraft:netherite_scrap" => Some(Item::NetheriteScrap), + "minecraft:wooden_sword" => Some(Item::WoodenSword), + "minecraft:wooden_shovel" => Some(Item::WoodenShovel), + "minecraft:wooden_pickaxe" => Some(Item::WoodenPickaxe), + "minecraft:wooden_axe" => Some(Item::WoodenAxe), + "minecraft:wooden_hoe" => Some(Item::WoodenHoe), + "minecraft:stone_sword" => Some(Item::StoneSword), + "minecraft:stone_shovel" => Some(Item::StoneShovel), + "minecraft:stone_pickaxe" => Some(Item::StonePickaxe), + "minecraft:stone_axe" => Some(Item::StoneAxe), + "minecraft:stone_hoe" => Some(Item::StoneHoe), + "minecraft:golden_sword" => Some(Item::GoldenSword), + "minecraft:golden_shovel" => Some(Item::GoldenShovel), + "minecraft:golden_pickaxe" => Some(Item::GoldenPickaxe), + "minecraft:golden_axe" => Some(Item::GoldenAxe), + "minecraft:golden_hoe" => Some(Item::GoldenHoe), + "minecraft:iron_sword" => Some(Item::IronSword), + "minecraft:iron_shovel" => Some(Item::IronShovel), + "minecraft:iron_pickaxe" => Some(Item::IronPickaxe), + "minecraft:iron_axe" => Some(Item::IronAxe), + "minecraft:iron_hoe" => Some(Item::IronHoe), + "minecraft:diamond_sword" => Some(Item::DiamondSword), + "minecraft:diamond_shovel" => Some(Item::DiamondShovel), + "minecraft:diamond_pickaxe" => Some(Item::DiamondPickaxe), + "minecraft:diamond_axe" => Some(Item::DiamondAxe), + "minecraft:diamond_hoe" => Some(Item::DiamondHoe), + "minecraft:netherite_sword" => Some(Item::NetheriteSword), + "minecraft:netherite_shovel" => Some(Item::NetheriteShovel), + "minecraft:netherite_pickaxe" => Some(Item::NetheritePickaxe), + "minecraft:netherite_axe" => Some(Item::NetheriteAxe), + "minecraft:netherite_hoe" => Some(Item::NetheriteHoe), + "minecraft:stick" => Some(Item::Stick), + "minecraft:bowl" => Some(Item::Bowl), + "minecraft:mushroom_stew" => Some(Item::MushroomStew), + "minecraft:string" => Some(Item::String), + "minecraft:feather" => Some(Item::Feather), + "minecraft:gunpowder" => Some(Item::Gunpowder), + "minecraft:wheat_seeds" => Some(Item::WheatSeeds), + "minecraft:wheat" => Some(Item::Wheat), + "minecraft:bread" => Some(Item::Bread), + "minecraft:leather_helmet" => Some(Item::LeatherHelmet), + "minecraft:leather_chestplate" => Some(Item::LeatherChestplate), + "minecraft:leather_leggings" => Some(Item::LeatherLeggings), + "minecraft:leather_boots" => Some(Item::LeatherBoots), + "minecraft:chainmail_helmet" => Some(Item::ChainmailHelmet), + "minecraft:chainmail_chestplate" => Some(Item::ChainmailChestplate), + "minecraft:chainmail_leggings" => Some(Item::ChainmailLeggings), + "minecraft:chainmail_boots" => Some(Item::ChainmailBoots), + "minecraft:iron_helmet" => Some(Item::IronHelmet), + "minecraft:iron_chestplate" => Some(Item::IronChestplate), + "minecraft:iron_leggings" => Some(Item::IronLeggings), + "minecraft:iron_boots" => Some(Item::IronBoots), + "minecraft:diamond_helmet" => Some(Item::DiamondHelmet), + "minecraft:diamond_chestplate" => Some(Item::DiamondChestplate), + "minecraft:diamond_leggings" => Some(Item::DiamondLeggings), + "minecraft:diamond_boots" => Some(Item::DiamondBoots), + "minecraft:golden_helmet" => Some(Item::GoldenHelmet), + "minecraft:golden_chestplate" => Some(Item::GoldenChestplate), + "minecraft:golden_leggings" => Some(Item::GoldenLeggings), + "minecraft:golden_boots" => Some(Item::GoldenBoots), + "minecraft:netherite_helmet" => Some(Item::NetheriteHelmet), + "minecraft:netherite_chestplate" => Some(Item::NetheriteChestplate), + "minecraft:netherite_leggings" => Some(Item::NetheriteLeggings), + "minecraft:netherite_boots" => Some(Item::NetheriteBoots), + "minecraft:flint" => Some(Item::Flint), + "minecraft:porkchop" => Some(Item::Porkchop), + "minecraft:cooked_porkchop" => Some(Item::CookedPorkchop), + "minecraft:painting" => Some(Item::Painting), + "minecraft:golden_apple" => Some(Item::GoldenApple), + "minecraft:enchanted_golden_apple" => Some(Item::EnchantedGoldenApple), + "minecraft:oak_sign" => Some(Item::OakSign), + "minecraft:spruce_sign" => Some(Item::SpruceSign), + "minecraft:birch_sign" => Some(Item::BirchSign), + "minecraft:jungle_sign" => Some(Item::JungleSign), + "minecraft:acacia_sign" => Some(Item::AcaciaSign), + "minecraft:dark_oak_sign" => Some(Item::DarkOakSign), + "minecraft:crimson_sign" => Some(Item::CrimsonSign), + "minecraft:warped_sign" => Some(Item::WarpedSign), + "minecraft:bucket" => Some(Item::Bucket), + "minecraft:water_bucket" => Some(Item::WaterBucket), + "minecraft:lava_bucket" => Some(Item::LavaBucket), + "minecraft:powder_snow_bucket" => Some(Item::PowderSnowBucket), + "minecraft:snowball" => Some(Item::Snowball), + "minecraft:leather" => Some(Item::Leather), + "minecraft:milk_bucket" => Some(Item::MilkBucket), + "minecraft:pufferfish_bucket" => Some(Item::PufferfishBucket), + "minecraft:salmon_bucket" => Some(Item::SalmonBucket), + "minecraft:cod_bucket" => Some(Item::CodBucket), + "minecraft:tropical_fish_bucket" => Some(Item::TropicalFishBucket), + "minecraft:axolotl_bucket" => Some(Item::AxolotlBucket), + "minecraft:brick" => Some(Item::Brick), + "minecraft:clay_ball" => Some(Item::ClayBall), + "minecraft:dried_kelp_block" => Some(Item::DriedKelpBlock), + "minecraft:paper" => Some(Item::Paper), + "minecraft:book" => Some(Item::Book), + "minecraft:slime_ball" => Some(Item::SlimeBall), + "minecraft:egg" => Some(Item::Egg), + "minecraft:compass" => Some(Item::Compass), + "minecraft:bundle" => Some(Item::Bundle), + "minecraft:fishing_rod" => Some(Item::FishingRod), + "minecraft:clock" => Some(Item::Clock), + "minecraft:spyglass" => Some(Item::Spyglass), + "minecraft:glowstone_dust" => Some(Item::GlowstoneDust), + "minecraft:cod" => Some(Item::Cod), + "minecraft:salmon" => Some(Item::Salmon), + "minecraft:tropical_fish" => Some(Item::TropicalFish), + "minecraft:pufferfish" => Some(Item::Pufferfish), + "minecraft:cooked_cod" => Some(Item::CookedCod), + "minecraft:cooked_salmon" => Some(Item::CookedSalmon), + "minecraft:ink_sac" => Some(Item::InkSac), + "minecraft:glow_ink_sac" => Some(Item::GlowInkSac), + "minecraft:cocoa_beans" => Some(Item::CocoaBeans), + "minecraft:white_dye" => Some(Item::WhiteDye), + "minecraft:orange_dye" => Some(Item::OrangeDye), + "minecraft:magenta_dye" => Some(Item::MagentaDye), + "minecraft:light_blue_dye" => Some(Item::LightBlueDye), + "minecraft:yellow_dye" => Some(Item::YellowDye), + "minecraft:lime_dye" => Some(Item::LimeDye), + "minecraft:pink_dye" => Some(Item::PinkDye), + "minecraft:gray_dye" => Some(Item::GrayDye), + "minecraft:light_gray_dye" => Some(Item::LightGrayDye), + "minecraft:cyan_dye" => Some(Item::CyanDye), + "minecraft:purple_dye" => Some(Item::PurpleDye), + "minecraft:blue_dye" => Some(Item::BlueDye), + "minecraft:brown_dye" => Some(Item::BrownDye), + "minecraft:green_dye" => Some(Item::GreenDye), + "minecraft:red_dye" => Some(Item::RedDye), + "minecraft:black_dye" => Some(Item::BlackDye), + "minecraft:bone_meal" => Some(Item::BoneMeal), + "minecraft:bone" => Some(Item::Bone), + "minecraft:sugar" => Some(Item::Sugar), + "minecraft:cake" => Some(Item::Cake), + "minecraft:white_bed" => Some(Item::WhiteBed), + "minecraft:orange_bed" => Some(Item::OrangeBed), + "minecraft:magenta_bed" => Some(Item::MagentaBed), + "minecraft:light_blue_bed" => Some(Item::LightBlueBed), + "minecraft:yellow_bed" => Some(Item::YellowBed), + "minecraft:lime_bed" => Some(Item::LimeBed), + "minecraft:pink_bed" => Some(Item::PinkBed), + "minecraft:gray_bed" => Some(Item::GrayBed), + "minecraft:light_gray_bed" => Some(Item::LightGrayBed), + "minecraft:cyan_bed" => Some(Item::CyanBed), + "minecraft:purple_bed" => Some(Item::PurpleBed), + "minecraft:blue_bed" => Some(Item::BlueBed), + "minecraft:brown_bed" => Some(Item::BrownBed), + "minecraft:green_bed" => Some(Item::GreenBed), + "minecraft:red_bed" => Some(Item::RedBed), + "minecraft:black_bed" => Some(Item::BlackBed), + "minecraft:cookie" => Some(Item::Cookie), + "minecraft:filled_map" => Some(Item::FilledMap), + "minecraft:shears" => Some(Item::Shears), + "minecraft:melon_slice" => Some(Item::MelonSlice), + "minecraft:dried_kelp" => Some(Item::DriedKelp), + "minecraft:pumpkin_seeds" => Some(Item::PumpkinSeeds), + "minecraft:melon_seeds" => Some(Item::MelonSeeds), + "minecraft:beef" => Some(Item::Beef), + "minecraft:cooked_beef" => Some(Item::CookedBeef), + "minecraft:chicken" => Some(Item::Chicken), + "minecraft:cooked_chicken" => Some(Item::CookedChicken), + "minecraft:rotten_flesh" => Some(Item::RottenFlesh), + "minecraft:ender_pearl" => Some(Item::EnderPearl), + "minecraft:blaze_rod" => Some(Item::BlazeRod), + "minecraft:ghast_tear" => Some(Item::GhastTear), + "minecraft:gold_nugget" => Some(Item::GoldNugget), + "minecraft:nether_wart" => Some(Item::NetherWart), + "minecraft:potion" => Some(Item::Potion), + "minecraft:glass_bottle" => Some(Item::GlassBottle), + "minecraft:spider_eye" => Some(Item::SpiderEye), + "minecraft:fermented_spider_eye" => Some(Item::FermentedSpiderEye), + "minecraft:blaze_powder" => Some(Item::BlazePowder), + "minecraft:magma_cream" => Some(Item::MagmaCream), + "minecraft:brewing_stand" => Some(Item::BrewingStand), + "minecraft:cauldron" => Some(Item::Cauldron), + "minecraft:ender_eye" => Some(Item::EnderEye), + "minecraft:glistering_melon_slice" => Some(Item::GlisteringMelonSlice), + "minecraft:axolotl_spawn_egg" => Some(Item::AxolotlSpawnEgg), + "minecraft:bat_spawn_egg" => Some(Item::BatSpawnEgg), + "minecraft:bee_spawn_egg" => Some(Item::BeeSpawnEgg), + "minecraft:blaze_spawn_egg" => Some(Item::BlazeSpawnEgg), + "minecraft:cat_spawn_egg" => Some(Item::CatSpawnEgg), + "minecraft:cave_spider_spawn_egg" => Some(Item::CaveSpiderSpawnEgg), + "minecraft:chicken_spawn_egg" => Some(Item::ChickenSpawnEgg), + "minecraft:cod_spawn_egg" => Some(Item::CodSpawnEgg), + "minecraft:cow_spawn_egg" => Some(Item::CowSpawnEgg), + "minecraft:creeper_spawn_egg" => Some(Item::CreeperSpawnEgg), + "minecraft:dolphin_spawn_egg" => Some(Item::DolphinSpawnEgg), + "minecraft:donkey_spawn_egg" => Some(Item::DonkeySpawnEgg), + "minecraft:drowned_spawn_egg" => Some(Item::DrownedSpawnEgg), + "minecraft:elder_guardian_spawn_egg" => Some(Item::ElderGuardianSpawnEgg), + "minecraft:enderman_spawn_egg" => Some(Item::EndermanSpawnEgg), + "minecraft:endermite_spawn_egg" => Some(Item::EndermiteSpawnEgg), + "minecraft:evoker_spawn_egg" => Some(Item::EvokerSpawnEgg), + "minecraft:fox_spawn_egg" => Some(Item::FoxSpawnEgg), + "minecraft:ghast_spawn_egg" => Some(Item::GhastSpawnEgg), + "minecraft:glow_squid_spawn_egg" => Some(Item::GlowSquidSpawnEgg), + "minecraft:goat_spawn_egg" => Some(Item::GoatSpawnEgg), + "minecraft:guardian_spawn_egg" => Some(Item::GuardianSpawnEgg), + "minecraft:hoglin_spawn_egg" => Some(Item::HoglinSpawnEgg), + "minecraft:horse_spawn_egg" => Some(Item::HorseSpawnEgg), + "minecraft:husk_spawn_egg" => Some(Item::HuskSpawnEgg), + "minecraft:llama_spawn_egg" => Some(Item::LlamaSpawnEgg), + "minecraft:magma_cube_spawn_egg" => Some(Item::MagmaCubeSpawnEgg), + "minecraft:mooshroom_spawn_egg" => Some(Item::MooshroomSpawnEgg), + "minecraft:mule_spawn_egg" => Some(Item::MuleSpawnEgg), + "minecraft:ocelot_spawn_egg" => Some(Item::OcelotSpawnEgg), + "minecraft:panda_spawn_egg" => Some(Item::PandaSpawnEgg), + "minecraft:parrot_spawn_egg" => Some(Item::ParrotSpawnEgg), + "minecraft:phantom_spawn_egg" => Some(Item::PhantomSpawnEgg), + "minecraft:pig_spawn_egg" => Some(Item::PigSpawnEgg), + "minecraft:piglin_spawn_egg" => Some(Item::PiglinSpawnEgg), + "minecraft:piglin_brute_spawn_egg" => Some(Item::PiglinBruteSpawnEgg), + "minecraft:pillager_spawn_egg" => Some(Item::PillagerSpawnEgg), + "minecraft:polar_bear_spawn_egg" => Some(Item::PolarBearSpawnEgg), + "minecraft:pufferfish_spawn_egg" => Some(Item::PufferfishSpawnEgg), + "minecraft:rabbit_spawn_egg" => Some(Item::RabbitSpawnEgg), + "minecraft:ravager_spawn_egg" => Some(Item::RavagerSpawnEgg), + "minecraft:salmon_spawn_egg" => Some(Item::SalmonSpawnEgg), + "minecraft:sheep_spawn_egg" => Some(Item::SheepSpawnEgg), + "minecraft:shulker_spawn_egg" => Some(Item::ShulkerSpawnEgg), + "minecraft:silverfish_spawn_egg" => Some(Item::SilverfishSpawnEgg), + "minecraft:skeleton_spawn_egg" => Some(Item::SkeletonSpawnEgg), + "minecraft:skeleton_horse_spawn_egg" => Some(Item::SkeletonHorseSpawnEgg), + "minecraft:slime_spawn_egg" => Some(Item::SlimeSpawnEgg), + "minecraft:spider_spawn_egg" => Some(Item::SpiderSpawnEgg), + "minecraft:squid_spawn_egg" => Some(Item::SquidSpawnEgg), + "minecraft:stray_spawn_egg" => Some(Item::StraySpawnEgg), + "minecraft:strider_spawn_egg" => Some(Item::StriderSpawnEgg), + "minecraft:trader_llama_spawn_egg" => Some(Item::TraderLlamaSpawnEgg), + "minecraft:tropical_fish_spawn_egg" => Some(Item::TropicalFishSpawnEgg), + "minecraft:turtle_spawn_egg" => Some(Item::TurtleSpawnEgg), + "minecraft:vex_spawn_egg" => Some(Item::VexSpawnEgg), + "minecraft:villager_spawn_egg" => Some(Item::VillagerSpawnEgg), + "minecraft:vindicator_spawn_egg" => Some(Item::VindicatorSpawnEgg), + "minecraft:wandering_trader_spawn_egg" => Some(Item::WanderingTraderSpawnEgg), + "minecraft:witch_spawn_egg" => Some(Item::WitchSpawnEgg), + "minecraft:wither_skeleton_spawn_egg" => Some(Item::WitherSkeletonSpawnEgg), + "minecraft:wolf_spawn_egg" => Some(Item::WolfSpawnEgg), + "minecraft:zoglin_spawn_egg" => Some(Item::ZoglinSpawnEgg), + "minecraft:zombie_spawn_egg" => Some(Item::ZombieSpawnEgg), + "minecraft:zombie_horse_spawn_egg" => Some(Item::ZombieHorseSpawnEgg), + "minecraft:zombie_villager_spawn_egg" => Some(Item::ZombieVillagerSpawnEgg), + "minecraft:zombified_piglin_spawn_egg" => Some(Item::ZombifiedPiglinSpawnEgg), + "minecraft:experience_bottle" => Some(Item::ExperienceBottle), + "minecraft:fire_charge" => Some(Item::FireCharge), + "minecraft:writable_book" => Some(Item::WritableBook), + "minecraft:written_book" => Some(Item::WrittenBook), + "minecraft:item_frame" => Some(Item::ItemFrame), + "minecraft:glow_item_frame" => Some(Item::GlowItemFrame), + "minecraft:flower_pot" => Some(Item::FlowerPot), + "minecraft:carrot" => Some(Item::Carrot), + "minecraft:potato" => Some(Item::Potato), + "minecraft:baked_potato" => Some(Item::BakedPotato), + "minecraft:poisonous_potato" => Some(Item::PoisonousPotato), + "minecraft:map" => Some(Item::Map), + "minecraft:golden_carrot" => Some(Item::GoldenCarrot), + "minecraft:skeleton_skull" => Some(Item::SkeletonSkull), + "minecraft:wither_skeleton_skull" => Some(Item::WitherSkeletonSkull), + "minecraft:player_head" => Some(Item::PlayerHead), + "minecraft:zombie_head" => Some(Item::ZombieHead), + "minecraft:creeper_head" => Some(Item::CreeperHead), + "minecraft:dragon_head" => Some(Item::DragonHead), + "minecraft:nether_star" => Some(Item::NetherStar), + "minecraft:pumpkin_pie" => Some(Item::PumpkinPie), + "minecraft:firework_rocket" => Some(Item::FireworkRocket), + "minecraft:firework_star" => Some(Item::FireworkStar), + "minecraft:enchanted_book" => Some(Item::EnchantedBook), + "minecraft:nether_brick" => Some(Item::NetherBrick), + "minecraft:prismarine_shard" => Some(Item::PrismarineShard), + "minecraft:prismarine_crystals" => Some(Item::PrismarineCrystals), + "minecraft:rabbit" => Some(Item::Rabbit), + "minecraft:cooked_rabbit" => Some(Item::CookedRabbit), + "minecraft:rabbit_stew" => Some(Item::RabbitStew), + "minecraft:rabbit_foot" => Some(Item::RabbitFoot), + "minecraft:rabbit_hide" => Some(Item::RabbitHide), + "minecraft:armor_stand" => Some(Item::ArmorStand), + "minecraft:iron_horse_armor" => Some(Item::IronHorseArmor), + "minecraft:golden_horse_armor" => Some(Item::GoldenHorseArmor), + "minecraft:diamond_horse_armor" => Some(Item::DiamondHorseArmor), + "minecraft:leather_horse_armor" => Some(Item::LeatherHorseArmor), + "minecraft:lead" => Some(Item::Lead), + "minecraft:name_tag" => Some(Item::NameTag), + "minecraft:command_block_minecart" => Some(Item::CommandBlockMinecart), + "minecraft:mutton" => Some(Item::Mutton), + "minecraft:cooked_mutton" => Some(Item::CookedMutton), + "minecraft:white_banner" => Some(Item::WhiteBanner), + "minecraft:orange_banner" => Some(Item::OrangeBanner), + "minecraft:magenta_banner" => Some(Item::MagentaBanner), + "minecraft:light_blue_banner" => Some(Item::LightBlueBanner), + "minecraft:yellow_banner" => Some(Item::YellowBanner), + "minecraft:lime_banner" => Some(Item::LimeBanner), + "minecraft:pink_banner" => Some(Item::PinkBanner), + "minecraft:gray_banner" => Some(Item::GrayBanner), + "minecraft:light_gray_banner" => Some(Item::LightGrayBanner), + "minecraft:cyan_banner" => Some(Item::CyanBanner), + "minecraft:purple_banner" => Some(Item::PurpleBanner), + "minecraft:blue_banner" => Some(Item::BlueBanner), + "minecraft:brown_banner" => Some(Item::BrownBanner), + "minecraft:green_banner" => Some(Item::GreenBanner), + "minecraft:red_banner" => Some(Item::RedBanner), + "minecraft:black_banner" => Some(Item::BlackBanner), + "minecraft:end_crystal" => Some(Item::EndCrystal), + "minecraft:chorus_fruit" => Some(Item::ChorusFruit), + "minecraft:popped_chorus_fruit" => Some(Item::PoppedChorusFruit), + "minecraft:beetroot" => Some(Item::Beetroot), + "minecraft:beetroot_seeds" => Some(Item::BeetrootSeeds), + "minecraft:beetroot_soup" => Some(Item::BeetrootSoup), + "minecraft:dragon_breath" => Some(Item::DragonBreath), + "minecraft:splash_potion" => Some(Item::SplashPotion), + "minecraft:spectral_arrow" => Some(Item::SpectralArrow), + "minecraft:tipped_arrow" => Some(Item::TippedArrow), + "minecraft:lingering_potion" => Some(Item::LingeringPotion), + "minecraft:shield" => Some(Item::Shield), + "minecraft:totem_of_undying" => Some(Item::TotemOfUndying), + "minecraft:shulker_shell" => Some(Item::ShulkerShell), + "minecraft:iron_nugget" => Some(Item::IronNugget), + "minecraft:knowledge_book" => Some(Item::KnowledgeBook), + "minecraft:debug_stick" => Some(Item::DebugStick), + "minecraft:music_disc_13" => Some(Item::MusicDisc13), + "minecraft:music_disc_cat" => Some(Item::MusicDiscCat), + "minecraft:music_disc_blocks" => Some(Item::MusicDiscBlocks), + "minecraft:music_disc_chirp" => Some(Item::MusicDiscChirp), + "minecraft:music_disc_far" => Some(Item::MusicDiscFar), + "minecraft:music_disc_mall" => Some(Item::MusicDiscMall), + "minecraft:music_disc_mellohi" => Some(Item::MusicDiscMellohi), + "minecraft:music_disc_stal" => Some(Item::MusicDiscStal), + "minecraft:music_disc_strad" => Some(Item::MusicDiscStrad), + "minecraft:music_disc_ward" => Some(Item::MusicDiscWard), + "minecraft:music_disc_11" => Some(Item::MusicDisc11), + "minecraft:music_disc_wait" => Some(Item::MusicDiscWait), + "minecraft:music_disc_otherside" => Some(Item::MusicDiscOtherside), + "minecraft:music_disc_pigstep" => Some(Item::MusicDiscPigstep), + "minecraft:trident" => Some(Item::Trident), + "minecraft:phantom_membrane" => Some(Item::PhantomMembrane), + "minecraft:nautilus_shell" => Some(Item::NautilusShell), + "minecraft:heart_of_the_sea" => Some(Item::HeartOfTheSea), + "minecraft:crossbow" => Some(Item::Crossbow), + "minecraft:suspicious_stew" => Some(Item::SuspiciousStew), + "minecraft:loom" => Some(Item::Loom), + "minecraft:flower_banner_pattern" => Some(Item::FlowerBannerPattern), + "minecraft:creeper_banner_pattern" => Some(Item::CreeperBannerPattern), + "minecraft:skull_banner_pattern" => Some(Item::SkullBannerPattern), + "minecraft:mojang_banner_pattern" => Some(Item::MojangBannerPattern), + "minecraft:globe_banner_pattern" => Some(Item::GlobeBannerPattern), + "minecraft:piglin_banner_pattern" => Some(Item::PiglinBannerPattern), + "minecraft:composter" => Some(Item::Composter), + "minecraft:barrel" => Some(Item::Barrel), + "minecraft:smoker" => Some(Item::Smoker), + "minecraft:blast_furnace" => Some(Item::BlastFurnace), + "minecraft:cartography_table" => Some(Item::CartographyTable), + "minecraft:fletching_table" => Some(Item::FletchingTable), + "minecraft:grindstone" => Some(Item::Grindstone), + "minecraft:smithing_table" => Some(Item::SmithingTable), + "minecraft:stonecutter" => Some(Item::Stonecutter), + "minecraft:bell" => Some(Item::Bell), + "minecraft:lantern" => Some(Item::Lantern), + "minecraft:soul_lantern" => Some(Item::SoulLantern), + "minecraft:sweet_berries" => Some(Item::SweetBerries), + "minecraft:glow_berries" => Some(Item::GlowBerries), + "minecraft:campfire" => Some(Item::Campfire), + "minecraft:soul_campfire" => Some(Item::SoulCampfire), + "minecraft:shroomlight" => Some(Item::Shroomlight), + "minecraft:honeycomb" => Some(Item::Honeycomb), + "minecraft:bee_nest" => Some(Item::BeeNest), + "minecraft:beehive" => Some(Item::Beehive), + "minecraft:honey_bottle" => Some(Item::HoneyBottle), + "minecraft:honeycomb_block" => Some(Item::HoneycombBlock), + "minecraft:lodestone" => Some(Item::Lodestone), + "minecraft:crying_obsidian" => Some(Item::CryingObsidian), + "minecraft:blackstone" => Some(Item::Blackstone), + "minecraft:blackstone_slab" => Some(Item::BlackstoneSlab), + "minecraft:blackstone_stairs" => Some(Item::BlackstoneStairs), + "minecraft:gilded_blackstone" => Some(Item::GildedBlackstone), + "minecraft:polished_blackstone" => Some(Item::PolishedBlackstone), + "minecraft:polished_blackstone_slab" => Some(Item::PolishedBlackstoneSlab), + "minecraft:polished_blackstone_stairs" => Some(Item::PolishedBlackstoneStairs), + "minecraft:chiseled_polished_blackstone" => Some(Item::ChiseledPolishedBlackstone), + "minecraft:polished_blackstone_bricks" => Some(Item::PolishedBlackstoneBricks), + "minecraft:polished_blackstone_brick_slab" => Some(Item::PolishedBlackstoneBrickSlab), + "minecraft:polished_blackstone_brick_stairs" => { + Some(Item::PolishedBlackstoneBrickStairs) + } + "minecraft:cracked_polished_blackstone_bricks" => { + Some(Item::CrackedPolishedBlackstoneBricks) + } + "minecraft:respawn_anchor" => Some(Item::RespawnAnchor), + "minecraft:candle" => Some(Item::Candle), + "minecraft:white_candle" => Some(Item::WhiteCandle), + "minecraft:orange_candle" => Some(Item::OrangeCandle), + "minecraft:magenta_candle" => Some(Item::MagentaCandle), + "minecraft:light_blue_candle" => Some(Item::LightBlueCandle), + "minecraft:yellow_candle" => Some(Item::YellowCandle), + "minecraft:lime_candle" => Some(Item::LimeCandle), + "minecraft:pink_candle" => Some(Item::PinkCandle), + "minecraft:gray_candle" => Some(Item::GrayCandle), + "minecraft:light_gray_candle" => Some(Item::LightGrayCandle), + "minecraft:cyan_candle" => Some(Item::CyanCandle), + "minecraft:purple_candle" => Some(Item::PurpleCandle), + "minecraft:blue_candle" => Some(Item::BlueCandle), + "minecraft:brown_candle" => Some(Item::BrownCandle), + "minecraft:green_candle" => Some(Item::GreenCandle), + "minecraft:red_candle" => Some(Item::RedCandle), + "minecraft:black_candle" => Some(Item::BlackCandle), + "minecraft:small_amethyst_bud" => Some(Item::SmallAmethystBud), + "minecraft:medium_amethyst_bud" => Some(Item::MediumAmethystBud), + "minecraft:large_amethyst_bud" => Some(Item::LargeAmethystBud), + "minecraft:amethyst_cluster" => Some(Item::AmethystCluster), + "minecraft:pointed_dripstone" => Some(Item::PointedDripstone), + _ => None, + } + } +} +impl Item { + #[doc = "Returns the `stack_size` property of this `Item`."] + #[inline] + pub fn stack_size(&self) -> u32 { + match self { + Item::Stone => 64, + Item::Granite => 64, + Item::PolishedGranite => 64, + Item::Diorite => 64, + Item::PolishedDiorite => 64, + Item::Andesite => 64, + Item::PolishedAndesite => 64, + Item::Deepslate => 64, + Item::CobbledDeepslate => 64, + Item::PolishedDeepslate => 64, + Item::Calcite => 64, + Item::Tuff => 64, + Item::DripstoneBlock => 64, + Item::GrassBlock => 64, + Item::Dirt => 64, + Item::CoarseDirt => 64, + Item::Podzol => 64, + Item::RootedDirt => 64, + Item::CrimsonNylium => 64, + Item::WarpedNylium => 64, + Item::Cobblestone => 64, + Item::OakPlanks => 64, + Item::SprucePlanks => 64, + Item::BirchPlanks => 64, + Item::JunglePlanks => 64, + Item::AcaciaPlanks => 64, + Item::DarkOakPlanks => 64, + Item::CrimsonPlanks => 64, + Item::WarpedPlanks => 64, + Item::OakSapling => 64, + Item::SpruceSapling => 64, + Item::BirchSapling => 64, + Item::JungleSapling => 64, + Item::AcaciaSapling => 64, + Item::DarkOakSapling => 64, + Item::Bedrock => 64, + Item::Sand => 64, + Item::RedSand => 64, + Item::Gravel => 64, + Item::CoalOre => 64, + Item::DeepslateCoalOre => 64, + Item::IronOre => 64, + Item::DeepslateIronOre => 64, + Item::CopperOre => 64, + Item::DeepslateCopperOre => 64, + Item::GoldOre => 64, + Item::DeepslateGoldOre => 64, + Item::RedstoneOre => 64, + Item::DeepslateRedstoneOre => 64, + Item::EmeraldOre => 64, + Item::DeepslateEmeraldOre => 64, + Item::LapisOre => 64, + Item::DeepslateLapisOre => 64, + Item::DiamondOre => 64, + Item::DeepslateDiamondOre => 64, + Item::NetherGoldOre => 64, + Item::NetherQuartzOre => 64, + Item::AncientDebris => 64, + Item::CoalBlock => 64, + Item::RawIronBlock => 64, + Item::RawCopperBlock => 64, + Item::RawGoldBlock => 64, + Item::AmethystBlock => 64, + Item::BuddingAmethyst => 64, + Item::IronBlock => 64, + Item::CopperBlock => 64, + Item::GoldBlock => 64, + Item::DiamondBlock => 64, + Item::NetheriteBlock => 64, + Item::ExposedCopper => 64, + Item::WeatheredCopper => 64, + Item::OxidizedCopper => 64, + Item::CutCopper => 64, + Item::ExposedCutCopper => 64, + Item::WeatheredCutCopper => 64, + Item::OxidizedCutCopper => 64, + Item::CutCopperStairs => 64, + Item::ExposedCutCopperStairs => 64, + Item::WeatheredCutCopperStairs => 64, + Item::OxidizedCutCopperStairs => 64, + Item::CutCopperSlab => 64, + Item::ExposedCutCopperSlab => 64, + Item::WeatheredCutCopperSlab => 64, + Item::OxidizedCutCopperSlab => 64, + Item::WaxedCopperBlock => 64, + Item::WaxedExposedCopper => 64, + Item::WaxedWeatheredCopper => 64, + Item::WaxedOxidizedCopper => 64, + Item::WaxedCutCopper => 64, + Item::WaxedExposedCutCopper => 64, + Item::WaxedWeatheredCutCopper => 64, + Item::WaxedOxidizedCutCopper => 64, + Item::WaxedCutCopperStairs => 64, + Item::WaxedExposedCutCopperStairs => 64, + Item::WaxedWeatheredCutCopperStairs => 64, + Item::WaxedOxidizedCutCopperStairs => 64, + Item::WaxedCutCopperSlab => 64, + Item::WaxedExposedCutCopperSlab => 64, + Item::WaxedWeatheredCutCopperSlab => 64, + Item::WaxedOxidizedCutCopperSlab => 64, + Item::OakLog => 64, + Item::SpruceLog => 64, + Item::BirchLog => 64, + Item::JungleLog => 64, + Item::AcaciaLog => 64, + Item::DarkOakLog => 64, + Item::CrimsonStem => 64, + Item::WarpedStem => 64, + Item::StrippedOakLog => 64, + Item::StrippedSpruceLog => 64, + Item::StrippedBirchLog => 64, + Item::StrippedJungleLog => 64, + Item::StrippedAcaciaLog => 64, + Item::StrippedDarkOakLog => 64, + Item::StrippedCrimsonStem => 64, + Item::StrippedWarpedStem => 64, + Item::StrippedOakWood => 64, + Item::StrippedSpruceWood => 64, + Item::StrippedBirchWood => 64, + Item::StrippedJungleWood => 64, + Item::StrippedAcaciaWood => 64, + Item::StrippedDarkOakWood => 64, + Item::StrippedCrimsonHyphae => 64, + Item::StrippedWarpedHyphae => 64, + Item::OakWood => 64, + Item::SpruceWood => 64, + Item::BirchWood => 64, + Item::JungleWood => 64, + Item::AcaciaWood => 64, + Item::DarkOakWood => 64, + Item::CrimsonHyphae => 64, + Item::WarpedHyphae => 64, + Item::OakLeaves => 64, + Item::SpruceLeaves => 64, + Item::BirchLeaves => 64, + Item::JungleLeaves => 64, + Item::AcaciaLeaves => 64, + Item::DarkOakLeaves => 64, + Item::AzaleaLeaves => 64, + Item::FloweringAzaleaLeaves => 64, + Item::Sponge => 64, + Item::WetSponge => 64, + Item::Glass => 64, + Item::TintedGlass => 64, + Item::LapisBlock => 64, + Item::Sandstone => 64, + Item::ChiseledSandstone => 64, + Item::CutSandstone => 64, + Item::Cobweb => 64, + Item::Grass => 64, + Item::Fern => 64, + Item::Azalea => 64, + Item::FloweringAzalea => 64, + Item::DeadBush => 64, + Item::Seagrass => 64, + Item::SeaPickle => 64, + Item::WhiteWool => 64, + Item::OrangeWool => 64, + Item::MagentaWool => 64, + Item::LightBlueWool => 64, + Item::YellowWool => 64, + Item::LimeWool => 64, + Item::PinkWool => 64, + Item::GrayWool => 64, + Item::LightGrayWool => 64, + Item::CyanWool => 64, + Item::PurpleWool => 64, + Item::BlueWool => 64, + Item::BrownWool => 64, + Item::GreenWool => 64, + Item::RedWool => 64, + Item::BlackWool => 64, + Item::Dandelion => 64, + Item::Poppy => 64, + Item::BlueOrchid => 64, + Item::Allium => 64, + Item::AzureBluet => 64, + Item::RedTulip => 64, + Item::OrangeTulip => 64, + Item::WhiteTulip => 64, + Item::PinkTulip => 64, + Item::OxeyeDaisy => 64, + Item::Cornflower => 64, + Item::LilyOfTheValley => 64, + Item::WitherRose => 64, + Item::SporeBlossom => 64, + Item::BrownMushroom => 64, + Item::RedMushroom => 64, + Item::CrimsonFungus => 64, + Item::WarpedFungus => 64, + Item::CrimsonRoots => 64, + Item::WarpedRoots => 64, + Item::NetherSprouts => 64, + Item::WeepingVines => 64, + Item::TwistingVines => 64, + Item::SugarCane => 64, + Item::Kelp => 64, + Item::MossCarpet => 64, + Item::MossBlock => 64, + Item::HangingRoots => 64, + Item::BigDripleaf => 64, + Item::SmallDripleaf => 64, + Item::Bamboo => 64, + Item::OakSlab => 64, + Item::SpruceSlab => 64, + Item::BirchSlab => 64, + Item::JungleSlab => 64, + Item::AcaciaSlab => 64, + Item::DarkOakSlab => 64, + Item::CrimsonSlab => 64, + Item::WarpedSlab => 64, + Item::StoneSlab => 64, + Item::SmoothStoneSlab => 64, + Item::SandstoneSlab => 64, + Item::CutSandstoneSlab => 64, + Item::PetrifiedOakSlab => 64, + Item::CobblestoneSlab => 64, + Item::BrickSlab => 64, + Item::StoneBrickSlab => 64, + Item::NetherBrickSlab => 64, + Item::QuartzSlab => 64, + Item::RedSandstoneSlab => 64, + Item::CutRedSandstoneSlab => 64, + Item::PurpurSlab => 64, + Item::PrismarineSlab => 64, + Item::PrismarineBrickSlab => 64, + Item::DarkPrismarineSlab => 64, + Item::SmoothQuartz => 64, + Item::SmoothRedSandstone => 64, + Item::SmoothSandstone => 64, + Item::SmoothStone => 64, + Item::Bricks => 64, + Item::Bookshelf => 64, + Item::MossyCobblestone => 64, + Item::Obsidian => 64, + Item::Torch => 64, + Item::EndRod => 64, + Item::ChorusPlant => 64, + Item::ChorusFlower => 64, + Item::PurpurBlock => 64, + Item::PurpurPillar => 64, + Item::PurpurStairs => 64, + Item::Spawner => 64, + Item::OakStairs => 64, + Item::Chest => 64, + Item::CraftingTable => 64, + Item::Farmland => 64, + Item::Furnace => 64, + Item::Ladder => 64, + Item::CobblestoneStairs => 64, + Item::Snow => 64, + Item::Ice => 64, + Item::SnowBlock => 64, + Item::Cactus => 64, + Item::Clay => 64, + Item::Jukebox => 64, + Item::OakFence => 64, + Item::SpruceFence => 64, + Item::BirchFence => 64, + Item::JungleFence => 64, + Item::AcaciaFence => 64, + Item::DarkOakFence => 64, + Item::CrimsonFence => 64, + Item::WarpedFence => 64, + Item::Pumpkin => 64, + Item::CarvedPumpkin => 64, + Item::JackOLantern => 64, + Item::Netherrack => 64, + Item::SoulSand => 64, + Item::SoulSoil => 64, + Item::Basalt => 64, + Item::PolishedBasalt => 64, + Item::SmoothBasalt => 64, + Item::SoulTorch => 64, + Item::Glowstone => 64, + Item::InfestedStone => 64, + Item::InfestedCobblestone => 64, + Item::InfestedStoneBricks => 64, + Item::InfestedMossyStoneBricks => 64, + Item::InfestedCrackedStoneBricks => 64, + Item::InfestedChiseledStoneBricks => 64, + Item::InfestedDeepslate => 64, + Item::StoneBricks => 64, + Item::MossyStoneBricks => 64, + Item::CrackedStoneBricks => 64, + Item::ChiseledStoneBricks => 64, + Item::DeepslateBricks => 64, + Item::CrackedDeepslateBricks => 64, + Item::DeepslateTiles => 64, + Item::CrackedDeepslateTiles => 64, + Item::ChiseledDeepslate => 64, + Item::BrownMushroomBlock => 64, + Item::RedMushroomBlock => 64, + Item::MushroomStem => 64, + Item::IronBars => 64, + Item::Chain => 64, + Item::GlassPane => 64, + Item::Melon => 64, + Item::Vine => 64, + Item::GlowLichen => 64, + Item::BrickStairs => 64, + Item::StoneBrickStairs => 64, + Item::Mycelium => 64, + Item::LilyPad => 64, + Item::NetherBricks => 64, + Item::CrackedNetherBricks => 64, + Item::ChiseledNetherBricks => 64, + Item::NetherBrickFence => 64, + Item::NetherBrickStairs => 64, + Item::EnchantingTable => 64, + Item::EndPortalFrame => 64, + Item::EndStone => 64, + Item::EndStoneBricks => 64, + Item::DragonEgg => 64, + Item::SandstoneStairs => 64, + Item::EnderChest => 64, + Item::EmeraldBlock => 64, + Item::SpruceStairs => 64, + Item::BirchStairs => 64, + Item::JungleStairs => 64, + Item::CrimsonStairs => 64, + Item::WarpedStairs => 64, + Item::CommandBlock => 64, + Item::Beacon => 64, + Item::CobblestoneWall => 64, + Item::MossyCobblestoneWall => 64, + Item::BrickWall => 64, + Item::PrismarineWall => 64, + Item::RedSandstoneWall => 64, + Item::MossyStoneBrickWall => 64, + Item::GraniteWall => 64, + Item::StoneBrickWall => 64, + Item::NetherBrickWall => 64, + Item::AndesiteWall => 64, + Item::RedNetherBrickWall => 64, + Item::SandstoneWall => 64, + Item::EndStoneBrickWall => 64, + Item::DioriteWall => 64, + Item::BlackstoneWall => 64, + Item::PolishedBlackstoneWall => 64, + Item::PolishedBlackstoneBrickWall => 64, + Item::CobbledDeepslateWall => 64, + Item::PolishedDeepslateWall => 64, + Item::DeepslateBrickWall => 64, + Item::DeepslateTileWall => 64, + Item::Anvil => 64, + Item::ChippedAnvil => 64, + Item::DamagedAnvil => 64, + Item::ChiseledQuartzBlock => 64, + Item::QuartzBlock => 64, + Item::QuartzBricks => 64, + Item::QuartzPillar => 64, + Item::QuartzStairs => 64, + Item::WhiteTerracotta => 64, + Item::OrangeTerracotta => 64, + Item::MagentaTerracotta => 64, + Item::LightBlueTerracotta => 64, + Item::YellowTerracotta => 64, + Item::LimeTerracotta => 64, + Item::PinkTerracotta => 64, + Item::GrayTerracotta => 64, + Item::LightGrayTerracotta => 64, + Item::CyanTerracotta => 64, + Item::PurpleTerracotta => 64, + Item::BlueTerracotta => 64, + Item::BrownTerracotta => 64, + Item::GreenTerracotta => 64, + Item::RedTerracotta => 64, + Item::BlackTerracotta => 64, + Item::Barrier => 64, + Item::Light => 64, + Item::HayBlock => 64, + Item::WhiteCarpet => 64, + Item::OrangeCarpet => 64, + Item::MagentaCarpet => 64, + Item::LightBlueCarpet => 64, + Item::YellowCarpet => 64, + Item::LimeCarpet => 64, + Item::PinkCarpet => 64, + Item::GrayCarpet => 64, + Item::LightGrayCarpet => 64, + Item::CyanCarpet => 64, + Item::PurpleCarpet => 64, + Item::BlueCarpet => 64, + Item::BrownCarpet => 64, + Item::GreenCarpet => 64, + Item::RedCarpet => 64, + Item::BlackCarpet => 64, + Item::Terracotta => 64, + Item::PackedIce => 64, + Item::AcaciaStairs => 64, + Item::DarkOakStairs => 64, + Item::DirtPath => 64, + Item::Sunflower => 64, + Item::Lilac => 64, + Item::RoseBush => 64, + Item::Peony => 64, + Item::TallGrass => 64, + Item::LargeFern => 64, + Item::WhiteStainedGlass => 64, + Item::OrangeStainedGlass => 64, + Item::MagentaStainedGlass => 64, + Item::LightBlueStainedGlass => 64, + Item::YellowStainedGlass => 64, + Item::LimeStainedGlass => 64, + Item::PinkStainedGlass => 64, + Item::GrayStainedGlass => 64, + Item::LightGrayStainedGlass => 64, + Item::CyanStainedGlass => 64, + Item::PurpleStainedGlass => 64, + Item::BlueStainedGlass => 64, + Item::BrownStainedGlass => 64, + Item::GreenStainedGlass => 64, + Item::RedStainedGlass => 64, + Item::BlackStainedGlass => 64, + Item::WhiteStainedGlassPane => 64, + Item::OrangeStainedGlassPane => 64, + Item::MagentaStainedGlassPane => 64, + Item::LightBlueStainedGlassPane => 64, + Item::YellowStainedGlassPane => 64, + Item::LimeStainedGlassPane => 64, + Item::PinkStainedGlassPane => 64, + Item::GrayStainedGlassPane => 64, + Item::LightGrayStainedGlassPane => 64, + Item::CyanStainedGlassPane => 64, + Item::PurpleStainedGlassPane => 64, + Item::BlueStainedGlassPane => 64, + Item::BrownStainedGlassPane => 64, + Item::GreenStainedGlassPane => 64, + Item::RedStainedGlassPane => 64, + Item::BlackStainedGlassPane => 64, + Item::Prismarine => 64, + Item::PrismarineBricks => 64, + Item::DarkPrismarine => 64, + Item::PrismarineStairs => 64, + Item::PrismarineBrickStairs => 64, + Item::DarkPrismarineStairs => 64, + Item::SeaLantern => 64, + Item::RedSandstone => 64, + Item::ChiseledRedSandstone => 64, + Item::CutRedSandstone => 64, + Item::RedSandstoneStairs => 64, + Item::RepeatingCommandBlock => 64, + Item::ChainCommandBlock => 64, + Item::MagmaBlock => 64, + Item::NetherWartBlock => 64, + Item::WarpedWartBlock => 64, + Item::RedNetherBricks => 64, + Item::BoneBlock => 64, + Item::StructureVoid => 64, + Item::ShulkerBox => 1, + Item::WhiteShulkerBox => 1, + Item::OrangeShulkerBox => 1, + Item::MagentaShulkerBox => 1, + Item::LightBlueShulkerBox => 1, + Item::YellowShulkerBox => 1, + Item::LimeShulkerBox => 1, + Item::PinkShulkerBox => 1, + Item::GrayShulkerBox => 1, + Item::LightGrayShulkerBox => 1, + Item::CyanShulkerBox => 1, + Item::PurpleShulkerBox => 1, + Item::BlueShulkerBox => 1, + Item::BrownShulkerBox => 1, + Item::GreenShulkerBox => 1, + Item::RedShulkerBox => 1, + Item::BlackShulkerBox => 1, + Item::WhiteGlazedTerracotta => 64, + Item::OrangeGlazedTerracotta => 64, + Item::MagentaGlazedTerracotta => 64, + Item::LightBlueGlazedTerracotta => 64, + Item::YellowGlazedTerracotta => 64, + Item::LimeGlazedTerracotta => 64, + Item::PinkGlazedTerracotta => 64, + Item::GrayGlazedTerracotta => 64, + Item::LightGrayGlazedTerracotta => 64, + Item::CyanGlazedTerracotta => 64, + Item::PurpleGlazedTerracotta => 64, + Item::BlueGlazedTerracotta => 64, + Item::BrownGlazedTerracotta => 64, + Item::GreenGlazedTerracotta => 64, + Item::RedGlazedTerracotta => 64, + Item::BlackGlazedTerracotta => 64, + Item::WhiteConcrete => 64, + Item::OrangeConcrete => 64, + Item::MagentaConcrete => 64, + Item::LightBlueConcrete => 64, + Item::YellowConcrete => 64, + Item::LimeConcrete => 64, + Item::PinkConcrete => 64, + Item::GrayConcrete => 64, + Item::LightGrayConcrete => 64, + Item::CyanConcrete => 64, + Item::PurpleConcrete => 64, + Item::BlueConcrete => 64, + Item::BrownConcrete => 64, + Item::GreenConcrete => 64, + Item::RedConcrete => 64, + Item::BlackConcrete => 64, + Item::WhiteConcretePowder => 64, + Item::OrangeConcretePowder => 64, + Item::MagentaConcretePowder => 64, + Item::LightBlueConcretePowder => 64, + Item::YellowConcretePowder => 64, + Item::LimeConcretePowder => 64, + Item::PinkConcretePowder => 64, + Item::GrayConcretePowder => 64, + Item::LightGrayConcretePowder => 64, + Item::CyanConcretePowder => 64, + Item::PurpleConcretePowder => 64, + Item::BlueConcretePowder => 64, + Item::BrownConcretePowder => 64, + Item::GreenConcretePowder => 64, + Item::RedConcretePowder => 64, + Item::BlackConcretePowder => 64, + Item::TurtleEgg => 64, + Item::DeadTubeCoralBlock => 64, + Item::DeadBrainCoralBlock => 64, + Item::DeadBubbleCoralBlock => 64, + Item::DeadFireCoralBlock => 64, + Item::DeadHornCoralBlock => 64, + Item::TubeCoralBlock => 64, + Item::BrainCoralBlock => 64, + Item::BubbleCoralBlock => 64, + Item::FireCoralBlock => 64, + Item::HornCoralBlock => 64, + Item::TubeCoral => 64, + Item::BrainCoral => 64, + Item::BubbleCoral => 64, + Item::FireCoral => 64, + Item::HornCoral => 64, + Item::DeadBrainCoral => 64, + Item::DeadBubbleCoral => 64, + Item::DeadFireCoral => 64, + Item::DeadHornCoral => 64, + Item::DeadTubeCoral => 64, + Item::TubeCoralFan => 64, + Item::BrainCoralFan => 64, + Item::BubbleCoralFan => 64, + Item::FireCoralFan => 64, + Item::HornCoralFan => 64, + Item::DeadTubeCoralFan => 64, + Item::DeadBrainCoralFan => 64, + Item::DeadBubbleCoralFan => 64, + Item::DeadFireCoralFan => 64, + Item::DeadHornCoralFan => 64, + Item::BlueIce => 64, + Item::Conduit => 64, + Item::PolishedGraniteStairs => 64, + Item::SmoothRedSandstoneStairs => 64, + Item::MossyStoneBrickStairs => 64, + Item::PolishedDioriteStairs => 64, + Item::MossyCobblestoneStairs => 64, + Item::EndStoneBrickStairs => 64, + Item::StoneStairs => 64, + Item::SmoothSandstoneStairs => 64, + Item::SmoothQuartzStairs => 64, + Item::GraniteStairs => 64, + Item::AndesiteStairs => 64, + Item::RedNetherBrickStairs => 64, + Item::PolishedAndesiteStairs => 64, + Item::DioriteStairs => 64, + Item::CobbledDeepslateStairs => 64, + Item::PolishedDeepslateStairs => 64, + Item::DeepslateBrickStairs => 64, + Item::DeepslateTileStairs => 64, + Item::PolishedGraniteSlab => 64, + Item::SmoothRedSandstoneSlab => 64, + Item::MossyStoneBrickSlab => 64, + Item::PolishedDioriteSlab => 64, + Item::MossyCobblestoneSlab => 64, + Item::EndStoneBrickSlab => 64, + Item::SmoothSandstoneSlab => 64, + Item::SmoothQuartzSlab => 64, + Item::GraniteSlab => 64, + Item::AndesiteSlab => 64, + Item::RedNetherBrickSlab => 64, + Item::PolishedAndesiteSlab => 64, + Item::DioriteSlab => 64, + Item::CobbledDeepslateSlab => 64, + Item::PolishedDeepslateSlab => 64, + Item::DeepslateBrickSlab => 64, + Item::DeepslateTileSlab => 64, + Item::Scaffolding => 64, + Item::Redstone => 64, + Item::RedstoneTorch => 64, + Item::RedstoneBlock => 64, + Item::Repeater => 64, + Item::Comparator => 64, + Item::Piston => 64, + Item::StickyPiston => 64, + Item::SlimeBlock => 64, + Item::HoneyBlock => 64, + Item::Observer => 64, + Item::Hopper => 64, + Item::Dispenser => 64, + Item::Dropper => 64, + Item::Lectern => 64, + Item::Target => 64, + Item::Lever => 64, + Item::LightningRod => 64, + Item::DaylightDetector => 64, + Item::SculkSensor => 64, + Item::TripwireHook => 64, + Item::TrappedChest => 64, + Item::Tnt => 64, + Item::RedstoneLamp => 64, + Item::NoteBlock => 64, + Item::StoneButton => 64, + Item::PolishedBlackstoneButton => 64, + Item::OakButton => 64, + Item::SpruceButton => 64, + Item::BirchButton => 64, + Item::JungleButton => 64, + Item::AcaciaButton => 64, + Item::DarkOakButton => 64, + Item::CrimsonButton => 64, + Item::WarpedButton => 64, + Item::StonePressurePlate => 64, + Item::PolishedBlackstonePressurePlate => 64, + Item::LightWeightedPressurePlate => 64, + Item::HeavyWeightedPressurePlate => 64, + Item::OakPressurePlate => 64, + Item::SprucePressurePlate => 64, + Item::BirchPressurePlate => 64, + Item::JunglePressurePlate => 64, + Item::AcaciaPressurePlate => 64, + Item::DarkOakPressurePlate => 64, + Item::CrimsonPressurePlate => 64, + Item::WarpedPressurePlate => 64, + Item::IronDoor => 64, + Item::OakDoor => 64, + Item::SpruceDoor => 64, + Item::BirchDoor => 64, + Item::JungleDoor => 64, + Item::AcaciaDoor => 64, + Item::DarkOakDoor => 64, + Item::CrimsonDoor => 64, + Item::WarpedDoor => 64, + Item::IronTrapdoor => 64, + Item::OakTrapdoor => 64, + Item::SpruceTrapdoor => 64, + Item::BirchTrapdoor => 64, + Item::JungleTrapdoor => 64, + Item::AcaciaTrapdoor => 64, + Item::DarkOakTrapdoor => 64, + Item::CrimsonTrapdoor => 64, + Item::WarpedTrapdoor => 64, + Item::OakFenceGate => 64, + Item::SpruceFenceGate => 64, + Item::BirchFenceGate => 64, + Item::JungleFenceGate => 64, + Item::AcaciaFenceGate => 64, + Item::DarkOakFenceGate => 64, + Item::CrimsonFenceGate => 64, + Item::WarpedFenceGate => 64, + Item::PoweredRail => 64, + Item::DetectorRail => 64, + Item::Rail => 64, + Item::ActivatorRail => 64, + Item::Saddle => 1, + Item::Minecart => 1, + Item::ChestMinecart => 1, + Item::FurnaceMinecart => 1, + Item::TntMinecart => 1, + Item::HopperMinecart => 1, + Item::CarrotOnAStick => 1, + Item::WarpedFungusOnAStick => 64, + Item::Elytra => 1, + Item::OakBoat => 1, + Item::SpruceBoat => 1, + Item::BirchBoat => 1, + Item::JungleBoat => 1, + Item::AcaciaBoat => 1, + Item::DarkOakBoat => 1, + Item::StructureBlock => 64, + Item::Jigsaw => 64, + Item::TurtleHelmet => 1, + Item::Scute => 64, + Item::FlintAndSteel => 1, + Item::Apple => 64, + Item::Bow => 1, + Item::Arrow => 64, + Item::Coal => 64, + Item::Charcoal => 64, + Item::Diamond => 64, + Item::Emerald => 64, + Item::LapisLazuli => 64, + Item::Quartz => 64, + Item::AmethystShard => 64, + Item::RawIron => 64, + Item::IronIngot => 64, + Item::RawCopper => 64, + Item::CopperIngot => 64, + Item::RawGold => 64, + Item::GoldIngot => 64, + Item::NetheriteIngot => 64, + Item::NetheriteScrap => 64, + Item::WoodenSword => 1, + Item::WoodenShovel => 1, + Item::WoodenPickaxe => 1, + Item::WoodenAxe => 1, + Item::WoodenHoe => 1, + Item::StoneSword => 1, + Item::StoneShovel => 1, + Item::StonePickaxe => 1, + Item::StoneAxe => 1, + Item::StoneHoe => 1, + Item::GoldenSword => 1, + Item::GoldenShovel => 1, + Item::GoldenPickaxe => 1, + Item::GoldenAxe => 1, + Item::GoldenHoe => 1, + Item::IronSword => 1, + Item::IronShovel => 1, + Item::IronPickaxe => 1, + Item::IronAxe => 1, + Item::IronHoe => 1, + Item::DiamondSword => 1, + Item::DiamondShovel => 1, + Item::DiamondPickaxe => 1, + Item::DiamondAxe => 1, + Item::DiamondHoe => 1, + Item::NetheriteSword => 1, + Item::NetheriteShovel => 1, + Item::NetheritePickaxe => 1, + Item::NetheriteAxe => 1, + Item::NetheriteHoe => 1, + Item::Stick => 64, + Item::Bowl => 64, + Item::MushroomStew => 1, + Item::String => 64, + Item::Feather => 64, + Item::Gunpowder => 64, + Item::WheatSeeds => 64, + Item::Wheat => 64, + Item::Bread => 64, + Item::LeatherHelmet => 1, + Item::LeatherChestplate => 1, + Item::LeatherLeggings => 1, + Item::LeatherBoots => 1, + Item::ChainmailHelmet => 1, + Item::ChainmailChestplate => 1, + Item::ChainmailLeggings => 1, + Item::ChainmailBoots => 1, + Item::IronHelmet => 1, + Item::IronChestplate => 1, + Item::IronLeggings => 1, + Item::IronBoots => 1, + Item::DiamondHelmet => 1, + Item::DiamondChestplate => 1, + Item::DiamondLeggings => 1, + Item::DiamondBoots => 1, + Item::GoldenHelmet => 1, + Item::GoldenChestplate => 1, + Item::GoldenLeggings => 1, + Item::GoldenBoots => 1, + Item::NetheriteHelmet => 1, + Item::NetheriteChestplate => 1, + Item::NetheriteLeggings => 1, + Item::NetheriteBoots => 1, + Item::Flint => 64, + Item::Porkchop => 64, + Item::CookedPorkchop => 64, + Item::Painting => 64, + Item::GoldenApple => 64, + Item::EnchantedGoldenApple => 64, + Item::OakSign => 16, + Item::SpruceSign => 16, + Item::BirchSign => 16, + Item::JungleSign => 16, + Item::AcaciaSign => 16, + Item::DarkOakSign => 16, + Item::CrimsonSign => 16, + Item::WarpedSign => 16, + Item::Bucket => 16, + Item::WaterBucket => 1, + Item::LavaBucket => 1, + Item::PowderSnowBucket => 1, + Item::Snowball => 16, + Item::Leather => 64, + Item::MilkBucket => 1, + Item::PufferfishBucket => 1, + Item::SalmonBucket => 1, + Item::CodBucket => 1, + Item::TropicalFishBucket => 1, + Item::AxolotlBucket => 1, + Item::Brick => 64, + Item::ClayBall => 64, + Item::DriedKelpBlock => 64, + Item::Paper => 64, + Item::Book => 64, + Item::SlimeBall => 64, + Item::Egg => 16, + Item::Compass => 64, + Item::Bundle => 1, + Item::FishingRod => 1, + Item::Clock => 64, + Item::Spyglass => 1, + Item::GlowstoneDust => 64, + Item::Cod => 64, + Item::Salmon => 64, + Item::TropicalFish => 64, + Item::Pufferfish => 64, + Item::CookedCod => 64, + Item::CookedSalmon => 64, + Item::InkSac => 64, + Item::GlowInkSac => 64, + Item::CocoaBeans => 64, + Item::WhiteDye => 64, + Item::OrangeDye => 64, + Item::MagentaDye => 64, + Item::LightBlueDye => 64, + Item::YellowDye => 64, + Item::LimeDye => 64, + Item::PinkDye => 64, + Item::GrayDye => 64, + Item::LightGrayDye => 64, + Item::CyanDye => 64, + Item::PurpleDye => 64, + Item::BlueDye => 64, + Item::BrownDye => 64, + Item::GreenDye => 64, + Item::RedDye => 64, + Item::BlackDye => 64, + Item::BoneMeal => 64, + Item::Bone => 64, + Item::Sugar => 64, + Item::Cake => 1, + Item::WhiteBed => 1, + Item::OrangeBed => 1, + Item::MagentaBed => 1, + Item::LightBlueBed => 1, + Item::YellowBed => 1, + Item::LimeBed => 1, + Item::PinkBed => 1, + Item::GrayBed => 1, + Item::LightGrayBed => 1, + Item::CyanBed => 1, + Item::PurpleBed => 1, + Item::BlueBed => 1, + Item::BrownBed => 1, + Item::GreenBed => 1, + Item::RedBed => 1, + Item::BlackBed => 1, + Item::Cookie => 64, + Item::FilledMap => 64, + Item::Shears => 1, + Item::MelonSlice => 64, + Item::DriedKelp => 64, + Item::PumpkinSeeds => 64, + Item::MelonSeeds => 64, + Item::Beef => 64, + Item::CookedBeef => 64, + Item::Chicken => 64, + Item::CookedChicken => 64, + Item::RottenFlesh => 64, + Item::EnderPearl => 16, + Item::BlazeRod => 64, + Item::GhastTear => 64, + Item::GoldNugget => 64, + Item::NetherWart => 64, + Item::Potion => 1, + Item::GlassBottle => 64, + Item::SpiderEye => 64, + Item::FermentedSpiderEye => 64, + Item::BlazePowder => 64, + Item::MagmaCream => 64, + Item::BrewingStand => 64, + Item::Cauldron => 64, + Item::EnderEye => 64, + Item::GlisteringMelonSlice => 64, + Item::AxolotlSpawnEgg => 64, + Item::BatSpawnEgg => 64, + Item::BeeSpawnEgg => 64, + Item::BlazeSpawnEgg => 64, + Item::CatSpawnEgg => 64, + Item::CaveSpiderSpawnEgg => 64, + Item::ChickenSpawnEgg => 64, + Item::CodSpawnEgg => 64, + Item::CowSpawnEgg => 64, + Item::CreeperSpawnEgg => 64, + Item::DolphinSpawnEgg => 64, + Item::DonkeySpawnEgg => 64, + Item::DrownedSpawnEgg => 64, + Item::ElderGuardianSpawnEgg => 64, + Item::EndermanSpawnEgg => 64, + Item::EndermiteSpawnEgg => 64, + Item::EvokerSpawnEgg => 64, + Item::FoxSpawnEgg => 64, + Item::GhastSpawnEgg => 64, + Item::GlowSquidSpawnEgg => 64, + Item::GoatSpawnEgg => 64, + Item::GuardianSpawnEgg => 64, + Item::HoglinSpawnEgg => 64, + Item::HorseSpawnEgg => 64, + Item::HuskSpawnEgg => 64, + Item::LlamaSpawnEgg => 64, + Item::MagmaCubeSpawnEgg => 64, + Item::MooshroomSpawnEgg => 64, + Item::MuleSpawnEgg => 64, + Item::OcelotSpawnEgg => 64, + Item::PandaSpawnEgg => 64, + Item::ParrotSpawnEgg => 64, + Item::PhantomSpawnEgg => 64, + Item::PigSpawnEgg => 64, + Item::PiglinSpawnEgg => 64, + Item::PiglinBruteSpawnEgg => 64, + Item::PillagerSpawnEgg => 64, + Item::PolarBearSpawnEgg => 64, + Item::PufferfishSpawnEgg => 64, + Item::RabbitSpawnEgg => 64, + Item::RavagerSpawnEgg => 64, + Item::SalmonSpawnEgg => 64, + Item::SheepSpawnEgg => 64, + Item::ShulkerSpawnEgg => 64, + Item::SilverfishSpawnEgg => 64, + Item::SkeletonSpawnEgg => 64, + Item::SkeletonHorseSpawnEgg => 64, + Item::SlimeSpawnEgg => 64, + Item::SpiderSpawnEgg => 64, + Item::SquidSpawnEgg => 64, + Item::StraySpawnEgg => 64, + Item::StriderSpawnEgg => 64, + Item::TraderLlamaSpawnEgg => 64, + Item::TropicalFishSpawnEgg => 64, + Item::TurtleSpawnEgg => 64, + Item::VexSpawnEgg => 64, + Item::VillagerSpawnEgg => 64, + Item::VindicatorSpawnEgg => 64, + Item::WanderingTraderSpawnEgg => 64, + Item::WitchSpawnEgg => 64, + Item::WitherSkeletonSpawnEgg => 64, + Item::WolfSpawnEgg => 64, + Item::ZoglinSpawnEgg => 64, + Item::ZombieSpawnEgg => 64, + Item::ZombieHorseSpawnEgg => 64, + Item::ZombieVillagerSpawnEgg => 64, + Item::ZombifiedPiglinSpawnEgg => 64, + Item::ExperienceBottle => 64, + Item::FireCharge => 64, + Item::WritableBook => 1, + Item::WrittenBook => 16, + Item::ItemFrame => 64, + Item::GlowItemFrame => 64, + Item::FlowerPot => 64, + Item::Carrot => 64, + Item::Potato => 64, + Item::BakedPotato => 64, + Item::PoisonousPotato => 64, + Item::Map => 64, + Item::GoldenCarrot => 64, + Item::SkeletonSkull => 64, + Item::WitherSkeletonSkull => 64, + Item::PlayerHead => 64, + Item::ZombieHead => 64, + Item::CreeperHead => 64, + Item::DragonHead => 64, + Item::NetherStar => 64, + Item::PumpkinPie => 64, + Item::FireworkRocket => 64, + Item::FireworkStar => 64, + Item::EnchantedBook => 1, + Item::NetherBrick => 64, + Item::PrismarineShard => 64, + Item::PrismarineCrystals => 64, + Item::Rabbit => 64, + Item::CookedRabbit => 64, + Item::RabbitStew => 1, + Item::RabbitFoot => 64, + Item::RabbitHide => 64, + Item::ArmorStand => 16, + Item::IronHorseArmor => 1, + Item::GoldenHorseArmor => 1, + Item::DiamondHorseArmor => 1, + Item::LeatherHorseArmor => 1, + Item::Lead => 64, + Item::NameTag => 64, + Item::CommandBlockMinecart => 1, + Item::Mutton => 64, + Item::CookedMutton => 64, + Item::WhiteBanner => 16, + Item::OrangeBanner => 16, + Item::MagentaBanner => 16, + Item::LightBlueBanner => 16, + Item::YellowBanner => 16, + Item::LimeBanner => 16, + Item::PinkBanner => 16, + Item::GrayBanner => 16, + Item::LightGrayBanner => 16, + Item::CyanBanner => 16, + Item::PurpleBanner => 16, + Item::BlueBanner => 16, + Item::BrownBanner => 16, + Item::GreenBanner => 16, + Item::RedBanner => 16, + Item::BlackBanner => 16, + Item::EndCrystal => 64, + Item::ChorusFruit => 64, + Item::PoppedChorusFruit => 64, + Item::Beetroot => 64, + Item::BeetrootSeeds => 64, + Item::BeetrootSoup => 1, + Item::DragonBreath => 64, + Item::SplashPotion => 1, + Item::SpectralArrow => 64, + Item::TippedArrow => 64, + Item::LingeringPotion => 1, + Item::Shield => 1, + Item::TotemOfUndying => 1, + Item::ShulkerShell => 64, + Item::IronNugget => 64, + Item::KnowledgeBook => 1, + Item::DebugStick => 1, + Item::MusicDisc13 => 1, + Item::MusicDiscCat => 1, + Item::MusicDiscBlocks => 1, + Item::MusicDiscChirp => 1, + Item::MusicDiscFar => 1, + Item::MusicDiscMall => 1, + Item::MusicDiscMellohi => 1, + Item::MusicDiscStal => 1, + Item::MusicDiscStrad => 1, + Item::MusicDiscWard => 1, + Item::MusicDisc11 => 1, + Item::MusicDiscWait => 1, + Item::MusicDiscOtherside => 1, + Item::MusicDiscPigstep => 1, + Item::Trident => 1, + Item::PhantomMembrane => 64, + Item::NautilusShell => 64, + Item::HeartOfTheSea => 64, + Item::Crossbow => 1, + Item::SuspiciousStew => 1, + Item::Loom => 64, + Item::FlowerBannerPattern => 1, + Item::CreeperBannerPattern => 1, + Item::SkullBannerPattern => 1, + Item::MojangBannerPattern => 1, + Item::GlobeBannerPattern => 1, + Item::PiglinBannerPattern => 1, + Item::Composter => 64, + Item::Barrel => 64, + Item::Smoker => 64, + Item::BlastFurnace => 64, + Item::CartographyTable => 64, + Item::FletchingTable => 64, + Item::Grindstone => 64, + Item::SmithingTable => 64, + Item::Stonecutter => 64, + Item::Bell => 64, + Item::Lantern => 64, + Item::SoulLantern => 64, + Item::SweetBerries => 64, + Item::GlowBerries => 64, + Item::Campfire => 64, + Item::SoulCampfire => 64, + Item::Shroomlight => 64, + Item::Honeycomb => 64, + Item::BeeNest => 64, + Item::Beehive => 64, + Item::HoneyBottle => 16, + Item::HoneycombBlock => 64, + Item::Lodestone => 64, + Item::CryingObsidian => 64, + Item::Blackstone => 64, + Item::BlackstoneSlab => 64, + Item::BlackstoneStairs => 64, + Item::GildedBlackstone => 64, + Item::PolishedBlackstone => 64, + Item::PolishedBlackstoneSlab => 64, + Item::PolishedBlackstoneStairs => 64, + Item::ChiseledPolishedBlackstone => 64, + Item::PolishedBlackstoneBricks => 64, + Item::PolishedBlackstoneBrickSlab => 64, + Item::PolishedBlackstoneBrickStairs => 64, + Item::CrackedPolishedBlackstoneBricks => 64, + Item::RespawnAnchor => 64, + Item::Candle => 64, + Item::WhiteCandle => 64, + Item::OrangeCandle => 64, + Item::MagentaCandle => 64, + Item::LightBlueCandle => 64, + Item::YellowCandle => 64, + Item::LimeCandle => 64, + Item::PinkCandle => 64, + Item::GrayCandle => 64, + Item::LightGrayCandle => 64, + Item::CyanCandle => 64, + Item::PurpleCandle => 64, + Item::BlueCandle => 64, + Item::BrownCandle => 64, + Item::GreenCandle => 64, + Item::RedCandle => 64, + Item::BlackCandle => 64, + Item::SmallAmethystBud => 64, + Item::MediumAmethystBud => 64, + Item::LargeAmethystBud => 64, + Item::AmethystCluster => 64, + Item::PointedDripstone => 64, + } + } +} +impl Item { + #[doc = "Returns the `max_durability` property of this `Item`."] + #[inline] + pub fn max_durability(&self) -> Option { + match self { + Item::Stone => None, + Item::Granite => None, + Item::PolishedGranite => None, + Item::Diorite => None, + Item::PolishedDiorite => None, + Item::Andesite => None, + Item::PolishedAndesite => None, + Item::Deepslate => None, + Item::CobbledDeepslate => None, + Item::PolishedDeepslate => None, + Item::Calcite => None, + Item::Tuff => None, + Item::DripstoneBlock => None, + Item::GrassBlock => None, + Item::Dirt => None, + Item::CoarseDirt => None, + Item::Podzol => None, + Item::RootedDirt => None, + Item::CrimsonNylium => None, + Item::WarpedNylium => None, + Item::Cobblestone => None, + Item::OakPlanks => None, + Item::SprucePlanks => None, + Item::BirchPlanks => None, + Item::JunglePlanks => None, + Item::AcaciaPlanks => None, + Item::DarkOakPlanks => None, Item::CrimsonPlanks => None, - Item::Azalea => None, - Item::StructureBlock => None, - Item::RedDye => None, - Item::SculkSensor => None, - Item::Allium => None, - Item::DrownedSpawnEgg => None, - Item::SquidSpawnEgg => None, - Item::GoldenHoe => Some(32), - Item::TraderLlamaSpawnEgg => None, - Item::BlackBanner => None, - Item::LilyPad => None, - Item::Smoker => None, - Item::YellowCandle => None, - Item::DeepslateTileWall => None, - Item::DeadTubeCoral => None, - Item::StoneBricks => None, - Item::GrayTerracotta => None, - Item::Clay => None, - Item::SugarCane => None, - Item::YellowStainedGlassPane => None, - Item::Honeycomb => None, - Item::ZombieHead => None, - Item::AzaleaLeaves => None, - Item::Kelp => None, - Item::MagentaGlazedTerracotta => None, - Item::GuardianSpawnEgg => None, - Item::LightBlueBed => None, - Item::CyanConcretePowder => None, - Item::BigDripleaf => None, - Item::TrappedChest => None, - Item::Carrot => None, - Item::CookedChicken => None, - Item::Dandelion => None, - Item::NetheriteSword => Some(2031), - Item::Repeater => None, - Item::JunglePressurePlate => None, - Item::HornCoralFan => None, - Item::SheepSpawnEgg => None, - Item::GlassPane => None, - Item::LimeBed => None, - Item::ShulkerSpawnEgg => None, - Item::MagentaBanner => None, - Item::PrismarineCrystals => None, - Item::DioriteWall => None, - Item::WoodenShovel => Some(59), - Item::WoodenAxe => Some(59), + Item::WarpedPlanks => None, + Item::OakSapling => None, + Item::SpruceSapling => None, + Item::BirchSapling => None, + Item::JungleSapling => None, + Item::AcaciaSapling => None, + Item::DarkOakSapling => None, + Item::Bedrock => None, + Item::Sand => None, + Item::RedSand => None, + Item::Gravel => None, + Item::CoalOre => None, + Item::DeepslateCoalOre => None, + Item::IronOre => None, + Item::DeepslateIronOre => None, + Item::CopperOre => None, + Item::DeepslateCopperOre => None, + Item::GoldOre => None, + Item::DeepslateGoldOre => None, + Item::RedstoneOre => None, + Item::DeepslateRedstoneOre => None, + Item::EmeraldOre => None, + Item::DeepslateEmeraldOre => None, + Item::LapisOre => None, + Item::DeepslateLapisOre => None, + Item::DiamondOre => None, + Item::DeepslateDiamondOre => None, + Item::NetherGoldOre => None, + Item::NetherQuartzOre => None, + Item::AncientDebris => None, + Item::CoalBlock => None, + Item::RawIronBlock => None, + Item::RawCopperBlock => None, + Item::RawGoldBlock => None, + Item::AmethystBlock => None, + Item::BuddingAmethyst => None, + Item::IronBlock => None, + Item::CopperBlock => None, + Item::GoldBlock => None, Item::DiamondBlock => None, - Item::LapisLazuli => None, - Item::Hopper => None, - Item::BoneBlock => None, - Item::NetherBrick => None, - Item::FlowerPot => None, - Item::GrayCandle => None, - Item::Light => None, - Item::Poppy => None, - Item::ZombieSpawnEgg => None, - Item::TubeCoralFan => None, - Item::BirchPlanks => None, - Item::HangingRoots => None, + Item::NetheriteBlock => None, + Item::ExposedCopper => None, + Item::WeatheredCopper => None, + Item::OxidizedCopper => None, + Item::CutCopper => None, + Item::ExposedCutCopper => None, + Item::WeatheredCutCopper => None, + Item::OxidizedCutCopper => None, + Item::CutCopperStairs => None, + Item::ExposedCutCopperStairs => None, + Item::WeatheredCutCopperStairs => None, + Item::OxidizedCutCopperStairs => None, + Item::CutCopperSlab => None, + Item::ExposedCutCopperSlab => None, + Item::WeatheredCutCopperSlab => None, Item::OxidizedCutCopperSlab => None, - Item::LeatherHelmet => Some(55), - Item::GhastTear => None, - Item::MagentaStainedGlass => None, - Item::Bread => None, - Item::PurpurPillar => None, - Item::DeadTubeCoralFan => None, - Item::DaylightDetector => None, - Item::PoppedChorusFruit => None, - Item::NoteBlock => None, - Item::NetheriteHelmet => Some(407), - Item::DarkOakPlanks => None, - Item::MagentaWool => None, - Item::WhiteGlazedTerracotta => None, - Item::DiamondHelmet => Some(363), - Item::BirchSign => None, - Item::Bucket => None, - Item::PurpleBed => None, - Item::Piston => None, - Item::BirchPressurePlate => None, - Item::FletchingTable => None, - Item::PufferfishBucket => None, - Item::ChainCommandBlock => None, - Item::PigSpawnEgg => None, - Item::GreenCarpet => None, + Item::WaxedCopperBlock => None, + Item::WaxedExposedCopper => None, + Item::WaxedWeatheredCopper => None, + Item::WaxedOxidizedCopper => None, + Item::WaxedCutCopper => None, + Item::WaxedExposedCutCopper => None, + Item::WaxedWeatheredCutCopper => None, + Item::WaxedOxidizedCutCopper => None, + Item::WaxedCutCopperStairs => None, + Item::WaxedExposedCutCopperStairs => None, + Item::WaxedWeatheredCutCopperStairs => None, + Item::WaxedOxidizedCutCopperStairs => None, + Item::WaxedCutCopperSlab => None, + Item::WaxedExposedCutCopperSlab => None, + Item::WaxedWeatheredCutCopperSlab => None, + Item::WaxedOxidizedCutCopperSlab => None, + Item::OakLog => None, + Item::SpruceLog => None, + Item::BirchLog => None, + Item::JungleLog => None, + Item::AcaciaLog => None, + Item::DarkOakLog => None, + Item::CrimsonStem => None, + Item::WarpedStem => None, + Item::StrippedOakLog => None, + Item::StrippedSpruceLog => None, + Item::StrippedBirchLog => None, + Item::StrippedJungleLog => None, + Item::StrippedAcaciaLog => None, + Item::StrippedDarkOakLog => None, Item::StrippedCrimsonStem => None, - Item::BlueConcretePowder => None, - Item::MusicDiscChirp => None, - Item::MusicDiscMellohi => None, - Item::PurpleDye => None, - Item::PolishedDeepslateWall => None, - Item::MusicDiscBlocks => None, + Item::StrippedWarpedStem => None, + Item::StrippedOakWood => None, + Item::StrippedSpruceWood => None, + Item::StrippedBirchWood => None, + Item::StrippedJungleWood => None, + Item::StrippedAcaciaWood => None, + Item::StrippedDarkOakWood => None, + Item::StrippedCrimsonHyphae => None, + Item::StrippedWarpedHyphae => None, + Item::OakWood => None, + Item::SpruceWood => None, Item::BirchWood => None, - Item::OakBoat => None, - Item::MusicDiscPigstep => None, - Item::TntMinecart => None, - Item::Melon => None, - Item::AcaciaButton => None, - Item::MagentaConcretePowder => None, - Item::MagentaConcrete => None, - Item::OrangeGlazedTerracotta => None, - Item::YellowWool => None, - Item::BlazeSpawnEgg => None, - Item::PiglinBruteSpawnEgg => None, - Item::PolishedBlackstonePressurePlate => None, - Item::BlackDye => None, Item::JungleWood => None, - Item::AndesiteStairs => None, - Item::Bookshelf => None, + Item::AcaciaWood => None, + Item::DarkOakWood => None, + Item::CrimsonHyphae => None, + Item::WarpedHyphae => None, + Item::OakLeaves => None, + Item::SpruceLeaves => None, + Item::BirchLeaves => None, + Item::JungleLeaves => None, + Item::AcaciaLeaves => None, + Item::DarkOakLeaves => None, + Item::AzaleaLeaves => None, + Item::FloweringAzaleaLeaves => None, + Item::Sponge => None, + Item::WetSponge => None, + Item::Glass => None, + Item::TintedGlass => None, + Item::LapisBlock => None, + Item::Sandstone => None, + Item::ChiseledSandstone => None, + Item::CutSandstone => None, + Item::Cobweb => None, + Item::Grass => None, + Item::Fern => None, + Item::Azalea => None, + Item::FloweringAzalea => None, + Item::DeadBush => None, + Item::Seagrass => None, + Item::SeaPickle => None, + Item::WhiteWool => None, + Item::OrangeWool => None, + Item::MagentaWool => None, + Item::LightBlueWool => None, + Item::YellowWool => None, + Item::LimeWool => None, + Item::PinkWool => None, + Item::GrayWool => None, + Item::LightGrayWool => None, + Item::CyanWool => None, + Item::PurpleWool => None, + Item::BlueWool => None, + Item::BrownWool => None, + Item::GreenWool => None, + Item::RedWool => None, + Item::BlackWool => None, + Item::Dandelion => None, + Item::Poppy => None, + Item::BlueOrchid => None, + Item::Allium => None, + Item::AzureBluet => None, Item::RedTulip => None, - Item::Elytra => Some(432), - Item::MusicDiscOtherside => None, - Item::Potato => None, - Item::IronDoor => None, - Item::WaxedExposedCutCopper => None, - Item::StrippedAcaciaWood => None, - Item::YellowDye => None, - Item::ClayBall => None, - Item::Sandstone => None, + Item::OrangeTulip => None, + Item::WhiteTulip => None, + Item::PinkTulip => None, + Item::OxeyeDaisy => None, + Item::Cornflower => None, + Item::LilyOfTheValley => None, + Item::WitherRose => None, + Item::SporeBlossom => None, + Item::BrownMushroom => None, + Item::RedMushroom => None, + Item::CrimsonFungus => None, + Item::WarpedFungus => None, + Item::CrimsonRoots => None, + Item::WarpedRoots => None, + Item::NetherSprouts => None, + Item::WeepingVines => None, + Item::TwistingVines => None, + Item::SugarCane => None, + Item::Kelp => None, + Item::MossCarpet => None, + Item::MossBlock => None, + Item::HangingRoots => None, + Item::BigDripleaf => None, + Item::SmallDripleaf => None, + Item::Bamboo => None, + Item::OakSlab => None, + Item::SpruceSlab => None, + Item::BirchSlab => None, + Item::JungleSlab => None, + Item::AcaciaSlab => None, + Item::DarkOakSlab => None, + Item::CrimsonSlab => None, + Item::WarpedSlab => None, + Item::StoneSlab => None, + Item::SmoothStoneSlab => None, + Item::SandstoneSlab => None, + Item::CutSandstoneSlab => None, + Item::PetrifiedOakSlab => None, Item::CobblestoneSlab => None, - Item::CobbledDeepslateWall => None, - Item::CrimsonFenceGate => None, - Item::CreeperSpawnEgg => None, - Item::GhastSpawnEgg => None, - Item::ItemFrame => None, - Item::Composter => None, - Item::Minecart => None, - Item::CookedRabbit => None, - Item::IronHorseArmor => None, - Item::SandstoneStairs => None, - Item::Diorite => None, - Item::WarpedFence => None, - Item::DarkOakFence => None, - Item::Porkchop => None, - Item::LightBlueCarpet => None, - Item::LightGrayShulkerBox => None, - Item::PurpleConcretePowder => None, - Item::PolishedBlackstoneBrickWall => None, - Item::ExperienceBottle => None, - Item::PoisonousPotato => None, - Item::WoodenPickaxe => Some(59), - Item::StonePickaxe => Some(131), - Item::Spawner => None, - Item::MusicDiscWait => None, - Item::DragonEgg => None, - Item::QuartzStairs => None, - Item::GoldOre => None, - Item::RedNetherBrickWall => None, - Item::GrayStainedGlass => None, - Item::MossyCobblestoneStairs => None, - Item::FoxSpawnEgg => None, - Item::PolishedDeepslate => None, - Item::AmethystBlock => None, - Item::ElderGuardianSpawnEgg => None, - Item::PlayerHead => None, + Item::BrickSlab => None, + Item::StoneBrickSlab => None, + Item::NetherBrickSlab => None, Item::QuartzSlab => None, - Item::Diamond => None, - Item::GrayDye => None, - Item::CaveSpiderSpawnEgg => None, - Item::NetherBrickStairs => None, - Item::BlueIce => None, - Item::WaxedCutCopper => None, - Item::GlowLichen => None, - Item::Fern => None, - Item::BrownMushroomBlock => None, - Item::IronIngot => None, - Item::LightBlueBanner => None, - Item::StrippedDarkOakWood => None, - Item::PolishedAndesiteSlab => None, - Item::GlisteringMelonSlice => None, - Item::LapisOre => None, - Item::ChickenSpawnEgg => None, - Item::GlowInkSac => None, + Item::RedSandstoneSlab => None, + Item::CutRedSandstoneSlab => None, + Item::PurpurSlab => None, + Item::PrismarineSlab => None, + Item::PrismarineBrickSlab => None, + Item::DarkPrismarineSlab => None, + Item::SmoothQuartz => None, + Item::SmoothRedSandstone => None, + Item::SmoothSandstone => None, + Item::SmoothStone => None, + Item::Bricks => None, + Item::Bookshelf => None, + Item::MossyCobblestone => None, + Item::Obsidian => None, + Item::Torch => None, + Item::EndRod => None, + Item::ChorusPlant => None, + Item::ChorusFlower => None, + Item::PurpurBlock => None, + Item::PurpurPillar => None, + Item::PurpurStairs => None, + Item::Spawner => None, + Item::OakStairs => None, + Item::Chest => None, + Item::CraftingTable => None, + Item::Farmland => None, + Item::Furnace => None, + Item::Ladder => None, + Item::CobblestoneStairs => None, + Item::Snow => None, Item::Ice => None, - Item::MossyCobblestoneSlab => None, - Item::SalmonBucket => None, - Item::GoldenApple => None, - Item::StraySpawnEgg => None, - Item::BrownCandle => None, - Item::PiglinSpawnEgg => None, - Item::ChestMinecart => None, - Item::PolishedBlackstoneBricks => None, Item::SnowBlock => None, - Item::GlowSquidSpawnEgg => None, - Item::JungleStairs => None, - Item::PandaSpawnEgg => None, - Item::HeavyWeightedPressurePlate => None, - Item::AcaciaLog => None, - Item::BlueOrchid => None, - Item::CookedCod => None, - Item::NetherSprouts => None, - Item::RespawnAnchor => None, - Item::DeadHornCoral => None, - Item::WarpedRoots => None, - Item::DiamondLeggings => Some(495), - Item::FlintAndSteel => Some(64), - Item::LavaBucket => None, - Item::WeatheredCutCopper => None, - Item::LightBlueCandle => None, - Item::TintedGlass => None, - Item::PolishedAndesite => None, - Item::Arrow => None, - Item::WhiteDye => None, - Item::NautilusShell => None, - Item::SmoothSandstoneSlab => None, - Item::PolishedBlackstoneStairs => None, - Item::PolishedGraniteStairs => None, - Item::ArmorStand => None, - Item::OakFenceGate => None, - Item::GlobeBannerPattern => None, - Item::PolishedDiorite => None, - Item::AcaciaTrapdoor => None, - Item::InfestedChiseledStoneBricks => None, - Item::JungleBoat => None, - Item::SoulTorch => None, - Item::WanderingTraderSpawnEgg => None, - Item::LightBlueGlazedTerracotta => None, - Item::MagentaDye => None, - Item::PumpkinPie => None, - Item::CrackedDeepslateTiles => None, - Item::RedGlazedTerracotta => None, - Item::RawCopperBlock => None, - Item::OxidizedCopper => None, - Item::WoodenSword => Some(59), - Item::WritableBook => None, - Item::Deepslate => None, - Item::PrismarineSlab => None, - Item::HoneycombBlock => None, - Item::FireCharge => None, - Item::CarvedPumpkin => None, - Item::DeadBush => None, - Item::LightGrayBed => None, - Item::LightGrayTerracotta => None, - Item::WhiteShulkerBox => None, - Item::DarkPrismarineStairs => None, - Item::Vine => None, + Item::Cactus => None, + Item::Clay => None, + Item::Jukebox => None, Item::OakFence => None, - Item::WhiteBanner => None, - Item::WarpedSlab => None, - Item::CrackedStoneBricks => None, - Item::WeatheredCutCopperStairs => None, - Item::Prismarine => None, - Item::Observer => None, - Item::MusicDiscStal => None, - Item::PolishedDioriteStairs => None, - Item::YellowBed => None, - Item::Stone => None, + Item::SpruceFence => None, + Item::BirchFence => None, + Item::JungleFence => None, + Item::AcaciaFence => None, + Item::DarkOakFence => None, + Item::CrimsonFence => None, + Item::WarpedFence => None, + Item::Pumpkin => None, + Item::CarvedPumpkin => None, + Item::JackOLantern => None, Item::Netherrack => None, - Item::DetectorRail => None, - Item::WarpedHyphae => None, - Item::SkeletonSkull => None, - Item::PolishedDeepslateSlab => None, + Item::SoulSand => None, + Item::SoulSoil => None, + Item::Basalt => None, + Item::PolishedBasalt => None, + Item::SmoothBasalt => None, + Item::SoulTorch => None, + Item::Glowstone => None, + Item::InfestedStone => None, + Item::InfestedCobblestone => None, + Item::InfestedStoneBricks => None, + Item::InfestedMossyStoneBricks => None, + Item::InfestedCrackedStoneBricks => None, + Item::InfestedChiseledStoneBricks => None, + Item::InfestedDeepslate => None, + Item::StoneBricks => None, + Item::MossyStoneBricks => None, + Item::CrackedStoneBricks => None, + Item::ChiseledStoneBricks => None, + Item::DeepslateBricks => None, + Item::CrackedDeepslateBricks => None, + Item::DeepslateTiles => None, + Item::CrackedDeepslateTiles => None, + Item::ChiseledDeepslate => None, + Item::BrownMushroomBlock => None, + Item::RedMushroomBlock => None, + Item::MushroomStem => None, + Item::IronBars => None, Item::Chain => None, - Item::GoldenAxe => Some(32), - Item::WarpedPressurePlate => None, - Item::PointedDripstone => None, - Item::RedNetherBrickStairs => None, - Item::TropicalFish => None, - Item::CyanBanner => None, - Item::Crossbow => Some(326), + Item::GlassPane => None, + Item::Melon => None, + Item::Vine => None, + Item::GlowLichen => None, + Item::BrickStairs => None, + Item::StoneBrickStairs => None, + Item::Mycelium => None, + Item::LilyPad => None, + Item::NetherBricks => None, + Item::CrackedNetherBricks => None, + Item::ChiseledNetherBricks => None, + Item::NetherBrickFence => None, + Item::NetherBrickStairs => None, + Item::EnchantingTable => None, + Item::EndPortalFrame => None, + Item::EndStone => None, + Item::EndStoneBricks => None, + Item::DragonEgg => None, + Item::SandstoneStairs => None, + Item::EnderChest => None, + Item::EmeraldBlock => None, + Item::SpruceStairs => None, + Item::BirchStairs => None, + Item::JungleStairs => None, + Item::CrimsonStairs => None, + Item::WarpedStairs => None, + Item::CommandBlock => None, + Item::Beacon => None, + Item::CobblestoneWall => None, + Item::MossyCobblestoneWall => None, + Item::BrickWall => None, + Item::PrismarineWall => None, + Item::RedSandstoneWall => None, + Item::MossyStoneBrickWall => None, + Item::GraniteWall => None, + Item::StoneBrickWall => None, + Item::NetherBrickWall => None, + Item::AndesiteWall => None, + Item::RedNetherBrickWall => None, + Item::SandstoneWall => None, + Item::EndStoneBrickWall => None, + Item::DioriteWall => None, + Item::BlackstoneWall => None, + Item::PolishedBlackstoneWall => None, + Item::PolishedBlackstoneBrickWall => None, + Item::CobbledDeepslateWall => None, + Item::PolishedDeepslateWall => None, + Item::DeepslateBrickWall => None, + Item::DeepslateTileWall => None, + Item::Anvil => None, + Item::ChippedAnvil => None, + Item::DamagedAnvil => None, + Item::ChiseledQuartzBlock => None, + Item::QuartzBlock => None, + Item::QuartzBricks => None, + Item::QuartzPillar => None, + Item::QuartzStairs => None, + Item::WhiteTerracotta => None, + Item::OrangeTerracotta => None, + Item::MagentaTerracotta => None, + Item::LightBlueTerracotta => None, + Item::YellowTerracotta => None, + Item::LimeTerracotta => None, + Item::PinkTerracotta => None, + Item::GrayTerracotta => None, + Item::LightGrayTerracotta => None, + Item::CyanTerracotta => None, + Item::PurpleTerracotta => None, + Item::BlueTerracotta => None, + Item::BrownTerracotta => None, + Item::GreenTerracotta => None, + Item::RedTerracotta => None, + Item::BlackTerracotta => None, + Item::Barrier => None, + Item::Light => None, + Item::HayBlock => None, + Item::WhiteCarpet => None, + Item::OrangeCarpet => None, + Item::MagentaCarpet => None, + Item::LightBlueCarpet => None, + Item::YellowCarpet => None, + Item::LimeCarpet => None, + Item::PinkCarpet => None, + Item::GrayCarpet => None, + Item::LightGrayCarpet => None, + Item::CyanCarpet => None, + Item::PurpleCarpet => None, + Item::BlueCarpet => None, + Item::BrownCarpet => None, + Item::GreenCarpet => None, + Item::RedCarpet => None, + Item::BlackCarpet => None, + Item::Terracotta => None, + Item::PackedIce => None, + Item::AcaciaStairs => None, + Item::DarkOakStairs => None, + Item::DirtPath => None, Item::Sunflower => None, - Item::CommandBlockMinecart => None, - Item::IronShovel => Some(250), - Item::DiamondBoots => Some(429), - Item::PurpleShulkerBox => None, - Item::BlackstoneSlab => None, - Item::PinkShulkerBox => None, - Item::PurpleConcrete => None, Item::Lilac => None, - Item::JungleLog => None, - Item::SmoothQuartz => None, - Item::Lead => None, - Item::MagentaTerracotta => None, - Item::PolishedBlackstoneBrickStairs => None, - Item::WitherSkeletonSkull => None, - Item::DeepslateTileStairs => None, + Item::RoseBush => None, + Item::Peony => None, + Item::TallGrass => None, + Item::LargeFern => None, Item::WhiteStainedGlass => None, - Item::DeepslateBrickSlab => None, - Item::JungleTrapdoor => None, - Item::EnderEye => None, - Item::SoulLantern => None, - Item::EmeraldOre => None, - Item::CookedSalmon => None, - Item::DarkPrismarineSlab => None, - Item::AxolotlSpawnEgg => None, - Item::CrimsonRoots => None, - Item::Glowstone => None, - Item::WhiteWool => None, - Item::GildedBlackstone => None, + Item::OrangeStainedGlass => None, + Item::MagentaStainedGlass => None, + Item::LightBlueStainedGlass => None, + Item::YellowStainedGlass => None, + Item::LimeStainedGlass => None, + Item::PinkStainedGlass => None, + Item::GrayStainedGlass => None, + Item::LightGrayStainedGlass => None, Item::CyanStainedGlass => None, - Item::StriderSpawnEgg => None, - Item::StoneSlab => None, - Item::BeeSpawnEgg => None, - Item::DeadBrainCoralBlock => None, - Item::IronOre => None, - Item::WhiteCandle => None, - Item::BuddingAmethyst => None, - Item::LimeDye => None, - Item::NetheriteBoots => Some(481), - Item::DragonBreath => None, - Item::ExposedCutCopper => None, - Item::SoulSoil => None, - Item::AcaciaSlab => None, - Item::DeadBrainCoral => None, - Item::PolishedBasalt => None, - Item::DeadBubbleCoralFan => None, - Item::IronTrapdoor => None, - Item::LimeCandle => None, - Item::WaxedWeatheredCutCopperStairs => None, - Item::BrewingStand => None, - Item::SilverfishSpawnEgg => None, - Item::BlackCarpet => None, - Item::BlackConcrete => None, - Item::FireworkRocket => None, - Item::Anvil => None, - Item::NetheriteAxe => Some(2031), - Item::Rail => None, - Item::StrippedAcaciaLog => None, - Item::RedstoneBlock => None, - Item::LightningRod => None, + Item::PurpleStainedGlass => None, + Item::BlueStainedGlass => None, + Item::BrownStainedGlass => None, + Item::GreenStainedGlass => None, + Item::RedStainedGlass => None, + Item::BlackStainedGlass => None, + Item::WhiteStainedGlassPane => None, + Item::OrangeStainedGlassPane => None, + Item::MagentaStainedGlassPane => None, + Item::LightBlueStainedGlassPane => None, + Item::YellowStainedGlassPane => None, + Item::LimeStainedGlassPane => None, + Item::PinkStainedGlassPane => None, + Item::GrayStainedGlassPane => None, + Item::LightGrayStainedGlassPane => None, + Item::CyanStainedGlassPane => None, + Item::PurpleStainedGlassPane => None, + Item::BlueStainedGlassPane => None, + Item::BrownStainedGlassPane => None, + Item::GreenStainedGlassPane => None, + Item::RedStainedGlassPane => None, + Item::BlackStainedGlassPane => None, + Item::Prismarine => None, + Item::PrismarineBricks => None, + Item::DarkPrismarine => None, + Item::PrismarineStairs => None, + Item::PrismarineBrickStairs => None, + Item::DarkPrismarineStairs => None, + Item::SeaLantern => None, + Item::RedSandstone => None, + Item::ChiseledRedSandstone => None, + Item::CutRedSandstone => None, + Item::RedSandstoneStairs => None, + Item::RepeatingCommandBlock => None, + Item::ChainCommandBlock => None, + Item::MagmaBlock => None, + Item::NetherWartBlock => None, + Item::WarpedWartBlock => None, + Item::RedNetherBricks => None, + Item::BoneBlock => None, + Item::StructureVoid => None, + Item::ShulkerBox => None, + Item::WhiteShulkerBox => None, + Item::OrangeShulkerBox => None, + Item::MagentaShulkerBox => None, + Item::LightBlueShulkerBox => None, + Item::YellowShulkerBox => None, + Item::LimeShulkerBox => None, + Item::PinkShulkerBox => None, + Item::GrayShulkerBox => None, + Item::LightGrayShulkerBox => None, + Item::CyanShulkerBox => None, + Item::PurpleShulkerBox => None, + Item::BlueShulkerBox => None, + Item::BrownShulkerBox => None, + Item::GreenShulkerBox => None, + Item::RedShulkerBox => None, + Item::BlackShulkerBox => None, + Item::WhiteGlazedTerracotta => None, + Item::OrangeGlazedTerracotta => None, + Item::MagentaGlazedTerracotta => None, + Item::LightBlueGlazedTerracotta => None, + Item::YellowGlazedTerracotta => None, + Item::LimeGlazedTerracotta => None, + Item::PinkGlazedTerracotta => None, + Item::GrayGlazedTerracotta => None, + Item::LightGrayGlazedTerracotta => None, + Item::CyanGlazedTerracotta => None, + Item::PurpleGlazedTerracotta => None, + Item::BlueGlazedTerracotta => None, + Item::BrownGlazedTerracotta => None, + Item::GreenGlazedTerracotta => None, + Item::RedGlazedTerracotta => None, + Item::BlackGlazedTerracotta => None, + Item::WhiteConcrete => None, + Item::OrangeConcrete => None, + Item::MagentaConcrete => None, + Item::LightBlueConcrete => None, + Item::YellowConcrete => None, + Item::LimeConcrete => None, + Item::PinkConcrete => None, + Item::GrayConcrete => None, + Item::LightGrayConcrete => None, + Item::CyanConcrete => None, + Item::PurpleConcrete => None, + Item::BlueConcrete => None, + Item::BrownConcrete => None, Item::GreenConcrete => None, - Item::Potion => None, - Item::DonkeySpawnEgg => None, - Item::Rabbit => None, - Item::OrangeTerracotta => None, - Item::AcaciaPressurePlate => None, - Item::AcaciaPlanks => None, - Item::TropicalFishSpawnEgg => None, - Item::Bundle => None, - Item::EnchantedGoldenApple => None, - Item::TippedArrow => None, - Item::CoarseDirt => None, - Item::DarkOakSapling => None, - Item::YellowShulkerBox => None, - Item::DeepslateCoalOre => None, + Item::RedConcrete => None, + Item::BlackConcrete => None, Item::WhiteConcretePowder => None, + Item::OrangeConcretePowder => None, + Item::MagentaConcretePowder => None, + Item::LightBlueConcretePowder => None, + Item::YellowConcretePowder => None, + Item::LimeConcretePowder => None, + Item::PinkConcretePowder => None, + Item::GrayConcretePowder => None, + Item::LightGrayConcretePowder => None, + Item::CyanConcretePowder => None, + Item::PurpleConcretePowder => None, + Item::BlueConcretePowder => None, + Item::BrownConcretePowder => None, + Item::GreenConcretePowder => None, + Item::RedConcretePowder => None, + Item::BlackConcretePowder => None, + Item::TurtleEgg => None, + Item::DeadTubeCoralBlock => None, + Item::DeadBrainCoralBlock => None, + Item::DeadBubbleCoralBlock => None, + Item::DeadFireCoralBlock => None, + Item::DeadHornCoralBlock => None, + Item::TubeCoralBlock => None, + Item::BrainCoralBlock => None, + Item::BubbleCoralBlock => None, + Item::FireCoralBlock => None, + Item::HornCoralBlock => None, + Item::TubeCoral => None, + Item::BrainCoral => None, + Item::BubbleCoral => None, + Item::FireCoral => None, + Item::HornCoral => None, + Item::DeadBrainCoral => None, + Item::DeadBubbleCoral => None, + Item::DeadFireCoral => None, + Item::DeadHornCoral => None, + Item::DeadTubeCoral => None, + Item::TubeCoralFan => None, + Item::BrainCoralFan => None, Item::BubbleCoralFan => None, - Item::GoldenBoots => Some(91), - Item::SkeletonSpawnEgg => None, - Item::EndermiteSpawnEgg => None, - Item::DeepslateLapisOre => None, - Item::Cobblestone => None, - Item::ZoglinSpawnEgg => None, - Item::MusicDiscMall => None, - Item::BlazeRod => None, + Item::FireCoralFan => None, + Item::HornCoralFan => None, + Item::DeadTubeCoralFan => None, + Item::DeadBrainCoralFan => None, + Item::DeadBubbleCoralFan => None, + Item::DeadFireCoralFan => None, + Item::DeadHornCoralFan => None, + Item::BlueIce => None, + Item::Conduit => None, + Item::PolishedGraniteStairs => None, Item::SmoothRedSandstoneStairs => None, - Item::OrangeCandle => None, - Item::MossyStoneBrickWall => None, - Item::Granite => None, - Item::PowderSnowBucket => None, - Item::HeartOfTheSea => None, - Item::LightGrayStainedGlass => None, - Item::StrippedWarpedHyphae => None, - Item::LightBlueStainedGlass => None, + Item::MossyStoneBrickStairs => None, + Item::PolishedDioriteStairs => None, + Item::MossyCobblestoneStairs => None, + Item::EndStoneBrickStairs => None, + Item::StoneStairs => None, + Item::SmoothSandstoneStairs => None, Item::SmoothQuartzStairs => None, - Item::Furnace => None, - Item::SpruceSapling => None, - Item::WarpedFenceGate => None, - Item::StrippedBirchWood => None, - Item::Flint => None, - Item::MagentaCarpet => None, + Item::GraniteStairs => None, + Item::AndesiteStairs => None, + Item::RedNetherBrickStairs => None, + Item::PolishedAndesiteStairs => None, + Item::DioriteStairs => None, + Item::CobbledDeepslateStairs => None, + Item::PolishedDeepslateStairs => None, + Item::DeepslateBrickStairs => None, + Item::DeepslateTileStairs => None, + Item::PolishedGraniteSlab => None, + Item::SmoothRedSandstoneSlab => None, + Item::MossyStoneBrickSlab => None, + Item::PolishedDioriteSlab => None, + Item::MossyCobblestoneSlab => None, + Item::EndStoneBrickSlab => None, + Item::SmoothSandstoneSlab => None, + Item::SmoothQuartzSlab => None, + Item::GraniteSlab => None, + Item::AndesiteSlab => None, + Item::RedNetherBrickSlab => None, + Item::PolishedAndesiteSlab => None, + Item::DioriteSlab => None, + Item::CobbledDeepslateSlab => None, + Item::PolishedDeepslateSlab => None, + Item::DeepslateBrickSlab => None, + Item::DeepslateTileSlab => None, + Item::Scaffolding => None, + Item::Redstone => None, + Item::RedstoneTorch => None, + Item::RedstoneBlock => None, + Item::Repeater => None, + Item::Comparator => None, + Item::Piston => None, + Item::StickyPiston => None, + Item::SlimeBlock => None, + Item::HoneyBlock => None, + Item::Observer => None, + Item::Hopper => None, + Item::Dispenser => None, + Item::Dropper => None, + Item::Lectern => None, + Item::Target => None, + Item::Lever => None, + Item::LightningRod => None, + Item::DaylightDetector => None, + Item::SculkSensor => None, + Item::TripwireHook => None, + Item::TrappedChest => None, + Item::Tnt => None, + Item::RedstoneLamp => None, + Item::NoteBlock => None, + Item::StoneButton => None, + Item::PolishedBlackstoneButton => None, + Item::OakButton => None, + Item::SpruceButton => None, + Item::BirchButton => None, + Item::JungleButton => None, + Item::AcaciaButton => None, + Item::DarkOakButton => None, + Item::CrimsonButton => None, + Item::WarpedButton => None, + Item::StonePressurePlate => None, + Item::PolishedBlackstonePressurePlate => None, + Item::LightWeightedPressurePlate => None, + Item::HeavyWeightedPressurePlate => None, + Item::OakPressurePlate => None, Item::SprucePressurePlate => None, - Item::Farmland => None, - Item::PurpleStainedGlassPane => None, - Item::SpruceSlab => None, - Item::TwistingVines => None, - Item::SpruceTrapdoor => None, - Item::CrimsonSlab => None, - Item::RawIron => None, - Item::EnderPearl => None, - Item::VillagerSpawnEgg => None, - Item::MelonSlice => None, - Item::GrayStainedGlassPane => None, - Item::NetherStar => None, - Item::EndermanSpawnEgg => None, - Item::FermentedSpiderEye => None, + Item::BirchPressurePlate => None, + Item::JunglePressurePlate => None, + Item::AcaciaPressurePlate => None, + Item::DarkOakPressurePlate => None, + Item::CrimsonPressurePlate => None, + Item::WarpedPressurePlate => None, + Item::IronDoor => None, + Item::OakDoor => None, + Item::SpruceDoor => None, + Item::BirchDoor => None, + Item::JungleDoor => None, + Item::AcaciaDoor => None, + Item::DarkOakDoor => None, + Item::CrimsonDoor => None, + Item::WarpedDoor => None, + Item::IronTrapdoor => None, Item::OakTrapdoor => None, - Item::LimeConcretePowder => None, - Item::PurpleCandle => None, - Item::CutCopper => None, - Item::StoneBrickSlab => None, - Item::ChiseledRedSandstone => None, - Item::InfestedDeepslate => None, - Item::MuleSpawnEgg => None, - Item::InkSac => None, - Item::CommandBlock => None, - Item::Shield => Some(336), - Item::HornCoralBlock => None, - Item::OxeyeDaisy => None, + Item::SpruceTrapdoor => None, + Item::BirchTrapdoor => None, + Item::JungleTrapdoor => None, + Item::AcaciaTrapdoor => None, + Item::DarkOakTrapdoor => None, + Item::CrimsonTrapdoor => None, + Item::WarpedTrapdoor => None, + Item::OakFenceGate => None, + Item::SpruceFenceGate => None, + Item::BirchFenceGate => None, + Item::JungleFenceGate => None, + Item::AcaciaFenceGate => None, + Item::DarkOakFenceGate => None, + Item::CrimsonFenceGate => None, + Item::WarpedFenceGate => None, + Item::PoweredRail => None, + Item::DetectorRail => None, + Item::Rail => None, + Item::ActivatorRail => None, + Item::Saddle => None, + Item::Minecart => None, + Item::ChestMinecart => None, + Item::FurnaceMinecart => None, + Item::TntMinecart => None, + Item::HopperMinecart => None, + Item::CarrotOnAStick => Some(25), + Item::WarpedFungusOnAStick => Some(100), + Item::Elytra => Some(432), + Item::OakBoat => None, + Item::SpruceBoat => None, + Item::BirchBoat => None, + Item::JungleBoat => None, + Item::AcaciaBoat => None, + Item::DarkOakBoat => None, + Item::StructureBlock => None, + Item::Jigsaw => None, + Item::TurtleHelmet => Some(275), + Item::Scute => None, + Item::FlintAndSteel => Some(64), + Item::Apple => None, + Item::Bow => Some(384), + Item::Arrow => None, + Item::Coal => None, + Item::Charcoal => None, + Item::Diamond => None, + Item::Emerald => None, + Item::LapisLazuli => None, + Item::Quartz => None, + Item::AmethystShard => None, + Item::RawIron => None, + Item::IronIngot => None, + Item::RawCopper => None, + Item::CopperIngot => None, + Item::RawGold => None, + Item::GoldIngot => None, + Item::NetheriteIngot => None, + Item::NetheriteScrap => None, + Item::WoodenSword => Some(59), + Item::WoodenShovel => Some(59), + Item::WoodenPickaxe => Some(59), + Item::WoodenAxe => Some(59), + Item::WoodenHoe => Some(59), + Item::StoneSword => Some(131), + Item::StoneShovel => Some(131), + Item::StonePickaxe => Some(131), + Item::StoneAxe => Some(131), + Item::StoneHoe => Some(131), + Item::GoldenSword => Some(32), + Item::GoldenShovel => Some(32), + Item::GoldenPickaxe => Some(32), + Item::GoldenAxe => Some(32), + Item::GoldenHoe => Some(32), + Item::IronSword => Some(250), + Item::IronShovel => Some(250), + Item::IronPickaxe => Some(250), + Item::IronAxe => Some(250), + Item::IronHoe => Some(250), + Item::DiamondSword => Some(1561), + Item::DiamondShovel => Some(1561), + Item::DiamondPickaxe => Some(1561), + Item::DiamondAxe => Some(1561), + Item::DiamondHoe => Some(1561), + Item::NetheriteSword => Some(2031), + Item::NetheriteShovel => Some(2031), + Item::NetheritePickaxe => Some(2031), + Item::NetheriteAxe => Some(2031), + Item::NetheriteHoe => Some(2031), Item::Stick => None, - Item::Cobweb => None, - Item::BlazePowder => None, - Item::DeadHornCoralFan => None, + Item::Bowl => None, + Item::MushroomStew => None, + Item::String => None, + Item::Feather => None, + Item::Gunpowder => None, + Item::WheatSeeds => None, Item::Wheat => None, - Item::OrangeDye => None, - Item::CrimsonFungus => None, - Item::ShulkerBox => None, - Item::OakLeaves => None, - Item::NetheriteHoe => Some(2031), - Item::BrickStairs => None, - Item::TurtleSpawnEgg => None, - Item::WaxedExposedCutCopperSlab => None, - Item::EndStone => None, - Item::DamagedAnvil => None, - Item::GoldBlock => None, - Item::FlowerBannerPattern => None, - Item::Lectern => None, - Item::WarpedStairs => None, - Item::StrippedWarpedStem => None, - Item::LimeBanner => None, - Item::DarkOakPressurePlate => None, - Item::CobbledDeepslate => None, - Item::Obsidian => None, - Item::WolfSpawnEgg => None, - Item::RedBanner => None, - Item::CookedBeef => None, - Item::StickyPiston => None, - Item::DeepslateIronOre => None, - Item::HuskSpawnEgg => None, - Item::Beetroot => None, - Item::GreenBanner => None, - Item::RabbitHide => None, - Item::OakButton => None, - Item::BrownBanner => None, - Item::BlueWool => None, - Item::LightBlueStainedGlassPane => None, - Item::EndStoneBrickStairs => None, - Item::LingeringPotion => None, - Item::SmoothQuartzSlab => None, - Item::IronAxe => Some(250), - Item::RedBed => None, - Item::PolishedBlackstoneBrickSlab => None, - Item::CopperIngot => None, + Item::Bread => None, + Item::LeatherHelmet => Some(55), + Item::LeatherChestplate => Some(80), Item::LeatherLeggings => Some(75), - Item::ChiseledNetherBricks => None, - Item::CryingObsidian => None, - Item::WaxedCutCopperStairs => None, - Item::OxidizedCutCopperStairs => None, - Item::RedSand => None, - Item::OrangeBanner => None, - Item::Gravel => None, - Item::StrippedJungleWood => None, - Item::StructureVoid => None, - Item::RabbitStew => None, - Item::GrayBanner => None, - Item::CrimsonHyphae => None, - Item::GrayGlazedTerracotta => None, - Item::BeetrootSoup => None, - Item::TurtleEgg => None, - Item::Bone => None, - Item::SmallDripleaf => None, - Item::ZombieHorseSpawnEgg => None, - Item::GreenCandle => None, - Item::RedstoneOre => None, - Item::Chest => None, - Item::DarkOakStairs => None, - Item::Bedrock => None, - Item::Gunpowder => None, - Item::Brick => None, - Item::CraftingTable => None, - Item::QuartzPillar => None, - Item::TubeCoral => None, - Item::LightGrayWool => None, - Item::SpruceWood => None, - Item::SlimeSpawnEgg => None, - Item::Clock => None, - Item::CrackedNetherBricks => None, - Item::RedMushroomBlock => None, - Item::QuartzBlock => None, - Item::LightGrayCandle => None, - Item::BlackWool => None, - Item::PrismarineShard => None, - Item::CyanConcrete => None, - Item::Torch => None, - Item::Podzol => None, - Item::RedShulkerBox => None, - Item::WitchSpawnEgg => None, - Item::LimeCarpet => None, - Item::GreenBed => None, - Item::Leather => None, - Item::CyanCandle => None, - Item::NetherGoldOre => None, + Item::LeatherBoots => Some(65), + Item::ChainmailHelmet => Some(165), + Item::ChainmailChestplate => Some(240), + Item::ChainmailLeggings => Some(225), + Item::ChainmailBoots => Some(195), + Item::IronHelmet => Some(165), + Item::IronChestplate => Some(240), + Item::IronLeggings => Some(225), + Item::IronBoots => Some(195), + Item::DiamondHelmet => Some(363), + Item::DiamondChestplate => Some(528), + Item::DiamondLeggings => Some(495), + Item::DiamondBoots => Some(429), + Item::GoldenHelmet => Some(77), + Item::GoldenChestplate => Some(112), + Item::GoldenLeggings => Some(105), + Item::GoldenBoots => Some(91), + Item::NetheriteHelmet => Some(407), + Item::NetheriteChestplate => Some(592), + Item::NetheriteLeggings => Some(555), + Item::NetheriteBoots => Some(481), + Item::Flint => None, + Item::Porkchop => None, + Item::CookedPorkchop => None, + Item::Painting => None, + Item::GoldenApple => None, + Item::EnchantedGoldenApple => None, + Item::OakSign => None, + Item::SpruceSign => None, + Item::BirchSign => None, + Item::JungleSign => None, + Item::AcaciaSign => None, + Item::DarkOakSign => None, + Item::CrimsonSign => None, Item::WarpedSign => None, - Item::MossyCobblestoneWall => None, - Item::SmoothSandstoneStairs => None, - Item::SpruceDoor => None, - Item::NetherBrickFence => None, - Item::LapisBlock => None, - Item::IronPickaxe => Some(250), - Item::PinkTerracotta => None, - Item::MusicDiscWard => None, - Item::CyanBed => None, - Item::Blackstone => None, - Item::RottenFlesh => None, - Item::OrangeCarpet => None, - Item::ChorusFruit => None, + Item::Bucket => None, + Item::WaterBucket => None, + Item::LavaBucket => None, + Item::PowderSnowBucket => None, + Item::Snowball => None, + Item::Leather => None, + Item::MilkBucket => None, + Item::PufferfishBucket => None, + Item::SalmonBucket => None, + Item::CodBucket => None, + Item::TropicalFishBucket => None, + Item::AxolotlBucket => None, + Item::Brick => None, + Item::ClayBall => None, + Item::DriedKelpBlock => None, + Item::Paper => None, + Item::Book => None, + Item::SlimeBall => None, Item::Egg => None, - Item::MusicDiscCat => None, - Item::BrownConcrete => None, - Item::PurpleTerracotta => None, - Item::Andesite => None, - Item::Sand => None, - Item::Beacon => None, - Item::PrismarineStairs => None, - Item::SeaLantern => None, - Item::OrangeShulkerBox => None, - Item::WoodenHoe => Some(59), + Item::Compass => None, + Item::Bundle => None, + Item::FishingRod => Some(64), + Item::Clock => None, + Item::Spyglass => None, + Item::GlowstoneDust => None, + Item::Cod => None, + Item::Salmon => None, + Item::TropicalFish => None, + Item::Pufferfish => None, + Item::CookedCod => None, + Item::CookedSalmon => None, + Item::InkSac => None, + Item::GlowInkSac => None, + Item::CocoaBeans => None, + Item::WhiteDye => None, + Item::OrangeDye => None, + Item::MagentaDye => None, Item::LightBlueDye => None, - Item::Conduit => None, - Item::MilkBucket => None, - Item::CowSpawnEgg => None, - Item::NetherBricks => None, - Item::ActivatorRail => None, - Item::DarkOakDoor => None, - Item::BrownConcretePowder => None, - Item::MagentaShulkerBox => None, - Item::DeadBubbleCoralBlock => None, - Item::GraniteStairs => None, - Item::MossyStoneBrickSlab => None, - Item::PillagerSpawnEgg => None, - Item::DarkOakBoat => None, - Item::AndesiteSlab => None, - Item::Cornflower => None, - Item::LightGrayConcrete => None, - Item::FireworkStar => None, - Item::Grindstone => None, - Item::Target => None, - Item::Glass => None, - Item::ChorusPlant => None, - Item::BrainCoral => None, - Item::WaxedExposedCopper => None, - Item::Lever => None, - Item::Apple => None, - Item::Trident => Some(250), + Item::YellowDye => None, + Item::LimeDye => None, + Item::PinkDye => None, + Item::GrayDye => None, + Item::LightGrayDye => None, + Item::CyanDye => None, + Item::PurpleDye => None, + Item::BlueDye => None, + Item::BrownDye => None, + Item::GreenDye => None, + Item::RedDye => None, + Item::BlackDye => None, + Item::BoneMeal => None, + Item::Bone => None, + Item::Sugar => None, + Item::Cake => None, + Item::WhiteBed => None, + Item::OrangeBed => None, + Item::MagentaBed => None, + Item::LightBlueBed => None, + Item::YellowBed => None, + Item::LimeBed => None, Item::PinkBed => None, - Item::BlastFurnace => None, - Item::WaxedExposedCutCopperStairs => None, - Item::ChiseledQuartzBlock => None, + Item::GrayBed => None, + Item::LightGrayBed => None, + Item::CyanBed => None, + Item::PurpleBed => None, Item::BlueBed => None, - Item::PurpleWool => None, - Item::Basalt => None, - Item::WarpedButton => None, - Item::PurpleGlazedTerracotta => None, - Item::CocoaBeans => None, + Item::BrownBed => None, + Item::GreenBed => None, + Item::RedBed => None, + Item::BlackBed => None, + Item::Cookie => None, + Item::FilledMap => None, Item::Shears => Some(238), - Item::PolishedDioriteSlab => None, - Item::Pufferfish => None, - Item::MossyCobblestone => None, - Item::SmallAmethystBud => None, - Item::NetherBrickWall => None, - Item::CrimsonFence => None, - Item::NameTag => None, - Item::CyanGlazedTerracotta => None, - Item::JungleLeaves => None, - Item::GrayConcrete => None, - Item::OakSlab => None, - Item::TubeCoralBlock => None, - Item::Feather => None, - Item::WarpedWartBlock => None, - Item::EnderChest => None, - Item::PetrifiedOakSlab => None, - Item::String => None, - Item::SpruceButton => None, - Item::SpruceLog => None, - Item::InfestedMossyStoneBricks => None, - Item::LimeConcrete => None, - Item::GlowstoneDust => None, - Item::LightGrayGlazedTerracotta => None, + Item::MelonSlice => None, Item::DriedKelp => None, - Item::CrackedPolishedBlackstoneBricks => None, - Item::GreenTerracotta => None, - Item::WitherRose => None, - Item::WhiteStainedGlassPane => None, - Item::Book => None, - Item::MossBlock => None, - Item::LimeTerracotta => None, - Item::CyanCarpet => None, - Item::OrangeConcrete => None, - Item::StrippedJungleLog => None, - Item::BirchSlab => None, - Item::FurnaceMinecart => None, - Item::PinkConcrete => None, - Item::StrippedDarkOakLog => None, - Item::CrimsonDoor => None, - Item::OakLog => None, - Item::AzureBluet => None, - Item::JungleSlab => None, - Item::BrownWool => None, - Item::ZombifiedPiglinSpawnEgg => None, - Item::Dropper => None, - Item::OakPressurePlate => None, - Item::MushroomStew => None, - Item::Sponge => None, - Item::ChiseledDeepslate => None, + Item::PumpkinSeeds => None, + Item::MelonSeeds => None, + Item::Beef => None, + Item::CookedBeef => None, + Item::Chicken => None, + Item::CookedChicken => None, + Item::RottenFlesh => None, + Item::EnderPearl => None, + Item::BlazeRod => None, + Item::GhastTear => None, + Item::GoldNugget => None, + Item::NetherWart => None, + Item::Potion => None, + Item::GlassBottle => None, + Item::SpiderEye => None, + Item::FermentedSpiderEye => None, + Item::BlazePowder => None, + Item::MagmaCream => None, + Item::BrewingStand => None, + Item::Cauldron => None, + Item::EnderEye => None, + Item::GlisteringMelonSlice => None, + Item::AxolotlSpawnEgg => None, + Item::BatSpawnEgg => None, + Item::BeeSpawnEgg => None, + Item::BlazeSpawnEgg => None, + Item::CatSpawnEgg => None, + Item::CaveSpiderSpawnEgg => None, + Item::ChickenSpawnEgg => None, + Item::CodSpawnEgg => None, + Item::CowSpawnEgg => None, + Item::CreeperSpawnEgg => None, + Item::DolphinSpawnEgg => None, + Item::DonkeySpawnEgg => None, + Item::DrownedSpawnEgg => None, + Item::ElderGuardianSpawnEgg => None, + Item::EndermanSpawnEgg => None, + Item::EndermiteSpawnEgg => None, + Item::EvokerSpawnEgg => None, + Item::FoxSpawnEgg => None, + Item::GhastSpawnEgg => None, + Item::GlowSquidSpawnEgg => None, + Item::GoatSpawnEgg => None, + Item::GuardianSpawnEgg => None, + Item::HoglinSpawnEgg => None, + Item::HorseSpawnEgg => None, + Item::HuskSpawnEgg => None, + Item::LlamaSpawnEgg => None, + Item::MagmaCubeSpawnEgg => None, + Item::MooshroomSpawnEgg => None, + Item::MuleSpawnEgg => None, + Item::OcelotSpawnEgg => None, + Item::PandaSpawnEgg => None, + Item::ParrotSpawnEgg => None, + Item::PhantomSpawnEgg => None, + Item::PigSpawnEgg => None, + Item::PiglinSpawnEgg => None, + Item::PiglinBruteSpawnEgg => None, + Item::PillagerSpawnEgg => None, + Item::PolarBearSpawnEgg => None, + Item::PufferfishSpawnEgg => None, + Item::RabbitSpawnEgg => None, Item::RavagerSpawnEgg => None, + Item::SalmonSpawnEgg => None, + Item::SheepSpawnEgg => None, + Item::ShulkerSpawnEgg => None, + Item::SilverfishSpawnEgg => None, + Item::SkeletonSpawnEgg => None, + Item::SkeletonHorseSpawnEgg => None, + Item::SlimeSpawnEgg => None, + Item::SpiderSpawnEgg => None, + Item::SquidSpawnEgg => None, + Item::StraySpawnEgg => None, + Item::StriderSpawnEgg => None, + Item::TraderLlamaSpawnEgg => None, + Item::TropicalFishSpawnEgg => None, + Item::TurtleSpawnEgg => None, Item::VexSpawnEgg => None, - Item::BirchTrapdoor => None, - Item::CyanTerracotta => None, - Item::Campfire => None, - Item::RawGoldBlock => None, - Item::BlackStainedGlassPane => None, - Item::Beef => None, + Item::VillagerSpawnEgg => None, + Item::VindicatorSpawnEgg => None, + Item::WanderingTraderSpawnEgg => None, + Item::WitchSpawnEgg => None, + Item::WitherSkeletonSpawnEgg => None, + Item::WolfSpawnEgg => None, + Item::ZoglinSpawnEgg => None, + Item::ZombieSpawnEgg => None, + Item::ZombieHorseSpawnEgg => None, + Item::ZombieVillagerSpawnEgg => None, + Item::ZombifiedPiglinSpawnEgg => None, + Item::ExperienceBottle => None, + Item::FireCharge => None, + Item::WritableBook => None, + Item::WrittenBook => None, + Item::ItemFrame => None, + Item::GlowItemFrame => None, + Item::FlowerPot => None, + Item::Carrot => None, + Item::Potato => None, + Item::BakedPotato => None, + Item::PoisonousPotato => None, + Item::Map => None, + Item::GoldenCarrot => None, + Item::SkeletonSkull => None, + Item::WitherSkeletonSkull => None, + Item::PlayerHead => None, + Item::ZombieHead => None, + Item::CreeperHead => None, + Item::DragonHead => None, + Item::NetherStar => None, + Item::PumpkinPie => None, + Item::FireworkRocket => None, + Item::FireworkStar => None, + Item::EnchantedBook => None, + Item::NetherBrick => None, + Item::PrismarineShard => None, + Item::PrismarineCrystals => None, + Item::Rabbit => None, + Item::CookedRabbit => None, + Item::RabbitStew => None, + Item::RabbitFoot => None, + Item::RabbitHide => None, + Item::ArmorStand => None, + Item::IronHorseArmor => None, + Item::GoldenHorseArmor => None, + Item::DiamondHorseArmor => None, + Item::LeatherHorseArmor => None, + Item::Lead => None, + Item::NameTag => None, + Item::CommandBlockMinecart => None, + Item::Mutton => None, + Item::CookedMutton => None, + Item::WhiteBanner => None, + Item::OrangeBanner => None, + Item::MagentaBanner => None, + Item::LightBlueBanner => None, + Item::YellowBanner => None, + Item::LimeBanner => None, + Item::PinkBanner => None, + Item::GrayBanner => None, + Item::LightGrayBanner => None, + Item::CyanBanner => None, + Item::PurpleBanner => None, + Item::BlueBanner => None, + Item::BrownBanner => None, + Item::GreenBanner => None, + Item::RedBanner => None, + Item::BlackBanner => None, + Item::EndCrystal => None, + Item::ChorusFruit => None, + Item::PoppedChorusFruit => None, + Item::Beetroot => None, + Item::BeetrootSeeds => None, + Item::BeetrootSoup => None, + Item::DragonBreath => None, + Item::SplashPotion => None, + Item::SpectralArrow => None, + Item::TippedArrow => None, + Item::LingeringPotion => None, + Item::Shield => Some(336), + Item::TotemOfUndying => None, + Item::ShulkerShell => None, + Item::IronNugget => None, + Item::KnowledgeBook => None, + Item::DebugStick => None, + Item::MusicDisc13 => None, + Item::MusicDiscCat => None, + Item::MusicDiscBlocks => None, + Item::MusicDiscChirp => None, + Item::MusicDiscFar => None, + Item::MusicDiscMall => None, + Item::MusicDiscMellohi => None, + Item::MusicDiscStal => None, + Item::MusicDiscStrad => None, + Item::MusicDiscWard => None, + Item::MusicDisc11 => None, + Item::MusicDiscWait => None, + Item::MusicDiscOtherside => None, + Item::MusicDiscPigstep => None, + Item::Trident => Some(250), + Item::PhantomMembrane => None, + Item::NautilusShell => None, + Item::HeartOfTheSea => None, + Item::Crossbow => Some(326), + Item::SuspiciousStew => None, + Item::Loom => None, + Item::FlowerBannerPattern => None, + Item::CreeperBannerPattern => None, + Item::SkullBannerPattern => None, Item::MojangBannerPattern => None, - Item::SpruceFence => None, - Item::AcaciaFenceGate => None, - Item::HorseSpawnEgg => None, - Item::Dirt => None, - Item::WarpedStem => None, - Item::DarkOakLeaves => None, - Item::Snowball => None, - Item::Cauldron => None, - Item::RedWool => None, - Item::RedSandstoneStairs => None, - Item::IronBoots => Some(195), - Item::MediumAmethystBud => None, - Item::Ladder => None, - Item::DarkOakTrapdoor => None, - Item::GreenWool => None, + Item::GlobeBannerPattern => None, + Item::PiglinBannerPattern => None, + Item::Composter => None, + Item::Barrel => None, + Item::Smoker => None, + Item::BlastFurnace => None, + Item::CartographyTable => None, + Item::FletchingTable => None, + Item::Grindstone => None, + Item::SmithingTable => None, + Item::Stonecutter => None, + Item::Bell => None, + Item::Lantern => None, + Item::SoulLantern => None, + Item::SweetBerries => None, + Item::GlowBerries => None, + Item::Campfire => None, + Item::SoulCampfire => None, + Item::Shroomlight => None, + Item::Honeycomb => None, + Item::BeeNest => None, + Item::Beehive => None, + Item::HoneyBottle => None, + Item::HoneycombBlock => None, + Item::Lodestone => None, + Item::CryingObsidian => None, + Item::Blackstone => None, + Item::BlackstoneSlab => None, + Item::BlackstoneStairs => None, + Item::GildedBlackstone => None, + Item::PolishedBlackstone => None, + Item::PolishedBlackstoneSlab => None, + Item::PolishedBlackstoneStairs => None, + Item::ChiseledPolishedBlackstone => None, + Item::PolishedBlackstoneBricks => None, + Item::PolishedBlackstoneBrickSlab => None, + Item::PolishedBlackstoneBrickStairs => None, + Item::CrackedPolishedBlackstoneBricks => None, + Item::RespawnAnchor => None, + Item::Candle => None, + Item::WhiteCandle => None, + Item::OrangeCandle => None, + Item::MagentaCandle => None, + Item::LightBlueCandle => None, + Item::YellowCandle => None, + Item::LimeCandle => None, + Item::PinkCandle => None, + Item::GrayCandle => None, + Item::LightGrayCandle => None, + Item::CyanCandle => None, + Item::PurpleCandle => None, Item::BlueCandle => None, + Item::BrownCandle => None, + Item::GreenCandle => None, + Item::RedCandle => None, + Item::BlackCandle => None, + Item::SmallAmethystBud => None, + Item::MediumAmethystBud => None, + Item::LargeAmethystBud => None, + Item::AmethystCluster => None, + Item::PointedDripstone => None, } } } @@ -11098,3304 +11098,3304 @@ impl Item { #[inline] pub fn fixed_with(&self) -> Vec<&str> { match self { - Item::GuardianSpawnEgg => { - vec![] - } - Item::GreenBed => { - vec![] - } - Item::IronBars => { + Item::Stone => { vec![] } - Item::LilyOfTheValley => { + Item::Granite => { vec![] } - Item::GlassPane => { + Item::PolishedGranite => { vec![] } - Item::DarkOakButton => { + Item::Diorite => { vec![] } - Item::ZoglinSpawnEgg => { + Item::PolishedDiorite => { vec![] } - Item::GoatSpawnEgg => { + Item::Andesite => { vec![] } - Item::RedstoneOre => { + Item::PolishedAndesite => { vec![] } - Item::OxidizedCutCopper => { + Item::Deepslate => { vec![] } - Item::Kelp => { + Item::CobbledDeepslate => { vec![] } - Item::GrayTerracotta => { + Item::PolishedDeepslate => { vec![] } - Item::DeadFireCoral => { + Item::Calcite => { vec![] } - Item::MushroomStew => { + Item::Tuff => { vec![] } - Item::CyanConcretePowder => { + Item::DripstoneBlock => { vec![] } - Item::TrappedChest => { + Item::GrassBlock => { vec![] } - Item::TintedGlass => { + Item::Dirt => { vec![] } - Item::Gunpowder => { + Item::CoarseDirt => { vec![] } - Item::WaxedCutCopper => { + Item::Podzol => { vec![] } - Item::Allium => { + Item::RootedDirt => { vec![] } - Item::DeepslateBrickSlab => { + Item::CrimsonNylium => { vec![] } - Item::Scute => { + Item::WarpedNylium => { vec![] } - Item::Chain => { + Item::Cobblestone => { vec![] } - Item::CodBucket => { + Item::OakPlanks => { vec![] } - Item::EndRod => { + Item::SprucePlanks => { vec![] } - Item::IronDoor => { + Item::BirchPlanks => { vec![] } - Item::DetectorRail => { + Item::JunglePlanks => { vec![] } - Item::BlazeSpawnEgg => { + Item::AcaciaPlanks => { vec![] } - Item::GoldenSword => { + Item::DarkOakPlanks => { vec![] } - Item::Saddle => { + Item::CrimsonPlanks => { vec![] } - Item::LeatherHelmet => { + Item::WarpedPlanks => { vec![] } - Item::Lead => { + Item::OakSapling => { vec![] } - Item::DeadBrainCoralBlock => { + Item::SpruceSapling => { vec![] } - Item::Bell => { + Item::BirchSapling => { vec![] } - Item::Map => { + Item::JungleSapling => { vec![] } - Item::MusicDiscWard => { + Item::AcaciaSapling => { vec![] } - Item::Bamboo => { + Item::DarkOakSapling => { vec![] } - Item::CobblestoneWall => { + Item::Bedrock => { vec![] } - Item::Painting => { + Item::Sand => { vec![] } - Item::RedSandstone => { + Item::RedSand => { vec![] } - Item::CyanBed => { + Item::Gravel => { vec![] } - Item::DeadHornCoralFan => { + Item::CoalOre => { vec![] } - Item::BrownConcretePowder => { + Item::DeepslateCoalOre => { vec![] } - Item::NetheriteLeggings => { + Item::IronOre => { vec![] } - Item::BeetrootSoup => { + Item::DeepslateIronOre => { vec![] } - Item::InfestedStoneBricks => { + Item::CopperOre => { vec![] } - Item::GoldenShovel => { + Item::DeepslateCopperOre => { vec![] } - Item::BuddingAmethyst => { + Item::GoldOre => { vec![] } - Item::LightBlueStainedGlass => { + Item::DeepslateGoldOre => { vec![] } - Item::EmeraldBlock => { + Item::RedstoneOre => { vec![] } - Item::CrimsonButton => { + Item::DeepslateRedstoneOre => { vec![] } - Item::MusicDisc13 => { + Item::EmeraldOre => { vec![] } - Item::Barrel => { + Item::DeepslateEmeraldOre => { vec![] } - Item::PolishedGraniteStairs => { + Item::LapisOre => { vec![] } - Item::OakStairs => { + Item::DeepslateLapisOre => { vec![] } - Item::Shield => { + Item::DiamondOre => { vec![] } - Item::GrayShulkerBox => { + Item::DeepslateDiamondOre => { vec![] } - Item::PolishedAndesiteStairs => { + Item::NetherGoldOre => { vec![] } - Item::LightGrayWool => { + Item::NetherQuartzOre => { vec![] } - Item::Vine => { + Item::AncientDebris => { vec![] } - Item::InfestedDeepslate => { + Item::CoalBlock => { vec![] } - Item::TropicalFishBucket => { + Item::RawIronBlock => { vec![] } - Item::SmoothRedSandstoneStairs => { + Item::RawCopperBlock => { vec![] } - Item::StoneHoe => { + Item::RawGoldBlock => { vec![] } - Item::YellowCarpet => { + Item::AmethystBlock => { vec![] } - Item::BrownMushroom => { + Item::BuddingAmethyst => { vec![] } - Item::IronHelmet => { + Item::IronBlock => { vec![] } - Item::LightGrayCarpet => { + Item::CopperBlock => { vec![] } - Item::Apple => { + Item::GoldBlock => { vec![] } - Item::Wheat => { + Item::DiamondBlock => { vec![] } - Item::SalmonSpawnEgg => { + Item::NetheriteBlock => { vec![] } - Item::PurpleCandle => { + Item::ExposedCopper => { vec![] } - Item::StoneBrickStairs => { + Item::WeatheredCopper => { vec![] } - Item::AcaciaFence => { + Item::OxidizedCopper => { vec![] } - Item::Snow => { + Item::CutCopper => { vec![] } - Item::CookedSalmon => { + Item::ExposedCutCopper => { vec![] } - Item::AcaciaPlanks => { + Item::WeatheredCutCopper => { vec![] } - Item::CoalOre => { + Item::OxidizedCutCopper => { vec![] } - Item::StrippedCrimsonHyphae => { + Item::CutCopperStairs => { vec![] } - Item::CutCopperSlab => { + Item::ExposedCutCopperStairs => { vec![] } - Item::LightBlueGlazedTerracotta => { + Item::WeatheredCutCopperStairs => { vec![] } - Item::GrayCandle => { + Item::OxidizedCutCopperStairs => { vec![] } - Item::SoulLantern => { + Item::CutCopperSlab => { vec![] } - Item::CrimsonFungus => { + Item::ExposedCutCopperSlab => { vec![] } - Item::BlueConcrete => { + Item::WeatheredCutCopperSlab => { vec![] } - Item::DarkPrismarineSlab => { + Item::OxidizedCutCopperSlab => { vec![] } - Item::CarrotOnAStick => { + Item::WaxedCopperBlock => { vec![] } - Item::IronAxe => { + Item::WaxedExposedCopper => { vec![] } - Item::CobbledDeepslateWall => { + Item::WaxedWeatheredCopper => { vec![] } - Item::BlackConcretePowder => { + Item::WaxedOxidizedCopper => { vec![] } - Item::LightBlueDye => { + Item::WaxedCutCopper => { vec![] } - Item::HopperMinecart => { + Item::WaxedExposedCutCopper => { vec![] } - Item::LightGrayStainedGlass => { + Item::WaxedWeatheredCutCopper => { vec![] } - Item::BrownStainedGlass => { + Item::WaxedOxidizedCutCopper => { vec![] } - Item::ChickenSpawnEgg => { + Item::WaxedCutCopperStairs => { vec![] } - Item::CyanDye => { + Item::WaxedExposedCutCopperStairs => { vec![] } - Item::PinkWool => { + Item::WaxedWeatheredCutCopperStairs => { vec![] } - Item::PinkBed => { + Item::WaxedOxidizedCutCopperStairs => { vec![] } - Item::OrangeShulkerBox => { + Item::WaxedCutCopperSlab => { vec![] } - Item::Bucket => { + Item::WaxedExposedCutCopperSlab => { vec![] } - Item::Redstone => { + Item::WaxedWeatheredCutCopperSlab => { vec![] } - Item::WhiteCarpet => { + Item::WaxedOxidizedCutCopperSlab => { vec![] } - Item::BrownTerracotta => { + Item::OakLog => { vec![] } - Item::BirchSign => { + Item::SpruceLog => { vec![] } - Item::DarkOakStairs => { + Item::BirchLog => { vec![] } - Item::BirchPlanks => { + Item::JungleLog => { vec![] } - Item::ChainmailBoots => { + Item::AcaciaLog => { vec![] } - Item::RedstoneTorch => { + Item::DarkOakLog => { vec![] } - Item::Torch => { + Item::CrimsonStem => { vec![] } - Item::BlackstoneSlab => { + Item::WarpedStem => { vec![] } - Item::WitchSpawnEgg => { + Item::StrippedOakLog => { vec![] } - Item::MusicDiscMall => { + Item::StrippedSpruceLog => { vec![] } - Item::EndermiteSpawnEgg => { + Item::StrippedBirchLog => { vec![] } - Item::Glowstone => { + Item::StrippedJungleLog => { vec![] } - Item::WanderingTraderSpawnEgg => { + Item::StrippedAcaciaLog => { vec![] } - Item::Deepslate => { + Item::StrippedDarkOakLog => { vec![] } - Item::WaxedWeatheredCutCopper => { + Item::StrippedCrimsonStem => { vec![] } - Item::AmethystShard => { + Item::StrippedWarpedStem => { vec![] } - Item::LilyPad => { + Item::StrippedOakWood => { vec![] } - Item::AcaciaDoor => { + Item::StrippedSpruceWood => { vec![] } - Item::Observer => { + Item::StrippedBirchWood => { vec![] } - Item::DarkOakTrapdoor => { + Item::StrippedJungleWood => { vec![] } - Item::WrittenBook => { + Item::StrippedAcaciaWood => { vec![] } - Item::RawCopper => { + Item::StrippedDarkOakWood => { vec![] } - Item::Obsidian => { + Item::StrippedCrimsonHyphae => { vec![] } - Item::CobbledDeepslate => { + Item::StrippedWarpedHyphae => { vec![] } - Item::WoodenAxe => { + Item::OakWood => { vec![] } - Item::Compass => { + Item::SpruceWood => { vec![] } - Item::SpruceSapling => { + Item::BirchWood => { vec![] } - Item::MusicDiscWait => { + Item::JungleWood => { vec![] } - Item::PetrifiedOakSlab => { + Item::AcaciaWood => { vec![] } - Item::PolishedBasalt => { + Item::DarkOakWood => { vec![] } - Item::CyanGlazedTerracotta => { + Item::CrimsonHyphae => { vec![] } - Item::LightBlueConcrete => { + Item::WarpedHyphae => { vec![] } - Item::GoldNugget => { + Item::OakLeaves => { vec![] } - Item::WarpedFungus => { + Item::SpruceLeaves => { vec![] } - Item::CrackedStoneBricks => { + Item::BirchLeaves => { vec![] } - Item::PolishedBlackstoneSlab => { + Item::JungleLeaves => { vec![] } - Item::FireCoralBlock => { + Item::AcaciaLeaves => { vec![] } - Item::LightGrayConcretePowder => { + Item::DarkOakLeaves => { vec![] } - Item::QuartzPillar => { + Item::AzaleaLeaves => { vec![] } - Item::Beef => { + Item::FloweringAzaleaLeaves => { vec![] } - Item::ZombieHorseSpawnEgg => { + Item::Sponge => { vec![] } - Item::IronPickaxe => { + Item::WetSponge => { vec![] } - Item::StrippedBirchLog => { + Item::Glass => { vec![] } - Item::BatSpawnEgg => { + Item::TintedGlass => { vec![] } - Item::StoneShovel => { + Item::LapisBlock => { vec![] } - Item::ChiseledQuartzBlock => { + Item::Sandstone => { vec![] } - Item::SugarCane => { + Item::ChiseledSandstone => { vec![] } - Item::DiamondLeggings => { + Item::CutSandstone => { vec![] } - Item::Melon => { + Item::Cobweb => { vec![] } - Item::MagentaBed => { + Item::Grass => { vec![] } - Item::Stick => { + Item::Fern => { vec![] } - Item::VexSpawnEgg => { + Item::Azalea => { vec![] } - Item::NetherStar => { + Item::FloweringAzalea => { vec![] } - Item::Mycelium => { + Item::DeadBush => { vec![] } - Item::IronNugget => { + Item::Seagrass => { vec![] } - Item::PinkCandle => { + Item::SeaPickle => { vec![] } - Item::MagentaBanner => { + Item::WhiteWool => { vec![] } - Item::MossyCobblestoneStairs => { + Item::OrangeWool => { vec![] } - Item::EnchantedGoldenApple => { + Item::MagentaWool => { vec![] } - Item::SnowBlock => { + Item::LightBlueWool => { vec![] } - Item::FishingRod => { + Item::YellowWool => { vec![] } - Item::RedStainedGlass => { + Item::LimeWool => { vec![] } - Item::LimeStainedGlass => { + Item::PinkWool => { vec![] } - Item::BeeNest => { + Item::GrayWool => { vec![] } - Item::SlimeSpawnEgg => { + Item::LightGrayWool => { vec![] } - Item::DriedKelp => { + Item::CyanWool => { vec![] } - Item::CryingObsidian => { + Item::PurpleWool => { vec![] } - Item::TubeCoral => { + Item::BlueWool => { vec![] } - Item::MelonSeeds => { + Item::BrownWool => { vec![] } - Item::TurtleEgg => { + Item::GreenWool => { vec![] } - Item::RawCopperBlock => { + Item::RedWool => { vec![] } - Item::Netherrack => { + Item::BlackWool => { vec![] } - Item::PrismarineShard => { + Item::Dandelion => { vec![] } - Item::EndermanSpawnEgg => { + Item::Poppy => { vec![] } - Item::CutCopper => { + Item::BlueOrchid => { vec![] } - Item::Charcoal => { + Item::Allium => { vec![] } - Item::Cactus => { + Item::AzureBluet => { vec![] } - Item::DeadHornCoral => { + Item::RedTulip => { vec![] } - Item::OakSlab => { + Item::OrangeTulip => { vec![] } - Item::DonkeySpawnEgg => { + Item::WhiteTulip => { vec![] } - Item::LightWeightedPressurePlate => { + Item::PinkTulip => { vec![] } - Item::FilledMap => { + Item::OxeyeDaisy => { vec![] } - Item::NautilusShell => { + Item::Cornflower => { vec![] } - Item::WarpedSlab => { + Item::LilyOfTheValley => { vec![] } - Item::ParrotSpawnEgg => { + Item::WitherRose => { vec![] } - Item::SquidSpawnEgg => { + Item::SporeBlossom => { vec![] } - Item::DeepslateRedstoneOre => { + Item::BrownMushroom => { vec![] } - Item::Bricks => { + Item::RedMushroom => { vec![] } - Item::DarkOakSign => { + Item::CrimsonFungus => { vec![] } - Item::CookedChicken => { + Item::WarpedFungus => { vec![] } - Item::StoneSword => { + Item::CrimsonRoots => { vec![] } - Item::BlueWool => { + Item::WarpedRoots => { vec![] } - Item::DeadTubeCoralBlock => { + Item::NetherSprouts => { vec![] } - Item::RedBed => { + Item::WeepingVines => { vec![] } - Item::RawIronBlock => { + Item::TwistingVines => { vec![] } - Item::SmallAmethystBud => { + Item::SugarCane => { vec![] } - Item::CrimsonRoots => { + Item::Kelp => { vec![] } - Item::PurpurBlock => { + Item::MossCarpet => { vec![] } - Item::Pumpkin => { + Item::MossBlock => { vec![] } - Item::DeadFireCoralFan => { + Item::HangingRoots => { vec![] } - Item::MusicDiscPigstep => { + Item::BigDripleaf => { vec![] } - Item::MusicDiscCat => { + Item::SmallDripleaf => { vec![] } - Item::DeadFireCoralBlock => { + Item::Bamboo => { vec![] } - Item::CatSpawnEgg => { + Item::OakSlab => { vec![] } - Item::HoneyBottle => { + Item::SpruceSlab => { vec![] } - Item::DripstoneBlock => { + Item::BirchSlab => { vec![] } - Item::DeadBubbleCoralFan => { + Item::JungleSlab => { vec![] } - Item::CyanConcrete => { + Item::AcaciaSlab => { vec![] } - Item::BirchStairs => { + Item::DarkOakSlab => { vec![] } - Item::MusicDiscMellohi => { + Item::CrimsonSlab => { vec![] } - Item::DarkOakFenceGate => { + Item::WarpedSlab => { vec![] } - Item::HorseSpawnEgg => { + Item::StoneSlab => { vec![] } - Item::PolishedGranite => { + Item::SmoothStoneSlab => { vec![] } - Item::FloweringAzaleaLeaves => { + Item::SandstoneSlab => { vec![] } - Item::ExposedCutCopperStairs => { + Item::CutSandstoneSlab => { vec![] } - Item::OrangeTulip => { + Item::PetrifiedOakSlab => { vec![] } - Item::BlueGlazedTerracotta => { + Item::CobblestoneSlab => { vec![] } - Item::JungleBoat => { + Item::BrickSlab => { vec![] } - Item::StructureVoid => { + Item::StoneBrickSlab => { vec![] } - Item::BlueStainedGlass => { + Item::NetherBrickSlab => { vec![] } - Item::WitherRose => { + Item::QuartzSlab => { vec![] } - Item::BeetrootSeeds => { + Item::RedSandstoneSlab => { vec![] } - Item::PigSpawnEgg => { + Item::CutRedSandstoneSlab => { vec![] } - Item::OxeyeDaisy => { + Item::PurpurSlab => { vec![] } - Item::JungleFenceGate => { + Item::PrismarineSlab => { vec![] } - Item::CookedPorkchop => { + Item::PrismarineBrickSlab => { vec![] } - Item::GoldenApple => { + Item::DarkPrismarineSlab => { vec![] } - Item::AndesiteSlab => { + Item::SmoothQuartz => { vec![] } - Item::GreenConcrete => { + Item::SmoothRedSandstone => { vec![] } - Item::StrippedJungleLog => { + Item::SmoothSandstone => { vec![] } - Item::StrippedAcaciaWood => { + Item::SmoothStone => { vec![] } - Item::OakLog => { + Item::Bricks => { vec![] } - Item::WeepingVines => { + Item::Bookshelf => { vec![] } - Item::LapisOre => { + Item::MossyCobblestone => { vec![] } - Item::PoppedChorusFruit => { + Item::Obsidian => { vec![] } - Item::MossyCobblestoneWall => { + Item::Torch => { vec![] } - Item::GreenCandle => { + Item::EndRod => { vec![] } - Item::Spyglass => { + Item::ChorusPlant => { vec![] } - Item::BrownGlazedTerracotta => { + Item::ChorusFlower => { vec![] } - Item::OakButton => { + Item::PurpurBlock => { vec![] } - Item::LightBlueConcretePowder => { + Item::PurpurPillar => { vec![] } - Item::Poppy => { + Item::PurpurStairs => { vec![] } - Item::BirchTrapdoor => { + Item::Spawner => { vec![] } - Item::WaxedWeatheredCopper => { + Item::OakStairs => { vec![] } - Item::ZombieVillagerSpawnEgg => { + Item::Chest => { vec![] } - Item::WritableBook => { + Item::CraftingTable => { vec![] } - Item::Cobblestone => { + Item::Farmland => { vec![] } - Item::Anvil => { + Item::Furnace => { vec![] } - Item::LimeStainedGlassPane => { + Item::Ladder => { vec![] } - Item::EndStoneBrickSlab => { + Item::CobblestoneStairs => { vec![] } - Item::LightningRod => { + Item::Snow => { vec![] } - Item::SpruceLog => { + Item::Ice => { vec![] } - Item::JungleDoor => { + Item::SnowBlock => { vec![] } - Item::BlackstoneWall => { + Item::Cactus => { vec![] } - Item::FermentedSpiderEye => { + Item::Clay => { vec![] } - Item::WitherSkeletonSpawnEgg => { + Item::Jukebox => { vec![] } - Item::Rabbit => { + Item::OakFence => { vec![] } - Item::PinkShulkerBox => { + Item::SpruceFence => { vec![] } - Item::SmoothQuartzSlab => { + Item::BirchFence => { vec![] } - Item::PrismarineBricks => { + Item::JungleFence => { vec![] } - Item::Andesite => { + Item::AcaciaFence => { vec![] } - Item::DeepslateTileWall => { + Item::DarkOakFence => { vec![] } - Item::DiamondPickaxe => { + Item::CrimsonFence => { vec![] } - Item::GlowBerries => { + Item::WarpedFence => { vec![] } - Item::ChiseledSandstone => { + Item::Pumpkin => { vec![] } - Item::DeadHornCoralBlock => { + Item::CarvedPumpkin => { vec![] } - Item::GreenDye => { + Item::JackOLantern => { vec![] } - Item::WaxedCutCopperSlab => { + Item::Netherrack => { vec![] } - Item::Coal => { + Item::SoulSand => { vec![] } - Item::LapisLazuli => { + Item::SoulSoil => { vec![] } - Item::CutRedSandstone => { + Item::Basalt => { vec![] } - Item::ChainCommandBlock => { + Item::PolishedBasalt => { vec![] } - Item::QuartzBlock => { + Item::SmoothBasalt => { vec![] } - Item::RedstoneBlock => { + Item::SoulTorch => { vec![] } - Item::WolfSpawnEgg => { + Item::Glowstone => { vec![] } - Item::GrayDye => { + Item::InfestedStone => { vec![] } - Item::LimeShulkerBox => { + Item::InfestedCobblestone => { vec![] } - Item::LimeBanner => { + Item::InfestedStoneBricks => { vec![] } - Item::DarkOakFence => { + Item::InfestedMossyStoneBricks => { vec![] } - Item::Carrot => { + Item::InfestedCrackedStoneBricks => { vec![] } - Item::RedConcrete => { + Item::InfestedChiseledStoneBricks => { vec![] } - Item::FurnaceMinecart => { + Item::InfestedDeepslate => { vec![] } - Item::WaxedExposedCutCopper => { + Item::StoneBricks => { vec![] } - Item::GraniteSlab => { + Item::MossyStoneBricks => { vec![] } - Item::Rail => { + Item::CrackedStoneBricks => { vec![] } - Item::PhantomSpawnEgg => { + Item::ChiseledStoneBricks => { vec![] } - Item::HeavyWeightedPressurePlate => { + Item::DeepslateBricks => { vec![] } - Item::Bowl => { + Item::CrackedDeepslateBricks => { vec![] } - Item::BlueShulkerBox => { + Item::DeepslateTiles => { vec![] } - Item::PrismarineCrystals => { + Item::CrackedDeepslateTiles => { vec![] } - Item::EndCrystal => { + Item::ChiseledDeepslate => { vec![] } - Item::BlackstoneStairs => { + Item::BrownMushroomBlock => { vec![] } - Item::Sunflower => { + Item::RedMushroomBlock => { vec![] } - Item::StrippedOakWood => { + Item::MushroomStem => { vec![] } - Item::SmallDripleaf => { + Item::IronBars => { vec![] } - Item::ChiseledNetherBricks => { + Item::Chain => { vec![] } - Item::LightGrayGlazedTerracotta => { + Item::GlassPane => { vec![] } - Item::Dispenser => { + Item::Melon => { vec![] } - Item::CyanStainedGlassPane => { + Item::Vine => { vec![] } - Item::RedSandstoneStairs => { + Item::GlowLichen => { vec![] } - Item::GrayBanner => { + Item::BrickStairs => { vec![] } - Item::HoneycombBlock => { + Item::StoneBrickStairs => { vec![] } - Item::CrackedPolishedBlackstoneBricks => { + Item::Mycelium => { vec![] } - Item::GoldBlock => { + Item::LilyPad => { vec![] } - Item::PinkStainedGlassPane => { + Item::NetherBricks => { vec![] } - Item::ChiseledRedSandstone => { + Item::CrackedNetherBricks => { vec![] } - Item::CrimsonSlab => { + Item::ChiseledNetherBricks => { vec![] } - Item::SilverfishSpawnEgg => { + Item::NetherBrickFence => { vec![] } - Item::GlisteringMelonSlice => { + Item::NetherBrickStairs => { vec![] } - Item::MusicDiscOtherside => { + Item::EnchantingTable => { vec![] } - Item::DeepslateIronOre => { + Item::EndPortalFrame => { vec![] } - Item::WarpedFence => { + Item::EndStone => { vec![] } - Item::LightGrayBed => { + Item::EndStoneBricks => { vec![] } - Item::VillagerSpawnEgg => { + Item::DragonEgg => { vec![] } - Item::FlintAndSteel => { + Item::SandstoneStairs => { vec![] } - Item::NetherGoldOre => { + Item::EnderChest => { vec![] } - Item::SmoothRedSandstone => { + Item::EmeraldBlock => { vec![] } - Item::WarpedNylium => { + Item::SpruceStairs => { vec![] } - Item::RabbitSpawnEgg => { + Item::BirchStairs => { vec![] } - Item::BubbleCoralBlock => { + Item::JungleStairs => { vec![] } - Item::EnchantedBook => { + Item::CrimsonStairs => { vec![] } - Item::CopperIngot => { + Item::WarpedStairs => { vec![] } - Item::BlueBanner => { + Item::CommandBlock => { vec![] } - Item::NetheriteIngot => { + Item::Beacon => { vec![] } - Item::WarpedButton => { + Item::CobblestoneWall => { vec![] } - Item::PurpleBanner => { + Item::MossyCobblestoneWall => { vec![] } - Item::CyanShulkerBox => { + Item::BrickWall => { vec![] } - Item::GrayWool => { + Item::PrismarineWall => { vec![] } - Item::SkeletonSkull => { + Item::RedSandstoneWall => { vec![] } - Item::ChorusPlant => { + Item::MossyStoneBrickWall => { vec![] } - Item::Honeycomb => { + Item::GraniteWall => { vec![] } - Item::SpruceWood => { + Item::StoneBrickWall => { vec![] } Item::NetherBrickWall => { vec![] } - Item::MusicDiscFar => { + Item::AndesiteWall => { vec![] } - Item::SlimeBall => { + Item::RedNetherBrickWall => { vec![] } - Item::NetheriteAxe => { + Item::SandstoneWall => { vec![] } - Item::WheatSeeds => { + Item::EndStoneBrickWall => { vec![] } - Item::SmoothStoneSlab => { + Item::DioriteWall => { vec![] } - Item::CrimsonStem => { + Item::BlackstoneWall => { vec![] } - Item::RedstoneLamp => { + Item::PolishedBlackstoneWall => { vec![] } - Item::EvokerSpawnEgg => { + Item::PolishedBlackstoneBrickWall => { vec![] } - Item::GoldenHorseArmor => { + Item::CobbledDeepslateWall => { vec![] } - Item::OxidizedCutCopperSlab => { + Item::PolishedDeepslateWall => { vec![] } - Item::BlackWool => { + Item::DeepslateBrickWall => { vec![] } - Item::PinkBanner => { + Item::DeepslateTileWall => { vec![] } - Item::DeadBrainCoral => { + Item::Anvil => { vec![] } - Item::OakSign => { + Item::ChippedAnvil => { vec![] } - Item::FlowerBannerPattern => { + Item::DamagedAnvil => { vec![] } - Item::NetheriteScrap => { + Item::ChiseledQuartzBlock => { vec![] } - Item::GlowLichen => { + Item::QuartzBlock => { vec![] } - Item::Cod => { + Item::QuartzBricks => { vec![] } - Item::Ice => { + Item::QuartzPillar => { vec![] } - Item::OrangeBanner => { + Item::QuartzStairs => { vec![] } - Item::PinkConcrete => { + Item::WhiteTerracotta => { vec![] } - Item::AcaciaSign => { + Item::OrangeTerracotta => { vec![] } - Item::DiamondShovel => { + Item::MagentaTerracotta => { vec![] } - Item::LightBlueCarpet => { + Item::LightBlueTerracotta => { vec![] } - Item::PolishedBlackstoneStairs => { + Item::YellowTerracotta => { vec![] } - Item::IronTrapdoor => { + Item::LimeTerracotta => { vec![] } - Item::Prismarine => { + Item::PinkTerracotta => { vec![] } - Item::DeepslateCopperOre => { + Item::GrayTerracotta => { vec![] } - Item::GhastTear => { + Item::LightGrayTerracotta => { vec![] } - Item::JungleWood => { + Item::CyanTerracotta => { vec![] } - Item::WaxedWeatheredCutCopperSlab => { + Item::PurpleTerracotta => { vec![] } - Item::PolishedBlackstoneBrickWall => { + Item::BlueTerracotta => { vec![] } - Item::ShulkerSpawnEgg => { + Item::BrownTerracotta => { vec![] } - Item::String => { + Item::GreenTerracotta => { vec![] } - Item::CartographyTable => { + Item::RedTerracotta => { vec![] } - Item::MediumAmethystBud => { + Item::BlackTerracotta => { vec![] } - Item::IronShovel => { + Item::Barrier => { vec![] } - Item::Egg => { + Item::Light => { vec![] } - Item::RepeatingCommandBlock => { + Item::HayBlock => { vec![] } - Item::BrainCoralFan => { + Item::WhiteCarpet => { vec![] } - Item::JungleButton => { + Item::OrangeCarpet => { vec![] } - Item::Book => { + Item::MagentaCarpet => { vec![] } - Item::BlueOrchid => { + Item::LightBlueCarpet => { vec![] } - Item::GoldenHelmet => { + Item::YellowCarpet => { vec![] } - Item::FoxSpawnEgg => { + Item::LimeCarpet => { vec![] } - Item::MelonSlice => { + Item::PinkCarpet => { vec![] } - Item::EndStone => { + Item::GrayCarpet => { vec![] } - Item::WeatheredCutCopper => { + Item::LightGrayCarpet => { vec![] } - Item::OrangeConcretePowder => { + Item::CyanCarpet => { vec![] } - Item::SprucePressurePlate => { + Item::PurpleCarpet => { vec![] } - Item::LimeTerracotta => { + Item::BlueCarpet => { vec![] } - Item::YellowWool => { + Item::BrownCarpet => { vec![] } - Item::GreenStainedGlassPane => { + Item::GreenCarpet => { vec![] } - Item::OrangeTerracotta => { + Item::RedCarpet => { vec![] } - Item::RedBanner => { + Item::BlackCarpet => { vec![] } - Item::SkullBannerPattern => { + Item::Terracotta => { vec![] } - Item::SoulSand => { + Item::PackedIce => { vec![] } - Item::SprucePlanks => { + Item::AcaciaStairs => { vec![] } - Item::OxidizedCopper => { + Item::DarkOakStairs => { vec![] } - Item::HangingRoots => { + Item::DirtPath => { vec![] } - Item::WhiteBed => { + Item::Sunflower => { vec![] } - Item::TraderLlamaSpawnEgg => { + Item::Lilac => { vec![] } - Item::OakSapling => { + Item::RoseBush => { vec![] } - Item::CyanWool => { + Item::Peony => { vec![] } - Item::LingeringPotion => { + Item::TallGrass => { vec![] } - Item::BrickSlab => { + Item::LargeFern => { vec![] } - Item::MooshroomSpawnEgg => { + Item::WhiteStainedGlass => { vec![] } - Item::GreenConcretePowder => { + Item::OrangeStainedGlass => { vec![] } - Item::WoodenSword => { + Item::MagentaStainedGlass => { vec![] } - Item::Lectern => { + Item::LightBlueStainedGlass => { vec![] } - Item::BoneBlock => { + Item::YellowStainedGlass => { vec![] } - Item::CobbledDeepslateSlab => { + Item::LimeStainedGlass => { vec![] } - Item::CocoaBeans => { + Item::PinkStainedGlass => { vec![] } - Item::BlackGlazedTerracotta => { + Item::GrayStainedGlass => { vec![] } - Item::CommandBlock => { + Item::LightGrayStainedGlass => { vec![] } - Item::ChainmailChestplate => { + Item::CyanStainedGlass => { vec![] } - Item::Diorite => { + Item::PurpleStainedGlass => { vec![] } - Item::Smoker => { + Item::BlueStainedGlass => { vec![] } - Item::GreenStainedGlass => { + Item::BrownStainedGlass => { vec![] } - Item::ZombieHead => { + Item::GreenStainedGlass => { vec![] } - Item::CookedMutton => { + Item::RedStainedGlass => { vec![] } - Item::GlowstoneDust => { + Item::BlackStainedGlass => { vec![] } - Item::ChiseledPolishedBlackstone => { + Item::WhiteStainedGlassPane => { vec![] } - Item::SmithingTable => { + Item::OrangeStainedGlassPane => { vec![] } - Item::DolphinSpawnEgg => { + Item::MagentaStainedGlassPane => { vec![] } - Item::Dirt => { + Item::LightBlueStainedGlassPane => { vec![] } - Item::NetherBrickSlab => { + Item::YellowStainedGlassPane => { vec![] } - Item::NetheriteHelmet => { + Item::LimeStainedGlassPane => { vec![] } - Item::BirchFenceGate => { + Item::PinkStainedGlassPane => { vec![] } - Item::Loom => { + Item::GrayStainedGlassPane => { vec![] } - Item::RedShulkerBox => { + Item::LightGrayStainedGlassPane => { vec![] } - Item::DeepslateDiamondOre => { + Item::CyanStainedGlassPane => { vec![] } - Item::JungleLog => { + Item::PurpleStainedGlassPane => { vec![] } - Item::OakLeaves => { + Item::BlueStainedGlassPane => { vec![] } - Item::SpruceLeaves => { + Item::BrownStainedGlassPane => { vec![] } - Item::WarpedRoots => { + Item::GreenStainedGlassPane => { vec![] } - Item::CraftingTable => { + Item::RedStainedGlassPane => { vec![] } - Item::LightBlueStainedGlassPane => { + Item::BlackStainedGlassPane => { vec![] } - Item::LightBlueBed => { + Item::Prismarine => { vec![] } - Item::WaxedExposedCutCopperStairs => { + Item::PrismarineBricks => { vec![] } - Item::WaxedExposedCutCopperSlab => { + Item::DarkPrismarine => { vec![] } - Item::Podzol => { + Item::PrismarineStairs => { vec![] } - Item::AcaciaLog => { + Item::PrismarineBrickStairs => { vec![] } - Item::QuartzStairs => { + Item::DarkPrismarineStairs => { vec![] } - Item::TubeCoralBlock => { + Item::SeaLantern => { vec![] } - Item::DaylightDetector => { + Item::RedSandstone => { vec![] } - Item::PowderSnowBucket => { + Item::ChiseledRedSandstone => { vec![] } - Item::AmethystCluster => { + Item::CutRedSandstone => { vec![] } - Item::RawGoldBlock => { + Item::RedSandstoneStairs => { vec![] } - Item::LightBlueWool => { + Item::RepeatingCommandBlock => { vec![] } - Item::CrimsonPressurePlate => { + Item::ChainCommandBlock => { vec![] } Item::MagmaBlock => { vec![] } - Item::TotemOfUndying => { + Item::NetherWartBlock => { vec![] } - Item::CommandBlockMinecart => { + Item::WarpedWartBlock => { vec![] } - Item::DebugStick => { + Item::RedNetherBricks => { vec![] } - Item::CaveSpiderSpawnEgg => { + Item::BoneBlock => { vec![] } - Item::WarpedDoor => { + Item::StructureVoid => { vec![] } - Item::NetherBrickFence => { + Item::ShulkerBox => { vec![] } - Item::DeadBubbleCoralBlock => { + Item::WhiteShulkerBox => { vec![] } - Item::BlueIce => { + Item::OrangeShulkerBox => { vec![] } - Item::DeadBrainCoralFan => { + Item::MagentaShulkerBox => { vec![] } - Item::GoldenHoe => { + Item::LightBlueShulkerBox => { vec![] } - Item::DeadTubeCoral => { + Item::YellowShulkerBox => { vec![] } - Item::BeeSpawnEgg => { + Item::LimeShulkerBox => { vec![] } - Item::PurpleTerracotta => { + Item::PinkShulkerBox => { + vec![] + } + Item::GrayShulkerBox => { + vec![] + } + Item::LightGrayShulkerBox => { vec![] } - Item::BrownCarpet => { + Item::CyanShulkerBox => { vec![] } - Item::BrickStairs => { + Item::PurpleShulkerBox => { vec![] } - Item::Barrier => { + Item::BlueShulkerBox => { vec![] } - Item::TippedArrow => { + Item::BrownShulkerBox => { vec![] } - Item::Bow => { + Item::GreenShulkerBox => { vec![] } - Item::GoldenPickaxe => { + Item::RedShulkerBox => { vec![] } - Item::WarpedSign => { + Item::BlackShulkerBox => { vec![] } - Item::StrippedBirchWood => { + Item::WhiteGlazedTerracotta => { vec![] } - Item::DioriteStairs => { + Item::OrangeGlazedTerracotta => { vec![] } - Item::StrippedAcaciaLog => { + Item::MagentaGlazedTerracotta => { vec![] } - Item::BirchFence => { + Item::LightBlueGlazedTerracotta => { vec![] } - Item::WarpedFenceGate => { + Item::YellowGlazedTerracotta => { vec![] } - Item::InfestedMossyStoneBricks => { + Item::LimeGlazedTerracotta => { vec![] } - Item::TntMinecart => { + Item::PinkGlazedTerracotta => { vec![] } - Item::Elytra => { + Item::GrayGlazedTerracotta => { vec![] } - Item::GoldenBoots => { + Item::LightGrayGlazedTerracotta => { vec![] } - Item::RedNetherBrickSlab => { + Item::CyanGlazedTerracotta => { vec![] } - Item::CyanBanner => { + Item::PurpleGlazedTerracotta => { vec![] } - Item::SpiderSpawnEgg => { + Item::BlueGlazedTerracotta => { vec![] } - Item::WaxedWeatheredCutCopperStairs => { + Item::BrownGlazedTerracotta => { vec![] } - Item::BubbleCoralFan => { + Item::GreenGlazedTerracotta => { vec![] } - Item::Ladder => { + Item::RedGlazedTerracotta => { vec![] } - Item::CarvedPumpkin => { + Item::BlackGlazedTerracotta => { vec![] } - Item::IronBoots => { + Item::WhiteConcrete => { vec![] } - Item::ChiseledDeepslate => { + Item::OrangeConcrete => { vec![] } - Item::BirchLeaves => { + Item::MagentaConcrete => { vec![] } - Item::Porkchop => { + Item::LightBlueConcrete => { vec![] } - Item::RabbitHide => { + Item::YellowConcrete => { vec![] } - Item::IronHoe => { + Item::LimeConcrete => { vec![] } - Item::FireworkRocket => { + Item::PinkConcrete => { vec![] } - Item::LimeGlazedTerracotta => { + Item::GrayConcrete => { vec![] } - Item::BoneMeal => { + Item::LightGrayConcrete => { vec![] } - Item::DeepslateLapisOre => { + Item::CyanConcrete => { vec![] } - Item::LimeWool => { + Item::PurpleConcrete => { vec![] } - Item::Bundle => { + Item::BlueConcrete => { vec![] } - Item::CutRedSandstoneSlab => { + Item::BrownConcrete => { vec![] } - Item::WeatheredCutCopperStairs => { + Item::GreenConcrete => { vec![] } - Item::MagentaConcretePowder => { + Item::RedConcrete => { vec![] } - Item::BirchPressurePlate => { + Item::BlackConcrete => { vec![] } - Item::SkeletonSpawnEgg => { + Item::WhiteConcretePowder => { vec![] } - Item::LargeAmethystBud => { + Item::OrangeConcretePowder => { vec![] } - Item::GoldIngot => { + Item::MagentaConcretePowder => { vec![] } - Item::WaxedOxidizedCutCopperSlab => { + Item::LightBlueConcretePowder => { vec![] } - Item::BirchLog => { + Item::YellowConcretePowder => { vec![] } - Item::ShulkerBox => { + Item::LimeConcretePowder => { vec![] } - Item::BrownStainedGlassPane => { + Item::PinkConcretePowder => { vec![] } - Item::BlueTerracotta => { + Item::GrayConcretePowder => { vec![] } - Item::GlowInkSac => { + Item::LightGrayConcretePowder => { vec![] } - Item::SmoothBasalt => { + Item::CyanConcretePowder => { vec![] } - Item::Repeater => { + Item::PurpleConcretePowder => { vec![] } - Item::Leather => { + Item::BlueConcretePowder => { vec![] } - Item::SmoothQuartzStairs => { + Item::BrownConcretePowder => { vec![] } - Item::VindicatorSpawnEgg => { + Item::GreenConcretePowder => { vec![] } - Item::PoisonousPotato => { + Item::RedConcretePowder => { vec![] } - Item::StrippedSpruceLog => { + Item::BlackConcretePowder => { vec![] } - Item::PrismarineBrickSlab => { + Item::TurtleEgg => { vec![] } - Item::DarkOakSapling => { + Item::DeadTubeCoralBlock => { vec![] } - Item::DioriteWall => { + Item::DeadBrainCoralBlock => { vec![] } - Item::MuleSpawnEgg => { + Item::DeadBubbleCoralBlock => { vec![] } - Item::RabbitFoot => { + Item::DeadFireCoralBlock => { vec![] } - Item::LightGrayBanner => { + Item::DeadHornCoralBlock => { vec![] } - Item::InfestedStone => { + Item::TubeCoralBlock => { vec![] } - Item::CutSandstone => { + Item::BrainCoralBlock => { vec![] } - Item::MagentaConcrete => { + Item::BubbleCoralBlock => { vec![] } - Item::Tnt => { + Item::FireCoralBlock => { vec![] } - Item::SandstoneWall => { + Item::HornCoralBlock => { vec![] } - Item::PufferfishBucket => { + Item::TubeCoral => { vec![] } - Item::WaxedCopperBlock => { + Item::BrainCoral => { vec![] } - Item::Sponge => { + Item::BubbleCoral => { vec![] } - Item::EnchantingTable => { + Item::FireCoral => { vec![] } - Item::PinkTulip => { + Item::HornCoral => { vec![] } - Item::CreeperSpawnEgg => { + Item::DeadBrainCoral => { vec![] } - Item::SheepSpawnEgg => { + Item::DeadBubbleCoral => { vec![] } - Item::JungleFence => { + Item::DeadFireCoral => { vec![] } - Item::Calcite => { + Item::DeadHornCoral => { vec![] } - Item::DragonEgg => { + Item::DeadTubeCoral => { vec![] } - Item::WaxedCutCopperStairs => { + Item::TubeCoralFan => { vec![] } - Item::SoulCampfire => { + Item::BrainCoralFan => { vec![] } - Item::LeatherHorseArmor => { + Item::BubbleCoralFan => { vec![] } - Item::YellowTerracotta => { + Item::FireCoralFan => { vec![] } - Item::TripwireHook => { + Item::HornCoralFan => { vec![] } - Item::Bedrock => { + Item::DeadTubeCoralFan => { vec![] } - Item::OrangeConcrete => { + Item::DeadBrainCoralFan => { vec![] } - Item::Lantern => { + Item::DeadBubbleCoralFan => { vec![] } - Item::StoneBricks => { + Item::DeadFireCoralFan => { vec![] } - Item::SmoothSandstone => { + Item::DeadHornCoralFan => { vec![] } - Item::RoseBush => { + Item::BlueIce => { vec![] } - Item::HornCoral => { + Item::Conduit => { vec![] } - Item::PurpleCarpet => { + Item::PolishedGraniteStairs => { vec![] } - Item::FlowerPot => { + Item::SmoothRedSandstoneStairs => { vec![] } - Item::PolishedBlackstoneWall => { + Item::MossyStoneBrickStairs => { vec![] } - Item::JackOLantern => { + Item::PolishedDioriteStairs => { vec![] } - Item::PointedDripstone => { + Item::MossyCobblestoneStairs => { vec![] } - Item::StoneStairs => { + Item::EndStoneBrickStairs => { vec![] } - Item::LightGrayTerracotta => { + Item::StoneStairs => { vec![] } - Item::StoneBrickWall => { + Item::SmoothSandstoneStairs => { vec![] } - Item::GrayCarpet => { + Item::SmoothQuartzStairs => { vec![] } - Item::RootedDirt => { + Item::GraniteStairs => { vec![] } - Item::YellowConcretePowder => { + Item::AndesiteStairs => { vec![] } - Item::Salmon => { + Item::RedNetherBrickStairs => { vec![] } - Item::StrippedDarkOakWood => { + Item::PolishedAndesiteStairs => { vec![] } - Item::MagentaWool => { + Item::DioriteStairs => { vec![] } - Item::OakDoor => { + Item::CobbledDeepslateStairs => { vec![] } - Item::Beetroot => { + Item::PolishedDeepslateStairs => { vec![] } - Item::Scaffolding => { + Item::DeepslateBrickStairs => { vec![] } - Item::CrimsonPlanks => { + Item::DeepslateTileStairs => { vec![] } - Item::AzureBluet => { + Item::PolishedGraniteSlab => { vec![] } - Item::RedTerracotta => { + Item::SmoothRedSandstoneSlab => { vec![] } - Item::StraySpawnEgg => { + Item::MossyStoneBrickSlab => { vec![] } - Item::Cookie => { + Item::PolishedDioriteSlab => { vec![] } - Item::DarkOakLeaves => { + Item::MossyCobblestoneSlab => { vec![] } - Item::Lilac => { + Item::EndStoneBrickSlab => { vec![] } - Item::CyanCandle => { + Item::SmoothSandstoneSlab => { vec![] } - Item::RedCandle => { + Item::SmoothQuartzSlab => { vec![] } - Item::MagentaCarpet => { + Item::GraniteSlab => { vec![] } - Item::PurpleConcretePowder => { + Item::AndesiteSlab => { vec![] } - Item::StrippedJungleWood => { + Item::RedNetherBrickSlab => { vec![] } - Item::Fern => { + Item::PolishedAndesiteSlab => { vec![] } - Item::FloweringAzalea => { + Item::DioriteSlab => { vec![] } - Item::CrimsonFenceGate => { + Item::CobbledDeepslateSlab => { vec![] } - Item::DiamondChestplate => { + Item::PolishedDeepslateSlab => { vec![] } - Item::MossyStoneBrickWall => { + Item::DeepslateBrickSlab => { vec![] } - Item::CyanCarpet => { + Item::DeepslateTileSlab => { vec![] } - Item::WhiteTerracotta => { + Item::Scaffolding => { vec![] } - Item::BlueDye => { + Item::Redstone => { vec![] } - Item::Glass => { + Item::RedstoneTorch => { vec![] } - Item::DamagedAnvil => { + Item::RedstoneBlock => { vec![] } - Item::YellowBanner => { + Item::Repeater => { vec![] } - Item::LeatherLeggings => { + Item::Comparator => { vec![] } - Item::OakPlanks => { + Item::Piston => { vec![] } - Item::Gravel => { + Item::StickyPiston => { vec![] } - Item::Clay => { + Item::SlimeBlock => { vec![] } - Item::AcaciaLeaves => { + Item::HoneyBlock => { vec![] } - Item::InfestedChiseledStoneBricks => { + Item::Observer => { vec![] } - Item::WhiteStainedGlass => { + Item::Hopper => { vec![] } - Item::ExposedCutCopperSlab => { + Item::Dispenser => { vec![] } - Item::PrismarineSlab => { + Item::Dropper => { vec![] } - Item::AndesiteStairs => { + Item::Lectern => { vec![] } - Item::PinkDye => { + Item::Target => { vec![] } - Item::LargeFern => { + Item::Lever => { vec![] } - Item::FireCharge => { + Item::LightningRod => { vec![] } - Item::DeepslateTileSlab => { + Item::DaylightDetector => { vec![] } - Item::PlayerHead => { + Item::SculkSensor => { vec![] } - Item::DiamondHelmet => { + Item::TripwireHook => { vec![] } - Item::CreeperBannerPattern => { + Item::TrappedChest => { vec![] } - Item::BlastFurnace => { + Item::Tnt => { vec![] } - Item::GreenGlazedTerracotta => { + Item::RedstoneLamp => { vec![] } - Item::QuartzSlab => { + Item::NoteBlock => { vec![] } - Item::LavaBucket => { + Item::StoneButton => { vec![] } - Item::WhiteCandle => { + Item::PolishedBlackstoneButton => { vec![] } - Item::JunglePressurePlate => { + Item::OakButton => { vec![] } - Item::Diamond => { + Item::SpruceButton => { vec![] } - Item::MossBlock => { + Item::BirchButton => { vec![] } - Item::DarkOakBoat => { + Item::JungleButton => { vec![] } - Item::GlassBottle => { + Item::AcaciaButton => { vec![] } - Item::JungleSlab => { + Item::DarkOakButton => { vec![] } - Item::HornCoralBlock => { + Item::CrimsonButton => { vec![] } - Item::BlackConcrete => { + Item::WarpedButton => { vec![] } - Item::LightBlueCandle => { + Item::StonePressurePlate => { vec![] } - Item::CowSpawnEgg => { + Item::PolishedBlackstonePressurePlate => { vec![] } - Item::StonePickaxe => { + Item::LightWeightedPressurePlate => { vec![] } - Item::StoneAxe => { + Item::HeavyWeightedPressurePlate => { vec![] } - Item::GoldenAxe => { + Item::OakPressurePlate => { vec![] } - Item::WhiteDye => { + Item::SprucePressurePlate => { vec![] } - Item::PillagerSpawnEgg => { + Item::BirchPressurePlate => { vec![] } - Item::PrismarineBrickStairs => { + Item::JunglePressurePlate => { vec![] } - Item::BrownMushroomBlock => { + Item::AcaciaPressurePlate => { vec![] } - Item::YellowStainedGlassPane => { + Item::DarkOakPressurePlate => { vec![] } - Item::SmoothRedSandstoneSlab => { + Item::CrimsonPressurePlate => { vec![] } - Item::EnderPearl => { + Item::WarpedPressurePlate => { vec![] } - Item::StoneSlab => { + Item::IronDoor => { vec![] } - Item::FireworkStar => { + Item::OakDoor => { vec![] } - Item::AmethystBlock => { + Item::SpruceDoor => { vec![] } - Item::NetheriteBlock => { + Item::BirchDoor => { vec![] } - Item::CrackedNetherBricks => { + Item::JungleDoor => { vec![] } - Item::AcaciaTrapdoor => { + Item::AcaciaDoor => { vec![] } - Item::NetherQuartzOre => { + Item::DarkOakDoor => { vec![] } - Item::BlackBed => { + Item::CrimsonDoor => { vec![] } - Item::CoarseDirt => { + Item::WarpedDoor => { vec![] } - Item::Dandelion => { + Item::IronTrapdoor => { vec![] } - Item::DiamondSword => { + Item::OakTrapdoor => { vec![] } - Item::PolarBearSpawnEgg => { + Item::SpruceTrapdoor => { vec![] } - Item::KnowledgeBook => { + Item::BirchTrapdoor => { vec![] } - Item::MagmaCream => { + Item::JungleTrapdoor => { vec![] } - Item::RedCarpet => { + Item::AcaciaTrapdoor => { vec![] } - Item::ChainmailLeggings => { + Item::DarkOakTrapdoor => { vec![] } - Item::PurpleShulkerBox => { + Item::CrimsonTrapdoor => { vec![] } - Item::GoldenCarrot => { + Item::WarpedTrapdoor => { vec![] } - Item::Trident => { + Item::OakFenceGate => { vec![] } - Item::StonePressurePlate => { + Item::SpruceFenceGate => { vec![] } - Item::WarpedStem => { + Item::BirchFenceGate => { vec![] } - Item::SporeBlossom => { + Item::JungleFenceGate => { vec![] } - Item::Jukebox => { + Item::AcaciaFenceGate => { vec![] } - Item::WhiteBanner => { + Item::DarkOakFenceGate => { vec![] } - Item::BakedPotato => { + Item::CrimsonFenceGate => { vec![] } - Item::YellowCandle => { + Item::WarpedFenceGate => { vec![] } - Item::BubbleCoral => { + Item::PoweredRail => { vec![] } - Item::BirchWood => { + Item::DetectorRail => { vec![] } - Item::MusicDisc11 => { + Item::Rail => { vec![] } - Item::CookedCod => { + Item::ActivatorRail => { vec![] } - Item::DeepslateCoalOre => { + Item::Saddle => { vec![] } - Item::MagentaShulkerBox => { + Item::Minecart => { vec![] } - Item::Paper => { + Item::ChestMinecart => { vec![] } - Item::CoalBlock => { + Item::FurnaceMinecart => { vec![] } - Item::Seagrass => { + Item::TntMinecart => { vec![] } - Item::Lever => { + Item::HopperMinecart => { vec![] } - Item::WoodenPickaxe => { + Item::CarrotOnAStick => { vec![] } - Item::Azalea => { + Item::WarpedFungusOnAStick => { vec![] } - Item::PolishedAndesiteSlab => { + Item::Elytra => { vec![] } - Item::StickyPiston => { + Item::OakBoat => { vec![] } - Item::NetheriteShovel => { + Item::SpruceBoat => { vec![] } - Item::WhiteWool => { + Item::BirchBoat => { vec![] } - Item::LeatherBoots => { + Item::JungleBoat => { vec![] } - Item::BlueStainedGlassPane => { + Item::AcaciaBoat => { vec![] } - Item::PolishedBlackstone => { + Item::DarkOakBoat => { vec![] } - Item::BlackDye => { + Item::StructureBlock => { vec![] } - Item::BlueCandle => { + Item::Jigsaw => { vec![] } - Item::MossyStoneBrickSlab => { + Item::TurtleHelmet => { vec![] } - Item::AcaciaFenceGate => { + Item::Scute => { vec![] } - Item::Crossbow => { + Item::FlintAndSteel => { vec![] } - Item::AndesiteWall => { + Item::Apple => { vec![] } - Item::PinkTerracotta => { + Item::Bow => { vec![] } - Item::GreenTerracotta => { + Item::Arrow => { vec![] } - Item::OakFence => { + Item::Coal => { vec![] } - Item::MushroomStem => { + Item::Charcoal => { vec![] } - Item::OrangeGlazedTerracotta => { + Item::Diamond => { vec![] } - Item::NetheriteSword => { + Item::Emerald => { vec![] } - Item::JunglePlanks => { + Item::LapisLazuli => { vec![] } - Item::NetherBrick => { + Item::Quartz => { vec![] } - Item::FireCoralFan => { + Item::AmethystShard => { vec![] } - Item::BirchSlab => { + Item::RawIron => { vec![] } - Item::GraniteStairs => { + Item::IronIngot => { vec![] } - Item::SpruceTrapdoor => { + Item::RawCopper => { vec![] } - Item::StrippedWarpedStem => { + Item::CopperIngot => { vec![] } - Item::SlimeBlock => { + Item::RawGold => { vec![] } - Item::Piston => { + Item::GoldIngot => { vec![] } - Item::BrownConcrete => { + Item::NetheriteIngot => { vec![] } - Item::Target => { + Item::NetheriteScrap => { vec![] } - Item::MagentaGlazedTerracotta => { + Item::WoodenSword => { vec![] } - Item::GraniteWall => { + Item::WoodenShovel => { vec![] } - Item::DiamondOre => { + Item::WoodenPickaxe => { vec![] } - Item::Cauldron => { + Item::WoodenAxe => { vec![] } - Item::DragonBreath => { + Item::WoodenHoe => { vec![] } - Item::SoulSoil => { + Item::StoneSword => { vec![] } - Item::InfestedCobblestone => { + Item::StoneShovel => { vec![] } - Item::MusicDiscStrad => { + Item::StonePickaxe => { vec![] } - Item::JungleSapling => { + Item::StoneAxe => { vec![] } - Item::BirchDoor => { + Item::StoneHoe => { vec![] } - Item::InfestedCrackedStoneBricks => { + Item::GoldenSword => { vec![] } - Item::BlackStainedGlass => { + Item::GoldenShovel => { vec![] } - Item::DirtPath => { + Item::GoldenPickaxe => { vec![] } - Item::CrimsonSign => { + Item::GoldenAxe => { vec![] } - Item::Brick => { + Item::GoldenHoe => { vec![] } - Item::IronLeggings => { + Item::IronSword => { vec![] } - Item::GhastSpawnEgg => { + Item::IronShovel => { vec![] } - Item::PolishedDiorite => { + Item::IronPickaxe => { vec![] } - Item::TurtleSpawnEgg => { + Item::IronAxe => { vec![] } - Item::StrippedSpruceWood => { + Item::IronHoe => { vec![] } - Item::ExperienceBottle => { + Item::DiamondSword => { vec![] } - Item::OakWood => { + Item::DiamondShovel => { vec![] } - Item::SkeletonHorseSpawnEgg => { + Item::DiamondPickaxe => { vec![] } - Item::WhiteStainedGlassPane => { + Item::DiamondAxe => { vec![] } - Item::JungleTrapdoor => { + Item::DiamondHoe => { vec![] } - Item::SpruceFenceGate => { + Item::NetheriteSword => { vec![] } - Item::Flint => { + Item::NetheriteShovel => { vec![] } - Item::WaxedOxidizedCutCopper => { + Item::NetheritePickaxe => { vec![] } - Item::LightBlueShulkerBox => { + Item::NetheriteAxe => { vec![] } - Item::PolishedBlackstoneButton => { + Item::NetheriteHoe => { vec![] } - Item::RedSand => { + Item::Stick => { vec![] } - Item::CrimsonNylium => { + Item::Bowl => { vec![] } - Item::Sandstone => { + Item::MushroomStew => { vec![] } - Item::RedMushroomBlock => { + Item::String => { vec![] } - Item::IronIngot => { + Item::Feather => { vec![] } - Item::BigDripleaf => { + Item::Gunpowder => { vec![] } - Item::HayBlock => { + Item::WheatSeeds => { vec![] } - Item::AcaciaPressurePlate => { + Item::Wheat => { vec![] } - Item::RedTulip => { + Item::Bread => { vec![] } - Item::PolishedDeepslateSlab => { + Item::LeatherHelmet => { vec![] } - Item::InkSac => { + Item::LeatherChestplate => { vec![] } - Item::PurpleConcrete => { + Item::LeatherLeggings => { vec![] } - Item::HeartOfTheSea => { + Item::LeatherBoots => { vec![] } - Item::GlobeBannerPattern => { + Item::ChainmailHelmet => { vec![] } - Item::LimeCandle => { + Item::ChainmailChestplate => { vec![] } - Item::SmoothQuartz => { + Item::ChainmailLeggings => { vec![] } - Item::RedNetherBrickWall => { + Item::ChainmailBoots => { vec![] } - Item::ClayBall => { + Item::IronHelmet => { vec![] } - Item::DrownedSpawnEgg => { + Item::IronChestplate => { vec![] } - Item::CutCopperStairs => { + Item::IronLeggings => { vec![] } - Item::QuartzBricks => { + Item::IronBoots => { vec![] } - Item::CrackedDeepslateBricks => { + Item::DiamondHelmet => { vec![] } - Item::Comparator => { + Item::DiamondChestplate => { vec![] } - Item::Stonecutter => { + Item::DiamondLeggings => { vec![] } - Item::GreenShulkerBox => { + Item::DiamondBoots => { vec![] } - Item::WarpedWartBlock => { + Item::GoldenHelmet => { vec![] } - Item::WarpedPressurePlate => { + Item::GoldenChestplate => { vec![] } - Item::AzaleaLeaves => { + Item::GoldenLeggings => { vec![] } - Item::LimeCarpet => { + Item::GoldenBoots => { vec![] } - Item::WarpedTrapdoor => { + Item::NetheriteHelmet => { vec![] } - Item::CyanStainedGlass => { + Item::NetheriteChestplate => { vec![] } - Item::ElderGuardianSpawnEgg => { + Item::NetheriteLeggings => { vec![] } - Item::DarkOakPlanks => { + Item::NetheriteBoots => { vec![] } - Item::RedNetherBrickStairs => { + Item::Flint => { vec![] } - Item::GoldOre => { + Item::Porkchop => { vec![] } - Item::BrickWall => { + Item::CookedPorkchop => { vec![] } - Item::IronHorseArmor => { + Item::Painting => { vec![] } - Item::ChestMinecart => { + Item::GoldenApple => { vec![] } - Item::NetheriteHoe => { + Item::EnchantedGoldenApple => { vec![] } - Item::BlazePowder => { + Item::OakSign => { vec![] } - Item::Cornflower => { + Item::SpruceSign => { vec![] } - Item::DeepslateEmeraldOre => { + Item::BirchSign => { vec![] } - Item::DarkOakLog => { + Item::JungleSign => { vec![] } - Item::YellowGlazedTerracotta => { + Item::AcaciaSign => { vec![] } - Item::OakBoat => { + Item::DarkOakSign => { vec![] } - Item::SculkSensor => { + Item::CrimsonSign => { vec![] } - Item::TurtleHelmet => { + Item::WarpedSign => { vec![] } - Item::CobblestoneStairs => { + Item::Bucket => { vec![] } - Item::DragonHead => { + Item::WaterBucket => { vec![] } - Item::OrangeStainedGlassPane => { + Item::LavaBucket => { vec![] } - Item::DeadBubbleCoral => { + Item::PowderSnowBucket => { vec![] } - Item::ItemFrame => { + Item::Snowball => { vec![] } - Item::LlamaSpawnEgg => { + Item::Leather => { vec![] } - Item::LimeBed => { + Item::MilkBucket => { vec![] } - Item::IronBlock => { + Item::PufferfishBucket => { vec![] } - Item::NetheritePickaxe => { + Item::SalmonBucket => { vec![] } - Item::OrangeDye => { + Item::CodBucket => { vec![] } - Item::PurpleBed => { + Item::TropicalFishBucket => { vec![] } - Item::BrewingStand => { + Item::AxolotlBucket => { vec![] } - Item::PinkCarpet => { + Item::Brick => { vec![] } - Item::CrimsonHyphae => { + Item::ClayBall => { vec![] } - Item::Hopper => { + Item::DriedKelpBlock => { vec![] } - Item::OrangeCandle => { + Item::Paper => { vec![] } - Item::ChiseledStoneBricks => { + Item::Book => { vec![] } - Item::DeepslateBrickWall => { + Item::SlimeBall => { vec![] } - Item::RedStainedGlassPane => { + Item::Egg => { vec![] } - Item::RedDye => { + Item::Compass => { vec![] } - Item::MagentaStainedGlassPane => { + Item::Bundle => { vec![] } - Item::AcaciaBoat => { + Item::FishingRod => { vec![] } - Item::PurpleWool => { + Item::Clock => { vec![] } - Item::LightBlueTerracotta => { + Item::Spyglass => { vec![] } - Item::PolishedDeepslateStairs => { + Item::GlowstoneDust => { vec![] } - Item::CopperBlock => { + Item::Cod => { vec![] } - Item::AcaciaStairs => { + Item::Salmon => { vec![] } - Item::PolishedDioriteSlab => { + Item::TropicalFish => { vec![] } - Item::AxolotlSpawnEgg => { + Item::Pufferfish => { vec![] } - Item::Candle => { + Item::CookedCod => { vec![] } - Item::CrimsonTrapdoor => { + Item::CookedSalmon => { vec![] } - Item::Sand => { + Item::InkSac => { vec![] } - Item::LimeConcrete => { + Item::GlowInkSac => { vec![] } - Item::Bone => { + Item::CocoaBeans => { vec![] } - Item::TropicalFishSpawnEgg => { + Item::WhiteDye => { vec![] } - Item::SoulTorch => { + Item::OrangeDye => { vec![] } - Item::BrownCandle => { + Item::MagentaDye => { vec![] } - Item::Minecart => { + Item::LightBlueDye => { vec![] } - Item::YellowShulkerBox => { + Item::YellowDye => { vec![] } - Item::RabbitStew => { + Item::LimeDye => { vec![] } - Item::OakTrapdoor => { + Item::PinkDye => { vec![] } - Item::WaxedOxidizedCutCopperStairs => { + Item::GrayDye => { vec![] } - Item::AcaciaWood => { + Item::LightGrayDye => { vec![] } - Item::NetheriteChestplate => { + Item::CyanDye => { vec![] } - Item::BlackCandle => { + Item::PurpleDye => { vec![] } - Item::CobbledDeepslateStairs => { + Item::BlueDye => { vec![] } - Item::SpiderEye => { + Item::BrownDye => { vec![] } - Item::GrayConcrete => { + Item::GreenDye => { vec![] } - Item::GrayStainedGlass => { + Item::RedDye => { vec![] } - Item::LightGrayStainedGlassPane => { + Item::BlackDye => { vec![] } - Item::PolishedBlackstonePressurePlate => { + Item::BoneMeal => { vec![] } - Item::JungleLeaves => { + Item::Bone => { vec![] } - Item::ArmorStand => { + Item::Sugar => { vec![] } - Item::CrimsonFence => { + Item::Cake => { vec![] } - Item::SandstoneSlab => { + Item::WhiteBed => { vec![] } - Item::OrangeCarpet => { + Item::OrangeBed => { vec![] } - Item::AncientDebris => { + Item::MagentaBed => { vec![] } - Item::SmoothSandstoneSlab => { + Item::LightBlueBed => { vec![] } - Item::WhiteShulkerBox => { + Item::YellowBed => { vec![] } - Item::CrackedDeepslateTiles => { + Item::LimeBed => { vec![] } - Item::PurpleStainedGlassPane => { + Item::PinkBed => { vec![] } - Item::PolishedBlackstoneBricks => { + Item::GrayBed => { vec![] } - Item::TwistingVines => { + Item::LightGrayBed => { vec![] } - Item::DriedKelpBlock => { + Item::CyanBed => { vec![] } - Item::StrippedOakLog => { + Item::PurpleBed => { vec![] } - Item::LightGrayConcrete => { + Item::BlueBed => { vec![] } - Item::Peony => { + Item::BrownBed => { vec![] } - Item::DioriteSlab => { + Item::GreenBed => { vec![] } - Item::SweetBerries => { + Item::RedBed => { vec![] } - Item::Spawner => { + Item::BlackBed => { vec![] } - Item::ExposedCopper => { + Item::Cookie => { vec![] } - Item::WhiteConcretePowder => { + Item::FilledMap => { vec![] } - Item::RedConcretePowder => { + Item::Shears => { vec![] } - Item::PiglinSpawnEgg => { + Item::MelonSlice => { vec![] } - Item::Potato => { + Item::DriedKelp => { vec![] } - Item::LapisBlock => { + Item::PumpkinSeeds => { vec![] } - Item::YellowBed => { + Item::MelonSeeds => { vec![] } - Item::Clock => { + Item::Beef => { vec![] } - Item::DiamondAxe => { + Item::CookedBeef => { vec![] } - Item::PurpurStairs => { + Item::Chicken => { vec![] } - Item::Light => { + Item::CookedChicken => { vec![] } - Item::TropicalFish => { + Item::RottenFlesh => { vec![] } - Item::PumpkinSeeds => { + Item::EnderPearl => { vec![] } - Item::PolishedGraniteSlab => { + Item::BlazeRod => { vec![] } - Item::CrimsonDoor => { + Item::GhastTear => { vec![] } - Item::StriderSpawnEgg => { + Item::GoldNugget => { vec![] } - Item::OrangeWool => { + Item::NetherWart => { vec![] } - Item::BrainCoral => { + Item::Potion => { vec![] } - Item::IronChestplate => { + Item::GlassBottle => { vec![] } - Item::LightGrayCandle => { + Item::SpiderEye => { vec![] } - Item::NameTag => { + Item::FermentedSpiderEye => { vec![] } - Item::WarpedStairs => { + Item::BlazePowder => { vec![] } - Item::Shroomlight => { + Item::MagmaCream => { vec![] } - Item::MossyStoneBrickStairs => { + Item::BrewingStand => { vec![] } - Item::DeadTubeCoralFan => { + Item::Cauldron => { vec![] } - Item::MossCarpet => { + Item::EnderEye => { vec![] } - Item::WaterBucket => { + Item::GlisteringMelonSlice => { vec![] } - Item::BlackShulkerBox => { + Item::AxolotlSpawnEgg => { vec![] } - Item::MossyCobblestoneSlab => { + Item::BatSpawnEgg => { vec![] } - Item::GreenWool => { + Item::BeeSpawnEgg => { vec![] } - Item::MossyStoneBricks => { + Item::BlazeSpawnEgg => { vec![] } - Item::NoteBlock => { + Item::CatSpawnEgg => { vec![] } - Item::MilkBucket => { + Item::CaveSpiderSpawnEgg => { vec![] } - Item::MossyCobblestone => { + Item::ChickenSpawnEgg => { vec![] } - Item::PurpurPillar => { + Item::CodSpawnEgg => { vec![] } - Item::Beacon => { + Item::CowSpawnEgg => { vec![] } - Item::PolishedAndesite => { + Item::CreeperSpawnEgg => { vec![] } - Item::DeepslateTileStairs => { + Item::DolphinSpawnEgg => { vec![] } - Item::PolishedBlackstoneBrickStairs => { + Item::DonkeySpawnEgg => { vec![] } - Item::MagentaStainedGlass => { + Item::DrownedSpawnEgg => { vec![] } - Item::OrangeBed => { + Item::ElderGuardianSpawnEgg => { vec![] } - Item::Grass => { + Item::EndermanSpawnEgg => { vec![] } - Item::GrayConcretePowder => { + Item::EndermiteSpawnEgg => { vec![] } - Item::CookedBeef => { + Item::EvokerSpawnEgg => { vec![] } - Item::WhiteTulip => { + Item::FoxSpawnEgg => { vec![] } - Item::Cake => { + Item::GhastSpawnEgg => { vec![] } - Item::Bread => { + Item::GlowSquidSpawnEgg => { vec![] } - Item::ChorusFruit => { + Item::GoatSpawnEgg => { vec![] } - Item::RottenFlesh => { + Item::GuardianSpawnEgg => { vec![] } - Item::DarkOakPressurePlate => { + Item::HoglinSpawnEgg => { vec![] } - Item::MagentaCandle => { + Item::HorseSpawnEgg => { vec![] } - Item::SeaPickle => { + Item::HuskSpawnEgg => { vec![] } - Item::CrimsonStairs => { + Item::LlamaSpawnEgg => { vec![] } - Item::MagentaDye => { + Item::MagmaCubeSpawnEgg => { vec![] } - Item::GlowItemFrame => { + Item::MooshroomSpawnEgg => { vec![] } - Item::BirchSapling => { + Item::MuleSpawnEgg => { vec![] } - Item::MagentaTerracotta => { + Item::OcelotSpawnEgg => { vec![] } - Item::CyanTerracotta => { + Item::PandaSpawnEgg => { vec![] } - Item::RedMushroom => { + Item::ParrotSpawnEgg => { vec![] } - Item::PiglinBruteSpawnEgg => { + Item::PhantomSpawnEgg => { vec![] } - Item::RespawnAnchor => { + Item::PigSpawnEgg => { vec![] } - Item::ActivatorRail => { + Item::PiglinSpawnEgg => { vec![] } - Item::LimeDye => { + Item::PiglinBruteSpawnEgg => { vec![] } - Item::CodSpawnEgg => { + Item::PillagerSpawnEgg => { vec![] } - Item::WaxedExposedCopper => { + Item::PolarBearSpawnEgg => { vec![] } - Item::CobblestoneSlab => { + Item::PufferfishSpawnEgg => { vec![] } - Item::PurpleStainedGlass => { + Item::RabbitSpawnEgg => { vec![] } - Item::PackedIce => { + Item::RavagerSpawnEgg => { vec![] } - Item::Arrow => { + Item::SalmonSpawnEgg => { vec![] } - Item::SpruceBoat => { + Item::SheepSpawnEgg => { vec![] } - Item::EmeraldOre => { + Item::ShulkerSpawnEgg => { vec![] } - Item::ExposedCutCopper => { + Item::SilverfishSpawnEgg => { vec![] } - Item::Pufferfish => { + Item::SkeletonSpawnEgg => { vec![] } - Item::MusicDiscBlocks => { + Item::SkeletonHorseSpawnEgg => { vec![] } - Item::BlackCarpet => { + Item::SlimeSpawnEgg => { vec![] } - Item::SandstoneStairs => { + Item::SpiderSpawnEgg => { vec![] } - Item::TubeCoralFan => { + Item::SquidSpawnEgg => { vec![] } - Item::Jigsaw => { + Item::StraySpawnEgg => { vec![] } - Item::StrippedWarpedHyphae => { + Item::StriderSpawnEgg => { vec![] } - Item::WoodenShovel => { + Item::TraderLlamaSpawnEgg => { vec![] } - Item::CutSandstoneSlab => { + Item::TropicalFishSpawnEgg => { vec![] } - Item::PufferfishSpawnEgg => { + Item::TurtleSpawnEgg => { vec![] } - Item::SalmonBucket => { + Item::VexSpawnEgg => { vec![] } - Item::GrayStainedGlassPane => { + Item::VillagerSpawnEgg => { vec![] } - Item::BirchButton => { + Item::VindicatorSpawnEgg => { vec![] } - Item::Grindstone => { + Item::WanderingTraderSpawnEgg => { vec![] } - Item::OakFenceGate => { + Item::WitchSpawnEgg => { vec![] } - Item::Snowball => { + Item::WitherSkeletonSpawnEgg => { vec![] } - Item::StoneBrickSlab => { + Item::WolfSpawnEgg => { vec![] } - Item::PolishedBlackstoneBrickSlab => { + Item::ZoglinSpawnEgg => { vec![] } - Item::BlackTerracotta => { + Item::ZombieSpawnEgg => { vec![] } - Item::Potion => { + Item::ZombieHorseSpawnEgg => { vec![] } - Item::DiamondHoe => { + Item::ZombieVillagerSpawnEgg => { vec![] } - Item::IronOre => { + Item::ZombifiedPiglinSpawnEgg => { vec![] } - Item::Mutton => { + Item::ExperienceBottle => { vec![] } - Item::SpectralArrow => { + Item::FireCharge => { vec![] } - Item::GoldenChestplate => { + Item::WritableBook => { vec![] } - Item::PolishedDeepslateWall => { + Item::WrittenBook => { vec![] } - Item::RedWool => { + Item::ItemFrame => { vec![] } - Item::GreenCarpet => { + Item::GlowItemFrame => { vec![] } - Item::RedSandstoneSlab => { + Item::FlowerPot => { vec![] } - Item::WarpedPlanks => { + Item::Carrot => { vec![] } - Item::AcaciaSapling => { + Item::Potato => { vec![] } - Item::Stone => { + Item::BakedPotato => { vec![] } - Item::PurpleGlazedTerracotta => { + Item::PoisonousPotato => { vec![] } - Item::Chest => { + Item::Map => { vec![] } - Item::WitherSkeletonSkull => { + Item::GoldenCarrot => { vec![] } - Item::ShulkerShell => { + Item::SkeletonSkull => { vec![] } - Item::Blackstone => { + Item::WitherSkeletonSkull => { vec![] } - Item::BrownShulkerBox => { + Item::PlayerHead => { vec![] } - Item::CookedRabbit => { + Item::ZombieHead => { vec![] } - Item::CopperOre => { + Item::CreeperHead => { vec![] } - Item::Chicken => { + Item::DragonHead => { vec![] } - Item::Tuff => { + Item::NetherStar => { vec![] } - Item::WarpedHyphae => { + Item::PumpkinPie => { vec![] } - Item::GrayGlazedTerracotta => { + Item::FireworkRocket => { vec![] } - Item::BrownDye => { + Item::FireworkStar => { vec![] } - Item::GlowSquidSpawnEgg => { + Item::EnchantedBook => { vec![] } - Item::Bookshelf => { + Item::NetherBrick => { vec![] } - Item::HoneyBlock => { + Item::PrismarineShard => { vec![] } - Item::DiamondBoots => { + Item::PrismarineCrystals => { vec![] } - Item::PhantomMembrane => { + Item::Rabbit => { vec![] } - Item::Farmland => { + Item::CookedRabbit => { vec![] } - Item::HornCoralFan => { + Item::RabbitStew => { vec![] } - Item::PurpurSlab => { + Item::RabbitFoot => { vec![] } - Item::BrownBanner => { + Item::RabbitHide => { vec![] } - Item::ChippedAnvil => { + Item::ArmorStand => { vec![] } - Item::WaxedOxidizedCopper => { + Item::IronHorseArmor => { vec![] } - Item::HuskSpawnEgg => { + Item::GoldenHorseArmor => { vec![] } - Item::NetherWart => { + Item::DiamondHorseArmor => { vec![] } - Item::WeatheredCutCopperSlab => { + Item::LeatherHorseArmor => { vec![] } - Item::PurpleDye => { + Item::Lead => { vec![] } - Item::DeepslateBrickStairs => { + Item::NameTag => { vec![] } - Item::EnderEye => { + Item::CommandBlockMinecart => { vec![] } - Item::WarpedFungusOnAStick => { + Item::Mutton => { vec![] } - Item::TallGrass => { + Item::CookedMutton => { vec![] } - Item::RavagerSpawnEgg => { + Item::WhiteBanner => { vec![] } - Item::WetSponge => { + Item::OrangeBanner => { vec![] } - Item::DeepslateGoldOre => { + Item::MagentaBanner => { vec![] } - Item::Dropper => { + Item::LightBlueBanner => { vec![] } - Item::NetheriteBoots => { + Item::YellowBanner => { vec![] } - Item::Emerald => { + Item::LimeBanner => { vec![] } - Item::SpruceSign => { + Item::PinkBanner => { vec![] } - Item::Furnace => { + Item::GrayBanner => { vec![] } - Item::AcaciaSlab => { + Item::LightGrayBanner => { vec![] } - Item::RedNetherBricks => { + Item::CyanBanner => { vec![] } - Item::BrownWool => { + Item::PurpleBanner => { vec![] } - Item::MojangBannerPattern => { + Item::BlueBanner => { vec![] } - Item::SuspiciousStew => { + Item::BrownBanner => { vec![] } - Item::OcelotSpawnEgg => { + Item::GreenBanner => { vec![] } - Item::BrainCoralBlock => { + Item::RedBanner => { vec![] } - Item::DiamondHorseArmor => { + Item::BlackBanner => { vec![] } - Item::Composter => { + Item::EndCrystal => { vec![] } - Item::StrippedDarkOakLog => { + Item::ChorusFruit => { vec![] } - Item::FireCoral => { + Item::PoppedChorusFruit => { vec![] } - Item::SeaLantern => { + Item::Beetroot => { vec![] } - Item::PolishedDioriteStairs => { + Item::BeetrootSeeds => { vec![] } - Item::Campfire => { + Item::BeetrootSoup => { vec![] } - Item::SmoothStone => { + Item::DragonBreath => { vec![] } - Item::IronSword => { + Item::SplashPotion => { vec![] } - Item::Terracotta => { + Item::SpectralArrow => { vec![] } - Item::SmoothSandstoneStairs => { + Item::TippedArrow => { vec![] } - Item::PrismarineWall => { + Item::LingeringPotion => { vec![] } - Item::RawIron => { + Item::Shield => { vec![] } - Item::YellowDye => { + Item::TotemOfUndying => { vec![] } - Item::BlackBanner => { + Item::ShulkerShell => { vec![] } - Item::MusicDiscStal => { + Item::IronNugget => { vec![] } - Item::Basalt => { + Item::KnowledgeBook => { vec![] } - Item::BlazeRod => { + Item::DebugStick => { vec![] } - Item::PoweredRail => { + Item::MusicDisc13 => { vec![] } - Item::Lodestone => { + Item::MusicDiscCat => { vec![] } - Item::PolishedDeepslate => { + Item::MusicDiscBlocks => { vec![] } - Item::JungleSign => { + Item::MusicDiscChirp => { vec![] } - Item::StoneButton => { + Item::MusicDiscFar => { vec![] } - Item::NetherBricks => { + Item::MusicDiscMall => { vec![] } - Item::HoglinSpawnEgg => { + Item::MusicDiscMellohi => { vec![] } - Item::Beehive => { + Item::MusicDiscStal => { vec![] } - Item::JungleStairs => { + Item::MusicDiscStrad => { vec![] } - Item::PrismarineStairs => { + Item::MusicDiscWard => { vec![] } - Item::EndStoneBrickStairs => { + Item::MusicDisc11 => { vec![] } - Item::StrippedCrimsonStem => { + Item::MusicDiscWait => { vec![] } - Item::Shears => { + Item::MusicDiscOtherside => { vec![] } - Item::PumpkinPie => { + Item::MusicDiscPigstep => { vec![] } - Item::SplashPotion => { + Item::Trident => { vec![] } - Item::WeatheredCopper => { + Item::PhantomMembrane => { vec![] } - Item::WhiteConcrete => { + Item::NautilusShell => { vec![] } - Item::EndStoneBrickWall => { + Item::HeartOfTheSea => { vec![] } - Item::LightGrayDye => { + Item::Crossbow => { vec![] } - Item::BrownBed => { + Item::SuspiciousStew => { vec![] } - Item::DiamondBlock => { + Item::Loom => { vec![] } - Item::DarkOakSlab => { + Item::FlowerBannerPattern => { vec![] } - Item::DeadBush => { + Item::CreeperBannerPattern => { vec![] } - Item::GrayBed => { + Item::SkullBannerPattern => { vec![] } - Item::CreeperHead => { + Item::MojangBannerPattern => { vec![] } - Item::BlueCarpet => { + Item::GlobeBannerPattern => { vec![] } - Item::Cobweb => { + Item::PiglinBannerPattern => { vec![] } - Item::OxidizedCutCopperStairs => { + Item::Composter => { vec![] } - Item::SpruceStairs => { + Item::Barrel => { vec![] } - Item::EndPortalFrame => { + Item::Smoker => { vec![] } - Item::DarkOakDoor => { + Item::BlastFurnace => { vec![] } - Item::LightBlueBanner => { + Item::CartographyTable => { vec![] } - Item::NetherBrickStairs => { + Item::FletchingTable => { vec![] } - Item::DarkPrismarine => { + Item::Grindstone => { vec![] } - Item::Sugar => { + Item::SmithingTable => { vec![] } - Item::YellowConcrete => { + Item::Stonecutter => { vec![] } - Item::RawGold => { + Item::Bell => { vec![] } - Item::LightGrayShulkerBox => { + Item::Lantern => { vec![] } - Item::PinkStainedGlass => { + Item::SoulLantern => { vec![] } - Item::PinkConcretePowder => { + Item::SweetBerries => { vec![] } - Item::AxolotlBucket => { + Item::GlowBerries => { vec![] } - Item::MusicDiscChirp => { + Item::Campfire => { vec![] } - Item::BlackStainedGlassPane => { + Item::SoulCampfire => { vec![] } - Item::Feather => { + Item::Shroomlight => { vec![] } - Item::EnderChest => { + Item::Honeycomb => { vec![] } - Item::BlueBed => { + Item::BeeNest => { vec![] } - Item::PandaSpawnEgg => { + Item::Beehive => { vec![] } - Item::YellowStainedGlass => { + Item::HoneyBottle => { vec![] } - Item::GoldenLeggings => { + Item::HoneycombBlock => { vec![] } - Item::RedSandstoneWall => { + Item::Lodestone => { vec![] } - Item::NetherWartBlock => { + Item::CryingObsidian => { vec![] } - Item::NetherSprouts => { + Item::Blackstone => { vec![] } - Item::ChainmailHelmet => { + Item::BlackstoneSlab => { vec![] } - Item::ChorusFlower => { + Item::BlackstoneStairs => { vec![] } - Item::FletchingTable => { + Item::GildedBlackstone => { vec![] } - Item::ZombifiedPiglinSpawnEgg => { + Item::PolishedBlackstone => { vec![] } - Item::ZombieSpawnEgg => { + Item::PolishedBlackstoneSlab => { vec![] } - Item::SpruceSlab => { + Item::PolishedBlackstoneStairs => { vec![] } - Item::PiglinBannerPattern => { + Item::ChiseledPolishedBlackstone => { vec![] } - Item::DarkOakWood => { + Item::PolishedBlackstoneBricks => { vec![] } - Item::GildedBlackstone => { + Item::PolishedBlackstoneBrickSlab => { vec![] } - Item::EndStoneBricks => { + Item::PolishedBlackstoneBrickStairs => { vec![] } - Item::BirchBoat => { + Item::CrackedPolishedBlackstoneBricks => { vec![] } - Item::WoodenHoe => { + Item::RespawnAnchor => { vec![] } - Item::SpruceDoor => { + Item::Candle => { vec![] } - Item::RedGlazedTerracotta => { + Item::WhiteCandle => { vec![] } - Item::AcaciaButton => { + Item::OrangeCandle => { vec![] } - Item::BlueConcretePowder => { + Item::MagentaCandle => { vec![] } - Item::DeepslateBricks => { + Item::LightBlueCandle => { vec![] } - Item::OrangeStainedGlass => { + Item::YellowCandle => { vec![] } - Item::SpruceButton => { + Item::LimeCandle => { vec![] } - Item::Conduit => { + Item::PinkCandle => { vec![] } - Item::Quartz => { + Item::GrayCandle => { vec![] } - Item::LeatherChestplate => { + Item::LightGrayCandle => { vec![] } - Item::LimeConcretePowder => { + Item::CyanCandle => { vec![] } - Item::WhiteGlazedTerracotta => { + Item::PurpleCandle => { vec![] } - Item::SpruceFence => { + Item::BlueCandle => { vec![] } - Item::DarkPrismarineStairs => { + Item::BrownCandle => { vec![] } - Item::Granite => { + Item::GreenCandle => { vec![] } - Item::GrassBlock => { + Item::RedCandle => { vec![] } - Item::OakPressurePlate => { + Item::BlackCandle => { vec![] } - Item::StructureBlock => { + Item::SmallAmethystBud => { vec![] } - Item::GreenBanner => { + Item::MediumAmethystBud => { vec![] } - Item::DeepslateTiles => { + Item::LargeAmethystBud => { vec![] } - Item::MagmaCubeSpawnEgg => { + Item::AmethystCluster => { vec![] } - Item::PinkGlazedTerracotta => { + Item::PointedDripstone => { vec![] } } From d02da811fa881a5ba37e74a7d0c1de20fb646568 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Tue, 11 Jan 2022 16:12:31 +0200 Subject: [PATCH 09/22] Fix clippy --- feather/common/src/events/block_change.rs | 2 +- feather/common/src/view.rs | 2 +- feather/server/src/client.rs | 2 ++ feather/server/src/systems/player_leave.rs | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/feather/common/src/events/block_change.rs b/feather/common/src/events/block_change.rs index d88a115c4..c75c033e1 100644 --- a/feather/common/src/events/block_change.rs +++ b/feather/common/src/events/block_change.rs @@ -24,7 +24,7 @@ impl BlockChangeEvent { Self { changes: BlockChanges::Single { pos }, world, - dimension: dimension.into(), + dimension, } } diff --git a/feather/common/src/view.rs b/feather/common/src/view.rs index 71ce63e29..65f64cca5 100644 --- a/feather/common/src/view.rs +++ b/feather/common/src/view.rs @@ -61,7 +61,7 @@ fn update_view_on_join(game: &mut Game) -> SysResult { )>() .iter() { - let event = ViewUpdateEvent::new(&View::empty(world, dimension.clone()), &view); + let event = ViewUpdateEvent::new(&View::empty(world, dimension.clone()), view); events.push((player, event)); log::trace!("View of {} has been updated (player joined)", name); } diff --git a/feather/server/src/client.rs b/feather/server/src/client.rs index d745f5d99..65b642176 100644 --- a/feather/server/src/client.rs +++ b/feather/server/src/client.rs @@ -210,6 +210,7 @@ impl Client { self.network_id = Some(network_id); } + #[allow(clippy::too_many_arguments)] pub fn send_join_game( &mut self, gamemode: Gamemode, @@ -475,6 +476,7 @@ impl Client { }); } + #[allow(clippy::too_many_arguments)] pub fn update_entity_position( &mut self, network_id: NetworkId, diff --git a/feather/server/src/systems/player_leave.rs b/feather/server/src/systems/player_leave.rs index 788ccf7e6..adc9a6534 100644 --- a/feather/server/src/systems/player_leave.rs +++ b/feather/server/src/systems/player_leave.rs @@ -112,6 +112,7 @@ fn broadcast_player_leave(game: &Game, username: &Name) { game.broadcast_chat(ChatKind::System, message); } +#[allow(clippy::too_many_arguments)] fn create_player_data( position: Position, gamemode: Gamemode, From d4c2113c5dcb4d23c2bb4b14ecdd1d92d2d7b76e Mon Sep 17 00:00:00 2001 From: Iaiao Date: Tue, 11 Jan 2022 18:50:55 +0200 Subject: [PATCH 10/22] Remove unused biome code --- feather/base/src/biome.rs | 55 +------------------------------------- libcraft/core/src/biome.rs | 1 - libcraft/core/src/lib.rs | 1 - 3 files changed, 1 insertion(+), 56 deletions(-) delete mode 100644 libcraft/core/src/biome.rs diff --git a/feather/base/src/biome.rs b/feather/base/src/biome.rs index f3559da38..b58411dd1 100644 --- a/feather/base/src/biome.rs +++ b/feather/base/src/biome.rs @@ -155,7 +155,7 @@ pub enum BiomeGrassColorModifier { } #[derive(Serialize, Deserialize, Debug, Clone)] -#[serde(from = "String", into = "String")] // quartz_nbt serialized enum variants by their index, not name +#[serde(rename_all = "snake_case")] pub enum BiomeCategory { Ocean, Plains, @@ -178,59 +178,6 @@ pub enum BiomeCategory { None, } -impl From for String { - fn from(category: BiomeCategory) -> Self { - match category { - BiomeCategory::Ocean => "ocean", - BiomeCategory::Plains => "plains", - BiomeCategory::Desert => "desert", - BiomeCategory::Forest => "forest", - BiomeCategory::ExtremeHills => "extreme_hills", - BiomeCategory::Taiga => "taiga", - BiomeCategory::Swamp => "swamp", - BiomeCategory::River => "river", - BiomeCategory::Nether => "nether", - BiomeCategory::TheEnd => "the_end", - BiomeCategory::Icy => "icy", - BiomeCategory::Mushroom => "mushroom", - BiomeCategory::Beach => "beach", - BiomeCategory::Jungle => "jungle", - BiomeCategory::Mesa => "mesa", - BiomeCategory::Savanna => "savanna", - BiomeCategory::Mountain => "mountain", - BiomeCategory::Underground => "underground", - BiomeCategory::None => "none", - } - .to_owned() - } -} - -impl From for BiomeCategory { - fn from(s: String) -> Self { - match &s[..] { - "ocean" => BiomeCategory::Ocean, - "plains" => BiomeCategory::Plains, - "desert" => BiomeCategory::Desert, - "forest" => BiomeCategory::Forest, - "extreme_hills" => BiomeCategory::ExtremeHills, - "taiga" => BiomeCategory::Taiga, - "swamp" => BiomeCategory::Swamp, - "river" => BiomeCategory::River, - "nether" => BiomeCategory::Nether, - "the_end" => BiomeCategory::TheEnd, - "icy" => BiomeCategory::Icy, - "mushroom" => BiomeCategory::Mushroom, - "beach" => BiomeCategory::Beach, - "jungle" => BiomeCategory::Jungle, - "mesa" => BiomeCategory::Mesa, - "savanna" => BiomeCategory::Savanna, - "mountain" => BiomeCategory::Mountain, - "underground" => BiomeCategory::Underground, - _ => BiomeCategory::None, - } - } -} - #[derive(Serialize, Deserialize, Debug, Clone)] pub struct BiomeEffects { pub mood_sound: Option, diff --git a/libcraft/core/src/biome.rs b/libcraft/core/src/biome.rs deleted file mode 100644 index d03e4744c..000000000 --- a/libcraft/core/src/biome.rs +++ /dev/null @@ -1 +0,0 @@ -// This file is @generated. Please do not edit. diff --git a/libcraft/core/src/lib.rs b/libcraft/core/src/lib.rs index 1ab5b181e..649806266 100644 --- a/libcraft/core/src/lib.rs +++ b/libcraft/core/src/lib.rs @@ -1,6 +1,5 @@ //! Foundational types and constants for Minecraft. -mod biome; pub mod block; mod consts; mod entity; From 66508b8f7e0c4e5d6fd715cad2ddee194bee2b13 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Tue, 11 Jan 2022 23:53:26 +0200 Subject: [PATCH 11/22] Change "value".parse().unwrap() to quote! syntax in generators --- data_generators/src/generators/entities.rs | 24 +- data_generators/src/generators/items.rs | 64 +- .../src/generators/simplified_block.rs | 10 +- libcraft/core/src/entity.rs | 452 +- libcraft/items/src/item.rs | 6732 ++++++++--------- 5 files changed, 3639 insertions(+), 3643 deletions(-) diff --git a/data_generators/src/generators/entities.rs b/data_generators/src/generators/entities.rs index 6edd8e23b..59dc9abd8 100644 --- a/data_generators/src/generators/entities.rs +++ b/data_generators/src/generators/entities.rs @@ -19,10 +19,10 @@ pub fn generate() { u32, entities .iter() - .map(|e| ( - e.name.to_case(Case::UpperCamel), - e.id.to_string().parse().unwrap() - )) + .map(|e| (e.name.to_case(Case::UpperCamel), { + let id = e.id; + quote! { #id } + })) .collect(), true )); @@ -59,10 +59,10 @@ pub fn generate() { &str, entities .iter() - .map(|e| ( - e.name.to_case(Case::UpperCamel), - format!("\"{}\"", e.name).parse().unwrap() - )) + .map(|e| (e.name.to_case(Case::UpperCamel), { + let name = &e.name; + quote! { #name } + })) .collect(), true, &'static str @@ -74,10 +74,10 @@ pub fn generate() { &str, entities .iter() - .map(|e| ( - e.name.to_case(Case::UpperCamel), - format!("\"minecraft:{}\"", e.name).parse().unwrap() - )) + .map(|e| (e.name.to_case(Case::UpperCamel), { + let namespaced_id = format!("minecraft:{}", e.name); + quote! { #namespaced_id } + })) .collect(), true, &'static str diff --git a/data_generators/src/generators/items.rs b/data_generators/src/generators/items.rs index 0775fc7e2..4e4265222 100644 --- a/data_generators/src/generators/items.rs +++ b/data_generators/src/generators/items.rs @@ -19,10 +19,10 @@ pub fn generate() { "id", u32, data.iter() - .map(|item| ( - item.name.to_case(Case::UpperCamel), - item.id.to_string().parse().unwrap() - )) + .map(|item| (item.name.to_case(Case::UpperCamel), { + let id = item.id; + quote! { #id } + })) .collect(), true )); @@ -31,10 +31,10 @@ pub fn generate() { "name", &str, data.iter() - .map(|item| ( - item.name.to_case(Case::UpperCamel), - format!("\"{}\"", item.name).parse().unwrap() - )) + .map(|item| (item.name.to_case(Case::UpperCamel), { + let name = &item.name; + quote! { #name } + })) .collect(), true, &'static str @@ -44,10 +44,10 @@ pub fn generate() { "namespaced_id", &str, data.iter() - .map(|item| ( - item.name.to_case(Case::UpperCamel), - format!("\"minecraft:{}\"", item.name).parse().unwrap() - )) + .map(|item| (item.name.to_case(Case::UpperCamel), { + let namespaced_id = format!("minecraft:{}", item.name); + quote! { #namespaced_id } + })) .collect(), true, &'static str @@ -58,10 +58,10 @@ pub fn generate() { u32, data.iter() .map(|item| { - ( - item.name.to_case(Case::UpperCamel), - item.stack_size.to_string().parse().unwrap(), - ) + (item.name.to_case(Case::UpperCamel), { + let stack_size = item.stack_size; + quote! { #stack_size } + }) }) .collect(), )); @@ -73,10 +73,11 @@ pub fn generate() { .map(|item| { ( item.name.to_case(Case::UpperCamel), - item.max_durability - .map_or("None".parse().unwrap(), |durability| { - format!("Some({})", durability).parse().unwrap() - }), + if let Some(max_durability) = item.max_durability { + quote! { Some(#max_durability) } + } else { + quote! { None } + }, ) }) .collect(), @@ -87,21 +88,16 @@ pub fn generate() { Vec<&str>, data.iter() .map(|item| { - ( - item.name.to_case(Case::UpperCamel), - format!( - "vec![{}]", - item.fixed_with - .par_iter() - .flatten() - .map(|c| format!("\"{}\", ", c)) - .collect::() - ) - .parse() - .unwrap(), - ) + (item.name.to_case(Case::UpperCamel), { + let fixed_with = item.fixed_with.clone().unwrap_or_default(); + quote! { + vec![#(#fixed_with),*] + } + }) }) .collect(), + false, + Vec<&'static str> )); out.extend(quote! { use std::convert::TryFrom; @@ -148,7 +144,7 @@ struct Item { name: String, #[allow(dead_code)] display_name: String, - stack_size: i32, + stack_size: u32, max_durability: Option, fixed_with: Option>, } diff --git a/data_generators/src/generators/simplified_block.rs b/data_generators/src/generators/simplified_block.rs index 81ede690e..841f0d149 100644 --- a/data_generators/src/generators/simplified_block.rs +++ b/data_generators/src/generators/simplified_block.rs @@ -1,8 +1,8 @@ use convert_case::{Case, Casing}; +use indexmap::map::IndexMap; use regex::Regex; use crate::utils::*; -use indexmap::map::IndexMap; pub fn generate() { let simplified_blocks: SimplifiedBlocks = load_libcraft_json("simplified_block.json").unwrap(); @@ -36,10 +36,10 @@ pub fn generate() { SimplifiedBlockKind, mappings .into_iter() - .map(|(key, value)| ( - key, - format!("SimplifiedBlockKind::{}", value).parse().unwrap() - )) + .map(|(key, value)| (key, { + let kind = format_ident!("{}", value); + quote! { SimplifiedBlockKind::#kind } + })) .collect(), )); diff --git a/libcraft/core/src/entity.rs b/libcraft/core/src/entity.rs index a7befba1a..1f95d9283 100644 --- a/libcraft/core/src/entity.rs +++ b/libcraft/core/src/entity.rs @@ -253,238 +253,238 @@ impl EntityKind { #[inline] pub fn id(&self) -> u32 { match self { - EntityKind::AreaEffectCloud => 0, - EntityKind::ArmorStand => 1, - EntityKind::Arrow => 2, - EntityKind::Axolotl => 3, - EntityKind::Bat => 4, - EntityKind::Bee => 5, - EntityKind::Blaze => 6, - EntityKind::Boat => 7, - EntityKind::Cat => 8, - EntityKind::CaveSpider => 9, - EntityKind::Chicken => 10, - EntityKind::Cod => 11, - EntityKind::Cow => 12, - EntityKind::Creeper => 13, - EntityKind::Dolphin => 14, - EntityKind::Donkey => 15, - EntityKind::DragonFireball => 16, - EntityKind::Drowned => 17, - EntityKind::ElderGuardian => 18, - EntityKind::EndCrystal => 19, - EntityKind::EnderDragon => 20, - EntityKind::Enderman => 21, - EntityKind::Endermite => 22, - EntityKind::Evoker => 23, - EntityKind::EvokerFangs => 24, - EntityKind::ExperienceOrb => 25, - EntityKind::EyeOfEnder => 26, - EntityKind::FallingBlock => 27, - EntityKind::FireworkRocket => 28, - EntityKind::Fox => 29, - EntityKind::Ghast => 30, - EntityKind::Giant => 31, - EntityKind::GlowItemFrame => 32, - EntityKind::GlowSquid => 33, - EntityKind::Goat => 34, - EntityKind::Guardian => 35, - EntityKind::Hoglin => 36, - EntityKind::Horse => 37, - EntityKind::Husk => 38, - EntityKind::Illusioner => 39, - EntityKind::IronGolem => 40, - EntityKind::Item => 41, - EntityKind::ItemFrame => 42, - EntityKind::Fireball => 43, - EntityKind::LeashKnot => 44, - EntityKind::LightningBolt => 45, - EntityKind::Llama => 46, - EntityKind::LlamaSpit => 47, - EntityKind::MagmaCube => 48, - EntityKind::Marker => 49, - EntityKind::Minecart => 50, - EntityKind::ChestMinecart => 51, - EntityKind::CommandBlockMinecart => 52, - EntityKind::FurnaceMinecart => 53, - EntityKind::HopperMinecart => 54, - EntityKind::SpawnerMinecart => 55, - EntityKind::TntMinecart => 56, - EntityKind::Mule => 57, - EntityKind::Mooshroom => 58, - EntityKind::Ocelot => 59, - EntityKind::Painting => 60, - EntityKind::Panda => 61, - EntityKind::Parrot => 62, - EntityKind::Phantom => 63, - EntityKind::Pig => 64, - EntityKind::Piglin => 65, - EntityKind::PiglinBrute => 66, - EntityKind::Pillager => 67, - EntityKind::PolarBear => 68, - EntityKind::Tnt => 69, - EntityKind::Pufferfish => 70, - EntityKind::Rabbit => 71, - EntityKind::Ravager => 72, - EntityKind::Salmon => 73, - EntityKind::Sheep => 74, - EntityKind::Shulker => 75, - EntityKind::ShulkerBullet => 76, - EntityKind::Silverfish => 77, - EntityKind::Skeleton => 78, - EntityKind::SkeletonHorse => 79, - EntityKind::Slime => 80, - EntityKind::SmallFireball => 81, - EntityKind::SnowGolem => 82, - EntityKind::Snowball => 83, - EntityKind::SpectralArrow => 84, - EntityKind::Spider => 85, - EntityKind::Squid => 86, - EntityKind::Stray => 87, - EntityKind::Strider => 88, - EntityKind::Egg => 89, - EntityKind::EnderPearl => 90, - EntityKind::ExperienceBottle => 91, - EntityKind::Potion => 92, - EntityKind::Trident => 93, - EntityKind::TraderLlama => 94, - EntityKind::TropicalFish => 95, - EntityKind::Turtle => 96, - EntityKind::Vex => 97, - EntityKind::Villager => 98, - EntityKind::Vindicator => 99, - EntityKind::WanderingTrader => 100, - EntityKind::Witch => 101, - EntityKind::Wither => 102, - EntityKind::WitherSkeleton => 103, - EntityKind::WitherSkull => 104, - EntityKind::Wolf => 105, - EntityKind::Zoglin => 106, - EntityKind::Zombie => 107, - EntityKind::ZombieHorse => 108, - EntityKind::ZombieVillager => 109, - EntityKind::ZombifiedPiglin => 110, - EntityKind::Player => 111, - EntityKind::FishingBobber => 112, + EntityKind::AreaEffectCloud => 0u32, + EntityKind::ArmorStand => 1u32, + EntityKind::Arrow => 2u32, + EntityKind::Axolotl => 3u32, + EntityKind::Bat => 4u32, + EntityKind::Bee => 5u32, + EntityKind::Blaze => 6u32, + EntityKind::Boat => 7u32, + EntityKind::Cat => 8u32, + EntityKind::CaveSpider => 9u32, + EntityKind::Chicken => 10u32, + EntityKind::Cod => 11u32, + EntityKind::Cow => 12u32, + EntityKind::Creeper => 13u32, + EntityKind::Dolphin => 14u32, + EntityKind::Donkey => 15u32, + EntityKind::DragonFireball => 16u32, + EntityKind::Drowned => 17u32, + EntityKind::ElderGuardian => 18u32, + EntityKind::EndCrystal => 19u32, + EntityKind::EnderDragon => 20u32, + EntityKind::Enderman => 21u32, + EntityKind::Endermite => 22u32, + EntityKind::Evoker => 23u32, + EntityKind::EvokerFangs => 24u32, + EntityKind::ExperienceOrb => 25u32, + EntityKind::EyeOfEnder => 26u32, + EntityKind::FallingBlock => 27u32, + EntityKind::FireworkRocket => 28u32, + EntityKind::Fox => 29u32, + EntityKind::Ghast => 30u32, + EntityKind::Giant => 31u32, + EntityKind::GlowItemFrame => 32u32, + EntityKind::GlowSquid => 33u32, + EntityKind::Goat => 34u32, + EntityKind::Guardian => 35u32, + EntityKind::Hoglin => 36u32, + EntityKind::Horse => 37u32, + EntityKind::Husk => 38u32, + EntityKind::Illusioner => 39u32, + EntityKind::IronGolem => 40u32, + EntityKind::Item => 41u32, + EntityKind::ItemFrame => 42u32, + EntityKind::Fireball => 43u32, + EntityKind::LeashKnot => 44u32, + EntityKind::LightningBolt => 45u32, + EntityKind::Llama => 46u32, + EntityKind::LlamaSpit => 47u32, + EntityKind::MagmaCube => 48u32, + EntityKind::Marker => 49u32, + EntityKind::Minecart => 50u32, + EntityKind::ChestMinecart => 51u32, + EntityKind::CommandBlockMinecart => 52u32, + EntityKind::FurnaceMinecart => 53u32, + EntityKind::HopperMinecart => 54u32, + EntityKind::SpawnerMinecart => 55u32, + EntityKind::TntMinecart => 56u32, + EntityKind::Mule => 57u32, + EntityKind::Mooshroom => 58u32, + EntityKind::Ocelot => 59u32, + EntityKind::Painting => 60u32, + EntityKind::Panda => 61u32, + EntityKind::Parrot => 62u32, + EntityKind::Phantom => 63u32, + EntityKind::Pig => 64u32, + EntityKind::Piglin => 65u32, + EntityKind::PiglinBrute => 66u32, + EntityKind::Pillager => 67u32, + EntityKind::PolarBear => 68u32, + EntityKind::Tnt => 69u32, + EntityKind::Pufferfish => 70u32, + EntityKind::Rabbit => 71u32, + EntityKind::Ravager => 72u32, + EntityKind::Salmon => 73u32, + EntityKind::Sheep => 74u32, + EntityKind::Shulker => 75u32, + EntityKind::ShulkerBullet => 76u32, + EntityKind::Silverfish => 77u32, + EntityKind::Skeleton => 78u32, + EntityKind::SkeletonHorse => 79u32, + EntityKind::Slime => 80u32, + EntityKind::SmallFireball => 81u32, + EntityKind::SnowGolem => 82u32, + EntityKind::Snowball => 83u32, + EntityKind::SpectralArrow => 84u32, + EntityKind::Spider => 85u32, + EntityKind::Squid => 86u32, + EntityKind::Stray => 87u32, + EntityKind::Strider => 88u32, + EntityKind::Egg => 89u32, + EntityKind::EnderPearl => 90u32, + EntityKind::ExperienceBottle => 91u32, + EntityKind::Potion => 92u32, + EntityKind::Trident => 93u32, + EntityKind::TraderLlama => 94u32, + EntityKind::TropicalFish => 95u32, + EntityKind::Turtle => 96u32, + EntityKind::Vex => 97u32, + EntityKind::Villager => 98u32, + EntityKind::Vindicator => 99u32, + EntityKind::WanderingTrader => 100u32, + EntityKind::Witch => 101u32, + EntityKind::Wither => 102u32, + EntityKind::WitherSkeleton => 103u32, + EntityKind::WitherSkull => 104u32, + EntityKind::Wolf => 105u32, + EntityKind::Zoglin => 106u32, + EntityKind::Zombie => 107u32, + EntityKind::ZombieHorse => 108u32, + EntityKind::ZombieVillager => 109u32, + EntityKind::ZombifiedPiglin => 110u32, + EntityKind::Player => 111u32, + EntityKind::FishingBobber => 112u32, } } #[doc = "Gets a `EntityKind` by its `id`."] #[inline] pub fn from_id(id: u32) -> Option { match id { - 0 => Some(EntityKind::AreaEffectCloud), - 1 => Some(EntityKind::ArmorStand), - 2 => Some(EntityKind::Arrow), - 3 => Some(EntityKind::Axolotl), - 4 => Some(EntityKind::Bat), - 5 => Some(EntityKind::Bee), - 6 => Some(EntityKind::Blaze), - 7 => Some(EntityKind::Boat), - 8 => Some(EntityKind::Cat), - 9 => Some(EntityKind::CaveSpider), - 10 => Some(EntityKind::Chicken), - 11 => Some(EntityKind::Cod), - 12 => Some(EntityKind::Cow), - 13 => Some(EntityKind::Creeper), - 14 => Some(EntityKind::Dolphin), - 15 => Some(EntityKind::Donkey), - 16 => Some(EntityKind::DragonFireball), - 17 => Some(EntityKind::Drowned), - 18 => Some(EntityKind::ElderGuardian), - 19 => Some(EntityKind::EndCrystal), - 20 => Some(EntityKind::EnderDragon), - 21 => Some(EntityKind::Enderman), - 22 => Some(EntityKind::Endermite), - 23 => Some(EntityKind::Evoker), - 24 => Some(EntityKind::EvokerFangs), - 25 => Some(EntityKind::ExperienceOrb), - 26 => Some(EntityKind::EyeOfEnder), - 27 => Some(EntityKind::FallingBlock), - 28 => Some(EntityKind::FireworkRocket), - 29 => Some(EntityKind::Fox), - 30 => Some(EntityKind::Ghast), - 31 => Some(EntityKind::Giant), - 32 => Some(EntityKind::GlowItemFrame), - 33 => Some(EntityKind::GlowSquid), - 34 => Some(EntityKind::Goat), - 35 => Some(EntityKind::Guardian), - 36 => Some(EntityKind::Hoglin), - 37 => Some(EntityKind::Horse), - 38 => Some(EntityKind::Husk), - 39 => Some(EntityKind::Illusioner), - 40 => Some(EntityKind::IronGolem), - 41 => Some(EntityKind::Item), - 42 => Some(EntityKind::ItemFrame), - 43 => Some(EntityKind::Fireball), - 44 => Some(EntityKind::LeashKnot), - 45 => Some(EntityKind::LightningBolt), - 46 => Some(EntityKind::Llama), - 47 => Some(EntityKind::LlamaSpit), - 48 => Some(EntityKind::MagmaCube), - 49 => Some(EntityKind::Marker), - 50 => Some(EntityKind::Minecart), - 51 => Some(EntityKind::ChestMinecart), - 52 => Some(EntityKind::CommandBlockMinecart), - 53 => Some(EntityKind::FurnaceMinecart), - 54 => Some(EntityKind::HopperMinecart), - 55 => Some(EntityKind::SpawnerMinecart), - 56 => Some(EntityKind::TntMinecart), - 57 => Some(EntityKind::Mule), - 58 => Some(EntityKind::Mooshroom), - 59 => Some(EntityKind::Ocelot), - 60 => Some(EntityKind::Painting), - 61 => Some(EntityKind::Panda), - 62 => Some(EntityKind::Parrot), - 63 => Some(EntityKind::Phantom), - 64 => Some(EntityKind::Pig), - 65 => Some(EntityKind::Piglin), - 66 => Some(EntityKind::PiglinBrute), - 67 => Some(EntityKind::Pillager), - 68 => Some(EntityKind::PolarBear), - 69 => Some(EntityKind::Tnt), - 70 => Some(EntityKind::Pufferfish), - 71 => Some(EntityKind::Rabbit), - 72 => Some(EntityKind::Ravager), - 73 => Some(EntityKind::Salmon), - 74 => Some(EntityKind::Sheep), - 75 => Some(EntityKind::Shulker), - 76 => Some(EntityKind::ShulkerBullet), - 77 => Some(EntityKind::Silverfish), - 78 => Some(EntityKind::Skeleton), - 79 => Some(EntityKind::SkeletonHorse), - 80 => Some(EntityKind::Slime), - 81 => Some(EntityKind::SmallFireball), - 82 => Some(EntityKind::SnowGolem), - 83 => Some(EntityKind::Snowball), - 84 => Some(EntityKind::SpectralArrow), - 85 => Some(EntityKind::Spider), - 86 => Some(EntityKind::Squid), - 87 => Some(EntityKind::Stray), - 88 => Some(EntityKind::Strider), - 89 => Some(EntityKind::Egg), - 90 => Some(EntityKind::EnderPearl), - 91 => Some(EntityKind::ExperienceBottle), - 92 => Some(EntityKind::Potion), - 93 => Some(EntityKind::Trident), - 94 => Some(EntityKind::TraderLlama), - 95 => Some(EntityKind::TropicalFish), - 96 => Some(EntityKind::Turtle), - 97 => Some(EntityKind::Vex), - 98 => Some(EntityKind::Villager), - 99 => Some(EntityKind::Vindicator), - 100 => Some(EntityKind::WanderingTrader), - 101 => Some(EntityKind::Witch), - 102 => Some(EntityKind::Wither), - 103 => Some(EntityKind::WitherSkeleton), - 104 => Some(EntityKind::WitherSkull), - 105 => Some(EntityKind::Wolf), - 106 => Some(EntityKind::Zoglin), - 107 => Some(EntityKind::Zombie), - 108 => Some(EntityKind::ZombieHorse), - 109 => Some(EntityKind::ZombieVillager), - 110 => Some(EntityKind::ZombifiedPiglin), - 111 => Some(EntityKind::Player), - 112 => Some(EntityKind::FishingBobber), + 0u32 => Some(EntityKind::AreaEffectCloud), + 1u32 => Some(EntityKind::ArmorStand), + 2u32 => Some(EntityKind::Arrow), + 3u32 => Some(EntityKind::Axolotl), + 4u32 => Some(EntityKind::Bat), + 5u32 => Some(EntityKind::Bee), + 6u32 => Some(EntityKind::Blaze), + 7u32 => Some(EntityKind::Boat), + 8u32 => Some(EntityKind::Cat), + 9u32 => Some(EntityKind::CaveSpider), + 10u32 => Some(EntityKind::Chicken), + 11u32 => Some(EntityKind::Cod), + 12u32 => Some(EntityKind::Cow), + 13u32 => Some(EntityKind::Creeper), + 14u32 => Some(EntityKind::Dolphin), + 15u32 => Some(EntityKind::Donkey), + 16u32 => Some(EntityKind::DragonFireball), + 17u32 => Some(EntityKind::Drowned), + 18u32 => Some(EntityKind::ElderGuardian), + 19u32 => Some(EntityKind::EndCrystal), + 20u32 => Some(EntityKind::EnderDragon), + 21u32 => Some(EntityKind::Enderman), + 22u32 => Some(EntityKind::Endermite), + 23u32 => Some(EntityKind::Evoker), + 24u32 => Some(EntityKind::EvokerFangs), + 25u32 => Some(EntityKind::ExperienceOrb), + 26u32 => Some(EntityKind::EyeOfEnder), + 27u32 => Some(EntityKind::FallingBlock), + 28u32 => Some(EntityKind::FireworkRocket), + 29u32 => Some(EntityKind::Fox), + 30u32 => Some(EntityKind::Ghast), + 31u32 => Some(EntityKind::Giant), + 32u32 => Some(EntityKind::GlowItemFrame), + 33u32 => Some(EntityKind::GlowSquid), + 34u32 => Some(EntityKind::Goat), + 35u32 => Some(EntityKind::Guardian), + 36u32 => Some(EntityKind::Hoglin), + 37u32 => Some(EntityKind::Horse), + 38u32 => Some(EntityKind::Husk), + 39u32 => Some(EntityKind::Illusioner), + 40u32 => Some(EntityKind::IronGolem), + 41u32 => Some(EntityKind::Item), + 42u32 => Some(EntityKind::ItemFrame), + 43u32 => Some(EntityKind::Fireball), + 44u32 => Some(EntityKind::LeashKnot), + 45u32 => Some(EntityKind::LightningBolt), + 46u32 => Some(EntityKind::Llama), + 47u32 => Some(EntityKind::LlamaSpit), + 48u32 => Some(EntityKind::MagmaCube), + 49u32 => Some(EntityKind::Marker), + 50u32 => Some(EntityKind::Minecart), + 51u32 => Some(EntityKind::ChestMinecart), + 52u32 => Some(EntityKind::CommandBlockMinecart), + 53u32 => Some(EntityKind::FurnaceMinecart), + 54u32 => Some(EntityKind::HopperMinecart), + 55u32 => Some(EntityKind::SpawnerMinecart), + 56u32 => Some(EntityKind::TntMinecart), + 57u32 => Some(EntityKind::Mule), + 58u32 => Some(EntityKind::Mooshroom), + 59u32 => Some(EntityKind::Ocelot), + 60u32 => Some(EntityKind::Painting), + 61u32 => Some(EntityKind::Panda), + 62u32 => Some(EntityKind::Parrot), + 63u32 => Some(EntityKind::Phantom), + 64u32 => Some(EntityKind::Pig), + 65u32 => Some(EntityKind::Piglin), + 66u32 => Some(EntityKind::PiglinBrute), + 67u32 => Some(EntityKind::Pillager), + 68u32 => Some(EntityKind::PolarBear), + 69u32 => Some(EntityKind::Tnt), + 70u32 => Some(EntityKind::Pufferfish), + 71u32 => Some(EntityKind::Rabbit), + 72u32 => Some(EntityKind::Ravager), + 73u32 => Some(EntityKind::Salmon), + 74u32 => Some(EntityKind::Sheep), + 75u32 => Some(EntityKind::Shulker), + 76u32 => Some(EntityKind::ShulkerBullet), + 77u32 => Some(EntityKind::Silverfish), + 78u32 => Some(EntityKind::Skeleton), + 79u32 => Some(EntityKind::SkeletonHorse), + 80u32 => Some(EntityKind::Slime), + 81u32 => Some(EntityKind::SmallFireball), + 82u32 => Some(EntityKind::SnowGolem), + 83u32 => Some(EntityKind::Snowball), + 84u32 => Some(EntityKind::SpectralArrow), + 85u32 => Some(EntityKind::Spider), + 86u32 => Some(EntityKind::Squid), + 87u32 => Some(EntityKind::Stray), + 88u32 => Some(EntityKind::Strider), + 89u32 => Some(EntityKind::Egg), + 90u32 => Some(EntityKind::EnderPearl), + 91u32 => Some(EntityKind::ExperienceBottle), + 92u32 => Some(EntityKind::Potion), + 93u32 => Some(EntityKind::Trident), + 94u32 => Some(EntityKind::TraderLlama), + 95u32 => Some(EntityKind::TropicalFish), + 96u32 => Some(EntityKind::Turtle), + 97u32 => Some(EntityKind::Vex), + 98u32 => Some(EntityKind::Villager), + 99u32 => Some(EntityKind::Vindicator), + 100u32 => Some(EntityKind::WanderingTrader), + 101u32 => Some(EntityKind::Witch), + 102u32 => Some(EntityKind::Wither), + 103u32 => Some(EntityKind::WitherSkeleton), + 104u32 => Some(EntityKind::WitherSkull), + 105u32 => Some(EntityKind::Wolf), + 106u32 => Some(EntityKind::Zoglin), + 107u32 => Some(EntityKind::Zombie), + 108u32 => Some(EntityKind::ZombieHorse), + 109u32 => Some(EntityKind::ZombieVillager), + 110u32 => Some(EntityKind::ZombifiedPiglin), + 111u32 => Some(EntityKind::Player), + 112u32 => Some(EntityKind::FishingBobber), _ => None, } } diff --git a/libcraft/items/src/item.rs b/libcraft/items/src/item.rs index 50f040c9e..ee56bb452 100644 --- a/libcraft/items/src/item.rs +++ b/libcraft/items/src/item.rs @@ -2227,2212 +2227,2212 @@ impl Item { #[inline] pub fn id(&self) -> u32 { match self { - Item::Stone => 1, - Item::Granite => 2, - Item::PolishedGranite => 3, - Item::Diorite => 4, - Item::PolishedDiorite => 5, - Item::Andesite => 6, - Item::PolishedAndesite => 7, - Item::Deepslate => 8, - Item::CobbledDeepslate => 9, - Item::PolishedDeepslate => 10, - Item::Calcite => 11, - Item::Tuff => 12, - Item::DripstoneBlock => 13, - Item::GrassBlock => 14, - Item::Dirt => 15, - Item::CoarseDirt => 16, - Item::Podzol => 17, - Item::RootedDirt => 18, - Item::CrimsonNylium => 19, - Item::WarpedNylium => 20, - Item::Cobblestone => 21, - Item::OakPlanks => 22, - Item::SprucePlanks => 23, - Item::BirchPlanks => 24, - Item::JunglePlanks => 25, - Item::AcaciaPlanks => 26, - Item::DarkOakPlanks => 27, - Item::CrimsonPlanks => 28, - Item::WarpedPlanks => 29, - Item::OakSapling => 30, - Item::SpruceSapling => 31, - Item::BirchSapling => 32, - Item::JungleSapling => 33, - Item::AcaciaSapling => 34, - Item::DarkOakSapling => 35, - Item::Bedrock => 36, - Item::Sand => 37, - Item::RedSand => 38, - Item::Gravel => 39, - Item::CoalOre => 40, - Item::DeepslateCoalOre => 41, - Item::IronOre => 42, - Item::DeepslateIronOre => 43, - Item::CopperOre => 44, - Item::DeepslateCopperOre => 45, - Item::GoldOre => 46, - Item::DeepslateGoldOre => 47, - Item::RedstoneOre => 48, - Item::DeepslateRedstoneOre => 49, - Item::EmeraldOre => 50, - Item::DeepslateEmeraldOre => 51, - Item::LapisOre => 52, - Item::DeepslateLapisOre => 53, - Item::DiamondOre => 54, - Item::DeepslateDiamondOre => 55, - Item::NetherGoldOre => 56, - Item::NetherQuartzOre => 57, - Item::AncientDebris => 58, - Item::CoalBlock => 59, - Item::RawIronBlock => 60, - Item::RawCopperBlock => 61, - Item::RawGoldBlock => 62, - Item::AmethystBlock => 63, - Item::BuddingAmethyst => 64, - Item::IronBlock => 65, - Item::CopperBlock => 66, - Item::GoldBlock => 67, - Item::DiamondBlock => 68, - Item::NetheriteBlock => 69, - Item::ExposedCopper => 70, - Item::WeatheredCopper => 71, - Item::OxidizedCopper => 72, - Item::CutCopper => 73, - Item::ExposedCutCopper => 74, - Item::WeatheredCutCopper => 75, - Item::OxidizedCutCopper => 76, - Item::CutCopperStairs => 77, - Item::ExposedCutCopperStairs => 78, - Item::WeatheredCutCopperStairs => 79, - Item::OxidizedCutCopperStairs => 80, - Item::CutCopperSlab => 81, - Item::ExposedCutCopperSlab => 82, - Item::WeatheredCutCopperSlab => 83, - Item::OxidizedCutCopperSlab => 84, - Item::WaxedCopperBlock => 85, - Item::WaxedExposedCopper => 86, - Item::WaxedWeatheredCopper => 87, - Item::WaxedOxidizedCopper => 88, - Item::WaxedCutCopper => 89, - Item::WaxedExposedCutCopper => 90, - Item::WaxedWeatheredCutCopper => 91, - Item::WaxedOxidizedCutCopper => 92, - Item::WaxedCutCopperStairs => 93, - Item::WaxedExposedCutCopperStairs => 94, - Item::WaxedWeatheredCutCopperStairs => 95, - Item::WaxedOxidizedCutCopperStairs => 96, - Item::WaxedCutCopperSlab => 97, - Item::WaxedExposedCutCopperSlab => 98, - Item::WaxedWeatheredCutCopperSlab => 99, - Item::WaxedOxidizedCutCopperSlab => 100, - Item::OakLog => 101, - Item::SpruceLog => 102, - Item::BirchLog => 103, - Item::JungleLog => 104, - Item::AcaciaLog => 105, - Item::DarkOakLog => 106, - Item::CrimsonStem => 107, - Item::WarpedStem => 108, - Item::StrippedOakLog => 109, - Item::StrippedSpruceLog => 110, - Item::StrippedBirchLog => 111, - Item::StrippedJungleLog => 112, - Item::StrippedAcaciaLog => 113, - Item::StrippedDarkOakLog => 114, - Item::StrippedCrimsonStem => 115, - Item::StrippedWarpedStem => 116, - Item::StrippedOakWood => 117, - Item::StrippedSpruceWood => 118, - Item::StrippedBirchWood => 119, - Item::StrippedJungleWood => 120, - Item::StrippedAcaciaWood => 121, - Item::StrippedDarkOakWood => 122, - Item::StrippedCrimsonHyphae => 123, - Item::StrippedWarpedHyphae => 124, - Item::OakWood => 125, - Item::SpruceWood => 126, - Item::BirchWood => 127, - Item::JungleWood => 128, - Item::AcaciaWood => 129, - Item::DarkOakWood => 130, - Item::CrimsonHyphae => 131, - Item::WarpedHyphae => 132, - Item::OakLeaves => 133, - Item::SpruceLeaves => 134, - Item::BirchLeaves => 135, - Item::JungleLeaves => 136, - Item::AcaciaLeaves => 137, - Item::DarkOakLeaves => 138, - Item::AzaleaLeaves => 139, - Item::FloweringAzaleaLeaves => 140, - Item::Sponge => 141, - Item::WetSponge => 142, - Item::Glass => 143, - Item::TintedGlass => 144, - Item::LapisBlock => 145, - Item::Sandstone => 146, - Item::ChiseledSandstone => 147, - Item::CutSandstone => 148, - Item::Cobweb => 149, - Item::Grass => 150, - Item::Fern => 151, - Item::Azalea => 152, - Item::FloweringAzalea => 153, - Item::DeadBush => 154, - Item::Seagrass => 155, - Item::SeaPickle => 156, - Item::WhiteWool => 157, - Item::OrangeWool => 158, - Item::MagentaWool => 159, - Item::LightBlueWool => 160, - Item::YellowWool => 161, - Item::LimeWool => 162, - Item::PinkWool => 163, - Item::GrayWool => 164, - Item::LightGrayWool => 165, - Item::CyanWool => 166, - Item::PurpleWool => 167, - Item::BlueWool => 168, - Item::BrownWool => 169, - Item::GreenWool => 170, - Item::RedWool => 171, - Item::BlackWool => 172, - Item::Dandelion => 173, - Item::Poppy => 174, - Item::BlueOrchid => 175, - Item::Allium => 176, - Item::AzureBluet => 177, - Item::RedTulip => 178, - Item::OrangeTulip => 179, - Item::WhiteTulip => 180, - Item::PinkTulip => 181, - Item::OxeyeDaisy => 182, - Item::Cornflower => 183, - Item::LilyOfTheValley => 184, - Item::WitherRose => 185, - Item::SporeBlossom => 186, - Item::BrownMushroom => 187, - Item::RedMushroom => 188, - Item::CrimsonFungus => 189, - Item::WarpedFungus => 190, - Item::CrimsonRoots => 191, - Item::WarpedRoots => 192, - Item::NetherSprouts => 193, - Item::WeepingVines => 194, - Item::TwistingVines => 195, - Item::SugarCane => 196, - Item::Kelp => 197, - Item::MossCarpet => 198, - Item::MossBlock => 199, - Item::HangingRoots => 200, - Item::BigDripleaf => 201, - Item::SmallDripleaf => 202, - Item::Bamboo => 203, - Item::OakSlab => 204, - Item::SpruceSlab => 205, - Item::BirchSlab => 206, - Item::JungleSlab => 207, - Item::AcaciaSlab => 208, - Item::DarkOakSlab => 209, - Item::CrimsonSlab => 210, - Item::WarpedSlab => 211, - Item::StoneSlab => 212, - Item::SmoothStoneSlab => 213, - Item::SandstoneSlab => 214, - Item::CutSandstoneSlab => 215, - Item::PetrifiedOakSlab => 216, - Item::CobblestoneSlab => 217, - Item::BrickSlab => 218, - Item::StoneBrickSlab => 219, - Item::NetherBrickSlab => 220, - Item::QuartzSlab => 221, - Item::RedSandstoneSlab => 222, - Item::CutRedSandstoneSlab => 223, - Item::PurpurSlab => 224, - Item::PrismarineSlab => 225, - Item::PrismarineBrickSlab => 226, - Item::DarkPrismarineSlab => 227, - Item::SmoothQuartz => 228, - Item::SmoothRedSandstone => 229, - Item::SmoothSandstone => 230, - Item::SmoothStone => 231, - Item::Bricks => 232, - Item::Bookshelf => 233, - Item::MossyCobblestone => 234, - Item::Obsidian => 235, - Item::Torch => 236, - Item::EndRod => 237, - Item::ChorusPlant => 238, - Item::ChorusFlower => 239, - Item::PurpurBlock => 240, - Item::PurpurPillar => 241, - Item::PurpurStairs => 242, - Item::Spawner => 243, - Item::OakStairs => 244, - Item::Chest => 245, - Item::CraftingTable => 246, - Item::Farmland => 247, - Item::Furnace => 248, - Item::Ladder => 249, - Item::CobblestoneStairs => 250, - Item::Snow => 251, - Item::Ice => 252, - Item::SnowBlock => 253, - Item::Cactus => 254, - Item::Clay => 255, - Item::Jukebox => 256, - Item::OakFence => 257, - Item::SpruceFence => 258, - Item::BirchFence => 259, - Item::JungleFence => 260, - Item::AcaciaFence => 261, - Item::DarkOakFence => 262, - Item::CrimsonFence => 263, - Item::WarpedFence => 264, - Item::Pumpkin => 265, - Item::CarvedPumpkin => 266, - Item::JackOLantern => 267, - Item::Netherrack => 268, - Item::SoulSand => 269, - Item::SoulSoil => 270, - Item::Basalt => 271, - Item::PolishedBasalt => 272, - Item::SmoothBasalt => 273, - Item::SoulTorch => 274, - Item::Glowstone => 275, - Item::InfestedStone => 276, - Item::InfestedCobblestone => 277, - Item::InfestedStoneBricks => 278, - Item::InfestedMossyStoneBricks => 279, - Item::InfestedCrackedStoneBricks => 280, - Item::InfestedChiseledStoneBricks => 281, - Item::InfestedDeepslate => 282, - Item::StoneBricks => 283, - Item::MossyStoneBricks => 284, - Item::CrackedStoneBricks => 285, - Item::ChiseledStoneBricks => 286, - Item::DeepslateBricks => 287, - Item::CrackedDeepslateBricks => 288, - Item::DeepslateTiles => 289, - Item::CrackedDeepslateTiles => 290, - Item::ChiseledDeepslate => 291, - Item::BrownMushroomBlock => 292, - Item::RedMushroomBlock => 293, - Item::MushroomStem => 294, - Item::IronBars => 295, - Item::Chain => 296, - Item::GlassPane => 297, - Item::Melon => 298, - Item::Vine => 299, - Item::GlowLichen => 300, - Item::BrickStairs => 301, - Item::StoneBrickStairs => 302, - Item::Mycelium => 303, - Item::LilyPad => 304, - Item::NetherBricks => 305, - Item::CrackedNetherBricks => 306, - Item::ChiseledNetherBricks => 307, - Item::NetherBrickFence => 308, - Item::NetherBrickStairs => 309, - Item::EnchantingTable => 310, - Item::EndPortalFrame => 311, - Item::EndStone => 312, - Item::EndStoneBricks => 313, - Item::DragonEgg => 314, - Item::SandstoneStairs => 315, - Item::EnderChest => 316, - Item::EmeraldBlock => 317, - Item::SpruceStairs => 318, - Item::BirchStairs => 319, - Item::JungleStairs => 320, - Item::CrimsonStairs => 321, - Item::WarpedStairs => 322, - Item::CommandBlock => 323, - Item::Beacon => 324, - Item::CobblestoneWall => 325, - Item::MossyCobblestoneWall => 326, - Item::BrickWall => 327, - Item::PrismarineWall => 328, - Item::RedSandstoneWall => 329, - Item::MossyStoneBrickWall => 330, - Item::GraniteWall => 331, - Item::StoneBrickWall => 332, - Item::NetherBrickWall => 333, - Item::AndesiteWall => 334, - Item::RedNetherBrickWall => 335, - Item::SandstoneWall => 336, - Item::EndStoneBrickWall => 337, - Item::DioriteWall => 338, - Item::BlackstoneWall => 339, - Item::PolishedBlackstoneWall => 340, - Item::PolishedBlackstoneBrickWall => 341, - Item::CobbledDeepslateWall => 342, - Item::PolishedDeepslateWall => 343, - Item::DeepslateBrickWall => 344, - Item::DeepslateTileWall => 345, - Item::Anvil => 346, - Item::ChippedAnvil => 347, - Item::DamagedAnvil => 348, - Item::ChiseledQuartzBlock => 349, - Item::QuartzBlock => 350, - Item::QuartzBricks => 351, - Item::QuartzPillar => 352, - Item::QuartzStairs => 353, - Item::WhiteTerracotta => 354, - Item::OrangeTerracotta => 355, - Item::MagentaTerracotta => 356, - Item::LightBlueTerracotta => 357, - Item::YellowTerracotta => 358, - Item::LimeTerracotta => 359, - Item::PinkTerracotta => 360, - Item::GrayTerracotta => 361, - Item::LightGrayTerracotta => 362, - Item::CyanTerracotta => 363, - Item::PurpleTerracotta => 364, - Item::BlueTerracotta => 365, - Item::BrownTerracotta => 366, - Item::GreenTerracotta => 367, - Item::RedTerracotta => 368, - Item::BlackTerracotta => 369, - Item::Barrier => 370, - Item::Light => 371, - Item::HayBlock => 372, - Item::WhiteCarpet => 373, - Item::OrangeCarpet => 374, - Item::MagentaCarpet => 375, - Item::LightBlueCarpet => 376, - Item::YellowCarpet => 377, - Item::LimeCarpet => 378, - Item::PinkCarpet => 379, - Item::GrayCarpet => 380, - Item::LightGrayCarpet => 381, - Item::CyanCarpet => 382, - Item::PurpleCarpet => 383, - Item::BlueCarpet => 384, - Item::BrownCarpet => 385, - Item::GreenCarpet => 386, - Item::RedCarpet => 387, - Item::BlackCarpet => 388, - Item::Terracotta => 389, - Item::PackedIce => 390, - Item::AcaciaStairs => 391, - Item::DarkOakStairs => 392, - Item::DirtPath => 393, - Item::Sunflower => 394, - Item::Lilac => 395, - Item::RoseBush => 396, - Item::Peony => 397, - Item::TallGrass => 398, - Item::LargeFern => 399, - Item::WhiteStainedGlass => 400, - Item::OrangeStainedGlass => 401, - Item::MagentaStainedGlass => 402, - Item::LightBlueStainedGlass => 403, - Item::YellowStainedGlass => 404, - Item::LimeStainedGlass => 405, - Item::PinkStainedGlass => 406, - Item::GrayStainedGlass => 407, - Item::LightGrayStainedGlass => 408, - Item::CyanStainedGlass => 409, - Item::PurpleStainedGlass => 410, - Item::BlueStainedGlass => 411, - Item::BrownStainedGlass => 412, - Item::GreenStainedGlass => 413, - Item::RedStainedGlass => 414, - Item::BlackStainedGlass => 415, - Item::WhiteStainedGlassPane => 416, - Item::OrangeStainedGlassPane => 417, - Item::MagentaStainedGlassPane => 418, - Item::LightBlueStainedGlassPane => 419, - Item::YellowStainedGlassPane => 420, - Item::LimeStainedGlassPane => 421, - Item::PinkStainedGlassPane => 422, - Item::GrayStainedGlassPane => 423, - Item::LightGrayStainedGlassPane => 424, - Item::CyanStainedGlassPane => 425, - Item::PurpleStainedGlassPane => 426, - Item::BlueStainedGlassPane => 427, - Item::BrownStainedGlassPane => 428, - Item::GreenStainedGlassPane => 429, - Item::RedStainedGlassPane => 430, - Item::BlackStainedGlassPane => 431, - Item::Prismarine => 432, - Item::PrismarineBricks => 433, - Item::DarkPrismarine => 434, - Item::PrismarineStairs => 435, - Item::PrismarineBrickStairs => 436, - Item::DarkPrismarineStairs => 437, - Item::SeaLantern => 438, - Item::RedSandstone => 439, - Item::ChiseledRedSandstone => 440, - Item::CutRedSandstone => 441, - Item::RedSandstoneStairs => 442, - Item::RepeatingCommandBlock => 443, - Item::ChainCommandBlock => 444, - Item::MagmaBlock => 445, - Item::NetherWartBlock => 446, - Item::WarpedWartBlock => 447, - Item::RedNetherBricks => 448, - Item::BoneBlock => 449, - Item::StructureVoid => 450, - Item::ShulkerBox => 451, - Item::WhiteShulkerBox => 452, - Item::OrangeShulkerBox => 453, - Item::MagentaShulkerBox => 454, - Item::LightBlueShulkerBox => 455, - Item::YellowShulkerBox => 456, - Item::LimeShulkerBox => 457, - Item::PinkShulkerBox => 458, - Item::GrayShulkerBox => 459, - Item::LightGrayShulkerBox => 460, - Item::CyanShulkerBox => 461, - Item::PurpleShulkerBox => 462, - Item::BlueShulkerBox => 463, - Item::BrownShulkerBox => 464, - Item::GreenShulkerBox => 465, - Item::RedShulkerBox => 466, - Item::BlackShulkerBox => 467, - Item::WhiteGlazedTerracotta => 468, - Item::OrangeGlazedTerracotta => 469, - Item::MagentaGlazedTerracotta => 470, - Item::LightBlueGlazedTerracotta => 471, - Item::YellowGlazedTerracotta => 472, - Item::LimeGlazedTerracotta => 473, - Item::PinkGlazedTerracotta => 474, - Item::GrayGlazedTerracotta => 475, - Item::LightGrayGlazedTerracotta => 476, - Item::CyanGlazedTerracotta => 477, - Item::PurpleGlazedTerracotta => 478, - Item::BlueGlazedTerracotta => 479, - Item::BrownGlazedTerracotta => 480, - Item::GreenGlazedTerracotta => 481, - Item::RedGlazedTerracotta => 482, - Item::BlackGlazedTerracotta => 483, - Item::WhiteConcrete => 484, - Item::OrangeConcrete => 485, - Item::MagentaConcrete => 486, - Item::LightBlueConcrete => 487, - Item::YellowConcrete => 488, - Item::LimeConcrete => 489, - Item::PinkConcrete => 490, - Item::GrayConcrete => 491, - Item::LightGrayConcrete => 492, - Item::CyanConcrete => 493, - Item::PurpleConcrete => 494, - Item::BlueConcrete => 495, - Item::BrownConcrete => 496, - Item::GreenConcrete => 497, - Item::RedConcrete => 498, - Item::BlackConcrete => 499, - Item::WhiteConcretePowder => 500, - Item::OrangeConcretePowder => 501, - Item::MagentaConcretePowder => 502, - Item::LightBlueConcretePowder => 503, - Item::YellowConcretePowder => 504, - Item::LimeConcretePowder => 505, - Item::PinkConcretePowder => 506, - Item::GrayConcretePowder => 507, - Item::LightGrayConcretePowder => 508, - Item::CyanConcretePowder => 509, - Item::PurpleConcretePowder => 510, - Item::BlueConcretePowder => 511, - Item::BrownConcretePowder => 512, - Item::GreenConcretePowder => 513, - Item::RedConcretePowder => 514, - Item::BlackConcretePowder => 515, - Item::TurtleEgg => 516, - Item::DeadTubeCoralBlock => 517, - Item::DeadBrainCoralBlock => 518, - Item::DeadBubbleCoralBlock => 519, - Item::DeadFireCoralBlock => 520, - Item::DeadHornCoralBlock => 521, - Item::TubeCoralBlock => 522, - Item::BrainCoralBlock => 523, - Item::BubbleCoralBlock => 524, - Item::FireCoralBlock => 525, - Item::HornCoralBlock => 526, - Item::TubeCoral => 527, - Item::BrainCoral => 528, - Item::BubbleCoral => 529, - Item::FireCoral => 530, - Item::HornCoral => 531, - Item::DeadBrainCoral => 532, - Item::DeadBubbleCoral => 533, - Item::DeadFireCoral => 534, - Item::DeadHornCoral => 535, - Item::DeadTubeCoral => 536, - Item::TubeCoralFan => 537, - Item::BrainCoralFan => 538, - Item::BubbleCoralFan => 539, - Item::FireCoralFan => 540, - Item::HornCoralFan => 541, - Item::DeadTubeCoralFan => 542, - Item::DeadBrainCoralFan => 543, - Item::DeadBubbleCoralFan => 544, - Item::DeadFireCoralFan => 545, - Item::DeadHornCoralFan => 546, - Item::BlueIce => 547, - Item::Conduit => 548, - Item::PolishedGraniteStairs => 549, - Item::SmoothRedSandstoneStairs => 550, - Item::MossyStoneBrickStairs => 551, - Item::PolishedDioriteStairs => 552, - Item::MossyCobblestoneStairs => 553, - Item::EndStoneBrickStairs => 554, - Item::StoneStairs => 555, - Item::SmoothSandstoneStairs => 556, - Item::SmoothQuartzStairs => 557, - Item::GraniteStairs => 558, - Item::AndesiteStairs => 559, - Item::RedNetherBrickStairs => 560, - Item::PolishedAndesiteStairs => 561, - Item::DioriteStairs => 562, - Item::CobbledDeepslateStairs => 563, - Item::PolishedDeepslateStairs => 564, - Item::DeepslateBrickStairs => 565, - Item::DeepslateTileStairs => 566, - Item::PolishedGraniteSlab => 567, - Item::SmoothRedSandstoneSlab => 568, - Item::MossyStoneBrickSlab => 569, - Item::PolishedDioriteSlab => 570, - Item::MossyCobblestoneSlab => 571, - Item::EndStoneBrickSlab => 572, - Item::SmoothSandstoneSlab => 573, - Item::SmoothQuartzSlab => 574, - Item::GraniteSlab => 575, - Item::AndesiteSlab => 576, - Item::RedNetherBrickSlab => 577, - Item::PolishedAndesiteSlab => 578, - Item::DioriteSlab => 579, - Item::CobbledDeepslateSlab => 580, - Item::PolishedDeepslateSlab => 581, - Item::DeepslateBrickSlab => 582, - Item::DeepslateTileSlab => 583, - Item::Scaffolding => 584, - Item::Redstone => 585, - Item::RedstoneTorch => 586, - Item::RedstoneBlock => 587, - Item::Repeater => 588, - Item::Comparator => 589, - Item::Piston => 590, - Item::StickyPiston => 591, - Item::SlimeBlock => 592, - Item::HoneyBlock => 593, - Item::Observer => 594, - Item::Hopper => 595, - Item::Dispenser => 596, - Item::Dropper => 597, - Item::Lectern => 598, - Item::Target => 599, - Item::Lever => 600, - Item::LightningRod => 601, - Item::DaylightDetector => 602, - Item::SculkSensor => 603, - Item::TripwireHook => 604, - Item::TrappedChest => 605, - Item::Tnt => 606, - Item::RedstoneLamp => 607, - Item::NoteBlock => 608, - Item::StoneButton => 609, - Item::PolishedBlackstoneButton => 610, - Item::OakButton => 611, - Item::SpruceButton => 612, - Item::BirchButton => 613, - Item::JungleButton => 614, - Item::AcaciaButton => 615, - Item::DarkOakButton => 616, - Item::CrimsonButton => 617, - Item::WarpedButton => 618, - Item::StonePressurePlate => 619, - Item::PolishedBlackstonePressurePlate => 620, - Item::LightWeightedPressurePlate => 621, - Item::HeavyWeightedPressurePlate => 622, - Item::OakPressurePlate => 623, - Item::SprucePressurePlate => 624, - Item::BirchPressurePlate => 625, - Item::JunglePressurePlate => 626, - Item::AcaciaPressurePlate => 627, - Item::DarkOakPressurePlate => 628, - Item::CrimsonPressurePlate => 629, - Item::WarpedPressurePlate => 630, - Item::IronDoor => 631, - Item::OakDoor => 632, - Item::SpruceDoor => 633, - Item::BirchDoor => 634, - Item::JungleDoor => 635, - Item::AcaciaDoor => 636, - Item::DarkOakDoor => 637, - Item::CrimsonDoor => 638, - Item::WarpedDoor => 639, - Item::IronTrapdoor => 640, - Item::OakTrapdoor => 641, - Item::SpruceTrapdoor => 642, - Item::BirchTrapdoor => 643, - Item::JungleTrapdoor => 644, - Item::AcaciaTrapdoor => 645, - Item::DarkOakTrapdoor => 646, - Item::CrimsonTrapdoor => 647, - Item::WarpedTrapdoor => 648, - Item::OakFenceGate => 649, - Item::SpruceFenceGate => 650, - Item::BirchFenceGate => 651, - Item::JungleFenceGate => 652, - Item::AcaciaFenceGate => 653, - Item::DarkOakFenceGate => 654, - Item::CrimsonFenceGate => 655, - Item::WarpedFenceGate => 656, - Item::PoweredRail => 657, - Item::DetectorRail => 658, - Item::Rail => 659, - Item::ActivatorRail => 660, - Item::Saddle => 661, - Item::Minecart => 662, - Item::ChestMinecart => 663, - Item::FurnaceMinecart => 664, - Item::TntMinecart => 665, - Item::HopperMinecart => 666, - Item::CarrotOnAStick => 667, - Item::WarpedFungusOnAStick => 668, - Item::Elytra => 669, - Item::OakBoat => 670, - Item::SpruceBoat => 671, - Item::BirchBoat => 672, - Item::JungleBoat => 673, - Item::AcaciaBoat => 674, - Item::DarkOakBoat => 675, - Item::StructureBlock => 676, - Item::Jigsaw => 677, - Item::TurtleHelmet => 678, - Item::Scute => 679, - Item::FlintAndSteel => 680, - Item::Apple => 681, - Item::Bow => 682, - Item::Arrow => 683, - Item::Coal => 684, - Item::Charcoal => 685, - Item::Diamond => 686, - Item::Emerald => 687, - Item::LapisLazuli => 688, - Item::Quartz => 689, - Item::AmethystShard => 690, - Item::RawIron => 691, - Item::IronIngot => 692, - Item::RawCopper => 693, - Item::CopperIngot => 694, - Item::RawGold => 695, - Item::GoldIngot => 696, - Item::NetheriteIngot => 697, - Item::NetheriteScrap => 698, - Item::WoodenSword => 699, - Item::WoodenShovel => 700, - Item::WoodenPickaxe => 701, - Item::WoodenAxe => 702, - Item::WoodenHoe => 703, - Item::StoneSword => 704, - Item::StoneShovel => 705, - Item::StonePickaxe => 706, - Item::StoneAxe => 707, - Item::StoneHoe => 708, - Item::GoldenSword => 709, - Item::GoldenShovel => 710, - Item::GoldenPickaxe => 711, - Item::GoldenAxe => 712, - Item::GoldenHoe => 713, - Item::IronSword => 714, - Item::IronShovel => 715, - Item::IronPickaxe => 716, - Item::IronAxe => 717, - Item::IronHoe => 718, - Item::DiamondSword => 719, - Item::DiamondShovel => 720, - Item::DiamondPickaxe => 721, - Item::DiamondAxe => 722, - Item::DiamondHoe => 723, - Item::NetheriteSword => 724, - Item::NetheriteShovel => 725, - Item::NetheritePickaxe => 726, - Item::NetheriteAxe => 727, - Item::NetheriteHoe => 728, - Item::Stick => 729, - Item::Bowl => 730, - Item::MushroomStew => 731, - Item::String => 732, - Item::Feather => 733, - Item::Gunpowder => 734, - Item::WheatSeeds => 735, - Item::Wheat => 736, - Item::Bread => 737, - Item::LeatherHelmet => 738, - Item::LeatherChestplate => 739, - Item::LeatherLeggings => 740, - Item::LeatherBoots => 741, - Item::ChainmailHelmet => 742, - Item::ChainmailChestplate => 743, - Item::ChainmailLeggings => 744, - Item::ChainmailBoots => 745, - Item::IronHelmet => 746, - Item::IronChestplate => 747, - Item::IronLeggings => 748, - Item::IronBoots => 749, - Item::DiamondHelmet => 750, - Item::DiamondChestplate => 751, - Item::DiamondLeggings => 752, - Item::DiamondBoots => 753, - Item::GoldenHelmet => 754, - Item::GoldenChestplate => 755, - Item::GoldenLeggings => 756, - Item::GoldenBoots => 757, - Item::NetheriteHelmet => 758, - Item::NetheriteChestplate => 759, - Item::NetheriteLeggings => 760, - Item::NetheriteBoots => 761, - Item::Flint => 762, - Item::Porkchop => 763, - Item::CookedPorkchop => 764, - Item::Painting => 765, - Item::GoldenApple => 766, - Item::EnchantedGoldenApple => 767, - Item::OakSign => 768, - Item::SpruceSign => 769, - Item::BirchSign => 770, - Item::JungleSign => 771, - Item::AcaciaSign => 772, - Item::DarkOakSign => 773, - Item::CrimsonSign => 774, - Item::WarpedSign => 775, - Item::Bucket => 776, - Item::WaterBucket => 777, - Item::LavaBucket => 778, - Item::PowderSnowBucket => 779, - Item::Snowball => 780, - Item::Leather => 781, - Item::MilkBucket => 782, - Item::PufferfishBucket => 783, - Item::SalmonBucket => 784, - Item::CodBucket => 785, - Item::TropicalFishBucket => 786, - Item::AxolotlBucket => 787, - Item::Brick => 788, - Item::ClayBall => 789, - Item::DriedKelpBlock => 790, - Item::Paper => 791, - Item::Book => 792, - Item::SlimeBall => 793, - Item::Egg => 794, - Item::Compass => 795, - Item::Bundle => 796, - Item::FishingRod => 797, - Item::Clock => 798, - Item::Spyglass => 799, - Item::GlowstoneDust => 800, - Item::Cod => 801, - Item::Salmon => 802, - Item::TropicalFish => 803, - Item::Pufferfish => 804, - Item::CookedCod => 805, - Item::CookedSalmon => 806, - Item::InkSac => 807, - Item::GlowInkSac => 808, - Item::CocoaBeans => 809, - Item::WhiteDye => 810, - Item::OrangeDye => 811, - Item::MagentaDye => 812, - Item::LightBlueDye => 813, - Item::YellowDye => 814, - Item::LimeDye => 815, - Item::PinkDye => 816, - Item::GrayDye => 817, - Item::LightGrayDye => 818, - Item::CyanDye => 819, - Item::PurpleDye => 820, - Item::BlueDye => 821, - Item::BrownDye => 822, - Item::GreenDye => 823, - Item::RedDye => 824, - Item::BlackDye => 825, - Item::BoneMeal => 826, - Item::Bone => 827, - Item::Sugar => 828, - Item::Cake => 829, - Item::WhiteBed => 830, - Item::OrangeBed => 831, - Item::MagentaBed => 832, - Item::LightBlueBed => 833, - Item::YellowBed => 834, - Item::LimeBed => 835, - Item::PinkBed => 836, - Item::GrayBed => 837, - Item::LightGrayBed => 838, - Item::CyanBed => 839, - Item::PurpleBed => 840, - Item::BlueBed => 841, - Item::BrownBed => 842, - Item::GreenBed => 843, - Item::RedBed => 844, - Item::BlackBed => 845, - Item::Cookie => 846, - Item::FilledMap => 847, - Item::Shears => 848, - Item::MelonSlice => 849, - Item::DriedKelp => 850, - Item::PumpkinSeeds => 851, - Item::MelonSeeds => 852, - Item::Beef => 853, - Item::CookedBeef => 854, - Item::Chicken => 855, - Item::CookedChicken => 856, - Item::RottenFlesh => 857, - Item::EnderPearl => 858, - Item::BlazeRod => 859, - Item::GhastTear => 860, - Item::GoldNugget => 861, - Item::NetherWart => 862, - Item::Potion => 863, - Item::GlassBottle => 864, - Item::SpiderEye => 865, - Item::FermentedSpiderEye => 866, - Item::BlazePowder => 867, - Item::MagmaCream => 868, - Item::BrewingStand => 869, - Item::Cauldron => 870, - Item::EnderEye => 871, - Item::GlisteringMelonSlice => 872, - Item::AxolotlSpawnEgg => 873, - Item::BatSpawnEgg => 874, - Item::BeeSpawnEgg => 875, - Item::BlazeSpawnEgg => 876, - Item::CatSpawnEgg => 877, - Item::CaveSpiderSpawnEgg => 878, - Item::ChickenSpawnEgg => 879, - Item::CodSpawnEgg => 880, - Item::CowSpawnEgg => 881, - Item::CreeperSpawnEgg => 882, - Item::DolphinSpawnEgg => 883, - Item::DonkeySpawnEgg => 884, - Item::DrownedSpawnEgg => 885, - Item::ElderGuardianSpawnEgg => 886, - Item::EndermanSpawnEgg => 887, - Item::EndermiteSpawnEgg => 888, - Item::EvokerSpawnEgg => 889, - Item::FoxSpawnEgg => 890, - Item::GhastSpawnEgg => 891, - Item::GlowSquidSpawnEgg => 892, - Item::GoatSpawnEgg => 893, - Item::GuardianSpawnEgg => 894, - Item::HoglinSpawnEgg => 895, - Item::HorseSpawnEgg => 896, - Item::HuskSpawnEgg => 897, - Item::LlamaSpawnEgg => 898, - Item::MagmaCubeSpawnEgg => 899, - Item::MooshroomSpawnEgg => 900, - Item::MuleSpawnEgg => 901, - Item::OcelotSpawnEgg => 902, - Item::PandaSpawnEgg => 903, - Item::ParrotSpawnEgg => 904, - Item::PhantomSpawnEgg => 905, - Item::PigSpawnEgg => 906, - Item::PiglinSpawnEgg => 907, - Item::PiglinBruteSpawnEgg => 908, - Item::PillagerSpawnEgg => 909, - Item::PolarBearSpawnEgg => 910, - Item::PufferfishSpawnEgg => 911, - Item::RabbitSpawnEgg => 912, - Item::RavagerSpawnEgg => 913, - Item::SalmonSpawnEgg => 914, - Item::SheepSpawnEgg => 915, - Item::ShulkerSpawnEgg => 916, - Item::SilverfishSpawnEgg => 917, - Item::SkeletonSpawnEgg => 918, - Item::SkeletonHorseSpawnEgg => 919, - Item::SlimeSpawnEgg => 920, - Item::SpiderSpawnEgg => 921, - Item::SquidSpawnEgg => 922, - Item::StraySpawnEgg => 923, - Item::StriderSpawnEgg => 924, - Item::TraderLlamaSpawnEgg => 925, - Item::TropicalFishSpawnEgg => 926, - Item::TurtleSpawnEgg => 927, - Item::VexSpawnEgg => 928, - Item::VillagerSpawnEgg => 929, - Item::VindicatorSpawnEgg => 930, - Item::WanderingTraderSpawnEgg => 931, - Item::WitchSpawnEgg => 932, - Item::WitherSkeletonSpawnEgg => 933, - Item::WolfSpawnEgg => 934, - Item::ZoglinSpawnEgg => 935, - Item::ZombieSpawnEgg => 936, - Item::ZombieHorseSpawnEgg => 937, - Item::ZombieVillagerSpawnEgg => 938, - Item::ZombifiedPiglinSpawnEgg => 939, - Item::ExperienceBottle => 940, - Item::FireCharge => 941, - Item::WritableBook => 942, - Item::WrittenBook => 943, - Item::ItemFrame => 944, - Item::GlowItemFrame => 945, - Item::FlowerPot => 946, - Item::Carrot => 947, - Item::Potato => 948, - Item::BakedPotato => 949, - Item::PoisonousPotato => 950, - Item::Map => 951, - Item::GoldenCarrot => 952, - Item::SkeletonSkull => 953, - Item::WitherSkeletonSkull => 954, - Item::PlayerHead => 955, - Item::ZombieHead => 956, - Item::CreeperHead => 957, - Item::DragonHead => 958, - Item::NetherStar => 959, - Item::PumpkinPie => 960, - Item::FireworkRocket => 961, - Item::FireworkStar => 962, - Item::EnchantedBook => 963, - Item::NetherBrick => 964, - Item::PrismarineShard => 965, - Item::PrismarineCrystals => 966, - Item::Rabbit => 967, - Item::CookedRabbit => 968, - Item::RabbitStew => 969, - Item::RabbitFoot => 970, - Item::RabbitHide => 971, - Item::ArmorStand => 972, - Item::IronHorseArmor => 973, - Item::GoldenHorseArmor => 974, - Item::DiamondHorseArmor => 975, - Item::LeatherHorseArmor => 976, - Item::Lead => 977, - Item::NameTag => 978, - Item::CommandBlockMinecart => 979, - Item::Mutton => 980, - Item::CookedMutton => 981, - Item::WhiteBanner => 982, - Item::OrangeBanner => 983, - Item::MagentaBanner => 984, - Item::LightBlueBanner => 985, - Item::YellowBanner => 986, - Item::LimeBanner => 987, - Item::PinkBanner => 988, - Item::GrayBanner => 989, - Item::LightGrayBanner => 990, - Item::CyanBanner => 991, - Item::PurpleBanner => 992, - Item::BlueBanner => 993, - Item::BrownBanner => 994, - Item::GreenBanner => 995, - Item::RedBanner => 996, - Item::BlackBanner => 997, - Item::EndCrystal => 998, - Item::ChorusFruit => 999, - Item::PoppedChorusFruit => 1000, - Item::Beetroot => 1001, - Item::BeetrootSeeds => 1002, - Item::BeetrootSoup => 1003, - Item::DragonBreath => 1004, - Item::SplashPotion => 1005, - Item::SpectralArrow => 1006, - Item::TippedArrow => 1007, - Item::LingeringPotion => 1008, - Item::Shield => 1009, - Item::TotemOfUndying => 1010, - Item::ShulkerShell => 1011, - Item::IronNugget => 1012, - Item::KnowledgeBook => 1013, - Item::DebugStick => 1014, - Item::MusicDisc13 => 1015, - Item::MusicDiscCat => 1016, - Item::MusicDiscBlocks => 1017, - Item::MusicDiscChirp => 1018, - Item::MusicDiscFar => 1019, - Item::MusicDiscMall => 1020, - Item::MusicDiscMellohi => 1021, - Item::MusicDiscStal => 1022, - Item::MusicDiscStrad => 1023, - Item::MusicDiscWard => 1024, - Item::MusicDisc11 => 1025, - Item::MusicDiscWait => 1026, - Item::MusicDiscOtherside => 1027, - Item::MusicDiscPigstep => 1028, - Item::Trident => 1029, - Item::PhantomMembrane => 1030, - Item::NautilusShell => 1031, - Item::HeartOfTheSea => 1032, - Item::Crossbow => 1033, - Item::SuspiciousStew => 1034, - Item::Loom => 1035, - Item::FlowerBannerPattern => 1036, - Item::CreeperBannerPattern => 1037, - Item::SkullBannerPattern => 1038, - Item::MojangBannerPattern => 1039, - Item::GlobeBannerPattern => 1040, - Item::PiglinBannerPattern => 1041, - Item::Composter => 1042, - Item::Barrel => 1043, - Item::Smoker => 1044, - Item::BlastFurnace => 1045, - Item::CartographyTable => 1046, - Item::FletchingTable => 1047, - Item::Grindstone => 1048, - Item::SmithingTable => 1049, - Item::Stonecutter => 1050, - Item::Bell => 1051, - Item::Lantern => 1052, - Item::SoulLantern => 1053, - Item::SweetBerries => 1054, - Item::GlowBerries => 1055, - Item::Campfire => 1056, - Item::SoulCampfire => 1057, - Item::Shroomlight => 1058, - Item::Honeycomb => 1059, - Item::BeeNest => 1060, - Item::Beehive => 1061, - Item::HoneyBottle => 1062, - Item::HoneycombBlock => 1063, - Item::Lodestone => 1064, - Item::CryingObsidian => 1065, - Item::Blackstone => 1066, - Item::BlackstoneSlab => 1067, - Item::BlackstoneStairs => 1068, - Item::GildedBlackstone => 1069, - Item::PolishedBlackstone => 1070, - Item::PolishedBlackstoneSlab => 1071, - Item::PolishedBlackstoneStairs => 1072, - Item::ChiseledPolishedBlackstone => 1073, - Item::PolishedBlackstoneBricks => 1074, - Item::PolishedBlackstoneBrickSlab => 1075, - Item::PolishedBlackstoneBrickStairs => 1076, - Item::CrackedPolishedBlackstoneBricks => 1077, - Item::RespawnAnchor => 1078, - Item::Candle => 1079, - Item::WhiteCandle => 1080, - Item::OrangeCandle => 1081, - Item::MagentaCandle => 1082, - Item::LightBlueCandle => 1083, - Item::YellowCandle => 1084, - Item::LimeCandle => 1085, - Item::PinkCandle => 1086, - Item::GrayCandle => 1087, - Item::LightGrayCandle => 1088, - Item::CyanCandle => 1089, - Item::PurpleCandle => 1090, - Item::BlueCandle => 1091, - Item::BrownCandle => 1092, - Item::GreenCandle => 1093, - Item::RedCandle => 1094, - Item::BlackCandle => 1095, - Item::SmallAmethystBud => 1096, - Item::MediumAmethystBud => 1097, - Item::LargeAmethystBud => 1098, - Item::AmethystCluster => 1099, - Item::PointedDripstone => 1100, + Item::Stone => 1u32, + Item::Granite => 2u32, + Item::PolishedGranite => 3u32, + Item::Diorite => 4u32, + Item::PolishedDiorite => 5u32, + Item::Andesite => 6u32, + Item::PolishedAndesite => 7u32, + Item::Deepslate => 8u32, + Item::CobbledDeepslate => 9u32, + Item::PolishedDeepslate => 10u32, + Item::Calcite => 11u32, + Item::Tuff => 12u32, + Item::DripstoneBlock => 13u32, + Item::GrassBlock => 14u32, + Item::Dirt => 15u32, + Item::CoarseDirt => 16u32, + Item::Podzol => 17u32, + Item::RootedDirt => 18u32, + Item::CrimsonNylium => 19u32, + Item::WarpedNylium => 20u32, + Item::Cobblestone => 21u32, + Item::OakPlanks => 22u32, + Item::SprucePlanks => 23u32, + Item::BirchPlanks => 24u32, + Item::JunglePlanks => 25u32, + Item::AcaciaPlanks => 26u32, + Item::DarkOakPlanks => 27u32, + Item::CrimsonPlanks => 28u32, + Item::WarpedPlanks => 29u32, + Item::OakSapling => 30u32, + Item::SpruceSapling => 31u32, + Item::BirchSapling => 32u32, + Item::JungleSapling => 33u32, + Item::AcaciaSapling => 34u32, + Item::DarkOakSapling => 35u32, + Item::Bedrock => 36u32, + Item::Sand => 37u32, + Item::RedSand => 38u32, + Item::Gravel => 39u32, + Item::CoalOre => 40u32, + Item::DeepslateCoalOre => 41u32, + Item::IronOre => 42u32, + Item::DeepslateIronOre => 43u32, + Item::CopperOre => 44u32, + Item::DeepslateCopperOre => 45u32, + Item::GoldOre => 46u32, + Item::DeepslateGoldOre => 47u32, + Item::RedstoneOre => 48u32, + Item::DeepslateRedstoneOre => 49u32, + Item::EmeraldOre => 50u32, + Item::DeepslateEmeraldOre => 51u32, + Item::LapisOre => 52u32, + Item::DeepslateLapisOre => 53u32, + Item::DiamondOre => 54u32, + Item::DeepslateDiamondOre => 55u32, + Item::NetherGoldOre => 56u32, + Item::NetherQuartzOre => 57u32, + Item::AncientDebris => 58u32, + Item::CoalBlock => 59u32, + Item::RawIronBlock => 60u32, + Item::RawCopperBlock => 61u32, + Item::RawGoldBlock => 62u32, + Item::AmethystBlock => 63u32, + Item::BuddingAmethyst => 64u32, + Item::IronBlock => 65u32, + Item::CopperBlock => 66u32, + Item::GoldBlock => 67u32, + Item::DiamondBlock => 68u32, + Item::NetheriteBlock => 69u32, + Item::ExposedCopper => 70u32, + Item::WeatheredCopper => 71u32, + Item::OxidizedCopper => 72u32, + Item::CutCopper => 73u32, + Item::ExposedCutCopper => 74u32, + Item::WeatheredCutCopper => 75u32, + Item::OxidizedCutCopper => 76u32, + Item::CutCopperStairs => 77u32, + Item::ExposedCutCopperStairs => 78u32, + Item::WeatheredCutCopperStairs => 79u32, + Item::OxidizedCutCopperStairs => 80u32, + Item::CutCopperSlab => 81u32, + Item::ExposedCutCopperSlab => 82u32, + Item::WeatheredCutCopperSlab => 83u32, + Item::OxidizedCutCopperSlab => 84u32, + Item::WaxedCopperBlock => 85u32, + Item::WaxedExposedCopper => 86u32, + Item::WaxedWeatheredCopper => 87u32, + Item::WaxedOxidizedCopper => 88u32, + Item::WaxedCutCopper => 89u32, + Item::WaxedExposedCutCopper => 90u32, + Item::WaxedWeatheredCutCopper => 91u32, + Item::WaxedOxidizedCutCopper => 92u32, + Item::WaxedCutCopperStairs => 93u32, + Item::WaxedExposedCutCopperStairs => 94u32, + Item::WaxedWeatheredCutCopperStairs => 95u32, + Item::WaxedOxidizedCutCopperStairs => 96u32, + Item::WaxedCutCopperSlab => 97u32, + Item::WaxedExposedCutCopperSlab => 98u32, + Item::WaxedWeatheredCutCopperSlab => 99u32, + Item::WaxedOxidizedCutCopperSlab => 100u32, + Item::OakLog => 101u32, + Item::SpruceLog => 102u32, + Item::BirchLog => 103u32, + Item::JungleLog => 104u32, + Item::AcaciaLog => 105u32, + Item::DarkOakLog => 106u32, + Item::CrimsonStem => 107u32, + Item::WarpedStem => 108u32, + Item::StrippedOakLog => 109u32, + Item::StrippedSpruceLog => 110u32, + Item::StrippedBirchLog => 111u32, + Item::StrippedJungleLog => 112u32, + Item::StrippedAcaciaLog => 113u32, + Item::StrippedDarkOakLog => 114u32, + Item::StrippedCrimsonStem => 115u32, + Item::StrippedWarpedStem => 116u32, + Item::StrippedOakWood => 117u32, + Item::StrippedSpruceWood => 118u32, + Item::StrippedBirchWood => 119u32, + Item::StrippedJungleWood => 120u32, + Item::StrippedAcaciaWood => 121u32, + Item::StrippedDarkOakWood => 122u32, + Item::StrippedCrimsonHyphae => 123u32, + Item::StrippedWarpedHyphae => 124u32, + Item::OakWood => 125u32, + Item::SpruceWood => 126u32, + Item::BirchWood => 127u32, + Item::JungleWood => 128u32, + Item::AcaciaWood => 129u32, + Item::DarkOakWood => 130u32, + Item::CrimsonHyphae => 131u32, + Item::WarpedHyphae => 132u32, + Item::OakLeaves => 133u32, + Item::SpruceLeaves => 134u32, + Item::BirchLeaves => 135u32, + Item::JungleLeaves => 136u32, + Item::AcaciaLeaves => 137u32, + Item::DarkOakLeaves => 138u32, + Item::AzaleaLeaves => 139u32, + Item::FloweringAzaleaLeaves => 140u32, + Item::Sponge => 141u32, + Item::WetSponge => 142u32, + Item::Glass => 143u32, + Item::TintedGlass => 144u32, + Item::LapisBlock => 145u32, + Item::Sandstone => 146u32, + Item::ChiseledSandstone => 147u32, + Item::CutSandstone => 148u32, + Item::Cobweb => 149u32, + Item::Grass => 150u32, + Item::Fern => 151u32, + Item::Azalea => 152u32, + Item::FloweringAzalea => 153u32, + Item::DeadBush => 154u32, + Item::Seagrass => 155u32, + Item::SeaPickle => 156u32, + Item::WhiteWool => 157u32, + Item::OrangeWool => 158u32, + Item::MagentaWool => 159u32, + Item::LightBlueWool => 160u32, + Item::YellowWool => 161u32, + Item::LimeWool => 162u32, + Item::PinkWool => 163u32, + Item::GrayWool => 164u32, + Item::LightGrayWool => 165u32, + Item::CyanWool => 166u32, + Item::PurpleWool => 167u32, + Item::BlueWool => 168u32, + Item::BrownWool => 169u32, + Item::GreenWool => 170u32, + Item::RedWool => 171u32, + Item::BlackWool => 172u32, + Item::Dandelion => 173u32, + Item::Poppy => 174u32, + Item::BlueOrchid => 175u32, + Item::Allium => 176u32, + Item::AzureBluet => 177u32, + Item::RedTulip => 178u32, + Item::OrangeTulip => 179u32, + Item::WhiteTulip => 180u32, + Item::PinkTulip => 181u32, + Item::OxeyeDaisy => 182u32, + Item::Cornflower => 183u32, + Item::LilyOfTheValley => 184u32, + Item::WitherRose => 185u32, + Item::SporeBlossom => 186u32, + Item::BrownMushroom => 187u32, + Item::RedMushroom => 188u32, + Item::CrimsonFungus => 189u32, + Item::WarpedFungus => 190u32, + Item::CrimsonRoots => 191u32, + Item::WarpedRoots => 192u32, + Item::NetherSprouts => 193u32, + Item::WeepingVines => 194u32, + Item::TwistingVines => 195u32, + Item::SugarCane => 196u32, + Item::Kelp => 197u32, + Item::MossCarpet => 198u32, + Item::MossBlock => 199u32, + Item::HangingRoots => 200u32, + Item::BigDripleaf => 201u32, + Item::SmallDripleaf => 202u32, + Item::Bamboo => 203u32, + Item::OakSlab => 204u32, + Item::SpruceSlab => 205u32, + Item::BirchSlab => 206u32, + Item::JungleSlab => 207u32, + Item::AcaciaSlab => 208u32, + Item::DarkOakSlab => 209u32, + Item::CrimsonSlab => 210u32, + Item::WarpedSlab => 211u32, + Item::StoneSlab => 212u32, + Item::SmoothStoneSlab => 213u32, + Item::SandstoneSlab => 214u32, + Item::CutSandstoneSlab => 215u32, + Item::PetrifiedOakSlab => 216u32, + Item::CobblestoneSlab => 217u32, + Item::BrickSlab => 218u32, + Item::StoneBrickSlab => 219u32, + Item::NetherBrickSlab => 220u32, + Item::QuartzSlab => 221u32, + Item::RedSandstoneSlab => 222u32, + Item::CutRedSandstoneSlab => 223u32, + Item::PurpurSlab => 224u32, + Item::PrismarineSlab => 225u32, + Item::PrismarineBrickSlab => 226u32, + Item::DarkPrismarineSlab => 227u32, + Item::SmoothQuartz => 228u32, + Item::SmoothRedSandstone => 229u32, + Item::SmoothSandstone => 230u32, + Item::SmoothStone => 231u32, + Item::Bricks => 232u32, + Item::Bookshelf => 233u32, + Item::MossyCobblestone => 234u32, + Item::Obsidian => 235u32, + Item::Torch => 236u32, + Item::EndRod => 237u32, + Item::ChorusPlant => 238u32, + Item::ChorusFlower => 239u32, + Item::PurpurBlock => 240u32, + Item::PurpurPillar => 241u32, + Item::PurpurStairs => 242u32, + Item::Spawner => 243u32, + Item::OakStairs => 244u32, + Item::Chest => 245u32, + Item::CraftingTable => 246u32, + Item::Farmland => 247u32, + Item::Furnace => 248u32, + Item::Ladder => 249u32, + Item::CobblestoneStairs => 250u32, + Item::Snow => 251u32, + Item::Ice => 252u32, + Item::SnowBlock => 253u32, + Item::Cactus => 254u32, + Item::Clay => 255u32, + Item::Jukebox => 256u32, + Item::OakFence => 257u32, + Item::SpruceFence => 258u32, + Item::BirchFence => 259u32, + Item::JungleFence => 260u32, + Item::AcaciaFence => 261u32, + Item::DarkOakFence => 262u32, + Item::CrimsonFence => 263u32, + Item::WarpedFence => 264u32, + Item::Pumpkin => 265u32, + Item::CarvedPumpkin => 266u32, + Item::JackOLantern => 267u32, + Item::Netherrack => 268u32, + Item::SoulSand => 269u32, + Item::SoulSoil => 270u32, + Item::Basalt => 271u32, + Item::PolishedBasalt => 272u32, + Item::SmoothBasalt => 273u32, + Item::SoulTorch => 274u32, + Item::Glowstone => 275u32, + Item::InfestedStone => 276u32, + Item::InfestedCobblestone => 277u32, + Item::InfestedStoneBricks => 278u32, + Item::InfestedMossyStoneBricks => 279u32, + Item::InfestedCrackedStoneBricks => 280u32, + Item::InfestedChiseledStoneBricks => 281u32, + Item::InfestedDeepslate => 282u32, + Item::StoneBricks => 283u32, + Item::MossyStoneBricks => 284u32, + Item::CrackedStoneBricks => 285u32, + Item::ChiseledStoneBricks => 286u32, + Item::DeepslateBricks => 287u32, + Item::CrackedDeepslateBricks => 288u32, + Item::DeepslateTiles => 289u32, + Item::CrackedDeepslateTiles => 290u32, + Item::ChiseledDeepslate => 291u32, + Item::BrownMushroomBlock => 292u32, + Item::RedMushroomBlock => 293u32, + Item::MushroomStem => 294u32, + Item::IronBars => 295u32, + Item::Chain => 296u32, + Item::GlassPane => 297u32, + Item::Melon => 298u32, + Item::Vine => 299u32, + Item::GlowLichen => 300u32, + Item::BrickStairs => 301u32, + Item::StoneBrickStairs => 302u32, + Item::Mycelium => 303u32, + Item::LilyPad => 304u32, + Item::NetherBricks => 305u32, + Item::CrackedNetherBricks => 306u32, + Item::ChiseledNetherBricks => 307u32, + Item::NetherBrickFence => 308u32, + Item::NetherBrickStairs => 309u32, + Item::EnchantingTable => 310u32, + Item::EndPortalFrame => 311u32, + Item::EndStone => 312u32, + Item::EndStoneBricks => 313u32, + Item::DragonEgg => 314u32, + Item::SandstoneStairs => 315u32, + Item::EnderChest => 316u32, + Item::EmeraldBlock => 317u32, + Item::SpruceStairs => 318u32, + Item::BirchStairs => 319u32, + Item::JungleStairs => 320u32, + Item::CrimsonStairs => 321u32, + Item::WarpedStairs => 322u32, + Item::CommandBlock => 323u32, + Item::Beacon => 324u32, + Item::CobblestoneWall => 325u32, + Item::MossyCobblestoneWall => 326u32, + Item::BrickWall => 327u32, + Item::PrismarineWall => 328u32, + Item::RedSandstoneWall => 329u32, + Item::MossyStoneBrickWall => 330u32, + Item::GraniteWall => 331u32, + Item::StoneBrickWall => 332u32, + Item::NetherBrickWall => 333u32, + Item::AndesiteWall => 334u32, + Item::RedNetherBrickWall => 335u32, + Item::SandstoneWall => 336u32, + Item::EndStoneBrickWall => 337u32, + Item::DioriteWall => 338u32, + Item::BlackstoneWall => 339u32, + Item::PolishedBlackstoneWall => 340u32, + Item::PolishedBlackstoneBrickWall => 341u32, + Item::CobbledDeepslateWall => 342u32, + Item::PolishedDeepslateWall => 343u32, + Item::DeepslateBrickWall => 344u32, + Item::DeepslateTileWall => 345u32, + Item::Anvil => 346u32, + Item::ChippedAnvil => 347u32, + Item::DamagedAnvil => 348u32, + Item::ChiseledQuartzBlock => 349u32, + Item::QuartzBlock => 350u32, + Item::QuartzBricks => 351u32, + Item::QuartzPillar => 352u32, + Item::QuartzStairs => 353u32, + Item::WhiteTerracotta => 354u32, + Item::OrangeTerracotta => 355u32, + Item::MagentaTerracotta => 356u32, + Item::LightBlueTerracotta => 357u32, + Item::YellowTerracotta => 358u32, + Item::LimeTerracotta => 359u32, + Item::PinkTerracotta => 360u32, + Item::GrayTerracotta => 361u32, + Item::LightGrayTerracotta => 362u32, + Item::CyanTerracotta => 363u32, + Item::PurpleTerracotta => 364u32, + Item::BlueTerracotta => 365u32, + Item::BrownTerracotta => 366u32, + Item::GreenTerracotta => 367u32, + Item::RedTerracotta => 368u32, + Item::BlackTerracotta => 369u32, + Item::Barrier => 370u32, + Item::Light => 371u32, + Item::HayBlock => 372u32, + Item::WhiteCarpet => 373u32, + Item::OrangeCarpet => 374u32, + Item::MagentaCarpet => 375u32, + Item::LightBlueCarpet => 376u32, + Item::YellowCarpet => 377u32, + Item::LimeCarpet => 378u32, + Item::PinkCarpet => 379u32, + Item::GrayCarpet => 380u32, + Item::LightGrayCarpet => 381u32, + Item::CyanCarpet => 382u32, + Item::PurpleCarpet => 383u32, + Item::BlueCarpet => 384u32, + Item::BrownCarpet => 385u32, + Item::GreenCarpet => 386u32, + Item::RedCarpet => 387u32, + Item::BlackCarpet => 388u32, + Item::Terracotta => 389u32, + Item::PackedIce => 390u32, + Item::AcaciaStairs => 391u32, + Item::DarkOakStairs => 392u32, + Item::DirtPath => 393u32, + Item::Sunflower => 394u32, + Item::Lilac => 395u32, + Item::RoseBush => 396u32, + Item::Peony => 397u32, + Item::TallGrass => 398u32, + Item::LargeFern => 399u32, + Item::WhiteStainedGlass => 400u32, + Item::OrangeStainedGlass => 401u32, + Item::MagentaStainedGlass => 402u32, + Item::LightBlueStainedGlass => 403u32, + Item::YellowStainedGlass => 404u32, + Item::LimeStainedGlass => 405u32, + Item::PinkStainedGlass => 406u32, + Item::GrayStainedGlass => 407u32, + Item::LightGrayStainedGlass => 408u32, + Item::CyanStainedGlass => 409u32, + Item::PurpleStainedGlass => 410u32, + Item::BlueStainedGlass => 411u32, + Item::BrownStainedGlass => 412u32, + Item::GreenStainedGlass => 413u32, + Item::RedStainedGlass => 414u32, + Item::BlackStainedGlass => 415u32, + Item::WhiteStainedGlassPane => 416u32, + Item::OrangeStainedGlassPane => 417u32, + Item::MagentaStainedGlassPane => 418u32, + Item::LightBlueStainedGlassPane => 419u32, + Item::YellowStainedGlassPane => 420u32, + Item::LimeStainedGlassPane => 421u32, + Item::PinkStainedGlassPane => 422u32, + Item::GrayStainedGlassPane => 423u32, + Item::LightGrayStainedGlassPane => 424u32, + Item::CyanStainedGlassPane => 425u32, + Item::PurpleStainedGlassPane => 426u32, + Item::BlueStainedGlassPane => 427u32, + Item::BrownStainedGlassPane => 428u32, + Item::GreenStainedGlassPane => 429u32, + Item::RedStainedGlassPane => 430u32, + Item::BlackStainedGlassPane => 431u32, + Item::Prismarine => 432u32, + Item::PrismarineBricks => 433u32, + Item::DarkPrismarine => 434u32, + Item::PrismarineStairs => 435u32, + Item::PrismarineBrickStairs => 436u32, + Item::DarkPrismarineStairs => 437u32, + Item::SeaLantern => 438u32, + Item::RedSandstone => 439u32, + Item::ChiseledRedSandstone => 440u32, + Item::CutRedSandstone => 441u32, + Item::RedSandstoneStairs => 442u32, + Item::RepeatingCommandBlock => 443u32, + Item::ChainCommandBlock => 444u32, + Item::MagmaBlock => 445u32, + Item::NetherWartBlock => 446u32, + Item::WarpedWartBlock => 447u32, + Item::RedNetherBricks => 448u32, + Item::BoneBlock => 449u32, + Item::StructureVoid => 450u32, + Item::ShulkerBox => 451u32, + Item::WhiteShulkerBox => 452u32, + Item::OrangeShulkerBox => 453u32, + Item::MagentaShulkerBox => 454u32, + Item::LightBlueShulkerBox => 455u32, + Item::YellowShulkerBox => 456u32, + Item::LimeShulkerBox => 457u32, + Item::PinkShulkerBox => 458u32, + Item::GrayShulkerBox => 459u32, + Item::LightGrayShulkerBox => 460u32, + Item::CyanShulkerBox => 461u32, + Item::PurpleShulkerBox => 462u32, + Item::BlueShulkerBox => 463u32, + Item::BrownShulkerBox => 464u32, + Item::GreenShulkerBox => 465u32, + Item::RedShulkerBox => 466u32, + Item::BlackShulkerBox => 467u32, + Item::WhiteGlazedTerracotta => 468u32, + Item::OrangeGlazedTerracotta => 469u32, + Item::MagentaGlazedTerracotta => 470u32, + Item::LightBlueGlazedTerracotta => 471u32, + Item::YellowGlazedTerracotta => 472u32, + Item::LimeGlazedTerracotta => 473u32, + Item::PinkGlazedTerracotta => 474u32, + Item::GrayGlazedTerracotta => 475u32, + Item::LightGrayGlazedTerracotta => 476u32, + Item::CyanGlazedTerracotta => 477u32, + Item::PurpleGlazedTerracotta => 478u32, + Item::BlueGlazedTerracotta => 479u32, + Item::BrownGlazedTerracotta => 480u32, + Item::GreenGlazedTerracotta => 481u32, + Item::RedGlazedTerracotta => 482u32, + Item::BlackGlazedTerracotta => 483u32, + Item::WhiteConcrete => 484u32, + Item::OrangeConcrete => 485u32, + Item::MagentaConcrete => 486u32, + Item::LightBlueConcrete => 487u32, + Item::YellowConcrete => 488u32, + Item::LimeConcrete => 489u32, + Item::PinkConcrete => 490u32, + Item::GrayConcrete => 491u32, + Item::LightGrayConcrete => 492u32, + Item::CyanConcrete => 493u32, + Item::PurpleConcrete => 494u32, + Item::BlueConcrete => 495u32, + Item::BrownConcrete => 496u32, + Item::GreenConcrete => 497u32, + Item::RedConcrete => 498u32, + Item::BlackConcrete => 499u32, + Item::WhiteConcretePowder => 500u32, + Item::OrangeConcretePowder => 501u32, + Item::MagentaConcretePowder => 502u32, + Item::LightBlueConcretePowder => 503u32, + Item::YellowConcretePowder => 504u32, + Item::LimeConcretePowder => 505u32, + Item::PinkConcretePowder => 506u32, + Item::GrayConcretePowder => 507u32, + Item::LightGrayConcretePowder => 508u32, + Item::CyanConcretePowder => 509u32, + Item::PurpleConcretePowder => 510u32, + Item::BlueConcretePowder => 511u32, + Item::BrownConcretePowder => 512u32, + Item::GreenConcretePowder => 513u32, + Item::RedConcretePowder => 514u32, + Item::BlackConcretePowder => 515u32, + Item::TurtleEgg => 516u32, + Item::DeadTubeCoralBlock => 517u32, + Item::DeadBrainCoralBlock => 518u32, + Item::DeadBubbleCoralBlock => 519u32, + Item::DeadFireCoralBlock => 520u32, + Item::DeadHornCoralBlock => 521u32, + Item::TubeCoralBlock => 522u32, + Item::BrainCoralBlock => 523u32, + Item::BubbleCoralBlock => 524u32, + Item::FireCoralBlock => 525u32, + Item::HornCoralBlock => 526u32, + Item::TubeCoral => 527u32, + Item::BrainCoral => 528u32, + Item::BubbleCoral => 529u32, + Item::FireCoral => 530u32, + Item::HornCoral => 531u32, + Item::DeadBrainCoral => 532u32, + Item::DeadBubbleCoral => 533u32, + Item::DeadFireCoral => 534u32, + Item::DeadHornCoral => 535u32, + Item::DeadTubeCoral => 536u32, + Item::TubeCoralFan => 537u32, + Item::BrainCoralFan => 538u32, + Item::BubbleCoralFan => 539u32, + Item::FireCoralFan => 540u32, + Item::HornCoralFan => 541u32, + Item::DeadTubeCoralFan => 542u32, + Item::DeadBrainCoralFan => 543u32, + Item::DeadBubbleCoralFan => 544u32, + Item::DeadFireCoralFan => 545u32, + Item::DeadHornCoralFan => 546u32, + Item::BlueIce => 547u32, + Item::Conduit => 548u32, + Item::PolishedGraniteStairs => 549u32, + Item::SmoothRedSandstoneStairs => 550u32, + Item::MossyStoneBrickStairs => 551u32, + Item::PolishedDioriteStairs => 552u32, + Item::MossyCobblestoneStairs => 553u32, + Item::EndStoneBrickStairs => 554u32, + Item::StoneStairs => 555u32, + Item::SmoothSandstoneStairs => 556u32, + Item::SmoothQuartzStairs => 557u32, + Item::GraniteStairs => 558u32, + Item::AndesiteStairs => 559u32, + Item::RedNetherBrickStairs => 560u32, + Item::PolishedAndesiteStairs => 561u32, + Item::DioriteStairs => 562u32, + Item::CobbledDeepslateStairs => 563u32, + Item::PolishedDeepslateStairs => 564u32, + Item::DeepslateBrickStairs => 565u32, + Item::DeepslateTileStairs => 566u32, + Item::PolishedGraniteSlab => 567u32, + Item::SmoothRedSandstoneSlab => 568u32, + Item::MossyStoneBrickSlab => 569u32, + Item::PolishedDioriteSlab => 570u32, + Item::MossyCobblestoneSlab => 571u32, + Item::EndStoneBrickSlab => 572u32, + Item::SmoothSandstoneSlab => 573u32, + Item::SmoothQuartzSlab => 574u32, + Item::GraniteSlab => 575u32, + Item::AndesiteSlab => 576u32, + Item::RedNetherBrickSlab => 577u32, + Item::PolishedAndesiteSlab => 578u32, + Item::DioriteSlab => 579u32, + Item::CobbledDeepslateSlab => 580u32, + Item::PolishedDeepslateSlab => 581u32, + Item::DeepslateBrickSlab => 582u32, + Item::DeepslateTileSlab => 583u32, + Item::Scaffolding => 584u32, + Item::Redstone => 585u32, + Item::RedstoneTorch => 586u32, + Item::RedstoneBlock => 587u32, + Item::Repeater => 588u32, + Item::Comparator => 589u32, + Item::Piston => 590u32, + Item::StickyPiston => 591u32, + Item::SlimeBlock => 592u32, + Item::HoneyBlock => 593u32, + Item::Observer => 594u32, + Item::Hopper => 595u32, + Item::Dispenser => 596u32, + Item::Dropper => 597u32, + Item::Lectern => 598u32, + Item::Target => 599u32, + Item::Lever => 600u32, + Item::LightningRod => 601u32, + Item::DaylightDetector => 602u32, + Item::SculkSensor => 603u32, + Item::TripwireHook => 604u32, + Item::TrappedChest => 605u32, + Item::Tnt => 606u32, + Item::RedstoneLamp => 607u32, + Item::NoteBlock => 608u32, + Item::StoneButton => 609u32, + Item::PolishedBlackstoneButton => 610u32, + Item::OakButton => 611u32, + Item::SpruceButton => 612u32, + Item::BirchButton => 613u32, + Item::JungleButton => 614u32, + Item::AcaciaButton => 615u32, + Item::DarkOakButton => 616u32, + Item::CrimsonButton => 617u32, + Item::WarpedButton => 618u32, + Item::StonePressurePlate => 619u32, + Item::PolishedBlackstonePressurePlate => 620u32, + Item::LightWeightedPressurePlate => 621u32, + Item::HeavyWeightedPressurePlate => 622u32, + Item::OakPressurePlate => 623u32, + Item::SprucePressurePlate => 624u32, + Item::BirchPressurePlate => 625u32, + Item::JunglePressurePlate => 626u32, + Item::AcaciaPressurePlate => 627u32, + Item::DarkOakPressurePlate => 628u32, + Item::CrimsonPressurePlate => 629u32, + Item::WarpedPressurePlate => 630u32, + Item::IronDoor => 631u32, + Item::OakDoor => 632u32, + Item::SpruceDoor => 633u32, + Item::BirchDoor => 634u32, + Item::JungleDoor => 635u32, + Item::AcaciaDoor => 636u32, + Item::DarkOakDoor => 637u32, + Item::CrimsonDoor => 638u32, + Item::WarpedDoor => 639u32, + Item::IronTrapdoor => 640u32, + Item::OakTrapdoor => 641u32, + Item::SpruceTrapdoor => 642u32, + Item::BirchTrapdoor => 643u32, + Item::JungleTrapdoor => 644u32, + Item::AcaciaTrapdoor => 645u32, + Item::DarkOakTrapdoor => 646u32, + Item::CrimsonTrapdoor => 647u32, + Item::WarpedTrapdoor => 648u32, + Item::OakFenceGate => 649u32, + Item::SpruceFenceGate => 650u32, + Item::BirchFenceGate => 651u32, + Item::JungleFenceGate => 652u32, + Item::AcaciaFenceGate => 653u32, + Item::DarkOakFenceGate => 654u32, + Item::CrimsonFenceGate => 655u32, + Item::WarpedFenceGate => 656u32, + Item::PoweredRail => 657u32, + Item::DetectorRail => 658u32, + Item::Rail => 659u32, + Item::ActivatorRail => 660u32, + Item::Saddle => 661u32, + Item::Minecart => 662u32, + Item::ChestMinecart => 663u32, + Item::FurnaceMinecart => 664u32, + Item::TntMinecart => 665u32, + Item::HopperMinecart => 666u32, + Item::CarrotOnAStick => 667u32, + Item::WarpedFungusOnAStick => 668u32, + Item::Elytra => 669u32, + Item::OakBoat => 670u32, + Item::SpruceBoat => 671u32, + Item::BirchBoat => 672u32, + Item::JungleBoat => 673u32, + Item::AcaciaBoat => 674u32, + Item::DarkOakBoat => 675u32, + Item::StructureBlock => 676u32, + Item::Jigsaw => 677u32, + Item::TurtleHelmet => 678u32, + Item::Scute => 679u32, + Item::FlintAndSteel => 680u32, + Item::Apple => 681u32, + Item::Bow => 682u32, + Item::Arrow => 683u32, + Item::Coal => 684u32, + Item::Charcoal => 685u32, + Item::Diamond => 686u32, + Item::Emerald => 687u32, + Item::LapisLazuli => 688u32, + Item::Quartz => 689u32, + Item::AmethystShard => 690u32, + Item::RawIron => 691u32, + Item::IronIngot => 692u32, + Item::RawCopper => 693u32, + Item::CopperIngot => 694u32, + Item::RawGold => 695u32, + Item::GoldIngot => 696u32, + Item::NetheriteIngot => 697u32, + Item::NetheriteScrap => 698u32, + Item::WoodenSword => 699u32, + Item::WoodenShovel => 700u32, + Item::WoodenPickaxe => 701u32, + Item::WoodenAxe => 702u32, + Item::WoodenHoe => 703u32, + Item::StoneSword => 704u32, + Item::StoneShovel => 705u32, + Item::StonePickaxe => 706u32, + Item::StoneAxe => 707u32, + Item::StoneHoe => 708u32, + Item::GoldenSword => 709u32, + Item::GoldenShovel => 710u32, + Item::GoldenPickaxe => 711u32, + Item::GoldenAxe => 712u32, + Item::GoldenHoe => 713u32, + Item::IronSword => 714u32, + Item::IronShovel => 715u32, + Item::IronPickaxe => 716u32, + Item::IronAxe => 717u32, + Item::IronHoe => 718u32, + Item::DiamondSword => 719u32, + Item::DiamondShovel => 720u32, + Item::DiamondPickaxe => 721u32, + Item::DiamondAxe => 722u32, + Item::DiamondHoe => 723u32, + Item::NetheriteSword => 724u32, + Item::NetheriteShovel => 725u32, + Item::NetheritePickaxe => 726u32, + Item::NetheriteAxe => 727u32, + Item::NetheriteHoe => 728u32, + Item::Stick => 729u32, + Item::Bowl => 730u32, + Item::MushroomStew => 731u32, + Item::String => 732u32, + Item::Feather => 733u32, + Item::Gunpowder => 734u32, + Item::WheatSeeds => 735u32, + Item::Wheat => 736u32, + Item::Bread => 737u32, + Item::LeatherHelmet => 738u32, + Item::LeatherChestplate => 739u32, + Item::LeatherLeggings => 740u32, + Item::LeatherBoots => 741u32, + Item::ChainmailHelmet => 742u32, + Item::ChainmailChestplate => 743u32, + Item::ChainmailLeggings => 744u32, + Item::ChainmailBoots => 745u32, + Item::IronHelmet => 746u32, + Item::IronChestplate => 747u32, + Item::IronLeggings => 748u32, + Item::IronBoots => 749u32, + Item::DiamondHelmet => 750u32, + Item::DiamondChestplate => 751u32, + Item::DiamondLeggings => 752u32, + Item::DiamondBoots => 753u32, + Item::GoldenHelmet => 754u32, + Item::GoldenChestplate => 755u32, + Item::GoldenLeggings => 756u32, + Item::GoldenBoots => 757u32, + Item::NetheriteHelmet => 758u32, + Item::NetheriteChestplate => 759u32, + Item::NetheriteLeggings => 760u32, + Item::NetheriteBoots => 761u32, + Item::Flint => 762u32, + Item::Porkchop => 763u32, + Item::CookedPorkchop => 764u32, + Item::Painting => 765u32, + Item::GoldenApple => 766u32, + Item::EnchantedGoldenApple => 767u32, + Item::OakSign => 768u32, + Item::SpruceSign => 769u32, + Item::BirchSign => 770u32, + Item::JungleSign => 771u32, + Item::AcaciaSign => 772u32, + Item::DarkOakSign => 773u32, + Item::CrimsonSign => 774u32, + Item::WarpedSign => 775u32, + Item::Bucket => 776u32, + Item::WaterBucket => 777u32, + Item::LavaBucket => 778u32, + Item::PowderSnowBucket => 779u32, + Item::Snowball => 780u32, + Item::Leather => 781u32, + Item::MilkBucket => 782u32, + Item::PufferfishBucket => 783u32, + Item::SalmonBucket => 784u32, + Item::CodBucket => 785u32, + Item::TropicalFishBucket => 786u32, + Item::AxolotlBucket => 787u32, + Item::Brick => 788u32, + Item::ClayBall => 789u32, + Item::DriedKelpBlock => 790u32, + Item::Paper => 791u32, + Item::Book => 792u32, + Item::SlimeBall => 793u32, + Item::Egg => 794u32, + Item::Compass => 795u32, + Item::Bundle => 796u32, + Item::FishingRod => 797u32, + Item::Clock => 798u32, + Item::Spyglass => 799u32, + Item::GlowstoneDust => 800u32, + Item::Cod => 801u32, + Item::Salmon => 802u32, + Item::TropicalFish => 803u32, + Item::Pufferfish => 804u32, + Item::CookedCod => 805u32, + Item::CookedSalmon => 806u32, + Item::InkSac => 807u32, + Item::GlowInkSac => 808u32, + Item::CocoaBeans => 809u32, + Item::WhiteDye => 810u32, + Item::OrangeDye => 811u32, + Item::MagentaDye => 812u32, + Item::LightBlueDye => 813u32, + Item::YellowDye => 814u32, + Item::LimeDye => 815u32, + Item::PinkDye => 816u32, + Item::GrayDye => 817u32, + Item::LightGrayDye => 818u32, + Item::CyanDye => 819u32, + Item::PurpleDye => 820u32, + Item::BlueDye => 821u32, + Item::BrownDye => 822u32, + Item::GreenDye => 823u32, + Item::RedDye => 824u32, + Item::BlackDye => 825u32, + Item::BoneMeal => 826u32, + Item::Bone => 827u32, + Item::Sugar => 828u32, + Item::Cake => 829u32, + Item::WhiteBed => 830u32, + Item::OrangeBed => 831u32, + Item::MagentaBed => 832u32, + Item::LightBlueBed => 833u32, + Item::YellowBed => 834u32, + Item::LimeBed => 835u32, + Item::PinkBed => 836u32, + Item::GrayBed => 837u32, + Item::LightGrayBed => 838u32, + Item::CyanBed => 839u32, + Item::PurpleBed => 840u32, + Item::BlueBed => 841u32, + Item::BrownBed => 842u32, + Item::GreenBed => 843u32, + Item::RedBed => 844u32, + Item::BlackBed => 845u32, + Item::Cookie => 846u32, + Item::FilledMap => 847u32, + Item::Shears => 848u32, + Item::MelonSlice => 849u32, + Item::DriedKelp => 850u32, + Item::PumpkinSeeds => 851u32, + Item::MelonSeeds => 852u32, + Item::Beef => 853u32, + Item::CookedBeef => 854u32, + Item::Chicken => 855u32, + Item::CookedChicken => 856u32, + Item::RottenFlesh => 857u32, + Item::EnderPearl => 858u32, + Item::BlazeRod => 859u32, + Item::GhastTear => 860u32, + Item::GoldNugget => 861u32, + Item::NetherWart => 862u32, + Item::Potion => 863u32, + Item::GlassBottle => 864u32, + Item::SpiderEye => 865u32, + Item::FermentedSpiderEye => 866u32, + Item::BlazePowder => 867u32, + Item::MagmaCream => 868u32, + Item::BrewingStand => 869u32, + Item::Cauldron => 870u32, + Item::EnderEye => 871u32, + Item::GlisteringMelonSlice => 872u32, + Item::AxolotlSpawnEgg => 873u32, + Item::BatSpawnEgg => 874u32, + Item::BeeSpawnEgg => 875u32, + Item::BlazeSpawnEgg => 876u32, + Item::CatSpawnEgg => 877u32, + Item::CaveSpiderSpawnEgg => 878u32, + Item::ChickenSpawnEgg => 879u32, + Item::CodSpawnEgg => 880u32, + Item::CowSpawnEgg => 881u32, + Item::CreeperSpawnEgg => 882u32, + Item::DolphinSpawnEgg => 883u32, + Item::DonkeySpawnEgg => 884u32, + Item::DrownedSpawnEgg => 885u32, + Item::ElderGuardianSpawnEgg => 886u32, + Item::EndermanSpawnEgg => 887u32, + Item::EndermiteSpawnEgg => 888u32, + Item::EvokerSpawnEgg => 889u32, + Item::FoxSpawnEgg => 890u32, + Item::GhastSpawnEgg => 891u32, + Item::GlowSquidSpawnEgg => 892u32, + Item::GoatSpawnEgg => 893u32, + Item::GuardianSpawnEgg => 894u32, + Item::HoglinSpawnEgg => 895u32, + Item::HorseSpawnEgg => 896u32, + Item::HuskSpawnEgg => 897u32, + Item::LlamaSpawnEgg => 898u32, + Item::MagmaCubeSpawnEgg => 899u32, + Item::MooshroomSpawnEgg => 900u32, + Item::MuleSpawnEgg => 901u32, + Item::OcelotSpawnEgg => 902u32, + Item::PandaSpawnEgg => 903u32, + Item::ParrotSpawnEgg => 904u32, + Item::PhantomSpawnEgg => 905u32, + Item::PigSpawnEgg => 906u32, + Item::PiglinSpawnEgg => 907u32, + Item::PiglinBruteSpawnEgg => 908u32, + Item::PillagerSpawnEgg => 909u32, + Item::PolarBearSpawnEgg => 910u32, + Item::PufferfishSpawnEgg => 911u32, + Item::RabbitSpawnEgg => 912u32, + Item::RavagerSpawnEgg => 913u32, + Item::SalmonSpawnEgg => 914u32, + Item::SheepSpawnEgg => 915u32, + Item::ShulkerSpawnEgg => 916u32, + Item::SilverfishSpawnEgg => 917u32, + Item::SkeletonSpawnEgg => 918u32, + Item::SkeletonHorseSpawnEgg => 919u32, + Item::SlimeSpawnEgg => 920u32, + Item::SpiderSpawnEgg => 921u32, + Item::SquidSpawnEgg => 922u32, + Item::StraySpawnEgg => 923u32, + Item::StriderSpawnEgg => 924u32, + Item::TraderLlamaSpawnEgg => 925u32, + Item::TropicalFishSpawnEgg => 926u32, + Item::TurtleSpawnEgg => 927u32, + Item::VexSpawnEgg => 928u32, + Item::VillagerSpawnEgg => 929u32, + Item::VindicatorSpawnEgg => 930u32, + Item::WanderingTraderSpawnEgg => 931u32, + Item::WitchSpawnEgg => 932u32, + Item::WitherSkeletonSpawnEgg => 933u32, + Item::WolfSpawnEgg => 934u32, + Item::ZoglinSpawnEgg => 935u32, + Item::ZombieSpawnEgg => 936u32, + Item::ZombieHorseSpawnEgg => 937u32, + Item::ZombieVillagerSpawnEgg => 938u32, + Item::ZombifiedPiglinSpawnEgg => 939u32, + Item::ExperienceBottle => 940u32, + Item::FireCharge => 941u32, + Item::WritableBook => 942u32, + Item::WrittenBook => 943u32, + Item::ItemFrame => 944u32, + Item::GlowItemFrame => 945u32, + Item::FlowerPot => 946u32, + Item::Carrot => 947u32, + Item::Potato => 948u32, + Item::BakedPotato => 949u32, + Item::PoisonousPotato => 950u32, + Item::Map => 951u32, + Item::GoldenCarrot => 952u32, + Item::SkeletonSkull => 953u32, + Item::WitherSkeletonSkull => 954u32, + Item::PlayerHead => 955u32, + Item::ZombieHead => 956u32, + Item::CreeperHead => 957u32, + Item::DragonHead => 958u32, + Item::NetherStar => 959u32, + Item::PumpkinPie => 960u32, + Item::FireworkRocket => 961u32, + Item::FireworkStar => 962u32, + Item::EnchantedBook => 963u32, + Item::NetherBrick => 964u32, + Item::PrismarineShard => 965u32, + Item::PrismarineCrystals => 966u32, + Item::Rabbit => 967u32, + Item::CookedRabbit => 968u32, + Item::RabbitStew => 969u32, + Item::RabbitFoot => 970u32, + Item::RabbitHide => 971u32, + Item::ArmorStand => 972u32, + Item::IronHorseArmor => 973u32, + Item::GoldenHorseArmor => 974u32, + Item::DiamondHorseArmor => 975u32, + Item::LeatherHorseArmor => 976u32, + Item::Lead => 977u32, + Item::NameTag => 978u32, + Item::CommandBlockMinecart => 979u32, + Item::Mutton => 980u32, + Item::CookedMutton => 981u32, + Item::WhiteBanner => 982u32, + Item::OrangeBanner => 983u32, + Item::MagentaBanner => 984u32, + Item::LightBlueBanner => 985u32, + Item::YellowBanner => 986u32, + Item::LimeBanner => 987u32, + Item::PinkBanner => 988u32, + Item::GrayBanner => 989u32, + Item::LightGrayBanner => 990u32, + Item::CyanBanner => 991u32, + Item::PurpleBanner => 992u32, + Item::BlueBanner => 993u32, + Item::BrownBanner => 994u32, + Item::GreenBanner => 995u32, + Item::RedBanner => 996u32, + Item::BlackBanner => 997u32, + Item::EndCrystal => 998u32, + Item::ChorusFruit => 999u32, + Item::PoppedChorusFruit => 1000u32, + Item::Beetroot => 1001u32, + Item::BeetrootSeeds => 1002u32, + Item::BeetrootSoup => 1003u32, + Item::DragonBreath => 1004u32, + Item::SplashPotion => 1005u32, + Item::SpectralArrow => 1006u32, + Item::TippedArrow => 1007u32, + Item::LingeringPotion => 1008u32, + Item::Shield => 1009u32, + Item::TotemOfUndying => 1010u32, + Item::ShulkerShell => 1011u32, + Item::IronNugget => 1012u32, + Item::KnowledgeBook => 1013u32, + Item::DebugStick => 1014u32, + Item::MusicDisc13 => 1015u32, + Item::MusicDiscCat => 1016u32, + Item::MusicDiscBlocks => 1017u32, + Item::MusicDiscChirp => 1018u32, + Item::MusicDiscFar => 1019u32, + Item::MusicDiscMall => 1020u32, + Item::MusicDiscMellohi => 1021u32, + Item::MusicDiscStal => 1022u32, + Item::MusicDiscStrad => 1023u32, + Item::MusicDiscWard => 1024u32, + Item::MusicDisc11 => 1025u32, + Item::MusicDiscWait => 1026u32, + Item::MusicDiscOtherside => 1027u32, + Item::MusicDiscPigstep => 1028u32, + Item::Trident => 1029u32, + Item::PhantomMembrane => 1030u32, + Item::NautilusShell => 1031u32, + Item::HeartOfTheSea => 1032u32, + Item::Crossbow => 1033u32, + Item::SuspiciousStew => 1034u32, + Item::Loom => 1035u32, + Item::FlowerBannerPattern => 1036u32, + Item::CreeperBannerPattern => 1037u32, + Item::SkullBannerPattern => 1038u32, + Item::MojangBannerPattern => 1039u32, + Item::GlobeBannerPattern => 1040u32, + Item::PiglinBannerPattern => 1041u32, + Item::Composter => 1042u32, + Item::Barrel => 1043u32, + Item::Smoker => 1044u32, + Item::BlastFurnace => 1045u32, + Item::CartographyTable => 1046u32, + Item::FletchingTable => 1047u32, + Item::Grindstone => 1048u32, + Item::SmithingTable => 1049u32, + Item::Stonecutter => 1050u32, + Item::Bell => 1051u32, + Item::Lantern => 1052u32, + Item::SoulLantern => 1053u32, + Item::SweetBerries => 1054u32, + Item::GlowBerries => 1055u32, + Item::Campfire => 1056u32, + Item::SoulCampfire => 1057u32, + Item::Shroomlight => 1058u32, + Item::Honeycomb => 1059u32, + Item::BeeNest => 1060u32, + Item::Beehive => 1061u32, + Item::HoneyBottle => 1062u32, + Item::HoneycombBlock => 1063u32, + Item::Lodestone => 1064u32, + Item::CryingObsidian => 1065u32, + Item::Blackstone => 1066u32, + Item::BlackstoneSlab => 1067u32, + Item::BlackstoneStairs => 1068u32, + Item::GildedBlackstone => 1069u32, + Item::PolishedBlackstone => 1070u32, + Item::PolishedBlackstoneSlab => 1071u32, + Item::PolishedBlackstoneStairs => 1072u32, + Item::ChiseledPolishedBlackstone => 1073u32, + Item::PolishedBlackstoneBricks => 1074u32, + Item::PolishedBlackstoneBrickSlab => 1075u32, + Item::PolishedBlackstoneBrickStairs => 1076u32, + Item::CrackedPolishedBlackstoneBricks => 1077u32, + Item::RespawnAnchor => 1078u32, + Item::Candle => 1079u32, + Item::WhiteCandle => 1080u32, + Item::OrangeCandle => 1081u32, + Item::MagentaCandle => 1082u32, + Item::LightBlueCandle => 1083u32, + Item::YellowCandle => 1084u32, + Item::LimeCandle => 1085u32, + Item::PinkCandle => 1086u32, + Item::GrayCandle => 1087u32, + Item::LightGrayCandle => 1088u32, + Item::CyanCandle => 1089u32, + Item::PurpleCandle => 1090u32, + Item::BlueCandle => 1091u32, + Item::BrownCandle => 1092u32, + Item::GreenCandle => 1093u32, + Item::RedCandle => 1094u32, + Item::BlackCandle => 1095u32, + Item::SmallAmethystBud => 1096u32, + Item::MediumAmethystBud => 1097u32, + Item::LargeAmethystBud => 1098u32, + Item::AmethystCluster => 1099u32, + Item::PointedDripstone => 1100u32, } } #[doc = "Gets a `Item` by its `id`."] #[inline] pub fn from_id(id: u32) -> Option { match id { - 1 => Some(Item::Stone), - 2 => Some(Item::Granite), - 3 => Some(Item::PolishedGranite), - 4 => Some(Item::Diorite), - 5 => Some(Item::PolishedDiorite), - 6 => Some(Item::Andesite), - 7 => Some(Item::PolishedAndesite), - 8 => Some(Item::Deepslate), - 9 => Some(Item::CobbledDeepslate), - 10 => Some(Item::PolishedDeepslate), - 11 => Some(Item::Calcite), - 12 => Some(Item::Tuff), - 13 => Some(Item::DripstoneBlock), - 14 => Some(Item::GrassBlock), - 15 => Some(Item::Dirt), - 16 => Some(Item::CoarseDirt), - 17 => Some(Item::Podzol), - 18 => Some(Item::RootedDirt), - 19 => Some(Item::CrimsonNylium), - 20 => Some(Item::WarpedNylium), - 21 => Some(Item::Cobblestone), - 22 => Some(Item::OakPlanks), - 23 => Some(Item::SprucePlanks), - 24 => Some(Item::BirchPlanks), - 25 => Some(Item::JunglePlanks), - 26 => Some(Item::AcaciaPlanks), - 27 => Some(Item::DarkOakPlanks), - 28 => Some(Item::CrimsonPlanks), - 29 => Some(Item::WarpedPlanks), - 30 => Some(Item::OakSapling), - 31 => Some(Item::SpruceSapling), - 32 => Some(Item::BirchSapling), - 33 => Some(Item::JungleSapling), - 34 => Some(Item::AcaciaSapling), - 35 => Some(Item::DarkOakSapling), - 36 => Some(Item::Bedrock), - 37 => Some(Item::Sand), - 38 => Some(Item::RedSand), - 39 => Some(Item::Gravel), - 40 => Some(Item::CoalOre), - 41 => Some(Item::DeepslateCoalOre), - 42 => Some(Item::IronOre), - 43 => Some(Item::DeepslateIronOre), - 44 => Some(Item::CopperOre), - 45 => Some(Item::DeepslateCopperOre), - 46 => Some(Item::GoldOre), - 47 => Some(Item::DeepslateGoldOre), - 48 => Some(Item::RedstoneOre), - 49 => Some(Item::DeepslateRedstoneOre), - 50 => Some(Item::EmeraldOre), - 51 => Some(Item::DeepslateEmeraldOre), - 52 => Some(Item::LapisOre), - 53 => Some(Item::DeepslateLapisOre), - 54 => Some(Item::DiamondOre), - 55 => Some(Item::DeepslateDiamondOre), - 56 => Some(Item::NetherGoldOre), - 57 => Some(Item::NetherQuartzOre), - 58 => Some(Item::AncientDebris), - 59 => Some(Item::CoalBlock), - 60 => Some(Item::RawIronBlock), - 61 => Some(Item::RawCopperBlock), - 62 => Some(Item::RawGoldBlock), - 63 => Some(Item::AmethystBlock), - 64 => Some(Item::BuddingAmethyst), - 65 => Some(Item::IronBlock), - 66 => Some(Item::CopperBlock), - 67 => Some(Item::GoldBlock), - 68 => Some(Item::DiamondBlock), - 69 => Some(Item::NetheriteBlock), - 70 => Some(Item::ExposedCopper), - 71 => Some(Item::WeatheredCopper), - 72 => Some(Item::OxidizedCopper), - 73 => Some(Item::CutCopper), - 74 => Some(Item::ExposedCutCopper), - 75 => Some(Item::WeatheredCutCopper), - 76 => Some(Item::OxidizedCutCopper), - 77 => Some(Item::CutCopperStairs), - 78 => Some(Item::ExposedCutCopperStairs), - 79 => Some(Item::WeatheredCutCopperStairs), - 80 => Some(Item::OxidizedCutCopperStairs), - 81 => Some(Item::CutCopperSlab), - 82 => Some(Item::ExposedCutCopperSlab), - 83 => Some(Item::WeatheredCutCopperSlab), - 84 => Some(Item::OxidizedCutCopperSlab), - 85 => Some(Item::WaxedCopperBlock), - 86 => Some(Item::WaxedExposedCopper), - 87 => Some(Item::WaxedWeatheredCopper), - 88 => Some(Item::WaxedOxidizedCopper), - 89 => Some(Item::WaxedCutCopper), - 90 => Some(Item::WaxedExposedCutCopper), - 91 => Some(Item::WaxedWeatheredCutCopper), - 92 => Some(Item::WaxedOxidizedCutCopper), - 93 => Some(Item::WaxedCutCopperStairs), - 94 => Some(Item::WaxedExposedCutCopperStairs), - 95 => Some(Item::WaxedWeatheredCutCopperStairs), - 96 => Some(Item::WaxedOxidizedCutCopperStairs), - 97 => Some(Item::WaxedCutCopperSlab), - 98 => Some(Item::WaxedExposedCutCopperSlab), - 99 => Some(Item::WaxedWeatheredCutCopperSlab), - 100 => Some(Item::WaxedOxidizedCutCopperSlab), - 101 => Some(Item::OakLog), - 102 => Some(Item::SpruceLog), - 103 => Some(Item::BirchLog), - 104 => Some(Item::JungleLog), - 105 => Some(Item::AcaciaLog), - 106 => Some(Item::DarkOakLog), - 107 => Some(Item::CrimsonStem), - 108 => Some(Item::WarpedStem), - 109 => Some(Item::StrippedOakLog), - 110 => Some(Item::StrippedSpruceLog), - 111 => Some(Item::StrippedBirchLog), - 112 => Some(Item::StrippedJungleLog), - 113 => Some(Item::StrippedAcaciaLog), - 114 => Some(Item::StrippedDarkOakLog), - 115 => Some(Item::StrippedCrimsonStem), - 116 => Some(Item::StrippedWarpedStem), - 117 => Some(Item::StrippedOakWood), - 118 => Some(Item::StrippedSpruceWood), - 119 => Some(Item::StrippedBirchWood), - 120 => Some(Item::StrippedJungleWood), - 121 => Some(Item::StrippedAcaciaWood), - 122 => Some(Item::StrippedDarkOakWood), - 123 => Some(Item::StrippedCrimsonHyphae), - 124 => Some(Item::StrippedWarpedHyphae), - 125 => Some(Item::OakWood), - 126 => Some(Item::SpruceWood), - 127 => Some(Item::BirchWood), - 128 => Some(Item::JungleWood), - 129 => Some(Item::AcaciaWood), - 130 => Some(Item::DarkOakWood), - 131 => Some(Item::CrimsonHyphae), - 132 => Some(Item::WarpedHyphae), - 133 => Some(Item::OakLeaves), - 134 => Some(Item::SpruceLeaves), - 135 => Some(Item::BirchLeaves), - 136 => Some(Item::JungleLeaves), - 137 => Some(Item::AcaciaLeaves), - 138 => Some(Item::DarkOakLeaves), - 139 => Some(Item::AzaleaLeaves), - 140 => Some(Item::FloweringAzaleaLeaves), - 141 => Some(Item::Sponge), - 142 => Some(Item::WetSponge), - 143 => Some(Item::Glass), - 144 => Some(Item::TintedGlass), - 145 => Some(Item::LapisBlock), - 146 => Some(Item::Sandstone), - 147 => Some(Item::ChiseledSandstone), - 148 => Some(Item::CutSandstone), - 149 => Some(Item::Cobweb), - 150 => Some(Item::Grass), - 151 => Some(Item::Fern), - 152 => Some(Item::Azalea), - 153 => Some(Item::FloweringAzalea), - 154 => Some(Item::DeadBush), - 155 => Some(Item::Seagrass), - 156 => Some(Item::SeaPickle), - 157 => Some(Item::WhiteWool), - 158 => Some(Item::OrangeWool), - 159 => Some(Item::MagentaWool), - 160 => Some(Item::LightBlueWool), - 161 => Some(Item::YellowWool), - 162 => Some(Item::LimeWool), - 163 => Some(Item::PinkWool), - 164 => Some(Item::GrayWool), - 165 => Some(Item::LightGrayWool), - 166 => Some(Item::CyanWool), - 167 => Some(Item::PurpleWool), - 168 => Some(Item::BlueWool), - 169 => Some(Item::BrownWool), - 170 => Some(Item::GreenWool), - 171 => Some(Item::RedWool), - 172 => Some(Item::BlackWool), - 173 => Some(Item::Dandelion), - 174 => Some(Item::Poppy), - 175 => Some(Item::BlueOrchid), - 176 => Some(Item::Allium), - 177 => Some(Item::AzureBluet), - 178 => Some(Item::RedTulip), - 179 => Some(Item::OrangeTulip), - 180 => Some(Item::WhiteTulip), - 181 => Some(Item::PinkTulip), - 182 => Some(Item::OxeyeDaisy), - 183 => Some(Item::Cornflower), - 184 => Some(Item::LilyOfTheValley), - 185 => Some(Item::WitherRose), - 186 => Some(Item::SporeBlossom), - 187 => Some(Item::BrownMushroom), - 188 => Some(Item::RedMushroom), - 189 => Some(Item::CrimsonFungus), - 190 => Some(Item::WarpedFungus), - 191 => Some(Item::CrimsonRoots), - 192 => Some(Item::WarpedRoots), - 193 => Some(Item::NetherSprouts), - 194 => Some(Item::WeepingVines), - 195 => Some(Item::TwistingVines), - 196 => Some(Item::SugarCane), - 197 => Some(Item::Kelp), - 198 => Some(Item::MossCarpet), - 199 => Some(Item::MossBlock), - 200 => Some(Item::HangingRoots), - 201 => Some(Item::BigDripleaf), - 202 => Some(Item::SmallDripleaf), - 203 => Some(Item::Bamboo), - 204 => Some(Item::OakSlab), - 205 => Some(Item::SpruceSlab), - 206 => Some(Item::BirchSlab), - 207 => Some(Item::JungleSlab), - 208 => Some(Item::AcaciaSlab), - 209 => Some(Item::DarkOakSlab), - 210 => Some(Item::CrimsonSlab), - 211 => Some(Item::WarpedSlab), - 212 => Some(Item::StoneSlab), - 213 => Some(Item::SmoothStoneSlab), - 214 => Some(Item::SandstoneSlab), - 215 => Some(Item::CutSandstoneSlab), - 216 => Some(Item::PetrifiedOakSlab), - 217 => Some(Item::CobblestoneSlab), - 218 => Some(Item::BrickSlab), - 219 => Some(Item::StoneBrickSlab), - 220 => Some(Item::NetherBrickSlab), - 221 => Some(Item::QuartzSlab), - 222 => Some(Item::RedSandstoneSlab), - 223 => Some(Item::CutRedSandstoneSlab), - 224 => Some(Item::PurpurSlab), - 225 => Some(Item::PrismarineSlab), - 226 => Some(Item::PrismarineBrickSlab), - 227 => Some(Item::DarkPrismarineSlab), - 228 => Some(Item::SmoothQuartz), - 229 => Some(Item::SmoothRedSandstone), - 230 => Some(Item::SmoothSandstone), - 231 => Some(Item::SmoothStone), - 232 => Some(Item::Bricks), - 233 => Some(Item::Bookshelf), - 234 => Some(Item::MossyCobblestone), - 235 => Some(Item::Obsidian), - 236 => Some(Item::Torch), - 237 => Some(Item::EndRod), - 238 => Some(Item::ChorusPlant), - 239 => Some(Item::ChorusFlower), - 240 => Some(Item::PurpurBlock), - 241 => Some(Item::PurpurPillar), - 242 => Some(Item::PurpurStairs), - 243 => Some(Item::Spawner), - 244 => Some(Item::OakStairs), - 245 => Some(Item::Chest), - 246 => Some(Item::CraftingTable), - 247 => Some(Item::Farmland), - 248 => Some(Item::Furnace), - 249 => Some(Item::Ladder), - 250 => Some(Item::CobblestoneStairs), - 251 => Some(Item::Snow), - 252 => Some(Item::Ice), - 253 => Some(Item::SnowBlock), - 254 => Some(Item::Cactus), - 255 => Some(Item::Clay), - 256 => Some(Item::Jukebox), - 257 => Some(Item::OakFence), - 258 => Some(Item::SpruceFence), - 259 => Some(Item::BirchFence), - 260 => Some(Item::JungleFence), - 261 => Some(Item::AcaciaFence), - 262 => Some(Item::DarkOakFence), - 263 => Some(Item::CrimsonFence), - 264 => Some(Item::WarpedFence), - 265 => Some(Item::Pumpkin), - 266 => Some(Item::CarvedPumpkin), - 267 => Some(Item::JackOLantern), - 268 => Some(Item::Netherrack), - 269 => Some(Item::SoulSand), - 270 => Some(Item::SoulSoil), - 271 => Some(Item::Basalt), - 272 => Some(Item::PolishedBasalt), - 273 => Some(Item::SmoothBasalt), - 274 => Some(Item::SoulTorch), - 275 => Some(Item::Glowstone), - 276 => Some(Item::InfestedStone), - 277 => Some(Item::InfestedCobblestone), - 278 => Some(Item::InfestedStoneBricks), - 279 => Some(Item::InfestedMossyStoneBricks), - 280 => Some(Item::InfestedCrackedStoneBricks), - 281 => Some(Item::InfestedChiseledStoneBricks), - 282 => Some(Item::InfestedDeepslate), - 283 => Some(Item::StoneBricks), - 284 => Some(Item::MossyStoneBricks), - 285 => Some(Item::CrackedStoneBricks), - 286 => Some(Item::ChiseledStoneBricks), - 287 => Some(Item::DeepslateBricks), - 288 => Some(Item::CrackedDeepslateBricks), - 289 => Some(Item::DeepslateTiles), - 290 => Some(Item::CrackedDeepslateTiles), - 291 => Some(Item::ChiseledDeepslate), - 292 => Some(Item::BrownMushroomBlock), - 293 => Some(Item::RedMushroomBlock), - 294 => Some(Item::MushroomStem), - 295 => Some(Item::IronBars), - 296 => Some(Item::Chain), - 297 => Some(Item::GlassPane), - 298 => Some(Item::Melon), - 299 => Some(Item::Vine), - 300 => Some(Item::GlowLichen), - 301 => Some(Item::BrickStairs), - 302 => Some(Item::StoneBrickStairs), - 303 => Some(Item::Mycelium), - 304 => Some(Item::LilyPad), - 305 => Some(Item::NetherBricks), - 306 => Some(Item::CrackedNetherBricks), - 307 => Some(Item::ChiseledNetherBricks), - 308 => Some(Item::NetherBrickFence), - 309 => Some(Item::NetherBrickStairs), - 310 => Some(Item::EnchantingTable), - 311 => Some(Item::EndPortalFrame), - 312 => Some(Item::EndStone), - 313 => Some(Item::EndStoneBricks), - 314 => Some(Item::DragonEgg), - 315 => Some(Item::SandstoneStairs), - 316 => Some(Item::EnderChest), - 317 => Some(Item::EmeraldBlock), - 318 => Some(Item::SpruceStairs), - 319 => Some(Item::BirchStairs), - 320 => Some(Item::JungleStairs), - 321 => Some(Item::CrimsonStairs), - 322 => Some(Item::WarpedStairs), - 323 => Some(Item::CommandBlock), - 324 => Some(Item::Beacon), - 325 => Some(Item::CobblestoneWall), - 326 => Some(Item::MossyCobblestoneWall), - 327 => Some(Item::BrickWall), - 328 => Some(Item::PrismarineWall), - 329 => Some(Item::RedSandstoneWall), - 330 => Some(Item::MossyStoneBrickWall), - 331 => Some(Item::GraniteWall), - 332 => Some(Item::StoneBrickWall), - 333 => Some(Item::NetherBrickWall), - 334 => Some(Item::AndesiteWall), - 335 => Some(Item::RedNetherBrickWall), - 336 => Some(Item::SandstoneWall), - 337 => Some(Item::EndStoneBrickWall), - 338 => Some(Item::DioriteWall), - 339 => Some(Item::BlackstoneWall), - 340 => Some(Item::PolishedBlackstoneWall), - 341 => Some(Item::PolishedBlackstoneBrickWall), - 342 => Some(Item::CobbledDeepslateWall), - 343 => Some(Item::PolishedDeepslateWall), - 344 => Some(Item::DeepslateBrickWall), - 345 => Some(Item::DeepslateTileWall), - 346 => Some(Item::Anvil), - 347 => Some(Item::ChippedAnvil), - 348 => Some(Item::DamagedAnvil), - 349 => Some(Item::ChiseledQuartzBlock), - 350 => Some(Item::QuartzBlock), - 351 => Some(Item::QuartzBricks), - 352 => Some(Item::QuartzPillar), - 353 => Some(Item::QuartzStairs), - 354 => Some(Item::WhiteTerracotta), - 355 => Some(Item::OrangeTerracotta), - 356 => Some(Item::MagentaTerracotta), - 357 => Some(Item::LightBlueTerracotta), - 358 => Some(Item::YellowTerracotta), - 359 => Some(Item::LimeTerracotta), - 360 => Some(Item::PinkTerracotta), - 361 => Some(Item::GrayTerracotta), - 362 => Some(Item::LightGrayTerracotta), - 363 => Some(Item::CyanTerracotta), - 364 => Some(Item::PurpleTerracotta), - 365 => Some(Item::BlueTerracotta), - 366 => Some(Item::BrownTerracotta), - 367 => Some(Item::GreenTerracotta), - 368 => Some(Item::RedTerracotta), - 369 => Some(Item::BlackTerracotta), - 370 => Some(Item::Barrier), - 371 => Some(Item::Light), - 372 => Some(Item::HayBlock), - 373 => Some(Item::WhiteCarpet), - 374 => Some(Item::OrangeCarpet), - 375 => Some(Item::MagentaCarpet), - 376 => Some(Item::LightBlueCarpet), - 377 => Some(Item::YellowCarpet), - 378 => Some(Item::LimeCarpet), - 379 => Some(Item::PinkCarpet), - 380 => Some(Item::GrayCarpet), - 381 => Some(Item::LightGrayCarpet), - 382 => Some(Item::CyanCarpet), - 383 => Some(Item::PurpleCarpet), - 384 => Some(Item::BlueCarpet), - 385 => Some(Item::BrownCarpet), - 386 => Some(Item::GreenCarpet), - 387 => Some(Item::RedCarpet), - 388 => Some(Item::BlackCarpet), - 389 => Some(Item::Terracotta), - 390 => Some(Item::PackedIce), - 391 => Some(Item::AcaciaStairs), - 392 => Some(Item::DarkOakStairs), - 393 => Some(Item::DirtPath), - 394 => Some(Item::Sunflower), - 395 => Some(Item::Lilac), - 396 => Some(Item::RoseBush), - 397 => Some(Item::Peony), - 398 => Some(Item::TallGrass), - 399 => Some(Item::LargeFern), - 400 => Some(Item::WhiteStainedGlass), - 401 => Some(Item::OrangeStainedGlass), - 402 => Some(Item::MagentaStainedGlass), - 403 => Some(Item::LightBlueStainedGlass), - 404 => Some(Item::YellowStainedGlass), - 405 => Some(Item::LimeStainedGlass), - 406 => Some(Item::PinkStainedGlass), - 407 => Some(Item::GrayStainedGlass), - 408 => Some(Item::LightGrayStainedGlass), - 409 => Some(Item::CyanStainedGlass), - 410 => Some(Item::PurpleStainedGlass), - 411 => Some(Item::BlueStainedGlass), - 412 => Some(Item::BrownStainedGlass), - 413 => Some(Item::GreenStainedGlass), - 414 => Some(Item::RedStainedGlass), - 415 => Some(Item::BlackStainedGlass), - 416 => Some(Item::WhiteStainedGlassPane), - 417 => Some(Item::OrangeStainedGlassPane), - 418 => Some(Item::MagentaStainedGlassPane), - 419 => Some(Item::LightBlueStainedGlassPane), - 420 => Some(Item::YellowStainedGlassPane), - 421 => Some(Item::LimeStainedGlassPane), - 422 => Some(Item::PinkStainedGlassPane), - 423 => Some(Item::GrayStainedGlassPane), - 424 => Some(Item::LightGrayStainedGlassPane), - 425 => Some(Item::CyanStainedGlassPane), - 426 => Some(Item::PurpleStainedGlassPane), - 427 => Some(Item::BlueStainedGlassPane), - 428 => Some(Item::BrownStainedGlassPane), - 429 => Some(Item::GreenStainedGlassPane), - 430 => Some(Item::RedStainedGlassPane), - 431 => Some(Item::BlackStainedGlassPane), - 432 => Some(Item::Prismarine), - 433 => Some(Item::PrismarineBricks), - 434 => Some(Item::DarkPrismarine), - 435 => Some(Item::PrismarineStairs), - 436 => Some(Item::PrismarineBrickStairs), - 437 => Some(Item::DarkPrismarineStairs), - 438 => Some(Item::SeaLantern), - 439 => Some(Item::RedSandstone), - 440 => Some(Item::ChiseledRedSandstone), - 441 => Some(Item::CutRedSandstone), - 442 => Some(Item::RedSandstoneStairs), - 443 => Some(Item::RepeatingCommandBlock), - 444 => Some(Item::ChainCommandBlock), - 445 => Some(Item::MagmaBlock), - 446 => Some(Item::NetherWartBlock), - 447 => Some(Item::WarpedWartBlock), - 448 => Some(Item::RedNetherBricks), - 449 => Some(Item::BoneBlock), - 450 => Some(Item::StructureVoid), - 451 => Some(Item::ShulkerBox), - 452 => Some(Item::WhiteShulkerBox), - 453 => Some(Item::OrangeShulkerBox), - 454 => Some(Item::MagentaShulkerBox), - 455 => Some(Item::LightBlueShulkerBox), - 456 => Some(Item::YellowShulkerBox), - 457 => Some(Item::LimeShulkerBox), - 458 => Some(Item::PinkShulkerBox), - 459 => Some(Item::GrayShulkerBox), - 460 => Some(Item::LightGrayShulkerBox), - 461 => Some(Item::CyanShulkerBox), - 462 => Some(Item::PurpleShulkerBox), - 463 => Some(Item::BlueShulkerBox), - 464 => Some(Item::BrownShulkerBox), - 465 => Some(Item::GreenShulkerBox), - 466 => Some(Item::RedShulkerBox), - 467 => Some(Item::BlackShulkerBox), - 468 => Some(Item::WhiteGlazedTerracotta), - 469 => Some(Item::OrangeGlazedTerracotta), - 470 => Some(Item::MagentaGlazedTerracotta), - 471 => Some(Item::LightBlueGlazedTerracotta), - 472 => Some(Item::YellowGlazedTerracotta), - 473 => Some(Item::LimeGlazedTerracotta), - 474 => Some(Item::PinkGlazedTerracotta), - 475 => Some(Item::GrayGlazedTerracotta), - 476 => Some(Item::LightGrayGlazedTerracotta), - 477 => Some(Item::CyanGlazedTerracotta), - 478 => Some(Item::PurpleGlazedTerracotta), - 479 => Some(Item::BlueGlazedTerracotta), - 480 => Some(Item::BrownGlazedTerracotta), - 481 => Some(Item::GreenGlazedTerracotta), - 482 => Some(Item::RedGlazedTerracotta), - 483 => Some(Item::BlackGlazedTerracotta), - 484 => Some(Item::WhiteConcrete), - 485 => Some(Item::OrangeConcrete), - 486 => Some(Item::MagentaConcrete), - 487 => Some(Item::LightBlueConcrete), - 488 => Some(Item::YellowConcrete), - 489 => Some(Item::LimeConcrete), - 490 => Some(Item::PinkConcrete), - 491 => Some(Item::GrayConcrete), - 492 => Some(Item::LightGrayConcrete), - 493 => Some(Item::CyanConcrete), - 494 => Some(Item::PurpleConcrete), - 495 => Some(Item::BlueConcrete), - 496 => Some(Item::BrownConcrete), - 497 => Some(Item::GreenConcrete), - 498 => Some(Item::RedConcrete), - 499 => Some(Item::BlackConcrete), - 500 => Some(Item::WhiteConcretePowder), - 501 => Some(Item::OrangeConcretePowder), - 502 => Some(Item::MagentaConcretePowder), - 503 => Some(Item::LightBlueConcretePowder), - 504 => Some(Item::YellowConcretePowder), - 505 => Some(Item::LimeConcretePowder), - 506 => Some(Item::PinkConcretePowder), - 507 => Some(Item::GrayConcretePowder), - 508 => Some(Item::LightGrayConcretePowder), - 509 => Some(Item::CyanConcretePowder), - 510 => Some(Item::PurpleConcretePowder), - 511 => Some(Item::BlueConcretePowder), - 512 => Some(Item::BrownConcretePowder), - 513 => Some(Item::GreenConcretePowder), - 514 => Some(Item::RedConcretePowder), - 515 => Some(Item::BlackConcretePowder), - 516 => Some(Item::TurtleEgg), - 517 => Some(Item::DeadTubeCoralBlock), - 518 => Some(Item::DeadBrainCoralBlock), - 519 => Some(Item::DeadBubbleCoralBlock), - 520 => Some(Item::DeadFireCoralBlock), - 521 => Some(Item::DeadHornCoralBlock), - 522 => Some(Item::TubeCoralBlock), - 523 => Some(Item::BrainCoralBlock), - 524 => Some(Item::BubbleCoralBlock), - 525 => Some(Item::FireCoralBlock), - 526 => Some(Item::HornCoralBlock), - 527 => Some(Item::TubeCoral), - 528 => Some(Item::BrainCoral), - 529 => Some(Item::BubbleCoral), - 530 => Some(Item::FireCoral), - 531 => Some(Item::HornCoral), - 532 => Some(Item::DeadBrainCoral), - 533 => Some(Item::DeadBubbleCoral), - 534 => Some(Item::DeadFireCoral), - 535 => Some(Item::DeadHornCoral), - 536 => Some(Item::DeadTubeCoral), - 537 => Some(Item::TubeCoralFan), - 538 => Some(Item::BrainCoralFan), - 539 => Some(Item::BubbleCoralFan), - 540 => Some(Item::FireCoralFan), - 541 => Some(Item::HornCoralFan), - 542 => Some(Item::DeadTubeCoralFan), - 543 => Some(Item::DeadBrainCoralFan), - 544 => Some(Item::DeadBubbleCoralFan), - 545 => Some(Item::DeadFireCoralFan), - 546 => Some(Item::DeadHornCoralFan), - 547 => Some(Item::BlueIce), - 548 => Some(Item::Conduit), - 549 => Some(Item::PolishedGraniteStairs), - 550 => Some(Item::SmoothRedSandstoneStairs), - 551 => Some(Item::MossyStoneBrickStairs), - 552 => Some(Item::PolishedDioriteStairs), - 553 => Some(Item::MossyCobblestoneStairs), - 554 => Some(Item::EndStoneBrickStairs), - 555 => Some(Item::StoneStairs), - 556 => Some(Item::SmoothSandstoneStairs), - 557 => Some(Item::SmoothQuartzStairs), - 558 => Some(Item::GraniteStairs), - 559 => Some(Item::AndesiteStairs), - 560 => Some(Item::RedNetherBrickStairs), - 561 => Some(Item::PolishedAndesiteStairs), - 562 => Some(Item::DioriteStairs), - 563 => Some(Item::CobbledDeepslateStairs), - 564 => Some(Item::PolishedDeepslateStairs), - 565 => Some(Item::DeepslateBrickStairs), - 566 => Some(Item::DeepslateTileStairs), - 567 => Some(Item::PolishedGraniteSlab), - 568 => Some(Item::SmoothRedSandstoneSlab), - 569 => Some(Item::MossyStoneBrickSlab), - 570 => Some(Item::PolishedDioriteSlab), - 571 => Some(Item::MossyCobblestoneSlab), - 572 => Some(Item::EndStoneBrickSlab), - 573 => Some(Item::SmoothSandstoneSlab), - 574 => Some(Item::SmoothQuartzSlab), - 575 => Some(Item::GraniteSlab), - 576 => Some(Item::AndesiteSlab), - 577 => Some(Item::RedNetherBrickSlab), - 578 => Some(Item::PolishedAndesiteSlab), - 579 => Some(Item::DioriteSlab), - 580 => Some(Item::CobbledDeepslateSlab), - 581 => Some(Item::PolishedDeepslateSlab), - 582 => Some(Item::DeepslateBrickSlab), - 583 => Some(Item::DeepslateTileSlab), - 584 => Some(Item::Scaffolding), - 585 => Some(Item::Redstone), - 586 => Some(Item::RedstoneTorch), - 587 => Some(Item::RedstoneBlock), - 588 => Some(Item::Repeater), - 589 => Some(Item::Comparator), - 590 => Some(Item::Piston), - 591 => Some(Item::StickyPiston), - 592 => Some(Item::SlimeBlock), - 593 => Some(Item::HoneyBlock), - 594 => Some(Item::Observer), - 595 => Some(Item::Hopper), - 596 => Some(Item::Dispenser), - 597 => Some(Item::Dropper), - 598 => Some(Item::Lectern), - 599 => Some(Item::Target), - 600 => Some(Item::Lever), - 601 => Some(Item::LightningRod), - 602 => Some(Item::DaylightDetector), - 603 => Some(Item::SculkSensor), - 604 => Some(Item::TripwireHook), - 605 => Some(Item::TrappedChest), - 606 => Some(Item::Tnt), - 607 => Some(Item::RedstoneLamp), - 608 => Some(Item::NoteBlock), - 609 => Some(Item::StoneButton), - 610 => Some(Item::PolishedBlackstoneButton), - 611 => Some(Item::OakButton), - 612 => Some(Item::SpruceButton), - 613 => Some(Item::BirchButton), - 614 => Some(Item::JungleButton), - 615 => Some(Item::AcaciaButton), - 616 => Some(Item::DarkOakButton), - 617 => Some(Item::CrimsonButton), - 618 => Some(Item::WarpedButton), - 619 => Some(Item::StonePressurePlate), - 620 => Some(Item::PolishedBlackstonePressurePlate), - 621 => Some(Item::LightWeightedPressurePlate), - 622 => Some(Item::HeavyWeightedPressurePlate), - 623 => Some(Item::OakPressurePlate), - 624 => Some(Item::SprucePressurePlate), - 625 => Some(Item::BirchPressurePlate), - 626 => Some(Item::JunglePressurePlate), - 627 => Some(Item::AcaciaPressurePlate), - 628 => Some(Item::DarkOakPressurePlate), - 629 => Some(Item::CrimsonPressurePlate), - 630 => Some(Item::WarpedPressurePlate), - 631 => Some(Item::IronDoor), - 632 => Some(Item::OakDoor), - 633 => Some(Item::SpruceDoor), - 634 => Some(Item::BirchDoor), - 635 => Some(Item::JungleDoor), - 636 => Some(Item::AcaciaDoor), - 637 => Some(Item::DarkOakDoor), - 638 => Some(Item::CrimsonDoor), - 639 => Some(Item::WarpedDoor), - 640 => Some(Item::IronTrapdoor), - 641 => Some(Item::OakTrapdoor), - 642 => Some(Item::SpruceTrapdoor), - 643 => Some(Item::BirchTrapdoor), - 644 => Some(Item::JungleTrapdoor), - 645 => Some(Item::AcaciaTrapdoor), - 646 => Some(Item::DarkOakTrapdoor), - 647 => Some(Item::CrimsonTrapdoor), - 648 => Some(Item::WarpedTrapdoor), - 649 => Some(Item::OakFenceGate), - 650 => Some(Item::SpruceFenceGate), - 651 => Some(Item::BirchFenceGate), - 652 => Some(Item::JungleFenceGate), - 653 => Some(Item::AcaciaFenceGate), - 654 => Some(Item::DarkOakFenceGate), - 655 => Some(Item::CrimsonFenceGate), - 656 => Some(Item::WarpedFenceGate), - 657 => Some(Item::PoweredRail), - 658 => Some(Item::DetectorRail), - 659 => Some(Item::Rail), - 660 => Some(Item::ActivatorRail), - 661 => Some(Item::Saddle), - 662 => Some(Item::Minecart), - 663 => Some(Item::ChestMinecart), - 664 => Some(Item::FurnaceMinecart), - 665 => Some(Item::TntMinecart), - 666 => Some(Item::HopperMinecart), - 667 => Some(Item::CarrotOnAStick), - 668 => Some(Item::WarpedFungusOnAStick), - 669 => Some(Item::Elytra), - 670 => Some(Item::OakBoat), - 671 => Some(Item::SpruceBoat), - 672 => Some(Item::BirchBoat), - 673 => Some(Item::JungleBoat), - 674 => Some(Item::AcaciaBoat), - 675 => Some(Item::DarkOakBoat), - 676 => Some(Item::StructureBlock), - 677 => Some(Item::Jigsaw), - 678 => Some(Item::TurtleHelmet), - 679 => Some(Item::Scute), - 680 => Some(Item::FlintAndSteel), - 681 => Some(Item::Apple), - 682 => Some(Item::Bow), - 683 => Some(Item::Arrow), - 684 => Some(Item::Coal), - 685 => Some(Item::Charcoal), - 686 => Some(Item::Diamond), - 687 => Some(Item::Emerald), - 688 => Some(Item::LapisLazuli), - 689 => Some(Item::Quartz), - 690 => Some(Item::AmethystShard), - 691 => Some(Item::RawIron), - 692 => Some(Item::IronIngot), - 693 => Some(Item::RawCopper), - 694 => Some(Item::CopperIngot), - 695 => Some(Item::RawGold), - 696 => Some(Item::GoldIngot), - 697 => Some(Item::NetheriteIngot), - 698 => Some(Item::NetheriteScrap), - 699 => Some(Item::WoodenSword), - 700 => Some(Item::WoodenShovel), - 701 => Some(Item::WoodenPickaxe), - 702 => Some(Item::WoodenAxe), - 703 => Some(Item::WoodenHoe), - 704 => Some(Item::StoneSword), - 705 => Some(Item::StoneShovel), - 706 => Some(Item::StonePickaxe), - 707 => Some(Item::StoneAxe), - 708 => Some(Item::StoneHoe), - 709 => Some(Item::GoldenSword), - 710 => Some(Item::GoldenShovel), - 711 => Some(Item::GoldenPickaxe), - 712 => Some(Item::GoldenAxe), - 713 => Some(Item::GoldenHoe), - 714 => Some(Item::IronSword), - 715 => Some(Item::IronShovel), - 716 => Some(Item::IronPickaxe), - 717 => Some(Item::IronAxe), - 718 => Some(Item::IronHoe), - 719 => Some(Item::DiamondSword), - 720 => Some(Item::DiamondShovel), - 721 => Some(Item::DiamondPickaxe), - 722 => Some(Item::DiamondAxe), - 723 => Some(Item::DiamondHoe), - 724 => Some(Item::NetheriteSword), - 725 => Some(Item::NetheriteShovel), - 726 => Some(Item::NetheritePickaxe), - 727 => Some(Item::NetheriteAxe), - 728 => Some(Item::NetheriteHoe), - 729 => Some(Item::Stick), - 730 => Some(Item::Bowl), - 731 => Some(Item::MushroomStew), - 732 => Some(Item::String), - 733 => Some(Item::Feather), - 734 => Some(Item::Gunpowder), - 735 => Some(Item::WheatSeeds), - 736 => Some(Item::Wheat), - 737 => Some(Item::Bread), - 738 => Some(Item::LeatherHelmet), - 739 => Some(Item::LeatherChestplate), - 740 => Some(Item::LeatherLeggings), - 741 => Some(Item::LeatherBoots), - 742 => Some(Item::ChainmailHelmet), - 743 => Some(Item::ChainmailChestplate), - 744 => Some(Item::ChainmailLeggings), - 745 => Some(Item::ChainmailBoots), - 746 => Some(Item::IronHelmet), - 747 => Some(Item::IronChestplate), - 748 => Some(Item::IronLeggings), - 749 => Some(Item::IronBoots), - 750 => Some(Item::DiamondHelmet), - 751 => Some(Item::DiamondChestplate), - 752 => Some(Item::DiamondLeggings), - 753 => Some(Item::DiamondBoots), - 754 => Some(Item::GoldenHelmet), - 755 => Some(Item::GoldenChestplate), - 756 => Some(Item::GoldenLeggings), - 757 => Some(Item::GoldenBoots), - 758 => Some(Item::NetheriteHelmet), - 759 => Some(Item::NetheriteChestplate), - 760 => Some(Item::NetheriteLeggings), - 761 => Some(Item::NetheriteBoots), - 762 => Some(Item::Flint), - 763 => Some(Item::Porkchop), - 764 => Some(Item::CookedPorkchop), - 765 => Some(Item::Painting), - 766 => Some(Item::GoldenApple), - 767 => Some(Item::EnchantedGoldenApple), - 768 => Some(Item::OakSign), - 769 => Some(Item::SpruceSign), - 770 => Some(Item::BirchSign), - 771 => Some(Item::JungleSign), - 772 => Some(Item::AcaciaSign), - 773 => Some(Item::DarkOakSign), - 774 => Some(Item::CrimsonSign), - 775 => Some(Item::WarpedSign), - 776 => Some(Item::Bucket), - 777 => Some(Item::WaterBucket), - 778 => Some(Item::LavaBucket), - 779 => Some(Item::PowderSnowBucket), - 780 => Some(Item::Snowball), - 781 => Some(Item::Leather), - 782 => Some(Item::MilkBucket), - 783 => Some(Item::PufferfishBucket), - 784 => Some(Item::SalmonBucket), - 785 => Some(Item::CodBucket), - 786 => Some(Item::TropicalFishBucket), - 787 => Some(Item::AxolotlBucket), - 788 => Some(Item::Brick), - 789 => Some(Item::ClayBall), - 790 => Some(Item::DriedKelpBlock), - 791 => Some(Item::Paper), - 792 => Some(Item::Book), - 793 => Some(Item::SlimeBall), - 794 => Some(Item::Egg), - 795 => Some(Item::Compass), - 796 => Some(Item::Bundle), - 797 => Some(Item::FishingRod), - 798 => Some(Item::Clock), - 799 => Some(Item::Spyglass), - 800 => Some(Item::GlowstoneDust), - 801 => Some(Item::Cod), - 802 => Some(Item::Salmon), - 803 => Some(Item::TropicalFish), - 804 => Some(Item::Pufferfish), - 805 => Some(Item::CookedCod), - 806 => Some(Item::CookedSalmon), - 807 => Some(Item::InkSac), - 808 => Some(Item::GlowInkSac), - 809 => Some(Item::CocoaBeans), - 810 => Some(Item::WhiteDye), - 811 => Some(Item::OrangeDye), - 812 => Some(Item::MagentaDye), - 813 => Some(Item::LightBlueDye), - 814 => Some(Item::YellowDye), - 815 => Some(Item::LimeDye), - 816 => Some(Item::PinkDye), - 817 => Some(Item::GrayDye), - 818 => Some(Item::LightGrayDye), - 819 => Some(Item::CyanDye), - 820 => Some(Item::PurpleDye), - 821 => Some(Item::BlueDye), - 822 => Some(Item::BrownDye), - 823 => Some(Item::GreenDye), - 824 => Some(Item::RedDye), - 825 => Some(Item::BlackDye), - 826 => Some(Item::BoneMeal), - 827 => Some(Item::Bone), - 828 => Some(Item::Sugar), - 829 => Some(Item::Cake), - 830 => Some(Item::WhiteBed), - 831 => Some(Item::OrangeBed), - 832 => Some(Item::MagentaBed), - 833 => Some(Item::LightBlueBed), - 834 => Some(Item::YellowBed), - 835 => Some(Item::LimeBed), - 836 => Some(Item::PinkBed), - 837 => Some(Item::GrayBed), - 838 => Some(Item::LightGrayBed), - 839 => Some(Item::CyanBed), - 840 => Some(Item::PurpleBed), - 841 => Some(Item::BlueBed), - 842 => Some(Item::BrownBed), - 843 => Some(Item::GreenBed), - 844 => Some(Item::RedBed), - 845 => Some(Item::BlackBed), - 846 => Some(Item::Cookie), - 847 => Some(Item::FilledMap), - 848 => Some(Item::Shears), - 849 => Some(Item::MelonSlice), - 850 => Some(Item::DriedKelp), - 851 => Some(Item::PumpkinSeeds), - 852 => Some(Item::MelonSeeds), - 853 => Some(Item::Beef), - 854 => Some(Item::CookedBeef), - 855 => Some(Item::Chicken), - 856 => Some(Item::CookedChicken), - 857 => Some(Item::RottenFlesh), - 858 => Some(Item::EnderPearl), - 859 => Some(Item::BlazeRod), - 860 => Some(Item::GhastTear), - 861 => Some(Item::GoldNugget), - 862 => Some(Item::NetherWart), - 863 => Some(Item::Potion), - 864 => Some(Item::GlassBottle), - 865 => Some(Item::SpiderEye), - 866 => Some(Item::FermentedSpiderEye), - 867 => Some(Item::BlazePowder), - 868 => Some(Item::MagmaCream), - 869 => Some(Item::BrewingStand), - 870 => Some(Item::Cauldron), - 871 => Some(Item::EnderEye), - 872 => Some(Item::GlisteringMelonSlice), - 873 => Some(Item::AxolotlSpawnEgg), - 874 => Some(Item::BatSpawnEgg), - 875 => Some(Item::BeeSpawnEgg), - 876 => Some(Item::BlazeSpawnEgg), - 877 => Some(Item::CatSpawnEgg), - 878 => Some(Item::CaveSpiderSpawnEgg), - 879 => Some(Item::ChickenSpawnEgg), - 880 => Some(Item::CodSpawnEgg), - 881 => Some(Item::CowSpawnEgg), - 882 => Some(Item::CreeperSpawnEgg), - 883 => Some(Item::DolphinSpawnEgg), - 884 => Some(Item::DonkeySpawnEgg), - 885 => Some(Item::DrownedSpawnEgg), - 886 => Some(Item::ElderGuardianSpawnEgg), - 887 => Some(Item::EndermanSpawnEgg), - 888 => Some(Item::EndermiteSpawnEgg), - 889 => Some(Item::EvokerSpawnEgg), - 890 => Some(Item::FoxSpawnEgg), - 891 => Some(Item::GhastSpawnEgg), - 892 => Some(Item::GlowSquidSpawnEgg), - 893 => Some(Item::GoatSpawnEgg), - 894 => Some(Item::GuardianSpawnEgg), - 895 => Some(Item::HoglinSpawnEgg), - 896 => Some(Item::HorseSpawnEgg), - 897 => Some(Item::HuskSpawnEgg), - 898 => Some(Item::LlamaSpawnEgg), - 899 => Some(Item::MagmaCubeSpawnEgg), - 900 => Some(Item::MooshroomSpawnEgg), - 901 => Some(Item::MuleSpawnEgg), - 902 => Some(Item::OcelotSpawnEgg), - 903 => Some(Item::PandaSpawnEgg), - 904 => Some(Item::ParrotSpawnEgg), - 905 => Some(Item::PhantomSpawnEgg), - 906 => Some(Item::PigSpawnEgg), - 907 => Some(Item::PiglinSpawnEgg), - 908 => Some(Item::PiglinBruteSpawnEgg), - 909 => Some(Item::PillagerSpawnEgg), - 910 => Some(Item::PolarBearSpawnEgg), - 911 => Some(Item::PufferfishSpawnEgg), - 912 => Some(Item::RabbitSpawnEgg), - 913 => Some(Item::RavagerSpawnEgg), - 914 => Some(Item::SalmonSpawnEgg), - 915 => Some(Item::SheepSpawnEgg), - 916 => Some(Item::ShulkerSpawnEgg), - 917 => Some(Item::SilverfishSpawnEgg), - 918 => Some(Item::SkeletonSpawnEgg), - 919 => Some(Item::SkeletonHorseSpawnEgg), - 920 => Some(Item::SlimeSpawnEgg), - 921 => Some(Item::SpiderSpawnEgg), - 922 => Some(Item::SquidSpawnEgg), - 923 => Some(Item::StraySpawnEgg), - 924 => Some(Item::StriderSpawnEgg), - 925 => Some(Item::TraderLlamaSpawnEgg), - 926 => Some(Item::TropicalFishSpawnEgg), - 927 => Some(Item::TurtleSpawnEgg), - 928 => Some(Item::VexSpawnEgg), - 929 => Some(Item::VillagerSpawnEgg), - 930 => Some(Item::VindicatorSpawnEgg), - 931 => Some(Item::WanderingTraderSpawnEgg), - 932 => Some(Item::WitchSpawnEgg), - 933 => Some(Item::WitherSkeletonSpawnEgg), - 934 => Some(Item::WolfSpawnEgg), - 935 => Some(Item::ZoglinSpawnEgg), - 936 => Some(Item::ZombieSpawnEgg), - 937 => Some(Item::ZombieHorseSpawnEgg), - 938 => Some(Item::ZombieVillagerSpawnEgg), - 939 => Some(Item::ZombifiedPiglinSpawnEgg), - 940 => Some(Item::ExperienceBottle), - 941 => Some(Item::FireCharge), - 942 => Some(Item::WritableBook), - 943 => Some(Item::WrittenBook), - 944 => Some(Item::ItemFrame), - 945 => Some(Item::GlowItemFrame), - 946 => Some(Item::FlowerPot), - 947 => Some(Item::Carrot), - 948 => Some(Item::Potato), - 949 => Some(Item::BakedPotato), - 950 => Some(Item::PoisonousPotato), - 951 => Some(Item::Map), - 952 => Some(Item::GoldenCarrot), - 953 => Some(Item::SkeletonSkull), - 954 => Some(Item::WitherSkeletonSkull), - 955 => Some(Item::PlayerHead), - 956 => Some(Item::ZombieHead), - 957 => Some(Item::CreeperHead), - 958 => Some(Item::DragonHead), - 959 => Some(Item::NetherStar), - 960 => Some(Item::PumpkinPie), - 961 => Some(Item::FireworkRocket), - 962 => Some(Item::FireworkStar), - 963 => Some(Item::EnchantedBook), - 964 => Some(Item::NetherBrick), - 965 => Some(Item::PrismarineShard), - 966 => Some(Item::PrismarineCrystals), - 967 => Some(Item::Rabbit), - 968 => Some(Item::CookedRabbit), - 969 => Some(Item::RabbitStew), - 970 => Some(Item::RabbitFoot), - 971 => Some(Item::RabbitHide), - 972 => Some(Item::ArmorStand), - 973 => Some(Item::IronHorseArmor), - 974 => Some(Item::GoldenHorseArmor), - 975 => Some(Item::DiamondHorseArmor), - 976 => Some(Item::LeatherHorseArmor), - 977 => Some(Item::Lead), - 978 => Some(Item::NameTag), - 979 => Some(Item::CommandBlockMinecart), - 980 => Some(Item::Mutton), - 981 => Some(Item::CookedMutton), - 982 => Some(Item::WhiteBanner), - 983 => Some(Item::OrangeBanner), - 984 => Some(Item::MagentaBanner), - 985 => Some(Item::LightBlueBanner), - 986 => Some(Item::YellowBanner), - 987 => Some(Item::LimeBanner), - 988 => Some(Item::PinkBanner), - 989 => Some(Item::GrayBanner), - 990 => Some(Item::LightGrayBanner), - 991 => Some(Item::CyanBanner), - 992 => Some(Item::PurpleBanner), - 993 => Some(Item::BlueBanner), - 994 => Some(Item::BrownBanner), - 995 => Some(Item::GreenBanner), - 996 => Some(Item::RedBanner), - 997 => Some(Item::BlackBanner), - 998 => Some(Item::EndCrystal), - 999 => Some(Item::ChorusFruit), - 1000 => Some(Item::PoppedChorusFruit), - 1001 => Some(Item::Beetroot), - 1002 => Some(Item::BeetrootSeeds), - 1003 => Some(Item::BeetrootSoup), - 1004 => Some(Item::DragonBreath), - 1005 => Some(Item::SplashPotion), - 1006 => Some(Item::SpectralArrow), - 1007 => Some(Item::TippedArrow), - 1008 => Some(Item::LingeringPotion), - 1009 => Some(Item::Shield), - 1010 => Some(Item::TotemOfUndying), - 1011 => Some(Item::ShulkerShell), - 1012 => Some(Item::IronNugget), - 1013 => Some(Item::KnowledgeBook), - 1014 => Some(Item::DebugStick), - 1015 => Some(Item::MusicDisc13), - 1016 => Some(Item::MusicDiscCat), - 1017 => Some(Item::MusicDiscBlocks), - 1018 => Some(Item::MusicDiscChirp), - 1019 => Some(Item::MusicDiscFar), - 1020 => Some(Item::MusicDiscMall), - 1021 => Some(Item::MusicDiscMellohi), - 1022 => Some(Item::MusicDiscStal), - 1023 => Some(Item::MusicDiscStrad), - 1024 => Some(Item::MusicDiscWard), - 1025 => Some(Item::MusicDisc11), - 1026 => Some(Item::MusicDiscWait), - 1027 => Some(Item::MusicDiscOtherside), - 1028 => Some(Item::MusicDiscPigstep), - 1029 => Some(Item::Trident), - 1030 => Some(Item::PhantomMembrane), - 1031 => Some(Item::NautilusShell), - 1032 => Some(Item::HeartOfTheSea), - 1033 => Some(Item::Crossbow), - 1034 => Some(Item::SuspiciousStew), - 1035 => Some(Item::Loom), - 1036 => Some(Item::FlowerBannerPattern), - 1037 => Some(Item::CreeperBannerPattern), - 1038 => Some(Item::SkullBannerPattern), - 1039 => Some(Item::MojangBannerPattern), - 1040 => Some(Item::GlobeBannerPattern), - 1041 => Some(Item::PiglinBannerPattern), - 1042 => Some(Item::Composter), - 1043 => Some(Item::Barrel), - 1044 => Some(Item::Smoker), - 1045 => Some(Item::BlastFurnace), - 1046 => Some(Item::CartographyTable), - 1047 => Some(Item::FletchingTable), - 1048 => Some(Item::Grindstone), - 1049 => Some(Item::SmithingTable), - 1050 => Some(Item::Stonecutter), - 1051 => Some(Item::Bell), - 1052 => Some(Item::Lantern), - 1053 => Some(Item::SoulLantern), - 1054 => Some(Item::SweetBerries), - 1055 => Some(Item::GlowBerries), - 1056 => Some(Item::Campfire), - 1057 => Some(Item::SoulCampfire), - 1058 => Some(Item::Shroomlight), - 1059 => Some(Item::Honeycomb), - 1060 => Some(Item::BeeNest), - 1061 => Some(Item::Beehive), - 1062 => Some(Item::HoneyBottle), - 1063 => Some(Item::HoneycombBlock), - 1064 => Some(Item::Lodestone), - 1065 => Some(Item::CryingObsidian), - 1066 => Some(Item::Blackstone), - 1067 => Some(Item::BlackstoneSlab), - 1068 => Some(Item::BlackstoneStairs), - 1069 => Some(Item::GildedBlackstone), - 1070 => Some(Item::PolishedBlackstone), - 1071 => Some(Item::PolishedBlackstoneSlab), - 1072 => Some(Item::PolishedBlackstoneStairs), - 1073 => Some(Item::ChiseledPolishedBlackstone), - 1074 => Some(Item::PolishedBlackstoneBricks), - 1075 => Some(Item::PolishedBlackstoneBrickSlab), - 1076 => Some(Item::PolishedBlackstoneBrickStairs), - 1077 => Some(Item::CrackedPolishedBlackstoneBricks), - 1078 => Some(Item::RespawnAnchor), - 1079 => Some(Item::Candle), - 1080 => Some(Item::WhiteCandle), - 1081 => Some(Item::OrangeCandle), - 1082 => Some(Item::MagentaCandle), - 1083 => Some(Item::LightBlueCandle), - 1084 => Some(Item::YellowCandle), - 1085 => Some(Item::LimeCandle), - 1086 => Some(Item::PinkCandle), - 1087 => Some(Item::GrayCandle), - 1088 => Some(Item::LightGrayCandle), - 1089 => Some(Item::CyanCandle), - 1090 => Some(Item::PurpleCandle), - 1091 => Some(Item::BlueCandle), - 1092 => Some(Item::BrownCandle), - 1093 => Some(Item::GreenCandle), - 1094 => Some(Item::RedCandle), - 1095 => Some(Item::BlackCandle), - 1096 => Some(Item::SmallAmethystBud), - 1097 => Some(Item::MediumAmethystBud), - 1098 => Some(Item::LargeAmethystBud), - 1099 => Some(Item::AmethystCluster), - 1100 => Some(Item::PointedDripstone), + 1u32 => Some(Item::Stone), + 2u32 => Some(Item::Granite), + 3u32 => Some(Item::PolishedGranite), + 4u32 => Some(Item::Diorite), + 5u32 => Some(Item::PolishedDiorite), + 6u32 => Some(Item::Andesite), + 7u32 => Some(Item::PolishedAndesite), + 8u32 => Some(Item::Deepslate), + 9u32 => Some(Item::CobbledDeepslate), + 10u32 => Some(Item::PolishedDeepslate), + 11u32 => Some(Item::Calcite), + 12u32 => Some(Item::Tuff), + 13u32 => Some(Item::DripstoneBlock), + 14u32 => Some(Item::GrassBlock), + 15u32 => Some(Item::Dirt), + 16u32 => Some(Item::CoarseDirt), + 17u32 => Some(Item::Podzol), + 18u32 => Some(Item::RootedDirt), + 19u32 => Some(Item::CrimsonNylium), + 20u32 => Some(Item::WarpedNylium), + 21u32 => Some(Item::Cobblestone), + 22u32 => Some(Item::OakPlanks), + 23u32 => Some(Item::SprucePlanks), + 24u32 => Some(Item::BirchPlanks), + 25u32 => Some(Item::JunglePlanks), + 26u32 => Some(Item::AcaciaPlanks), + 27u32 => Some(Item::DarkOakPlanks), + 28u32 => Some(Item::CrimsonPlanks), + 29u32 => Some(Item::WarpedPlanks), + 30u32 => Some(Item::OakSapling), + 31u32 => Some(Item::SpruceSapling), + 32u32 => Some(Item::BirchSapling), + 33u32 => Some(Item::JungleSapling), + 34u32 => Some(Item::AcaciaSapling), + 35u32 => Some(Item::DarkOakSapling), + 36u32 => Some(Item::Bedrock), + 37u32 => Some(Item::Sand), + 38u32 => Some(Item::RedSand), + 39u32 => Some(Item::Gravel), + 40u32 => Some(Item::CoalOre), + 41u32 => Some(Item::DeepslateCoalOre), + 42u32 => Some(Item::IronOre), + 43u32 => Some(Item::DeepslateIronOre), + 44u32 => Some(Item::CopperOre), + 45u32 => Some(Item::DeepslateCopperOre), + 46u32 => Some(Item::GoldOre), + 47u32 => Some(Item::DeepslateGoldOre), + 48u32 => Some(Item::RedstoneOre), + 49u32 => Some(Item::DeepslateRedstoneOre), + 50u32 => Some(Item::EmeraldOre), + 51u32 => Some(Item::DeepslateEmeraldOre), + 52u32 => Some(Item::LapisOre), + 53u32 => Some(Item::DeepslateLapisOre), + 54u32 => Some(Item::DiamondOre), + 55u32 => Some(Item::DeepslateDiamondOre), + 56u32 => Some(Item::NetherGoldOre), + 57u32 => Some(Item::NetherQuartzOre), + 58u32 => Some(Item::AncientDebris), + 59u32 => Some(Item::CoalBlock), + 60u32 => Some(Item::RawIronBlock), + 61u32 => Some(Item::RawCopperBlock), + 62u32 => Some(Item::RawGoldBlock), + 63u32 => Some(Item::AmethystBlock), + 64u32 => Some(Item::BuddingAmethyst), + 65u32 => Some(Item::IronBlock), + 66u32 => Some(Item::CopperBlock), + 67u32 => Some(Item::GoldBlock), + 68u32 => Some(Item::DiamondBlock), + 69u32 => Some(Item::NetheriteBlock), + 70u32 => Some(Item::ExposedCopper), + 71u32 => Some(Item::WeatheredCopper), + 72u32 => Some(Item::OxidizedCopper), + 73u32 => Some(Item::CutCopper), + 74u32 => Some(Item::ExposedCutCopper), + 75u32 => Some(Item::WeatheredCutCopper), + 76u32 => Some(Item::OxidizedCutCopper), + 77u32 => Some(Item::CutCopperStairs), + 78u32 => Some(Item::ExposedCutCopperStairs), + 79u32 => Some(Item::WeatheredCutCopperStairs), + 80u32 => Some(Item::OxidizedCutCopperStairs), + 81u32 => Some(Item::CutCopperSlab), + 82u32 => Some(Item::ExposedCutCopperSlab), + 83u32 => Some(Item::WeatheredCutCopperSlab), + 84u32 => Some(Item::OxidizedCutCopperSlab), + 85u32 => Some(Item::WaxedCopperBlock), + 86u32 => Some(Item::WaxedExposedCopper), + 87u32 => Some(Item::WaxedWeatheredCopper), + 88u32 => Some(Item::WaxedOxidizedCopper), + 89u32 => Some(Item::WaxedCutCopper), + 90u32 => Some(Item::WaxedExposedCutCopper), + 91u32 => Some(Item::WaxedWeatheredCutCopper), + 92u32 => Some(Item::WaxedOxidizedCutCopper), + 93u32 => Some(Item::WaxedCutCopperStairs), + 94u32 => Some(Item::WaxedExposedCutCopperStairs), + 95u32 => Some(Item::WaxedWeatheredCutCopperStairs), + 96u32 => Some(Item::WaxedOxidizedCutCopperStairs), + 97u32 => Some(Item::WaxedCutCopperSlab), + 98u32 => Some(Item::WaxedExposedCutCopperSlab), + 99u32 => Some(Item::WaxedWeatheredCutCopperSlab), + 100u32 => Some(Item::WaxedOxidizedCutCopperSlab), + 101u32 => Some(Item::OakLog), + 102u32 => Some(Item::SpruceLog), + 103u32 => Some(Item::BirchLog), + 104u32 => Some(Item::JungleLog), + 105u32 => Some(Item::AcaciaLog), + 106u32 => Some(Item::DarkOakLog), + 107u32 => Some(Item::CrimsonStem), + 108u32 => Some(Item::WarpedStem), + 109u32 => Some(Item::StrippedOakLog), + 110u32 => Some(Item::StrippedSpruceLog), + 111u32 => Some(Item::StrippedBirchLog), + 112u32 => Some(Item::StrippedJungleLog), + 113u32 => Some(Item::StrippedAcaciaLog), + 114u32 => Some(Item::StrippedDarkOakLog), + 115u32 => Some(Item::StrippedCrimsonStem), + 116u32 => Some(Item::StrippedWarpedStem), + 117u32 => Some(Item::StrippedOakWood), + 118u32 => Some(Item::StrippedSpruceWood), + 119u32 => Some(Item::StrippedBirchWood), + 120u32 => Some(Item::StrippedJungleWood), + 121u32 => Some(Item::StrippedAcaciaWood), + 122u32 => Some(Item::StrippedDarkOakWood), + 123u32 => Some(Item::StrippedCrimsonHyphae), + 124u32 => Some(Item::StrippedWarpedHyphae), + 125u32 => Some(Item::OakWood), + 126u32 => Some(Item::SpruceWood), + 127u32 => Some(Item::BirchWood), + 128u32 => Some(Item::JungleWood), + 129u32 => Some(Item::AcaciaWood), + 130u32 => Some(Item::DarkOakWood), + 131u32 => Some(Item::CrimsonHyphae), + 132u32 => Some(Item::WarpedHyphae), + 133u32 => Some(Item::OakLeaves), + 134u32 => Some(Item::SpruceLeaves), + 135u32 => Some(Item::BirchLeaves), + 136u32 => Some(Item::JungleLeaves), + 137u32 => Some(Item::AcaciaLeaves), + 138u32 => Some(Item::DarkOakLeaves), + 139u32 => Some(Item::AzaleaLeaves), + 140u32 => Some(Item::FloweringAzaleaLeaves), + 141u32 => Some(Item::Sponge), + 142u32 => Some(Item::WetSponge), + 143u32 => Some(Item::Glass), + 144u32 => Some(Item::TintedGlass), + 145u32 => Some(Item::LapisBlock), + 146u32 => Some(Item::Sandstone), + 147u32 => Some(Item::ChiseledSandstone), + 148u32 => Some(Item::CutSandstone), + 149u32 => Some(Item::Cobweb), + 150u32 => Some(Item::Grass), + 151u32 => Some(Item::Fern), + 152u32 => Some(Item::Azalea), + 153u32 => Some(Item::FloweringAzalea), + 154u32 => Some(Item::DeadBush), + 155u32 => Some(Item::Seagrass), + 156u32 => Some(Item::SeaPickle), + 157u32 => Some(Item::WhiteWool), + 158u32 => Some(Item::OrangeWool), + 159u32 => Some(Item::MagentaWool), + 160u32 => Some(Item::LightBlueWool), + 161u32 => Some(Item::YellowWool), + 162u32 => Some(Item::LimeWool), + 163u32 => Some(Item::PinkWool), + 164u32 => Some(Item::GrayWool), + 165u32 => Some(Item::LightGrayWool), + 166u32 => Some(Item::CyanWool), + 167u32 => Some(Item::PurpleWool), + 168u32 => Some(Item::BlueWool), + 169u32 => Some(Item::BrownWool), + 170u32 => Some(Item::GreenWool), + 171u32 => Some(Item::RedWool), + 172u32 => Some(Item::BlackWool), + 173u32 => Some(Item::Dandelion), + 174u32 => Some(Item::Poppy), + 175u32 => Some(Item::BlueOrchid), + 176u32 => Some(Item::Allium), + 177u32 => Some(Item::AzureBluet), + 178u32 => Some(Item::RedTulip), + 179u32 => Some(Item::OrangeTulip), + 180u32 => Some(Item::WhiteTulip), + 181u32 => Some(Item::PinkTulip), + 182u32 => Some(Item::OxeyeDaisy), + 183u32 => Some(Item::Cornflower), + 184u32 => Some(Item::LilyOfTheValley), + 185u32 => Some(Item::WitherRose), + 186u32 => Some(Item::SporeBlossom), + 187u32 => Some(Item::BrownMushroom), + 188u32 => Some(Item::RedMushroom), + 189u32 => Some(Item::CrimsonFungus), + 190u32 => Some(Item::WarpedFungus), + 191u32 => Some(Item::CrimsonRoots), + 192u32 => Some(Item::WarpedRoots), + 193u32 => Some(Item::NetherSprouts), + 194u32 => Some(Item::WeepingVines), + 195u32 => Some(Item::TwistingVines), + 196u32 => Some(Item::SugarCane), + 197u32 => Some(Item::Kelp), + 198u32 => Some(Item::MossCarpet), + 199u32 => Some(Item::MossBlock), + 200u32 => Some(Item::HangingRoots), + 201u32 => Some(Item::BigDripleaf), + 202u32 => Some(Item::SmallDripleaf), + 203u32 => Some(Item::Bamboo), + 204u32 => Some(Item::OakSlab), + 205u32 => Some(Item::SpruceSlab), + 206u32 => Some(Item::BirchSlab), + 207u32 => Some(Item::JungleSlab), + 208u32 => Some(Item::AcaciaSlab), + 209u32 => Some(Item::DarkOakSlab), + 210u32 => Some(Item::CrimsonSlab), + 211u32 => Some(Item::WarpedSlab), + 212u32 => Some(Item::StoneSlab), + 213u32 => Some(Item::SmoothStoneSlab), + 214u32 => Some(Item::SandstoneSlab), + 215u32 => Some(Item::CutSandstoneSlab), + 216u32 => Some(Item::PetrifiedOakSlab), + 217u32 => Some(Item::CobblestoneSlab), + 218u32 => Some(Item::BrickSlab), + 219u32 => Some(Item::StoneBrickSlab), + 220u32 => Some(Item::NetherBrickSlab), + 221u32 => Some(Item::QuartzSlab), + 222u32 => Some(Item::RedSandstoneSlab), + 223u32 => Some(Item::CutRedSandstoneSlab), + 224u32 => Some(Item::PurpurSlab), + 225u32 => Some(Item::PrismarineSlab), + 226u32 => Some(Item::PrismarineBrickSlab), + 227u32 => Some(Item::DarkPrismarineSlab), + 228u32 => Some(Item::SmoothQuartz), + 229u32 => Some(Item::SmoothRedSandstone), + 230u32 => Some(Item::SmoothSandstone), + 231u32 => Some(Item::SmoothStone), + 232u32 => Some(Item::Bricks), + 233u32 => Some(Item::Bookshelf), + 234u32 => Some(Item::MossyCobblestone), + 235u32 => Some(Item::Obsidian), + 236u32 => Some(Item::Torch), + 237u32 => Some(Item::EndRod), + 238u32 => Some(Item::ChorusPlant), + 239u32 => Some(Item::ChorusFlower), + 240u32 => Some(Item::PurpurBlock), + 241u32 => Some(Item::PurpurPillar), + 242u32 => Some(Item::PurpurStairs), + 243u32 => Some(Item::Spawner), + 244u32 => Some(Item::OakStairs), + 245u32 => Some(Item::Chest), + 246u32 => Some(Item::CraftingTable), + 247u32 => Some(Item::Farmland), + 248u32 => Some(Item::Furnace), + 249u32 => Some(Item::Ladder), + 250u32 => Some(Item::CobblestoneStairs), + 251u32 => Some(Item::Snow), + 252u32 => Some(Item::Ice), + 253u32 => Some(Item::SnowBlock), + 254u32 => Some(Item::Cactus), + 255u32 => Some(Item::Clay), + 256u32 => Some(Item::Jukebox), + 257u32 => Some(Item::OakFence), + 258u32 => Some(Item::SpruceFence), + 259u32 => Some(Item::BirchFence), + 260u32 => Some(Item::JungleFence), + 261u32 => Some(Item::AcaciaFence), + 262u32 => Some(Item::DarkOakFence), + 263u32 => Some(Item::CrimsonFence), + 264u32 => Some(Item::WarpedFence), + 265u32 => Some(Item::Pumpkin), + 266u32 => Some(Item::CarvedPumpkin), + 267u32 => Some(Item::JackOLantern), + 268u32 => Some(Item::Netherrack), + 269u32 => Some(Item::SoulSand), + 270u32 => Some(Item::SoulSoil), + 271u32 => Some(Item::Basalt), + 272u32 => Some(Item::PolishedBasalt), + 273u32 => Some(Item::SmoothBasalt), + 274u32 => Some(Item::SoulTorch), + 275u32 => Some(Item::Glowstone), + 276u32 => Some(Item::InfestedStone), + 277u32 => Some(Item::InfestedCobblestone), + 278u32 => Some(Item::InfestedStoneBricks), + 279u32 => Some(Item::InfestedMossyStoneBricks), + 280u32 => Some(Item::InfestedCrackedStoneBricks), + 281u32 => Some(Item::InfestedChiseledStoneBricks), + 282u32 => Some(Item::InfestedDeepslate), + 283u32 => Some(Item::StoneBricks), + 284u32 => Some(Item::MossyStoneBricks), + 285u32 => Some(Item::CrackedStoneBricks), + 286u32 => Some(Item::ChiseledStoneBricks), + 287u32 => Some(Item::DeepslateBricks), + 288u32 => Some(Item::CrackedDeepslateBricks), + 289u32 => Some(Item::DeepslateTiles), + 290u32 => Some(Item::CrackedDeepslateTiles), + 291u32 => Some(Item::ChiseledDeepslate), + 292u32 => Some(Item::BrownMushroomBlock), + 293u32 => Some(Item::RedMushroomBlock), + 294u32 => Some(Item::MushroomStem), + 295u32 => Some(Item::IronBars), + 296u32 => Some(Item::Chain), + 297u32 => Some(Item::GlassPane), + 298u32 => Some(Item::Melon), + 299u32 => Some(Item::Vine), + 300u32 => Some(Item::GlowLichen), + 301u32 => Some(Item::BrickStairs), + 302u32 => Some(Item::StoneBrickStairs), + 303u32 => Some(Item::Mycelium), + 304u32 => Some(Item::LilyPad), + 305u32 => Some(Item::NetherBricks), + 306u32 => Some(Item::CrackedNetherBricks), + 307u32 => Some(Item::ChiseledNetherBricks), + 308u32 => Some(Item::NetherBrickFence), + 309u32 => Some(Item::NetherBrickStairs), + 310u32 => Some(Item::EnchantingTable), + 311u32 => Some(Item::EndPortalFrame), + 312u32 => Some(Item::EndStone), + 313u32 => Some(Item::EndStoneBricks), + 314u32 => Some(Item::DragonEgg), + 315u32 => Some(Item::SandstoneStairs), + 316u32 => Some(Item::EnderChest), + 317u32 => Some(Item::EmeraldBlock), + 318u32 => Some(Item::SpruceStairs), + 319u32 => Some(Item::BirchStairs), + 320u32 => Some(Item::JungleStairs), + 321u32 => Some(Item::CrimsonStairs), + 322u32 => Some(Item::WarpedStairs), + 323u32 => Some(Item::CommandBlock), + 324u32 => Some(Item::Beacon), + 325u32 => Some(Item::CobblestoneWall), + 326u32 => Some(Item::MossyCobblestoneWall), + 327u32 => Some(Item::BrickWall), + 328u32 => Some(Item::PrismarineWall), + 329u32 => Some(Item::RedSandstoneWall), + 330u32 => Some(Item::MossyStoneBrickWall), + 331u32 => Some(Item::GraniteWall), + 332u32 => Some(Item::StoneBrickWall), + 333u32 => Some(Item::NetherBrickWall), + 334u32 => Some(Item::AndesiteWall), + 335u32 => Some(Item::RedNetherBrickWall), + 336u32 => Some(Item::SandstoneWall), + 337u32 => Some(Item::EndStoneBrickWall), + 338u32 => Some(Item::DioriteWall), + 339u32 => Some(Item::BlackstoneWall), + 340u32 => Some(Item::PolishedBlackstoneWall), + 341u32 => Some(Item::PolishedBlackstoneBrickWall), + 342u32 => Some(Item::CobbledDeepslateWall), + 343u32 => Some(Item::PolishedDeepslateWall), + 344u32 => Some(Item::DeepslateBrickWall), + 345u32 => Some(Item::DeepslateTileWall), + 346u32 => Some(Item::Anvil), + 347u32 => Some(Item::ChippedAnvil), + 348u32 => Some(Item::DamagedAnvil), + 349u32 => Some(Item::ChiseledQuartzBlock), + 350u32 => Some(Item::QuartzBlock), + 351u32 => Some(Item::QuartzBricks), + 352u32 => Some(Item::QuartzPillar), + 353u32 => Some(Item::QuartzStairs), + 354u32 => Some(Item::WhiteTerracotta), + 355u32 => Some(Item::OrangeTerracotta), + 356u32 => Some(Item::MagentaTerracotta), + 357u32 => Some(Item::LightBlueTerracotta), + 358u32 => Some(Item::YellowTerracotta), + 359u32 => Some(Item::LimeTerracotta), + 360u32 => Some(Item::PinkTerracotta), + 361u32 => Some(Item::GrayTerracotta), + 362u32 => Some(Item::LightGrayTerracotta), + 363u32 => Some(Item::CyanTerracotta), + 364u32 => Some(Item::PurpleTerracotta), + 365u32 => Some(Item::BlueTerracotta), + 366u32 => Some(Item::BrownTerracotta), + 367u32 => Some(Item::GreenTerracotta), + 368u32 => Some(Item::RedTerracotta), + 369u32 => Some(Item::BlackTerracotta), + 370u32 => Some(Item::Barrier), + 371u32 => Some(Item::Light), + 372u32 => Some(Item::HayBlock), + 373u32 => Some(Item::WhiteCarpet), + 374u32 => Some(Item::OrangeCarpet), + 375u32 => Some(Item::MagentaCarpet), + 376u32 => Some(Item::LightBlueCarpet), + 377u32 => Some(Item::YellowCarpet), + 378u32 => Some(Item::LimeCarpet), + 379u32 => Some(Item::PinkCarpet), + 380u32 => Some(Item::GrayCarpet), + 381u32 => Some(Item::LightGrayCarpet), + 382u32 => Some(Item::CyanCarpet), + 383u32 => Some(Item::PurpleCarpet), + 384u32 => Some(Item::BlueCarpet), + 385u32 => Some(Item::BrownCarpet), + 386u32 => Some(Item::GreenCarpet), + 387u32 => Some(Item::RedCarpet), + 388u32 => Some(Item::BlackCarpet), + 389u32 => Some(Item::Terracotta), + 390u32 => Some(Item::PackedIce), + 391u32 => Some(Item::AcaciaStairs), + 392u32 => Some(Item::DarkOakStairs), + 393u32 => Some(Item::DirtPath), + 394u32 => Some(Item::Sunflower), + 395u32 => Some(Item::Lilac), + 396u32 => Some(Item::RoseBush), + 397u32 => Some(Item::Peony), + 398u32 => Some(Item::TallGrass), + 399u32 => Some(Item::LargeFern), + 400u32 => Some(Item::WhiteStainedGlass), + 401u32 => Some(Item::OrangeStainedGlass), + 402u32 => Some(Item::MagentaStainedGlass), + 403u32 => Some(Item::LightBlueStainedGlass), + 404u32 => Some(Item::YellowStainedGlass), + 405u32 => Some(Item::LimeStainedGlass), + 406u32 => Some(Item::PinkStainedGlass), + 407u32 => Some(Item::GrayStainedGlass), + 408u32 => Some(Item::LightGrayStainedGlass), + 409u32 => Some(Item::CyanStainedGlass), + 410u32 => Some(Item::PurpleStainedGlass), + 411u32 => Some(Item::BlueStainedGlass), + 412u32 => Some(Item::BrownStainedGlass), + 413u32 => Some(Item::GreenStainedGlass), + 414u32 => Some(Item::RedStainedGlass), + 415u32 => Some(Item::BlackStainedGlass), + 416u32 => Some(Item::WhiteStainedGlassPane), + 417u32 => Some(Item::OrangeStainedGlassPane), + 418u32 => Some(Item::MagentaStainedGlassPane), + 419u32 => Some(Item::LightBlueStainedGlassPane), + 420u32 => Some(Item::YellowStainedGlassPane), + 421u32 => Some(Item::LimeStainedGlassPane), + 422u32 => Some(Item::PinkStainedGlassPane), + 423u32 => Some(Item::GrayStainedGlassPane), + 424u32 => Some(Item::LightGrayStainedGlassPane), + 425u32 => Some(Item::CyanStainedGlassPane), + 426u32 => Some(Item::PurpleStainedGlassPane), + 427u32 => Some(Item::BlueStainedGlassPane), + 428u32 => Some(Item::BrownStainedGlassPane), + 429u32 => Some(Item::GreenStainedGlassPane), + 430u32 => Some(Item::RedStainedGlassPane), + 431u32 => Some(Item::BlackStainedGlassPane), + 432u32 => Some(Item::Prismarine), + 433u32 => Some(Item::PrismarineBricks), + 434u32 => Some(Item::DarkPrismarine), + 435u32 => Some(Item::PrismarineStairs), + 436u32 => Some(Item::PrismarineBrickStairs), + 437u32 => Some(Item::DarkPrismarineStairs), + 438u32 => Some(Item::SeaLantern), + 439u32 => Some(Item::RedSandstone), + 440u32 => Some(Item::ChiseledRedSandstone), + 441u32 => Some(Item::CutRedSandstone), + 442u32 => Some(Item::RedSandstoneStairs), + 443u32 => Some(Item::RepeatingCommandBlock), + 444u32 => Some(Item::ChainCommandBlock), + 445u32 => Some(Item::MagmaBlock), + 446u32 => Some(Item::NetherWartBlock), + 447u32 => Some(Item::WarpedWartBlock), + 448u32 => Some(Item::RedNetherBricks), + 449u32 => Some(Item::BoneBlock), + 450u32 => Some(Item::StructureVoid), + 451u32 => Some(Item::ShulkerBox), + 452u32 => Some(Item::WhiteShulkerBox), + 453u32 => Some(Item::OrangeShulkerBox), + 454u32 => Some(Item::MagentaShulkerBox), + 455u32 => Some(Item::LightBlueShulkerBox), + 456u32 => Some(Item::YellowShulkerBox), + 457u32 => Some(Item::LimeShulkerBox), + 458u32 => Some(Item::PinkShulkerBox), + 459u32 => Some(Item::GrayShulkerBox), + 460u32 => Some(Item::LightGrayShulkerBox), + 461u32 => Some(Item::CyanShulkerBox), + 462u32 => Some(Item::PurpleShulkerBox), + 463u32 => Some(Item::BlueShulkerBox), + 464u32 => Some(Item::BrownShulkerBox), + 465u32 => Some(Item::GreenShulkerBox), + 466u32 => Some(Item::RedShulkerBox), + 467u32 => Some(Item::BlackShulkerBox), + 468u32 => Some(Item::WhiteGlazedTerracotta), + 469u32 => Some(Item::OrangeGlazedTerracotta), + 470u32 => Some(Item::MagentaGlazedTerracotta), + 471u32 => Some(Item::LightBlueGlazedTerracotta), + 472u32 => Some(Item::YellowGlazedTerracotta), + 473u32 => Some(Item::LimeGlazedTerracotta), + 474u32 => Some(Item::PinkGlazedTerracotta), + 475u32 => Some(Item::GrayGlazedTerracotta), + 476u32 => Some(Item::LightGrayGlazedTerracotta), + 477u32 => Some(Item::CyanGlazedTerracotta), + 478u32 => Some(Item::PurpleGlazedTerracotta), + 479u32 => Some(Item::BlueGlazedTerracotta), + 480u32 => Some(Item::BrownGlazedTerracotta), + 481u32 => Some(Item::GreenGlazedTerracotta), + 482u32 => Some(Item::RedGlazedTerracotta), + 483u32 => Some(Item::BlackGlazedTerracotta), + 484u32 => Some(Item::WhiteConcrete), + 485u32 => Some(Item::OrangeConcrete), + 486u32 => Some(Item::MagentaConcrete), + 487u32 => Some(Item::LightBlueConcrete), + 488u32 => Some(Item::YellowConcrete), + 489u32 => Some(Item::LimeConcrete), + 490u32 => Some(Item::PinkConcrete), + 491u32 => Some(Item::GrayConcrete), + 492u32 => Some(Item::LightGrayConcrete), + 493u32 => Some(Item::CyanConcrete), + 494u32 => Some(Item::PurpleConcrete), + 495u32 => Some(Item::BlueConcrete), + 496u32 => Some(Item::BrownConcrete), + 497u32 => Some(Item::GreenConcrete), + 498u32 => Some(Item::RedConcrete), + 499u32 => Some(Item::BlackConcrete), + 500u32 => Some(Item::WhiteConcretePowder), + 501u32 => Some(Item::OrangeConcretePowder), + 502u32 => Some(Item::MagentaConcretePowder), + 503u32 => Some(Item::LightBlueConcretePowder), + 504u32 => Some(Item::YellowConcretePowder), + 505u32 => Some(Item::LimeConcretePowder), + 506u32 => Some(Item::PinkConcretePowder), + 507u32 => Some(Item::GrayConcretePowder), + 508u32 => Some(Item::LightGrayConcretePowder), + 509u32 => Some(Item::CyanConcretePowder), + 510u32 => Some(Item::PurpleConcretePowder), + 511u32 => Some(Item::BlueConcretePowder), + 512u32 => Some(Item::BrownConcretePowder), + 513u32 => Some(Item::GreenConcretePowder), + 514u32 => Some(Item::RedConcretePowder), + 515u32 => Some(Item::BlackConcretePowder), + 516u32 => Some(Item::TurtleEgg), + 517u32 => Some(Item::DeadTubeCoralBlock), + 518u32 => Some(Item::DeadBrainCoralBlock), + 519u32 => Some(Item::DeadBubbleCoralBlock), + 520u32 => Some(Item::DeadFireCoralBlock), + 521u32 => Some(Item::DeadHornCoralBlock), + 522u32 => Some(Item::TubeCoralBlock), + 523u32 => Some(Item::BrainCoralBlock), + 524u32 => Some(Item::BubbleCoralBlock), + 525u32 => Some(Item::FireCoralBlock), + 526u32 => Some(Item::HornCoralBlock), + 527u32 => Some(Item::TubeCoral), + 528u32 => Some(Item::BrainCoral), + 529u32 => Some(Item::BubbleCoral), + 530u32 => Some(Item::FireCoral), + 531u32 => Some(Item::HornCoral), + 532u32 => Some(Item::DeadBrainCoral), + 533u32 => Some(Item::DeadBubbleCoral), + 534u32 => Some(Item::DeadFireCoral), + 535u32 => Some(Item::DeadHornCoral), + 536u32 => Some(Item::DeadTubeCoral), + 537u32 => Some(Item::TubeCoralFan), + 538u32 => Some(Item::BrainCoralFan), + 539u32 => Some(Item::BubbleCoralFan), + 540u32 => Some(Item::FireCoralFan), + 541u32 => Some(Item::HornCoralFan), + 542u32 => Some(Item::DeadTubeCoralFan), + 543u32 => Some(Item::DeadBrainCoralFan), + 544u32 => Some(Item::DeadBubbleCoralFan), + 545u32 => Some(Item::DeadFireCoralFan), + 546u32 => Some(Item::DeadHornCoralFan), + 547u32 => Some(Item::BlueIce), + 548u32 => Some(Item::Conduit), + 549u32 => Some(Item::PolishedGraniteStairs), + 550u32 => Some(Item::SmoothRedSandstoneStairs), + 551u32 => Some(Item::MossyStoneBrickStairs), + 552u32 => Some(Item::PolishedDioriteStairs), + 553u32 => Some(Item::MossyCobblestoneStairs), + 554u32 => Some(Item::EndStoneBrickStairs), + 555u32 => Some(Item::StoneStairs), + 556u32 => Some(Item::SmoothSandstoneStairs), + 557u32 => Some(Item::SmoothQuartzStairs), + 558u32 => Some(Item::GraniteStairs), + 559u32 => Some(Item::AndesiteStairs), + 560u32 => Some(Item::RedNetherBrickStairs), + 561u32 => Some(Item::PolishedAndesiteStairs), + 562u32 => Some(Item::DioriteStairs), + 563u32 => Some(Item::CobbledDeepslateStairs), + 564u32 => Some(Item::PolishedDeepslateStairs), + 565u32 => Some(Item::DeepslateBrickStairs), + 566u32 => Some(Item::DeepslateTileStairs), + 567u32 => Some(Item::PolishedGraniteSlab), + 568u32 => Some(Item::SmoothRedSandstoneSlab), + 569u32 => Some(Item::MossyStoneBrickSlab), + 570u32 => Some(Item::PolishedDioriteSlab), + 571u32 => Some(Item::MossyCobblestoneSlab), + 572u32 => Some(Item::EndStoneBrickSlab), + 573u32 => Some(Item::SmoothSandstoneSlab), + 574u32 => Some(Item::SmoothQuartzSlab), + 575u32 => Some(Item::GraniteSlab), + 576u32 => Some(Item::AndesiteSlab), + 577u32 => Some(Item::RedNetherBrickSlab), + 578u32 => Some(Item::PolishedAndesiteSlab), + 579u32 => Some(Item::DioriteSlab), + 580u32 => Some(Item::CobbledDeepslateSlab), + 581u32 => Some(Item::PolishedDeepslateSlab), + 582u32 => Some(Item::DeepslateBrickSlab), + 583u32 => Some(Item::DeepslateTileSlab), + 584u32 => Some(Item::Scaffolding), + 585u32 => Some(Item::Redstone), + 586u32 => Some(Item::RedstoneTorch), + 587u32 => Some(Item::RedstoneBlock), + 588u32 => Some(Item::Repeater), + 589u32 => Some(Item::Comparator), + 590u32 => Some(Item::Piston), + 591u32 => Some(Item::StickyPiston), + 592u32 => Some(Item::SlimeBlock), + 593u32 => Some(Item::HoneyBlock), + 594u32 => Some(Item::Observer), + 595u32 => Some(Item::Hopper), + 596u32 => Some(Item::Dispenser), + 597u32 => Some(Item::Dropper), + 598u32 => Some(Item::Lectern), + 599u32 => Some(Item::Target), + 600u32 => Some(Item::Lever), + 601u32 => Some(Item::LightningRod), + 602u32 => Some(Item::DaylightDetector), + 603u32 => Some(Item::SculkSensor), + 604u32 => Some(Item::TripwireHook), + 605u32 => Some(Item::TrappedChest), + 606u32 => Some(Item::Tnt), + 607u32 => Some(Item::RedstoneLamp), + 608u32 => Some(Item::NoteBlock), + 609u32 => Some(Item::StoneButton), + 610u32 => Some(Item::PolishedBlackstoneButton), + 611u32 => Some(Item::OakButton), + 612u32 => Some(Item::SpruceButton), + 613u32 => Some(Item::BirchButton), + 614u32 => Some(Item::JungleButton), + 615u32 => Some(Item::AcaciaButton), + 616u32 => Some(Item::DarkOakButton), + 617u32 => Some(Item::CrimsonButton), + 618u32 => Some(Item::WarpedButton), + 619u32 => Some(Item::StonePressurePlate), + 620u32 => Some(Item::PolishedBlackstonePressurePlate), + 621u32 => Some(Item::LightWeightedPressurePlate), + 622u32 => Some(Item::HeavyWeightedPressurePlate), + 623u32 => Some(Item::OakPressurePlate), + 624u32 => Some(Item::SprucePressurePlate), + 625u32 => Some(Item::BirchPressurePlate), + 626u32 => Some(Item::JunglePressurePlate), + 627u32 => Some(Item::AcaciaPressurePlate), + 628u32 => Some(Item::DarkOakPressurePlate), + 629u32 => Some(Item::CrimsonPressurePlate), + 630u32 => Some(Item::WarpedPressurePlate), + 631u32 => Some(Item::IronDoor), + 632u32 => Some(Item::OakDoor), + 633u32 => Some(Item::SpruceDoor), + 634u32 => Some(Item::BirchDoor), + 635u32 => Some(Item::JungleDoor), + 636u32 => Some(Item::AcaciaDoor), + 637u32 => Some(Item::DarkOakDoor), + 638u32 => Some(Item::CrimsonDoor), + 639u32 => Some(Item::WarpedDoor), + 640u32 => Some(Item::IronTrapdoor), + 641u32 => Some(Item::OakTrapdoor), + 642u32 => Some(Item::SpruceTrapdoor), + 643u32 => Some(Item::BirchTrapdoor), + 644u32 => Some(Item::JungleTrapdoor), + 645u32 => Some(Item::AcaciaTrapdoor), + 646u32 => Some(Item::DarkOakTrapdoor), + 647u32 => Some(Item::CrimsonTrapdoor), + 648u32 => Some(Item::WarpedTrapdoor), + 649u32 => Some(Item::OakFenceGate), + 650u32 => Some(Item::SpruceFenceGate), + 651u32 => Some(Item::BirchFenceGate), + 652u32 => Some(Item::JungleFenceGate), + 653u32 => Some(Item::AcaciaFenceGate), + 654u32 => Some(Item::DarkOakFenceGate), + 655u32 => Some(Item::CrimsonFenceGate), + 656u32 => Some(Item::WarpedFenceGate), + 657u32 => Some(Item::PoweredRail), + 658u32 => Some(Item::DetectorRail), + 659u32 => Some(Item::Rail), + 660u32 => Some(Item::ActivatorRail), + 661u32 => Some(Item::Saddle), + 662u32 => Some(Item::Minecart), + 663u32 => Some(Item::ChestMinecart), + 664u32 => Some(Item::FurnaceMinecart), + 665u32 => Some(Item::TntMinecart), + 666u32 => Some(Item::HopperMinecart), + 667u32 => Some(Item::CarrotOnAStick), + 668u32 => Some(Item::WarpedFungusOnAStick), + 669u32 => Some(Item::Elytra), + 670u32 => Some(Item::OakBoat), + 671u32 => Some(Item::SpruceBoat), + 672u32 => Some(Item::BirchBoat), + 673u32 => Some(Item::JungleBoat), + 674u32 => Some(Item::AcaciaBoat), + 675u32 => Some(Item::DarkOakBoat), + 676u32 => Some(Item::StructureBlock), + 677u32 => Some(Item::Jigsaw), + 678u32 => Some(Item::TurtleHelmet), + 679u32 => Some(Item::Scute), + 680u32 => Some(Item::FlintAndSteel), + 681u32 => Some(Item::Apple), + 682u32 => Some(Item::Bow), + 683u32 => Some(Item::Arrow), + 684u32 => Some(Item::Coal), + 685u32 => Some(Item::Charcoal), + 686u32 => Some(Item::Diamond), + 687u32 => Some(Item::Emerald), + 688u32 => Some(Item::LapisLazuli), + 689u32 => Some(Item::Quartz), + 690u32 => Some(Item::AmethystShard), + 691u32 => Some(Item::RawIron), + 692u32 => Some(Item::IronIngot), + 693u32 => Some(Item::RawCopper), + 694u32 => Some(Item::CopperIngot), + 695u32 => Some(Item::RawGold), + 696u32 => Some(Item::GoldIngot), + 697u32 => Some(Item::NetheriteIngot), + 698u32 => Some(Item::NetheriteScrap), + 699u32 => Some(Item::WoodenSword), + 700u32 => Some(Item::WoodenShovel), + 701u32 => Some(Item::WoodenPickaxe), + 702u32 => Some(Item::WoodenAxe), + 703u32 => Some(Item::WoodenHoe), + 704u32 => Some(Item::StoneSword), + 705u32 => Some(Item::StoneShovel), + 706u32 => Some(Item::StonePickaxe), + 707u32 => Some(Item::StoneAxe), + 708u32 => Some(Item::StoneHoe), + 709u32 => Some(Item::GoldenSword), + 710u32 => Some(Item::GoldenShovel), + 711u32 => Some(Item::GoldenPickaxe), + 712u32 => Some(Item::GoldenAxe), + 713u32 => Some(Item::GoldenHoe), + 714u32 => Some(Item::IronSword), + 715u32 => Some(Item::IronShovel), + 716u32 => Some(Item::IronPickaxe), + 717u32 => Some(Item::IronAxe), + 718u32 => Some(Item::IronHoe), + 719u32 => Some(Item::DiamondSword), + 720u32 => Some(Item::DiamondShovel), + 721u32 => Some(Item::DiamondPickaxe), + 722u32 => Some(Item::DiamondAxe), + 723u32 => Some(Item::DiamondHoe), + 724u32 => Some(Item::NetheriteSword), + 725u32 => Some(Item::NetheriteShovel), + 726u32 => Some(Item::NetheritePickaxe), + 727u32 => Some(Item::NetheriteAxe), + 728u32 => Some(Item::NetheriteHoe), + 729u32 => Some(Item::Stick), + 730u32 => Some(Item::Bowl), + 731u32 => Some(Item::MushroomStew), + 732u32 => Some(Item::String), + 733u32 => Some(Item::Feather), + 734u32 => Some(Item::Gunpowder), + 735u32 => Some(Item::WheatSeeds), + 736u32 => Some(Item::Wheat), + 737u32 => Some(Item::Bread), + 738u32 => Some(Item::LeatherHelmet), + 739u32 => Some(Item::LeatherChestplate), + 740u32 => Some(Item::LeatherLeggings), + 741u32 => Some(Item::LeatherBoots), + 742u32 => Some(Item::ChainmailHelmet), + 743u32 => Some(Item::ChainmailChestplate), + 744u32 => Some(Item::ChainmailLeggings), + 745u32 => Some(Item::ChainmailBoots), + 746u32 => Some(Item::IronHelmet), + 747u32 => Some(Item::IronChestplate), + 748u32 => Some(Item::IronLeggings), + 749u32 => Some(Item::IronBoots), + 750u32 => Some(Item::DiamondHelmet), + 751u32 => Some(Item::DiamondChestplate), + 752u32 => Some(Item::DiamondLeggings), + 753u32 => Some(Item::DiamondBoots), + 754u32 => Some(Item::GoldenHelmet), + 755u32 => Some(Item::GoldenChestplate), + 756u32 => Some(Item::GoldenLeggings), + 757u32 => Some(Item::GoldenBoots), + 758u32 => Some(Item::NetheriteHelmet), + 759u32 => Some(Item::NetheriteChestplate), + 760u32 => Some(Item::NetheriteLeggings), + 761u32 => Some(Item::NetheriteBoots), + 762u32 => Some(Item::Flint), + 763u32 => Some(Item::Porkchop), + 764u32 => Some(Item::CookedPorkchop), + 765u32 => Some(Item::Painting), + 766u32 => Some(Item::GoldenApple), + 767u32 => Some(Item::EnchantedGoldenApple), + 768u32 => Some(Item::OakSign), + 769u32 => Some(Item::SpruceSign), + 770u32 => Some(Item::BirchSign), + 771u32 => Some(Item::JungleSign), + 772u32 => Some(Item::AcaciaSign), + 773u32 => Some(Item::DarkOakSign), + 774u32 => Some(Item::CrimsonSign), + 775u32 => Some(Item::WarpedSign), + 776u32 => Some(Item::Bucket), + 777u32 => Some(Item::WaterBucket), + 778u32 => Some(Item::LavaBucket), + 779u32 => Some(Item::PowderSnowBucket), + 780u32 => Some(Item::Snowball), + 781u32 => Some(Item::Leather), + 782u32 => Some(Item::MilkBucket), + 783u32 => Some(Item::PufferfishBucket), + 784u32 => Some(Item::SalmonBucket), + 785u32 => Some(Item::CodBucket), + 786u32 => Some(Item::TropicalFishBucket), + 787u32 => Some(Item::AxolotlBucket), + 788u32 => Some(Item::Brick), + 789u32 => Some(Item::ClayBall), + 790u32 => Some(Item::DriedKelpBlock), + 791u32 => Some(Item::Paper), + 792u32 => Some(Item::Book), + 793u32 => Some(Item::SlimeBall), + 794u32 => Some(Item::Egg), + 795u32 => Some(Item::Compass), + 796u32 => Some(Item::Bundle), + 797u32 => Some(Item::FishingRod), + 798u32 => Some(Item::Clock), + 799u32 => Some(Item::Spyglass), + 800u32 => Some(Item::GlowstoneDust), + 801u32 => Some(Item::Cod), + 802u32 => Some(Item::Salmon), + 803u32 => Some(Item::TropicalFish), + 804u32 => Some(Item::Pufferfish), + 805u32 => Some(Item::CookedCod), + 806u32 => Some(Item::CookedSalmon), + 807u32 => Some(Item::InkSac), + 808u32 => Some(Item::GlowInkSac), + 809u32 => Some(Item::CocoaBeans), + 810u32 => Some(Item::WhiteDye), + 811u32 => Some(Item::OrangeDye), + 812u32 => Some(Item::MagentaDye), + 813u32 => Some(Item::LightBlueDye), + 814u32 => Some(Item::YellowDye), + 815u32 => Some(Item::LimeDye), + 816u32 => Some(Item::PinkDye), + 817u32 => Some(Item::GrayDye), + 818u32 => Some(Item::LightGrayDye), + 819u32 => Some(Item::CyanDye), + 820u32 => Some(Item::PurpleDye), + 821u32 => Some(Item::BlueDye), + 822u32 => Some(Item::BrownDye), + 823u32 => Some(Item::GreenDye), + 824u32 => Some(Item::RedDye), + 825u32 => Some(Item::BlackDye), + 826u32 => Some(Item::BoneMeal), + 827u32 => Some(Item::Bone), + 828u32 => Some(Item::Sugar), + 829u32 => Some(Item::Cake), + 830u32 => Some(Item::WhiteBed), + 831u32 => Some(Item::OrangeBed), + 832u32 => Some(Item::MagentaBed), + 833u32 => Some(Item::LightBlueBed), + 834u32 => Some(Item::YellowBed), + 835u32 => Some(Item::LimeBed), + 836u32 => Some(Item::PinkBed), + 837u32 => Some(Item::GrayBed), + 838u32 => Some(Item::LightGrayBed), + 839u32 => Some(Item::CyanBed), + 840u32 => Some(Item::PurpleBed), + 841u32 => Some(Item::BlueBed), + 842u32 => Some(Item::BrownBed), + 843u32 => Some(Item::GreenBed), + 844u32 => Some(Item::RedBed), + 845u32 => Some(Item::BlackBed), + 846u32 => Some(Item::Cookie), + 847u32 => Some(Item::FilledMap), + 848u32 => Some(Item::Shears), + 849u32 => Some(Item::MelonSlice), + 850u32 => Some(Item::DriedKelp), + 851u32 => Some(Item::PumpkinSeeds), + 852u32 => Some(Item::MelonSeeds), + 853u32 => Some(Item::Beef), + 854u32 => Some(Item::CookedBeef), + 855u32 => Some(Item::Chicken), + 856u32 => Some(Item::CookedChicken), + 857u32 => Some(Item::RottenFlesh), + 858u32 => Some(Item::EnderPearl), + 859u32 => Some(Item::BlazeRod), + 860u32 => Some(Item::GhastTear), + 861u32 => Some(Item::GoldNugget), + 862u32 => Some(Item::NetherWart), + 863u32 => Some(Item::Potion), + 864u32 => Some(Item::GlassBottle), + 865u32 => Some(Item::SpiderEye), + 866u32 => Some(Item::FermentedSpiderEye), + 867u32 => Some(Item::BlazePowder), + 868u32 => Some(Item::MagmaCream), + 869u32 => Some(Item::BrewingStand), + 870u32 => Some(Item::Cauldron), + 871u32 => Some(Item::EnderEye), + 872u32 => Some(Item::GlisteringMelonSlice), + 873u32 => Some(Item::AxolotlSpawnEgg), + 874u32 => Some(Item::BatSpawnEgg), + 875u32 => Some(Item::BeeSpawnEgg), + 876u32 => Some(Item::BlazeSpawnEgg), + 877u32 => Some(Item::CatSpawnEgg), + 878u32 => Some(Item::CaveSpiderSpawnEgg), + 879u32 => Some(Item::ChickenSpawnEgg), + 880u32 => Some(Item::CodSpawnEgg), + 881u32 => Some(Item::CowSpawnEgg), + 882u32 => Some(Item::CreeperSpawnEgg), + 883u32 => Some(Item::DolphinSpawnEgg), + 884u32 => Some(Item::DonkeySpawnEgg), + 885u32 => Some(Item::DrownedSpawnEgg), + 886u32 => Some(Item::ElderGuardianSpawnEgg), + 887u32 => Some(Item::EndermanSpawnEgg), + 888u32 => Some(Item::EndermiteSpawnEgg), + 889u32 => Some(Item::EvokerSpawnEgg), + 890u32 => Some(Item::FoxSpawnEgg), + 891u32 => Some(Item::GhastSpawnEgg), + 892u32 => Some(Item::GlowSquidSpawnEgg), + 893u32 => Some(Item::GoatSpawnEgg), + 894u32 => Some(Item::GuardianSpawnEgg), + 895u32 => Some(Item::HoglinSpawnEgg), + 896u32 => Some(Item::HorseSpawnEgg), + 897u32 => Some(Item::HuskSpawnEgg), + 898u32 => Some(Item::LlamaSpawnEgg), + 899u32 => Some(Item::MagmaCubeSpawnEgg), + 900u32 => Some(Item::MooshroomSpawnEgg), + 901u32 => Some(Item::MuleSpawnEgg), + 902u32 => Some(Item::OcelotSpawnEgg), + 903u32 => Some(Item::PandaSpawnEgg), + 904u32 => Some(Item::ParrotSpawnEgg), + 905u32 => Some(Item::PhantomSpawnEgg), + 906u32 => Some(Item::PigSpawnEgg), + 907u32 => Some(Item::PiglinSpawnEgg), + 908u32 => Some(Item::PiglinBruteSpawnEgg), + 909u32 => Some(Item::PillagerSpawnEgg), + 910u32 => Some(Item::PolarBearSpawnEgg), + 911u32 => Some(Item::PufferfishSpawnEgg), + 912u32 => Some(Item::RabbitSpawnEgg), + 913u32 => Some(Item::RavagerSpawnEgg), + 914u32 => Some(Item::SalmonSpawnEgg), + 915u32 => Some(Item::SheepSpawnEgg), + 916u32 => Some(Item::ShulkerSpawnEgg), + 917u32 => Some(Item::SilverfishSpawnEgg), + 918u32 => Some(Item::SkeletonSpawnEgg), + 919u32 => Some(Item::SkeletonHorseSpawnEgg), + 920u32 => Some(Item::SlimeSpawnEgg), + 921u32 => Some(Item::SpiderSpawnEgg), + 922u32 => Some(Item::SquidSpawnEgg), + 923u32 => Some(Item::StraySpawnEgg), + 924u32 => Some(Item::StriderSpawnEgg), + 925u32 => Some(Item::TraderLlamaSpawnEgg), + 926u32 => Some(Item::TropicalFishSpawnEgg), + 927u32 => Some(Item::TurtleSpawnEgg), + 928u32 => Some(Item::VexSpawnEgg), + 929u32 => Some(Item::VillagerSpawnEgg), + 930u32 => Some(Item::VindicatorSpawnEgg), + 931u32 => Some(Item::WanderingTraderSpawnEgg), + 932u32 => Some(Item::WitchSpawnEgg), + 933u32 => Some(Item::WitherSkeletonSpawnEgg), + 934u32 => Some(Item::WolfSpawnEgg), + 935u32 => Some(Item::ZoglinSpawnEgg), + 936u32 => Some(Item::ZombieSpawnEgg), + 937u32 => Some(Item::ZombieHorseSpawnEgg), + 938u32 => Some(Item::ZombieVillagerSpawnEgg), + 939u32 => Some(Item::ZombifiedPiglinSpawnEgg), + 940u32 => Some(Item::ExperienceBottle), + 941u32 => Some(Item::FireCharge), + 942u32 => Some(Item::WritableBook), + 943u32 => Some(Item::WrittenBook), + 944u32 => Some(Item::ItemFrame), + 945u32 => Some(Item::GlowItemFrame), + 946u32 => Some(Item::FlowerPot), + 947u32 => Some(Item::Carrot), + 948u32 => Some(Item::Potato), + 949u32 => Some(Item::BakedPotato), + 950u32 => Some(Item::PoisonousPotato), + 951u32 => Some(Item::Map), + 952u32 => Some(Item::GoldenCarrot), + 953u32 => Some(Item::SkeletonSkull), + 954u32 => Some(Item::WitherSkeletonSkull), + 955u32 => Some(Item::PlayerHead), + 956u32 => Some(Item::ZombieHead), + 957u32 => Some(Item::CreeperHead), + 958u32 => Some(Item::DragonHead), + 959u32 => Some(Item::NetherStar), + 960u32 => Some(Item::PumpkinPie), + 961u32 => Some(Item::FireworkRocket), + 962u32 => Some(Item::FireworkStar), + 963u32 => Some(Item::EnchantedBook), + 964u32 => Some(Item::NetherBrick), + 965u32 => Some(Item::PrismarineShard), + 966u32 => Some(Item::PrismarineCrystals), + 967u32 => Some(Item::Rabbit), + 968u32 => Some(Item::CookedRabbit), + 969u32 => Some(Item::RabbitStew), + 970u32 => Some(Item::RabbitFoot), + 971u32 => Some(Item::RabbitHide), + 972u32 => Some(Item::ArmorStand), + 973u32 => Some(Item::IronHorseArmor), + 974u32 => Some(Item::GoldenHorseArmor), + 975u32 => Some(Item::DiamondHorseArmor), + 976u32 => Some(Item::LeatherHorseArmor), + 977u32 => Some(Item::Lead), + 978u32 => Some(Item::NameTag), + 979u32 => Some(Item::CommandBlockMinecart), + 980u32 => Some(Item::Mutton), + 981u32 => Some(Item::CookedMutton), + 982u32 => Some(Item::WhiteBanner), + 983u32 => Some(Item::OrangeBanner), + 984u32 => Some(Item::MagentaBanner), + 985u32 => Some(Item::LightBlueBanner), + 986u32 => Some(Item::YellowBanner), + 987u32 => Some(Item::LimeBanner), + 988u32 => Some(Item::PinkBanner), + 989u32 => Some(Item::GrayBanner), + 990u32 => Some(Item::LightGrayBanner), + 991u32 => Some(Item::CyanBanner), + 992u32 => Some(Item::PurpleBanner), + 993u32 => Some(Item::BlueBanner), + 994u32 => Some(Item::BrownBanner), + 995u32 => Some(Item::GreenBanner), + 996u32 => Some(Item::RedBanner), + 997u32 => Some(Item::BlackBanner), + 998u32 => Some(Item::EndCrystal), + 999u32 => Some(Item::ChorusFruit), + 1000u32 => Some(Item::PoppedChorusFruit), + 1001u32 => Some(Item::Beetroot), + 1002u32 => Some(Item::BeetrootSeeds), + 1003u32 => Some(Item::BeetrootSoup), + 1004u32 => Some(Item::DragonBreath), + 1005u32 => Some(Item::SplashPotion), + 1006u32 => Some(Item::SpectralArrow), + 1007u32 => Some(Item::TippedArrow), + 1008u32 => Some(Item::LingeringPotion), + 1009u32 => Some(Item::Shield), + 1010u32 => Some(Item::TotemOfUndying), + 1011u32 => Some(Item::ShulkerShell), + 1012u32 => Some(Item::IronNugget), + 1013u32 => Some(Item::KnowledgeBook), + 1014u32 => Some(Item::DebugStick), + 1015u32 => Some(Item::MusicDisc13), + 1016u32 => Some(Item::MusicDiscCat), + 1017u32 => Some(Item::MusicDiscBlocks), + 1018u32 => Some(Item::MusicDiscChirp), + 1019u32 => Some(Item::MusicDiscFar), + 1020u32 => Some(Item::MusicDiscMall), + 1021u32 => Some(Item::MusicDiscMellohi), + 1022u32 => Some(Item::MusicDiscStal), + 1023u32 => Some(Item::MusicDiscStrad), + 1024u32 => Some(Item::MusicDiscWard), + 1025u32 => Some(Item::MusicDisc11), + 1026u32 => Some(Item::MusicDiscWait), + 1027u32 => Some(Item::MusicDiscOtherside), + 1028u32 => Some(Item::MusicDiscPigstep), + 1029u32 => Some(Item::Trident), + 1030u32 => Some(Item::PhantomMembrane), + 1031u32 => Some(Item::NautilusShell), + 1032u32 => Some(Item::HeartOfTheSea), + 1033u32 => Some(Item::Crossbow), + 1034u32 => Some(Item::SuspiciousStew), + 1035u32 => Some(Item::Loom), + 1036u32 => Some(Item::FlowerBannerPattern), + 1037u32 => Some(Item::CreeperBannerPattern), + 1038u32 => Some(Item::SkullBannerPattern), + 1039u32 => Some(Item::MojangBannerPattern), + 1040u32 => Some(Item::GlobeBannerPattern), + 1041u32 => Some(Item::PiglinBannerPattern), + 1042u32 => Some(Item::Composter), + 1043u32 => Some(Item::Barrel), + 1044u32 => Some(Item::Smoker), + 1045u32 => Some(Item::BlastFurnace), + 1046u32 => Some(Item::CartographyTable), + 1047u32 => Some(Item::FletchingTable), + 1048u32 => Some(Item::Grindstone), + 1049u32 => Some(Item::SmithingTable), + 1050u32 => Some(Item::Stonecutter), + 1051u32 => Some(Item::Bell), + 1052u32 => Some(Item::Lantern), + 1053u32 => Some(Item::SoulLantern), + 1054u32 => Some(Item::SweetBerries), + 1055u32 => Some(Item::GlowBerries), + 1056u32 => Some(Item::Campfire), + 1057u32 => Some(Item::SoulCampfire), + 1058u32 => Some(Item::Shroomlight), + 1059u32 => Some(Item::Honeycomb), + 1060u32 => Some(Item::BeeNest), + 1061u32 => Some(Item::Beehive), + 1062u32 => Some(Item::HoneyBottle), + 1063u32 => Some(Item::HoneycombBlock), + 1064u32 => Some(Item::Lodestone), + 1065u32 => Some(Item::CryingObsidian), + 1066u32 => Some(Item::Blackstone), + 1067u32 => Some(Item::BlackstoneSlab), + 1068u32 => Some(Item::BlackstoneStairs), + 1069u32 => Some(Item::GildedBlackstone), + 1070u32 => Some(Item::PolishedBlackstone), + 1071u32 => Some(Item::PolishedBlackstoneSlab), + 1072u32 => Some(Item::PolishedBlackstoneStairs), + 1073u32 => Some(Item::ChiseledPolishedBlackstone), + 1074u32 => Some(Item::PolishedBlackstoneBricks), + 1075u32 => Some(Item::PolishedBlackstoneBrickSlab), + 1076u32 => Some(Item::PolishedBlackstoneBrickStairs), + 1077u32 => Some(Item::CrackedPolishedBlackstoneBricks), + 1078u32 => Some(Item::RespawnAnchor), + 1079u32 => Some(Item::Candle), + 1080u32 => Some(Item::WhiteCandle), + 1081u32 => Some(Item::OrangeCandle), + 1082u32 => Some(Item::MagentaCandle), + 1083u32 => Some(Item::LightBlueCandle), + 1084u32 => Some(Item::YellowCandle), + 1085u32 => Some(Item::LimeCandle), + 1086u32 => Some(Item::PinkCandle), + 1087u32 => Some(Item::GrayCandle), + 1088u32 => Some(Item::LightGrayCandle), + 1089u32 => Some(Item::CyanCandle), + 1090u32 => Some(Item::PurpleCandle), + 1091u32 => Some(Item::BlueCandle), + 1092u32 => Some(Item::BrownCandle), + 1093u32 => Some(Item::GreenCandle), + 1094u32 => Some(Item::RedCandle), + 1095u32 => Some(Item::BlackCandle), + 1096u32 => Some(Item::SmallAmethystBud), + 1097u32 => Some(Item::MediumAmethystBud), + 1098u32 => Some(Item::LargeAmethystBud), + 1099u32 => Some(Item::AmethystCluster), + 1100u32 => Some(Item::PointedDripstone), _ => None, } } @@ -8882,1106 +8882,1106 @@ impl Item { #[inline] pub fn stack_size(&self) -> u32 { match self { - Item::Stone => 64, - Item::Granite => 64, - Item::PolishedGranite => 64, - Item::Diorite => 64, - Item::PolishedDiorite => 64, - Item::Andesite => 64, - Item::PolishedAndesite => 64, - Item::Deepslate => 64, - Item::CobbledDeepslate => 64, - Item::PolishedDeepslate => 64, - Item::Calcite => 64, - Item::Tuff => 64, - Item::DripstoneBlock => 64, - Item::GrassBlock => 64, - Item::Dirt => 64, - Item::CoarseDirt => 64, - Item::Podzol => 64, - Item::RootedDirt => 64, - Item::CrimsonNylium => 64, - Item::WarpedNylium => 64, - Item::Cobblestone => 64, - Item::OakPlanks => 64, - Item::SprucePlanks => 64, - Item::BirchPlanks => 64, - Item::JunglePlanks => 64, - Item::AcaciaPlanks => 64, - Item::DarkOakPlanks => 64, - Item::CrimsonPlanks => 64, - Item::WarpedPlanks => 64, - Item::OakSapling => 64, - Item::SpruceSapling => 64, - Item::BirchSapling => 64, - Item::JungleSapling => 64, - Item::AcaciaSapling => 64, - Item::DarkOakSapling => 64, - Item::Bedrock => 64, - Item::Sand => 64, - Item::RedSand => 64, - Item::Gravel => 64, - Item::CoalOre => 64, - Item::DeepslateCoalOre => 64, - Item::IronOre => 64, - Item::DeepslateIronOre => 64, - Item::CopperOre => 64, - Item::DeepslateCopperOre => 64, - Item::GoldOre => 64, - Item::DeepslateGoldOre => 64, - Item::RedstoneOre => 64, - Item::DeepslateRedstoneOre => 64, - Item::EmeraldOre => 64, - Item::DeepslateEmeraldOre => 64, - Item::LapisOre => 64, - Item::DeepslateLapisOre => 64, - Item::DiamondOre => 64, - Item::DeepslateDiamondOre => 64, - Item::NetherGoldOre => 64, - Item::NetherQuartzOre => 64, - Item::AncientDebris => 64, - Item::CoalBlock => 64, - Item::RawIronBlock => 64, - Item::RawCopperBlock => 64, - Item::RawGoldBlock => 64, - Item::AmethystBlock => 64, - Item::BuddingAmethyst => 64, - Item::IronBlock => 64, - Item::CopperBlock => 64, - Item::GoldBlock => 64, - Item::DiamondBlock => 64, - Item::NetheriteBlock => 64, - Item::ExposedCopper => 64, - Item::WeatheredCopper => 64, - Item::OxidizedCopper => 64, - Item::CutCopper => 64, - Item::ExposedCutCopper => 64, - Item::WeatheredCutCopper => 64, - Item::OxidizedCutCopper => 64, - Item::CutCopperStairs => 64, - Item::ExposedCutCopperStairs => 64, - Item::WeatheredCutCopperStairs => 64, - Item::OxidizedCutCopperStairs => 64, - Item::CutCopperSlab => 64, - Item::ExposedCutCopperSlab => 64, - Item::WeatheredCutCopperSlab => 64, - Item::OxidizedCutCopperSlab => 64, - Item::WaxedCopperBlock => 64, - Item::WaxedExposedCopper => 64, - Item::WaxedWeatheredCopper => 64, - Item::WaxedOxidizedCopper => 64, - Item::WaxedCutCopper => 64, - Item::WaxedExposedCutCopper => 64, - Item::WaxedWeatheredCutCopper => 64, - Item::WaxedOxidizedCutCopper => 64, - Item::WaxedCutCopperStairs => 64, - Item::WaxedExposedCutCopperStairs => 64, - Item::WaxedWeatheredCutCopperStairs => 64, - Item::WaxedOxidizedCutCopperStairs => 64, - Item::WaxedCutCopperSlab => 64, - Item::WaxedExposedCutCopperSlab => 64, - Item::WaxedWeatheredCutCopperSlab => 64, - Item::WaxedOxidizedCutCopperSlab => 64, - Item::OakLog => 64, - Item::SpruceLog => 64, - Item::BirchLog => 64, - Item::JungleLog => 64, - Item::AcaciaLog => 64, - Item::DarkOakLog => 64, - Item::CrimsonStem => 64, - Item::WarpedStem => 64, - Item::StrippedOakLog => 64, - Item::StrippedSpruceLog => 64, - Item::StrippedBirchLog => 64, - Item::StrippedJungleLog => 64, - Item::StrippedAcaciaLog => 64, - Item::StrippedDarkOakLog => 64, - Item::StrippedCrimsonStem => 64, - Item::StrippedWarpedStem => 64, - Item::StrippedOakWood => 64, - Item::StrippedSpruceWood => 64, - Item::StrippedBirchWood => 64, - Item::StrippedJungleWood => 64, - Item::StrippedAcaciaWood => 64, - Item::StrippedDarkOakWood => 64, - Item::StrippedCrimsonHyphae => 64, - Item::StrippedWarpedHyphae => 64, - Item::OakWood => 64, - Item::SpruceWood => 64, - Item::BirchWood => 64, - Item::JungleWood => 64, - Item::AcaciaWood => 64, - Item::DarkOakWood => 64, - Item::CrimsonHyphae => 64, - Item::WarpedHyphae => 64, - Item::OakLeaves => 64, - Item::SpruceLeaves => 64, - Item::BirchLeaves => 64, - Item::JungleLeaves => 64, - Item::AcaciaLeaves => 64, - Item::DarkOakLeaves => 64, - Item::AzaleaLeaves => 64, - Item::FloweringAzaleaLeaves => 64, - Item::Sponge => 64, - Item::WetSponge => 64, - Item::Glass => 64, - Item::TintedGlass => 64, - Item::LapisBlock => 64, - Item::Sandstone => 64, - Item::ChiseledSandstone => 64, - Item::CutSandstone => 64, - Item::Cobweb => 64, - Item::Grass => 64, - Item::Fern => 64, - Item::Azalea => 64, - Item::FloweringAzalea => 64, - Item::DeadBush => 64, - Item::Seagrass => 64, - Item::SeaPickle => 64, - Item::WhiteWool => 64, - Item::OrangeWool => 64, - Item::MagentaWool => 64, - Item::LightBlueWool => 64, - Item::YellowWool => 64, - Item::LimeWool => 64, - Item::PinkWool => 64, - Item::GrayWool => 64, - Item::LightGrayWool => 64, - Item::CyanWool => 64, - Item::PurpleWool => 64, - Item::BlueWool => 64, - Item::BrownWool => 64, - Item::GreenWool => 64, - Item::RedWool => 64, - Item::BlackWool => 64, - Item::Dandelion => 64, - Item::Poppy => 64, - Item::BlueOrchid => 64, - Item::Allium => 64, - Item::AzureBluet => 64, - Item::RedTulip => 64, - Item::OrangeTulip => 64, - Item::WhiteTulip => 64, - Item::PinkTulip => 64, - Item::OxeyeDaisy => 64, - Item::Cornflower => 64, - Item::LilyOfTheValley => 64, - Item::WitherRose => 64, - Item::SporeBlossom => 64, - Item::BrownMushroom => 64, - Item::RedMushroom => 64, - Item::CrimsonFungus => 64, - Item::WarpedFungus => 64, - Item::CrimsonRoots => 64, - Item::WarpedRoots => 64, - Item::NetherSprouts => 64, - Item::WeepingVines => 64, - Item::TwistingVines => 64, - Item::SugarCane => 64, - Item::Kelp => 64, - Item::MossCarpet => 64, - Item::MossBlock => 64, - Item::HangingRoots => 64, - Item::BigDripleaf => 64, - Item::SmallDripleaf => 64, - Item::Bamboo => 64, - Item::OakSlab => 64, - Item::SpruceSlab => 64, - Item::BirchSlab => 64, - Item::JungleSlab => 64, - Item::AcaciaSlab => 64, - Item::DarkOakSlab => 64, - Item::CrimsonSlab => 64, - Item::WarpedSlab => 64, - Item::StoneSlab => 64, - Item::SmoothStoneSlab => 64, - Item::SandstoneSlab => 64, - Item::CutSandstoneSlab => 64, - Item::PetrifiedOakSlab => 64, - Item::CobblestoneSlab => 64, - Item::BrickSlab => 64, - Item::StoneBrickSlab => 64, - Item::NetherBrickSlab => 64, - Item::QuartzSlab => 64, - Item::RedSandstoneSlab => 64, - Item::CutRedSandstoneSlab => 64, - Item::PurpurSlab => 64, - Item::PrismarineSlab => 64, - Item::PrismarineBrickSlab => 64, - Item::DarkPrismarineSlab => 64, - Item::SmoothQuartz => 64, - Item::SmoothRedSandstone => 64, - Item::SmoothSandstone => 64, - Item::SmoothStone => 64, - Item::Bricks => 64, - Item::Bookshelf => 64, - Item::MossyCobblestone => 64, - Item::Obsidian => 64, - Item::Torch => 64, - Item::EndRod => 64, - Item::ChorusPlant => 64, - Item::ChorusFlower => 64, - Item::PurpurBlock => 64, - Item::PurpurPillar => 64, - Item::PurpurStairs => 64, - Item::Spawner => 64, - Item::OakStairs => 64, - Item::Chest => 64, - Item::CraftingTable => 64, - Item::Farmland => 64, - Item::Furnace => 64, - Item::Ladder => 64, - Item::CobblestoneStairs => 64, - Item::Snow => 64, - Item::Ice => 64, - Item::SnowBlock => 64, - Item::Cactus => 64, - Item::Clay => 64, - Item::Jukebox => 64, - Item::OakFence => 64, - Item::SpruceFence => 64, - Item::BirchFence => 64, - Item::JungleFence => 64, - Item::AcaciaFence => 64, - Item::DarkOakFence => 64, - Item::CrimsonFence => 64, - Item::WarpedFence => 64, - Item::Pumpkin => 64, - Item::CarvedPumpkin => 64, - Item::JackOLantern => 64, - Item::Netherrack => 64, - Item::SoulSand => 64, - Item::SoulSoil => 64, - Item::Basalt => 64, - Item::PolishedBasalt => 64, - Item::SmoothBasalt => 64, - Item::SoulTorch => 64, - Item::Glowstone => 64, - Item::InfestedStone => 64, - Item::InfestedCobblestone => 64, - Item::InfestedStoneBricks => 64, - Item::InfestedMossyStoneBricks => 64, - Item::InfestedCrackedStoneBricks => 64, - Item::InfestedChiseledStoneBricks => 64, - Item::InfestedDeepslate => 64, - Item::StoneBricks => 64, - Item::MossyStoneBricks => 64, - Item::CrackedStoneBricks => 64, - Item::ChiseledStoneBricks => 64, - Item::DeepslateBricks => 64, - Item::CrackedDeepslateBricks => 64, - Item::DeepslateTiles => 64, - Item::CrackedDeepslateTiles => 64, - Item::ChiseledDeepslate => 64, - Item::BrownMushroomBlock => 64, - Item::RedMushroomBlock => 64, - Item::MushroomStem => 64, - Item::IronBars => 64, - Item::Chain => 64, - Item::GlassPane => 64, - Item::Melon => 64, - Item::Vine => 64, - Item::GlowLichen => 64, - Item::BrickStairs => 64, - Item::StoneBrickStairs => 64, - Item::Mycelium => 64, - Item::LilyPad => 64, - Item::NetherBricks => 64, - Item::CrackedNetherBricks => 64, - Item::ChiseledNetherBricks => 64, - Item::NetherBrickFence => 64, - Item::NetherBrickStairs => 64, - Item::EnchantingTable => 64, - Item::EndPortalFrame => 64, - Item::EndStone => 64, - Item::EndStoneBricks => 64, - Item::DragonEgg => 64, - Item::SandstoneStairs => 64, - Item::EnderChest => 64, - Item::EmeraldBlock => 64, - Item::SpruceStairs => 64, - Item::BirchStairs => 64, - Item::JungleStairs => 64, - Item::CrimsonStairs => 64, - Item::WarpedStairs => 64, - Item::CommandBlock => 64, - Item::Beacon => 64, - Item::CobblestoneWall => 64, - Item::MossyCobblestoneWall => 64, - Item::BrickWall => 64, - Item::PrismarineWall => 64, - Item::RedSandstoneWall => 64, - Item::MossyStoneBrickWall => 64, - Item::GraniteWall => 64, - Item::StoneBrickWall => 64, - Item::NetherBrickWall => 64, - Item::AndesiteWall => 64, - Item::RedNetherBrickWall => 64, - Item::SandstoneWall => 64, - Item::EndStoneBrickWall => 64, - Item::DioriteWall => 64, - Item::BlackstoneWall => 64, - Item::PolishedBlackstoneWall => 64, - Item::PolishedBlackstoneBrickWall => 64, - Item::CobbledDeepslateWall => 64, - Item::PolishedDeepslateWall => 64, - Item::DeepslateBrickWall => 64, - Item::DeepslateTileWall => 64, - Item::Anvil => 64, - Item::ChippedAnvil => 64, - Item::DamagedAnvil => 64, - Item::ChiseledQuartzBlock => 64, - Item::QuartzBlock => 64, - Item::QuartzBricks => 64, - Item::QuartzPillar => 64, - Item::QuartzStairs => 64, - Item::WhiteTerracotta => 64, - Item::OrangeTerracotta => 64, - Item::MagentaTerracotta => 64, - Item::LightBlueTerracotta => 64, - Item::YellowTerracotta => 64, - Item::LimeTerracotta => 64, - Item::PinkTerracotta => 64, - Item::GrayTerracotta => 64, - Item::LightGrayTerracotta => 64, - Item::CyanTerracotta => 64, - Item::PurpleTerracotta => 64, - Item::BlueTerracotta => 64, - Item::BrownTerracotta => 64, - Item::GreenTerracotta => 64, - Item::RedTerracotta => 64, - Item::BlackTerracotta => 64, - Item::Barrier => 64, - Item::Light => 64, - Item::HayBlock => 64, - Item::WhiteCarpet => 64, - Item::OrangeCarpet => 64, - Item::MagentaCarpet => 64, - Item::LightBlueCarpet => 64, - Item::YellowCarpet => 64, - Item::LimeCarpet => 64, - Item::PinkCarpet => 64, - Item::GrayCarpet => 64, - Item::LightGrayCarpet => 64, - Item::CyanCarpet => 64, - Item::PurpleCarpet => 64, - Item::BlueCarpet => 64, - Item::BrownCarpet => 64, - Item::GreenCarpet => 64, - Item::RedCarpet => 64, - Item::BlackCarpet => 64, - Item::Terracotta => 64, - Item::PackedIce => 64, - Item::AcaciaStairs => 64, - Item::DarkOakStairs => 64, - Item::DirtPath => 64, - Item::Sunflower => 64, - Item::Lilac => 64, - Item::RoseBush => 64, - Item::Peony => 64, - Item::TallGrass => 64, - Item::LargeFern => 64, - Item::WhiteStainedGlass => 64, - Item::OrangeStainedGlass => 64, - Item::MagentaStainedGlass => 64, - Item::LightBlueStainedGlass => 64, - Item::YellowStainedGlass => 64, - Item::LimeStainedGlass => 64, - Item::PinkStainedGlass => 64, - Item::GrayStainedGlass => 64, - Item::LightGrayStainedGlass => 64, - Item::CyanStainedGlass => 64, - Item::PurpleStainedGlass => 64, - Item::BlueStainedGlass => 64, - Item::BrownStainedGlass => 64, - Item::GreenStainedGlass => 64, - Item::RedStainedGlass => 64, - Item::BlackStainedGlass => 64, - Item::WhiteStainedGlassPane => 64, - Item::OrangeStainedGlassPane => 64, - Item::MagentaStainedGlassPane => 64, - Item::LightBlueStainedGlassPane => 64, - Item::YellowStainedGlassPane => 64, - Item::LimeStainedGlassPane => 64, - Item::PinkStainedGlassPane => 64, - Item::GrayStainedGlassPane => 64, - Item::LightGrayStainedGlassPane => 64, - Item::CyanStainedGlassPane => 64, - Item::PurpleStainedGlassPane => 64, - Item::BlueStainedGlassPane => 64, - Item::BrownStainedGlassPane => 64, - Item::GreenStainedGlassPane => 64, - Item::RedStainedGlassPane => 64, - Item::BlackStainedGlassPane => 64, - Item::Prismarine => 64, - Item::PrismarineBricks => 64, - Item::DarkPrismarine => 64, - Item::PrismarineStairs => 64, - Item::PrismarineBrickStairs => 64, - Item::DarkPrismarineStairs => 64, - Item::SeaLantern => 64, - Item::RedSandstone => 64, - Item::ChiseledRedSandstone => 64, - Item::CutRedSandstone => 64, - Item::RedSandstoneStairs => 64, - Item::RepeatingCommandBlock => 64, - Item::ChainCommandBlock => 64, - Item::MagmaBlock => 64, - Item::NetherWartBlock => 64, - Item::WarpedWartBlock => 64, - Item::RedNetherBricks => 64, - Item::BoneBlock => 64, - Item::StructureVoid => 64, - Item::ShulkerBox => 1, - Item::WhiteShulkerBox => 1, - Item::OrangeShulkerBox => 1, - Item::MagentaShulkerBox => 1, - Item::LightBlueShulkerBox => 1, - Item::YellowShulkerBox => 1, - Item::LimeShulkerBox => 1, - Item::PinkShulkerBox => 1, - Item::GrayShulkerBox => 1, - Item::LightGrayShulkerBox => 1, - Item::CyanShulkerBox => 1, - Item::PurpleShulkerBox => 1, - Item::BlueShulkerBox => 1, - Item::BrownShulkerBox => 1, - Item::GreenShulkerBox => 1, - Item::RedShulkerBox => 1, - Item::BlackShulkerBox => 1, - Item::WhiteGlazedTerracotta => 64, - Item::OrangeGlazedTerracotta => 64, - Item::MagentaGlazedTerracotta => 64, - Item::LightBlueGlazedTerracotta => 64, - Item::YellowGlazedTerracotta => 64, - Item::LimeGlazedTerracotta => 64, - Item::PinkGlazedTerracotta => 64, - Item::GrayGlazedTerracotta => 64, - Item::LightGrayGlazedTerracotta => 64, - Item::CyanGlazedTerracotta => 64, - Item::PurpleGlazedTerracotta => 64, - Item::BlueGlazedTerracotta => 64, - Item::BrownGlazedTerracotta => 64, - Item::GreenGlazedTerracotta => 64, - Item::RedGlazedTerracotta => 64, - Item::BlackGlazedTerracotta => 64, - Item::WhiteConcrete => 64, - Item::OrangeConcrete => 64, - Item::MagentaConcrete => 64, - Item::LightBlueConcrete => 64, - Item::YellowConcrete => 64, - Item::LimeConcrete => 64, - Item::PinkConcrete => 64, - Item::GrayConcrete => 64, - Item::LightGrayConcrete => 64, - Item::CyanConcrete => 64, - Item::PurpleConcrete => 64, - Item::BlueConcrete => 64, - Item::BrownConcrete => 64, - Item::GreenConcrete => 64, - Item::RedConcrete => 64, - Item::BlackConcrete => 64, - Item::WhiteConcretePowder => 64, - Item::OrangeConcretePowder => 64, - Item::MagentaConcretePowder => 64, - Item::LightBlueConcretePowder => 64, - Item::YellowConcretePowder => 64, - Item::LimeConcretePowder => 64, - Item::PinkConcretePowder => 64, - Item::GrayConcretePowder => 64, - Item::LightGrayConcretePowder => 64, - Item::CyanConcretePowder => 64, - Item::PurpleConcretePowder => 64, - Item::BlueConcretePowder => 64, - Item::BrownConcretePowder => 64, - Item::GreenConcretePowder => 64, - Item::RedConcretePowder => 64, - Item::BlackConcretePowder => 64, - Item::TurtleEgg => 64, - Item::DeadTubeCoralBlock => 64, - Item::DeadBrainCoralBlock => 64, - Item::DeadBubbleCoralBlock => 64, - Item::DeadFireCoralBlock => 64, - Item::DeadHornCoralBlock => 64, - Item::TubeCoralBlock => 64, - Item::BrainCoralBlock => 64, - Item::BubbleCoralBlock => 64, - Item::FireCoralBlock => 64, - Item::HornCoralBlock => 64, - Item::TubeCoral => 64, - Item::BrainCoral => 64, - Item::BubbleCoral => 64, - Item::FireCoral => 64, - Item::HornCoral => 64, - Item::DeadBrainCoral => 64, - Item::DeadBubbleCoral => 64, - Item::DeadFireCoral => 64, - Item::DeadHornCoral => 64, - Item::DeadTubeCoral => 64, - Item::TubeCoralFan => 64, - Item::BrainCoralFan => 64, - Item::BubbleCoralFan => 64, - Item::FireCoralFan => 64, - Item::HornCoralFan => 64, - Item::DeadTubeCoralFan => 64, - Item::DeadBrainCoralFan => 64, - Item::DeadBubbleCoralFan => 64, - Item::DeadFireCoralFan => 64, - Item::DeadHornCoralFan => 64, - Item::BlueIce => 64, - Item::Conduit => 64, - Item::PolishedGraniteStairs => 64, - Item::SmoothRedSandstoneStairs => 64, - Item::MossyStoneBrickStairs => 64, - Item::PolishedDioriteStairs => 64, - Item::MossyCobblestoneStairs => 64, - Item::EndStoneBrickStairs => 64, - Item::StoneStairs => 64, - Item::SmoothSandstoneStairs => 64, - Item::SmoothQuartzStairs => 64, - Item::GraniteStairs => 64, - Item::AndesiteStairs => 64, - Item::RedNetherBrickStairs => 64, - Item::PolishedAndesiteStairs => 64, - Item::DioriteStairs => 64, - Item::CobbledDeepslateStairs => 64, - Item::PolishedDeepslateStairs => 64, - Item::DeepslateBrickStairs => 64, - Item::DeepslateTileStairs => 64, - Item::PolishedGraniteSlab => 64, - Item::SmoothRedSandstoneSlab => 64, - Item::MossyStoneBrickSlab => 64, - Item::PolishedDioriteSlab => 64, - Item::MossyCobblestoneSlab => 64, - Item::EndStoneBrickSlab => 64, - Item::SmoothSandstoneSlab => 64, - Item::SmoothQuartzSlab => 64, - Item::GraniteSlab => 64, - Item::AndesiteSlab => 64, - Item::RedNetherBrickSlab => 64, - Item::PolishedAndesiteSlab => 64, - Item::DioriteSlab => 64, - Item::CobbledDeepslateSlab => 64, - Item::PolishedDeepslateSlab => 64, - Item::DeepslateBrickSlab => 64, - Item::DeepslateTileSlab => 64, - Item::Scaffolding => 64, - Item::Redstone => 64, - Item::RedstoneTorch => 64, - Item::RedstoneBlock => 64, - Item::Repeater => 64, - Item::Comparator => 64, - Item::Piston => 64, - Item::StickyPiston => 64, - Item::SlimeBlock => 64, - Item::HoneyBlock => 64, - Item::Observer => 64, - Item::Hopper => 64, - Item::Dispenser => 64, - Item::Dropper => 64, - Item::Lectern => 64, - Item::Target => 64, - Item::Lever => 64, - Item::LightningRod => 64, - Item::DaylightDetector => 64, - Item::SculkSensor => 64, - Item::TripwireHook => 64, - Item::TrappedChest => 64, - Item::Tnt => 64, - Item::RedstoneLamp => 64, - Item::NoteBlock => 64, - Item::StoneButton => 64, - Item::PolishedBlackstoneButton => 64, - Item::OakButton => 64, - Item::SpruceButton => 64, - Item::BirchButton => 64, - Item::JungleButton => 64, - Item::AcaciaButton => 64, - Item::DarkOakButton => 64, - Item::CrimsonButton => 64, - Item::WarpedButton => 64, - Item::StonePressurePlate => 64, - Item::PolishedBlackstonePressurePlate => 64, - Item::LightWeightedPressurePlate => 64, - Item::HeavyWeightedPressurePlate => 64, - Item::OakPressurePlate => 64, - Item::SprucePressurePlate => 64, - Item::BirchPressurePlate => 64, - Item::JunglePressurePlate => 64, - Item::AcaciaPressurePlate => 64, - Item::DarkOakPressurePlate => 64, - Item::CrimsonPressurePlate => 64, - Item::WarpedPressurePlate => 64, - Item::IronDoor => 64, - Item::OakDoor => 64, - Item::SpruceDoor => 64, - Item::BirchDoor => 64, - Item::JungleDoor => 64, - Item::AcaciaDoor => 64, - Item::DarkOakDoor => 64, - Item::CrimsonDoor => 64, - Item::WarpedDoor => 64, - Item::IronTrapdoor => 64, - Item::OakTrapdoor => 64, - Item::SpruceTrapdoor => 64, - Item::BirchTrapdoor => 64, - Item::JungleTrapdoor => 64, - Item::AcaciaTrapdoor => 64, - Item::DarkOakTrapdoor => 64, - Item::CrimsonTrapdoor => 64, - Item::WarpedTrapdoor => 64, - Item::OakFenceGate => 64, - Item::SpruceFenceGate => 64, - Item::BirchFenceGate => 64, - Item::JungleFenceGate => 64, - Item::AcaciaFenceGate => 64, - Item::DarkOakFenceGate => 64, - Item::CrimsonFenceGate => 64, - Item::WarpedFenceGate => 64, - Item::PoweredRail => 64, - Item::DetectorRail => 64, - Item::Rail => 64, - Item::ActivatorRail => 64, - Item::Saddle => 1, - Item::Minecart => 1, - Item::ChestMinecart => 1, - Item::FurnaceMinecart => 1, - Item::TntMinecart => 1, - Item::HopperMinecart => 1, - Item::CarrotOnAStick => 1, - Item::WarpedFungusOnAStick => 64, - Item::Elytra => 1, - Item::OakBoat => 1, - Item::SpruceBoat => 1, - Item::BirchBoat => 1, - Item::JungleBoat => 1, - Item::AcaciaBoat => 1, - Item::DarkOakBoat => 1, - Item::StructureBlock => 64, - Item::Jigsaw => 64, - Item::TurtleHelmet => 1, - Item::Scute => 64, - Item::FlintAndSteel => 1, - Item::Apple => 64, - Item::Bow => 1, - Item::Arrow => 64, - Item::Coal => 64, - Item::Charcoal => 64, - Item::Diamond => 64, - Item::Emerald => 64, - Item::LapisLazuli => 64, - Item::Quartz => 64, - Item::AmethystShard => 64, - Item::RawIron => 64, - Item::IronIngot => 64, - Item::RawCopper => 64, - Item::CopperIngot => 64, - Item::RawGold => 64, - Item::GoldIngot => 64, - Item::NetheriteIngot => 64, - Item::NetheriteScrap => 64, - Item::WoodenSword => 1, - Item::WoodenShovel => 1, - Item::WoodenPickaxe => 1, - Item::WoodenAxe => 1, - Item::WoodenHoe => 1, - Item::StoneSword => 1, - Item::StoneShovel => 1, - Item::StonePickaxe => 1, - Item::StoneAxe => 1, - Item::StoneHoe => 1, - Item::GoldenSword => 1, - Item::GoldenShovel => 1, - Item::GoldenPickaxe => 1, - Item::GoldenAxe => 1, - Item::GoldenHoe => 1, - Item::IronSword => 1, - Item::IronShovel => 1, - Item::IronPickaxe => 1, - Item::IronAxe => 1, - Item::IronHoe => 1, - Item::DiamondSword => 1, - Item::DiamondShovel => 1, - Item::DiamondPickaxe => 1, - Item::DiamondAxe => 1, - Item::DiamondHoe => 1, - Item::NetheriteSword => 1, - Item::NetheriteShovel => 1, - Item::NetheritePickaxe => 1, - Item::NetheriteAxe => 1, - Item::NetheriteHoe => 1, - Item::Stick => 64, - Item::Bowl => 64, - Item::MushroomStew => 1, - Item::String => 64, - Item::Feather => 64, - Item::Gunpowder => 64, - Item::WheatSeeds => 64, - Item::Wheat => 64, - Item::Bread => 64, - Item::LeatherHelmet => 1, - Item::LeatherChestplate => 1, - Item::LeatherLeggings => 1, - Item::LeatherBoots => 1, - Item::ChainmailHelmet => 1, - Item::ChainmailChestplate => 1, - Item::ChainmailLeggings => 1, - Item::ChainmailBoots => 1, - Item::IronHelmet => 1, - Item::IronChestplate => 1, - Item::IronLeggings => 1, - Item::IronBoots => 1, - Item::DiamondHelmet => 1, - Item::DiamondChestplate => 1, - Item::DiamondLeggings => 1, - Item::DiamondBoots => 1, - Item::GoldenHelmet => 1, - Item::GoldenChestplate => 1, - Item::GoldenLeggings => 1, - Item::GoldenBoots => 1, - Item::NetheriteHelmet => 1, - Item::NetheriteChestplate => 1, - Item::NetheriteLeggings => 1, - Item::NetheriteBoots => 1, - Item::Flint => 64, - Item::Porkchop => 64, - Item::CookedPorkchop => 64, - Item::Painting => 64, - Item::GoldenApple => 64, - Item::EnchantedGoldenApple => 64, - Item::OakSign => 16, - Item::SpruceSign => 16, - Item::BirchSign => 16, - Item::JungleSign => 16, - Item::AcaciaSign => 16, - Item::DarkOakSign => 16, - Item::CrimsonSign => 16, - Item::WarpedSign => 16, - Item::Bucket => 16, - Item::WaterBucket => 1, - Item::LavaBucket => 1, - Item::PowderSnowBucket => 1, - Item::Snowball => 16, - Item::Leather => 64, - Item::MilkBucket => 1, - Item::PufferfishBucket => 1, - Item::SalmonBucket => 1, - Item::CodBucket => 1, - Item::TropicalFishBucket => 1, - Item::AxolotlBucket => 1, - Item::Brick => 64, - Item::ClayBall => 64, - Item::DriedKelpBlock => 64, - Item::Paper => 64, - Item::Book => 64, - Item::SlimeBall => 64, - Item::Egg => 16, - Item::Compass => 64, - Item::Bundle => 1, - Item::FishingRod => 1, - Item::Clock => 64, - Item::Spyglass => 1, - Item::GlowstoneDust => 64, - Item::Cod => 64, - Item::Salmon => 64, - Item::TropicalFish => 64, - Item::Pufferfish => 64, - Item::CookedCod => 64, - Item::CookedSalmon => 64, - Item::InkSac => 64, - Item::GlowInkSac => 64, - Item::CocoaBeans => 64, - Item::WhiteDye => 64, - Item::OrangeDye => 64, - Item::MagentaDye => 64, - Item::LightBlueDye => 64, - Item::YellowDye => 64, - Item::LimeDye => 64, - Item::PinkDye => 64, - Item::GrayDye => 64, - Item::LightGrayDye => 64, - Item::CyanDye => 64, - Item::PurpleDye => 64, - Item::BlueDye => 64, - Item::BrownDye => 64, - Item::GreenDye => 64, - Item::RedDye => 64, - Item::BlackDye => 64, - Item::BoneMeal => 64, - Item::Bone => 64, - Item::Sugar => 64, - Item::Cake => 1, - Item::WhiteBed => 1, - Item::OrangeBed => 1, - Item::MagentaBed => 1, - Item::LightBlueBed => 1, - Item::YellowBed => 1, - Item::LimeBed => 1, - Item::PinkBed => 1, - Item::GrayBed => 1, - Item::LightGrayBed => 1, - Item::CyanBed => 1, - Item::PurpleBed => 1, - Item::BlueBed => 1, - Item::BrownBed => 1, - Item::GreenBed => 1, - Item::RedBed => 1, - Item::BlackBed => 1, - Item::Cookie => 64, - Item::FilledMap => 64, - Item::Shears => 1, - Item::MelonSlice => 64, - Item::DriedKelp => 64, - Item::PumpkinSeeds => 64, - Item::MelonSeeds => 64, - Item::Beef => 64, - Item::CookedBeef => 64, - Item::Chicken => 64, - Item::CookedChicken => 64, - Item::RottenFlesh => 64, - Item::EnderPearl => 16, - Item::BlazeRod => 64, - Item::GhastTear => 64, - Item::GoldNugget => 64, - Item::NetherWart => 64, - Item::Potion => 1, - Item::GlassBottle => 64, - Item::SpiderEye => 64, - Item::FermentedSpiderEye => 64, - Item::BlazePowder => 64, - Item::MagmaCream => 64, - Item::BrewingStand => 64, - Item::Cauldron => 64, - Item::EnderEye => 64, - Item::GlisteringMelonSlice => 64, - Item::AxolotlSpawnEgg => 64, - Item::BatSpawnEgg => 64, - Item::BeeSpawnEgg => 64, - Item::BlazeSpawnEgg => 64, - Item::CatSpawnEgg => 64, - Item::CaveSpiderSpawnEgg => 64, - Item::ChickenSpawnEgg => 64, - Item::CodSpawnEgg => 64, - Item::CowSpawnEgg => 64, - Item::CreeperSpawnEgg => 64, - Item::DolphinSpawnEgg => 64, - Item::DonkeySpawnEgg => 64, - Item::DrownedSpawnEgg => 64, - Item::ElderGuardianSpawnEgg => 64, - Item::EndermanSpawnEgg => 64, - Item::EndermiteSpawnEgg => 64, - Item::EvokerSpawnEgg => 64, - Item::FoxSpawnEgg => 64, - Item::GhastSpawnEgg => 64, - Item::GlowSquidSpawnEgg => 64, - Item::GoatSpawnEgg => 64, - Item::GuardianSpawnEgg => 64, - Item::HoglinSpawnEgg => 64, - Item::HorseSpawnEgg => 64, - Item::HuskSpawnEgg => 64, - Item::LlamaSpawnEgg => 64, - Item::MagmaCubeSpawnEgg => 64, - Item::MooshroomSpawnEgg => 64, - Item::MuleSpawnEgg => 64, - Item::OcelotSpawnEgg => 64, - Item::PandaSpawnEgg => 64, - Item::ParrotSpawnEgg => 64, - Item::PhantomSpawnEgg => 64, - Item::PigSpawnEgg => 64, - Item::PiglinSpawnEgg => 64, - Item::PiglinBruteSpawnEgg => 64, - Item::PillagerSpawnEgg => 64, - Item::PolarBearSpawnEgg => 64, - Item::PufferfishSpawnEgg => 64, - Item::RabbitSpawnEgg => 64, - Item::RavagerSpawnEgg => 64, - Item::SalmonSpawnEgg => 64, - Item::SheepSpawnEgg => 64, - Item::ShulkerSpawnEgg => 64, - Item::SilverfishSpawnEgg => 64, - Item::SkeletonSpawnEgg => 64, - Item::SkeletonHorseSpawnEgg => 64, - Item::SlimeSpawnEgg => 64, - Item::SpiderSpawnEgg => 64, - Item::SquidSpawnEgg => 64, - Item::StraySpawnEgg => 64, - Item::StriderSpawnEgg => 64, - Item::TraderLlamaSpawnEgg => 64, - Item::TropicalFishSpawnEgg => 64, - Item::TurtleSpawnEgg => 64, - Item::VexSpawnEgg => 64, - Item::VillagerSpawnEgg => 64, - Item::VindicatorSpawnEgg => 64, - Item::WanderingTraderSpawnEgg => 64, - Item::WitchSpawnEgg => 64, - Item::WitherSkeletonSpawnEgg => 64, - Item::WolfSpawnEgg => 64, - Item::ZoglinSpawnEgg => 64, - Item::ZombieSpawnEgg => 64, - Item::ZombieHorseSpawnEgg => 64, - Item::ZombieVillagerSpawnEgg => 64, - Item::ZombifiedPiglinSpawnEgg => 64, - Item::ExperienceBottle => 64, - Item::FireCharge => 64, - Item::WritableBook => 1, - Item::WrittenBook => 16, - Item::ItemFrame => 64, - Item::GlowItemFrame => 64, - Item::FlowerPot => 64, - Item::Carrot => 64, - Item::Potato => 64, - Item::BakedPotato => 64, - Item::PoisonousPotato => 64, - Item::Map => 64, - Item::GoldenCarrot => 64, - Item::SkeletonSkull => 64, - Item::WitherSkeletonSkull => 64, - Item::PlayerHead => 64, - Item::ZombieHead => 64, - Item::CreeperHead => 64, - Item::DragonHead => 64, - Item::NetherStar => 64, - Item::PumpkinPie => 64, - Item::FireworkRocket => 64, - Item::FireworkStar => 64, - Item::EnchantedBook => 1, - Item::NetherBrick => 64, - Item::PrismarineShard => 64, - Item::PrismarineCrystals => 64, - Item::Rabbit => 64, - Item::CookedRabbit => 64, - Item::RabbitStew => 1, - Item::RabbitFoot => 64, - Item::RabbitHide => 64, - Item::ArmorStand => 16, - Item::IronHorseArmor => 1, - Item::GoldenHorseArmor => 1, - Item::DiamondHorseArmor => 1, - Item::LeatherHorseArmor => 1, - Item::Lead => 64, - Item::NameTag => 64, - Item::CommandBlockMinecart => 1, - Item::Mutton => 64, - Item::CookedMutton => 64, - Item::WhiteBanner => 16, - Item::OrangeBanner => 16, - Item::MagentaBanner => 16, - Item::LightBlueBanner => 16, - Item::YellowBanner => 16, - Item::LimeBanner => 16, - Item::PinkBanner => 16, - Item::GrayBanner => 16, - Item::LightGrayBanner => 16, - Item::CyanBanner => 16, - Item::PurpleBanner => 16, - Item::BlueBanner => 16, - Item::BrownBanner => 16, - Item::GreenBanner => 16, - Item::RedBanner => 16, - Item::BlackBanner => 16, - Item::EndCrystal => 64, - Item::ChorusFruit => 64, - Item::PoppedChorusFruit => 64, - Item::Beetroot => 64, - Item::BeetrootSeeds => 64, - Item::BeetrootSoup => 1, - Item::DragonBreath => 64, - Item::SplashPotion => 1, - Item::SpectralArrow => 64, - Item::TippedArrow => 64, - Item::LingeringPotion => 1, - Item::Shield => 1, - Item::TotemOfUndying => 1, - Item::ShulkerShell => 64, - Item::IronNugget => 64, - Item::KnowledgeBook => 1, - Item::DebugStick => 1, - Item::MusicDisc13 => 1, - Item::MusicDiscCat => 1, - Item::MusicDiscBlocks => 1, - Item::MusicDiscChirp => 1, - Item::MusicDiscFar => 1, - Item::MusicDiscMall => 1, - Item::MusicDiscMellohi => 1, - Item::MusicDiscStal => 1, - Item::MusicDiscStrad => 1, - Item::MusicDiscWard => 1, - Item::MusicDisc11 => 1, - Item::MusicDiscWait => 1, - Item::MusicDiscOtherside => 1, - Item::MusicDiscPigstep => 1, - Item::Trident => 1, - Item::PhantomMembrane => 64, - Item::NautilusShell => 64, - Item::HeartOfTheSea => 64, - Item::Crossbow => 1, - Item::SuspiciousStew => 1, - Item::Loom => 64, - Item::FlowerBannerPattern => 1, - Item::CreeperBannerPattern => 1, - Item::SkullBannerPattern => 1, - Item::MojangBannerPattern => 1, - Item::GlobeBannerPattern => 1, - Item::PiglinBannerPattern => 1, - Item::Composter => 64, - Item::Barrel => 64, - Item::Smoker => 64, - Item::BlastFurnace => 64, - Item::CartographyTable => 64, - Item::FletchingTable => 64, - Item::Grindstone => 64, - Item::SmithingTable => 64, - Item::Stonecutter => 64, - Item::Bell => 64, - Item::Lantern => 64, - Item::SoulLantern => 64, - Item::SweetBerries => 64, - Item::GlowBerries => 64, - Item::Campfire => 64, - Item::SoulCampfire => 64, - Item::Shroomlight => 64, - Item::Honeycomb => 64, - Item::BeeNest => 64, - Item::Beehive => 64, - Item::HoneyBottle => 16, - Item::HoneycombBlock => 64, - Item::Lodestone => 64, - Item::CryingObsidian => 64, - Item::Blackstone => 64, - Item::BlackstoneSlab => 64, - Item::BlackstoneStairs => 64, - Item::GildedBlackstone => 64, - Item::PolishedBlackstone => 64, - Item::PolishedBlackstoneSlab => 64, - Item::PolishedBlackstoneStairs => 64, - Item::ChiseledPolishedBlackstone => 64, - Item::PolishedBlackstoneBricks => 64, - Item::PolishedBlackstoneBrickSlab => 64, - Item::PolishedBlackstoneBrickStairs => 64, - Item::CrackedPolishedBlackstoneBricks => 64, - Item::RespawnAnchor => 64, - Item::Candle => 64, - Item::WhiteCandle => 64, - Item::OrangeCandle => 64, - Item::MagentaCandle => 64, - Item::LightBlueCandle => 64, - Item::YellowCandle => 64, - Item::LimeCandle => 64, - Item::PinkCandle => 64, - Item::GrayCandle => 64, - Item::LightGrayCandle => 64, - Item::CyanCandle => 64, - Item::PurpleCandle => 64, - Item::BlueCandle => 64, - Item::BrownCandle => 64, - Item::GreenCandle => 64, - Item::RedCandle => 64, - Item::BlackCandle => 64, - Item::SmallAmethystBud => 64, - Item::MediumAmethystBud => 64, - Item::LargeAmethystBud => 64, - Item::AmethystCluster => 64, - Item::PointedDripstone => 64, + Item::Stone => 64u32, + Item::Granite => 64u32, + Item::PolishedGranite => 64u32, + Item::Diorite => 64u32, + Item::PolishedDiorite => 64u32, + Item::Andesite => 64u32, + Item::PolishedAndesite => 64u32, + Item::Deepslate => 64u32, + Item::CobbledDeepslate => 64u32, + Item::PolishedDeepslate => 64u32, + Item::Calcite => 64u32, + Item::Tuff => 64u32, + Item::DripstoneBlock => 64u32, + Item::GrassBlock => 64u32, + Item::Dirt => 64u32, + Item::CoarseDirt => 64u32, + Item::Podzol => 64u32, + Item::RootedDirt => 64u32, + Item::CrimsonNylium => 64u32, + Item::WarpedNylium => 64u32, + Item::Cobblestone => 64u32, + Item::OakPlanks => 64u32, + Item::SprucePlanks => 64u32, + Item::BirchPlanks => 64u32, + Item::JunglePlanks => 64u32, + Item::AcaciaPlanks => 64u32, + Item::DarkOakPlanks => 64u32, + Item::CrimsonPlanks => 64u32, + Item::WarpedPlanks => 64u32, + Item::OakSapling => 64u32, + Item::SpruceSapling => 64u32, + Item::BirchSapling => 64u32, + Item::JungleSapling => 64u32, + Item::AcaciaSapling => 64u32, + Item::DarkOakSapling => 64u32, + Item::Bedrock => 64u32, + Item::Sand => 64u32, + Item::RedSand => 64u32, + Item::Gravel => 64u32, + Item::CoalOre => 64u32, + Item::DeepslateCoalOre => 64u32, + Item::IronOre => 64u32, + Item::DeepslateIronOre => 64u32, + Item::CopperOre => 64u32, + Item::DeepslateCopperOre => 64u32, + Item::GoldOre => 64u32, + Item::DeepslateGoldOre => 64u32, + Item::RedstoneOre => 64u32, + Item::DeepslateRedstoneOre => 64u32, + Item::EmeraldOre => 64u32, + Item::DeepslateEmeraldOre => 64u32, + Item::LapisOre => 64u32, + Item::DeepslateLapisOre => 64u32, + Item::DiamondOre => 64u32, + Item::DeepslateDiamondOre => 64u32, + Item::NetherGoldOre => 64u32, + Item::NetherQuartzOre => 64u32, + Item::AncientDebris => 64u32, + Item::CoalBlock => 64u32, + Item::RawIronBlock => 64u32, + Item::RawCopperBlock => 64u32, + Item::RawGoldBlock => 64u32, + Item::AmethystBlock => 64u32, + Item::BuddingAmethyst => 64u32, + Item::IronBlock => 64u32, + Item::CopperBlock => 64u32, + Item::GoldBlock => 64u32, + Item::DiamondBlock => 64u32, + Item::NetheriteBlock => 64u32, + Item::ExposedCopper => 64u32, + Item::WeatheredCopper => 64u32, + Item::OxidizedCopper => 64u32, + Item::CutCopper => 64u32, + Item::ExposedCutCopper => 64u32, + Item::WeatheredCutCopper => 64u32, + Item::OxidizedCutCopper => 64u32, + Item::CutCopperStairs => 64u32, + Item::ExposedCutCopperStairs => 64u32, + Item::WeatheredCutCopperStairs => 64u32, + Item::OxidizedCutCopperStairs => 64u32, + Item::CutCopperSlab => 64u32, + Item::ExposedCutCopperSlab => 64u32, + Item::WeatheredCutCopperSlab => 64u32, + Item::OxidizedCutCopperSlab => 64u32, + Item::WaxedCopperBlock => 64u32, + Item::WaxedExposedCopper => 64u32, + Item::WaxedWeatheredCopper => 64u32, + Item::WaxedOxidizedCopper => 64u32, + Item::WaxedCutCopper => 64u32, + Item::WaxedExposedCutCopper => 64u32, + Item::WaxedWeatheredCutCopper => 64u32, + Item::WaxedOxidizedCutCopper => 64u32, + Item::WaxedCutCopperStairs => 64u32, + Item::WaxedExposedCutCopperStairs => 64u32, + Item::WaxedWeatheredCutCopperStairs => 64u32, + Item::WaxedOxidizedCutCopperStairs => 64u32, + Item::WaxedCutCopperSlab => 64u32, + Item::WaxedExposedCutCopperSlab => 64u32, + Item::WaxedWeatheredCutCopperSlab => 64u32, + Item::WaxedOxidizedCutCopperSlab => 64u32, + Item::OakLog => 64u32, + Item::SpruceLog => 64u32, + Item::BirchLog => 64u32, + Item::JungleLog => 64u32, + Item::AcaciaLog => 64u32, + Item::DarkOakLog => 64u32, + Item::CrimsonStem => 64u32, + Item::WarpedStem => 64u32, + Item::StrippedOakLog => 64u32, + Item::StrippedSpruceLog => 64u32, + Item::StrippedBirchLog => 64u32, + Item::StrippedJungleLog => 64u32, + Item::StrippedAcaciaLog => 64u32, + Item::StrippedDarkOakLog => 64u32, + Item::StrippedCrimsonStem => 64u32, + Item::StrippedWarpedStem => 64u32, + Item::StrippedOakWood => 64u32, + Item::StrippedSpruceWood => 64u32, + Item::StrippedBirchWood => 64u32, + Item::StrippedJungleWood => 64u32, + Item::StrippedAcaciaWood => 64u32, + Item::StrippedDarkOakWood => 64u32, + Item::StrippedCrimsonHyphae => 64u32, + Item::StrippedWarpedHyphae => 64u32, + Item::OakWood => 64u32, + Item::SpruceWood => 64u32, + Item::BirchWood => 64u32, + Item::JungleWood => 64u32, + Item::AcaciaWood => 64u32, + Item::DarkOakWood => 64u32, + Item::CrimsonHyphae => 64u32, + Item::WarpedHyphae => 64u32, + Item::OakLeaves => 64u32, + Item::SpruceLeaves => 64u32, + Item::BirchLeaves => 64u32, + Item::JungleLeaves => 64u32, + Item::AcaciaLeaves => 64u32, + Item::DarkOakLeaves => 64u32, + Item::AzaleaLeaves => 64u32, + Item::FloweringAzaleaLeaves => 64u32, + Item::Sponge => 64u32, + Item::WetSponge => 64u32, + Item::Glass => 64u32, + Item::TintedGlass => 64u32, + Item::LapisBlock => 64u32, + Item::Sandstone => 64u32, + Item::ChiseledSandstone => 64u32, + Item::CutSandstone => 64u32, + Item::Cobweb => 64u32, + Item::Grass => 64u32, + Item::Fern => 64u32, + Item::Azalea => 64u32, + Item::FloweringAzalea => 64u32, + Item::DeadBush => 64u32, + Item::Seagrass => 64u32, + Item::SeaPickle => 64u32, + Item::WhiteWool => 64u32, + Item::OrangeWool => 64u32, + Item::MagentaWool => 64u32, + Item::LightBlueWool => 64u32, + Item::YellowWool => 64u32, + Item::LimeWool => 64u32, + Item::PinkWool => 64u32, + Item::GrayWool => 64u32, + Item::LightGrayWool => 64u32, + Item::CyanWool => 64u32, + Item::PurpleWool => 64u32, + Item::BlueWool => 64u32, + Item::BrownWool => 64u32, + Item::GreenWool => 64u32, + Item::RedWool => 64u32, + Item::BlackWool => 64u32, + Item::Dandelion => 64u32, + Item::Poppy => 64u32, + Item::BlueOrchid => 64u32, + Item::Allium => 64u32, + Item::AzureBluet => 64u32, + Item::RedTulip => 64u32, + Item::OrangeTulip => 64u32, + Item::WhiteTulip => 64u32, + Item::PinkTulip => 64u32, + Item::OxeyeDaisy => 64u32, + Item::Cornflower => 64u32, + Item::LilyOfTheValley => 64u32, + Item::WitherRose => 64u32, + Item::SporeBlossom => 64u32, + Item::BrownMushroom => 64u32, + Item::RedMushroom => 64u32, + Item::CrimsonFungus => 64u32, + Item::WarpedFungus => 64u32, + Item::CrimsonRoots => 64u32, + Item::WarpedRoots => 64u32, + Item::NetherSprouts => 64u32, + Item::WeepingVines => 64u32, + Item::TwistingVines => 64u32, + Item::SugarCane => 64u32, + Item::Kelp => 64u32, + Item::MossCarpet => 64u32, + Item::MossBlock => 64u32, + Item::HangingRoots => 64u32, + Item::BigDripleaf => 64u32, + Item::SmallDripleaf => 64u32, + Item::Bamboo => 64u32, + Item::OakSlab => 64u32, + Item::SpruceSlab => 64u32, + Item::BirchSlab => 64u32, + Item::JungleSlab => 64u32, + Item::AcaciaSlab => 64u32, + Item::DarkOakSlab => 64u32, + Item::CrimsonSlab => 64u32, + Item::WarpedSlab => 64u32, + Item::StoneSlab => 64u32, + Item::SmoothStoneSlab => 64u32, + Item::SandstoneSlab => 64u32, + Item::CutSandstoneSlab => 64u32, + Item::PetrifiedOakSlab => 64u32, + Item::CobblestoneSlab => 64u32, + Item::BrickSlab => 64u32, + Item::StoneBrickSlab => 64u32, + Item::NetherBrickSlab => 64u32, + Item::QuartzSlab => 64u32, + Item::RedSandstoneSlab => 64u32, + Item::CutRedSandstoneSlab => 64u32, + Item::PurpurSlab => 64u32, + Item::PrismarineSlab => 64u32, + Item::PrismarineBrickSlab => 64u32, + Item::DarkPrismarineSlab => 64u32, + Item::SmoothQuartz => 64u32, + Item::SmoothRedSandstone => 64u32, + Item::SmoothSandstone => 64u32, + Item::SmoothStone => 64u32, + Item::Bricks => 64u32, + Item::Bookshelf => 64u32, + Item::MossyCobblestone => 64u32, + Item::Obsidian => 64u32, + Item::Torch => 64u32, + Item::EndRod => 64u32, + Item::ChorusPlant => 64u32, + Item::ChorusFlower => 64u32, + Item::PurpurBlock => 64u32, + Item::PurpurPillar => 64u32, + Item::PurpurStairs => 64u32, + Item::Spawner => 64u32, + Item::OakStairs => 64u32, + Item::Chest => 64u32, + Item::CraftingTable => 64u32, + Item::Farmland => 64u32, + Item::Furnace => 64u32, + Item::Ladder => 64u32, + Item::CobblestoneStairs => 64u32, + Item::Snow => 64u32, + Item::Ice => 64u32, + Item::SnowBlock => 64u32, + Item::Cactus => 64u32, + Item::Clay => 64u32, + Item::Jukebox => 64u32, + Item::OakFence => 64u32, + Item::SpruceFence => 64u32, + Item::BirchFence => 64u32, + Item::JungleFence => 64u32, + Item::AcaciaFence => 64u32, + Item::DarkOakFence => 64u32, + Item::CrimsonFence => 64u32, + Item::WarpedFence => 64u32, + Item::Pumpkin => 64u32, + Item::CarvedPumpkin => 64u32, + Item::JackOLantern => 64u32, + Item::Netherrack => 64u32, + Item::SoulSand => 64u32, + Item::SoulSoil => 64u32, + Item::Basalt => 64u32, + Item::PolishedBasalt => 64u32, + Item::SmoothBasalt => 64u32, + Item::SoulTorch => 64u32, + Item::Glowstone => 64u32, + Item::InfestedStone => 64u32, + Item::InfestedCobblestone => 64u32, + Item::InfestedStoneBricks => 64u32, + Item::InfestedMossyStoneBricks => 64u32, + Item::InfestedCrackedStoneBricks => 64u32, + Item::InfestedChiseledStoneBricks => 64u32, + Item::InfestedDeepslate => 64u32, + Item::StoneBricks => 64u32, + Item::MossyStoneBricks => 64u32, + Item::CrackedStoneBricks => 64u32, + Item::ChiseledStoneBricks => 64u32, + Item::DeepslateBricks => 64u32, + Item::CrackedDeepslateBricks => 64u32, + Item::DeepslateTiles => 64u32, + Item::CrackedDeepslateTiles => 64u32, + Item::ChiseledDeepslate => 64u32, + Item::BrownMushroomBlock => 64u32, + Item::RedMushroomBlock => 64u32, + Item::MushroomStem => 64u32, + Item::IronBars => 64u32, + Item::Chain => 64u32, + Item::GlassPane => 64u32, + Item::Melon => 64u32, + Item::Vine => 64u32, + Item::GlowLichen => 64u32, + Item::BrickStairs => 64u32, + Item::StoneBrickStairs => 64u32, + Item::Mycelium => 64u32, + Item::LilyPad => 64u32, + Item::NetherBricks => 64u32, + Item::CrackedNetherBricks => 64u32, + Item::ChiseledNetherBricks => 64u32, + Item::NetherBrickFence => 64u32, + Item::NetherBrickStairs => 64u32, + Item::EnchantingTable => 64u32, + Item::EndPortalFrame => 64u32, + Item::EndStone => 64u32, + Item::EndStoneBricks => 64u32, + Item::DragonEgg => 64u32, + Item::SandstoneStairs => 64u32, + Item::EnderChest => 64u32, + Item::EmeraldBlock => 64u32, + Item::SpruceStairs => 64u32, + Item::BirchStairs => 64u32, + Item::JungleStairs => 64u32, + Item::CrimsonStairs => 64u32, + Item::WarpedStairs => 64u32, + Item::CommandBlock => 64u32, + Item::Beacon => 64u32, + Item::CobblestoneWall => 64u32, + Item::MossyCobblestoneWall => 64u32, + Item::BrickWall => 64u32, + Item::PrismarineWall => 64u32, + Item::RedSandstoneWall => 64u32, + Item::MossyStoneBrickWall => 64u32, + Item::GraniteWall => 64u32, + Item::StoneBrickWall => 64u32, + Item::NetherBrickWall => 64u32, + Item::AndesiteWall => 64u32, + Item::RedNetherBrickWall => 64u32, + Item::SandstoneWall => 64u32, + Item::EndStoneBrickWall => 64u32, + Item::DioriteWall => 64u32, + Item::BlackstoneWall => 64u32, + Item::PolishedBlackstoneWall => 64u32, + Item::PolishedBlackstoneBrickWall => 64u32, + Item::CobbledDeepslateWall => 64u32, + Item::PolishedDeepslateWall => 64u32, + Item::DeepslateBrickWall => 64u32, + Item::DeepslateTileWall => 64u32, + Item::Anvil => 64u32, + Item::ChippedAnvil => 64u32, + Item::DamagedAnvil => 64u32, + Item::ChiseledQuartzBlock => 64u32, + Item::QuartzBlock => 64u32, + Item::QuartzBricks => 64u32, + Item::QuartzPillar => 64u32, + Item::QuartzStairs => 64u32, + Item::WhiteTerracotta => 64u32, + Item::OrangeTerracotta => 64u32, + Item::MagentaTerracotta => 64u32, + Item::LightBlueTerracotta => 64u32, + Item::YellowTerracotta => 64u32, + Item::LimeTerracotta => 64u32, + Item::PinkTerracotta => 64u32, + Item::GrayTerracotta => 64u32, + Item::LightGrayTerracotta => 64u32, + Item::CyanTerracotta => 64u32, + Item::PurpleTerracotta => 64u32, + Item::BlueTerracotta => 64u32, + Item::BrownTerracotta => 64u32, + Item::GreenTerracotta => 64u32, + Item::RedTerracotta => 64u32, + Item::BlackTerracotta => 64u32, + Item::Barrier => 64u32, + Item::Light => 64u32, + Item::HayBlock => 64u32, + Item::WhiteCarpet => 64u32, + Item::OrangeCarpet => 64u32, + Item::MagentaCarpet => 64u32, + Item::LightBlueCarpet => 64u32, + Item::YellowCarpet => 64u32, + Item::LimeCarpet => 64u32, + Item::PinkCarpet => 64u32, + Item::GrayCarpet => 64u32, + Item::LightGrayCarpet => 64u32, + Item::CyanCarpet => 64u32, + Item::PurpleCarpet => 64u32, + Item::BlueCarpet => 64u32, + Item::BrownCarpet => 64u32, + Item::GreenCarpet => 64u32, + Item::RedCarpet => 64u32, + Item::BlackCarpet => 64u32, + Item::Terracotta => 64u32, + Item::PackedIce => 64u32, + Item::AcaciaStairs => 64u32, + Item::DarkOakStairs => 64u32, + Item::DirtPath => 64u32, + Item::Sunflower => 64u32, + Item::Lilac => 64u32, + Item::RoseBush => 64u32, + Item::Peony => 64u32, + Item::TallGrass => 64u32, + Item::LargeFern => 64u32, + Item::WhiteStainedGlass => 64u32, + Item::OrangeStainedGlass => 64u32, + Item::MagentaStainedGlass => 64u32, + Item::LightBlueStainedGlass => 64u32, + Item::YellowStainedGlass => 64u32, + Item::LimeStainedGlass => 64u32, + Item::PinkStainedGlass => 64u32, + Item::GrayStainedGlass => 64u32, + Item::LightGrayStainedGlass => 64u32, + Item::CyanStainedGlass => 64u32, + Item::PurpleStainedGlass => 64u32, + Item::BlueStainedGlass => 64u32, + Item::BrownStainedGlass => 64u32, + Item::GreenStainedGlass => 64u32, + Item::RedStainedGlass => 64u32, + Item::BlackStainedGlass => 64u32, + Item::WhiteStainedGlassPane => 64u32, + Item::OrangeStainedGlassPane => 64u32, + Item::MagentaStainedGlassPane => 64u32, + Item::LightBlueStainedGlassPane => 64u32, + Item::YellowStainedGlassPane => 64u32, + Item::LimeStainedGlassPane => 64u32, + Item::PinkStainedGlassPane => 64u32, + Item::GrayStainedGlassPane => 64u32, + Item::LightGrayStainedGlassPane => 64u32, + Item::CyanStainedGlassPane => 64u32, + Item::PurpleStainedGlassPane => 64u32, + Item::BlueStainedGlassPane => 64u32, + Item::BrownStainedGlassPane => 64u32, + Item::GreenStainedGlassPane => 64u32, + Item::RedStainedGlassPane => 64u32, + Item::BlackStainedGlassPane => 64u32, + Item::Prismarine => 64u32, + Item::PrismarineBricks => 64u32, + Item::DarkPrismarine => 64u32, + Item::PrismarineStairs => 64u32, + Item::PrismarineBrickStairs => 64u32, + Item::DarkPrismarineStairs => 64u32, + Item::SeaLantern => 64u32, + Item::RedSandstone => 64u32, + Item::ChiseledRedSandstone => 64u32, + Item::CutRedSandstone => 64u32, + Item::RedSandstoneStairs => 64u32, + Item::RepeatingCommandBlock => 64u32, + Item::ChainCommandBlock => 64u32, + Item::MagmaBlock => 64u32, + Item::NetherWartBlock => 64u32, + Item::WarpedWartBlock => 64u32, + Item::RedNetherBricks => 64u32, + Item::BoneBlock => 64u32, + Item::StructureVoid => 64u32, + Item::ShulkerBox => 1u32, + Item::WhiteShulkerBox => 1u32, + Item::OrangeShulkerBox => 1u32, + Item::MagentaShulkerBox => 1u32, + Item::LightBlueShulkerBox => 1u32, + Item::YellowShulkerBox => 1u32, + Item::LimeShulkerBox => 1u32, + Item::PinkShulkerBox => 1u32, + Item::GrayShulkerBox => 1u32, + Item::LightGrayShulkerBox => 1u32, + Item::CyanShulkerBox => 1u32, + Item::PurpleShulkerBox => 1u32, + Item::BlueShulkerBox => 1u32, + Item::BrownShulkerBox => 1u32, + Item::GreenShulkerBox => 1u32, + Item::RedShulkerBox => 1u32, + Item::BlackShulkerBox => 1u32, + Item::WhiteGlazedTerracotta => 64u32, + Item::OrangeGlazedTerracotta => 64u32, + Item::MagentaGlazedTerracotta => 64u32, + Item::LightBlueGlazedTerracotta => 64u32, + Item::YellowGlazedTerracotta => 64u32, + Item::LimeGlazedTerracotta => 64u32, + Item::PinkGlazedTerracotta => 64u32, + Item::GrayGlazedTerracotta => 64u32, + Item::LightGrayGlazedTerracotta => 64u32, + Item::CyanGlazedTerracotta => 64u32, + Item::PurpleGlazedTerracotta => 64u32, + Item::BlueGlazedTerracotta => 64u32, + Item::BrownGlazedTerracotta => 64u32, + Item::GreenGlazedTerracotta => 64u32, + Item::RedGlazedTerracotta => 64u32, + Item::BlackGlazedTerracotta => 64u32, + Item::WhiteConcrete => 64u32, + Item::OrangeConcrete => 64u32, + Item::MagentaConcrete => 64u32, + Item::LightBlueConcrete => 64u32, + Item::YellowConcrete => 64u32, + Item::LimeConcrete => 64u32, + Item::PinkConcrete => 64u32, + Item::GrayConcrete => 64u32, + Item::LightGrayConcrete => 64u32, + Item::CyanConcrete => 64u32, + Item::PurpleConcrete => 64u32, + Item::BlueConcrete => 64u32, + Item::BrownConcrete => 64u32, + Item::GreenConcrete => 64u32, + Item::RedConcrete => 64u32, + Item::BlackConcrete => 64u32, + Item::WhiteConcretePowder => 64u32, + Item::OrangeConcretePowder => 64u32, + Item::MagentaConcretePowder => 64u32, + Item::LightBlueConcretePowder => 64u32, + Item::YellowConcretePowder => 64u32, + Item::LimeConcretePowder => 64u32, + Item::PinkConcretePowder => 64u32, + Item::GrayConcretePowder => 64u32, + Item::LightGrayConcretePowder => 64u32, + Item::CyanConcretePowder => 64u32, + Item::PurpleConcretePowder => 64u32, + Item::BlueConcretePowder => 64u32, + Item::BrownConcretePowder => 64u32, + Item::GreenConcretePowder => 64u32, + Item::RedConcretePowder => 64u32, + Item::BlackConcretePowder => 64u32, + Item::TurtleEgg => 64u32, + Item::DeadTubeCoralBlock => 64u32, + Item::DeadBrainCoralBlock => 64u32, + Item::DeadBubbleCoralBlock => 64u32, + Item::DeadFireCoralBlock => 64u32, + Item::DeadHornCoralBlock => 64u32, + Item::TubeCoralBlock => 64u32, + Item::BrainCoralBlock => 64u32, + Item::BubbleCoralBlock => 64u32, + Item::FireCoralBlock => 64u32, + Item::HornCoralBlock => 64u32, + Item::TubeCoral => 64u32, + Item::BrainCoral => 64u32, + Item::BubbleCoral => 64u32, + Item::FireCoral => 64u32, + Item::HornCoral => 64u32, + Item::DeadBrainCoral => 64u32, + Item::DeadBubbleCoral => 64u32, + Item::DeadFireCoral => 64u32, + Item::DeadHornCoral => 64u32, + Item::DeadTubeCoral => 64u32, + Item::TubeCoralFan => 64u32, + Item::BrainCoralFan => 64u32, + Item::BubbleCoralFan => 64u32, + Item::FireCoralFan => 64u32, + Item::HornCoralFan => 64u32, + Item::DeadTubeCoralFan => 64u32, + Item::DeadBrainCoralFan => 64u32, + Item::DeadBubbleCoralFan => 64u32, + Item::DeadFireCoralFan => 64u32, + Item::DeadHornCoralFan => 64u32, + Item::BlueIce => 64u32, + Item::Conduit => 64u32, + Item::PolishedGraniteStairs => 64u32, + Item::SmoothRedSandstoneStairs => 64u32, + Item::MossyStoneBrickStairs => 64u32, + Item::PolishedDioriteStairs => 64u32, + Item::MossyCobblestoneStairs => 64u32, + Item::EndStoneBrickStairs => 64u32, + Item::StoneStairs => 64u32, + Item::SmoothSandstoneStairs => 64u32, + Item::SmoothQuartzStairs => 64u32, + Item::GraniteStairs => 64u32, + Item::AndesiteStairs => 64u32, + Item::RedNetherBrickStairs => 64u32, + Item::PolishedAndesiteStairs => 64u32, + Item::DioriteStairs => 64u32, + Item::CobbledDeepslateStairs => 64u32, + Item::PolishedDeepslateStairs => 64u32, + Item::DeepslateBrickStairs => 64u32, + Item::DeepslateTileStairs => 64u32, + Item::PolishedGraniteSlab => 64u32, + Item::SmoothRedSandstoneSlab => 64u32, + Item::MossyStoneBrickSlab => 64u32, + Item::PolishedDioriteSlab => 64u32, + Item::MossyCobblestoneSlab => 64u32, + Item::EndStoneBrickSlab => 64u32, + Item::SmoothSandstoneSlab => 64u32, + Item::SmoothQuartzSlab => 64u32, + Item::GraniteSlab => 64u32, + Item::AndesiteSlab => 64u32, + Item::RedNetherBrickSlab => 64u32, + Item::PolishedAndesiteSlab => 64u32, + Item::DioriteSlab => 64u32, + Item::CobbledDeepslateSlab => 64u32, + Item::PolishedDeepslateSlab => 64u32, + Item::DeepslateBrickSlab => 64u32, + Item::DeepslateTileSlab => 64u32, + Item::Scaffolding => 64u32, + Item::Redstone => 64u32, + Item::RedstoneTorch => 64u32, + Item::RedstoneBlock => 64u32, + Item::Repeater => 64u32, + Item::Comparator => 64u32, + Item::Piston => 64u32, + Item::StickyPiston => 64u32, + Item::SlimeBlock => 64u32, + Item::HoneyBlock => 64u32, + Item::Observer => 64u32, + Item::Hopper => 64u32, + Item::Dispenser => 64u32, + Item::Dropper => 64u32, + Item::Lectern => 64u32, + Item::Target => 64u32, + Item::Lever => 64u32, + Item::LightningRod => 64u32, + Item::DaylightDetector => 64u32, + Item::SculkSensor => 64u32, + Item::TripwireHook => 64u32, + Item::TrappedChest => 64u32, + Item::Tnt => 64u32, + Item::RedstoneLamp => 64u32, + Item::NoteBlock => 64u32, + Item::StoneButton => 64u32, + Item::PolishedBlackstoneButton => 64u32, + Item::OakButton => 64u32, + Item::SpruceButton => 64u32, + Item::BirchButton => 64u32, + Item::JungleButton => 64u32, + Item::AcaciaButton => 64u32, + Item::DarkOakButton => 64u32, + Item::CrimsonButton => 64u32, + Item::WarpedButton => 64u32, + Item::StonePressurePlate => 64u32, + Item::PolishedBlackstonePressurePlate => 64u32, + Item::LightWeightedPressurePlate => 64u32, + Item::HeavyWeightedPressurePlate => 64u32, + Item::OakPressurePlate => 64u32, + Item::SprucePressurePlate => 64u32, + Item::BirchPressurePlate => 64u32, + Item::JunglePressurePlate => 64u32, + Item::AcaciaPressurePlate => 64u32, + Item::DarkOakPressurePlate => 64u32, + Item::CrimsonPressurePlate => 64u32, + Item::WarpedPressurePlate => 64u32, + Item::IronDoor => 64u32, + Item::OakDoor => 64u32, + Item::SpruceDoor => 64u32, + Item::BirchDoor => 64u32, + Item::JungleDoor => 64u32, + Item::AcaciaDoor => 64u32, + Item::DarkOakDoor => 64u32, + Item::CrimsonDoor => 64u32, + Item::WarpedDoor => 64u32, + Item::IronTrapdoor => 64u32, + Item::OakTrapdoor => 64u32, + Item::SpruceTrapdoor => 64u32, + Item::BirchTrapdoor => 64u32, + Item::JungleTrapdoor => 64u32, + Item::AcaciaTrapdoor => 64u32, + Item::DarkOakTrapdoor => 64u32, + Item::CrimsonTrapdoor => 64u32, + Item::WarpedTrapdoor => 64u32, + Item::OakFenceGate => 64u32, + Item::SpruceFenceGate => 64u32, + Item::BirchFenceGate => 64u32, + Item::JungleFenceGate => 64u32, + Item::AcaciaFenceGate => 64u32, + Item::DarkOakFenceGate => 64u32, + Item::CrimsonFenceGate => 64u32, + Item::WarpedFenceGate => 64u32, + Item::PoweredRail => 64u32, + Item::DetectorRail => 64u32, + Item::Rail => 64u32, + Item::ActivatorRail => 64u32, + Item::Saddle => 1u32, + Item::Minecart => 1u32, + Item::ChestMinecart => 1u32, + Item::FurnaceMinecart => 1u32, + Item::TntMinecart => 1u32, + Item::HopperMinecart => 1u32, + Item::CarrotOnAStick => 1u32, + Item::WarpedFungusOnAStick => 64u32, + Item::Elytra => 1u32, + Item::OakBoat => 1u32, + Item::SpruceBoat => 1u32, + Item::BirchBoat => 1u32, + Item::JungleBoat => 1u32, + Item::AcaciaBoat => 1u32, + Item::DarkOakBoat => 1u32, + Item::StructureBlock => 64u32, + Item::Jigsaw => 64u32, + Item::TurtleHelmet => 1u32, + Item::Scute => 64u32, + Item::FlintAndSteel => 1u32, + Item::Apple => 64u32, + Item::Bow => 1u32, + Item::Arrow => 64u32, + Item::Coal => 64u32, + Item::Charcoal => 64u32, + Item::Diamond => 64u32, + Item::Emerald => 64u32, + Item::LapisLazuli => 64u32, + Item::Quartz => 64u32, + Item::AmethystShard => 64u32, + Item::RawIron => 64u32, + Item::IronIngot => 64u32, + Item::RawCopper => 64u32, + Item::CopperIngot => 64u32, + Item::RawGold => 64u32, + Item::GoldIngot => 64u32, + Item::NetheriteIngot => 64u32, + Item::NetheriteScrap => 64u32, + Item::WoodenSword => 1u32, + Item::WoodenShovel => 1u32, + Item::WoodenPickaxe => 1u32, + Item::WoodenAxe => 1u32, + Item::WoodenHoe => 1u32, + Item::StoneSword => 1u32, + Item::StoneShovel => 1u32, + Item::StonePickaxe => 1u32, + Item::StoneAxe => 1u32, + Item::StoneHoe => 1u32, + Item::GoldenSword => 1u32, + Item::GoldenShovel => 1u32, + Item::GoldenPickaxe => 1u32, + Item::GoldenAxe => 1u32, + Item::GoldenHoe => 1u32, + Item::IronSword => 1u32, + Item::IronShovel => 1u32, + Item::IronPickaxe => 1u32, + Item::IronAxe => 1u32, + Item::IronHoe => 1u32, + Item::DiamondSword => 1u32, + Item::DiamondShovel => 1u32, + Item::DiamondPickaxe => 1u32, + Item::DiamondAxe => 1u32, + Item::DiamondHoe => 1u32, + Item::NetheriteSword => 1u32, + Item::NetheriteShovel => 1u32, + Item::NetheritePickaxe => 1u32, + Item::NetheriteAxe => 1u32, + Item::NetheriteHoe => 1u32, + Item::Stick => 64u32, + Item::Bowl => 64u32, + Item::MushroomStew => 1u32, + Item::String => 64u32, + Item::Feather => 64u32, + Item::Gunpowder => 64u32, + Item::WheatSeeds => 64u32, + Item::Wheat => 64u32, + Item::Bread => 64u32, + Item::LeatherHelmet => 1u32, + Item::LeatherChestplate => 1u32, + Item::LeatherLeggings => 1u32, + Item::LeatherBoots => 1u32, + Item::ChainmailHelmet => 1u32, + Item::ChainmailChestplate => 1u32, + Item::ChainmailLeggings => 1u32, + Item::ChainmailBoots => 1u32, + Item::IronHelmet => 1u32, + Item::IronChestplate => 1u32, + Item::IronLeggings => 1u32, + Item::IronBoots => 1u32, + Item::DiamondHelmet => 1u32, + Item::DiamondChestplate => 1u32, + Item::DiamondLeggings => 1u32, + Item::DiamondBoots => 1u32, + Item::GoldenHelmet => 1u32, + Item::GoldenChestplate => 1u32, + Item::GoldenLeggings => 1u32, + Item::GoldenBoots => 1u32, + Item::NetheriteHelmet => 1u32, + Item::NetheriteChestplate => 1u32, + Item::NetheriteLeggings => 1u32, + Item::NetheriteBoots => 1u32, + Item::Flint => 64u32, + Item::Porkchop => 64u32, + Item::CookedPorkchop => 64u32, + Item::Painting => 64u32, + Item::GoldenApple => 64u32, + Item::EnchantedGoldenApple => 64u32, + Item::OakSign => 16u32, + Item::SpruceSign => 16u32, + Item::BirchSign => 16u32, + Item::JungleSign => 16u32, + Item::AcaciaSign => 16u32, + Item::DarkOakSign => 16u32, + Item::CrimsonSign => 16u32, + Item::WarpedSign => 16u32, + Item::Bucket => 16u32, + Item::WaterBucket => 1u32, + Item::LavaBucket => 1u32, + Item::PowderSnowBucket => 1u32, + Item::Snowball => 16u32, + Item::Leather => 64u32, + Item::MilkBucket => 1u32, + Item::PufferfishBucket => 1u32, + Item::SalmonBucket => 1u32, + Item::CodBucket => 1u32, + Item::TropicalFishBucket => 1u32, + Item::AxolotlBucket => 1u32, + Item::Brick => 64u32, + Item::ClayBall => 64u32, + Item::DriedKelpBlock => 64u32, + Item::Paper => 64u32, + Item::Book => 64u32, + Item::SlimeBall => 64u32, + Item::Egg => 16u32, + Item::Compass => 64u32, + Item::Bundle => 1u32, + Item::FishingRod => 1u32, + Item::Clock => 64u32, + Item::Spyglass => 1u32, + Item::GlowstoneDust => 64u32, + Item::Cod => 64u32, + Item::Salmon => 64u32, + Item::TropicalFish => 64u32, + Item::Pufferfish => 64u32, + Item::CookedCod => 64u32, + Item::CookedSalmon => 64u32, + Item::InkSac => 64u32, + Item::GlowInkSac => 64u32, + Item::CocoaBeans => 64u32, + Item::WhiteDye => 64u32, + Item::OrangeDye => 64u32, + Item::MagentaDye => 64u32, + Item::LightBlueDye => 64u32, + Item::YellowDye => 64u32, + Item::LimeDye => 64u32, + Item::PinkDye => 64u32, + Item::GrayDye => 64u32, + Item::LightGrayDye => 64u32, + Item::CyanDye => 64u32, + Item::PurpleDye => 64u32, + Item::BlueDye => 64u32, + Item::BrownDye => 64u32, + Item::GreenDye => 64u32, + Item::RedDye => 64u32, + Item::BlackDye => 64u32, + Item::BoneMeal => 64u32, + Item::Bone => 64u32, + Item::Sugar => 64u32, + Item::Cake => 1u32, + Item::WhiteBed => 1u32, + Item::OrangeBed => 1u32, + Item::MagentaBed => 1u32, + Item::LightBlueBed => 1u32, + Item::YellowBed => 1u32, + Item::LimeBed => 1u32, + Item::PinkBed => 1u32, + Item::GrayBed => 1u32, + Item::LightGrayBed => 1u32, + Item::CyanBed => 1u32, + Item::PurpleBed => 1u32, + Item::BlueBed => 1u32, + Item::BrownBed => 1u32, + Item::GreenBed => 1u32, + Item::RedBed => 1u32, + Item::BlackBed => 1u32, + Item::Cookie => 64u32, + Item::FilledMap => 64u32, + Item::Shears => 1u32, + Item::MelonSlice => 64u32, + Item::DriedKelp => 64u32, + Item::PumpkinSeeds => 64u32, + Item::MelonSeeds => 64u32, + Item::Beef => 64u32, + Item::CookedBeef => 64u32, + Item::Chicken => 64u32, + Item::CookedChicken => 64u32, + Item::RottenFlesh => 64u32, + Item::EnderPearl => 16u32, + Item::BlazeRod => 64u32, + Item::GhastTear => 64u32, + Item::GoldNugget => 64u32, + Item::NetherWart => 64u32, + Item::Potion => 1u32, + Item::GlassBottle => 64u32, + Item::SpiderEye => 64u32, + Item::FermentedSpiderEye => 64u32, + Item::BlazePowder => 64u32, + Item::MagmaCream => 64u32, + Item::BrewingStand => 64u32, + Item::Cauldron => 64u32, + Item::EnderEye => 64u32, + Item::GlisteringMelonSlice => 64u32, + Item::AxolotlSpawnEgg => 64u32, + Item::BatSpawnEgg => 64u32, + Item::BeeSpawnEgg => 64u32, + Item::BlazeSpawnEgg => 64u32, + Item::CatSpawnEgg => 64u32, + Item::CaveSpiderSpawnEgg => 64u32, + Item::ChickenSpawnEgg => 64u32, + Item::CodSpawnEgg => 64u32, + Item::CowSpawnEgg => 64u32, + Item::CreeperSpawnEgg => 64u32, + Item::DolphinSpawnEgg => 64u32, + Item::DonkeySpawnEgg => 64u32, + Item::DrownedSpawnEgg => 64u32, + Item::ElderGuardianSpawnEgg => 64u32, + Item::EndermanSpawnEgg => 64u32, + Item::EndermiteSpawnEgg => 64u32, + Item::EvokerSpawnEgg => 64u32, + Item::FoxSpawnEgg => 64u32, + Item::GhastSpawnEgg => 64u32, + Item::GlowSquidSpawnEgg => 64u32, + Item::GoatSpawnEgg => 64u32, + Item::GuardianSpawnEgg => 64u32, + Item::HoglinSpawnEgg => 64u32, + Item::HorseSpawnEgg => 64u32, + Item::HuskSpawnEgg => 64u32, + Item::LlamaSpawnEgg => 64u32, + Item::MagmaCubeSpawnEgg => 64u32, + Item::MooshroomSpawnEgg => 64u32, + Item::MuleSpawnEgg => 64u32, + Item::OcelotSpawnEgg => 64u32, + Item::PandaSpawnEgg => 64u32, + Item::ParrotSpawnEgg => 64u32, + Item::PhantomSpawnEgg => 64u32, + Item::PigSpawnEgg => 64u32, + Item::PiglinSpawnEgg => 64u32, + Item::PiglinBruteSpawnEgg => 64u32, + Item::PillagerSpawnEgg => 64u32, + Item::PolarBearSpawnEgg => 64u32, + Item::PufferfishSpawnEgg => 64u32, + Item::RabbitSpawnEgg => 64u32, + Item::RavagerSpawnEgg => 64u32, + Item::SalmonSpawnEgg => 64u32, + Item::SheepSpawnEgg => 64u32, + Item::ShulkerSpawnEgg => 64u32, + Item::SilverfishSpawnEgg => 64u32, + Item::SkeletonSpawnEgg => 64u32, + Item::SkeletonHorseSpawnEgg => 64u32, + Item::SlimeSpawnEgg => 64u32, + Item::SpiderSpawnEgg => 64u32, + Item::SquidSpawnEgg => 64u32, + Item::StraySpawnEgg => 64u32, + Item::StriderSpawnEgg => 64u32, + Item::TraderLlamaSpawnEgg => 64u32, + Item::TropicalFishSpawnEgg => 64u32, + Item::TurtleSpawnEgg => 64u32, + Item::VexSpawnEgg => 64u32, + Item::VillagerSpawnEgg => 64u32, + Item::VindicatorSpawnEgg => 64u32, + Item::WanderingTraderSpawnEgg => 64u32, + Item::WitchSpawnEgg => 64u32, + Item::WitherSkeletonSpawnEgg => 64u32, + Item::WolfSpawnEgg => 64u32, + Item::ZoglinSpawnEgg => 64u32, + Item::ZombieSpawnEgg => 64u32, + Item::ZombieHorseSpawnEgg => 64u32, + Item::ZombieVillagerSpawnEgg => 64u32, + Item::ZombifiedPiglinSpawnEgg => 64u32, + Item::ExperienceBottle => 64u32, + Item::FireCharge => 64u32, + Item::WritableBook => 1u32, + Item::WrittenBook => 16u32, + Item::ItemFrame => 64u32, + Item::GlowItemFrame => 64u32, + Item::FlowerPot => 64u32, + Item::Carrot => 64u32, + Item::Potato => 64u32, + Item::BakedPotato => 64u32, + Item::PoisonousPotato => 64u32, + Item::Map => 64u32, + Item::GoldenCarrot => 64u32, + Item::SkeletonSkull => 64u32, + Item::WitherSkeletonSkull => 64u32, + Item::PlayerHead => 64u32, + Item::ZombieHead => 64u32, + Item::CreeperHead => 64u32, + Item::DragonHead => 64u32, + Item::NetherStar => 64u32, + Item::PumpkinPie => 64u32, + Item::FireworkRocket => 64u32, + Item::FireworkStar => 64u32, + Item::EnchantedBook => 1u32, + Item::NetherBrick => 64u32, + Item::PrismarineShard => 64u32, + Item::PrismarineCrystals => 64u32, + Item::Rabbit => 64u32, + Item::CookedRabbit => 64u32, + Item::RabbitStew => 1u32, + Item::RabbitFoot => 64u32, + Item::RabbitHide => 64u32, + Item::ArmorStand => 16u32, + Item::IronHorseArmor => 1u32, + Item::GoldenHorseArmor => 1u32, + Item::DiamondHorseArmor => 1u32, + Item::LeatherHorseArmor => 1u32, + Item::Lead => 64u32, + Item::NameTag => 64u32, + Item::CommandBlockMinecart => 1u32, + Item::Mutton => 64u32, + Item::CookedMutton => 64u32, + Item::WhiteBanner => 16u32, + Item::OrangeBanner => 16u32, + Item::MagentaBanner => 16u32, + Item::LightBlueBanner => 16u32, + Item::YellowBanner => 16u32, + Item::LimeBanner => 16u32, + Item::PinkBanner => 16u32, + Item::GrayBanner => 16u32, + Item::LightGrayBanner => 16u32, + Item::CyanBanner => 16u32, + Item::PurpleBanner => 16u32, + Item::BlueBanner => 16u32, + Item::BrownBanner => 16u32, + Item::GreenBanner => 16u32, + Item::RedBanner => 16u32, + Item::BlackBanner => 16u32, + Item::EndCrystal => 64u32, + Item::ChorusFruit => 64u32, + Item::PoppedChorusFruit => 64u32, + Item::Beetroot => 64u32, + Item::BeetrootSeeds => 64u32, + Item::BeetrootSoup => 1u32, + Item::DragonBreath => 64u32, + Item::SplashPotion => 1u32, + Item::SpectralArrow => 64u32, + Item::TippedArrow => 64u32, + Item::LingeringPotion => 1u32, + Item::Shield => 1u32, + Item::TotemOfUndying => 1u32, + Item::ShulkerShell => 64u32, + Item::IronNugget => 64u32, + Item::KnowledgeBook => 1u32, + Item::DebugStick => 1u32, + Item::MusicDisc13 => 1u32, + Item::MusicDiscCat => 1u32, + Item::MusicDiscBlocks => 1u32, + Item::MusicDiscChirp => 1u32, + Item::MusicDiscFar => 1u32, + Item::MusicDiscMall => 1u32, + Item::MusicDiscMellohi => 1u32, + Item::MusicDiscStal => 1u32, + Item::MusicDiscStrad => 1u32, + Item::MusicDiscWard => 1u32, + Item::MusicDisc11 => 1u32, + Item::MusicDiscWait => 1u32, + Item::MusicDiscOtherside => 1u32, + Item::MusicDiscPigstep => 1u32, + Item::Trident => 1u32, + Item::PhantomMembrane => 64u32, + Item::NautilusShell => 64u32, + Item::HeartOfTheSea => 64u32, + Item::Crossbow => 1u32, + Item::SuspiciousStew => 1u32, + Item::Loom => 64u32, + Item::FlowerBannerPattern => 1u32, + Item::CreeperBannerPattern => 1u32, + Item::SkullBannerPattern => 1u32, + Item::MojangBannerPattern => 1u32, + Item::GlobeBannerPattern => 1u32, + Item::PiglinBannerPattern => 1u32, + Item::Composter => 64u32, + Item::Barrel => 64u32, + Item::Smoker => 64u32, + Item::BlastFurnace => 64u32, + Item::CartographyTable => 64u32, + Item::FletchingTable => 64u32, + Item::Grindstone => 64u32, + Item::SmithingTable => 64u32, + Item::Stonecutter => 64u32, + Item::Bell => 64u32, + Item::Lantern => 64u32, + Item::SoulLantern => 64u32, + Item::SweetBerries => 64u32, + Item::GlowBerries => 64u32, + Item::Campfire => 64u32, + Item::SoulCampfire => 64u32, + Item::Shroomlight => 64u32, + Item::Honeycomb => 64u32, + Item::BeeNest => 64u32, + Item::Beehive => 64u32, + Item::HoneyBottle => 16u32, + Item::HoneycombBlock => 64u32, + Item::Lodestone => 64u32, + Item::CryingObsidian => 64u32, + Item::Blackstone => 64u32, + Item::BlackstoneSlab => 64u32, + Item::BlackstoneStairs => 64u32, + Item::GildedBlackstone => 64u32, + Item::PolishedBlackstone => 64u32, + Item::PolishedBlackstoneSlab => 64u32, + Item::PolishedBlackstoneStairs => 64u32, + Item::ChiseledPolishedBlackstone => 64u32, + Item::PolishedBlackstoneBricks => 64u32, + Item::PolishedBlackstoneBrickSlab => 64u32, + Item::PolishedBlackstoneBrickStairs => 64u32, + Item::CrackedPolishedBlackstoneBricks => 64u32, + Item::RespawnAnchor => 64u32, + Item::Candle => 64u32, + Item::WhiteCandle => 64u32, + Item::OrangeCandle => 64u32, + Item::MagentaCandle => 64u32, + Item::LightBlueCandle => 64u32, + Item::YellowCandle => 64u32, + Item::LimeCandle => 64u32, + Item::PinkCandle => 64u32, + Item::GrayCandle => 64u32, + Item::LightGrayCandle => 64u32, + Item::CyanCandle => 64u32, + Item::PurpleCandle => 64u32, + Item::BlueCandle => 64u32, + Item::BrownCandle => 64u32, + Item::GreenCandle => 64u32, + Item::RedCandle => 64u32, + Item::BlackCandle => 64u32, + Item::SmallAmethystBud => 64u32, + Item::MediumAmethystBud => 64u32, + Item::LargeAmethystBud => 64u32, + Item::AmethystCluster => 64u32, + Item::PointedDripstone => 64u32, } } } @@ -10656,9 +10656,9 @@ impl Item { Item::FurnaceMinecart => None, Item::TntMinecart => None, Item::HopperMinecart => None, - Item::CarrotOnAStick => Some(25), - Item::WarpedFungusOnAStick => Some(100), - Item::Elytra => Some(432), + Item::CarrotOnAStick => Some(25u32), + Item::WarpedFungusOnAStick => Some(100u32), + Item::Elytra => Some(432u32), Item::OakBoat => None, Item::SpruceBoat => None, Item::BirchBoat => None, @@ -10667,11 +10667,11 @@ impl Item { Item::DarkOakBoat => None, Item::StructureBlock => None, Item::Jigsaw => None, - Item::TurtleHelmet => Some(275), + Item::TurtleHelmet => Some(275u32), Item::Scute => None, - Item::FlintAndSteel => Some(64), + Item::FlintAndSteel => Some(64u32), Item::Apple => None, - Item::Bow => Some(384), + Item::Bow => Some(384u32), Item::Arrow => None, Item::Coal => None, Item::Charcoal => None, @@ -10688,36 +10688,36 @@ impl Item { Item::GoldIngot => None, Item::NetheriteIngot => None, Item::NetheriteScrap => None, - Item::WoodenSword => Some(59), - Item::WoodenShovel => Some(59), - Item::WoodenPickaxe => Some(59), - Item::WoodenAxe => Some(59), - Item::WoodenHoe => Some(59), - Item::StoneSword => Some(131), - Item::StoneShovel => Some(131), - Item::StonePickaxe => Some(131), - Item::StoneAxe => Some(131), - Item::StoneHoe => Some(131), - Item::GoldenSword => Some(32), - Item::GoldenShovel => Some(32), - Item::GoldenPickaxe => Some(32), - Item::GoldenAxe => Some(32), - Item::GoldenHoe => Some(32), - Item::IronSword => Some(250), - Item::IronShovel => Some(250), - Item::IronPickaxe => Some(250), - Item::IronAxe => Some(250), - Item::IronHoe => Some(250), - Item::DiamondSword => Some(1561), - Item::DiamondShovel => Some(1561), - Item::DiamondPickaxe => Some(1561), - Item::DiamondAxe => Some(1561), - Item::DiamondHoe => Some(1561), - Item::NetheriteSword => Some(2031), - Item::NetheriteShovel => Some(2031), - Item::NetheritePickaxe => Some(2031), - Item::NetheriteAxe => Some(2031), - Item::NetheriteHoe => Some(2031), + Item::WoodenSword => Some(59u32), + Item::WoodenShovel => Some(59u32), + Item::WoodenPickaxe => Some(59u32), + Item::WoodenAxe => Some(59u32), + Item::WoodenHoe => Some(59u32), + Item::StoneSword => Some(131u32), + Item::StoneShovel => Some(131u32), + Item::StonePickaxe => Some(131u32), + Item::StoneAxe => Some(131u32), + Item::StoneHoe => Some(131u32), + Item::GoldenSword => Some(32u32), + Item::GoldenShovel => Some(32u32), + Item::GoldenPickaxe => Some(32u32), + Item::GoldenAxe => Some(32u32), + Item::GoldenHoe => Some(32u32), + Item::IronSword => Some(250u32), + Item::IronShovel => Some(250u32), + Item::IronPickaxe => Some(250u32), + Item::IronAxe => Some(250u32), + Item::IronHoe => Some(250u32), + Item::DiamondSword => Some(1561u32), + Item::DiamondShovel => Some(1561u32), + Item::DiamondPickaxe => Some(1561u32), + Item::DiamondAxe => Some(1561u32), + Item::DiamondHoe => Some(1561u32), + Item::NetheriteSword => Some(2031u32), + Item::NetheriteShovel => Some(2031u32), + Item::NetheritePickaxe => Some(2031u32), + Item::NetheriteAxe => Some(2031u32), + Item::NetheriteHoe => Some(2031u32), Item::Stick => None, Item::Bowl => None, Item::MushroomStew => None, @@ -10727,30 +10727,30 @@ impl Item { Item::WheatSeeds => None, Item::Wheat => None, Item::Bread => None, - Item::LeatherHelmet => Some(55), - Item::LeatherChestplate => Some(80), - Item::LeatherLeggings => Some(75), - Item::LeatherBoots => Some(65), - Item::ChainmailHelmet => Some(165), - Item::ChainmailChestplate => Some(240), - Item::ChainmailLeggings => Some(225), - Item::ChainmailBoots => Some(195), - Item::IronHelmet => Some(165), - Item::IronChestplate => Some(240), - Item::IronLeggings => Some(225), - Item::IronBoots => Some(195), - Item::DiamondHelmet => Some(363), - Item::DiamondChestplate => Some(528), - Item::DiamondLeggings => Some(495), - Item::DiamondBoots => Some(429), - Item::GoldenHelmet => Some(77), - Item::GoldenChestplate => Some(112), - Item::GoldenLeggings => Some(105), - Item::GoldenBoots => Some(91), - Item::NetheriteHelmet => Some(407), - Item::NetheriteChestplate => Some(592), - Item::NetheriteLeggings => Some(555), - Item::NetheriteBoots => Some(481), + Item::LeatherHelmet => Some(55u32), + Item::LeatherChestplate => Some(80u32), + Item::LeatherLeggings => Some(75u32), + Item::LeatherBoots => Some(65u32), + Item::ChainmailHelmet => Some(165u32), + Item::ChainmailChestplate => Some(240u32), + Item::ChainmailLeggings => Some(225u32), + Item::ChainmailBoots => Some(195u32), + Item::IronHelmet => Some(165u32), + Item::IronChestplate => Some(240u32), + Item::IronLeggings => Some(225u32), + Item::IronBoots => Some(195u32), + Item::DiamondHelmet => Some(363u32), + Item::DiamondChestplate => Some(528u32), + Item::DiamondLeggings => Some(495u32), + Item::DiamondBoots => Some(429u32), + Item::GoldenHelmet => Some(77u32), + Item::GoldenChestplate => Some(112u32), + Item::GoldenLeggings => Some(105u32), + Item::GoldenBoots => Some(91u32), + Item::NetheriteHelmet => Some(407u32), + Item::NetheriteChestplate => Some(592u32), + Item::NetheriteLeggings => Some(555u32), + Item::NetheriteBoots => Some(481u32), Item::Flint => None, Item::Porkchop => None, Item::CookedPorkchop => None, @@ -10786,7 +10786,7 @@ impl Item { Item::Egg => None, Item::Compass => None, Item::Bundle => None, - Item::FishingRod => Some(64), + Item::FishingRod => Some(64u32), Item::Clock => None, Item::Spyglass => None, Item::GlowstoneDust => None, @@ -10837,7 +10837,7 @@ impl Item { Item::BlackBed => None, Item::Cookie => None, Item::FilledMap => None, - Item::Shears => Some(238), + Item::Shears => Some(238u32), Item::MelonSlice => None, Item::DriedKelp => None, Item::PumpkinSeeds => None, @@ -10998,7 +10998,7 @@ impl Item { Item::SpectralArrow => None, Item::TippedArrow => None, Item::LingeringPotion => None, - Item::Shield => Some(336), + Item::Shield => Some(336u32), Item::TotemOfUndying => None, Item::ShulkerShell => None, Item::IronNugget => None, @@ -11018,11 +11018,11 @@ impl Item { Item::MusicDiscWait => None, Item::MusicDiscOtherside => None, Item::MusicDiscPigstep => None, - Item::Trident => Some(250), + Item::Trident => Some(250u32), Item::PhantomMembrane => None, Item::NautilusShell => None, Item::HeartOfTheSea => None, - Item::Crossbow => Some(326), + Item::Crossbow => Some(326u32), Item::SuspiciousStew => None, Item::Loom => None, Item::FlowerBannerPattern => None, @@ -11096,7 +11096,7 @@ impl Item { impl Item { #[doc = "Returns the `fixed_with` property of this `Item`."] #[inline] - pub fn fixed_with(&self) -> Vec<&str> { + pub fn fixed_with(&self) -> Vec<&'static str> { match self { Item::Stone => { vec![] From 7fcd37c438d819fcc02ab385d8f05de0249a0d56 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Wed, 12 Jan 2022 01:54:00 +0200 Subject: [PATCH 12/22] Change dependency version format in all crates --- data_generators/Cargo.toml | 24 ++++++++++++------------ feather/base/Cargo.toml | 10 +++++----- feather/common/Cargo.toml | 2 +- feather/protocol/Cargo.toml | 2 +- feather/worldgen/Cargo.toml | 2 +- libcraft/blocks/Cargo.toml | 14 +++++++------- libcraft/macros/Cargo.toml | 6 +++--- libcraft/particles/Cargo.toml | 2 +- quill/api/Cargo.toml | 2 +- quill/common/Cargo.toml | 2 +- 10 files changed, 33 insertions(+), 33 deletions(-) diff --git a/data_generators/Cargo.toml b/data_generators/Cargo.toml index 4b6e3ce32..fb94ed35e 100644 --- a/data_generators/Cargo.toml +++ b/data_generators/Cargo.toml @@ -4,16 +4,16 @@ version = "0.1.0" edition = "2021" [dependencies] -serde_json = "1.0.68" +serde_json = "1" serde = { version = "1", features = ["derive"] } -convert_case = "0.4.0" -regex = "1.5.4" -quote = "1.0.10" -proc-macro2 = "1.0.32" -rayon = "1.5.1" -reqwest = { version = "0.11.6", default-features = false, features = [ "blocking", "rustls-tls" ] } -once_cell = "1.8.0" -indexmap = { version = "1.7.0", features = [ "serde" ] } -bincode = "1.3.3" -fs_extra = "1.2.0" -log = "0.4.14" +convert_case = "0.4" +regex = "1" +quote = "1" +proc-macro2 = "1" +rayon = "1" +reqwest = { version = "0.11", default-features = false, features = [ "blocking", "rustls-tls" ] } +once_cell = "1" +indexmap = { version = "1", features = [ "serde" ] } +bincode = "1" +fs_extra = "1" +log = "0.4" diff --git a/feather/base/Cargo.toml b/feather/base/Cargo.toml index 887ee5dd7..be1c2bfc9 100644 --- a/feather/base/Cargo.toml +++ b/feather/base/Cargo.toml @@ -11,9 +11,9 @@ arrayvec = { version = "0.7", features = [ "serde" ] } bitflags = "1" bitvec = "0.21" byteorder = "1" -derive_more = "0.99.17" +derive_more = "0.99" hematite-nbt = { git = "https://github.com/PistonDevelopers/hematite_nbt" } -itertools = "0.10.3" +itertools = "0.10" libcraft-blocks = { path = "../../libcraft/blocks" } libcraft-core = { path = "../../libcraft/core" } @@ -36,9 +36,9 @@ thiserror = "1" uuid = { version = "0.8", features = [ "serde" ] } vek = "0.14" bytemuck = { version = "1", features = ["derive"] } -konst = "0.2.13" -once_cell = "1.9.0" -indexmap = "1.8.0" +konst = "0.2" +once_cell = "1" +indexmap = "1" [dev-dependencies] rand = "0.8" diff --git a/feather/common/Cargo.toml b/feather/common/Cargo.toml index 7aca80fc3..e807ce4bb 100644 --- a/feather/common/Cargo.toml +++ b/feather/common/Cargo.toml @@ -24,4 +24,4 @@ libcraft-blocks = { path = "../../libcraft/blocks" } rayon = "1.5" worldgen = { path = "../worldgen", package = "feather-worldgen" } rand = "0.8" -derive_more = "0.99.17" +derive_more = "0.99 " diff --git a/feather/protocol/Cargo.toml b/feather/protocol/Cargo.toml index f87723c45..4cbd8f4af 100644 --- a/feather/protocol/Cargo.toml +++ b/feather/protocol/Cargo.toml @@ -24,7 +24,7 @@ uuid = "0.8" libcraft-core = { path = "../../libcraft/core" } libcraft-items = { path = "../../libcraft/items" } libcraft-blocks = { path = "../../libcraft/blocks" } -either = "1.6.1" +either = "1" [features] proxy = ["base/proxy"] \ No newline at end of file diff --git a/feather/worldgen/Cargo.toml b/feather/worldgen/Cargo.toml index 46fcc5a4a..824cf9a38 100644 --- a/feather/worldgen/Cargo.toml +++ b/feather/worldgen/Cargo.toml @@ -6,4 +6,4 @@ edition = "2018" [dependencies] base = { path = "../base", package = "feather-base" } -log = "0.4.14" +log = "0.4" diff --git a/libcraft/blocks/Cargo.toml b/libcraft/blocks/Cargo.toml index 3e8ce28ee..12ef2ffe8 100644 --- a/libcraft/blocks/Cargo.toml +++ b/libcraft/blocks/Cargo.toml @@ -5,11 +5,11 @@ authors = ["Caelum van Ispelen "] edition = "2018" [dependencies] -once_cell = "1.9.0" -num-traits = "0.2.14" -num-derive = "0.3.3" -thiserror = "1.0.30" -bincode = "1.3.3" -anyhow = "1.0.52" -serde = { version = "1.0.133", features = [ "derive" ] } +once_cell = "1" +num-traits = "0.2" +num-derive = "0.3" +thiserror = "1" +bincode = "1" +anyhow = "1" +serde = { version = "1.0", features = [ "derive" ] } libcraft-items = { path = "../items" } diff --git a/libcraft/macros/Cargo.toml b/libcraft/macros/Cargo.toml index 697ada416..26e8bb22c 100644 --- a/libcraft/macros/Cargo.toml +++ b/libcraft/macros/Cargo.toml @@ -8,6 +8,6 @@ edition = "2018" proc-macro = true [dependencies] -syn = "1.0" -quote = "1.0" -proc-macro2 = "1.0" +syn = "1" +quote = "1" +proc-macro2 = "1" diff --git a/libcraft/particles/Cargo.toml b/libcraft/particles/Cargo.toml index 070038b74..19ba37836 100644 --- a/libcraft/particles/Cargo.toml +++ b/libcraft/particles/Cargo.toml @@ -8,7 +8,7 @@ edition = "2018" libcraft-blocks = { path = "../blocks"} libcraft-items = { path = "../items" } -ordinalizer = "0.1.0" +ordinalizer = "0.1" bytemuck = { version = "1", features = ["derive"] } num-derive = "0.3" num-traits = "0.2" diff --git a/quill/api/Cargo.toml b/quill/api/Cargo.toml index 54f2abf6e..e052d692c 100644 --- a/quill/api/Cargo.toml +++ b/quill/api/Cargo.toml @@ -15,5 +15,5 @@ quill-sys = { path = "../sys" } quill-common = { path = "../common" } thiserror = "1" uuid = "0.8" -itertools = "0.10.0" +itertools = "0.10" diff --git a/quill/common/Cargo.toml b/quill/common/Cargo.toml index 8f584c2d3..ca76e5012 100644 --- a/quill/common/Cargo.toml +++ b/quill/common/Cargo.toml @@ -7,7 +7,7 @@ edition = "2018" [dependencies] bincode = "1" bytemuck = { version = "1", features = ["derive"] } -derive_more = "0.99.16" +derive_more = "0.99" libcraft-core = { path = "../../libcraft/core" } libcraft-particles = { path = "../../libcraft/particles" } libcraft-text = { path = "../../libcraft/text" } From b86c2cea9e1dd1faebb34eea6899cffeee81bf2b Mon Sep 17 00:00:00 2001 From: Iaiao Date: Wed, 12 Jan 2022 01:58:28 +0200 Subject: [PATCH 13/22] Uncomment libcraft/blocks/directions.rs --- Cargo.lock | 19 +- libcraft/blocks/Cargo.toml | 1 + libcraft/blocks/src/directions.rs | 324 +++++++++++++++--------------- 3 files changed, 180 insertions(+), 164 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 153c17e8e..bf44a1f40 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -850,7 +850,7 @@ dependencies = [ "smallvec", "thiserror", "uuid", - "vek", + "vek 0.14.1", ] [[package]] @@ -1528,6 +1528,7 @@ dependencies = [ "once_cell", "serde", "thiserror", + "vek 0.15.4", ] [[package]] @@ -1540,7 +1541,7 @@ dependencies = [ "serde", "strum", "strum_macros", - "vek", + "vek 0.14.1", ] [[package]] @@ -3314,6 +3315,20 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "vek" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343a216b8dcc20237304602200d904ef88d9208d7d9b7014554db0e1e8da7ee9" +dependencies = [ + "approx", + "num-integer", + "num-traits", + "rustc_version 0.2.3", + "serde", + "static_assertions", +] + [[package]] name = "version_check" version = "0.9.4" diff --git a/libcraft/blocks/Cargo.toml b/libcraft/blocks/Cargo.toml index 12ef2ffe8..d9d2dede5 100644 --- a/libcraft/blocks/Cargo.toml +++ b/libcraft/blocks/Cargo.toml @@ -12,4 +12,5 @@ thiserror = "1" bincode = "1" anyhow = "1" serde = { version = "1.0", features = [ "derive" ] } +vek = "0.15" libcraft-items = { path = "../items" } diff --git a/libcraft/blocks/src/directions.rs b/libcraft/blocks/src/directions.rs index 54a6d3bf1..a4c9d164e 100644 --- a/libcraft/blocks/src/directions.rs +++ b/libcraft/blocks/src/directions.rs @@ -1,162 +1,162 @@ -// use crate::blocks::{AxisXyz, FacingCardinalAndDown, FacingCubic}; -// use vek::Vec3; -// -// impl FacingCardinal { -// pub fn opposite(self) -> FacingCardinal { -// match self { -// FacingCardinal::North => FacingCardinal::South, -// FacingCardinal::East => FacingCardinal::West, -// FacingCardinal::South => FacingCardinal::North, -// FacingCardinal::West => FacingCardinal::East, -// } -// } -// -// pub fn right(self) -> FacingCardinal { -// match self { -// FacingCardinal::North => FacingCardinal::East, -// FacingCardinal::East => FacingCardinal::South, -// FacingCardinal::South => FacingCardinal::West, -// FacingCardinal::West => FacingCardinal::North, -// } -// } -// -// pub fn left(self) -> FacingCardinal { -// match self { -// FacingCardinal::North => FacingCardinal::West, -// FacingCardinal::East => FacingCardinal::North, -// FacingCardinal::South => FacingCardinal::East, -// FacingCardinal::West => FacingCardinal::South, -// } -// } -// -// pub fn is_horizontal(self) -> bool { -// true -// } -// -// pub fn to_facing_cardinal_and_down(self) -> FacingCardinalAndDown { -// match self { -// FacingCardinal::North => FacingCardinalAndDown::North, -// FacingCardinal::East => FacingCardinalAndDown::East, -// FacingCardinal::South => FacingCardinalAndDown::South, -// FacingCardinal::West => FacingCardinalAndDown::West, -// } -// } -// -// pub fn to_facing_cubic(self) -> FacingCubic { -// match self { -// FacingCardinal::North => FacingCubic::North, -// FacingCardinal::East => FacingCubic::East, -// FacingCardinal::South => FacingCubic::South, -// FacingCardinal::West => FacingCubic::West, -// } -// } -// -// pub fn axis(self) -> AxisXyz { -// self.to_facing_cubic().axis() -// } -// -// pub fn offset(self) -> Vec3 { -// self.to_facing_cubic().offset() -// } -// } -// -// impl FacingCardinalAndDown { -// pub fn opposite(self) -> Option { -// match self { -// FacingCardinalAndDown::North => Some(FacingCardinalAndDown::South), -// FacingCardinalAndDown::East => Some(FacingCardinalAndDown::West), -// FacingCardinalAndDown::South => Some(FacingCardinalAndDown::North), -// FacingCardinalAndDown::West => Some(FacingCardinalAndDown::East), -// _ => None, -// } -// } -// -// pub fn is_horizontal(self) -> bool { -// self != FacingCardinalAndDown::Down -// } -// -// pub fn to_facing_cardinal(self) -> Option { -// match self { -// FacingCardinalAndDown::North => Some(FacingCardinal::North), -// FacingCardinalAndDown::East => Some(FacingCardinal::East), -// FacingCardinalAndDown::South => Some(FacingCardinal::South), -// FacingCardinalAndDown::West => Some(FacingCardinal::West), -// _ => None, -// } -// } -// -// pub fn to_facing_cubic(self) -> FacingCubic { -// match self { -// FacingCardinalAndDown::North => FacingCubic::North, -// FacingCardinalAndDown::East => FacingCubic::East, -// FacingCardinalAndDown::South => FacingCubic::South, -// FacingCardinalAndDown::West => FacingCubic::West, -// FacingCardinalAndDown::Down => FacingCubic::Down, -// } -// } -// -// pub fn axis(self) -> AxisXyz { -// self.to_facing_cubic().axis() -// } -// -// pub fn offset(self) -> Vec3 { -// self.to_facing_cubic().offset() -// } -// } -// -// impl FacingCubic { -// pub fn opposite(self) -> FacingCubic { -// match self { -// FacingCubic::North => FacingCubic::South, -// FacingCubic::East => FacingCubic::West, -// FacingCubic::South => FacingCubic::North, -// FacingCubic::West => FacingCubic::East, -// FacingCubic::Up => FacingCubic::Down, -// FacingCubic::Down => FacingCubic::Up, -// } -// } -// -// pub fn is_horizontal(self) -> bool { -// !matches!(self, FacingCubic::Up | FacingCubic::Down) -// } -// -// pub fn to_facing_cardinal(self) -> Option { -// match self { -// FacingCubic::North => Some(FacingCardinal::North), -// FacingCubic::East => Some(FacingCardinal::East), -// FacingCubic::South => Some(FacingCardinal::South), -// FacingCubic::West => Some(FacingCardinal::West), -// _ => None, -// } -// } -// -// pub fn to_facing_cardinal_and_down(self) -> Option { -// match self { -// FacingCubic::North => Some(FacingCardinalAndDown::North), -// FacingCubic::East => Some(FacingCardinalAndDown::East), -// FacingCubic::South => Some(FacingCardinalAndDown::South), -// FacingCubic::West => Some(FacingCardinalAndDown::West), -// FacingCubic::Down => Some(FacingCardinalAndDown::Down), -// _ => None, -// } -// } -// -// pub fn axis(self) -> AxisXyz { -// match self { -// FacingCubic::East | FacingCubic::West => AxisXyz::X, -// FacingCubic::Up | FacingCubic::Down => AxisXyz::Y, -// FacingCubic::North | FacingCubic::South => AxisXyz::Z, -// } -// } -// -// pub fn offset(self) -> Vec3 { -// match self { -// FacingCubic::North => Vec3 { x: 0, y: 0, z: -1 }, -// FacingCubic::East => Vec3 { x: 1, y: 0, z: 0 }, -// FacingCubic::South => Vec3 { x: 0, y: 0, z: 1 }, -// FacingCubic::West => Vec3 { x: -1, y: 0, z: 0 }, -// FacingCubic::Up => Vec3 { x: 0, y: 1, z: 0 }, -// FacingCubic::Down => Vec3 { x: 0, y: -1, z: 0 }, -// } -// } -// } +use crate::{AxisXyz, FacingCardinal, FacingCardinalAndDown, FacingCubic}; +use vek::Vec3; + +impl FacingCardinal { + pub fn opposite(self) -> FacingCardinal { + match self { + FacingCardinal::North => FacingCardinal::South, + FacingCardinal::East => FacingCardinal::West, + FacingCardinal::South => FacingCardinal::North, + FacingCardinal::West => FacingCardinal::East, + } + } + + pub fn right(self) -> FacingCardinal { + match self { + FacingCardinal::North => FacingCardinal::East, + FacingCardinal::East => FacingCardinal::South, + FacingCardinal::South => FacingCardinal::West, + FacingCardinal::West => FacingCardinal::North, + } + } + + pub fn left(self) -> FacingCardinal { + match self { + FacingCardinal::North => FacingCardinal::West, + FacingCardinal::East => FacingCardinal::North, + FacingCardinal::South => FacingCardinal::East, + FacingCardinal::West => FacingCardinal::South, + } + } + + pub fn is_horizontal(self) -> bool { + true + } + + pub fn to_facing_cardinal_and_down(self) -> FacingCardinalAndDown { + match self { + FacingCardinal::North => FacingCardinalAndDown::North, + FacingCardinal::East => FacingCardinalAndDown::East, + FacingCardinal::South => FacingCardinalAndDown::South, + FacingCardinal::West => FacingCardinalAndDown::West, + } + } + + pub fn to_facing_cubic(self) -> FacingCubic { + match self { + FacingCardinal::North => FacingCubic::North, + FacingCardinal::East => FacingCubic::East, + FacingCardinal::South => FacingCubic::South, + FacingCardinal::West => FacingCubic::West, + } + } + + pub fn axis(self) -> AxisXyz { + self.to_facing_cubic().axis() + } + + pub fn offset(self) -> Vec3 { + self.to_facing_cubic().offset() + } +} + +impl FacingCardinalAndDown { + pub fn opposite(self) -> Option { + match self { + FacingCardinalAndDown::North => Some(FacingCardinalAndDown::South), + FacingCardinalAndDown::East => Some(FacingCardinalAndDown::West), + FacingCardinalAndDown::South => Some(FacingCardinalAndDown::North), + FacingCardinalAndDown::West => Some(FacingCardinalAndDown::East), + _ => None, + } + } + + pub fn is_horizontal(self) -> bool { + self != FacingCardinalAndDown::Down + } + + pub fn to_facing_cardinal(self) -> Option { + match self { + FacingCardinalAndDown::North => Some(FacingCardinal::North), + FacingCardinalAndDown::East => Some(FacingCardinal::East), + FacingCardinalAndDown::South => Some(FacingCardinal::South), + FacingCardinalAndDown::West => Some(FacingCardinal::West), + _ => None, + } + } + + pub fn to_facing_cubic(self) -> FacingCubic { + match self { + FacingCardinalAndDown::North => FacingCubic::North, + FacingCardinalAndDown::East => FacingCubic::East, + FacingCardinalAndDown::South => FacingCubic::South, + FacingCardinalAndDown::West => FacingCubic::West, + FacingCardinalAndDown::Down => FacingCubic::Down, + } + } + + pub fn axis(self) -> AxisXyz { + self.to_facing_cubic().axis() + } + + pub fn offset(self) -> Vec3 { + self.to_facing_cubic().offset() + } +} + +impl FacingCubic { + pub fn opposite(self) -> FacingCubic { + match self { + FacingCubic::North => FacingCubic::South, + FacingCubic::East => FacingCubic::West, + FacingCubic::South => FacingCubic::North, + FacingCubic::West => FacingCubic::East, + FacingCubic::Up => FacingCubic::Down, + FacingCubic::Down => FacingCubic::Up, + } + } + + pub fn is_horizontal(self) -> bool { + !matches!(self, FacingCubic::Up | FacingCubic::Down) + } + + pub fn to_facing_cardinal(self) -> Option { + match self { + FacingCubic::North => Some(FacingCardinal::North), + FacingCubic::East => Some(FacingCardinal::East), + FacingCubic::South => Some(FacingCardinal::South), + FacingCubic::West => Some(FacingCardinal::West), + _ => None, + } + } + + pub fn to_facing_cardinal_and_down(self) -> Option { + match self { + FacingCubic::North => Some(FacingCardinalAndDown::North), + FacingCubic::East => Some(FacingCardinalAndDown::East), + FacingCubic::South => Some(FacingCardinalAndDown::South), + FacingCubic::West => Some(FacingCardinalAndDown::West), + FacingCubic::Down => Some(FacingCardinalAndDown::Down), + _ => None, + } + } + + pub fn axis(self) -> AxisXyz { + match self { + FacingCubic::East | FacingCubic::West => AxisXyz::X, + FacingCubic::Up | FacingCubic::Down => AxisXyz::Y, + FacingCubic::North | FacingCubic::South => AxisXyz::Z, + } + } + + pub fn offset(self) -> Vec3 { + match self { + FacingCubic::North => Vec3 { x: 0, y: 0, z: -1 }, + FacingCubic::East => Vec3 { x: 1, y: 0, z: 0 }, + FacingCubic::South => Vec3 { x: 0, y: 0, z: 1 }, + FacingCubic::West => Vec3 { x: -1, y: 0, z: 0 }, + FacingCubic::Up => Vec3 { x: 0, y: 1, z: 0 }, + FacingCubic::Down => Vec3 { x: 0, y: -1, z: 0 }, + } + } +} From eff0dc6052f538cf239b51ef999e29e8675d2c98 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Wed, 12 Jan 2022 02:00:30 +0200 Subject: [PATCH 14/22] Take EntityKind by value in feather_server::entities::add_spawn_packet --- feather/server/src/entities.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/feather/server/src/entities.rs b/feather/server/src/entities.rs index 7e59206a3..091cf60e3 100644 --- a/feather/server/src/entities.rs +++ b/feather/server/src/entities.rs @@ -40,10 +40,10 @@ pub fn add_entity_components(builder: &mut EntityBuilder, kind: EntityKind) { builder .add(PreviousPosition(prev_position)) .add(PreviousOnGround(on_ground)); - add_spawn_packet(builder, &kind); + add_spawn_packet(builder, kind); } -fn add_spawn_packet(builder: &mut EntityBuilder, kind: &EntityKind) { +fn add_spawn_packet(builder: &mut EntityBuilder, kind: EntityKind) { // TODO: object entities spawned with Spawn Entity // (minecarts, items, ...) let spawn_packet = match kind { From ce4d351989a2ea3f47edd12938e3539f9a71170e Mon Sep 17 00:00:00 2001 From: Iaiao Date: Wed, 12 Jan 2022 02:33:55 +0200 Subject: [PATCH 15/22] Move constants/ to feather_base::consts --- Cargo.lock | 1 + constants/PROTOCOL_VERSION | 1 - constants/SERVER_DOWNLOAD_URL | 1 - constants/VERSION | 1 - constants/WORLD_SAVE_VERSION | 1 - data_generators/Cargo.toml | 1 + data_generators/src/lib.rs | 8 +++---- feather/base/src/anvil/region.rs | 11 +++------- feather/base/src/consts.rs | 20 +++++++++++++++++ feather/base/src/lib.rs | 31 +++++++++------------------ feather/server/src/initial_handler.rs | 26 +++++++++++----------- feather/server/src/lib.rs | 2 -- 12 files changed, 52 insertions(+), 52 deletions(-) delete mode 100644 constants/PROTOCOL_VERSION delete mode 100644 constants/SERVER_DOWNLOAD_URL delete mode 100644 constants/VERSION delete mode 100644 constants/WORLD_SAVE_VERSION create mode 100644 feather/base/src/consts.rs diff --git a/Cargo.lock b/Cargo.lock index bf44a1f40..d3d74fd25 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -710,6 +710,7 @@ version = "0.1.0" dependencies = [ "bincode", "convert_case", + "feather-base", "fs_extra", "indexmap", "log", diff --git a/constants/PROTOCOL_VERSION b/constants/PROTOCOL_VERSION deleted file mode 100644 index d7a801b1e..000000000 --- a/constants/PROTOCOL_VERSION +++ /dev/null @@ -1 +0,0 @@ -757 \ No newline at end of file diff --git a/constants/SERVER_DOWNLOAD_URL b/constants/SERVER_DOWNLOAD_URL deleted file mode 100644 index 2faa3b6b8..000000000 --- a/constants/SERVER_DOWNLOAD_URL +++ /dev/null @@ -1 +0,0 @@ -https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar \ No newline at end of file diff --git a/constants/VERSION b/constants/VERSION deleted file mode 100644 index 5ce8b3959..000000000 --- a/constants/VERSION +++ /dev/null @@ -1 +0,0 @@ -1.18.1 \ No newline at end of file diff --git a/constants/WORLD_SAVE_VERSION b/constants/WORLD_SAVE_VERSION deleted file mode 100644 index 47fd2ab34..000000000 --- a/constants/WORLD_SAVE_VERSION +++ /dev/null @@ -1 +0,0 @@ -2865 \ No newline at end of file diff --git a/data_generators/Cargo.toml b/data_generators/Cargo.toml index fb94ed35e..760ee4234 100644 --- a/data_generators/Cargo.toml +++ b/data_generators/Cargo.toml @@ -17,3 +17,4 @@ indexmap = { version = "1", features = [ "serde" ] } bincode = "1" fs_extra = "1" log = "0.4" +feather-base = { path = "../feather/base" } diff --git a/data_generators/src/lib.rs b/data_generators/src/lib.rs index 638fabfde..16ebb429d 100644 --- a/data_generators/src/lib.rs +++ b/data_generators/src/lib.rs @@ -1,18 +1,18 @@ use fs_extra::dir::CopyOptions; use std::path::PathBuf; -const VERSION: &str = include_str!("../../constants/VERSION"); +use feather_base::{SERVER_DOWNLOAD_URL, VERSION_STRING}; pub fn extract_vanilla_data() { const SERVER_JAR: &str = "server.jar"; - if std::fs::read_to_string("generated/.version").ok() != Some(VERSION.to_string()) { + if std::fs::read_to_string("generated/.version").ok() != Some(VERSION_STRING.to_string()) { let _ = std::fs::remove_dir_all("generated"); if !PathBuf::from(SERVER_JAR).is_file() { log::info!("Downloading Minecraft server jar"); std::fs::write( SERVER_JAR, - reqwest::blocking::get(include_str!("../../constants/SERVER_DOWNLOAD_URL")) + reqwest::blocking::get(SERVER_DOWNLOAD_URL) .unwrap() .bytes() .unwrap(), @@ -33,7 +33,7 @@ pub fn extract_vanilla_data() { .unwrap() .wait() .unwrap(); - std::fs::write("generated/.version", VERSION).unwrap(); + std::fs::write("generated/.version", VERSION_STRING).unwrap(); std::fs::remove_file(SERVER_JAR).unwrap(); std::fs::remove_dir_all("libraries").unwrap(); std::fs::remove_dir_all("logs").unwrap(); diff --git a/feather/base/src/anvil/region.rs b/feather/base/src/anvil/region.rs index 7c2e732f4..f69fc509e 100644 --- a/feather/base/src/anvil/region.rs +++ b/feather/base/src/anvil/region.rs @@ -14,7 +14,6 @@ use std::{fs, io, iter}; use bitvec::{bitvec, vec::BitVec}; use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; -use konst::{primitive::parse_i32, unwrap_ctx}; use serde::{Deserialize, Serialize}; use crate::biome::{BiomeId, BiomeList}; @@ -26,17 +25,13 @@ use crate::chunk::{LightStore, PackedArray}; use crate::world::WorldHeight; use libcraft_blocks::BlockId; use libcraft_core::ChunkPosition; +use crate::ANVIL_VERSION; use super::{block_entity::BlockEntityData, entity::EntityData}; /// The length and width of a region, in chunks. const REGION_SIZE: usize = 32; -/// The data version supported by this code -const DATA_VERSION: i32 = unwrap_ctx!(parse_i32(include_str!( - "../../../../constants/WORLD_SAVE_VERSION" -))); - /// Length, in bytes, of a sector. const SECTOR_BYTES: usize = 4096; @@ -205,7 +200,7 @@ impl RegionHandle { }; // Check data version - if data_chunk.data_version != DATA_VERSION { + if data_chunk.data_version != ANVIL_VERSION { return Err(Error::UnsupportedDataVersion(data_chunk.data_version)); } @@ -527,7 +522,7 @@ fn chunk_to_data_chunk( biome_list: &BiomeList, ) -> DataChunk { DataChunk { - data_version: DATA_VERSION, + data_version: ANVIL_VERSION, x_pos: chunk.position().x, z_pos: chunk.position().z, min_y_section: chunk.min_y_section(), diff --git a/feather/base/src/consts.rs b/feather/base/src/consts.rs new file mode 100644 index 000000000..167ec9700 --- /dev/null +++ b/feather/base/src/consts.rs @@ -0,0 +1,20 @@ +use std::time::Duration; + +/// Number of updates (ticks) to do per second. +pub const TPS: u32 = 20; +/// The number of milliseconds per tick. +pub const TICK_MILLIS: u32 = 1000 / TPS; +/// The duration of a tick. +pub const TICK_DURATION: Duration = Duration::from_millis(TICK_MILLIS as u64); + +/// Default port for Minecraft servers. +pub const DEFAULT_PORT: u16 = 25565; + +/// The protocol version number +pub const PROTOCOL_VERSION: i32 = 757; +/// Vanilla server URL +pub const SERVER_DOWNLOAD_URL: &str = "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar"; +/// Minecraft version of this server in format x.y.z (1.16.5, 1.18.1) +pub const VERSION_STRING: &str = "1.18.1"; +/// World save version compatible with this version of the server +pub const ANVIL_VERSION: i32 = 2865; \ No newline at end of file diff --git a/feather/base/src/lib.rs b/feather/base/src/lib.rs index a1889fb08..bd7525b6e 100644 --- a/feather/base/src/lib.rs +++ b/feather/base/src/lib.rs @@ -4,24 +4,13 @@ //! * The block ID system //! * The chunk data structure -use std::time::Duration; - use num_derive::{FromPrimitive, ToPrimitive}; use serde::{Deserialize, Serialize}; -pub mod anvil; -pub mod biome; -mod block; -pub mod chunk; -pub mod chunk_lock; -pub mod inventory; -pub mod metadata; -pub mod world; - pub use block::{BlockPositionValidationError, ValidBlockPosition}; pub use chunk::{Chunk, ChunkSection, CHUNK_WIDTH}; pub use chunk_lock::*; - +pub use consts::*; pub use libcraft_blocks::{BlockId, BlockKind}; pub use libcraft_core::{ position, vec3, BlockPosition, ChunkPosition, EntityKind, Gamemode, Position, Vec3d, @@ -33,15 +22,15 @@ pub use libcraft_text::{deserialize_text, Text, Title}; #[doc(inline)] pub use metadata::EntityMetadata; -/// Number of updates (ticks) to do per second. -pub const TPS: u32 = 20; -/// The number of milliseconds per tick. -pub const TICK_MILLIS: u32 = 1000 / TPS; -/// The duration of a tick. -pub const TICK_DURATION: Duration = Duration::from_millis(TICK_MILLIS as u64); - -/// Default port for Minecraft servers. -pub const DEFAULT_PORT: u16 = 25565; +pub mod anvil; +pub mod biome; +mod block; +pub mod chunk; +pub mod chunk_lock; +mod consts; +pub mod inventory; +pub mod metadata; +pub mod world; #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, FromPrimitive, ToPrimitive)] pub enum Direction { diff --git a/feather/server/src/initial_handler.rs b/feather/server/src/initial_handler.rs index cd393674e..8cb7bf829 100644 --- a/feather/server/src/initial_handler.rs +++ b/feather/server/src/initial_handler.rs @@ -1,14 +1,21 @@ //! Initial handling of a connection. -use crate::{connection_worker::Worker, favicon::Favicon}; +use std::convert::TryInto; + use anyhow::bail; -use base::{ProfileProperty, Text}; use const_format::concatcp; use flume::{Receiver, Sender}; -use konst::{primitive::parse_i32, unwrap_ctx}; use md5::Digest; use num_bigint::BigInt; use once_cell::sync::Lazy; +use rand::rngs::OsRng; +use rsa::{PaddingScheme, PublicKeyParts, RsaPrivateKey}; +use serde::{Deserialize, Serialize}; +use sha1::Sha1; +use uuid::Uuid; + +use base::{PROTOCOL_VERSION, VERSION_STRING}; +use base::{ProfileProperty, Text}; use protocol::{ codec::CryptKey, packets::{ @@ -20,19 +27,12 @@ use protocol::{ ClientHandshakePacket, ClientLoginPacket, ClientPlayPacket, ClientStatusPacket, ServerLoginPacket, ServerPlayPacket, ServerStatusPacket, }; -use rand::rngs::OsRng; -use rsa::{PaddingScheme, PublicKeyParts, RsaPrivateKey}; -use serde::{Deserialize, Serialize}; -use sha1::Sha1; -use std::convert::TryInto; -use uuid::Uuid; + +use crate::{connection_worker::Worker, favicon::Favicon}; use self::proxy::ProxyData; -const SERVER_NAME: &str = concatcp!("Feather ", crate::VERSION); -pub const PROTOCOL_VERSION: i32 = unwrap_ctx!(parse_i32(include_str!( - "../../../constants/PROTOCOL_VERSION" -))); +const SERVER_NAME: &str = concatcp!("Feather ", VERSION_STRING); mod proxy; diff --git a/feather/server/src/lib.rs b/feather/server/src/lib.rs index fcf031f4b..34649c900 100644 --- a/feather/server/src/lib.rs +++ b/feather/server/src/lib.rs @@ -33,8 +33,6 @@ mod packet_handlers; mod player_count; mod systems; -pub const VERSION: &str = include_str!("../../../constants/VERSION"); - /// A Minecraft server. /// /// Call [`link_with_game`](Server::link_with_game) to register the server From 4c0f80dccd457dfac5a57518ce10966d0ef03bdc Mon Sep 17 00:00:00 2001 From: Iaiao Date: Wed, 12 Jan 2022 03:02:23 +0200 Subject: [PATCH 16/22] Make PalettedContainer.bits_per_value NonZeroUsize --- feather/base/src/anvil/region.rs | 15 ++++- feather/base/src/chunk/heightmap.rs | 5 +- feather/base/src/chunk/light.rs | 13 ++-- feather/base/src/chunk/packed_array.rs | 66 +++++++++----------- feather/base/src/chunk/paletted_container.rs | 18 ++++-- feather/base/src/consts.rs | 5 +- feather/protocol/src/io.rs | 6 +- feather/server/src/initial_handler.rs | 2 +- 8 files changed, 73 insertions(+), 57 deletions(-) diff --git a/feather/base/src/anvil/region.rs b/feather/base/src/anvil/region.rs index f69fc509e..a26abce49 100644 --- a/feather/base/src/anvil/region.rs +++ b/feather/base/src/anvil/region.rs @@ -3,6 +3,7 @@ use std::borrow::Cow; use std::collections::{BTreeMap, HashMap}; +use std::convert::TryInto; use std::fmt::{self, Display, Formatter}; use std::fs::{File, OpenOptions}; use std::io::prelude::*; @@ -23,9 +24,9 @@ use crate::chunk::{ }; use crate::chunk::{LightStore, PackedArray}; use crate::world::WorldHeight; +use crate::ANVIL_VERSION; use libcraft_blocks::BlockId; use libcraft_core::ChunkPosition; -use crate::ANVIL_VERSION; use super::{block_entity::BlockEntityData, entity::EntityData}; @@ -421,7 +422,11 @@ fn read_section_into_chunk( .map(|data| PackedArray::from_i64_vec(data, SECTION_VOLUME)) { blocks.set_data( - if blocks_data.bits_per_value() > ::MAX_BITS_PER_ENTRY { + if blocks_data.bits_per_value() + > ::MAX_BITS_PER_ENTRY + .try_into() + .unwrap() + { // Convert to GlobalPalette let mut data = blocks_data .resized(PalettedContainer::::global_palette_bits_per_value()); @@ -442,7 +447,11 @@ fn read_section_into_chunk( .map(|data| PackedArray::from_i64_vec(data, BIOMES_PER_CHUNK_SECTION)) { biomes.set_data( - if biomes_data.bits_per_value() > ::MAX_BITS_PER_ENTRY { + if biomes_data.bits_per_value() + > ::MAX_BITS_PER_ENTRY + .try_into() + .unwrap() + { // Convert to GlobalPalette let mut data = biomes_data .resized(PalettedContainer::::global_palette_bits_per_value()); diff --git a/feather/base/src/chunk/heightmap.rs b/feather/base/src/chunk/heightmap.rs index f18d118d9..10d2ddfdc 100644 --- a/feather/base/src/chunk/heightmap.rs +++ b/feather/base/src/chunk/heightmap.rs @@ -1,3 +1,4 @@ +use std::convert::TryInto; use std::marker::PhantomData; use libcraft_blocks::{BlockId, SimplifiedBlockKind}; @@ -115,7 +116,9 @@ where Self { heights: PackedArray::new( SECTION_WIDTH * SECTION_WIDTH, - (*height as f64 + 1.0).log2().ceil() as usize, + ((*height as f64 + 1.0).log2().ceil() as usize) + .try_into() + .unwrap(), ), height, _marker: PhantomData, diff --git a/feather/base/src/chunk/light.rs b/feather/base/src/chunk/light.rs index f1e5ac195..79c4d8762 100644 --- a/feather/base/src/chunk/light.rs +++ b/feather/base/src/chunk/light.rs @@ -1,4 +1,5 @@ use crate::chunk::ChunkSection; +use std::convert::TryInto; use super::{PackedArray, SECTION_VOLUME}; @@ -21,8 +22,8 @@ impl LightStore { /// Creates a `LightStore` with all light set to 15. pub fn new() -> Self { let mut this = LightStore { - sky_light: Some(PackedArray::new(SECTION_VOLUME, 4)), - block_light: Some(PackedArray::new(SECTION_VOLUME, 4)), + sky_light: Some(PackedArray::new(SECTION_VOLUME, 4.try_into().unwrap())), + block_light: Some(PackedArray::new(SECTION_VOLUME, 4.try_into().unwrap())), }; fill_with_default_light(this.sky_light.as_mut().unwrap()); fill_with_default_light(this.block_light.as_mut().unwrap()); @@ -31,8 +32,8 @@ impl LightStore { /// Creates a `LightStore` with all light set to 0. pub fn empty() -> Self { LightStore { - block_light: Some(PackedArray::new(SECTION_VOLUME, 4)), - sky_light: Some(PackedArray::new(SECTION_VOLUME, 4)), + block_light: Some(PackedArray::new(SECTION_VOLUME, 4.try_into().unwrap())), + sky_light: Some(PackedArray::new(SECTION_VOLUME, 4.try_into().unwrap())), } } @@ -43,10 +44,10 @@ impl LightStore { ) -> Option { if (sky_light.is_some() && (sky_light.as_ref().unwrap().len() != SECTION_VOLUME - || sky_light.as_ref().unwrap().bits_per_value() != 4)) + || sky_light.as_ref().unwrap().bits_per_value() != 4.try_into().unwrap())) || (block_light.is_some() && (block_light.as_ref().unwrap().len() != SECTION_VOLUME - || block_light.as_ref().unwrap().bits_per_value() != 4)) + || block_light.as_ref().unwrap().bits_per_value() != 4.try_into().unwrap())) { None } else { diff --git a/feather/base/src/chunk/packed_array.rs b/feather/base/src/chunk/packed_array.rs index a8a32eb9f..1c36534a0 100644 --- a/feather/base/src/chunk/packed_array.rs +++ b/feather/base/src/chunk/packed_array.rs @@ -1,11 +1,13 @@ +use std::convert::TryInto; use std::mem::ManuallyDrop; +use std::num::NonZeroUsize; /// A packed array of integers where each integer consumes /// `bits_per_value` bits. Used to store block data in chunks. -#[derive(Debug, Clone, Default, PartialEq)] +#[derive(Debug, Clone, PartialEq)] pub struct PackedArray { length: usize, - bits_per_value: usize, + bits_per_value: NonZeroUsize, bits: Vec, } @@ -16,7 +18,7 @@ impl PackedArray { /// /// # Panics /// Panics if `bits_per_value > 64`. - pub fn new(length: usize, bits_per_value: usize) -> Self { + pub fn new(length: usize, bits_per_value: NonZeroUsize) -> Self { let mut this = Self { length, bits_per_value, @@ -31,7 +33,10 @@ impl PackedArray { /// Creates a `PackedArray` from raw `u64` data /// and a length. pub fn from_u64_vec(bits: Vec, length: usize) -> Self { - let bits_per_value = bits.len() * u64::BITS as usize / length; + assert!(!bits.is_empty()); + let bits_per_value = (bits.len() * u64::BITS as usize / length) + .try_into() + .unwrap(); Self { length, bits_per_value, @@ -59,10 +64,6 @@ impl PackedArray { return None; } - if self.bits_per_value == 0 { - return Some(u64::MAX); - } - let (u64_index, bit_index) = self.indexes(index); let u64 = self.bits[u64_index]; @@ -100,7 +101,7 @@ impl PackedArray { assert!(value <= self.max_value()); let mut x = 0; for i in 0..self.values_per_u64() { - x |= value << (i * self.bits_per_value); + x |= value << (i * self.bits_per_value.get()); } self.bits.fill(x); @@ -109,7 +110,7 @@ impl PackedArray { /// Returns an iterator over values in this array. pub fn iter(&self) -> impl Iterator + '_ { let values_per_u64 = self.values_per_u64(); - let bits_per_value = self.bits_per_value() as u64; + let bits_per_value = self.bits_per_value().get() as u64; let mask = self.mask(); let length = self.len(); @@ -123,13 +124,13 @@ impl PackedArray { /// Resizes this packed array to a new bits per value. #[must_use = "method returns a new array and does not mutate the original value"] - pub fn resized(&self, new_bits_per_value: usize) -> PackedArray { + pub fn resized(&self, new_bits_per_value: NonZeroUsize) -> PackedArray { Self::from_iter(self.iter(), new_bits_per_value) } /// Collects an iterator into a `PackedArray`. - pub fn from_iter(iter: impl IntoIterator, bits_per_value: usize) -> Self { - assert!(bits_per_value <= 64); + pub fn from_iter(iter: impl IntoIterator, bits_per_value: NonZeroUsize) -> Self { + assert!(bits_per_value.get() <= 64); let iter = iter.into_iter(); let mut bits = Vec::with_capacity(iter.size_hint().0); @@ -138,11 +139,11 @@ impl PackedArray { let mut length = 0; for value in iter { - debug_assert!(value < 1 << bits_per_value); + debug_assert!(value < 1 << bits_per_value.get()); current_u64 |= value << current_offset; - current_offset += bits_per_value; - if current_offset > 64 - bits_per_value { + current_offset += bits_per_value.get(); + if current_offset > 64 - bits_per_value.get() { bits.push(current_u64); current_offset = 0; current_u64 = 0; @@ -182,12 +183,12 @@ impl PackedArray { /// Returns the number of bits used to represent each value. #[inline] - pub fn bits_per_value(&self) -> usize { + pub fn bits_per_value(&self) -> NonZeroUsize { self.bits_per_value } /// Sets the number of bits used to represent each value. - pub fn set_bits_per_value(&mut self, new_value: usize) { + pub fn set_bits_per_value(&mut self, new_value: NonZeroUsize) { self.bits_per_value = new_value; } @@ -202,30 +203,22 @@ impl PackedArray { } fn mask(&self) -> u64 { - (1 << self.bits_per_value) - 1 + (1 << self.bits_per_value.get()) - 1 } fn needed_u64s(&self) -> usize { - if self.bits_per_value == 0 { - 0 - } else { - (self.length + self.values_per_u64() - 1) / self.values_per_u64() - } + (self.length + self.values_per_u64() - 1) / self.values_per_u64() } fn values_per_u64(&self) -> usize { - if self.bits_per_value == 0 { - 0 - } else { - 64 / self.bits_per_value - } + 64 / self.bits_per_value.get() } fn indexes(&self, index: usize) -> (usize, usize) { let vales_per_u64 = self.values_per_u64(); let u64_index = index / vales_per_u64; let index = index % vales_per_u64; - (u64_index, index * self.bits_per_value) + (u64_index, index * self.bits_per_value.get()) } } @@ -234,11 +227,12 @@ mod tests { use super::*; use rand::{Rng, SeedableRng}; use rand_pcg::Pcg64Mcg; + use std::convert::TryInto; #[test] fn smoke() { let length = 100; - let mut array = PackedArray::new(length, 10); + let mut array = PackedArray::new(length, 10.try_into().unwrap()); assert_eq!(array.len(), length); assert_eq!(array.bits_per_value(), 10); assert_eq!(array.bits.len(), 17); @@ -252,7 +246,7 @@ mod tests { #[test] fn out_of_bounds() { - let array = PackedArray::new(97, 10); + let array = PackedArray::new(97, 10.try_into().unwrap()); assert_eq!(array.bits.len(), 17); assert_eq!(array.get(96), Some(0)); assert_eq!(array.get(97), None); @@ -260,7 +254,7 @@ mod tests { #[test] fn iter() { - let mut array = PackedArray::new(10_000, 10); + let mut array = PackedArray::new(10_000, 10.try_into().unwrap()); let mut rng = Pcg64Mcg::seed_from_u64(10); let mut oracle = Vec::new(); @@ -285,7 +279,7 @@ mod tests { let mut rng = Pcg64Mcg::seed_from_u64(11); let length = 1024; - let mut array = PackedArray::new(length, 1); + let mut array = PackedArray::new(length, 1.try_into().unwrap()); let mut oracle = Vec::new(); for new_bits_per_value in 2..=16 { @@ -311,7 +305,7 @@ mod tests { #[test] fn fill() { - let mut array = PackedArray::new(1024, 10); + let mut array = PackedArray::new(1024, 10.try_into().unwrap()); array.fill(102); assert!(array.iter().all(|x| x == 102)); @@ -322,7 +316,7 @@ mod tests { #[test] #[should_panic] fn fill_too_large() { - let mut array = PackedArray::new(100, 10); + let mut array = PackedArray::new(100, 10.try_into().unwrap()); array.fill(1024); // 1024 == 2^10 } } diff --git a/feather/base/src/chunk/paletted_container.rs b/feather/base/src/chunk/paletted_container.rs index 222ab8286..8495e82a6 100644 --- a/feather/base/src/chunk/paletted_container.rs +++ b/feather/base/src/chunk/paletted_container.rs @@ -1,4 +1,6 @@ +use std::convert::TryInto; use std::fmt::Debug; +use std::num::NonZeroUsize; use std::sync::atomic::{AtomicUsize, Ordering}; use libcraft_blocks::HIGHEST_ID; @@ -134,12 +136,15 @@ where T::ENTRIES_PER_CHUNK_SECTION } - pub fn global_palette_bits_per_value() -> usize { + pub fn global_palette_bits_per_value() -> NonZeroUsize { Self::palette_bits_per_value(T::length()) } - pub fn palette_bits_per_value(palette_len: usize) -> usize { - (palette_len as f64).log2().ceil() as usize + pub fn palette_bits_per_value(palette_len: usize) -> NonZeroUsize { + ((palette_len as f64).log2().ceil() as usize) + .max(T::MIN_BITS_PER_ENTRY.into()) + .try_into() + .unwrap() } fn get_palette_index(&mut self, item: T) -> Option { @@ -159,15 +164,15 @@ where match self { PalettedContainer::SingleValue(value) => { *self = PalettedContainer::MultipleValues { - data: PackedArray::new(len, T::MIN_BITS_PER_ENTRY), + data: PackedArray::new(len, T::MIN_BITS_PER_ENTRY.try_into().unwrap()), palette: vec![*value], } } PalettedContainer::MultipleValues { data, palette } => { if palette.len() >= data.max_value() as usize { // Resize to either the global palette or a new section palette size. - let new_size = data.bits_per_value() + 1; - if new_size <= T::MAX_BITS_PER_ENTRY { + let new_size = (data.bits_per_value().get() + 1).try_into().unwrap(); + if new_size <= T::MAX_BITS_PER_ENTRY.try_into().unwrap() { *data = data.resized(new_size); } else { *self = Self::GlobalPalette { @@ -243,6 +248,7 @@ where } pub trait Paletteable: Default + Copy + PartialEq + Debug { + // TODO make it NonZeroUsize when const_option or nonzero_ops is stabilized const MIN_BITS_PER_ENTRY: usize; const MAX_BITS_PER_ENTRY: usize = Self::MIN_BITS_PER_ENTRY * 2; const ENTRIES_PER_CHUNK_SECTION: usize; diff --git a/feather/base/src/consts.rs b/feather/base/src/consts.rs index 167ec9700..007044813 100644 --- a/feather/base/src/consts.rs +++ b/feather/base/src/consts.rs @@ -13,8 +13,9 @@ pub const DEFAULT_PORT: u16 = 25565; /// The protocol version number pub const PROTOCOL_VERSION: i32 = 757; /// Vanilla server URL -pub const SERVER_DOWNLOAD_URL: &str = "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar"; +pub const SERVER_DOWNLOAD_URL: &str = + "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar"; /// Minecraft version of this server in format x.y.z (1.16.5, 1.18.1) pub const VERSION_STRING: &str = "1.18.1"; /// World save version compatible with this version of the server -pub const ANVIL_VERSION: i32 = 2865; \ No newline at end of file +pub const ANVIL_VERSION: i32 = 2865; diff --git a/feather/protocol/src/io.rs b/feather/protocol/src/io.rs index 3c66dae46..47d6b9476 100644 --- a/feather/protocol/src/io.rs +++ b/feather/protocol/src/io.rs @@ -13,7 +13,6 @@ use std::{ use anyhow::{anyhow, bail, Context}; use base::anvil::entity::ItemNbt; use base::chunk::paletted_container::{Paletteable, PalettedContainer}; -use base::chunk::PackedArray; use base::metadata::MetaEntry; use base::{Direction, EntityMetadata, ValidBlockPosition}; use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; @@ -1008,7 +1007,10 @@ where { fn write(&self, buffer: &mut Vec, version: ProtocolVersion) -> anyhow::Result<()> { let data = self.data(); - (data.map(PackedArray::bits_per_value).unwrap_or_default() as u8).write(buffer, version)?; + (data + .map(|arr| arr.bits_per_value().get()) + .unwrap_or_default() as u8) + .write(buffer, version)?; match self { PalettedContainer::SingleValue(value) => { diff --git a/feather/server/src/initial_handler.rs b/feather/server/src/initial_handler.rs index 8cb7bf829..9a226dc37 100644 --- a/feather/server/src/initial_handler.rs +++ b/feather/server/src/initial_handler.rs @@ -14,8 +14,8 @@ use serde::{Deserialize, Serialize}; use sha1::Sha1; use uuid::Uuid; -use base::{PROTOCOL_VERSION, VERSION_STRING}; use base::{ProfileProperty, Text}; +use base::{PROTOCOL_VERSION, VERSION_STRING}; use protocol::{ codec::CryptKey, packets::{ From 2d0d90ebb24a6265dcc2c4b490e46eeb5b1a8b68 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Wed, 12 Jan 2022 03:07:26 +0200 Subject: [PATCH 17/22] Fix tests and clippy --- feather/base/src/chunk.rs | 3 ++- feather/base/src/chunk/packed_array.rs | 4 ++-- feather/base/src/chunk/paletted_container.rs | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/feather/base/src/chunk.rs b/feather/base/src/chunk.rs index dead0da5d..336e600a8 100644 --- a/feather/base/src/chunk.rs +++ b/feather/base/src/chunk.rs @@ -412,6 +412,7 @@ impl ChunkSection { #[cfg(test)] mod tests { use super::*; + use std::convert::TryInto; #[test] fn chunk_new() { @@ -534,7 +535,7 @@ mod tests { let mut palette = PalettedContainer::new(); let stone_index = palette.index_or_insert(BlockId::stone()); - let mut data = PackedArray::new(16 * SECTION_WIDTH * SECTION_WIDTH, 5); + let mut data = PackedArray::new(16 * SECTION_WIDTH * SECTION_WIDTH, 5.try_into().unwrap()); for i in 0..4096 { data.set(i, stone_index as u64); } diff --git a/feather/base/src/chunk/packed_array.rs b/feather/base/src/chunk/packed_array.rs index 1c36534a0..e2aa451f1 100644 --- a/feather/base/src/chunk/packed_array.rs +++ b/feather/base/src/chunk/packed_array.rs @@ -234,7 +234,7 @@ mod tests { let length = 100; let mut array = PackedArray::new(length, 10.try_into().unwrap()); assert_eq!(array.len(), length); - assert_eq!(array.bits_per_value(), 10); + assert_eq!(array.bits_per_value().get(), 10); assert_eq!(array.bits.len(), 17); for i in 0..length { @@ -293,7 +293,7 @@ mod tests { assert_eq!(array.get(i), Some(oracle_value)); } - array = array.resized(new_bits_per_value); + array = array.resized(new_bits_per_value.try_into().unwrap()); for (i, &oracle_value) in oracle.iter().enumerate() { assert_eq!(array.get(i), Some(oracle_value)); diff --git a/feather/base/src/chunk/paletted_container.rs b/feather/base/src/chunk/paletted_container.rs index 8495e82a6..13e9f2c1c 100644 --- a/feather/base/src/chunk/paletted_container.rs +++ b/feather/base/src/chunk/paletted_container.rs @@ -142,7 +142,7 @@ where pub fn palette_bits_per_value(palette_len: usize) -> NonZeroUsize { ((palette_len as f64).log2().ceil() as usize) - .max(T::MIN_BITS_PER_ENTRY.into()) + .max(T::MIN_BITS_PER_ENTRY) .try_into() .unwrap() } From e8803df7ca43016ada93eff5f7c79d39d7c5474f Mon Sep 17 00:00:00 2001 From: Iaiao Date: Thu, 13 Jan 2022 18:42:54 +0200 Subject: [PATCH 18/22] Remove From for ItemStack --- feather/base/src/anvil/entity.rs | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/feather/base/src/anvil/entity.rs b/feather/base/src/anvil/entity.rs index 10d462912..eda3f314a 100644 --- a/feather/base/src/anvil/entity.rs +++ b/feather/base/src/anvil/entity.rs @@ -178,23 +178,6 @@ pub struct ItemData { pub nbt: Option, } -impl From for ItemStack { - fn from(item: ItemData) -> Self { - ItemStack::from(&item) - } -} - -// Can't do proper Borrow trait impl because of orphan rule -impl From<&ItemData> for ItemStack { - fn from(item: &ItemData) -> Self { - ItemNbt::item_stack( - &item.nbt, - Item::from_name(item.item.as_str()).unwrap(), - item.count as u8, - ) - } -} - impl From for ItemData where S: std::borrow::Borrow, From 0df9ca1a40e1f362cf5b5019d2d35fd60db72894 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Thu, 13 Jan 2022 18:56:25 +0200 Subject: [PATCH 19/22] Allow non-.json extensions in worldgen/namespace/worldgen/biome/ --- feather/server/src/main.rs | 40 ++++++++++++++++---------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/feather/server/src/main.rs b/feather/server/src/main.rs index 04378bee3..839bfed50 100644 --- a/feather/server/src/main.rs +++ b/feather/server/src/main.rs @@ -1,8 +1,4 @@ -use std::path::PathBuf; -use std::{cell::RefCell, rc::Rc, sync::Arc}; - use anyhow::Context; - use base::anvil::level::SuperflatGeneratorOptions; use base::biome::{BiomeGeneratorInfo, BiomeList}; use base::world::DimensionInfo; @@ -12,6 +8,8 @@ use data_generators::extract_vanilla_data; use ecs::SystemExecutor; use feather_server::{config::Config, Server}; use plugin_host::PluginManager; +use std::path::PathBuf; +use std::{cell::RefCell, rc::Rc, sync::Arc}; use worldgen::{SuperflatWorldGenerator, WorldGenerator}; mod logging; @@ -151,26 +149,22 @@ fn init_biomes(game: &mut Game) { for dir in std::fs::read_dir("worldgen/").unwrap() { if let Ok(dir) = dir { for file in std::fs::read_dir(dir.path().join("worldgen/biome")).unwrap() { - let biome: BiomeGeneratorInfo = serde_json::from_str( - &std::fs::read_to_string(file.as_ref().unwrap().path()).unwrap(), - ) - .unwrap(); - let name = format!( - "{}:{}", - dir.file_name().to_str().unwrap(), - file.unwrap() - .file_name() - .to_str() - .unwrap() - .strip_suffix(".json") - .unwrap() - .to_owned() - ); - log::trace!("Loaded biome: {}", name); - biomes.insert(name, biome); + if let Some(file_name) = file.as_ref().unwrap().file_name().to_str() { + if file_name.ends_with(".json") { + let biome: BiomeGeneratorInfo = serde_json::from_str( + &std::fs::read_to_string(file.as_ref().unwrap().path()).unwrap(), + ) + .unwrap(); + let name = format!( + "{}:{}", + dir.file_name().to_str().unwrap(), + file_name.strip_suffix(".json").unwrap() + ); + log::trace!("Loaded biome: {}", name); + biomes.insert(name, biome); + } + } } - } else { - log::warn!("Invalid directory name found in worldgen/") } } game.insert_resource(Arc::new(biomes)) From 373e4f6f80df4fd7cdf9382f3b574fb4c3ad21f0 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Thu, 13 Jan 2022 19:28:59 +0200 Subject: [PATCH 20/22] Replace for if let with .flatten() --- feather/server/src/main.rs | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/feather/server/src/main.rs b/feather/server/src/main.rs index 839bfed50..1fb489063 100644 --- a/feather/server/src/main.rs +++ b/feather/server/src/main.rs @@ -146,23 +146,21 @@ fn init_dimensions(game: &mut Game, config: &Config) { fn init_biomes(game: &mut Game) { let mut biomes = BiomeList::default(); - for dir in std::fs::read_dir("worldgen/").unwrap() { - if let Ok(dir) = dir { - for file in std::fs::read_dir(dir.path().join("worldgen/biome")).unwrap() { - if let Some(file_name) = file.as_ref().unwrap().file_name().to_str() { - if file_name.ends_with(".json") { - let biome: BiomeGeneratorInfo = serde_json::from_str( - &std::fs::read_to_string(file.as_ref().unwrap().path()).unwrap(), - ) - .unwrap(); - let name = format!( - "{}:{}", - dir.file_name().to_str().unwrap(), - file_name.strip_suffix(".json").unwrap() - ); - log::trace!("Loaded biome: {}", name); - biomes.insert(name, biome); - } + for dir in std::fs::read_dir("worldgen/").unwrap().flatten() { + for file in std::fs::read_dir(dir.path().join("worldgen/biome")).unwrap() { + if let Some(file_name) = file.as_ref().unwrap().file_name().to_str() { + if file_name.ends_with(".json") { + let biome: BiomeGeneratorInfo = serde_json::from_str( + &std::fs::read_to_string(file.as_ref().unwrap().path()).unwrap(), + ) + .unwrap(); + let name = format!( + "{}:{}", + dir.file_name().to_str().unwrap(), + file_name.strip_suffix(".json").unwrap() + ); + log::trace!("Loaded biome: {}", name); + biomes.insert(name, biome); } } } From 1d2c0d2f38e9dee4e8a1c0f2b47a539a0908bb1b Mon Sep 17 00:00:00 2001 From: Iaiao Date: Thu, 13 Jan 2022 20:13:52 +0200 Subject: [PATCH 21/22] Make Paletteable::{MIN,MAX}_BITS_PER_ENTRY NonZeroUsize --- feather/base/src/anvil/region.rs | 13 ++----------- feather/base/src/chunk/paletted_container.rs | 20 ++++++++++++-------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/feather/base/src/anvil/region.rs b/feather/base/src/anvil/region.rs index a26abce49..97c1042d3 100644 --- a/feather/base/src/anvil/region.rs +++ b/feather/base/src/anvil/region.rs @@ -3,7 +3,6 @@ use std::borrow::Cow; use std::collections::{BTreeMap, HashMap}; -use std::convert::TryInto; use std::fmt::{self, Display, Formatter}; use std::fs::{File, OpenOptions}; use std::io::prelude::*; @@ -422,11 +421,7 @@ fn read_section_into_chunk( .map(|data| PackedArray::from_i64_vec(data, SECTION_VOLUME)) { blocks.set_data( - if blocks_data.bits_per_value() - > ::MAX_BITS_PER_ENTRY - .try_into() - .unwrap() - { + if blocks_data.bits_per_value() > ::MAX_BITS_PER_ENTRY { // Convert to GlobalPalette let mut data = blocks_data .resized(PalettedContainer::::global_palette_bits_per_value()); @@ -447,11 +442,7 @@ fn read_section_into_chunk( .map(|data| PackedArray::from_i64_vec(data, BIOMES_PER_CHUNK_SECTION)) { biomes.set_data( - if biomes_data.bits_per_value() - > ::MAX_BITS_PER_ENTRY - .try_into() - .unwrap() - { + if biomes_data.bits_per_value() > ::MAX_BITS_PER_ENTRY { // Convert to GlobalPalette let mut data = biomes_data .resized(PalettedContainer::::global_palette_bits_per_value()); diff --git a/feather/base/src/chunk/paletted_container.rs b/feather/base/src/chunk/paletted_container.rs index 13e9f2c1c..27633a623 100644 --- a/feather/base/src/chunk/paletted_container.rs +++ b/feather/base/src/chunk/paletted_container.rs @@ -142,7 +142,7 @@ where pub fn palette_bits_per_value(palette_len: usize) -> NonZeroUsize { ((palette_len as f64).log2().ceil() as usize) - .max(T::MIN_BITS_PER_ENTRY) + .max(T::MIN_BITS_PER_ENTRY.get()) .try_into() .unwrap() } @@ -164,7 +164,7 @@ where match self { PalettedContainer::SingleValue(value) => { *self = PalettedContainer::MultipleValues { - data: PackedArray::new(len, T::MIN_BITS_PER_ENTRY.try_into().unwrap()), + data: PackedArray::new(len, T::MIN_BITS_PER_ENTRY), palette: vec![*value], } } @@ -172,7 +172,7 @@ where if palette.len() >= data.max_value() as usize { // Resize to either the global palette or a new section palette size. let new_size = (data.bits_per_value().get() + 1).try_into().unwrap(); - if new_size <= T::MAX_BITS_PER_ENTRY.try_into().unwrap() { + if new_size <= T::MAX_BITS_PER_ENTRY { *data = data.resized(new_size); } else { *self = Self::GlobalPalette { @@ -248,9 +248,11 @@ where } pub trait Paletteable: Default + Copy + PartialEq + Debug { - // TODO make it NonZeroUsize when const_option or nonzero_ops is stabilized - const MIN_BITS_PER_ENTRY: usize; - const MAX_BITS_PER_ENTRY: usize = Self::MIN_BITS_PER_ENTRY * 2; + const MIN_BITS_PER_ENTRY: NonZeroUsize; + // FIXME replace with .unwrap() when it's const stable + // SAFETY: non-zero * 2 = non-zero + const MAX_BITS_PER_ENTRY: NonZeroUsize = + unsafe { NonZeroUsize::new_unchecked(Self::MIN_BITS_PER_ENTRY.get() * 2) }; const ENTRIES_PER_CHUNK_SECTION: usize; fn from_default_palette(index: u32) -> Option; @@ -259,7 +261,8 @@ pub trait Paletteable: Default + Copy + PartialEq + Debug { } impl Paletteable for BlockId { - const MIN_BITS_PER_ENTRY: usize = 4; + // SAFETY: 4 is non-zero + const MIN_BITS_PER_ENTRY: NonZeroUsize = unsafe { NonZeroUsize::new_unchecked(4) }; const ENTRIES_PER_CHUNK_SECTION: usize = SECTION_VOLUME; fn from_default_palette(index: u32) -> Option { @@ -278,7 +281,8 @@ impl Paletteable for BlockId { pub static BIOMES_COUNT: AtomicUsize = AtomicUsize::new(0); impl Paletteable for BiomeId { - const MIN_BITS_PER_ENTRY: usize = 2; + // SAFETY: 2 is non-zero + const MIN_BITS_PER_ENTRY: NonZeroUsize = unsafe { NonZeroUsize::new_unchecked(2) }; const ENTRIES_PER_CHUNK_SECTION: usize = BIOMES_PER_CHUNK_SECTION; fn from_default_palette(index: u32) -> Option { From 46be6eaef4de4381cd5f9a2747a6904489e1b317 Mon Sep 17 00:00:00 2001 From: Iaiao Date: Wed, 19 Jan 2022 12:43:07 +0200 Subject: [PATCH 22/22] Improve error handling in biome and dimension loading --- feather/server/src/main.rs | 113 +++++++++++++++++++++++++------------ 1 file changed, 78 insertions(+), 35 deletions(-) diff --git a/feather/server/src/main.rs b/feather/server/src/main.rs index 1fb489063..2ce2ea330 100644 --- a/feather/server/src/main.rs +++ b/feather/server/src/main.rs @@ -1,4 +1,8 @@ -use anyhow::Context; +use std::path::PathBuf; +use std::{cell::RefCell, rc::Rc, sync::Arc}; + +use anyhow::{bail, Context}; + use base::anvil::level::SuperflatGeneratorOptions; use base::biome::{BiomeGeneratorInfo, BiomeList}; use base::world::DimensionInfo; @@ -8,8 +12,6 @@ use data_generators::extract_vanilla_data; use ecs::SystemExecutor; use feather_server::{config::Config, Server}; use plugin_host::PluginManager; -use std::path::PathBuf; -use std::{cell::RefCell, rc::Rc, sync::Arc}; use worldgen::{SuperflatWorldGenerator, WorldGenerator}; mod logging; @@ -46,9 +48,9 @@ async fn main() -> anyhow::Result<()> { fn init_game(server: Server, config: &Config) -> anyhow::Result { let mut game = Game::new(); init_systems(&mut game, server); - init_biomes(&mut game); + init_biomes(&mut game)?; init_worlds(&mut game, config); - init_dimensions(&mut game, config); + init_dimensions(&mut game, config)?; init_plugin_manager(&mut game)?; Ok(game) } @@ -79,27 +81,45 @@ fn init_worlds(game: &mut Game, config: &Config) { } } -fn init_dimensions(game: &mut Game, config: &Config) { +fn init_dimensions(game: &mut Game, config: &Config) -> anyhow::Result<()> { let biomes = game.resources.get::>().unwrap(); - for namespace in std::fs::read_dir("worldgen") - .expect("There's no worldgen/ folder. Try removing generated/ and re-running feather") + let worldgen = PathBuf::from("worldgen"); + for namespace in std::fs::read_dir(&worldgen) + .context("There's no worldgen/ directory. Try removing generated/ and re-running feather")? + .flatten() { - let namespace_dir = namespace.unwrap().path(); - for file in std::fs::read_dir(namespace_dir.join("dimension")).unwrap() { - let mut dimension_info: DimensionInfo = serde_json::from_str( - &std::fs::read_to_string(file.as_ref().unwrap().path()).unwrap(), - ) - .unwrap(); - - dimension_info.info = serde_json::from_str( - &std::fs::read_to_string(format!( - "worldgen/{}/dimension_type/{}.json", - dimension_info.r#type.split_once(':').unwrap().0, - dimension_info.r#type.split_once(':').unwrap().1 - )) - .unwrap(), - ) - .unwrap(); + let namespace_path = namespace.path(); + for file in std::fs::read_dir(namespace_path.join("dimension"))?.flatten() { + if file.path().is_dir() { + bail!( + "worldgen/{}/dimension/ shouldn't contain directories", + file.file_name().to_str().unwrap_or("") + ) + } + let mut dimension_info: DimensionInfo = + serde_json::from_str(&std::fs::read_to_string(file.path()).unwrap()) + .context("Invalid dimension format")?; + + let (dimension_namespace, dimension_value) = + dimension_info.r#type.split_once(':').context(format!( + "Invalid dimension type `{}`. It should contain `:` once", + dimension_info.r#type + ))?; + if dimension_value.contains(':') { + bail!( + "Invalid dimension type `{}`. It should contain `:` exactly once", + dimension_info.r#type + ); + } + let mut dimension_type_path = worldgen.join(dimension_namespace); + dimension_type_path.push("dimension_type"); + dimension_type_path.push(format!("{}.json", dimension_value)); + dimension_info.info = + serde_json::from_str(&std::fs::read_to_string(dimension_type_path).unwrap()) + .context(format!( + "Invalid dimension type format (worldgen/{}/dimension_type/{}.json", + dimension_namespace, dimension_value + ))?; for (_, (world_name, world_path, dimensions)) in game .ecs @@ -126,13 +146,13 @@ fn init_dimensions(game: &mut Game, config: &Config) { dimension_info.r#type, **world_name ); + let mut world_path = world_path.join("dimensions"); + world_path.push(dimension_namespace); + world_path.push(dimension_value); dimensions.add(Dimension::new( dimension_info.clone(), generator, - world_path - .join("dimensions") - .join(dimension_info.r#type.split_once(':').unwrap().0) - .join(dimension_info.r#type.split_once(':').unwrap().1), + world_path, false, is_flat, Arc::clone(&*biomes), @@ -141,31 +161,54 @@ fn init_dimensions(game: &mut Game, config: &Config) { } } } + + Ok(()) } -fn init_biomes(game: &mut Game) { +fn init_biomes(game: &mut Game) -> anyhow::Result<()> { let mut biomes = BiomeList::default(); - for dir in std::fs::read_dir("worldgen/").unwrap().flatten() { - for file in std::fs::read_dir(dir.path().join("worldgen/biome")).unwrap() { - if let Some(file_name) = file.as_ref().unwrap().file_name().to_str() { + let worldgen = PathBuf::from("worldgen"); + for dir in std::fs::read_dir(&worldgen) + .context("There's no worldgen/ directory. Try removing generated/ and re-running feather")? + .flatten() + { + let namespace = dir + .file_name() + .to_str() + .context(format!( + "Non-UTF8 characters in namespace directory: {:?}", + dir.file_name() + ))? + .to_string(); + let namespace_dir = dir.path(); + let namespace_worldgen = namespace_dir.join("worldgen"); + for file in std::fs::read_dir(namespace_worldgen.join("biome")).context( + format!("There's no worldgen/{}/worldgen/biome/ directory. Try removing generated/ and re-running feather", + dir.file_name().to_str().unwrap_or("")), + )?.flatten() { + if let Some(file_name) = file.file_name().to_str() { if file_name.ends_with(".json") { let biome: BiomeGeneratorInfo = serde_json::from_str( - &std::fs::read_to_string(file.as_ref().unwrap().path()).unwrap(), + &std::fs::read_to_string(file.path()).unwrap(), ) .unwrap(); let name = format!( "{}:{}", - dir.file_name().to_str().unwrap(), + namespace, file_name.strip_suffix(".json").unwrap() ); log::trace!("Loaded biome: {}", name); biomes.insert(name, biome); } + } else { + // non-utf8 namespaces are errors, but non-utf8 values are just ignored + log::warn!("Ignoring a biome file with non-UTF8 characters in name: {:?}", file.file_name()) } } } - game.insert_resource(Arc::new(biomes)) + game.insert_resource(Arc::new(biomes)); + Ok(()) } fn init_plugin_manager(game: &mut Game) -> anyhow::Result<()> {